:root{
  --bg:#0b0a0a;
  --text:#f7f1eb;
  --muted:rgba(247,241,235,.73);
  --dark:#211a18;
  --dark-muted:rgba(33,26,24,.73);
  --accent:#dea0ca;
  --accent-strong:#cb74b1;
  --beige:#eee0d3;
  --line:rgba(255,255,255,.09);
  --shadow:0 32px 80px rgba(0,0,0,.28);
  --container:1180px;
}

*,
*::before,
*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  color:var(--text);
  font-family:"Inter",sans-serif;
  letter-spacing:.01em;
  background:
    radial-gradient(circle at 10% 8%, rgba(222,160,202,.07), transparent 22%),
    radial-gradient(circle at 90% 14%, rgba(238,224,211,.05), transparent 22%),
    linear-gradient(180deg, #111010 0%, #0b0a0a 100%);
}

img,video{display:block;max-width:100%}
a{text-decoration:none;color:inherit}

.noise{
  position:fixed; inset:0; pointer-events:none; opacity:.05; z-index:2;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.5) .5px, transparent .7px),
    radial-gradient(circle at 70% 30%, rgba(255,255,255,.45) .5px, transparent .7px);
  background-size:24px 24px, 28px 28px;
}

.container{width:min(calc(100% - 40px), var(--container)); margin-inline:auto}

.site-header{
  position:sticky; top:0; z-index:20;
  backdrop-filter:blur(18px);
  background:rgba(11,10,10,.58);
  border-bottom:1px solid rgba(255,255,255,.05);
}

.nav-wrap{
  min-height:112px;
  display:flex; align-items:center; justify-content:space-between; gap:22px;
}

.brand-logo{
  height:150px;
  width:auto;
  filter:drop-shadow(0 0 34px rgba(222,160,202,.22));
  opacity:0;
  transform:scale(.94);
  animation:logoFade 1.1s ease forwards;
}

.site-nav{display:flex; align-items:center; gap:32px}

.site-nav a{
  position:relative;
  color:rgba(255,255,255,.78);
  font-size:.96rem;
  transition:.25s ease;
}

.site-nav a::after{
  content:""; position:absolute; left:0; bottom:-8px; width:100%; height:1px;
  background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}

.site-nav a:hover{color:#fff}
.site-nav a:hover::after{transform:scaleX(1)}

.menu-toggle{
  display:none; width:48px; height:48px; border-radius:50%;
  border:1px solid var(--line); background:transparent; cursor:pointer;
}

.menu-toggle span{
  display:block; width:18px; height:2px; margin:4px auto; background:#fff;
}

.hero{
  position:relative; min-height:100svh; overflow:hidden;
}

.hero-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.38;
  filter:contrast(1.05) brightness(.85) saturate(.9);
  animation:slowZoom 20s ease-in-out infinite alternate;
}

.hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(10,9,9,.92) 0%, rgba(10,9,9,.65) 40%, rgba(10,9,9,.5) 65%, rgba(10,9,9,.84) 100%),
    linear-gradient(180deg, rgba(10,9,9,.28), rgba(10,9,9,.82));
}

.hero-glow{
  position:absolute; border-radius:50%; filter:blur(84px); pointer-events:none; z-index:0;
  animation:floatGlow 12s ease-in-out infinite alternate;
}

.hero-glow-a{width:320px;height:320px;background:rgba(222,160,202,.12);right:8%;top:10%}
.hero-glow-b{width:270px;height:270px;background:rgba(238,224,211,.08);left:4%;bottom:8%}

.hero-grid{
  position:relative; z-index:1;
  min-height:calc(100svh - 112px);
  display:grid; grid-template-columns:1.1fr .9fr; gap:60px;
  align-items:center; padding:110px 0 88px;
}

.eyebrow{
  margin:0 0 18px;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.35em;
  font-size:.76rem;
  font-weight:700;
}

h1,h2,.offer-card h3,.portfolio-content h3{
  font-family:"Cormorant Garamond",serif;
  letter-spacing:-.03em;
  font-weight:500;
}

.hero h1{
  margin:0;
  font-size:clamp(3.2rem, 7vw, 6.5rem);
  line-height:.93;
  opacity:0; transform:translateY(20px);
  animation:fadeUp 1s ease .2s forwards;
}

.hero-text,.section-head p,.about-copy p,.card-lead,.portfolio-content p,.contact-copy p{
  color:var(--muted);
  line-height:1.82;
  font-size:1.04rem;
}

.hero-text{
  max-width:580px;
  margin-top:24px;
  opacity:0; transform:translateY(20px);
  animation:fadeUp 1s ease .45s forwards;
}

.hero-actions{
  display:flex; flex-wrap:wrap; gap:14px; margin-top:34px;
  opacity:0; transform:translateY(20px);
  animation:fadeUp 1s ease .62s forwards;
}

.btn{
  min-height:54px; padding:0 26px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  text-transform:uppercase; letter-spacing:.18em; font-size:.78rem; font-weight:700;
  transition:transform .25s ease, color .25s ease, border-color .25s ease;
}

.btn:hover{transform:translateY(-2px)}

.btn-primary{
  background:linear-gradient(135deg, var(--beige), var(--accent));
  color:#1f1817; box-shadow:0 16px 40px rgba(222,160,202,.22);
}

.btn-secondary{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.04);
}

.btn-secondary:hover{
  color:var(--accent);
  border-color:rgba(222,160,202,.45);
}

.glass-card,
.contact-card{
  backdrop-filter:blur(20px);
  background:rgba(20,20,20,.52);
}

.glass-card{
  padding:36px;
  border-radius:34px;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow);
}

.mini-label{
  margin:0 0 12px;
  color:rgba(255,255,255,.58);
  text-transform:uppercase;
  letter-spacing:.28em;
  font-size:.72rem;
}

.hero-note h2{
  margin:0 0 14px;
  font-size:2.35rem;
  line-height:.98;
}

.hero-note p{margin:0; color:rgba(255,255,255,.72); line-height:1.86}

.scroll-indicator{
  position:absolute; left:50%; bottom:28px; transform:translateX(-50%);
  width:44px; height:68px; border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  display:grid; place-items:center; z-index:1;
}

.scroll-indicator span{
  width:8px; height:16px; border-radius:999px; background:var(--accent);
  animation:scrollPulse 1.7s infinite;
}

.section{
  position:relative;
  padding:112px 0;
}

.section::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(to right, transparent, rgba(222,160,202,.18), transparent);
}

.panel{opacity:0; transform:translateY(50px); transition:opacity 1s ease, transform 1s ease}
.panel.visible{opacity:1; transform:translateY(0)}

.about-grid,.contact-grid{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; align-items:center;
}

.portrait-frame{
  overflow:hidden; border-radius:34px; padding:16px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02)),
    radial-gradient(circle at 25% 20%, rgba(222,160,202,.16), transparent 24%),
    #171414;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow);
}

.portrait-frame img{
  width:100%; min-height:640px; object-fit:cover; border-radius:24px;
}

.about-copy h2,.section-head h2,.contact-copy h2{
  margin:0 0 22px;
  font-size:clamp(2.65rem, 4vw, 4.8rem);
}

.about-points{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:30px;
}

.about-points div,.portfolio-card,.contact-card{
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.04);
  box-shadow:var(--shadow);
}

.about-points div{
  padding:18px 20px; border-radius:20px; color:rgba(255,255,255,.82);
}

.panel-light{
  background:
    radial-gradient(circle at 88% 18%, rgba(222,160,202,.09), transparent 20%),
    linear-gradient(180deg, #f4eee7 0%, #eee4da 100%);
  color:var(--dark);
}

.panel-light .section-head p,.panel-light .card-lead{color:var(--dark-muted)}

.section-head{max-width:760px; margin-bottom:42px}

.offer-grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px;
}

.offer-card{
  padding:30px; border-radius:28px; background:rgba(255,255,255,.8);
  border:1px solid rgba(33,26,24,.08); box-shadow:0 18px 56px rgba(35,28,25,.08);
  transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s cubic-bezier(.2,.8,.2,1);
}

.offer-card:hover,.portfolio-card:hover{
  transform:translateY(-8px) scale(1.01);
  box-shadow:0 30px 80px rgba(0,0,0,.35);
}

.offer-card-dark{
  background:linear-gradient(180deg,#2a2525 0%, #1c1919 100%);
  color:#fff; border-color:rgba(255,255,255,.08);
}

.offer-card-dark .card-lead{color:rgba(255,255,255,.72)}

.card-no{
  display:inline-block; margin-bottom:16px; color:var(--accent-strong);
  letter-spacing:.25em; text-transform:uppercase; font-size:.82rem; font-weight:800;
}

.offer-card h3{
  margin:0 0 14px; font-size:1.95rem; line-height:1.03;
}

.text-link,.portfolio-link{
  display:inline-flex; align-items:center; gap:8px; margin-top:18px;
  color:var(--accent-strong); font-weight:700;
}

.text-link::after,.portfolio-link::after{
  content:"→"; transition:transform .25s ease;
}

.text-link:hover::after,.portfolio-card:hover .portfolio-link::after{
  transform:translateX(5px);
}

.portfolio-grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px;
}

.portfolio-card{
  overflow:hidden; border-radius:28px; transition:all .4s cubic-bezier(.2,.8,.2,1);
}

.portfolio-image{
  position:relative; height:340px; overflow:hidden;
}

.portfolio-image img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .65s ease, filter .35s ease;
}

.portfolio-image::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, transparent 10%, rgba(0,0,0,.4) 100%),
    linear-gradient(120deg, rgba(222,160,202,.12), transparent 38%);
  pointer-events:none;
}

.portfolio-card:hover .portfolio-image img{
  transform:scale(1.06); filter:saturate(1.04);
}

.portfolio-content{
  padding:26px; background:linear-gradient(180deg, transparent, rgba(0,0,0,.4));
}

.portfolio-kicker{
  margin:0 0 10px; color:var(--accent);
  text-transform:uppercase; letter-spacing:.28em; font-size:.78rem;
}

.portfolio-content h3{
  margin:0 0 10px; font-size:2rem;
}

.contact-card{
  padding:30px; border-radius:28px;
}

.contact-item + .contact-item{
  margin-top:24px; padding-top:24px; border-top:1px solid rgba(255,255,255,.08);
}

.contact-item span{
  display:block; margin-bottom:10px; color:var(--accent);
  text-transform:uppercase; letter-spacing:.29em; font-size:.75rem; font-weight:700;
}

.contact-item a{font-size:1.08rem}

.social-links{
  display:flex; flex-wrap:wrap; gap:12px;
}

.social-links a{
  padding:12px 16px; border-radius:999px; border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.04); transition:.25s ease; font-size:.94rem;
}

.social-links a:hover{
  color:var(--accent); border-color:rgba(222,160,202,.38);
}

.site-footer{
  border-top:1px solid rgba(255,255,255,.05); padding:22px 0;
}

.footer-wrap{
  display:flex; justify-content:space-between; align-items:center; gap:18px;
  color:rgba(255,255,255,.54); font-size:.95rem;
}

.reveal{opacity:0; transform:translateY(36px); transition:opacity .85s ease, transform .85s ease}
.reveal-delay{transition-delay:.12s}
.reveal.visible{opacity:1; transform:translateY(0)}

@keyframes fadeUp{to{opacity:1; transform:translateY(0)}}
@keyframes logoFade{to{opacity:1; transform:scale(1)}}
@keyframes slowZoom{from{transform:scale(1.03)} to{transform:scale(1.08)}}
@keyframes floatGlow{from{transform:translateY(0)} to{transform:translateY(40px)}}
@keyframes scrollPulse{
  0%{transform:translateY(-4px); opacity:.2}
  50%{transform:translateY(6px); opacity:1}
  100%{transform:translateY(-4px); opacity:.2}
}

@media (max-width:1080px){
  .hero-grid,.about-grid,.offer-grid,.portfolio-grid,.contact-grid{grid-template-columns:1fr}
}

@media (max-width:860px){
  .site-nav{
    position:absolute; top:calc(100% + 10px); right:20px;
    width:min(280px, calc(100vw - 40px));
    display:grid; gap:0; padding:10px; border-radius:20px;
    background:rgba(14,13,13,.96); border:1px solid rgba(255,255,255,.08);
    opacity:0; pointer-events:none; transform:translateY(-10px); transition:.25s ease;
  }

  .site-nav a{padding:14px 12px; border-radius:14px}
  .site-nav a:hover{background:rgba(255,255,255,.05)}
  .site-nav.open{opacity:1; pointer-events:auto; transform:translateY(0)}

  .menu-toggle{display:inline-block}
  .about-points{grid-template-columns:1fr}
  .brand-logo{height:110px}
  .nav-wrap{min-height:92px}
  .section{padding:88px 0}
}

@media (max-width:640px){
  .container{width:min(calc(100% - 24px), var(--container))}
  .hero-grid{padding:98px 0 84px}
  .hero h1{font-size:2.9rem}
  .portrait-frame img{min-height:430px}
  .offer-card,.portfolio-content,.contact-card,.glass-card{padding:22px}
  .footer-wrap{flex-direction:column; align-items:flex-start}
}


/* --- Mobile refinements --- */
@media (max-width: 980px){
  .hero-grid,
  .about-grid,
  .offer-grid,
  .portfolio-grid,
  .contact-grid{
    grid-template-columns:1fr !important;
    gap:28px;
  }

  .hero-note{
    max-width: 680px;
  }
}

@media (max-width: 768px){
  .container{
    width:min(calc(100% - 28px), var(--container));
  }

  .site-header{
    position: sticky;
  }

  .nav-wrap{
    min-height:84px;
  }

  .brand-logo{
    height:84px !important;
  }

  .hero{
    min-height:auto;
  }

  .hero-grid{
    min-height:auto;
    padding:112px 0 72px;
    gap:24px;
  }

  .hero h1{
    font-size: clamp(2.5rem, 12vw, 4rem) !important;
    line-height: .95;
    max-width: 10ch;
  }

  .hero-text{
    font-size: 1rem;
    line-height: 1.7;
    max-width: 100%;
  }

  .hero-actions{
    width:100%;
  }

  .hero-actions .btn{
    flex:1 1 100%;
    min-height:52px;
  }

  .glass-card{
    padding:22px !important;
    border-radius:24px;
  }

  .hero-note h2{
    font-size: 2rem;
    line-height: 1.02;
  }

  .scroll-indicator{
    display:none;
  }

  .section{
    padding:76px 0;
  }

  .about-copy h2,
  .section-head h2,
  .contact-copy h2{
    font-size: clamp(2.2rem, 12vw, 3.3rem) !important;
    line-height: .96;
  }

  .portrait-frame{
    padding:10px;
    border-radius:24px;
  }

  .portrait-frame img{
    min-height: 360px !important;
    border-radius:18px;
  }

  .about-points{
    grid-template-columns:1fr !important;
  }

  .offer-card,
  .contact-card,
  .portfolio-content{
    padding:20px !important;
    border-radius:22px;
  }

  .offer-card h3,
  .portfolio-content h3{
    font-size: 1.75rem;
  }

  .portfolio-image{
    height:240px !important;
  }

  .site-nav{
    width:min(280px, calc(100vw - 28px));
    right:14px;
  }

  .footer-wrap{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width: 480px){
  .brand-logo{
    height:72px !important;
  }

  .hero-grid{
    padding-top:100px;
  }

  .eyebrow{
    font-size:.66rem;
    letter-spacing:.26em;
  }

  .hero h1{
    font-size: clamp(2.2rem, 13vw, 3rem) !important;
  }

  .hero-text,
  .section-head p,
  .about-copy p,
  .card-lead,
  .portfolio-content p,
  .contact-copy p{
    font-size:.97rem;
    line-height:1.7;
  }

  .portfolio-image{
    height:220px !important;
  }

  .contact-item a{
    font-size:1rem;
    word-break: break-word;
  }

  .social-links a{
    width:100%;
    justify-content:center;
    text-align:center;
  }
}
