/* Auto follows the OS without JavaScript. Explicit choices use the same tokens. */
:root {
  color-scheme: light;
  --bg: #f7f8fc; --panel: #ffffff; --ink: #202438; --muted: #59647b;
  --line: #d9deeb; --accent: #6744ad; --cyan: #08727a;
  --surface-end: #f0f3fa; --surface-soft: #eceaf6; --surface-input: #ffffff;
  --link: #6341a6; --nav-text: #4b5870; --border-strong: #78849b;
  --wash: #7957bf14; --wash-strong: #7957bf26; --shadow: #22345c12;
  --button: #6744ad; --button-hover: #53338e; --button-ink: #ffffff;
  --heading-start: #6744ad; --heading-end: #08727a;
  --status-ink: #60408d; --status-bg: #ede7fa; --status-border: #d2c3e9;
  --success: #146848; --success-bg: #e7f5ed; --success-border: #afdbc5;
  --research-ink: #7a4b10; --research-bg: #fff3df; --research-border: #e4c99f;
  --partial-ink: #006079; --partial-bg: #e6f4fa; --partial-border: #afd6e2;
  --error: #a52339; --error-bg: #fff0f2;
}
:root[data-color-scheme="dark"] {
  color-scheme: dark;
  --bg: #090b16; --panel: #151b2c; --ink: #f4f5ff; --muted: #a8afc7;
  --line: #30384f; --accent: #b7a0ff; --cyan: #89e1ee;
  --surface-end: #101624; --surface-soft: #1b2439; --surface-input: #0c1221;
  --link: #c6b7ff; --nav-text: #b8bfd5; --border-strong: #677491;
  --wash: #b39aff12; --wash-strong: #b39aff25; --shadow: #00000033;
  --button: #ddd5ff; --button-hover: #ede8ff; --button-ink: #1a1436;
  --heading-start: #c6b7ff; --heading-end: #89e1ee;
  --status-ink: #d4c3ff; --status-bg: #282038; --status-border: #554470;
  --success: #9be0c8; --success-bg: #172d29; --success-border: #335c4e;
  --research-ink: #e3c9a2; --research-bg: #2b261f; --research-border: #64533b;
  --partial-ink: #bde1f2; --partial-bg: #172934; --partial-border: #3b596c;
  --error: #ffb8c4; --error-bg: #331c29;
}
/* Repeated dark tokens are generated from the explicit palette at build time. */
@media(prefers-color-scheme:dark) {
  :root:not([data-color-scheme]) {
  color-scheme: dark;
  --bg: #090b16; --panel: #151b2c; --ink: #f4f5ff; --muted: #a8afc7;
  --line: #30384f; --accent: #b7a0ff; --cyan: #89e1ee;
  --surface-end: #101624; --surface-soft: #1b2439; --surface-input: #0c1221;
  --link: #c6b7ff; --nav-text: #b8bfd5; --border-strong: #677491;
  --wash: #b39aff12; --wash-strong: #b39aff25; --shadow: #00000033;
  --button: #ddd5ff; --button-hover: #ede8ff; --button-ink: #1a1436;
  --heading-start: #c6b7ff; --heading-end: #89e1ee;
  --status-ink: #d4c3ff; --status-bg: #282038; --status-border: #554470;
  --success: #9be0c8; --success-bg: #172d29; --success-border: #335c4e;
  --research-ink: #e3c9a2; --research-bg: #2b261f; --research-border: #64533b;
  --partial-ink: #bde1f2; --partial-bg: #172934; --partial-border: #3b596c;
  --error: #ffb8c4; --error-bg: #331c29;
  }
}
body { background: var(--bg); color: var(--ink); }
::selection { background: var(--button); color: var(--button-ink); }
.gradient { background-image: linear-gradient(115deg,var(--heading-start),var(--heading-end)); }
.nav a,.footer-links,.guide-nav a { color: var(--nav-text); }
.nav a:hover,.nav a[aria-current=page] { color: var(--ink); }
.nav .nav-cta,.feature-jumps a,.filter,.icon-tile,.pill {
  background: var(--wash); color: var(--link); border-color: var(--line);
}
.nav .nav-cta:hover,.feature-jumps a:hover,.contact-list a:hover { background: var(--wash-strong); }
.button { background: var(--wash); border-color: var(--border-strong); color: var(--ink); min-height:44px; }
.button:hover { background: var(--wash-strong); }
.button.primary { background: var(--button); border-color: var(--button); color: var(--button-ink); }
.button.primary:hover { background: var(--button-hover); }
.filter[aria-pressed=true] { background: var(--button); color: var(--button-ink); border-color: var(--button); }
.text-link,.prose a,.inline-link,details a,.footer-legal a,.app-card .app-name { color: var(--link); }
.fine,.trust-strip,.app-card .minimum,.app-card .pending,.footer p,.footer-bottom,.footer-bottom p,
.plan-card ul,.guide-nav,.gaming-card .platform-subtitle,.campaign-card figcaption span,.form-note,
.inquiry-copy,.contact-list span,.trust-list,.form-hint { color: var(--muted); }
.card { background: linear-gradient(140deg,var(--panel),var(--surface-end)); }
.feature-main,.plan-card.highlight,.gaming-feature,.campaign-cta,.endcap,.legal-notice,.business-head {
  background: radial-gradient(ellipse at 0 0,var(--wash-strong),transparent 75%),var(--panel);
  border-color: var(--line);
}
.soft { background:var(--surface-soft); color:var(--ink); }
.soft .eyebrow,.soft .text-link { color:var(--link); }
.soft p { color:var(--muted); }
.step-number { color:var(--link); border-color:var(--border-strong); }
.plan-card .price { color:var(--ink); }
.plan-card li:before,summary:after { color:var(--link); }
.roadmap .card { border-top-color:var(--accent); }
.experience-card,.campaign-card,.hero-figure,.gaming-stage,.contact-list { background:var(--panel); border-color:var(--line); }
.experience-wide { background:radial-gradient(ellipse at 100% 30%,var(--wash-strong),transparent 70%),var(--panel); }
.experience-card figcaption,.hero-figure figcaption,.gaming-stage figcaption { background:var(--surface-end); color:var(--muted); }
.hero-figure,.campaign-card { box-shadow:0 18px 50px var(--shadow); }
.connection-diagram,.feature-banner { background:linear-gradient(130deg,var(--panel),var(--surface-soft)); border-color:var(--line); }
.status-key { background:var(--surface-soft); }
.status,.status.testing { color:var(--status-ink); background:var(--status-bg); border-color:var(--status-border); }
.status.available,.status.approved { color:var(--success); background:var(--success-bg); border-color:var(--success-border); }
.status.planned,.status.development { color:var(--muted); background:var(--surface-end); border-color:var(--line); }
.status.research,.status.gated { color:var(--research-ink); background:var(--research-bg); border-color:var(--research-border); }
.status.partial { color:var(--partial-ink); background:var(--partial-bg); border-color:var(--partial-border); }
/* Artwork keeps its authored colors in both modes; never invert photographs. */
.lab-art { --cyan:#89e1ee; }
.site-tools { display:flex; align-items:center; justify-content:flex-end; gap:12px; order:3; flex:0 0 auto; }
.topbar { gap:20px; }
.topbar>.brand { order:1; }
.topbar>.nav { order:2; }
.appearance-control { display:inline-grid; place-items:center; width:44px; height:44px; flex:0 0 44px; padding:0; border:1px solid transparent; border-radius:50%; background:transparent; color:var(--nav-text); cursor:pointer; touch-action:manipulation; }
.appearance-control:hover { color:var(--ink); background:var(--wash); }
.appearance-control:active { background:var(--wash-strong); }
.appearance-control:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.appearance-control svg { display:none; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.appearance-control[data-mode="auto"] [data-appearance-icon="auto"],
.appearance-control[data-mode="light"] [data-appearance-icon="light"],
.appearance-control[data-mode="dark"] [data-appearance-icon="dark"] { display:block; }
.menu { color:var(--ink); border-color:var(--border-strong); min-height:44px; }
/* No image gets a fixed crop box. Intrinsic ratios control picture height. */
.campaign-card,.experience-card,.hero-figure,.gaming-stage { min-inline-size:0; max-inline-size:100%; }
.campaign-card img,.editorial-art { display:block; inline-size:100%; max-inline-size:100%; block-size:auto; max-block-size:none; object-fit:contain; }
.campaign-card figcaption,.experience-card figcaption { overflow-wrap:break-word; }
.inquiry-layout { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(24px,4vw,56px); }
.inquiry-form { padding:clamp(20px,3vw,36px); box-shadow:0 16px 48px var(--shadow); }
.form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 20px; }
.form-grid>label { align-self:end; }
.form-grid>label:first-child { grid-column:1/-1; }
.inquiry-form label { font-size:14px; color:var(--ink); gap:8px; }
.inquiry-form label span { color:var(--muted); }
.inquiry-form input,.inquiry-form select,.inquiry-form textarea {
  display:block; min-width:0; max-width:100%; min-height:48px; font-size:16px; line-height:1.5;
  background:var(--surface-input); border-color:var(--border-strong); color:var(--ink); border-radius:12px;
}
.inquiry-form textarea { min-height:180px; }
.inquiry-form input::placeholder,.inquiry-form textarea::placeholder { color:var(--muted); opacity:1; }
.inquiry-form input:focus,.inquiry-form select:focus,.inquiry-form textarea:focus { outline:3px solid var(--wash-strong); border-color:var(--accent); }
.inquiry-form [aria-invalid=true] { border-color:var(--error); background:var(--error-bg); }
.inquiry-form input[type=checkbox] { width:22px; height:22px; min-height:22px; flex-basis:22px; accent-color:var(--accent); }
.human-check { gap:12px!important; font-weight:400!important; }
.form-hint { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; font-size:12px; margin:10px 0 0; }
.form-note { font-size:13px; line-height:1.65; }
.form-status { font-size:14px; line-height:1.5; color:var(--error); min-height:24px; }
.form-status.success { color:var(--success); }
.draft-panel { margin-top:24px; border-top:1px solid var(--line); padding-top:24px; }
.draft-panel h3 { margin-top:0; }
.draft-panel textarea { font-size:14px; min-height:220px; }
.draft-panel .actions { align-items:stretch; margin-top:16px; }
.draft-panel .button { flex:1 1 160px; }
.draft-panel p,.draft-panel label { font-size:13px; }
@media(max-width:1200px) {
  .topbar>.nav { display:none; order:3; position:static; flex-basis:100%; margin:0; padding:12px; border:1px solid var(--line); border-radius:14px; background:var(--panel); box-shadow:none; }
  .topbar>.nav.open { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; align-items:center; }
  .topbar { height:auto; min-height:76px; flex-wrap:wrap; padding-block:16px; gap:14px; }
  .site-tools { order:2; margin-left:auto; }
  .site-tools .menu { display:block; margin:0; background:var(--panel); border:1px solid var(--border-strong); border-radius:10px; padding:8px 12px; font-size:14px; }
}
@media(max-width:900px) { .inquiry-layout { grid-template-columns:minmax(0,1fr); } }
@media(max-width:720px) {
  .form-grid { grid-template-columns:minmax(0,1fr); }
  .form-grid>label:first-child { grid-column:auto; }
  .topbar>.nav.open { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-tools { gap:8px; }
  .inquiry-form fieldset>.button { width:100%; }
}
@media(max-width:380px) {
  .topbar { gap:8px; }
  .topbar>.brand { font-size:16px; gap:8px; }
  .topbar>.brand img { width:30px; height:30px; }
  .site-tools { gap:4px; }
  .site-tools .menu { padding:8px; font-size:13px; }
}
@media(forced-colors:active) {
  .gradient { background:none; color:CanvasText; }
  .button,.card,.status,.inquiry-form input,.inquiry-form select,.inquiry-form textarea,.appearance-control { border-color:CanvasText; }
}

@media(min-width:1201px) {
  .topbar { display:grid; grid-template-columns:minmax(0,1fr) auto; height:auto; padding-block:16px; row-gap:12px; }
  .topbar>.brand { grid-column:1; grid-row:1; }
  .topbar>.site-tools { grid-column:2; grid-row:1; }
  .topbar>.nav { grid-column:1/-1; grid-row:2; flex-wrap:wrap; justify-content:center; }
}
.media-overview { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(24px,4vw,56px); }
.media-overview>*,.media-format-grid>* { min-width:0; }
.media-overview figure { margin:0; }
.media-overview figcaption { color:var(--muted); font-size:12px; margin-top:12px; }
.media-format-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.media-format-grid .card { padding:clamp(20px,3vw,32px); }
.media-format-grid h3 { font-size:clamp(21px,2vw,26px); }
.media-format-grid p { overflow-wrap:break-word; }
@media(max-width:900px) { .media-overview,.media-format-grid { grid-template-columns:minmax(0,1fr); } }
