@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-cyrillic-wght-normal.CjwCQKo9.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-ext-wght-normal.BDUtSsKd.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:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-wght-normal.ObQm3Zd1.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}@font-face{font-family:Jost Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/jost-cyrillic-wght-italic.BC0WGFb7.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-ext-wght-italic.DU2jD5Pk.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:Jost Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-wght-italic.b6W-FdEu.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:#f6f6f9;--ink:#121210;--muted:#6b6b6b;--line:#dcdcdc;--nav-h:72px;--icon:110px;--icon-w:200px;--gutter:40px;--screen:clamp(180px, 55vw, 260px);--accent:#ff4019;--font-body:"Geist Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-ui:"Jost Variable", "Futura", "Century Gothic", sans-serif;--radius-control:8px;--radius-media:12px;--radius-phone:18px;--glass-dark:linear-gradient(#12140e80, #12140e61);--glass-dark-strong:linear-gradient(#12140e9e, #12140e80);--glass-solid:linear-gradient(#12140ed6, #12140ebd);--glass-solid-strong:linear-gradient(#12140ef0, #12140edb);--glass-edge:#ffffff4d;--glass-shadow:0 6px 18px #00000029;font-family:var(--font-body);color:var(--ink);background:var(--bg)}@media (width<=640px){:root{--nav-h:60px;--icon:72px;--icon-w:130px;--gutter:16px}}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1.5px}img{display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.site-nav{z-index:10;height:var(--nav-h);padding:0 var(--gutter);justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute;top:0;left:0;right:0}main{padding-top:var(--nav-h)}[data-canvas-page] .site-nav{color:#fff;text-shadow:0 1px 3px #00000059}.site-nav-home,.site-nav-links{font-family:var(--font-ui);font-style:italic;font-weight:500}.site-nav-home{white-space:nowrap;font-size:25px;text-decoration:none}.site-nav-links{align-items:center;gap:28px;font-size:25px;display:flex}.site-nav-links .button{height:48px;padding:0 20px;font-size:25px}.site-nav-links a{text-decoration:none}.button,.canvas-icon-title,.canvas-icon-label,.scroll-cue,.canvas-back{--glass:var(--glass-solid);border:1px solid var(--glass-edge);border-radius:var(--radius-control);background:var(--glass);height:40px;box-shadow:var(--glass-shadow);backdrop-filter:blur(16px);color:#fff;font-family:var(--font-ui);letter-spacing:.02em;text-shadow:none;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:15px;font-style:italic;font-weight:500;text-decoration:none;display:inline-flex}.button-primary{--glass:var(--glass-solid-strong)}.canvas-icon-title,.canvas-icon-label,.scroll-cue,.canvas-back,[data-canvas-page] .site-nav .button,.work .back-link,.about .button{--glass:var(--glass-dark)}:is([data-canvas-page] .site-nav,.about) .button-primary{--glass:var(--glass-dark-strong)}.button,.view-toggle button,.gallery-controls button{transition:transform .15s,background-color .15s,border-color .15s,filter .15s}.button:active,.view-toggle button:active,.gallery-controls button:active{transform:scale(.97)}.button:hover{filter:brightness(1.25)}@media (prefers-reduced-motion:reduce){.button,.view-toggle button,.gallery-controls button{transition:none}}@media (width<=640px){.site-nav-home{font-size:20px}.site-nav-links{gap:12px;font-size:20px}.site-nav-links .button{height:40px;padding:0 14px;font-size:20px}.site-nav-text-link{display:none}}.work{scroll-margin-top:var(--nav-h);position:relative}html:not([data-view=list]) .work{height:100svh;min-height:520px;margin-top:calc(-1 * var(--nav-h))}html[data-view=list] [data-canvas-view],html:not([data-view=list]) [data-list-view]{display:none}html[data-view=list] .work{min-height:100svh;margin-top:calc(-1 * var(--nav-h));padding:calc(var(--nav-h) + 32px) var(--gutter) var(--gutter);color:#fff;background:#1e2114;flex-direction:column;display:flex}html[data-view=list] .work-list-view{z-index:1;border:1px solid var(--glass-edge);border-radius:var(--radius-media);background:var(--glass-dark);backdrop-filter:blur(24px);width:100%;max-width:1200px;margin:0 auto 32px;padding:32px;position:relative;box-shadow:0 12px 40px #0003}html[data-view=list] .work .work-list a{border-bottom-color:#ffffff2e}html[data-view=list] .work .work-list-label,html[data-view=list] .work .work-list-meta,html[data-view=list] .work .page-header p,html[data-view=list] .work .empty{color:#ffffffbf}html[data-view=list] .work .work-list li:last-child a{border-bottom:0}@media (width<=640px){html[data-view=list] .work-list-view{padding:20px}}html[data-view=list] .view-toggle{order:1;align-self:flex-start;margin-top:auto;position:sticky}.work-art{z-index:0;position:absolute;inset:0;overflow:hidden;container-type:size}.canvas{inset:var(--nav-h) 0 0;z-index:1;position:absolute;overflow:hidden}.canvas-bg{top:0;left:0;z-index:0;object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.work-title-art{width:min(max(100cqw / 1440, 100cqh / 900) * var(--art-w,1140), 92cqw);pointer-events:none;height:auto;position:absolute;top:50%;left:50%;translate:-50% -50%}.centerpiece{z-index:2;width:max-content;max-width:calc(100% - 2 * var(--gutter));background:var(--bg);text-align:center;padding:24px 32px;position:absolute;top:50%;left:50%;translate:-50% -50%}.centerpiece h1{margin:0;font-size:clamp(36px,6vw,72px);line-height:1}.centerpiece h1,.page-header h1,.project-header h1,.next-project-title,.project-body h2{font-family:var(--font-ui);text-transform:uppercase;font-weight:700}.centerpiece p{color:var(--muted);margin:12px 0 0}.canvas-icons{margin:0;padding:0;list-style:none}.canvas-icon{--w:calc(var(--icon-w) * var(--scale,1) + 24px);left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);z-index:1;width:var(--w);margin-left:calc(var(--w) / -2);margin-top:calc(var(--icon) * var(--scale,1) / -2);text-align:center;user-select:none;-webkit-touch-callout:none;flex-direction:column;align-items:center;gap:8px;text-decoration:none;display:flex;position:absolute}.canvas-icon img{width:auto;height:auto;max-width:calc(var(--icon-w) * var(--scale,1));max-height:calc(var(--icon) * var(--scale,1));pointer-events:none;transition:scale .25s}.canvas-icon:hover img,.canvas-icon:focus-visible img,.canvas-icon.is-dragging img{scale:1.12}@media (prefers-reduced-motion:reduce){.canvas-icon img{transition:none}}.canvas-icon-title,.canvas-icon-label{height:36px;padding:0 14px}.canvas.is-ready .canvas-icon{z-index:3}.js .canvas:not(.is-started) .canvas-icon{visibility:hidden}.canvas-icon-label{opacity:0;pointer-events:none;transition:opacity .15s;position:absolute;bottom:calc(100% + 8px)}.canvas-icon-label:empty{display:none}.canvas-icon:hover .canvas-icon-label,.canvas-icon:focus-visible .canvas-icon-label,.canvas-icon.is-dragging .canvas-icon-label,.canvas-icon.is-revealed .canvas-icon-label{opacity:1}.canvas-icon.is-dragging{cursor:grabbing}.view-toggle{bottom:var(--gutter);left:var(--gutter);z-index:5;border:1px solid var(--glass-edge);border-radius:var(--radius-control);background:var(--glass-dark);height:40px;box-shadow:var(--glass-shadow);backdrop-filter:blur(16px);color:#fff;gap:2px;padding:2px;display:flex;position:absolute}.view-toggle[hidden]{display:none}.view-toggle button{color:inherit;font-family:var(--font-ui);letter-spacing:.02em;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;padding:0 14px;font-size:14px;font-style:italic;font-weight:500}.view-toggle button[aria-pressed=false]{opacity:.8}.view-toggle button[aria-pressed=true]{background:linear-gradient(#ffffff8c,#ffffff59);border-color:#ffffffb3;box-shadow:0 2px 6px #0000001f}.scroll-cue{right:var(--gutter);bottom:var(--gutter);z-index:5;position:absolute}.canvas-back{top:24px;left:var(--gutter);z-index:5;position:absolute}.work-list{max-width:1200px;margin:0;padding:0;list-style:none}.work-list a{border-bottom:1px solid var(--line);align-items:center;gap:20px;padding:16px 0;text-decoration:none;display:flex}.work-list img{object-fit:contain;flex:none;width:80px;height:56px}.work-list-text{flex-direction:column;flex:1;gap:4px;display:flex}.work-list-title{font-size:18px;font-weight:600}.work-list-label,.work-list-meta{color:var(--muted);font-size:13px}@media (width<=640px){.work-list a{gap:14px}.work-list img{width:64px;height:44px}.work-list-meta{display:none}}.about{--about-muted:#ffffffb3;--about-col-gap:64px;--about-overlap:48px;color:#fff;background:var(--glass-dark), url(/_astro/about-blur.Cm_h8b9L.jpg) center / cover, #1e2114}.about-top,.cv{max-width:calc(1280px + 2 * var(--gutter));padding-inline:var(--gutter);margin:0 auto}.about-top{z-index:1;column-gap:var(--about-col-gap);grid-template-columns:repeat(3,1fr);align-items:start;padding-top:72px;display:grid;position:relative}.about-heading,.cv h3{font-family:var(--font-ui);text-transform:uppercase;margin:0;font-weight:700;line-height:1}.about-heading{grid-column:1/-1;margin-bottom:40px;font-size:48px}.about-portrait{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-control);width:100%;height:auto;margin-bottom:calc(-1 * var(--about-overlap))}.about-text{grid-column:2/-1;margin-bottom:48px}.about-contact{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 48px;display:flex}.about-info{flex-wrap:wrap;gap:8px 48px;margin:0;display:flex}.about-info dt,.cv-dates{color:var(--about-muted);letter-spacing:.04em;text-transform:uppercase;font-size:13px;font-weight:500}.about-info dd{margin:2px 0 0;font-size:17px;line-height:27px}.about-info a{text-decoration:none}.about-info a:hover{text-decoration:underline}.about-ctas{gap:8px;display:flex}.about-lead{margin:32px 0 0;font-size:21px;line-height:29px}.about-band{padding:calc(var(--about-overlap) + 48px) 0 80px;border-top:1px solid var(--glass-edge);background:linear-gradient(#ffffff0f,#ffffff05)}.cv{gap:48px var(--about-col-gap);grid-template-columns:repeat(3,1fr);align-items:start;display:grid}.cv h3{margin-bottom:24px;font-size:28px}.cv ul{margin:0;padding:0;list-style:none}.cv p{margin:0}.cv-summary{font-size:17px;line-height:27px;margin-bottom:20px!important}.cv-list li+li{margin-top:24px}.cv-title{font-size:20px;font-weight:600;line-height:26px;margin-top:4px!important}.cv-sub{font-size:17px;line-height:27px;margin-top:4px!important}.cv-tools{flex-wrap:wrap;gap:6px;display:flex}.cv-tools li{background:var(--tag,#fff);color:var(--ink);letter-spacing:.04em;text-transform:uppercase;border:1px solid #12121024;border-radius:6px;padding:5px 9px;font-size:13px;font-weight:500;line-height:1.3}@media (width<=1100px){.about{--about-col-gap:40px}}@media (width<=900px){.about-top{grid-template-columns:1fr;padding-top:56px}.about-heading{margin-bottom:24px;font-size:40px}.about-portrait{max-width:360px;margin-bottom:0}.about-text{grid-column:auto;margin:28px 0 48px}.about-lead{margin-top:24px;font-size:18px;line-height:27px}.about-band{padding:48px 0 64px}.cv{grid-template-columns:1fr;gap:48px}.cv h3{font-size:24px}}.back-link{margin-bottom:24px}.page-header{margin-bottom:32px}.page-header h1{margin:0;font-size:clamp(36px,5vw,48px);line-height:1}.page-header p{color:var(--muted);margin:12px 0 0;font-size:18px}.empty{color:var(--muted)}.project{padding:48px var(--gutter) 0}.project-header,.project-body>*{max-width:960px;margin-inline:auto}.project-body>:not(.figure,.two-up,.columns,.gallery,.cards,.gallery-loop,.devices,.phones,.highlights,.statement){padding-right:max(0px,min(960px,100%) - 760px)}.project-summary{max-width:760px}.project-header{margin-bottom:56px}.project-header h1{margin:16px 0 0;font-size:clamp(40px,6.5vw,80px);line-height:1}.tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tags li{letter-spacing:.04em;text-transform:uppercase;background:#fff;border:1px solid #12121024;border-radius:6px;padding:5px 9px;font-size:13px;font-weight:500;line-height:1.3}.project-subtitle{color:var(--muted);margin:8px 0 0;font-size:20px;font-weight:500}.project-meta{gap:48px;margin:24px 0;display:flex}.project-link{margin-top:24px}.project-meta dt{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.project-meta dd{margin:4px 0 0;font-weight:500}.project-summary{margin:0;font-size:20px;line-height:1.5}.project-body{font-size:17px;line-height:1.65}.project-body h2{margin-top:64px;margin-bottom:16px;font-size:28px;line-height:1.1}.project-body p{margin-top:0;margin-bottom:16px}.figure,.two-up,.columns,.gallery,.cards,.devices,.phones,.highlights{max-width:960px;margin:48px auto}.devices{grid-template-columns:3.46fr;grid-auto-columns:1fr;grid-auto-flow:column;align-items:start;gap:20px;display:grid}.devices .figure{margin:0}.devices .figure:not(:first-child) img,.devices .figure-scroll{border-radius:var(--radius-phone)}.devices figcaption{font-size:13px}.phones{--phone:clamp(150px, 40vw, 240px);flex-wrap:wrap;justify-content:center;gap:32px;display:flex}.phones .figure{width:var(--phone);margin:0}.phones .figure img{border-radius:var(--radius-phone)}.figure-scroll{aspect-ratio:1170/2532;border-radius:var(--radius-phone);overscroll-behavior:contain;scrollbar-width:thin;overflow-y:auto}.figure-scroll img{border-radius:0!important}.phones figcaption{text-align:center}.cards{grid-template-columns:1fr 1fr;gap:24px;display:grid}.card{border-top:6px solid var(--accent);background:color-mix(in srgb, var(--accent) 9%, var(--bg));border-radius:12px;padding:24px 28px 28px;font-size:15px;line-height:1.55}.card-wide{grid-column:1/-1}.card-header{align-items:center;gap:12px;display:flex}.card-icon{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:grid}.card-kicker{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600;margin:0!important}.card h3{margin:0;font-size:22px;line-height:1.2}.card-body{margin-top:20px}.card-wide .card-body{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:24px 36px;display:grid}.card h4{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:16px 0 6px;font-size:12px;font-weight:600}.card-body>:first-child,.card-body>div>:first-child{margin-top:0}.card p{margin:0 0 8px}.card ul{margin:0;padding-left:18px}.card li{margin-bottom:4px}.card li::marker{color:var(--accent)}.gallery{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}.gallery .figure{margin:0}@media (width>=641px){.gallery:has(>figure:nth-of-type(4):last-of-type){grid-template-columns:repeat(4,1fr)}}.gallery .figure img{background:0 0}.project{overflow-x:clip}.project-body>.gallery-loop{--edge:max(var(--gutter), (100vw - 960px) / 2);width:100vw;max-width:none;margin:48px calc(50% - 50vw)}.gallery-track{padding:4px var(--edge);scroll-padding-inline:var(--edge);scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;gap:24px;display:flex;overflow-x:auto}.gallery-track::-webkit-scrollbar{display:none}.gallery-set{display:contents}.gallery-set .figure{width:var(--screen);scroll-snap-align:start;flex:none;margin:0}.gallery-set .figure img{background:0 0}html:not(.js) .gallery-set[data-clone]{display:none}.gallery-controls{width:min(960px, 100% - 2 * var(--gutter));justify-content:flex-end;gap:8px;margin:16px auto 0;display:flex}html:not(.js) .gallery-controls{display:none}.gallery-controls button{border:1px solid var(--glass-edge);border-radius:var(--radius-control);background:var(--glass-solid);width:44px;height:44px;box-shadow:var(--glass-shadow);color:#fff;font:inherit;cursor:pointer;place-items:center;font-size:18px;display:grid}.gallery-controls button:hover{filter:brightness(1.25)}.figure.figure-narrow img{width:calc(var(--screen) * .81);margin-inline:auto}.figure-narrow figcaption{text-align:center}.project-body>.flow-arrow{color:var(--muted);justify-content:center;margin-block:-16px;padding-right:0;display:flex}.project-body>.flow-arrow+h2{margin-top:40px}.columns{grid-template-columns:1fr 1fr;align-items:start;gap:48px;display:grid}.columns>*>:first-child{margin-top:0}.columns>.figure.compare{margin:0}@media (width>=641px){.columns>.compare:not(:first-child) .compare-frame{margin-inline:auto 0}.columns>.compare:first-child .compare-frame{margin-inline:0 auto}}.columns:has(>.compare){align-items:center}@media (width>=641px){.project-body>.columns:has(>.compare){margin-block:64px}}.project-body>h3:has(+.gallery){margin:56px auto 0}@media (width>=641px){.project-body>h3:has(+.gallery){margin-top:96px}}.project-body>h3+.gallery{margin-top:24px}.columns .figure{margin:0 0 24px}.figure img,.figure video{border-radius:var(--radius-media);background:#1212100a;width:100%;height:auto}.figure figcaption{color:var(--muted);margin-top:10px;font-size:14px}.two-up{grid-template-columns:1fr 1fr;gap:32px;display:grid}.two-up .figure{margin:0}@media (width<=640px){.two-up,.columns,.cards{grid-template-columns:1fr;gap:24px}.columns>:has(>h2,>h3){order:-1}.devices{grid-template-columns:1fr 1fr;grid-auto-flow:row;gap:16px}.devices .figure:first-child{grid-column:1/-1}.devices .figure:nth-child(2):last-child{grid-column:1/-1;justify-self:center;width:55%}.card{padding:20px}.gallery{grid-template-columns:1fr 1fr;gap:16px}.project-body h2{margin-top:48px;font-size:24px}.figure,.two-up,.columns,.gallery,.cards,.devices,.phones{margin:32px auto}}.highlights ol,.highlights ul{counter-reset:highlight;grid-template-columns:repeat(2,1fr);gap:32px 48px;margin:0;padding:0;list-style:none;display:grid}.highlights li{border-top:2px solid var(--accent);margin:0;padding-top:16px}.highlights li>:first-child{margin-top:0}.highlights-numbered ol{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.highlights ul:has(>li:nth-child(3):last-child){grid-template-columns:repeat(3,1fr)}.highlights-numbered li{counter-increment:highlight;border-top:0;padding-top:0;font-size:19px;line-height:1.45}.highlights-numbered li:has(strong){font-size:16px;line-height:1.6}.highlights-numbered li strong{margin-bottom:6px;font-size:18px;line-height:1.35;display:block}.highlights-numbered li:before{content:counter(highlight, decimal-leading-zero);color:color-mix(in srgb, var(--accent) 70%, var(--ink));font-family:var(--font-ui);font-variant-numeric:tabular-nums;margin-bottom:12px;font-size:56px;font-weight:700;line-height:1;display:block}@media (width<=640px){.highlights ol,.highlights ul{grid-template-columns:1fr;gap:24px}.highlights-numbered li:before{font-size:44px}}.statement{border-top:3px solid var(--accent);padding-top:20px;font-size:clamp(20px,2.2vw,24px);font-weight:500;line-height:1.45}.statement p{margin:0}.project-body>.gallery-loop.gallery-banded{background:color-mix(in srgb, var(--band) 14%, var(--bg));padding-block:48px 32px}@media (hover:hover) and (prefers-reduced-motion:no-preference){.cv-tools li{transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s;position:relative}.cv-tools li:hover{z-index:1;transform:scale(1.15)rotate(-4deg);box-shadow:0 6px 14px #00000040}.cv-tools li:nth-child(2n):hover{transform:scale(1.15)rotate(4deg)}.cv-tools li:nth-child(3n):hover{transform:scale(1.15)rotate(-2deg)}}.bar-chart{border-top:6px solid var(--accent);background:color-mix(in srgb, var(--accent) 9%, var(--bg));border-radius:12px;flex-direction:column;padding:24px 28px 20px;display:flex}.figure .bar-chart-title{color:var(--ink);margin:0 0 20px;font-size:15px;font-weight:600;line-height:1.45}.bar-chart-total{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:4px;font-size:12px;font-weight:600;display:block}.bar-chart-bars{grid-template-columns:repeat(var(--cols), 1fr);gap:6px;height:180px;margin:auto 0 0;padding:0;list-style:none;display:grid}.bar-chart-bars li{flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.bar-chart-bar{width:100%;height:calc(var(--h) * 130px);background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}.bar-chart-value{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;line-height:1}.bar-chart-label{color:var(--muted);text-align:center;border-top:1px solid #12121033;align-self:stretch;padding-top:6px;font-size:12px;line-height:1}.bar-chart-scale{color:var(--muted);justify-content:space-between;margin:8px 0 0;font-size:12px;display:flex}@media (width<=640px){.bar-chart{padding:20px 16px 16px}.bar-chart-bars{gap:4px}}.compare-frame{--pos:50%;border-radius:var(--radius-media);cursor:ew-resize;touch-action:pan-y;user-select:none;background:#1e2114;width:min(100%,50.625svh);margin-inline:auto;position:relative;overflow:hidden}.compare-frame video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.compare-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}.compare-handle{top:0;bottom:0;left:var(--pos);pointer-events:none;background:#fff;width:2px;position:absolute;translate:-1px;box-shadow:0 0 8px #00000059}.compare-handle:after{content:"‹ ›";border:1px solid var(--glass-edge);border-radius:var(--radius-control);background:var(--glass-dark-strong);width:40px;height:40px;box-shadow:var(--glass-shadow);backdrop-filter:blur(16px);color:#fff;letter-spacing:.1em;place-items:center;font-size:18px;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%}.compare-frame:has(.compare-range:focus-visible) .compare-handle:after{outline:2px solid var(--accent);outline-offset:3px}.compare-range{opacity:0;pointer-events:none;width:100%;margin:0;position:absolute;inset:0}.compare-label,.compare-pause,.loop-toggle{z-index:1;border:1px solid var(--glass-edge);background:var(--glass-dark);backdrop-filter:blur(16px);color:#fff;height:32px;font-family:var(--font-ui);letter-spacing:.02em;border-radius:6px;align-items:center;padding:0 12px;font-size:14px;font-style:italic;font-weight:500;display:inline-flex;position:absolute}.compare-label{pointer-events:none;top:12px}.compare-label-before{left:12px}.compare-label-after{right:12px}.compare-pause,.loop-toggle{cursor:pointer;bottom:12px;right:12px}.loop-frame{position:relative}.loop video{border-radius:var(--radius-media);cursor:pointer;background:#1e2114;width:100%;height:auto;display:block}.loop-toggle{opacity:0;transition:opacity .15s}.loop-frame:hover .loop-toggle,.loop-toggle:focus-visible,.loop-toggle[aria-pressed=true]{opacity:1}@media (hover:none){.loop-toggle{opacity:1}}.logo-cycle-stack{display:grid}.logo-cycle-stack img{opacity:0;grid-area:1/1;width:100%;height:auto;transition:opacity .35s;background:0 0!important}.logo-cycle-stack img.is-active{opacity:1}@media (prefers-reduced-motion:reduce){.logo-cycle-stack img,.loop-toggle{transition:none}}.next-project{max-width:calc(960px + 2 * var(--gutter));padding:0 var(--gutter);margin:96px auto 0}.next-project a{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:48px 0 96px;text-decoration:none;display:flex}.next-project-text{flex-direction:column;gap:8px;display:flex}.next-project-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.next-project-title{font-size:clamp(28px,4vw,48px);line-height:1}.next-project img{width:auto;max-width:clamp(110px,22vw,220px);height:auto;max-height:110px}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}.site-nav{view-transition-name:site-nav}::view-transition-old(root){animation:.22s ease-in both page-out}::view-transition-new(root){animation:.45s cubic-bezier(.16,1,.3,1) both page-in}.project-header>*,.project-body>:first-child{animation:.8s cubic-bezier(.16,1,.3,1) both rise}.project-header>:nth-child(2){animation-delay:60ms}.project-header>:nth-child(3){animation-delay:.12s}.project-header>:nth-child(4){animation-delay:.18s}.project-header>:nth-child(5){animation-delay:.24s}.project-header>:nth-child(6){animation-delay:.3s}.project-header>:nth-child(7){animation-delay:.36s}.project-body>:first-child{animation-delay:.42s}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes page-out{to{opacity:0}}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}}
