@font-face {
  font-family: "Manrope";
  src: url("/assets/fonts/manrope-latin.woff2") format("woff2");
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Syne";
  src: url("/assets/fonts/syne-latin.woff2") format("woff2");
  font-weight: 500 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Space Grotesk";
  src: url("/assets/fonts/space-grotesk-latin.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Cormorant Garamond";
  src: url("/assets/fonts/cormorant-garamond-latin.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Cormorant Garamond";
  src: url("/assets/fonts/cormorant-garamond-italic-latin.woff2") format("woff2");
  font-weight: 400 700;
  font-style: italic;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --ink: #130d18;
  --ink-deep: #080b16;
  --ink-raised: #1c1321;
  --panel: rgba(22, 15, 31, 0.74);
  --text: #fff8f0;
  --muted: #d9cbd4;
  --dim: #a592a7;
  --line: rgba(255, 231, 234, 0.18);
  --line-strong: rgba(255, 237, 225, 0.42);
  --warm: #e57e42;
  --rose: #e33d60;
  --bark: #8e3c29;
  --gold: #efbd64;
  --cool: #f0a76e;
  --cyan: #e47f42;
  --blue: #b24d32;
  --violet: #9c5d51;
  --mint: #b7f5e1;
  --accent: #f0bb70;
  --accent-soft: rgba(240, 187, 112, 0.18);
  --ambient-warm: rgba(227, 61, 96, 0.18);
  --ambient-cool: rgba(228, 127, 66, 0.18);
  --scene-start: #170e18;
  --scene-middle: #090d1b;
  --scene-end: #120d1d;
  --mood-wash: rgba(240, 187, 112, 0.56);
  --mood-wash-secondary: rgba(228, 127, 66, 0.34);
  --room-light-one: rgba(240, 187, 112, 0.24);
  --room-light-two: rgba(226, 108, 88, 0.2);
  --room-frame: rgba(245, 198, 130, 0.34);
  --room-halo: rgba(240, 187, 112, 0.2);
  --room-panel: linear-gradient(145deg, rgba(79, 43, 47, 0.7), rgba(27, 18, 28, 0.9));
  --room-title-shadow: rgba(240, 187, 112, 0.28);
  --room-overlay-ink: #110c16;
  --display: "Syne", "Aptos Display", "Segoe UI", sans-serif;
  --knox-display: "Space Grotesk", "Manrope", "Segoe UI Variable", sans-serif;
  --sans: "Manrope", "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;
  --serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --display-weight: 760;
  --display-tracking: -0.052em;
  --display-leading: 0.91;
  --label-tracking: 0.115em;
  --reading-leading: 1.78;
}

body[data-palette="balance"] {
  --display-weight: 760;
  --display-tracking: -0.052em;
  --display-leading: 0.91;
  --accent: #f0bb70;
  --accent-soft: rgba(240, 187, 112, 0.24);
  --ambient-warm: rgba(227, 61, 96, 0.25);
  --ambient-cool: rgba(228, 127, 66, 0.24);
  --scene-start: #170e18;
  --scene-middle: #090d1b;
  --scene-end: #120d1d;
  --mood-wash: rgba(240, 187, 112, 0.56);
  --mood-wash-secondary: rgba(228, 127, 66, 0.34);
  --room-light-one: rgba(240, 187, 112, 0.26);
  --room-light-two: rgba(219, 103, 95, 0.2);
  --room-frame: rgba(245, 198, 130, 0.34);
  --room-halo: rgba(240, 187, 112, 0.2);
  --room-panel: linear-gradient(145deg, rgba(79, 43, 47, 0.7), rgba(27, 18, 28, 0.9));
  --room-title-shadow: rgba(240, 187, 112, 0.28);
  --room-overlay-ink: #110c16;
}

body[data-palette="jaxx"] {
  --display-weight: 710;
  --display-tracking: -0.072em;
  --display-leading: 0.88;
  --accent: #ff6679;
  --accent-soft: rgba(255, 72, 104, 0.43);
  --ambient-warm: rgba(255, 58, 92, 0.58);
  --ambient-cool: rgba(255, 160, 78, 0.32);
  --scene-start: #3d0814;
  --scene-middle: #1b0714;
  --scene-end: #2a0b0e;
  --mood-wash: rgba(255, 63, 97, 0.78);
  --mood-wash-secondary: rgba(255, 185, 88, 0.48);
  --room-light-one: rgba(255, 62, 104, 0.44);
  --room-light-two: rgba(255, 184, 104, 0.3);
  --room-frame: rgba(255, 139, 137, 0.62);
  --room-halo: rgba(255, 63, 97, 0.34);
  --room-panel: linear-gradient(145deg, rgba(98, 18, 40, 0.78), rgba(37, 9, 23, 0.92));
  --room-title-shadow: rgba(255, 63, 97, 0.52);
  --room-overlay-ink: #1b0611;
}

body[data-palette="knox"] {
  --display: var(--knox-display);
  --display-weight: 680;
  --display-tracking: -0.018em;
  --display-leading: 0.97;
  --accent: #f0a05b;
  --accent-soft: rgba(235, 112, 48, 0.46);
  --ambient-warm: rgba(191, 61, 31, 0.48);
  --ambient-cool: rgba(242, 144, 67, 0.52);
  --scene-start: #32130b;
  --scene-middle: #180c0d;
  --scene-end: #41170d;
  --mood-wash: rgba(239, 115, 46, 0.78);
  --mood-wash-secondary: rgba(181, 62, 31, 0.58);
  --room-light-one: rgba(250, 123, 50, 0.42);
  --room-light-two: rgba(159, 53, 28, 0.32);
  --room-frame: rgba(255, 181, 103, 0.68);
  --room-halo: rgba(239, 115, 46, 0.36);
  --room-panel: linear-gradient(145deg, rgba(84, 27, 13, 0.82), rgba(30, 12, 12, 0.93));
  --room-title-shadow: rgba(239, 115, 46, 0.56);
  --room-overlay-ink: #180a08;
}

* { box-sizing: border-box; }

html {
  background: var(--ink-deep);
  overflow-x: clip;
  scroll-behavior: smooth;
  font-kerning: normal;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

body {
  min-width: 320px;
  margin: 0;
  overflow-x: hidden;
  color: var(--text);
  background:
    radial-gradient(circle at 0% 6%, var(--ambient-warm), transparent 31rem),
    radial-gradient(circle at 100% 29%, var(--ambient-cool), transparent 38rem),
    linear-gradient(145deg, var(--scene-start) 0%, var(--scene-middle) 52%, var(--scene-end) 100%);
  font-family: var(--sans);
  font-size: clamp(1rem, 0.985rem + 0.08vw, 1.075rem);
  font-weight: 450;
  letter-spacing: -0.012em;
  line-height: var(--reading-leading);
  transition: background 1200ms cubic-bezier(.16,.78,.22,1), color 650ms ease;
}

p, li { text-wrap: pretty; }
button, input, select, textarea { font-family: inherit; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.mood-shift {
  --shift-ink: #110c16;
  --shift-one: rgba(240, 187, 112, 0.78);
  --shift-two: rgba(220, 103, 94, 0.54);
  --shift-line: rgba(255, 228, 185, 0.78);
  display: grid;
  position: fixed;
  z-index: 240;
  inset: 0;
  place-content: center;
  padding: 2rem;
  overflow: hidden;
  pointer-events: none;
  isolation: isolate;
  opacity: 0;
  text-align: center;
  visibility: hidden;
}
.mood-shift[data-palette="jaxx"] { --shift-ink: #1b0611; --shift-one: rgba(255, 65, 108, 0.9); --shift-two: rgba(255, 185, 102, 0.67); --shift-line: rgba(255, 210, 189, 0.88); }
.mood-shift[data-palette="balance"] { --shift-ink: #110c16; --shift-one: rgba(240, 187, 112, 0.82); --shift-two: rgba(218, 105, 94, 0.58); --shift-line: rgba(255, 231, 192, 0.82); }
.mood-shift[data-palette="knox"] { --shift-ink: #180a08; --shift-one: rgba(248, 122, 49, 0.92); --shift-two: rgba(153, 48, 26, 0.7); --shift-line: rgba(255, 205, 145, 0.88); }
.mood-shift::before,
.mood-shift::after {
  position: absolute;
  inset: -20%;
  content: "";
  pointer-events: none;
}
.mood-shift::before {
  z-index: -2;
  background:
    radial-gradient(ellipse at 50% 48%, var(--shift-one) 0%, transparent 23%),
    radial-gradient(ellipse at 14% 80%, var(--shift-two) 0%, transparent 34%),
    radial-gradient(ellipse at 84% 12%, var(--shift-two) 0%, transparent 31%),
    linear-gradient(125deg, var(--shift-ink), #08070d 58%, var(--shift-ink));
  filter: blur(14px) saturate(1.15);
  opacity: 0;
  transform: scale(0.74);
}
.mood-shift::after {
  z-index: -1;
  background: repeating-linear-gradient(90deg, transparent 0 12vw, color-mix(in srgb, var(--shift-line) 12%, transparent) 12.08vw 12.18vw, transparent 12.26vw 24vw);
  opacity: 0;
  transform: scaleX(0.14);
  transform-origin: center;
}
.mood-shift__frame {
  position: absolute;
  inset: clamp(1rem, 3vw, 3rem);
  border: 1px solid color-mix(in srgb, var(--shift-line) 48%, transparent);
  border-radius: clamp(1rem, 2.4vw, 2rem);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--shift-line) 8%, transparent), 0 0 4rem color-mix(in srgb, var(--shift-one) 20%, transparent);
  opacity: 0;
  transform: scale(0.86);
}
.mood-shift__ring {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(86vw, 78rem);
  aspect-ratio: 1;
  border: 1px solid color-mix(in srgb, var(--shift-line) 70%, transparent);
  border-radius: 50%;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.32);
}
.mood-shift__ring--two { width: min(58vw, 48rem); border-style: dashed; border-color: color-mix(in srgb, var(--shift-two) 88%, transparent); }
.mood-shift__flare { position: absolute; width: min(58vw, 48rem); height: 1px; background: linear-gradient(90deg, transparent, var(--shift-line), transparent); box-shadow: 0 0 1.4rem var(--shift-one); opacity: 0; transform: scaleX(0.15); }
.mood-shift__flare--one { top: 29%; left: 8%; transform-origin: left; }
.mood-shift__flare--two { right: 8%; bottom: 29%; transform-origin: right; }
.mood-shift__kicker,
.mood-shift__title,
.mood-shift__detail {
  position: relative;
  z-index: 1;
  margin: 0;
  opacity: 0;
  transform: translateY(1.1rem) scale(0.94);
}
.mood-shift__kicker { color: color-mix(in srgb, var(--shift-line) 94%, #fff); font-family: var(--sans); font-size: clamp(0.78rem, 1.45vw, 1.02rem); font-weight: 760; letter-spacing: 0.2em; line-height: 1.4; text-transform: uppercase; }
.mood-shift__title { max-width: min(88vw, 75rem); margin-top: 0.52rem; color: #fffaf4; font-family: var(--display); font-size: clamp(3.65rem, 12vw, 11.25rem); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: var(--display-leading); text-shadow: 0 0 2.8rem var(--shift-one); text-transform: uppercase; }
.mood-shift__detail { max-width: 36rem; margin: 1rem auto 0; color: rgba(255, 248, 240, 0.82); font-family: var(--serif); font-size: clamp(1.1rem, 2vw, 1.45rem); font-style: italic; font-weight: 520; letter-spacing: -0.01em; line-height: 1.42; }
.mood-shift.is-active { visibility: visible; animation: mood-stage 1.82s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active::before { animation: mood-bloom 1.82s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active::after { animation: mood-field 1.66s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__frame { animation: mood-frame 1.72s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__ring--one { animation: mood-ring 1.48s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__ring--two { animation: mood-ring 1.62s 0.05s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__flare--one { animation: mood-flare-left 1.38s 0.08s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__flare--two { animation: mood-flare-right 1.38s 0.12s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__kicker { animation: mood-copy 0.9s 0.15s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__title { animation: mood-copy 1.08s 0.22s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__detail { animation: mood-copy 0.9s 0.34s cubic-bezier(.16,.78,.22,1) both; }

button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button { font: inherit; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }

::selection { color: #190e16; background: var(--accent); }

:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }

main > section[id],
.site-header[id] { scroll-margin-top: 5.75rem; }

.skip-link {
  position: fixed;
  z-index: 200;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.7rem 1rem;
  transform: translateY(-220%);
  border-radius: 0.7rem;
  color: #160f18;
  background: var(--accent);
  font-weight: 850;
  transition: transform 180ms ease;
}
.skip-link:focus { transform: translateY(0); }

.site-shell { min-height: 100vh; }
body.age-locked { overflow: hidden; }
body.age-locked .site-shell { visibility: hidden; }

.room-light { position: fixed; z-index: -6; inset: 0; overflow: hidden; pointer-events: none; }
.room-light__plane { position: absolute; width: min(78vw, 70rem); aspect-ratio: 1.24; border-radius: 50%; filter: blur(66px) saturate(1.16); opacity: 0.56; transition: background 1200ms cubic-bezier(.16,.78,.22,1), filter 1000ms ease, opacity 900ms ease; }
.room-light__plane--one { top: -18rem; left: -17rem; background: radial-gradient(ellipse, var(--room-light-one), transparent 68%); animation: room-drift-one 22s ease-in-out infinite alternate; }
.room-light__plane--two { right: -19rem; bottom: -21rem; background: radial-gradient(ellipse, var(--room-light-two), transparent 68%); animation: room-drift-two 27s ease-in-out infinite alternate; }
.room-light__line { position: absolute; top: 36%; left: -12%; width: 124%; height: 1px; background: linear-gradient(90deg, transparent 0 8%, color-mix(in srgb, var(--room-frame) 45%, transparent) 34%, transparent 66%); opacity: 0.26; transform: rotate(-7deg); transform-origin: center; transition: background 900ms ease, opacity 900ms ease, transform 1200ms cubic-bezier(.16,.78,.22,1); animation: room-line-sweep 18s ease-in-out infinite alternate; }
body[data-palette="jaxx"] .room-light__plane { filter: blur(58px) saturate(1.32); opacity: 0.74; }
body[data-palette="jaxx"] .room-light__plane--one { top: -15rem; left: -11rem; }
body[data-palette="jaxx"] .room-light__plane--two { right: -25rem; bottom: -15rem; }
body[data-palette="knox"] .room-light__plane { filter: blur(60px) saturate(1.3); opacity: 0.72; }
body[data-palette="knox"] .room-light__plane--one { top: -24rem; left: -7rem; }
body[data-palette="knox"] .room-light__plane--two { right: -15rem; bottom: -11rem; }
body[data-palette="jaxx"] .room-light__line { opacity: 0.4; transform: rotate(-11deg) translateY(-3vh); }
body[data-palette="knox"] .room-light__line { opacity: 0.42; transform: rotate(8deg) translateY(5vh); }

.grain,
.aurora,
.cursor-glow,
#atmosphere { position: fixed; pointer-events: none; }

.grain {
  z-index: -5;
  inset: 0;
  opacity: 0.13;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.aurora { z-index: -4; inset: 0; overflow: hidden; }
.aurora::before,
.aurora::after {
  position: absolute;
  width: min(54vw, 51rem);
  aspect-ratio: 1;
  content: "";
  filter: blur(74px);
  border-radius: 46% 54% 63% 37% / 48% 41% 59% 52%;
  opacity: 0.25;
  animation: drift 18s ease-in-out infinite alternate;
}
.aurora--warm::before { top: -23rem; left: -14rem; background: var(--rose); }
.aurora--warm::after { right: -15rem; bottom: 6%; background: var(--warm); animation-delay: -10s; }
.aurora--cool::before { top: 14%; right: -19rem; background: var(--cyan); animation-duration: 25s; }
.aurora--cool::after { bottom: -26rem; left: 29%; background: var(--violet); animation-duration: 31s; animation-delay: -13s; }
.aurora::before,
.aurora::after { transition: background 900ms ease, opacity 800ms ease, filter 900ms ease; }
body[data-palette="jaxx"] .aurora--warm::before,
body[data-palette="jaxx"] .aurora--warm::after { opacity: 0.6; filter: blur(64px) saturate(1.7); }
body[data-palette="jaxx"] .aurora--cool::before,
body[data-palette="jaxx"] .aurora--cool::after { opacity: 0.09; filter: blur(82px) saturate(0.7); }
body[data-palette="knox"] .aurora--warm::before,
body[data-palette="knox"] .aurora--warm::after { opacity: 0.58; filter: blur(64px) saturate(1.65); }
body[data-palette="knox"] .aurora--cool::before,
body[data-palette="knox"] .aurora--cool::after { opacity: 0.28; filter: blur(76px) saturate(1.2); }

#atmosphere { z-index: -3; inset: 0; opacity: 0.66; transition: filter 1000ms cubic-bezier(.16,.78,.22,1), opacity 850ms ease; }
body[data-palette="balance"] #atmosphere { opacity: 0.72; filter: saturate(1.12) brightness(1.05); }
body[data-palette="jaxx"] #atmosphere { opacity: 0.88; filter: hue-rotate(-22deg) saturate(1.62) brightness(1.15); }
body[data-palette="knox"] #atmosphere { opacity: 0.88; filter: hue-rotate(-10deg) saturate(1.74) brightness(1.1); }

.cursor-glow {
  z-index: 50;
  width: 28rem;
  height: 28rem;
  translate: -50% -50%;
  border-radius: 50%;
  opacity: 0;
  background: radial-gradient(circle, var(--accent-soft), rgba(93, 167, 255, 0.025) 38%, transparent 70%);
  transition: opacity 260ms ease, background 500ms ease;
}
body.is-pointer .cursor-glow { opacity: 1; }

.paw-trail { position: fixed; z-index: 55; inset: 0; pointer-events: none; }
.paw-print {
  position: fixed;
  width: 1.8rem;
  height: 1.8rem;
  translate: -50% -50%;
  transform: rotate(var(--paw-turn));
  color: var(--paw-color, var(--accent));
}
.paw-print svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
  opacity: 0;
  filter: drop-shadow(0 0 0.45rem currentColor);
  animation: paw-fade 1.15s ease-out forwards;
}

.scroll-progress {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: rgba(255, 255, 255, 0.04);
}
.scroll-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--rose), var(--gold), var(--cool));
  box-shadow: 0 0 15px var(--accent);
}

.site-header {
  display: flex;
  position: fixed;
  z-index: 90;
  top: 0;
  left: 0;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding: 1.05rem clamp(1.1rem, 4vw, 4.5rem);
  border-bottom: 1px solid rgba(255,255,255,0.03);
  background: linear-gradient(180deg, rgba(9, 8, 17, 0.76), rgba(9, 8, 17, 0));
  backdrop-filter: blur(12px);
  transition: background 900ms cubic-bezier(.16,.78,.22,1), border-color 700ms ease, box-shadow 700ms ease;
}
body[data-palette="balance"] .site-header { border-bottom-color: rgba(246, 196, 127, 0.08); background: linear-gradient(180deg, rgba(18, 12, 22, 0.82), rgba(18, 12, 22, 0)); }
body[data-palette="jaxx"] .site-header { border-bottom-color: rgba(255, 115, 132, 0.17); background: linear-gradient(180deg, rgba(48, 7, 21, 0.84), rgba(48, 7, 21, 0)); box-shadow: 0 0.8rem 3rem rgba(79, 7, 30, 0.12); }
body[data-palette="knox"] .site-header { border-bottom-color: rgba(255, 164, 88, 0.18); background: linear-gradient(180deg, rgba(42, 15, 8, 0.86), rgba(42, 15, 8, 0)); box-shadow: 0 0.8rem 3rem rgba(74, 24, 9, 0.16); }

.brand { display: inline-flex; align-items: center; gap: 0.72rem; font-family: var(--display); font-size: 0.9rem; font-weight: 700; letter-spacing: 0.045em; }
.brand__mark {
  display: grid;
  width: 2.28rem;
  height: 2.28rem;
  place-items: center;
  border: 1px solid var(--accent);
  border-radius: 0.6rem 1rem 0.6rem 1rem;
  color: var(--accent);
  background: rgba(20, 13, 24, 0.6);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.05), 0 0 1.5rem var(--accent-soft);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  transition: transform 300ms ease, border-radius 300ms ease;
}
.brand:hover .brand__mark { transform: rotate(-10deg) scale(1.08); border-radius: 1rem 0.6rem 1rem 0.6rem; }

.site-nav { display: flex; align-items: center; gap: clamp(0.5rem, 2vw, 1.65rem); color: var(--muted); font-family: var(--sans); font-size: 0.8rem; font-weight: 720; letter-spacing: 0.075em; text-transform: uppercase; }
.site-nav > a { position: relative; padding: 0.45rem 0; transition: color 180ms ease; }
.site-nav > a::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; content: ""; transform: scaleX(0); transform-origin: right; background: var(--accent); transition: transform 240ms ease; }
.site-nav > a:hover,
.site-nav > a[aria-current="location"] { color: var(--text); }
.site-nav > a:hover::after,
.site-nav > a[aria-current="location"]::after { transform: scaleX(1); transform-origin: left; }
.site-nav > a.site-nav__contact,
.site-nav > a.site-nav__contact:hover {
  display: inline-flex;
  min-height: 2.3rem;
  align-items: center;
  padding: 0.42rem 0.74rem;
  border: 1px solid color-mix(in srgb, var(--accent) 72%, #fff 28%);
  border-radius: 100rem;
  color: #1c1015;
  background: linear-gradient(115deg, var(--accent), color-mix(in srgb, var(--accent) 52%, #ffe8c2));
  box-shadow: 0 0.48rem 1.4rem var(--accent-soft);
  transition: transform 240ms ease, box-shadow 240ms ease, filter 240ms ease;
}
.site-nav > a.site-nav__contact::after { display: none; }
.site-nav > a.site-nav__contact:hover { transform: translateY(-0.12rem); box-shadow: 0 0.72rem 1.8rem var(--accent-soft); filter: saturate(1.08); }

.quiet-control {
  display: inline-flex;
  min-height: 2.45rem;
  align-items: center;
  gap: 0.46rem;
  padding: 0.42rem 0.62rem;
  border: 1px solid var(--line);
  border-radius: 100rem;
  color: var(--muted);
  background: rgba(14, 11, 24, 0.56);
  cursor: pointer;
  transition: border-color 180ms ease, color 180ms ease, background 180ms ease;
}
.quiet-control:hover { border-color: var(--line-strong); color: var(--text); }
.quiet-control__dot { width: 0.42rem; height: 0.42rem; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0.6rem var(--mint); }
.quiet-control[aria-pressed="true"] .quiet-control__dot { background: var(--rose); box-shadow: 0 0 0.6rem var(--rose); }
.quiet-control__accessibility { display: grid; width: 1.1rem; height: 1.1rem; flex: 0 0 1.1rem; place-items: center; color: var(--accent); transition: color 180ms ease, transform 180ms ease; }
.quiet-control__accessibility svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.quiet-control:hover .quiet-control__accessibility { transform: translateY(-1px) scale(1.06); }
.quiet-control[aria-pressed="true"] .quiet-control__accessibility { color: var(--rose); }

.eyebrow { display: flex; align-items: center; gap: 0.55rem; margin: 0; color: var(--accent); font-family: var(--sans); font-size: clamp(0.76rem, 0.71rem + 0.15vw, 0.87rem); font-weight: 760; letter-spacing: var(--label-tracking); line-height: 1.45; text-transform: uppercase; }
.eyebrow__pulse { width: 0.42rem; height: 0.42rem; flex: 0 0 auto; border-radius: 50%; background: currentColor; box-shadow: 0 0 0.65rem currentColor; animation: blink 1.7s ease-in-out infinite; }

.button { display: inline-flex; min-height: 3.35rem; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 0.8rem 1.15rem; border: 1px solid transparent; border-radius: 0.85rem 1.35rem 0.85rem 1.35rem; font-family: var(--sans); font-size: 1rem; font-weight: 720; letter-spacing: -0.005em; transition: transform 250ms ease, box-shadow 250ms ease, background 250ms ease, border-color 250ms ease; }
.button--primary { color: #1b1016; background: linear-gradient(115deg, var(--accent), #ffe3ac); box-shadow: 0 0.75rem 2.5rem var(--accent-soft); }
.button--primary:hover { transform: translateY(-0.25rem) rotate(-1deg); box-shadow: 0 1rem 3rem var(--accent-soft); }
.button--contact { justify-content: center; border-color: color-mix(in srgb, var(--accent) 78%, #fff 22%); color: #1b1016; background: linear-gradient(115deg, color-mix(in srgb, var(--accent) 84%, #fff 16%), #ffe2b8); box-shadow: 0 0.78rem 2.6rem var(--accent-soft); }
.button--contact:hover { transform: translateY(-0.25rem); box-shadow: 0 1rem 3.1rem var(--accent-soft); filter: saturate(1.08); }
.button--ghost { border-color: var(--line); color: var(--text); background: rgba(255, 255, 255, 0.035); cursor: pointer; }
.button--ghost:hover { transform: translateY(-0.25rem); border-color: var(--accent); background: var(--accent-soft); }

.small-link { display: inline-flex; align-items: center; gap: 0.42rem; color: var(--accent); font-size: 0.96rem; font-weight: 720; letter-spacing: -0.01em; }
.small-link:hover { color: var(--text); }

.hero {
  display: grid;
  position: relative;
  min-height: max(47rem, 100svh);
  grid-template-columns: minmax(0, 1.06fr) minmax(18rem, 0.83fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: center;
  padding: 8.5rem clamp(1.25rem, 8vw, 9rem) 5rem;
  overflow: hidden;
}
.hero__haze { position: absolute; z-index: -1; inset: 0; overflow: hidden; transition: filter 1000ms cubic-bezier(.16,.78,.22,1), opacity 900ms ease; }
.hero__haze::before,
.hero__haze::after { position: absolute; content: ""; pointer-events: none; }
.hero__haze::before { inset: -12%; background: radial-gradient(ellipse at 20% 34%, var(--room-light-one), transparent 33%), radial-gradient(ellipse at 80% 66%, var(--room-light-two), transparent 38%); filter: blur(24px); opacity: 0.68; transform: scale(1.04); transition: background 1000ms ease, filter 1000ms ease, opacity 900ms ease, transform 1300ms cubic-bezier(.16,.78,.22,1); animation: hero-haze 16s ease-in-out infinite alternate; }
.hero__haze::after { inset: 9% 7%; border: 1px solid color-mix(in srgb, var(--room-frame) 26%, transparent); border-radius: 44% 56% 55% 45% / 43% 48% 52% 57%; box-shadow: inset 0 0 5rem color-mix(in srgb, var(--room-halo) 17%, transparent); opacity: 0.44; transform: rotate(-6deg) scale(1.08); transition: border-color 900ms ease, box-shadow 900ms ease, transform 1300ms cubic-bezier(.16,.78,.22,1); }
.hero__ring { position: absolute; width: min(55vw, 50rem); aspect-ratio: 1; border: 1px solid rgba(255,255,255,0.09); border-radius: 48% 52% 42% 58% / 54% 46% 54% 46%; }
.hero__ring--one { top: -23%; right: -7%; border-color: color-mix(in srgb, var(--room-frame) 74%, transparent); box-shadow: 0 0 7rem var(--room-halo); animation: slow-spin 26s linear infinite; transition: border-color 900ms ease, box-shadow 900ms ease, border-radius 900ms ease, transform 900ms ease; }
.hero__ring--two { bottom: -32%; left: -17%; border-color: color-mix(in srgb, var(--room-light-two) 72%, transparent); box-shadow: 0 0 7rem color-mix(in srgb, var(--room-light-two) 42%, transparent); animation: slow-spin 34s linear infinite reverse; transition: border-color 900ms ease, box-shadow 900ms ease, border-radius 900ms ease, transform 900ms ease; }
.hero__spark { transition: color 700ms ease, text-shadow 700ms ease, transform 700ms cubic-bezier(.16,.78,.22,1); }
body[data-palette="balance"] .hero__haze::after { transform: rotate(-2deg) scale(1.04); }
body[data-palette="jaxx"] .hero__haze { filter: saturate(1.18); }
body[data-palette="jaxx"] .hero__haze::before { opacity: 0.86; filter: blur(18px) saturate(1.22); transform: scale(1.15) translateX(-2%); }
body[data-palette="jaxx"] .hero__haze::after { border-radius: 62% 38% 54% 46% / 45% 57% 43% 55%; transform: rotate(-12deg) scale(1.13); }
body[data-palette="jaxx"] .hero__ring--one { animation-duration: 20s; }
body[data-palette="jaxx"] .hero__ring--two { animation-duration: 28s; border-radius: 60% 40% 50% 50% / 44% 55% 45% 56%; }
body[data-palette="knox"] .hero__haze { filter: saturate(1.24) contrast(1.04); }
body[data-palette="knox"] .hero__haze::before { opacity: 0.82; filter: blur(20px) saturate(1.32); transform: scale(1.12) translateX(2%); }
body[data-palette="knox"] .hero__haze::after { border-radius: 38% 62% 43% 57% / 58% 45% 55% 42%; transform: rotate(11deg) scale(1.12); }
body[data-palette="knox"] .hero__ring--one { animation-duration: 18s; border-radius: 43% 57% 39% 61% / 52% 42% 58% 48%; }
body[data-palette="knox"] .hero__ring--two { animation-duration: 24s; }
.hero__spark { position: absolute; color: var(--accent); text-shadow: 0 0 1.2rem currentColor; animation: twinkle 3.7s ease-in-out infinite; }
.hero__spark--one { top: 25%; left: 48%; font-size: 1.5rem; }
.hero__spark--two { right: 10%; bottom: 17%; color: var(--cool); font-size: 0.95rem; animation-delay: -1.9s; }
.hero__copy { position: relative; max-width: 46rem; }
.display-title { display: grid; margin: 1.15rem 0 0; font-family: var(--display); font-size: clamp(4.55rem, 13.1vw, 11.85rem); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: var(--display-leading); text-transform: uppercase; text-wrap: balance; }
.display-title span:first-child { color: #fff5e8; text-shadow: 0 0.25rem 0 var(--room-title-shadow); transition: text-shadow 800ms ease, color 800ms ease; }
.display-title__accent { padding-left: 0.08em; color: color-mix(in srgb, var(--accent) 42%, #fff0e4); text-shadow: 0 0 2.75rem var(--room-title-shadow); transition: color 800ms ease, text-shadow 800ms ease; }
.hero__lede { max-width: 39rem; margin: 2.2rem 0 0; color: var(--muted); font-size: clamp(1.12rem, 1.8vw, 1.32rem); font-weight: 470; letter-spacing: -0.015em; line-height: 1.82; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 2rem; }
.copy-status { min-height: 1.4rem; margin: 0.85rem 0 0; color: var(--accent); font-size: 0.86rem; font-weight: 700; }

.hero-gallery {
  position: relative;
  display: grid;
  width: min(100%, 38rem);
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0.58rem;
  justify-self: end;
  padding: 0.72rem;
  border: 1px solid var(--room-frame);
  border-radius: 1.8rem 4.7rem 1.8rem 1.8rem;
  background: linear-gradient(150deg, color-mix(in srgb, var(--room-panel) 92%, rgba(255,255,255,0.05)), var(--room-panel));
  box-shadow: 0 2rem 7rem rgba(0, 0, 0, 0.32), 0 0 4.8rem var(--room-halo), inset 0 1px 0 rgba(255,255,255,0.07);
  transform: perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) rotate(1.25deg);
  transition: transform 230ms ease, box-shadow 900ms cubic-bezier(.16,.78,.22,1), border-color 900ms ease, background 900ms ease;
}
.hero-gallery:hover { box-shadow: 0 2.6rem 7rem rgba(0,0,0,0.42), 0 0 5rem var(--room-halo); }
.hero-gallery::before { position: absolute; z-index: -1; inset: 13% -10% -9% 14%; content: ""; border-radius: 50%; background: radial-gradient(circle, var(--room-halo), transparent 67%); filter: blur(1rem); transition: background 900ms ease, transform 900ms cubic-bezier(.16,.78,.22,1); }
body[data-palette="jaxx"] .hero-gallery::before { transform: translate(-5%, -4%) scale(1.16); }
body[data-palette="knox"] .hero-gallery::before { transform: translate(5%, 5%) scale(1.22); }
.hero-gallery__topline { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.22rem 0.35rem 0.42rem; color: #eed9d4; font-family: var(--sans); font-size: 0.74rem; font-weight: 760; letter-spacing: 0.095em; line-height: 1.35; }
.hero-gallery__topline > span:last-child { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--accent); text-align: right; }
.hero-gallery__topline i { width: 0.42rem; height: 0.42rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 0.7rem currentColor; animation: blink 1.8s ease-in-out infinite; }
.hero-gallery__deck { display: grid; position: relative; min-height: clamp(28rem, 38vw, 34.5rem); grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr); align-items: stretch; gap: clamp(0.55rem, 1.4vw, 1rem); padding: 0.15rem 0.1rem 0.35rem; isolation: isolate; }
.hero-art-card { position: relative; width: auto; min-height: 0; height: 100%; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,0.25); color: #fff8f0; background: #220f13; box-shadow: 0 1.5rem 3.6rem rgba(0,0,0,0.32); cursor: zoom-in; isolation: isolate; transition: transform 460ms cubic-bezier(.2,.82,.2,1), box-shadow 460ms ease, border-color 340ms ease, filter 340ms ease; }
.hero-art-card::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(180deg, transparent 34%, rgba(8,7,12,0.18) 54%, rgba(8,7,12,0.88) 100%); pointer-events: none; }
.hero-art-card img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; transition: transform 800ms cubic-bezier(.2,.85,.2,1), filter 480ms ease; }
.hero-art-card__meta { display: grid; position: absolute; z-index: 2; right: 1rem; bottom: 0.9rem; left: 1rem; gap: 0.12rem; text-align: left; }
.hero-art-card__meta strong { font-family: var(--display); font-size: clamp(1.48rem, 2.6vw, 2.32rem); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 0.94; text-transform: uppercase; }
.hero-art-card__meta span { color: #f2ddd1; font-size: 0.76rem; font-weight: 720; letter-spacing: 0.09em; line-height: 1.35; text-transform: uppercase; }
.hero-art-card--jaxx { align-self: start; height: calc(100% - 0.42rem); margin-top: 0.42rem; border-radius: 1.1rem 2.9rem 1.1rem 1.1rem; transform: rotate(-2.4deg); }
.hero-art-card--knox { align-self: end; height: calc(100% - 0.42rem); margin-bottom: 0.42rem; border-color: rgba(245, 151, 82, 0.52); border-radius: 2.9rem 1.1rem 1.1rem 1.1rem; background: #311409; transform: rotate(2.4deg); }
.hero-art-card--knox::before { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(145deg, rgba(250, 139, 63, 0.25), transparent 55%); mix-blend-mode: screen; pointer-events: none; }
.hero-art-card--den { border-color: rgba(239, 189, 100, 0.55); }
body[data-palette="jaxx"] .hero-art-card--jaxx { border-color: rgba(255, 166, 155, 0.8); box-shadow: 0 1.8rem 4.4rem rgba(0,0,0,0.38), 0 0 2.3rem rgba(255, 62, 104, 0.36); animation: jaxx-card-glow 6.8s ease-in-out infinite; }
body[data-palette="knox"] .hero-art-card--knox { border-color: rgba(255, 188, 116, 0.85); box-shadow: 0 1.8rem 4.4rem rgba(0,0,0,0.4), 0 0 2.5rem rgba(244, 109, 43, 0.38); animation: knox-card-glow 6.3s ease-in-out infinite; }
body[data-palette="balance"] .hero-art-card--jaxx { border-color: rgba(255, 142, 139, 0.6); }
body[data-palette="balance"] .hero-art-card--knox { border-color: rgba(255, 178, 109, 0.62); }
.hero-art-card:hover { z-index: 4; border-color: var(--accent); box-shadow: 0 2.1rem 5rem rgba(0,0,0,0.42), 0 0 2.8rem var(--accent-soft); filter: saturate(1.1); }
.hero-art-card--jaxx:hover { transform: translateY(-0.45rem) rotate(-1.1deg) scale(1.025); }
.hero-art-card--knox:hover { transform: translateY(-0.45rem) rotate(1.1deg) scale(1.025); }
.hero-art-card:hover img { transform: scale(1.08); }
.hero-gallery__note { position: relative; z-index: 2; margin: 0.08rem 0.2rem 0.1rem; padding: 0.72rem 0.58rem 0.25rem; border-top: 1px solid color-mix(in srgb, var(--room-frame) 48%, transparent); color: var(--dim); font-size: 0.86rem; font-weight: 620; letter-spacing: -0.01em; line-height: 1.55; }
.hero__cue { display: flex; position: absolute; bottom: 2rem; left: clamp(1.25rem, 8vw, 9rem); align-items: center; gap: 0.7rem; color: var(--dim); font-size: 0.76rem; font-weight: 720; letter-spacing: 0.105em; }
.hero__cue-line { width: 2.5rem; height: 1px; background: var(--accent); animation: cue 2s ease-in-out infinite; }

.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.66fr); gap: clamp(2rem, 7vw, 8rem); align-items: end; margin-bottom: clamp(2.1rem, 4vw, 4rem); }
.section-heading h2,
.story-section h2,
.gaming-section h2,
.artists-section h2 { margin: 0.8rem 0 0; font-family: var(--display); font-size: clamp(3rem, 6vw, 6.25rem); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: var(--display-leading); text-transform: uppercase; text-wrap: balance; }
.section-heading h2 em,
.gaming-section h2 em,
.artists-section h2 em { color: #f0d9d5; font-family: var(--serif); font-weight: 600; letter-spacing: -0.025em; text-transform: none; }
.section-heading__side,
.section-heading__note { max-width: 41rem; margin: 0; color: var(--muted); font-size: 1.08rem; font-weight: 460; letter-spacing: -0.012em; line-height: 1.82; }
.section-heading__side { display: grid; gap: 1.2rem; }

.art-section { position: relative; padding: clamp(5rem, 12vw, 10rem) clamp(1.25rem, 8vw, 9rem); overflow: hidden; }
.art-section::before { position: absolute; z-index: -1; top: 34%; left: -14rem; width: 38rem; aspect-ratio: 1; content: ""; border: 1px solid rgba(227,61,96,0.14); border-radius: 50%; box-shadow: 0 0 8rem rgba(227,61,96,0.09); }
.palette-picker { display: grid; gap: 0.78rem; }
.palette-picker__heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.58rem 1rem; }
.palette-picker__heading > span { color: var(--accent); font-size: 0.72rem; font-weight: 820; letter-spacing: 0.13em; text-transform: uppercase; }
.palette-picker__current { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 0.38rem; margin: 0; color: var(--dim); font-size: 0.78rem; line-height: 1.4; text-align: right; }
.palette-picker__current i { width: 0.44rem; height: 0.44rem; flex: 0 0 auto; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0.8rem var(--accent); animation: blink 1.9s ease-in-out infinite; }
.palette-picker__current strong { color: var(--text); font-weight: 760; }
.palette-picker__current span { color: var(--dim); }
.palette-controls { display: grid; position: relative; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.48rem; padding: 0.48rem; border: 1px solid var(--room-frame); border-radius: 1.15rem; background: rgba(10, 9, 20, 0.44); box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 1rem 2.8rem rgba(0,0,0,0.17); transition: border-color 900ms ease, box-shadow 900ms ease, background 900ms ease; }
.palette-controls button { --option-one: rgba(255, 255, 255, 0.1); --option-two: rgba(255, 255, 255, 0.03); --option-line: rgba(255, 255, 255, 0.24); display: grid; position: relative; min-height: 6.45rem; grid-template-columns: auto minmax(0, 1fr); gap: 0.62rem; align-items: start; padding: 0.82rem 0.72rem; overflow: hidden; border: 1px solid transparent; border-radius: 0.82rem; color: var(--muted); background: transparent; text-align: left; cursor: pointer; isolation: isolate; transition: color 360ms ease, border-color 420ms ease, transform 520ms cubic-bezier(.16,.78,.22,1), box-shadow 650ms ease; }
.palette-controls button::before { position: absolute; z-index: -2; inset: 0; content: ""; background: linear-gradient(145deg, var(--option-one), var(--option-two)); opacity: 0.16; transition: opacity 560ms ease, transform 700ms cubic-bezier(.16,.78,.22,1); }
.palette-controls button::after { position: absolute; z-index: -1; inset: 0.36rem; content: ""; border: 1px solid var(--option-line); border-radius: 0.57rem; opacity: 0; transform: scale(0.9); transition: transform 560ms cubic-bezier(.16,.78,.22,1), opacity 560ms ease; }
.palette-controls button:hover { border-color: var(--option-line); color: var(--text); transform: translateY(-0.18rem); }
.palette-controls button:hover::before { opacity: 0.56; transform: scale(1.05); }
.palette-controls button[aria-pressed="true"] { border-color: var(--option-line); color: #fffaf4; transform: translateY(-0.28rem); box-shadow: 0 0.86rem 1.9rem var(--accent-soft), inset 0 1px 0 rgba(255,255,255,0.28); }
.palette-controls button[aria-pressed="true"]::before { opacity: 0.92; transform: scale(1.06); }
.palette-controls button[aria-pressed="true"]::after { opacity: 1; transform: scale(1); }
.palette-controls button[data-palette-button="jaxx"] { --option-one: rgba(255, 116, 132, 0.72); --option-two: rgba(94, 12, 37, 0.76); --option-line: rgba(255, 177, 168, 0.7); }
.palette-controls button[data-palette-button="balance"] { --option-one: rgba(246, 192, 113, 0.7); --option-two: rgba(157, 74, 76, 0.72); --option-line: rgba(255, 222, 165, 0.72); }
.palette-controls button[data-palette-button="knox"] { --option-one: rgba(255, 160, 82, 0.74); --option-two: rgba(105, 30, 15, 0.79); --option-line: rgba(255, 194, 128, 0.76); }
.palette-option__number { color: color-mix(in srgb, currentColor 80%, transparent); font-size: 0.7rem; font-weight: 830; letter-spacing: 0.08em; line-height: 1.4; }
.palette-option__copy { display: grid; gap: 0.18rem; min-width: 0; padding-right: 0.42rem; }
.palette-option__copy strong { color: inherit; font-size: 0.94rem; font-weight: 800; line-height: 1.25; }
.palette-option__copy span { color: inherit; font-size: 0.72rem; line-height: 1.4; opacity: 0.76; }
.palette-option__glow { position: absolute; right: -0.7rem; bottom: -0.7rem; width: 3.8rem; aspect-ratio: 1; border: 1px solid var(--option-line); border-radius: 50%; opacity: 0.16; transform: rotate(-22deg); transition: transform 700ms cubic-bezier(.16,.78,.22,1), opacity 560ms ease; }
.palette-controls button[aria-pressed="true"] .palette-option__glow { opacity: 0.76; transform: rotate(28deg) scale(1.2); }
body[data-palette="balance"] .palette-controls { background: rgba(38, 20, 27, 0.54); box-shadow: inset 0 1px 0 rgba(255, 218, 165, 0.08), 0 1rem 2.8rem rgba(112, 47, 45, 0.15); }
body[data-palette="jaxx"] .palette-controls { background: rgba(64, 8, 27, 0.58); box-shadow: inset 0 1px 0 rgba(255, 193, 175, 0.1), 0 1rem 3rem rgba(237, 44, 84, 0.23); }
body[data-palette="knox"] .palette-controls { background: rgba(57, 17, 8, 0.6); box-shadow: inset 0 1px 0 rgba(255, 199, 140, 0.11), 0 1rem 3rem rgba(229, 91, 37, 0.25); }

.art-chapters { display: grid; gap: clamp(2rem, 6vw, 5rem); }
.art-chapter { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(17rem, 0.72fr); gap: clamp(1.5rem, 6vw, 7rem); align-items: center; }
.art-chapter--knox { grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.08fr); }
.art-chapter--knox .art-chapter__visual { order: 2; }
.art-chapter__visual { position: relative; min-height: clamp(24rem, 45vw, 41rem); overflow: hidden; border: 1px solid rgba(255, 232, 217, 0.2); border-radius: 1.45rem 4rem 1.45rem 1.45rem; background: #41131e; box-shadow: 0 2rem 6rem rgba(0,0,0,0.24); }
.art-chapter--knox .art-chapter__visual { border-radius: 4rem 1.45rem 1.45rem 1.45rem; background: #3b180d; }
.art-chapter__visual { transition: border-color 820ms ease, box-shadow 820ms ease, filter 820ms ease, opacity 820ms ease, transform 820ms cubic-bezier(.2,.8,.2,1); }
body[data-palette="balance"] .art-chapter--jaxx .art-chapter__visual { border-color: rgba(255, 136, 138, 0.46); box-shadow: 0 2rem 6rem rgba(132, 31, 60, 0.24); }
body[data-palette="balance"] .art-chapter--knox .art-chapter__visual { border-color: rgba(255, 167, 91, 0.5); box-shadow: 0 2rem 6rem rgba(132, 48, 19, 0.24); }
body[data-palette="jaxx"] .art-chapter--jaxx .art-chapter__visual { border-color: rgba(255, 150, 139, 0.86); box-shadow: 0 0 0 1px rgba(255, 74, 105, 0.28), 0 2.5rem 7.5rem rgba(226, 24, 69, 0.5); transform: translateY(-0.42rem) scale(1.016); animation: jaxx-visual-glow 7.2s ease-in-out infinite; }
body[data-palette="jaxx"] .art-chapter--knox .art-chapter__visual { filter: saturate(0.8) brightness(0.9); opacity: 0.92; transform: translateY(0.2rem); }
body[data-palette="knox"] .art-chapter--knox .art-chapter__visual { border-color: rgba(255, 188, 111, 0.9); box-shadow: 0 0 0 1px rgba(237, 103, 41, 0.3), 0 2.5rem 7.5rem rgba(183, 56, 20, 0.54); transform: translateY(-0.42rem) scale(1.016); animation: knox-visual-glow 6.8s ease-in-out infinite; }
body[data-palette="knox"] .art-chapter--jaxx .art-chapter__visual { filter: saturate(0.8) brightness(0.9); opacity: 0.92; transform: translateY(0.2rem); }
.art-chapter__visual::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(180deg, rgba(8,8,16,0.05), rgba(8,8,16,0.18) 40%, rgba(8,8,16,0.72)); }
.art-chapter__open { display: block; position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; overflow: hidden; border: 0; color: var(--text); background: none; cursor: zoom-in; }
.art-chapter__open img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 37%; transform: scale(1.02); transition: transform 1s cubic-bezier(.2,.85,.2,1), filter 600ms ease; }
.art-chapter--knox .art-chapter__open img { object-position: 63% 50%; }
.art-chapter:hover .art-chapter__open img { transform: scale(1.09); filter: saturate(1.14) contrast(1.04); }
.art-chapter__open span { position: absolute; z-index: 2; right: 1.2rem; bottom: 1.15rem; padding: 0.52rem 0.78rem; border: 1px solid rgba(255,255,255,0.34); border-radius: 100rem; color: #fff; background: rgba(8,7,15,0.46); font-size: 0.78rem; font-weight: 760; letter-spacing: 0.055em; text-transform: uppercase; backdrop-filter: blur(9px); transition: transform 220ms ease, background 220ms ease; }
.art-chapter:hover .art-chapter__open span { transform: translateY(-0.2rem); background: rgba(227,61,96,0.72); }
.art-chapter--knox:hover .art-chapter__open span { background: rgba(225,103,45,0.76); }
.art-chapter__stamp { position: absolute; z-index: 3; top: 1.2rem; left: 1.2rem; padding: 0.46rem 0.68rem; border: 1px solid rgba(255,255,255,0.26); border-radius: 100rem; color: #fff8f0; background: rgba(9,8,17,0.4); font-size: 0.74rem; font-weight: 780; letter-spacing: 0.08em; backdrop-filter: blur(8px); }
.art-chapter__orbit { position: absolute; z-index: 2; width: 52%; aspect-ratio: 1; right: -11%; bottom: -16%; border: 1px solid rgba(255, 219, 151, 0.62); border-radius: 50%; box-shadow: 0 0 2.2rem rgba(239,189,100,0.17); animation: slow-spin 16s linear infinite; pointer-events: none; }
.art-chapter__orbit::before { position: absolute; top: 4%; left: 40%; width: 0.45rem; height: 0.45rem; content: ""; border-radius: 50%; background: var(--gold); box-shadow: 0 0 1rem var(--gold); }
.art-chapter--knox .art-chapter__orbit { right: auto; bottom: -12%; left: -14%; border-color: rgba(240,167,110,0.76); box-shadow: 0 0 2.2rem rgba(228,127,66,0.2); animation-direction: reverse; }
.art-chapter--knox .art-chapter__orbit::before { background: var(--cool); box-shadow: 0 0 1rem var(--cool); }
.art-chapter__copy { position: relative; padding: 1rem 0; }
.art-chapter__copy h3 { margin: 0.65rem 0 1.25rem; font-family: var(--display); font-size: clamp(2.8rem, 4.6vw, 5.25rem); font-weight: 780; letter-spacing: -0.04em; line-height: 0.98; text-transform: uppercase; }
.art-chapter__copy > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 1.08rem; line-height: 1.82; }
.art-chapter__notes { display: flex; flex-wrap: wrap; gap: 0.42rem; margin: 1.4rem 0 1.5rem; }
.art-chapter__notes span { padding: 0.42rem 0.66rem; border: 1px solid rgba(227,61,96,0.34); border-radius: 100rem; color: #ffd7d4; background: rgba(227,61,96,0.1); font-size: 0.79rem; font-weight: 700; }
.art-chapter--knox .art-chapter__notes span { border-color: rgba(240,167,110,0.42); color: #ffe0c2; background: rgba(228,127,66,0.13); }

.art-library { display: grid; grid-template-columns: minmax(14rem, 0.44fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: end; margin-top: clamp(4rem, 9vw, 8rem); padding-top: clamp(2.5rem, 5vw, 4.5rem); border-top: 1px solid var(--line); }
.art-library__intro h3 { margin: 0.75rem 0 1rem; font-family: var(--display); font-size: clamp(2.2rem, 4.4vw, 4.2rem); font-weight: 780; letter-spacing: -0.045em; line-height: 0.98; text-transform: uppercase; }
.art-library__intro h3 em { color: #f0d9d5; font-family: var(--serif); font-weight: 600; text-transform: none; }
.art-library__intro p:last-child { max-width: 19rem; margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.art-library__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.8rem; }
.art-shelf-card { display: grid; position: relative; min-height: 15rem; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,0.18); border-radius: 1rem 2.1rem 1rem 1rem; color: var(--text); background: #241116; box-shadow: 0 1rem 2.8rem rgba(0,0,0,0.18); cursor: zoom-in; isolation: isolate; transition: transform 280ms ease, border-color 280ms ease, box-shadow 280ms ease; }
.art-shelf-card:nth-child(2) { border-radius: 2.1rem 1rem 1rem 1rem; }
.art-shelf-card::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(180deg, transparent 40%, rgba(8,7,12,0.76)); pointer-events: none; }
.art-shelf-card img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; transition: transform 620ms cubic-bezier(.2,.85,.2,1), filter 280ms ease; }
.art-shelf-card__meta { display: grid; position: absolute; z-index: 2; right: 0.85rem; bottom: 0.75rem; left: 0.85rem; gap: 0.16rem; text-align: left; }
.art-shelf-card__meta strong { font-size: 1rem; letter-spacing: -0.02em; line-height: 1.1; }
.art-shelf-card__meta span { color: #f1d6c8; font-size: 0.72rem; font-weight: 700; line-height: 1.35; }
.art-shelf-card--knox { border-color: rgba(240,167,110,0.38); }
.art-shelf-card--den { border-color: rgba(239,189,100,0.38); }
.art-shelf-card:hover { z-index: 2; border-color: var(--accent); box-shadow: 0 1.5rem 3.6rem rgba(0,0,0,0.28), 0 0 1.8rem var(--accent-soft); transform: translateY(-0.42rem); }
.art-shelf-card:hover img { transform: scale(1.08); filter: saturate(1.1); }
.adult-shelf { display: grid; position: relative; grid-template-columns: minmax(13rem, 0.47fr) minmax(0, 1fr); gap: clamp(1.6rem, 5vw, 5rem); margin-top: clamp(2.5rem, 6vw, 5rem); padding: clamp(1.35rem, 3vw, 2.4rem); overflow: hidden; border: 1px solid rgba(240,167,110,0.28); border-radius: 1.3rem 3.1rem 1.3rem 1.3rem; background: linear-gradient(135deg, rgba(53,16,13,0.58), rgba(15,10,17,0.72) 58%, rgba(69,27,13,0.44)); box-shadow: inset 0 1px 0 rgba(255,220,186,0.07), 0 1.3rem 3.8rem rgba(0,0,0,0.17); isolation: isolate; }
.adult-shelf::before { position: absolute; z-index: -1; top: -14rem; right: -9rem; width: 29rem; aspect-ratio: 1; content: ""; border: 1px solid rgba(244,145,71,0.2); border-radius: 50%; box-shadow: 0 0 7rem rgba(203,71,32,0.16); }
.adult-shelf__intro { align-self: center; max-width: 24rem; }
.adult-shelf__intro h3 { margin: 0.7rem 0 1rem; font-family: var(--display); font-size: clamp(2.25rem, 4.3vw, 4.1rem); font-weight: 780; letter-spacing: -0.045em; line-height: 0.98; text-transform: uppercase; }
.adult-shelf__intro h3 em { color: #ffd1b0; font-family: var(--serif); font-weight: 600; text-transform: none; }
.adult-shelf__intro > p:last-child { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.adult-shelf__vault { min-height: 15rem; padding: clamp(1rem, 3vw, 1.6rem); border: 1px solid rgba(255,231,215,0.14); border-radius: 1rem 2.2rem 1rem 1rem; background: rgba(8,8,14,0.38); box-shadow: inset 0 1px 0 rgba(255,255,255,0.04); transition: border-color 320ms ease, box-shadow 320ms ease, background 320ms ease; }
.adult-shelf.is-unlocked .adult-shelf__vault { border-color: rgba(244,145,71,0.52); background: rgba(35,12,11,0.44); box-shadow: inset 0 1px 0 rgba(255,235,214,0.08), 0 0 2.6rem rgba(202,68,33,0.14); }
.adult-shelf__lock { display: grid; grid-template-columns: auto 1fr; column-gap: 0.95rem; align-items: center; min-height: 6.2rem; }
.adult-shelf__seal { display: grid; width: 3.2rem; height: 3.2rem; grid-row: span 2; place-items: center; border: 1px solid rgba(255,201,148,0.52); border-radius: 0.75rem 1.1rem 0.75rem 1.1rem; color: #ffc18d; background: rgba(96,35,19,0.36); box-shadow: 0 0 1.8rem rgba(231,104,48,0.16); }
.adult-shelf__seal svg { width: 1.6rem; height: 1.6rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.65; }
.adult-shelf__lock strong { align-self: end; color: #fff2e8; font-size: 1.08rem; }
.adult-shelf__lock p { align-self: start; margin: 0.2rem 0 0; color: var(--muted); font-size: 0.92rem; line-height: 1.55; }
.adult-shelf__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem 1.15rem; margin-top: 1.15rem; }
.adult-shelf__button { min-width: min(100%, 16.5rem); }
.adult-shelf__button:disabled { border-color: rgba(255,255,255,0.1); color: var(--dim); cursor: not-allowed; opacity: 0.72; }
.adult-shelf__note { margin: 0; color: var(--dim); font-size: 0.78rem; font-weight: 680; letter-spacing: 0.03em; }
.adult-shelf__gallery { margin-top: 1.25rem; }
.art-shelf-card--after-dark { border-color: rgba(241,138,65,0.5); background: #21100d; }
.art-shelf-card--after-dark::after { background: linear-gradient(180deg, rgba(20,6,7,0.04), rgba(13,5,8,0.86)); }
.art-section__footnote { max-width: 44rem; margin: clamp(3rem, 8vw, 7rem) 0 0 auto; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: 1rem; font-style: italic; line-height: 1.8; }

.story-section { display: grid; grid-template-columns: minmax(16rem, 0.76fr) minmax(0, 1.2fr); gap: clamp(2rem, 9vw, 11rem); align-items: center; padding: clamp(5rem, 12vw, 10rem) clamp(1.25rem, 8vw, 9rem); border-block: 1px solid var(--line); background: linear-gradient(115deg, rgba(88,28,37,0.21), rgba(10,18,43,0.28)); }
.story-section__intro { max-width: 33rem; }
.story-section__intro > p:last-child { margin: 1.3rem 0 0; color: var(--muted); font-size: 1.1rem; line-height: 1.82; }
.story-deck { overflow: hidden; border: 1px solid rgba(255,240,230,0.2); border-radius: 1.4rem 3.8rem 1.4rem 1.4rem; background: rgba(9, 13, 27, 0.56); box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 1.5rem 4rem rgba(0,0,0,0.2); }
.story-tabs { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.story-tabs button { padding: 1.05rem 0.9rem; border: 0; border-right: 1px solid var(--line); color: var(--dim); background: transparent; font-size: 0.88rem; font-weight: 760; letter-spacing: 0.045em; text-transform: uppercase; cursor: pointer; transition: color 220ms ease, background 220ms ease; }
.story-tabs button:last-child { border-right: 0; }
.story-tabs button:hover { color: var(--text); background: rgba(255,255,255,0.04); }
.story-tabs button[aria-selected="true"] { color: #1c1117; background: var(--accent); }
.story-panel { position: relative; min-height: 22rem; padding: clamp(1.75rem, 5vw, 4rem); overflow: hidden; animation: panel-in 420ms ease both; }
.story-panel::before { position: absolute; z-index: -1; top: -10rem; right: -8rem; width: 24rem; aspect-ratio: 1; content: ""; border: 1px solid rgba(255,255,255,0.1); border-radius: 50%; box-shadow: 0 0 5rem var(--accent-soft); }
.story-panel__number { display: block; color: var(--accent); font-size: 0.78rem; font-weight: 780; letter-spacing: 0.09em; }
.story-panel h3 { max-width: 38rem; margin: 1rem 0 1.2rem; font-family: var(--display); font-size: clamp(2.2rem, 4vw, 4.25rem); font-weight: 780; letter-spacing: -0.04em; line-height: 1; text-transform: uppercase; }
.story-panel > p { max-width: 40rem; margin: 0; color: var(--muted); font-size: 1.08rem; line-height: 1.82; }
.story-panel .story-panel__aside { margin-top: 1.5rem; color: #fff0df; font-family: var(--serif); font-size: 1.14rem; font-style: italic; }

.portal-section { padding: clamp(5rem, 12vw, 10rem) clamp(1.25rem, 8vw, 9rem); }
.portal-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0.9rem; }
.portal-card { display: flex; position: relative; min-height: 15rem; overflow: hidden; grid-column: span 4; flex-direction: column; justify-content: space-between; padding: 1.05rem; border: 1px solid rgba(255,255,255,0.17); border-radius: 1.1rem 2.7rem 1.1rem 1.1rem; isolation: isolate; background: linear-gradient(145deg, rgba(35,22,40,0.9), rgba(8,15,31,0.77)); box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); transform: perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); transition: transform 260ms ease, border-color 280ms ease, box-shadow 280ms ease; }
.portal-card::before { position: absolute; z-index: -2; inset: 0; content: ""; opacity: 0.75; background: radial-gradient(circle at 110% -15%, var(--card-color, var(--accent)), transparent 43%), linear-gradient(135deg, transparent 30%, rgba(255,255,255,0.03)); transition: opacity 280ms ease; }
.portal-card::after { position: absolute; z-index: -1; top: 0; left: -120%; width: 52%; height: 1px; content: ""; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.9), transparent); transform: rotate(-25deg); transition: left 650ms ease; }
.portal-card:hover { z-index: 2; transform: perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(-0.48rem); border-color: var(--card-color, var(--accent)); box-shadow: 0 1.4rem 3.5rem rgba(0,0,0,0.28), 0 0 2.5rem var(--card-shadow, var(--accent-soft)); }
.portal-card:hover::before { opacity: 1; }
.portal-card:hover::after { left: 135%; }
.portal-card:nth-child(1) { grid-column: span 5; min-height: 18.5rem; }
.portal-card:nth-child(2) { grid-column: span 3; }
.portal-card:nth-child(3) { grid-column: span 4; }
.portal-card:nth-child(4) { grid-column: span 4; }
.portal-card:nth-child(5) { grid-column: span 4; }
.portal-card:nth-child(6) { grid-column: span 4; }
.portal-card:nth-child(7) { grid-column: span 3; }
.portal-card:nth-child(8) { grid-column: span 5; }
.portal-card:nth-child(9) { grid-column: span 4; }
.portal-card__orbit { position: absolute; z-index: -1; right: -3.1rem; bottom: -3.1rem; width: 11rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--card-color, var(--accent)) 80%, transparent); border-radius: 50%; opacity: 0.45; animation: slow-spin 13s linear infinite; }
.portal-card__orbit::before { position: absolute; inset: 1.4rem; content: ""; border: 1px dashed color-mix(in srgb, var(--card-color, var(--accent)) 65%, transparent); border-radius: 50%; }
.portal-card__orbit i { position: absolute; width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--card-color, var(--accent)); box-shadow: 0 0 0.85rem var(--card-color, var(--accent)); }
.portal-card__orbit i:first-child { top: 10%; left: 28%; }
.portal-card__orbit i:last-child { right: 5%; bottom: 32%; width: 0.26rem; height: 0.26rem; }
.portal-card__topline { display: flex; align-items: center; justify-content: space-between; color: rgba(255,255,255,0.72); font-size: 0.74rem; font-weight: 760; letter-spacing: 0.075em; }
.portal-card__icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid color-mix(in srgb, var(--card-color, var(--accent)) 60%, transparent); border-radius: 0.74rem 1rem 0.74rem 0.74rem; color: var(--card-color, var(--accent)); background: rgba(8,8,16,0.27); }
.portal-card__icon svg { width: 1.32rem; height: 1.32rem; fill: none; stroke: currentColor; stroke-width: 1.7; }
.portal-card__content { display: grid; gap: 0.35rem; max-width: 88%; }
.portal-card__label { font-size: clamp(1.42rem, 2.5vw, 2.35rem); font-weight: 780; letter-spacing: -0.025em; line-height: 1.05; }
.portal-card:nth-child(1) .portal-card__label { font-family: var(--display); font-size: clamp(1.95rem, 3.8vw, 3.55rem); font-weight: 780; letter-spacing: -0.04em; line-height: 0.98; text-transform: uppercase; }
.portal-card__description { color: rgba(255,244,236,0.78); font-size: 0.92rem; line-height: 1.55; }
.portal-card__arrow { position: absolute; right: 1rem; bottom: 0.92rem; color: var(--card-color, var(--accent)); font-size: 1.5rem; transition: transform 250ms ease; }
.portal-card:hover .portal-card__arrow { transform: translate(0.22rem, -0.22rem); }
.portal-card__badge { position: absolute; top: 2.2rem; right: 1rem; padding: 0.26rem 0.54rem; border: 1px solid rgba(255,208,225,0.55); border-radius: 100rem; color: #ffd8e7; background: rgba(99,20,59,0.65); font-size: 0.7rem; font-weight: 780; letter-spacing: 0.05em; }

.gaming-section { display: grid; grid-template-columns: minmax(0, 0.63fr) minmax(25rem, 1.37fr); gap: clamp(2rem, 8vw, 9rem); align-items: center; padding: clamp(5rem, 12vw, 10rem) clamp(1.25rem, 8vw, 9rem); border-block: 1px solid var(--line); background: linear-gradient(130deg, rgba(22,15,31,0.1), rgba(11,27,57,0.22)); }
.gaming-section__copy { max-width: 36rem; }
.gaming-section__copy > p:not(.eyebrow) { margin: 1.4rem 0 1.8rem; color: var(--muted); font-size: 1.08rem; line-height: 1.82; }
.quest-board { padding: clamp(1rem, 3vw, 2rem); border: 1px solid rgba(117,217,255,0.25); border-radius: 1.2rem 3rem 1.2rem 1.2rem; background: linear-gradient(145deg, rgba(25,47,88,0.74), rgba(12,13,31,0.84)); box-shadow: inset 0 1px 0 rgba(255,255,255,0.07), 0 1.5rem 3.6rem rgba(0,0,0,0.24); transform: perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); transition: transform 230ms ease, border-color 300ms ease; }
.quest-board:hover { border-color: rgba(117,217,255,0.7); }
.quest-board__topline { display: flex; justify-content: space-between; padding-bottom: 1rem; color: var(--cool); font-size: 0.76rem; font-weight: 760; letter-spacing: 0.085em; }
.handle-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.handle-list > div { display: grid; gap: 0.25rem; padding: 0.95rem; border: 1px solid rgba(170,211,255,0.17); border-radius: 0.8rem; background: rgba(8,13,29,0.32); }
.handle-list span { color: var(--cool); font-size: 0.72rem; font-weight: 760; letter-spacing: 0.075em; }
.handle-list strong { overflow: hidden; font-size: clamp(0.96rem, 1.5vw, 1.1rem); letter-spacing: -0.015em; text-overflow: ellipsis; white-space: nowrap; }
.game-tags { display: flex; flex-wrap: wrap; gap: 0.46rem; margin-top: 1.15rem; }
.game-tags span { padding: 0.42rem 0.68rem; border: 1px solid rgba(117,217,255,0.3); border-radius: 100rem; color: #d5efff; background: rgba(66,185,255,0.1); font-size: 0.8rem; font-weight: 700; }

.game-carousel { position: relative; display: grid; min-width: 0; gap: 1rem; padding: clamp(1.15rem, 2.8vw, 2rem); overflow: hidden; isolation: isolate; border: 1px solid var(--scene-edge); border-radius: var(--scene-radius); background: var(--scene-card); box-shadow: inset 0 1px 0 rgba(255,255,255,0.09), 0 1.8rem 4.8rem var(--scene-shadow); transition: border-color 750ms ease, border-radius 850ms cubic-bezier(.16,.78,.22,1), background 1000ms cubic-bezier(.16,.78,.22,1), box-shadow 850ms ease; }
.game-carousel::before,
.game-carousel::after { position: absolute; z-index: -1; content: ""; pointer-events: none; }
.game-carousel::before { inset: -44% -22% auto auto; width: 28rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--accent) 58%, transparent); border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--scene-lift) 90%, transparent), transparent 67%); box-shadow: 0 0 4rem var(--scene-glow); opacity: 0.8; animation: game-orbit 16s linear infinite; }
.game-carousel::after { inset: auto -12% -44% 36%; height: 13rem; border: 1px solid color-mix(in srgb, var(--accent) 32%, transparent); border-radius: 50%; background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--accent) 17%, transparent) 0 1px, transparent 1px 1.2rem); opacity: 0.62; transform: rotate(-7deg); }
.game-carousel__topline { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.game-carousel__kicker { margin: 0; color: var(--accent); font-size: 0.75rem; font-weight: 820; letter-spacing: 0.12em; text-transform: uppercase; }
.game-carousel h3 { max-width: 31rem; margin: 0.4rem 0 0; font-family: var(--display); font-size: clamp(2rem, 3.4vw, 3.75rem); font-weight: 780; letter-spacing: -0.045em; line-height: 0.96; text-transform: uppercase; }
.game-carousel h3 em { color: var(--room-emphasis, var(--accent)); font-family: var(--serif); font-weight: 600; letter-spacing: -0.035em; text-transform: none; }
.game-carousel__controls { display: grid; grid-template-columns: auto minmax(5.8rem, 1fr) auto; align-items: center; gap: 0.45rem; }
.game-carousel__control { min-height: 2.35rem; padding: 0.42rem 0.7rem; border: 1px solid color-mix(in srgb, var(--accent) 50%, var(--line)); border-radius: 100rem; color: var(--text); background: color-mix(in srgb, var(--ink-raised) 82%, transparent); font: inherit; font-size: 0.77rem; font-weight: 780; cursor: pointer; transition: color 220ms ease, background 220ms ease, border-color 220ms ease, transform 220ms ease; }
.game-carousel__control:hover:not(:disabled) { border-color: var(--accent); color: var(--room-title, var(--text)); background: color-mix(in srgb, var(--accent) 22%, var(--ink-raised)); transform: translateY(-0.12rem); }
.game-carousel__control:disabled { opacity: 0.38; cursor: not-allowed; }
.game-carousel__control:focus-visible,
.game-carousel__viewport:focus-visible,
.game-card > a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.game-carousel__position { min-width: 5.8rem; margin: 0; color: var(--muted); font-size: 0.78rem; font-weight: 720; text-align: center; white-space: nowrap; }
.game-carousel__intro { max-width: 43rem; margin: 0; color: var(--muted); font-size: 0.95rem; line-height: 1.55; }
.game-carousel__viewport { display: flex; gap: 0.85rem; margin: 0 -0.7rem; padding: 0.32rem 1.55rem 0.95rem 0.7rem; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; scroll-snap-type: x mandatory; scroll-padding-inline: 0.7rem; }
.game-carousel__viewport::-webkit-scrollbar { display: none; }
.game-card { position: relative; flex: 0 0 min(27rem, calc(100% - 2.4rem)); min-height: 25.5rem; overflow: hidden; scroll-snap-align: start; border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line)); border-radius: 0.95rem 2.45rem 0.95rem 0.95rem; background: linear-gradient(150deg, color-mix(in srgb, var(--room-overlay-ink) 56%, #301822), var(--ink-deep)); box-shadow: 0 1.25rem 2.8rem rgba(0,0,0,0.28); transform: translateY(0.48rem) scale(0.97); transform-origin: center bottom; transition: transform 430ms cubic-bezier(.16,.78,.22,1), border-color 430ms ease, box-shadow 430ms ease, filter 430ms ease; }
.game-card.is-active { border-color: color-mix(in srgb, var(--accent) 80%, #fff); box-shadow: 0 1.5rem 3.5rem rgba(0,0,0,0.4), 0 0 2.5rem color-mix(in srgb, var(--accent) 22%, transparent); filter: saturate(1.08); transform: translateY(0) scale(1); }
.game-card:hover { border-color: color-mix(in srgb, var(--accent) 88%, #fff); box-shadow: 0 1.75rem 4rem rgba(0,0,0,0.42), 0 0 3rem color-mix(in srgb, var(--accent) 30%, transparent); transform: translateY(-0.22rem) scale(1.01); }
.game-card > a { display: block; position: absolute; inset: 0; color: inherit; text-decoration: none; }
.game-card__cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0.84; filter: saturate(0.86) contrast(1.08) brightness(0.76); transition: filter 500ms ease, opacity 500ms ease, transform 900ms cubic-bezier(.16,.78,.22,1); }
.game-card.is-active .game-card__cover,
.game-card:hover .game-card__cover { opacity: 0.96; filter: saturate(1.13) contrast(1.07) brightness(0.88); transform: scale(1.055); }
.game-card--no-cover { background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 31%, var(--room-overlay-ink)), var(--ink-deep)); }
.game-card__wash { position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--room-overlay-ink) 25%, transparent) 0%, color-mix(in srgb, var(--room-overlay-ink) 68%, transparent) 45%, var(--room-overlay-ink) 100%); }
.game-card__wash::after { position: absolute; inset: 0; content: ""; background: linear-gradient(120deg, color-mix(in srgb, var(--accent) 23%, transparent), transparent 42%); mix-blend-mode: screen; opacity: 0.78; }
.game-card__rank { position: absolute; top: 1rem; right: 1rem; color: rgba(255,255,255,0.88); font-family: var(--display); font-size: clamp(2.25rem, 5vw, 3.55rem); font-weight: 820; letter-spacing: -0.075em; line-height: 0.8; text-shadow: 0 0 1.8rem color-mix(in srgb, var(--accent) 74%, transparent); }
.game-card__content { display: grid; position: absolute; right: 1.1rem; bottom: 1.1rem; left: 1.1rem; gap: 0.88rem; }
.game-card h4 { max-width: 24rem; margin: 0; color: #fff9f2; font-family: var(--display); font-size: clamp(1.72rem, 3.1vw, 2.7rem); font-weight: 790; letter-spacing: -0.045em; line-height: 0.98; text-transform: uppercase; text-wrap: balance; }
.game-card__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
.game-card__metric { display: grid; gap: 0.08rem; padding: 0.58rem 0.65rem; border: 1px solid rgba(255,255,255,0.16); border-radius: 0.5rem 0.86rem 0.5rem 0.5rem; background: rgba(8,8,15,0.42); backdrop-filter: blur(0.45rem); }
.game-card__metric span,
.game-card__achievement span { color: color-mix(in srgb, var(--accent) 75%, #fff); font-size: 0.69rem; font-weight: 780; letter-spacing: 0.072em; text-transform: uppercase; }
.game-card__metric strong { overflow: hidden; color: #fff8f0; font-size: 0.92rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.game-card__achievement { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin: 0; padding: 0.48rem 0.02rem 0 0.02rem; border-top: 1px solid rgba(255,255,255,0.17); }
.game-card__achievement strong { color: #fff8f0; font-size: 0.9rem; white-space: nowrap; }
.game-card__destination { justify-self: start; padding: 0.38rem 0.65rem; border: 1px solid color-mix(in srgb, var(--accent) 70%, transparent); border-radius: 100rem; color: #fff6ed; background: color-mix(in srgb, var(--accent) 15%, transparent); font-size: 0.77rem; font-weight: 780; letter-spacing: 0.03em; transition: background 240ms ease, color 240ms ease; }
.game-card:hover .game-card__destination,
.game-card:focus-within .game-card__destination { color: var(--room-overlay-ink); background: var(--accent); }
.game-carousel__footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 0.9rem 1.5rem; padding-top: 0.2rem; border-top: 1px solid color-mix(in srgb, var(--accent) 26%, var(--line)); }
.game-carousel__footer > p { max-width: 16rem; margin: 0.7rem 0 0; color: var(--dim); font-size: 0.76rem; line-height: 1.45; text-align: right; }
.game-carousel__handles { display: flex; flex-wrap: wrap; gap: 0.42rem 0.7rem; padding-top: 0.7rem; color: var(--muted); font-size: 0.78rem; }
.game-carousel__handles span { white-space: nowrap; }
.game-carousel__handles b { margin-right: 0.18rem; color: var(--accent); font-size: 0.7rem; letter-spacing: 0.07em; text-transform: uppercase; }
body[data-palette="balance"] .game-carousel { background: linear-gradient(145deg, rgba(78, 33, 44, 0.89), rgba(17, 15, 25, 0.96) 49%, rgba(76, 32, 16, 0.88)); }
body[data-palette="balance"] .game-carousel::before { border-radius: 50%; }
body[data-palette="jaxx"] .game-carousel { border-radius: 0.78rem 3.9rem 0.78rem 0.78rem; background: linear-gradient(145deg, rgba(101, 13, 39, 0.94), rgba(31, 7, 20, 0.97) 55%, rgba(92, 23, 21, 0.89)); box-shadow: inset 0 1px 0 rgba(255,207,210,0.14), 0 1.8rem 5.6rem rgba(91,3,30,0.5), 0 0 4rem rgba(255,59,105,0.16); }
body[data-palette="jaxx"] .game-carousel::before { border-radius: 47% 53% 60% 40% / 38% 46% 54% 62%; }
body[data-palette="jaxx"] .game-card { border-radius: 0.55rem 2.65rem 0.55rem 0.55rem; }
body[data-palette="knox"] .game-carousel { border-radius: 2.7rem 0.72rem 2.7rem 0.72rem; background: linear-gradient(135deg, rgba(96, 29, 10, 0.94), rgba(28, 11, 10, 0.98) 48%, rgba(71, 21, 10, 0.94)); box-shadow: inset 0 1px 0 rgba(255,205,150,0.14), 0 1.8rem 5.6rem rgba(77,18,6,0.55), 0 0 4rem rgba(243,102,38,0.17); }
body[data-palette="knox"] .game-carousel::before { border-radius: 14% 52% 17% 46% / 43% 18% 58% 21%; }
body[data-palette="knox"] .game-card { border-radius: 2.15rem 0.48rem 2.15rem 0.48rem; }
body[data-palette="knox"] .game-card__rank { color: #ffd9bb; }
.game-carousel.is-room-shifting { animation: game-gallery-room-wake 980ms cubic-bezier(.16,.78,.22,1) both; }

.convention-section { padding: clamp(5rem, 12vw, 10rem) clamp(1.25rem, 8vw, 9rem); }
.convention-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.convention-card { overflow: hidden; border: 1px solid var(--line); border-radius: 1rem 2.4rem 1rem 1rem; background: rgba(14,13,25,0.44); transition: border-color 250ms ease, background 250ms ease, transform 250ms ease; }
.convention-card:hover { border-color: var(--accent); transform: translateY(-0.18rem); }
.convention-card[open] { border-color: color-mix(in srgb, var(--accent) 70%, var(--line)); background: rgba(29,20,35,0.72); }
.convention-card summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.34rem 0.9rem; align-items: center; min-height: 7rem; padding: 1rem 1.1rem; cursor: pointer; list-style: none; }
.convention-card summary::-webkit-details-marker { display: none; }
.convention-card summary > * { min-width: 0; }
.convention-card__date { grid-column: 1; grid-row: 1; color: var(--accent); font-size: 0.76rem; font-weight: 780; letter-spacing: 0.075em; }
.convention-card__name { grid-column: 2; grid-row: 1; font-family: var(--display); font-size: clamp(1.5rem, 2.6vw, 2.45rem); font-weight: 780; letter-spacing: -0.025em; line-height: 1.05; text-transform: uppercase; }
.convention-card__toggle { grid-column: 3; grid-row: 1; display: grid; width: 1.7rem; height: 1.7rem; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--accent); font-size: 1.18rem; line-height: 1; transition: transform 250ms ease, background 250ms ease; }
.convention-card[open] .convention-card__toggle { transform: rotate(45deg); color: #1d1117; background: var(--accent); }
.convention-card__place { grid-column: 2 / 4; grid-row: 2; min-width: 0; color: var(--muted); font-size: 0.9rem; overflow-wrap: anywhere; }
.convention-card__status { grid-column: 1; grid-row: 2; color: var(--dim); font-size: 0.74rem; font-weight: 720; letter-spacing: 0.045em; text-transform: uppercase; }
.convention-card__detail { padding: 0 1.1rem 1.2rem 3.58rem; animation: detail-in 330ms ease both; }
.convention-card__note { max-width: 40rem; margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.75; }
.convention-card__links { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; }

.artists-section { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(2rem, 7vw, 9rem); padding: clamp(5rem, 12vw, 10rem) clamp(1.25rem, 8vw, 9rem); border-block: 1px solid var(--line); background: linear-gradient(125deg, rgba(96,31,52,0.17), rgba(9,20,48,0.22)); }
.artists-section__intro > p:last-child { max-width: 40rem; margin: 1.4rem 0 0; color: var(--muted); font-size: 1.08rem; line-height: 1.82; }
.artist-support { align-self: end; max-width: 50rem; color: var(--muted); font-size: 1.1rem; line-height: 1.82; }
.artist-support p { margin: 0 0 1rem; }
.artist-support strong { color: var(--text); }
.artist-support__quiet { padding-top: 1rem; border-top: 1px solid var(--line); color: var(--accent); font-family: var(--serif); font-size: 1.18rem; font-style: italic; line-height: 1.7; }
.artist-grid { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.artist-card { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; min-height: 5.7rem; padding: 0.95rem 0.2rem; border-bottom: 1px solid var(--line); transition: padding 220ms ease, color 220ms ease, background 220ms ease; }
.artist-card:nth-child(odd) { margin-right: 1.6rem; }
.artist-card:nth-child(even) { padding-left: 1.1rem; border-left: 1px solid var(--line); }
.artist-card:hover { padding-right: 0.75rem; padding-left: 0.65rem; color: var(--accent); background: rgba(255,255,255,0.025); }
.artist-card__number { color: var(--dim); font-size: 0.75rem; font-weight: 760; letter-spacing: 0.065em; }
.artist-card__name { font-size: clamp(1.12rem, 2vw, 1.5rem); font-weight: 760; letter-spacing: -0.02em; }
.artist-card__kind { color: var(--dim); font-size: 0.8rem; font-weight: 700; text-align: right; }
.artist-card__kind b { color: var(--accent); font-size: 1rem; }
.credit-note { grid-column: 2; margin-top: 1rem; color: var(--muted); font-size: 0.98rem; line-height: 1.75; }
.credit-note summary { color: var(--accent); cursor: pointer; font-weight: 720; }
.credit-note p { max-width: 45rem; margin: 0.75rem 0 0; }

.manifesto { display: flex; position: relative; min-height: 19rem; align-items: center; justify-content: center; padding: 3rem 1.5rem; overflow: hidden; text-align: center; }
.manifesto::before { position: absolute; z-index: -1; width: min(70vw, 62rem); aspect-ratio: 3; content: ""; border-radius: 50%; background: radial-gradient(ellipse, var(--accent-soft), transparent 67%); filter: blur(1rem); }
.manifesto p { margin: 0; color: rgba(255,248,240,0.86); font-family: var(--display); font-size: clamp(2rem, 4.5vw, 4.9rem); font-weight: 780; letter-spacing: -0.04em; line-height: 1; }
.manifesto p span { color: var(--accent); }
.manifesto__paw { position: absolute; top: 30%; right: 16%; color: var(--accent); font-size: 1.7rem; text-shadow: 0 0 1.5rem currentColor; animation: twinkle 3.6s ease-in-out infinite; }

.site-footer { display: grid; grid-template-columns: minmax(11rem, 0.46fr) minmax(12rem, 0.55fr) minmax(19rem, 1.2fr) auto; gap: clamp(1.5rem, 4vw, 4.5rem); align-items: start; padding: clamp(2.8rem, 6vw, 5.5rem) clamp(1.25rem, 8vw, 9rem) 2rem; border-top: 1px solid var(--line); color: var(--dim); background: linear-gradient(160deg, rgba(255,255,255,0.025), transparent 48%); font-size: 0.9rem; }
.site-footer__brand { display: grid; gap: 1rem; }
.site-footer__brand p { max-width: 16rem; margin: 0; line-height: 1.65; }
.footer-heading { margin: 0 0 0.85rem; color: var(--accent); font-size: 0.76rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.footer-sitemap { display: grid; align-content: start; }
.footer-sitemap > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.46rem 1rem; }
.footer-sitemap a { color: var(--muted); line-height: 1.45; transition: color 200ms ease, transform 200ms ease; }
.footer-sitemap a:hover { color: var(--text); transform: translateX(0.18rem); }
.site-disclosure { max-width: 46rem; padding-left: clamp(1rem, 3vw, 2.5rem); border-left: 1px solid var(--line); }
.site-disclosure p:not(.footer-heading) { margin: 0 0 0.88rem; line-height: 1.72; }
.site-disclosure p:last-child { margin-bottom: 0; color: #e7d6db; }
.site-footer__back-top { align-self: center; justify-self: end; padding: 0.55rem 0; color: var(--muted); font-weight: 720; white-space: nowrap; transition: color 200ms ease, transform 200ms ease; }
.site-footer__back-top:hover { color: var(--accent); transform: translateY(-0.16rem); }

.art-modal { width: min(94vw, 68rem); max-height: min(91vh, 58rem); padding: 0.85rem; overflow: auto; border: 1px solid rgba(255,255,255,0.3); border-radius: 1.2rem; color: var(--text); background: rgba(10,9,18,0.96); box-shadow: 0 2rem 8rem rgba(0,0,0,0.6); }
.art-modal::backdrop { background: rgba(5,5,11,0.78); backdrop-filter: blur(8px); }
.art-modal img { display: block; width: 100%; max-height: calc(91vh - 6rem); object-fit: contain; border-radius: 0.76rem; }
.art-modal p { margin: 0.65rem 0.25rem 0.15rem; color: var(--muted); font-size: 0.95rem; font-weight: 700; }
.art-modal__close { display: grid; position: absolute; z-index: 2; top: 1.25rem; right: 1.25rem; width: 2.3rem; height: 2.3rem; place-items: center; border: 1px solid rgba(255,255,255,0.34); border-radius: 50%; color: #fff; background: rgba(10,9,18,0.74); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.art-modal__close:hover { color: #1c1117; background: var(--accent); }

.age-gate { display: grid; position: fixed; z-index: 250; inset: 0; place-content: center; padding: 1.5rem; overflow: auto; text-align: center; background: radial-gradient(circle at 18% 78%, rgba(227,61,96,0.21), transparent 29rem), radial-gradient(circle at 80% 17%, rgba(66,185,255,0.18), transparent 29rem), #0d0b15; }
.age-gate::before,
.age-gate::after { position: absolute; z-index: -1; width: min(35rem, 76vw); aspect-ratio: 1; content: ""; border: 1px solid rgba(255,255,255,0.13); border-radius: 50%; }
.age-gate::before { top: -17rem; right: -10rem; box-shadow: 0 0 9rem rgba(66,185,255,0.12); }
.age-gate::after { bottom: -18rem; left: -10rem; border-color: rgba(227,61,96,0.16); }
.age-gate[hidden] { display: none; }
.age-gate__mark { display: grid; width: 3.8rem; height: 3.8rem; margin: 0 auto 1.65rem; place-items: center; border: 1px solid var(--accent); border-radius: 0.8rem 1.3rem 0.8rem 1.3rem; color: var(--accent); background: rgba(20,14,24,0.7); box-shadow: 0 0 3rem var(--accent-soft); font-size: 1rem; font-weight: 760; letter-spacing: 0.035em; }
.age-gate .eyebrow { justify-content: center; }
.age-gate h1 { max-width: 44rem; margin: 0; font-family: var(--display); font-size: clamp(2.8rem, 7vw, 5.7rem); font-weight: 780; letter-spacing: -0.04em; line-height: 1; text-transform: uppercase; }
.age-gate > p:not(.eyebrow):not(.age-gate__note) { max-width: 40rem; margin: 1.4rem auto 0; color: var(--muted); font-size: 1.06rem; line-height: 1.8; }
.age-gate__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-top: 1.8rem; }
.age-gate__note { min-height: 1.35rem; margin: 0.9rem 0 0; color: var(--dim); font-size: 0.84rem; }

.has-js [data-reveal] { opacity: 0; transform: translateY(1.5rem); transition: opacity 700ms ease, transform 700ms cubic-bezier(.2,.75,.2,1); }
.has-js [data-reveal].is-visible { opacity: 1; transform: translateY(0); }

/* A room selection changes the architecture of the den, not only its accent color. */
:root {
  --scene-lift: rgba(239, 112, 98, 0.22);
  --scene-glow: rgba(241, 174, 86, 0.2);
  --scene-slice: rgba(255, 226, 176, 0.16);
  --scene-edge: rgba(246, 201, 136, 0.36);
  --scene-shadow: rgba(8, 5, 10, 0.38);
  --scene-card: linear-gradient(145deg, rgba(59, 32, 43, 0.9), rgba(20, 15, 25, 0.95));
  --scene-section: linear-gradient(122deg, rgba(56, 25, 39, 0.58), rgba(22, 15, 24, 0.26) 47%, rgba(65, 32, 19, 0.54));
  --scene-section-strong: linear-gradient(132deg, rgba(69, 27, 41, 0.68), rgba(15, 14, 22, 0.5) 49%, rgba(81, 37, 19, 0.62));
  --scene-header: rgba(24, 13, 23, 0.9);
  --scene-radius: 1.1rem 3.4rem 1.1rem 1.1rem;
}

body[data-palette="balance"] {
  --scene-lift: rgba(221, 79, 93, 0.3);
  --scene-glow: rgba(242, 157, 73, 0.28);
  --scene-slice: rgba(255, 218, 160, 0.18);
  --scene-edge: rgba(248, 201, 132, 0.42);
  --scene-shadow: rgba(29, 8, 16, 0.38);
  --scene-card: linear-gradient(145deg, rgba(67, 34, 45, 0.9), rgba(22, 15, 25, 0.96));
  --scene-section: linear-gradient(122deg, rgba(77, 30, 46, 0.64), rgba(20, 15, 24, 0.3) 47%, rgba(84, 37, 18, 0.6));
  --scene-section-strong: linear-gradient(132deg, rgba(92, 31, 48, 0.7), rgba(16, 14, 23, 0.58) 49%, rgba(102, 43, 18, 0.66));
  --scene-header: rgba(28, 13, 24, 0.9);
  --scene-radius: 1.1rem 3.6rem 1.1rem 1.1rem;
}

body[data-palette="jaxx"] {
  --scene-lift: rgba(255, 42, 101, 0.46);
  --scene-glow: rgba(255, 158, 83, 0.32);
  --scene-slice: rgba(255, 209, 191, 0.24);
  --scene-edge: rgba(255, 155, 151, 0.68);
  --scene-shadow: rgba(104, 6, 38, 0.42);
  --scene-card: linear-gradient(145deg, rgba(104, 17, 44, 0.93), rgba(38, 7, 22, 0.97));
  --scene-section: linear-gradient(122deg, rgba(116, 13, 47, 0.78), rgba(48, 7, 25, 0.45) 47%, rgba(123, 27, 40, 0.62));
  --scene-section-strong: linear-gradient(132deg, rgba(135, 14, 50, 0.8), rgba(45, 6, 24, 0.58) 49%, rgba(151, 42, 47, 0.66));
  --scene-header: rgba(60, 6, 27, 0.93);
  --scene-radius: 1.7rem 5.2rem 1.7rem 1.7rem;
}

body[data-palette="knox"] {
  --scene-lift: rgba(255, 117, 42, 0.48);
  --scene-glow: rgba(154, 47, 19, 0.38);
  --scene-slice: rgba(255, 194, 129, 0.22);
  --scene-edge: rgba(255, 175, 101, 0.68);
  --scene-shadow: rgba(4, 3, 3, 0.62);
  --scene-card: linear-gradient(145deg, rgba(61, 27, 15, 0.96), rgba(13, 11, 11, 0.98));
  --scene-section: linear-gradient(122deg, rgba(30, 17, 13, 0.94), rgba(87, 29, 11, 0.62) 47%, rgba(15, 12, 11, 0.96));
  --scene-section-strong: linear-gradient(132deg, rgba(22, 15, 12, 0.98), rgba(106, 36, 12, 0.7) 49%, rgba(12, 10, 10, 0.98));
  --scene-header: rgba(31, 14, 9, 0.95);
  --scene-radius: 0.72rem 2.65rem 0.72rem 0.72rem;
}

.site-shell { position: relative; }
.site-shell::before,
.site-shell::after {
  position: fixed;
  inset: 0;
  content: "";
  pointer-events: none;
  transition: background 1100ms cubic-bezier(.16,.78,.22,1), filter 1100ms cubic-bezier(.16,.78,.22,1), opacity 900ms ease, transform 1100ms cubic-bezier(.16,.78,.22,1);
}
.site-shell::before {
  z-index: -2;
  background:
    radial-gradient(ellipse at 8% 7%, var(--scene-lift), transparent 38%),
    radial-gradient(ellipse at 95% 93%, var(--scene-glow), transparent 43%),
    linear-gradient(132deg, transparent 0 43%, var(--scene-slice) 43.1% 43.28%, transparent 43.4% 100%);
  opacity: 0.78;
  filter: saturate(1.08);
}
.site-shell::after {
  z-index: -1;
  background:
    repeating-linear-gradient(108deg, transparent 0 11.5rem, color-mix(in srgb, var(--scene-slice) 72%, transparent) 11.58rem 11.64rem, transparent 11.72rem 23.3rem),
    linear-gradient(90deg, transparent 0 12%, color-mix(in srgb, var(--scene-edge) 20%, transparent) 12.08%, transparent 12.18% 87.82%, color-mix(in srgb, var(--scene-edge) 20%, transparent) 87.92%, transparent 88%);
  opacity: 0.34;
  mix-blend-mode: soft-light;
}
body[data-palette="balance"] .site-shell::before { filter: saturate(1.1) brightness(1.02); }
body[data-palette="jaxx"] .site-shell::before { opacity: 0.98; filter: saturate(1.42) brightness(1.1); }
body[data-palette="jaxx"] .site-shell::after { opacity: 0.5; transform: skewY(-2deg); }
body[data-palette="knox"] .site-shell::before { opacity: 0.94; filter: saturate(1.32) contrast(1.12) brightness(0.88); }
body[data-palette="knox"] .site-shell::after { opacity: 0.52; transform: skewY(2.5deg) scale(1.08); }

.site-header {
  background: linear-gradient(180deg, var(--scene-header), color-mix(in srgb, var(--scene-header) 18%, transparent) 72%, transparent);
  border-bottom-color: var(--scene-edge);
  box-shadow: 0 1.15rem 4rem var(--scene-shadow);
}
.site-header::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent 2%, var(--accent) 18%, var(--scene-edge) 50%, var(--accent) 82%, transparent 98%);
  box-shadow: 0 0 1.25rem var(--accent-soft);
  opacity: 0.78;
  transform: scaleX(0.88);
  transition: background 850ms ease, box-shadow 850ms ease, opacity 700ms ease, transform 900ms cubic-bezier(.16,.78,.22,1);
}
body[data-palette="jaxx"] .site-header::after { opacity: 1; transform: scaleX(0.72); transform-origin: left; }
body[data-palette="knox"] .site-header::after { opacity: 1; transform: scaleX(0.96); transform-origin: right; }

.art-section,
.portal-section,
.convention-section {
  background:
    radial-gradient(ellipse at 7% 8%, color-mix(in srgb, var(--scene-lift) 76%, transparent), transparent 32rem),
    radial-gradient(ellipse at 96% 89%, color-mix(in srgb, var(--scene-glow) 66%, transparent), transparent 34rem),
    var(--scene-section);
  transition: background 1100ms cubic-bezier(.16,.78,.22,1), border-color 850ms ease, box-shadow 900ms ease;
}
.story-section,
.gaming-section,
.artists-section {
  background:
    radial-gradient(ellipse at 92% 14%, color-mix(in srgb, var(--scene-lift) 72%, transparent), transparent 34rem),
    radial-gradient(ellipse at 6% 88%, color-mix(in srgb, var(--scene-glow) 60%, transparent), transparent 30rem),
    var(--scene-section-strong);
  border-color: color-mix(in srgb, var(--scene-edge) 58%, var(--line));
  transition: background 1100ms cubic-bezier(.16,.78,.22,1), border-color 850ms ease, box-shadow 900ms ease;
}

.hero-gallery,
.story-deck,
.quest-board,
.adult-shelf,
.adult-shelf__vault,
.convention-card,
.credit-note,
.site-footer {
  border-color: var(--scene-edge);
  background: var(--scene-card);
  box-shadow: 0 1.5rem 4.5rem var(--scene-shadow), inset 0 1px 0 color-mix(in srgb, var(--scene-edge) 22%, transparent);
  transition: background 1000ms cubic-bezier(.16,.78,.22,1), border-color 850ms ease, box-shadow 1000ms cubic-bezier(.16,.78,.22,1), border-radius 900ms cubic-bezier(.16,.78,.22,1);
}
body[data-palette] .palette-controls {
  border-color: var(--scene-edge);
  background: var(--scene-card);
  box-shadow: 0 1.25rem 3.8rem var(--scene-shadow), inset 0 1px 0 color-mix(in srgb, var(--scene-edge) 24%, transparent);
}
.portal-card {
  border-color: var(--scene-edge);
  background: var(--scene-card);
  box-shadow: 0 1.2rem 3.8rem var(--scene-shadow), inset 0 1px 0 color-mix(in srgb, var(--scene-edge) 16%, transparent);
  transition: transform 260ms ease, background 900ms cubic-bezier(.16,.78,.22,1), border-color 700ms ease, box-shadow 800ms ease, border-radius 900ms cubic-bezier(.16,.78,.22,1);
}
.artist-card,
.art-library,
.art-section__footnote,
.story-tabs,
.story-tabs button,
.site-disclosure {
  border-color: color-mix(in srgb, var(--scene-edge) 48%, var(--line));
  transition: border-color 800ms ease, background 800ms ease, color 650ms ease;
}
body[data-palette] .convention-card[open] {
  border-color: var(--accent);
  background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 18%, transparent), transparent), var(--scene-card);
  box-shadow: 0 1.65rem 4.8rem var(--scene-shadow), 0 0 2.4rem var(--accent-soft), inset 0 1px 0 color-mix(in srgb, var(--scene-edge) 30%, transparent);
}

body[data-palette="balance"] .hero-gallery,
body[data-palette="balance"] .story-deck,
body[data-palette="balance"] .quest-board,
body[data-palette="balance"] .adult-shelf,
body[data-palette="balance"] .convention-card,
body[data-palette="balance"] .portal-card { border-radius: var(--scene-radius); }
body[data-palette="jaxx"] .hero-gallery,
body[data-palette="jaxx"] .story-deck,
body[data-palette="jaxx"] .quest-board,
body[data-palette="jaxx"] .adult-shelf,
body[data-palette="jaxx"] .convention-card,
body[data-palette="jaxx"] .portal-card {
  border-radius: var(--scene-radius);
  box-shadow: 0 1.65rem 5.2rem var(--scene-shadow), 0 0 2.8rem color-mix(in srgb, var(--scene-lift) 38%, transparent), inset 0 1px 0 color-mix(in srgb, var(--scene-edge) 30%, transparent);
}
body[data-palette="knox"] .hero-gallery,
body[data-palette="knox"] .story-deck,
body[data-palette="knox"] .quest-board,
body[data-palette="knox"] .adult-shelf,
body[data-palette="knox"] .convention-card,
body[data-palette="knox"] .portal-card {
  border-radius: var(--scene-radius);
  box-shadow: 0 1.8rem 5.5rem var(--scene-shadow), 0 0 2.3rem color-mix(in srgb, var(--scene-lift) 34%, transparent), inset 0 1px 0 color-mix(in srgb, var(--scene-edge) 28%, transparent);
}

body[data-palette="balance"] .hero-gallery {
  border-color: rgba(255, 212, 151, 0.58);
  background: linear-gradient(145deg, rgba(91, 38, 47, 0.9), rgba(19, 14, 24, 0.97));
}
body[data-palette="jaxx"] .hero-gallery {
  border-color: rgba(255, 164, 157, 0.84);
  background: linear-gradient(145deg, rgba(130, 15, 47, 0.96), rgba(38, 6, 23, 0.99));
  box-shadow: 0 2.2rem 7.5rem rgba(90, 5, 33, 0.52), 0 0 5.2rem rgba(255, 54, 103, 0.34), inset 0 1px 0 rgba(255, 225, 208, 0.18);
}
body[data-palette="knox"] .hero-gallery {
  border-color: rgba(255, 181, 105, 0.88);
  background: linear-gradient(145deg, rgba(79, 29, 13, 0.98), rgba(10, 10, 10, 0.99));
  box-shadow: 0 2.4rem 7.8rem rgba(0, 0, 0, 0.66), 0 0 5.1rem rgba(245, 101, 37, 0.34), inset 0 1px 0 rgba(255, 220, 180, 0.16);
}
body[data-palette="jaxx"] .hero__haze::after {
  border-color: rgba(255, 182, 169, 0.56);
  border-radius: 70% 30% 57% 43% / 43% 60% 40% 57%;
  box-shadow: inset 0 0 7rem rgba(255, 48, 99, 0.22), 0 0 4.5rem rgba(255, 48, 99, 0.14);
  transform: rotate(-15deg) scale(1.19);
}
body[data-palette="knox"] .hero__haze::after {
  border-color: rgba(255, 170, 91, 0.58);
  border-radius: 11% 55% 12% 43% / 48% 12% 57% 18%;
  box-shadow: inset 0 0 7rem rgba(239, 101, 36, 0.2), 0 0 4.5rem rgba(239, 101, 36, 0.12);
  transform: rotate(9deg) scale(1.18) skewX(-2deg);
}
body[data-palette="knox"] .hero__ring--one { border-radius: 14% 52% 15% 49% / 42% 14% 52% 16%; }
body[data-palette="knox"] .hero__ring--two { border-radius: 50% 16% 47% 17% / 18% 55% 17% 51%; }

body[data-palette="balance"] .section-heading h2 em,
body[data-palette="balance"] .gaming-section h2 em,
body[data-palette="balance"] .artists-section h2 em,
body[data-palette="balance"] .art-library__intro h3 em { color: #ffe0bd; }
body[data-palette="jaxx"] .section-heading h2 em,
body[data-palette="jaxx"] .gaming-section h2 em,
body[data-palette="jaxx"] .artists-section h2 em,
body[data-palette="jaxx"] .art-library__intro h3 em { color: #ffd0c5; }
body[data-palette="knox"] .section-heading h2 em,
body[data-palette="knox"] .gaming-section h2 em,
body[data-palette="knox"] .artists-section h2 em,
body[data-palette="knox"] .art-library__intro h3 em { color: #ffc590; }

body.is-shifting .site-shell::before { animation: room-scene-arrival 1.82s cubic-bezier(.16,.78,.22,1) both; }
body.is-shifting .site-shell::after { animation: room-line-arrival 1.74s cubic-bezier(.16,.78,.22,1) both; }
body.is-shifting .site-header::after { animation: room-header-sweep 1.62s cubic-bezier(.16,.78,.22,1) both; }
body.is-shifting .room-light__line { animation: room-light-cut 1.7s cubic-bezier(.16,.78,.22,1) both; }

@keyframes room-scene-arrival {
  0% { opacity: 0; filter: saturate(0.55) brightness(0.52); transform: scale(1.12); }
  20% { opacity: 1; filter: saturate(1.55) brightness(1.2); }
  68% { opacity: 0.92; transform: scale(1.02); }
  100% { opacity: 0.78; filter: saturate(1.08) brightness(1); transform: scale(1); }
}
@keyframes room-line-arrival {
  0% { opacity: 0; transform: scale(1.14) skewY(-5deg); }
  24% { opacity: 0.7; }
  72% { opacity: 0.5; transform: scale(1.02) skewY(1deg); }
  100% { opacity: 0.34; transform: scale(1) skewY(0); }
}
@keyframes room-header-sweep {
  0% { opacity: 0; transform: scaleX(0.04); }
  32% { opacity: 1; transform: scaleX(1); }
  100% { opacity: 0.78; transform: scaleX(0.88); }
}
@keyframes room-light-cut {
  0% { opacity: 0; filter: blur(5px) brightness(2); transform: rotate(-20deg) scaleX(0.22); }
  30% { opacity: 0.92; filter: blur(0) brightness(1.5); }
  100% { opacity: 0.36; filter: blur(0.7px) brightness(1); transform: rotate(-7deg) scaleX(1); }
}

/* Each choice becomes a full room identity: text, framing, hierarchy, and motion all change together. */
:root {
  --room-title: #fff5e8;
  --room-emphasis: #ffd29a;
  --room-soft-text: #f4ddd4;
  --room-kicker: #f0bb70;
  --room-nav-tag: "SHARED DEN";
  --room-signature-bg: linear-gradient(110deg, rgba(78, 31, 44, 0.58), rgba(42, 24, 30, 0.16));
  --room-signature-line: rgba(248, 201, 132, 0.52);
  --room-signature-shadow: rgba(239, 166, 84, 0.2);
  --room-section-rail: rgba(248, 201, 132, 0.6);
  --shift-word-tilt: -2deg;
}

body[data-palette="balance"] {
  --text: #fff5e9;
  --muted: #ddbbb5;
  --dim: #bc97a0;
  --line: rgba(255, 214, 197, 0.24);
  --line-strong: rgba(255, 225, 182, 0.58);
  --room-title: #fff1db;
  --room-emphasis: #ffd18d;
  --room-soft-text: #f6d9d2;
  --room-kicker: #f2bd6b;
  --room-nav-tag: "SHARED DEN";
  --room-signature-bg: linear-gradient(108deg, rgba(136, 37, 55, 0.5), rgba(105, 50, 23, 0.34) 54%, rgba(33, 21, 30, 0.2));
  --room-signature-line: rgba(255, 211, 150, 0.58);
  --room-signature-shadow: rgba(239, 157, 75, 0.22);
  --room-section-rail: rgba(255, 198, 128, 0.62);
  --shift-word-tilt: -2deg;
}

body[data-palette="jaxx"] {
  --text: #fff5f1;
  --muted: #f1c6ca;
  --dim: #d69aa6;
  --line: rgba(255, 190, 201, 0.28);
  --line-strong: rgba(255, 202, 210, 0.68);
  --room-title: #fff0ef;
  --room-emphasis: #ff9fac;
  --room-soft-text: #ffd9df;
  --room-kicker: #ff8296;
  --room-nav-tag: "ROSE ROOM";
  --room-signature-bg: linear-gradient(110deg, rgba(179, 19, 67, 0.64), rgba(84, 9, 38, 0.34) 68%, transparent);
  --room-signature-line: rgba(255, 165, 173, 0.74);
  --room-signature-shadow: rgba(255, 57, 104, 0.38);
  --room-section-rail: rgba(255, 99, 125, 0.82);
  --shift-word-tilt: -8deg;
}

body[data-palette="knox"] {
  --text: #fff1df;
  --muted: #e8c4a5;
  --dim: #c99876;
  --line: rgba(255, 183, 111, 0.27);
  --line-strong: rgba(255, 199, 143, 0.72);
  --room-title: #fff0df;
  --room-emphasis: #ffb36e;
  --room-soft-text: #ffd6b5;
  --room-kicker: #f5924e;
  --room-nav-tag: "EMBER ROOM";
  --room-signature-bg: linear-gradient(110deg, rgba(103, 35, 12, 0.68), rgba(28, 16, 11, 0.54) 68%, transparent);
  --room-signature-line: rgba(255, 179, 103, 0.76);
  --room-signature-shadow: rgba(239, 102, 38, 0.4);
  --room-section-rail: rgba(255, 132, 59, 0.9);
  --shift-word-tilt: 6deg;
}

.brand__label { display: inline-flex; align-items: center; gap: 0.52rem; }
.brand__label::after {
  padding: 0.18rem 0.42rem;
  border: 1px solid color-mix(in srgb, var(--accent) 58%, transparent);
  border-radius: 100rem;
  color: var(--room-kicker);
  content: var(--room-nav-tag);
  font-size: 0.64rem;
  font-weight: 760;
  letter-spacing: 0.105em;
  line-height: 1.15;
  transition: border-color 650ms ease, color 650ms ease, background 650ms ease;
}
body[data-palette="jaxx"] .brand__label::after { background: rgba(255, 70, 111, 0.12); }
body[data-palette="knox"] .brand__label::after { border-radius: 0.18rem; background: rgba(239, 103, 40, 0.13); }

body[data-palette] .display-title span:first-child,
body[data-palette] .section-heading h2,
body[data-palette] .story-section h2,
body[data-palette] .gaming-section h2,
body[data-palette] .artists-section h2,
body[data-palette] .art-library__intro h3,
body[data-palette] .adult-shelf__intro h3 { color: var(--room-title); }
body[data-palette] .display-title__accent {
  color: var(--room-emphasis);
  text-shadow: 0 0 3.5rem color-mix(in srgb, var(--room-emphasis) 44%, transparent);
}
body[data-palette] .section-heading h2 em,
body[data-palette] .gaming-section h2 em,
body[data-palette] .artists-section h2 em,
body[data-palette] .art-library__intro h3 em,
body[data-palette] .adult-shelf__intro h3 em { color: var(--room-emphasis); }
body[data-palette] .hero-gallery__topline,
body[data-palette] .hero-art-card__meta span,
body[data-palette] .story-panel__aside,
body[data-palette] .site-disclosure p:last-child { color: var(--room-soft-text); }
body[data-palette] .eyebrow,
body[data-palette] .footer-heading,
body[data-palette] .small-link { color: var(--room-kicker); }
body[data-palette="jaxx"] .display-title { text-shadow: 0 0 2.5rem rgba(255, 92, 128, 0.13); }
body[data-palette="knox"] .display-title {
  font-size: clamp(4.15rem, 11.4vw, 10.55rem);
  letter-spacing: -0.018em;
  line-height: 0.97;
  text-shadow: 0 0 2.5rem rgba(255, 121, 51, 0.13);
}

.room-signature {
  display: grid;
  max-width: min(100%, 31rem);
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.04rem 0.72rem;
  margin: 1.35rem 0 -0.35rem;
  padding: 0.62rem 0.82rem 0.66rem 0.7rem;
  border: 1px solid var(--room-signature-line);
  border-left-width: 0.28rem;
  border-radius: 0.7rem 1.7rem 0.7rem 0.7rem;
  color: var(--room-soft-text);
  background: var(--room-signature-bg);
  box-shadow: 0 0.8rem 2.6rem var(--room-signature-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  transition: color 850ms ease, border-color 850ms ease, background 850ms ease, box-shadow 850ms ease, border-radius 850ms cubic-bezier(.16,.78,.22,1), transform 850ms cubic-bezier(.16,.78,.22,1);
}
.room-signature__index {
  grid-row: span 2;
  align-self: center;
  color: var(--room-emphasis);
  font-family: var(--display);
  font-size: 2.16rem;
  font-weight: var(--display-weight);
  letter-spacing: var(--display-tracking);
  line-height: var(--display-leading);
}
.room-signature__title { color: var(--room-title); font-size: 0.77rem; font-weight: 760; letter-spacing: 0.12em; line-height: 1.35; text-transform: uppercase; }
.room-signature__detail { color: var(--room-soft-text); font-family: var(--serif); font-size: 0.94rem; font-style: italic; font-weight: 520; letter-spacing: -0.01em; line-height: 1.34; }
body[data-palette="balance"] .room-signature { transform: translateX(0); }
body[data-palette="jaxx"] .room-signature { border-radius: 1.45rem 2.8rem 1.45rem 1.45rem; transform: rotate(-1.1deg) translateX(-0.25rem); }
body[data-palette="knox"] .room-signature { border-radius: 0.28rem 1.35rem 0.28rem 0.28rem; transform: skewX(-3deg) translateX(0.22rem); }
body[data-palette="knox"] .room-signature > * { transform: skewX(3deg); }

.art-section,
.story-section,
.portal-section,
.gaming-section,
.convention-section,
.artists-section { transition: background 1100ms cubic-bezier(.16,.78,.22,1), border-color 850ms ease, box-shadow 900ms ease; }
body[data-palette="balance"] .art-section,
body[data-palette="balance"] .story-section,
body[data-palette="balance"] .portal-section,
body[data-palette="balance"] .gaming-section,
body[data-palette="balance"] .convention-section,
body[data-palette="balance"] .artists-section { box-shadow: inset 0.13rem 0 0 rgba(255, 154, 130, 0.64), inset -0.13rem 0 0 rgba(255, 194, 111, 0.64); }
body[data-palette="jaxx"] .art-section,
body[data-palette="jaxx"] .story-section,
body[data-palette="jaxx"] .portal-section,
body[data-palette="jaxx"] .gaming-section,
body[data-palette="jaxx"] .convention-section,
body[data-palette="jaxx"] .artists-section { box-shadow: inset 0.34rem 0 0 var(--room-section-rail), inset 0 1px 0 rgba(255, 191, 202, 0.18); }
body[data-palette="knox"] .art-section,
body[data-palette="knox"] .story-section,
body[data-palette="knox"] .portal-section,
body[data-palette="knox"] .gaming-section,
body[data-palette="knox"] .convention-section,
body[data-palette="knox"] .artists-section { box-shadow: inset -0.34rem 0 0 var(--room-section-rail), inset 0 1px 0 rgba(255, 195, 133, 0.16); }

body[data-palette="balance"] .site-shell::after {
  background:
    linear-gradient(90deg, transparent 0 48%, rgba(255, 203, 143, 0.18) 48.08% 48.18%, transparent 48.28% 100%),
    repeating-linear-gradient(118deg, transparent 0 14rem, rgba(255, 194, 132, 0.1) 14.08rem 14.15rem, transparent 14.23rem 28rem);
  mix-blend-mode: screen;
  opacity: 0.42;
}
body[data-palette="jaxx"] .site-shell::after {
  background:
    repeating-radial-gradient(ellipse at 8% 13%, transparent 0 5.4rem, rgba(255, 167, 181, 0.12) 5.46rem 5.54rem, transparent 5.62rem 11rem),
    linear-gradient(124deg, transparent 0 54%, rgba(255, 187, 195, 0.12) 54.1% 54.22%, transparent 54.34% 100%);
  mix-blend-mode: screen;
  opacity: 0.66;
}
body[data-palette="knox"] .site-shell::after {
  background:
    repeating-linear-gradient(90deg, transparent 0 7.3rem, rgba(255, 174, 99, 0.12) 7.38rem 7.47rem, transparent 7.55rem 14.8rem),
    linear-gradient(45deg, transparent 0 41%, rgba(255, 145, 63, 0.14) 41.1% 41.28%, transparent 41.4% 100%);
  mix-blend-mode: screen;
  opacity: 0.6;
}

.hero-art-card { transition: transform 700ms cubic-bezier(.18,.82,.18,1), box-shadow 680ms ease, border-color 600ms ease, filter 680ms ease, opacity 680ms ease; }
body[data-palette="jaxx"] .hero-art-card--jaxx { z-index: 3; filter: saturate(1.1) brightness(1.04); opacity: 1; transform: translate(-0.42rem, -0.48rem) rotate(-4.2deg) scale(1.065); }
body[data-palette="jaxx"] .hero-art-card--knox { filter: saturate(0.68) brightness(0.76); opacity: 0.74; transform: translate(0.36rem, 0.42rem) rotate(3.4deg) scale(0.91); }
body[data-palette="knox"] .hero-art-card--knox { z-index: 3; filter: saturate(1.12) brightness(1.03); opacity: 1; transform: translate(0.42rem, -0.5rem) rotate(4.1deg) scale(1.065); }
body[data-palette="knox"] .hero-art-card--jaxx { filter: saturate(0.68) brightness(0.72); opacity: 0.74; transform: translate(-0.35rem, 0.48rem) rotate(-3.3deg) scale(0.91); }
body[data-palette="balance"] .hero-art-card--jaxx,
body[data-palette="balance"] .hero-art-card--knox { filter: none; opacity: 1; }

.mood-shift {
  --shift-word-color: rgba(255, 228, 185, 0.16);
  --shift-index-color: rgba(255, 237, 204, 0.86);
  --shift-axis-color: rgba(255, 224, 178, 0.72);
  background: radial-gradient(ellipse at center, color-mix(in srgb, var(--shift-one) 14%, transparent), transparent 52%);
}
.mood-shift__word {
  position: absolute;
  z-index: 0;
  top: 50%;
  left: 50%;
  max-width: 100vw;
  overflow: hidden;
  color: var(--shift-word-color);
  font-family: var(--display);
  font-size: clamp(9rem, 31vw, 29rem);
  font-weight: 850;
  letter-spacing: -0.09em;
  line-height: 0.72;
  opacity: 0;
  text-transform: uppercase;
  transform: translate(-50%, -50%) rotate(var(--shift-word-tilt)) scale(0.68);
  white-space: nowrap;
}
.mood-shift__index {
  position: absolute;
  z-index: 1;
  top: clamp(1.5rem, 6vw, 5rem);
  right: clamp(1.5rem, 6vw, 6rem);
  padding: 0.32rem 0.46rem;
  border: 1px solid color-mix(in srgb, var(--shift-index-color) 62%, transparent);
  border-radius: 0.32rem;
  color: var(--shift-index-color);
  font-family: var(--display);
  font-size: clamp(1rem, 2.2vw, 1.75rem);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
  opacity: 0;
  transform: translateY(-1rem) scale(0.86);
}
.mood-shift__axis {
  position: absolute;
  z-index: 1;
  bottom: clamp(2rem, 8vh, 5.5rem);
  left: 50%;
  width: min(72vw, 64rem);
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--shift-axis-color) 24%, var(--shift-axis-color) 76%, transparent);
  box-shadow: 0 0 1.2rem var(--shift-one);
  opacity: 0;
  transform: translateX(-50%) scaleX(0.04);
}
.mood-shift[data-palette="balance"] { --shift-word-color: rgba(255, 213, 158, 0.18); --shift-index-color: rgba(255, 229, 194, 0.9); --shift-axis-color: rgba(255, 207, 141, 0.78); }
.mood-shift[data-palette="balance"]::before { background: radial-gradient(ellipse at 22% 50%, rgba(249, 88, 109, 0.62), transparent 32%), radial-gradient(ellipse at 78% 50%, rgba(249, 159, 74, 0.64), transparent 32%), linear-gradient(90deg, #260d1a, #170e17 48%, #261008); }
.mood-shift[data-palette="balance"] .mood-shift__frame { border-radius: 48% 52% 45% 55% / 38% 58% 42% 62%; }
.mood-shift[data-palette="jaxx"] { --shift-word-color: rgba(255, 193, 207, 0.24); --shift-index-color: rgba(255, 220, 225, 0.94); --shift-axis-color: rgba(255, 180, 194, 0.86); }
.mood-shift[data-palette="jaxx"]::before { background: radial-gradient(ellipse at 25% 34%, rgba(255, 52, 106, 0.88), transparent 31%), radial-gradient(ellipse at 78% 75%, rgba(255, 177, 102, 0.48), transparent 34%), linear-gradient(128deg, #4c071d, #210716 54%, #320b16); }
.mood-shift[data-palette="jaxx"] .mood-shift__word { font-family: var(--serif); font-style: italic; letter-spacing: -0.13em; }
.mood-shift[data-palette="jaxx"] .mood-shift__frame { border-radius: 68% 32% 61% 39% / 37% 66% 34% 63%; }
.mood-shift[data-palette="knox"] { --shift-word-color: rgba(255, 175, 100, 0.22); --shift-index-color: rgba(255, 216, 167, 0.95); --shift-axis-color: rgba(255, 169, 89, 0.88); }
.mood-shift[data-palette="knox"]::before { background: radial-gradient(ellipse at 76% 42%, rgba(255, 119, 44, 0.82), transparent 28%), radial-gradient(ellipse at 22% 74%, rgba(139, 39, 14, 0.6), transparent 33%), linear-gradient(132deg, #100b09, #2c1008 48%, #080808); }
.mood-shift[data-palette="knox"] .mood-shift__word { letter-spacing: 0.01em; }
.mood-shift[data-palette="knox"] .mood-shift__frame { border-radius: 0.45rem 3.4rem 0.45rem 0.45rem; }
.mood-shift[data-palette="knox"] .mood-shift__index { border-radius: 0; }

.mood-shift.is-active { animation: mood-stage 3.08s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active::before { animation: mood-bloom 3.08s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active::after { animation: mood-field 2.78s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__frame { animation: mood-frame 2.92s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__ring--one { animation: mood-ring 2.42s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__ring--two { animation: mood-ring 2.62s 0.08s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__flare--one { animation: mood-flare-left 2.28s 0.12s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__flare--two { animation: mood-flare-right 2.28s 0.16s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__word { animation: mood-word 2.72s 0.1s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__index { animation: mood-index 1.86s 0.3s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__axis { animation: mood-axis 2.18s 0.32s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__kicker { animation: mood-copy 1.72s 0.38s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__title { animation: mood-copy 2.28s 0.5s cubic-bezier(.16,.78,.22,1) both; }
.mood-shift.is-active .mood-shift__detail { animation: mood-copy 1.75s 0.88s cubic-bezier(.16,.78,.22,1) both; }
body.is-shifting .site-shell { animation: room-world-takeover 3.08s cubic-bezier(.16,.78,.22,1) both; }
body.is-shifting .room-signature { animation: room-signature-arrival 2.7s cubic-bezier(.16,.78,.22,1) both; }

@keyframes mood-word {
  0% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--shift-word-tilt)) scale(0.58); }
  24% { opacity: 1; }
  72% { opacity: 0.42; transform: translate(-50%, -50%) rotate(var(--shift-word-tilt)) scale(1.07); }
  100% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--shift-word-tilt)) scale(1.16); }
}
@keyframes mood-index {
  0% { opacity: 0; transform: translateY(-1rem) scale(0.8); }
  25% { opacity: 1; transform: translateY(0) scale(1); }
  75% { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-0.3rem) scale(1.04); }
}
@keyframes mood-axis {
  0% { opacity: 0; transform: translateX(-50%) scaleX(0.02); }
  28% { opacity: 1; transform: translateX(-50%) scaleX(1); }
  78% { opacity: 0.72; transform: translateX(-50%) scaleX(1.08); }
  100% { opacity: 0; transform: translateX(-50%) scaleX(1.18); }
}
@keyframes room-world-takeover {
  0% { filter: saturate(0.42) brightness(0.42) contrast(1.18); }
  18% { filter: saturate(1.6) brightness(1.18) contrast(1.06); }
  62% { filter: saturate(1.18) brightness(1.04); }
  100% { filter: none; }
}
@keyframes room-signature-arrival {
  0% { opacity: 0.34; filter: brightness(0.52); }
  22% { opacity: 1; filter: brightness(1.22); }
  100% { opacity: 1; filter: none; }
}

@media (max-width: 560px) {
  .room-signature { max-width: 100%; margin-top: 1.15rem; border-radius: 0.68rem 1.45rem 0.68rem 0.68rem; }
  .room-signature__index { font-size: 1.72rem; }
  .mood-shift__word { font-size: clamp(7.5rem, 34vw, 15rem); }
  .mood-shift__index { top: 1.35rem; right: 1.35rem; }
  .mood-shift__axis { bottom: 2.15rem; width: 82vw; }
}

@keyframes drift { from { transform: translate3d(-6%, -4%, 0) rotate(0deg) scale(0.93); } to { transform: translate3d(9%, 8%, 0) rotate(24deg) scale(1.11); } }
@keyframes blink { 50% { transform: scale(1.26); opacity: 0.52; } }
@keyframes slow-spin { to { transform: rotate(360deg); } }
@keyframes twinkle { 50% { transform: scale(1.42) rotate(14deg); opacity: 0.42; } }
@keyframes cue { 50% { transform: scaleX(1.5); transform-origin: left; opacity: 0.5; } }
@keyframes panel-in { from { opacity: 0; transform: translateY(0.65rem); } to { opacity: 1; transform: translateY(0); } }
@keyframes detail-in { from { opacity: 0; transform: translateY(-0.25rem); } to { opacity: 1; transform: translateY(0); } }
@keyframes paw-fade { 0% { opacity: 0; transform: scale(0.48); } 18% { opacity: 0.76; transform: scale(1); } 100% { opacity: 0; transform: translateY(1.15rem) scale(0.84); } }
@keyframes mood-stage { 0% { opacity: 0; } 7% { opacity: 1; } 76% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } }
@keyframes mood-bloom { 0% { opacity: 0; transform: scale(0.54); } 18% { opacity: 0.96; } 66% { opacity: 0.8; } 100% { opacity: 0; transform: scale(1.38); } }
@keyframes mood-field { 0% { opacity: 0; transform: scaleX(0.08); } 17% { opacity: 0.72; transform: scaleX(1); } 74% { opacity: 0.46; transform: scaleX(1.12); } 100% { opacity: 0; transform: scaleX(1.3); } }
@keyframes mood-frame { 0% { opacity: 0; transform: scale(0.9); } 18% { opacity: 0.8; transform: scale(1); } 72% { opacity: 0.66; transform: scale(1.025); } 100% { opacity: 0; transform: scale(1.05); } }
@keyframes mood-ring { 0% { opacity: 0; transform: translate(-50%, -50%) scale(0.2) rotate(-8deg); } 18% { opacity: 0.8; } 74% { opacity: 0.32; } 100% { opacity: 0; transform: translate(-50%, -50%) scale(1.34) rotate(10deg); } }
@keyframes mood-flare-left { 0% { opacity: 0; transform: scaleX(0.08); } 25% { opacity: 0.9; transform: scaleX(1); } 76% { opacity: 0.5; transform: scaleX(1.08); } 100% { opacity: 0; transform: scaleX(1.25); } }
@keyframes mood-flare-right { 0% { opacity: 0; transform: scaleX(0.08); } 25% { opacity: 0.9; transform: scaleX(1); } 76% { opacity: 0.5; transform: scaleX(1.08); } 100% { opacity: 0; transform: scaleX(1.25); } }
@keyframes mood-copy { 0% { opacity: 0; transform: translateY(1rem) scale(0.92); } 28% { opacity: 1; transform: translateY(0) scale(1); } 76% { opacity: 1; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-0.42rem) scale(1.02); } }
@keyframes room-drift-one { from { transform: translate3d(-5%, -3%, 0) rotate(-8deg) scale(0.96); } to { transform: translate3d(9%, 8%, 0) rotate(8deg) scale(1.1); } }
@keyframes room-drift-two { from { transform: translate3d(4%, 6%, 0) rotate(13deg) scale(0.94); } to { transform: translate3d(-8%, -6%, 0) rotate(-7deg) scale(1.13); } }
@keyframes room-line-sweep { from { filter: blur(0); } to { filter: blur(0.8px); } }
@keyframes hero-haze { from { opacity: 0.58; } to { opacity: 0.82; } }
@keyframes jaxx-card-glow { 0%, 100% { box-shadow: 0 1.8rem 4.4rem rgba(0,0,0,0.38), 0 0 2.3rem rgba(255, 62, 104, 0.32); } 50% { box-shadow: 0 2.05rem 4.8rem rgba(0,0,0,0.42), 0 0 3.25rem rgba(255, 92, 127, 0.56); } }
@keyframes knox-card-glow { 0%, 100% { box-shadow: 0 1.8rem 4.4rem rgba(0,0,0,0.4), 0 0 2.5rem rgba(244, 109, 43, 0.34); } 50% { box-shadow: 0 2.05rem 4.9rem rgba(0,0,0,0.44), 0 0 3.4rem rgba(255, 145, 66, 0.58); } }
@keyframes jaxx-visual-glow { 0%, 100% { box-shadow: 0 0 0 1px rgba(255, 74, 105, 0.28), 0 2.5rem 7.5rem rgba(226, 24, 69, 0.5); } 50% { box-shadow: 0 0 0 1px rgba(255, 126, 130, 0.46), 0 2.8rem 8.4rem rgba(243, 35, 83, 0.64); } }
@keyframes knox-visual-glow { 0%, 100% { box-shadow: 0 0 0 1px rgba(237, 103, 41, 0.3), 0 2.5rem 7.5rem rgba(183, 56, 20, 0.54); } 50% { box-shadow: 0 0 0 1px rgba(255, 177, 101, 0.48), 0 2.8rem 8.4rem rgba(204, 68, 24, 0.68); } }
@keyframes game-orbit { from { transform: rotate(0deg) scale(0.94); } to { transform: rotate(360deg) scale(1.07); } }
@keyframes game-gallery-room-wake { 0% { filter: brightness(0.58) saturate(0.54); transform: scale(0.972); } 26% { filter: brightness(1.24) saturate(1.42); transform: scale(1.01); } 100% { filter: none; transform: scale(1); } }

/* The display face carries the room; the supporting copy stays easy to live in. */
.display-title,
.section-heading h2,
.story-section h2,
.gaming-section h2,
.artists-section h2,
.art-chapter__copy h3,
.art-library__intro h3,
.adult-shelf__intro h3,
.story-panel h3,
.portal-card__label,
.game-carousel h3,
.game-card h4,
.convention-card__name,
.manifesto p,
.age-gate h1,
.mood-shift__title {
  font-family: var(--display);
  font-weight: var(--display-weight);
  letter-spacing: var(--display-tracking);
  line-height: var(--display-leading);
  text-wrap: balance;
  transition: color 800ms ease, font-weight 800ms ease, letter-spacing 800ms cubic-bezier(.16,.78,.22,1), text-shadow 800ms ease;
}

.section-heading h2 em,
.gaming-section h2 em,
.artists-section h2 em,
.art-library__intro h3 em,
.adult-shelf__intro h3 em,
.game-carousel h3 em {
  display: inline-block;
  font-family: var(--serif);
  font-size: 1.08em;
  font-style: italic;
  font-weight: 540;
  letter-spacing: -0.05em;
  line-height: 0.84;
}

.story-panel__aside,
.artist-support__quiet,
.art-section__footnote {
  font-family: var(--serif);
  font-weight: 540;
  letter-spacing: -0.012em;
  line-height: 1.55;
}

.art-chapter__copy > p:not(.eyebrow),
.art-library__intro p:last-child,
.adult-shelf__intro > p:last-child,
.story-section__intro > p:last-child,
.story-panel > p,
.gaming-section__copy > p:not(.eyebrow),
.convention-card__note,
.artists-section__intro > p:last-child,
.artist-support,
.credit-note,
.site-disclosure p,
.site-footer__brand p {
  font-weight: 460;
  letter-spacing: -0.012em;
  line-height: 1.84;
}

.palette-picker__heading > span,
.palette-option__number,
.story-panel__number,
.game-carousel__kicker,
.game-card__metric span,
.game-card__achievement span,
.convention-card__date,
.convention-card__status,
.footer-heading {
  font-family: var(--sans);
  font-weight: 760;
  letter-spacing: var(--label-tracking);
  line-height: 1.4;
}

.game-card__rank,
.mood-shift__index {
  font-weight: var(--display-weight);
  letter-spacing: calc(var(--display-tracking) - 0.015em);
}

body[data-palette="jaxx"] .mood-shift__word {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 580;
  letter-spacing: -0.13em;
}

body[data-palette="knox"] .mood-shift__word {
  font-weight: var(--display-weight);
  letter-spacing: -0.03em;
}

@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; min-height: auto; gap: 3rem; padding-top: 8.8rem; }
  .hero-gallery { justify-self: start; width: min(100%, 36rem); margin-left: clamp(0rem, 9vw, 6rem); }
  .art-library,
  .adult-shelf { grid-template-columns: 1fr; gap: 1.8rem; }
  .art-library__intro p:last-child { max-width: 34rem; }
  .art-chapter,
  .art-chapter--knox,
  .story-section,
  .gaming-section,
  .artists-section { grid-template-columns: 1fr; }
  .art-chapter--knox .art-chapter__visual { order: 0; }
  .art-chapter__copy { max-width: 44rem; }
  .story-section { gap: 2.8rem; }
  .artists-section { gap: 2.4rem; }
  .portal-card:nth-child(n) { grid-column: span 6; min-height: 14rem; }
  .portal-card:nth-child(1) { min-height: 16rem; }
  .game-carousel { width: min(100%, 48rem); }
  .artist-support { max-width: 48rem; }
  .credit-note { grid-column: auto; }
  .site-footer { grid-template-columns: minmax(11rem, 0.5fr) minmax(13rem, 0.8fr); }
  .site-disclosure { grid-column: 1 / -1; max-width: none; padding: 1.5rem 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .site-footer__back-top { justify-self: start; }
}

@media (max-width: 760px) {
  .site-header { padding: 0.85rem 1rem; }
  .site-nav { gap: 0.6rem; overflow-x: auto; max-width: calc(100vw - 5rem); scrollbar-width: none; }
  .site-nav::-webkit-scrollbar { display: none; }
  .site-nav > a { display: none; }
  .site-nav > a:nth-child(1), .site-nav > a:nth-child(2) { display: block; }
  .brand__label { display: none; }
  .section-heading { grid-template-columns: 1fr; gap: 1.2rem; }
  .section-heading__side { gap: 0.85rem; }
  .palette-controls { grid-template-columns: 1fr; }
  .palette-controls button { min-height: 5.35rem; grid-template-columns: 2.1rem minmax(0, 1fr); }
  .convention-grid { grid-template-columns: 1fr; }
  .artist-grid { grid-template-columns: 1fr; }
  .artist-card:nth-child(odd) { margin-right: 0; }
  .artist-card:nth-child(even) { padding-left: 0.2rem; border-left: 0; }
  .credit-note { margin-top: 0; }
  .game-carousel__topline { align-items: flex-start; flex-direction: column; }
  .game-carousel__controls { width: 100%; max-width: 25rem; }
  .game-card { flex-basis: min(30rem, calc(100% - 2.2rem)); }
}

@media (max-width: 560px) {
  .hero { padding: 7.3rem 1.25rem 4rem; }
  .display-title { font-size: clamp(3.6rem, 20vw, 6.4rem); line-height: var(--display-leading); }
  .hero__actions { display: grid; grid-template-columns: 1fr; }
  .button { width: 100%; }
  .hero-gallery { width: 100%; min-height: 0; margin: 0; padding: 0.6rem; }
  .hero-gallery__deck { min-height: clamp(22.5rem, 84vw, 27rem); gap: 0.55rem; }
  .hero-gallery__topline { font-size: 0.68rem; }
  .palette-picker__heading { align-items: flex-start; flex-direction: column; }
  .palette-picker__current { justify-content: flex-start; text-align: left; }
  .mood-shift { padding: 1.3rem; }
  .mood-shift__frame { inset: 0.7rem; }
  .mood-shift__detail { max-width: 19rem; }
  .hero-art-card { width: auto; }
  .hero-art-card__meta { right: 0.75rem; bottom: 0.68rem; left: 0.75rem; }
  .art-library__grid { grid-template-columns: 1fr 1fr; }
  .adult-shelf { padding: 1.1rem; border-radius: 1.1rem 2.35rem 1.1rem 1.1rem; }
  .adult-shelf__vault { min-height: auto; padding: 1rem; }
  .adult-shelf__lock { grid-template-columns: auto 1fr; }
  .adult-shelf__actions { align-items: stretch; }
  .adult-shelf__note { padding-left: 0.1rem; }
  .art-shelf-card { min-height: 12.75rem; }
  .art-shelf-card:last-child { grid-column: 1 / -1; min-height: 13.5rem; }
  .hero__cue { display: none; }
  .art-section,
  .portal-section,
  .gaming-section,
  .convention-section,
  .artists-section { padding-right: 1.25rem; padding-left: 1.25rem; }
  .art-chapter__visual { min-height: 23rem; }
  .art-chapter__copy h3 { font-size: 3.05rem; }
  .story-section { padding: 4.5rem 1.25rem; }
  .story-panel { min-height: 23rem; padding: 1.4rem; }
  .story-tabs button { font-size: 0.82rem; }
  .portal-grid { grid-template-columns: 1fr; }
  .portal-card:nth-child(n) { grid-column: 1; }
  .handle-list { grid-template-columns: 1fr; }
  .game-carousel { gap: 0.85rem; padding: 1.05rem; }
  .game-carousel__topline { gap: 0.8rem; }
  .game-carousel h3 { font-size: clamp(2.18rem, 11vw, 3.15rem); }
  .game-carousel__controls { grid-template-columns: 1fr auto 1fr; max-width: none; }
  .game-carousel__control { padding-right: 0.45rem; padding-left: 0.45rem; }
  .game-carousel__position { min-width: 5.25rem; font-size: 0.73rem; }
  .game-carousel__viewport { margin-right: -0.45rem; margin-left: -0.45rem; padding-right: 1rem; padding-left: 0.45rem; }
  .game-card { flex-basis: calc(100% - 1.1rem); min-height: 24.25rem; }
  .game-card__content { right: 0.85rem; bottom: 0.85rem; left: 0.85rem; gap: 0.7rem; }
  .game-card__stats { gap: 0.38rem; }
  .game-card__metric { padding: 0.5rem; }
  .game-card__metric strong { font-size: 0.86rem; }
  .game-carousel__footer { align-items: flex-start; flex-direction: column; gap: 0.55rem; }
  .game-carousel__footer > p { max-width: none; margin-top: 0; text-align: left; }
  .convention-card summary { grid-template-columns: auto 1fr auto; min-height: 6.55rem; }
  .convention-card__detail { padding-left: 1.1rem; }
  .site-footer { grid-template-columns: 1fr; gap: 2rem; }
  .footer-sitemap > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__brand p { display: block; }
  .site-footer__back-top { justify-self: start; }
  .age-gate { padding: 1.1rem; }
  .age-gate__actions { display: grid; width: 100%; }
  .age-gate__actions .button { width: 100%; }
}

@media (hover: none), (pointer: coarse) {
  .cursor-glow, .paw-trail { display: none; }
  .hero-gallery, .quest-board, .portal-card, .game-card, .game-card.is-active { transform: none; }
}

body.quiet *,
body.quiet *::before,
body.quiet *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.001ms !important; }
body.quiet .cursor-glow,
body.quiet .paw-trail { display: none; }
body.quiet .mood-shift { display: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.001ms !important; }
  .cursor-glow, .paw-trail, .mood-shift { display: none; }
  .has-js [data-reveal] { opacity: 1; transform: none; }
}

@media (prefers-contrast: more) {
  :root { --muted: #fff3eb; --dim: #e9d9df; --line: rgba(255,255,255,0.52); }
  .portal-card, .story-deck, .convention-card { background: #161022; }
}
