/* Dark surfaces, bright interaction states and resource-specific neon highlights. */
:root { color-scheme:dark; }
body { background:#050810; color:#edf4ff; }
#cts-storyboard {
  --cts-bg:#070b13;
  --cts-surface:#0c1422;
  --cts-surface-raised:#111e30;
  --cts-ink:#edf4ff;
  --cts-sub:#a1b1c8;
  --cts-line:#26364d;
  --cts-accent:#c5ff41;
  --cts-on-accent:#0b1604;
  --cts-soft:#152236;
  --cts-cyan:#2ee8f4;
  --cts-pink:#ff4fab;
  --cts-violet:#c792ff;
  background:var(--cts-bg);
  color:var(--cts-ink);
  color-scheme:dark;
}
#cts-storyboard :is(.cts-frame,.cts-header,.cts-intro,.cts-products,.cts-library,.cts-detail,.cts-path,.cts-credits,.cts-footer) { background:var(--cts-bg); }
#cts-storyboard .cts-header { border-bottom-color:var(--cts-line); }
#cts-storyboard .cts-wordmark { color:#f4f8ff; text-decoration:none; }
#cts-storyboard .cts-dot { color:var(--cts-accent); text-shadow:0 0 16px #c5ff4199; }
#cts-storyboard h1>span { color:var(--cts-accent); text-shadow:0 0 30px #c5ff4120; }
#cts-storyboard .cts-eyebrow { color:#9fbdcd; }
#cts-storyboard :is(a,#cts-topic-content a,.cts-data-note a,.cts-credits a):not(.cts-wordmark) { color:var(--cts-cyan); }
#cts-storyboard :is(button,a,select,summary,input):focus-visible { outline:3px solid var(--cts-cyan); outline-offset:4px; }
#cts-storyboard button:hover { background:var(--cts-surface-raised); }
#cts-storyboard select { background:#0b1422; border-color:#344963; color:var(--cts-ink); }
#cts-storyboard option { background:#0b1422; color:var(--cts-ink); }
#cts-storyboard :is(.cts-products,.cts-header nav,.cts-chemistry,.cts-display-switch,.cts-view-switch,.cts-topics) button[aria-pressed="true"] {
  background:var(--cts-accent); color:var(--cts-on-accent); border-color:var(--cts-accent); box-shadow:0 0 18px #c5ff411a;
}
#cts-storyboard .cts-primary { background:var(--cts-accent); color:var(--cts-on-accent); border:1px solid var(--cts-accent); box-shadow:0 0 18px #c5ff4122; }
#cts-storyboard .cts-primary:hover { background:#d9ff83; color:#091403; box-shadow:0 0 24px #c5ff4144; }
#cts-storyboard .cts-secondary { border-color:#3b536c; color:#dbe6f4; }
#cts-storyboard .cts-secondary:hover { border-color:var(--cts-cyan); color:var(--cts-cyan); }
#cts-storyboard .cts-products button { border-color:#31425b; color:var(--cts-sub); }
#cts-storyboard .cts-library-buttons button { background:var(--cts-surface); border-color:#2b3d56; }
#cts-storyboard .cts-library-buttons button b { color:var(--resource-colour,var(--cts-accent)); }
#cts-storyboard .cts-library-buttons button[aria-pressed="true"] { border-color:var(--resource-colour,var(--cts-accent)); background:color-mix(in srgb,var(--resource-colour,var(--cts-accent)) 12%,var(--cts-surface)); box-shadow:0 0 18px #2ee8f40a; }
#cts-storyboard .cts-metal-heading>span { color:var(--resource-colour,var(--cts-accent)); background:color-mix(in srgb,var(--resource-colour,var(--cts-accent)) 10%,var(--cts-surface)); border:1px solid color-mix(in srgb,var(--resource-colour,var(--cts-accent)) 38%,transparent); }
#cts-storyboard :is(.cts-resource-chips button,.cts-material-buttons button) { background:var(--cts-surface); border-color:#293e57; }
#cts-storyboard .cts-resource-chips button[aria-pressed="true"] { background:color-mix(in srgb,var(--resource-colour) 13%,var(--cts-surface)); border-color:var(--resource-colour); box-shadow:inset 0 0 0 1px var(--resource-colour),0 0 16px color-mix(in srgb,var(--resource-colour) 12%,transparent); }
#cts-storyboard .cts-view-switch { background:#090f1a; border:1px solid var(--cts-line); }
#cts-storyboard .cts-company-card { background:var(--cts-surface); border-color:var(--cts-line); }
#cts-storyboard .cts-ootg-reviews { margin:30px 0 38px; padding:24px; border:1px solid #2ee8f448; border-radius:12px; background:linear-gradient(135deg,#2ee8f409,#c5ff4105); }
#cts-storyboard .cts-review-kicker { display:block; margin-bottom:12px; color:var(--cts-accent); text-transform:uppercase; letter-spacing:.13em; font-size:10px; font-weight:600; }
#cts-storyboard #cts-topic-content .cts-review-heading h4 { margin-bottom:12px; }
#cts-storyboard #cts-topic-content .cts-review-heading p { margin-bottom:20px; }
#cts-storyboard .cts-review-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
#cts-storyboard .cts-review-card { display:flex; flex-direction:column; min-width:0; margin:0; border-radius:8px; padding:20px; }
#cts-storyboard .cts-review-card .cts-company-title { display:block; }
#cts-storyboard .cts-review-card:only-child { grid-column:1 / -1; }
#cts-storyboard .cts-review-card h5 { color:var(--cts-ink); font-size:20px; line-height:1.35; letter-spacing:-.025em; font-weight:500; margin:0 0 12px; }
#cts-storyboard .cts-review-card .cts-stage { display:inline-block; margin-bottom:12px; }
#cts-storyboard #cts-topic-content .cts-review-project { color:var(--cts-ink); font-weight:500; font-size:14px; margin-bottom:10px; }
#cts-storyboard #cts-topic-content .cts-review-card p { font-size:14px; line-height:1.75; }
#cts-storyboard #cts-topic-content .cts-review-card .cts-company-meta { color:var(--cts-sub); font-size:11px; }
#cts-storyboard #cts-topic-content .cts-review-card .cts-disclosure-date { margin-top:auto; padding-top:12px; font-size:10px; color:var(--cts-sub); }
#cts-storyboard .cts-review-link { display:block; align-self:flex-start; font-size:14px; font-weight:500; padding:8px 0; }
#cts-storyboard .cts-review-link-note { display:block; color:var(--cts-sub); font-size:11px; }
#cts-storyboard .cts-review-footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-top:22px; padding-top:18px; border-top:1px solid var(--cts-line); font-size:12px; }
#cts-storyboard .cts-review-footer>span { color:var(--cts-sub); font-size:10px; }
@media(max-width:1000px) {
  #cts-storyboard .cts-review-cards { grid-template-columns:1fr; }
}
@media(max-width:540px) {
  #cts-storyboard .cts-ootg-reviews { padding:17px; margin:24px 0 30px; }
  #cts-storyboard.cts-guide-mode .cts-review-card { padding:17px; }
  #cts-storyboard .cts-review-card h5 { font-size:22px; }
}
#cts-storyboard .cts-stage { color:var(--cts-violet); background:#c792ff14; border:1px solid #c792ff3d; }
#cts-storyboard :is(.cts-guide-table thead,.cts-price-table thead) { background:#13293a; color:#dffcff; }
#cts-storyboard :is(.cts-guide-table tbody tr,.cts-price-table tbody tr):hover { background:#2ee8f407; }
#cts-storyboard .cts-topic-pagination button { background:var(--cts-surface); border-color:var(--cts-line); }
#cts-storyboard .cts-topic-pagination button:hover { border-color:var(--cts-cyan); color:var(--cts-cyan); }
#cts-storyboard :is(.cts-visual,.cts-scene,.cts-photography,.cts-scene-tools,.cts-quick-materials) { background:#070e15; }
#cts-storyboard .cts-progress button { color:#a0b4ca; border-color:#2c4058; }
#cts-storyboard .cts-progress button:hover { background:#11283a; }
#cts-storyboard .cts-progress button[aria-pressed="true"] { color:var(--cts-cyan); border-color:var(--cts-cyan); text-shadow:0 0 16px #2ee8f422; }
#cts-storyboard .cts-scene-heading { color:#95adc6; }
#cts-storyboard .cts-scene-heading>span:first-child { color:var(--cts-cyan); }
#cts-storyboard .cts-photo-next { background:#0b1728eb; border-color:var(--cts-cyan); color:var(--cts-cyan); box-shadow:0 0 20px #2ee8f41a; }
#cts-storyboard .cts-photo-next:hover { background:var(--cts-cyan); color:#05141a; }
#cts-storyboard .cts-photo-label { background:#07101ded; color:#effbff; }
#cts-storyboard .cts-scene-tools { border-color:#233a4e; color:var(--cts-sub); }
#cts-storyboard .cts-display-switch { background:#0c1928; border-color:#2a4055; }
#cts-storyboard .cts-display-switch button { color:#a7bad1; }
#cts-storyboard .cts-display-switch button:hover { background:#183147; color:#e9fcff; }
#cts-storyboard .cts-scene-tools #cts-reset-camera { color:var(--cts-cyan); border-color:#2a6070; }
#cts-storyboard .cts-chemistry { background:#0a1523; color:var(--cts-sub); border-color:#243b51; }
#cts-storyboard .cts-chemistry button { color:#b0c3d9; }
#cts-storyboard .cts-quick-materials button { color:#c3d2e4; border-color:#2a3d55; }
#cts-storyboard .cts-quick-materials button[aria-pressed="true"] { color:var(--quick-colour); background:#132136; border-color:var(--quick-colour); }
#cts-storyboard .cts-fallback { color:#c0d8e8; }
#cts-storyboard .cts-library-hero { color:var(--cts-accent); }
#cts-storyboard #cts-hero-route { color:var(--cts-sub); }
#cts-storyboard .cts-attribution img { background:transparent; filter:invert(1) hue-rotate(180deg); mix-blend-mode:screen; }

/* The production classes keep their quantitative meaning with a luminous scale. */
#cts-storyboard .cts-production-map { background:#0a1220; border-color:#2a455d; box-shadow:0 0 32px #2ee8f407; }
#cts-storyboard .cts-map-heading h3 { color:#f0f7ff; }
#cts-storyboard .cts-map-heading .cts-map-eyebrow { color:var(--cts-cyan); }
#cts-storyboard .cts-map-controls button { background:#101e31; border-color:#34526c; color:#d9f8ff; }
#cts-storyboard .cts-map-controls button:hover { border-color:var(--cts-cyan); color:var(--cts-cyan); }
#cts-storyboard .cts-map-sites-toggle input { accent-color:var(--cts-accent); }
#cts-storyboard .cts-map-status { background:#102337; border:1px solid #2c5f75; color:#effbff; }
#cts-storyboard .cts-map-status strong { color:var(--cts-accent); }
#cts-storyboard .cts-map-status small { color:#b0c5dc; }
#cts-storyboard .cts-map-canvas { background:#070e1c; border-color:#2a425b; }
#cts-storyboard .cts-map-ocean { fill:#070e1c; stroke:#273e5a; }
#cts-storyboard .cts-map-graticule { stroke:#29405e; opacity:.65; }
#cts-storyboard .cts-map-country { stroke:#647a9280; }
#cts-storyboard .cts-map-country:hover,#cts-storyboard .cts-map-country:focus-visible,#cts-storyboard .cts-map-country.cts-map-selected { stroke:var(--cts-pink); stroke-width:1.7; }
#cts-storyboard .cts-map-pin-symbol { fill:var(--cts-pink); stroke:#060d17; }
#cts-storyboard .cts-map-facility { fill:var(--cts-violet); }
#cts-storyboard .cts-map-pin:hover .cts-map-pin-symbol,#cts-storyboard .cts-map-pin:focus-visible .cts-map-pin-symbol,#cts-storyboard .cts-map-pin.cts-map-selected .cts-map-pin-symbol { fill:#fff; stroke:var(--cts-pink); filter:drop-shadow(0 0 4px #ff4fab88); }
#cts-storyboard .cts-map-gesture { color:#a6c0d7; background:#070e1cdd; }
#cts-storyboard .cts-map-legend>span { color:#b8cbe0; }
#cts-storyboard :is(.cts-map-legend i,.cts-map-leaders i) { border-color:#66809a; }
#cts-storyboard .cts-map-key-circle { background:var(--cts-pink); border-color:#ffa0d2; }
#cts-storyboard .cts-map-key-diamond { background:var(--cts-violet); border-color:#e4c9ff; }
#cts-storyboard .cts-map-pickers select { background:#101c2c; border-color:#3a526c; }
#cts-storyboard .cts-map-selection { background:#0c1727; border-color:#2c455d; }
#cts-storyboard .cts-map-national strong { color:var(--cts-accent); }
#cts-storyboard .cts-map-country-sites button { background:#142338; border-color:#314e68; color:#d7e9f9; }
#cts-storyboard .cts-map-country-sites button:hover { border-color:var(--cts-cyan); }
#cts-storyboard .cts-map-site-top>span { color:var(--cts-violet); background:#c792ff13; border:1px solid #c792ff36; }
#cts-storyboard .cts-map-leaders button { background:#0f1d2e; border-color:#2d465e; }
#cts-storyboard .cts-map-leaders button:hover,#cts-storyboard .cts-map-leaders button.cts-map-selected { border-color:var(--cts-cyan); background:#102b3c; }
#cts-storyboard .cts-map-leaders strong { color:var(--cts-cyan); }
#cts-storyboard .cts-map-method { border-color:var(--cts-line); }
@media(forced-colors:active) {
  #cts-storyboard button[aria-pressed="true"] { outline:2px solid Highlight; }
}
