/* Black/white page frame. Each collection and project keeps its own colour. */
:root {
  --bg: #000;
  --surface: #111;
  --ink: #fff;
  --muted: #b8b8b8;
  --line: #ffffff2e;
  --accent: #e5e5e5;
  --header: #000000eb;
  --film-accent: #f2f2f2;
  --game-accent: #bdbdbd;
  --film-deep: #1a1a1a;
  --game-deep: #333;
  --violet: var(--film-accent);
  --pink: var(--film-accent);
  --cyan: var(--game-accent);
  --lime: var(--game-accent);
}
:root[data-theme="light"] {
  --bg: #fff;
  --surface: #f3f3f3;
  --ink: #000;
  --muted: #595959;
  --line: #0000002e;
  --accent: #222;
  --header: #ffffffed;
  --film-accent: #171717;
  --game-accent: #505050;
}
:root, :root[data-collection="cinema"] {
  --experience: var(--film-accent);
  --experience-dark: var(--film-deep);
}
:root[data-collection="games"] {
  --experience: var(--game-accent);
  --experience-dark: var(--game-deep);
}
.page-progress { background: linear-gradient(90deg, var(--film-accent), var(--game-accent)); }
.site-header { box-shadow: 0 1px 0 color-mix(in srgb, var(--ink) 3%, transparent); }
.choice-heading h2 > span,
.contact-headline h2 > span {
  background-image: linear-gradient(110deg, var(--ink), var(--muted));
}

/* A neutral photographic opening; colour comes from the artist's actual work. */
.artwork-window { background: #000; color: #fff; }
.opening-shade {
  background: linear-gradient(90deg, #00000094, #00000014), linear-gradient(0deg, #000000f2, #00000030 80%);
}
.window-caption h1 > span { color: #fff; }
.opening-baseline > p { color: #e4e4e4; }
.opening-topline, .opening-edition { color: #c4c4c4; }
.opening-frame { border-color: #ffffff59; }
.opening-frame::after { border-color: #ffffff30; }
.opening-frame::before { background: linear-gradient(90deg, transparent, #fff, #999, transparent); }
.opening-facet { background: linear-gradient(115deg, #ffffff14, transparent 75%); }
.opening-prisms i {
  border-color: #ffffff59;
  background: linear-gradient(90deg, #ffffff0f, transparent 75%);
}
.opening-prisms i:nth-child(2) {
  border-color: #bdbdbd70;
  background: linear-gradient(90deg, #bdbdbd17, transparent);
}
.opening-prisms i:nth-child(3) { background: #ffffff09; }
.round-link { background: #00000038; border-color: #ffffff73; }
.round-link:hover { background: #fff; color: #000; }
.artwork-lane img,
.intro-countries img { filter: none; }

/* Collection colour is local; the page, navigation and introduction remain neutral. */
#choose-world {
  --film-accent: #b79aff;
  --game-accent: #65e5e0;
  --film-deep: #6742c2;
  --game-deep: #007572;
  --violet: var(--film-accent);
  --pink: var(--film-accent);
  --cyan: var(--game-accent);
  --lime: var(--game-accent);
}
[data-theme="light"] #choose-world {
  --film-accent: #6742c2;
  --game-accent: #007572;
}
/* spectral.css supplies the photographic card surfaces and their readable action strips.
   The canvas keeps its violet/cyan colour; project worlds use their inline palettes. */

/* Grey catalog surfaces leave the contribution badges as meaningful colour. */
.index-collection,
[data-theme="light"] .index-collection { --catalog-accent: var(--film-accent); }
.index-collection[data-index-collection="games"],
[data-theme="light"] .index-collection[data-index-collection="games"] { --catalog-accent: var(--game-accent); }
.index-art-preview-frame { background: #000; }
[data-theme="light"] .index-motion-ready .index-row::before { box-shadow: 0 13px 30px -14px #0000002b; }

@media print {
  :root { --bg: #fff; --ink: #000; --muted: #444; --line: #0003; }
}
