:root{--bg:#fafafa;--surface:#fff;--ink:#111;--ink-muted:#666;--ink-faint:#767676;--accent:#d6367f;--accent-hover:#ad2264;--line:#e8e8e8;--accent-soft:#fdf2f7;--accent-border:#f9d3e4;--chip-shadow:#1111110a;--glow-strength:6%;--color-bg:var(--bg);--color-surface:var(--surface);--color-ink:var(--ink);--color-ink-soft:var(--ink-muted);--color-ink-faint:var(--ink-faint);--color-accent:var(--accent);--color-accent-deep:var(--accent-hover);--color-accent-soft:var(--accent-soft);--color-accent-border:var(--accent-border);--color-line:var(--line);--font-body:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--max-width:32rem;--max-width-wide:40rem;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f0f0f;--surface:#1a1a1a;--ink:#f2f2f2;--ink-muted:#a3a3a3;--ink-faint:#8a8a8a;--accent:#ef8ab8;--accent-hover:#f9a8c9;--line:#2e2e2e;--accent-soft:#2a1520;--accent-border:#5c2d42;--chip-shadow:#0003;--glow-strength:8%;color-scheme:dark}}*{box-sizing:border-box;margin:0;padding:0}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);isolation:isolate;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:1rem;line-height:1.6}body:before{background:radial-gradient(ellipse 110% 70% at 50% -25%, color-mix(in srgb, var(--accent) var(--glow-strength), transparent), transparent 58%);content:"";pointer-events:none;z-index:-1;position:fixed;inset:0}h1,h2,h3{font-family:var(--font-body);letter-spacing:-.025em;font-weight:600;line-height:1.25}img{max-width:100%;height:auto;display:block}a{color:var(--color-accent);text-underline-offset:3px;text-decoration:underline 1px}a:hover{color:var(--color-accent-deep)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:var(--color-accent-soft)}.container{max-width:var(--max-width);padding-inline:var(--space-6);width:100%;margin-inline:auto}.container.-wide{max-width:var(--max-width-wide)}.page{padding-block:var(--space-12)}@media (width>=768px){.page{padding-block:var(--space-16)}}.section{margin-top:var(--space-16)}.section-heading{color:var(--color-ink);letter-spacing:-.02em;margin-bottom:var(--space-4);font-size:1.125rem;font-weight:600}.link-list{list-style:none}.link-list li{border-bottom:1px solid var(--color-line)}.link-row{color:var(--color-ink);align-items:center;gap:var(--space-4);padding-block:var(--space-4);justify-content:space-between;text-decoration:none;transition:color .15s;display:flex}.link-row:hover,.link-row:focus-visible{color:var(--color-accent-deep)}.link-row span{flex:1;font-weight:500}.link-row svg{color:var(--color-ink-faint);flex-shrink:0;transition:color .15s,transform .15s}.link-row:hover svg,.link-row:focus-visible svg{color:var(--color-accent);transform:translate(2px)}.link-row.featured{background:var(--color-accent-soft);border:1px solid var(--color-accent-border);border-radius:var(--radius-md);margin-block:var(--space-2);padding-inline:var(--space-4)}.link-row.featured span{font-weight:600}.link-list li:has(.featured){border-bottom:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--color-surface);border:2px solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-ink);left:var(--space-4);padding:var(--space-2) var(--space-4);z-index:100;font-weight:600;text-decoration:none;position:absolute;top:-100%}.skip-link:focus{top:var(--space-4)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}html{scroll-behavior:auto}}@media (prefers-reduced-motion:no-preference){.reveal{animation:.6s both reveal view();animation-range:entry entry 30%}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
