@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-ext-wght-normal.okcGN4Nq.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-wght-normal.BS41q_Tv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-ext-wght-normal.DQgQPNk4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-wght-normal.sS1B39LI.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-vietnamese-wght-normal.TKKdAiBA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-ext-wght-normal.B4u9PlvR.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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 Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-wght-normal.DX-nOvPD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fff;--surface:#f3f3f1;--surface-2:#e9e9e6;--ink:#0c0c0c;--ink-2:#555552;--ink-3:#6f6f6b;--line:#e2e2df;--focus:#0c0c0c;--dark:#0c0c0c;--dark-surface:#161616;--dark-line:#2a2a2a;--font-sans:"Inter Tight Variable", "Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1.0625rem;--text-lg:clamp(1.125rem, 1.4vw, 1.375rem);--text-xl:clamp(1.5rem, 2.4vw, 2.125rem);--text-2xl:clamp(2.25rem, 5.2vw, 4.75rem);--text-3xl:clamp(2.75rem, 8vw, 7.5rem);--leading-tight:1;--leading-snug:1.15;--leading-body:1.55;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:clamp(5rem, 10vw, 9rem);--container:88rem;--measure:40rem;--gutter:clamp(1rem, 3vw, 2.5rem);--header-h:4.75rem;--radius-sm:.875rem;--radius-md:1.5rem;--radius-lg:clamp(1.75rem, 3.5vw, 3rem);--radius-pill:999px;--duration:.32s;--ease:cubic-bezier(.22, 1, .36, 1)}.inverse{--bg:var(--dark);--surface:var(--dark-surface);--surface-2:#1f1f1f;--ink:#fff;--ink-2:#b4b4b0;--ink-3:#8f8f8b;--line:var(--dark-line);--focus:#fff;background:var(--bg);color:var(--ink)}*,:before,:after{box-sizing:border-box}html{color-scheme:light;background:var(--bg);-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-body);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;overflow-x:clip}img{max-width:100%;height:auto;display:block}h1,h2,h3,p{text-wrap:pretty;margin:0}h1,h2,h3{letter-spacing:-.035em;font-weight:500;line-height:var(--leading-tight);text-wrap:balance}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl);letter-spacing:-.025em;line-height:var(--leading-snug)}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}::selection{background:var(--ink);color:var(--bg)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--space-md);top:var(--space-md);z-index:100;background:var(--ink);color:var(--bg);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);text-decoration:none;position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.shell{width:min(var(--container), calc(100% - (var(--gutter) * 2)));margin-inline:auto}.eyebrow,.meta{color:var(--ink-3);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:500}.lede{font-size:var(--text-lg);color:var(--ink-2);max-width:36rem;line-height:1.45}.button{--btn-bg:var(--ink);--btn-fg:var(--bg);--btn-border:var(--ink);--fill:var(--bg);--fill-fg:var(--ink);border:1px solid var(--btn-border);border-radius:var(--radius-pill);background:var(--btn-bg);min-height:3.25rem;color:var(--btn-fg);font:inherit;font-size:var(--text-md);letter-spacing:-.01em;white-space:nowrap;isolation:isolate;cursor:pointer;transition:color .5s var(--ease);justify-content:center;align-items:center;gap:.6em;padding:0 1.6rem;font-weight:500;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";z-index:-1;aspect-ratio:1;background:var(--fill);width:140%;transition:transform .65s var(--ease);border-radius:50%;position:absolute;top:100%;left:50%;transform:translate(-50%)scale(.2)}.button:hover:before,.button:focus-visible:before{transform:translate(-50%,-50%)scale(1)}.button:hover,.button:focus-visible{color:var(--fill-fg)}.button--secondary{--btn-bg:transparent;--btn-fg:var(--ink);--btn-border:var(--line);--fill:var(--ink);--fill-fg:var(--bg)}.button--small{min-height:2.5rem;font-size:var(--text-sm);padding:0 1.15rem}.button__label{display:inline-block}.arrow-dot{background:currentColor;border-radius:50%;flex:none;place-items:center;width:1.5rem;height:1.5rem;display:inline-grid;overflow:hidden}.arrow-dot svg{width:.7rem;height:.7rem;color:var(--arrow-ink,var(--btn-bg));transition:transform .5s var(--ease), color .5s var(--ease)}.button:hover .arrow-dot svg{color:var(--fill);transform:rotate(45deg)}.button--secondary .arrow-dot svg{--arrow-ink:var(--bg)}.roll{vertical-align:top;line-height:1.25;display:inline-block;position:relative;overflow:hidden}.roll__line{white-space:pre;display:block}.roll__line--clone{position:absolute;top:0;left:0}.roll__char{white-space:pre;transition:transform .55s var(--ease);transition-delay:calc(var(--i) * 14ms);display:inline-block}.roll__line--clone .roll__char{transform:translateY(110%)}[data-roll-host]:hover .roll__line:not(.roll__line--clone) .roll__char,[data-roll-host]:focus-visible .roll__line:not(.roll__line--clone) .roll__char{transform:translateY(-110%)}[data-roll-host]:hover .roll__line--clone .roll__char,[data-roll-host]:focus-visible .roll__line--clone .roll__char{transform:translateY(0)}.inline-actions,.hero-actions,.cta-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 90%, transparent);backdrop-filter:saturate(1.4)blur(16px);transition:transform .45s var(--ease);position:sticky;top:0}.site-header[data-hidden=true]{transform:translateY(-100%)}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-md);min-height:var(--header-h);display:flex}.brand{letter-spacing:-.04em;white-space:nowrap;align-items:center;gap:.55rem;font-size:1.125rem;font-weight:600;text-decoration:none;display:inline-flex}.header-tools{align-items:center;gap:var(--space-md);display:flex}.language-switch{border:1px solid var(--line);border-radius:var(--radius-pill);font-size:var(--text-xs);letter-spacing:.04em;gap:.15rem;padding:.2rem;font-weight:600;display:flex}.language-switch a{border-radius:var(--radius-pill);min-width:2.25rem;min-height:1.85rem;color:var(--ink-3);transition:color var(--duration) var(--ease), background var(--duration) var(--ease);place-items:center;text-decoration:none;display:grid}.language-switch a:hover{color:var(--ink)}.language-switch a[aria-current=true]{background:var(--ink);color:var(--bg)}.nav-list{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.nav-link{align-items:center;min-height:2.75rem;font-weight:450;text-decoration:none;display:inline-flex;position:relative}.nav-link:after{content:"";width:.3rem;height:.3rem;transition:transform var(--duration) var(--ease);background:currentColor;border-radius:50%;position:absolute;bottom:.45rem;left:50%;transform:translate(-50%)scale(0)}.nav-link:hover:after,.nav-link[aria-current=page]:after{transform:translate(-50%)scale(1)}.desktop-nav,.header-contact{display:none}.site-nav{position:static}.site-nav summary{border-radius:var(--radius-pill);background:var(--ink);min-height:2.75rem;color:var(--bg);cursor:pointer;align-items:center;gap:.6rem;padding:0 1.1rem;font-weight:500;list-style:none;display:inline-flex}.site-nav summary::-webkit-details-marker{display:none}.burger{gap:4px;width:1rem;display:grid}.burger span{height:1.5px;transition:transform var(--duration) var(--ease);background:currentColor}.site-nav[open] .burger span:first-child{transform:translateY(2.75px)rotate(45deg)}.site-nav[open] .burger span:last-child{transform:translateY(-2.75px)rotate(-45deg)}.site-nav__panel{left:var(--gutter);right:var(--gutter);top:calc(var(--header-h) - .25rem);padding:var(--space-lg);border-radius:var(--radius-md);background:var(--dark);color:#fff;position:absolute;box-shadow:0 30px 60px -20px #00000059}.site-nav__panel .nav-link{letter-spacing:-.04em;font-size:2rem;font-weight:500}.site-nav__panel .nav-link:after{bottom:50%;left:auto;right:-.9rem;transform:translateY(50%)scale(0)}.site-nav__panel .nav-link[aria-current=page]:after{transform:translateY(50%)scale(1)}@media (width<=30rem){.header-tools{gap:var(--space-xs)}.status-pill{font-size:var(--text-xs)}.hero-actions .button{flex:100%}}@media (width>=64rem){.desktop-nav{display:block}.desktop-nav .nav-list{gap:var(--space-xl);flex-direction:row}.header-contact{display:inline-flex}.site-nav{display:none}}main{display:block}.section{padding-block:var(--space-3xl)}.section-heading{gap:var(--space-lg);margin-bottom:clamp(2.5rem,6vw,5rem);display:grid}.section-heading--center{text-align:center;justify-items:center}.section-heading--center .lede{margin-inline:auto}.panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:1;position:relative}.panel--round{border-radius:var(--radius-lg)}.hero{justify-items:center;gap:var(--space-xl);text-align:center;padding-top:clamp(3.5rem,9vw,8rem);display:grid}.hero h1{max-width:15ch}.hero .lede{margin-inline:auto}.hero-actions{justify-content:center}.stage{border-radius:var(--radius-lg);text-align:left;width:100%;margin-top:clamp(3rem,7vw,6rem);padding-block:clamp(2.5rem,6vw,5rem) clamp(1.25rem,3vw,2.25rem);position:relative;overflow:hidden}.stage__rows{letter-spacing:-.06em;gap:.02em;font-size:clamp(3.5rem,12.5vw,13rem);font-weight:500;line-height:.92;display:grid}.stage__row{white-space:nowrap;will-change:transform;gap:.25em;width:max-content;display:flex}.stage__row:first-child{transform:translate(-12%)}.stage__row:nth-child(2){transform:translate(-38%)}.stage__row:nth-child(3){transform:translate(-20%)}.stage__row span:nth-child(2n){color:#4a4a47}.stage__words{justify-content:space-between;gap:var(--space-xs) var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--ink-2);flex-wrap:wrap;margin:clamp(2rem,5vw,4rem) clamp(1.25rem,3vw,2.5rem) 0;display:flex}.stage__words span{font-variant-numeric:tabular-nums}.stage__words b{color:var(--ink-3);margin-right:.6rem;font-weight:500}.statement{letter-spacing:-.035em;max-width:22ch;font-size:clamp(1.75rem,3.6vw,3.25rem);font-weight:500;line-height:1.12}.statement-row{gap:var(--space-xl);display:grid}@media (width>=64rem){.statement-row{grid-template-columns:1fr 2.4fr;align-items:start}}.stack-cards{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}.stack-card{top:calc(var(--header-h) + var(--i,0) * 1.1rem);align-content:space-between;gap:var(--space-xl) var(--space-lg);border-radius:var(--radius-md);background:var(--dark);color:#fff;grid-template-columns:1fr auto;min-height:clamp(15rem,30vw,22rem);padding:clamp(1.5rem,3.5vw,3rem);display:grid;position:sticky}.stack-card:nth-child(2n){color:var(--ink);background:#e7e5df}.stack-card h3{letter-spacing:-.045em;max-width:12ch;font-size:clamp(2rem,5vw,4.5rem);line-height:.95}.stack-card__index{letter-spacing:-.045em;opacity:.25;font-variant-numeric:tabular-nums;font-size:clamp(2rem,5vw,4.5rem);font-weight:500;line-height:.95}.stack-card p{max-width:30rem;font-size:var(--text-lg);opacity:.7;grid-column:1/-1;line-height:1.4}.marquee{border-block:1px solid var(--line);padding-block:clamp(2rem,5vw,4rem);overflow:hidden}.marquee__track{width:max-content;animation:38s linear infinite marquee;display:flex}.marquee.is-driven .marquee__track{animation:none}.marquee__group{letter-spacing:-.045em;white-space:nowrap;align-items:center;gap:clamp(1.5rem,3vw,3rem);padding-right:clamp(1.5rem,3vw,3rem);font-size:clamp(2.5rem,7vw,6rem);font-weight:500;line-height:1;display:flex}.marquee__sep{color:var(--ink-3);font-weight:400}@keyframes marquee{to{transform:translate(-50%)}}.work-panel{padding-block:var(--space-3xl);margin-top:var(--space-3xl)}.work-grid{gap:clamp(2.5rem,5vw,4rem) clamp(1.25rem,3vw,2.5rem);display:grid}@media (width>=48rem){.work-grid{grid-template-columns:1fr 1fr}.work-grid--stagger>:nth-child(2n){margin-top:clamp(4rem,12vw,11rem)}.work-grid--stagger>:nth-child(odd):not(:first-child){margin-top:calc(-1*clamp(4rem,12vw,11rem) + clamp(2.5rem,5vw,4rem))}}.project-card{gap:var(--space-md);align-content:start;display:grid}.project-card[hidden]{display:none}.project-card__link{gap:var(--space-md);color:inherit;text-decoration:none;display:grid}.project-card__media{border-radius:var(--radius-md);aspect-ratio:4/4.4;background:var(--surface);position:relative;overflow:hidden;transform:translateZ(0)}.project-card__media>*{transition:transform .9s var(--ease)}.project-card__link:hover .project-card__media>*,.project-card__link:focus-visible .project-card__media>*{transform:scale(1.045)}.project-card__media img{object-fit:cover;width:100%;height:100%}.project-card__head{justify-content:space-between;align-items:baseline;gap:var(--space-md);display:flex}.project-card__title{letter-spacing:-.035em;font-size:clamp(1.5rem,2.6vw,2.25rem);line-height:1.05}.project-card__desc{max-width:34rem;color:var(--ink-2)}.card-meta{flex-wrap:wrap;gap:.4rem;display:flex}.chip,.status,.tag{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:1.85rem;font-size:var(--text-xs);color:var(--ink-2);white-space:nowrap;align-items:center;gap:.4rem;padding:0 .75rem;font-weight:500;display:inline-flex}.status:before{content:"";background:var(--status-color,var(--ink-3));border-radius:50%;width:.4rem;height:.4rem}.status[data-status=shipped]{--status-color:#22c55e}.status[data-status=in-progress]{--status-color:#f59e0b}.status[data-status=research]{--status-color:#3b6ef5}.status[data-status=unconfirmed]{--status-color:#9ca3af}.project-card__note{font-size:var(--text-sm);color:var(--ink-3)}.work-more{justify-content:space-between;gap:var(--space-xl);border:1px solid var(--line);border-radius:var(--radius-md);min-height:18rem;color:var(--ink);transition:background var(--duration) var(--ease), border-color var(--duration) var(--ease);flex-direction:column;padding:clamp(1.5rem,3vw,2.5rem);text-decoration:none;display:flex}.work-more:hover{background:var(--surface);border-color:var(--surface-2)}.work-more__title{letter-spacing:-.045em;font-size:clamp(2.25rem,5vw,4.5rem);font-weight:500;line-height:.95}.work-more__title sup{color:var(--ink-3);vertical-align:super;margin-left:.15em;font-size:.35em}.work-more .next-project__arrow{align-self:flex-end}.work-more:hover .next-project__arrow{transform:rotate(-45deg)}.work-grid>*{min-width:0}@media (width>=48rem){.work-more{aspect-ratio:4/3;min-height:0}}.cover-art{--poster-bg:#e7e5df;--poster-fg:#0c0c0c;background:var(--poster-bg);color:var(--poster-fg);flex-direction:column;justify-content:space-between;padding:clamp(1rem,2.5vw,1.75rem);display:flex;position:absolute;inset:0;overflow:hidden;container-type:inline-size}.cover-art[data-category=marketplace]{--poster-bg:#2a2926;--poster-fg:#f2f0ea}.cover-art[data-category=ai]{--poster-bg:#c8cdc3}.cover-art[data-category=web]{--poster-bg:#d8d2c8}.cover-art[data-category=mobile]{--poster-bg:#33363a;--poster-fg:#f2f0ea}.cover-art[data-category=developer-tools]{--poster-bg:#f2f0ea}.cover-art__meta{justify-content:space-between;gap:var(--space-md);font-size:var(--text-sm);opacity:.6;font-variant-numeric:tabular-nums;font-weight:500;display:flex}.cover-art__title{letter-spacing:-.06em;hyphens:manual;margin-bottom:-.06em;font-size:min(12.5cqi,8rem);font-weight:500;line-height:.88;display:block}.process-layout{gap:var(--space-2xl);display:grid}@media (width>=64rem){.process-layout{grid-template-columns:1fr 1.35fr;align-items:start}.process-layout>.section-heading{top:calc(var(--header-h) + 2rem);position:sticky}}.process{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.process li{gap:var(--space-xs) var(--space-md);border-bottom:1px solid var(--line);transition:padding var(--duration) var(--ease);grid-template-columns:3.5rem 1fr;padding-block:clamp(1.25rem,2.5vw,2rem);display:grid}.process li:hover{padding-left:var(--space-sm)}.process-index{font-size:var(--text-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;grid-row:span 2;padding-top:.35rem;font-weight:500}.process h3{font-size:clamp(1.5rem,2.6vw,2.25rem)}.process p:not(.process-index){color:var(--ink-2);max-width:34rem}.tools{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}.tool-card{gap:var(--space-md);border-radius:var(--radius-md);background:var(--surface);padding:clamp(1.5rem,3vw,2.5rem);display:grid}@media (width>=48rem){.tool-card{grid-template-columns:1fr 2fr;align-items:start}}.tool-card h3{font-size:clamp(1.75rem,3vw,2.75rem)}.tool-card p{color:var(--ink-2);font-size:var(--text-lg);line-height:1.45}.about-teaser{gap:var(--space-xl);display:grid}.about-teaser__text{letter-spacing:-.04em;max-width:24ch;font-size:clamp(1.75rem,3.8vw,3.5rem);font-weight:500;line-height:1.1}.about-teaser__more{max-width:36rem;color:var(--ink-2);font-size:var(--text-lg)}.site-footer{margin-top:var(--space-3xl);padding-top:var(--space-3xl);padding-bottom:var(--space-xl)}.site-footer--compact{padding-top:var(--space-xl)}.site-footer--compact .footer-bottom{border-top:0;padding-top:0}.outro{justify-items:center;gap:var(--space-xl);text-align:center;padding-bottom:var(--space-3xl);display:grid}.outro h2{font-size:var(--text-3xl);max-width:12ch}.outro .lede{margin-inline:auto}.outro .button{--btn-bg:#fff;--btn-fg:var(--dark);--btn-border:#fff;min-height:4.25rem;font-size:var(--text-lg);--fill:var(--dark);--fill-fg:#fff;padding:0 2.25rem}.footer-bottom{gap:var(--space-lg);padding-top:var(--space-xl);border-top:1px solid var(--line);color:var(--ink-2);font-size:var(--text-sm);display:grid}.footer-bottom .nav-list{gap:var(--space-xs);flex-flow:wrap}.footer-bottom .nav-list a{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:2.5rem;color:var(--ink);transition:background var(--duration) var(--ease), color var(--duration) var(--ease);align-items:center;padding:0 1rem;text-decoration:none;display:inline-flex}.footer-bottom .nav-list a:hover{background:var(--ink);color:var(--bg)}.footer-brand{letter-spacing:-.06em;color:var(--ink);margin-top:var(--space-xl);white-space:nowrap;padding-top:.04em;font-size:clamp(3rem,15vw,14rem);font-weight:600;line-height:.9;overflow:hidden}@media (width>=48rem){.footer-bottom{grid-template-columns:1fr auto 1fr;align-items:center}.footer-bottom>:last-child{justify-self:end}}.page-intro{gap:var(--space-lg);padding-top:clamp(3rem,8vw,7rem);padding-bottom:clamp(2.5rem,6vw,5rem);display:grid}.page-intro h1{max-width:14ch}.filters{gap:var(--space-xs);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.filter-button{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:2.75rem;color:var(--ink);font:inherit;cursor:pointer;transition:background var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease);background:0 0;padding:0 1.2rem;font-weight:500}.filter-button:hover{border-color:var(--ink)}.filter-button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.filter-status{min-height:1.5em;margin-bottom:var(--space-xl);color:var(--ink-3);font-size:var(--text-sm)}.project-hero{gap:var(--space-lg);padding-top:clamp(3rem,8vw,6rem);display:grid}.project-hero h1{max-width:14ch}.meta-list{gap:var(--space-md);margin:var(--space-md) 0 0;padding-block:var(--space-lg);border-block:1px solid var(--line);display:grid}@media (width>=48rem){.meta-list{gap:var(--space-2xl);grid-template-columns:auto auto 1fr}}.meta-list div{gap:var(--space-xs);align-content:start;display:grid}.meta-list dd{margin:0}.case-cover{margin-top:var(--space-xl);aspect-ratio:16/8;border-radius:var(--radius-lg);min-height:18rem;position:relative;overflow:hidden}.case-cover img{object-fit:cover;width:100%;height:100%}.case-body{gap:var(--space-2xl);padding-top:var(--space-2xl);display:grid}@media (width>=64rem){.case-body{gap:var(--space-3xl);grid-template-columns:16rem 1fr}.case-aside{top:calc(var(--header-h) + 1.5rem);align-self:start;position:sticky}}.case-aside{gap:var(--space-lg);display:grid}.contents{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.contents a{color:var(--ink-3);transition:color var(--duration) var(--ease);padding:.35rem 0;text-decoration:none;display:block}.contents a:hover{color:var(--ink)}.tags{gap:var(--space-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.prose{gap:var(--space-md);max-width:44rem;font-size:var(--text-lg);line-height:1.6;display:grid}.prose h2{margin-top:var(--space-xl);scroll-margin-top:calc(var(--header-h) + 1rem);font-size:clamp(1.75rem,3vw,2.5rem)}.prose h2:first-child{margin-top:0}.prose p,.prose ul{color:var(--ink-2)}.prose ul{margin:0;padding-left:1.1rem}.prose li+li{margin-top:var(--space-xs)}.open-facts{gap:var(--space-lg);margin-top:var(--space-2xl);border-radius:var(--radius-md);background:var(--surface);padding:clamp(1.5rem,3vw,2.5rem);display:grid}.open-facts h2{font-size:var(--text-xl)}.facts{gap:var(--space-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.facts li{border:1px dashed color-mix(in srgb, var(--ink) 25%, transparent);border-radius:var(--radius-pill);font-size:var(--text-sm);color:var(--ink-2);padding:.4rem .85rem}.gallery ul{margin:var(--space-2xl) 0 0;gap:var(--space-md);padding:0;list-style:none;display:grid}.gallery img{border-radius:var(--radius-md)}.case-links{gap:var(--space-sm);margin-top:var(--space-2xl);flex-wrap:wrap;display:flex}.next-project{margin-top:var(--space-3xl);border-radius:var(--radius-lg);padding:clamp(2rem,5vw,4rem);text-decoration:none;display:block;overflow:hidden}.next-project__label{margin-bottom:var(--space-md);display:block}.next-project__title{justify-content:space-between;align-items:flex-end;gap:var(--space-lg);font-size:var(--text-3xl);letter-spacing:-.05em;font-weight:500;line-height:.95;display:flex}.next-project__arrow{aspect-ratio:1;width:clamp(3.5rem,8vw,6rem);color:var(--dark);transition:transform .6s var(--ease), background var(--duration) var(--ease), color var(--duration) var(--ease);background:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.next-project__arrow svg{width:40%;height:40%}.next-project:hover .next-project__arrow{transform:rotate(-45deg)}.about-rows{border-top:1px solid var(--line)}.about-row{gap:var(--space-lg);border-bottom:1px solid var(--line);padding-block:clamp(2rem,5vw,4rem);display:grid}@media (width>=64rem){.about-row{grid-template-columns:1fr 2fr}}.about-row>h2{font-size:var(--text-xl)}.about-row__body{gap:var(--space-md);font-size:var(--text-lg);color:var(--ink-2);max-width:44rem;display:grid}.about-row .process{border-top:0}.about-row .process li:first-child{padding-top:0}.expertise{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}@media (width>=48rem){.expertise{grid-template-columns:1fr 1fr}}.expertise li{gap:var(--space-sm);padding:var(--space-lg);border-radius:var(--radius-md);background:var(--surface);align-content:start;display:grid}.expertise h3{font-size:var(--text-lg);color:var(--ink);letter-spacing:-.02em}.expertise p{font-size:var(--text-md)}.key-line{font-size:var(--text-2xl);letter-spacing:-.04em;color:var(--ink-3);font-weight:500;line-height:1}.contact-copy{gap:var(--space-xl);padding-bottom:var(--space-2xl);display:grid}.channel-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.channel-list a{border-bottom:1px solid var(--line);font-size:var(--text-2xl);letter-spacing:-.04em;transition:padding var(--duration) var(--ease), color var(--duration) var(--ease);justify-content:space-between;align-items:center;padding-block:clamp(1.25rem,3vw,2.25rem);font-weight:500;text-decoration:none;display:flex}.channel-list a:hover{padding-left:var(--space-lg)}.notice{gap:var(--space-md);max-width:40rem;padding:var(--space-lg);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-2);align-items:flex-start;display:flex}.notice:before{content:"";background:#f59e0b;border-radius:50%;flex:none;width:.6rem;height:.6rem;margin-top:.55rem}.consent{left:var(--gutter);bottom:var(--gutter);z-index:150;gap:var(--space-md);max-width:24rem;padding:var(--space-lg);border-radius:var(--radius-md);background:var(--dark);color:#fff;font-size:var(--text-sm);--bg:var(--dark);--ink:#fff;--line:var(--dark-line);border:1px solid #ffffff1f;line-height:1.45;display:grid;position:fixed;box-shadow:0 24px 48px -16px #00000059}.consent[hidden]{display:none}.consent__actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.consent-reset{margin-left:var(--space-sm);color:inherit;font:inherit;text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.consent-reset[hidden]{display:none}.cursor{z-index:200;pointer-events:none;display:none;position:fixed;top:0;left:0}.has-cursor .cursor{display:block}.cursor__dot{mix-blend-mode:difference;width:.65rem;height:.65rem;transition:transform .45s var(--ease), opacity .2s;background:#fff;border-radius:50%;margin:-.325rem 0 0 -.325rem;position:absolute;top:0;left:0}.cursor[data-state=hover] .cursor__dot{transform:scale(4.5)}.cursor[data-state=hidden] .cursor__dot,.cursor[data-state=label] .cursor__dot{opacity:0}.cursor__label{color:#fff;width:6.5rem;height:6.5rem;font-size:var(--text-sm);text-align:center;transition:transform .5s var(--ease);background:#0c0c0c;border-radius:50%;place-items:center;margin:-3.25rem 0 0 -3.25rem;font-weight:500;display:grid;position:absolute;top:0;left:0;transform:scale(0)}.cursor[data-tone=light] .cursor__label{box-shadow:0 0 0 1px #ffffff2e}.cursor[data-state=label] .cursor__label{transform:scale(1)}@media (hover:none),(pointer:coarse){.cursor{display:none!important}}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:clip}html.motion-pending [data-hero-reveal]{visibility:hidden}[class*=line-mask]{margin-block:-.12em;padding-block:.12em}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.marquee__track{animation:none}}
