.display{font-family:var(--font-display);letter-spacing:-.005em;font-weight:860;font-stretch:62%;line-height:.9}.h-section{font-size:clamp(3rem,2rem + 5vw,6.5rem)}.lede{max-width:34rem;font-size:var(--text-lg);color:var(--ink-soft);margin-top:1.1rem}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ambient{z-index:-1;pointer-events:none;background:radial-gradient(60vw 55vh at 88% 8%, color-mix(in oklab, var(--tint,#2563eb) 20%, transparent), transparent 70%), radial-gradient(45vw 45vh at 0% 100%, oklab(54.1337% .0963843 -.226969/.1), transparent 70%);transition:background .9s var(--ease-out);position:fixed;inset:0}.btn{border-radius:var(--radius-pill);font:600 var(--text-sm) / 1 var(--font-sans);color:var(--ink);white-space:nowrap;cursor:pointer;transition:transform .16s var(--ease-out), background-color .16s ease, border-color .16s ease, box-shadow .2s ease;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.15rem;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-lg{font-size:var(--text-base);padding:.95rem 1.4rem}.btn-light{background:var(--ink);color:var(--bg)}.btn-ghost{background:oklch(100% 0 0/.05);border-color:oklch(100% 0 0/.11)}.btn-how{background:color-mix(in oklab, var(--c) 28%, transparent);border-color:color-mix(in oklab, var(--c) 60%, transparent)}.copy[data-state=copied]{color:oklch(85% .12 160);border-color:oklch(72% .13 160/.6)}@media (hover:hover) and (pointer:fine){.btn-light:hover{box-shadow:0 10px 30px -12px oklch(100% 0 0/.45)}.btn-ghost:hover{background:oklch(100% 0 0/.09)}.btn-how:hover{background:color-mix(in oklab, var(--c) 42%, transparent)}}.intro{z-index:200;background:#04080d;display:none;position:fixed;inset:0}.intro-on .intro{animation:intro-out .5s var(--ease-out) 1.2s forwards;display:block}.intro-on body{overflow:hidden}.door{background:var(--brand-gradient);transform-origin:50%;border-radius:.6rem;width:clamp(1.6rem,3.6vw,3rem);height:min(46vh,22rem);margin-top:calc(min(46vh,22rem)/-2);position:absolute;top:50%;left:50%;transform:rotate(12deg)scaleY(0);box-shadow:0 0 50px oklch(55% .2 264/.7)}.door-l{margin-left:calc(-1.45*clamp(1.6rem,3.6vw,3rem))}.door-r{margin-left:calc(clamp(1.6rem,3.6vw,3rem)/2.22222)}.intro-on .door-l{animation:door-in .52s var(--ease-out) 80ms forwards, door-open-l .7s cubic-bezier(.77, 0, .175, 1) .76s forwards}.intro-on .door-r{animation:door-in .52s var(--ease-out) .17s forwards, door-open-r .7s cubic-bezier(.77, 0, .175, 1) .76s forwards}.intro-skip{right:1rem;bottom:max(1rem, env(safe-area-inset-bottom));border-radius:var(--radius-pill);color:var(--ink-soft);font:500 var(--text-sm) var(--font-sans);cursor:pointer;background:oklch(100% 0 0/.06);border:1px solid oklch(100% 0 0/.15);padding:.5rem .9rem;position:absolute}@keyframes door-in{to{transform:rotate(12deg)scaleY(1)}}@keyframes door-open-l{0%{transform:rotate(12deg)scaleY(1)}to{opacity:0;transform:translate(-62vw)rotate(12deg)scaleY(2.6)}}@keyframes door-open-r{0%{transform:rotate(12deg)scaleY(1)}to{opacity:0;transform:translate(62vw)rotate(12deg)scaleY(2.6)}}@keyframes intro-out{to{opacity:0;visibility:hidden}}.hero{align-items:center;min-height:100svh;padding:6rem 0 4rem;display:grid;position:relative;overflow-x:clip}.hero-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,4vw,4rem);display:grid}.hero-title{font-size:clamp(2.9rem,.4rem + 4.6vw,5.4rem)}@media (width>=861px){.hero-title .line{white-space:nowrap}}.hero-title .line{padding-bottom:.06em;display:block;overflow:hidden}.hero-title .line>span{animation:rise .9s var(--ease-out) both;animation-delay:calc(.15s + var(--i) * 90ms);display:inline-block}.intro-on .hero-title .line>span{animation-delay:calc(1.25s + var(--i) * 90ms)}@keyframes rise{0%{transform:translateY(105%)}}.hero-sub{max-width:33rem;font-size:var(--text-lg);color:var(--ink-soft);margin-top:1.6rem}.hero-ctas{flex-wrap:wrap;gap:.75rem;margin-top:2.2rem;display:flex}.hero-visual{aspect-ratio:1;justify-self:end;width:100%;max-width:34rem;position:relative}.hero-shot{border:1px solid oklch(100% 0 0/.12);border-radius:14px;width:72%;margin:0;transition:translate;position:absolute;overflow:hidden;box-shadow:0 40px 80px -30px oklch(5% .02 250/.9)}.hero-shot img{width:100%;height:auto}.hero-shot-0{top:4%;left:0;rotate:-6deg}.hero-shot-1{top:30%;right:0;rotate:4deg}.hero-shot-2{bottom:2%;left:10%;rotate:-2deg}.hero-bar{background:var(--brand-gradient);mix-blend-mode:screen;opacity:.92;border-radius:1rem;width:15%;height:84%;position:absolute;top:8%;rotate:12deg;box-shadow:0 0 60px oklch(55% .2 264/.45)}.hero-bar-a{left:30%}.hero-bar-b{left:55%}.hero-visual>*{animation:fade-up .9s var(--ease-out) both;animation-delay:calc(.3s + var(--d,0) * 80ms)}.intro-on .hero-visual>*{animation-delay:calc(1.35s + var(--d,0) * 80ms)}.hero-shot-1{--d:1}.hero-shot-2{--d:2}.hero-bar{--d:3}@keyframes fade-up{0%{opacity:0;transform:translateY(24px)}}.proof{border-block:1px solid var(--line);padding:1.4rem 0}.proof-label{text-align:center;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:.9rem}.proof-track{display:flex;overflow:hidden;mask:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.proof-row{flex-shrink:0;gap:3.5rem;margin:0;padding:0 1.75rem;list-style:none;animation:38s linear infinite marquee;display:flex}.proof-track:hover .proof-row{animation-play-state:paused}.proof-row a{font:800 1.35rem var(--font-display);color:var(--ink-soft);white-space:nowrap;font-stretch:75%;text-decoration:none;transition:color .16s}.proof-row a:hover{color:var(--ink)}@keyframes marquee{to{transform:translate(-100%)}}.work{padding-top:var(--space-3xl)}.work-head{margin-bottom:var(--space-2xl)}.case{padding-bottom:var(--space-3xl);grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,4.5rem);display:grid;position:relative}.case-info{align-self:start;position:sticky;top:6.5rem}.case-kind{font-size:var(--text-sm);color:color-mix(in oklab, var(--c) 55%, white);font-weight:600}.case-name{margin:.7rem 0 1.1rem;font-size:clamp(3.2rem,2rem + 4.5vw,6rem)}.case-summary{max-width:30rem;font-size:var(--text-lg);color:var(--ink-soft)}.chips{flex-wrap:wrap;gap:.4rem;margin:1.4rem 0 0;padding:0;list-style:none;display:flex}.chips li{font:500 var(--text-xs) var(--font-mono);color:var(--ink-soft);background:oklch(100% 0 0/.05);border:1px solid oklch(100% 0 0/.09);border-radius:8px;padding:.3rem .6rem}.case-highlights{border-left:2px solid color-mix(in oklab, var(--c) 70%, transparent);font-size:var(--text-sm);color:var(--ink-soft);gap:.35rem;margin:1.4rem 0 1.8rem;padding:0 0 0 .9rem;list-style:none;display:grid}.case-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.case-private{font-size:var(--text-sm);color:var(--ink-mute)}.case-visual{gap:1rem;display:grid}.shot{border:1px solid var(--line-strong);background:var(--surface);transform:perspective(1400px) rotateX(calc((1 - var(--q,1)) * 12deg)) scale(calc(.92 + var(--q,1) * .08));transform-origin:50% 0;border-radius:16px;margin:0;overflow:hidden;box-shadow:0 50px 100px -40px oklch(4% .02 250/.95)}.shot img{width:100%;height:auto}.diagram{counter-reset:layer;gap:.6rem;width:100%;margin:0;padding:0;list-style:none;display:grid}.diagram li{border:1px solid var(--line-strong);background:oklch(20% .02 250/.8);border-radius:12px;gap:.15rem;padding:.85rem 1rem;display:grid;position:relative}.diagram li+li:before{content:"";background:var(--c);width:2px;height:.6rem;position:absolute;top:-.65rem;left:1.4rem}.diagram strong{font-size:var(--text-base)}.diagram span{font-size:var(--text-sm);color:var(--ink-mute)}.case-cards{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.mini-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1.3rem}.mini-card h4{font:600 var(--text-sm) var(--font-sans);color:var(--ink-mute);margin-bottom:.9rem}.arch,.decisions{font-size:var(--text-sm);gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.arch li{color:var(--ink);display:grid}.arch span,.decisions li{color:var(--ink-mute)}.decisions strong{color:var(--ink);font-weight:600;display:block}.decisions-lg{font-size:var(--text-base);gap:1rem}.decisions-lg li{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem}.stories-bar{display:none}@media (width<=860px){.cases{width:100%;padding:0}.stories-bar{z-index:5;gap:4px;margin-bottom:-1.5rem;padding:.6rem 1rem;display:flex;position:sticky;top:4rem}.stories-bar i{background:oklch(100% 0 0/.22);border-radius:3px;flex:1;height:3px;overflow:hidden}.stories-bar i:after{content:"";transform-origin:0;height:100%;transform:scaleX(var(--p,0));background:#fff;display:block}.case{height:100svh;padding:5.6rem 1rem max(1.2rem, env(safe-area-inset-bottom));background:linear-gradient(172deg, color-mix(in oklab, var(--c) 62%, #05090e) 0%, #05090e 78%);border-radius:26px 26px 0 0;flex-direction:column;gap:1.1rem;display:flex;position:sticky;top:0;overflow:hidden;box-shadow:0 -24px 40px -12px oklch(0% 0 0/.7)}.case-visual{flex:1 1 0;order:-1;align-items:center;min-height:0;display:flex}.shot{--q:1;width:100%;max-height:100%}.shot img{object-fit:cover;object-position:top left;max-height:34svh}.case-cards{display:none}.case-info{position:static}.case-name{margin:.4rem 0 .6rem;font-size:clamp(2.9rem,13vw,4rem)}.case-summary{font-size:var(--text-base);-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chips{margin-top:.9rem}.case .chips li:nth-child(n+5),.case-highlights{display:none}.case-actions{margin-top:1.1rem}.case-actions .btn{flex:1;padding-inline:.7rem}.case-actions .btn-how{flex-basis:100%;order:-1}.case-actions [data-open-demo]{display:none}}dialog.detail{border:0;border-left:1px solid var(--line-strong);width:min(36rem,100%);max-width:none;height:100dvh;max-height:none;color:var(--ink);overscroll-behavior:contain;transition:transform .42s cubic-bezier(.32, .72, 0, 1), overlay .42s allow-discrete, display .42s allow-discrete;background:#0b131d;margin:0 0 0 auto;padding:0;transform:translate(100%)}dialog.detail[open]{transform:none}@starting-style{dialog.detail[open]{transform:translate(100%)}}dialog.detail::backdrop{backdrop-filter:blur(4px);opacity:0;transition:opacity .3s ease, overlay .3s allow-discrete, display .3s allow-discrete;background:oklch(5% .02 250/.7)}dialog.detail[open]::backdrop{opacity:1}@starting-style{dialog.detail[open]::backdrop{opacity:0}}.detail-head{z-index:1;background:linear-gradient(#0b131d 85%,#0000);padding:1.5rem 1.5rem 0;position:sticky;top:0}.detail-handle{display:none}.detail-close{width:2.5rem;height:2.5rem;color:var(--ink);cursor:pointer;transition:transform .16s var(--ease-out);background:oklch(100% 0 0/.08);border:0;border-radius:50%;font-size:1.4rem;position:absolute;top:1rem;right:1rem}.detail-close:active{transform:scale(.94)}.detail-title{margin:.4rem 0 1rem;font-size:3.4rem}.tabs{border-bottom:1px solid var(--line);gap:.25rem;display:flex}.tabs [role=tab]{color:var(--ink-mute);font:600 var(--text-sm) var(--font-sans);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.75rem .8rem}.tabs [aria-selected=true]{color:var(--ink);border-color:var(--c)}.detail-body{gap:1.5rem;padding:1.5rem 1.5rem 2.5rem;display:grid}.detail-body [role=tabpanel]{animation:panel-in .28s var(--ease-out);gap:1.2rem;display:grid}.detail-body [role=tabpanel][hidden]{display:none}@keyframes panel-in{0%{opacity:0;transform:translateY(6px)}}.detail-shots{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;gap:.6rem;display:flex;overflow-x:auto}.detail-shots img{border:1px solid var(--line-strong);scroll-snap-align:start;border-radius:12px;flex:0 0 85%}.story{gap:.6rem;margin:0;display:grid}.story div{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem}.story dt{margin-bottom:.25rem;font-weight:600}.story dd{color:var(--ink-soft);font-size:var(--text-sm);margin:0}.detail-sub{font:600 var(--text-sm) var(--font-sans);color:var(--ink-mute)}.evidence{color:var(--ink-soft);font-size:var(--text-sm);gap:.5rem;margin:0;padding-left:1.1rem;display:grid}.evidence li::marker{color:var(--c)}.detail-links{border-top:1px solid var(--line);flex-wrap:wrap;gap:.55rem;padding-top:1.2rem;display:flex}@media (width<=860px){dialog.detail{border-left:0;border-top:1px solid var(--line-strong);border-radius:24px 24px 0 0;width:100%;height:90dvh;margin:auto 0 0;transform:translateY(100%)}@starting-style{dialog.detail[open]{transform:translateY(100%)}}.detail-handle{background:oklch(100% 0 0/.22);border-radius:9px;width:2.5rem;height:5px;margin:-.5rem auto .9rem;display:block}.detail-title{font-size:2.8rem}}.stack-section{padding-top:var(--space-3xl)}.stack-groups{margin-top:var(--space-xl);grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.stack-group{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1.3rem}.stack-group h3{font:600 var(--text-sm) var(--font-sans);color:var(--ink-mute);margin-bottom:.9rem}.stack-items{flex-wrap:wrap;gap:.4rem;display:flex}.tech{border:1px solid var(--line-strong);color:var(--ink);font:500 var(--text-sm) var(--font-sans);cursor:pointer;transition:background-color .16s ease, border-color .16s ease, transform .16s var(--ease-out);background:oklch(100% 0 0/.03);border-radius:8px;align-items:center;gap:.45rem;padding:.45rem .75rem;display:inline-flex}.tech:active{transform:scale(.96)}.tech-count{font:600 var(--text-xs) var(--font-mono);color:var(--ink-mute)}.tech[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.tech[aria-pressed=true] .tech-count{color:oklch(30% .02 250)}@media (hover:hover) and (pointer:fine){.tech:not([aria-pressed=true]):hover{background:oklch(100% 0 0/.08)}}.filter-info{min-height:1.6rem;color:var(--ink-soft);font-size:var(--text-sm);margin:1.4rem 0 0}.filter-clear{color:#7dd3fc;font:inherit;text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.archive-title{margin:var(--space-xl) 0 1rem;font:600 var(--text-xl) var(--font-sans)}.archive-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.2fr) minmax(0,.7fr) minmax(0,1.6fr) auto;align-items:center;gap:1rem;padding:.95rem .5rem;transition:opacity .25s,background-color .16s;display:grid}.archive-headrow{font-size:var(--text-xs);color:var(--ink-mute);border-top:0}.archive-name{font:800 1.45rem var(--font-display);font-stretch:75%}.archive-name a{text-decoration:none}.archive-kind,.archive-stack{font-size:var(--text-sm);color:var(--ink-mute)}.archive-links{justify-content:flex-end;gap:.4rem;display:flex}.archive-links a{border-radius:var(--radius-pill);font-size:var(--text-xs);white-space:nowrap;background:oklch(100% 0 0/.06);padding:.3rem .65rem;text-decoration:none}.archive-row.is-dim{opacity:.18}@media (hover:hover) and (pointer:fine){.archive-row[data-row]:hover{background:oklch(100% 0 0/.03)}.archive-row[data-row]:hover .archive-name{color:color-mix(in oklab, var(--c) 60%, white)}.archive-links a:hover{background:oklch(100% 0 0/.14)}}.archive-preview{z-index:30;border:1px solid var(--line-strong);pointer-events:none;opacity:0;width:18rem;transition:opacity .2s ease, scale .26s var(--ease-out);border-radius:12px;position:fixed;top:0;left:0;rotate:-3deg;scale:.94;box-shadow:0 30px 60px -20px oklch(0% 0 0/.8)}.archive-preview.is-on{opacity:1;scale:1}@media (width<=860px){.stack-groups{grid-template-columns:1fr 1fr}.archive-headrow{display:none}.archive-row{grid-template-columns:minmax(0,1fr) auto;gap:.2rem .8rem}.archive-kind{grid-row:2}.archive-stack{display:none}.archive-links{grid-area:1/2/span 2}.archive-preview{display:none}}.now{padding-top:var(--space-3xl)}.bento{margin-top:var(--space-xl);grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(11rem,auto);gap:1rem;display:grid}.bento-cell{background:var(--surface);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:.5rem;padding:1.5rem;display:flex;position:relative;overflow:hidden}.bento-label{font:600 var(--text-sm) var(--font-sans);color:var(--ink-mute);align-items:center;gap:.45rem;display:flex}.bento-building{background:linear-gradient(180deg, transparent 20%, color-mix(in oklab, var(--c) 40%, #05090e) 100%), var(--surface);transition:transform .3s var(--ease-out);grid-area:span 2/span 3;justify-content:flex-end;text-decoration:none}.bento-building img{object-fit:cover;object-position:top left;opacity:.5;width:100%;height:70%;position:absolute;inset:0 0 auto;mask:linear-gradient(#000 40%,#0000)}.bento-building>:not(img){position:relative}.bento-building .bento-label{color:color-mix(in oklab, var(--c) 50%, white)}.bento-building strong{font-size:clamp(2.6rem,1.8rem + 2.5vw,3.8rem)}.bento-body{max-width:26rem;color:var(--ink-soft)}.bento-feed{grid-area:span 2/span 3}.bento-process{grid-column:span 6}.feed{margin:.4rem 0 0;padding:0;list-style:none}.feed li{border-top:1px solid var(--line);grid-template-columns:4.5rem minmax(0,1fr);gap:.8rem;padding:.75rem 0;display:grid}.feed li:first-child{border-top:0}.feed time{font:500 var(--text-xs) var(--font-mono);color:var(--ink-mute);padding-top:.15rem}.feed a{text-decoration:none;display:grid}.feed strong{font-weight:600}.feed span{font-size:var(--text-sm);color:var(--ink-mute)}.process{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin:.6rem 0 0;padding:0;list-style:none;display:grid}.process li{gap:.3rem;display:grid}.process strong{font:800 1.6rem var(--font-display);font-stretch:75%}.process span{color:var(--ink-soft);font-size:var(--text-sm)}@media (hover:hover) and (pointer:fine){.bento-building:hover{transform:translateY(-3px)}.feed a:hover strong{text-underline-offset:.2em;text-decoration:underline}}@media (width<=860px){.bento{grid-template-columns:1fr}.bento>*{grid-area:auto!important}.bento-building{min-height:18rem}.process{grid-template-columns:1fr;gap:1rem}}.contact{padding:var(--space-3xl) 0 var(--space-2xl)}.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:clamp(2rem,6vw,4.5rem);position:relative;overflow:hidden}.contact-card:before{content:"";aspect-ratio:1;pointer-events:none;background:radial-gradient(closest-side,oklch(55% .2 264/.3),#0000);width:60%;position:absolute;top:-45%;right:-12%}.contact-title{font-size:clamp(4rem,2rem + 9vw,10rem);position:relative}.contact-body{max-width:32rem;font-size:var(--text-lg);color:var(--ink-soft);margin-top:1.2rem;position:relative}.contact-email{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2rem;display:flex;position:relative}.contact-email a{font:800 clamp(1.8rem, 1.2rem + 2.6vw, 3.2rem) var(--font-display);overflow-wrap:anywhere;font-stretch:75%;text-decoration:none}.contact-actions{flex-wrap:wrap;gap:.7rem;margin-top:2.2rem;display:flex;position:relative}@media (width<=860px){.hero{align-items:start;min-height:auto;padding-top:5.5rem}.hero-grid{grid-template-columns:1fr}.hero-visual{aspect-ratio:1.25;justify-self:center;max-width:21rem;margin:.5rem auto 0}.hero-shot{width:68%}.hero-ctas .btn,.contact-actions .btn{flex:auto}}.lang-swap .hero-title .line>span,.lang-swap .hero-visual>*{animation:none}@media (prefers-reduced-motion:reduce){.intro{display:none!important}.hero-title .line>span,.hero-visual>*,.proof-row{animation:none}.proof-track{flex-wrap:wrap;justify-content:center}.proof-row[aria-hidden=true]{display:none}.shot{transform:none}dialog.detail,dialog.detail::backdrop{transition:opacity .15s}}
