:root{--bg:#f6f8f6;--ink:#16201e;--muted:#5d6b67;--line:#d5dcd8;--accent:#2f6f5e;--accent-soft:#e3efea}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101514;--ink:#e8ece9;--muted:#97a39e;--line:#263029;--accent:#6fb79f;--accent-soft:#17251f}}:root[data-theme=dark]{--bg:#101514;--ink:#e8ece9;--muted:#97a39e;--line:#263029;--accent:#6fb79f;--accent-soft:#17251f}*{box-sizing:border-box}body,html{background:var(--bg)}body{color:var(--ink);font-family:IBM Plex Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:17px;line-height:1.55;margin:0;-webkit-font-smoothing:antialiased}main{margin:0 auto;max-width:640px;padding:clamp(40px,9vh,96px) 24px 64px}header{align-items:baseline;display:flex;gap:16px;justify-content:space-between}.wordmark{font-family:Familjen Grotesk,IBM Plex Sans,sans-serif;font-size:clamp(56px,12vw,96px);font-weight:700;letter-spacing:-.045em;line-height:.9;margin:0}.wordmark b{color:var(--accent);font-weight:inherit}.topbar{background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}.topbar .in{color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px;gap:18px;justify-content:flex-end;margin:0 auto;max-width:640px;padding:10px 24px}.langs,.topbar .in{align-items:center;display:flex}.langs{gap:6px}.langs a{border-radius:3px;color:var(--muted);padding:2px 4px;text-decoration:none}.langs a:focus-visible,.langs a:hover{color:var(--accent);outline:none}.langs a[aria-current]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}.langs span{opacity:.5}.theme{all:unset;border-radius:50%;color:var(--muted);cursor:pointer;display:inline-flex;padding:3px}.theme:focus-visible,.theme:hover{color:var(--accent);outline:none}.theme:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme svg{display:block;height:16px;width:16px}.theme .sun{display:none}:root[data-theme=dark] .theme .sun{display:inline-block}:root[data-theme=dark] .theme .moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme .sun{display:inline-block}:root:not([data-theme=light]) .theme .moon{display:none}}.since{color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px;text-align:right;white-space:nowrap}.ridge{color:var(--line);display:block;height:40px;margin:28px 0 40px;width:100%}.ridge .peak{color:var(--accent)}.lead{font-family:Familjen Grotesk,sans-serif;font-size:clamp(22px,3.4vw,28px);font-weight:500;letter-spacing:-.015em;line-height:1.25;margin:0 0 40px;max-width:26ch}h2{color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;font-weight:400;letter-spacing:.12em;margin:0 0 12px;text-transform:uppercase}ul.scope{list-style:none;margin:0 0 48px;padding:0}ul.scope li{border-top:1px solid var(--line);padding:12px 0}ul.scope li:last-child{border-bottom:1px solid var(--line)}ul.scope li span{color:var(--muted)}.contact{display:grid;gap:24px;grid-template-columns:1fr 1fr 1fr;margin-bottom:56px}.contact p{margin:0}.contact .name{font-weight:500}.contact a{border-bottom:1px solid var(--line);color:var(--ink);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:16px;text-decoration:none;transition:border-color .15s ease,color .15s ease}.contact a:focus-visible,.contact a:hover{border-color:var(--accent);color:var(--accent);outline:none}.contact a.li{align-items:center;display:inline-flex;gap:7px}.contact a.li svg{flex:none;height:15px;width:15px}.contact a:focus-visible{border-color:transparent;outline:2px solid var(--accent);outline-offset:3px}footer{border-top:1px solid var(--line);color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.7;padding-top:20px}footer span{white-space:nowrap}@media(max-width:480px){header{align-items:flex-start;flex-direction:column;gap:12px}.since{text-align:left}.contact{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){main>*{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}main>:nth-child(2){animation-delay:.08s}main>:nth-child(3){animation-delay:.14s}main>:nth-child(4){animation-delay:.2s}main>:nth-child(5){animation-delay:.26s}main>:nth-child(6){animation-delay:.32s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
