:root{--bg:#000;--fg:#EDEBE6;--mute:#85837E;--line:rgba(237,235,230,.12);--accent:#FF5A1F;--pad:clamp(20px,4vw,56px);--ease:cubic-bezier(.16,1,.3,1)}
*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--bg)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--fg);font-family:Geist,Inter,system-ui,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.loading{overflow:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
em{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-0.01em}
.mono{font-family:'Geist Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.wrap{padding-left:var(--pad);padding-right:var(--pad)}
.label{color:var(--mute);margin-bottom:28px}
.muted{color:var(--mute)}
::selection{background:var(--accent);color:#000}

/* loader */
.loader{position:fixed;inset:0;z-index:100;background:#000;display:flex;align-items:flex-end;justify-content:space-between;padding:var(--pad);clip-path:inset(0 0 0 0);transition:clip-path 1.1s var(--ease)}
.loader.done{clip-path:inset(0 0 100% 0)}
.ld-count{font-size:clamp(64px,12vw,180px);letter-spacing:-0.04em;line-height:.8;text-transform:none}
.ld-word{font-weight:600;font-size:clamp(20px,2vw,28px);letter-spacing:-0.03em}

/* cursor */
.cursor{position:fixed;left:0;top:0;z-index:90;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--fg);pointer-events:none;mix-blend-mode:difference;display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease)}
.cursor span{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#000;opacity:0;transition:opacity .2s}
.cursor.big{width:88px;height:88px;margin:-44px 0 0 -44px;mix-blend-mode:normal}
.cursor.big span{opacity:1}
@media (hover:none){.cursor{display:none}}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px var(--pad);mix-blend-mode:difference}
.brand{font-weight:600;font-size:22px;letter-spacing:-0.04em}
.brand i{font-style:normal;color:var(--accent)}
.nav-links{display:flex;gap:28px;position:absolute;left:50%;transform:translateX(-50%)}
.nav-links a{position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-right{display:flex;align-items:center;gap:22px}
.avail{display:flex;align-items:center;gap:8px}
.avail b{width:7px;height:7px;border-radius:50%;background:#3DDC97;animation:ping 2s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(61,220,151,.6)}70%{box-shadow:0 0 0 8px rgba(61,220,151,0)}100%{box-shadow:0 0 0 0 rgba(61,220,151,0)}}
.nav-cta{padding:10px 16px;border:1px solid rgba(237,235,230,.4);border-radius:99px}
@media (max-width:860px){.nav-links,.avail{display:none}}

/* hero */
.hero{height:200vh;position:relative}
.hero-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
#gl{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-top{position:absolute;top:92px;left:var(--pad);right:var(--pad);display:grid;grid-template-columns:1fr auto 1fr;color:var(--mute);pointer-events:none}
.hero-title{position:absolute;left:var(--pad);right:var(--pad);bottom:108px;font-weight:500;font-size:clamp(46px,9.2vw,168px);line-height:.92;letter-spacing:-0.055em;pointer-events:none}
.hero-title em{color:var(--accent);padding-right:.04em}
.line{display:block;overflow:hidden;padding-bottom:.06em}
.line>span{display:inline-block;transform:translateY(110%)}
.hero-foot{position:absolute;left:var(--pad);right:var(--pad);bottom:36px;display:flex;justify-content:space-between;color:var(--mute);pointer-events:none}
.hero-foot .hint{color:var(--accent)}
.scroll-cue{display:flex;align-items:center;gap:10px}
.scroll-cue i{width:1px;height:28px;background:var(--line);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;left:0;top:-100%;width:1px;height:100%;background:var(--fg);animation:drip 1.8s var(--ease) infinite}
@keyframes drip{to{top:100%}}
.jkt{position:absolute;left:0;top:0;display:flex;align-items:center;gap:8px;pointer-events:none;opacity:0}
.jkt i{width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:var(--accent);animation:pingO 1.6s infinite}
@keyframes pingO{0%{box-shadow:0 0 0 0 rgba(255,90,31,.7)}70%{box-shadow:0 0 0 14px rgba(255,90,31,0)}100%{box-shadow:0 0 0 0 rgba(255,90,31,0)}}
.hero-top span:nth-child(3){justify-self:end}
@media (max-width:760px){.hero-top{display:flex;justify-content:space-between}.hero-top span:nth-child(3),.hero-foot span:nth-child(1){display:none}.hero-title{bottom:96px}}

/* about */
.about{padding-top:14vh;padding-bottom:14vh}
.big-text{font-size:clamp(34px,5.6vw,92px);line-height:1.02;letter-spacing:-0.045em;font-weight:500;max-width:1250px}
.big-text .wd{opacity:.14;transition:opacity .25s linear}

/* section heads */
.sec-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:6vh}
.sec-title{font-weight:500;font-size:clamp(40px,6.4vw,104px);letter-spacing:-0.05em;line-height:.95}
.sec-head .mono{color:var(--mute)}

/* work bento: everything visible at once */
.bento{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:minmax(0,1.25fr) minmax(0,1fr);gap:16px;height:min(100vh,1040px);min-height:640px;margin-bottom:10vh}
.b1{grid-row:1/3}.b2{grid-column:2/4}
.bcard{position:relative;border-radius:24px;overflow:hidden;display:flex;flex-direction:column;gap:18px;padding:clamp(16px,1.6vw,26px);min-width:0;
  background:radial-gradient(110% 80% at 100% 0%,color-mix(in srgb,var(--c) 16%,transparent),transparent 60%),#0c0c0c;box-shadow:0 0 0 1px rgba(255,255,255,.07);transition:box-shadow .5s var(--ease)}
.bcard:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 45%,transparent)}
.b-info{display:flex;flex-direction:column;gap:10px}
.b-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.b-title{font-weight:500;font-size:clamp(26px,2.4vw,42px);line-height:.95;letter-spacing:-0.05em}
.b1 .b-title{font-size:clamp(40px,4.4vw,76px)}
.b-lead{color:#BDBAB4;font-size:15px;line-height:1.4;max-width:520px}
.p-media{position:relative;display:block;flex:1;min-height:0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips span{padding:6px 11px;border-radius:99px;border:1px solid var(--line);color:#CFCCC6;font-size:11px}
.chips span:first-child{border-color:color-mix(in srgb,var(--c) 60%,transparent);color:var(--c)}
.s-link{color:var(--fg);white-space:nowrap}
a.s-link:hover{color:var(--c)}
.win{position:absolute;left:0;right:12%;top:0;bottom:0;border-radius:12px;overflow:hidden;background:#111;box-shadow:0 0 0 1px rgba(255,255,255,.1),0 30px 80px -20px rgba(0,0,0,.8)}
.win img{width:100%;height:100%;object-fit:cover;object-position:top left;transition:transform 1.2s var(--ease)}
.bcard:hover .win img{transform:scale(1.04)}
.dual .win:first-child{right:22%;bottom:24%}
.win2{left:22%;right:0;top:28%;bottom:0}
.phone{position:absolute;right:0;bottom:0;height:86%;aspect-ratio:390/844;border-radius:clamp(14px,1.6vw,26px);overflow:hidden;background:#000;border:clamp(3px,.4vw,6px) solid #0a0a0a;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 30px 60px -10px rgba(0,0,0,.9)}
.phone img{width:100%;height:100%;object-fit:cover;object-position:top}
.persona{border-radius:14px;overflow:hidden;background:radial-gradient(90% 90% at 50% 45%,#0d1a14,#070707 70%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.persona canvas{width:100%;height:100%;display:block}
.persona-prompt{position:absolute;left:16px;top:14px;display:flex;flex-direction:column;gap:4px;text-transform:none;letter-spacing:0;font-family:Geist,sans-serif;font-size:13px}
.persona-prompt span{font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#3DDC97}
@media (max-width:860px){
  .bento{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;height:auto;min-height:0;gap:12px;margin:0 0 6vh;padding-bottom:6px;scrollbar-width:none}
  .bento::-webkit-scrollbar{display:none}
  .bcard{flex:0 0 84vw;height:calc(84vw + 190px);scroll-snap-align:center;border-radius:20px}
  .b1 .b-title{font-size:34px}
}

/* shipped count */
.more{padding-top:6vh;padding-bottom:12vh;border-top:1px solid var(--line)}
.more-row{display:flex;align-items:flex-end;gap:4vw;flex-wrap:wrap;padding-top:6vh}
.count{font-weight:600;font-size:clamp(110px,18vw,300px);line-height:.78;letter-spacing:-0.07em}
.count sup{font-size:.35em;color:var(--accent);vertical-align:top;margin-left:.04em}
.more-text{font-size:clamp(20px,2.1vw,34px);line-height:1.15;letter-spacing:-0.03em;max-width:640px;padding-bottom:1vw;color:#CFCCC6}

/* services */
.services{padding-bottom:12vh}
.svc{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.svc>div{padding:34px 34px 10px 0}
.svc>div+div{padding-left:34px;border-left:1px solid var(--line)}
.svc .mono{color:var(--accent)}
.svc h3{font-weight:500;font-size:clamp(28px,2.8vw,44px);letter-spacing:-0.04em;margin:18px 0 14px}
.svc p{color:#BDBAB4;font-size:17px;max-width:380px}
@media (max-width:860px){.svc{grid-template-columns:1fr}.svc>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}}

/* contact */
.contact{position:relative;border-top:1px solid var(--line);padding-top:12vh;overflow:hidden}
.contact-title{font-weight:500;font-size:clamp(56px,12vw,220px);line-height:.88;letter-spacing:-0.06em}
.contact-title em{color:var(--accent)}
.contact-row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-top:8vh}
.mail{display:inline-flex;align-items:center;gap:22px;padding:24px 34px;border-radius:99px;background:var(--fg);color:#000;font-weight:500;font-size:clamp(20px,2.2vw,32px);letter-spacing:-0.03em;transition:background .3s}
.mail i{font-style:normal;transition:transform .4s var(--ease)}
.mail:hover{background:var(--accent)}
.mail:hover i{transform:translateX(6px)}
.contact-meta{display:flex;gap:28px;color:var(--mute);flex-wrap:wrap}
.contact-meta a:hover{color:var(--fg)}
.contact{padding-bottom:10vh}
