@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");font-style:normal;font-weight:100 800;font-display:swap}:root{--ink:#15150f;--ink-soft:#33322a;--ink-mid:#3a392f;--muted:#57564e;--card:#fbf9f4;--rule:#15150f47;--line:#15150f4d;--ease:cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased}body{color:var(--ink);background:#d9d7d0;margin:0;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.stage{background:radial-gradient(120% 80% at 50% 0,#e6e4dd 0%,#d5d3cb 60%,#c7c5bd 100%);justify-content:center;min-height:100vh;padding:clamp(16px,4vh,52px) clamp(14px,4vw,40px);display:flex}.card{background:var(--card);border-radius:2px;width:100%;max-width:660px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffd9,0 0 0 1px #15150f12,0 26px 60px -32px #15150f73,0 2px 6px #15150f12}.grain,.clouds{pointer-events:none;mix-blend-mode:multiply;position:absolute;inset:0}.grain{opacity:.3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='5' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23g)' opacity='0.3'/%3E%3C/svg%3E")}.clouds{opacity:.168;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.03' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23f)' opacity='0.28'/%3E%3C/svg%3E")}main{gap:clamp(24px,3.4vw,36px);padding:clamp(32px,6vw,60px) clamp(26px,6vw,60px) clamp(18px,3vw,26px);display:grid;position:relative}section{gap:9px;display:grid}.eyebrow{letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin:0;font-size:9.5px;font-weight:400}h1{letter-spacing:-.01em;margin:8px 0 0;font-size:clamp(32px,7vw,48px);font-weight:700;line-height:1.04}.place{color:var(--ink-mid);align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}.pin{border:1.5px solid var(--ink-mid);border-radius:50% 50% 50% 0;flex:none;width:10px;height:10px;transform:rotate(-45deg)}.bio{color:var(--ink-soft);text-wrap:pretty;margin:0;font-size:12.5px;line-height:1.8}.rows{gap:12px;display:grid}.row{align-items:center;gap:11px;font-size:14px;line-height:1.3;display:flex}.row.past{color:var(--ink-soft)}.logo{background-image:repeating-linear-gradient(45deg,#15150f1f 0 1px,#0000 1px 4px);border:1px solid #15150f42;border-radius:5px;flex:none;width:22px;height:22px}.dot{background:oklch(58% .13 150);border-radius:50%;flex:none;width:6px;height:6px;animation:2.8s ease-in-out infinite dot}.u{border-bottom:1px solid var(--line);padding-bottom:1px;transition:border-color .2s}.u:hover{border-color:var(--ink)}.things-head{justify-content:space-between;align-items:baseline;gap:14px;display:flex}.things-head a{letter-spacing:.1em;color:var(--muted);transition:color .2s}.things-head a:hover{color:var(--ink)}.list{display:grid}.item{border-bottom:1px dotted var(--rule);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:10px 0;font-size:13.5px;display:grid}a.item{transition:padding-left .28s var(--ease)}a.item:hover{padding-left:8px}.item.pending{color:var(--ink-soft)}.item .note{color:var(--muted);font-size:11px}.links{flex-wrap:wrap;gap:18px;font-size:12.5px;display:flex}.colophon{letter-spacing:.26em;text-transform:uppercase;color:var(--muted);border-top:1px solid #15150f2e;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:4px;padding-top:12px;font-size:9.5px;display:flex}@keyframes up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes blink{0%,48%{opacity:1}50%,to{opacity:0}}@keyframes dot{0%,to{opacity:1}50%{opacity:.25}}.reveal{animation:up .6s var(--ease) both;animation-delay:var(--d,0s)}.caret{animation:1.2s step-end infinite blink}@media (prefers-reduced-motion:reduce){.reveal,.caret,.dot{animation:none}a.item,.u,.things-head a{transition:none}}
