: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}*{box-sizing:border-box;margin:0;padding:0}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html,body{overflow-x:clip}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:inherit;text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-thickness .15s,opacity .2s}a:hover,a:focus-visible{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--color-ink);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:opacity .2s;display:flex}.link-list:has(.link-row:is(:hover,:focus-visible)) .link-row{opacity:.35}.link-list:has(.link-row:is(:hover,:focus-visible)) .link-row:is(:hover,:focus-visible){opacity:1}.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:is(:hover,:focus-visible) svg{color:var(--color-ink);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}}}
