@font-face{font-family:Caprasimo;font-style:normal;font-weight:400;font-display:swap;src:url(../media/682af714a7d5bc8c-s.0vkehbqruf3sp.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:Caprasimo;font-style:normal;font-weight:400;font-display:swap;src:url(../media/12b67b3c78c4367a-s.p.2je68ess2qfm7.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:Caprasimo Fallback;src:local(Arial);ascent-override:79.59%;descent-override:19.86%;line-gap-override:0.0%;size-adjust:115.33%}.caprasimo_4d39880c-module__cV1sxW__className{font-family:Caprasimo,Caprasimo Fallback;font-style:normal;font-weight:400}.caprasimo_4d39880c-module__cV1sxW__variable{--font-caprasimo:"Caprasimo", "Caprasimo Fallback"}
@font-face{font-family:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.2u3lqdovtp4z3.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:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.0jgzmitmnoe6_.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:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.2u3lqdovtp4z3.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:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.0jgzmitmnoe6_.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:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.2u3lqdovtp4z3.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:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.0jgzmitmnoe6_.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:Figtree;font-style:normal;font-weight:700;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.2u3lqdovtp4z3.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:Figtree;font-style:normal;font-weight:700;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.0jgzmitmnoe6_.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:Figtree Fallback;src:local(Arial);ascent-override:94.32%;descent-override:24.82%;line-gap-override:0.0%;size-adjust:100.72%}.figtree_5c4d28b5-module__Ih0lUq__className{font-family:Figtree,Figtree Fallback;font-style:normal}.figtree_5c4d28b5-module__Ih0lUq__variable{--font-figtree:"Figtree", "Figtree Fallback"}
:root{--color-bg:#f7f5f0;--color-surface:#edeae1;--color-text:#1c1b18;--color-muted:color-mix(in srgb, var(--color-text) 62%, transparent);--color-divider:#1c1b1824;--color-neutral-100:#fbfaf7;--color-neutral-200:#f1efe8;--color-neutral-300:#e0ddd3;--color-neutral-400:#c4c0b4;--color-neutral-500:#a3a094;--color-neutral-600:#838076;--color-neutral-700:#63615a;--color-neutral-800:#45443f;--color-neutral-900:#2b2a27;--color-accent:#7a8a5e;--color-accent-100:#f0fae1;--color-accent-200:#e1eecc;--color-accent-300:#ccdbb2;--color-accent-400:#aebf92;--color-accent-500:#8fa073;--color-accent-600:#728157;--color-accent-700:#56633f;--color-accent-800:#3d472b;--color-accent-900:#272e1b;--color-accent-2:#c67139;--color-accent-2-100:#fff2eb;--color-accent-2-200:#ffe1d0;--color-accent-2-300:#ffc6a5;--color-accent-2-400:#f6a06b;--color-accent-2-500:#d67f48;--color-accent-2-600:#b2622d;--color-accent-2-700:#8c491a;--color-accent-2-800:#643312;--color-accent-2-900:#402310;--project-moss:#56633f;--project-clay:#8c491a;--project-harbor:#2c6a8e;--project-ink-blue:#41509a;--project-rose:#9b2f4b;--btn-primary:var(--color-accent-700);--on-tone:#f7f5f0;--panel-bg:#ebe7dc;--panel-text:#1c1b18;--panel-muted:#1c1b18ad;--panel-line:#1c1b1829;--panel-accent:#56633f;--font-heading:var(--font-caprasimo), Georgia, serif;--font-body:var(--font-figtree), system-ui, sans-serif;--header-h:64px;--gutter:clamp(20px, 4vw, 40px);--ease-out:cubic-bezier(.22, 1, .36, 1);--radius-sm:8px;--radius-md:14px;--shadow-frame:0 34px 60px -34px #2e2b258c, 0 0 0 1px #1c1b181a}:root[data-theme=dark]{--color-bg:#201e1d;--color-surface:#2e2b25;--color-text:#f5ead8;--color-divider:#f5ead829;--color-neutral-100:#2a2723;--color-neutral-200:#34302a;--color-neutral-300:#474238;--color-neutral-400:#645c50;--color-neutral-500:#8a8173;--color-accent:#aebf92;--color-accent-100:#272e1b;--color-accent-200:#3d472b;--color-accent-700:#ccdbb2;--color-accent-2:#f6a06b;--color-accent-2-100:#2b2017;--color-accent-2-200:#643312;--color-accent-2-700:#ffc6a5;--project-moss:#aebf92;--project-clay:#f2a676;--project-harbor:#8ec3e2;--project-ink-blue:#aab5ee;--project-rose:#eea0b4;--btn-primary:var(--color-accent);--on-tone:#201e1d;--icon-lift:2.4;--panel-bg:#161514;--panel-text:#f5ead8;--panel-muted:#f5ead8a8;--panel-line:#f5ead829;--panel-accent:#aebf92;--shadow-frame:0 34px 60px -30px #000000b3, 0 0 0 1px #f5ead81f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-h);-webkit-text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55;transition:background-color .45s,color .45s;overflow-x:clip}h1,h2,h3,h4{font-family:var(--font-heading);margin:0;font-weight:400}p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}img{max-width:100%;height:auto;display:block}a{color:inherit}button{font:inherit;color:inherit}::selection{background:color-mix(in srgb, var(--color-accent) 32%, transparent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.sr-only{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{z-index:10000;background:var(--color-text);color:var(--color-bg);border-radius:999px;padding:10px 16px;font-weight:600;text-decoration:none;transition:transform .2s;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.container{width:100%;max-width:1240px;padding:0 var(--gutter);margin:0 auto}.icon-invert{filter:invert(var(--icon-invert,0))}.icon-lift{filter:brightness(var(--icon-lift,1))}.mask{margin-bottom:-.08em;padding-bottom:.08em;display:block;overflow:hidden}.mask>span{display:inline-block}.theme-switching,.theme-switching *,.theme-switching :before,.theme-switching :after{transition:none!important}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}.btn{min-height:44px;color:var(--color-text);font-family:var(--font-body);white-space:nowrap;cursor:pointer;transition:background-color .25s ease, border-color .25s ease, color .25s ease, transform .35s var(--ease-out);background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:11px 20px;font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)scale(.98)}.btn-primary{background:var(--btn-primary);color:var(--color-bg)}.btn-primary:hover{background:color-mix(in srgb, var(--btn-primary) 86%, var(--color-text))}.btn-tone{background:var(--tone,var(--btn-primary));color:var(--on-tone)}.btn-tone:hover{background:color-mix(in srgb, var(--tone,var(--btn-primary)) 84%, var(--color-text))}.btn-secondary{border-color:color-mix(in srgb, var(--color-text) 22%, transparent)}.btn-secondary:hover{border-color:var(--color-text);background:color-mix(in srgb, var(--color-text) 5%, transparent)}.icon-btn{border:1px solid color-mix(in srgb, var(--color-text) 20%, transparent);cursor:pointer;width:44px;height:44px;transition:border-color .2s ease, background-color .2s ease, transform .35s var(--ease-out);background:0 0;border-radius:999px;place-items:center;display:inline-grid}.icon-btn:hover{border-color:var(--tone,var(--color-text));background:color-mix(in srgb, var(--tone,var(--color-text)) 10%, transparent)}.icon-btn:first-child:active{transform:translate(-3px)}.icon-btn:last-child:active{transform:translate(3px)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--color-divider);background:var(--color-neutral-100);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:6px 12px 6px 9px;font-size:13px;font-weight:600;display:inline-flex}.chip img{width:18px;height:18px}.loader{z-index:9999;background:var(--color-bg);color:var(--color-text);-webkit-user-select:none;user-select:none;clip-path:inset(0);flex-direction:column;justify-content:center;align-items:center;gap:22px;display:flex;position:fixed;inset:0}.loader-word{font-family:var(--font-heading);letter-spacing:.16em;font-size:clamp(34px,6vw,56px);line-height:1;display:flex}.loader-word .ch{display:inline-block}.loader-word .dot{color:var(--color-accent-700)}[data-motion=on] .loader-word .ch{transform:translateY(110%)}.loader-meta{flex-direction:column;align-items:center;gap:10px;display:flex}.loader-track{background:var(--color-divider);width:170px;max-width:70vw;height:2px;overflow:hidden}.loader-bar{background:var(--color-accent);transform-origin:0;height:100%;transform:scaleX(0)}.loader-num{letter-spacing:.1em;color:var(--color-muted);font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;font-weight:600}.site-header{z-index:60;background:var(--color-bg);border-bottom:1px solid var(--color-divider);transition:background-color .45s;position:sticky;top:0}.header-inner{max-width:1240px;height:var(--header-h);padding:0 var(--gutter);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;display:flex}.header-logo{font-family:var(--font-heading);letter-spacing:-.01em;font-size:21px;text-decoration:none}.header-logo .dot{color:var(--color-accent-700);transition:transform .5s var(--ease-out);display:inline-block}.header-logo:hover .dot{transform:translateY(-5px)}.desktop-nav{align-items:center;gap:4px;display:flex;position:relative}.nav-link{color:var(--color-muted);border-radius:999px;padding:8px 14px;font-size:14.5px;font-weight:600;text-decoration:none;transition:color .25s}.nav-link:hover,.nav-link.is-active{color:var(--color-text)}.nav-indicator{pointer-events:none;width:0;height:2px;transition:transform .55s var(--ease-out), width .55s var(--ease-out);position:absolute;bottom:-2px;left:0}.nav-indicator:before{content:"";background:var(--color-accent);border-radius:2px;height:100%;margin:0 14px;display:block}.header-tools{align-items:center;gap:8px;display:flex}.read-progress{background:var(--color-accent);transform-origin:0;pointer-events:none;height:2px;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.lamp{cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:flex-end;gap:8px;padding:4px 6px 2px;display:flex}.lamp-figure{width:44px;height:38px;display:block;position:relative}.lamp-base,.lamp-arm,.lamp-neck{background:var(--color-neutral-400);border-radius:999px;position:absolute}.lamp-base{width:23px;height:4px;bottom:0;left:5px}.lamp-arm{transform-origin:50% 100%;width:4px;height:23px;bottom:3px;left:14px;transform:rotate(-16deg)}.lamp-head{transform-origin:2px 2px;width:27px;height:36px;position:absolute;top:2px;left:17px}.lamp-neck{transform-origin:0 0;width:5px;height:13px;top:0;left:0;transform:rotate(52deg)}.lamp-shade{background:var(--color-accent-600);clip-path:polygon(0 100%,22% 0,78% 0,100% 100%);width:23px;height:14px;transition:background-color .3s;position:absolute;top:5px;left:3px;transform:rotate(14deg)}.lamp-beam{clip-path:polygon(30% 0,62% 0,100% 100%,0 100%);background:radial-gradient(120% 90% at 42% 0,#ffd9a0c7,#0000 72%);width:38px;height:28px;transition:opacity .35s;position:absolute;top:19px;left:-7px}:root[data-theme=dark] .lamp-shade{background:var(--color-neutral-500)}:root[data-theme=dark] .lamp-beam{opacity:0}.lamp:hover .lamp-head{transition:transform .4s var(--ease-out);transform:rotate(-4deg)}.lamp.is-clicked .lamp-head{animation:lamp-nod .6s var(--ease-out)}@keyframes lamp-nod{0%{transform:rotate(0)}30%{transform:rotate(9deg)}60%{transform:rotate(-3deg)}to{transform:rotate(0)}}.lamp-label{color:var(--color-muted);white-space:nowrap;padding-bottom:2px;font-size:12px;font-weight:600}.lamp-label-dark,:root[data-theme=dark] .lamp-label-light{display:none}:root[data-theme=dark] .lamp-label-dark{display:inline}.menu-btn{border:1px solid var(--color-divider);cursor:pointer;background:0 0;border-radius:999px;width:44px;height:44px;display:none;position:relative}.menu-btn span{width:18px;height:1.5px;transition:transform .35s var(--ease-out);background:currentColor;position:absolute;left:13px}.menu-btn span:first-child{transform:translateY(-3.5px)}.menu-btn span:last-child{transform:translateY(3.5px)}.menu-btn.is-open span:first-child{transform:rotate(45deg)}.menu-btn.is-open span:last-child{transform:rotate(-45deg)}.mobile-nav{padding:8px var(--gutter) 24px;border-top:1px solid var(--color-divider);flex-direction:column;display:flex}.mobile-nav[hidden]{display:none}.mobile-nav-link{border-bottom:1px solid var(--color-divider);font-family:var(--font-heading);animation:nav-in .5s var(--ease-out) both;align-items:baseline;gap:14px;padding:12px 0;font-size:30px;line-height:1.1;text-decoration:none;display:flex}.mobile-nav-link.is-active{color:var(--color-accent-700)}@keyframes nav-in{0%{opacity:0;transform:translateY(12px)}}.hero{min-height:calc(100svh - var(--header-h));max-width:1240px;padding:0 var(--gutter);flex-direction:column;margin:0 auto;display:flex;position:relative}.hero-grid{flex:1;grid-template-columns:minmax(0,1fr) clamp(280px,29vw,360px);align-items:center;gap:clamp(24px,4vw,64px);padding:clamp(28px,5vh,56px) 0 clamp(20px,4vh,40px);display:grid}.hero-copy{z-index:2;position:relative;container-type:inline-size}.hero-name{color:var(--color-accent-700);font-family:var(--font-heading);margin-bottom:clamp(14px,2.4vh,24px);font-size:clamp(17px,1.5vw,21px)}.hero-title{font-size:clamp(28px, calc(138.6cqi / var(--title-chars,9)), 152px);letter-spacing:-.015em;margin:0 0 clamp(22px,3.4vh,36px);line-height:.86}.hero-line{white-space:nowrap}.hero-line .ch{display:inline-block}.hero-line:last-child{color:var(--color-accent-700)}[data-motion=on] .hero-name>span,[data-motion=on] .hero-title .ch{transform:translateY(112%)}[data-motion=on] .hero-rise,[data-motion=on] .badge-hint{opacity:0}.hero-quote{max-width:42ch;color:color-mix(in srgb, var(--color-text) 78%, transparent);text-wrap:pretty;margin-bottom:clamp(24px,3.4vh,34px);font-size:clamp(18px,1.6vw,21px);line-height:1.5}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-foot{border-top:1px solid var(--color-divider);color:var(--color-muted);justify-content:space-between;align-items:center;gap:16px;padding:18px 0 22px;font-size:13.5px;display:flex}.scroll-cue{color:var(--color-text);align-items:center;gap:10px;font-weight:600;text-decoration:none;display:inline-flex}.scroll-cue-line{background:var(--color-divider);width:1px;height:22px;position:relative;overflow:hidden}.scroll-cue-line:after{content:"";background:var(--color-text);animation:cue 2.2s var(--ease-out) infinite;position:absolute;inset:0}@keyframes cue{0%{transform:translateY(-100%)}60%,to{transform:translateY(100%)}}.badge-wrap{z-index:3;position:relative}.badge-stage{perspective:1200px;justify-content:center;width:100%;height:520px;display:flex;position:relative;overflow:visible}.badge-rig{transform-origin:50% 0;will-change:transform;-webkit-user-select:none;user-select:none;width:276px;transform-style:preserve-3d;pointer-events:none;position:absolute;top:-920px;left:50%;transform:translate(-50%)}[data-motion=on] .badge-rig{visibility:hidden}.badge-card{transform-origin:50% 8px;width:276px;height:410px;transform-style:preserve-3d;will-change:transform;cursor:grab;pointer-events:auto;touch-action:pan-y;-webkit-tap-highlight-color:transparent;border-radius:16px;margin:-8px auto 0;position:relative}.badge-card:focus-visible{outline-offset:6px}.is-grabbing .badge-card{cursor:grabbing}.badge-glare{z-index:30;opacity:0;mix-blend-mode:overlay;pointer-events:none;border-radius:16px;position:absolute;inset:0}.badge-hint{text-align:center;color:var(--color-muted);margin-top:26px;font-size:12.5px}.badge-hint-touch{display:none}@media (hover:none){.badge-hint-fine{display:none}.badge-hint-touch{display:inline}}.marquee{background:var(--color-neutral-100);border-block:1px solid var(--color-divider);padding:24px 0;position:relative}.marquee:before,.marquee:after{content:"";border-top:1px dashed color-mix(in srgb, var(--color-text) 20%, transparent);pointer-events:none;position:absolute;left:0;right:0}.marquee:before{top:7px}.marquee:after{bottom:7px}.marq-wrap{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000);mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.marq-track{width:max-content;animation:48s linear infinite marq;display:flex}@keyframes marq{to{transform:translate(-50%)}}.marq-group{align-items:center;gap:56px;padding-right:56px;display:flex}.marq-item{white-space:nowrap;align-items:center;gap:11px;font-size:15px;font-weight:600;display:flex}.marq-item img{width:30px;height:30px}.section{padding:clamp(64px,8vw,112px) 0}.section-label{font-size:clamp(24px,2.4vw,32px);line-height:1.1}.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,3fr);align-items:start;gap:clamp(24px,4vw,64px);display:grid}.about-statement{letter-spacing:-.018em;text-wrap:pretty;max-width:30ch;font-size:clamp(27px,3.5vw,48px);font-weight:500;line-height:1.2}.about-facts{border-top:1px solid var(--color-divider);grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:clamp(32px,4vw,48px);padding-top:22px;display:grid}.about-facts dt{color:var(--color-muted);font-size:13.5px}.about-facts dd{margin-top:4px;font-size:17px;font-weight:600}.projects{border-top:1px solid var(--color-divider)}.projects-intro{grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:clamp(24px,4vw,64px);padding-top:clamp(64px,8vw,112px);padding-bottom:clamp(16px,2.5vw,32px);display:grid}.projects-index-wrap{position:relative}.projects-index{border-bottom:1px solid var(--color-divider)}.projects-index a{border-top:1px solid var(--color-divider);grid-template-columns:44px minmax(0,1fr) minmax(0,1.1fr) 22px;align-items:baseline;gap:16px;padding:20px 0;text-decoration:none;display:grid;position:relative}.projects-index a:after{content:"";background:var(--tone);transform-origin:0;height:1px;transition:transform .6s var(--ease-out);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.projects-index a:hover:after,.projects-index a:focus-visible:after{transform:scaleX(1)}.pi-number{color:var(--tone);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.pi-title{font-family:var(--font-heading);transition:transform .5s var(--ease-out);font-size:clamp(24px,2.6vw,36px);line-height:1.1}.projects-index a:hover .pi-title{transform:translate(10px)}.pi-kind{color:var(--color-muted);font-size:14.5px}.pi-arrow{color:var(--color-muted);transition:transform .5s var(--ease-out), color .3s ease;align-self:center}.projects-index a:hover .pi-arrow{color:var(--tone);transform:translateY(4px)}.pi-preview{z-index:5;aspect-ratio:16/10;width:280px;box-shadow:var(--shadow-frame);background:var(--color-neutral-200);pointer-events:none;opacity:0;transition:opacity .3s ease, scale .45s var(--ease-out);border-radius:10px;margin:-88px 0 0 -140px;position:absolute;top:0;left:0;overflow:hidden;scale:.86}.pi-preview.is-visible{opacity:1;scale:1}.pi-preview-img{opacity:0;transition:opacity .3s;position:absolute;inset:0}.pi-preview-img.is-active{opacity:1}.pi-preview-img img{object-fit:cover;object-position:top left}@media (hover:none),(pointer:coarse){.pi-preview{display:none}}.case{padding:clamp(56px,7vw,96px) 0;position:relative}.case--clay{background:var(--color-accent-2-100);border-block:1px solid var(--color-divider)}:root[data-theme=dark] .case--clay{background:var(--color-neutral-100)}.case-head{border-bottom:1px solid var(--color-divider);grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:8px 22px;margin-bottom:clamp(28px,4vw,48px);padding-bottom:clamp(16px,2vw,22px);display:grid}.case-number{color:var(--tone);font-variant-numeric:tabular-nums;align-self:start;padding-top:.6em;font-size:15px;font-weight:600}.case-title{letter-spacing:-.02em;white-space:nowrap;font-size:clamp(50px,9vw,132px);line-height:.92}.case--compact .case-title{font-size:clamp(38px,5.6vw,84px)}.case-kind{color:var(--color-muted);text-align:right;flex-direction:column;align-items:flex-end;gap:2px;padding-bottom:.5em;font-size:14.5px;display:flex}.case-role{color:var(--tone);font-weight:600}.case-body{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:clamp(32px,5vw,72px);display:grid}.case--compact .case-body{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}.case--flip .case-body{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.case--flip.case--compact .case-body{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.case--flip .gallery{order:2}.case-details{flex-direction:column;gap:24px;display:flex}.case-description{text-wrap:pretty;font-size:clamp(18px,1.55vw,21px);line-height:1.5}.case-highlights li{border-top:1px solid var(--color-divider);align-items:baseline;gap:12px;padding:10px 0;font-size:15px;display:flex}.case-highlights li:last-child{border-bottom:1px solid var(--color-divider)}.case-highlights li:before{content:"";background:var(--tone);border-radius:2px;flex:none;width:7px;height:7px;transform:translateY(-1px)}.case-actions{flex-wrap:wrap;gap:10px;display:flex}.case-note{color:var(--color-muted);margin-top:-8px;font-size:13.5px;line-height:1.5}.case-stack{border-top:1px dashed var(--color-divider);padding-top:18px}.case-stack-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.case-stack h4{font-family:var(--font-body);color:var(--color-muted);font-size:13.5px;font-weight:600}.gallery{min-width:0}.gallery-frame{border-radius:var(--radius-md);background:var(--color-neutral-200);box-shadow:var(--shadow-frame);cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.gallery-frame:focus-visible{outline-color:var(--tone);outline-offset:4px}.gallery-slide,.gallery-slide-inner{position:absolute;inset:0}.gallery-slide img{object-fit:cover;object-position:top center;pointer-events:none}.gallery-bar{justify-content:space-between;align-items:center;gap:16px;margin-top:16px;display:flex}.gallery-caption{align-items:baseline;gap:12px;min-width:0;font-size:14px;display:flex}.gallery-count{color:var(--tone);font-variant-numeric:tabular-nums;flex:none;font-weight:600}.gallery-count [aria-hidden]{opacity:.5;margin:0 2px}.gallery-alt{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gallery-arrows{flex:none;gap:8px;display:flex}.gallery-thumbs{scrollbar-width:none;gap:8px;margin-top:14px;padding:4px 2px;display:flex;overflow-x:auto}.gallery-thumbs::-webkit-scrollbar{display:none}.gallery-thumb{background:var(--color-neutral-200);cursor:pointer;opacity:.5;outline-offset:2px;width:88px;transition:opacity .3s ease, outline-color .3s ease, transform .4s var(--ease-out);border:0;border-radius:6px;outline:1.5px solid #0000;flex:none;padding:0;position:relative;overflow:hidden}.gallery-thumb img{object-fit:cover;object-position:top left}.gallery-thumb:hover{opacity:.85;transform:translateY(-2px)}.gallery-thumb.is-active{opacity:1;outline-color:var(--tone)}.gallery-thumb:focus-visible{outline:2px solid var(--tone)}.contact{--color-text:var(--panel-text);--color-muted:var(--panel-muted);--color-divider:var(--panel-line);background:var(--panel-bg);color:var(--panel-text);padding-top:clamp(72px,9vw,128px)}.contact :focus-visible{outline-color:var(--panel-accent)}.contact-title{letter-spacing:-.02em;font-size:clamp(54px,11vw,168px);line-height:.9}.contact-title .mask:last-child{color:var(--panel-accent)}.contact-lede{color:var(--panel-muted);margin-top:clamp(22px,3vw,34px);font-size:clamp(17px,1.5vw,20px)}.contact-actions{flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:clamp(40px,6vw,72px);display:flex}.contact-email{letter-spacing:-.015em;overflow-wrap:anywhere;transition:background-size .6s var(--ease-out), color .3s ease;background:linear-gradient(currentColor,currentColor) 0 100%/100% 2px no-repeat;padding-bottom:4px;font-size:clamp(22px,3.6vw,46px);font-weight:600;text-decoration:none}.contact-email:hover{color:var(--panel-accent);background-position:100% 100%;background-size:0% 2px}.copy-btn{border:1px solid var(--panel-line);cursor:pointer;background:0 0;border-radius:999px;min-height:44px;padding:10px 18px;font-size:14.5px;font-weight:600;transition:border-color .25s,background-color .25s;display:inline-grid;position:relative;overflow:hidden}.copy-btn:hover{border-color:var(--panel-text)}.copy-btn>span{transition:transform .45s var(--ease-out), opacity .3s ease;grid-area:1/1}.copy-done{color:var(--panel-accent);opacity:0;transform:translateY(120%)}.copy-btn.is-copied{border-color:var(--panel-accent)}.copy-btn.is-copied .copy-label{opacity:0;transform:translateY(-120%)}.copy-btn.is-copied .copy-done{opacity:1;transform:none}.contact-links{border-top:1px solid var(--panel-line);max-width:640px;margin-top:clamp(40px,6vw,64px)}.contact-links a,.contact-links button{border:0;border-bottom:1px solid var(--panel-line);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:padding .45s var(--ease-out), color .25s ease;background:0 0;justify-content:space-between;gap:16px;padding:18px 0;font-size:17px;font-weight:600;text-decoration:none;display:flex}.contact-links a:hover,.contact-links button:hover{color:var(--panel-accent);padding-left:10px}.contact-link-value{color:var(--panel-muted);font-weight:500}.site-footer{border-top:1px solid var(--panel-line);color:var(--panel-muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:clamp(56px,7vw,96px);padding:24px 0 28px;font-size:13.5px;display:flex}.back-top{color:var(--panel-text);font-weight:600;text-decoration:none}.back-top:hover{color:var(--panel-accent)}@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:8px;padding-top:36px}.badge-stage{height:470px;overflow:hidden}.hero-foot{display:none}.about-grid,.projects-intro,.case-body,.case--compact .case-body,.case--flip .case-body,.case--flip.case--compact .case-body{grid-template-columns:1fr}.case--flip .gallery{order:0}.case-head{grid-template-columns:auto minmax(0,1fr)}.case-kind{text-align:left;grid-column:1/-1;align-items:flex-start;padding-bottom:0}.case-title{white-space:normal}}@media (max-width:680px){.desktop-nav,.lamp-label{display:none}.menu-btn{display:inline-block}.about-facts{grid-template-columns:1fr;gap:14px}.projects-index a{grid-template-columns:34px minmax(0,1fr) 20px;row-gap:2px}.pi-kind{grid-area:2/2;font-size:13.5px}.pi-arrow{grid-area:1/3}.gallery-alt{display:none}.gallery-thumb{width:72px}.marq-group{gap:36px;padding-right:36px}}@media (max-width:440px){.hero-actions .btn{flex:auto}.badge-stage{height:430px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marq-track,.scroll-cue-line:after{animation:none!important}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
