@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}@font-face{font-family:Clash Display;src:url(/fonts/ClashDisplay-Variable.woff2)format("woff2-variations");font-weight:200 700;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Variable.woff2)format("woff2-variations");font-weight:300 900;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Variable.woff2)format("woff2-variations");font-weight:100 800;font-display:swap}:root{--c-bg:oklch(16% .015 122);--c-bg-deep:oklch(12.5% .012 122);--c-fg:oklch(95.5% .012 105);--c-muted:oklch(69% .014 115);--c-lime:oklch(91% .21 124);--c-lime-deep:oklch(83% .2 124);--c-paper:oklch(94% .014 102);--c-ink:oklch(17% .016 122);--line:color-mix(in oklab, currentColor 16%, transparent);--line-soft:color-mix(in oklab, currentColor 9%, transparent);--f-display:"Clash Display", "Arial Narrow", sans-serif;--f-body:"Satoshi", system-ui, sans-serif;--f-mono:"JetBrains Mono", ui-monospace, monospace;--fs-mega:clamp(2.85rem, 11.8vw, 11.5rem);--fs-h1:clamp(2.6rem, 7.5vw, 6.6rem);--fs-h2:clamp(2rem, 4.8vw, 3.9rem);--fs-h3:clamp(1.35rem, 2.3vw, 2rem);--fs-lead:clamp(1.12rem, 1.6vw, 1.42rem);--fs-body:clamp(1rem, 1.05vw, 1.08rem);--fs-small:.875rem;--fs-tiny:.72rem;--pad:clamp(1.25rem, 4vw, 4.5rem);--sec:clamp(6rem, 13vw, 12rem);--gap:clamp(1rem, 2vw, 2rem);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-inout:cubic-bezier(.65, 0, .35, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);color-scheme:dark}*,:before,:after{box-sizing:border-box;margin:0}*{-webkit-tap-highlight-color:transparent}a,button,label{touch-action:manipulation}html{scroll-behavior:auto;-webkit-text-size-adjust:100%}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}body{background:var(--c-bg);color:var(--c-fg);font-family:var(--f-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;min-height:100svh;font-weight:420;line-height:1.6;overflow-x:clip}::selection{background:var(--c-lime);color:var(--c-ink)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--c-bg-deep)}::-webkit-scrollbar-thumb{background:color-mix(in oklab, var(--c-fg) 25%, transparent);border:2px solid var(--c-bg-deep);border-radius:5px}:focus-visible{outline:2px solid var(--c-lime);outline-offset:3px;border-radius:2px}img,svg,video,canvas{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}[data-theme=light]{background:var(--c-paper);color:var(--c-ink);color-scheme:light}.t-display{font-family:var(--f-display);text-transform:uppercase;letter-spacing:-.015em;text-wrap:balance;font-weight:550;line-height:.94}.t-mega{font-size:var(--fs-mega);letter-spacing:-.02em;line-height:.88}.t-h1{font-size:var(--fs-h1)}.t-h2{font-size:var(--fs-h2)}.t-h3{font-size:var(--fs-h3);font-weight:560}.t-lead{font-size:var(--fs-lead);text-wrap:pretty;max-width:34em;font-weight:450;line-height:1.45}.t-lime{color:var(--c-lime)}[data-theme=light] .t-lime{color:color-mix(in oklab, var(--c-lime-deep) 60%, var(--c-ink))}.t-outline{color:#0000;-webkit-text-stroke:1px color-mix(in oklab, var(--c-fg) 45%, transparent)}[data-theme=light] .t-outline{-webkit-text-stroke-color:color-mix(in oklab, var(--c-ink) 45%, transparent)}.t-muted{color:var(--c-muted)}[data-theme=light] .t-muted{color:color-mix(in oklab, var(--c-ink) 62%, transparent)}.arr-svg{vertical-align:-.1em;flex:none;width:1em;height:1em;display:inline-block}.t-display .arr-svg,.arr-svg.arr-mega{vertical-align:0;stroke-width:1.7px;width:.68em;height:.68em}.logo .arr-svg{vertical-align:.05em;width:.72em;height:.72em}.label-mono{font-family:var(--f-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.14em;color:var(--c-muted);align-items:center;gap:.6em;font-weight:450;display:inline-flex}.label-mono:before{content:"";background:var(--c-lime);flex:none;width:.55em;height:.55em}[data-theme=light] .label-mono{color:color-mix(in oklab, var(--c-ink) 70%, transparent)}.container{padding-left:max(var(--pad), env(safe-area-inset-left));padding-right:max(var(--pad), env(safe-area-inset-right));width:100%}.sec{padding-block:var(--sec);position:relative}.sec--tight{padding-block:calc(var(--sec) * .55)}.sec-head{flex-direction:column;gap:1.4rem;margin-bottom:clamp(2.5rem,6vw,5rem);display:flex}.rule{border:0;border-top:1px solid var(--line)}.has-grid{position:relative}.has-grid:before{content:"";pointer-events:none;background-image:repeating-linear-gradient(to right, var(--line-soft) 0 1px, transparent 1px calc(100% / 4));background-position:var(--pad) 0;background-size:calc(100% - var(--pad) * 2) 100%;opacity:.5;background-repeat:no-repeat;position:absolute;inset:0}.btn{--btn-c:var(--c-fg);font-family:var(--f-mono);font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.1em;border:1px solid color-mix(in oklab, var(--btn-c) 45%, transparent);isolation:isolate;transition:color .4s var(--ease-out), border-color .4s var(--ease-out);border-radius:100px;align-items:center;gap:.8em;padding:1em 1.9em;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";background:var(--c-lime);transform-origin:bottom;transition:transform .45s var(--ease-expo);z-index:-1;border-radius:inherit;position:absolute;inset:-1px;transform:scaleY(0)}.btn:hover{color:var(--c-ink);border-color:var(--c-lime)}.btn:hover:before{transform:scaleY(1)}.btn .arr{transition:transform .4s var(--ease-expo)}.btn:hover .arr{transform:translate(3px,-3px)}.btn--solid{background:var(--c-lime);color:var(--c-ink);border-color:var(--c-lime)}.btn--solid:before{background:var(--c-fg)}.u-line{transition:background-size .45s var(--ease-expo);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;padding-bottom:2px}.u-line:hover{background-size:100% 1px}[data-reveal]{opacity:0;will-change:transform, opacity;transform:translateY(2.2rem)}[data-reveal=none]{transform:none}html.no-motion [data-reveal],html.no-js [data-reveal]{opacity:1!important;transform:none!important}html:not(.no-js):not(.no-motion) [data-split]:not([data-split-done]){opacity:0}[data-split] .split-line{margin-block:-.06em;padding-block:.06em;overflow:clip}html.no-motion [data-split] .split-line>*,html.no-js [data-split]{opacity:1!important;transform:none!important}.grain{z-index:95;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:-100px}html:not(.no-motion) .grain{animation:1.2s steps(6,end) infinite grain-jitter}@keyframes grain-jitter{0%{transform:translate(0)}20%{transform:translate(-18px,12px)}40%{transform:translate(10px,-20px)}60%{transform:translate(-24px,-8px)}80%{transform:translate(16px,18px)}to{transform:translate(0)}}.site-head{z-index:80;padding:clamp(1rem, 2.5vw, 1.6rem) var(--pad);padding-left:max(var(--pad), env(safe-area-inset-left));padding-right:max(var(--pad), env(safe-area-inset-right));padding-top:max(clamp(1rem, 2.5vw, 1.6rem), env(safe-area-inset-top));mix-blend-mode:difference;color:#fff;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.site-head>*{pointer-events:auto}.logo{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.01em;align-items:baseline;gap:.14em;font-size:1.18rem;font-weight:600;line-height:1;display:inline-flex}.logo .logo-arr{color:inherit;transition:transform .4s var(--ease-expo);font-weight:700;display:inline-block;transform:translateY(-.05em)}.logo:hover .logo-arr{transform:translate(.1em,-.22em)}.logo small{font-family:var(--f-mono);letter-spacing:.16em;opacity:.75;font-size:.5em;font-weight:450}.head-right{align-items:center;gap:clamp(1rem,3vw,2.4rem);display:flex}.head-cta{font-family:var(--f-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.14em}@media (width<=720px){.head-cta{display:none}}.menu-btn{font-family:var(--f-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.14em;align-items:center;gap:.7em;padding:.4em 0;display:inline-flex}.menu-btn .bars{width:26px;height:12px;position:relative}.menu-btn .bars span{width:100%;height:1.5px;transition:transform .45s var(--ease-expo), top .45s var(--ease-expo);background:currentColor;position:absolute;left:0}.menu-btn .bars span:first-child{top:0}.menu-btn .bars span:nth-child(2){top:10px}html.menu-open .menu-btn .bars span:first-child{top:5px;transform:rotate(45deg)}html.menu-open .menu-btn .bars span:nth-child(2){top:5px;transform:rotate(-45deg)}.menu-btn .menu-txt-close,html.menu-open .menu-btn .menu-txt-open{display:none}html.menu-open .menu-btn .menu-txt-close{display:inline}.menu{z-index:70;background:var(--c-bg-deep);color:var(--c-fg);visibility:hidden;clip-path:inset(0 0 100%);grid-template-columns:1.4fr 1fr;display:grid;position:fixed;inset:0;overflow-x:clip}html.menu-open .menu{visibility:visible}.menu:before{content:"";pointer-events:none;background-image:repeating-linear-gradient(to right, var(--line-soft) 0 1px, transparent 1px 25%);opacity:.5;position:absolute;inset:0}.menu-nav{padding:calc(var(--pad) * 1.2) var(--pad);flex-direction:column;justify-content:center;gap:.2em;display:flex}.menu-link{font-family:var(--f-display);text-transform:uppercase;width:fit-content;transition:color .3s var(--ease-out);align-items:baseline;gap:.35em;font-size:clamp(2.2rem,min(7.5vh,9.5vw),5.2rem);font-weight:550;line-height:1.06;display:inline-flex}.menu-link .idx{font-family:var(--f-mono);color:var(--c-muted);letter-spacing:.1em;font-size:.26em;font-weight:450}.menu:has(.menu-link:hover) .menu-link:not(:hover){color:color-mix(in oklab, var(--c-fg) 28%, transparent)}.menu-link:hover{color:var(--c-lime)}.menu-link[aria-current=page]:after{content:"●";color:var(--c-lime);align-self:center;font-size:.22em}.menu-aside{border-left:1px solid var(--line);padding:calc(var(--pad) * 1.2) var(--pad);flex-direction:column;justify-content:flex-end;gap:2.2rem;display:flex}.menu-aside .preview{aspect-ratio:4/3;background:var(--c-bg);border-radius:6px;position:relative;overflow:hidden}.menu-aside .preview img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .5s var(--ease-out), transform .8s var(--ease-out);position:absolute;inset:0;transform:scale(1.06)}.menu-aside .preview img.is-active{opacity:1;transform:scale(1)}.menu-meta{font-family:var(--f-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.12em;color:var(--c-muted);gap:.5rem;display:grid}.menu-meta a{color:var(--c-fg)}.status-dot{background:var(--c-lime);border-radius:50%;width:.55em;height:.55em;margin-right:.5em;animation:2.4s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.35}}@media (width<=860px){.menu{grid-template-columns:1fr;overflow-y:auto}.menu-aside{border-left:0;border-top:1px solid var(--line)}.menu-aside .preview{display:none}}.preloader{z-index:110;background:var(--c-bg-deep);color:var(--c-fg);place-items:center;display:grid;position:fixed;inset:0}html.booted .preloader,html.no-js .preloader{display:none}.preloader .boot-log{top:clamp(1rem,3vw,2rem);left:var(--pad);font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.06em;color:var(--c-muted);gap:.35em;display:grid;position:absolute}.preloader .boot-log .ok{color:var(--c-lime)}.preloader .boot-logo{font-family:var(--f-display);text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(2.2rem,6vw,4.6rem);font-weight:600;overflow:clip}.preloader .boot-logo span{display:inline-block;transform:translateY(110%)}.preloader .boot-logo .arr-svg{vertical-align:.02em;width:.7em;height:.7em}.preloader .boot-pct{right:var(--pad);font-family:var(--f-display);color:var(--c-lime);font-variant-numeric:tabular-nums;font-size:clamp(3.4rem,10vw,8rem);font-weight:550;line-height:1;position:absolute;bottom:clamp(1rem,3vw,2rem)}.cursor-dot,.cursor-ring{z-index:100;pointer-events:none;border-radius:50%;position:fixed;top:0;left:0;translate:-50% -50%}.cursor-dot{background:var(--c-lime);width:7px;height:7px}.cursor-ring{border:1px solid color-mix(in oklab, var(--c-lime) 65%, transparent);width:38px;height:38px;transition:width .35s var(--ease-out), height .35s var(--ease-out), background-color .35s var(--ease-out), border-color .35s var(--ease-out);justify-content:center;align-items:center;gap:.28em;display:flex}.cursor-ring .cursor-arr{width:.65rem;height:.65rem;color:var(--c-ink);display:none}.cursor-ring.is-view .cursor-arr{display:block}.cursor-ring .cursor-label{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink);opacity:0;white-space:nowrap;font-size:.62rem;font-weight:550;transition:opacity .25s}.cursor-ring.is-view,.cursor-ring.is-drag{background:var(--c-lime);border-color:var(--c-lime);width:92px;height:92px}.cursor-ring.is-view .cursor-label,.cursor-ring.is-drag .cursor-label{opacity:1}.cursor-ring.is-link{width:56px;height:56px}.cursor-ring.is-hidden,.cursor-dot.is-hidden{opacity:0}@media (pointer:coarse){.cursor-dot,.cursor-ring{display:none}}@media (pointer:fine){html.has-cursor body,html.has-cursor a,html.has-cursor button{cursor:none}}.marquee{white-space:nowrap;user-select:none;display:flex;overflow:clip}.marquee__track{will-change:transform;flex:none;align-items:center;gap:1.2em;padding-right:1.2em;display:inline-flex}.marquee--type .marquee__track{font-family:var(--f-display);text-transform:uppercase;font-size:clamp(1.6rem,4.5vw,3.6rem);font-weight:550;line-height:1.2}.marquee .sep{color:var(--c-lime);font-size:.55em}.hero{flex-direction:column;justify-content:flex-end;min-height:100svh;padding-bottom:clamp(1.5rem,4vw,3rem);display:flex;position:relative;overflow:clip}.hero-gl{z-index:-1;position:absolute;inset:0}.hero-gl canvas{width:100%;height:100%}.hero-gl:before{content:"";background:radial-gradient(120% 90% at 85% 10%, color-mix(in oklab, var(--c-lime) 14%, transparent) 0%, transparent 55%), radial-gradient(100% 80% at 10% 90%, color-mix(in oklab, var(--c-lime) 8%, transparent) 0%, transparent 60%), var(--c-bg-deep);position:absolute;inset:0}.hero-gl.gl-ready:before{opacity:0;transition:opacity 1s}.hero-kicker{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(1.5rem,3.5vw,3rem);display:flex}.hero-title{margin-bottom:clamp(1.6rem,4vw,3.2rem)}.hero-title .row{display:block}.hero-title .row .arr-mega{color:var(--c-lime)}.hero-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:2rem;padding-top:clamp(1rem,2.5vw,1.8rem);display:flex}.hero-foot .t-lead{max-width:30em}.scroll-hint{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);flex:none;align-items:center;gap:.8em;display:inline-flex}.scroll-hint .line{background:var(--c-lime);transform-origin:top;width:1px;height:2.6em;animation:scroll-line 1.8s var(--ease-inout) infinite}@keyframes scroll-line{0%{transform-origin:top;transform:scaleY(0)}45%{transform-origin:top;transform:scaleY(1)}55%{transform-origin:bottom;transform:scaleY(1)}to{transform-origin:bottom;transform:scaleY(0)}}html.no-motion .scroll-hint .line{animation:none}.refs-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem 2.5rem;display:flex}.refs-track{scroll-snap-type:x proximity;padding:.5rem var(--pad) 1.5rem;scrollbar-width:none;cursor:grab;user-select:none;gap:clamp(1rem,2vw,1.6rem);display:flex;overflow-x:auto}.refs-track::-webkit-scrollbar{display:none}.refs-track.is-dragging{cursor:grabbing;scroll-snap-type:none}.refs-card{scroll-snap-align:start;flex:none;width:min(340px,76vw)}.refs-card .refs-media{aspect-ratio:4/3;border-radius:8px;overflow:clip}.refs-card .refs-media img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease-expo)}.refs-card:hover .refs-media img{transform:scale(1.045)}.refs-card .refs-meta{justify-content:space-between;align-items:baseline;gap:1rem;padding-top:.75rem;display:flex}.refs-card .refs-title{font-size:1.2rem}.refs-card .refs-type{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);text-align:right;flex:none;font-size:.68rem}.work-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2.2rem;display:flex}.filters{flex-wrap:wrap;gap:.5rem;display:flex}.chip{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);transition:all .3s var(--ease-out);border-radius:100px;padding:.55em 1.1em}.chip:hover{border-color:var(--c-lime);color:var(--c-lime)}.chip.is-active{background:var(--c-lime);border-color:var(--c-lime);color:var(--c-ink)}.view-toggle{gap:.4rem;display:flex}.view-toggle button{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);padding:.55em .4em}.view-toggle button.is-active{color:var(--c-lime)}.work-list{border-top:1px solid var(--line);padding:0;list-style:none}.work-item{border-bottom:1px solid var(--line)}.work-item.is-filtered{display:none}.work-row{transition:padding .4s var(--ease-expo);grid-template-columns:3.4rem 120px 1fr auto auto;align-items:center;gap:clamp(1rem,2.5vw,2.5rem);padding-block:clamp(1.1rem,2.6vw,2rem);display:grid;position:relative}.work-row .w-idx{font-family:var(--f-mono);font-size:var(--fs-tiny);color:var(--c-muted);letter-spacing:.1em}.work-row .w-thumb{aspect-ratio:4/3;object-fit:cover;width:120px;height:auto;transition:transform .5s var(--ease-expo);border-radius:4px}.work-row .w-title{transition:transform .5s var(--ease-expo), color .3s;font-size:clamp(1.7rem,4.6vw,4.2rem)}.work-row .w-type,.work-row .w-year{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted);text-align:right}.work-row:hover .w-title{color:var(--c-lime);transform:translate(.35em)}.work-row:hover .w-thumb{transform:scale(1.12)rotate(-2deg)}@media (width<=720px){.work-row{grid-template-columns:82px 1fr auto}.work-row .w-idx,.work-row .w-type{display:none}.work-row .w-thumb{width:82px}}.work-grid .work-list{border-top:0;grid-template-columns:repeat(auto-fill,minmax(min(430px,100%),1fr));gap:clamp(1.5rem,3vw,3rem);display:grid}.work-grid .work-item{border-bottom:0}.work-grid .work-row{grid-template-columns:1fr;grid-template-areas:"media""title""meta";gap:.4rem;padding-block:0;display:grid}.work-grid .w-idx{display:none}.work-grid .w-thumb{aspect-ratio:4/3;border-radius:8px;grid-area:media;width:100%;height:auto;margin-bottom:.8rem}.work-grid .w-title{grid-area:title;font-size:clamp(1.5rem,2.4vw,2.2rem)}.work-grid .w-type{text-align:left;grid-area:meta}.work-grid .w-year{display:none}.work-grid .work-row:hover .w-thumb{transform:scale(1.02)}[data-work-index] .w-thumb{transition:transform .5s var(--ease-expo)}.work-preview{z-index:50;aspect-ratio:4/5;pointer-events:none;opacity:0;border-radius:8px;width:min(26vw,380px);position:fixed;top:0;left:0;overflow:clip}.work-preview canvas{width:100%;height:100%}.case-hero{padding-top:calc(var(--sec) * .9)}.case-hero .case-types{flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem;display:flex}.case-hero .case-types .chip{pointer-events:none}.case-cover{aspect-ratio:16/9;border-radius:10px;margin-top:clamp(2rem,5vw,4rem);overflow:clip}.case-cover img{object-fit:cover;will-change:transform;width:100%;height:114%;margin-top:-7%}.case-layout{padding-block:var(--sec);grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(2rem,6vw,7rem);display:grid}.case-meta{align-self:start;gap:1.6rem;height:fit-content;display:grid;position:sticky;top:7rem}.case-meta dl{gap:1.1rem;display:grid}.case-meta dt{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);margin-bottom:.3rem}.case-meta dd{font-size:var(--fs-small);margin:0}.case-meta .tags{flex-wrap:wrap;gap:.4rem;display:flex}.case-meta .tags span{font-family:var(--f-mono);letter-spacing:.06em;border:1px solid var(--line);color:var(--c-muted);border-radius:100px;padding:.3em .8em;font-size:.68rem}.case-body{gap:clamp(2.5rem,5vw,4rem);display:grid}.case-body h2{margin-bottom:1rem}.case-body p{max-width:62ch;color:color-mix(in oklab, currentColor 82%, transparent)}.case-fig{border-radius:10px;overflow:clip}.case-fig img{width:100%;height:auto}.case-results{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;display:grid}.case-results .res{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.6rem 1.4rem}.case-results .num{font-family:var(--f-display);color:var(--c-lime);font-variant-numeric:tabular-nums;font-size:clamp(2.4rem,4.5vw,3.8rem);font-weight:560;line-height:1}[data-theme=light] .case-results .num{color:var(--c-ink)}.case-results .res p{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);margin-top:.6rem}.case-quote{border-left:2px solid var(--c-lime);font-size:var(--fs-h3);font-family:var(--f-body);padding-left:1.6rem;font-weight:480;line-height:1.4}.case-quote footer{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted);margin-top:1rem}@media (width<=900px){.case-layout{grid-template-columns:1fr}.case-meta{position:static}.case-meta dl{grid-template-columns:1fr 1fr}.case-meta dl>div:nth-child(n+3){grid-column:1/-1}}.case-next{padding-block:calc(var(--sec) * .9);text-align:center;isolation:isolate;display:block;position:relative;overflow:clip}.case-next .bg{z-index:-1;opacity:.22;transition:opacity .6s, transform 1.2s var(--ease-out);position:absolute;inset:0;transform:scale(1.06)}.case-next .bg img{object-fit:cover;width:100%;height:100%}.case-next:hover .bg{opacity:.38;transform:scale(1)}.case-next .t-h1{transition:color .4s}.case-next:hover .t-h1{color:var(--c-lime)}.svc-stack{gap:0;display:grid}.svc-panel{min-height:100svh;padding-block:calc(var(--pad) * 2);border-top:1px solid var(--line);background:var(--c-bg);align-content:center;gap:clamp(1.5rem,3vw,2.5rem);display:grid;position:sticky;top:0}.svc-panel[data-theme=light]{background:var(--c-paper)}.svc-panel .svc-idx{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.14em;color:var(--c-muted)}.svc-panel .svc-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:clamp(2rem,5vw,6rem);display:grid}.svc-list{padding:0;list-style:none;display:grid}.svc-list li{font-family:var(--f-mono);font-size:var(--fs-small);letter-spacing:.04em;border-bottom:1px solid var(--line);align-items:baseline;gap:.9em;padding:.85em 0;display:flex}.svc-list li:before{content:"";background:var(--c-lime);flex:none;align-self:center;width:.66em;height:.66em;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18 L18 6 M8.5 6 H18 V15.5'/%3E%3C/svg%3E") 50%/contain no-repeat}.svc-panel[data-theme=light] .svc-list li:before{background:color-mix(in oklab, var(--c-lime-deep) 55%, var(--c-ink))}@media (width<=860px){.svc-panel .svc-grid{grid-template-columns:1fr}.svc-panel{min-height:0;position:static}}.svc-teaser{border-top:1px solid var(--line);padding:0;list-style:none}.svc-teaser-row{border-bottom:1px solid var(--line);grid-template-columns:4rem minmax(0,1.2fr) minmax(0,1fr) 3rem;align-items:center;gap:clamp(1rem,2.5vw,2.5rem);padding-block:clamp(1.3rem,3vw,2.2rem);display:grid;position:relative}.svc-teaser-row .st-idx{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.14em;color:color-mix(in oklab, currentColor 55%, transparent)}.svc-teaser-row .st-title{transition:transform .5s var(--ease-expo);font-size:clamp(1.6rem,3.6vw,3rem)}.svc-teaser-row .st-desc{font-size:var(--fs-small);color:color-mix(in oklab, currentColor 62%, transparent);max-width:44ch}.svc-teaser-row .st-arr{font-family:var(--f-display);transition:transform .5s var(--ease-expo), color .3s;justify-self:end;font-size:1.6rem}.svc-teaser-row:hover .st-title{transform:translate(.3em)}.svc-teaser-row:hover .st-arr{color:color-mix(in oklab, var(--c-lime-deep) 60%, var(--c-ink));transform:translate(4px,-4px)}@media (width<=820px){.svc-teaser-row{grid-template-columns:2.6rem 1fr 2rem}.svc-teaser-row .st-desc{grid-area:2/2}}.stats{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.stat{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(1.4rem,3vw,2.6rem) clamp(1.1rem,2vw,2rem)}.stat .num{font-family:var(--f-display);font-variant-numeric:tabular-nums;font-size:clamp(2.6rem,6vw,5.4rem);font-weight:560;line-height:1}.stat .num .suf{color:var(--c-lime)}[data-theme=light] .stat .num .suf{color:color-mix(in oklab, var(--c-lime-deep) 55%, var(--c-ink))}.stat p{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.11em;text-transform:uppercase;color:var(--c-muted);margin-top:.7rem}@media (width<=860px){.stats{grid-template-columns:repeat(2,1fr)}}.marquee--clients{border-block:1px solid var(--line);padding-block:clamp(1.2rem,2.5vw,2rem)}.marquee--clients .marquee__track{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.03em;color:var(--c-muted);gap:1.4em;padding-right:1.4em;font-size:clamp(1.35rem,3vw,2.3rem);font-weight:550}.marquee--clients .sep{color:var(--c-lime);font-size:.45em}.steps{counter-reset:step;border-top:1px solid var(--line);padding:0;list-style:none}.steps li{counter-increment:step;border-bottom:1px solid var(--line);grid-template-columns:5rem minmax(0,1fr) minmax(0,1.4fr);align-items:baseline;gap:clamp(1rem,3vw,3rem);padding-block:clamp(1.4rem,3vw,2.4rem);display:grid}.steps li:before{content:"0" counter(step);font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.14em;color:var(--c-lime)}[data-theme=light] .steps li:before{color:color-mix(in oklab, var(--c-lime-deep) 55%, var(--c-ink))}.steps li h3{font-family:var(--f-display);text-transform:uppercase;font-weight:560;font-size:var(--fs-h3);line-height:1.05}.steps li p{color:var(--c-muted);max-width:48ch}[data-theme=light] .steps li p{color:color-mix(in oklab, var(--c-ink) 68%, transparent)}@media (width<=720px){.steps li{grid-template-columns:3rem 1fr}.steps li p{grid-column:2}}.legal-body{gap:2.4rem;max-width:68ch;margin-top:clamp(2.5rem,5vw,4rem);display:grid}.legal-body h2{margin-bottom:.7rem}.legal-body p,.legal-body li{color:var(--c-muted)}.legal-body section>p+p{margin-top:.9em}.legal-body ul,.legal-body ol{gap:.55em;margin:.9em 0;padding-left:1.3em;display:grid}.legal-body ul{list-style:outside}.legal-body ol{list-style:decimal}#tarjouspyynto{scroll-margin-top:7rem}.form{gap:1.6rem;display:grid}.form .row2{grid-template-columns:1fr 1fr;gap:1.6rem;display:grid}@media (width<=640px){.form .row2{grid-template-columns:1fr}}.field{gap:.45rem;display:grid}.field label{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.13em;text-transform:uppercase;color:var(--c-muted)}.field input,.field textarea{border:0;border-bottom:1px solid var(--line);color:inherit;font:inherit;appearance:none;background:0 0;border-radius:0;padding:.7em 0;font-size:max(1rem,16px);transition:border-color .3s}.field input:focus,.field textarea:focus{border-bottom-color:var(--c-lime);outline:none}.field textarea{resize:vertical;min-height:7em}.field .err{font-family:var(--f-mono);letter-spacing:.06em;color:#ff7a6b;visibility:hidden;min-height:1em;font-size:.68rem}.field.is-invalid .err{visibility:visible}.field.is-invalid input,.field.is-invalid textarea{border-bottom-color:#ff7a6b}.field--consent .consent{cursor:pointer;font-family:var(--f-body);letter-spacing:0;text-transform:none;color:var(--c-muted);align-items:flex-start;gap:.7rem;max-width:52ch;font-size:.85rem;line-height:1.5;display:flex}.field--consent input[type=checkbox]{appearance:none;cursor:pointer;border:1px solid color-mix(in oklab, var(--c-fg) 45%, transparent);background:0 0;border-radius:5px;flex:none;width:1.35rem;height:1.35rem;margin-top:.02em;padding:0;transition:background-color .2s,border-color .2s}.field--consent input[type=checkbox]:hover{border-color:var(--c-lime)}.field--consent input[type=checkbox]:checked{background-color:var(--c-lime);border-color:var(--c-lime);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314160d' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5 L9.5 18 L20 6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:74% 74%}.field--consent input[type=checkbox]:focus-visible{outline:2px solid var(--c-lime);outline-offset:2px}.field--consent.is-invalid input[type=checkbox]{border-color:#ff7a6b}.field--consent.is-invalid .consent{color:#ff7a6b}.topic-chips{flex-wrap:wrap;gap:.5rem;display:flex}.topic-chips input{opacity:0;pointer-events:none;position:absolute}.topic-chips label.chip{cursor:pointer;user-select:none}.topic-chips input:checked+label.chip{background:var(--c-lime);border-color:var(--c-lime);color:var(--c-ink)}.topic-chips input:focus-visible+label.chip{outline:2px solid var(--c-lime);outline-offset:3px}.form-ok{border:1px solid var(--c-lime);border-radius:10px;padding:clamp(1.6rem,4vw,3rem);display:none}.form.is-sent{display:none}.form.is-sent+.form-ok,.form-ok.is-visible{display:block}.form-fail{color:#ff7a6b;max-width:48ch;margin-top:1rem;font-size:.85rem;line-height:1.5;display:none}.form-fail.is-visible{display:block}.form button[type=submit]:disabled{opacity:.55;pointer-events:none}.hp-field{opacity:0;pointer-events:none;position:absolute!important;left:-9999px!important}.cookie-banner{z-index:98;background:var(--c-bg-deep);border:1px solid var(--line);opacity:0;max-width:26rem;transition:opacity .35s var(--ease-out), transform .35s var(--ease-out);border-radius:10px;gap:.9rem;padding:1.1rem 1.2rem;display:grid;position:fixed;bottom:clamp(.8rem,2vw,1.5rem);left:clamp(.8rem,2vw,1.5rem);transform:translateY(14px);box-shadow:0 14px 44px #00000073}.cookie-banner.is-visible{opacity:1;transform:none}.cookie-banner .cb-text{color:var(--c-muted);margin:0;font-size:.85rem;line-height:1.55}.cookie-banner .cb-actions{flex-wrap:wrap;gap:.5rem;display:flex}.cookie-banner .btn{padding:.6em 1.1em;font-size:.64rem}@media (width<=640px){.cookie-banner{max-width:none;bottom:.7rem;left:.7rem;right:.7rem}}.foot-bottom button.u-line{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;padding:0}.foot{background:var(--c-bg-deep);position:relative;overflow:clip}.foot-cta{padding-block:calc(var(--sec) * .8);border-bottom:1px solid var(--line);display:block}.foot-cta .t-mega{flex-wrap:wrap;align-items:baseline;gap:.12em;transition:color .4s;display:flex}.foot-cta:hover .t-mega{color:var(--c-lime)}.foot-cta .arr-mega{color:var(--c-lime);transition:transform .5s var(--ease-expo);display:inline-block}.foot-cta:hover .arr-mega{transform:translate(.08em,-.14em)}.foot-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;padding-block:clamp(2.5rem,5vw,4rem);display:grid}.foot-grid h4{font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);margin-bottom:1rem;font-weight:450}.foot-grid ul{font-size:var(--fs-small);gap:.55rem;padding:0;list-style:none;display:grid}.foot-bottom{border-top:1px solid var(--line);font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-block:1.4rem;font-size:.68rem;display:flex}.badge-traficom{border:1px solid var(--line);font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);border-radius:100px;align-items:center;gap:.7em;padding:.6em 1.1em;font-size:.68rem;display:inline-flex}.badge-traficom:before{content:"";background:var(--c-lime);flex:none;width:.85em;height:.85em;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5 L9.5 18 L20 6'/%3E%3C/svg%3E") 50%/contain no-repeat}@media (width<=860px){.foot-grid{grid-template-columns:1fr 1fr}}.term{background:var(--c-bg-deep);border:1px solid var(--line);border-radius:10px;max-width:720px;overflow:clip}.term-bar{border-bottom:1px solid var(--line);gap:.45rem;padding:.8rem 1rem;display:flex}.term-bar span{background:color-mix(in oklab, var(--c-fg) 22%, transparent);border-radius:50%;width:10px;height:10px}.term-bar span:first-child{background:#ff7a6b}.term-bar span:nth-child(2){background:var(--c-lime)}.term-body{font-family:var(--f-mono);font-size:var(--fs-small);white-space:pre-wrap;min-height:12em;padding:1.4rem;line-height:1.9}.term-body .caret{background:var(--c-lime);vertical-align:text-bottom;width:.55em;height:1.1em;animation:1s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation:vt-out .32s var(--ease-inout) both}::view-transition-new(root){animation:vt-in .5s var(--ease-expo) both}}@keyframes vt-out{to{opacity:0;transform:translateY(-1.2rem)}}@keyframes vt-in{0%{opacity:0;transform:translateY(1.6rem)}}.skip-link{z-index:120;background:var(--c-lime);color:var(--c-ink);font-family:var(--f-mono);font-size:var(--fs-tiny);letter-spacing:.1em;text-transform:uppercase;border-radius:100px;padding:.7em 1.2em;position:fixed;top:.6rem;left:.6rem;transform:translateY(-300%)}.skip-link:focus-visible{transform:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.no-wrap{white-space:nowrap}@media (hover:none){.btn{transition:color .25s var(--ease-out), border-color .25s var(--ease-out), transform .2s var(--ease-out)}.btn:active{color:var(--c-ink);border-color:var(--c-lime);transform:scale(.96)}.btn:active:before{transform:scaleY(1)}.chip{transition:transform .15s var(--ease-out), background-color .2s, color .2s, border-color .2s}.chip:active{transform:scale(.93)}.work-row:active .w-title,.menu-link:active,.foot-cta:active .t-mega,.svc-teaser-row:active .st-title{color:var(--c-lime)}.case-next .bg{opacity:.32}}@media (pointer:coarse){.chip{padding:.8em 1.35em}.view-toggle button{padding:.8em .6em}.menu-btn,.head-cta{padding:.75em 0}.foot-grid ul{gap:.85rem}}@media (width<=640px){.hero-kicker{flex-direction:column;align-items:flex-start;gap:.55rem}.hero-foot{flex-direction:column;align-items:flex-start;gap:1.4rem}.sec-head{gap:1.1rem}.work-toolbar{flex-direction:column;align-items:flex-start}}@media (width<=860px){.foot-grid>div:first-child{grid-column:1/-1}.menu-aside{padding-bottom:max(var(--pad), env(safe-area-inset-bottom))}.foot-bottom{padding-bottom:max(1.4rem, env(safe-area-inset-bottom))}}html.no-motion *,html.no-motion :before,html.no-motion :after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
