@font-face{font-family:Martian Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/martian-mono-400.woff2)format("woff2")}@font-face{font-family:Martian Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/martian-mono-700.woff2)format("woff2")}:root{--bg:#fff;--fg:#2b2c33;--fill:#2b2c33;--bg-subtle:#fafafa;--border:#e0e0e0;--gray:#6b6d78;--accent:#0b852d;--accent-ink:#0b852d;--cue-shade-1:#064a19;--cue-shade-2:#096823;--cue-shade-3:#0b852d;--cue-shade-4:#3c9d57;--cue-shade-5:#71b885;--red:#c00;--hatch:#2b2c3329;--hatch-soft:#2b2c330b;--shadow:#2b2c331a;--ease:cubic-bezier(.19, 1, .22, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ui:"Martian Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--serif:"Martian Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--text-xs:1.3rem;--text-sm:1.4rem;--text-base:1.7rem;--text-md:1.8rem;--text-lg:2.1rem;--text-xl:2.4rem;--text-2xl:2.8rem;--text-3xl:3.2rem;--text-slab:5.76rem;--text-hero:9.72rem;--leading-read:1.7;--leading-statement:1.5;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root.theme-dark{--bg:#17181d;--fg:#e8e9ee;--fill:#34353d;--bg-subtle:#1d1e24;--border:#3a3b44;--gray:#9aa0ad;--accent:#1b8843;--accent-ink:#3cbf6b;--cue-shade-1:#12582c;--cue-shade-2:#177238;--cue-shade-3:#1b8843;--cue-shade-4:#5ba978;--cue-shade-5:#98c9aa;--hatch:#ffffff1a;--hatch-soft:#ffffff0f;--shadow:#00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--ui);-webkit-text-size-adjust:100%;font-size:62.5%;font-weight:400;line-height:1.618}body{font-family:var(--serif);color:var(--fg);background:var(--bg);font-size:1.8rem;font-weight:400;overflow-x:hidden}body.is-loading{overflow:hidden}::selection{background:var(--accent);color:#fff}:focus-visible{outline:3px solid var(--accent-ink);outline-offset:2px}.section-title:focus,.hero-title:focus,#main:focus{outline:none}ul{list-style:none}.icon{width:100%;height:100%;display:block}.hatch{position:relative}.hatch:before{content:"";background-image:repeating-linear-gradient(-45deg, transparent 0 2px, var(--hatch) 2px 5px);width:100%;height:7px;position:absolute;top:100%;left:7px}.hatch:after{content:"";background-image:repeating-linear-gradient(-45deg, transparent 0 2px, var(--hatch) 2px 5px);width:7px;height:calc(100% - 7px);position:absolute;top:7px;left:100%}.loader{z-index:400;background:var(--bg);transition:opacity 1s var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loader.is-done{opacity:0;pointer-events:none}.loader-ring{width:50px;height:50px;animation:2s linear infinite loader-rotate}.loader-circle{stroke:var(--accent-ink);stroke-linecap:round;stroke-dasharray:1 200;stroke-dashoffset:0;animation:1.5s ease-in-out infinite loader-dash}@keyframes loader-dash{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:89 200;stroke-dashoffset:-35px}to{stroke-dasharray:89 200;stroke-dashoffset:-124px}}@keyframes loader-rotate{to{transform:rotate(360deg)}}.header{background:var(--bg);border-bottom:1px solid var(--border);z-index:100;height:75px;transition:transform .4s var(--ease), background-color .3s linear, border-color .3s linear;position:fixed;top:0;left:0;right:0}.header.is-hidden{transform:translateY(-100%)}.header:focus-within{transform:translateY(0)}.header.is-dark{background:var(--fill);border-bottom-color:var(--fill)}.header-wrap{justify-content:space-between;align-items:center;gap:10px;height:100%;padding:0 20px;display:flex}.logo a{color:var(--fg);font:700 1.35em/1 var(--ui);white-space:nowrap;align-items:center;gap:7px;text-decoration:none;display:flex}.logo-mark{color:var(--accent-ink)}.header.is-dark .logo-text{color:#fff}.primary-nav ul{gap:4px;display:flex}.element-box.element-box--sm{flex-direction:row;align-items:center;gap:7px;height:45px;padding:0 7px}.element-box--sm .box-text{align-items:baseline;gap:5px;display:flex}.element-box--sm .abbr{font-size:1.3em}.element-box--sm .full{margin-top:0;font-size:.9em}.element-box--sm .box-icon{opacity:1;flex:none;width:16px;height:16px;position:static;transform:none}.header.is-dark .element-box--sm{color:#fff;background:0 0;border-color:#fff}.header.is-dark .element-box--sm.is-active{border-color:var(--accent-ink)}.theme-btn{border:3px solid var(--fg);width:45px;height:45px;color:var(--fg);font:inherit;cursor:pointer;transition:transform .25s var(--ease), background-color .25s linear, color .25s linear, border-color .25s linear;background:0 0;border-radius:0;flex:none;place-items:center;padding:0;display:grid}.theme-btn .icon{width:20px;height:20px}.header .logo,.header .primary-nav,.header .theme-btn{opacity:0;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);transform:translateY(50px)}.header.is-ready .logo,.header.is-ready .theme-btn{opacity:1;transition-delay:.7s;transform:none}.header.is-ready .primary-nav{opacity:1;transition-delay:.85s;transform:none}.theme-btn:hover,.theme-btn:focus-visible{background:var(--accent);border-color:var(--accent);color:#fff;transition-delay:0s;transform:scale(1.08)}.header.is-dark .theme-btn{color:#fff;border-color:#fff}.header.is-dark .theme-btn:hover,.header.is-dark .theme-btn:focus-visible{border-color:var(--accent);color:#fff}.header.is-ready .theme-btn:hover,.header.is-ready .theme-btn:focus-visible{transition-delay:0s;transform:scale(1.08)}.element-box{border:3px solid var(--fg);background:var(--bg);height:150px;color:var(--fg);flex-direction:column;justify-content:space-between;padding:14px 15px 12px;text-decoration:none;display:flex;position:relative;overflow:hidden}.element-box:before{content:"";background:var(--accent);transition:transform .25s var(--ease);z-index:1;position:absolute;inset:0;transform:scaleY(0)}.element-box:hover:before,.element-box:focus-visible:before{transform:scaleY(1)}.abbr{font:700 3em/1 var(--ui);display:block}.full{font:400 1.5em/1 var(--ui);margin-top:5px;display:block}.box-text{z-index:2;transition:color .25s linear;position:relative}.element-box:hover .box-text,.element-box:focus-visible .box-text{color:#fff}.box-icon{width:22px;height:22px;color:var(--accent-ink);opacity:0;transition:opacity .25s var(--ease), transform .25s var(--ease), color .25s linear;z-index:2;position:absolute;top:14px;right:13px;transform:scale(.75)}.element-box:hover .box-icon,.element-box:focus-visible .box-icon{opacity:1;color:#fff;transform:scale(1)}.element-box.is-active{border-color:var(--accent-ink)}.element-box.is-active .box-icon{opacity:1;transform:scale(1)}.tile-glitch{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.tile-glitch-copy{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;position:absolute;inset:0}.tile-glitch-copy:first-child{text-shadow:-2px 0 #00ffffb3}.tile-glitch-copy:last-child{text-shadow:2px 0 #ff0000b3}@media (hover:hover) and (pointer:fine){.tile-grid .element-box:hover .tile-glitch-copy:first-child,.tile-grid .element-box:focus-visible .tile-glitch-copy:first-child{animation:.38s linear both tile-glitch-a}.tile-grid .element-box:hover .tile-glitch-copy:last-child,.tile-grid .element-box:focus-visible .tile-glitch-copy:last-child{animation:.42s linear both tile-glitch-b}}@keyframes tile-glitch-a{0%{opacity:.5;clip-path:inset(48% 0 44%);transform:translate(-1.5px)}18%{opacity:.5;clip-path:inset(6% 0 78%);transform:translate(1px)}36%{opacity:.45;clip-path:inset(72% 0 10%);transform:translate(-1px)}54%{opacity:.4;clip-path:inset(24% 0 60%);transform:translate(1.5px)}72%{opacity:.3;clip-path:inset(86% 0 4%);transform:translate(-1px)}88%{opacity:.18;clip-path:inset(40% 0 46%);transform:translate(1px)}to{opacity:0;clip-path:inset(50% 0 40%);transform:translate(0)}}@keyframes tile-glitch-b{0%{opacity:.5;clip-path:inset(14% 0 72%);transform:translate(1.5px)}18%{opacity:.45;clip-path:inset(64% 0 22%);transform:translate(-1px)}36%{opacity:.4;clip-path:inset(30% 0 54%);transform:translate(1px)}54%{opacity:.35;clip-path:inset(82% 0 8%);transform:translate(-1.5px)}72%{opacity:.25;clip-path:inset(44% 0 40%);transform:translate(1px)}88%{opacity:.15;clip-path:inset(10% 0 84%);transform:translate(-1px)}to{opacity:0;clip-path:inset(50% 0 40%);transform:translate(0)}}@media (prefers-reduced-motion:reduce){.tile-glitch{display:none}.tile-glitch-copy{animation:none!important}}.project-cell:hover .project-card,.project-cell:focus-within .project-card,.contact-channel:hover .contact-channel-link,.contact-channel:focus-within .contact-channel-link{border-color:var(--accent-ink);box-shadow:0 14px 26px var(--shadow);transform:translateY(-4px)}#main{margin-top:75px;position:relative}.container{max-width:1020px;margin:0 auto;padding:0 20px}.section{min-height:calc(100vh - 75px);padding:50px 0 60px;position:relative}.section--home{display:flex}.section--home>.container{margin:auto}.page-stack>.section{min-height:0;padding:96px 0 112px;scroll-margin-top:90px;overflow-x:clip}.page-stack>.section--home{min-height:calc(100vh - 75px);padding:40px 0 50px;scroll-margin-top:0;display:flex}.page-stack>.section+.section{border-top:1px solid var(--border)}.hero{max-width:980px}.hero-title{font-family:var(--ui);font-weight:700;font-size:min(var(--text-hero), 8.9vw);letter-spacing:normal;white-space:nowrap;margin:0 0 .35em;line-height:1;position:relative}.hero-line{font-size:var(--text-lg);font-weight:700;line-height:1.35}.hero-status{font-size:var(--text-sm);color:var(--gray);margin-top:.7em;line-height:1.6}.lead{font-size:var(--text-base);line-height:var(--leading-read)}.lead+.lead{margin-top:1em}.lead strong{font-weight:700}.record-pill{font-family:var(--ui);color:#fff;background:var(--fill);white-space:nowrap;border-radius:999px;font-style:normal;font-weight:700;line-height:1;text-decoration:none;transition:background-color .25s linear;display:inline-block;transform:translateY(-.1em)}.record-pill:hover,.record-pill:focus-visible{background:var(--accent);text-shadow:-1px 0 #00ffffd9,1px 0 #ff0000d9;animation:.25s steps(2,end) infinite pill-jitter}@keyframes pill-jitter{0%,to{transform:translate(-1px,calc(-.1em - 1px))}50%{transform:translate(1px,calc(-.1em - 1px))}}.rule{background:var(--fill);width:0;height:3px;transition:width .6s var(--ease-out);border:0;margin:2.4em 0 2.1em}.hero>.rule{margin:1.9em 0 1.8em}.rule.is-entering{width:100%}.rule.is-leaving{width:0!important}.tile-grid-label{font:700 var(--text-xs)/1 var(--ui);color:var(--accent-ink);margin:0 0 1.4em}.tile-grid{flex-wrap:wrap;margin:0 -10px;display:flex}.tile-grid>li{width:25%;padding:10px}.social-row{justify-content:center;gap:14px;margin-top:2.2em;display:flex}.social-row a{border:3px solid var(--fg);width:48px;height:48px;color:var(--fg);transition:transform .25s var(--ease), background-color .25s linear, color .25s linear, border-color .25s linear;justify-content:center;align-items:center;display:flex}.social-row a:hover,.social-row a:focus-visible{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.25)}.social-row .icon{width:20px;height:20px}.scroll-cue{flex-direction:column;align-items:center;gap:1em;margin-top:.8em;padding-bottom:1em;display:flex}.scroll-cue-link{width:60px;height:60px;transition:transform .25s var(--ease);justify-content:center;align-items:center;display:flex}.scroll-cue-link:hover,.scroll-cue-link:focus-visible{transform:scale(1.15)}.scroll-cue-pie{width:40px;height:40px;animation:22s linear infinite loader-rotate}.scroll-cue-pie-face{background:conic-gradient(from -90deg, var(--cue-shade-1) 0 60deg, var(--cue-shade-3) 60deg 120deg, var(--cue-shade-5) 120deg 180deg, var(--cue-shade-2) 180deg 240deg, var(--cue-shade-4) 240deg 300deg, var(--cue-shade-3) 300deg 360deg);border-radius:50%;width:100%;height:100%;animation:2.5s linear infinite paused loader-rotate;display:block}.scroll-cue-link:hover .scroll-cue-pie-face,.scroll-cue-link:focus-visible .scroll-cue-pie-face{animation-play-state:running}.scroll-cue-text{font:400 var(--text-xs)/1.5 var(--ui);color:var(--gray)}.section-head{margin-bottom:2.8em}.section-label{font:700 var(--text-xs)/1 var(--ui);color:var(--accent-ink);margin:0 0 1.2em}.section--error .section-label{color:var(--red)}.section-title{border-left:15px solid var(--accent-ink);font-family:var(--ui);font-weight:700;font-size:var(--text-slab);letter-spacing:normal;white-space:nowrap;padding:.18em .5em .18em .45em;line-height:1;display:inline-block;position:relative}.title-bar{background:var(--fill);z-index:0;width:0;transition:width .5s var(--ease-out);position:absolute;inset:0}.title-bar.is-wiping{width:100%}.title-text{z-index:1;display:inline-block;position:relative}.title-char{text-align:center;width:.7em;display:inline-block}.section--page .title-text{color:#fff}.section--error .title-bar{background:var(--red)}.section--error .section-title{border-left-color:var(--red)}.section-body{max-width:800px}.section-intro{font-size:var(--text-base);line-height:var(--leading-read);margin-bottom:1.6em}.plan-list{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.plan-list>*{min-width:0}.plan-item{border:3px solid var(--fg);background:var(--bg);padding:20px 22px 18px;position:relative}.plan-name{font:700 var(--text-xl)/1.25 var(--ui);overflow-wrap:anywhere}.plan-name a{color:inherit;text-decoration:none}.plan-name a,.case-back a,.contact-channel-handle{box-shadow:inset 0 -3px 0 var(--accent-ink);transition:background-color .25s linear,color .25s linear}.plan-name a:hover,.plan-name a:focus-visible,.case-back a:hover,.case-back a:focus-visible,.contact-channel:hover .contact-channel-handle,.contact-channel:focus-within .contact-channel-handle{background:var(--accent);color:#fff}.plan-meta{font:700 var(--text-xs)/1.4 var(--ui);color:var(--accent-ink);margin-top:.4em}.plan-body{font-size:var(--text-base);line-height:var(--leading-read);margin-top:.55em}.ui-corner{width:9px;height:9px;transition:transform .45s var(--ease) .15s;position:absolute}.ui-corner.tl{border-top:3px solid var(--fg);border-left:3px solid var(--fg);top:-7px;left:-7px;transform:translate(-25px,-25px)}.ui-corner.tr{border-top:3px solid var(--fg);border-right:3px solid var(--fg);top:-7px;right:-7px;transform:translate(25px,-25px)}.ui-corner.bl{border-bottom:3px solid var(--fg);border-left:3px solid var(--fg);bottom:-7px;left:-7px;transform:translate(-25px,25px)}.ui-corner.br{border-bottom:3px solid var(--fg);border-right:3px solid var(--fg);bottom:-7px;right:-7px;transform:translate(25px,25px)}.plan-item.is-entering .ui-corner{transform:translate(0)}.section-note{font:400 var(--text-xs)/1.5 var(--ui);color:var(--gray);margin:2.2em 0 1.2em}.cta-row{margin-top:3.2em}.cta{border:3px solid var(--fg);color:var(--fg);font:700 var(--text-sm)/1 var(--ui);align-items:center;gap:14px;padding:14px 20px;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.cta:before,.case-link:before,.case-next:before,.contact-hero-wipe{content:"";background:var(--accent);transition:transform .3s var(--ease);z-index:1;position:absolute;inset:0;transform:translate(-101%)}.cta:hover:before,.cta:focus-visible:before,.case-link:hover:before,.case-link:focus-visible:before,.case-next:hover:before,.case-next:focus-visible:before,.contact-hero:hover .contact-hero-wipe,.contact-hero:focus-visible .contact-hero-wipe{transform:translate(0)}.cta-text{z-index:2;transition:color .3s linear;position:relative}.cta:hover .cta-text,.cta:focus-visible .cta-text{color:#fff}.cta-icon{z-index:2;display:flex;position:relative}.cta-icon .icon{width:15px;height:15px;color:var(--accent-ink);transition:transform .3s var(--ease), color .3s linear}.cta-icon .icon+.icon{margin-left:-7px}.cta-icon .icon:nth-child(2){transition-delay:50ms}.cta:hover .cta-icon .icon,.cta:focus-visible .cta-icon .icon{color:#fff;transform:translate(4px)}.glitch:before,.glitch:after{content:attr(data-text);white-space:nowrap;opacity:0;pointer-events:none;position:absolute;top:0;left:0}.glitch.is-glitching:before{opacity:.45;text-shadow:-2px 0 #00ffffb3;animation:2.2s linear 3 alternate-reverse forwards glitch-a;left:2px}.glitch.is-glitching:after{opacity:.45;text-shadow:2px 0 #ff0000b3;animation:2.8s linear 3 alternate-reverse forwards glitch-b;left:-2px}.section-title.glitch:before,.section-title.glitch:after{color:#fff;padding:.18em .5em .18em .45em}@keyframes glitch-a{0%{clip-path:inset(50% 0)}10%{clip-path:inset(82% 0 4%)}20%{clip-path:inset(12% 0 74%)}30%{clip-path:inset(64% 0 18%)}40%{clip-path:inset(4% 0 88%)}50%{clip-path:inset(46% 0 40%)}60%{clip-path:inset(90% 0 2%)}70%{clip-path:inset(18% 0 70%)}80%{clip-path:inset(56% 0 30%)}90%{clip-path:inset(38% 0 52%)}to{clip-path:inset(72% 0 12%)}}@keyframes glitch-b{0%{clip-path:inset(50% 0)}10%{clip-path:inset(15% 0 70%)}20%{clip-path:inset(48% 0 42%)}30%{clip-path:inset(80% 0 8%)}40%{clip-path:inset(22% 0 68%)}50%{clip-path:inset(5% 0 90%)}60%{clip-path:inset(36% 0 55%)}70%{clip-path:inset(70% 0 20%)}80%{clip-path:inset(10% 0 82%)}90%{clip-path:inset(52% 0 38%)}to{clip-path:inset(30% 0 60%)}}.anim{opacity:0;transition:opacity .5s var(--ease), transform .5s var(--ease);transform:translateY(50px)}.anim.is-entering{opacity:1;transform:translateY(0)}.anim.is-leaving{opacity:0!important;transform:translateY(-50px)!important}@media (width<=1280px){.element-box--sm .full{display:none}}@media (width>=768px) and (width<=899px){.header-wrap{gap:8px;padding:0 16px}.logo a{font-size:1.1em}.primary-nav ul{gap:4px}.element-box.element-box--sm{gap:6px;padding:0 6px}.element-box--sm .abbr{font-size:1.05em}}@media (width<=1023px){.record-pill{white-space:normal}.tile-grid>li{width:50%}.tile-grid .full{font-size:.9em}}@media (width<=767px){:root{--text-base:1.6rem;--text-md:1.7rem;--text-lg:2rem;--text-xl:2.2rem;--text-2xl:2.4rem;--text-3xl:2.8rem}.primary-nav{display:none}.logo a{font-size:min(1.35em,4.9vw)}.hero-title{font-size:min(var(--text-hero), 8.2vw)}.hero-line{font-size:var(--text-base)}.section-title{font-size:min(var(--text-slab), 9.6vw)}.plan-item{padding:16px 16px 14px}.section{padding:40px 0 50px}.page-stack>.section{padding:60px 0 68px}.page-stack>.section--home{padding:40px 0 50px}}@media (width<=420px){.social-row a{width:42px;height:42px}}@media (width<=340px){.lead,.section-intro{overflow-wrap:anywhere}}@media (width<=360px){.tile-grid>li{width:100%}}@media print{:root,:root.theme-dark{--bg:#fff;--fg:#2b2c33;--fill:#2b2c33;--bg-subtle:#fafafa;--border:#e0e0e0;--gray:#6b6d78;--accent:#0b852d;--accent-ink:#0b852d;--cue-shade-1:#064a19;--cue-shade-2:#096823;--cue-shade-3:#0b852d;--cue-shade-4:#3c9d57;--cue-shade-5:#71b885;--hatch:#2b2c3329;--hatch-soft:#2b2c330b;--shadow:#2b2c331a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.header,.loader{display:none!important}body{overflow:visible}#main{margin-top:0}.section{page-break-after:always;min-height:0;display:block!important}.page-stack>.section{border-top:0;padding:0 0 40px}.page-stack>.section--home{min-height:0}.page-stack>.section:last-child,#main>.section:last-child{page-break-after:auto}.skill-fill{width:var(--pct)!important}.skill-num{display:none}.anim,.rule{opacity:1!important;width:100%!important;transform:none!important}.title-bar{display:none!important}.section--page .title-text{color:var(--fg)!important}.glitch:before,.glitch:after{display:none!important}.ui-corner{transform:none!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.scroll-cue-pie,.scroll-cue-pie-face{animation:none}}.header-actions{flex:none;align-items:center;gap:10px;display:flex}.palette-trigger{border:3px solid var(--fg);height:45px;color:var(--fg);font:700 var(--text-sm)/1 var(--ui);white-space:nowrap;cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:8px;padding:0 10px;transition:background-color .25s linear,color .25s linear,border-color .25s linear;display:flex}.palette-trigger-mark{color:var(--accent-ink);font-weight:700}.palette-trigger-kbd{font:400 var(--text-xs)/1 var(--ui);opacity:.7;border:1px solid;padding:2px 4px}.palette-trigger:hover,.palette-trigger:focus-visible{background:var(--accent);border-color:var(--accent);color:#fff}.palette-trigger:hover .palette-trigger-mark,.palette-trigger:focus-visible .palette-trigger-mark{color:#fff}.header.is-dark .palette-trigger{color:#fff;border-color:#fff}.header.is-dark .palette-trigger:hover,.header.is-dark .palette-trigger:focus-visible{border-color:var(--accent)}.header .palette-trigger{opacity:0;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out), background-color .25s linear, color .25s linear, border-color .25s linear;transform:translateY(50px)}.header.is-ready .palette-trigger{opacity:1;transition-delay:.78s;transform:none}.header.is-ready .palette-trigger:hover,.header.is-ready .palette-trigger:focus-visible{transition-delay:0s}.palette-overlay{z-index:300;animation:palette-fade .16s var(--ease-out) both;background:#0c0d108c;justify-content:center;align-items:flex-start;padding:clamp(12px,8vh,92px) 16px 24px;display:flex;position:fixed;inset:0}.palette-panel{background:var(--bg);width:100%;max-width:620px;max-height:min(72vh,640px);color:var(--fg);border:3px solid var(--fg);box-shadow:0 24px 60px var(--shadow);animation:palette-rise .18s var(--ease-out) both;flex-direction:column;display:flex}@keyframes palette-fade{0%{opacity:0}}@keyframes palette-rise{0%{opacity:0;transform:translateY(-8px)}}.palette-search{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:10px;padding:0 14px;display:flex}.palette-prompt{color:var(--accent-ink);font:700 var(--text-base)/1 var(--ui);flex:none}.palette-input{width:100%;min-width:0;color:var(--fg);font:400 var(--text-base)/1.4 var(--ui);background:0 0;border:0;flex:1;padding:14px 0}.palette-input::placeholder{color:var(--gray)}.palette-input:focus-visible{outline:3px solid var(--accent-ink);outline-offset:-3px}.palette-list{overscroll-behavior:contain;flex:1;min-height:0;padding:4px 0 6px;overflow-y:auto}.palette-group+.palette-group{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.palette-group-label{color:var(--accent-ink);font:700 var(--text-xs)/1.4 var(--ui);padding:8px 14px 4px}.palette-row{min-height:44px;color:var(--fg);border-left:4px solid #0000;align-items:center;gap:12px;padding:8px 14px;text-decoration:none;display:flex}.palette-row-label{min-width:0;font:600 var(--text-sm)/1.35 var(--ui);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.palette-row-note{min-width:0;max-width:58%;color:var(--gray);font:400 var(--text-xs)/1.4 var(--ui);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.palette-row[aria-selected=true]{background:var(--accent-ink);border-left-color:var(--fg);color:var(--bg)}.palette-row[aria-selected=true] .palette-row-note{color:inherit}.palette-empty{color:var(--gray);font:400 var(--text-sm)/1.5 var(--ui);overflow-wrap:anywhere;padding:26px 14px}.palette-foot{border-top:1px solid var(--border);color:var(--gray);font:400 var(--text-xs)/1.4 var(--ui);flex-wrap:wrap;flex:none;gap:4px 14px;padding:8px 14px;display:flex}@media (width<=1439px){.palette-trigger{width:32px;font-size:var(--text-sm);justify-content:center;padding:0}.palette-trigger-text,.palette-trigger-kbd{display:none}.header-actions,.header-wrap{gap:6px}}@media (width<=380px){.header-wrap{gap:4px;padding:0 12px}.palette-trigger{width:28px}.header-actions{gap:4px}}@media (width<=560px){.palette-overlay{padding:0}.palette-panel{border-width:0;border-top:3px solid var(--fg);max-width:none;height:100dvh;max-height:100dvh}.palette-row-note{max-width:38%;font-size:var(--text-xs)}.palette-foot{padding-bottom:max(8px, env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.palette-overlay,.palette-panel{animation:none}}.resume-preview-overlay{z-index:350;width:100vw;animation:resume-preview-fade .16s var(--ease-out) both;background:#0c0d109e;justify-content:center;align-items:center;padding:clamp(12px,6vh,64px) 16px;display:flex;position:fixed;inset:0}.resume-preview-panel{background:var(--bg);width:min(900px,92vw);height:84dvh;max-height:84dvh;color:var(--fg);border:3px solid var(--fg);box-shadow:0 24px 60px var(--shadow);animation:resume-preview-rise .18s var(--ease-out) both;flex-direction:column;display:flex;overflow:hidden}@keyframes resume-preview-fade{0%{opacity:0}}@keyframes resume-preview-rise{0%{opacity:0;transform:translateY(8px)}}.resume-preview-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:8px 12px;padding:8px 10px 8px 14px;display:flex}.resume-preview-title{min-width:0;font:700 var(--text-sm)/1.2 var(--ui);white-space:nowrap;text-overflow:ellipsis;flex:140px;overflow:hidden}.resume-preview-mark{color:var(--accent-ink)}.resume-preview-actions{flex:none;gap:8px;display:flex}.resume-preview-action,.resume-preview-close{border:2px solid var(--fg);min-height:44px;color:var(--fg);font:700 var(--text-xs)/1 var(--ui);white-space:nowrap;cursor:pointer;background:0 0;border-radius:0;justify-content:center;align-items:center;padding:0 12px;text-decoration:none;transition:background-color .15s linear,color .15s linear,border-color .15s linear;display:inline-flex}.resume-preview-close{width:44px;font-size:var(--text-lg);flex:none;padding:0}.resume-preview-action:hover,.resume-preview-action:focus-visible,.resume-preview-close:hover,.resume-preview-close:focus-visible{background:var(--accent);border-color:var(--accent);color:#fff}.resume-preview-sheet{background:var(--bg-subtle);flex:1;min-height:0;overflow:auto}.resume-preview-frame{background:#fff;border:0;width:100%;height:100%;display:block}.resume-preview-fallback{border-top:1px solid var(--border);color:var(--gray);font:400 var(--text-xs)/1.5 var(--ui);flex:none;padding:8px 14px}.resume-preview-fallback a{color:var(--fg);box-shadow:inset 0 -2px 0 var(--accent-ink);text-decoration:none}.resume-preview-fallback a:hover,.resume-preview-fallback a:focus-visible{background:var(--accent);color:#fff}@media (width<=560px){.resume-preview-overlay{padding:0}.resume-preview-panel{border-width:0;border-top:3px solid var(--fg);width:100%;height:100dvh;max-height:100dvh}.resume-preview-bar{padding:6px 8px 6px 12px}.resume-preview-title{flex:auto;order:1}.resume-preview-close{order:2}.resume-preview-actions{flex:1 0 100%;order:3}.resume-preview-action{flex:1}.resume-preview-fallback{padding-bottom:max(8px, env(safe-area-inset-bottom))}}@media (width<=380px){.resume-preview-actions{flex-direction:column;gap:6px}.resume-preview-action{flex:none;width:100%}}@media (prefers-reduced-motion:reduce){.resume-preview-overlay,.resume-preview-panel{animation:none}}.section-body.project-body{max-width:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:.6em;display:grid}.project-cell{min-width:0;display:flex}.project-card{border:6px solid var(--fg);background:var(--bg);width:100%;transition:border-color .45s var(--ease), transform .45s var(--ease-out), box-shadow .45s var(--ease-out);flex-direction:column;display:flex}.project-card .shot-slot{border-bottom:3px solid var(--fg);transition:border-color .45s var(--ease)}.project-cell:hover .project-card .shot-slot{border-bottom-color:var(--accent-ink)}.project-card-body{flex-direction:column;flex:1;gap:8px;padding:20px 22px 22px;display:flex}.project-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.project-card-name{font:700 var(--text-xl)/1.15 var(--ui);letter-spacing:normal;overflow-wrap:anywhere}.project-repo{border:3px solid var(--fg);width:34px;height:34px;color:var(--fg);transition:background-color .3s linear, border-color .3s linear, color .3s linear, transform .3s var(--ease);flex:none;place-items:center;display:grid}.project-repo .icon{width:16px;height:16px}.project-repo:hover,.project-repo:focus-visible{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.08)}.project-card-tagline{font:400 var(--text-base)/1.65 var(--serif);overflow-wrap:anywhere}.project-card-meta{font:700 var(--text-xs)/1.4 var(--ui);letter-spacing:.02em;flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex}.project-card-badge{color:var(--accent-ink)}.project-card-date{color:var(--gray);font-weight:400}.project-card-stack{font:400 var(--text-xs)/1.5 var(--ui);color:var(--gray)}.project-card-stats{font:400 var(--text-xs)/1.5 var(--ui);color:var(--gray);flex-wrap:wrap;gap:2px 1.5em;margin-bottom:8px;display:flex}.project-card-stats>li{white-space:normal;overflow-wrap:anywhere}.project-stat-value{color:var(--accent-ink);font-weight:700}.cta.card-cta{font-size:var(--text-xs);align-self:flex-start;gap:10px;margin-top:auto;padding:13px 14px}.cta.card-cta .cta-icon .icon{width:13px;height:13px}.shot-slot{background:var(--bg-subtle);width:100%;position:relative;overflow:hidden}.shot-empty{border:1px solid var(--border);background-image:repeating-linear-gradient(-45deg, transparent 0 7px, var(--hatch-soft) 7px 8px);place-items:center;display:grid;position:absolute;inset:10px}.shot-empty>span{font:400 var(--text-xs)/1.4 var(--ui);color:var(--gray);text-align:center;padding:0 10px}.shot-img{object-fit:cover;filter:grayscale();opacity:.25;width:100%;height:100%;transition:filter .5s var(--ease), opacity .5s var(--ease);display:block}.shot-slot:hover .shot-img{filter:grayscale(0);opacity:1}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.project-card .shot-img{clip-path:inset(0 100% 0 0);filter:grayscale();opacity:.25;transition:clip-path .4s var(--ease), filter .4s var(--ease), opacity .4s var(--ease)}.project-cell:hover .project-card .shot-img,.project-card:focus-within .shot-img{clip-path:inset(0);filter:grayscale(0);opacity:1}}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.project-card .shot-img{clip-path:none;filter:none;opacity:1}}.section-body.case-body{max-width:860px}.case-study{--read:0}.case-study:after{content:"";width:15px;height:calc(var(--read) * 100%);background:var(--accent-ink);pointer-events:none;position:absolute;top:0;left:0}@media print{.case-study:after{display:none}}.case-study .section-title{font-size:var(--text-2xl);white-space:normal;max-width:100%}.case-study .section-title.glitch:before,.case-study .section-title.glitch:after{display:none}.case-shot{border:3px solid var(--fg);margin-bottom:2.4em}.case-shot .shot-empty{inset:14px}.case-tldr{border-left:15px solid var(--accent);margin-bottom:2.4em;padding:.1em 0 .1em .95em}.case-tldr-label{font:700 var(--text-xs)/1 var(--ui);letter-spacing:.04em;color:var(--accent-ink);margin-bottom:.7em}.case-tldr-text{font:400 var(--text-lg)/var(--leading-statement) var(--serif);overflow-wrap:anywhere}.case-meta{background:var(--fill);border:3px solid var(--fg);grid-template-columns:1fr 1fr;gap:3px;margin-bottom:2.4em;display:grid}.case-meta-cell{background:var(--bg);min-width:0;padding:20px 22px}.case-meta-label{font:700 var(--text-xs)/1 var(--ui);color:var(--accent-ink);margin-bottom:.9em}.case-role{font-size:var(--text-base);line-height:var(--leading-read)}.case-tech{flex-wrap:wrap;row-gap:2px;display:flex}.case-tech>li{font:400 var(--text-xs)/1.7 var(--ui);overflow-wrap:anywhere}.case-tech>li:not(:last-child):after{content:"·";color:var(--accent-ink);margin:0 9px}.case-pairs{border:3px solid var(--fg);margin-bottom:2.4em}.case-pair{grid-template-columns:1fr 1fr;display:grid}.case-pair+.case-pair{border-top:3px solid var(--fg)}.case-pair-cell{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:0 .9em;min-width:0;padding:20px 22px;display:grid}.case-pair-cell+.case-pair-cell{border-left:3px solid var(--fg)}.case-num{font:700 var(--text-sm)/1.3 var(--ui);color:var(--accent-ink);font-variant-numeric:tabular-nums}.case-pair-tag{font:700 var(--text-xs)/1.3 var(--ui);letter-spacing:.02em;color:var(--gray);margin-bottom:.3em}.case-pair-text{font-size:var(--text-base);overflow-wrap:anywhere;line-height:1.65}.case-stats{background:var(--fill);border:3px solid var(--fg);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:3px;margin-bottom:2.4em;display:grid}.case-stat{background:var(--bg);min-width:0;padding:20px 20px 18px}.case-stat-value{font:700 clamp(2.2rem, 4.5vw, var(--text-3xl))/1 var(--ui);letter-spacing:normal;white-space:normal;overflow-wrap:anywhere;margin-bottom:.5em;display:block}.case-stat-label{font:400 var(--text-xs)/1.4 var(--ui);color:var(--gray);display:block}.case-links{flex-wrap:wrap;gap:12px;margin-bottom:3em;display:flex}.case-link{border:3px solid var(--fg);color:var(--fg);font:700 var(--text-sm)/1 var(--ui);align-items:center;gap:10px;padding:14px 16px;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.case-link-icon,.case-link-text{z-index:2;transition:color .3s linear;position:relative}.case-link-icon{display:flex}.case-link-icon .icon{width:17px;height:17px;color:var(--accent-ink);transition:color .3s linear}.case-link:hover,.case-link:focus-visible{border-color:var(--accent)}.case-link:hover .case-link-text,.case-link:focus-visible .case-link-text,.case-link:hover .case-link-icon .icon,.case-link:focus-visible .case-link-icon .icon{color:#fff}.case-pager{border-top:3px solid var(--fg);flex-direction:column;align-items:flex-start;gap:1.6em;padding-top:2.6em;display:flex}.case-next{border:3px solid var(--fg);width:100%;color:var(--fg);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:18px 20px;text-decoration:none;transition:border-color .3s linear;display:flex;position:relative;overflow:hidden}.case-next-label,.case-next-name,.case-next-icon{z-index:2;transition:color .3s linear;position:relative}.case-next-label{font:700 var(--text-xs)/1 var(--ui);color:var(--accent-ink)}.case-next-name{font:700 var(--text-xl)/1.25 var(--ui);overflow-wrap:anywhere}.case-next-icon{margin-left:auto;display:flex}.case-next-icon .icon{width:16px;height:16px;color:var(--accent-ink);transition:color .3s linear, transform .3s var(--ease)}.case-next-icon .icon+.icon{margin-left:-8px}.case-next:hover,.case-next:focus-visible{border-color:var(--accent)}.case-next:hover .case-next-label,.case-next:focus-visible .case-next-label,.case-next:hover .case-next-name,.case-next:focus-visible .case-next-name,.case-next:hover .case-next-icon .icon,.case-next:focus-visible .case-next-icon .icon{color:#fff}.case-next:hover .case-next-icon .icon,.case-next:focus-visible .case-next-icon .icon{transform:translate(4px)}.case-back{font:700 var(--text-xs)/1 var(--ui)}.case-back a{color:var(--fg);padding-bottom:2px;text-decoration:none;display:inline-block}@media (width<=767px){.project-grid{grid-template-columns:1fr;gap:22px}.project-card-stats>li{overflow-wrap:anywhere}.project-card-body{padding:18px 18px 20px}.case-shot .shot-empty{inset:10px}.case-meta{grid-template-columns:1fr}.case-meta-cell{padding:18px}.case-pair{grid-template-columns:1fr}.case-pair-cell{padding:18px}.case-pair-cell+.case-pair-cell{border-left:0;border-top:1px solid var(--border)}.case-stat{padding:16px 16px 15px}.case-stats{grid-template-columns:1fr}.case-next{padding:16px}.case-next-icon{margin-left:0}}.leaf-rain{pointer-events:none;z-index:0;width:100%;height:100%;display:block;position:fixed;inset:0}#about>.container{z-index:1;position:relative}.portrait{flex:none;width:150px;margin:0}.portrait--lg{width:300px}.portrait-frame{border:3px solid var(--fg);background:var(--bg);transition:transform .55s var(--ease-out);position:relative}.portrait-media{display:block;overflow:hidden}.portrait-img{filter:grayscale();width:100%;height:auto;transition:filter .6s var(--ease), transform .6s var(--ease-out);display:block}.portrait:hover .portrait-img{filter:grayscale(0);transform:scale(1.035)}.portrait:hover .portrait-frame{transform:translateY(-4px)}.portrait.is-entering .ui-corner{transform:translate(0)}.hero-intro{align-items:center;gap:2.4em;display:flex}.hero-copy{flex:auto;min-width:0}.about-bio{flex-direction:column;align-items:flex-start;gap:2em;display:flex}.about-bio-copy{flex:auto;min-width:0}.about-bio .lead{font-size:var(--text-md)}@media (width<=767px){.portrait{width:110px}.portrait--lg{width:220px}.hero-intro,.about-bio{flex-direction:column;align-items:stretch}.hero-intro{gap:1.6em}.about-bio{gap:2.2em}}.about-label{margin-top:3.2em}.about-edu .plan-name{font-size:var(--text-2xl)}.about-edu .plan-body{margin-top:.7em}.course-list{flex-wrap:wrap;gap:10px;display:flex}.course-chip{border:3px solid var(--fg);background:var(--bg);font:700 var(--text-sm)/1.2 var(--ui);letter-spacing:.01em;padding:.55em .9em .5em}.tools-line{font:400 var(--text-base)/1.7 var(--ui);max-width:720px}.skill-bars{gap:14px;margin-bottom:1.2em;display:grid}.skill-bar{align-items:center;gap:14px;display:flex}.skill-track{border:3px solid var(--fg);background:var(--bg);flex:auto;min-width:0;height:34px;position:relative;overflow:hidden}.skill-fill{background:var(--fill);width:0;transition:width 1.5s var(--ease);align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden}.skill-bars.is-live .skill-fill{width:var(--pct)}.skill-bars.is-resetting .skill-fill{width:0;transition:none}.skill-name{color:#fff;font:700 var(--text-xs)/1 var(--ui);letter-spacing:.01em;white-space:nowrap;padding-left:13px}.skill-name--top{display:none}.skill-num{text-align:right;width:3.2em;font:700 var(--text-sm)/1 var(--ui);font-variant-numeric:tabular-nums;flex:none}.skill-num:after{content:"%";color:var(--gray);margin-left:.08em;font-size:.62em;font-weight:400}@media (width<=800px){.course-chip{font-size:var(--text-xs)}.skill-bar{grid-template-columns:1fr auto;grid-template-areas:"name name""track num";align-items:center;gap:6px 10px;display:grid}.skill-name--top{color:var(--fg);font:700 var(--text-xs)/1.2 var(--ui);white-space:normal;overflow-wrap:anywhere;grid-area:name;padding-left:0;display:block}.skill-fill .skill-name{display:none}.skill-track{grid-area:track;height:32px}.skill-num{width:3.2em;font-size:var(--text-sm);grid-area:num}}.toast{z-index:150;border:3px solid var(--fg);border-bottom-color:var(--accent);background:var(--bg);max-width:min(100vw - 32px,360px);color:var(--fg);font:700 var(--text-sm)/1.4 var(--ui);text-align:center;overflow-wrap:anywhere;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s linear, transform .18s var(--ease-out), visibility 0s linear .18s;padding:10px 16px;position:fixed;bottom:24px;left:50%;transform:translate(-50%,6px)}.toast.is-visible{opacity:1;visibility:visible;transition-delay:0s;transform:translate(-50%)}@media (width<=767px){.toast{bottom:calc(56px + env(safe-area-inset-bottom,0px) + 14px)}}@media (prefers-reduced-motion:reduce){.toast{transition:none;transform:translate(-50%)}}.social-row .copy-email-icon{border:3px solid var(--fg);width:48px;height:48px;color:var(--fg);font:inherit;cursor:pointer;appearance:none;transition:transform .25s var(--ease), background-color .25s linear, color .25s linear, border-color .25s linear;background:0 0;border-radius:0;justify-content:center;align-items:center;padding:0;display:flex}.social-row .copy-email-icon:hover,.social-row .copy-email-icon:focus-visible{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.25)}@media (width<=420px){.social-row .copy-email-icon{width:42px;height:42px}}button.contact-hero{font:inherit;text-align:left;cursor:pointer;appearance:none}.section-body.contact-body{max-width:none}.contact-intro{max-width:860px}.contact-hero{border:3px solid var(--fg);background:var(--bg);width:100%;color:var(--fg);align-items:center;gap:26px;padding:28px 30px;text-decoration:none;transition:border-color .3s linear;display:flex;position:relative;overflow:hidden}.contact-hero-wrap{width:100%}.contact-hero:hover,.contact-hero:focus-visible{border-color:var(--accent)}.contact-hero-icon,.contact-hero-copy,.contact-hero-go{z-index:1;transition:color .3s linear,border-color .3s linear;position:relative}.contact-hero-icon{border:3px solid var(--fg);width:68px;height:68px;color:var(--accent-ink);flex:none;place-items:center;display:grid}.contact-hero-icon .icon{width:34px;height:34px}.contact-hero-copy{flex-direction:column;gap:6px;min-width:0;display:flex}.contact-hero-address{font:700 clamp(18px, 4.2vw, 28px)/1.15 var(--ui);letter-spacing:normal;overflow-wrap:anywhere}.contact-hero-desc{font:400 var(--text-base)/1.65 var(--serif);color:var(--gray)}.contact-hero-go{flex:none;margin-left:auto;display:flex}.contact-hero-go .icon{width:18px;height:18px;color:var(--accent-ink);transition:color .3s linear, transform .3s var(--ease)}.contact-hero-go .icon+.icon{margin-left:-8px}.contact-hero:hover .contact-hero-icon,.contact-hero:focus-visible .contact-hero-icon{color:#fff;border-color:#fff}.contact-hero:hover .contact-hero-address,.contact-hero:focus-visible .contact-hero-address,.contact-hero:hover .contact-hero-desc,.contact-hero:focus-visible .contact-hero-desc,.contact-hero:hover .contact-hero-go .icon,.contact-hero:focus-visible .contact-hero-go .icon{color:#fff}.contact-hero:hover .contact-hero-go .icon,.contact-hero:focus-visible .contact-hero-go .icon{transform:translate(4px)}.contact-label{margin-top:2.6em;margin-bottom:1.4em}.contact-channel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.contact-channel{min-width:0;display:flex}.contact-channel-link{border:3px solid var(--fg);background:var(--bg);width:100%;color:var(--fg);transition:border-color .4s var(--ease), transform .4s var(--ease-out), box-shadow .4s var(--ease-out);flex-direction:column;align-items:flex-start;padding:22px 22px 24px;text-decoration:none;display:flex}.contact-channel-icon{border:3px solid var(--fg);width:42px;height:42px;color:var(--accent-ink);place-items:center;margin-bottom:1.6em;transition:background-color .25s linear,border-color .25s linear,color .25s linear;display:grid}.contact-channel-icon .icon{width:20px;height:20px}.contact-channel:hover .contact-channel-icon,.contact-channel:focus-within .contact-channel-icon{background:var(--accent);border-color:var(--accent);color:#fff}.contact-channel-name{font:700 var(--text-xs)/1 var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:.7em}.contact-channel-handle{font:700 var(--text-lg)/1.2 var(--ui);letter-spacing:normal;overflow-wrap:anywhere}.contact-channel-desc{font:400 var(--text-base)/1.65 var(--serif);color:var(--gray);margin-top:.75em}.contact-status{border:3px solid var(--fg);background:var(--fill);grid-template-columns:1fr 1.6fr;gap:3px;margin-top:2.4em;display:grid}.contact-status-cell{background:var(--bg);min-width:0;padding:20px 22px}.contact-status-label{font:700 var(--text-xs)/1 var(--ui);letter-spacing:.04em;color:var(--accent-ink);margin-bottom:.8em}.contact-status-value{font:700 var(--text-2xl)/1.1 var(--ui);letter-spacing:normal;overflow-wrap:anywhere}.contact-status-open{font:400 var(--text-base)/var(--leading-read) var(--serif)}.contact-form{--error:var(--red);border:3px solid var(--fg);background:var(--bg);padding:28px 30px 30px}:root.theme-dark .contact-form{--error:#ff8a8a}.contact-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.contact-field{flex-direction:column;min-width:0;display:flex}.contact-field--full{grid-column:1/-1}.contact-field-label{font:700 var(--text-xs)/1.2 var(--ui);letter-spacing:.04em;text-transform:uppercase;color:var(--gray);margin-bottom:.9em}.contact-field-optional{letter-spacing:normal;text-transform:none;font-weight:400}.contact-input{border:3px solid var(--border);background:var(--bg-subtle);width:100%;min-width:0;color:var(--fg);font:400 var(--text-base)/1.5 var(--ui);border-radius:0;padding:12px 14px;transition:border-color .25s linear}.contact-input:hover{border-color:var(--gray)}.contact-input:focus{border-color:var(--accent-ink)}.contact-input[aria-invalid=true]{border-color:var(--error)}.contact-textarea{resize:vertical;min-height:160px}.contact-field-error{font:700 var(--text-xs)/1.4 var(--ui);color:var(--error);margin-top:.7em}.contact-field-meta{justify-content:space-between;align-items:baseline;gap:1.2em;margin-top:.7em;display:flex}.contact-field-meta .contact-field-error{margin-top:0}.contact-count{font:400 var(--text-xs)/1.4 var(--ui);color:var(--gray);white-space:nowrap;margin-left:auto}.contact-hp{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.contact-form-actions{flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:2em;display:flex}button.contact-form-submit{appearance:none;background:var(--bg);font:700 var(--text-sm)/1 var(--ui);cursor:pointer}button.contact-form-submit:disabled{cursor:not-allowed;border-color:var(--border)}button.contact-form-submit:disabled:before{transform:translate(-101%)}button.contact-form-submit:disabled .cta-text,button.contact-form-submit:disabled .cta-icon .icon{color:var(--gray)}.contact-form-wait{font:400 var(--text-xs)/1.5 var(--ui);color:var(--gray)}.contact-form-status{min-height:1.5em;font:700 var(--text-sm)/1.5 var(--ui);color:var(--gray);overflow-wrap:anywhere;margin-top:1.6em;position:relative}.contact-form-status--info{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;min-height:0;margin:0;position:absolute;overflow:hidden}.contact-form-status--success{color:var(--accent-ink)}.contact-form-status--error{color:var(--error)}@keyframes contact-stamp{0%{transform:scale(1.03)}30%{transform:scale(.96)}55%{transform:scale(1.01)}to{transform:scale(1)}}@keyframes contact-stamp-flash{0%{opacity:1;transform:scaleX(0)}70%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}.contact-form-status.is-stamped{animation:contact-stamp .42s var(--ease) both}.contact-form-status.is-stamped:after{content:"";background-image:repeating-linear-gradient(-45deg, var(--accent-ink) 0 2px, transparent 2px 5px);transform-origin:0;height:4px;animation:contact-stamp-flash .42s var(--ease-out) both;pointer-events:none;position:absolute;bottom:0;left:0;right:0}@keyframes contact-shake{0%,to{transform:translate(0)}15%{transform:translate(-4px)}30%{transform:translate(4px)}45%{transform:translate(-3px)}60%{transform:translate(3px)}75%{transform:translate(-2px)}90%{transform:translate(1px)}}.contact-input.is-shaking{animation:contact-shake .28s var(--ease) both}@media (prefers-reduced-motion:reduce){.contact-form-status.is-stamped,.contact-form-status.is-stamped:after,.contact-input.is-shaking{animation:none}}@media (width<=767px){.contact-hero{flex-direction:column;align-items:stretch;gap:18px;padding:22px 20px}.contact-hero-go{display:none}.contact-channel-grid{grid-template-columns:1fr;gap:20px}.contact-channel-link{align-items:stretch}.contact-channel-icon{margin-bottom:1.2em}.contact-status{grid-template-columns:1fr}.contact-status-cell{padding:18px}.contact-form{padding:22px 20px 24px}.contact-form-grid{grid-template-columns:1fr;gap:20px}.contact-form-actions{flex-direction:column;align-items:stretch}button.contact-form-submit{justify-content:center}}.record-list{font-size:var(--text-base);line-height:var(--leading-read);grid-template-columns:minmax(0,1fr);gap:.5em;margin-top:.7em;display:grid}.record-list>li{overflow-wrap:anywhere;min-width:0;padding-left:.84em;position:relative}.record-list>li:before{content:"";background:var(--accent);width:7px;height:7px;position:absolute;top:.62em;left:0}.record-pill{font-size:var(--text-xs);padding:.4em 1em .36em}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero-status{min-height:1.6em;padding-right:.7em}@media (width<=560px){.hero-status{min-height:3.2em}}.terminal-cursor{vertical-align:-.12em;background:var(--accent-ink);width:.6em;height:1em;margin-left:.08em;display:inline-block}.terminal-cursor.is-blinking{animation:1.1s step-end infinite terminal-blink}@keyframes terminal-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.terminal-cursor{animation:none}}.section-rail{display:none}@media (width>=1200px){.section-rail{z-index:50;width:5rem;display:block;position:fixed;top:50%;left:0;transform:translateY(-50%)}.section-rail-list{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.section-rail-link{min-width:44px;height:44px;color:var(--gray);align-items:center;padding-left:14px;text-decoration:none;display:flex;position:relative}.section-rail-mark{background:var(--gray);width:14px;height:3px;transition:width .25s var(--ease), background-color .25s linear;display:block}.section-rail-link:hover .section-rail-mark,.section-rail-link:focus-visible .section-rail-mark{background:var(--fg);width:24px}.section-rail-link.is-active .section-rail-mark{background:var(--accent-ink);width:34px}.section-rail-icon,.section-rail-abbr{display:none}.section-rail-label{background:var(--bg);color:var(--gray);font:700 1.4rem/1 var(--ui);letter-spacing:.06em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s linear, transform .2s var(--ease), color .2s linear;padding:2px 6px;position:absolute;top:50%;left:100%;transform:translate(-6px,-50%)}.section-rail-link:hover .section-rail-label,.section-rail-link:focus-visible .section-rail-label{opacity:1;color:var(--accent-ink);transform:translateY(-50%)}.section-rail-link.is-active .section-rail-label{color:var(--accent-ink)}}@media (width<=767px){.section-rail{z-index:50;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg);border-top:1px solid var(--border);display:block;position:fixed;bottom:0;left:0;right:0}.section-rail-list{height:56px;display:flex}.section-rail-list>li{flex:1 1 0;min-width:0}.section-rail-link{height:56px;color:var(--gray);-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;gap:3px;text-decoration:none;display:flex;position:relative}.section-rail-mark{background:0 0;width:auto;height:3px;position:absolute;top:0;left:0;right:0}.section-rail-link.is-active .section-rail-mark{background:var(--accent-ink)}.section-rail-icon{width:18px;height:18px}.section-rail-abbr{font:700 1.4rem/1 var(--ui);letter-spacing:.02em}.section-rail-link.is-active{color:var(--accent-ink)}.section-rail-link:focus-visible{outline-offset:-3px}.section-rail-label{display:none}.page-stack{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}}@media print{.section-rail{display:none!important}}
