:root{--bg:#050508;--bg-2:#101018;--blue:#3b82f6;--cyan:#00e5ff;--violet:#8b5cf6;--ink:#f5f7ff;--mute:#9ca3af;--line:rgba(245,247,255,0.09);--line-2:rgba(245,247,255,0.16);--font-display:"Sora Variable","Sora",system-ui,sans-serif;--font-body:"Inter Variable","Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--gutter:clamp(16px,4vw,56px);--max:1440px;--ease:cubic-bezier(0.22,1,0.36,1);color-scheme:dark}*,:after,:before{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}img{max-width:100%;display:block}a{text-decoration:none}a,button{color:inherit}button{font:inherit}dd,dl,h1,h2,h3,ol,p,ul{margin:0}ol,ul{padding:0;list-style:none}::selection{background:var(--blue);color:#fff}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.wrap{width:100%;max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}.skip-link{position:fixed;left:16px;top:-60px;z-index:200;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-weight:600}.skip-link:focus{top:16px}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}html:not(.intro-run) .intro{display:none}.intro,html.intro-run body{overflow:hidden}.intro{position:fixed;inset:0;z-index:100;background:var(--bg);-webkit-user-select:none;-moz-user-select:none;user-select:none}.intro[data-phase=dive]{background:transparent}.intro-canvas,.intro-canvas canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.intro[data-phase=dive] .intro-canvas{mix-blend-mode:screen}.intro-flash{inset:0;background:radial-gradient(circle at 50% 50%,#fff 0,#dff6ff 35%,rgba(160,220,255,.6) 70%);pointer-events:none}.intro-flash,.intro-init{position:absolute;opacity:0}.intro-init{left:50%;top:calc(50% + 74px);transform:translateX(-50%);font-family:var(--font-mono);font-size:11px;letter-spacing:.42em;color:var(--cyan);white-space:nowrap;animation:init-in .5s .25s forwards,init-flicker 1.4s steps(1) .3s infinite}.intro-init:after,.intro-init:before{content:attr(data-text);position:absolute;inset:0;opacity:.7}.intro-init:before{color:var(--violet);animation:glitch-a .9s steps(2) infinite}.intro-init:after{color:var(--blue);animation:glitch-b 1.1s steps(2) infinite}.intro:not([data-phase=init]) .intro-init{animation:none;opacity:0;transition:opacity .2s}@keyframes init-in{to{opacity:.9}}@keyframes init-flicker{0%,to{opacity:.9}47%{opacity:.3}49%{opacity:.9}}@keyframes glitch-a{0%{transform:translate(0);-webkit-clip-path:inset(0 0 60% 0);clip-path:inset(0 0 60% 0)}50%{transform:translate(-3px,1px);-webkit-clip-path:inset(40% 0 20% 0);clip-path:inset(40% 0 20% 0)}}@keyframes glitch-b{0%{transform:translate(0);-webkit-clip-path:inset(60% 0 0 0);clip-path:inset(60% 0 0 0)}50%{transform:translate(3px,-1px);-webkit-clip-path:inset(10% 0 55% 0);clip-path:inset(10% 0 55% 0)}}.intro-code{position:absolute;inset:0;pointer-events:none;font-family:var(--font-mono);font-size:12px;color:rgba(0,229,255,.55)}.intro-code span{position:absolute;left:50%;top:50%;white-space:nowrap;opacity:0;--a:calc(var(--i) * 36deg);transform:translate(-50%,-50%) rotate(var(--a)) translateX(38vmin) rotate(calc(-1 * var(--a)))}.intro[data-phase=charge] .intro-code span{animation:code-in 1.3s var(--ease) forwards;animation-delay:calc(var(--i) * 60ms)}@keyframes code-in{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--a)) translateX(42vmin) rotate(calc(-1 * var(--a)))}30%{opacity:.85}to{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--a) + 120deg)) translateX(2vmin) rotate(calc(-1 * var(--a) - 120deg)) scale(.4)}}.intro-name{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none;transform:translateY(var(--name-offset,0))}.intro-title{font-family:var(--font-display);font-weight:800;font-size:var(--name-size,14vw);line-height:.98;letter-spacing:0;color:var(--ink);opacity:0;white-space:nowrap}.intro-lockup{position:relative}.intro-sub{position:absolute;left:0;right:0;top:100%;margin-top:1.4em;font-family:var(--font-mono);font-size:clamp(10px,1.1vw,13px);letter-spacing:.38em;color:var(--mute);opacity:0;transform:translateY(8px)}.intro[data-phase=form] .intro-title{animation:title-in .7s .95s forwards}.intro[data-phase=dive] .intro-sub,.intro[data-phase=form] .intro-sub{animation:sub-in .6s 1s var(--ease) forwards}.intro[data-phase=dive] .intro-title{opacity:.9;animation:title-dive .85s cubic-bezier(.55,0,1,.45) forwards}.intro[data-phase=dive] .intro-sub{opacity:1;transform:none;animation:sub-out .3s forwards}@keyframes title-in{to{opacity:.9}}@keyframes title-dive{to{opacity:0;transform:scale(6);filter:blur(6px)}}@keyframes sub-in{to{opacity:1;transform:none}}@keyframes sub-out{to{opacity:0}}.intro-skip{position:absolute;right:var(--gutter);bottom:calc(var(--gutter) + env(safe-area-inset-bottom));background:rgba(16,16,24,.6);border:1px solid var(--line-2);border-radius:999px;padding:10px 18px;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--mute);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:color .2s,border-color .2s}.intro-skip:hover{color:var(--ink);border-color:var(--cyan)}.intro[data-phase=fallback] .intro-name .intro-title{font-size:clamp(64px,16vw,220px);animation:title-in .8s .1s forwards}.intro[data-phase=fallback] .intro-sub{animation:sub-in .6s .4s forwards}@media (max-aspect-ratio:17/20){.intro-title span{display:block}}.cursor-dot,.cursor-ring{position:fixed;left:0;top:0;pointer-events:none;z-index:150;opacity:0;transition:opacity .3s}html.cursor-on .cursor-dot,html.cursor-on .cursor-ring{opacity:1}html.has-cursor,html.has-cursor a,html.has-cursor button{cursor:none}.cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--ink)}.cursor-ring{width:40px;height:40px;margin:-20px 0 0 -20px}.cursor-ring:before{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(245,247,255,.4);transition:transform .35s var(--ease),background .35s,border-color .35s}.cursor-ring[data-mode=link]:before{transform:scale(1.5);border-color:var(--cyan)}.cursor-ring[data-mode=label]:before{transform:scale(2.3);background:var(--ink);border-color:var(--ink)}.cursor-ring.is-down:before{transform:scale(.8)}.cursor-ring span{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--bg);opacity:0;transition:opacity .2s}.cursor-ring[data-mode=label] span{opacity:1}.curtain{position:fixed;inset:0;z-index:120;background:var(--bg-2);display:grid;place-items:center;-webkit-clip-path:inset(100% 0 0 0);clip-path:inset(100% 0 0 0);pointer-events:none}.curtain[data-state=in]{pointer-events:all}.curtain-mark{font-family:var(--font-display);font-weight:800;font-size:42px;background:linear-gradient(120deg,var(--blue),var(--cyan),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.logo-mark{display:block;flex-shrink:0;overflow:visible}.lm-bg{fill:#0b0b14}.lm-frame{fill:none;stroke-width:1.5;opacity:.75;animation:lm-frame 4.8s infinite}.lm-text{font-family:var(--font-display);font-weight:800;font-size:17px;fill:var(--ink);stroke:#0b0b14;stroke-width:2.5px;paint-order:stroke;animation:lm-text 4.8s infinite}.lm-bolt{opacity:.22;transform-origin:24px 24px;animation:lm-bolt 4.8s infinite}.lm-arc{fill:none;stroke:#bff6ff;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;opacity:0;animation:lm-arc 4.8s infinite}.lm-arc2{animation-delay:.05s}.lm-arc3{animation-delay:.1s}@keyframes lm-bolt{0%,80%,to{opacity:.22}83%{opacity:1}84.5%{opacity:.35}86%{opacity:1}90%{opacity:.6}95%{opacity:.22}}@keyframes lm-arc{0%,81%{opacity:0;stroke-dashoffset:24}83%{opacity:1;stroke-dashoffset:0}85%{opacity:.3}86.5%{opacity:1;stroke-dashoffset:0}91%,to{opacity:0;stroke-dashoffset:-24}}@keyframes lm-frame{0%,81%,to{opacity:.75;stroke-width:1.5}83%{opacity:1;stroke-width:2.6}86%{opacity:1;stroke-width:2.2}92%{opacity:.75;stroke-width:1.5}}@keyframes lm-text{0%,81%,to{fill:var(--ink)}83%,86%{fill:#ffffff}}.brand:focus-visible .lm-arc,.brand:focus-visible .lm-bolt,.brand:hover .lm-arc,.brand:hover .lm-bolt,.brand:hover .lm-frame,.brand:hover .lm-text{animation-duration:.9s;animation-delay:-.72s}.curtain .lm-arc,.curtain .lm-bolt,.curtain .lm-frame,.curtain .lm-text{animation-duration:1.1s}@media (prefers-reduced-motion:reduce){.lm-bolt{opacity:.8}}.nav{position:fixed;inset:0 0 auto;z-index:80;transition:background .4s,transform .5s var(--ease),-webkit-backdrop-filter .4s;transition:background .4s,backdrop-filter .4s,transform .5s var(--ease);transition:background .4s,backdrop-filter .4s,transform .5s var(--ease),-webkit-backdrop-filter .4s}html.intro-run .nav{transform:translateY(-100%)}.nav[data-scrolled="1"]{background:rgba(5,5,8,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav-inner{gap:32px;height:76px}.brand,.nav-inner{display:flex;align-items:center}.brand{gap:12px;font-family:var(--font-display);font-weight:700;font-size:16px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;font-size:14px;font-weight:800;background:linear-gradient(135deg,rgba(59,130,246,.25),rgba(139,92,246,.25));border:1px solid rgba(0,229,255,.35)}.nav-links{display:flex;gap:28px;margin-left:auto;font-size:15px;color:var(--mute)}.nav-links a{position:relative;transition:color .2s}.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--cyan);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}.nav-links a:hover{color:var(--ink)}.nav-links a:hover:after{transform:scaleX(1);transform-origin:left}.nav-cta{display:inline-block;padding:10px 20px;border-radius:999px;border:1px solid var(--line-2);font-size:14px;font-weight:600;transition:border-color .3s,background .3s}.nav-cta:hover{border-color:var(--cyan);background:rgba(0,229,255,.06)}.nav-cta .mag-inner{display:inline-block}.nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--line-2);border-radius:12px;background:transparent;position:relative;cursor:pointer}.nav-toggle i{position:absolute;left:13px;right:13px;height:1.5px;background:var(--ink);transition:transform .35s var(--ease)}.nav-toggle i:first-of-type{top:17px}.nav-toggle i:last-of-type{top:25px}.nav[data-open="1"] .nav-toggle i:first-of-type{transform:translateY(4px) rotate(45deg)}.nav[data-open="1"] .nav-toggle i:last-of-type{transform:translateY(-4px) rotate(-45deg)}.nav-sheet{display:none}@media (max-width:860px){.nav-cta,.nav-links{display:none}.nav-toggle{display:block;margin-left:auto}.nav-inner{height:64px}.nav-sheet:not([hidden]){display:flex;flex-direction:column;gap:6px;height:calc(100svh - 64px);padding:32px var(--gutter);background:var(--bg)}.nav-sheet a{font-family:var(--font-display);font-weight:700;font-size:40px;line-height:1.2;animation:sheet-in .5s var(--ease) both;animation-delay:calc(var(--i) * 50ms)}.nav[data-open="1"]{background:var(--bg)}html.menu-open body{overflow:hidden}}@keyframes sheet-in{0%{opacity:0;transform:translateY(20px)}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 30px;border-radius:999px;font-weight:600;font-size:15px;letter-spacing:.01em;overflow:hidden;isolation:isolate;transition:color .35s,border-color .35s}.btn .mag-inner{display:inline-block;white-space:nowrap}.btn-primary{background:var(--ink);color:var(--bg)}.btn-primary:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,var(--blue),var(--cyan));transform:translateY(101%);transition:transform .5s var(--ease)}.btn-primary:hover:before{transform:none}.btn-ghost{border:1px solid var(--line-2);color:var(--ink)}.btn-ghost:before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(139,92,246,.16);transform:scale(0);border-radius:inherit;transition:transform .5s var(--ease)}.btn-ghost:hover{border-color:var(--violet)}.btn-ghost:hover:before{transform:scale(1)}.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;isolation:isolate}.hero-canvas{position:absolute;inset:0;z-index:-1}.hero-canvas canvas{display:block}.hero-canvas.is-fallback{background:radial-gradient(circle at 74% 48%,rgba(59,130,246,.35),transparent 26%),radial-gradient(circle at 70% 52%,rgba(139,92,246,.28),transparent 38%)}.hero-glow{position:absolute;inset:0;z-index:-2;background:radial-gradient(60% 50% at 75% 45%,rgba(59,130,246,.1),transparent 70%),radial-gradient(40% 40% at 10% 90%,rgba(139,92,246,.07),transparent 70%);pointer-events:none}.hero-inner{padding-top:96px;padding-bottom:110px}.hero-title{font-family:var(--font-display);font-weight:800;text-transform:uppercase;line-height:1.04;letter-spacing:-.02em;max-width:min(58vw,980px)}@media (max-width:899px){.hero-title{max-width:none}}.hero-l1{display:block;font-size:clamp(18px,2.1vw,30px);font-weight:600;letter-spacing:.01em;color:var(--mute);margin-bottom:.7em;max-width:none}.hero-l2{display:block;font-size:clamp(44px,5.8vw,104px)}.hero-l2 .w:nth-last-child(-n+2) .w-in{background:linear-gradient(100deg,var(--ink) 0,#bfe9ff 40%,var(--cyan) 70%,var(--violet) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.w{overflow:hidden;vertical-align:top;padding:.16em .02em .08em;margin:-.16em -.02em -.08em}.w,.w-in{display:inline-block}.w-in{transform:translateY(110%);transition:transform 1s var(--ease);transition-delay:calc(var(--d) * 70ms + .15s)}.hero[data-revealed="1"] .w-in,html:not(.intro-run):not(.js) .w-in{transform:none}.hero-sub{margin-top:32px;max-width:46ch;font-size:clamp(16px,1.3vw,19px);color:var(--mute);transition:opacity .9s 1s var(--ease),transform .9s 1s var(--ease)}.hero-cta,.hero-sub{opacity:0;transform:translateY(14px)}.hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px;transition:opacity .9s 1.15s var(--ease),transform .9s 1.15s var(--ease)}.hero[data-revealed="1"] .hero-cta,.hero[data-revealed="1"] .hero-sub{opacity:1;transform:none}.hero-foot{position:absolute;left:0;right:0;bottom:28px;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--mute);opacity:0;transition:opacity 1s 1.5s}.hero[data-revealed="1"] .hero-foot{opacity:1}.hero-loc{display:flex;align-items:center;gap:10px}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#34d399;box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:pulse 2s infinite}@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(52,211,153,0)}to{box-shadow:0 0 0 0 rgba(52,211,153,0)}}.hero-scroll{display:flex;align-items:center;gap:12px}.hero-scroll i{width:1px;height:36px;background:linear-gradient(var(--cyan),transparent);animation:scroll-cue 2s var(--ease) infinite;transform-origin:top}@keyframes scroll-cue{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}@media (max-width:899px){.hero{justify-content:flex-end}.hero-inner{padding-top:46svh;padding-bottom:96px}.hero-l2{font-size:clamp(34px,10vw,72px)}.hero-sub{margin-top:20px}.hero-cta{margin-top:28px}.hero-cta .btn{flex:1 1 auto}.hero-scroll{display:none}}.section{position:relative;scroll-margin-top:64px;padding-block:clamp(72px,8vw,112px)}.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 48px;margin-bottom:clamp(24px,3vw,40px)}.section-title{font-weight:800;font-size:clamp(34px,4.6vw,72px);line-height:1.08;letter-spacing:-.03em;text-transform:uppercase}.section-kicker,.section-title{font-family:var(--font-display)}.section-kicker{font-size:15px;font-weight:600;color:var(--cyan)}.section-lede{max-width:40ch;color:var(--mute)}.about{overflow:hidden;border-top:1px solid var(--line)}.about-band{position:absolute;top:40px;left:0;white-space:nowrap;pointer-events:none}.about-band span{display:inline-block;font-family:var(--font-display);font-weight:800;font-size:clamp(80px,14vw,240px);line-height:1;text-transform:uppercase;color:transparent;-webkit-text-stroke:1px rgba(245,247,255,.07)}.about-grid{position:relative;display:grid;grid-template-columns:1fr 3fr;grid-gap:32px 48px;gap:32px 48px;padding-top:clamp(60px,10vw,160px)}.about-text{font-family:var(--font-display);font-weight:600;font-size:clamp(22px,2.6vw,40px);line-height:1.18;letter-spacing:-.015em}.about-facts{grid-column:2;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:24px;gap:24px;margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}.about-facts dt{font-size:13px;color:var(--mute)}.about-facts dd{margin-top:4px;font-weight:600}@media (max-width:899px){.about-grid{grid-template-columns:1fr}.about-facts{grid-column:1;grid-template-columns:1fr 1fr}}.filters{display:flex;flex-wrap:wrap;gap:8px}.filter{background:transparent;border:1px solid var(--line-2);border-radius:999px;padding:9px 18px;font-size:14px;color:var(--mute);cursor:pointer;transition:color .25s,border-color .25s,background .25s}.filter sup{margin-left:4px;font-size:10px;color:var(--cyan)}.filter:hover{color:var(--ink)}.filter[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.work-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:clamp(32px,3.5vw,48px) clamp(24px,3vw,48px);gap:clamp(32px,3.5vw,48px) clamp(24px,3vw,48px);max-width:1180px;margin-inline:auto}@media (min-width:1100px){.work-list{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none;gap:32px 24px}.work-list .work-title{font-size:clamp(19px,1.45vw,24px)}.work-list .work-meta{grid-template-columns:1fr}.work-list .work-tags{grid-row:auto;grid-column:1;justify-content:flex-start;margin-top:8px}.work-list .work-phone{width:24%;border-radius:10px;border-width:2px}}.work-item[hidden]{display:none}.work-card{display:block;perspective:1200px;--rx:0deg;--ry:0deg}.work-media{position:relative;padding:0 0 clamp(20px,2.4vw,36px);transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .6s var(--ease)}.browser{position:relative;border-radius:14px;overflow:hidden;background:var(--bg-2);border:1px solid var(--line-2);box-shadow:0 40px 80px -40px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.02);transition:border-color .4s,box-shadow .6s var(--ease)}.browser-bar{display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;background:#15151f;border-bottom:1px solid var(--line)}.browser-bar i{width:9px;height:9px;border-radius:50%;background:rgba(245,247,255,.16)}.browser-bar span{margin:0 auto;padding:2px 14px;border-radius:6px;background:rgba(245,247,255,.05);font-size:11px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}.browser-view{aspect-ratio:1536/729;overflow:hidden}.browser-view img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform 1.1s var(--ease);transform-origin:top center}.work-phone{position:absolute;right:0;bottom:0;width:19%;aspect-ratio:390/600;border-radius:16px;overflow:hidden;border:3px solid #1d1d2a;background:#000;box-shadow:0 30px 60px -20px rgba(0,0,0,.9),0 0 0 1px var(--line-2);transform:translateZ(40px);transition:transform .8s var(--ease)}.work-phone img{width:100%;height:100%;object-fit:cover;object-position:top}.work-card:focus-visible .browser,.work-card:hover .browser{border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 50px 90px -40px color-mix(in srgb,var(--accent) 45%,transparent)}.work-card:focus-visible .browser-view img,.work-card:hover .browser-view img{transform:scale(1.05)}.work-card:hover .work-phone{transform:translateZ(40px) translateY(-10px)}.work-sheen{position:absolute;inset:0 0 clamp(20px,2.4vw,36px);border-radius:14px;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--accent) 22%,transparent),transparent 45%);mix-blend-mode:screen;opacity:0;transition:opacity .4s;pointer-events:none}.work-card:hover .work-sheen{opacity:1}.work-meta{display:grid;grid-template-columns:1fr auto;grid-gap:4px 16px;gap:4px 16px;margin-top:8px}.work-title{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,2.2vw,32px);line-height:1.15}.work-client{grid-row:2;color:var(--mute);font-size:15px}.work-tags{grid-row:1/span 2;grid-column:2;display:flex;flex-wrap:wrap;justify-content:flex-end;align-content:flex-start;gap:6px;font-size:12px;color:var(--mute)}.work-tags span{border:1px solid var(--line-2);border-radius:999px;padding:3px 10px}@media (max-width:899px){.work-list,.work-meta{grid-template-columns:1fr}.work-tags{grid-row:auto;grid-column:1;justify-content:flex-start;margin-top:8px}.work-phone{width:24%;right:4px}}.expertise{background:linear-gradient(var(--bg),var(--bg-2) 30%,var(--bg-2) 70%,var(--bg))}.exp-list{border-top:1px solid var(--line)}.exp-item{display:grid;grid-template-columns:72px minmax(0,1.2fr) minmax(0,1fr);align-items:center;grid-gap:16px 40px;gap:16px 40px;padding:18px 8px;border-bottom:1px solid var(--line);position:relative;outline-offset:-2px}.exp-item:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(59,130,246,.08),rgba(139,92,246,.04) 60%,transparent);opacity:0;transition:opacity .5s;pointer-events:none}.exp-item:focus-visible:before,.exp-item:hover:before{opacity:1}.exp-title{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,2.2vw,34px);line-height:1.05;letter-spacing:-.02em;transition:transform .6s var(--ease),color .4s}.exp-item:focus-visible .exp-title,.exp-item:hover .exp-title{transform:translateX(12px);color:#fff}.exp-text{color:var(--mute);max-width:44ch}.ico{width:56px;height:56px;fill:none;stroke:var(--cyan);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.ico *{transform-box:fill-box;transform-origin:center}.exp-item:focus-visible .ico *,.exp-item:hover .ico *{animation-play-state:running}.ico *{animation-play-state:paused}.d-line{stroke-dasharray:40;animation:draw 1.6s var(--ease) infinite}.d2{animation-delay:.15s}.d3{animation-delay:.3s}.d-dot{fill:var(--violet);stroke:none;animation:bob 1.6s ease-in-out infinite}@keyframes draw{0%{stroke-dashoffset:40}60%,to{stroke-dashoffset:0}}@keyframes bob{50%{transform:translateY(-5px) scale(1.2)}}.s-layer{animation:stack 1.8s var(--ease) infinite}.s1{--dy:-4px}.s3{--dy:4px}.s-flow{stroke:var(--violet);stroke-dasharray:2 3;animation:flow .6s linear infinite}@keyframes stack{50%{transform:translateY(var(--dy,0))}}@keyframes flow{to{stroke-dashoffset:-10}}.c-wave{stroke-dasharray:8 6;animation:flow .8s linear infinite}.c-orb{fill:rgba(139,92,246,.4);stroke:var(--violet);animation:orb 2s ease-in-out infinite}@keyframes orb{25%{transform:translateX(-16px) scale(.8)}75%{transform:translateX(16px) scale(1.2)}}.u-btn{fill:rgba(0,229,255,.15);animation:press 1.6s ease-in-out infinite}.u-pointer{fill:var(--bg);stroke:var(--ink);animation:tap 1.6s ease-in-out infinite}@keyframes press{45%,55%{fill:var(--cyan);transform:scale(.92)}}@keyframes tap{45%,55%{transform:translate(-6px,8px)}}.p-arc{stroke:var(--line-2)}.exp-item:hover .p-arc{stroke:var(--violet)}.p-needle{transform-origin:0 100%;stroke:var(--ink);animation:needle 1.6s var(--ease) infinite}@keyframes needle{0%{transform:rotate(-110deg)}60%,to{transform:rotate(0deg)}}.g-gear{animation:spin 3s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:899px){.exp-item{grid-template-columns:56px 1fr}.exp-text{grid-column:2}}.strip{border-block:1px solid var(--line);padding-block:28px 30px;overflow:hidden}.strip-label{font-size:14px;color:var(--mute);margin-bottom:18px}.strip-track{display:flex;width:max-content;animation:strip 38s linear infinite}.strip:focus-within .strip-track,.strip:hover .strip-track{animation-play-state:paused}.strip-row{display:flex;flex-shrink:0}.strip-row li{padding-inline:clamp(24px,3.5vw,56px);border-right:1px solid var(--line)}.strip-name,.strip-row a{display:block}.strip-name{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,2.6vw,38px);line-height:1.15;white-space:nowrap;transition:color .3s}.strip-client{font-size:13px;color:var(--mute);white-space:nowrap}.strip-row a:hover .strip-name{color:var(--cyan)}@keyframes strip{to{transform:translateX(-50%)}}.stack-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-gap:48px;gap:48px;align-items:start}.stack-groups{display:grid;grid-gap:36px;gap:36px}.stack-group-name{font-size:14px;font-weight:600;color:var(--mute);margin-bottom:14px}.stack-chips{display:flex;flex-wrap:wrap;gap:10px}.chip{background:rgba(16,16,24,.7);border:1px solid var(--line-2);border-radius:12px;padding:12px 18px;font-family:var(--font-mono);font-size:14px;cursor:pointer;transition:opacity .3s,border-color .3s,background .3s,transform .4s var(--ease)}.chip[data-dim="1"]{opacity:.35}.chip[aria-pressed=true]{border-color:var(--cyan);background:rgba(0,229,255,.08);transform:translateY(-3px)}.stack-panel{position:-webkit-sticky;position:sticky;top:110px;min-height:260px;padding:32px;border-radius:20px;border:1px solid var(--line);background:radial-gradient(120% 100% at 0 0,rgba(59,130,246,.12),transparent 60%),var(--bg-2)}.stack-panel-tech{font-family:var(--font-display);font-weight:700;font-size:34px;line-height:1.1}.stack-panel-note{color:var(--mute);margin-top:6px}.stack-panel-label{margin-top:28px;font-size:13px;color:var(--cyan)}.stack-panel-list{margin-top:10px;display:grid;grid-gap:6px;gap:6px}.stack-panel-list li{font-weight:600;animation:sheet-in .4s var(--ease) both}.stack-panel-list a{border-bottom:1px solid var(--line-2)}.stack-panel-list a:hover{border-color:var(--cyan)}.stack-panel-empty{color:var(--mute);font-size:18px}@media (max-width:899px){.stack-grid{grid-template-columns:1fr}.stack-panel{position:relative;top:0;min-height:0}}.contact{min-height:100svh;display:flex;align-items:center;overflow:hidden;isolation:isolate}.contact-canvas{position:absolute;inset:0;z-index:-1}.contact-canvas canvas{display:block}.contact:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(50% 45% at 50% 50%,rgba(139,92,246,.14),transparent 70%)}.contact-inner{text-align:center}.contact-title{font-family:var(--font-display);font-weight:800;text-transform:uppercase;line-height:1.08;letter-spacing:-.03em}.contact-title span{display:block}.contact-title span:first-child{font-size:clamp(22px,2.6vw,38px);font-weight:600;letter-spacing:0;color:var(--mute);margin-bottom:.5em}.contact-title span:last-child{font-size:clamp(30px,6vw,96px)}.contact-lede{max-width:44ch;margin:28px auto 0;color:var(--mute)}.contact-actions{display:flex;flex-direction:column;align-items:center;gap:22px;margin-top:44px}.btn-xl{min-height:68px;padding:0 44px;font-size:17px}.contact-mail{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px}.contact-email{font-family:var(--font-display);font-size:clamp(18px,2vw,24px);font-weight:600;border-bottom:1px solid var(--line-2);transition:border-color .3s}.contact-email:hover{border-color:var(--cyan)}.copy{background:transparent;border:1px solid var(--line-2);border-radius:999px;padding:6px 14px;font-size:13px;color:var(--mute);cursor:pointer}.copy:hover{color:var(--ink)}.contact-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;margin-top:56px;color:var(--mute);font-size:15px}.contact-links a:hover{color:var(--ink)}.btn-whatsapp{background:#25d366;color:#04120a;gap:12px}.btn-whatsapp .mag-inner{display:inline-flex;align-items:center;gap:12px}.btn-whatsapp:before{content:"";position:absolute;inset:0;z-index:-1;background:#ffffff;transform:translateY(101%);transition:transform .5s var(--ease)}.btn-whatsapp:hover:before{transform:none}.contact-note{font-family:var(--font-mono);font-size:15px;color:var(--mute);letter-spacing:.04em}.footer{border-top:1px solid var(--line);padding-block:32px;font-size:14px;color:var(--mute)}.footer-inner{flex-wrap:wrap;gap:16px 32px}.footer-brand,.footer-inner{display:flex;align-items:center}.footer-brand{gap:12px}.footer-brand .brand-mark{width:30px;height:30px;font-size:11px;border-radius:8px;color:var(--ink)}.footer-nav{display:flex;flex-wrap:wrap;gap:8px 22px;margin-left:auto}.footer-nav a:hover{color:var(--ink)}.case-hero{padding-top:150px}.case-back{display:inline-block;font-size:14px;color:var(--mute);margin-bottom:40px}.case-back:before{content:"";display:inline-block;width:24px;height:1px;background:currentColor;vertical-align:middle;margin-right:12px;transition:width .4s var(--ease)}.case-back:hover{color:var(--ink)}.case-back:hover:before{width:40px}.case-title{font-family:var(--font-display);font-weight:800;font-size:clamp(36px,6vw,96px);line-height:1.08;letter-spacing:-.03em}.case-summary{max-width:50ch;margin-top:28px;font-size:clamp(18px,1.6vw,22px);color:var(--mute)}.case-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:24px;gap:24px;margin-top:48px;padding-top:28px;border-top:1px solid var(--line)}.case-meta dt{font-size:13px;color:var(--accent)}.case-meta dd{margin-top:4px}.case-visit{margin-top:36px}.case-cover{margin-top:clamp(56px,8vw,110px);margin-bottom:0}.case-cover-frame{overflow:hidden;border-radius:18px;border:1px solid var(--line);background:var(--bg-2)}.case-cover img{width:100%;height:auto;transform:scale(1.04)}.case-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:56px 64px;gap:56px 64px;padding-block:clamp(80px,10vw,150px)}.case-block h2{font-family:var(--font-display);font-weight:700;font-size:28px;margin-bottom:14px}.case-block p{color:var(--mute);max-width:56ch}.case-highlights li{padding:12px 0;border-bottom:1px solid var(--line)}.case-stack{display:flex;flex-wrap:wrap;gap:8px}.case-stack li{font-family:var(--font-mono);font-size:13px;border:1px solid var(--line-2);border-radius:10px;padding:7px 12px}.case-mobile{display:flex;justify-content:center;gap:clamp(12px,3vw,40px);padding-bottom:clamp(80px,10vw,150px)}.phone{margin:0;flex:0 1 320px;border-radius:28px;overflow:hidden;border:1px solid var(--line-2);background:var(--bg-2);box-shadow:0 30px 80px -30px color-mix(in srgb,var(--accent) 45%,transparent)}.phone:nth-child(2n){margin-top:60px}.phone img{width:100%}.case-next-wrap{position:relative;border-top:1px solid var(--line);overflow:hidden;background:radial-gradient(60% 90% at 85% 50%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 70%)}.case-next{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;grid-gap:clamp(32px,5vw,80px);gap:clamp(32px,5vw,80px);padding-block:clamp(64px,8vw,120px)}.case-next-label{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--mute)}.case-next-label i{width:36px;height:1px;background:var(--next-accent);transition:width .6s var(--ease)}.case-next-label b{margin-left:auto;font-family:var(--font-mono);font-weight:400;font-size:12px;color:var(--mute)}.case-next-title{display:block;margin-top:22px;font-family:var(--font-display);font-weight:800;font-size:clamp(36px,5vw,80px);line-height:1.06;letter-spacing:-.03em;background:linear-gradient(90deg,var(--ink) 0,var(--ink) 50%,var(--next-accent) 50%,#fff 100%);background-size:200% 100%;background-position:0 0;-webkit-background-clip:text;background-clip:text;color:transparent;transition:background-position .8s var(--ease)}.case-next-sub{display:block;margin-top:14px;color:var(--mute);font-size:17px}.case-next-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.case-next-tags em{font-style:normal;font-size:12px;color:var(--mute);border:1px solid var(--line-2);border-radius:999px;padding:4px 12px}.case-next-media{position:relative}.case-next-media .browser{transform:perspective(1200px) rotateY(-8deg) rotateX(3deg);transform-origin:left center;transition:transform .9s var(--ease),border-color .4s,box-shadow .6s}.case-next-media .browser-view img{transition:transform 1.2s var(--ease)}.case-next-go{position:absolute;left:-32px;bottom:-28px;display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:var(--ink);color:var(--bg);box-shadow:0 20px 50px -15px rgba(0,0,0,.8);transition:transform .7s var(--ease),background .4s}.case-next:focus-visible .case-next-title,.case-next:hover .case-next-title{background-position:-100% 0}.case-next:hover .case-next-label i{width:72px}.case-next:hover .case-next-media .browser{transform:perspective(1200px) rotateY(0deg) rotateX(0deg);border-color:color-mix(in srgb,var(--next-accent) 55%,transparent);box-shadow:0 50px 90px -40px color-mix(in srgb,var(--next-accent) 45%,transparent)}.case-next:hover .case-next-media .browser-view img{transform:scale(1.05)}.case-next:hover .case-next-go{transform:scale(1.12) rotate(-45deg);background:var(--next-accent)}@media (max-width:899px){.case-next{grid-template-columns:1fr}.case-next-media .browser{transform:none}.case-next-go{left:auto;right:12px;bottom:-24px;width:64px;height:64px}.case-hero{padding-top:110px}.case-meta{grid-template-columns:1fr 1fr}.case-body{grid-template-columns:1fr}.case-mobile{overflow-x:auto;justify-content:flex-start;scroll-snap-type:x mandatory;padding-inline:var(--gutter)}.phone{flex:0 0 62%;scroll-snap-align:center}.phone:nth-child(2n){margin-top:0}}.notfound{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:20px}.notfound-code{font-weight:800;font-size:clamp(100px,22vw,300px);line-height:.85;background:linear-gradient(120deg,var(--blue),var(--cyan),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.notfound h1,.notfound-code{font-family:var(--font-display)}.notfound h1{font-size:clamp(28px,4vw,52px);line-height:1.1}.notfound p:not(.notfound-code){color:var(--mute);max-width:48ch}@media (min-width:1100px){.exp-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column-gap:48px;column-gap:48px}.exp-item{grid-template-columns:56px minmax(0,1fr);align-items:start;gap:6px 22px;padding:22px 8px}.exp-icon{grid-row:span 2;padding-top:4px}.exp-text{grid-column:2;font-size:15px}.exp-title{font-size:clamp(20px,1.7vw,28px)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}.hero-cta,.hero-foot,.hero-sub,.w-in{transform:none!important;opacity:1!important}}@font-face{font-family:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_next/static/media/sora-latin-ext-wght-normal.c3cdfd18.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_next/static/media/sora-latin-wght-normal.d3efa163.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-cyrillic-ext-wght-normal.04aa035e.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-cyrillic-wght-normal.25972555.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-greek-ext-wght-normal.f98d32fc.woff2) format("woff2-variations");unicode-range:u+1f??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-greek-wght-normal.6f3630ae.woff2) format("woff2-variations");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-vietnamese-wght-normal.113a630f.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-latin-ext-wght-normal.eca38e0d.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-latin-wght-normal.76ba26f1.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.17d05b18.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.17463387.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.17524150.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.c9c6c002.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-greek-400-normal.77d339c7.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-400-normal.517c450b.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.553f85d1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.f83be352.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.4d63b447.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.dc4026db.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-400-normal.db9d659a.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-400-normal.e25c3319.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}