/* Opencloud gaming mode — retro disco 70–80s, coder-clean */

html[data-theme="gaming"] {
  --bg: #12081a;
  --ink: #ffe8ff;
  --mute: #c89ad8;
  --line: #5a2a6e;
  --panel: #1c0f28;
  --lime: #ff2bd6;
  --cga-cyan: #39f3ff;
  --cga-magenta: #ff2bd6;
  --cga-yellow: #ffe566;
  color-scheme: dark;
}

html[data-theme="gaming"] body.oc-body {
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(255, 43, 214, 0.18), transparent 55%),
    radial-gradient(900px 500px at 100% 0%, rgba(57, 243, 255, 0.12), transparent 50%),
    var(--bg);
  color: var(--ink);
}

html[data-theme="gaming"] .btn-primary {
  background: var(--cga-magenta);
  border-color: var(--cga-magenta);
  color: #12081a;
}
html[data-theme="gaming"] .logo__dot,
html[data-theme="gaming"] .hero__brand-us {
  color: var(--cga-cyan);
}

.mode-select__opt[data-theme-set="gaming"].is-on .mode-select__led {
  border-color: #ff2bd6;
  background: #ff2bd6;
  box-shadow: 0 0 6px rgba(255, 43, 214, 0.7);
}

/* hide/show gaming mounts — must beat HTML [hidden] + layout display */
html[data-theme="gaming"] [data-gaming-hide] { display: none !important; }
html:not([data-theme="gaming"]) [data-gaming-show] { display: none !important; }
html[data-theme="gaming"] [data-gaming-show] { display: block !important; }
html[data-theme="gaming"] .hero__cta [data-gaming-show].btn {
  display: inline-flex !important;
}
html[data-theme="gaming"] .top__nav > a[data-gaming-show] {
  display: inline !important;
}
html[data-theme="gaming"] .hero__boot {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  --term-bg: transparent;
  --term-panel: transparent;
  align-self: center;
  display: flex !important;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
html[data-theme="gaming"] .hero__boot .arcade-slot--tetris {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 0;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.npp-host { width: 100%; }
html[data-theme="gaming"] .npp-host {
  display: flex;
  justify-content: center;
  /* breathe — not glued to culture text above */
  margin-top: clamp(2.5rem, 6vh, 4.5rem);
  margin-bottom: clamp(1.5rem, 4vh, 3rem);
  padding-top: 0.5rem;
}
html[data-theme="gaming"] .npp-host .arcade-slot--pac {
  margin-top: 0;
  width: 100%;
  max-width: 42rem;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
html[data-theme="gaming"] .npp-host .arcade-slot--pac.ggear {
  display: block !important;
}
html[data-theme="gaming"] #culture .culture-grid {
  margin-bottom: 0.25rem;
}

/* ── Game Boy shell (tetris) ─────────────────────────── */
.gboy__shell {
  width: min(100%, 17.5rem);
  margin: 0 auto;
  padding: 0.75rem 0.85rem 0.85rem;
  border-radius: 1rem 1rem 2.2rem 2.2rem;
  background: linear-gradient(165deg, #d8d2c8 0%, #b8b0a4 42%, #9a9286 100%);
  border: 1px solid #6e675c;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    inset 0 -2px 0 rgba(0, 0, 0, 0.12),
    0 10px 28px rgba(0, 0, 0, 0.35);
  color: #2a2620;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}
.gboy__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.45rem;
  padding: 0 0.15rem;
}
.gboy__brand {
  font-size: 0.58rem;
  letter-spacing: 0.14em;
  font-weight: 600;
  color: #3a3530;
}
.gboy__brand b { color: #6b5b2e; font-weight: 600; }
.gboy__tools { display: flex; gap: 0.25rem; }
.gboy__tools .arcade-slot__btn {
  border-color: #6e675c;
  color: #3a3530;
  background: rgba(255, 255, 255, 0.25);
}
.gboy__bezel {
  background: #2f3330;
  border-radius: 0.55rem 0.55rem 1.4rem 1.4rem;
  padding: 0.45rem 0.55rem 0.7rem;
  border: 1px solid #1a1c1a;
  box-shadow: inset 0 0 0 2px #3d4440;
}
.gboy__hud {
  display: flex;
  justify-content: space-between;
  font-size: 0.58rem;
  color: #8f9a7a;
  margin-bottom: 0.3rem;
  letter-spacing: 0.04em;
}
.gboy__hud strong { color: #c6d48a; font-weight: 600; }
.gboy__screen {
  position: relative;
  background: #0b1a0e;
  border: 2px solid #0a0c0a;
  border-radius: 0.2rem;
  padding: 0.35rem;
  box-shadow: inset 0 0 18px rgba(0, 0, 0, 0.55);
}
.gboy__screen .arcade-canvas {
  display: block;
  margin: 0 auto;
  width: 100%;
  max-width: 200px;
  height: auto;
  background: #050a06;
  image-rendering: pixelated;
}
.gboy__led {
  position: absolute;
  left: 0.35rem;
  top: 0.45rem;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: #ff2a2a;
  box-shadow: 0 0 6px #ff2a2a;
}
.gboy__pads {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.85rem;
  padding: 0 0.35rem;
}
.gboy__dpad {
  width: 5.4rem;
  height: 5.4rem;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  grid-template-areas:
    ". up ."
    "left center right"
    ". down .";
  filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.25));
}
.gboy__dir {
  border: 0;
  margin: 0;
  padding: 0;
  background: #2a2a2a;
  color: #8a8a8a;
  font-size: 0.55rem;
  cursor: pointer;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  transition: background 0.06s ease, transform 0.06s ease, box-shadow 0.06s ease;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 2px 0 #111;
}
.gboy__dir--up { grid-area: up; border-radius: 0.2rem 0.2rem 0 0; }
.gboy__dir--down { grid-area: down; border-radius: 0 0 0.2rem 0.2rem; }
.gboy__dir--left { grid-area: left; border-radius: 0.2rem 0 0 0.2rem; }
.gboy__dir--right { grid-area: right; border-radius: 0 0.2rem 0.2rem 0; }
.gboy__dir--center {
  grid-area: center;
  background: #222;
  box-shadow: none;
  pointer-events: none;
  border-radius: 0.15rem;
}
.gboy__dir:active,
.gboy__dir.is-press {
  background: #111;
  color: #b8ff3c;
  transform: translateY(1px);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.55);
}
.gboy__ab {
  display: flex;
  gap: 0.55rem;
  align-items: center;
  transform: rotate(-18deg);
  margin-right: 0.2rem;
}
.gboy__round {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  border: 2px solid #5a2030;
  background: radial-gradient(circle at 35% 30%, #ff6b8a, #c2183a 55%, #8e1028);
  color: #3a0a14;
  font-size: 0.62rem;
  font-weight: 700;
  cursor: pointer;
  touch-action: none;
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.25), 0 3px 0 #5a1020;
  transition: transform 0.06s ease, box-shadow 0.06s ease, filter 0.06s ease;
}
.gboy__round span { display: block; transform: rotate(18deg); }
.gboy__round--a { width: 2.55rem; height: 2.55rem; }
.gboy__round:active,
.gboy__round.is-press {
  transform: translateY(2px);
  box-shadow: inset 0 3px 6px rgba(0, 0, 0, 0.45), 0 1px 0 #5a1020;
  filter: brightness(0.92);
}
.gboy__ss {
  display: flex;
  justify-content: center;
  gap: 0.85rem;
  margin-top: 0.85rem;
}
.gboy__pill {
  border: 0;
  border-radius: 999px;
  padding: 0.22rem 0.7rem;
  font-size: 0.48rem;
  letter-spacing: 0.12em;
  font-weight: 600;
  color: #3a3530;
  background: #8a8378;
  box-shadow: 0 2px 0 #5a544c, inset 0 1px 0 rgba(255, 255, 255, 0.25);
  cursor: pointer;
  touch-action: none;
  transform: rotate(-18deg);
  transition: transform 0.06s ease, box-shadow 0.06s ease;
}
.gboy__pill:active,
.gboy__pill.is-press {
  transform: rotate(-18deg) translateY(2px);
  box-shadow: 0 0 0 #5a544c, inset 0 2px 3px rgba(0, 0, 0, 0.35);
}
.gboy__help {
  margin: 0.7rem 0 0;
  text-align: center;
  font-size: 0.52rem;
  color: #5a544c;
  letter-spacing: 0.02em;
  line-height: 1.35;
}
.arcade-focus-stage .arcade-slot.is-focus .gboy__shell {
  width: min(100%, 22rem);
}

/* ── OPENCLOUD GEAR — photoreal shell (pack-man) ─────── */
.ggear__photo {
  position: relative;
  width: min(100%, 40rem);
  margin: 0 auto;
  aspect-ratio: 1152 / 768;
  user-select: none;
  -webkit-user-select: none;
  filter: drop-shadow(0 18px 40px rgba(0, 0, 0, 0.55));
}
.ggear__device {
  display: block;
  width: 100%;
  height: 100%;
  /* fill the aspect-ratio box 1:1 so % hits match photo pixels */
  object-fit: fill;
  pointer-events: none;
}
.ggear__tools {
  position: absolute;
  z-index: 4;
  top: 3.5%;
  right: 4%;
  display: flex;
  gap: 0.3rem;
}
/* next section CTA under pack-man console */
.ggear__next {
  display: none;
  margin: 1rem auto 0.25rem;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.55rem 1.1rem;
  border: 1px solid #ff2bd6;
  background: rgba(255, 43, 214, 0.14);
  color: #ffe8ff;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
  box-shadow: 3px 3px 0 rgba(255, 43, 214, 0.28);
  transition: transform 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
html[data-theme="gaming"] .ggear__next {
  display: inline-flex !important;
}
.ggear__next:hover {
  background: #ff2bd6;
  color: #12081a;
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 rgba(57, 243, 255, 0.35);
}
.ggear__next-ps { color: #39f3ff; }
.ggear__next:hover .ggear__next-ps { color: #12081a; }
.ggear__next-gt { color: #ffe566; }
.ggear__next:hover .ggear__next-gt { color: #12081a; }
/* hide while console is maximized */
body.arcade-focus-on .ggear__next { display: none !important; }
.ggear__tools .arcade-slot__btn {
  border-color: rgba(255, 255, 255, 0.35);
  color: #f0e8ff;
  background: rgba(10, 6, 20, 0.55);
  backdrop-filter: blur(4px);
}
.ggear__tools .arcade-slot__btn:hover {
  border-color: #ff2bd6;
  color: #ffe8ff;
}
.ggear__tools .arcade-slot__btn--max {
  border-color: rgba(255, 255, 255, 0.35);
  color: #f0e8ff;
  background: rgba(10, 6, 20, 0.55);
  backdrop-filter: blur(4px);
  box-shadow: none;
  animation: none;
  gap: 0.18rem;
  padding: 0.14rem 0.28rem 0.14rem 0.22rem;
  font-size: 0.5rem;
  letter-spacing: 0.06em;
  font-weight: 600;
}
.ggear__tools .arcade-slot__btn--max .arcade-slot__max-ico {
  width: 0.55rem;
  height: 0.55rem;
  border-width: 1px;
}
.ggear__tools .arcade-slot__btn--max .arcade-slot__max-ico::before,
.ggear__tools .arcade-slot__btn--max .arcade-slot__max-ico::after {
  width: 0.2rem;
  height: 0.2rem;
  border-width: 1px;
}
.ggear__tools .arcade-slot__btn--max .arcade-slot__max-ico::before {
  top: -2px;
  left: -2px;
}
.ggear__tools .arcade-slot__btn--max .arcade-slot__max-ico::after {
  right: -2px;
  bottom: -2px;
}
.ggear__tools .arcade-slot__btn--max:hover {
  border-color: #ff2bd6;
  color: #ffe8ff;
  background: rgba(10, 6, 20, 0.7);
  box-shadow: none;
}
/* LCD cutout — % calibrated to oc-gear-shell.jpg (1152×768) */
.ggear__lcd {
  position: absolute;
  z-index: 3;
  left: 32.3%;
  top: 17.2%;
  width: 36.8%;
  height: 61%;
  display: flex;
  flex-direction: column;
  background: #000;
  border-radius: 0.2rem;
  overflow: hidden;
  box-shadow: inset 0 0 18px rgba(0, 0, 0, 0.85);
}
.ggear__hud {
  display: flex;
  justify-content: space-between;
  flex-shrink: 0;
  padding: 0.2rem 0.35rem 0.1rem;
  font-size: clamp(0.45rem, 1.4vw, 0.58rem);
  color: #8fdfff;
  letter-spacing: 0.04em;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  background: rgba(0, 0, 0, 0.55);
}
.ggear__hud strong { color: #ffe566; font-weight: 700; }
.ggear__lcd .arcade-canvas--pac {
  display: block;
  width: 100%;
  height: auto;
  max-height: calc(100% - 1.15rem);
  margin: auto 0 0;
  background: #000;
  image-rendering: pixelated;
}
/* press targets — left/top = button centroid % on oc-gear-shell.jpg (1152×768) */
.ggear__hit {
  position: absolute;
  z-index: 5;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  touch-action: none;
  -webkit-tap-highlight-color: transparent;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.ggear__hit:hover,
.ggear__hit:focus-visible {
  background: rgba(57, 243, 255, 0.14);
  box-shadow: inset 0 0 0 1px rgba(57, 243, 255, 0.45);
}
.ggear__hit:focus-visible {
  outline: 2px solid #39f3ff;
  outline-offset: 1px;
}
.ggear__hit.is-press {
  background: rgba(255, 43, 214, 0.18);
  box-shadow: inset 0 0 0 1px rgba(255, 43, 214, 0.55);
}
/* D-pad cross arms · well ~17.7×45.5 (L/R pulled inward vs well rim) */
.ggear__hit--up    { left: 17.7%; top: 39.6%; width: 6.6%; height: 7.0%; }
.ggear__hit--left  { left: 14.6%; top: 45.5%; width: 6.6%; height: 7.0%; }
.ggear__hit--right { left: 20.8%; top: 45.5%; width: 6.6%; height: 7.0%; }
.ggear__hit--down  { left: 17.7%; top: 51.4%; width: 6.6%; height: 7.0%; }
/* START yellow 79.3×29.5 · A magenta 84.8×39.9 · B cyan 79.2×52.2 */
.ggear__hit--a     { left: 84.8%; top: 40.2%; width: 8.0%; height: 10.0%; }
.ggear__hit--b     { left: 79.2%; top: 52.4%; width: 8.0%; height: 10.0%; }
.ggear__hit--start {
  left: 79.3%;
  top: 29.5%;
  width: 5.2%;
  height: 4.4%;
  border-radius: 999px;
}
/* whole LCD is also a hit → expand / click-to-play */
.ggear__lcd-hit {
  position: absolute;
  z-index: 4;
  left: 32.3%;
  top: 17.2%;
  width: 36.8%;
  height: 61%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.ggear__lcd-hit:hover {
  box-shadow: inset 0 0 0 1px rgba(57, 243, 255, 0.35);
}
.ggear__lcd-hit:focus-visible {
  outline: 2px solid #39f3ff;
  outline-offset: -2px;
}
/* missions.exe — only in max/zoom; closed by default */
.ggear__brief {
  display: none;
  margin-top: 0.65rem;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
}
.arcade-focus-stage .arcade-slot--pac.is-focus .ggear__brief {
  display: flex;
}
.ggear__missions {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  padding: 0.28rem 0.55rem 0.28rem 0.45rem;
  border: 1px solid rgba(255, 43, 214, 0.55);
  background: rgba(22, 11, 34, 0.85);
  color: #c89ad8;
  font: 700 0.55rem/1 "IBM Plex Mono", ui-monospace, monospace;
  letter-spacing: 0.12em;
  text-transform: lowercase;
  cursor: pointer;
  box-shadow: none;
  opacity: 0.85;
}
.ggear__missions:hover,
.ggear__missions[aria-expanded="true"] {
  background: #ff2bd6;
  border-color: #ff2bd6;
  color: #12081a;
  opacity: 1;
  box-shadow: 3px 3px 0 rgba(57, 243, 255, 0.35);
}
.ggear__missions-led {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #39f3ff;
  box-shadow: 0 0 8px #39f3ff;
}
.ggear__missions[aria-expanded="true"] .ggear__missions-led {
  background: #12081a;
  box-shadow: none;
}
.ggear__missions-q {
  opacity: 0.75;
  font-size: 0.72rem;
}
@keyframes ggearMissionsPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 43, 214, 0.0); }
  50% { box-shadow: 0 0 0 6px rgba(255, 43, 214, 0.22); }
}
.ggear__brief-body[hidden] { display: none !important; }
.ggear__brief-body {
  width: min(100%, 28rem);
  border: 1px solid #5a2a6e;
  background: #160b22;
  color: #ffe8ff;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  animation: ggearBriefIn 0.28s cubic-bezier(0.2, 1.2, 0.3, 1) both;
}
@keyframes ggearBriefIn {
  from { opacity: 0; transform: translateY(6px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
.ggear__brief-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.3rem 0.45rem;
  background: #ff2bd6;
  color: #12081a;
  font-size: 0.58rem;
  letter-spacing: 0.1em;
  font-weight: 700;
}
.ggear__brief-x {
  appearance: none;
  margin: 0;
  padding: 0 0.25rem;
  border: 0;
  background: transparent;
  color: inherit;
  font: 700 0.95rem/1 "IBM Plex Mono", ui-monospace, monospace;
  cursor: pointer;
}
.ggear__help {
  margin: 0;
  padding: 0.55rem 0.65rem 0.35rem;
  text-align: center;
  font-size: 0.58rem;
  color: #9a7aaa;
  letter-spacing: 0.02em;
  line-height: 1.4;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}
.ggear__help code {
  color: #39f3ff;
  font-family: inherit;
  font-size: inherit;
}
/* coder pad — inside missions panel */
.ggear__pad {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.55rem 0.85rem;
  align-items: center;
  margin: 0;
  padding: 0.55rem 0.75rem 0.7rem;
  border: 0;
  border-top: 1px solid #5a2a6e;
  background: transparent;
  color: #ffe8ff;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}
.arcade-focus-stage .arcade-slot--pac.is-focus .ggear__brief {
  position: absolute;
  z-index: 12;
  right: 0.75rem;
  bottom: 0.75rem;
  margin: 0;
  align-items: flex-end;
}
.arcade-focus-stage .arcade-slot--pac.is-focus .ggear__brief:not(.is-missions-open) .ggear__missions {
  /* minimized chip until click */
  padding: 0.22rem 0.45rem;
  font-size: 0.5rem;
  letter-spacing: 0.1em;
  border-color: rgba(255, 43, 214, 0.4);
  background: rgba(10, 4, 16, 0.72);
}
.arcade-focus-stage .arcade-slot--pac.is-focus .ggear__brief-body {
  width: min(22rem, calc(100vw - 2rem));
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.55);
}
.ggear__pad-kicker {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.58rem;
  color: #39f3ff;
  letter-spacing: 0.04em;
}
.ggear__pad-dpad,
.ggear__pad-actions {
  display: grid;
  gap: 0.28rem;
  justify-items: center;
}
.ggear__pad-dpad {
  grid-template-columns: repeat(3, 2.4rem);
  grid-template-rows: repeat(3, 2.4rem);
  justify-self: start;
}
.ggear__pad-actions {
  grid-template-columns: repeat(2, 2.6rem);
  justify-self: end;
}
.ggear__pad-btn {
  margin: 0;
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid #ff2bd6;
  background: #1c0f28;
  color: #ffe8ff;
  font: 600 0.72rem/1 "IBM Plex Mono", ui-monospace, monospace;
  cursor: pointer;
  border-radius: 0.2rem;
}
.ggear__pad-btn:hover,
.ggear__pad-btn:focus-visible,
.ggear__pad-btn.is-press {
  background: #ff2bd6;
  color: #12081a;
  outline: none;
}
.ggear__pad-dpad .ggear__pad-btn[data-pm="up"] { grid-column: 2; grid-row: 1; }
.ggear__pad-dpad .ggear__pad-btn[data-pm="left"] { grid-column: 1; grid-row: 2; }
.ggear__pad-dpad .ggear__pad-btn[data-pm="right"] { grid-column: 3; grid-row: 2; }
.ggear__pad-dpad .ggear__pad-btn[data-pm="down"] { grid-column: 2; grid-row: 3; }
.ggear__pad-actions .ggear__pad-btn { width: 2.6rem; height: 2.6rem; border-radius: 50%; }
.ggear__pad-actions .ggear__pad-btn[data-pm="focus"] { border-color: #ff2bd6; }
.ggear__pad-actions .ggear__pad-btn[data-pm="restart"] { border-color: #39f3ff; color: #39f3ff; }
.ggear__pad-actions .ggear__pad-btn[data-pm="restart"]:hover,
.ggear__pad-actions .ggear__pad-btn[data-pm="restart"].is-press {
  background: #39f3ff;
  color: #12081a;
}

/* mode.exe / boot loader — follows active page theme */
.mode-loader[hidden] { display: none !important; }
/* first paint: head script sets oc-booting before arcade.js clears [hidden] */
html.oc-booting .mode-loader,
html[data-oc-boot="1"] .mode-loader {
  display: flex !important;
}
html.oc-booting,
html.oc-booting body { overflow: hidden; }
.mode-loader {
  --ml-bg: var(--bg, #ffffff);
  --ml-ink: var(--ink, #111111);
  --ml-mute: var(--mute, #6b6b6b);
  --ml-line: var(--line, #e6e6e6);
  --ml-panel: var(--panel, #fafafa);
  --ml-accent: var(--lime, #b8ff3c);
  --ml-accent-2: var(--ink, #111111);
  --ml-fill-a: var(--lime, #b8ff3c);
  --ml-fill-b: #111111;
  --ml-fill-c: #6b6b6b;
  --ml-scan: rgba(17, 17, 17, 0.04);
  position: fixed;
  inset: 0;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ml-bg);
  color: var(--ml-ink);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}
html[data-theme="gaming"] .mode-loader {
  --ml-bg: #12081a;
  --ml-ink: #ffe8ff;
  --ml-mute: #c89ad8;
  --ml-line: #5a2a6e;
  --ml-panel: #1c0f28;
  --ml-accent: #ff2bd6;
  --ml-accent-2: #39f3ff;
  --ml-fill-a: #b8ff3c;
  --ml-fill-b: #ff2bd6;
  --ml-fill-c: #39f3ff;
  --ml-scan: rgba(255, 43, 214, 0.06);
}
.mode-loader__crt {
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(
      0deg,
      var(--ml-scan),
      var(--ml-scan) 1px,
      transparent 1px,
      transparent 3px
    );
  pointer-events: none;
}
.mode-loader__panel {
  position: relative;
  width: min(28rem, calc(100vw - 2rem));
  padding: 1.4rem 1.35rem 1.25rem;
  border: 1px solid var(--ml-ink);
  box-shadow: 4px 4px 0 color-mix(in srgb, var(--ml-accent) 35%, transparent);
  background: var(--ml-panel);
}
.mode-loader__brand {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  color: var(--ml-ink);
}
.mode-loader__brand span:first-child,
.mode-loader__brand span:last-child { color: var(--ml-accent); }
.mode-loader__brand span:nth-child(2) {
  color: var(--ml-accent-2);
  animation: modeBlink 1s steps(1) infinite;
}
.mode-loader__kicker {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  color: var(--ml-accent-2);
}
.mode-loader__log {
  margin: 0 0 0.9rem;
  min-height: 4.8rem;
  font-size: 0.74rem;
  line-height: 1.45;
  color: var(--ml-mute);
  white-space: pre-wrap;
}
.mode-loader__bar {
  height: 0.35rem;
  border: 1px solid var(--ml-line);
  background: color-mix(in srgb, var(--ml-bg) 80%, var(--ml-ink));
  overflow: hidden;
}
.mode-loader__fill {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--ml-fill-a), var(--ml-fill-b), var(--ml-fill-c));
  transition: width 0.12s linear;
}
.mode-loader__hex {
  margin: 0.45rem 0 0;
  font-size: 0.68rem;
  color: var(--ml-mute);
  letter-spacing: 0.08em;
}
@keyframes modeBlink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

/* brutal C ↔ G switch — full CRT punch */
.mode-loader__flash {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: #fff;
  mix-blend-mode: difference;
}
.mode-loader__banner {
  margin: 0 0 0.55rem;
  font-size: clamp(1.6rem, 6vw, 2.4rem);
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: 1;
  color: var(--ml-accent);
  text-shadow: 0 0 18px color-mix(in srgb, var(--ml-accent) 55%, transparent);
}
.mode-loader--switch .mode-loader__flash {
  animation: modeFlash 0.55s steps(2, end) 2;
}
.mode-loader--switch .mode-loader__panel {
  animation: modeSlam 0.45s cubic-bezier(0.2, 1.4, 0.3, 1) both;
  border-width: 2px;
  box-shadow:
    0 0 0 1px var(--ml-accent-2),
    8px 8px 0 color-mix(in srgb, var(--ml-accent) 45%, transparent);
}
.mode-loader--switch .mode-loader__fill {
  transition: width 0.08s linear;
}
.mode-loader--to-gaming {
  --ml-bg: #0a0412;
  --ml-ink: #ffe8ff;
  --ml-panel: #1a0a28;
  --ml-accent: #ff2bd6;
  --ml-accent-2: #39f3ff;
}
.mode-loader--to-clean {
  --ml-bg: #ffffff;
  --ml-ink: #111111;
  --ml-panel: #fafafa;
  --ml-accent: #b8ff3c;
  --ml-accent-2: #111111;
}
.mode-loader--to-gaming .mode-loader__banner { color: #39f3ff; }
.mode-loader--to-clean .mode-loader__banner { color: #111; letter-spacing: 0.28em; }
@keyframes modeFlash {
  0%, 100% { opacity: 0; }
  40% { opacity: 0.85; }
  70% { opacity: 0.15; }
}
@keyframes modeSlam {
  from { opacity: 0; transform: scale(1.12) translateY(8px); filter: contrast(1.4); }
  to { opacity: 1; transform: none; filter: none; }
}

/* invite modal — clean-mode skin (never spoil gaming palette before play()) */
.game-invite[hidden] { display: none !important; }
.game-invite {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.game-invite__win {
  width: min(28rem, 100%);
  border: 1px solid var(--ink, #111);
  background: var(--bg, #fff);
  color: var(--ink, #111);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  transform: translateY(0);
}
.game-invite__bar {
  display: flex;
  justify-content: space-between;
  padding: 0.4rem 0.65rem;
  border-bottom: 1px solid var(--line, #e6e6e6);
  background: var(--panel, #fafafa);
  font-size: 0.7rem;
  color: var(--mute, #6b6b6b);
}
.game-invite__btns { display: flex; gap: 0.3rem; }
.game-invite__btns i {
  font-style: normal;
  width: 1rem;
  text-align: center;
  border: 1px solid var(--line, #e6e6e6);
  line-height: 1rem;
  font-size: 0.6rem;
  color: var(--mute, #6b6b6b);
}
.game-invite__body { padding: 1rem 1rem 1.1rem; }
.game-invite__kicker {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  color: var(--mute, #6b6b6b);
  letter-spacing: 0.04em;
}
.game-invite__kicker::before {
  content: "> ";
  color: var(--lime, #b8ff3c);
}
.game-invite__title {
  margin: 0 0 0.45rem;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink, #111);
}
.game-invite__msg {
  margin: 0 0 0.95rem;
  color: var(--mute, #6b6b6b);
  font-size: 0.84rem;
  line-height: 1.45;
}
.game-invite__actions {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
}
.game-invite .btn-ghost {
  border-color: var(--ink, #111);
  color: var(--ink, #111);
  background: transparent;
}
.game-invite .btn-ghost:hover {
  background: var(--panel, #fafafa);
  border-color: var(--ink, #111);
  color: var(--ink, #111);
}
.game-invite .btn-primary {
  background: var(--ink, #111);
  border-color: var(--ink, #111);
  color: #fff;
}
.game-invite .btn-primary:hover {
  filter: none;
  background: #000;
  border-color: #000;
  color: #fff;
}

/* arcade windows */
.arcade-slot {
  border: 1px solid var(--ink);
  background: #0a0610;
  color: #ffe8ff;
  box-shadow: 4px 4px 0 rgba(255, 43, 214, 0.28);
}
.hero__boot .arcade-slot--tetris {
  border: 0;
  box-shadow: none;
  background: transparent;
  height: 100%;
}
.arcade-slot__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.4rem 0.65rem;
  border-bottom: 1px solid #5a2a6e;
  font-size: 0.72rem;
  color: #39f3ff;
}
.arcade-slot__tools { display: flex; gap: 0.3rem; }
.arcade-slot__btn {
  border: 1px solid #5a2a6e;
  background: transparent;
  color: #c89ad8;
  font: inherit;
  font-size: 0.72rem;
  line-height: 1;
  padding: 0.2rem 0.4rem;
  cursor: pointer;
}
.arcade-slot__btn:hover {
  color: #ffe8ff;
  border-color: #ff2bd6;
}

/* maximize — clearly “go full screen”, not a cryptic glyph */
.arcade-slot__btn--max {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.28rem 0.45rem 0.28rem 0.35rem;
  border-color: #ff2bd6;
  color: #ffe8ff;
  background: rgba(255, 43, 214, 0.18);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  box-shadow: 0 0 0 1px rgba(255, 43, 214, 0.25), 0 0 12px rgba(255, 43, 214, 0.2);
  animation: arcade-max-pulse 1.8s ease-in-out infinite;
}
.arcade-slot__btn--max:hover {
  background: rgba(255, 43, 214, 0.35);
  border-color: #ffe566;
  color: #fff;
  box-shadow: 0 0 0 1px rgba(255, 229, 102, 0.35), 0 0 16px rgba(255, 43, 214, 0.35);
}
.arcade-slot__max-ico {
  position: relative;
  width: 0.78rem;
  height: 0.78rem;
  flex: 0 0 auto;
  border: 1.5px solid currentColor;
  border-radius: 1px;
}
.arcade-slot__max-ico::before,
.arcade-slot__max-ico::after {
  content: "";
  position: absolute;
  width: 0.28rem;
  height: 0.28rem;
  border: 1.5px solid currentColor;
}
.arcade-slot__max-ico::before {
  top: -3px;
  left: -3px;
  border-right: 0;
  border-bottom: 0;
}
.arcade-slot__max-ico::after {
  right: -3px;
  bottom: -3px;
  border-left: 0;
  border-top: 0;
}
.arcade-slot__max-txt--off { display: none; }
.arcade-slot.is-focus .arcade-slot__max-txt--on { display: none; }
.arcade-slot.is-focus .arcade-slot__max-txt--off { display: inline; }
.arcade-slot.is-focus .arcade-slot__btn--max {
  animation: none;
  border-color: #39f3ff;
  background: rgba(57, 243, 255, 0.16);
  color: #e8ffff;
  box-shadow: 0 0 0 1px rgba(57, 243, 255, 0.3);
}
.arcade-slot.is-focus .arcade-slot__max-ico {
  border-style: dashed;
}
@keyframes arcade-max-pulse {
  0%, 100% { box-shadow: 0 0 0 1px rgba(255, 43, 214, 0.25), 0 0 10px rgba(255, 43, 214, 0.15); }
  50% { box-shadow: 0 0 0 1px rgba(255, 43, 214, 0.55), 0 0 16px rgba(255, 43, 214, 0.4); }
}
.gboy__tools .arcade-slot__btn--max,
.arcade-slot.is-focus .gboy__tools .arcade-slot__btn--max {
  border-color: #6e675c;
  color: #3a3530;
  background: rgba(255, 255, 255, 0.25);
  box-shadow: none;
  animation: none;
  gap: 0.2rem;
  padding: 0.18rem 0.32rem 0.18rem 0.26rem;
  font-size: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.05em;
}
.gboy__tools .arcade-slot__btn--max .arcade-slot__max-ico,
.arcade-slot.is-focus .gboy__tools .arcade-slot__btn--max .arcade-slot__max-ico {
  width: 0.62rem;
  height: 0.62rem;
  border-width: 1.25px;
  border-style: solid;
}
.gboy__tools .arcade-slot__btn--max:hover,
.arcade-slot.is-focus .gboy__tools .arcade-slot__btn--max:hover {
  border-color: #3a3530;
  color: #1a1610;
  background: rgba(255, 255, 255, 0.4);
  box-shadow: none;
}
.arcade-slot__hud {
  display: flex;
  gap: 1rem;
  padding: 0.35rem 0.65rem;
  font-size: 0.68rem;
  color: #c89ad8;
  border-bottom: 1px dashed #5a2a6e;
}
.arcade-slot__hud strong { color: #ffe566; font-weight: 600; }
.arcade-slot__lede {
  margin: 0;
  padding: 0.55rem 0.65rem 0;
  font-size: 0.75rem;
  color: #c89ad8;
}
.arcade-canvas {
  display: block;
  margin: 0.55rem auto;
  image-rendering: pixelated;
  background: #000;
  max-width: 100%;
  height: auto;
}
.arcade-canvas--pac {
  width: min(100%, 28rem);
}
.arcade-help {
  margin: 0;
  padding: 0.35rem 0.65rem 0.65rem;
  font-size: 0.66rem;
  color: #9a7aaa;
  letter-spacing: 0.02em;
}

/* focus modal — console lifted into stage (nearer / centered) */
.arcade-focus-blur[hidden],
.arcade-focus-stage[hidden] { display: none !important; }
.arcade-focus-blur {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(6, 2, 12, 0.72);
  backdrop-filter: blur(10px);
}
.arcade-focus-stage {
  position: fixed;
  z-index: 90;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(96vw, 96rem);
  max-height: 96vh;
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  pointer-events: auto;
}
body.arcade-focus-on { overflow: hidden; }
.arcade-focus-stage .arcade-slot.is-focus {
  position: relative;
  width: 100%;
  max-width: min(40rem, 100%);
  margin: 0 auto;
  box-shadow:
    0 0 0 1px #ff2bd6,
    0 28px 90px rgba(0, 0, 0, 0.65),
    0 0 60px rgba(255, 43, 214, 0.18);
}
.arcade-focus-stage .arcade-slot--tetris.is-focus {
  max-width: min(92vw, 520px);
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  display: flex !important;
  justify-content: center;
}
.arcade-focus-stage .arcade-slot--pac.is-focus {
  max-width: min(92vw, 1100px);
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.arcade-focus-stage .arcade-slot--pac.is-focus .ggear__photo {
  width: min(92vw, 85vh * 1.5, 1100px);
  max-width: none;
  filter: drop-shadow(0 24px 60px rgba(0, 0, 0, 0.7))
          drop-shadow(0 0 30px rgba(255, 43, 214, 0.18));
}
.arcade-focus-stage .arcade-slot--pac.is-focus .ggear__lcd .arcade-canvas--pac {
  max-height: none;
}
.arcade-focus-stage .arcade-slot--pac.is-focus .ggear__hud {
  font-size: clamp(0.55rem, 1.1vw, 0.78rem);
  padding: 0.3rem 0.45rem 0.15rem;
}
/* tetris max — big shell, close LCD (like pack-man zoom) */
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__shell {
  width: min(92vw, 78vh * 0.58, 480px);
  max-width: none;
  margin: 0 auto;
  padding: clamp(0.9rem, 2vw, 1.35rem) clamp(1rem, 2.2vw, 1.5rem) clamp(1rem, 2.2vw, 1.45rem);
  border-radius: 1.35rem 1.35rem 2.8rem 2.8rem;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    inset 0 -2px 0 rgba(0, 0, 0, 0.12),
    0 24px 70px rgba(0, 0, 0, 0.7),
    0 0 0 1px rgba(255, 43, 214, 0.4),
    0 0 40px rgba(255, 43, 214, 0.18);
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__brand {
  font-size: clamp(0.7rem, 1.4vw, 0.9rem);
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__bezel {
  padding: clamp(0.55rem, 1.4vw, 0.85rem) clamp(0.65rem, 1.6vw, 0.95rem) clamp(0.85rem, 1.8vw, 1.15rem);
  border-radius: 0.7rem 0.7rem 1.8rem 1.8rem;
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__hud {
  font-size: clamp(0.72rem, 1.5vw, 0.95rem);
  margin-bottom: 0.45rem;
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__screen {
  padding: clamp(0.55rem, 1.4vw, 0.85rem);
  border-width: 3px;
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__screen .arcade-canvas {
  max-width: none;
  width: 100%;
  max-height: min(58vh, 520px);
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__pads {
  margin-top: clamp(1rem, 2.2vw, 1.45rem);
  padding: 0 0.5rem;
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__dpad {
  width: clamp(6.4rem, 14vw, 8.2rem);
  height: clamp(6.4rem, 14vw, 8.2rem);
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__round {
  width: clamp(2.6rem, 5.5vw, 3.2rem);
  height: clamp(2.6rem, 5.5vw, 3.2rem);
  font-size: clamp(0.75rem, 1.5vw, 0.95rem);
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__round--a {
  width: clamp(2.9rem, 6vw, 3.6rem);
  height: clamp(2.9rem, 6vw, 3.6rem);
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__pill {
  font-size: clamp(0.55rem, 1.1vw, 0.7rem);
  padding: 0.35rem 0.75rem;
}
.arcade-focus-stage .arcade-slot--tetris.is-focus .gboy__help {
  font-size: clamp(0.58rem, 1.2vw, 0.72rem);
  margin-top: 0.75rem;
}
.arcade-focus-stage .gboy__shell {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    inset 0 -2px 0 rgba(0, 0, 0, 0.12),
    0 18px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 43, 214, 0.35);
}
.gboy__screen {
  cursor: pointer;
}

/* ── ping gaming: form IS the screen (no photoreal CRT) ─ */
.crt__lcd { display: contents; }
.crt__help { display: none; }
.crt__more[hidden] { display: none !important; }
html:not([data-theme="gaming"]) .crt__glass { display: contents; }
html:not([data-theme="gaming"]) .crt__more { display: none !important; }

/* drop photo shell / power / help — keep clean-like layout */
html[data-theme="gaming"] .crt__device,
html[data-theme="gaming"] .crt__hit,
html[data-theme="gaming"] .crt__led,
html[data-theme="gaming"] .crt__help,
html[data-theme="gaming"] .crt__more {
  display: none !important;
}
html[data-theme="gaming"] .crt,
html[data-theme="gaming"] .crt__photo,
html[data-theme="gaming"] .crt__glass,
html[data-theme="gaming"] .crt__lcd {
  display: block;
  position: static;
  width: 100%;
  height: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  aspect-ratio: auto;
  overflow: visible;
  background: transparent;
  border: 0;
  box-shadow: none;
  filter: none;
}

/* layout = same as clean: form + CONTACT.SYS */
html[data-theme="gaming"] .ping .wrap {
  --max: 980px;
  width: min(100% - 2rem, var(--max));
}
html[data-theme="gaming"] .ping > .wrap > .kicker,
html[data-theme="gaming"] .ping > .wrap > .display,
html[data-theme="gaming"] .ping > .wrap > .lede {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
}
html[data-theme="gaming"] .ping__grid {
  display: grid;
  gap: 1.5rem;
  margin-top: 2rem;
  width: 100%;
  position: static;
  grid-template-columns: 1fr;
}
@media (min-width: 860px) {
  html[data-theme="gaming"] .ping__grid {
    grid-template-columns: minmax(0, 1fr) 280px;
    align-items: start;
    gap: 2rem;
  }
}
html[data-theme="gaming"] .ping__form {
  width: 100%;
  max-width: none;
  margin: 0;
  display: block;
}
html[data-theme="gaming"] .ping__sys {
  width: 100%;
  margin: 0;
  position: static;
  transform: none;
  border-color: #5a2a6e;
  background: #1c0f28;
  color: #ffe8ff;
  box-shadow: 4px 4px 0 rgba(255, 43, 214, 0.22);
}
html[data-theme="gaming"] .ping__sys-head {
  background: #ff2bd6;
  color: #12081a;
  border-color: #ff2bd6;
}
html[data-theme="gaming"] .ping__sys-boot { color: #39f3ff; }
html[data-theme="gaming"] .ping__k { color: #c89ad8; }
html[data-theme="gaming"] .ping__list a { color: #ffe8ff; }
html[data-theme="gaming"] .ping__list a:hover { color: #39f3ff; }
html[data-theme="gaming"] .ping__sys-foot { color: #9a7aaa; }

/* ping form = same skin as checkout quote.exe (gaming) — no green CRT */
html[data-theme="gaming"] .crt .pong-term {
  --term-bg: #12081a;
  --term-fg: #ffe8ff;
  --term-mute: #c89ad8;
  --term-dim: #9a7aaa;
  --term-line: #5a2a6e;
  --term-bar: transparent;
  --term-bar-fg: #ffe8ff;
  --term-field: #0e0616;
  --term-scan: rgba(255, 232, 255, 0.03);
  --term-live: #ff2bd6;
  --term-send-bg: #ff2bd6;
  --term-send-fg: #12081a;
  --term-send-bd: #ff2bd6;
  --term-focus: #ff2bd6;
  position: relative;
  border: 1px solid #ff2bd6;
  border-radius: 0;
  background: #12081a;
  color: #ffe8ff;
  box-shadow:
    0 0 0 1px rgba(57, 243, 255, 0.2),
    6px 6px 0 rgba(255, 43, 214, 0.28),
    0 18px 40px rgba(0, 0, 0, 0.45);
  overflow: hidden;
  font-size: 0.88rem;
}
html[data-theme="gaming"] .crt .pong-term::after {
  display: none;
}
html[data-theme="gaming"] .crt .pong-term__bar {
  background: linear-gradient(90deg, #2a1238, #1a0a28);
  color: #ffe8ff;
  border-bottom: 1px solid #5a2a6e;
  position: relative;
  z-index: 2;
}
html[data-theme="gaming"] .crt .pong-term__app::after {
  content: " · CRT";
  opacity: 0.65;
  letter-spacing: 0.08em;
  font-size: 0.85em;
  color: #39f3ff;
}
html[data-theme="gaming"] .crt .pong-term__win { opacity: 0.7; }
html[data-theme="gaming"] .crt .pong-term__win i {
  border-color: #5a2a6e;
  color: #c89ad8;
}
html[data-theme="gaming"] .crt .pong-term__screen {
  background: #05030a;
}
html[data-theme="gaming"] .crt .pong-term__scan {
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(255, 232, 255, 0.03) 2px,
    rgba(255, 232, 255, 0.03) 3px
  );
  mix-blend-mode: screen;
}
html[data-theme="gaming"] .crt .pong-term__screen,
html[data-theme="gaming"] .crt .pong-term__body {
  position: relative;
  z-index: 2;
}
html[data-theme="gaming"] .crt .pong-term__body {
  padding: 0.85rem 1rem 1rem;
}
html[data-theme="gaming"] .crt .pong-term__ps,
html[data-theme="gaming"] .crt .pong-term__row:has(input:checked) .pong-term__cur,
html[data-theme="gaming"] .crt .pong-term__ch-sel .pong-term__cur {
  color: #ffe566;
}
html[data-theme="gaming"] .crt .pong-term__line,
html[data-theme="gaming"] .crt .pong-term__hint,
html[data-theme="gaming"] .crt .pong-term__ch-k {
  color: #c89ad8;
}
html[data-theme="gaming"] .crt .pong-term__row:has(input:checked),
html[data-theme="gaming"] .crt .pong-term__row:hover {
  background: rgba(255, 43, 214, 0.12);
  color: #ffe8ff;
}
html[data-theme="gaming"] .crt .pong-term__field input,
html[data-theme="gaming"] .crt .pong-term__field textarea,
html[data-theme="gaming"] .crt .pong-term__attach input[type="file"] {
  background: #0e0616;
  border-color: #5a2a6e;
  color: #ffe8ff;
  caret-color: #ffe566;
  font-size: 0.88rem;
}
html[data-theme="gaming"] .crt .pong-term__field input:focus,
html[data-theme="gaming"] .crt .pong-term__field textarea:focus {
  border-color: #ff2bd6;
  outline: none;
  box-shadow: 0 0 0 1px rgba(255, 43, 214, 0.45), 0 0 18px rgba(255, 43, 214, 0.2);
  background: #160a22;
}
html[data-theme="gaming"] .crt .pong-term__field input::placeholder,
html[data-theme="gaming"] .crt .pong-term__field textarea::placeholder {
  color: #6a4a7a;
}
html[data-theme="gaming"] .crt .pong-term__field textarea { min-height: 5rem; }
html[data-theme="gaming"] .crt .pong-term__send {
  border-color: #ff2bd6;
  background: linear-gradient(180deg, #ff5ae0, #ff2bd6 55%, #c01698);
  color: #12081a;
  font-weight: 700;
  box-shadow: 0 0 18px rgba(255, 43, 214, 0.35);
}
html[data-theme="gaming"] .crt .pong-term__send:hover {
  filter: brightness(1.06);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 rgba(57, 243, 255, 0.45), 0 0 22px rgba(255, 43, 214, 0.45);
  background: linear-gradient(180deg, #ff5ae0, #ff2bd6 55%, #c01698);
}
html[data-theme="gaming"] .crt .pong-term__foot,
html[data-theme="gaming"] .crt .pong-term__prefill,
html[data-theme="gaming"] .crt .ping-attach__hint {
  color: #9a7aaa;
}

/* ── slots.exe — integrated CSS cabinet (gaming) ─────── */
.slots { margin-top: 0.25rem; }
.slots__wrap {
  display: grid;
  gap: 1.25rem;
  align-items: start;
}
@media (min-width: 900px) {
  .slots__wrap {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 260px);
    gap: 1.5rem;
  }
}
.slots-home {
  width: min(100%, 36rem);
  margin: 1.25rem auto 1.75rem;
}
html[data-theme="gaming"] .slots-home {
  display: block !important;
}

.slots__machine {
  position: relative;
  isolation: isolate;
  border: 2px solid #ff2bd6;
  border-radius: 1.05rem 1.05rem 1.5rem 1.5rem;
  background:
    radial-gradient(120% 70% at 50% -10%, rgba(255, 229, 102, 0.22), transparent 50%),
    radial-gradient(80% 50% at 100% 80%, rgba(255, 43, 214, 0.12), transparent 55%),
    linear-gradient(180deg, #321544 0%, #1a0a28 48%, #0e0616 100%);
  box-shadow:
    0 0 0 1px rgba(57, 243, 255, 0.28),
    0 20px 44px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    inset 0 -10px 24px rgba(0, 0, 0, 0.35);
  padding: 0.7rem 0.95rem 1.05rem;
  overflow: hidden;
  transition: box-shadow 0.25s ease, transform 0.2s ease;
}
.slots__machine::before {
  content: "";
  position: absolute;
  inset: 0.35rem;
  border-radius: 0.85rem 0.85rem 1.2rem 1.2rem;
  border: 1px solid rgba(255, 232, 255, 0.08);
  pointer-events: none;
  z-index: 0;
}
.slots__machine > * { position: relative; z-index: 1; }

.slots__marquee {
  display: flex;
  justify-content: space-between;
  gap: 0.25rem;
  margin: 0 0.15rem 0.55rem;
  padding: 0.2rem 0.35rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #1a0c24, #0a0410);
  border: 1px solid rgba(255, 229, 102, 0.25);
  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.55);
}
.slots__marquee i {
  flex: 1 1 0;
  height: 0.48rem;
  border-radius: 999px;
  background: radial-gradient(circle at 40% 35%, #fff6b0, #ffe566 45%, #c9a010);
  box-shadow: 0 0 6px rgba(255, 229, 102, 0.55);
  opacity: 0.55;
  animation: slots-lamp-idle 2.4s ease-in-out infinite;
}
.slots__marquee i:nth-child(odd) { animation-delay: 0.2s; }
.slots__marquee i:nth-child(3n) { animation-delay: 0.45s; }
@keyframes slots-lamp-idle {
  0%, 100% { opacity: 0.4; filter: brightness(0.85); }
  50% { opacity: 1; filter: brightness(1.15); }
}
.slots__machine.is-spin .slots__marquee i {
  animation: slots-lamp-race 0.28s linear infinite;
}
.slots__machine.is-spin .slots__marquee i:nth-child(2) { animation-delay: 0.04s; }
.slots__machine.is-spin .slots__marquee i:nth-child(3) { animation-delay: 0.08s; }
.slots__machine.is-spin .slots__marquee i:nth-child(4) { animation-delay: 0.12s; }
.slots__machine.is-spin .slots__marquee i:nth-child(5) { animation-delay: 0.16s; }
.slots__machine.is-spin .slots__marquee i:nth-child(6) { animation-delay: 0.2s; }
.slots__machine.is-spin .slots__marquee i:nth-child(7) { animation-delay: 0.24s; }
.slots__machine.is-spin .slots__marquee i:nth-child(8) { animation-delay: 0.28s; }
.slots__machine.is-spin .slots__marquee i:nth-child(9) { animation-delay: 0.32s; }
.slots__machine.is-spin .slots__marquee i:nth-child(10) { animation-delay: 0.36s; }
@keyframes slots-lamp-race {
  0%, 100% { opacity: 0.25; filter: brightness(0.7); }
  50% { opacity: 1; filter: brightness(1.4); }
}

.slots__chrome {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}
.slots__badge {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  font-weight: 700;
  color: #12081a;
  background: #ffe566;
  padding: 0.18rem 0.45rem;
  border-radius: 999px;
  box-shadow: 0 0 12px rgba(255, 229, 102, 0.35);
}
.slots__brand {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  font-weight: 700;
  color: #ffe8ff;
  text-transform: lowercase;
  text-shadow: 0 0 12px rgba(255, 43, 214, 0.45);
}
.slots__coin {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  padding: 0.2rem 0.5rem 0.2rem 0.35rem;
  border: 1px solid rgba(57, 243, 255, 0.5);
  border-radius: 999px;
  background: rgba(8, 20, 28, 0.65);
  color: #39f3ff;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.58rem;
  letter-spacing: 0.12em;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.12s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.slots__coin:hover,
.slots__coin:focus-visible {
  background: rgba(57, 243, 255, 0.12);
  box-shadow: 0 0 14px rgba(57, 243, 255, 0.35);
  outline: none;
}
.slots__coin-slot {
  width: 0.85rem;
  height: 1.05rem;
  border-radius: 0.15rem;
  border: 1px solid rgba(57, 243, 255, 0.55);
  background:
    linear-gradient(90deg, transparent 42%, rgba(57, 243, 255, 0.55) 42%, rgba(57, 243, 255, 0.55) 58%, transparent 58%),
    #0a1520;
  box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.7);
  position: relative;
  overflow: hidden;
}
.slots__coin.is-insert .slots__coin-slot::after {
  content: "";
  position: absolute;
  left: 15%;
  right: 15%;
  top: -40%;
  height: 55%;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 35%, #fff6b0, #ffe566 60%, #b8860b);
  animation: slots-coin-drop 0.45s ease forwards;
}
@keyframes slots-coin-drop {
  0% { transform: translateY(0); opacity: 1; }
  100% { transform: translateY(140%); opacity: 0.2; }
}
.slots__coin.is-armed {
  border-color: #ffe566;
  color: #ffe566;
  box-shadow: 0 0 16px rgba(255, 229, 102, 0.35);
}
.slots__coin.is-armed .slots__coin-lbl { animation: slots-blink 0.7s steps(2) infinite; }
@keyframes slots-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

.slots__screen {
  position: relative;
  border: 1px solid #6a2a7e;
  background: #05030a;
  border-radius: 0.55rem;
  padding: 0.75rem 0.65rem 0.55rem;
  box-shadow:
    inset 0 0 28px rgba(0, 0, 0, 0.8),
    inset 0 0 0 1px rgba(57, 243, 255, 0.08);
  overflow: hidden;
}
.slots__scan {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 4;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(255, 232, 255, 0.03) 2px,
    rgba(255, 232, 255, 0.03) 3px
  );
  mix-blend-mode: screen;
}
.slots__reels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.45rem;
}
.slots__reel {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 1px solid #3a1a4a;
  background: linear-gradient(180deg, #12081a, #1a0c28);
  border-radius: 0.35rem;
  overflow: hidden;
  cursor: pointer;
  color: inherit;
  font: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}
.slots__reel:hover,
.slots__reel:focus-visible {
  border-color: #ff2bd6;
  box-shadow: 0 0 0 1px rgba(255, 43, 214, 0.35), inset 0 0 16px rgba(255, 43, 214, 0.12);
  outline: none;
}
.slots__reel.is-nudge {
  animation: slots-reel-nudge 0.28s ease;
}
@keyframes slots-reel-nudge {
  0% { transform: translateY(0); }
  35% { transform: translateY(-4px); }
  70% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
.slots__reel.is-land {
  animation: slots-reel-land 0.35s ease;
  border-color: #39f3ff;
  box-shadow: 0 0 14px rgba(57, 243, 255, 0.35);
}
@keyframes slots-reel-land {
  0% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
.slots__window {
  height: 4.6rem;
  overflow: hidden;
  position: relative;
}
.slots__window::before,
.slots__window::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 28%;
  z-index: 2;
  pointer-events: none;
}
.slots__window::before {
  top: 0;
  background: linear-gradient(180deg, rgba(5, 3, 10, 0.92), transparent);
}
.slots__window::after {
  bottom: 0;
  background: linear-gradient(0deg, rgba(5, 3, 10, 0.92), transparent);
}
.slots__strip { will-change: transform; }
.slots__sym {
  height: 4.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}
.slots__sym-tag {
  font-size: 0.58rem;
  letter-spacing: 0.12em;
  color: #39f3ff;
  font-weight: 700;
}
.slots__sym-name {
  font-size: 0.95rem;
  font-weight: 600;
  color: #ffe8ff;
  max-width: 95%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.slots__payline {
  position: absolute;
  left: 0.4rem;
  right: 0.4rem;
  top: calc(0.75rem + 2.2rem);
  height: 2px;
  background: linear-gradient(90deg, transparent, #ff2bd6, #ffe566, #ff2bd6, transparent);
  box-shadow: 0 0 10px rgba(255, 43, 214, 0.55);
  pointer-events: none;
  z-index: 3;
}
.slots__machine.is-spin .slots__payline {
  animation: slots-payline-pulse 0.45s ease-in-out infinite;
}
@keyframes slots-payline-pulse {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 1; }
}
.slots__status {
  margin: 0.55rem 0 0;
  text-align: center;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.68rem;
  color: #c89ad8;
  letter-spacing: 0.02em;
  min-height: 1.2em;
}
.slots__machine.is-jackpot .slots__status {
  color: #ffe566;
  text-shadow: 0 0 10px rgba(255, 229, 102, 0.55);
  animation: slots-blink 0.45s steps(2) infinite;
}

.slots__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  margin-top: 0.9rem;
}
.slots__luck {
  position: relative;
  min-width: 11.5rem;
  padding: 0.72rem 1.1rem;
  border: 1px solid #ff2bd6;
  border-radius: 0.35rem;
  background:
    linear-gradient(180deg, #ff5ae0 0%, #ff2bd6 45%, #c01698 100%);
  color: #12081a;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
  box-shadow:
    0 0 0 1px rgba(255, 232, 255, 0.15),
    0 8px 20px rgba(255, 43, 214, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
  transition: transform 0.1s ease, filter 0.15s ease, box-shadow 0.15s ease;
}
.slots__luck:hover,
.slots__luck:focus-visible {
  filter: brightness(1.08);
  outline: none;
  box-shadow:
    0 0 0 1px rgba(255, 232, 255, 0.25),
    0 0 22px rgba(255, 43, 214, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.slots__luck:active,
.slots__luck.is-press {
  transform: translateY(2px) scale(0.98);
  filter: brightness(0.95);
}
.slots__luck:disabled {
  opacity: 0.65;
  cursor: wait;
}
.slots__luck-led {
  position: absolute;
  top: 0.35rem;
  right: 0.4rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: #39f3ff;
  box-shadow: 0 0 8px rgba(57, 243, 255, 0.8);
  animation: slots-blink 1s steps(2) infinite;
}
.slots__machine.is-spin .slots__luck-led {
  background: #ffe566;
  animation: slots-blink 0.25s steps(2) infinite;
}

.slots__lever {
  position: relative;
  width: 2.8rem;
  height: 4.6rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
}
.slots__lever-base {
  position: absolute;
  left: 50%;
  bottom: 0.15rem;
  width: 1.55rem;
  height: 0.85rem;
  margin-left: -0.775rem;
  border-radius: 0.25rem;
  background: linear-gradient(180deg, #666, #2a2a2a);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 2px 4px rgba(0, 0, 0, 0.45);
}
.slots__lever-arm {
  position: absolute;
  left: 50%;
  bottom: 0.75rem;
  width: 0.38rem;
  height: 2.75rem;
  margin-left: -0.19rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #e8e8e8, #777 70%, #444);
  transform-origin: bottom center;
  transition: transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
  box-shadow: 0 0 0 1px #333, inset 1px 0 0 rgba(255, 255, 255, 0.35);
}
.slots__lever-knob {
  position: absolute;
  left: 50%;
  top: 0.1rem;
  width: 1.25rem;
  height: 1.25rem;
  margin-left: -0.625rem;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #ff8fb8, #ff2bd6 55%, #8a0a58);
  box-shadow: 0 0 14px rgba(255, 43, 214, 0.65), inset 0 -3px 4px rgba(0, 0, 0, 0.35);
  transition: transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.slots__lever:hover .slots__lever-knob,
.slots__lever:focus-visible .slots__lever-knob {
  box-shadow: 0 0 20px rgba(255, 43, 214, 0.85), inset 0 -3px 4px rgba(0, 0, 0, 0.35);
  outline: none;
}
.slots__lever.is-pull .slots__lever-arm {
  transform: rotate(32deg);
}
.slots__lever.is-pull .slots__lever-knob {
  transform: translate(0.7rem, 1.05rem);
}

.slots__feet {
  display: flex;
  justify-content: space-between;
  margin: 0.65rem 0.6rem 0;
  pointer-events: none;
}
.slots__feet i {
  width: 1.6rem;
  height: 0.35rem;
  border-radius: 0.1rem;
  background: linear-gradient(180deg, #3a2a48, #12081a);
  box-shadow: 0 2px 0 #050208;
}

.slots__hint {
  margin: 0.55rem 0 0;
  text-align: center;
  font-size: 0.58rem;
  color: #7a6aaa;
  letter-spacing: 0.03em;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  line-height: 1.4;
}

.slots__flash {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 6;
  border-radius: inherit;
  opacity: 0;
  background: radial-gradient(circle at 50% 40%, rgba(255, 229, 102, 0.45), transparent 55%);
}
.slots__machine.is-flash .slots__flash {
  animation: slots-flash 0.55s ease;
}
.slots__machine.is-jackpot .slots__flash {
  animation: slots-jackpot-flash 0.9s ease;
  background:
    radial-gradient(circle at 50% 35%, rgba(255, 229, 102, 0.55), transparent 50%),
    radial-gradient(circle at 50% 70%, rgba(255, 43, 214, 0.4), transparent 55%);
}
@keyframes slots-flash {
  0% { opacity: 0.85; }
  100% { opacity: 0; }
}
@keyframes slots-jackpot-flash {
  0%, 100% { opacity: 0; }
  20%, 60% { opacity: 1; }
  40%, 80% { opacity: 0.25; }
}

.slots__machine.is-spin {
  animation: slots-shake 0.18s linear infinite;
  box-shadow:
    0 0 0 1px rgba(57, 243, 255, 0.45),
    0 20px 44px rgba(0, 0, 0, 0.5),
    0 0 28px rgba(255, 43, 214, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
@keyframes slots-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-1px); }
  75% { transform: translateX(1px); }
}
.slots__machine.is-jackpot {
  box-shadow:
    0 0 0 2px #ffe566,
    0 0 36px rgba(255, 229, 102, 0.45),
    0 0 48px rgba(255, 43, 214, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.slots__hud {
  position: sticky;
  top: 4.5rem;
}
.slots__edit-kicker {
  margin: 0 0 0.65rem;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  color: #c89ad8;
  letter-spacing: 0.04em;
}
html[data-theme="gaming"] .page-shop .pack-layout {
  margin-top: 0.5rem;
}
html[data-theme="gaming"] .slots__hud.is-pulse {
  animation: slots-hud-pulse 0.55s ease;
}
@keyframes slots-hud-pulse {
  0% { box-shadow: 0 0 0 0 rgba(255, 43, 214, 0.55); }
  100% { box-shadow: 0 0 0 12px rgba(255, 43, 214, 0); }
}

/* shop gaming: veil reel products until first spin */
html[data-theme="gaming"] .page-shop .slots__machine.is-veiled .slots__sym-tag,
html[data-theme="gaming"] .page-shop .slots__machine.is-veiled .slots__sym-name {
  visibility: hidden;
}
html[data-theme="gaming"] .page-shop .slots__machine.is-veiled .slots__sym {
  position: relative;
}
html[data-theme="gaming"] .page-shop .slots__machine.is-veiled .slots__sym::after {
  content: "???";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #6aaa58;
  text-shadow: 0 0 10px rgba(57, 243, 255, 0.25);
}
html[data-theme="gaming"] .page-shop .slots__machine.is-veiled.is-spin .slots__sym::after {
  content: "···";
  animation: slots-blink 0.35s steps(2) infinite;
}

/* gaming: list + SCORE/total hidden until first spin (shop + home) */
html[data-theme="gaming"] [data-slots-pack]:not(.is-revealed),
html[data-theme="gaming"] [data-slots-pack][hidden] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* shop gaming: slots machine centered; SCORE sits in #pack beside list */
html[data-theme="gaming"] .page-shop .slots__wrap {
  grid-template-columns: 1fr;
  justify-items: center;
}
html[data-theme="gaming"] .page-shop .slots__wrap .slots__machine {
  max-width: 36rem;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
/* list + total appear together after first spin */
html[data-theme="gaming"] [data-slots-pack].is-revealed {
  scroll-margin-top: 5.5rem;
}

/* ── checkout / thanks — gaming CRT skin ──────────────── */
html[data-theme="gaming"] .thanks__brand span:first-child,
html[data-theme="gaming"] .thanks__brand span:last-child {
  color: #ff2bd6;
  text-shadow: 0 0 14px rgba(255, 43, 214, 0.45);
}
html[data-theme="gaming"] .thanks__brand {
  color: #ffe8ff;
}
html[data-theme="gaming"] .checkout__one {
  color: #c89ad8;
}
html[data-theme="gaming"] .checkout__one::before {
  color: #39f3ff;
}
html[data-theme="gaming"] .thanks__log {
  border-color: #5a2a6e;
  background: #140a1e;
  color: #39f3ff;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.45);
}
html[data-theme="gaming"] .quote-term {
  border-color: #ff2bd6;
  background: #12081a;
  box-shadow:
    0 0 0 1px rgba(57, 243, 255, 0.2),
    6px 6px 0 rgba(255, 43, 214, 0.28),
    0 18px 40px rgba(0, 0, 0, 0.45);
}
html[data-theme="gaming"] .quote-term__bar {
  background: linear-gradient(90deg, #2a1238, #1a0a28);
  color: #ffe8ff;
  border-bottom: 1px solid #5a2a6e;
}
html[data-theme="gaming"] .quote-term__meta { color: #39f3ff; opacity: 0.75; }
html[data-theme="gaming"] .quote-term__win i { border-color: #5a2a6e; color: #c89ad8; }
html[data-theme="gaming"] .quote-term__screen {
  background: #05030a;
}
html[data-theme="gaming"] .quote-term__scan {
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(255, 232, 255, 0.03) 2px,
    rgba(255, 232, 255, 0.03) 3px
  );
  mix-blend-mode: screen;
}
html[data-theme="gaming"] .quote-form__step { color: #c89ad8; }
html[data-theme="gaming"] .quote-form__ps { color: #ffe566; }
html[data-theme="gaming"] .quote-form__lbl { color: #9a7aaa; }
html[data-theme="gaming"] .quote-form__field input,
html[data-theme="gaming"] .quote-form__field textarea {
  border-color: #5a2a6e;
  background: #0e0616;
  color: #ffe8ff;
  caret-color: #ffe566;
}
html[data-theme="gaming"] .quote-form__field input::placeholder,
html[data-theme="gaming"] .quote-form__field textarea::placeholder {
  color: #6a4a7a;
}
html[data-theme="gaming"] .quote-form__field input:focus,
html[data-theme="gaming"] .quote-form__field textarea:focus {
  border-color: #ff2bd6;
  box-shadow: 0 0 0 1px rgba(255, 43, 214, 0.45), 0 0 18px rgba(255, 43, 214, 0.2);
  background: #160a22;
}
html[data-theme="gaming"] .quote-form__go {
  border-color: #ff2bd6;
  background: linear-gradient(180deg, #ff5ae0, #ff2bd6 55%, #c01698);
  color: #12081a;
  box-shadow: 0 0 18px rgba(255, 43, 214, 0.35);
}
html[data-theme="gaming"] .quote-form__go:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 rgba(57, 243, 255, 0.45), 0 0 22px rgba(255, 43, 214, 0.45);
  filter: brightness(1.06);
}
html[data-theme="gaming"] .quote-form__go-led {
  background: #39f3ff;
  box-shadow: 0 0 8px rgba(57, 243, 255, 0.85);
}
html[data-theme="gaming"] .quote-form__legal { color: #9a7aaa; }
html[data-theme="gaming"] .quote-form__legal a { color: #39f3ff; }
html[data-theme="gaming"] .checkout__hud {
  border-color: #ffe8ff;
  box-shadow: 4px 4px 0 rgba(255, 43, 214, 0.28);
}
html[data-theme="gaming"] .checkout__hud-foot { color: #9a7aaa; }

html[data-theme="gaming"] .thanks__sparks i {
  background: #ff2bd6;
  box-shadow: 0 0 8px rgba(255, 43, 214, 0.7);
}
html[data-theme="gaming"] .thanks__sparks i:nth-child(odd) {
  background: #39f3ff;
  box-shadow: 0 0 8px rgba(57, 243, 255, 0.7);
}
html[data-theme="gaming"] .thanks__sparks i:nth-child(3n) {
  background: #ffe566;
  box-shadow: 0 0 8px rgba(255, 229, 102, 0.7);
}
html[data-theme="gaming"] .thanks__h1 {
  color: #ffe8ff;
  text-shadow: 0 0 24px rgba(255, 43, 214, 0.35);
}
html[data-theme="gaming"] .thanks-ticket {
  border-color: #ff2bd6;
  background: #12081a;
  box-shadow:
    0 0 0 1px rgba(57, 243, 255, 0.2),
    8px 8px 0 rgba(255, 43, 214, 0.28);
}
html[data-theme="gaming"] .thanks-ticket__bar {
  background: #ff2bd6;
  color: #12081a;
  font-weight: 700;
}
html[data-theme="gaming"] .thanks-ticket__label { color: #c89ad8; }
html[data-theme="gaming"] .thanks-ticket__code {
  color: #ffe566;
  text-shadow: 0 0 14px rgba(255, 229, 102, 0.35);
}
html[data-theme="gaming"] .thanks-ticket__bars {
  border-color: #5a2a6e;
}
html[data-theme="gaming"] .thanks-ticket__bars i {
  background: linear-gradient(180deg, #39f3ff, #ff2bd6);
}
html[data-theme="gaming"] .thanks-ticket__hint { color: #9a7aaa; }
html[data-theme="gaming"] .thanks-ticket__stub {
  border-color: #5a2a6e;
  background: #1a0f24;
  color: #9a7aaa;
}
html[data-theme="gaming"] .thanks__cmd { color: #ffe8ff; }
html[data-theme="gaming"] .thanks__cmd:hover { border-bottom-color: #39f3ff; }
html[data-theme="gaming"] .thanks__cmd-ps { color: #39f3ff; }

/* portal scores */
.oc-arcade-portal-card {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line, #ddd);
  text-decoration: none;
  color: inherit;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}
.oc-arcade-portal-card:hover { border-color: #111; }
.oc-arcade-portal-card__k {
  font-size: 0.68rem;
  color: #888;
  letter-spacing: 0.04em;
}
.oc-arcade-portal-card__t { font-weight: 600; }
.oc-arcade-portal-card__d { font-size: 0.78rem; color: #666; }
.oc-arcade-stat {
  border: 1px solid #ddd;
  padding: 0.85rem 1rem;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}
.oc-arcade-stat__k {
  display: block;
  font-size: 0.7rem;
  color: #888;
  margin-bottom: 0.25rem;
}
.oc-arcade-stat__v {
  font-size: 1.6rem;
  font-weight: 600;
}
.oc-arcade-table {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.85rem;
}
