@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.3zvkfbs08rnj_.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.3strvg7o-g5v2.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:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.1wwzpfhzaj2r0.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.2rlzm4mj5kw8e.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:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_8c4ab588-module__AuOkkq__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_8c4ab588-module__AuOkkq__variable{--font-serif:"Instrument Serif", "Instrument Serif Fallback"}
@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/c7f47671e39f7787-s.3wn_q526zaolu.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/f06bf9da926bae75-s.p.3uuun_-7zsf1g.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:Instrument Sans Fallback;src:local(Arial);ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.0%;size-adjust:102.74%}.instrument_sans_dd0ece85-module__hccXaq__className{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}.instrument_sans_dd0ece85-module__hccXaq__variable{--font-sans:"Instrument Sans", "Instrument Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.3bz3aq452sydg.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.343obqi851wr5.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.40kcwrf1wub16.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.200l3jur7oygh.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.269kn9uafm0ti.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_dc177b0e-module__78ed6G__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_dc177b0e-module__78ed6G__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--paper:#efece4;--paper-2:#e5e1d6;--ink:#161513;--muted:#6d685f;--line:#16151326;--accent:#ff4a1c;--tile:#1b1a18;--tile-top:#272623;--tile-ink:#f3efe6;--grain:.07;--pad:clamp(20px, 4vw, 56px);--max:1320px;--col:140px;--ease:cubic-bezier(.2, .8, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;interpolate-size:allow-keywords}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0f0f0e;--paper-2:#1a1917;--ink:#ece8df;--muted:#938e84;--line:#ece8df21;--tile:#1f1e1c;--tile-top:#2b2a27;--grain:.12;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#0f0f0e;--paper-2:#1a1917;--ink:#ece8df;--muted:#938e84;--line:#ece8df21;--tile:#1f1e1c;--tile-top:#2b2a27;--grain:.12;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:88px}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans), system-ui, -apple-system, "Segoe UI", sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55;transition:background-color .35s,color .35s;overflow-x:clip}body:before{content:"";z-index:100;pointer-events:none;opacity:var(--grain);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{background:var(--accent);color:#fff}a{color:inherit;text-decoration:none}em{font-style:italic}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius: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{z-index:200;background:var(--ink);color:var(--paper);border-radius:8px;padding:10px 14px;position:absolute;top:12px;left:-9999px}.skip:focus{left:12px}.wrap{width:100%;max-width:var(--max);padding-inline:var(--pad);margin-inline:auto}.status,.hero-role,.flap-label,.sec-kicker,.sec-note,.board-head,.job-years,.project-num,.project-kind,.stack-group,.chips li,.stop-code,.stop-meta,.topbar-meta,.footer,.contact-time{font-family:var(--font-mono), ui-monospace, "SFMono-Regular", Menlo, monospace}.topbar{z-index:50;background:color-mix(in srgb, var(--paper) 84%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.3);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:24px;height:64px;display:flex}.mark{align-items:center;gap:12px;font-size:15px;font-weight:500;display:flex}.mark-badge{background:var(--ink);width:32px;height:32px;color:var(--paper);font-family:var(--font-serif), Georgia, serif;transition:transform .4s var(--ease);border-radius:8px;place-items:center;padding-bottom:3px;font-size:19px;font-style:italic;display:grid;position:relative}.mark-badge:after{content:"";background:var(--accent);border:2px solid var(--paper);border-radius:50%;width:10px;height:10px;position:absolute;top:-3px;right:-3px}.mark:hover .mark-badge{transform:rotate(-8deg)}.nav{gap:30px;font-size:14.5px;display:flex}.nav a{color:var(--muted);align-items:baseline;gap:6px;transition:color .2s;display:flex}.nav a:hover{color:var(--ink)}.nav-num{font-family:var(--font-mono), monospace;color:var(--accent);font-size:10.5px}.topbar-meta{align-items:center;gap:16px;font-size:12.5px;display:flex}.clock{font-variant-numeric:tabular-nums;gap:8px;display:flex}.clock-label{color:var(--muted)}.theme-toggle{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);cursor:pointer;transition:transform .5s var(--ease), border-color .2s;background:0 0;border-radius:50%;place-items:center;padding:0;display:grid}.theme-toggle:hover{border-color:var(--ink);transform:rotate(180deg)}.hero{padding-top:clamp(36px,7vw,88px);padding-bottom:clamp(56px,8vw,104px)}.status{border:1px solid var(--line);color:var(--muted);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;align-items:center;gap:10px;margin:0;padding:7px 14px;font-size:12px;display:inline-flex}.status-sep{opacity:.5}.status-dot{background:#22b573;border-radius:50%;width:8px;height:8px;animation:2.4s infinite pulse-green}.status-dot.busy{background:var(--accent);animation:none}@keyframes pulse-green{0%{box-shadow:0 0 #22b5738c}70%,to{box-shadow:0 0 0 10px #22b57300}}.hero-title{margin-top:clamp(20px,3.5vw,44px);display:grid}.hero-title>*{grid-area:1/1}.hero-name{font-family:var(--font-serif), Georgia, serif;letter-spacing:-.035em;margin:0;font-size:clamp(4.4rem,19.5vw,17.5rem);font-weight:400;line-height:.84}.hero-name .line{margin-bottom:-.12em;padding:.04em .08em .12em 0;display:block;overflow:hidden}.hero-name .line-2{text-align:right}.char{animation:rise 1.05s var(--ease) both;animation-delay:calc(.1s + var(--i) * 45ms);display:inline-block}@keyframes rise{0%{transform:translateY(1.3em)}}.hero-role{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;flex-direction:column;place-self:end start;margin:0 0 clamp(8px,2.4vw,36px);font-size:12.5px;line-height:1.8;animation:.8s .9s both fade-in;display:flex}.hero-role strong{color:var(--ink);font-weight:500}@keyframes fade-in{0%{opacity:0}}.flap-row{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 32px;margin-top:clamp(32px,5vw,56px);padding-top:24px;display:flex}.flap-label{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:10px;margin:0;font-size:12.5px;display:flex}.flap-arrow{color:var(--accent)}.flap{--gap:4px;--tw:min(3.4rem, calc((100vw - 2 * var(--pad) - (var(--tiles) - 1) * var(--gap)) / var(--tiles)));gap:var(--gap);display:flex}.flap-tile{width:var(--tw);height:calc(var(--tw) * 1.38);background:linear-gradient(to bottom, var(--tile-top) 0 50%, var(--tile) 50% 100%);color:var(--tile-ink);border-radius:calc(var(--tw) * .12);font-family:var(--font-mono), monospace;font-weight:500;font-size:calc(var(--tw) * .62);perspective:240px;place-items:center;line-height:1;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff12,0 1px 2px #00000047}.flap-tile:after{content:"";inset-inline:0;background:#0009;height:1px;position:absolute;top:calc(50% - .5px);box-shadow:0 1px #ffffff0d}.flap-char{animation:.14s ease-out flap;display:block}@keyframes flap{0%{opacity:.35;transform:rotateX(-75deg)}}.hero-bottom{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:end;gap:40px;margin-top:clamp(40px,6vw,72px);display:grid}.hero-summary{text-wrap:pretty;max-width:40ch;margin:0;font-size:clamp(1.15rem,1.7vw,1.5rem);line-height:1.42}.hero-cta{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.btn{border:1px solid var(--ink);height:50px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:10px;padding:0 24px;font-size:15px;font-weight:500;transition:background-color .25s,color .25s,border-color .25s;display:inline-flex}.btn .arrow{transition:transform .3s var(--ease)}.btn:hover .arrow{transform:translate(3px)}.btn-solid{background:var(--ink);color:var(--paper)}.btn-solid:hover{background:var(--accent);border-color:var(--accent);color:#fff}.btn-solid:hover .arrow{transform:translateY(3px)}.btn-ghost:hover{background:var(--ink);color:var(--paper)}.stats{border-block:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat{border-left:1px solid var(--line);padding:28px 24px 34px}.stat:first-child{border-left:0;padding-left:0}.stat-value{font-family:var(--font-serif), Georgia, serif;letter-spacing:-.02em;font-size:clamp(3rem,6vw,5.2rem);line-height:1;display:block}.stat-label{max-width:24ch;color:var(--muted);margin-top:12px;font-size:14px;line-height:1.45;display:block}.section{padding-block:clamp(80px,11vw,150px) 0}.sec-head{grid-template-columns:var(--col) minmax(0, 1fr) auto;align-items:end;gap:24px;margin-bottom:clamp(36px,5vw,60px);display:grid}.sec-kicker{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;align-self:start;gap:10px;margin:0;padding-top:.9em;font-size:12.5px;display:flex}.sec-kicker b{color:var(--accent);font-weight:500}.sec-title{font-family:var(--font-serif), Georgia, serif;letter-spacing:-.025em;margin:0;font-size:clamp(2.7rem,6.6vw,5.8rem);font-weight:400;line-height:.95}.sec-title em,.contact-title em{color:var(--accent)}.sec-note{max-width:26ch;color:var(--muted);text-align:right;margin:0;font-size:12.5px;line-height:1.6}.route-scroll{scrollbar-width:none;margin-bottom:44px;overflow-x:auto}.route-scroll::-webkit-scrollbar{display:none}.route{min-width:600px;margin:0;padding:0;list-style:none;display:flex}.route-item{flex:1;align-items:flex-start;display:flex}.route-item:first-child{flex:none}.stop{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.stop-code{letter-spacing:.04em;align-items:center;gap:9px;font-size:13px;font-weight:600;display:flex}.stop-dot{border:1.5px solid var(--ink);background:var(--paper);border-radius:50%;width:10px;height:10px}.route-item.now .stop-dot{border-color:var(--accent);background:var(--accent);animation:2.2s infinite pulse-accent}@keyframes pulse-accent{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 60%, transparent)}70%,to{box-shadow:0 0 0 10px #0000}}.stop-meta{color:var(--muted);white-space:nowrap;padding-left:19px;font-size:11.5px}.leg{background:linear-gradient(90deg, var(--muted) 50%, transparent 50%) 0 0 / 10px 100%;opacity:.55;flex:1;min-width:24px;height:1.5px;margin:8px 14px 0;animation:1.2s linear infinite march}@keyframes march{to{background-position-x:10px}}.board,.projects,.stack{border-top:1px solid var(--ink)}.board-head,.job-row,.job-body,.edu{grid-template-columns:var(--col) minmax(0, 1.35fr) minmax(0, 1.1fr) minmax(0, 1fr) 36px;gap:24px;display:grid}.board-head{border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:12px 0;font-size:11px}.job{border-bottom:1px solid var(--line)}.job-row{isolation:isolate;cursor:pointer;align-items:center;padding:26px 0;list-style:none;position:relative}.job-row::-webkit-details-marker{display:none}.job-row:before{content:"";z-index:-1;background:var(--paper-2);opacity:0;border-radius:12px;transition:opacity .25s;position:absolute;inset:0 -16px}.job-row:hover:before{opacity:1}.job-years{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.job-company{font-family:var(--font-serif), Georgia, serif;letter-spacing:-.01em;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:clamp(1.8rem,3.1vw,2.6rem);line-height:1;display:flex}.job-row:hover .job-company,.job[open] .job-company{font-style:italic}.job-tag{border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono), monospace;letter-spacing:.04em;border-radius:5px;padding:4px 7px;font-size:10.5px;font-style:normal}.job-role{font-size:15px}.job-city{color:var(--muted);align-items:center;gap:10px;font-size:14px;display:flex}.job-city b{background:var(--ink);color:var(--paper);font-family:var(--font-mono), monospace;letter-spacing:.06em;border-radius:4px;padding:3px 6px;font-size:11px;font-weight:600}.job-toggle{border:1px solid var(--line);width:36px;height:36px;font-family:var(--font-mono), monospace;transition:transform .4s var(--ease), background-color .25s, border-color .25s, color .25s;border-radius:50%;place-items:center;font-size:17px;display:grid}.job[open] .job-toggle{border-color:var(--accent);background:var(--accent);color:#fff;transform:rotate(45deg)}.job-body{padding:4px 0 40px}.job-intro{grid-column:2}.job-points{grid-column:3/-1}.job-blurb{font-family:var(--font-serif), Georgia, serif;text-wrap:pretty;margin:0 0 22px;font-size:1.4rem;line-height:1.3}.job-points{gap:12px;margin:0;padding:0;font-size:15px;line-height:1.5;list-style:none;display:grid}.job-points li{grid-template-columns:24px 1fr;display:grid}.job-points li:before{content:"→";color:var(--accent);font-family:var(--font-mono), monospace}@supports selector(::details-content){.job::details-content{block-size:0;transition:block-size .5s var(--ease), content-visibility .5s allow-discrete;overflow-y:clip}.job[open]::details-content{block-size:auto}}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:5px 10px;font-size:11.5px}.projects{margin:0;padding:0;list-style:none}.project{grid-template-columns:var(--col) minmax(0, 1.35fr) minmax(0, 2.1fr);border-bottom:1px solid var(--line);gap:24px;padding:40px 0;display:grid}.project-num{color:var(--muted);padding-top:.8em;font-size:13px;transition:color .25s}.project-name{font-family:var(--font-serif), Georgia, serif;letter-spacing:-.02em;transition:transform .45s var(--ease);margin:0;font-size:clamp(2.3rem,4.6vw,3.9rem);font-weight:400;line-height:.95}.project-kind{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:14px 0 0;font-size:11.5px}.project-desc{text-wrap:pretty;max-width:48ch;margin:0 0 20px;padding-top:.35em;font-size:1.12rem;line-height:1.5}.project:hover .project-num{color:var(--accent)}.project:hover .project-name{font-style:italic;transform:translate(10px)}.stack-row{grid-template-columns:var(--col) minmax(0, 1fr);border-bottom:1px solid var(--line);align-items:baseline;gap:24px;padding:22px 0;display:grid}.stack-group{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:11.5px;font-weight:400}.stack-items{font-family:var(--font-serif), Georgia, serif;flex-wrap:wrap;gap:.1em 0;margin:0;padding:0;font-size:clamp(1.55rem,2.9vw,2.4rem);line-height:1.15;list-style:none;display:flex}.stack-items li{transition:color .2s}.stack-items li:not(:last-child):after{content:"/";color:var(--muted);opacity:.45;margin-inline:.4em;font-style:normal}.stack-items li:hover{color:var(--accent);font-style:italic}.section-tight .sec-head{margin-bottom:32px}.edu{border-block:1px solid var(--line);border-top-color:var(--ink);align-items:center;padding:26px 0}.edu-school{font-family:var(--font-serif), Georgia, serif;font-size:clamp(1.8rem,3.1vw,2.6rem);line-height:1}.edu-degree{flex-direction:column;font-size:15px;display:flex}.edu-degree span{color:var(--muted)}.contact{padding-block:clamp(80px,11vw,150px) clamp(32px,5vw,56px)}.contact-panel{background:var(--ink);color:var(--paper);border-radius:clamp(20px,3vw,36px);padding:clamp(28px,6vw,84px);position:relative;overflow:hidden}.contact-panel:before{content:"";pointer-events:none;background-image:linear-gradient(to right, color-mix(in srgb, var(--paper) 7%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--paper) 7%, transparent) 1px, transparent 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 85% 10%,#000 0%,#0000 65%);mask-image:radial-gradient(at 85% 10%,#000 0%,#0000 65%)}.contact-panel>*{position:relative}.contact-panel .sec-kicker{color:color-mix(in srgb, var(--paper) 60%, transparent);padding-top:0}.contact-title{max-width:13ch;font-family:var(--font-serif), Georgia, serif;letter-spacing:-.035em;margin:28px 0 0;font-size:clamp(3rem,9.5vw,8.6rem);font-weight:400;line-height:.9}.contact-email{background:linear-gradient(var(--accent), var(--accent)) 0 100% / 0% 2px no-repeat, linear-gradient(color-mix(in srgb, var(--paper) 30%, transparent), color-mix(in srgb, var(--paper) 30%, transparent)) 0 100% / 100% 1px no-repeat;font-family:var(--font-serif), Georgia, serif;overflow-wrap:anywhere;transition:background-size .5s var(--ease);margin-top:clamp(32px,5vw,56px);padding-bottom:6px;font-size:clamp(1.7rem,5vw,3.8rem);line-height:1.1;display:inline-block}.contact-email:hover{background-size:100% 2px,100% 1px}.contact-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.btn-accent{border-color:var(--accent);background:var(--accent);color:#fff}.btn-accent:hover{border-color:var(--paper);background:var(--paper);color:var(--ink)}.btn-outline{border-color:color-mix(in srgb, var(--paper) 35%, transparent);color:var(--paper)}.btn-outline:hover{border-color:var(--paper)}.contact-foot{border-top:1px solid color-mix(in srgb, var(--paper) 18%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;margin-top:clamp(40px,6vw,72px);padding-top:24px;display:flex}.contact-links{flex-wrap:wrap;gap:8px 28px;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.contact-links a{transition:color .2s}.contact-links a:hover{color:var(--accent)}.contact-time{color:color-mix(in srgb, var(--paper) 60%, transparent);margin:0;font-size:12.5px}.contact-time .local-time{color:var(--paper);font-variant-numeric:tabular-nums}.footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-block:8px 40px;font-size:12px;display:flex}.footer a:hover{color:var(--ink)}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both reveal;animation-timeline:view();animation-range:entry entry 35%}}}@keyframes reveal{0%{opacity:0;transform:translateY(28px)}}@media (max-width:960px){.nav{display:none}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(odd){border-left:0;padding-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}}@media (max-width:820px){:root{--col:1fr}.hero-title>.hero-role{grid-area:2/1;margin:24px 0 0}.hero-bottom{grid-template-columns:1fr}.hero-cta{justify-content:flex-start}.sec-head{grid-template-columns:1fr;gap:14px}.sec-kicker{padding-top:0}.sec-note{text-align:left}.route-scroll{-webkit-mask-image:linear-gradient(90deg,#000 80%,#0000);mask-image:linear-gradient(90deg,#000 80%,#0000)}.board-head{display:none}.job-row{grid-template-columns:minmax(0,1fr) 36px;gap:10px 16px;padding:22px 0}.job-row>:not(.job-toggle){grid-column:1}.job-toggle{grid-area:1/2/span 4;align-self:center}.job-row:before{inset:0 -10px}.job-body,.edu{grid-template-columns:1fr;gap:22px}.edu{gap:10px}.job-intro,.job-points{grid-column:1}.project{grid-template-columns:1fr;gap:14px;padding:32px 0}.project-num{padding-top:0}.stack-row{grid-template-columns:1fr;gap:8px}}@media (max-width:520px){.mark-name,.status-loc{display:none}.stat{padding:22px 14px 26px}.stat-label{font-size:13px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.char,.hero-role{opacity:1;animation:none;transform:none}.flap-char,.leg,.status-dot,.route-item.now .stop-dot{animation:none}}
