:root, [data-theme="current"] {
  --black: #121212;
  --white: #ffffff;
  --neutral-700: #201f24;
  --neutral-600: #39383c;
  --neutral-500: #545356;
  --neutral-400: #707072;
  --neutral-300: #8e8d90;
  --neutral-200: #adadae;
  --neutral-100: #dbdbdc;
  --neutral-50: #f5f5f5;
  --primary-700: #393987;
  --primary-600: #39399b;
  --primary-500: #4848ba;
  --primary-400: #5c5ce8;
  --primary-300: #7f7ff4;
  --primary-200: #95a5ff;
  --primary-100: #c7cfff;
  --primary-50: #ebeeff;
  --aux-700: #015b6a;
  --aux-600: #adfcb9;
  --aux-500: #c8ffd0;
  --aux-400: #d5ffdb;
  --aux-300: #e3ffe7;
  --aux-200: #ebffee;
  --aux-100: #f1fff3;
  --aux-50: #f5fff7;
  --brand-indigo: var(--primary-600);
  --brand-cyan: var(--aux-600);
  --text-heading: var(--neutral-700);
  --text-body: var(--neutral-600);
  --text-muted: var(--neutral-400);
  --text-inverse: var(--white);
  --text-on-accent: var(--aux-700);
  --text-link: var(--primary-600);
  --surface-page: var(--white);
  --surface-subtle: var(--neutral-50);
  --surface-card: var(--white);
  --surface-brand: var(--primary-600);
  --surface-brand-soft: var(--primary-50);
  --surface-accent: var(--aux-600);
  --surface-accent-soft: var(--aux-100);
  --border-default: var(--neutral-100);
  --border-strong: var(--neutral-200);
  --border-brand: var(--primary-600);
  --action-primary: var(--primary-600);
  --action-primary-hover: var(--primary-700);
  --action-primary-active: var(--primary-700);
  --action-accent: var(--aux-600);
  --action-accent-hover: var(--aux-500);
  --success: #1e8e3e;
  --warning: #b7791f;
  --danger: #c62828;
  --info: var(--primary-500);
  --shadow-none: none;
  --shadow-xs: 0 1px 2px rgba(18,18,18,.06);
  --shadow-sm: 0 2px 6px rgba(18,18,18,.08);
  --shadow-md: 0 8px 24px rgba(57,57,155,.10);
  --shadow-lg: 0 16px 48px rgba(57,57,155,.14);
}[data-theme="modern"] {
  --brand-indigo: var(--primary-600);
  --brand-cyan: var(--aux-600);
  --text-heading: #14142b;
  --text-body: #3b3b52;
  --text-muted: #6e6e87;
  --text-inverse: var(--white);
  --text-on-accent: var(--aux-700);
  --text-link: var(--primary-600);
  --surface-page: #fafafe;
  --surface-subtle: #f1f2fa;
  --surface-card: #ffffff;
  --surface-brand: #2a2a7a;
  --surface-brand-soft: #ebeeff;
  --surface-accent: var(--aux-600);
  --surface-accent-soft: var(--aux-100);
  --border-default: rgba(20,20,43,.08);
  --border-strong: rgba(20,20,43,.16);
  --border-brand: var(--primary-600);
  --action-primary: #4848ba;
  --action-primary-hover: #39399b;
  --action-primary-active: #393987;
  --action-accent: var(--aux-600);
  --action-accent-hover: var(--aux-500);
  --info: var(--primary-500);
  --shadow-xs: 0 1px 2px rgba(20,20,43,.04),0 0 0 1px rgba(20,20,43,.05);
  --shadow-sm: 0 4px 12px rgba(20,20,43,.06),0 0 0 1px rgba(20,20,43,.05);
  --shadow-md: 0 12px 32px rgba(57,57,155,.12);
}:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 999px;
  --font-heading: 'Ubuntu',system-ui,sans-serif;
  --font-body: 'Open Sans',system-ui,sans-serif;
  --font-mono: 'Ubuntu Mono',ui-monospace,monospace;
}
:root{--g-bg:#fff;--g-ink:#171717;--g-dim:#525252;--g-mute:#707072;--g-line:#E5E5E5;--g-line-2:#C7CFFF;--g-panel:linear-gradient(160deg,#fff,#F3F4FB);--g-card:linear-gradient(160deg,#fff,#F3F4FB);
--g-brand:#39399B;--g-on-brand:#fff;--g-accent:#ADFCB9;--g-on-accent:#015B6A;--g-accent-text:#39399B;--g-link:#39399B;--g-eyebrow:#39399B;--g-code-bg:#F5F5F5;--g-pre:#121212;--g-frame:#fff;
--g-nav:#39399B;--g-nav-ink:#fff;--g-nav-dim:#fff;--g-nav-line:#ffffff40;--g-display:Ubuntu,system-ui,sans-serif;--g-body:Ubuntu,system-ui,sans-serif;--g-mono:'Ubuntu Mono',monospace;--g-hw:500;--g-lead-w:300;
--g-texture:radial-gradient(700px 420px at 92% 0,#C7CFFF80,transparent 70%),radial-gradient(600px 400px at 0 100%,#ADFCB933,transparent 70%),radial-gradient(#39399B1f 1.2px,transparent 1.6px);--g-texture-size:auto,auto,22px 22px}
header nav a:hover{text-decoration:underline}.cta.acc{font-weight:500}

*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--g-bg);color:var(--g-ink);font:400 16px/1.65 var(--g-body);-webkit-font-smoothing:antialiased;min-height:100vh;background-image:var(--g-texture);background-size:var(--g-texture-size)}
a{color:var(--g-link)}a:focus-visible,button:focus-visible{outline:2px solid var(--g-brand);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}main.wrap.wide{max-width:1320px}
header.top{border-bottom:1px solid var(--g-line);background:var(--g-nav);backdrop-filter:blur(10px);position:sticky;top:0;z-index:5;color:var(--g-nav-ink)}
header.top .wrap{display:flex;align-items:center;gap:16px;min-height:64px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:var(--g-nav-ink);text-decoration:none}.brand img{height:30px;width:auto;display:block}
.tag{font:500 11px var(--g-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--g-nav-dim);border:1px solid var(--g-nav-line);border-radius:999px;padding:3px 10px}
header nav{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap}header nav a{color:var(--g-nav-dim);text-decoration:none;font-weight:500;font-size:14px}header nav a:hover{color:var(--g-nav-ink)}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--g-nav-line);color:var(--g-nav-ink);border-radius:999px;padding:6px 14px;font:500 13px var(--g-body)}
@media (max-width:860px){.burger{display:block}header nav{display:none;width:100%;flex-direction:column;gap:0;padding:0 0 12px}header nav a{padding:10px 0;border-top:1px solid var(--g-nav-line)}body.nav-open header nav{display:flex}}
main.wrap{padding-top:48px;padding-bottom:72px}
.eyebrow{display:inline-block;font:500 12px var(--g-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--g-eyebrow)}.eyebrow a{color:inherit}
h1,h2,h3,h4{font-family:var(--g-display);letter-spacing:-.02em;line-height:1.12;margin:.5em 0 .4em;font-weight:var(--g-hw)}
h1{font-size:clamp(34px,5.4vw,64px)}h1 .acc{color:var(--g-accent-text)}
h2{font-size:clamp(24px,3vw,32px);margin-top:1.6em}h3{font-size:20px}
.lead{font-size:19px;color:var(--g-dim);max-width:780px;font-weight:var(--g-lead-w)}
.hero{position:relative;padding:40px 0 16px}
.panel{border:1px solid var(--g-line);border-radius:20px;background:var(--g-panel);padding:26px 28px;margin:22px 0}
.panel p{margin:.4em 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.card{display:flex;flex-direction:column;gap:4px;background:var(--g-card);border:1px solid var(--g-line);border-radius:18px;padding:18px 20px;color:var(--g-ink);text-decoration:none;min-width:0}
a.card:hover{border-color:var(--g-brand)}
.card b{font-family:var(--g-display);font-size:18px;font-weight:var(--g-hw);letter-spacing:-.01em}.card span{color:var(--g-dim);font-size:14px}.card em{font-style:normal;color:var(--g-mute);font-size:12px;overflow-wrap:anywhere}
.mono,code{font-family:var(--g-mono);font-size:.88em}
code{background:var(--g-code-bg);border-radius:6px;padding:1px 6px;overflow-wrap:anywhere}
pre{background:var(--g-pre);color:#F3F3F6;border-radius:16px;padding:18px 20px;overflow:auto;font:13px/1.6 var(--g-mono);border:1px solid var(--g-line)}pre code{background:none;padding:0;color:inherit;overflow-wrap:normal}
.cta{display:inline-flex;align-items:center;gap:10px;background:var(--g-brand);color:var(--g-on-brand);border-radius:999px;padding:11px 22px;font-weight:500;text-decoration:none;border:1px solid var(--g-brand)}
.cta:after{content:"\2192"}.cta.ghost{background:transparent;color:var(--g-ink);border:1px solid var(--g-line-2)}.cta.acc{background:var(--g-accent);border-color:var(--g-accent);color:var(--g-on-accent)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:18px 0}
table{border-collapse:collapse;width:100%;font-size:15px;background:var(--g-card);border:1px solid var(--g-line)}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--g-line);vertical-align:top}th{font:500 12px var(--g-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--g-dim)}
.md{max-width:920px}.md table{display:block;overflow-x:auto}.md img{max-width:100%;height:auto}.md hr{border:0;border-top:1px solid var(--g-line);margin:40px 0}
.frame{border:1px solid var(--g-line);border-radius:18px;overflow:hidden;background:var(--g-frame);margin:18px 0}.frame iframe{display:block;width:100%;border:0}
.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px}
.shots figure{margin:0}.shots img{width:100%;height:auto;border-radius:12px;border:1px solid var(--g-line);display:block;background:var(--g-frame)}
.shots figcaption{display:flex;flex-direction:column;font-size:13px;padding-top:8px}.shots figcaption b{font-size:12px;color:var(--g-ink)}.shots figcaption span{color:var(--g-dim)}.shots .fm{font:11px var(--g-mono);color:var(--g-mute)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font:500 12px var(--g-mono);border:1px solid var(--g-line-2);border-radius:999px;padding:4px 12px;color:var(--g-ink)}
.swatches{display:flex;flex-wrap:wrap;gap:10px}.sw{width:120px;font:12px var(--g-mono);color:var(--g-dim)}.sw i{display:block;height:56px;border-radius:12px;border:1px solid var(--g-line);margin-bottom:6px}
footer.foot{border-top:1px solid var(--g-line);padding:26px 0 40px;color:var(--g-dim);font-size:14px}
footer.foot .wrap{display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between}footer.foot .links{display:flex;gap:16px;flex-wrap:wrap}footer.foot a{color:var(--g-dim)}
@media (max-width:600px){.wrap{padding:0 18px}main.wrap{padding-top:28px}.lead{font-size:17px}.shots{grid-template-columns:repeat(2,1fr);gap:12px}}
