:root{color-scheme:light;--ink: #151515;--soft-ink: #5f5f5f;--quiet: #8d8d8d;--hover: #444444;--page: #ffffff;--line: rgb(0 0 0 / .12);--grain: rgb(0 0 0 / .018)}:root[data-theme=dark]{color-scheme:dark;--ink: #eeeeee;--soft-ink: #b8b8b8;--quiet: #8f8f8f;--hover: #ffffff;--page: #101010;--line: rgb(255 255 255 / .14);--grain: rgb(255 255 255 / .018)}*{box-sizing:border-box}html{background:var(--page);font-family:ui-rounded,Avenir Next,Segoe UI,system-ui,sans-serif;scroll-behavior:smooth}body{min-height:100vh;margin:0;color:var(--ink);background:radial-gradient(circle at 24px 24px,var(--grain) 1px,transparent 1px) 0 0 / 36px 36px,var(--page);transition:color .18s ease,background-color .18s ease}a{color:inherit;text-decoration:none}.page-shell,.nav{width:min(710px,calc(100vw - 48px))}.page-shell{margin:0 auto;padding:250px 0 120px}.nav{position:fixed;top:28px;left:50%;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:32px;margin:0;transform:translate(-50%)}.nav-left,.nav-right{display:flex;align-items:center;gap:22px}.icon-link,.text-link{color:var(--soft-ink);transition:color .16s ease,transform .16s ease}.icon-link{display:inline-grid;width:28px;height:28px;place-items:center}.icon-link svg{width:22px;height:22px}.icon-link .brand-github{width:26px;height:26px}.icon-link:hover,.text-link:hover,.icon-link:focus-visible,.text-link:focus-visible{color:var(--ink);transform:translateY(-1px)}.active{color:var(--hover)}h1,h2,h3,p,ul{margin:0;font-weight:400;letter-spacing:0}h1,h2,h3,p,li{font-size:1.13rem;line-height:1.55}h1,h3,strong{color:var(--ink)}.intro{margin-bottom:26px}.intro p,.section h2,.muted,li{color:var(--soft-ink)}.section{margin-top:25px}.section-spaced{margin-top:42px}ul{display:grid;gap:8px;padding-left:24px;margin-top:14px}li::marker{color:var(--quiet);font-size:.72em}.project-feature,.quiet-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.project-feature p,.quiet-panel p,.project-notes,.work-list li{color:var(--quiet)}.quiet-panel p+p{margin-top:10px}.work-intro{color:var(--soft-ink)}.work-list{margin-top:18px}.project-notes{gap:6px;margin-top:12px}.icon-row,.work-links{display:flex;gap:16px;align-items:center;margin-top:16px}.content-icon-link{display:inline-grid;width:30px;height:30px;place-items:center;color:var(--soft-ink);transition:color .16s ease,transform .16s ease}.content-icon-link svg{width:23px;height:23px}.content-icon-link .brand-github{width:26px;height:26px}.content-icon-link:hover,.content-icon-link:focus-visible{color:var(--ink);transform:translateY(-1px)}.meta-row{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;color:var(--quiet);font-size:.86rem;line-height:1.4}.inline-link,.project-link{color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink) 22%,transparent);text-underline-offset:4px;transition:color .16s ease,text-decoration-color .16s ease}.inline-link:hover,.project-link:hover,.inline-link:focus-visible,.project-link:focus-visible{text-decoration-color:currentColor}.project-link{display:inline-flex;align-items:center;gap:6px;margin-top:4px}.timeline-links{display:inline-flex;align-items:baseline;gap:6px;margin-left:8px;color:var(--quiet);white-space:nowrap}.theme-toggle{position:fixed;right:clamp(18px,2vw,30px);bottom:clamp(18px,2vw,30px);display:inline-grid;width:42px;height:42px;padding:0;place-items:center;color:var(--soft-ink);background:transparent;border:0;border-radius:999px;cursor:pointer;transition:color .16s ease,transform .16s ease,background-color .16s ease}.theme-toggle:hover,.theme-toggle:focus-visible{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent);transform:translateY(-1px)}.sun-icon{display:none}:root[data-theme=dark] .moon-icon{display:none}:root[data-theme=dark] .sun-icon{display:block}@media(max-width:760px){.page-shell,.nav{width:min(100% - 36px,560px)}.page-shell{padding:126px 0 84px}.nav{top:22px;align-items:flex-start}.nav-left,.nav-right{gap:15px;flex-wrap:wrap}.nav-right{justify-content:flex-end}.icon-link{width:28px;height:28px}.icon-link svg{width:22px;height:22px}.icon-link .brand-github{width:26px;height:26px}h1,h2,h3,p,li{font-size:1.04rem;line-height:1.55}.section{margin-top:25px}ul{gap:8px;padding-left:22px;margin-top:14px}}@media(max-width:480px){.nav{display:grid;grid-template-columns:1fr;gap:22px}.nav-right{justify-content:flex-start}}
