@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a440747434783fbe-s.047_itglma3g9.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/3aa4d934eba90e8b-s.0n5n~7w2.92ui.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1ce0dcbf49a4d2fc-s.05xmf775qspvj.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2edaebbda2e96a79-s.0eowbdkc6-11h.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/704a14dc8309e245-s.0j8~eg.iqcnq~.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/c88e89b5552bf96c-s.0dcndg~e7g9vk.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/234d9015b631dab9-s.p.0_3shu4gwev1q.woff2)format("woff2");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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_b4e5a274-module__Cvom6W__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_b4e5a274-module__Cvom6W__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f0eee9;--surface:#e8e5df;--well:#f6f5f2;--ink:#171614;--secondary:#5f5e58;--tertiary:#858279;--rule:#d6d2ca;--tint:var(--ink);--on-tint:var(--bg);--material:#f0eee9b8;--hero-ring:#c6c3bc;--font:var(--font-inter), "Helvetica Neue", Helvetica, Arial, sans-serif;--gutter:clamp(16px, 4vw, 56px);--max:1440px;--fs-display:clamp(3.25rem, 11.5vw, 11.5rem);--fs-title-1:clamp(2.5rem, 6.5vw, 5.75rem);--fs-title-2:clamp(1.75rem, 3.6vw, 3rem);--fs-title-3:clamp(1.375rem, 2.1vw, 1.75rem);--fs-lede:clamp(1.125rem, 1.7vw, 1.375rem);--fs-body:1.0625rem;--fs-callout:.9375rem;--fs-caption:.8125rem;--fs-micro:.6875rem;--track-micro:.03em;--track-caption:.012em;--track-title:-.03em;--track-display:-.045em;--ease-out:cubic-bezier(.2, .8, .2, 1);--press:.1s ease-out;--release:.32s var(--ease-out)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:4.5rem}body{background:var(--bg);color:var(--ink);font:100%/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0;transition:background-color .3s,color .3s}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}.eyebrow,.section-meta,.card-meta,.page-header>span{font-size:var(--fs-caption);letter-spacing:var(--track-caption);color:var(--secondary)}.status{vertical-align:middle;background:var(--surface);color:var(--secondary);font-size:var(--fs-micro);letter-spacing:var(--track-micro);border-radius:999px;margin-left:10px;padding:3px 8px;font-weight:500;line-height:1.2;display:inline-block}.text-link,.card-cta{color:var(--ink);font-size:var(--fs-callout);align-items:center;gap:4px;font-weight:600;display:inline-flex}.text-link i,.card-cta i,.next-project i{transition:translate .25s var(--ease-out);font-style:normal}@media (hover:hover){.text-link:hover i,.card-link:hover .card-cta i,.next-project:hover i{translate:3px}.text-link:hover,.card-link:hover .card-cta{text-underline-offset:3px;text-decoration:underline}}a,button,input{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.site-nav a,.site-logo,.contact-links a,.text-link,.next-project,.breadcrumb a,.carousel-arrows button,.carousel-dots button,.lightbox-bar button,.player-controls button,.player-main,.photo-grid button,.photo-strip,.threads a,.card-link{transition:scale var(--release), background-color .2s ease, color .2s ease, opacity .2s ease}.site-nav a:active,.site-logo:active,.contact-links a:active,.text-link:active,.carousel-arrows button:active,.lightbox-bar button:active,.player-controls button:active,.player-main:active{transition:scale var(--press);scale:.94}.next-project:active,.breadcrumb a:active,.photo-strip:active,.photo-grid button:active,.threads a:active{transition:scale var(--press);scale:.985}.card-link:active{transition:scale var(--press);scale:.99}.site-header{z-index:40;transition:background-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;position:fixed;inset:0 0 auto}.site-header:after{content:"";pointer-events:none;background:linear-gradient(var(--material), transparent);opacity:0;height:18px;transition:opacity .3s;position:absolute;top:100%;left:0;right:0}.site-header[data-scrolled]{background:var(--material);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%)}.site-header[data-scrolled]:after{opacity:1}.site-header-inner{max-width:var(--max);padding:12px var(--gutter);font-size:var(--fs-caption);letter-spacing:var(--track-caption);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;display:flex}.header-spacer{height:3.75rem}.site-logo{letter-spacing:-.02em;font-size:1.125rem;font-weight:700}.site-logo span{vertical-align:super;margin-left:1px;font-size:.5625rem}.site-nav{align-items:center;gap:2px;display:flex}.site-nav a{border-radius:999px;padding:6px 11px}.site-nav a[aria-current=page]{background:var(--ink);color:var(--bg)}.site-nav .site-cta{border:1px solid var(--ink);margin-left:8px;font-weight:600}@media (hover:hover){.site-nav a:not([aria-current=page]):not(.site-cta):hover{background:color-mix(in srgb, var(--ink) 7%, transparent)}.site-nav .site-cta:hover{background:var(--ink);color:var(--bg)}}@media (max-width:480px){.site-nav a{padding:6px 7px}.site-nav .site-cta{margin-left:4px}}.site-footer{max-width:var(--max);padding:40px var(--gutter) 48px;border-top:1px solid var(--rule);font-size:var(--fs-caption);letter-spacing:var(--track-caption);color:var(--secondary);flex-wrap:wrap;justify-content:space-between;gap:16px;margin:0 auto;display:flex}.site-footer nav{color:var(--ink);gap:22px;display:flex}.site-footer a{position:relative}.site-footer a:after{content:"";transform-origin:0;height:1px;transition:transform .25s var(--ease-out);background:currentColor;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}@media (hover:hover){.site-footer a:hover:after{transform:scaleX(1)}}.hero{height:100svh;min-height:560px;position:relative;overflow:hidden}.hero-scene{position:absolute;inset:0}.hero-identity{z-index:2;text-align:center;pointer-events:none;padding:0 var(--gutter);place-content:center;justify-items:center;display:grid;position:absolute;inset:0}.hero-identity h1{font-size:calc(80vw / var(--name-em,5.829));white-space:nowrap;letter-spacing:var(--track-display);font-optical-sizing:auto;font-weight:750;line-height:.9}.hero-role{font-size:var(--fs-lede);letter-spacing:-.01em;color:var(--secondary);margin-top:clamp(14px,2vw,28px)}.hero-cue{z-index:2;justify-items:center;padding:8px 16px;display:grid;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.hero-cue i{background:var(--ink);transform-origin:top;width:1px;height:36px;animation:2.2s ease-in-out infinite cue}@keyframes cue{0%{transform:scaleY(0)}50%{transform-origin:top;transform:scaleY(1)}51%{transform-origin:bottom}to{transform-origin:bottom;transform:scaleY(0)}}.showcase{z-index:1;background:var(--bg);transition:background-color .3s;position:relative}.category{max-width:var(--max);padding:clamp(80px, 10vw, 144px) var(--gutter) 0;margin:0 auto}.section-head{gap:14px;max-width:1000px;padding-bottom:clamp(28px,4vw,48px);display:grid}.section-meta{font-variant-numeric:tabular-nums;gap:12px;display:flex}.section-meta span{color:var(--ink);font-weight:500}.section-head h2{font-size:var(--fs-title-2);letter-spacing:var(--track-title);text-wrap:balance;font-weight:700;line-height:1.08}.section-head h2 span{color:var(--tertiary)}@media (max-width:600px){.section-head h2 span{color:var(--secondary);font-size:var(--fs-lede);letter-spacing:-.01em;margin-top:8px;font-weight:400;line-height:1.35;display:block}}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,5vw,72px) clamp(20px,2.5vw,32px);display:grid}.card-grid--single{grid-template-columns:minmax(0,1fr)}.card-grid--single .card-media,.card-grid--single .carousel--card .carousel-slide{aspect-ratio:16/8}.card-grid--single .card-body{max-width:640px}@media (max-width:860px){.card-grid{grid-template-columns:minmax(0,1fr)}}.card{align-content:start;gap:20px;display:grid}.card-link{transform-origin:50% 0;display:block}.card-body{justify-items:start;gap:8px;display:grid}.card-meta{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:10px;display:flex}.card-index{color:var(--ink);font-weight:500}.card-body h3{font-size:var(--fs-title-3);letter-spacing:var(--track-title);font-weight:700;line-height:1.1}.card-summary{font-size:var(--fs-callout);color:var(--secondary);max-width:58ch;line-height:1.5}.card-cta{margin-top:6px}.card-media{aspect-ratio:4/3;background:var(--well);border-radius:8px;position:relative;overflow:hidden}.card-media img{object-fit:cover;transition:transform .7s var(--ease-out)}.card-media--cad img{object-fit:contain;mix-blend-mode:multiply;padding:7%}.card-badge,.card-count{font-size:var(--fs-micro);letter-spacing:var(--track-micro);color:#f0eee9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#141615b8;border-radius:999px;padding:4px 10px;position:absolute;bottom:12px}.card-badge{left:12px}.card-count{right:12px}.card-media--placeholder{text-align:center;background-color:var(--surface);background-image:linear-gradient(var(--rule) 1px, transparent 1px), linear-gradient(90deg, var(--rule) 1px, transparent 1px);font-size:var(--fs-caption);letter-spacing:var(--track-caption);color:var(--secondary);background-position:50%;background-size:32px 32px;place-content:center;justify-items:center;gap:4px;display:grid}.card-media--placeholder small{font-size:var(--fs-micro);letter-spacing:var(--track-micro)}.card-media--model{background:radial-gradient(circle at 50% 45%, #fff, var(--well) 75%)}.card-model{position:absolute;inset:0}.card-body h3{transition:color .2s}.photo-strip{grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:20px;display:grid}.photo-strip span{aspect-ratio:3/4;background:var(--surface);border-radius:6px;position:relative;overflow:hidden}.photo-strip img{object-fit:cover;transition:transform .7s var(--ease-out)}@media (hover:hover){.photo-strip:hover img{transform:scale(1.04)}}@media (max-width:700px){.photo-strip{grid-template-columns:repeat(2,1fr)}.photo-strip span:nth-child(n+5){display:none}}.photo-teaser{padding-bottom:clamp(80px,10vw,144px)}.carousel{border-radius:8px;gap:14px;display:grid}.carousel-viewport{background:var(--well);touch-action:pan-y;border-radius:8px;overflow:hidden}.carousel-viewport.is-draggable{cursor:grab;-webkit-user-select:none;user-select:none}.carousel-viewport[data-dragging]{cursor:grabbing}.carousel-track{will-change:transform;display:flex}.carousel-slide{aspect-ratio:16/10;flex:0 0 100%;place-items:center;display:grid;position:relative}.carousel-image{background:var(--well);margin:0;position:absolute;inset:0}.carousel-image img{object-fit:contain;pointer-events:none}.carousel-image--cad img{mix-blend-mode:multiply;padding:4%}.carousel-image figcaption,.player-label{font-size:var(--fs-micro);letter-spacing:var(--track-micro);color:#f0eee9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#141615b8;border-radius:999px;padding:4px 10px;position:absolute;top:14px;left:14px}.carousel-nav{font-size:var(--fs-caption);color:var(--secondary);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:16px;display:flex}.carousel-dots{gap:2px;display:flex}.carousel-dots button{background:0 0;border:0;width:32px;height:24px;padding:0;position:relative}.carousel-dots button:before{content:"";background:var(--rule);border-radius:2px;height:3px;margin-top:-1.5px;transition:background-color .25s;position:absolute;top:50%;left:2px;right:2px}.carousel-dots button.is-active:before{background:var(--ink)}.carousel-arrows{gap:6px;display:flex}.carousel-arrows button{border:1px solid var(--rule);background:0 0;border-radius:50%;width:40px;height:40px}.carousel-arrows button:disabled{opacity:.35;cursor:default}@media (hover:hover){.carousel-arrows button:not(:disabled):hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}}.player{background:#0d0f0e;position:absolute;inset:0}.player video{object-fit:contain;width:100%;height:100%;display:block}.player-main{color:#171614;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:72px;height:72px;transition:opacity .3s ease, scale var(--release);background:#f0eee9d1;border:0;border-radius:50%;font-size:1.25rem;position:absolute;top:50%;left:50%;translate:-50% -50%}.player.is-playing .player-main{opacity:0;pointer-events:none;scale:.9}.player-controls{-webkit-backdrop-filter:blur(16px)saturate(160%);backdrop-filter:blur(16px)saturate(160%);color:#f0eee9;font-size:var(--fs-micro);letter-spacing:var(--track-micro);font-variant-numeric:tabular-nums;background:#0d0f0e99;border-radius:999px;align-items:center;gap:10px;padding:6px 12px;transition:opacity .3s;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.player-controls button{background:0 0;border:0;min-width:32px;min-height:32px;padding:6px}.player-controls input{appearance:none;cursor:pointer;background:linear-gradient(90deg, #f0eee9 var(--progress), #f0eee945 var(--progress));border-radius:2px;flex:1;min-width:40px;height:3px}.player-controls input::-webkit-slider-thumb{appearance:none;background:#f0eee9;border-radius:50%;width:13px;height:13px}.player-controls input::-moz-range-thumb{background:#f0eee9;border:0;border-radius:50%;width:13px;height:13px}@media (hover:hover){.player.is-playing .player-controls{opacity:0}.player.is-playing:hover .player-controls,.player.is-playing:focus-within .player-controls{opacity:1}}@media (max-width:520px){.player-controls span:nth-of-type(2){display:none}}.model-viewer{gap:12px;margin:0;display:grid}.model-viewer-canvas{aspect-ratio:16/10;touch-action:pan-y;background:radial-gradient(circle at 50% 45%, #fff, var(--well) 75%);cursor:grab;border-radius:8px;position:relative;overflow:hidden}.model-viewer-canvas:active{cursor:grabbing}.model-viewer-loading{font-size:var(--fs-caption);color:#5f5e58;place-items:center;display:grid;position:absolute;inset:0}.model-viewer figcaption{font-size:var(--fs-caption);letter-spacing:var(--track-caption);color:var(--secondary);justify-content:space-between;gap:12px;display:flex}.project,.page{max-width:1120px;padding:clamp(24px, 4vw, 48px) var(--gutter) clamp(72px, 9vw, 120px);gap:clamp(32px,4vw,48px);margin:0 auto;display:grid}.breadcrumb{font-size:var(--fs-caption);letter-spacing:var(--track-caption)}.breadcrumb a{color:var(--secondary);padding:6px 0;display:inline-block}@media (hover:hover){.breadcrumb a:hover{color:var(--ink)}}.project-header{gap:14px;display:grid}.project-header h1{font-size:var(--fs-title-1);letter-spacing:var(--track-display);font-weight:700;line-height:.95}.project-lede{font-size:var(--fs-lede);letter-spacing:-.01em;max-width:40ch;margin-top:10px;line-height:1.35}.project-facts{border-top:1px solid var(--rule);font-size:var(--fs-callout);flex-wrap:wrap;gap:16px 48px;margin:18px 0 0;padding-top:16px;display:flex}.project-facts div{gap:4px;display:grid}.project-facts dt{color:var(--secondary);font-size:var(--fs-caption);letter-spacing:var(--track-caption)}.project-facts dd{margin:0}.project-facts .status{margin-left:0}.project-body{max-width:66ch;font-size:var(--fs-body);gap:1.2em;line-height:1.6;display:grid}.project-pending{font-size:var(--fs-callout);color:var(--secondary)}.next-project{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);gap:6px;padding:28px 0;display:grid}.next-project span{font-size:var(--fs-caption);letter-spacing:var(--track-caption);color:var(--secondary)}.next-project strong{font-size:var(--fs-title-2);letter-spacing:var(--track-title);line-height:1.05;transition:color .2s}@media (hover:hover){.next-project:hover strong{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:2px}}.page-header{gap:16px;max-width:900px;display:grid}.page-header h1{font-size:var(--fs-title-1);letter-spacing:var(--track-display);font-weight:700;line-height:.95}.page-header p{color:var(--secondary);font-size:var(--fs-lede);max-width:52ch;line-height:1.4}.about .page-header h1{letter-spacing:-.04em;text-wrap:balance;font-size:clamp(2.125rem,5.2vw,4.25rem);line-height:1.02}.photo-grid{columns:3 320px;column-gap:12px;margin:0;padding:0;list-style:none}.photo-grid li{break-inside:avoid;margin-bottom:12px}.photo-grid button{background:var(--surface);cursor:zoom-in;border:0;border-radius:6px;width:100%;padding:0;display:block;overflow:hidden}.photo-grid img{width:100%;height:auto;transition:transform .7s var(--ease-out)}.photo-grid button.is-lifted img{visibility:hidden}@media (hover:hover){.photo-grid button:hover img{transform:scale(1.02)}}.lightbox{z-index:50;position:fixed;inset:0}.lightbox-scrim{opacity:0;background:#0e0f0ef0;position:absolute;inset:0}.lightbox-stage{touch-action:none;cursor:zoom-out;position:absolute;inset:0}.lightbox-frame{transform-origin:50%;will-change:transform;cursor:grab;background-position:50%;background-size:cover;border-radius:2px;position:absolute;overflow:hidden}.lightbox-frame:active{cursor:grabbing}.lightbox-frame img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%}.lightbox-bar{height:64px;padding:0 max(16px, calc((100vw - var(--max)) / 2));color:#f0eee9;font-size:var(--fs-caption);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;animation:.25s both fade-in;display:flex;position:absolute;bottom:0;left:0;right:0}.lightbox-bar div{gap:6px;display:flex}.lightbox-bar button{color:#f0eee9;background:0 0;border:1px solid #f0eee945;border-radius:999px;padding:8px 16px}@media (hover:hover){.lightbox-bar button:hover{color:#171614;background:#f0eee9}}@keyframes fade-in{0%{opacity:0}}.threads{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;margin:0;padding:0;list-style:none;display:grid}.threads li{border-top:1px solid var(--rule)}.threads a{gap:10px;padding:18px 0 40px;display:grid}.threads h2{font-size:var(--fs-title-3);letter-spacing:var(--track-title);line-height:1.1;transition:color .2s}.threads p{color:var(--secondary);font-size:var(--fs-callout);max-width:46ch}@media (hover:hover){.threads a:hover h2{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}}@media (max-width:720px){.threads{grid-template-columns:1fr}}.contact{border-top:1px solid var(--rule);gap:16px;padding:40px 0 0;display:grid}.contact h2{font-size:var(--fs-title-2);letter-spacing:var(--track-title);line-height:1.05}.contact p{color:var(--secondary);max-width:52ch}.contact-links{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.contact-links a{border:1px solid var(--rule);font-size:var(--fs-callout);border-radius:999px;padding:11px 20px}.contact-links a:first-child{background:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:600}@media (hover:hover){.contact-links a:not(:first-child):hover{border-color:var(--ink)}.contact-links a:first-child:hover{filter:brightness(1.08)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-cue i{animation:none}*,:before,:after{translate:none;scale:none!important}.card-media img,.photo-strip img,.photo-grid img{transition:none;transform:none!important}.player-main{translate:-50% -50%}}@media (prefers-reduced-transparency:reduce){:root{--material:var(--bg)}.site-header[data-scrolled],.player-main,.player-controls,.card-badge,.card-count,.carousel-image figcaption,.player-label{-webkit-backdrop-filter:none;backdrop-filter:none}.player-controls{background:#0d0f0e}.player-main{background:#f0eee9}}@media (prefers-contrast:more){:root{--secondary:#3f3f3a;--tertiary:#3f3f3a;--rule:#8f8b83;--material:var(--bg)}.site-header[data-scrolled]{border-bottom:1px solid var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none}.site-header:after{display:none}.card-badge,.card-count,.player-controls,.player-label,.carousel-image figcaption{background:#000}}.carousel--card{gap:0}.carousel-frame{position:relative}.carousel--card .carousel-slide{aspect-ratio:4/3}.carousel-link{-webkit-user-drag:none;display:block;position:absolute;inset:0}.carousel-model{background:radial-gradient(circle at 50% 45%, #fff, var(--well) 75%);position:absolute;inset:0}.carousel-model .card-badge{bottom:12px;left:12px}.carousel--card .carousel-image--cad img{padding:7%}.carousel-step{z-index:2;color:#171614;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;width:36px;height:36px;transition:opacity .2s ease, scale var(--release);background:#f0eee9d1;border:0;border-radius:50%;font-size:1.25rem;line-height:1;position:absolute;top:50%;translate:0 -50%;box-shadow:0 1px 3px #0000001f}.carousel-step--prev{left:10px}.carousel-step--next{right:10px}.carousel-step:disabled{visibility:hidden}.carousel-step:active{transition:scale var(--press);scale:.92}@media (hover:hover){.carousel-frame:hover .carousel-step,.carousel-step:focus-visible{opacity:1}}.carousel-pager{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1416156b;border-radius:999px;padding:0 4px;display:flex;position:absolute;bottom:12px;left:50%;translate:-50%}.carousel-pager button{background:0 0;border:0;width:18px;height:22px;padding:0;position:relative}.carousel-pager button:before{content:"";width:6px;height:6px;transition:background-color .2s ease, scale .25s var(--ease-out);background:#f0eee973;border-radius:50%;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%}.carousel-pager button.is-active:before{background:#f0eee9;scale:1.15}.carousel--card .player-label{display:none}.player--compact .player-controls{padding:4px 6px;bottom:10px;left:10px;right:auto}.player--compact .player-controls>:not(:first-child){display:none}.player--compact .player-main{width:56px;height:56px;font-size:1rem}.player--compact:not(.player--vertical) video{object-fit:cover}.player:fullscreen video{object-fit:contain}.mosaic{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(160px,22vw,300px);gap:10px;margin:0;padding:0;list-style:none;display:grid}.mosaic li{background:var(--surface);border-radius:8px;position:relative;overflow:hidden}.mosaic li.is-wide{grid-column:span 2}.mosaic img{object-fit:cover}.mosaic span{font-size:var(--fs-micro);letter-spacing:var(--track-micro);color:#f0eee9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14161599;border-radius:999px;padding:4px 10px;position:absolute;bottom:10px;left:10px}@media (max-width:720px){.mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:42vw}}.in-action{grid-template-columns:1900fr 804fr;align-items:end;gap:12px;margin:0;padding:0;list-style:none;display:grid}.in-action li{background:var(--surface);border-radius:8px;position:relative;overflow:hidden}.in-action img{width:100%;height:auto}.in-action span,.about-portrait figcaption{font-size:var(--fs-micro);letter-spacing:var(--track-micro);color:#f0eee9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14161599;border-radius:999px;padding:4px 10px;position:absolute;bottom:10px;left:10px}@media (max-width:720px){.in-action{grid-template-columns:1fr}}.about-intro{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,56px);display:grid}.about-portrait{background:var(--surface);border-radius:8px;margin:0;overflow:hidden}.about-portrait img{width:100%;height:auto}.groups{gap:16px;display:grid}.groups h2{font-size:var(--fs-title-3);letter-spacing:var(--track-title)}.groups .mosaic{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:860px){.about-intro{grid-template-columns:1fr}.groups .mosaic{grid-template-columns:1fr;grid-auto-rows:56vw}}.project-hero{align-items:start;gap:12px;display:grid}.project-hero--split{grid-template-columns:var(--hero-columns)}.project-hero--split .media-figure--natural .media-figure-frame{max-height:none}.project-hero--split .model-viewer-canvas{aspect-ratio:4/3}@media (max-width:860px){.project-hero--split{grid-template-columns:1fr}}.project-section{border-top:1px solid var(--rule);gap:clamp(20px,2.5vw,32px);padding-top:clamp(40px,6vw,80px);display:grid}.project-section .section-head{padding-bottom:0}.media-group{gap:12px;display:grid}.media-group-label{font-size:var(--fs-caption);letter-spacing:var(--track-caption);color:var(--secondary);font-weight:500}.media-layout{gap:12px;display:grid}.media-layout--pair{grid-template-columns:repeat(2,minmax(0,1fr))}.media-layout--grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:1100px){.media-layout--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.media-layout--pair,.media-layout--grid{grid-template-columns:1fr}}.media-figure{align-content:start;gap:8px;margin:0;display:grid}.media-figure-frame{background:var(--well);border-radius:8px;position:relative;overflow:hidden}.media-figure--cell .media-figure-frame{aspect-ratio:4/3}.media-figure--natural .media-figure-frame{max-height:85vh}.media-figure-frame img{object-fit:cover}.media-figure--natural .media-figure-frame img{object-fit:contain}.media-figure.is-cad .media-figure-frame img{object-fit:contain;mix-blend-mode:multiply;padding:6%}.media-figure.is-video .media-figure-frame{background:#0d0f0e}.media-figure figcaption{font-size:var(--fs-caption);letter-spacing:var(--track-caption);color:var(--secondary)}.category.is-fitted .carousel--card .carousel-slide,.category.is-fitted .card-media{aspect-ratio:auto;height:var(--card-media-h)}@media (max-height:820px) and (min-width:721px){.category{padding-top:clamp(48px,7vh,96px)}.section-head{gap:8px;padding-bottom:20px}.section-head h2{font-size:clamp(1.5rem,2.6vw,2.25rem)}.card-body{gap:4px}.card-cta{margin-top:2px}}.category.is-fitted .in-action{align-items:stretch}.category.is-fitted .in-action img{height:var(--card-media-h);object-fit:cover}
