/* popsoda2 home */
:root{
  --bg:#f3f3f1;--ink:#1c1c1b;--soft:#5c5c58;--mute:#8b8b85;--line:rgba(28,28,27,.1);
  --pink:#f3b5f6;--orchid:#d47de0;--lemon:#fbf57c;--amber:#f2dc4c;--peri:#c4d6fb;--sky:#a3bef6;--lime:#d3f48f;--leaf:#afe25a;
  --ease:cubic-bezier(.16,1,.3,1);--io:cubic-bezier(.76,0,.24,1);
  --spring:linear(0,.5737 7.6%,.8382 11.87%,.9463 14.19%,1.0292 16.54%,1.0886 18.96%,1.1258 21.46%,1.1441 24.1%,1.1454 26.97%,1.1329 30.18%,1.0793 37.22%,1.0293 45.6%,1.006 53.33%,.9969 61.8%,1);
  --gut:24px;--pan:12px;
  --d1:clamp(50px,13.1vw,236px);--d2:clamp(44px,8.75vw,150px);--d3:clamp(40px,6.6vw,112px);
  --sh:inset 0 1px 0 rgba(255,255,255,.9),0 0 0 1px rgba(28,28,27,.045),0 1px 2px rgba(28,28,27,.05),0 22px 44px -26px rgba(28,28,27,.28);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}
body{background:var(--bg);color:var(--ink);font:500 16px/1.45 Geist,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img,video,canvas{display:block}
button,input{font:inherit;color:inherit;background:none;border:0}
ul,ol{list-style:none}
h1,h2,h3{font-weight:inherit;text-wrap:balance}
p{text-wrap:pretty}
:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:4px}
::selection{background:var(--ink);color:var(--lemon)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.d{font-family:Anton,Impact,'Arial Narrow',sans-serif;font-weight:400;text-transform:uppercase;line-height:.885;letter-spacing:.002em;font-kerning:normal}
.ln{display:block}
.lb{font:500 11.5px/1.2 'Geist Mono',ui-monospace,monospace;letter-spacing:.05em;text-transform:uppercase;color:var(--mute)}
.tg{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;background:var(--ink);color:var(--t,var(--lemon));font:600 12px/1 Geist,sans-serif;letter-spacing:-.01em;white-space:nowrap}
.ln-a{font-weight:600;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1.5px no-repeat;transition:background-size .5s var(--ease);padding-bottom:1px}
.ln-a:hover{background-size:0 1.5px;background-position:100% 100%}

/* split text */
.ms .wd,.ms .ch{transform:none!important;transition:none!important}
.wm{display:inline-block;overflow:hidden;vertical-align:top;padding:.09em .05em .06em;margin:-.09em -.05em -.06em}
.wd{display:inline-block;white-space:nowrap}
.ch{display:inline-block;transform-origin:50% 88%;will-change:transform}
.js .rw .wd{transform:translateY(128%) rotate(3deg);transform-origin:0 100%;transition:transform 1.25s var(--ease);transition-delay:calc(var(--w,0)*55ms)}
.js .rw.in .wd{transform:none}
.rw.done .wm{overflow:visible}

/* buttons */
.b{position:relative;display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 24px;border-radius:999px;font:600 14px/1 Geist,sans-serif;letter-spacing:-.012em;white-space:nowrap;cursor:pointer;transition:transform .45s var(--spring),background-color .25s,color .25s,box-shadow .25s}
.b:active{transform:scale(.95)}
.b.w{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.b.k{background:var(--ink);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.14)}
.b.o{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.b.o:hover{background:#fff;color:var(--ink)}
.b.g{background:#fff;color:var(--ink)}
.rl{display:inline-flex;overflow:hidden;line-height:1.3}
.rl i{position:relative;display:block;font-style:normal;white-space:pre;transition:transform .6s var(--ease);transition-delay:calc(var(--i)*12ms)}
.rl i::after{content:attr(data-c);position:absolute;left:0;top:100%}
.b:hover .rl i{transform:translateY(-100%)}

/* intro */
.intro{display:none;position:fixed;z-index:200;inset:0;background:#120c07;color:#fff;place-items:center;transition:transform 1.05s var(--io)}
.intro-on .intro{display:grid}
.intro.out{transform:translateY(-101%)}
.intro-w{font:700 clamp(40px,6vw,88px)/1 Geist,sans-serif;letter-spacing:-.065em;transition:transform .8s var(--io),opacity .5s}
.intro.out .intro-w{transform:translateY(-40px);opacity:0}
.intro-n{position:absolute;right:28px;bottom:22px;font:500 13px/1 'Geist Mono',monospace;letter-spacing:.04em;opacity:.6}

.prog{position:fixed;z-index:70;left:0;top:0;right:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:0 50%;opacity:0;transition:opacity .3s}
.scr .prog{opacity:1}

/* contextual cursor label */
.cur{position:fixed;z-index:90;left:0;top:0;height:28px;padding:0 11px;border-radius:999px;display:flex;align-items:center;background:var(--ink);color:#fff;font:600 12px/1 Geist,sans-serif;letter-spacing:-.01em;pointer-events:none;opacity:0;scale:.7;transition:opacity .2s,scale .4s var(--spring);box-shadow:0 0 0 1px rgba(255,255,255,.18);will-change:transform}
.cur.on{opacity:1;scale:1}

/* nav */
.nav{position:fixed;z-index:60;top:16px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gut);pointer-events:none}
.nav>*{pointer-events:auto}
.nav-l{display:flex;align-items:center;gap:26px;height:48px;padding:0 8px 0 18px;border-radius:999px;background:rgba(236,236,233,.74);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);transition:background-color .4s,color .4s,box-shadow .4s}
.nav.dark .nav-l{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.brand{font:700 23px/1 Geist,sans-serif;letter-spacing:-.06em}
.links{position:relative;display:flex}
.links a{position:relative;z-index:1;display:flex;align-items:center;height:34px;padding:0 13px;font-size:14px;letter-spacing:-.012em;opacity:.76;transition:opacity .2s}
.links a:hover,.links a.on{opacity:1}
.lk-bg{position:absolute;z-index:0;left:0;top:0;height:34px;width:0;border-radius:999px;background:rgba(28,28,27,.08);opacity:0;transition:transform .5s var(--ease),width .5s var(--ease),opacity .25s}
.nav.dark .lk-bg{background:rgba(255,255,255,.16)}
.nav-r{display:flex;gap:8px}
.nav.dark .nb1{background:rgba(255,255,255,.14);color:#fff;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.nav.dark .nb2{background:#fff;color:var(--ink)}
.mn{display:none;height:36px;padding:0 14px;border-radius:999px;background:rgba(28,28,27,.08);font:600 13px/1 Geist,sans-serif;cursor:pointer}
.nav.dark .mn{background:rgba(255,255,255,.16)}
.mega{position:absolute;left:var(--gut);top:58px;width:min(760px,calc(100vw - 48px));visibility:hidden;opacity:0;transform:translateY(-8px) scale(.985);transform-origin:18% 0;transition:opacity .22s,transform .5s var(--ease),visibility .22s}
.mega.on{visibility:visible;opacity:1;transform:none}
.mega-in{background:rgba(250,250,248,.9);-webkit-backdrop-filter:blur(28px) saturate(1.6);backdrop-filter:blur(28px) saturate(1.6);border-radius:18px;padding:12px;box-shadow:0 0 0 1px rgba(28,28,27,.06),0 30px 70px -24px rgba(0,0,0,.35);color:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:2px}
.mega-in a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;transition:background-color .2s}
.mega-in a:hover{background:rgba(28,28,27,.06)}
.mega-in b{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.022em}
.mega-in small{display:block;font-size:12.5px;color:var(--soft);letter-spacing:-.008em;line-height:1.3}
.mega-in img{width:48px;height:48px;border-radius:8px;object-fit:cover}
.sheet{position:fixed;z-index:55;inset:0;background:var(--bg);padding:104px 24px 32px;display:flex;flex-direction:column;gap:2px;visibility:hidden;opacity:0;transition:opacity .25s,visibility .25s}
.sheet.on{visibility:visible;opacity:1}
.sheet a{font-family:Anton,Impact,sans-serif;text-transform:uppercase;font-size:56px;line-height:1.14}

/* hero */
.hero{position:relative;height:136vh}
.hero-p{position:sticky;top:0;height:100vh}
.hero-c{position:absolute;inset:0;isolation:isolate;overflow:hidden;background:#140d08;color:#fff;clip-path:inset(var(--hi,0px) round var(--hr,0px));will-change:clip-path}
.hero-c video,.hero-gl{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover}
.hero-gl{opacity:0;transition:opacity .6s}
.hero-gl.ok{opacity:1}
.hero-c::after{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(70% 62% at 50% 50%,rgba(10,6,3,.5),rgba(10,6,3,.1) 100%);pointer-events:none}
.hero-in{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:92px 24px 118px;will-change:transform,opacity}
.hero h1{font-size:min(var(--d1),20.4vh);width:100%}
.hl{display:block;overflow:hidden;padding:.09em .04em .05em;margin:-.09em 0 -.05em}
.hl.open{overflow:visible}
#hNameLine{white-space:nowrap}
.js .hl>span{display:block;transform:translateY(116%)}
.js.go .hl>span{animation:rise 1.25s var(--ease) forwards;animation-delay:calc(var(--n)*.09s)}
@keyframes rise{to{transform:none}}
.js .hero-s,.js .mk,.js .mk2,.js .ann,.js .cue{opacity:0}
.js.go .hero-s{animation:fadeup 1s var(--ease) .42s forwards}
.js.go .mk,.js.go .mk2{animation:fadeup 1s var(--ease) .54s forwards}
.js.go .ann{animation:fadeup 1s var(--ease) .8s forwards}
.js.go .cue{animation:fadeup 1s var(--ease) 1s forwards}
@keyframes fadeup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.hero-s{max-width:520px;margin-top:28px;font-size:17px;line-height:1.42;letter-spacing:-.014em}
.mk{display:flex;align-items:center;width:min(430px,100%);height:58px;margin-top:26px;padding:5px 5px 5px 22px;border-radius:999px;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(22px) saturate(1.5);backdrop-filter:blur(22px) saturate(1.5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.24);transition:box-shadow .3s,background-color .3s}
.mk:focus-within{background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.mk input{flex:1;min-width:0;height:100%;font-size:16px;letter-spacing:-.012em;outline:none;color:#fff}
.mk input::placeholder{color:rgba(255,255,255,.66)}
.mk .b{height:48px}
.mk2{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:26px}
.mk2[hidden]{display:none}
.mk-x{flex-basis:100%;margin-top:6px;font-size:13px;color:rgba(255,255,255,.7);cursor:pointer;letter-spacing:-.01em;text-decoration:underline;text-underline-offset:3px}
.ann{position:absolute;left:18px;bottom:18px;display:flex;gap:12px;align-items:center;width:372px;padding:10px 34px 10px 10px;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);color:#fff;text-align:left;border-radius:12px;transition:background-color .25s,color .25s,translate .5s var(--ease)}
.ann:hover{background:#fff;color:var(--ink);translate:0 -3px}
.ann img{width:58px;height:62px;object-fit:cover;border-radius:7px;flex:none}
.ann small{display:block;font:500 10.5px/1.2 'Geist Mono',monospace;letter-spacing:.06em;text-transform:uppercase;opacity:.72;margin-bottom:4px}
.ann b{display:block;font-size:13.5px;line-height:1.28;font-weight:600;letter-spacing:-.015em}
.ann u{position:absolute;right:12px;top:10px;text-decoration:none;font-size:14px;opacity:.7}
.cue{position:absolute;left:50%;bottom:22px;margin-left:-30px;width:60px;display:flex;flex-direction:column;align-items:center;gap:8px;font:500 11px/1 'Geist Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.cue i{position:relative;width:1px;height:34px;background:rgba(255,255,255,.25);overflow:hidden}
.cue i::after{content:'';position:absolute;left:0;top:0;width:1px;height:14px;background:#fff;animation:cue 1.9s var(--io) infinite}
@keyframes cue{from{transform:translateY(-16px)}to{transform:translateY(38px)}}

/* trust */
.tr{padding:56px 0 40px;text-align:center}
.tr p{font-size:13.5px;color:var(--soft);letter-spacing:-.01em}
.mq{margin-top:26px;overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.mq-t{display:flex;width:max-content;will-change:transform}
.mq-t span{padding:0 32px;font-size:21px;font-weight:600;letter-spacing:-.04em;color:#a2a29c;white-space:nowrap;transition:color .25s}
.mq-t span:hover{color:var(--ink)}
.no-mq .mq-t{animation:mq 46s linear infinite}
@keyframes mq{to{transform:translateX(-50%)}}

/* live balloons */
.bp{position:absolute;pointer-events:none}
.bp img{width:100%;height:auto}
canvas.gl{position:absolute;z-index:0;left:0;top:0;pointer-events:none}
.gl-on .bp img{visibility:hidden}
.inl{display:inline-block;height:.86em;width:auto;vertical-align:-.03em;margin:0 .1em 0 0;animation:bobs var(--t,5s) ease-in-out infinite}
@keyframes bobs{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-.05em) rotate(3deg)}}

/* problem */
.pb{position:relative;height:210vh}
.pb-st{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 16px;overflow:hidden;isolation:isolate}
.pb h2{position:relative;z-index:2;font-size:var(--d1)}
.pb-b{z-index:0;left:50%;top:50%;width:min(58vw,820px);margin-left:calc(min(58vw,820px)/-2);margin-top:calc(min(58vw,820px)*-.47)}
.fc .ch{color:#dadad6;transition:color .32s linear}
.fc .ch.on{color:var(--ink)}
.pb-s{position:relative;z-index:2;margin-top:42px;font-size:17px;color:var(--ink);letter-spacing:-.014em;opacity:0;transform:translateY(14px);transition:opacity .7s,transform .9s var(--ease)}
.pb-s.on{opacity:1;transform:none}

/* find / fix / prove */
.tri-s{padding:clamp(20px,3vw,48px) 0 clamp(80px,9vw,140px)}
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 var(--pan)}
.tc{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:14px;padding:12px 12px 26px;box-shadow:var(--sh);overflow:hidden}
.tc h3{margin:26px 14px 0;font-size:24px;font-weight:600;letter-spacing:-.045em;line-height:1.2}
.tc p{margin:8px 14px 0;font-size:14.5px;line-height:1.52;color:var(--soft);letter-spacing:-.012em}
.tri-n{margin:34px 16px 0;text-align:center;font-size:15px;letter-spacing:-.012em}
.spot{position:relative}
.spot::before{content:'';position:absolute;z-index:0;inset:0;border-radius:inherit;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.75),transparent 62%);opacity:0;transition:opacity .35s;pointer-events:none}
.spot:hover::before{opacity:1}
.spot>*{position:relative;z-index:1}
.tc.spot::before{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(196,214,251,.36),transparent 60%)}

.dm{height:236px;border-radius:9px;background:#f4f4f1;padding:16px;overflow:hidden;display:flex;flex-direction:column}
.dm-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.dm-h b{font:500 11px/1 'Geist Mono',monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.dm-h em{font-style:normal;font:600 11.5px/1 Geist,sans-serif;letter-spacing:-.01em;padding:5px 8px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--line)}
.dm ul{display:grid;gap:5px;flex:1;align-content:start}
.dm li{display:flex;align-items:center;gap:9px;height:29px;padding:0 10px;background:#fff;border-radius:7px;font-size:13px;font-weight:600;letter-spacing:-.022em;box-shadow:0 0 0 1px rgba(28,28,27,.04);transition:box-shadow .3s}
.dm li i{width:8px;height:8px;border-radius:50%;background:#dfdfda;transition:background-color .3s,transform .5s var(--spring)}
.dm li span{margin-left:auto;font:500 11px/1 'Geist Mono',monospace;letter-spacing:-.01em;color:var(--mute);opacity:0;transform:translateX(6px);transition:opacity .3s,transform .5s var(--ease)}
.dm li.on span{opacity:1;transform:none}
.dm li.no i{background:#eb6e7f}
.dm li.yes i{background:var(--leaf);transform:scale(1.25)}
.dm li.yes span{color:#5f8d13}
.dm li.sc-on{box-shadow:0 0 0 1.5px var(--ink)}
.dm-fix li i{width:15px;height:15px;background:#fff;box-shadow:inset 0 0 0 1.5px #d4d4cf;display:grid;place-items:center;font:700 10px/1 Geist,sans-serif;font-style:normal;color:transparent}
.dm-fix li.on i{background:var(--ink);box-shadow:none;color:#fff}
.dm-bar{margin-top:10px;height:5px;border-radius:9px;background:#e4e4df;overflow:hidden}
.dm-bar i{display:block;height:100%;width:100%;background:var(--ink);transform:scaleX(var(--p,0));transform-origin:0 50%;transition:transform .7s var(--ease);border-radius:9px}
.dm-pv{display:flex;gap:14px;flex:1;min-height:0}
.dm-nums{display:grid;gap:12px;align-content:start;width:42%}
.dm-nums div b{display:block;font:600 26px/1 'Geist Mono',monospace;letter-spacing:-.06em}
.dm-nums div small{display:block;margin-top:3px;font-size:11.5px;color:var(--soft);letter-spacing:-.01em}
.dm-chart{flex:1;display:flex;align-items:flex-end;gap:5px}
.dm-chart i{flex:1;height:calc(var(--h)*1%);background:linear-gradient(180deg,var(--c,#c4d6fb),#e7effe);border-radius:4px 4px 2px 2px;transform:scaleY(0);transform-origin:50% 100%;transition:transform 1s var(--ease);transition-delay:calc(var(--i)*55ms)}
.dm.go .dm-chart i{transform:none}

/* panels */
.deck{position:relative}
.pn{position:relative;margin:0 var(--pan);border-radius:24px}
.grain::before{content:'';position:absolute;inset:0;border-radius:inherit;background:url(/assets/home/grain.webp);background-size:180px;opacity:.5;pointer-events:none;z-index:0}
.grain>*{position:relative;z-index:1}
.grain>.bp,.grain>canvas.gl{position:absolute}
.dk::after{content:'';position:absolute;z-index:30;inset:0;border-radius:inherit;background:#0b0a08;opacity:var(--dim,0);pointer-events:none}
.dk{transform-origin:50% calc(100% - 50vh);will-change:transform}

/* pink */
.pk{position:sticky;z-index:1;padding:clamp(40px,5.4vw,84px) clamp(16px,2.4vw,36px) clamp(16px,2.4vw,36px);background:radial-gradient(100% 46% at 14% 100%,rgba(212,125,224,.9),rgba(212,125,224,0)),radial-gradient(80% 36% at 88% 100%,rgba(212,125,224,.72),rgba(212,125,224,0)),radial-gradient(60% 40% at 80% 0,rgba(255,255,255,.34),rgba(255,255,255,0)),var(--pink)}
.pk h2{font-size:var(--d3);padding-left:clamp(0px,1.4vw,24px)}
.pk .inl{filter:saturate(1.7) brightness(.9) contrast(1.05)}
.pk-p{margin:28px 0 0 40%;max-width:440px;font-size:16px;line-height:1.5;letter-spacing:-.014em;color:#42304a}
.st-g{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:clamp(36px,5vw,72px)}
.st{background:#fff;border-radius:14px;padding:20px;display:flex;flex-direction:column;box-shadow:var(--sh);cursor:pointer;transform-style:preserve-3d;transition:transform .6s var(--ease),box-shadow .35s;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
.st:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 0 0 1px rgba(28,28,27,.05),0 40px 60px -30px rgba(66,10,80,.5)}
.st:active{transform:perspective(900px) scale(.985)}
.st.spot::before{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--c) 22%,transparent),transparent 62%)}
.st-t{display:flex;align-items:center;gap:8px}
.st-t b{font-size:18px;font-weight:700;letter-spacing:-.045em}
.st-t u{margin-left:auto;text-decoration:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f1f1ee;font-size:14px;transition:background-color .25s,color .25s,transform .5s var(--spring)}
.st:hover .st-t u{background:var(--ink);color:#fff;transform:rotate(-45deg) scale(1.08)}
.st-b{position:relative;margin-top:18px;height:70px}
.spk{position:absolute;right:0;bottom:4px;width:54%;height:60px;overflow:visible}
.spk-l{fill:none;stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s var(--ease) .25s}
.spk-f{opacity:0;transition:opacity 1.2s ease .8s}
.st.in .spk-l{stroke-dashoffset:0}
.st.in .spk-f{opacity:.2}
.odo{position:relative;z-index:1;display:inline-flex;font:600 clamp(48px,5.8vw,74px)/1 'Geist Mono',monospace;letter-spacing:-.06em}
.od-d{display:inline-block;height:1em;overflow:hidden}
.od-c{display:block;transition:transform 1.9s var(--ease);transition-delay:calc(var(--i)*90ms)}
.od-c i{display:block;height:1em;font-style:normal}
.st.in .od-c,.cs-big.in .od-c{transform:translateY(calc(var(--d)*-1em))}
.st-l{margin-top:4px;font-size:14px;font-weight:600;letter-spacing:-.025em}
.st .log{margin-top:14px;padding:12px;background:#f5f5f2;border-radius:8px;font-size:13.5px;line-height:1.45;color:var(--soft);letter-spacing:-.01em;flex:1}
.mini{display:flex;gap:26px;margin-top:16px}
.mini dt{font-size:11.5px;color:var(--mute);letter-spacing:-.01em}
.mini dd{margin-top:3px;font:600 16px/1.1 'Geist Mono',monospace;letter-spacing:-.05em}
.st-f{display:flex;align-items:center;gap:9px;margin-top:16px;font-size:12.5px;font-weight:600;letter-spacing:-.018em}
.st-f i{position:relative;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--c) 34%,#fff)}
.st-f i::after{content:'';position:absolute;inset:6px;border-radius:50%;background:var(--c);animation:pulse 1.9s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(.6);opacity:.55}}

/* calculator */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,48px);margin-top:12px;background:#fff;border-radius:14px;padding:clamp(20px,2.4vw,36px);box-shadow:var(--sh);overflow:hidden}
.calc::before{background:radial-gradient(520px circle at var(--mx,50%) var(--my,50%),rgba(243,181,246,.28),transparent 62%)}
.calc-l h3{margin:10px 0 22px;font-size:clamp(24px,2.6vw,36px);font-weight:600;letter-spacing:-.05em;line-height:1.1}
.rg{display:grid;grid-template-columns:1fr auto;gap:8px 12px;margin-top:16px}
.rg label{font-size:14px;color:var(--soft);letter-spacing:-.014em}
.rg output{font:600 15px/1.3 'Geist Mono',monospace;letter-spacing:-.04em}
.rg input{grid-column:1/-1;-webkit-appearance:none;appearance:none;width:100%;height:26px;background:none;cursor:grab;--p:50%}
.rg input:active{cursor:grabbing}
.rg input::-webkit-slider-runnable-track{height:6px;border-radius:9px;background:linear-gradient(90deg,var(--ink) var(--p),#e6e6e1 var(--p))}
.rg input::-moz-range-track{height:6px;border-radius:9px;background:linear-gradient(90deg,var(--ink) var(--p),#e6e6e1 var(--p))}
.rg input::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-10px;border-radius:50%;background:conic-gradient(from 210deg,var(--lemon),var(--pink),var(--peri),var(--lime),var(--lemon));box-shadow:0 0 0 3px #fff,0 3px 12px rgba(0,0,0,.28);transition:transform .45s var(--spring)}
.rg input::-moz-range-thumb{width:26px;height:26px;border:0;border-radius:50%;background:var(--pink);box-shadow:0 0 0 3px #fff,0 3px 12px rgba(0,0,0,.28)}
.rg input:active::-webkit-slider-thumb{transform:scale(1.2)}
.calc-r{position:relative;display:flex;align-items:flex-end;justify-content:flex-end;min-height:320px;border-radius:10px;background:#f6f4f7;overflow:hidden;padding:22px}
.calc-b{position:absolute;left:50%;top:44%;width:min(66%,380px);height:auto;margin-left:calc(min(66%,380px)/-2);transform:translateY(-50%) scale(var(--s,.6));transition:none;pointer-events:none;will-change:transform}
.calc-o{position:relative;width:100%}
.calc-n{display:block;margin-top:6px;font:600 clamp(40px,5.2vw,76px)/1 'Geist Mono',monospace;letter-spacing:-.07em}
.calc-y{margin-top:8px;font-size:14px;letter-spacing:-.014em}
.calc-t{margin-top:4px;font-size:12px;color:var(--soft);letter-spacing:-.008em}

/* lemon */
.ye-w{position:relative;z-index:2;height:calc(100vh*3.7);margin-top:12px}
.ye{position:sticky;top:12px;height:calc(100vh - 24px);overflow:hidden;background:radial-gradient(90% 70% at 50% 50%,rgba(255,255,255,.34),rgba(255,255,255,0)),radial-gradient(120% 80% at 50% 110%,rgba(242,220,76,.85),rgba(242,220,76,0)),var(--lemon);padding:clamp(70px,8vh,110px) clamp(20px,5.2vw,84px) clamp(30px,5vh,60px);display:flex;flex-direction:column}
.ye h2{font-size:min(var(--d2),17vh);position:relative;z-index:3}
.ye-2{margin-top:auto;text-align:right}
.ye-n{position:absolute;z-index:4;right:clamp(18px,2.4vw,36px);top:clamp(70px,8vh,96px);--t:#fff}
.ye-b{left:50%;top:50%;width:min(62vw,88vh);margin-left:calc(min(62vw,88vh)/-2);margin-top:calc(min(62vw,88vh)*-.58)}
.drum-w{position:absolute;z-index:2;left:0;right:0;top:0;bottom:0;perspective:1500px;pointer-events:none;-webkit-mask:linear-gradient(180deg,transparent 8%,#000 34%,#000 66%,transparent 92%);mask:linear-gradient(180deg,transparent 8%,#000 34%,#000 66%,transparent 92%)}
.drum{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;transform:translateZ(-520px)}
.fd{position:absolute;left:-235px;top:-54px;width:470px;min-height:108px;background:#fff;border-radius:14px;padding:15px 16px 15px;backface-visibility:hidden;box-shadow:0 0 0 1px rgba(28,28,27,.04),0 18px 40px -22px rgba(90,80,0,.5);will-change:transform,opacity;pointer-events:auto}
.fd.dup{display:none}
.fd-h{display:flex;align-items:center;gap:8px;font:500 12px/1 'Geist Mono',monospace;color:var(--mute);letter-spacing:-.01em}
.fd-h span:first-child{margin-right:auto}
.fd .tg{background:var(--c);color:var(--ink);font-size:11.5px}
.fd .ok{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font:700 12px/1 Geist,sans-serif;transform:scale(0);transition:transform .55s var(--spring)}
.fd.dn .ok{transform:none}
.fd h3{margin-top:11px;font-size:17px;font-weight:600;letter-spacing:-.035em;line-height:1.25}
.fd p{margin-top:3px;font-size:13.5px;color:var(--soft);letter-spacing:-.012em;line-height:1.35}

/* blue */
.bl{position:sticky;z-index:3;margin-top:-100vh;padding:clamp(44px,5.8vw,92px) 0 clamp(36px,4.6vw,72px);background:radial-gradient(90% 60% at 80% 100%,rgba(163,190,246,.95),rgba(163,190,246,0)),radial-gradient(60% 50% at 10% 0,rgba(255,255,255,.4),rgba(255,255,255,0)),var(--peri);overflow:hidden}
.bl-t{padding:0 clamp(20px,5.2vw,84px)}
.bl h2{font-size:var(--d3)}
.bl-r{margin:26px 0 0 44%;max-width:430px}
.bl-r p{font-size:16px;line-height:1.5;letter-spacing:-.014em;color:#2e3a52}
.ar{display:flex;gap:8px;margin-top:20px}
.ar button{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.6);cursor:pointer;font-size:16px;transition:transform .45s var(--spring),background-color .2s,color .2s}
.ar button:hover{background:var(--ink);color:#fff}
.ar button:active{transform:scale(.88)}
.car{display:flex;gap:14px;margin-top:30px;padding:10px clamp(20px,5.2vw,84px) 14px;overflow-x:auto;scrollbar-width:none;cursor:grab;-webkit-user-select:none;user-select:none}
.car::-webkit-scrollbar{display:none}
.car.drag{cursor:grabbing}
.sp{flex:0 0 clamp(272px,26vw,360px);height:clamp(330px,27vw,400px);perspective:1400px;will-change:transform}
.sp-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .95s var(--ease)}
.sp.fl .sp-in{transform:rotateY(180deg)}
.sp-f,.sp-k{position:absolute;inset:0;border-radius:16px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;box-shadow:0 0 0 1px rgba(28,28,27,.04),0 26px 44px -30px rgba(20,40,110,.6)}
.sp-f{width:100%;text-align:left;background:#fff;cursor:pointer;padding:22px;transition:background-color .3s}
.sp:hover .sp-f{background:#fbfcff}
.sp-f small{font:500 11.5px/1 'Geist Mono',monospace;letter-spacing:.04em;color:#7a89ad}
.sp-f h3{margin-top:auto;font-size:clamp(30px,3vw,42px);font-weight:600;letter-spacing:-.055em;line-height:1.02}
.sp-f em{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:14px;border-top:1px solid var(--line);font-style:normal;font-size:13px;font-weight:600;letter-spacing:-.02em}
.sp-f em i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eef2fd;font-style:normal;font-size:15px;transition:transform .55s var(--spring),background-color .25s,color .25s}
.sp:hover .sp-f em i{transform:rotate(90deg) scale(1.08);background:var(--ink);color:#fff}
.sp-k{transform:rotateY(180deg);background:var(--ink);color:#fff;padding:22px;cursor:pointer}
.sp-by{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:-.02em}
.sp-by i{width:16px;height:16px;border-radius:50%;background:conic-gradient(from 40deg,var(--lemon),var(--pink),var(--peri),var(--lime),var(--lemon))}
.sp-k p{margin-top:14px;font-size:clamp(16px,1.5vw,19px);line-height:1.34;letter-spacing:-.026em}
.sp-r{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);font-size:12.5px;letter-spacing:-.015em;color:rgba(255,255,255,.66)}
.sp-r b{display:block;font-size:14.5px;font-weight:600;color:#fff}
.sp-k a{margin-top:12px;font-size:13.5px;font-weight:600;color:var(--lemon);letter-spacing:-.02em}

/* four places */
.fos{position:relative;z-index:4;background:var(--bg);border-radius:28px 28px 0 0;padding:clamp(70px,9vw,140px) 0 clamp(40px,5vw,80px)}
.fo{position:relative;--r:clamp(150px,23.5vw,370px);padding:0 16px;height:calc(var(--r)*4)}
.fo-w{position:relative;z-index:2;height:100%;pointer-events:none}
.fo h2{display:grid;grid-template-rows:repeat(4,var(--r));align-items:center;height:100%}
.fo .w{display:block;font-size:var(--d1)}
.fo .w:nth-child(even){text-align:right}
.p1{left:12%;top:-3%;width:40%}
.p2{left:37%;top:17%;width:42%}
.p3{left:21%;top:40%;width:37%}
.p4{left:46%;top:56%;width:34%}

/* simulator */
.sim{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:12px;margin:clamp(24px,3vw,48px) var(--pan) 0;padding:12px;background:#171715;border-radius:22px;color:#fff;box-shadow:0 50px 90px -50px rgba(0,0,0,.7)}
.sim-l{padding:clamp(16px,1.8vw,26px);display:flex;flex-direction:column}
.sim-l .lb{color:rgba(255,255,255,.5)}
.sim-f{display:flex;align-items:center;gap:12px;margin-top:14px;height:50px;padding:0 16px;border-radius:12px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);transition:box-shadow .25s}
.sim-f:focus-within{box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6)}
.sim-f label{font-size:13px;color:rgba(255,255,255,.55);letter-spacing:-.012em;white-space:nowrap}
.sim-f input{flex:1;min-width:0;height:100%;font-size:15px;font-weight:600;letter-spacing:-.02em;outline:none;text-align:right}
.sim-f input::placeholder{color:rgba(255,255,255,.45);font-weight:500}
.sim-cs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.sim-cs button{height:32px;padding:0 13px;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:-.018em;color:rgba(255,255,255,.72);background:rgba(255,255,255,.07);cursor:pointer;transition:background-color .2s,color .2s,transform .45s var(--spring)}
.sim-cs button:hover{color:#fff}
.sim-cs button.on{background:#fff;color:var(--ink)}
.sim-cs button:active{transform:scale(.93)}
.sim-t{display:flex;flex-direction:column;margin-top:auto;padding-top:24px}
.tb{border-top:1px solid rgba(255,255,255,.1)}
.tb-h{display:flex;align-items:center;gap:12px;width:100%;padding:14px 0;text-align:left;cursor:pointer}
.tb-h .tg{background:rgba(255,255,255,.1);color:#fff;transition:background-color .3s,color .3s}
.tb-h b{font-size:clamp(17px,1.5vw,20px);font-weight:600;letter-spacing:-.035em;opacity:.62;transition:opacity .25s}
.tb-h:hover b{opacity:1}
.tb.on .tb-h b{opacity:1}
.tb.on .tb-h .tg{background:var(--t);color:var(--ink)}
.tb-x{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.tb.on .tb-x{grid-template-rows:1fr}
.tb-i{min-height:0;overflow:hidden}
.tb-i p{font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.72);letter-spacing:-.012em}
.tb-y{margin-top:12px;padding:12px 14px;border-radius:10px;background:rgba(255,255,255,.07);font-size:13.5px;line-height:1.42;color:rgba(255,255,255,.74);letter-spacing:-.01em}
.tb-y b{display:block;margin-bottom:2px;color:#fff;font-weight:600}
.tb-a{display:inline-block;margin:12px 0 16px;font-size:14px;color:#fff}
.sim-r{display:flex;flex-direction:column;min-width:0}
.sim-st{position:relative;flex:1;min-height:clamp(480px,46vw,640px);border-radius:12px;overflow:hidden;background:#fbfbf9;color:var(--ink);--w:50%}
.sv-l{position:absolute;inset:0;padding:clamp(44px,5vw,58px) clamp(16px,2.6vw,36px) 20px;display:flex;flex-direction:column;background:#fbfbf9;overflow:hidden}
.sv-a{background:#f2f1ee;color:#55534e}
.sv-b{clip-path:inset(0 0 0 var(--w))}
.sv-in{width:min(640px,100%);margin:0 auto;display:flex;flex-direction:column;height:100%;animation:svin .6s var(--ease)}
@keyframes svin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.sim-tg{position:absolute;z-index:4;top:12px;height:26px;padding:0 10px;display:flex;align-items:center;border-radius:999px;font:600 12px/1 Geist,sans-serif;letter-spacing:-.012em;pointer-events:none}
.sta{left:12px;background:#fff;box-shadow:0 0 0 1px var(--line)}
.stb{right:12px;background:var(--ink);color:#fff}
.sim-h{position:absolute;z-index:5;top:0;bottom:0;left:var(--w);width:2px;margin-left:-1px;background:var(--ink);pointer-events:none}
.sim-h i{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-style:normal;font-size:16px;box-shadow:0 0 0 4px rgba(255,255,255,.7),0 10px 24px rgba(0,0,0,.3);transition:transform .45s var(--spring)}
.sim-st:active .sim-h i{transform:scale(1.14)}
.sim-w{position:absolute;z-index:6;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;-webkit-appearance:none;appearance:none}
.sim-c{padding:12px 6px 2px;font-size:12.5px;color:rgba(255,255,255,.6);letter-spacing:-.008em}
.sim-c a{color:#fff}
/* simulated surfaces */
.g-bar{display:flex;align-items:center;gap:10px;height:42px;padding:0 16px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px rgba(28,28,27,.1),0 2px 8px rgba(28,28,27,.05);font-size:14.5px;letter-spacing:-.012em;color:var(--ink);flex:none}
.g-bar i{width:12px;height:12px;border-radius:50%;box-shadow:inset 0 0 0 2px #8b8b85;position:relative}
.g-bar i::after{content:'';position:absolute;right:-3px;bottom:-3px;width:6px;height:2px;background:#8b8b85;transform:rotate(45deg)}
.g-r{margin-top:14px;padding:0 4px}
.g-r small{display:block;font-size:12px;color:var(--mute);letter-spacing:-.01em}
.g-r b{display:block;margin-top:1px;font-size:17px;font-weight:500;letter-spacing:-.022em;color:#2850b8;line-height:1.25}
.g-r p{margin-top:2px;font-size:13px;line-height:1.4;color:#5c5c58;letter-spacing:-.008em}
.sv-a .g-r b{color:#50608a}
.g-r.you{margin-left:-12px;margin-right:-12px;padding:12px 16px;border-radius:12px;background:#fff;box-shadow:0 0 0 1.5px var(--ink),0 18px 34px -22px rgba(0,0,0,.4)}
.g-r.you b{font-weight:600;color:#1b43ad}
.g-r.far{opacity:.62}
.g-sep{display:flex;align-items:center;gap:10px;margin-top:16px;font:500 11px/1 'Geist Mono',monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.g-sep::before,.g-sep::after{content:'';flex:1;height:1px;background:var(--line)}
.g-rt{color:#c9851a;letter-spacing:.04em}
.g-ls{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.g-ls span{padding:5px 10px;border-radius:999px;background:#eff2fb;color:#2850b8;font-size:12px;font-weight:600;letter-spacing:-.012em}
.g-ab{margin-top:14px;padding:16px;border-radius:12px;background:#fff;box-shadow:0 0 0 1px rgba(28,28,27,.09)}
.g-ab>small{display:block;font:500 11px/1 'Geist Mono',monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);margin-bottom:9px}
.g-ab p{font-size:15.5px;line-height:1.46;letter-spacing:-.02em;color:var(--ink)}
.sv-a .g-ab p{color:#55534e}
.g-ab mark{background:linear-gradient(transparent 56%,var(--lime) 56%);color:inherit;font-weight:600}
.g-ab em{display:flex;align-items:center;gap:8px;margin-top:11px;font-style:normal;font-size:12.5px;color:var(--soft);letter-spacing:-.01em}
.g-ab em i{width:16px;height:16px;border-radius:50%;background:var(--c,#d8d8d2)}
.g-pa{margin-top:12px}
.g-pa div{display:flex;justify-content:space-between;padding:10px 2px;border-top:1px solid var(--line);font-size:13.5px;letter-spacing:-.014em}
.ai-u{align-self:flex-end;max-width:84%;padding:9px 14px;border-radius:16px 16px 4px 16px;background:#e9e8e3;font-size:14.5px;letter-spacing:-.016em;color:var(--ink);flex:none}
.ai-a{margin-top:14px;font-size:15px;line-height:1.48;letter-spacing:-.018em;color:var(--ink)}
.sv-a .ai-a{color:#55534e}
.ai-a ol{display:grid;gap:9px;margin-top:10px}
.ai-a li{display:flex;gap:10px;padding:11px 13px;border-radius:12px;background:rgba(255,255,255,.75);box-shadow:0 0 0 1px rgba(28,28,27,.07);font-size:14px;line-height:1.36}
.ai-a li b{font-weight:600;color:var(--ink)}
.ai-a li.you{background:#fff;box-shadow:0 0 0 1.5px var(--ink),0 18px 34px -22px rgba(0,0,0,.4)}
.ai-a li span{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#ececE7;font:600 11px/1 'Geist Mono',monospace}
.ai-a li.you span{background:var(--lime)}
.ai-src{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.ai-src span{padding:5px 10px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--line);font-size:12px;letter-spacing:-.012em}
.ph-row{display:flex;gap:18px;align-items:center;justify-content:center;flex:1;min-height:0}
.ph{position:relative;width:min(230px,58%);height:min(100%,430px);border-radius:28px;padding:9px;background:#191917;box-shadow:0 34px 50px -30px rgba(0,0,0,.6);flex:none}
.ph>div{position:relative;height:100%;border-radius:20px;background:#fff;overflow:hidden;display:flex;flex-direction:column;padding:14px 12px 12px;font-size:12px;letter-spacing:-.012em;color:var(--ink)}
.ph-n{display:flex;justify-content:space-between;font-weight:700;letter-spacing:-.04em;font-size:13px}
.ph-b{height:30%;margin-top:9px;border-radius:9px;background:linear-gradient(135deg,#dfdcd5,#c9c5bb);flex:none}
.ph-t{margin-top:10px;font-size:18px;font-weight:600;letter-spacing:-.05em;line-height:1.08}
.ph-s{margin-top:5px;font-size:11.5px;color:var(--soft);line-height:1.3}
.ph-c{margin-top:auto;height:42px;border-radius:999px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:600;font-size:13px;letter-spacing:-.02em}
.ph-pop{position:absolute;left:12px;right:12px;top:36%;padding:13px;border-radius:12px;background:#fff;box-shadow:0 0 0 1px var(--line),0 18px 34px rgba(0,0,0,.25);font-weight:600;text-align:center;font-size:12.5px}
.ph-pop small{display:block;margin-top:3px;font-weight:500;color:var(--mute)}
.ph-lnk{margin-top:auto;font-size:11px;color:var(--mute);text-align:center;text-decoration:underline}
.ph-side{display:grid;gap:6px;max-width:150px}
.ph-side b{font:600 clamp(36px,4vw,52px)/1 'Geist Mono',monospace;letter-spacing:-.07em;color:var(--ink)}
.ph-side span{font-size:13px;letter-spacing:-.014em;line-height:1.3}

/* services */
.svc{padding:clamp(80px,9vw,150px) var(--pan) 0}
.svc-h{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;padding:0 clamp(8px,1.4vw,24px)}
.svc-h h2{margin-top:18px;font-size:var(--d2)}
.svc-s{flex:0 0 min(370px,30%);padding-bottom:6px}
.svc-s p{font-size:16px;line-height:1.5;letter-spacing:-.014em;color:var(--soft)}
.svc-s a{display:inline-block;margin-top:12px;font-size:15px}
.svc-fl{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:clamp(26px,3vw,44px);padding:0 clamp(8px,1.4vw,24px)}
.svc-fl span{margin-right:8px;font-size:14px;color:var(--soft);letter-spacing:-.012em}
.svc-fl button{height:38px;padding:0 15px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--line);font-size:13.5px;font-weight:600;letter-spacing:-.018em;cursor:pointer;transition:background-color .25s,color .25s,transform .45s var(--spring)}
.svc-fl button:hover{box-shadow:0 0 0 1px var(--ink)}
.svc-fl button:active{transform:scale(.94)}
.svc-fl button[aria-pressed=true]{background:var(--ink);color:#fff}
.svc-g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;margin-top:20px}
.svc-t{position:relative;grid-column:span 3;display:flex;flex-direction:column;height:clamp(440px,35vw,560px);padding:18px;border-radius:22px;overflow:hidden;isolation:isolate;background:#fff;color:var(--ink);box-shadow:var(--sh);transition:translate .7s var(--ease),scale .6s var(--ease),opacity .45s,filter .45s}
.js .svc-t{opacity:0}
.js .svc-t.in{opacity:1;animation:svcIn 1.1s var(--ease) backwards;animation-delay:calc(var(--n,0)*90ms)}
@keyframes svcIn{from{opacity:0;translate:0 36px}}
.svc-t:hover{translate:0 -6px}
.js .svc-t.in.dim{opacity:.24;filter:saturate(.3);scale:.975}
.svc-t.wide{grid-column:span 6;flex-direction:row;gap:20px}
.svc-t::after{content:'';position:absolute;z-index:0;inset:0;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.42),transparent 62%);opacity:0;transition:opacity .35s;pointer-events:none}
.svc-t:hover::after{opacity:1}
.svc-ink::after{background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.1),transparent 62%)}
.svc-t>*{position:relative;z-index:1}
.svc-lemon{background:radial-gradient(100% 70% at 22% 100%,rgba(242,220,76,.9),rgba(242,220,76,0)),var(--lemon)}
.svc-pink{background:radial-gradient(100% 60% at 80% 100%,rgba(212,125,224,.75),rgba(212,125,224,0)),var(--pink)}
.svc-peri{background:radial-gradient(100% 60% at 20% 100%,rgba(163,190,246,.95),rgba(163,190,246,0)),var(--peri)}
.svc-lime{background:radial-gradient(100% 60% at 80% 100%,rgba(175,226,90,.9),rgba(175,226,90,0)),var(--lime)}
.svc-ink{background:radial-gradient(80% 70% at 85% 0,#33322f,rgba(51,50,47,0)),var(--ink);color:#fff}
.svc-t:not(.wide) .svc-c{display:contents}
.svc-t.wide .svc-c{flex:0 0 41%;min-width:0;display:flex;flex-direction:column;justify-content:space-between}
.svc-n{order:1;height:36px;display:flex;align-items:center;color:inherit;opacity:.62}
.svc-v{order:2;position:relative;flex:1 1 0;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:14px}
.svc-tx{order:3}
.svc-white .svc-v{background:#f4f4f1;padding:14px}
.svc-go{position:absolute;z-index:3;right:16px;top:16px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:16px;background:rgba(255,255,255,.72);color:var(--ink);transition:background-color .25s,color .25s,transform .55s var(--spring)}
.svc-white .svc-go{background:#f0f0ec}
.svc-ink .svc-go{background:rgba(255,255,255,.14);color:#fff}
.svc-t:hover .svc-go{background:var(--ink);color:#fff;transform:rotate(45deg) scale(1.08)}
.svc-ink:hover .svc-go{background:#fff;color:var(--ink)}
.svc-tx h3{font-size:clamp(34px,3.75vw,62px)}
.svc-tx p{margin-top:8px;font-size:14.5px;line-height:1.42;letter-spacing:-.014em;opacity:.78}
.svc-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.svc-t:hover .svc-more,.svc-t:focus-visible .svc-more{grid-template-rows:1fr}
.svc-more>div{min-height:0;overflow:hidden}
.svc-more ul{display:flex;flex-wrap:wrap;gap:5px;padding-top:11px}
.svc-more li{padding:5px 9px;border-radius:999px;background:rgba(28,28,27,.09);font-size:12px;font-weight:600;letter-spacing:-.016em;white-space:nowrap}
.svc-ink .svc-more li{background:rgba(255,255,255,.13)}
.svc-g:not(.live) .svc-v *{animation-play-state:paused!important}

/* service demos */
.svc-seo{width:100%;max-width:420px;--rh:46px}
.svc-bar{display:flex;align-items:center;gap:9px;height:44px;padding:0 15px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px rgba(28,28,27,.05),0 12px 26px -16px rgba(90,80,0,.6);font-size:14px;letter-spacing:-.015em;white-space:nowrap;overflow:hidden}
.svc-bar i{flex:none;position:relative;width:12px;height:12px;border-radius:50%;box-shadow:inset 0 0 0 2px #8b8b85}
.svc-bar i::after{content:'';position:absolute;right:-3px;bottom:-3px;width:6px;height:2px;background:#8b8b85;transform:rotate(45deg)}
.svc-rows{position:relative;height:calc(var(--rh)*5);margin-top:10px}
.svc-row{--p:0;position:absolute;left:0;right:0;top:0;height:calc(var(--rh) - 6px);display:flex;align-items:center;gap:10px;padding:0 13px;border-radius:11px;background:rgba(255,255,255,.6);font-size:14px;font-weight:600;letter-spacing:-.026em;transform:translateY(calc(var(--p)*var(--rh)));transition:transform .8s var(--spring)}
.svc-row b{width:14px;font:500 12px/1 'Geist Mono',monospace;color:var(--mute)}
.svc-row.you{z-index:2;background:#fff;box-shadow:0 0 0 1.5px var(--ink),0 16px 28px -16px rgba(90,80,0,.7)}
.svc-wins{display:flex;gap:6px;margin-top:6px}
.svc-wins span{flex:1;height:32px;display:grid;place-items:center;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:-.018em;white-space:nowrap;background:rgba(255,255,255,.42);color:rgba(28,28,27,.5);transition:background-color .35s,color .35s,transform .55s var(--spring)}
.svc-wins span.on{background:var(--ink);color:#fff;transform:scale(1.03)}

.svc-brand{display:flex;align-items:center;justify-content:center;gap:16px;width:100%}
.svc-aa{position:relative;width:138px;height:128px;flex:none}
.svc-aa span{position:absolute;inset:0;display:grid;place-items:center;font-size:104px;line-height:1;color:var(--ink);opacity:0;animation:svcAa 8s infinite;animation-delay:calc(var(--n)*2s)}
@keyframes svcAa{0%{opacity:0;transform:translateY(16px)}3%,22%{opacity:1;transform:none}25%,100%{opacity:0;transform:translateY(-16px)}}
.svc-sw{display:flex;flex-direction:column;gap:6px;width:62px;flex:none}
.svc-sw i{display:block;height:calc(var(--h)*1px);border-radius:10px;background:var(--c);transform-origin:0 50%;animation:svcSw 3.6s var(--ease) infinite alternate;animation-delay:calc(var(--n)*-.8s)}
@keyframes svcSw{from{transform:scaleX(.58)}to{transform:scaleX(1)}}

.svc-ux{position:relative;width:min(226px,88%);height:min(190px,92%)}
.svc-fr{position:absolute;inset:0;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px;background:#fff}
.svc-fr.wf{box-shadow:inset 0 0 0 1.5px rgba(28,28,27,.16)}
.svc-fr.wf i{display:block;border-radius:5px;background:#e8e8e3;height:10px}
.svc-fr.wf i:first-child{height:46%}
.svc-fr.wf i:last-child{margin-top:auto;height:30px;border-radius:999px}
.svc-fr.ui{box-shadow:0 22px 36px -22px rgba(0,0,0,.5);animation:svcWipe 6.4s var(--io) infinite}
@keyframes svcWipe{0%,12%{clip-path:inset(-40px 100% -40px -40px)}42%,86%{clip-path:inset(-40px -40px -40px -40px)}100%{clip-path:inset(-40px 100% -40px -40px)}}
.svc-fr.ui u{display:block;height:46%;border-radius:8px;background:linear-gradient(135deg,var(--peri),var(--pink))}
.svc-fr.ui b{font-size:15px;font-weight:600;letter-spacing:-.035em;line-height:1.1}
.svc-fr.ui small{margin-top:-5px;font-size:11.5px;color:var(--soft);letter-spacing:-.01em}
.svc-fr.ui em{margin-top:auto;height:30px;display:grid;place-items:center;border-radius:999px;background:var(--ink);color:#fff;font-style:normal;font-size:12.5px;font-weight:600;letter-spacing:-.02em;animation:svcTap 6.4s infinite}
@keyframes svcTap{0%,62%,70%,100%{transform:none}66%{transform:scale(.93)}}
.svc-arrow{position:absolute;z-index:3;left:6%;top:12%;width:20px;height:24px;animation:svcMove 6.4s var(--ease) infinite;filter:drop-shadow(0 3px 5px rgba(0,0,0,.35))}
@keyframes svcMove{0%,36%{transform:translate(0,0)}60%,78%{transform:translate(110px,132px)}100%{transform:translate(0,0)}}

.svc-ai{position:relative;display:grid;gap:12px;width:min(272px,94%)}
.svc-ai::before{content:'';position:absolute;left:24px;top:22px;bottom:22px;width:2px;background:rgba(28,28,27,.18)}
.svc-node{position:relative;display:flex;align-items:center;gap:11px;height:48px;padding:0 13px;border-radius:13px;background:rgba(255,255,255,.62);font-size:13.5px;font-weight:600;letter-spacing:-.026em;animation:svcNode 6.6s infinite;animation-delay:calc(var(--n)*1.3s)}
.svc-node i{flex:none;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#fff;box-shadow:0 0 0 1px var(--line);font:500 11px/1 'Geist Mono',monospace;font-style:normal}
@keyframes svcNode{0%,3%,34%,100%{background:rgba(255,255,255,.62);box-shadow:none;transform:none}9%,26%{background:#fff;box-shadow:0 0 0 1.5px var(--ink),0 16px 26px -16px rgba(20,40,110,.7);transform:translateX(5px)}}

.svc-shop{position:relative;width:min(192px,76%)}
.svc-pcard{background:#fff;border-radius:16px;padding:8px 8px 10px;box-shadow:0 26px 40px -26px rgba(50,90,0,.7)}
.svc-pcard img{display:block;width:100%;height:clamp(90px,8.4vw,126px);object-fit:cover;object-position:50% 30%;border-radius:10px}
.svc-pcard b{display:block;margin:9px 4px 0;font-size:13.5px;font-weight:600;letter-spacing:-.03em}
.svc-add{display:grid;place-items:center;height:34px;margin-top:8px;border-radius:999px;background:var(--ink);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:-.02em;transition:transform .25s var(--spring)}
.svc-shop.tap .svc-add{transform:scale(.92)}
.svc-cart{position:absolute;right:-18px;top:-16px;width:46px;height:46px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;box-shadow:0 12px 22px -10px rgba(0,0,0,.55)}
.svc-cart b{position:absolute;right:-3px;top:-3px;min-width:21px;height:21px;padding:0 4px;border-radius:999px;background:#fff;color:var(--ink);font:600 11px/21px 'Geist Mono',monospace;text-align:center;box-shadow:0 0 0 1px var(--line)}
.svc-shop.tap .svc-cart{animation:svcPop .55s var(--ease)}
@keyframes svcPop{40%{transform:scale(1.22) rotate(-8deg)}}

.svc-app{display:flex;align-items:center;gap:14px;width:100%}
.svc-code{flex:1;min-width:0;padding:15px;border-radius:13px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);font:500 clamp(11px,.92vw,13px)/1.8 'Geist Mono',monospace;color:rgba(255,255,255,.84);letter-spacing:-.03em;overflow:hidden}
.svc-code div{white-space:pre;overflow:hidden;width:0;animation:svcType 7.4s steps(30) infinite;animation-delay:calc(var(--n)*.5s)}
.svc-code span{color:var(--lemon)}.svc-code em{font-style:normal;color:var(--peri)}
@keyframes svcType{0%{width:0}13%,84%{width:100%}96%,100%{width:0}}
.svc-phone{flex:0 0 clamp(96px,8.6vw,126px);aspect-ratio:9/18.5;border-radius:22px;padding:6px;background:#34332f;box-shadow:0 26px 40px -22px #000}
.svc-phone>div{height:100%;border-radius:17px;background:#fff;padding:9px;display:flex;flex-direction:column;gap:6px;overflow:hidden}
.svc-phone i{display:block;border-radius:6px;background:var(--c);height:calc(var(--h)*1px);transform-origin:50% 100%;animation:svcBlock 7.4s var(--ease) infinite;animation-delay:calc(1.4s + var(--n)*.34s)}
@keyframes svcBlock{0%{opacity:0;transform:scale(.8)}9%,70%{opacity:1;transform:none}82%,100%{opacity:0;transform:scale(.8)}}

.svc-gr{width:min(372px,100%);display:grid;gap:10px}
.svc-gr>.lb{justify-self:start}
.svc-abs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.svc-var{position:relative;padding:14px;border-radius:13px;background:#fff;box-shadow:0 0 0 1px var(--line)}
.svc-var small{font:500 11.5px/1 'Geist Mono',monospace;color:var(--mute)}
.svc-var b{display:block;margin-top:9px;font:600 clamp(28px,3vw,40px)/1 'Geist Mono',monospace;letter-spacing:-.07em}
.svc-var.win{animation:svcWin 6s infinite}
@keyframes svcWin{0%,22%,92%,100%{box-shadow:0 0 0 1px var(--line)}32%,84%{box-shadow:0 0 0 2px var(--ink)}}
.svc-var em{position:absolute;right:10px;top:10px;padding:4px 8px;border-radius:999px;background:var(--leaf);font-style:normal;font-size:11px;font-weight:600;letter-spacing:-.015em;animation:svcChip 6s var(--ease) infinite}
@keyframes svcChip{0%,24%,90%,100%{opacity:0;transform:scale(.7)}34%,82%{opacity:1;transform:none}}
.svc-bud{padding:13px 14px;border-radius:13px;background:#fff;box-shadow:0 0 0 1px var(--line)}
.svc-bud p{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;letter-spacing:-.018em}
.svc-bud div{display:flex;gap:4px;height:14px;margin-top:9px}
.svc-bud i{display:block;height:100%;border-radius:5px}
.svc-bud i:first-child{background:#d9d9d3;animation:svcBudA 6s var(--ease) infinite}
.svc-bud i:last-child{flex:1;background:var(--ink)}
@keyframes svcBudA{0%,28%,92%,100%{width:50%}46%,84%{width:16%}}

.svc-so{position:absolute;inset:0;overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.svc-reel{display:flex;align-items:center;gap:10px;width:max-content;height:100%;animation:svcReel 30s linear infinite}
@keyframes svcReel{to{transform:translateX(-50%)}}
.svc-post{position:relative;flex:none;width:clamp(128px,11.6vw,176px);aspect-ratio:9/14.5;border-radius:15px;overflow:hidden;background:#333}
.svc-post img{width:100%;height:100%;object-fit:cover}
.svc-post::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.45))}
.svc-post i{position:absolute;z-index:2;left:12px;bottom:10px;width:30px;height:5px;border-radius:9px;background:rgba(255,255,255,.85)}
.svc-post i+i{bottom:20px;width:54px;background:rgba(255,255,255,.55)}
.svc-ht{position:absolute;z-index:3;right:calc(var(--x)*1%);bottom:12%;color:#ff5f88;font-size:calc(var(--s)*1px);font-style:normal;line-height:1;opacity:0;animation:svcHeart 4.2s ease-out infinite;animation-delay:calc(var(--n)*.7s)}
@keyframes svcHeart{0%{opacity:0;transform:translateY(0) scale(.5) rotate(-8deg)}10%{opacity:1;transform:translateY(-12px) scale(1.1)}60%{opacity:.9}85%,100%{opacity:0;transform:translateY(-180px) scale(1) rotate(10deg)}}

@media(hover:none){
  .svc-t{height:auto;min-height:clamp(440px,48vw,560px)}
  .svc-more{grid-template-rows:1fr}
  .svc-v{flex:1 1 220px}
}
@media(max-width:1100px){
  .svc-t{grid-column:span 6}
  .svc-t.wide{grid-column:span 12;height:clamp(400px,48vw,500px)}
}
@media(max-width:640px){
  .svc-h{flex-direction:column;align-items:flex-start;gap:16px}
  .svc-s{flex:none}
  .svc-fl span{flex-basis:100%;margin-bottom:2px}
  .svc-t,.svc-t.wide{grid-column:span 12;flex-direction:column;gap:0;height:auto;min-height:0}
  .svc-t.wide .svc-c{display:contents}
  .svc-v{flex:none;height:300px;margin:4px 0 14px}
  .svc-seo{--rh:40px}
  .svc-more{grid-template-rows:1fr}
  .svc-post{width:138px}
}

/* lime */
.li{margin-top:clamp(20px,2vw,32px);background:radial-gradient(100% 60% at 20% 100%,rgba(175,226,90,.85),rgba(175,226,90,0)),radial-gradient(60% 50% at 90% 0,rgba(255,255,255,.42),rgba(255,255,255,0)),var(--lime);padding:clamp(44px,6.5vw,104px) clamp(20px,5.2vw,84px)}
.li-t{display:grid;grid-template-columns:20% 1fr}
.li-t .tg{justify-self:start;margin-top:10px}
.li h2{font-size:var(--d2)}
.li-p{margin-top:24px;max-width:560px;font-size:18px;line-height:1.45;letter-spacing:-.02em}
.ls{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:52px}
.lc{display:flex;flex-direction:column;background:#fff;border-radius:14px;padding:12px 12px 22px;box-shadow:var(--sh);transition:translate .6s var(--ease)}
.lc:hover{translate:0 -6px}
.lc.spot::before{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(211,244,143,.42),transparent 62%)}
.lv{height:110px;border-radius:9px;background:#f4f4f1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:14px}
.lc h3{margin:18px 12px 0;font-size:20px;font-weight:600;letter-spacing:-.04em;line-height:1.2}
.lc p{margin:7px 12px 0;font-size:14px;line-height:1.48;color:var(--soft);letter-spacing:-.012em}
.lc.ks{position:relative;background:var(--ink);color:#fff;padding:0;overflow:hidden;min-height:260px;justify-content:flex-end;box-shadow:none}
.lc.ks img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.46;transition:transform 1.4s var(--ease),opacity .4s}
.lc.ks:hover img{transform:scale(1.06);opacity:.6}
.lc.ks span{position:relative;padding:24px;font-size:21px;line-height:1.24;font-weight:600;letter-spacing:-.04em}
.lc.ks u{text-underline-offset:3px;text-decoration-thickness:1.5px}
.v-url{display:flex;align-items:center;gap:8px;width:100%;height:44px;padding:0 6px 0 16px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--line);font-size:13.5px;letter-spacing:-.015em}
.v-url i{margin-left:auto;width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-style:normal;font-size:13px}
.v-url span::after{content:'';display:inline-block;width:1.5px;height:14px;margin-left:2px;vertical-align:-2px;background:var(--ink);animation:bk 1s steps(1) infinite}
@keyframes bk{50%{opacity:0}}
.v-dial{display:flex;align-items:center;gap:16px}
.v-dial svg{width:82px;height:82px;transform:rotate(-90deg)}
.v-dial circle{fill:none;stroke-width:8;stroke:#e4e4df}
.v-dial circle+circle{stroke:var(--ink);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease) .2s}
.lc.in .v-dial circle+circle{stroke-dashoffset:.42}
.v-dial div{font-size:12.5px;letter-spacing:-.012em;color:var(--soft);line-height:1.3}
.v-dial div b{display:block;font:600 30px/1 'Geist Mono',monospace;letter-spacing:-.07em;color:var(--ink)}
.v-doc{width:100%;display:grid;gap:7px;padding:12px 14px;background:#fff;border-radius:7px;box-shadow:0 0 0 1px var(--line)}
.v-doc div{display:flex;justify-content:space-between;font-size:12.5px;letter-spacing:-.012em}
.v-doc div:last-child{padding-top:7px;border-top:1px solid var(--line);font-weight:600}
.v-gantt{width:100%;display:grid;gap:7px}
.v-gantt i{display:block;height:13px;border-radius:9px;background:var(--c);margin-left:var(--l);width:var(--w);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.1s var(--ease);transition-delay:calc(var(--n)*110ms)}
.lc.in .v-gantt i{transform:none}
.v-bars{width:100%;height:100%;display:flex;align-items:flex-end;gap:6px}
.v-bars i{flex:1;height:calc(var(--h)*1%);border-radius:4px 4px 2px 2px;background:var(--ink);opacity:calc(.25 + var(--i)*.1);transform:scaleY(0);transform-origin:50% 100%;transition:transform 1s var(--ease);transition-delay:calc(var(--i)*60ms)}
.lc.in .v-bars i{transform:none}

/* who */
.wh{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,4vw,64px);padding:clamp(70px,9vw,140px) var(--gut) 0;align-items:start}
.wh-v{position:sticky;top:12px;height:calc(100vh - 24px);border-radius:20px;overflow:hidden;background:#ddd}
.wh-v figure{position:absolute;inset:0;clip-path:inset(100% 0 0 0);transition:clip-path 1.05s var(--io);z-index:1}
.wh-v figure.on{clip-path:inset(0);z-index:2}
.wh-v figure.was{clip-path:inset(0);z-index:1}
.wh-v img{width:100%;height:100%;object-fit:cover;transform:scale(1.14);transition:transform 1.7s var(--ease)}
.wh-v figure.on img{transform:none}
.wh-v figcaption{position:absolute;left:14px;bottom:14px;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-size:14px;font-weight:600;letter-spacing:-.022em}
.wh-r{padding-top:clamp(8px,4vh,48px)}
.wh-r h2{margin-top:18px;font-size:clamp(34px,4.1vw,64px);font-weight:600;letter-spacing:-.055em;line-height:1.05}
.wh-lead{margin-top:16px;max-width:520px;font-size:17px;line-height:1.45;letter-spacing:-.016em;color:var(--soft)}
.wh-l{margin-top:clamp(30px,5vh,56px)}
.wi{padding:clamp(20px,3vh,32px) 0;border-top:1px solid var(--line)}
.wi-b{display:block;width:100%;text-align:left;cursor:pointer}
.wi-n{display:block;font-size:clamp(38px,4.8vw,86px);color:#c9c9c3;transition:color .4s,transform .7s var(--ease);transform-origin:0 50%}
.wi.on .wi-n{color:var(--ink);transform:translateX(6px)}
.wi-t{display:block;margin-top:9px;font-size:clamp(16px,1.3vw,19px);font-weight:500;line-height:1.3;letter-spacing:-.024em;color:var(--soft);transition:color .4s}
.wi.on .wi-t{color:var(--ink)}
.wi-x{display:grid;grid-template-rows:1fr}
.wi-i{min-height:0;overflow:hidden;opacity:.36;transition:opacity .5s}
.wi.on .wi-i{opacity:1}
.wi-m{display:none;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;margin-top:14px}
.wi-g{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(18px,2.6vw,40px);margin-top:14px}
.wi-s{font-size:15px;line-height:1.5;color:var(--soft);letter-spacing:-.013em}
.wi-g .lb{display:block;margin-bottom:6px}
.wi-c{display:block;font-size:15.5px;font-weight:600;line-height:1.32;letter-spacing:-.028em}
.wi-pf{margin-top:9px;font-size:14px;line-height:1.35;color:var(--soft);letter-spacing:-.013em}
.wi-pf b{font:600 15px/1 'Geist Mono',monospace;letter-spacing:-.05em;color:var(--ink)}
.wi-a{display:inline-block;margin-top:9px;font-size:14px;letter-spacing:-.014em}
.wh-no{padding:clamp(22px,3.4vh,34px) 0 16vh;border-top:1px solid var(--line)}
.wh-no h3{font-size:clamp(24px,2.2vw,34px);font-weight:600;letter-spacing:-.045em;line-height:1.1}
.wh-no p{margin-top:8px;max-width:520px;font-size:15.5px;line-height:1.5;color:var(--soft);letter-spacing:-.013em}
.wh-no a{display:inline-block;margin-top:12px;font-size:15px}

/* final */
.fi{padding:clamp(100px,13vw,220px) 16px clamp(70px,8vw,120px);text-align:center}
.fi h2{font-size:var(--d1)}
.fi-s{margin-top:36px;font-size:17px;color:var(--soft);letter-spacing:-.014em}
.fic{position:relative;width:min(580px,100%);margin:44px auto 0;padding:28px 18px 26px;background:#fff;border-radius:16px;box-shadow:var(--sh)}
.cn{position:absolute;width:5px;height:5px;background:#d7d7d2;border-radius:50%}
.c1{left:9px;top:9px}.c2{right:9px;top:9px}.c3{left:9px;bottom:9px}.c4{right:9px;bottom:9px}
.scan{position:relative;display:flex;align-items:center;height:62px;padding:6px 6px 6px 24px;background:#f1f1ee;border-radius:999px;transition:background-color .3s}
.scan::before{content:'';position:absolute;inset:-2px;border-radius:999px;padding:2px;background:conic-gradient(from var(--a,0deg),var(--lemon),var(--pink),var(--peri),var(--lime),var(--lemon));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;transition:opacity .3s;animation:spin 4s linear infinite;pointer-events:none}
.scan:focus-within::before{opacity:1}
.scan:focus-within{background:#fff}
.scan input{flex:1;min-width:0;height:100%;font-size:16px;outline:none;letter-spacing:-.012em}
.scan input::placeholder{color:var(--mute)}
.scan .b{height:50px}
.fic small{display:block;margin-top:16px;font-size:12.5px;color:var(--mute)}
.fic .b.ln2{margin-top:16px;height:44px;background:#fff;box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink)}
.fic .b.ln2:hover{background:var(--ink);color:#fff}

/* footer */
.ft{position:relative;margin:0 var(--pan) var(--pan);padding:clamp(40px,5vw,80px) clamp(20px,2.4vw,36px) 26px;background:radial-gradient(70% 50% at 50% 0,#2c2b29,rgba(44,43,41,0)),var(--ink);color:#fff;border-radius:24px;overflow:hidden}
.ft-y{position:relative;height:clamp(190px,33vw,560px);margin:0 auto;touch-action:pan-y}
.ly{left:9%;top:10%;width:25%}
.lo{left:32%;top:12%;width:25%}
.lu{left:55%;top:10%;width:24%}
.ld{left:79%;top:50%;width:11%}
.ft-t{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-top:clamp(20px,3vw,46px);padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.14)}
.ft-t p{max-width:290px;font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.72);letter-spacing:-.012em}
.ft-t a{font-size:20px;font-weight:600;letter-spacing:-.035em;margin-right:18%}
.ft-a{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:30px 0;border-bottom:1px solid rgba(255,255,255,.14);align-items:center}
.ft-a h2{font-size:clamp(28px,3vw,42px);font-weight:600;letter-spacing:-.05em;line-height:1.08}
.ft-a p{margin-top:10px;max-width:420px;font-size:14px;line-height:1.5;color:rgba(255,255,255,.72);letter-spacing:-.012em}
.pl{display:flex;flex-wrap:wrap;gap:8px}
.pl a{display:inline-flex;align-items:center;height:42px;padding:0 17px;border-radius:999px;background:rgba(255,255,255,.1);font-size:13px;font-weight:600;letter-spacing:-.015em;transition:background-color .2s,color .2s,transform .45s var(--spring)}
.pl a:hover{background:#fff;color:var(--ink)}
.pl a:active{transform:scale(.94)}
.ft-c{display:grid;grid-template-columns:repeat(5,1fr);gap:28px 18px;padding:34px 0 40px}
.ft-c h3{font-size:13px;font-weight:600;color:rgba(255,255,255,.55);letter-spacing:-.01em;margin-bottom:12px}
.ft-c a{display:block;padding:4px 0;font-size:14px;letter-spacing:-.015em;transition:opacity .2s,translate .5s var(--ease)}
.ft-c a:hover{opacity:.62;translate:4px 0}
.ft-m{display:flex;justify-content:space-between;gap:20px;font-size:12px;color:rgba(255,255,255,.5);letter-spacing:-.005em}

/* case file */
.cs{position:fixed;inset:0 0 0 auto;width:min(760px,100vw);height:100dvh;max-width:none;max-height:none;margin:0 0 0 auto;border:0;background:#fff;color:var(--ink);overflow:hidden;transform:translateX(102%);transition:transform .85s var(--io),overlay .85s allow-discrete,display .85s allow-discrete}
.cs[open].on{transform:none}
.cs::backdrop{background:rgba(12,10,8,0);transition:background-color .6s}
.cs[open].on::backdrop{background:rgba(12,10,8,.52)}
.cs-in{height:100%;overflow-y:auto;overscroll-behavior:contain}
.cs-x{position:absolute;z-index:5;right:16px;top:16px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 0 0 1px var(--line),0 8px 20px rgba(0,0,0,.14);cursor:pointer;font-size:18px;transition:transform .55s var(--spring),background-color .2s,color .2s}
.cs-x:hover{transform:rotate(90deg);background:var(--ink);color:#fff}
.cs-fig{height:clamp(240px,40vh,420px);overflow:hidden;background:#ddd}
.cs-fig img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 1.6s var(--ease) .1s}
.cs.on .cs-fig img{transform:none}
.cs-b{padding:clamp(22px,3vw,40px) clamp(20px,3vw,44px) 44px}
.cs-k{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cs-b h2{margin-top:16px;font-size:clamp(34px,4.2vw,56px);font-weight:600;letter-spacing:-.06em;line-height:1.02}
.cs-big{display:flex;align-items:flex-end;gap:14px;margin-top:26px}
.cs-big .odo{font-size:clamp(64px,9vw,112px)}
.cs-big span.l{padding-bottom:12px;font-size:16px;font-weight:600;letter-spacing:-.025em}
.cs-p{margin-top:18px;font-size:17px;line-height:1.5;letter-spacing:-.02em;color:var(--soft)}
.cs-d{margin-top:26px;display:grid;gap:2px}
.cs-d li{display:grid;grid-template-columns:34px 1fr;padding:15px 0;border-top:1px solid var(--line)}
.cs-d li i{font:500 12px/1.6 'Geist Mono',monospace;font-style:normal;color:var(--mute)}
.cs-d b{display:block;font-size:17px;font-weight:600;letter-spacing:-.03em}
.cs-d p{margin-top:2px;font-size:14.5px;line-height:1.46;color:var(--soft);letter-spacing:-.012em}
.cs-r{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:20px}
.cs-r div{padding:14px;border-radius:12px;background:#f4f4f1}
.cs-r b{display:block;font:600 26px/1.1 'Geist Mono',monospace;letter-spacing:-.06em}
.cs-r span{display:block;margin-top:3px;font-size:12.5px;color:var(--soft);letter-spacing:-.01em}
.cs-t{margin-top:12px;font-size:12.5px;color:var(--mute)}
.cs-a{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.cs-a .nx{background:#f1f1ee;color:var(--ink)}

/* ask */
.ask{position:fixed;z-index:50;right:18px;bottom:18px;padding:2px;border-radius:999px;background:conic-gradient(from var(--a,0deg),var(--lemon),var(--pink),var(--peri),var(--lime),var(--lemon));animation:spin 5s linear infinite;box-shadow:0 10px 30px rgba(0,0,0,.26);transition:transform .45s var(--spring),opacity .3s}
.ask:active{transform:scale(.95)}
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes spin{to{--a:360deg}}
.ask button{display:flex;align-items:center;gap:8px;height:44px;padding:0 17px 0 14px;border-radius:999px;background:var(--ink);color:#fff;font:600 13.5px/1 Geist,sans-serif;letter-spacing:-.02em;cursor:pointer}
.ask-p{position:fixed;z-index:51;right:18px;bottom:78px;width:min(400px,calc(100vw - 32px));max-height:min(600px,calc(100vh - 130px));overflow:auto;background:#fff;border-radius:18px;padding:22px 20px 16px;box-shadow:0 0 0 1px rgba(28,28,27,.05),0 34px 80px rgba(0,0,0,.28);visibility:hidden;opacity:0;transform:translateY(14px) scale(.97);transform-origin:100% 100%;transition:opacity .22s,transform .55s var(--spring),visibility .22s}
.ask-p.on{visibility:visible;opacity:1;transform:none}
.ask-p h2{font-size:22px;font-weight:600;letter-spacing:-.045em}
.ask-p>p{margin-top:2px;font-size:13.5px;color:var(--soft);letter-spacing:-.012em}
.ask-a{margin-top:14px;min-height:86px;padding:14px;border-radius:12px;background:#f5f5f2;font-size:14.5px;line-height:1.5;letter-spacing:-.016em}
.ask-a::after{content:'';display:inline-block;width:7px;height:7px;margin-left:4px;border-radius:50%;background:var(--ink);vertical-align:1px;opacity:0}
.ask-a.t::after{opacity:1;animation:pulse .8s infinite}
.ask-q{display:grid;gap:5px;margin-top:10px}
.ask-q button{width:100%;padding:11px 13px;border-radius:10px;text-align:left;font-size:13.5px;font-weight:600;letter-spacing:-.02em;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;transition:background-color .2s,color .2s,translate .5s var(--ease)}
.ask-q button:hover{background:#f5f5f2;translate:3px 0}
.ask-q button.on{background:var(--ink);color:#fff}
.ask-p .b{width:100%;margin-top:10px;height:44px}

/* reveal */
.js .rv{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1.2s var(--ease);transition-delay:calc(var(--n,0)*90ms)}
.js .rv.in{opacity:1;transform:none}
.js .st.rv{transform:translateY(30px) perspective(900px)}
.js .st.rv.in{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition-delay:0s;transition:transform .6s var(--ease),box-shadow .35s,opacity 1s var(--ease)}

@media(max-width:1100px){
  .links{display:none}.mn{display:inline-flex;align-items:center}
  .mega{display:none}
  .nav-l{gap:12px}
  .dm{height:216px}
}
@media(max-width:900px){
  /* no pinning below tablet */
  .hero{height:auto}.hero-p{position:relative;height:100svh}
  .pb{height:auto}.pb-st{position:relative;height:auto;min-height:78svh;padding:80px 16px}
  .dk,.pk,.bl{position:relative;top:auto!important;transform:none!important}
  .dk::after{display:none}
  .ye-w{height:auto}
  .ye{position:relative;top:auto;height:auto;min-height:0;overflow:hidden}
  .ye-2{margin-top:0}
  .drum-w{position:relative;perspective:none;height:440px;margin:22px 0;overflow:hidden;-webkit-mask:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent);mask:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent)}
  .drum{position:static;width:auto;height:auto;transform:none!important;display:flex;flex-direction:column;animation:drum 44s linear infinite}
  @keyframes drum{to{transform:translateY(-50%)}}
  .fd{position:relative;left:auto;top:auto;width:100%;transform:none!important;opacity:1!important;margin-bottom:10px}
  .fd.dup{display:block}
  .fd .ok{transform:none}
  .bl{margin-top:12px}
  .fos{border-radius:0}
  .st-g{grid-template-columns:1fr}
  .calc{grid-template-columns:1fr}
  .sim{grid-template-columns:1fr}
  .sim-t{margin-top:18px;padding-top:0}
  .spk{width:44%}
  .tri{grid-template-columns:1fr}
  .dm{height:auto;min-height:216px}
  .ls{grid-template-columns:1fr 1fr}
  .wh{grid-template-columns:1fr}
  .wh-v{display:none}
  .wh-no{padding-bottom:0}
  .wi-m{display:block}
  .wi-n{color:var(--ink)}
  .wi.on .wi-n{transform:none}
  .wi-t{color:var(--ink)}
  .wi-x{grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease)}
  .wi.on .wi-x{grid-template-rows:1fr}
  .wi-i{opacity:1}
  .wi-g{grid-template-columns:1fr;gap:14px}
  .ft-c{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:640px){
  :root{--gut:12px;--pan:10px;--d1:13.1vw;--d2:12.6vw;--d3:9.8vw}
  .nav{top:10px}
  .nav-r .nb1{display:none}
  .nav-r .b{height:40px;padding:0 16px;font-size:13px}
  .nav-l{height:44px;padding-left:14px;padding-right:5px}
  .hero-in{padding:80px 12px 108px}
  .hero h1{font-size:14.2vw;white-space:nowrap}
  .hero-s{font-size:15.5px;margin-top:20px;padding:0 8px}
  .mk{margin-top:20px}
  .ann{left:10px;right:10px;bottom:10px;width:auto;padding:8px 30px 8px 8px}
  .ann img{width:48px;height:50px}
  .cue{display:none}
  .ask{opacity:0;pointer-events:none;right:10px;bottom:10px}
  .pa .ask{opacity:1;pointer-events:auto}
  .ask-p{right:10px;bottom:68px}
  .ask button{height:40px;padding:0 14px 0 11px;font-size:13px}
  .tr{padding:44px 0 30px}
  .tr .mq-t span{font-size:17px;padding:0 18px}
  .pb h2{font-size:14vw}
  .pb-b{width:84vw;margin-left:-42vw;margin-top:-40vw}
  .pk-p,.bl-r{margin-left:0}
  .ye{padding-top:62px}
  .ye-n{top:18px;right:14px}
  .ye-b{width:128vw;margin-left:-64vw;margin-top:-74vw}
  .ye-2{text-align:left}
  .fo .w{font-size:15.5vw}
  .sim{padding:8px}
  .sim-st{min-height:520px}
  .li-t{grid-template-columns:1fr}
  .li-t .tg{margin:0 0 18px}
  .li h2{font-size:10.6vw}
  .li-p{font-size:16px}
  .ls{grid-template-columns:1fr;margin-top:32px}
  .fi h2{font-size:14.4vw}
  .scan{padding-left:18px}
  .ft-y{height:44vw}
  .ft-t{flex-direction:column;gap:18px}
  .ft-t a{margin:0}
  .ft-a{grid-template-columns:1fr}
  .ft-c{grid-template-columns:1fr 1fr}
  .ft-m{flex-direction:column;gap:8px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .hero{height:auto}.hero-p{position:relative}
  .pb{height:auto}.pb-st{position:relative;height:auto;padding:90px 16px}
  .pb-s{opacity:1;transform:none}
  .js .svc-t{opacity:1}
  .fc .ch{color:var(--ink)}
  .js .hl>span,.js .hero-s,.js .mk,.js .mk2,.js .ann,.js .cue,.js .rv,.js .rw .wd{transform:none;opacity:1}
  .dk,.pk,.bl{position:relative;top:auto!important;transform:none!important}
  .ye-w{height:auto}.ye{position:relative;top:auto;height:auto}.ye-2{margin-top:0}
  .bl{margin-top:12px}
  .drum-w{position:relative;perspective:none;height:auto;-webkit-mask:none;mask:none;margin:20px 0}
  .drum{position:static;width:auto;height:auto;transform:none!important;display:grid;gap:10px}
  .fd{position:relative;left:auto;top:auto;width:100%;transform:none!important;opacity:1!important}
  .wh-v figure{clip-path:none;display:none}.wh-v figure.on{display:block}
}
