/* =====================================================================
   010 ARCADE: the game cabinets (games.js) and their places in the page
   (design.js). Every rule is scoped to body.page-id-16516. A cabinet takes
   its accent from --ga (set per section) and everything else from the
   page variables, so the colour and font keys restyle the games too.
   ===================================================================== */
body.page-id-16516 .akd-slot {
  --ga: var(--gold);
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, var(--gw-max, 560px));
  align-items: center;
  gap: clamp(24px, 4vw, 70px);
  margin: clamp(60px, 7vw, 110px) 0 0;
}
body.page-id-16516 .akd-slot--flip { grid-template-columns: minmax(0, var(--gw-max, 560px)) minmax(0, 1fr); }
body.page-id-16516 .akd-slot--flip .akd-slot__cap { order: 2; text-align: right; }
body.page-id-16516 .akd-slot--flip .akd-slot__cap::before { margin-left: auto; }
body.page-id-16516 .akd-slot__cap { margin: 0; }
body.page-id-16516 .akd-slot__cap::before { content: ''; display: block; width: 56px; height: 1px; margin-bottom: 18px; background: var(--ga); box-shadow: 0 0 14px var(--ga); }
body.page-id-16516 .akd-slot__kick { display: block; margin-bottom: 10px; font: 700 calc(11px * var(--kc, 1))/1.3 var(--f-caps); letter-spacing: 0.3em; text-transform: uppercase; color: var(--ga); }
body.page-id-16516 .akd-slot__title { display: block; font: var(--f-it, italic) 500 calc(clamp(30px, 3.2vw, 50px) * var(--kd, 1))/1.08 var(--f-display); color: var(--cream); }
body.page-id-16516 .akd-slot__sub { display: block; max-width: 30ch; margin-top: 14px; font: 400 calc(15px * var(--kb, 1))/1.6 var(--f-body); color: var(--soft); }
body.page-id-16516 .akd-slot--flip .akd-slot__sub { margin-left: auto; }

/* ---------- the cabinet ---------- */
body.page-id-16516 .akd-arcade {
  position: relative;
  min-width: 0;
  border: 1px solid color-mix(in srgb, var(--ga) 34%, transparent);
  border-radius: 14px;
  background: var(--card, rgba(var(--panel-rgb), 0.93));
  box-shadow: 0 40px 80px -40px #000, 0 0 0 1px rgba(0, 0, 0, 0.2);
  overflow: hidden;
  transition: border-color 0.4s ease, box-shadow 0.4s ease;
}
body.page-id-16516 .akd-arcade.is-playing { border-color: color-mix(in srgb, var(--ga) 70%, transparent); box-shadow: 0 40px 80px -40px #000, 0 0 40px -12px var(--ga); }
body.page-id-16516 .akd-arcade:not(.is-ready) { min-height: 160px; }
body.page-id-16516 .akd-arcade__bar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 11px 14px 10px 18px;
  border-bottom: 1px solid color-mix(in srgb, var(--ga) 22%, transparent);
  background: linear-gradient(90deg, color-mix(in srgb, var(--ga) 10%, transparent), transparent 70%);
}
body.page-id-16516 .akd-arcade__title { flex: 1; min-width: 0; font: 700 calc(11px * var(--kc, 1))/1.2 var(--f-caps); letter-spacing: 0.26em; text-transform: uppercase; color: var(--ga); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.page-id-16516 .akd-arcade__stats { display: flex; align-items: baseline; gap: 14px; }
body.page-id-16516 .akd-arcade__score { font: var(--w-poster, 400) calc(26px * var(--kp, 1))/0.9 var(--f-poster); color: var(--cream); font-variant-numeric: tabular-nums; }
body.page-id-16516 .akd-arcade__best { font: 600 calc(10px * var(--kb, 1))/1 var(--f-body); letter-spacing: 0.08em; text-transform: uppercase; color: var(--soft); }
body.page-id-16516 .akd-arcade__best b { color: var(--text); font-weight: 700; }
body.page-id-16516 .akd-arcade__btn {
  width: 30px;
  height: 30px;
  margin: 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--ga) 45%, transparent);
  border-radius: 50%;
  background: transparent;
  color: var(--ga);
  font: 600 15px/1 var(--f-body);
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease;
}
body.page-id-16516 .akd-arcade__btn:hover, body.page-id-16516 .akd-arcade__btn:focus-visible { background: var(--ga); color: var(--on-acc); outline: none; }
body.page-id-16516 .akd-arcade__stage {
  position: relative;
  width: 100%;
  overflow: hidden;
  background:
    linear-gradient(color-mix(in srgb, var(--ga) 5%, transparent) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, color-mix(in srgb, var(--ga) 5%, transparent) 1px, transparent 1px) 0 0 / 24px 24px,
    rgb(var(--ink-rgb));
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}
body.page-id-16516 .akd-arcade.is-playing .akd-arcade__stage { touch-action: none; cursor: crosshair; }
body.page-id-16516 .akd-arcade__stage:focus-visible { box-shadow: inset 0 0 0 2px var(--cream); }
body.page-id-16516 .akd-arcade__cv { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
/* the Play cover: a ticket like the hero buttons */
body.page-id-16516 .akd-arcade__cover {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 20px;
  background: radial-gradient(closest-side, rgba(var(--ink-rgb), 0.55), rgba(var(--ink-rgb), 0.82));
  text-align: center;
  transition: opacity 0.35s ease, visibility 0s linear 0s;
}
body.page-id-16516 .akd-arcade.is-playing .akd-arcade__cover { opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0s linear 0.3s; }
body.page-id-16516 .akd-arcade__msg { margin: 0 !important; font: var(--w-poster, 400) calc(clamp(26px, 3vw, 40px) * var(--kp, 1))/1 var(--f-poster); letter-spacing: 0.03em; text-transform: uppercase; color: var(--cream); }
body.page-id-16516 .akd-arcade__msg:empty { display: none; }
body.page-id-16516 .akd-arcade.is-won .akd-arcade__msg { color: var(--ga); text-shadow: 0 0 30px var(--ga); }
body.page-id-16516 .akd-arcade__play {
  margin: 0;
  padding: 11px 22px 10px;
  border: 0;
  background: repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.03) 0 1px, transparent 1px 3px), var(--cream);
  color: rgb(var(--ink-rgb));
  font: var(--w-poster, 400) calc(22px * var(--kp, 1))/1 var(--f-poster);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  filter: drop-shadow(5px 5px 0 var(--ga));
  -webkit-mask: radial-gradient(circle 5px at 0 50%, #0000 96%, #000) left / 51% 100% no-repeat, radial-gradient(circle 5px at 100% 50%, #0000 96%, #000) right / 51% 100% no-repeat;
          mask: radial-gradient(circle 5px at 0 50%, #0000 96%, #000) left / 51% 100% no-repeat, radial-gradient(circle 5px at 100% 50%, #0000 96%, #000) right / 51% 100% no-repeat;
  transition: translate 0.2s ease, filter 0.2s ease, background 0.25s ease;
}
body.page-id-16516 .akd-arcade__play:hover, body.page-id-16516 .akd-arcade__play:focus-visible { translate: 5px 5px; filter: drop-shadow(0 0 0 var(--ga)); background: var(--ga); color: var(--on-acc); outline: none; }
body.page-id-16516 .akd-arcade__hint { max-width: 34ch; margin: 0 !important; font: 500 calc(12.5px * var(--kb, 1))/1.5 var(--f-body); color: var(--soft); }
body.page-id-16516 .akd-party { position: fixed; inset: 0; z-index: 1001; width: 100vw; height: 100vh; pointer-events: none; opacity: 0; transition: opacity 0.4s ease; }
body.page-id-16516 .akd-party.is-on { opacity: 1; }

/* ---------- open stages (011): no cabinet ----------
   .akd-arcade--bare: the box, the bar's strip and the stage's background
   go; the game sits on the page itself and its title, count, best and
   restart button stand around it as plain text (Snake, in the pixel band).
   .akd-arcade--open is bare and also dissolves into its slot's grid
   (display: contents): caption | stage | readouts (.akd-slot--open), or
   caption and readouts in a row above a wide stage (.akd-slot--wide). */
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) { border: 0; border-radius: 0; background: none; box-shadow: none; overflow: visible; }
body.page-id-16516 .akd-arcade--open { display: contents; }
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__stage { overflow: visible; background: none; }
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__stage:focus-visible { box-shadow: none; outline: 1px dashed color-mix(in srgb, var(--ga) 55%, transparent); outline-offset: 6px; }
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__bar { padding: 0; border: 0; background: none; }
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__title { white-space: normal; overflow: visible; font-size: calc(12px * var(--kc, 1)); }
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__hud { font: 700 calc(11px * var(--kc, 1))/1.2 var(--f-caps); letter-spacing: 0.26em; text-transform: uppercase; color: var(--text); }
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__score::before { content: attr(data-label); display: inline; margin: 0 8px 0 0; font: 600 calc(10px * var(--kb, 1))/1 var(--f-body); letter-spacing: 0.08em; text-transform: uppercase; color: var(--soft); }
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__best { font-size: calc(11px * var(--kb, 1)); }
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__btn { display: inline-flex; align-items: center; gap: 9px; width: auto; height: 34px; padding: 0 15px 0 12px; border-radius: 999px; }
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__btn::after { content: attr(aria-label); font: 700 calc(10px * var(--kc, 1))/1 var(--f-caps); letter-spacing: 0.22em; text-transform: uppercase; }
/* the Play cover: a dark pool in the middle of the stage, clear at the edges */
body.page-id-16516 :is(.akd-arcade--open, .akd-arcade--bare) .akd-arcade__cover { background: radial-gradient(closest-side, rgba(var(--ink-rgb), 0.82), rgba(var(--ink-rgb), 0.58) 40%, rgba(var(--ink-rgb), 0.2) 75%, transparent); }
/* bare: the bar is a strip of text above the stage */
body.page-id-16516 .akd-arcade--bare .akd-arcade__bar { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 26px; padding: 0 4px 14px; }
body.page-id-16516 .akd-arcade--bare .akd-arcade__title { flex: 1; }
/* open, beside the stage: a column of readouts */
body.page-id-16516 .akd-slot--open { grid-template-columns: minmax(0, 1fr) min(var(--gw-max, 560px), 46vw) minmax(0, 1fr); gap: clamp(20px, 3vw, 52px); }
body.page-id-16516 .akd-slot--open .akd-slot__cap { grid-column: 1; grid-row: 1; text-align: right; }
body.page-id-16516 .akd-slot--open .akd-slot__cap::before,
body.page-id-16516 .akd-slot--open .akd-slot__sub { margin-left: auto; }
body.page-id-16516 .akd-slot--open .akd-arcade__stage { grid-column: 2; grid-row: 1; width: 100%; border-radius: 50%; }
body.page-id-16516 .akd-slot--open .akd-arcade__bar { grid-column: 3; grid-row: 1; display: grid; justify-items: start; align-content: center; gap: 18px; }
body.page-id-16516 .akd-slot--open .akd-arcade__title { flex: none; }
body.page-id-16516 .akd-slot--open .akd-arcade__stats { display: grid; justify-items: start; gap: 14px; }
body.page-id-16516 .akd-slot--open .akd-arcade__score { font-size: calc(clamp(46px, 4.8vw, 72px) * var(--kp, 1)); line-height: 0.95; }
body.page-id-16516 .akd-slot--open .akd-arcade__score::before { display: block; margin: 0 0 9px; }
/* open, a wide stage: caption and readouts in a row above it */
body.page-id-16516 .akd-slot--wide { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px clamp(20px, 3vw, 52px); }
body.page-id-16516 .akd-slot--wide .akd-slot__cap { grid-column: 1; grid-row: 1; }
body.page-id-16516 .akd-slot--wide .akd-arcade__stage { grid-column: 1 / -1; grid-row: 2; width: min(100%, var(--gw-max, 860px)); justify-self: center; }
body.page-id-16516 .akd-slot--wide .akd-arcade__bar { grid-column: 2; grid-row: 1; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: 14px 28px; padding-bottom: 6px; text-align: right; }
body.page-id-16516 .akd-slot--wide .akd-arcade__title { flex: none; width: 100%; text-align: right; }
body.page-id-16516 .akd-slot--wide .akd-arcade__stats { display: flex; align-items: baseline; gap: 22px; }
body.page-id-16516 .akd-slot--wide .akd-arcade__score { font-size: calc(34px * var(--kp, 1)); }
/* lifted: the stage spans both rows from the top, so the game starts level
   with the caption (left) and the readouts (right); both stay on top of it */
body.page-id-16516 .akd-slot--lift { grid-template-rows: auto minmax(0, 1fr); align-items: start; }
body.page-id-16516 .akd-slot--lift .akd-arcade__stage { grid-row: 1 / span 2; }
body.page-id-16516 .akd-slot--lift .akd-slot__cap,
body.page-id-16516 .akd-slot--lift .akd-arcade__bar { position: relative; z-index: 2; padding-bottom: 0; }
body.page-id-16516 .akd-slot--lift .akd-slot__cap { pointer-events: none; }   /* its box reaches over the stage's top; drags there must reach the game */

@media (max-width: 1023px) {
  body.page-id-16516 .akd-slot,
  body.page-id-16516 .akd-slot--flip { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  body.page-id-16516 :is(.akd-slot--open, .akd-slot--wide) { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  body.page-id-16516 :is(.akd-slot--open, .akd-slot--wide) .akd-slot__cap { grid-column: 1; grid-row: 1; text-align: start; }
  body.page-id-16516 .akd-slot--open .akd-slot__cap::before,
  body.page-id-16516 .akd-slot--open .akd-slot__sub { margin-left: 0; }
  body.page-id-16516 :is(.akd-slot--open, .akd-slot--wide) .akd-arcade__stage { grid-column: 1; grid-row: 2; width: min(100%, var(--gw-max, 560px)); justify-self: center; }
  body.page-id-16516 :is(.akd-slot--open, .akd-slot--wide) .akd-arcade__bar { grid-column: 1; grid-row: 3; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 14px 30px; padding: 0; text-align: center; }
  body.page-id-16516 :is(.akd-slot--open, .akd-slot--wide) .akd-arcade__title { width: 100%; text-align: center; }
  body.page-id-16516 :is(.akd-slot--open, .akd-slot--wide) .akd-arcade__stats { display: flex; align-items: baseline; gap: 22px; }
  body.page-id-16516 :is(.akd-slot--open, .akd-slot--wide) .akd-arcade__score { font-size: calc(34px * var(--kp, 1)); }
  body.page-id-16516 :is(.akd-slot--open, .akd-slot--wide) .akd-arcade__score::before { display: inline; margin: 0 8px 0 0; }
  body.page-id-16516 .akd-slot--flip .akd-slot__cap { order: 0; text-align: left; }
  body.page-id-16516 .akd-slot--flip .akd-slot__cap::before,
  body.page-id-16516 .akd-slot--flip .akd-slot__sub { margin-left: 0; }
}

/* Snake lives inside the pixel curtain before 06 */
body.page-id-16516 .akd-gate.has-game { height: auto; padding: 20px 0 clamp(150px, 15vw, 230px); overflow: visible; }
body.page-id-16516 .akd-gate.has-game .akd-gate__px { top: auto; height: clamp(170px, 17vw, 260px); }
body.page-id-16516 .akd-arcade--snake { position: relative; z-index: 4; width: min(1280px, calc(100vw - 2 * clamp(16px, 7vw, 140px))); margin: 0 auto; pointer-events: auto; }
/* the controller shapes float beside the cabinet, not behind it */
body.page-id-16516 .akd-gate.has-game .akd-gate__s--tri { left: 3%; top: 12%; }
body.page-id-16516 .akd-gate.has-game .akd-gate__s--cir { left: 7%; top: 46%; }
body.page-id-16516 .akd-gate.has-game .akd-gate__s--x { left: auto; right: 4%; top: 8%; }
body.page-id-16516 .akd-gate.has-game .akd-gate__s--sq { left: auto; right: 7%; top: 44%; }
@media (max-width: 1100px) {
  body.page-id-16516 .akd-gate.has-game .akd-gate__s { top: auto; bottom: 18%; }
}
/* phones: square pixels (the band would squeeze 48 columns into thin bars) */
@media (max-width: 767px) {
  body.page-id-16516 .akd-gate.has-game .akd-gate__px { height: auto; grid-template-columns: repeat(var(--cols), 9px); grid-template-rows: repeat(var(--rows), 9px); justify-content: center; }
  body.page-id-16516 .akd-gate.has-game { padding-bottom: 120px; }
}

/* ---------- 05 Chess (games/chess.js) ----------
   Before the first Play the canvas does not exist yet, so the stage shows
   the board faintly in CSS (same geometry as the canvas: a frame margin of
   7.2 % between 24 and 40 px, 8 x 8 squares, light square top left, two
   hairlines around it); the canvas paints over it once the game starts. */
body.page-id-16516 .akd-arcade[data-game="chess"] .akd-arcade__stage {
  background:
    radial-gradient(closest-side, color-mix(in srgb, var(--ga) 8%, transparent), transparent),
    rgb(var(--ink-rgb));
}
body.page-id-16516 .akd-arcade[data-game="chess"] .akd-arcade__stage::before {
  content: '';
  position: absolute;
  inset: clamp(24px, 7.2%, 40px);
  background:
    repeating-conic-gradient(
      color-mix(in srgb, rgb(var(--ink-rgb)) 30%, rgb(var(--panel-rgb))) 0 25%,
      color-mix(in srgb, rgb(var(--panel-rgb)) 71%, var(--ga)) 0 50%
    ) 0 0 / 25% 25%;
  outline: 1px solid color-mix(in srgb, var(--ga) 62%, transparent);
  outline-offset: 4px;
  box-shadow: 0 0 0 9px rgb(var(--ink-rgb)), 0 0 0 10px color-mix(in srgb, var(--ga) 24%, transparent), 0 16px 40px -8px #000;
  pointer-events: none;
}
/* the open stage (011): no box behind the board; the faint board keeps only its outline and shadow */
body.page-id-16516 .akd-arcade--open[data-game="chess"] .akd-arcade__stage { background: none; }
body.page-id-16516 .akd-arcade--open[data-game="chess"] .akd-arcade__stage::before { box-shadow: 0 0 0 1px color-mix(in srgb, var(--ga) 24%, transparent), 0 16px 40px -8px #000; }
/* the game sets its cursor by class on the canvas (a class toggle is cheap
   on this page, an inline style change restyles the whole document) */
body.page-id-16516 .akd-arcade[data-game="chess"].is-playing .akd-arcade__stage { cursor: default; }
body.page-id-16516 .akd-arcade[data-game="chess"].is-playing .akd-arcade__cv.is-grab { cursor: grab; }
body.page-id-16516 .akd-arcade[data-game="chess"].is-playing .akd-arcade__cv.is-grabbing { cursor: grabbing; }
body.page-id-16516 .akd-arcade[data-game="chess"].is-playing .akd-arcade__cv.is-pick { cursor: pointer; }
body.page-id-16516 .akd-arcade[data-game="chess"] .akd-chess__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* SPACE INVADERS (games/invaders.js): an attract screen behind the Play
   cover until the first game draws its canvas: the wave-1 formation
   marching in steps (two animation frames from one sprite sheet) over the
   bunkers and the cannon, tinted like the game (violet, accent, gold,
   cream). Hidden once the game has a canvas. */
body.page-id-16516 .akd-arcade[data-game="invaders"] {
  --inv-form: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 180'%3E%3Cdefs%3E%3Cpath id='s0' d='M3 0h2v1h-2zM2 1h4v1h-4zM1 2h6v1h-6zM0 3h2v1h-2zM3 3h2v1h-2zM6 3h2v1h-2zM0 4h8v1h-8zM2 5h1v1h-1zM5 5h1v1h-1zM1 6h1v1h-1zM3 6h2v1h-2zM6 6h1v1h-1zM0 7h1v1h-1zM2 7h1v1h-1zM5 7h1v1h-1zM7 7h1v1h-1z'/%3E%3Cpath id='s1' d='M3 0h2v1h-2zM2 1h4v1h-4zM1 2h6v1h-6zM0 3h2v1h-2zM3 3h2v1h-2zM6 3h2v1h-2zM0 4h8v1h-8zM1 5h1v1h-1zM3 5h2v1h-2zM6 5h1v1h-1zM0 6h1v1h-1zM7 6h1v1h-1zM1 7h1v1h-1zM6 7h1v1h-1z'/%3E%3Cpath id='c0' d='M2 0h1v1h-1zM8 0h1v1h-1zM3 1h1v1h-1zM7 1h1v1h-1zM2 2h7v1h-7zM1 3h2v1h-2zM4 3h3v1h-3zM8 3h2v1h-2zM0 4h11v1h-11zM0 5h1v1h-1zM2 5h7v1h-7zM10 5h1v1h-1zM0 6h1v1h-1zM2 6h1v1h-1zM8 6h1v1h-1zM10 6h1v1h-1zM3 7h2v1h-2zM6 7h2v1h-2z'/%3E%3Cpath id='c1' d='M2 0h1v1h-1zM8 0h1v1h-1zM0 1h1v1h-1zM3 1h1v1h-1zM7 1h1v1h-1zM10 1h1v1h-1zM0 2h1v1h-1zM2 2h7v1h-7zM10 2h1v1h-1zM0 3h3v1h-3zM4 3h3v1h-3zM8 3h3v1h-3zM0 4h11v1h-11zM1 5h9v1h-9zM2 6h1v1h-1zM8 6h1v1h-1zM1 7h1v1h-1zM9 7h1v1h-1z'/%3E%3Cpath id='o0' d='M4 0h4v1h-4zM1 1h10v1h-10zM0 2h12v1h-12zM0 3h3v1h-3zM5 3h2v1h-2zM9 3h3v1h-3zM0 4h12v1h-12zM3 5h2v1h-2zM7 5h2v1h-2zM2 6h2v1h-2zM5 6h2v1h-2zM8 6h2v1h-2zM0 7h2v1h-2zM10 7h2v1h-2z'/%3E%3Cpath id='o1' d='M4 0h4v1h-4zM1 1h10v1h-10zM0 2h12v1h-12zM0 3h3v1h-3zM5 3h2v1h-2zM9 3h3v1h-3zM0 4h12v1h-12zM2 5h3v1h-3zM7 5h3v1h-3zM1 6h2v1h-2zM5 6h2v1h-2zM9 6h2v1h-2zM2 7h2v1h-2zM8 7h2v1h-2z'/%3E%3C/defs%3E%3Cuse href='%23s0' x='36' y='30'/%3E%3Cuse href='%23s0' x='52' y='30'/%3E%3Cuse href='%23s0' x='68' y='30'/%3E%3Cuse href='%23s0' x='84' y='30'/%3E%3Cuse href='%23s0' x='100' y='30'/%3E%3Cuse href='%23s0' x='116' y='30'/%3E%3Cuse href='%23s0' x='132' y='30'/%3E%3Cuse href='%23s0' x='148' y='30'/%3E%3Cuse href='%23s0' x='164' y='30'/%3E%3Cuse href='%23s0' x='180' y='30'/%3E%3Cuse href='%23s0' x='196' y='30'/%3E%3Cuse href='%23c0' x='34.5' y='43'/%3E%3Cuse href='%23c0' x='50.5' y='43'/%3E%3Cuse href='%23c0' x='66.5' y='43'/%3E%3Cuse href='%23c0' x='82.5' y='43'/%3E%3Cuse href='%23c0' x='98.5' y='43'/%3E%3Cuse href='%23c0' x='114.5' y='43'/%3E%3Cuse href='%23c0' x='130.5' y='43'/%3E%3Cuse href='%23c0' x='146.5' y='43'/%3E%3Cuse href='%23c0' x='162.5' y='43'/%3E%3Cuse href='%23c0' x='178.5' y='43'/%3E%3Cuse href='%23c0' x='194.5' y='43'/%3E%3Cuse href='%23c0' x='34.5' y='56'/%3E%3Cuse href='%23c0' x='50.5' y='56'/%3E%3Cuse href='%23c0' x='66.5' y='56'/%3E%3Cuse href='%23c0' x='82.5' y='56'/%3E%3Cuse href='%23c0' x='98.5' y='56'/%3E%3Cuse href='%23c0' x='114.5' y='56'/%3E%3Cuse href='%23c0' x='130.5' y='56'/%3E%3Cuse href='%23c0' x='146.5' y='56'/%3E%3Cuse href='%23c0' x='162.5' y='56'/%3E%3Cuse href='%23c0' x='178.5' y='56'/%3E%3Cuse href='%23c0' x='194.5' y='56'/%3E%3Cuse href='%23o0' x='34' y='69'/%3E%3Cuse href='%23o0' x='50' y='69'/%3E%3Cuse href='%23o0' x='66' y='69'/%3E%3Cuse href='%23o0' x='82' y='69'/%3E%3Cuse href='%23o0' x='98' y='69'/%3E%3Cuse href='%23o0' x='114' y='69'/%3E%3Cuse href='%23o0' x='130' y='69'/%3E%3Cuse href='%23o0' x='146' y='69'/%3E%3Cuse href='%23o0' x='162' y='69'/%3E%3Cuse href='%23o0' x='178' y='69'/%3E%3Cuse href='%23o0' x='194' y='69'/%3E%3Cuse href='%23o0' x='34' y='82'/%3E%3Cuse href='%23o0' x='50' y='82'/%3E%3Cuse href='%23o0' x='66' y='82'/%3E%3Cuse href='%23o0' x='82' y='82'/%3E%3Cuse href='%23o0' x='98' y='82'/%3E%3Cuse href='%23o0' x='114' y='82'/%3E%3Cuse href='%23o0' x='130' y='82'/%3E%3Cuse href='%23o0' x='146' y='82'/%3E%3Cuse href='%23o0' x='162' y='82'/%3E%3Cuse href='%23o0' x='178' y='82'/%3E%3Cuse href='%23o0' x='194' y='82'/%3E%3Cuse href='%23s1' x='276' y='30'/%3E%3Cuse href='%23s1' x='292' y='30'/%3E%3Cuse href='%23s1' x='308' y='30'/%3E%3Cuse href='%23s1' x='324' y='30'/%3E%3Cuse href='%23s1' x='340' y='30'/%3E%3Cuse href='%23s1' x='356' y='30'/%3E%3Cuse href='%23s1' x='372' y='30'/%3E%3Cuse href='%23s1' x='388' y='30'/%3E%3Cuse href='%23s1' x='404' y='30'/%3E%3Cuse href='%23s1' x='420' y='30'/%3E%3Cuse href='%23s1' x='436' y='30'/%3E%3Cuse href='%23c1' x='274.5' y='43'/%3E%3Cuse href='%23c1' x='290.5' y='43'/%3E%3Cuse href='%23c1' x='306.5' y='43'/%3E%3Cuse href='%23c1' x='322.5' y='43'/%3E%3Cuse href='%23c1' x='338.5' y='43'/%3E%3Cuse href='%23c1' x='354.5' y='43'/%3E%3Cuse href='%23c1' x='370.5' y='43'/%3E%3Cuse href='%23c1' x='386.5' y='43'/%3E%3Cuse href='%23c1' x='402.5' y='43'/%3E%3Cuse href='%23c1' x='418.5' y='43'/%3E%3Cuse href='%23c1' x='434.5' y='43'/%3E%3Cuse href='%23c1' x='274.5' y='56'/%3E%3Cuse href='%23c1' x='290.5' y='56'/%3E%3Cuse href='%23c1' x='306.5' y='56'/%3E%3Cuse href='%23c1' x='322.5' y='56'/%3E%3Cuse href='%23c1' x='338.5' y='56'/%3E%3Cuse href='%23c1' x='354.5' y='56'/%3E%3Cuse href='%23c1' x='370.5' y='56'/%3E%3Cuse href='%23c1' x='386.5' y='56'/%3E%3Cuse href='%23c1' x='402.5' y='56'/%3E%3Cuse href='%23c1' x='418.5' y='56'/%3E%3Cuse href='%23c1' x='434.5' y='56'/%3E%3Cuse href='%23o1' x='274' y='69'/%3E%3Cuse href='%23o1' x='290' y='69'/%3E%3Cuse href='%23o1' x='306' y='69'/%3E%3Cuse href='%23o1' x='322' y='69'/%3E%3Cuse href='%23o1' x='338' y='69'/%3E%3Cuse href='%23o1' x='354' y='69'/%3E%3Cuse href='%23o1' x='370' y='69'/%3E%3Cuse href='%23o1' x='386' y='69'/%3E%3Cuse href='%23o1' x='402' y='69'/%3E%3Cuse href='%23o1' x='418' y='69'/%3E%3Cuse href='%23o1' x='434' y='69'/%3E%3Cuse href='%23o1' x='274' y='82'/%3E%3Cuse href='%23o1' x='290' y='82'/%3E%3Cuse href='%23o1' x='306' y='82'/%3E%3Cuse href='%23o1' x='322' y='82'/%3E%3Cuse href='%23o1' x='338' y='82'/%3E%3Cuse href='%23o1' x='354' y='82'/%3E%3Cuse href='%23o1' x='370' y='82'/%3E%3Cuse href='%23o1' x='386' y='82'/%3E%3Cuse href='%23o1' x='402' y='82'/%3E%3Cuse href='%23o1' x='418' y='82'/%3E%3Cuse href='%23o1' x='434' y='82'/%3E%3C/svg%3E");
  --inv-base: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 180'%3E%3Cpath fill-opacity='.34' d='M41 127h14v1h-14zM40 128h16v1h-16zM39 129h18v1h-18zM38 130h20v1h-20zM37 131h22v1h-22zM37 132h22v1h-22zM37 133h22v1h-22zM37 134h22v1h-22zM37 135h22v1h-22zM37 136h22v1h-22zM37 137h22v1h-22zM37 138h22v1h-22zM37 139h7v1h-7zM52 139h7v1h-7zM37 140h6v1h-6zM53 140h6v1h-6zM37 141h5v1h-5zM54 141h5v1h-5zM37 142h5v1h-5zM54 142h5v1h-5z'/%3E%3Cpath d='M41 127h14v1h-14zM40 128h1v1h-1zM55 128h1v1h-1zM39 129h1v1h-1zM56 129h1v1h-1zM38 130h1v1h-1zM57 130h1v1h-1zM37 131h1v1h-1zM58 131h1v1h-1zM37 132h1v1h-1zM58 132h1v1h-1zM37 133h1v1h-1zM58 133h1v1h-1zM37 134h1v1h-1zM58 134h1v1h-1zM37 135h1v1h-1zM58 135h1v1h-1zM37 136h1v1h-1zM58 136h1v1h-1zM37 137h1v1h-1zM58 137h1v1h-1zM37 138h1v1h-1zM44 138h8v1h-8zM58 138h1v1h-1zM37 139h1v1h-1zM43 139h1v1h-1zM52 139h1v1h-1zM58 139h1v1h-1zM37 140h1v1h-1zM42 140h1v1h-1zM53 140h1v1h-1zM58 140h1v1h-1zM37 141h1v1h-1zM41 141h1v1h-1zM54 141h1v1h-1zM58 141h1v1h-1zM37 142h5v1h-5zM54 142h5v1h-5z'/%3E%3Cpath fill-opacity='.34' d='M89 127h14v1h-14zM88 128h16v1h-16zM87 129h18v1h-18zM86 130h20v1h-20zM85 131h22v1h-22zM85 132h22v1h-22zM85 133h22v1h-22zM85 134h22v1h-22zM85 135h22v1h-22zM85 136h22v1h-22zM85 137h22v1h-22zM85 138h22v1h-22zM85 139h7v1h-7zM100 139h7v1h-7zM85 140h6v1h-6zM101 140h6v1h-6zM85 141h5v1h-5zM102 141h5v1h-5zM85 142h5v1h-5zM102 142h5v1h-5z'/%3E%3Cpath d='M89 127h14v1h-14zM88 128h1v1h-1zM103 128h1v1h-1zM87 129h1v1h-1zM104 129h1v1h-1zM86 130h1v1h-1zM105 130h1v1h-1zM85 131h1v1h-1zM106 131h1v1h-1zM85 132h1v1h-1zM106 132h1v1h-1zM85 133h1v1h-1zM106 133h1v1h-1zM85 134h1v1h-1zM106 134h1v1h-1zM85 135h1v1h-1zM106 135h1v1h-1zM85 136h1v1h-1zM106 136h1v1h-1zM85 137h1v1h-1zM106 137h1v1h-1zM85 138h1v1h-1zM92 138h8v1h-8zM106 138h1v1h-1zM85 139h1v1h-1zM91 139h1v1h-1zM100 139h1v1h-1zM106 139h1v1h-1zM85 140h1v1h-1zM90 140h1v1h-1zM101 140h1v1h-1zM106 140h1v1h-1zM85 141h1v1h-1zM89 141h1v1h-1zM102 141h1v1h-1zM106 141h1v1h-1zM85 142h5v1h-5zM102 142h5v1h-5z'/%3E%3Cpath fill-opacity='.34' d='M137 127h14v1h-14zM136 128h16v1h-16zM135 129h18v1h-18zM134 130h20v1h-20zM133 131h22v1h-22zM133 132h22v1h-22zM133 133h22v1h-22zM133 134h22v1h-22zM133 135h22v1h-22zM133 136h22v1h-22zM133 137h22v1h-22zM133 138h22v1h-22zM133 139h7v1h-7zM148 139h7v1h-7zM133 140h6v1h-6zM149 140h6v1h-6zM133 141h5v1h-5zM150 141h5v1h-5zM133 142h5v1h-5zM150 142h5v1h-5z'/%3E%3Cpath d='M137 127h14v1h-14zM136 128h1v1h-1zM151 128h1v1h-1zM135 129h1v1h-1zM152 129h1v1h-1zM134 130h1v1h-1zM153 130h1v1h-1zM133 131h1v1h-1zM154 131h1v1h-1zM133 132h1v1h-1zM154 132h1v1h-1zM133 133h1v1h-1zM154 133h1v1h-1zM133 134h1v1h-1zM154 134h1v1h-1zM133 135h1v1h-1zM154 135h1v1h-1zM133 136h1v1h-1zM154 136h1v1h-1zM133 137h1v1h-1zM154 137h1v1h-1zM133 138h1v1h-1zM140 138h8v1h-8zM154 138h1v1h-1zM133 139h1v1h-1zM139 139h1v1h-1zM148 139h1v1h-1zM154 139h1v1h-1zM133 140h1v1h-1zM138 140h1v1h-1zM149 140h1v1h-1zM154 140h1v1h-1zM133 141h1v1h-1zM137 141h1v1h-1zM150 141h1v1h-1zM154 141h1v1h-1zM133 142h5v1h-5zM150 142h5v1h-5z'/%3E%3Cpath fill-opacity='.34' d='M185 127h14v1h-14zM184 128h16v1h-16zM183 129h18v1h-18zM182 130h20v1h-20zM181 131h22v1h-22zM181 132h22v1h-22zM181 133h22v1h-22zM181 134h22v1h-22zM181 135h22v1h-22zM181 136h22v1h-22zM181 137h22v1h-22zM181 138h22v1h-22zM181 139h7v1h-7zM196 139h7v1h-7zM181 140h6v1h-6zM197 140h6v1h-6zM181 141h5v1h-5zM198 141h5v1h-5zM181 142h5v1h-5zM198 142h5v1h-5z'/%3E%3Cpath d='M185 127h14v1h-14zM184 128h1v1h-1zM199 128h1v1h-1zM183 129h1v1h-1zM200 129h1v1h-1zM182 130h1v1h-1zM201 130h1v1h-1zM181 131h1v1h-1zM202 131h1v1h-1zM181 132h1v1h-1zM202 132h1v1h-1zM181 133h1v1h-1zM202 133h1v1h-1zM181 134h1v1h-1zM202 134h1v1h-1zM181 135h1v1h-1zM202 135h1v1h-1zM181 136h1v1h-1zM202 136h1v1h-1zM181 137h1v1h-1zM202 137h1v1h-1zM181 138h1v1h-1zM188 138h8v1h-8zM202 138h1v1h-1zM181 139h1v1h-1zM187 139h1v1h-1zM196 139h1v1h-1zM202 139h1v1h-1zM181 140h1v1h-1zM186 140h1v1h-1zM197 140h1v1h-1zM202 140h1v1h-1zM181 141h1v1h-1zM185 141h1v1h-1zM198 141h1v1h-1zM202 141h1v1h-1zM181 142h5v1h-5zM198 142h5v1h-5z'/%3E%3Cpath d='M119.5 151h1v1h-1zM118.5 152h3v1h-3zM118.5 153h3v1h-3zM114.5 154h11v1h-11zM113.5 155h13v1h-13zM113.5 156h13v1h-13zM113.5 157h13v1h-13zM113.5 158h13v1h-13z'/%3E%3Crect x='0' y='163' width='240' height='.6' fill-opacity='.6'/%3E%3C/svg%3E");
}
body.page-id-16516 .akd-arcade[data-game="invaders"] .akd-arcade__stage::before,
body.page-id-16516 .akd-arcade[data-game="invaders"] .akd-arcade__stage::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}
body.page-id-16516 .akd-arcade[data-game="invaders"] .akd-arcade__stage::before {
  background: linear-gradient(var(--c-violet) 0 22.5%, var(--ga) 22.5% 37%, var(--c-gold) 37%);
  opacity: 0.62;
  -webkit-mask-image: var(--inv-form);
          mask-image: var(--inv-form);
  -webkit-mask-size: 200% 100%;
          mask-size: 200% 100%;
  -webkit-mask-position: 0 0;
          mask-position: 0 0;
  animation: akd-inv-march 6s steps(19) infinite alternate, akd-inv-frame 0.632s steps(1) infinite;
}
body.page-id-16516 .akd-arcade[data-game="invaders"] .akd-arcade__stage::after {
  background: linear-gradient(var(--ga) 0 80%, var(--cream) 80% 90%, var(--ga) 90%);
  opacity: 0.55;
  -webkit-mask-image: var(--inv-base);
          mask-image: var(--inv-base);
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
}
body.page-id-16516 .akd-arcade[data-game="invaders"] .akd-arcade__stage:has(> .akd-arcade__cv)::before,
body.page-id-16516 .akd-arcade[data-game="invaders"] .akd-arcade__stage:has(> .akd-arcade__cv)::after { display: none; }
@keyframes akd-inv-march { from { translate: -7.9% 0; } to { translate: 7.9% 0; } }
@keyframes akd-inv-frame { 0% { -webkit-mask-position: 0 0; mask-position: 0 0; } 50% { -webkit-mask-position: 100% 0; mask-position: 100% 0; } }
@media (prefers-reduced-motion: reduce) {
  body.page-id-16516 .akd-arcade[data-game="invaders"] .akd-arcade__stage::before { animation: none; }
}

/* ---------- 03 Collaborations: Jigsaw (games/puzzle.js) ----------
   The frame and the pieces are drawn on the canvas. Here: the cursors, the
   Play cover (the picture picker along the top of the stage, the Play
   ticket and the message along the bottom, the finished picture showing
   between them) and the row of thumbnails. */
body.page-id-16516 .akd-arcade[data-game="puzzle"].is-playing .akd-arcade__stage.jz-cur-grab { cursor: grab; }
body.page-id-16516 .akd-arcade[data-game="puzzle"].is-playing .akd-arcade__stage.jz-cur-grabbing { cursor: grabbing; }
body.page-id-16516 .akd-arcade--open[data-game="puzzle"] .akd-arcade__cover {
  justify-content: flex-start;
  gap: 10px;
  padding: 2.4% 4% 3%;
  background:
    radial-gradient(ellipse 62% 42% at 50% 0%, rgba(var(--ink-rgb), 0.88), rgba(var(--ink-rgb), 0.55) 50%, transparent),
    radial-gradient(ellipse 60% 46% at 50% 100%, rgba(var(--ink-rgb), 0.9), rgba(var(--ink-rgb), 0.62) 45%, transparent);
}
/* the message (or, while it is empty, the Play ticket) starts the bottom group */
body.page-id-16516 .akd-arcade--open[data-game="puzzle"] .akd-arcade__cover .akd-arcade__msg { margin-top: auto !important; }
body.page-id-16516 .akd-arcade--open[data-game="puzzle"] .akd-arcade__cover .akd-arcade__msg:empty + .akd-arcade__play { margin-top: auto; }
body.page-id-16516 .akd-arcade--open[data-game="puzzle"] .akd-arcade__hint { text-shadow: 0 0 8px rgb(var(--ink-rgb)), 0 0 16px rgb(var(--ink-rgb)); }
/* the picker: thumbnails as radio buttons */
body.page-id-16516 .akd-jz-pick { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 100%; }
body.page-id-16516 .akd-jz-pick__b {
  -webkit-appearance: none;
  appearance: none;
  width: clamp(48px, 6vw, 68px);
  height: clamp(34px, 4.2vw, 46px);
  margin: 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--ga) 40%, transparent);
  border-radius: 4px;
  background: rgb(var(--ink-rgb));
  overflow: hidden;
  cursor: pointer;
  opacity: 0.72;
  transition: opacity 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
body.page-id-16516 .akd-jz-pick__b img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.page-id-16516 .akd-jz-pick__b:hover,
body.page-id-16516 .akd-jz-pick__b:focus-visible { opacity: 1; border-color: var(--ga); outline: none; transform: translateY(-2px); }
body.page-id-16516 .akd-jz-pick__b.is-on { opacity: 1; border-color: var(--ga); box-shadow: 0 0 0 2px var(--ga), 0 0 18px -4px var(--ga); }
body.page-id-16516 .akd-jz-pick__name { margin: 0 !important; font: 700 calc(10px * var(--kc, 1))/1.4 var(--f-caps); letter-spacing: 0.22em; text-transform: uppercase; text-align: center; color: var(--soft); }

/* RUBIK'S CUBE: the stage dressing. The 3D cube itself is styled inside its
   shadow root (CSS3D in rubik.js), where the page's large stylesheets do
   not apply, so restyling it every frame stays cheap. */
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}
/* a soft key light behind the cube and a turntable under it */
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 46%, color-mix(in srgb, var(--ga) 17%, transparent) 0, color-mix(in srgb, var(--ga) 6%, transparent) 30%, transparent 58%),
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(0, 0, 0, 0.35), transparent 70%);
}
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-floor {
  position: absolute;
  left: 50%;
  top: 82%;
  width: 62%;
  height: 11%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--ga) 26%, transparent);
  background: radial-gradient(closest-side, rgba(0, 0, 0, 0.62), rgba(0, 0, 0, 0.25) 60%, transparent);
  box-shadow: 0 0 24px -6px color-mix(in srgb, var(--ga) 30%, transparent);
}
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-floor::after {
  content: '';
  position: absolute;
  inset: 22% 18%;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--ga) 14%, transparent);
}
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-view { position: absolute; inset: 0; }
/* deco corners and the counter line */
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-corner {
  position: absolute;
  width: 14px;
  height: 14px;
  border: 0 solid color-mix(in srgb, var(--ga) 50%, transparent);
}
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-corner--tl { top: 10px; left: 10px; border-width: 1px 0 0 1px; }
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-corner--tr { top: 10px; right: 10px; border-width: 1px 1px 0 0; }
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-corner--bl { bottom: 10px; left: 10px; border-width: 0 0 1px 1px; }
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-corner--br { bottom: 10px; right: 10px; border-width: 0 1px 1px 0; }
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-hud {
  position: absolute;
  left: 30px;
  right: 30px;
  bottom: 12px;
  overflow: hidden;
  font: 700 calc(10px * var(--kc, 1))/1.2 var(--f-caps);
  letter-spacing: 0.26em;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--soft);
}
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-hud b { display: none; margin: 0 0.7em; font-weight: 700; color: var(--ga); }
body.page-id-16516 .akd-arcade[data-game="rubik"] .rk-hud.is-play b { display: inline; }
/* the open stage (011): no frame, a wider key light, the turntable under a
   bigger cube; the counter line stands in the readouts beside the cube */
body.page-id-16516 .akd-arcade--open[data-game="rubik"] .rk { overflow: visible; }
body.page-id-16516 .akd-arcade--open[data-game="rubik"] .rk-corner { display: none; }
body.page-id-16516 .akd-arcade--open[data-game="rubik"] .rk-glow { inset: -14%; background: radial-gradient(circle at 50% 46%, color-mix(in srgb, var(--ga) 15%, transparent) 0, color-mix(in srgb, var(--ga) 5%, transparent) 32%, transparent 60%); }
body.page-id-16516 .akd-arcade--open[data-game="rubik"] .rk-floor { top: 89%; width: 78%; height: 12%; }
body.page-id-16516 .akd-arcade.akd-arcade--open[data-game="rubik"] .rk-hud { position: static; overflow: visible; white-space: normal; text-align: start; font-size: calc(11px * var(--kc, 1)); color: var(--text); }
body.page-id-16516 .akd-arcade.akd-arcade--open[data-game="rubik"] .rk-hud b,
body.page-id-16516 .akd-arcade.akd-arcade--open[data-game="rubik"] .rk-hud span:last-child { display: none; }
/* cursors while playing: grab a sticker, orbit elsewhere */
body.page-id-16516 .akd-arcade[data-game="rubik"].is-playing .akd-arcade__stage.rk-cur-grab { cursor: grab; }
body.page-id-16516 .akd-arcade[data-game="rubik"].is-playing .akd-arcade__stage.rk-cur-grabbing { cursor: grabbing; }
body.page-id-16516 .akd-arcade[data-game="rubik"].is-playing .akd-arcade__stage.rk-cur-orbit { cursor: move; }

/* SNAKE: the cabinet in the pixel curtain before 06 Play. The curtain
   (.akd-gate) ignores the pointer, so the cabinet takes it back; it is
   opaque, so the curtain's floating shapes behind it don't ghost through
   the title bar; before the first Play its stage shows the same quiet
   pixel grid the game draws. */
body.page-id-16516 .akd-arcade[data-game="snake"] {
  pointer-events: auto;
  background: rgb(var(--panel-rgb));
}
body.page-id-16516 .akd-arcade[data-game="snake"] .akd-arcade__stage {
  background:
    linear-gradient(90deg, rgb(var(--ink-rgb)) 3px, transparent 0) 50% 50% / 20px 20px,
    linear-gradient(rgb(var(--ink-rgb)) 3px, transparent 0) 50% 50% / 20px 20px,
    color-mix(in srgb, var(--ga) 6.5%, rgb(var(--ink-rgb)));
}
@media (max-width: 599px) {
  body.page-id-16516 .akd-arcade[data-game="snake"] .akd-arcade__stage {
    aspect-ratio: 1.25 !important;
    background:
      linear-gradient(90deg, rgb(var(--ink-rgb)) 2px, transparent 0) 50% 50% / 15px 15px,
      linear-gradient(rgb(var(--ink-rgb)) 2px, transparent 0) 50% 50% / 15px 15px,
      color-mix(in srgb, var(--ga) 6.5%, rgb(var(--ink-rgb)));
  }
}

/* the bare stage (011): no box; the quiet grid is see-through (a masked tint)
   until the first Play, when the game draws its own */
body.page-id-16516 .akd-arcade--bare[data-game="snake"] { background: none; }
body.page-id-16516 .akd-arcade--bare[data-game="snake"] .akd-arcade__stage { background: none; }
body.page-id-16516 .akd-arcade--bare[data-game="snake"] .akd-arcade__stage::before {
  content: '';
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--ga) 9%, transparent);
  -webkit-mask: linear-gradient(90deg, transparent 3px, #000 0) 50% 50% / 20px 20px, linear-gradient(transparent 3px, #000 0) 50% 50% / 20px 20px;
  -webkit-mask-composite: source-in;
          mask: linear-gradient(90deg, transparent 3px, #000 0) 50% 50% / 20px 20px, linear-gradient(transparent 3px, #000 0) 50% 50% / 20px 20px;
          mask-composite: intersect;
  pointer-events: none;
}
body.page-id-16516 .akd-arcade--bare[data-game="snake"]:is(.is-playing, .is-over, .is-won) .akd-arcade__stage::before { display: none; }
@media (max-width: 599px) {
  body.page-id-16516 .akd-arcade--bare[data-game="snake"] .akd-arcade__stage { background: none; }
  body.page-id-16516 .akd-arcade--bare[data-game="snake"] .akd-arcade__stage::before {
    -webkit-mask: linear-gradient(90deg, transparent 2px, #000 0) 50% 50% / 15px 15px, linear-gradient(transparent 2px, #000 0) 50% 50% / 15px 15px;
            mask: linear-gradient(90deg, transparent 2px, #000 0) 50% 50% / 15px 15px, linear-gradient(transparent 2px, #000 0) 50% 50% / 15px 15px;
  }
}

/* TETRIS (04 The Journey): the piece is dragged, so the cursor says so */
body.page-id-16516 .akd-arcade[data-game="tetris"].is-playing .akd-arcade__stage { cursor: grab; }
body.page-id-16516 .akd-arcade[data-game="tetris"].is-playing .akd-arcade__stage:active { cursor: grabbing; }
