
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('/assets/fonts/space-grotesk-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('/assets/fonts/space-grotesk-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('/assets/fonts/jetbrains-mono-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('/assets/fonts/jetbrains-mono-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root,
:root:not([data-theme="light"]),
:root[data-theme="light"],
:root[data-theme="dark"] {
  color-scheme: dark;

  --color-paper: #0a0e1a;
  --color-surface: #0f1424;
  --color-panel: #141a2e;
  --color-notice: #0f2227;

  --color-ink: #e8ecf4;
  --color-muted: #a3b0c4;
  --color-on-accent: #04121a;

  --color-rule: #2a3350;
  --color-field-border: #6b7a96;
  --color-accent: #30bfb4;
  --color-accent-strong: #5fd6cc;
  --color-focus: #ffd84d;

  --color-error: #ffb3a7;
  --color-error-bg: #2a1a1d;
  --color-success: #7fd6a0;
  --color-success-bg: #142a20;

  --font-serif: 'Space Grotesk', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --font-sans: 'Space Grotesk', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --radius-1: 8px;
  --radius-2: 14px;
  --radius-3: 20px;
  --shadow-card: none;
  --tap-min: 44px;

  --fam-max: 73.75rem;
  --fam-link: #00d4ff;
  --fam-link-hover: #7fd3ff;
}

body { font-size: 1.0625rem; line-height: 1.6; }
.wrap { max-width: 73.75rem; }
a { color: #00d4ff; }
a:hover { color: #7fd3ff; }

h1, h2, h3 { font-weight: 700; }
h1 { letter-spacing: -0.02em; line-height: 1.05; }
h3 { font-weight: 600; }
.label { color: #30bfb4; }

.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(10, 14, 26, 0.96);
  border-bottom: 1px solid #2a3350;
}
.site-header .wrap { min-height: 4rem; padding-top: 0; padding-bottom: 0; }
.brand { color: #e8ecf4; font-family: var(--font-sans); font-size: 1rem; font-weight: 700; gap: var(--space-2); }
.brand svg { width: 20px; height: 19px; }
.brand svg path { fill: #30bfb4; }
.nav-links a, .nav-links summary { color: #e8ecf4; font-size: 1.0625rem; border-bottom: 0; border-radius: 8px; }
.nav-links a:hover, .nav-links summary:hover { color: #00d4ff; border-bottom: 0; }
.nav-links a[aria-current="page"], .nav-drop.has-current > summary { border-bottom: 0; box-shadow: inset 0 -3px 0 #30bfb4; }
.drop-menu { background: #0f1424; border: 1px solid #4a5878; border-radius: 14px; box-shadow: none; }
.drop-menu a:hover { background: #141a2e; }
.drop-menu a[aria-current="page"] { box-shadow: inset 3px 0 0 #30bfb4; }
.nav-cta, .menu-list .book {
  background: #30bfb4; color: #04121a; border-color: #30bfb4;
  border-radius: 14px; font-weight: 700; font-size: 1.0625rem;
}
.nav-cta:hover, .menu-list .book:hover { background: #5fd6cc; border-color: #5fd6cc; color: #04121a; }
.menu summary { border: 1px solid #8190a6; border-radius: 14px; color: #e8ecf4; font-size: 1.0625rem; }
.menu-list { background: #0f1424; border: 1px solid #4a5878; border-radius: 14px; box-shadow: none; }
.menu-list a, .menu-list .grp { color: #e8ecf4; font-size: 1.0625rem; }
.menu-list a:hover { background: #141a2e; }
.menu-list .grp { color: #8190a6; font-size: 0.75rem; letter-spacing: 0.08em; }
.skip { background: #ffd84d; color: #04121a; }

.button { background: #30bfb4; color: #04121a; border-color: #30bfb4; border-radius: 14px; font-weight: 700; }
.button:hover { background: #5fd6cc; border-color: #5fd6cc; color: #04121a; }
.button[disabled], .button[aria-disabled="true"] { background: #141a2e; color: #a3b0c4; border-color: #4a5878; }
.button-quiet { background: transparent; color: #00d4ff; border-color: #00d4ff; }
.button-quiet:hover { background: #141a2e; color: #7fd3ff; border-color: #7fd3ff; }
.door { background: #0f1424; border: 1px solid #2a3350; border-radius: 20px; box-shadow: none; }
.door:hover { border-color: #30bfb4; }
.door .door-title { color: #00d4ff; }
.figure-frame { background: #0f1424; border: 1px solid #2a3350; border-radius: 20px; box-shadow: none; }
.notice { border-radius: 0 14px 14px 0; }
.panel { border-top-color: #4a5878; }
.field input, .field textarea { background: #0f1424; color: #e8ecf4; border-color: #6b7a96; border-radius: 8px; }
.error-summary { border-radius: 14px; }
.tag { border-color: #8190a6; color: #a3b0c4; }

.tv-plate { border-radius: 14px; box-shadow: none; border-color: #2a3350; }
