:root{--bg:#f7f7f4;--panel:#fff;--panel-soft:#fbfbf8;--ink:#111;--muted:#6f6f68;--line:#e3e3dc;--brand:#111;--brand-dark:#111;--primary-bg:#111;--primary-text:#fff;--accent:#4d4d47;--accent-soft:#eeeeea;--mark:#eeeeea;--mark-border:#9b9b93;--hero-start:#fff;--chip-bg:#fbfbf8;--blue:#5d6f8f;--green:#5f7f6a;--shadow:0 14px 34px #1111110e;--shadow-soft:0 1px 0 #1111110a;--text-xs:.78rem;--text-sm:.88rem;--text-md:1rem;--text-lg:1.08rem;--text-xl:1.22rem;--text-2xl:1.72rem;--text-hero:clamp(2.2rem, 4.4vw, 4rem);--weight-regular:400;--weight-medium:500;--weight-semibold:560;--weight-strong:600}:root[data-theme=dark]{--bg:#0f0f0f;--panel:#171717;--panel-soft:#141414;--ink:#f4f4f1;--muted:#a4a49c;--line:#2b2b29;--brand:#f4f4f1;--brand-dark:#f4f4f1;--primary-bg:#f4f4f1;--primary-text:#111;--accent:#c7c7be;--accent-soft:#20201e;--mark:#232320;--mark-border:#77776f;--hero-start:#141414;--chip-bg:#131313;--blue:#8d9dbc;--green:#8baa93;--shadow:0 18px 44px #00000052;--shadow-soft:0 1px 0 #ffffff0a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-optical-sizing:auto;font-feature-settings:"ss01" 1, "cv01" 1, "cv11" 1;margin:0;font-family:Geist,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.55;transition:background-color .16s,color .16s}a{color:inherit}button,select{font:inherit}.shell{width:min(1120px,100% - 32px);margin:0 auto}.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 90%, transparent);backdrop-filter:blur(18px);z-index:30;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:18px;min-height:64px;display:flex}.brand{font-weight:var(--weight-semibold);letter-spacing:-.01em;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid var(--line);background:var(--primary-bg);width:34px;height:34px;color:var(--primary-text);font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs);letter-spacing:0;border-radius:7px;place-items:center;display:grid}:root[data-theme=dark] .brand-mark{background:var(--primary-bg);color:var(--primary-text)}.nav{color:var(--muted);font-size:var(--text-sm);font-weight:var(--weight-medium);align-items:center;gap:16px;display:flex}code,kbd,pre{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.nav a{text-decoration:none}.button{border:1px solid var(--primary-bg);background:var(--primary-bg);min-height:42px;color:var(--primary-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-radius:7px;justify-content:center;align-items:center;padding:0 16px;text-decoration:none;display:inline-flex}.button.secondary{border-color:var(--line);background:color-mix(in srgb, var(--panel) 88%, var(--bg));color:var(--ink)}.theme-toggle{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 88%, var(--bg));min-height:38px;color:var(--ink);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border-radius:7px;padding:0 12px}.menu-shell{position:relative}.menu-button{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 88%, var(--bg));width:39px;height:39px;color:var(--ink);cursor:pointer;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:inline-flex}.menu-button span{background:currentColor;border-radius:99px;width:16px;height:1.5px;display:block}.menu-panel{border:1px solid var(--line);background:var(--panel);min-width:190px;box-shadow:var(--shadow);border-radius:9px;display:none;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden}.menu-button[aria-expanded=true]+.menu-panel{display:grid}.menu-panel a{color:var(--ink);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:11px 13px;text-decoration:none}.menu-panel a:hover{background:var(--accent-soft)}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);padding:22px 0 26px}.site-footer p{margin:0}@media (width<=720px){.shell{width:min(100% - 24px,1120px)}.brand span:not(.brand-mark){display:none}.nav{font-size:var(--text-sm);gap:10px}.nav>a:not(.button){display:none}}@media (orientation:landscape) and (height<=520px){.topbar{display:none}}
