:root, body.has-shell {
  color-scheme: dark;
  --paper: #101014;
  --surface: #18181e;
  --sheet: #18181e;
  --ink: #f4f3f7;
  --muted: #9a97a8;
  --line: #2a2833;
  --accent: #8b7cf6;
  --accent-2: #b3a7ff;
  --dark: #0a0a0d;
  --dark-2: #141419;
  --on-accent: #14101f;
  --breaking: #e0483a;
  --focus: #8b7cf6;
  --display: "Outfit", "Segoe UI", sans-serif;
  --body: "Newsreader", Georgia, serif;
  --utility: "Outfit", "Segoe UI", sans-serif;
  --serif: "Newsreader", Georgia, serif;
  --sans: "Outfit", "Segoe UI", sans-serif;
  --radius: 20px;
  --max: 1180px;
  --heading-transform: uppercase;
  --heading-style: normal;
  --display-size: clamp(2.7rem, 4.4vw, 4.6rem);
  --title-size: clamp(2rem, 2.6vw, 3.1rem);
  --body-size: 1.125rem;
  --body-leading: 1.65;
  --section-space: 6.25rem;
  --grid-gap: 1.75rem;
  --hero-pad: 4.5rem 0 5rem;
  --hero-gap: 4rem;
  --shell-gutter: 3rem;
  --card-title: 1.4rem;
  --story-measure: 42rem;
  --button-radius: 999px;
  --button-weight: 700;
  --button-transform: none;
  --button-tracking: 0.04em;
  --button-padding: 0.65rem 1.05rem;
  --button-primary-bg: var(--ink);
  --button-primary-color: var(--paper);
  --button-primary-border: var(--ink);
  --button-secondary-bg: transparent;
  --button-secondary-color: var(--ink);
  --button-secondary-border: var(--line);
  --widget-radius: var(--radius);
  --widget-padding: 1.25rem 1.35rem;
  --widget-shadow: none;
  --widget-title-case: none;
  --widget-bg: var(--surface);
  --widget-border: var(--line);
  --canvas: #101014;
  --rail: #0a0a0d;
  --rail-text: #f4f3f7;
  --rail-muted: #9a97a8;
  --rail-current: #8b7cf6;
  --topbar: #18181e;
  --paper-0: #101014;
  --ink-0: #f4f3f7;
  --broadcast-bg: #0a0a0d;
  --broadcast-ink: #f4f3f7;
}
body.has-shell[data-mode="dark"] {
  color-scheme: dark;
  --paper: var(--dark);
  --surface: color-mix(in srgb, var(--dark) 86%, var(--paper-0));
  --sheet: var(--surface);
  --ink: var(--paper-0);
  --muted: color-mix(in srgb, var(--paper-0) 70%, var(--dark));
  --line: color-mix(in srgb, var(--paper-0) 28%, var(--dark));
  --canvas: var(--dark);
  --topbar: color-mix(in srgb, var(--dark) 90%, var(--paper-0));
  --rail: var(--dark);
  --rail-text: var(--paper-0);
  --rail-muted: color-mix(in srgb, var(--paper-0) 65%, var(--dark));
}
body.has-shell[data-mode="light"] {
  color-scheme: light;
  --paper: var(--ink-0);
  --surface: color-mix(in srgb, var(--ink-0) 92%, var(--paper-0));
  --sheet: var(--surface);
  --ink: var(--paper-0);
  --muted: color-mix(in srgb, var(--paper-0) 55%, var(--ink-0));
  --line: color-mix(in srgb, var(--paper-0) 22%, var(--ink-0));
  --canvas: var(--ink-0);
  --topbar: var(--ink-0);
  --rail: var(--paper-0);
  --rail-text: var(--ink-0);
  --rail-muted: color-mix(in srgb, var(--ink-0) 72%, var(--paper-0));
}
body.has-shell button:not(.menu-button):not(.nav-menu-button):not(.edit-handle):not(.edit-toggle):not(.edit-remove):not(.link-button):not(.widget-tile):not(.shell-toggle):not(.shell-backdrop):not(.figure-remove):not(.theme-choice):not(.wx-move):not(.wx-handle):not(.player-btn):not(.button-secondary):not(.dock-gear-button),
body.has-shell .button,
body.has-shell .module-button,
body.has-shell .rss-button,
body.has-shell .social-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: var(--button-padding);
  border: 1px solid var(--button-primary-border);
  border-radius: var(--button-radius);
  background: var(--button-primary-bg);
  color: var(--button-primary-color);
  font-family: var(--utility), sans-serif;
  font-weight: var(--button-weight);
  letter-spacing: var(--button-tracking);
  text-transform: var(--button-transform);
  text-decoration: none;
  line-height: 1.2;
  cursor: pointer;
}
body.has-shell .button-secondary,
body.has-shell .rss-button,
body.has-shell .social-button {
  background: var(--button-secondary-bg);
  color: var(--button-secondary-color);
  border-color: var(--button-secondary-border);
}
body.has-shell button:not(.menu-button):not(.nav-menu-button):not(.edit-handle):not(.edit-toggle):not(.edit-remove):not(.link-button):not(.widget-tile):not(.shell-toggle):not(.shell-backdrop):not(.figure-remove):not(.theme-choice):not(.wx-move):not(.wx-handle):not(.player-btn):not(.button-secondary):not(.dock-gear-button):hover,
body.has-shell .button:hover,
body.has-shell .module-button:hover {
  filter: brightness(1.08);
}
body.has-shell .button-secondary:hover,
body.has-shell .rss-button:hover,
body.has-shell .social-button:hover {
  filter: none;
  background: color-mix(in srgb, var(--button-secondary-color) 10%, var(--button-secondary-bg));
  color: var(--button-secondary-color);
}
body.has-shell .link-button,
body.has-shell button.link-button {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--accent);
  font-family: var(--utility), sans-serif;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  cursor: pointer;
}
body.has-shell .icon {
  width: 1em;
  height: 1em;
  flex: none;
  display: block;
  fill: currentColor;
}
body.has-shell a[target="_blank"]:not(:has(.icon))::after,
body.has-shell a.button:not(:has(.icon))::before,
body.has-shell a.edit-launch:not(:has(.icon))::before {
  content: "";
  width: 0.9em;
  height: 0.9em;
  flex: none;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M14 3h7v7h-2V6.41l-9.29 9.3-1.42-1.42 9.3-9.29H14V3zM5 5h6v2H7v10h10v-4h2v6H5V5z'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M14 3h7v7h-2V6.41l-9.29 9.3-1.42-1.42 9.3-9.29H14V3zM5 5h6v2H7v10h10v-4h2v6H5V5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.has-shell a[target="_blank"]:not(:has(.icon))::after { display: inline-block; margin-left: 0.28em; vertical-align: -0.1em; }
body.has-shell a.button:not(:has(.icon))::before,
body.has-shell a.edit-launch:not(:has(.icon))::before { display: block; }
body.has-shell .module {
  padding: var(--widget-padding);
  background: var(--widget-bg);
  border-color: var(--widget-border);
  border-radius: var(--widget-radius);
  box-shadow: var(--widget-shadow);
}
body.has-shell .module h2 { text-transform: var(--widget-title-case); }
/* The 62 — Obsidian theme */
:root { color-scheme: dark; }
body {
  background:
    radial-gradient(1100px 520px at 50% -8%, rgba(139,124,246,.09), transparent 62%),
    radial-gradient(900px 500px at 85% 110%, rgba(139,124,246,.05), transparent 60%),
    var(--paper);
}
.topline {
  background: rgba(10,10,13,.72);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(10px);
}
.hero-logo {
  max-width: 300px;
  filter: drop-shadow(0 12px 30px rgba(0,0,0,.65));
}
.wordmark { letter-spacing: .1em; }
.tagline { color: var(--accent2); }
.ticker {
  background: linear-gradient(180deg, #141419, #0e0e12);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.story-card,
.module,
.show,
.principle,
.comments,
.coverage {
  background: linear-gradient(145deg, #1b1b22, #121217);
  border: 1px solid rgba(139,124,246,.18);
  border-radius: var(--radius);
  box-shadow: 10px 10px 26px rgba(0,0,0,.55), -6px -6px 16px rgba(179,167,255,.05);
}
.module-callout {
  background: linear-gradient(145deg, #1e1b2e, #151422);
  border: 1px solid rgba(139,124,246,.42);
  border-radius: var(--radius);
  box-shadow: 10px 10px 26px rgba(0,0,0,.55), -6px -6px 16px rgba(179,167,255,.07), inset 0 0 24px rgba(139,124,246,.08);
}
.kicker { color: var(--accent2); }
.button, .button-secondary { border-radius: 999px; }
.launch { border-top: 1px solid var(--line); }
.site-footer { background: var(--dark); border-top: 1px solid var(--line); }

