@font-face{font-family:'Rubik';font-style:normal;font-weight:300 900;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Rubik';font-style:normal;font-weight:300 900;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2');unicode-range:U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F}:root{
  --ink:#191622; --cream:#FFF4DF; --paper:#FFFBF2;
  --amber:#F5A524; --teal:#12A69B; --red:#E5453B; --violet:#7A5AF8;
  --sky-a:#FFC978; --sky-b:#2C93A8;
  --shadow:0 4px 0 var(--ink);
  --font:'Rubik',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;margin:0;overflow:hidden;overscroll-behavior:none}
body{font-family:var(--font);color:var(--ink);line-height:1.1;
  background:linear-gradient(163deg,var(--sky-a) 0%,var(--sky-b) 100%);
  -webkit-font-smoothing:antialiased;text-size-adjust:100%}

/* one screen, one job — dvh so mobile chrome cannot clip the buttons */
.app{height:100dvh;display:flex;flex-direction:column;gap:8px;
  padding:calc(8px + env(safe-area-inset-top)) 12px calc(10px + env(safe-area-inset-bottom));
  max-width:520px;margin:0 auto}

.top{display:flex;align-items:center;gap:10px;flex-shrink:0}
.dots{display:flex;gap:6px;flex:1}
.dot{width:100%;height:8px;max-width:44px;border-radius:99px;background:rgba(25,22,34,.22);
  border:2px solid var(--ink);transition:background .25s}
.dot.on{background:var(--amber)}
.dot.now{background:var(--cream)}
.seg{display:flex;border:2.5px solid var(--ink);border-radius:99px;overflow:hidden;
  background:var(--cream);box-shadow:0 3px 0 var(--ink);flex-shrink:0}
.seg button{font:800 10px/1.1 var(--font);border:0;background:none;color:var(--ink);
  padding:6px 8px;cursor:pointer;opacity:.45}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--cream);opacity:1}

.stage{flex:1;min-height:0;border:3.5px solid var(--ink);border-radius:20px;overflow:hidden;
  background:linear-gradient(168deg,#FFE0A8 0%,#7FD0D8 100%);box-shadow:0 5px 0 var(--ink)}
.stage svg{display:block;width:100%;height:100%;touch-action:none}
.grab{cursor:pointer}

.say{flex-shrink:0;background:var(--paper);border:3.5px solid var(--ink);border-radius:18px;
  padding:12px 14px 13px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:7px}
.tag{align-self:flex-start;background:var(--teal);color:#fff;border:2.5px solid var(--ink);
  border-radius:8px;padding:4px 11px;font:800 12.5px/1.1 var(--font);
  transform:rotate(-2.5deg);box-shadow:0 3px 0 var(--ink)}
.tag.b{background:var(--red)} .tag.c{background:var(--violet)}
.line{font:600 14.5px/1.1 var(--font);margin:0;min-height:1.1em}
.line b{font-weight:800}
.line.k-warn{color:#B02F27}
.line.k-good{color:#0B7A63}

/* dir=ltr always: a minus must sit left of a plus in every language */
.ctl{flex-shrink:0;display:flex;align-items:stretch;gap:9px;direction:ltr}
.step{width:56px;flex-shrink:0;background:var(--cream);border:3.5px solid var(--ink);
  border-radius:15px;box-shadow:var(--shadow);cursor:pointer;display:flex;
  align-items:center;justify-content:center;padding:0}
.step[hidden]{display:none}
.step svg{width:22px;height:22px}
.read{flex:1;background:var(--cream);border:3.5px solid var(--ink);border-radius:15px;
  box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;min-width:0}
.read .n{font:800 27px/1.1 var(--font);font-variant-numeric:tabular-nums}
.go{width:100%;background:var(--amber);border:3.5px solid var(--ink);border-radius:16px;
  box-shadow:var(--shadow);cursor:pointer;font:800 16.5px/1.1 var(--font);color:var(--ink);padding:15px 10px}
.go.done{background:var(--teal);color:#fff}

.keypad{flex-shrink:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;direction:ltr}
.keypad[hidden]{display:none}
.keypad button{background:var(--cream);border:3.5px solid var(--ink);border-radius:14px;
  box-shadow:var(--shadow);cursor:pointer;font:800 20px/1.1 var(--font);color:var(--ink);
  padding:11px 0;display:flex;align-items:center;justify-content:center}
.keypad button svg{width:22px;height:22px}

.step:active,.go:active,.keypad button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}
.step:focus-visible,.go:focus-visible,.seg button:focus-visible,.keypad button:focus-visible{
  outline:3px solid #fff;outline-offset:2px}

.pulse{animation:pulse .34s ease}
@keyframes pulse{0%{transform:scale(1)}45%{transform:scale(1.045)}100%{transform:scale(1)}}
.shake{animation:shake .3s ease}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){.pulse,.shake{animation:none}}

.iconbtn{border:2.5px solid var(--ink);background:var(--cream);color:var(--ink);border-radius:99px;
  width:34px;height:34px;display:flex;align-items:center;justify-content:center;padding:0;
  cursor:pointer;box-shadow:0 3px 0 var(--ink);flex-shrink:0}
.iconbtn svg{width:17px;height:17px}
.iconbtn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}

.sheet{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;
  padding:18px;background:color-mix(in srgb,var(--ink) 78%,transparent)}
.sheet[hidden]{display:none}
.sheet.solid{background:linear-gradient(163deg,var(--sky-a) 0%,var(--sky-b) 100%)}
.sheetin{width:100%;max-width:460px;max-height:100%;overflow:auto}
.sheetin.center{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;overflow:visible}
.pickgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pickgrid button{background:var(--cream);border:3.5px solid var(--ink);border-radius:18px;
  box-shadow:var(--shadow);cursor:pointer;padding:16px 12px;font:800 14.5px/1.1 var(--font);
  color:var(--ink);min-height:82px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.pickgrid button span{font:700 11px/1.1 var(--font);opacity:.55}
.pickgrid button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}
.rotico{width:74px;height:74px;color:var(--ink);animation:tilt 2.4s ease-in-out infinite}
@keyframes tilt{0%,45%{transform:rotate(0)}60%,100%{transform:rotate(-90deg)}}
.rotmsg{font:800 18px/1.1 var(--font);color:var(--ink);margin:0;max-width:19ch}
@media (prefers-reduced-motion:reduce){.rotico{animation:none;transform:rotate(-90deg)}}

/* Landscape: the stage takes the width, the talking and the button move beside it.
   Otherwise a wide short phone gives the game a letterbox strip to play in. */
@media (orientation:landscape) and (max-height:560px){
  .app{flex-direction:row;gap:10px;max-width:none;align-items:stretch}
  .stage{flex:1 1 auto;order:1}
  .side{display:flex;flex-direction:column;gap:8px;width:238px;flex-shrink:0;order:2;justify-content:center}
  .top{position:absolute;top:6px;left:10px;right:10px;width:auto;z-index:5}
  .app{padding-top:44px}
  .say{padding:10px 12px}
  .line{font-size:calc(15px * var(--a11y-scale))}
  .go{padding:12px 8px;font-size:calc(15px * var(--a11y-scale))}
  .keypad button{padding:7px 0;font-size:calc(17px * var(--a11y-scale))}
  .read .n{font-size:calc(22px * var(--a11y-scale))}
}

/* ---- touch: stop the browser hijacking the gesture ----
   Dragging a slingshot was selecting text and double-tapping was zooming the
   page. iOS ignores user-scalable=no, so touch-action is the only real fix. */
*{ -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }
button, .seg button, .keypad button, .iconbtn{ touch-action:manipulation; }
.stage, .stage svg, .stage canvas{ touch-action:none; }
.app{ touch-action:manipulation; }

/* ---- keypad and controls: shadows were eating the gaps ---- */
.keypad{ gap:11px; }
.ctl{ gap:11px; }
.app{ gap:10px; }

/* ---- entrances: staggered, small, and quiet ---- */
@keyframes rise{ from{ opacity:0; transform:translateY(16px) } to{ opacity:1; transform:none } }
@keyframes popin{ from{ opacity:0; transform:scale(.94) } to{ opacity:1; transform:none } }
.app.enter .stage{ animation:popin .34s cubic-bezier(.2,.9,.3,1) both; }
.app.enter .say{ animation:rise .34s cubic-bezier(.2,.9,.3,1) both .06s; }
.app.enter .ctl{ animation:rise .34s cubic-bezier(.2,.9,.3,1) both .12s; }
.app.enter .keypad{ animation:rise .34s cubic-bezier(.2,.9,.3,1) both .16s; }

/* the tag lands a beat after the card it sits on */
@keyframes tagdrop{ from{ opacity:0; transform:rotate(-2.5deg) translateY(-8px) scale(.9) }
                    to{ opacity:1; transform:rotate(-2.5deg) } }
.app.enter .tag{ animation:tagdrop .3s cubic-bezier(.2,.9,.3,1) both .18s; }

/* pressing anything should feel like pressing something */
.step, .go, .keypad button, .iconbtn, .seg button{ transition:transform .07s ease, box-shadow .07s ease; }

@media (prefers-reduced-motion:reduce){
  .app.enter .stage, .app.enter .say, .app.enter .ctl,
  .app.enter .keypad, .app.enter .tag{ animation:none }
}

/* ---------- compact keypad ----------
   It was a third of the screen in portrait and squashed the game into a strip.
   Smaller keys, tighter gaps, and a hard ceiling on how much it may take. */
.keypad{ gap:7px; max-height:30dvh; }
.keypad button{ padding:6px 0; font-size:calc(16px * var(--a11y-scale)); border-width:3px; border-radius:11px;
  box-shadow:0 3px 0 var(--ink); min-height:0; }
.keypad button svg{ width:17px; height:17px }
.read .n{ font-size:calc(22px * var(--a11y-scale)) }
.read, .step{ border-width:3px; box-shadow:0 3px 0 var(--ink) }
.step{ width:46px }
.go{ padding:11px 10px; font-size:calc(15.5px * var(--a11y-scale)); border-width:3px; box-shadow:0 3px 0 var(--ink) }

/* ---------- landscape is the normal case now ---------- */
@media (orientation:landscape){
  .app{ flex-direction:row; gap:10px; max-width:none; align-items:stretch; padding-top:46px }
  .stage{ flex:1 1 auto; order:1 }
  .side{ display:flex; flex-direction:column; gap:7px; width:214px; flex-shrink:0;
         order:2; justify-content:center }
  .top{ position:absolute; top:6px; left:10px; right:10px; width:auto; z-index:5 }
  .say{ padding:9px 11px }
  .line{ font-size:calc(14.5px * var(--a11y-scale)) }
  .keypad{ max-height:none; gap:6px }
  .keypad button{ padding:4px 0; font-size:calc(15px * var(--a11y-scale)) }
  .go{ padding:10px 8px; font-size:calc(14.5px * var(--a11y-scale)) }
  .read .n{ font-size:calc(19px * var(--a11y-scale)) }
  .step{ width:40px }
}

/* ============================================================
   GAME PICKER — a 3D card deck you throw left and right.
   Built with CSS transforms and one rAF loop, no animation
   library: the whole behaviour is ~70 lines and GSAP would be
   70KB vendored for a single screen.
   ============================================================ */
#picker{ flex-direction:column; gap:0; padding:0;
  background:radial-gradient(120% 90% at 50% 0%, #1B2A44 0%, #0C1118 70%); }
.deckhead{ position:absolute; top:calc(14px + env(safe-area-inset-top)); left:0; right:0;
  display:flex; justify-content:center; pointer-events:none; z-index:3 }
.brand{ height:26px; opacity:.9 }

.deckwrap{ position:relative; flex:1; width:100%; display:flex; align-items:center;
  justify-content:center; perspective:1100px; overflow:hidden }
.deck{ position:relative; width:100%; height:100%; transform-style:preserve-3d;
  touch-action:pan-y; cursor:grab }
.deck:active{ cursor:grabbing }

.gcard{ position:absolute; top:50%; left:50%; width:min(60vw,238px); aspect-ratio:3/4;
  margin:0; border:0; padding:0; border-radius:26px; overflow:hidden; cursor:pointer;
  transform-origin:50% 50%; will-change:transform,opacity;
  box-shadow:0 26px 48px rgba(0,0,0,.5), 0 3px 0 rgba(0,0,0,.4);
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  font-family:var(--font); -webkit-tap-highlight-color:transparent }
.gcard::after{ content:""; position:absolute; inset:0; border-radius:26px;
  box-shadow:inset 0 0 0 3px rgba(0,0,0,.35), inset 0 40px 60px rgba(255,255,255,.14) }
.gcard .ico{ position:absolute; top:12%; left:50%; transform:translateX(-50%);
  width:46%; filter:drop-shadow(0 8px 12px rgba(0,0,0,.3)) }
.gcard .who{ position:relative; z-index:2; width:62%; margin-bottom:56px;
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.35)) }
.gcard .cap{ position:absolute; left:0; right:0; bottom:0; z-index:3;
  padding:11px 12px 13px; font:800 14.5px/1.15 var(--font); color:#fff; text-align:center;
  background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0)) }

.deckarrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:40px; height:40px; border-radius:99px; border:0; cursor:pointer;
  background:rgba(255,255,255,.12); color:#fff; display:flex; align-items:center;
  justify-content:center; backdrop-filter:blur(6px) }
.deckarrow svg{ width:22px; height:22px }
.deckarrow.l{ left:10px } .deckarrow.r{ right:10px }
@media (max-width:520px){ .deckarrow{ display:none } }

.deckdots{ display:flex; gap:6px; justify-content:center; flex-wrap:wrap;
  padding:0 20px calc(18px + env(safe-area-inset-bottom)); z-index:3 }
.deckdots i{ width:6px; height:6px; border-radius:99px; background:rgba(255,255,255,.28) }
.deckdots i.on{ background:#fff; transform:scale(1.35) }

@media (orientation:landscape) and (max-height:560px){
  .gcard{ width:min(34vw,196px) }
  .brand{ height:20px }
  .deckdots{ padding-bottom:8px }
}

/* the speaker, present rather than merely named */
.say{ position:relative; padding-inline-start:74px }
.portrait{ position:absolute; inset-inline-start:6px; bottom:4px; width:66px;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.28)); pointer-events:none }
.portrait[hidden]{ display:none }
.say.noportrait{ padding-inline-start:14px }
@media (orientation:landscape) and (max-height:560px){
  .say{ padding-inline-start:58px } .portrait{ width:52px }
}

/* ---- rotate screen: solid orange, logo above the phone ---- */
.sheet.solid{ background:#F2820C }
#rotate .sheetin.center{ gap:22px }
.rotbrand{ height:26px; opacity:.95 }
.rotico{ color:#241503 }
.rotmsg{ color:#241503 }

/* ---- card art: never upscale past what the source can carry ----
   The official cutouts are 130-220px. Rendering them at 62% of a 238px card
   meant asking a 150px image to fill 300 device pixels, which is what made
   them soft. Smaller and crisp beats bigger and mushy. */
.gcard .who{ width:46%; max-width:118px; margin-bottom:52px; image-rendering:auto }
.gcard .ico{ width:40%; top:11% }

/* ══════════════════════════════════════════════════════════════
   MODERN CHROME PASS
   Replaces the heavy 3.5px outlines and hard offset shadows. The
   chunky look stays inside the play area, where it belongs; the
   controls around it get out of the way.
   ══════════════════════════════════════════════════════════════ */
:root{
  --surface:#FFFDF8;
  --surface-2:#F4EFE6;
  --line-soft:rgba(25,22,34,.10);
  --lift:0 1px 2px rgba(25,22,34,.06), 0 6px 16px rgba(25,22,34,.10);
  --lift-sm:0 1px 2px rgba(25,22,34,.05), 0 3px 8px rgba(25,22,34,.08);
}

.say{
  background:var(--surface); border:1px solid var(--line-soft);
  border-radius:20px; box-shadow:var(--lift); padding:13px 15px 14px;
}
.tag{
  border:0; border-radius:99px; padding:4px 12px; transform:none;
  box-shadow:none; font-weight:700; font-size:calc(14.5px * var(--a11y-scale)); letter-spacing:.01em;
}
.line{ font-weight:600; letter-spacing:.005em }

.keypad{ gap:9px }
.keypad button{
  background:var(--surface); border:1px solid var(--line-soft);
  border-radius:16px; box-shadow:var(--lift-sm);
  font-weight:600; font-size:calc(19px * var(--a11y-scale)); color:var(--ink); padding:11px 0;
}
.keypad button:active{ transform:scale(.96); box-shadow:none; background:var(--surface-2) }

.step, .read{
  background:var(--surface); border:1px solid var(--line-soft);
  border-radius:16px; box-shadow:var(--lift-sm);
}
.step{ width:52px }
.step:active{ transform:scale(.96); box-shadow:none; background:var(--surface-2) }
.read .n{ font-weight:700 }

.go{
  border:0; border-radius:16px; box-shadow:var(--lift);
  font-weight:700; letter-spacing:.01em; padding:14px 12px;
  background:linear-gradient(180deg,#FBB03B,#F2820C); color:#231402;
}
.go.done{ background:linear-gradient(180deg,#18C0B2,#0E9488); color:#fff }
.go:active{ transform:scale(.985); box-shadow:var(--lift-sm) }

.stage{ border:0; border-radius:22px; box-shadow:var(--lift) }

.iconbtn{ border:1px solid var(--line-soft); background:var(--surface);
  box-shadow:var(--lift-sm); width:36px; height:36px }
.iconbtn:active{ transform:scale(.94); box-shadow:none }
.seg{ border:1px solid var(--line-soft); background:var(--surface);
  box-shadow:var(--lift-sm); padding:3px }
.seg button{ font-weight:700; padding:6px 10px; border-radius:99px }
.seg button[aria-pressed="true"]{ background:var(--ink); color:var(--surface) }

.dot{ border:0; height:5px; background:rgba(25,22,34,.16) }
.dot.on{ background:var(--amber) }
.dot.now{ background:var(--ink); opacity:.55 }

/* the way back to the deck, on the rotate screen too */
.rotgrid{ background:rgba(255,255,255,.9); color:#241503; border:0 }

@media (orientation:landscape) and (max-height:560px){
  .keypad{ gap:7px }
  .keypad button{ padding:8px 0; font-size:calc(17px * var(--a11y-scale)); border-radius:13px }
  .step{ width:44px } .step, .read, .keypad button{ border-radius:13px }
  .go{ padding:11px 10px; border-radius:13px }
  .say{ padding:10px 12px; border-radius:16px }
}

/* ══════════════════════════════════════════════════════════════
   BREATHING ROOM
   Everything was touching everything: the speech card sat on the
   keypad, the keypad sat on the button, and the portrait was laid
   OVER the text instead of beside it.
   ══════════════════════════════════════════════════════════════ */
.app{ gap:14px }
.ctl{ gap:12px }
.keypad{ gap:11px; margin-top:2px }
.say{ margin-bottom:2px }

/* The portrait is a sibling of the text, never a layer on top of it.
   It gets its own column and the copy starts after it. */
.say{ position:relative; padding-inline-start:0; overflow:hidden }
.say.hasportrait{ padding-inline-start:82px }
.portrait{
  position:absolute; inset-inline-start:8px; bottom:0; width:70px;
  max-height:104%; object-fit:contain; object-position:bottom;
  filter:drop-shadow(0 3px 5px rgba(0,0,0,.22)); pointer-events:none; z-index:0;
}
.say .tag, .say .line{ position:relative; z-index:1 }
.say.noportrait{ padding-inline-start:0 }

@media (orientation:landscape) and (max-height:560px){
  .app{ gap:10px }
  .keypad{ gap:8px }
  .say.hasportrait{ padding-inline-start:62px }
  .portrait{ width:54px; inset-inline-start:6px }
}

/* ══════════════════════════════════════════════════════════════
   THE CRUSH
   .side was only given flex rules in landscape. In portrait it was a
   default flex child, so .stage{flex:1} claimed 600px and squeezed
   .side to 162px while its contents needed ~400px — the speech card,
   keypad and button overflowed their own container and drew on top of
   each other. Every "everything is touching" report is this one bug.
   The controls are load-bearing: they size first, the stage takes the rest.
   ══════════════════════════════════════════════════════════════ */
.side{
  display:flex; flex-direction:column; gap:12px;
  flex:0 0 auto;              /* never shrink the controls */
  min-height:0;
}
.stage{ flex:1 1 0; min-height:140px }

/* Actions sit in one row with real separation from the keypad above. */
.ctl.actions{ gap:10px; margin-top:2px }
.ctl.actions .go{ flex:1 }
.aux{
  flex:0 0 auto; padding:0 16px; min-height:52px;
  background:var(--cream); border:2px solid rgba(25,22,34,.16); border-radius:16px;
  font:800 15px/1 var(--font); color:var(--ink); cursor:pointer;
  box-shadow:0 2px 6px rgba(25,22,34,.10);
}
.aux[hidden]{ display:none }
.aux:disabled{ opacity:.4; cursor:default }
.aux.retry{ background:var(--amber); border-color:rgba(25,22,34,.22) }

@media (orientation:landscape) and (max-height:560px){
  .side{ flex:0 0 238px; justify-content:center; gap:9px }
  .aux{ min-height:44px; padding:0 12px; font-size:calc(15px * var(--a11y-scale)) }
}

/* Red is reserved for "that is wrong". Coaching and stage directions are not
   wrong, and colouring them like errors taught children to read progress as
   failure. Wrong is a warm amber; next-step guidance is plain ink. */
.line.k-warn{ color:#B4531F }
.line.k-step{ color:var(--ink) }
.line.k-hint{ color:#0B6E86 }

/* In landscape the control column is centred. When its content is taller than
   the column, plain `center` overflows BOTH ends — pushing the speech card up
   under the top bar. `safe` centres only while there is room, then falls back
   to the start edge. */
@media (orientation:landscape){
  .side{ justify-content:safe center }
  .app{ padding-top:50px }
}

/* Landscape is 390px tall and the control column has to hold a speech card, a
   readout, a 4-row keypad and the action row. Measured: 356 needed against 340
   usable. Rather than let `safe center` push the overflow off the bottom, take
   the deficit out of padding and type, which nobody misses at this size. */
@media (orientation:landscape) and (max-height:480px){
  .app{ padding-top:46px }
  .side{ gap:6px }
  .say{ padding:7px 10px }
  .line{ font-size:calc(14.5px * var(--a11y-scale)) }
  .tag{ font-size:calc(14px * var(--a11y-scale)); padding:2px 8px }
  .keypad{ gap:5px }
  .keypad button{ padding:3px 0; font-size:calc(14.5px * var(--a11y-scale)); border-radius:10px }
  .read{ min-height:0 } .read .n{ font-size:calc(18px * var(--a11y-scale)) }
  .aux, .go{ min-height:38px; font-size:calc(15px * var(--a11y-scale)) }
  .ctl.actions{ gap:7px; margin-top:0 }
  .portrait{ width:48px }
  .say.hasportrait{ padding-inline-start:56px }
}

/* `.ctl{display:flex}` beats the [hidden] attribute's UA display:none, so the
   readout row kept rendering after the engine hid it. .keypad already carried
   this rule for the same reason. */
.ctl[hidden]{ display:none !important }

/* The portrait work set `padding-inline-start:0` on .say and relied on
   .hasportrait to put it back. Levels with no portrait therefore had text
   flush against the card edge — 1px in RTL. The card keeps its own padding;
   only the portrait variant widens it. */
/* `.say.noportrait{padding-inline-start:0}` further up is two classes and beats
   a bare `.say`, so it kept winning — and `noportrait` is set exactly when there
   is no portrait, which is the case that looked broken. Matched specificity. */
.say, .say.noportrait{ padding-inline-start:15px }
.say.hasportrait{ padding-inline-start:82px }
@media (orientation:landscape) and (max-height:480px){
  .say, .say.noportrait{ padding-inline-start:11px }
  .say.hasportrait{ padding-inline-start:56px }
}

/* ══════════════════════════════════════════════════════════════
   CLASS MODE SCREENS
   ══════════════════════════════════════════════════════════════ */
.modewrap{ gap:22px }
.modes{ display:flex; flex-direction:column; gap:14px; width:100%; max-width:340px }
.mode{
  display:flex; flex-direction:column; align-items:center; gap:5px;
  background:var(--paper); border:2px solid rgba(25,22,34,.14); border-radius:20px;
  padding:22px 18px; cursor:pointer; color:var(--ink);
  box-shadow:0 3px 12px rgba(25,22,34,.14);
}
.mode:active{ transform:translateY(2px) }
.modeico{ width:38px; height:38px; color:var(--teal) }
.modeh{ font:800 19px/1.1 var(--font) }
.modep{ font:500 13px/1.25 var(--font); opacity:.62; text-align:center }

.setwrap{ display:flex; flex-direction:column; gap:12px; width:100%; max-width:460px; padding:4px }
.sethead{ display:flex; align-items:center; gap:10px }
.seth{ font:800 20px/1.1 var(--font); color:#fff; margin:0 }
.setlist{ display:flex; flex-direction:column; gap:10px; overflow:auto; max-height:70dvh }
.setcard{
  display:flex; flex-direction:column; align-items:flex-start; gap:3px; width:100%;
  background:var(--paper); border:2px solid rgba(25,22,34,.12); border-radius:16px;
  padding:15px 16px; cursor:pointer; color:var(--ink); text-align:start;
  box-shadow:0 2px 8px rgba(25,22,34,.12);
}
.setcard:active{ transform:translateY(2px) }
.setname{ font:800 16px/1.2 var(--font) }
.setmeta{ font:500 12.5px/1.2 var(--font); opacity:.6 }
.setempty{ color:#fff; opacity:.85; font:500 14px/1.4 var(--font); text-align:center }

.donewrap{ gap:16px }
.donering{
  width:112px; height:112px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--paper); border:5px solid var(--teal); color:var(--ink);
  font:800 27px/1 var(--font);
}
.doneh{ font:800 21px/1.15 var(--font); color:#fff; margin:0; text-align:center }
.donestats{ display:grid; grid-template-columns:1fr 1fr; gap:9px; width:100%; max-width:340px }
.dstat{
  background:var(--paper); border-radius:13px; padding:10px 12px; text-align:center;
  display:flex; flex-direction:column; gap:1px;
}
.dstat b{ font:800 17px/1 var(--font); color:var(--ink) }
.dstat span{ font:500 11.5px/1.15 var(--font); opacity:.6; color:var(--ink) }
.donebtns{ display:flex; gap:10px; width:100%; max-width:340px }
.donebtns .go{ flex:1 }

@media (orientation:landscape) and (max-height:480px){
  .modes{ flex-direction:row; max-width:none }
  .mode{ flex:1; padding:14px 12px }
  .modeico{ width:28px; height:28px }
  .modeh{ font-size:calc(16px * var(--a11y-scale)) } .modep{ font-size:calc(14px * var(--a11y-scale)) }
  .setlist{ max-height:58dvh }
  .donering{ width:78px; height:78px; font-size:calc(20px * var(--a11y-scale)); border-width:4px }
  .donestats{ grid-template-columns:repeat(4,1fr) }
}

/* The pedagogic subject, under the game name. Small and quiet — it is there so a
   parent or teacher can see what a card actually teaches without opening it. */
.gcard .sub{
  font:600 11.5px/1.2 var(--font); opacity:.78; margin-top:3px;
  padding:0 10px; text-align:center; max-width:100%;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
@media (orientation:landscape) and (max-height:480px){
  .gcard .sub{ font-size:calc(14px * var(--a11y-scale)); -webkit-line-clamp:2 }
}

/* ══════════════════════════════════════════════════════════════
   ACCESSIBILITY  (NIC-679)
   One token drives type everywhere, so all mechanics inherit the scale
   without fifteen separate implementations. Children's base is already
   larger than an adult app would use — 1.0 here is not 1.0 elsewhere.
   ══════════════════════════════════════════════════════════════ */
:root{ --a11y-scale:1; }
/* AT SCALE 1 THIS MUST BE PIXEL-FOR-PIXEL v1. The accessibility scale is opt-in:
   a child who never opens the menu sees exactly the layout that already worked.
   I originally raised the base sizes here and the result was unusable — the
   stage collapsed and the keypad ate the screen. Base values below are v1's. */
.line{ font-size:calc(14.5px * var(--a11y-scale)) }
.tag{ font-size:calc(11.5px * var(--a11y-scale)) }
.go, .aux{ font-size:calc(15.5px * var(--a11y-scale)) }
.keypad button{ font-size:calc(16px * var(--a11y-scale)) }
.read .n{ font-size:calc(22px * var(--a11y-scale)) }
.gcard .cap{ font-size:calc(14px * var(--a11y-scale)) }
.gcard .sub{ font-size:calc(11.5px * var(--a11y-scale)) }

/* Tighter than v1: the buttons carried dead space that bought nothing. Padding
   comes down, the keypad gets its rows back, and the stage keeps the height. */
.keypad{ gap:6px }
.keypad button{ padding:5px 0; border-radius:11px }
.go, .aux{ padding:9px 10px; min-height:0 }
.ctl.actions{ gap:8px; margin-top:0 }
.say{ padding-block:9px 10px }
.side{ gap:8px }

/* 2 — high contrast */
.a11y-contrast{ --ink:#000; --paper:#fff; --cream:#fff; }
.a11y-contrast body{ background:#fff }
.a11y-contrast .say, .a11y-contrast .read, .a11y-contrast .keypad button,
.a11y-contrast .aux, .a11y-contrast .setcard{ background:#fff; color:#000; border:2.5px solid #000 }
.a11y-contrast .go{ background:#000; color:#fff; border:2.5px solid #000 }
.a11y-contrast .line{ color:#000 !important }
.a11y-contrast .stage{ outline:3px solid #000 }

/* 3 — highlight every interactive target */
.a11y-highlight button, .a11y-highlight .gcard, .a11y-highlight .setcard, .a11y-highlight .mode{
  outline:3px solid #0B6E86; outline-offset:2px;
}

/* 4 — readable font */
.a11y-dyslexic, .a11y-dyslexic body, .a11y-dyslexic button, .a11y-dyslexic .line{
  font-family:"Atkinson Hyperlegible","Verdana","Tahoma",system-ui,sans-serif !important;
  letter-spacing:.02em;
}

/* 5 — stop animations. Mechanics whose TASK is motion opt out in code and are
       listed in the ticket reply rather than silently broken. */
.a11y-nomotion *{ animation:none !important; transition:none !important; scroll-behavior:auto !important }

/* 7 — text alignment */
.a11y-align-start .line, .a11y-align-start .setname{ text-align:start !important }

/* 9 — line and letter spacing */
.a11y-spacing .line{ line-height:1.9 !important; letter-spacing:.06em; word-spacing:.14em }

/* 8 — reading mask: a band that follows the pointer and dims everything else */
.a11y-mask::after{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:60;
  background:linear-gradient(to bottom,
    rgba(0,0,0,.55) 0, rgba(0,0,0,.55) calc(var(--mask-y,50%) - 34px),
    transparent calc(var(--mask-y,50%) - 34px), transparent calc(var(--mask-y,50%) + 34px),
    rgba(0,0,0,.55) calc(var(--mask-y,50%) + 34px), rgba(0,0,0,.55) 100%);
}

/* 6 — keyboard navigation: a focus ring that is actually visible */
:focus-visible{ outline:4px solid #0B6E86 !important; outline-offset:3px !important; border-radius:6px }

/* the wheelchair button, on every screen */
/* It lives in the top bar, not floating. Floating bottom-right put it directly
   on top of the Hint button in RTL — an accessibility control that covers a
   game control is worse than no button. */
#a11ybtn svg{ width:17px; height:17px }
.a11y-contrast .iconbtn{ background:#fff; border-color:#000; color:#000 }

.a11ywrap{ display:flex; flex-direction:column; gap:12px; width:100%; max-width:440px; padding:4px }
.a11yh{ font:800 21px/1.1 var(--font); color:#fff; margin:0; text-align:center }
.a11yrows{ display:flex; flex-direction:column; gap:8px; max-height:62dvh; overflow:auto }
.a11yrow{ display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:var(--paper); border-radius:13px; padding:11px 13px }
.a11ylab{ font:700 14.5px/1.2 var(--font); color:var(--ink) }
.a11ysw{ min-width:74px; border-radius:99px; border:2px solid rgba(25,22,34,.18);
  background:var(--cream); color:var(--ink); font:800 12.5px var(--font); padding:7px 12px; cursor:pointer }
.a11ysw[data-on="1"]{ background:var(--teal); color:#fff; border-color:var(--teal) }
.a11ysize{ display:flex; align-items:center; gap:8px }
.a11ysize button{ width:40px; height:36px; border-radius:10px; border:2px solid rgba(25,22,34,.18);
  background:var(--cream); font:800 14px var(--font); cursor:pointer }
.a11yval{ min-width:52px; text-align:center; font:800 13.5px var(--font) }
.a11yalways{ font:800 12.5px var(--font); color:var(--teal) }
.a11ybtns{ display:flex; gap:10px }
.a11ybtns .go{ flex:1 }

/* ══════════════════════════════════════════════════════════════
   SPLASH — what just happened, big enough to notice
   ══════════════════════════════════════════════════════════════ */
.splash{ position:fixed; inset:0; z-index:80; display:flex; align-items:center; justify-content:center;
  padding:22px; background:rgba(12,10,18,.62); backdrop-filter:blur(3px) }
.splash[hidden]{ display:none }
.splashin{ background:var(--paper); border-radius:26px; padding:28px 24px 22px; width:100%; max-width:400px;
  display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center;
  box-shadow:0 16px 40px rgba(0,0,0,.3) }
.splashmark{ width:96px; height:96px; border-radius:50%; display:flex; align-items:center; justify-content:center }
.splashmark svg{ width:56px; height:56px }
.splash.good .splashmark{ background:rgba(18,166,155,.16); color:var(--teal) }
.splash.again .splashmark{ background:rgba(245,165,36,.18); color:#B4531F }
.splashh{ margin:0; font:800 calc(20px * var(--a11y-scale))/1.15 var(--font); color:var(--ink) }
.splashp{ margin:0; font:600 calc(14px * var(--a11y-scale))/1.35 var(--font); color:var(--ink); opacity:.78 }
.splashgo{ width:100%; margin-top:4px }
.a11y-nomotion .splashin{ animation:none !important }
.splash:not(.a11y-nomotion) .splashin{ animation:pop .26s cubic-bezier(.2,.9,.3,1.1) both }
@keyframes pop{ from{ transform:scale(.9); opacity:0 } to{ transform:scale(1); opacity:1 } }

/* At a large type scale the control column outgrows the screen and the Check
   button lands below the fold — measured 36px off at 200%. The stage is the
   only thing that can give, so it does; and past that the controls scroll, so
   nothing is ever unreachable. A button you cannot reach fails the requirement
   just as hard as text you cannot read. */
.app{ --stage-min:140px }
.stage{ min-height:var(--stage-min) }
@supports (min-height: calc(1px * 1)) {
  .app{ --stage-min: max(84px, calc(200px - (var(--a11y-scale) - 1) * 260px)) }
}
.side{ max-height:100%; overflow-y:auto; overscroll-behavior:contain }
.side::-webkit-scrollbar{ width:6px }
.side::-webkit-scrollbar-thumb{ background:rgba(25,22,34,.25); border-radius:99px }
/* the action row must stay visible while the rest scrolls under it */
.ctl.actions{ position:sticky; bottom:0; background:inherit; padding-top:4px }

/* ══════════════════════════════════════════════════════════════
   GAME GRID — all 33 visible and scrollable, replacing the carousel.
   The carousel looked good and hid 30 of the games behind a swipe.
   ══════════════════════════════════════════════════════════════ */
.grid{
  display:grid; gap:11px; width:100%; max-width:1100px; margin:0 auto;
  grid-template-columns:repeat(2,1fr);
  overflow-y:auto; overscroll-behavior:contain;
  max-height:calc(100dvh - 118px); padding:2px 2px 18px;
  align-content:start;
}
@media (min-width:560px){ .grid{ grid-template-columns:repeat(3,1fr) } }
@media (min-width:820px){ .grid{ grid-template-columns:repeat(4,1fr) } }
@media (min-width:1100px){ .grid{ grid-template-columns:repeat(5,1fr) } }

/* the tile: icon, character, name, and the pedagogic subject under it */
.grid .gcard{
  position:static; transform:none !important; opacity:1 !important;
  width:auto; height:auto; min-height:0;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  gap:3px; padding:12px 9px 11px; border-radius:17px;
  border:2.5px solid rgba(0,0,0,.16); box-shadow:0 3px 9px rgba(0,0,0,.2);
  cursor:pointer; overflow:hidden;
}
.grid .gcard .ico{ width:34px; height:34px; margin:0 }
.grid .gcard .who{ width:44px; height:52px; object-fit:contain; object-position:bottom; margin:0 }
.grid .gcard .cap{ font-weight:800; line-height:1.15; text-align:center; color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.35) }
.grid .gcard .sub{
  font-weight:600; line-height:1.2; text-align:center; color:#fff; opacity:.9;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
  padding:0; margin-top:1px;
}
.grid .gcard:active{ transform:translateY(2px) !important }
@media (orientation:landscape) and (max-height:480px){
  .grid{ max-height:calc(100dvh - 84px); grid-template-columns:repeat(4,1fr); gap:8px }
  .grid .gcard{ padding:8px 6px 9px }
  .grid .gcard .who{ width:34px; height:38px }
  .grid .gcard .ico{ width:24px; height:24px }
}

/* The carousel positioned .gcard AND its children absolutely, with a 3/4
   aspect ratio and a gloss ::after. Overriding only the card left the icon and
   caption still absolute, so tiles rendered as overlapping colour bars with the
   text off-card. Reset the whole subtree, not just the parent. */
.grid .gcard{ position:static !important; top:auto !important; left:auto !important;
  aspect-ratio:auto !important; width:auto !important; max-width:none !important }
.grid .gcard::after{ display:none !important }
.grid .gcard .ico{ position:static !important; transform:none !important;
  top:auto !important; left:auto !important; width:32px !important; height:32px !important;
  margin:0 !important; flex:0 0 auto }
.grid .gcard .who{ position:static !important; transform:none !important;
  width:46px !important; max-width:none !important; height:50px !important;
  margin:0 !important; z-index:auto !important; flex:0 0 auto }
.grid .gcard .cap{ position:static !important; left:auto !important; right:auto !important;
  bottom:auto !important; padding:0 !important; background:none !important;
  z-index:auto !important; width:100% }
.grid .gcard .sub{ position:static !important; width:100% }

/* #picker inherits .sheet, which is a ROW flex with align-items:center — built
   for one centred carousel. The grid became a centred row item and collapsed to
   31px while its children needed 98. Make the picker a column that stacks the
   header above a grid allowed to take the remaining height and scroll. */
#picker{ flex-direction:column; align-items:stretch; justify-content:flex-start;
  gap:10px; padding:14px 12px 10px }
#picker .deckhead{ flex:0 0 auto; display:flex; justify-content:center }
#picker .grid{ flex:1 1 auto; min-height:0; max-height:none; align-self:stretch;
  /* the floating exit pill is fixed over the corner; the grid scrolls its
     last row clear of it instead of ending underneath */
  padding-bottom:64px }
.grid{ grid-auto-rows:min-content }
.grid .gcard{ min-height:118px }
@media (orientation:landscape) and (max-height:480px){
  #picker{ padding:8px 10px 6px; gap:6px }
  .grid .gcard{ min-height:92px }
}

/* .deckhead was absolutely positioned so the carousel could sit under it. In a
   column layout that made the logo float over the first row of tiles. */
#picker .deckhead{ position:static; top:auto; left:auto; right:auto; padding:0 0 2px }

/* ── the homework board ───────────────────────────────────────────
   Numbered tiles, the whole assignment visible at once. Modelled on the level
   map every child already understands from the games they play at home: a
   number, stars you earned, and a padlock on what is not open yet.

   Only three states exist and each is unmistakable at arm's length — an open
   tile is bright and raised, a finished tile carries its stars, a locked tile
   is flat and grey. A six-year-old should not have to read anything to know
   which is which. */
#sets .setwrap{ display:flex; flex-direction:column; align-items:stretch;
  gap:10px; padding:12px 12px 14px; height:100%; min-height:0 }
.sethead{ display:flex; align-items:center; gap:8px; flex:0 0 auto }
.seth{ flex:1 1 auto; margin:0; font-size:calc(17px * var(--a11y-scale)); font-weight:800 }
.starcount{ display:inline-flex; align-items:center; gap:3px;
  background:rgba(255,255,255,.14); border-radius:999px; padding:3px 9px 3px 7px;
  font-size:calc(13px * var(--a11y-scale)); font-weight:800 }
.starcount i{ display:block; width:13px; height:13px }
.starcount svg{ width:100%; height:100%; fill:#F5C518 }
.starcount span{ opacity:.6; font-weight:700 }

.map{ flex:1 1 auto; min-height:0; overflow-y:auto; display:flex;
  flex-direction:column; gap:14px; padding:2px 2px 6px }
.cohort{ display:flex; flex-direction:column; gap:7px }
.cohorth{ display:flex; align-items:baseline; gap:8px }
.cohortn{ margin:0; font-size:calc(13.5px * var(--a11y-scale)); font-weight:800;
  flex:1 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.cohortp{ font-size:calc(12px * var(--a11y-scale)); font-weight:700; opacity:.62;
  font-variant-numeric:tabular-nums }

/* Five across on a phone, which is what the numbering in the brief implies and
   what keeps a tile big enough for a small finger. */
.tiles{ display:grid; grid-template-columns:repeat(5,1fr); gap:8px }
@media (min-width:520px){ .tiles{ grid-template-columns:repeat(7,1fr) } }
@media (min-width:900px){ .tiles{ grid-template-columns:repeat(9,1fr) } }

.tile{ position:relative; aspect-ratio:1/1; min-height:52px; border:0; cursor:pointer;
  border-radius:14px; padding:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:2px;
  background:linear-gradient(#DCF07A,#BEDD4A); color:#2C3908;
  box-shadow:0 3px 0 #8FAE2A, 0 5px 10px rgba(0,0,0,.22);
  font-family:inherit; transition:transform .12s ease, box-shadow .12s ease }
.tile:active{ transform:translateY(2px); box-shadow:0 1px 0 #8FAE2A, 0 2px 5px rgba(0,0,0,.22) }
.tile .tnum{ font-size:calc(19px * var(--a11y-scale)); font-weight:900; line-height:1;
  font-variant-numeric:tabular-nums }
.tile .tstars{ display:flex; gap:1px; height:11px }
.tile .tstars i{ display:block; width:11px; height:11px }
.tile .tstars svg{ width:100%; height:100%; fill:rgba(44,57,8,.17) }
.tile .tstars i.on svg{ fill:#F5A524 }
.tile.done{ background:linear-gradient(#EEFAB0,#D6EC6E) }

/* Locked: visibly not-yet, never scolding. Flat, grey, no shadow to press. */
.tile.lock{ background:rgba(255,255,255,.13); color:rgba(255,255,255,.5);
  box-shadow:none; cursor:default }
.tile.lock:active{ transform:none }
.tile .tlock{ display:block; width:44%; max-width:22px }
.tile .tlock svg{ width:100%; height:100% }

.setempty{ text-align:center; opacity:.7; padding:26px 12px;
  font-size:calc(14px * var(--a11y-scale)) }

.a11y-nomotion .tile{ transition:none }
.a11y-highlight .tile{ outline:2px solid rgba(255,255,255,.55); outline-offset:1px }
.a11y-contrast .tile{ background:#fff; color:#000; box-shadow:0 3px 0 #000 }
.a11y-contrast .tile.lock{ background:#333; color:#bbb; box-shadow:none }

/* Stars and the running total are pictures of a quantity, not sentences: they
   fill left-to-right in every locale. In RTL they were rendering mirrored, so
   "9 of 90" came out as "90/ 9". */
.tile .tstars, .starcount{ direction:ltr }
.tile.next{ box-shadow:0 0 0 3px #fff, 0 3px 0 #8FAE2A, 0 6px 14px rgba(0,0,0,.3) }
.tile.next .tnum{ font-size:calc(21px * var(--a11y-scale)) }

/* ── books and units ──────────────────────────────────────────────
   The grade badge is not decoration. It is the promise that nothing on this
   screen belongs to another year. */
.gradebadge{ background:#fff; color:#E8620A; border-radius:999px; padding:3px 10px;
  font-size:calc(12.5px * var(--a11y-scale)); font-weight:900; white-space:nowrap }

.book{ display:flex; flex-direction:column; gap:8px }
.bookn{ margin:0 2px; font-size:calc(14.5px * var(--a11y-scale)); font-weight:900 }

.unit{ display:flex; flex-direction:column; gap:8px }
/* The cover is an SVG, so the button is a frame and nothing else. */
.unith{ display:block; width:100%; border:0; padding:0; background:none; cursor:pointer;
  border-radius:19px; -webkit-tap-highlight-color:transparent;
  transition:transform .12s ease }
.unith svg{ display:block; width:100%; height:auto }
.unith:active{ transform:translateY(2px) }
.unit.ulock .unith{ cursor:default }
.unit.ulock .unith:active{ transform:none }
.unit.fold .tiles{ display:none }
.a11y-nomotion .unith{ transition:none }
.a11y-highlight .unith{ outline:2px solid rgba(255,255,255,.55); outline-offset:2px }

/* Cohorts are six levels, so the row is six across. Five columns left a single
   orphan tile hanging on its own line under every unit. */
.tiles{ grid-template-columns:repeat(6,1fr); gap:7px }
@media (min-width:520px){ .tiles{ grid-template-columns:repeat(8,1fr) } }
@media (min-width:900px){ .tiles{ grid-template-columns:repeat(10,1fr) } }
.tile{ min-height:46px; border-radius:12px }
.tile .tnum{ font-size:calc(17px * var(--a11y-scale)) }
.book{ gap:9px }
.map{ gap:19px }

/* ============================================================
   DESKTOP — a real tier, not a phone lying down.
   ============================================================
   Until now the only wide-screen rule was `orientation:landscape`,
   which a 1440px monitor and a phone on its side both match. So the
   desktop inherited phone sizing: a 214px rail of 12.5px text floating
   in dead space on the left, and a stage that stretched to 1188px and
   drew apples 300px across. Two different scales on one screen.

   The fix is a composition, not a scale factor:
     · the sidebar is a real panel — wide, opaque, with big type
     · the CTA is the biggest thing in it
     · the stage is CAPPED and PADDED. It sits in the middle of its
       column like a board on a table, rather than filling the wall.
   ============================================================ */
@media (min-width:1024px) and (min-height:600px){
  .app{
    flex-direction:row; align-items:stretch; gap:26px;
    max-width:1560px; margin:0 auto; padding:64px 34px 30px;
  }

  /* ── the board ─────────────────────────────────────────────
     Capped both ways and centred. `aspect-ratio` keeps the scene
     the shape the mechanics were drawn for; without the cap a wide
     monitor stretched every game into a letterbox. */
  .stage{
    order:1; flex:1 1 auto; min-width:0;
    display:flex; align-items:center; justify-content:center;
    background:none; border:0; border-radius:0; box-shadow:none; overflow:visible;
    padding:0;
  }
  .stage svg{
    width:min(100%, 760px); height:auto;
    max-height:100%; aspect-ratio:4/3.4;
    border:4px solid var(--ink); border-radius:26px;
    background:var(--paper);
    box-shadow:0 22px 44px rgba(0,0,0,.28), 0 5px 0 rgba(0,0,0,.22);
  }

  /* ── the sidebar ───────────────────────────────────────────
     A panel a child can read across a classroom, not a caption. */
  .side{
    order:2; width:clamp(420px, 34vw, 560px); flex:0 0 auto;
    display:flex; flex-direction:column; gap:14px; justify-content:center;
  }
  .say{ padding:20px 22px; border-radius:24px; border-width:4px }
  .line{ font-size:calc(20px * var(--a11y-scale)); line-height:1.42 }
  .tag{ font-size:calc(13px * var(--a11y-scale)); padding:3px 12px }

  /* The phone reserves space for the portrait with an inline padding, because
     there the portrait is absolutely positioned. Desktop gives it a real grid
     column further down — so the padding here reserved the character a SECOND
     time and ate 112px of the sentence. 208px of a 308px card went to Arnold
     and the copy wrapped four words to a line. The grid column is the single
     source of the reservation; this tier must not add to it. */
  .say.hasportrait{ padding-inline-start:22px }

  /* ── the CTA ───────────────────────────────────────────────
     The one thing the eye should land on. */
  .actions{ gap:12px }
  .go{
    padding:20px 16px; font-size:calc(23px * var(--a11y-scale));
    border-radius:20px; border-width:4px;
    box-shadow:0 6px 0 rgba(0,0,0,.22);
  }
  .aux{
    padding:16px 14px; font-size:calc(17px * var(--a11y-scale));
    border-radius:18px; border-width:3.5px;
  }

  /* ── the inputs ────────────────────────────────────────────── */
  .keypad{ gap:10px }
  .keypad button{ padding:14px 0; font-size:calc(23px * var(--a11y-scale)); border-radius:16px }
  .read{ padding:10px 14px; border-radius:18px }
  .read .n{ font-size:calc(34px * var(--a11y-scale)) }
  .step{ width:62px; height:62px; border-radius:18px }
  .ctl{ gap:12px }

  .top{ position:absolute; top:16px; left:26px; right:26px; width:auto; z-index:5 }
  .dots{ gap:7px }
}

/* Very wide screens: stop growing the board, grow the margins instead. */
@media (min-width:1600px){
  .app{ gap:40px; padding:72px 48px 36px }
  .stage svg{ width:min(100%, 820px) }
}

/* ============================================================
   THE ROOM — brand surface instead of a grey-blue gradient.
   ============================================================
   Nickelodeon's own language: a hot orange field, soft blobs, a
   splat or two, high contrast ink. The old backdrop was a neutral
   gradient that could have belonged to any utility app; this is
   the thing that stops it reading as a calculator.

   Everything here is CSS — radial gradients and one repeating
   conic pattern. No image requests, so it costs nothing on a
   school connection and it scales to any screen without a raster.
   ============================================================ */
:root{
  --nick-orange:#ff650f; --nick-orange-hot:#ff4f12; --nick-orange-light:#ff8733;
  --nick-purple:#5b1788; --nick-slime:#22e500; --nick-pink:#f5369b;
  --nick-yellow:#ffd727; --nick-cyan:#20c9f4; --nick-ink:#0d0820;
}

body{
  background:
    /* soft brand blobs, biggest first */
    radial-gradient(38vmax 30vmax at 12% 18%, rgba(255,215,39,.55) 0%, rgba(255,215,39,0) 62%),
    radial-gradient(34vmax 28vmax at 88% 12%, rgba(32,201,244,.42) 0%, rgba(32,201,244,0) 60%),
    radial-gradient(40vmax 34vmax at 78% 88%, rgba(245,54,155,.34) 0%, rgba(245,54,155,0) 62%),
    radial-gradient(30vmax 26vmax at 8%  86%, rgba(34,229,0,.30)  0%, rgba(34,229,0,0)  62%),
    linear-gradient(168deg, var(--nick-orange-light) 0%, var(--nick-orange) 46%, var(--nick-orange-hot) 100%);
  background-attachment:fixed;
}

/* A faint dot grid over the field: texture without noise, and it
   gives the flat colour something to catch the light on. */
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:radial-gradient(rgba(13,8,32,.13) 1.5px, transparent 1.6px);
  background-size:26px 26px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.85), rgba(0,0,0,.25));
}
/* Only the app needs a stacking context above the field. Naming .sheet here
   overrode its own position:fixed/z-index:40 and collapsed every overlay —
   the accessibility menu, the game picker, the cohort board and the splash —
   into the document flow at zero size. They must keep their own positioning. */
.app{ position:relative; z-index:1 }

@media (min-width:1024px) and (min-height:600px){
  /* The sidebar becomes an object on the field rather than text
     floating on it — same cream card language as the board. */
  .side{
    background:rgba(255,255,255,.16);
    border:4px solid var(--ink);
    border-radius:30px;
    padding:22px 20px;
    box-shadow:0 18px 40px rgba(0,0,0,.24), 0 5px 0 rgba(0,0,0,.2);
    backdrop-filter:blur(2px);
    justify-content:flex-start; gap:16px;
  }
  /* Speech sits at the top of the panel, controls pinned to the
     bottom, so the CTA is always in the same place game to game. */
  .side .say{ flex:0 0 auto }
  .side .ctl.actions{ margin-top:auto }
  .side .keypad, .side .ctl{ flex:0 0 auto }
}

@media (prefers-reduced-motion:reduce){ body{ background-attachment:scroll } }

@media (min-width:1024px) and (min-height:600px){
  /* A panel the height of the screen with its contents pinned to the
     two ends left a 700px hole down the middle. The panel should be
     the size of what is in it, and sit level with the board. */
  .side{
    align-self:center; height:auto; max-height:100%;
    justify-content:flex-start; gap:18px;
    background:rgba(255,255,255,.22);
    overflow:auto;
  }
  .side .ctl.actions{ margin-top:4px }

  /* The character is the thing that makes this a Nickelodeon screen
     rather than a form. Where we have verified art, show it properly
     instead of as a 40px thumbnail in the corner of a bubble. */
  /* The portrait was absolutely positioned for the phone, so on desktop it
     sat ON TOP of the sentence. Give it its own column in the grid and let
     the text have the rest — and let the grid, not the character, decide
     which side each ends up on in RTL. */
  .say{ display:grid; grid-template-columns:96px 1fr; gap:16px;
        align-items:end; row-gap:6px }
  .say .portrait{ position:static; grid-column:1; grid-row:1 / span 2;
        width:96px; height:auto; align-self:end; margin:0; inset:auto }
  .say .tag{ grid-column:2; grid-row:1; justify-self:start; align-self:start; width:auto }
  .say .line{ grid-column:2; grid-row:2; margin:0 }
  html[dir="rtl"] .say .tag{ justify-self:end }
  /* No portrait: the text takes the whole bubble. */
  .say:not(:has(.portrait:not([hidden]))){ grid-template-columns:1fr }
  .say:not(:has(.portrait:not([hidden]))) .tag,
  .say:not(:has(.portrait:not([hidden]))) .line{ grid-column:1 }
}

@media (min-width:1024px) and (min-height:600px){
  /* The name badge is a pill, not a bar. Placing it in a grid column
     stretched it the full width of the bubble. */
  .say .tag{ justify-self:start; width:auto; align-self:start }
  html[dir="rtl"] .say .tag{ justify-self:end }
}

/* ── confetti ─────────────────────────────────────────────────── */
/* Fixed to the viewport and above the splash (z-80), so the celebration is
   actually seen. Mounted inside the stage it sat underneath the very screen
   that announces the win. */
.confetti{ position:fixed; inset:0; overflow:hidden; pointer-events:none; z-index:120 }
.confetti i{ position:absolute; top:46%; display:block; will-change:transform,opacity;
  animation:conf 1.15s cubic-bezier(.15,.6,.35,1) forwards; opacity:0 }
@keyframes conf{
  0%   { transform:translate3d(0,0,0) rotate(0deg) scale(.6); opacity:0 }
  12%  { opacity:1 }
  40%  { transform:translate3d(calc(var(--dx) * .55), var(--dy), 0) rotate(calc(var(--rot) * .5)) scale(1) }
  100% { transform:translate3d(var(--dx), 210px, 0) rotate(var(--rot)) scale(.9); opacity:0 }
}
@media (prefers-reduced-motion:reduce){ .confetti{ display:none } }

/* ── the button a child presses ───────────────────────────────────
   Green, not amber. On the orange field the amber CTA was the same
   family as the background it sat on, so the one thing a child has
   to find was the thing hardest to pick out. Green is the only hue
   on the screen that belongs to nothing else. */
.go{ background:var(--go-green,#18A957); color:#fff; }
.go:active{ transform:translateY(2px); box-shadow:0 2px 0 rgba(0,0,0,.28) }
.go.done{ background:var(--teal); color:#fff }
@media (min-width:1024px) and (min-height:600px){
  .go{ box-shadow:0 6px 0 #0E7A3E, 0 12px 22px rgba(0,0,0,.24) }
  .go:active{ box-shadow:0 2px 0 #0E7A3E, 0 6px 12px rgba(0,0,0,.24) }
}


/* ── progress dots ────────────────────────────────────────────────
   The track was dark ink at 22% on what used to be a pale gradient.
   On the orange field that reads as nothing. Light track, white for
   the step you are on. */
.dots .dot{ background:rgba(255,255,255,.42); box-shadow:0 1px 0 rgba(0,0,0,.12) }
.dots .dot.on{ background:#fff }
.dots .dot.now{ background:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.35) }

/* ── the language door ────────────────────────────────────────── */
.gatewrap{ display:flex; flex-direction:column; align-items:center; gap:26px; padding:26px }
.gateh{ margin:0; font-size:clamp(calc(15px * var(--a11y-scale)), 2.4vw, calc(20px * var(--a11y-scale))); font-weight:800; color:#fff;
  text-align:center; opacity:.95; line-height:1.5 }
.gatebtns{ display:flex; flex-wrap:wrap; gap:16px; justify-content:center; width:100% }
.gatebtn{ flex:1 1 190px; max-width:260px; min-height:118px; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  background:var(--paper); border:4px solid var(--ink); border-radius:24px;
  box-shadow:0 8px 0 rgba(0,0,0,.28), 0 16px 30px rgba(0,0,0,.3);
  font-family:var(--font); transition:transform .12s ease }
.gatebtn b{ font-size:clamp(calc(22px * var(--a11y-scale)), 3.4vw, calc(30px * var(--a11y-scale))); font-weight:900; color:var(--ink) }
.gatebtn span{ font-size:calc(14.5px * var(--a11y-scale)); font-weight:700; color:#6B6577 }
.gatebtn:active{ transform:translateY(3px); box-shadow:0 3px 0 rgba(0,0,0,.28) }
.gatebtn:focus-visible{ outline:4px solid var(--amber); outline-offset:3px }
@media (prefers-reduced-motion:reduce){ .gatebtn{ transition:none } }

/* ============================================================
   DESKTOP — the screens that are not the game.
   ============================================================
   The board and the picker were still phone layouts centred in a
   1440px window: a 330px column of 46px tiles with a third of a
   metre of orange either side. Same fault as the game screens had,
   just found later because the first desktop audit only covered
   in-game views.
   ============================================================ */
@media (min-width:1024px){

  /* ── the cohort board ─────────────────────────────────────── */
  #sets .setwrap{ max-width:1280px; margin:0 auto; padding:26px 30px 30px; gap:16px }
  .sethead{ gap:12px }
  .seth{ font-size:calc(24px * var(--a11y-scale)) }
  .gradebadge{ font-size:calc(15px * var(--a11y-scale)); padding:5px 14px }
  .starcount{ font-size:calc(16px * var(--a11y-scale)); padding:5px 13px 5px 10px }
  .starcount i{ width:17px; height:17px }

  /* Books side by side — a teacher's set of 10 cohorts should be
     readable without scrolling a single file of cards. */
  .map{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
        gap:22px 26px; align-content:start }
  .book{ gap:11px }
  .unit{ gap:10px }

  /* The cover is a 360-wide drawing; let it fill its column. */
  .unith svg{ width:100%; height:auto }

  /* Tiles a finger — or a mouse — can actually aim at. */
  .tiles{ grid-template-columns:repeat(6,1fr); gap:10px }
  .tile{ min-height:60px; border-radius:15px }
  .tile .tnum{ font-size:calc(21px * var(--a11y-scale)) }
  .tile.next .tnum{ font-size:calc(23px * var(--a11y-scale)) }
  .tile .tstars i{ width:13px; height:13px }
  .tile .tlock{ max-width:26px }
}
@media (min-width:1500px){
  .map{ grid-template-columns:repeat(3,minmax(0,1fr)) }
  #sets .setwrap{ max-width:1600px }
}

/* ── the game picker ──────────────────────────────────────────
   It kept a dark radial backdrop from the days when it was a 3D
   card deck on a night sky. Everything else is the brand field
   now, so the menu was the one screen that looked like a
   different product. */
/* The picker is a full-screen sheet OVER the game. Making it transparent to
   pick up the field showed the game through it — the sidebar and the Check
   button bleeding between the cards. It needs its own opaque copy of the
   field instead. */
#picker{
  background:
    radial-gradient(38vmax 30vmax at 12% 18%, rgba(255,215,39,.55) 0%, rgba(255,215,39,0) 62%),
    radial-gradient(34vmax 28vmax at 88% 12%, rgba(32,201,244,.42) 0%, rgba(32,201,244,0) 60%),
    radial-gradient(40vmax 34vmax at 78% 88%, rgba(245,54,155,.34) 0%, rgba(245,54,155,0) 62%),
    radial-gradient(30vmax 26vmax at 8%  86%, rgba(34,229,0,.30)  0%, rgba(34,229,0,0)  62%),
    linear-gradient(168deg, var(--nick-orange-light) 0%, var(--nick-orange) 46%, var(--nick-orange-hot) 100%);
}
@media (min-width:1024px){
  #picker{ padding:22px 30px 26px }
  #picker .grid{ max-width:1420px; margin:0 auto; gap:16px }
  .deckhead .brand{ height:34px }
  .grid .gcard{ min-height:150px }
}

/* ── back to Nick Academy ─────────────────────────────────────────
   Deliberately quiet, and deliberately NOT in the top bar. It sits at
   the foot of the menus a child is already looking at when they are
   between games. Two always-present controls side by side is how a
   child aiming for text size quits the game instead — so this is kept
   well away from the accessibility button. */
.exitbtn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  margin:14px auto 2px; padding:11px 20px; cursor:pointer;
  background:rgba(255,255,255,.14); color:#fff;
  border:2.5px solid rgba(255,255,255,.5); border-radius:999px;
  font:800 14px/1 var(--font); flex:0 0 auto; align-self:center;
  transition:background .14s ease;
}
.exitbtn:hover{ background:rgba(255,255,255,.24) }
.exitbtn:active{ transform:translateY(1px) }
.exitbtn:focus-visible{ outline:4px solid var(--amber); outline-offset:3px }
.exitmark{ height:17px; width:auto; opacity:.95; flex:0 0 auto }
.exitlabel{ white-space:nowrap }
/* High contrast and 150–200% text must not clip it. */
.a11y-contrast .exitbtn{ background:#000; color:#fff; border-color:#fff }
.exitbtn{ font-size:calc(14px * var(--a11y-scale)); max-width:calc(100% - 24px) }
.exitlabel{ white-space:normal; text-align:center }
@media (prefers-reduced-motion:reduce){ .exitbtn{ transition:none } }

/* --- Accessibility button: on every page, not only inside a game -----------
   Israeli law requires the wheelchair button on every screen, and NIC-680 makes
   it a shipping gate. It used to live in the game's top bar inside .app, which
   is a stacking context at z-index:1 — so every full-screen sheet (z-index:40)
   painted over it. A child on the language door, the mode gate or the game
   picker could not reach it, and `isVisible()` reported true the whole time
   because the element was laid out and only covered.
   No child of .app can escape that stacking context, so the button sits at body
   level instead. `.topspacer` keeps the game's top-bar spacing unchanged. */
#a11ybtn{
  position:fixed; z-index:60;
  top:calc(env(safe-area-inset-top, 0px) + 10px);
  /* END, not start. It used to sit at the inline start — the same corner as
     the back arrow on the picker and the homework board — and being fixed at
     z-index 60 it swallowed both. `#setback` had been partly unclickable since
     the button moved to body level, and nothing caught it because the sheets
     were never re-tested afterwards.
     A back arrow points somewhere and belongs at the start. This one is a
     floating utility with no direction, so it is the one that moves. */
  /* Afik 14 Aug: two buttons each side, logo centred — accessibility (now
     blue) joins the back/games slot on the inline-start side, 70 leaves air
     past that 44px neighbour. */
  inset-inline-start:78px;
}
/* The games button takes the corner slot beside it — fixed like the rest of
   the chrome but UNDER the sheets (35 < 40), so on the deck and the homework
   board the back arrow owns that corner instead. */
#home{ position:fixed; z-index:35; top:calc(env(safe-area-inset-top, 0px) + 10px); inset-inline-start:14px }
/* the fixed right-hand pair (home + a11y) needs the .top row to keep clear */
.top{ padding-inline-start:130px }
/* The audio pair: same fixed layer and corner cluster as #a11ybtn, spaced so
   the three never overlap at any viewport. z-index 60 like the a11y button —
   reachable over the sheets (40), under a transient splash (80). */
.sndbtn{ position:fixed; z-index:60; top:calc(env(safe-area-inset-top, 0px) + 10px) }
#sndspeech{ inset-inline-end:14px }
#sndmusic{ inset-inline-end:60px }
[aria-pressed="false"].sndbtn{ background:var(--ink); color:var(--cream) }
/* Wide enough that the .top row's own content never runs under the fixed
   cluster of three (a11y + speech + music). */
/* Clears the fixed cluster: a11y 14+48, speech 66+48, music 118+48 = 166px
   plus breathing room. At 128px the home button slid under the music toggle
   when the buttons grew to 48px. */
.topspacer{ width:176px; height:36px; flex:0 0 auto }
/* Below the splash (80) on purpose: a transient overlay may cover it. */

/* ── The brand field ────────────────────────────────────────────────────────
   The orange was a flat fill. These are the Nick Academy 3D icons from Drive,
   blown up and dropped to a whisper so they read as texture rather than as
   content a child might try to tap.
   Rules that keep it decoration: fixed behind .app (z-index:1), never above a
   sheet, pointer-events:none, aria-hidden, and it is removed entirely when a
   child has asked for reduced motion or high contrast — a busy background is
   the first thing to go for anyone who needs the screen to be quiet. */
.field{
  position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none;
  contain:strict;
}
.fs{
  position:absolute; opacity:.085;
  filter:brightness(0) invert(1);        /* white silhouettes, not cyan on orange */
  will-change:auto;
}
.fs1{ width:210px; top:-3%;  inset-inline-start:-4%;  transform:rotate(-14deg) }
.fs2{ width:260px; top:22%;  inset-inline-end:-6%;    transform:rotate(11deg) }
.fs3{ width:150px; bottom:16%; inset-inline-start:6%; transform:rotate(21deg) }
.fs4{ width:190px; bottom:-5%; inset-inline-end:12%;  transform:rotate(-8deg) }
.fs5{ width:120px; top:46%;  inset-inline-start:44%;  transform:rotate(-25deg); opacity:.05 }

@media (min-width:1024px){
  .fs1{ width:300px } .fs2{ width:360px } .fs3{ width:220px }
  .fs4{ width:280px } .fs5{ width:170px }
}
/* Quiet screen when asked for one. */
.a11y-contrast .field, .a11y-still .field{ display:none }
@media (prefers-reduced-motion:reduce){ .fs{ transition:none } }

/* ── Desktop: the sidebar is a panel, not a caption ─────────────────────────
   It was vertically centred at whatever height its contents happened to need
   — a small floating card beside a huge board, with 20px copy and a 23px
   button. On a classroom monitor that is unreadable from a desk.
   Now: the panel matches the board's height exactly, the copy is sized to be
   read across a room, and the CTA is parked on the floor of the panel where a
   child's eye lands last.
   `--board-w/--board-h` are one pair of numbers shared by the board and the
   panel, so the two cannot drift apart the way the portrait gutter did. */
@media (min-width:1024px) and (min-height:600px){
  .app{ --board-w:760px; --board-h:calc(var(--board-w) * 3.4 / 4) }
  .stage svg{ width:min(100%, var(--board-w)) }

  .side{
    align-self:center;
    height:min(100%, var(--board-h));
    justify-content:flex-start;
    gap:16px;
  }
  /* The CTA sits on the floor of the panel, whatever the copy above it does.
     Pushed from the CARD rather than pulled by the actions block: .ctl.actions
     is position:sticky further up this file, and an auto top margin on a sticky
     item resolved to 4px instead of absorbing the free space. A bottom auto
     margin on the card is immune to that and keeps working if a keypad or a
     readout appears between the two. */
  .side > .say{ margin-bottom:auto }
  .side .actions{ flex-shrink:0 }

  /* Read from a desk, not from 40cm away. */
  .line{ font-size:calc(26px * var(--a11y-scale)); line-height:1.45 }
  .tag{ font-size:calc(15px * var(--a11y-scale)); padding:5px 15px }
  .say{ padding:26px 26px }

  .go{
    padding:30px 22px; font-size:calc(32px * var(--a11y-scale));
    border-radius:22px; border-width:4px;
    box-shadow:0 7px 0 rgba(0,0,0,.22);
  }
  .aux{ padding:20px 16px; font-size:calc(20px * var(--a11y-scale)) }
}
@media (min-width:1600px){
  .app{ --board-w:820px }
}

/* ── The teach card: a titled panel that fills its column ───────────────────
   The card was a grid built around a portrait column. The portrait is gone, so
   the grid is now a one-column grid pretending to be a stack — and a grid with
   pinned rows makes adding a title a placement puzzle. A flex column is what
   this actually is: name tag, title, paragraph, top to bottom.
   Applies at every size; mobile keeps its own type scale below. */
.say{
  display:flex; flex-direction:column; align-items:stretch;
  gap:6px; text-align:start;
}
.sayh{
  margin:0; font-weight:900; line-height:1.18;
  font-size:calc(17px * var(--a11y-scale));
  color:var(--ink);
}
.say .tag{ align-self:start; width:auto }

@media (min-width:1024px) and (min-height:600px){
  /* Grow to fill the column instead of leaving a hole above the CTA. The card
     is the panel; short copy simply sits in a roomier box. */
  .side > .say{ flex:1 1 auto; margin-bottom:0; justify-content:flex-start }
  .side{ gap:14px }

  .sayh{ font-size:calc(34px * var(--a11y-scale)); line-height:1.15 }
  .line{ font-size:calc(28px * var(--a11y-scale)); line-height:1.5 }
  .say{ padding:30px 28px; gap:14px }
}

/* ── Back out of free play ──────────────────────────────────────────────────
   The picker's header is `pointer-events:none` so the brand mark never eats a
   tap meant for a game card. A button inside it therefore needs its own
   `pointer-events:auto` — without that this control renders perfectly and does
   nothing, which is the failure this whole evening has been about.
   Absolutely placed so the brand stays optically centred. */
#deckback{
  position:absolute; inset-inline-start:14px; top:50%; transform:translateY(-50%);
  pointer-events:auto; z-index:4;
}
#picker .deckhead{ position:relative; min-height:44px; align-items:center }
.deckhead .brand{ pointer-events:none }
@media (min-width:1024px){ #deckback{ inset-inline-start:22px } }

/* ══════════════════════════ THE FIGMA SKIN ══════════════════════════
   Afik's asset file (Figma "MathGame Assets"). These are the real drawn
   pieces, not recreations: the chunky orange icon buttons, the check/hint
   plates, the sunburst game field and the language-door flag bars. Anything
   not covered by an asset keeps the engine's own chunky style, tuned to sit
   beside the drawn pieces rather than fight them. */

/* the drawn field behind everything */
body{
  background:url("../assets/figma/bg-game.jpg") center / cover no-repeat fixed,
             linear-gradient(163deg,var(--sky-a) 0%,var(--sky-b) 100%);
}
/* a busy picture is the first thing to go for anyone who asked for quiet */
.a11y-contrast body, body.a11y-contrast{ background-image:none }

/* icon buttons whose face IS the asset: the PNG carries its own chunky
   button — plate, outline, shadow — so the engine button becomes a bare
   hit area around it */
.iconbtn.fig{ background:none; border:none; box-shadow:none; padding:0 }
.iconbtn.fig .figface{ width:44px; height:44px; object-fit:contain; display:block;
  filter:drop-shadow(0 2px 0 rgba(0,0,0,.25)) }
.iconbtn.fig:active .figface{ transform:translateY(2px) }
.a11y-contrast .iconbtn.fig{ background:#fff; border:2.5px solid #000; border-radius:12px }

/* the audio pair matches the drawn icon set: same chunky rounded square,
   green like the sound icon in the file, white glyph, ink outline */
.sndbtn{
  width:44px; height:44px; border-radius:13px;
  background:linear-gradient(180deg,#9CD34A 0%,#6FB52C 100%);
  border:3px solid #17301B; box-shadow:0 3px 0 #17301B; color:#fff;
}
.sndbtn svg{ width:22px; height:22px }
[aria-pressed="false"].sndbtn{
  background:linear-gradient(180deg,#5A6B4A 0%,#41522F 100%); color:#EDE7DA;
}

/* the back chevron from the door design — white with the navy outline.
   It points "back", which is a different physical side in RTL. */
.iconbtn .chev{ width:20px; height:26px }
html[dir="ltr"] .iconbtn .chev{ transform:scaleX(-1) }

/* the check / go plate */
.go{
  background:url("../assets/figma/btn-check.png") center / 100% 100% no-repeat;
  border:none; box-shadow:none; color:#fff; font-weight:900;
  text-shadow:0 2px 0 rgba(23,48,27,.55);
}
.go:active{ transform:translateY(2px); box-shadow:none }
.go.done{ background:url("../assets/figma/btn-check.png") center / 100% 100% no-repeat;
  filter:hue-rotate(115deg) saturate(.9) }
.a11y-contrast .go{ background:#0B7A3E; border:3px solid #000; text-shadow:none }

/* the hint plate — cream, ink text */
.aux#hint{
  background:url("../assets/figma/btn-hint.png") center / 100% 100% no-repeat;
  border:none; box-shadow:none; color:var(--ink); font-weight:800;
}
.a11y-contrast .aux#hint{ background:#fff; border:3px solid #000 }

/* ── the language door, per the mockup: full-width flag bars ── */
.sheet.solid.langgate{ background:url("../assets/figma/bg-language.jpg") center / cover no-repeat }
/* the door heading sits on the drawn sky — give it the ink outline the
   asset text carries so it belongs to the same set */
.gateh{ color:#fff; text-shadow:0 2px 0 rgba(13,36,78,.55) }
.gatebtns{ flex-direction:column; align-items:center; gap:14px }
.gatebtn{
  flex:0 0 auto; width:min(348px, 86vw); max-width:none; min-height:0;
  aspect-ratio:688/122; flex-direction:row; justify-content:center; gap:10px;
  border:none; background:var(--paper); border-radius:18px;
  box-shadow:0 6px 0 rgba(0,0,0,.28), 0 12px 24px rgba(0,0,0,.3);
  background-size:100% 100%; background-repeat:no-repeat;
}
.gatebtn[data-gl="he"]{ background-image:url("../assets/figma/plate-he.png") }
.gatebtn[data-gl="en"]{ background-image:url("../assets/figma/plate-en.png") }
.gatebtn[data-gl="pt"]{ background-image:url("../assets/figma/plate-pt.png") }
.gatebtn b{ color:#fff; text-shadow:0 2px 0 rgba(0,0,0,.4);
  font-size:clamp(calc(20px * var(--a11y-scale)), 3vw, calc(26px * var(--a11y-scale))) }
.gatebtn span{ color:rgba(255,255,255,.85); text-shadow:0 1px 0 rgba(0,0,0,.35) }
.a11y-contrast .gatebtn{ background-image:none; background:#fff; border:3px solid #000 }
.a11y-contrast .gatebtn b{ color:#000; text-shadow:none }

/* ── the sound card: one card, one OK (NIC-752 ruling) ── */
.soundcard{ position:fixed; inset:0; z-index:75; display:flex; align-items:center;
  justify-content:center; background:rgba(13,36,78,.45); padding:20px }
.soundcard[hidden]{ display:none }
.soundcardin{ background:var(--paper); border:4px solid var(--ink); border-radius:22px;
  box-shadow:0 10px 0 rgba(0,0,0,.25), 0 20px 40px rgba(0,0,0,.3);
  padding:26px 28px; display:flex; flex-direction:column; align-items:center; gap:18px;
  max-width:min(420px, 92vw); text-align:center }
.soundcardp{ margin:0; font-weight:800; color:var(--ink);
  font-size:calc(20px * var(--a11y-scale)); line-height:1.35 }
.soundok{ min-width:150px; font-size:calc(20px * var(--a11y-scale)) }

/* ── Afik's visual pass (13 Aug) ─────────────────────────────────────── */

/* 1px pale stripe under the plate buttons: the element's own background
   colour peeking past the image at sub-pixel rounding. Kill the colour and
   overscan the image a hair so its edge can never fall short of the box. */
.go, .aux#hint, .gatebtn{
  background-color:transparent;
  background-size:calc(100% + 4px) calc(100% + 4px);
  background-position:center;
}

/* the three chrome buttons sit on one line: same 48px visual box, same top */
.iconbtn.fig{ width:48px; height:48px; display:flex; align-items:center; justify-content:center }
/* display:flex silently defeats the hidden attribute — the class-mode
   games-button ban depends on this losing. */
.iconbtn.fig[hidden]{ display:none !important }
.iconbtn.fig .figface{ width:48px; height:48px }
.sndbtn{ width:48px; height:48px }
.sndbtn svg{ width:24px; height:24px }
#sndspeech{ inset-inline-end:14px }
#sndmusic{ inset-inline-end:66px }

/* game cards: the character is the card. Big, grounded at the bottom;
   the game-type icon becomes a badge pinned to the top-left, 20px in. */
.grid .gcard{ position:relative !important; min-height:172px; justify-content:flex-end; gap:2px }
/* Arnold sits IN the flow, above the caption — never behind it. The absolute
   96% version covered the game names (Afik: "no overlapping items"), so he is
   a flex child again: bigger than the original 50px, but the text below him
   is on its own rows and nothing can sit on top of it. */
.grid .gcard .who{ position:static !important; bottom:auto !important; left:auto !important;
  right:auto !important; top:auto !important; transform:none !important;
  height:88px !important; width:auto !important; max-width:82% !important;
  margin:0 !important; flex:0 0 auto;
  object-fit:contain; object-position:bottom; z-index:auto !important }
.grid .gcard .cap, .grid .gcard .sub{ position:relative; z-index:3 }
.grid .gcard .ico{ position:absolute !important; top:20px !important; left:20px !important;
  right:auto !important; transform:none !important;
  width:40px !important; height:40px !important; margin:0 !important; z-index:3 !important }
@media (orientation:landscape) and (max-height:480px){
  .grid .gcard .ico{ top:12px; left:12px; width:30px; height:30px }
  .grid .gcard .who{ height:66px !important }
}

/* Back to Nick Academy: a floating pill in the bottom-left corner with its
   own background — not a bar eating the bottom of the screen. */
.exitbtn{
  position:fixed; left:14px; bottom:calc(14px + env(safe-area-inset-bottom));
  z-index:62; margin:0; align-self:auto; max-width:min(46vw, 260px);
  background:rgba(13,36,78,.78); border-color:rgba(255,255,255,.65);
  box-shadow:0 4px 0 rgba(0,0,0,.3);
}
.exitbtn:hover{ background:rgba(13,36,78,.92) }

/* the back buttons dress like the accessibility button: same chunky orange
   square, white chevron — mirrored 180° from before. */
#deckback, #setback{
  width:48px; height:48px; border-radius:13px;
  background:linear-gradient(180deg,#FF9E2C 0%,#F2680C 100%);
  border:3px solid #3A1B06; box-shadow:0 3px 0 #3A1B06; color:#fff;
}
#deckback .chev, #setback .chev{ width:20px; height:26px }
html[dir="rtl"] .iconbtn .chev{ transform:scaleX(-1) }
html[dir="ltr"] .iconbtn .chev{ transform:none }
.a11y-contrast #deckback, .a11y-contrast #setback{ background:#fff; color:#000; border-color:#000 }


/* ══════════ THE FOUR CORNER BUTTONS — one geometry, no exceptions ══════════
   Afik, 14 Aug: "Two on the left side, two on the right side, and they look
   similar just with different color." They did not: the sound pair was 44px
   and the Figma pair 48px, the left gap was 4px and the right gap 16px,
   because each button had grown its own inset over time. Every position and
   size now comes from these two variables, so the set can never drift again.
   SLOT1/SLOT2 are measured from each edge; 48 + 10 = 58. */
:root{ --chrome-size:48px; --chrome-slot1:14px; --chrome-slot2:72px }

.sndbtn, .iconbtn.fig, #deckback, #setback{
  width:var(--chrome-size) !important; height:var(--chrome-size) !important;
  flex:0 0 auto;
}
.sndbtn, .iconbtn.fig{ border-radius:14px }

/* fixed layer, same top for all four */
.sndbtn, #a11ybtn, #home{
  position:fixed;
  top:calc(env(safe-area-inset-top, 0px) + 10px);
}
/* LEFT pair (inline-end in Hebrew): speech outermost, music beside it */
#sndspeech{ inset-inline-end:var(--chrome-slot1) !important; inset-inline-start:auto !important }
#sndmusic { inset-inline-end:var(--chrome-slot2) !important; inset-inline-start:auto !important }
/* RIGHT pair (inline-start): the context button outermost, accessibility beside it.
   The context button is the games grid in a level and the back arrow on a sheet;
   they share the slot and never appear together. */
#home, #deckback, #setback{ inset-inline-start:var(--chrome-slot1) !important; inset-inline-end:auto !important }
#a11ybtn{ inset-inline-start:var(--chrome-slot2) !important; inset-inline-end:auto !important }

/* The sheet arrows were absolutely placed inside their own header, which put
   them on a different grid from the fixed pair — the 4px collision. Same
   fixed layer as the rest, under the splash, over the sheet. */
#deckback, #setback{ position:fixed !important; top:calc(env(safe-area-inset-top, 0px) + 10px) !important;
  transform:none !important; z-index:45 }
#deckback .chev, #setback .chev{ width:20px; height:26px }

/* .top must clear the two fixed buttons on its side */
.top{ padding-inline-start:calc(var(--chrome-slot2) + var(--chrome-size) + 10px) }
.topspacer{ width:0; height:36px }


/* ── Full-bleed mechanics ───────────────────────────────────────────────────
   The arcade owns the stage. The talking column and the control row are not
   hidden by opacity — they are removed from the layout, so the SVG genuinely
   gets the whole width rather than a wide letterbox with an invisible panel
   holding a third of it. */
body.fullbleed .side{ display:none !important }
body.fullbleed .stage{ flex:1 1 auto; width:100%; max-width:none }
body.fullbleed .app{ gap:0 }
/* the start card carries a task, not a verdict — no tick, no cross */
.splash.bleedstart .mark, .splash.bleedstart #splashmark{ display:none }


/* ── Exit pill vs the game cards: OPEN, not silently changed ─────────────────
   On a phone the fixed bottom-left pill sits over the bottom-left game card —
   worst in Portuguese, where "Voltar ao Nick Academy" wraps to three lines.
   Measured on the live build in both languages and both orientations.

   NOT fixed here on purpose. Afik asked for exactly this floating pill; Omri
   ruled the opposite for Gravity Lab (NIC-683: "very destructive… especially
   not in mobile"). Three attempts to have both — padding the scroller, then
   shrinking the viewport, then returning the pill to the flow — each moved the
   overlap somewhere else rather than removing it, because the sheet's grid is
   `flex:1` and reclaims whatever space the pill gives up.

   The layout is back exactly as Afik approved it. The choice is his: keep the
   float and accept the overlap, or move the exit into the header beside the
   back arrow, where it cannot reach the cards at all. */
