*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0;padding:0}img,svg,video{display:block;max-width:100%;height:auto}:root{--bg: #0a0a0f;--bg-elev: #111118;--bg-card: #13131c;--ink: #ece7df;--ink-dim: #a39e94;--ink-faint: #6f6b64;--line: #232330;--link: #ece7df;--accent: #f5a623;--accent-soft: rgba(245, 166, 35, .12);--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;--serif: "Playfair Display", Georgia, "Times New Roman", serif;--sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--max: 700px;--max-wide: 1100px;--shadow-lift: 0 24px 48px -16px rgba(0, 0, 0, .7), 0 0 0 1px rgba(245, 166, 35, .25)}html{background:var(--bg)}body{font-family:var(--sans);font-size:17px;line-height:1.7;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent);color:#0a0a0f}h1,h2,h3{font-family:var(--serif);line-height:1.12;letter-spacing:-.01em;color:var(--ink);font-weight:600}h4{font-family:var(--sans);font-weight:600}h1{font-size:clamp(2.4rem,5vw,3.4rem);margin-bottom:.4em}h2{font-size:clamp(1.6rem,3vw,2.1rem);margin:2.2em 0 .6em}h3{font-size:1.25rem;margin:1.6em 0 .4em}p{margin:1em 0}small,.small{font-size:.86rem;color:var(--ink-dim)}.kicker{font-family:var(--mono);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}.kicker .num{color:var(--ink-faint);margin-right:10px}a{color:var(--link);text-decoration:underline;text-decoration-color:var(--ink-faint);text-underline-offset:4px;text-decoration-thickness:1px;transition:text-decoration-color .15s ease,color .15s ease}a:hover{text-decoration-color:var(--accent);color:var(--accent)}hr{border:none;text-align:center;margin:3em 0;color:var(--ink-faint)}hr:before{content:"* * *";letter-spacing:.5em;font-size:.9rem}blockquote{border-left:2px solid var(--accent);padding:.2em 1.2em;margin:1.4em 0;color:var(--ink-dim);font-style:italic}code{font-family:var(--mono);font-size:.88em;background:var(--bg-elev);padding:1px 5px;border-radius:4px}pre{font-family:var(--mono);background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:16px 18px;overflow-x:auto;margin:1.2em 0;font-size:.9rem}pre code{background:none;padding:0;border-radius:0}ul,ol{padding-left:1.4em;margin:1em 0}li{margin-bottom:.3em}.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}.wrap-wide{max-width:var(--max-wide);margin:0 auto;padding:0 24px}main{padding:0 0 96px}main.pad-top{padding-top:56px}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}header.site{position:sticky;top:0;z-index:50;padding:20px 0;background:#0a0a0fc7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}header.site .row{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap}header.site .brand{font-family:var(--serif);font-weight:600;font-size:1.15rem;letter-spacing:.01em;color:var(--ink);text-decoration:none}header.site .brand:hover{color:var(--accent)}header.site .brand .dot{color:var(--accent)}header.site nav ul{display:flex;gap:26px;list-style:none;padding:0;margin:0;flex-wrap:wrap}header.site nav a{color:var(--ink-dim);font-size:.92rem;text-decoration:none;font-weight:500;letter-spacing:.02em}header.site nav a:hover,header.site nav a[aria-current=page]{color:var(--ink)}header.site nav a[aria-current=page]:after{content:"";display:block;height:2px;background:var(--accent);margin-top:4px}.btn{display:inline-block;font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:.02em;color:#0a0a0f;background:var(--accent);padding:13px 26px;border-radius:999px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.btn:hover{color:#0a0a0f;background:#ffba3d;transform:translateY(-2px);box-shadow:0 12px 28px -8px #f5a62373}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent);box-shadow:none}article.post header.post-head{padding:32px 0 28px;border-bottom:1px solid var(--line);margin-bottom:32px}article.post header.post-head .meta{font-family:var(--mono);font-size:.78rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.14em;margin-bottom:16px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}article.post header.post-head h1{margin-bottom:14px}article.post header.post-head .summary{font-size:1.12rem;color:var(--ink-dim);max-width:640px}article.post .hero{margin:0 0 32px;border-radius:8px;overflow:hidden;background:var(--bg-elev)}article.post .hero img{width:100%;height:auto}article.post .content img{border-radius:6px;margin:1.6em 0}article.post .content figure{margin:1.8em 0}article.post .content figcaption{font-size:.84rem;color:var(--ink-faint);margin-top:8px;text-align:center;font-style:italic}.post-foot{margin-top:64px;padding-top:24px;border-top:1px solid var(--line);font-size:.9rem;color:var(--ink-dim);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.tag-pill{display:inline-block;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(245,166,35,.25);padding:3px 11px;border-radius:999px}footer.site{border-top:1px solid var(--line);padding:44px 0 56px;color:var(--ink-faint);font-size:.88rem}footer.site .row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}footer.site a{color:var(--ink-dim);text-decoration:none}footer.site a:hover{color:var(--accent)}footer.site .socials{display:flex;gap:16px}footer.site .socials a{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:999px;transition:border-color .2s ease,transform .2s ease,color .2s ease}footer.site .socials a:hover{border-color:var(--accent);transform:translateY(-2px)}footer.site .socials svg{width:17px;height:17px;fill:currentColor}.resume h2{font-family:var(--mono);font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:2.6em 0 .8em;padding-bottom:8px;border-bottom:1px solid var(--line)}.resume .row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:1.4em;flex-wrap:wrap}.resume .row .left{flex:1;min-width:260px}.resume .row .right{color:var(--ink-faint);font-size:.9rem;text-align:right;font-variant-numeric:tabular-nums}.resume .role{color:var(--ink);font-weight:600;font-size:1.02rem}.resume .org{color:var(--ink-dim)}.resume ul{margin-top:8px;color:var(--ink-dim);font-size:.96rem}.resume .intro{padding:40px 0 8px}.resume .intro h1{margin-bottom:.3em}.resume .intro .lede{color:var(--ink-dim);font-size:1.05rem}.resume .download{display:inline-block;margin-top:14px;font-size:.9rem;color:var(--ink);text-decoration:none;border:1px solid var(--line);padding:9px 18px;border-radius:999px;transition:border-color .2s ease,color .2s ease}.resume .download:hover{border-color:var(--accent);color:var(--accent)}.pill{display:inline-block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent);padding:2px 9px;border-radius:999px;font-weight:600;margin-left:6px;vertical-align:middle}.empty{color:var(--ink-faint);padding:40px 0;font-style:italic}
