html:root{
--bg:#f3f5f8;--surface:#fff;--surface-2:#f7f9fb;--surface-3:#eef1f5;--ink:#16202e;--ink-2:#4a5566;--muted:#6b7686;--faint:#8a94a3;
--line:#dde3ea;--line-strong:#c4ccd7;--brand:#fff;--brand-ink:#16202e;
--accent:#0b6e69;--accent-2:#095a56;--accent-ink:#fff;--accent-soft:#e2f2f0;--focus:#2b7fff;
--ok-bg:#e3f5e7;--ok-ink:#146c2e;--ok-line:#b7e4c4;--ok-bar:#23864a;
--warn-bg:#fff3d6;--warn-ink:#7a5000;--warn-line:#f1d98a;--chg-bar:#c98a00;
--err-bg:#fde8e8;--err-ink:#a11d1d;--err-line:#f3bcbc;--err-bar:#c92f2f;
--typ-bg:#efe7fd;--typ-ink:#5a2fb0;--typ-bar:#7c4ddb;
--f-body:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
--f-display:"IBM Plex Sans Condensed","IBM Plex Sans","Arial Narrow",system-ui,sans-serif;
--f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
--strong:var(--ink);--danger:var(--err-ink);--danger-soft:var(--err-bg);--warn:var(--warn-ink);--warn-soft:var(--warn-bg);
--sans:var(--f-body);--mono:var(--f-mono);--shadow:0 1px 3px rgba(22,32,46,.06);
color-scheme:light}
html:root[data-theme="dark"]{
--bg:#0e141c;--surface:#151d28;--surface-2:#1a2330;--surface-3:#212c3b;--ink:#e6ebf2;--ink-2:#b4bfcd;--muted:#8c98a8;--faint:#6f7b8c;
--line:#283343;--line-strong:#37445a;--brand:#151d28;--brand-ink:#eef2f7;
--accent:#3cc2b8;--accent-2:#5fd3ca;--accent-ink:#062422;--accent-soft:#123331;--focus:#6aa8ff;
--ok-bg:#15321f;--ok-ink:#9fe3b1;--ok-line:#23533a;--ok-bar:#45c46b;
--warn-bg:#3a2d0d;--warn-ink:#ffd88a;--warn-line:#5c4b0e;--chg-bar:#f0b429;
--err-bg:#3a1a1d;--err-ink:#ffb3b3;--err-line:#5a2529;--err-bar:#ef5b5b;
--typ-bg:#2b2045;--typ-ink:#cdb6ff;--typ-bar:#9b74f0;--shadow:none;
color-scheme:dark}
@media (prefers-color-scheme:dark){html:root[data-theme="auto"]{
--bg:#0e141c;--surface:#151d28;--surface-2:#1a2330;--surface-3:#212c3b;--ink:#e6ebf2;--ink-2:#b4bfcd;--muted:#8c98a8;--faint:#6f7b8c;
--line:#283343;--line-strong:#37445a;--brand:#151d28;--brand-ink:#eef2f7;
--accent:#3cc2b8;--accent-2:#5fd3ca;--accent-ink:#062422;--accent-soft:#123331;--focus:#6aa8ff;
--ok-bg:#15321f;--ok-ink:#9fe3b1;--ok-line:#23533a;--ok-bar:#45c46b;
--warn-bg:#3a2d0d;--warn-ink:#ffd88a;--warn-line:#5c4b0e;--chg-bar:#f0b429;
--err-bg:#3a1a1d;--err-ink:#ffb3b3;--err-line:#5a2529;--err-bar:#ef5b5b;
--typ-bg:#2b2045;--typ-ink:#cdb6ff;--typ-bar:#9b74f0;--shadow:none;
color-scheme:dark}}
html{-webkit-text-size-adjust:100%}
html body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.55}
html body button,html body input,html body select,html body textarea{font-family:inherit}
html body textarea,html body pre,html body code{font-family:var(--f-mono)}
html body :focus-visible{outline:2px solid var(--focus);outline-offset:2px}
html body a{color:var(--accent)}
.topbar{background:var(--brand);color:var(--brand-ink);border-bottom:1px solid var(--line);box-shadow:0 1px 3px rgba(22,32,46,.05)}
.topbar-in{max-width:1320px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap}
.topbar .brand{display:flex;align-items:center;gap:10px;color:var(--brand-ink);text-decoration:none;font-size:inherit;font-weight:inherit}
.topbar .brand img{height:34px;width:auto;display:block;border-radius:4px}
.brand-word{font:600 20px/1 var(--f-display);letter-spacing:.01em}
.topnav{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:14px}
html body .topnav a{color:var(--brand-ink);opacity:.85;text-decoration:none}
html body .topnav a:hover{opacity:1;text-decoration:underline}
.theme-switch{display:inline-flex;border:1px solid var(--line-strong);border-radius:99px;padding:2px;background:var(--surface-2)}
html body .theme-switch button{appearance:none;border:0;background:none;color:var(--ink-2);font-size:13px;font-weight:400;padding:4px 10px;margin:0;width:auto;border-radius:99px;cursor:pointer;line-height:1.3;box-shadow:none;transition:none}
html body .theme-switch button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line-strong);font-weight:600}
html body .theme-switch button:hover{color:var(--ink)}
.tp-coffee img{height:36px;width:auto;display:block}
html body .coffee-text{display:inline-block;padding:6px 12px;border-radius:6px;background:#fd0;color:#1a1a1a;opacity:1;font-weight:600}
@media (max-width:760px){.topnav a.tp-x{display:none}.theme-switch button{padding:4px 8px}}
html body .crumbs{font-size:13px;color:var(--muted);margin:0 0 8px}
html body .crumbs a{color:var(--muted)}
html body h1{font:600 clamp(28px,4.2vw,38px)/1.1 var(--f-display);letter-spacing:-.01em;margin:0 0 10px;color:var(--ink);text-wrap:balance}
html body h2{font-family:var(--f-display);letter-spacing:-.005em;color:var(--ink)}
html body h1+p,html body .intro,html body .subtitle{font-size:16px;line-height:1.5;color:var(--ink-2);max-width:70ch}
html body .privacy,html body .privacy-note,html body .notice{border-radius:8px;padding:10px 14px;font-size:14px}
html body .card{border-radius:10px;box-shadow:none}
html body .card.dragover{border-color:var(--accent);background:var(--accent-soft)}
html body button{border-radius:8px}
html body input[type=file]{font-size:14px;color:var(--ink-2);max-width:100%}
html body input[type=file]::file-selector-button{font:600 14px/1.2 var(--f-body);background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:9px 16px;margin-right:12px;cursor:pointer}
html body input[type=range]{accent-color:var(--accent)}
html body input[type=checkbox],html body input[type=radio]{accent-color:var(--accent)}
html body input[type=text],html body input[type=password],html body input[type=number],html body select,html body textarea{background:var(--surface);color:var(--ink);border-color:var(--line-strong);border-radius:8px}
html body footer,html body .footer{color:var(--muted)}
html body{max-width:none;padding:0}
.tp-main{max-width:680px;margin:32px auto;padding:0 20px}
@media (max-width:760px){.theme-switch button span{display:none}.tp-coffee img{height:30px}.topbar-in{flex-wrap:nowrap;gap:8px}.topnav{gap:8px 10px;justify-content:flex-end}.topnav>*{white-space:nowrap}.topbar .brand img{height:30px}}
