:root{--bg:#f7f4ec;--surface:#fff;--surface-alt:#f1ede2;--ink:#14140f;--muted:#6b6759;--green:#1c5c3a;--hairline:#14140f24;--hairline-soft:#14140f14;--chip-bg:#14140f0b;--radius:10px;--wrap:1080px;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}[data-theme=dark]{--bg:#14140f;--surface:#1b1b16;--surface-alt:#201f19;--ink:#f2efe6;--muted:#9c9789;--green:#82c99e;--hairline:#f2efe629;--hairline-soft:#f2efe617;--chip-bg:#f2efe60f}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}::selection{background:var(--chip-bg)}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(16px,4vw,32px)}.sheet{min-height:100svh;max-width:var(--wrap);flex-direction:column;gap:clamp(10px,2vh,22px);margin-inline:auto;padding:clamp(14px,3vh,30px) clamp(16px,4vw,32px);display:flex}.top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 20px;display:flex}.wordmark{letter-spacing:-.015em;font-size:15px;font-weight:700}.top-links{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-size:11.5px;display:flex}.top-links a{color:var(--muted);transition:color .15s}.top-links a:hover{color:var(--green)}.toggle{font-family:var(--mono);color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:11.5px;transition:color .15s}.toggle:hover{color:var(--green)}main{flex-direction:column;flex:1;justify-content:center;gap:clamp(12px,2.6vh,30px);display:flex}.hero .eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin:0 0 10px;font-size:10.5px}h1{letter-spacing:-.03em;max-width:22ch;margin:0 0 10px;font-size:clamp(1.7rem,4.4vw,2.9rem);font-weight:700;line-height:1.06}.bio{color:var(--muted);max-width:66ch;margin:0 0 10px;font-size:clamp(13.5px,1.4vw,15px)}.timeline{font-family:var(--mono);letter-spacing:.01em;color:var(--muted);max-width:96ch;margin:0;font-size:10.5px;line-height:1.85}.cols{grid-template-columns:1fr 1fr;gap:clamp(14px,3vw,44px);display:grid}.block{flex-direction:column;gap:4px;min-width:0;display:flex}.block-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:0 0 2px;font-size:9.5px}.rows{flex-direction:column;display:flex}.row{border-bottom:1px solid var(--hairline-soft);grid-template-columns:86px minmax(0,1fr);align-items:baseline;gap:4px 14px;padding-block:6px;display:grid}.row:first-child{border-top:1px solid var(--hairline-soft)}.k{font-family:var(--mono);color:var(--ink);white-space:nowrap;font-size:11px}.k.num{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.v{color:var(--muted);min-width:0;font-size:13px;line-height:1.45}.v a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--hairline)}.v a:hover{color:var(--green);text-decoration-color:var(--green)}.code{font-family:var(--mono);letter-spacing:.06em;color:var(--green);border:1px solid var(--green);cursor:pointer;vertical-align:1px;background:0 0;border-radius:4px;padding:1px 6px;font-size:10px}.code:hover{background:var(--green);color:var(--bg)}.line{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.line a+a:before{content:" · ";color:var(--muted)}.line a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--hairline)}.line a:hover{color:var(--green);text-decoration-color:var(--green)}.mono-line{font-family:var(--mono);color:var(--muted);margin:0;font-size:10.5px;line-height:1.7}.foot{border-top:1px solid var(--hairline-soft);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 18px;padding-top:10px;display:flex}.foot-copy{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);margin:0;font-size:10.5px}.foot-links{font-family:var(--mono);color:var(--muted);align-items:baseline;gap:14px;font-size:10.5px;display:flex}.foot-links a{color:var(--muted);transition:color .15s}.foot-links a:hover{color:var(--green)}.nav{border-bottom:1px solid var(--hairline-soft)}.nav-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;padding-block:10px;display:flex}.nav-right{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.nav-btn{font:inherit;color:var(--green);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.nav-btn:hover{color:var(--ink)}.foot-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;padding-block:14px;display:flex}.colophon{font-family:var(--mono);color:var(--muted);margin:0;font-size:12px}.foot .foot-copy,.foot .colophon{font-size:12px}@media (width<=760px){.sheet{gap:8px;padding-block:12px}main{gap:10px}.hero .eyebrow{margin-bottom:7px}h1{max-width:100%;margin-bottom:8px;font-size:clamp(1.45rem,6.4vw,1.9rem)}.bio{margin-bottom:8px;font-size:12.5px;line-height:1.45}.timeline{font-size:9.5px;line-height:1.65}.cols{grid-template-columns:1fr;gap:10px}.block-label{margin-bottom:0;font-size:9px}.row{padding-block:5px;display:block}.k{margin-right:6px;font-size:10.5px}.k:after{content:"·";color:var(--muted);opacity:.7;padding-left:6px}.k.num{font-size:13px}.v{font-size:12px;line-height:1.35}.line{font-size:12px;line-height:1.5}.line a:not(:first-of-type):not(:last-of-type){display:none}.mono-line{font-size:10px;line-height:1.6}.foot{padding-top:8px}}@media (width<=760px) and (height<=700px){.timeline,.about .mono-line:nth-of-type(2){display:none}}@media (width<=760px) and (height<=620px){.sheet{gap:6px;padding-block:8px}main{gap:8px}.bio{display:none}h1{margin-bottom:6px;font-size:1.35rem}.row{padding-block:4px}.line a:not(:last-of-type){display:none}.foot{padding-top:6px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}
