:root{
  --ink:#0b0f17;--ink2:#121826;--line:rgba(255,255,255,.1);--txt:#f3efe6;--mut:#a7adba;
  --gold:#d6b46a;--gold2:#f1d89a;--paper:#f6f2ea;--dark:#151a24;
  --serif:"Cormorant Garamond",Georgia,serif;--sans:"Inter",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--ink)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:var(--sans);color:var(--txt);background:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
.wrap{width:min(1240px,100% - 48px);margin:0 auto}
.eyebrow{font:600 12px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
.serif{font-family:var(--serif);font-weight:500}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;font-weight:600;font-size:15px;transition:transform .3s,background .3s,color .3s}
.btn-gold{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#1a1408}
.btn-gold:hover{transform:translateY(-2px)}
.btn-line{border:1px solid rgba(255,255,255,.35)}
.btn-line:hover{background:#fff;color:var(--ink)}

/* loader */
#loader{position:fixed;inset:0;z-index:100;background:var(--ink);display:grid;place-items:center}
#loader .mark{width:96px;height:120px}
#loader .mark path{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:420;stroke-dashoffset:420}
#loader .mark .fill{fill:var(--gold);opacity:0;stroke:none}
#loader .word{margin-top:22px;font:500 15px var(--sans);letter-spacing:.5em;text-align:center;opacity:0}
#loader .bar{width:160px;height:1px;background:rgba(255,255,255,.12);margin:18px auto 0;overflow:hidden}
#loader .bar i{display:block;height:100%;width:0;background:var(--gold)}
body.loading{overflow:hidden}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .4s,backdrop-filter .4s,padding .4s;padding:22px 0}
.nav.solid{background:rgba(11,15,23,.78);backdrop-filter:blur(14px);padding:14px 0;border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.2em;font-size:14px}
.logo svg{width:26px;height:32px}
.nav ul{display:flex;gap:34px;list-style:none;font-size:14px;color:#d8d4cc}
.nav ul a:hover{color:var(--gold)}
.menu-btn{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line)}
@media (max-width:860px){.nav ul,.nav .btn{display:none}.menu-btn{display:grid;place-items:center}}
.drawer{position:fixed;inset:0;z-index:60;background:var(--ink);display:flex;flex-direction:column;justify-content:center;padding:40px;gap:22px;transform:translateY(-100%);transition:transform .6s cubic-bezier(.7,0,.2,1)}
.drawer.open{transform:none}
.drawer a{font:500 40px var(--serif)}
.drawer .x{position:absolute;top:22px;right:24px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line)}

/* hero 3d */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden}
#scene{position:absolute;inset:0;width:100%;height:100%}
.hero .shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,15,23,.85) 0%,rgba(11,15,23,.35) 50%,rgba(11,15,23,0) 75%),linear-gradient(0deg,var(--ink) 0%,rgba(11,15,23,0) 30%);pointer-events:none}
.hero .copy{position:absolute;left:0;right:0;bottom:12vh;z-index:2}
.hero h1{font:500 clamp(46px,7.4vw,112px)/.95 var(--serif);letter-spacing:-.01em;max-width:11ch}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln>span{display:inline-block;transform:translateY(110%)}
.hero h1 em{color:var(--gold);font-style:italic}
.hero p{max-width:470px;color:#cfd3dc;font-size:17px;line-height:1.6;margin:26px 0 34px;opacity:0}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap;opacity:0}
.hero .scroll{position:absolute;right:40px;bottom:40px;z-index:2;font-size:11px;letter-spacing:.3em;color:var(--mut);writing-mode:vertical-rl}
.hero .floors{position:absolute;right:40px;top:50%;transform:translateY(-50%);z-index:2;text-align:right}
.hero .floors b{display:block;font:500 64px/1 var(--serif);color:var(--gold)}
.hero .floors span{font-size:11px;letter-spacing:.3em;color:var(--mut)}
@media (max-width:860px){.hero .floors,.hero .scroll{display:none}.hero .shade{background:linear-gradient(0deg,var(--ink) 15%,rgba(11,15,23,.5) 60%,rgba(11,15,23,.2))}}

/* sections */
section{position:relative}
.sec{padding:140px 0}
.sec-light{background:var(--paper);color:var(--dark)}
.sec-light .mut{color:#6b6f78}
.h2{font:500 clamp(38px,5vw,72px)/1.02 var(--serif);letter-spacing:-.01em}
.h2 em{font-style:italic;color:var(--gold)}
.sec-light .h2 em{color:#a8823a}
.lead{font-size:18px;line-height:1.7;color:var(--mut);max-width:560px}
.reveal{opacity:0;transform:translateY(40px)}
.split .w{display:inline-block;overflow:hidden;vertical-align:top}
.split .w>span{display:inline-block;transform:translateY(105%)}

/* about */
.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:end}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:90px;border-top:1px solid rgba(0,0,0,.12)}
.stats div{padding:34px 24px 0 0}
.stats b{display:block;font:500 clamp(44px,5vw,72px)/1 var(--serif)}
.stats span{font-size:13px;color:#6b6f78;letter-spacing:.06em}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;gap:30px}.stats{grid-template-columns:1fr 1fr}}

/* projects horizontal */
.hscroll{height:100vh;overflow:hidden;display:flex;align-items:center}
.htrack{display:flex;gap:34px;padding-left:max(24px,calc((100vw - 1240px)/2));will-change:transform}
.hhead{flex:0 0 420px;align-self:center}
.pcard{flex:0 0 min(560px,82vw);position:relative;border-radius:22px;overflow:hidden;height:min(66vh,620px);background:#000;display:block}
.pcard img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 1.2s cubic-bezier(.2,.7,.2,1);opacity:.9}
.pcard:hover img{transform:scale(1.02)}
.pcard .meta{position:absolute;inset:auto 0 0 0;padding:34px;background:linear-gradient(0deg,rgba(0,0,0,.85),transparent)}
.pcard .tag{display:inline-block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:7px 12px;border-radius:999px;background:rgba(214,180,106,.18);color:var(--gold2);border:1px solid rgba(214,180,106,.35)}
.pcard h3{font:500 42px/1.05 var(--serif);margin:14px 0 6px}
.pcard p{color:#cfd3dc;font-size:14px}
.pcard .go{position:absolute;top:26px;right:26px;width:54px;height:54px;border-radius:50%;background:#fff;color:#000;display:grid;place-items:center;transform:scale(0) rotate(-45deg);transition:transform .5s}
.pcard:hover .go{transform:scale(1) rotate(0)}
.pcard.done{filter:grayscale(.5)}
@media (max-width:860px){.hscroll{height:auto;padding:110px 0}.htrack{flex-direction:column;padding:0 24px;transform:none!important}.hhead{flex:none}.pcard{flex:none;width:100%;height:440px}}

/* founder */
.founder{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.vid{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/5;background:#000}
.vid img{width:100%;height:100%;object-fit:cover;opacity:.75}
.play{position:absolute;inset:0;margin:auto;width:96px;height:96px;border-radius:50%;background:rgba(255,255,255,.12);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.4);display:grid;place-items:center}
.play::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid rgba(255,255,255,.25);animation:pulse 2.4s infinite}
@keyframes pulse{0%{transform:scale(.85);opacity:1}100%{transform:scale(1.35);opacity:0}}
blockquote{font:400 italic clamp(28px,3vw,42px)/1.3 var(--serif)}
@media (max-width:860px){.founder{grid-template-columns:1fr}}

/* progress */
.prog{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:60px}
.pv{border-radius:18px;overflow:hidden;background:var(--ink2);border:1px solid var(--line)}
.pv .th{position:relative;aspect-ratio:16/10;overflow:hidden}
.pv .th img{width:100%;height:100%;object-fit:cover}
.pv .th .p2{position:absolute;left:14px;bottom:14px;width:46px;height:46px;border-radius:50%;background:#fff;color:#000;display:grid;place-items:center}
.pv .bd{padding:22px}
.meter{height:4px;border-radius:9px;background:rgba(255,255,255,.08);margin-top:14px;overflow:hidden}
.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold2))}
@media (max-width:860px){.prog{grid-template-columns:1fr}}

/* testimonials marquee */
.marq{overflow:hidden;padding:20px 0;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.mtrack{display:flex;gap:24px;width:max-content;animation:marq 48s linear infinite}
.marq:hover .mtrack{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
.tcard{width:420px;padding:32px;border-radius:20px;background:#fff;color:var(--dark);border:1px solid rgba(0,0,0,.06)}
.tcard p{font:400 italic 22px/1.45 var(--serif)}
.tcard b{display:block;margin-top:18px;font-size:14px}
.tcard span{font-size:12px;color:#7a7f88}

/* contact */
.cta-band{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.form{background:var(--ink2);border:1px solid var(--line);border-radius:22px;padding:34px;display:grid;gap:14px}
.form input,.form select{width:100%;padding:15px 16px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--txt);font:inherit;font-size:15px}
.form input:focus,.form select:focus{outline:none;border-color:var(--gold)}
.form select option{color:#000}
.form small{color:var(--mut);font-size:12px}
@media (max-width:860px){.cta-band{grid-template-columns:1fr}}
footer{padding:70px 0 120px;border-top:1px solid var(--line);color:var(--mut);font-size:13px}
footer .wrap{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}

/* modal + otp */
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:rgba(5,8,12,.7);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .35s}
.modal.on{opacity:1;pointer-events:all}
.mbox{width:min(440px,100%);background:#fff;color:var(--dark);border-radius:22px;padding:34px;position:relative;transform:translateY(24px) scale(.97);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.modal.on .mbox{transform:none}
.mbox h3{font:500 32px/1.1 var(--serif)}
.mbox p{color:#6b6f78;font-size:14px;margin:8px 0 20px;line-height:1.5}
.mbox input{width:100%;padding:14px 16px;border-radius:12px;border:1px solid #ddd;font:inherit;margin-bottom:10px}
.mbox .x{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:#f2f0ec}
.otp{display:none;gap:10px;margin:6px 0 14px}
.otp input{width:56px;height:60px;text-align:center;font:600 24px var(--sans);margin:0}
.ok{display:none;text-align:center;padding:10px 0}
.ok .tick{width:64px;height:64px;border-radius:50%;background:#1f8a4c;color:#fff;display:grid;place-items:center;margin:0 auto 14px;font-size:30px}
.toast{position:fixed;right:20px;bottom:96px;z-index:90;width:320px;background:#e7ded3;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4);transform:translateY(20px);opacity:0;transition:all .5s;color:#111;font-size:14px}
.toast.on{transform:none;opacity:1}
.toast .hd{background:#075e54;color:#fff;padding:12px 14px;font-weight:600}
.toast .bb{background:#fff;margin:10px;border-radius:10px;padding:10px 12px}

/* sticky mobile bar + wa */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;gap:1px;background:var(--line)}
.sticky a,.sticky button{flex:1;padding:16px 8px;text-align:center;background:var(--ink2);font-size:13px;font-weight:600}
.sticky .g{background:var(--gold);color:#1a1408}
@media (max-width:860px){.sticky{display:flex}footer{padding-bottom:120px}}
.wa{position:fixed;right:22px;bottom:22px;z-index:41;width:58px;height:58px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.4)}
@media (max-width:860px){.wa{bottom:78px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal,.split .w>span,.hero h1 .ln>span,.hero p,.hero .ctas{opacity:1!important;transform:none!important}}

/* anatomy story */
.anat{background:var(--ink);padding:120px 0 40px;position:relative}
.anat-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start}
.anat-fig{position:sticky;top:76px;height:calc(100vh - 100px);max-height:900px;border-radius:22px;overflow:hidden;background:#0f1522;border:1px solid rgba(214,180,106,.14)}
.anat-fig iframe{width:100%;height:100%;border:0;display:block;pointer-events:none}
.anat-steps{display:flex;flex-direction:column}
.anat-intro{min-height:60vh;display:flex;flex-direction:column;justify-content:center}
.anat-step{min-height:64vh;display:flex;flex-direction:column;justify-content:center;opacity:.32;transition:opacity .5s,transform .5s;transform:translateX(0)}
.anat-step.on{transform:translateX(8px)}
.anat-step h3{transition:color .5s}.anat-step.on h3{color:var(--gold2)}
.anat-step.on{opacity:1}
.anat-step span{font:600 12px/1 var(--sans);letter-spacing:.3em;color:var(--gold)}
.anat-step h3{font:500 clamp(34px,4vw,54px)/1.05 var(--serif);margin:14px 0 14px}
.anat-step p{color:rgba(246,242,234,.7);font-size:17px;line-height:1.65;max-width:440px}
.anat-end{min-height:28vh;justify-content:flex-start;opacity:1;align-items:flex-start}
@media (max-width:860px){
  .anat{padding:80px 0 20px}
  .anat-grid{grid-template-columns:1fr;gap:0}
  .anat-fig{top:64px;height:46vh;height:46svh;z-index:2}
  .anat-intro{min-height:auto;padding:36px 0 10px}
  .anat-step{min-height:60vh;justify-content:flex-end;padding-bottom:6vh}
  .anat-end{min-height:30vh}
}
