/* Every board gets an arena tied to the game itself. */
.stage{position:relative;isolation:isolate;overflow:hidden;border:3px solid #252039;border-radius:28px;background:#302450;box-shadow:0 9px 0 #1c1532,0 20px 45px #2c234b20}.stage .prompt{min-height:75px;font-size:clamp(25px,3vw,42px);line-height:1.25;margin:18px 0 24px}.arena-stamp{display:flex;align-items:center;gap:12px;font-size:14px;letter-spacing:2px;color:var(--game-accent);margin-top:18px}.arena-stamp>span{font-size:30px;letter-spacing:0}.stage .stage-top{border-bottom:1px solid #ffffff30;padding-bottom:12px}.stage button.light{box-shadow:0 4px 0 #17132b;border:2px solid #17132b}.stage button.light:active{transform:translateY(3px);box-shadow:0 1px 0 #17132b}.stage .tool-strip label{color:white}.stage .board{padding:16px;border-radius:22px;background:#00000028}.stage .task-status{background:#ffffff0d;border-left:3px solid var(--game-accent);padding:10px 14px;border-radius:0 12px 12px 0}.stage .engine-list span{box-shadow:0 4px 0 #17132b}.stage .inventory-row{color:#252039;box-shadow:0 5px 0 #12122250}.stage .board button{box-shadow:0 5px 0 #18122e;font-size:clamp(16px,2vw,24px)}
.stage[data-mode=ultimate]{background:radial-gradient(ellipse at top,#463d92,#161b38)}.stage[data-mode=ultimate] .mini-board{border:3px solid #8c84ba;background:#252a4a;padding:7px;box-shadow:0 6px 0 #0a1027}.stage[data-mode=ultimate] .mini-board.allowed{background:#645527;border-color:#ffe45c;box-shadow:0 0 20px #ffe45c35}.stage[data-mode=ultimate] .mini-board button{border-radius:8px;min-height:40px;font-size:22px}.stage[data-mode=ultimate] .mini-board.won{background:#775c30}.stage[data-mode=wordle]{background:radial-gradient(circle at 10% 20%,#ffffff40 1px,transparent 2px) 0 0/31px 37px,linear-gradient(135deg,#153858,#25184b)}.stage[data-mode=wordle] .letter-block{border-radius:12px;box-shadow:0 5px 0 #0c1630}.stage[data-mode=mastermind]{background:linear-gradient(120deg,#123e46,#172836);border-color:#65d4c8}.code-peg-row{display:flex;align-items:center;gap:12px;padding:14px;margin:10px 0;background:#071f2d;border:2px solid #47777b;border-radius:18px;flex-wrap:wrap}.code-peg{width:32px;height:32px;border-radius:50%;border:3px solid #ffffff90;box-shadow:inset -5px -6px 0 #00000020,0 3px 0 #0008}.stage[data-mode=connect4]{background:linear-gradient(145deg,#204775,#161e44)}.stage[data-mode=connect4] .board{border:5px solid #5ba6f1;background:#2672ba;gap:10px}.stage[data-mode=connect4] .board button{border-radius:50%;aspect-ratio:1;min-height:0;font-size:clamp(18px,4vw,45px);padding:0;box-shadow:inset 0 4px 0 #0004;background:#122c58;color:#ffe45c}.token-dropped{animation:token-drop .4s cubic-bezier(.3,.8,.4,1.3)}@keyframes token-drop{from{transform:translateY(-140px);opacity:.2}to{transform:translateY(0);opacity:1}}
.stage[data-mode=memory]{background:linear-gradient(130deg,#145b4e,#263a42)}.stage[data-mode=memory] .board{background:#082e2a60;gap:16px}.stage[data-mode=memory] .board button{border-radius:22px;min-height:90px;background:repeating-linear-gradient(45deg,#e4bbdf 0 10px,#f7d6e8 10px 20px);border:4px solid #fff0d7;color:#4d2350;font-size:24px}.stage[data-mode=memory] .board button.card-open{background:#fff8d7;animation:card-turn .3s ease-out}@keyframes card-turn{from{transform:rotateY(90deg)}to{transform:rotateY(0)}}
.stage[data-mode=scramble]{background:radial-gradient(ellipse at bottom left,#7851b5,#2a2156)}.stage[data-mode=scramble] .tile-row button{border-radius:50% 50% 14px 14px;min-width:52px;min-height:62px;transform:rotate(-3deg)}.stage[data-mode=phrase]{background:linear-gradient(135deg,#5a3b26,#272334)}.stage[data-mode=phrase] .alphabet{border:4px double #c5a257;padding:16px;border-radius:18px;background:#1c1729}.stage[data-mode=spectrum]{background:linear-gradient(110deg,#60366b,#153b55)}.stage[data-mode=spectrum] .spectrum{padding:24px 14px;background:#ffffff15;border-radius:22px;border:2px solid #ffffff55}.stage[data-mode=spectrum] input[type=range]{height:24px}.stage[data-mode=hex]{background:linear-gradient(145deg,#142e4f,#312744)}.stage[data-mode=hex] .hexboard{padding:18px;border:2px dashed #85a5c1;border-radius:20px}.stage[data-mode=hex] .hexboard button{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);border:0;min-height:64px;box-shadow:none}.stage[data-mode=pyramid]{background:linear-gradient(170deg,#4c386a,#8d542d)}.stage[data-mode=pyramid] .pyramid-row button{border-radius:5px;border:3px solid #9c714d;box-shadow:0 5px 0 #4c2a22;background:#f2d39b;min-height:45px}.stage[data-mode=cards]{background:radial-gradient(ellipse,#20665a,#123c3e)}.stage[data-mode=cards] .die-face{width:110px;min-height:150px;background:#fffaef;border:6px double #d9c2a0;color:#b63055;display:inline-flex;align-items:center;justify-content:center;transform:rotate(-6deg)}.stage[data-mode=tiles],.stage[data-mode=keyboard]{background:linear-gradient(135deg,#55452d,#2e2c3b)}.stage[data-mode=tiles] .letter-block,.stage[data-mode=keyboard] .tile-row button{background:#ffe0a3;color:#352a29;border:3px solid #a67d48;box-shadow:0 5px 0 #785237;border-radius:7px}.stage[data-mode=questions]{background:linear-gradient(130deg,#3b244f,#642d4b)}.stage[data-mode=questions] .private-word{background:#190e2c;border:3px dashed #ff91cd}.stage[data-mode=names]{background:linear-gradient(140deg,#302149,#221a3d)}.stage[data-mode=names] .name-player{background:#eee2ff;border:3px solid #a98bcc;border-radius:24px;font-size:20px;padding:16px}.stage[data-mode=target]{background:linear-gradient(155deg,#22625a,#163b4a)}.stage[data-mode=target] .reviewed-board{border:3px dashed #7ed9c9;border-radius:30px;padding:18px}.stage[data-mode=target] .reviewed-board button{border-radius:40px;background:#c1f094}.stage[data-mode=actions]{background:linear-gradient(145deg,#65402f,#41234b)}.stage[data-game="152"]{background:linear-gradient(130deg,#144e65,#1d284c)}.stage[data-game="152"] .inventory-row{border-left:12px solid #79e6df}.stage[data-game="6"]{background:linear-gradient(135deg,#19465a,#1e2e44)}.stage[data-mode=picker]{background:radial-gradient(ellipse at top,#684582,#211b37)}.stage[data-mode=picker] .reviewed-board{padding:20px;background:#ffffff12;border-radius:24px}.stage[data-mode=dice]{background:repeating-linear-gradient(45deg,#ffffff07 0 20px,transparent 20px 40px),linear-gradient(135deg,#6b2760,#25204f)}.stage[data-mode=dice] .die-face{font-size:85px;border:5px solid #ff91cd;background:#fff6ca;transform:rotate(7deg)}.stage[data-mode=maze]{background:#213e3c}.stage[data-mode=maze] .board{background:#102b2d;gap:4px;border:4px solid #d9bc80}.stage[data-mode=maze] .board button{border-radius:5px;box-shadow:none}.stage[data-mode=chase]{background:linear-gradient(135deg,#34364b,#1c2b43)}.stage[data-mode=chase] .board{border:3px dashed #ffbd80}.stage[data-mode=shutbox]{background:linear-gradient(120deg,#513c2a,#272c35)}.stage[data-mode=shutbox] .board{border:5px ridge #c39a62;background:#1b433c}.stage[data-mode=shutbox] .board button{background:#f0cc8c;border:3px solid #a57742;border-radius:7px}.stage[data-mode=quizboard]{background:radial-gradient(circle at 20% 30%,#ffffff60 1px,transparent 2px) 0 0/25px 39px,linear-gradient(145deg,#332b6c,#161b3d)}.stage[data-mode=quizboard] .board button{background:#2a3474;color:#ffe45c;border:3px solid #8c8bc5;font-size:34px;border-radius:14px;min-height:90px}.stage[data-mode=auction]{background:linear-gradient(145deg,#573b58,#392e45)}.stage[data-mode=auction] .engine-label{padding:12px;border:2px solid #c9a1c7;border-radius:16px;background:#ffffff10}.stage[data-mode=scene]{background:linear-gradient(130deg,#275f65,#293b56)}.stage[data-mode=drawing]{background:linear-gradient(120deg,#713f65,#3a3158)}.stage[data-mode=drawing] .draw-area{border:8px solid #e3c193;border-radius:16px}.stage[data-mode=reveal]{background:linear-gradient(120deg,#394864,#362848)}.stage[data-mode=reveal] .image-mask button{background:#7d648f;border:3px solid #c4a4cf;color:white;box-shadow:inset 0 0 0 4px #ffffff20}.stage[data-mode=wordgraph]{background:radial-gradient(circle at 30% 20%,#4b577f,#23253f)}.stage[data-mode=wordgraph] canvas{border:4px solid #b3bdeb;background:#f3f5ff}.stage[data-mode=timeline]{background:linear-gradient(135deg,#61502b,#3e3747)}.stage[data-mode=timeline] .timeline-cards{border-bottom:5px solid #ffe45c;padding:20px 0}.stage[data-mode=timeline] .timeline-cards div{border-radius:18px 18px 2px 18px;box-shadow:0 5px 0 #1c1532}.stage[data-mode=odd]{background:linear-gradient(120deg,#32524d,#282f42)}.stage[data-mode=odd] button{border-radius:22px}.stage[data-mode=code]{background:linear-gradient(140deg,#1c4650,#202b3d)}.stage[data-mode=code] input{font-family:Andika,monospace;letter-spacing:2px}.stage[data-mode=truths]{background:linear-gradient(130deg,#504256,#292d43)}.stage[data-mode=truths] .board{border:3px double #b7cad6}.stage[data-mode=reading]{background:linear-gradient(145deg,#245060,#263d3e)}.stage[data-mode=reading] .engine-list button{border-radius:25px;min-height:48px}.stage[data-mode=storm]{background:linear-gradient(145deg,#126a78,#153b64)}.stage[data-mode=storm] .storm-grid{padding:18px;background:#082e5e66;border-radius:28px}.stage[data-mode=storm] .storm-grid button{box-shadow:0 6px 0 #0b314d;min-height:75px;border:3px solid #c9f4b8;background:#96dfb1}.stage[data-mode=storm] .storm-grid button:disabled{transform:translateY(4px);box-shadow:0 2px 0 #0b314d}
/* Suspense dice use one shared, cancellable animation across all games. */
.dice-theatre{position:fixed;inset:0;z-index:1000;background:#11192ddd;backdrop-filter:blur(7px);display:grid;place-items:center;padding:20px}.dice-show{width:min(560px,95vw);padding:35px;text-align:center;border:3px solid #ffe45c;border-radius:35px;background:radial-gradient(ellipse at top,#514078,#1c1b37);box-shadow:0 0 80px #ffe45c25;color:white}.dice-show h2{font-size:clamp(25px,4vw,40px);color:#fff;margin:0 0 28px}.dice-cast{display:flex;justify-content:center;gap:25px}.suspense-die{display:grid;place-items:center;font:100px/1 Andika,Arial;color:#24213c;background:#fff8d3;border:4px solid #ffe45c;border-radius:22px;width:140px;height:140px;box-shadow:0 12px 0 #b79c50;animation:dice-shake .17s infinite alternate}.suspense-die.settled{animation:dice-land .35s ease-out;background:#ffe45c}.dice-show p{font-size:23px;margin-top:30px}@keyframes dice-shake{from{transform:rotate(-13deg) translateY(-8px)}to{transform:rotate(11deg) translateY(4px)}}@keyframes dice-land{from{transform:scale(1.25)}to{transform:scale(1)}}
/* Destroy: lives are on the players, not on generic point cards. */
.stage[data-mode=rescue]{background:radial-gradient(ellipse at top,#483765,#1d2343)}.battle-setup{border:2px dashed #b2a0cf;padding:14px 18px;border-radius:20px;margin:16px 0}.battle-setup summary{cursor:pointer;font-weight:700}.battle-setup input{color:#252039;background:white;padding:9px;border-radius:8px;max-width:100%}.battle-setup input[type=number]{width:70px}.battle-question{font-size:22px;line-height:1.5;padding:18px 22px;background:#ffffff12;border:2px solid #bba1da;border-radius:20px}.battle-status{min-height:50px;font-size:17px;line-height:1.5;color:#fff1b1}.battle-actions button{font-size:18px;padding:15px}.battle-actions button.active{background:#ffe45c;outline:3px solid #ff91cd}.bubble-arena{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.bubble-team{border:3px solid var(--team-color);background:#ffffff08;border-radius:28px;padding:15px}.bubble-team-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}.bubble-team-head input{width:70%;min-width:0;background:transparent;color:var(--team-color);border:0;font-size:22px;font-weight:800}.bubble-team-head>strong{color:var(--team-color);white-space:nowrap}.bubble-cloud{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;padding:15px 0}.player-bubble{position:relative;border-radius:50%;width:108px;height:108px;padding:9px;background:radial-gradient(circle at 28% 22%,#fff9,var(--team-color) 45%,#605576);border:3px solid var(--team-color);color:#26213d;box-shadow:inset -5px -8px 10px #30235240,0 8px 0 #11172a55;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-wrap:anywhere;transition:transform .2s,opacity .2s}.player-bubble strong{font-size:17px;max-width:100%;line-height:1.1}.player-bubble span{font-size:14px;margin-top:6px;max-width:90%;overflow-wrap:anywhere}.player-bubble:disabled{opacity:.75;cursor:default}.player-bubble.chosen{outline:4px solid white;outline-offset:5px;transform:translateY(-5px)}.player-bubble.targetable{outline:3px dashed white;outline-offset:4px;cursor:crosshair}.player-bubble.spotlight{outline:6px solid #ffe45c;outline-offset:5px;box-shadow:0 0 40px #ffe45c99;transform:scale(1.1)}.player-bubble.popped{background:transparent;border:2px dashed #ffffff70;box-shadow:none;color:#c4bbd9;opacity:.45}.player-bubble.bubble-pop{animation:bubble-pop .45s forwards}.player-bubble.bubble-hit{animation:bubble-hit .4s}.bubble-editors{display:grid;gap:10px}.bubble-editor{display:flex;align-items:center;gap:8px;font-size:14px}.bubble-editor input:not([type=number]){min-width:0;width:130px}.battle-targets{margin-top:18px}.battle-targets button{margin:6px}.battle-targets h3{color:#ffe45c;font-size:26px}@keyframes bubble-pop{40%{transform:scale(1.3);opacity:1}100%{transform:scale(.15);opacity:0}}@keyframes bubble-hit{25%,75%{transform:translateX(-10px)}50%{transform:translateX(10px)}}
/* Derby is a course with animated horses, distances and a finish post. */
.stage[data-mode=race]{background:linear-gradient(150deg,#193e51,#152b3b)}.derby-course{overflow:hidden;border:4px solid #f2d6a4;border-radius:24px;background:#255a44;margin:20px 0}.derby-banner{padding:16px;text-align:center;font-size:24px;font-weight:800;letter-spacing:2px;color:#ffe8bb;background:#173d36;border-bottom:4px solid #f2d6a4}.horse-lane{padding:12px 16px;background:repeating-linear-gradient(90deg,#ffffff0a 0 9%,transparent 9% 10%),#4e7e48;border-bottom:3px solid #d1c395}.horse-lane:nth-child(odd){background-color:#628f4e}.horse-name{font-size:19px;color:var(--lane-color);text-shadow:1px 1px #163e2c}.horse-track{height:100px;position:relative;margin:0 0 5px;border-bottom:4px solid #f3d8ae}.horse-track:before{content:'';position:absolute;inset:auto 0 -10px;height:10px;background:repeating-linear-gradient(90deg,#f3d8ae 0 5px,transparent 5px 25px)}.horse-runner{position:absolute;left:0;bottom:0;width:18%;max-width:120px;height:100px;transition:left .9s cubic-bezier(.18,.65,.35,1);z-index:2}.horse-runner img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 2px #18352280)}.horse-runner.galloping img{animation:gallop .16s infinite alternate}.horse-finish{position:absolute;right:0;top:0;bottom:0;writing-mode:vertical-rl;font-size:12px;letter-spacing:2px;color:#252039;padding:7px;background:repeating-conic-gradient(#fff 0 25%,#222 0 50%) 0 0/14px 14px;border:3px solid #fff;text-shadow:0 0 5px white}.horse-distance{font-size:14px;font-weight:700;color:#fff7d4}.derby-announcer{padding:16px;background:#f9df9a;color:#252039;border-radius:18px;font-size:18px;font-weight:700}.race-finished{outline:4px solid #ffe45c}.race-finished .derby-banner{background:#756028}@keyframes gallop{from{transform:translateY(-5px) rotate(-2deg)}to{transform:translateY(2px) rotate(1deg)}}
@media(max-width:700px){.bubble-arena{grid-template-columns:1fr}.player-bubble{width:95px;height:95px}.dice-show{padding:25px 12px}.suspense-die{width:100px;height:100px;font-size:75px}.stage .board{padding:8px}.stage[data-mode=ultimate] .mini-board{padding:4px}.stage[data-mode=ultimate] .mini-board button{min-height:28px;font-size:16px}.horse-track{height:80px}.horse-runner{height:80px;width:21%}.arena-stamp{font-size:12px;letter-spacing:1px}.bubble-editor{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.suspense-die,.token-dropped,.card-open,.bubble-pop,.bubble-hit,.horse-runner.galloping img{animation:none!important}.horse-runner,.player-bubble{transition:none!important}}
.spectrum-value{font-family:Andika,Arial,sans-serif;font-size:30px!important;text-align:center}.stage[data-mode=keyboard] .alphabet{padding:20px;background:#1a1c2d;border:4px solid #9c8d72;border-radius:25px;justify-content:center}.stage[data-mode=keyboard] .alphabet button{min-width:45px;box-shadow:0 5px 0 #896e4f;border:3px solid #bb9b6c;border-radius:9px}.stage[data-mode=code] #prompt{background:#0d2932;border:3px solid #7fcac4;padding:25px;border-radius:20px;font-family:Andika,monospace;letter-spacing:5px;line-height:1.7}.stage[data-mode=reading] .engine-list{padding:20px;border:4px solid #f1dcb4;border-radius:22px;background:#fdf5e5}.stage[data-mode=reading] .engine-list button{box-shadow:none;border:1px solid #dec8a8;background:#fffaf2;font-size:24px}.stage[data-mode=truths] .board button{min-height:90px;text-align:left;padding:22px;border-left:12px solid #79e6df}.stage[data-mode=truths] .board button:nth-child(2){border-color:#ffe45c}.stage[data-mode=truths] .board button:nth-child(3){border-color:#ff91cd}.stage[data-mode=odd] .board button{min-height:100px;border:4px solid #7ec7a9;background:#edf9e5;font-size:26px}.stage[data-game="6"] #prompt{border:4px double #ffe45c;background:#122d3c;padding:28px 20px;border-radius:24px;font-size:40px}.stage[data-game="151"] .reviewed-board{border:3px solid #bb8acf}.stage[data-game="151"] .reviewed-board>div{font-size:20px;background:#251631;padding:18px;border-radius:20px}.stage[data-game="158"] .inventory-row{background:#ffe5b8;border:4px solid #a37f51}.stage[data-game="163"] .inventory-row{border:4px solid #f694da;background:#fff2b8;font-size:22px}.stage[data-mode=auction] .engine-label input{margin-top:12px;font-size:25px;border:3px solid #e4bc85;text-align:center}.stage[data-mode=quizboard] .board button:disabled{background:#1c2041;color:#878dab;transform:scale(.94)}
/* Coordinates stay outside the playable cells. */
.coordinate-wrap{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 32px;gap:5px;margin:18px 0}.coordinate-wrap>.board,.coordinate-wrap>.hexboard{grid-column:2;grid-row:1;margin:0!important}.column-letters{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(var(--cols),1fr);align-items:center;text-align:center;color:#fff3bd;font-size:20px}.row-numbers{grid-column:1;grid-row:1;display:grid;grid-auto-rows:1fr;align-items:center;text-align:center;color:#fff3bd;font-size:20px}.columns-only{grid-template-columns:minmax(0,1fr)}.columns-only>.board,.columns-only>.column-letters{grid-column:1}.four-drop-board{position:relative;overflow:visible;isolation:isolate}.stage[data-mode=connect4] .four-drop-board button{background:#102b52;color:transparent;box-shadow:inset 0 5px 8px #0009;aspect-ratio:1}.falling-disc{position:absolute;z-index:3;border-radius:50%;box-shadow:inset 0 0 0 5px #ffffff55,inset 0 -8px 0 #0003;pointer-events:none}.stage[data-mode=connect4] .disc-filled{box-shadow:inset 0 0 0 5px #ffffff55,inset 0 -8px 0 #0003!important}.suspense-die.rolling{font-size:85px;color:#7d52c5;animation:concealed-tumble .34s linear infinite}.suspense-die.settled{animation:dice-land .4s ease-out!important}@keyframes concealed-tumble{0%{transform:rotate(-28deg) translateY(-8px) scale(.85)}50%{transform:rotate(25deg) translateY(8px) scale(1.05)}100%{transform:rotate(-28deg) translateY(-8px) scale(.85)}}@keyframes dice-land{0%{transform:translateY(-25px) rotate(-10deg)}65%{transform:translateY(5px)}100%{transform:none}}.points-wheel-wrap{position:relative;width:300px;height:300px;margin:20px auto}.points-wheel{position:relative;width:100%;height:100%;border-radius:50%;border:8px solid #fff7d2;background:conic-gradient(#ffe45c 0 72deg,#ff91cd 72deg 144deg,#79e6df 144deg 216deg,#b9a4ff 216deg 288deg,#ffb66e 288deg 360deg);box-shadow:0 8px 0 #201435}.points-wheel strong{position:absolute;left:calc(50% - 30px);top:calc(50% - 15px);width:60px;height:30px;text-align:center;font-size:22px;color:#241a38}.points-wheel-wrap .wheel-pointer{position:absolute;top:-22px;left:calc(50% - 20px);font-size:40px;color:#fff;filter:drop-shadow(0 3px #241a38)}.stage[data-mode=memory] .flower-grid{gap:12px;background:transparent;border:0}.stage[data-mode=memory] .flower-grid button{aspect-ratio:1;min-height:90px;background:transparent url('flower-tile.webp') center/contain no-repeat;border:0;border-radius:50%;box-shadow:none;color:#74316a;font-size:27px;padding:20%;text-shadow:0 1px white}.stage[data-mode=memory] .flower-grid button.card-open{background-color:transparent;filter:hue-rotate(35deg);font-size:clamp(13px,2vw,22px);overflow-wrap:anywhere}.stage[data-mode=memory] .flower-grid button[style*="background"]{background-image:url('flower-tile.webp')!important;background-color:transparent!important;filter:hue-rotate(100deg)}.case-title{font-size:24px;letter-spacing:2px;color:#ffe45c;border-bottom:3px dashed #d1b6ff;padding:12px}.stage[data-mode=picker]{background:radial-gradient(ellipse at 50% 25%,#594575,#18182e)}.mystery-cast{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;padding:25px 0}.suspect-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px;background:#fff0cd;color:#31223e;border:5px solid #d7b789;box-shadow:7px 8px 0 #0a0b1b;border-radius:10px;transform:rotate(-3deg);min-width:135px}.suspect-card:nth-child(even){transform:rotate(3deg)}.suspect-avatar{font-size:65px}.suspect-card small{font-size:12px;letter-spacing:1px}.case-solved .suspect-card{animation:case-celebrate .7s ease}@keyframes case-celebrate{50%{transform:translateY(-20px) rotate(8deg)}}.mystery-countdown{display:flex;flex-direction:column;align-items:center;padding:25px;background:radial-gradient(ellipse,#8863a9,#302240);border-radius:50% 50% 22px 22px;border:4px solid #d4b7ff;text-align:center}.mystery-countdown span{font-size:55px}.mystery-countdown strong{font-size:75px;color:#ffe45c}.mystery-countdown small{font-size:16px;letter-spacing:2px}.digital-pond{height:360px;position:relative;margin:18px 15px;background:radial-gradient(ellipse,#5cb9bd,#1b6f7c);border:12px solid #80bf64;border-right:12px dashed #ffe4a0;border-radius:26px;overflow:visible}.pond-frog{position:absolute!important;transform:translate(-50%,-50%);font-size:38px;padding:3px!important;min-width:0;min-height:0;border-radius:50%!important;background:var(--frog-color)!important;border:3px solid #183e36!important;box-shadow:0 4px #164f46!important;transition:none!important}.pond-frog.selected{outline:4px solid #fff;outline-offset:4px}.pond-frog.sunk{opacity:.2;transform:translate(-50%,-50%) scale(.5)}.pond-edge{position:absolute;right:0;top:0;writing-mode:vertical-rl;font-size:12px;font-weight:bold;letter-spacing:3px;color:#fff2bf}.pond-score{padding:12px;background:#ffffff15;border-radius:12px;line-height:1.8}.stage[data-mode=target] input[type=range]{width:140px;display:block}.stage[data-mode=target] output{font-size:14px;margin-left:8px}.stage .adventure-board{gap:0!important;padding:0!important;border:5px solid #d8b77a!important}.stage .adventure-board .adventure-cell{aspect-ratio:1;min-height:0;padding:0;border:1px solid #ffffff30;border-radius:0;box-shadow:none;background:#efe3bd;color:#253b38;font-size:clamp(16px,3vw,30px)}.stage[data-mode=maze] .adventure-cell.unexplored{background:repeating-linear-gradient(45deg,#293b42 0 5px,#2e4248 5px 10px);color:#80989d}.stage[data-mode=chase] .adventure-cell{background:#a8cf85}.stage[data-mode=chase] .adventure-cell.water{background:#4bacc6;color:#d7f7ff}.stage[data-mode=chase] .adventure-cell.home{background:#f6d589}.chase-roles{padding:14px;background:#ffffff15;font-weight:bold;border-radius:12px}.secret-map-grid{display:grid;gap:0;padding:15px;background:#263b3b}.secret-map-grid span{display:flex;align-items:center;justify-content:center;aspect-ratio:1;font-size:13px}.private-maze{margin:12px 0}.projection .private-maze{display:none}.image-game img{width:100%;max-height:none;aspect-ratio:3/2;object-fit:cover}.stage[data-mode=drawing] .image-game{max-width:600px;margin-inline:auto}.battle-targets{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px}.battle-targets p{width:100%;font-size:16px}.battle-targets select{max-width:100%}@media(max-width:600px){.coordinate-wrap{grid-template-columns:22px minmax(0,1fr)}.columns-only{grid-template-columns:minmax(0,1fr)}.column-letters,.row-numbers{font-size:16px}.stage[data-mode=memory] .flower-grid{gap:4px}.stage[data-mode=memory] .flower-grid button{min-height:60px;padding:15%;font-size:18px}.digital-pond{height:280px}.pond-frog{font-size:26px}.points-wheel-wrap{width:260px;height:260px}.points-wheel strong{transform-origin:center}.suspect-card{min-width:110px;padding:14px}}
@media(prefers-reduced-motion:reduce){.rolling,.case-solved .suspect-card{animation:none!important}}
.stage[data-mode=memory] .flower-grid button.card-open{background:transparent url('flower-tile.webp') center/contain no-repeat!important;color:#48234d;text-shadow:none;filter:hue-rotate(35deg)}
.stage[data-mode=memory] .flower-grid button.card-open{padding:0!important;font-size:clamp(14px,1.7vw,20px);overflow:visible}

.digital-pond{border-right:12px solid #80bf64;overflow:hidden}.pond-edge{right:auto;top:0;bottom:0;width:0;border-left:5px dashed #ffe4a0;z-index:2;padding-left:7px;pointer-events:none}.pond-beyond{position:absolute;top:0;bottom:0;right:0;background:repeating-linear-gradient(135deg,#16384e 0 12px,#1c4358 12px 24px);opacity:.9;pointer-events:none}.pond-frog{z-index:3}.stage[data-game="152"] .cup-rack{font-size:clamp(48px,6vw,76px);line-height:1.35;overflow-wrap:anywhere;letter-spacing:5px;margin:18px 0}
/* Matched flowers keep the claiming team's colour and a roomy word centre. */
.stage[data-mode=memory] .flower-grid button.match-flower{position:relative;isolation:isolate;background:transparent!important;filter:none!important;padding:18%!important;font-size:clamp(13px,1.7vw,23px)!important;line-height:1.15;overflow-wrap:anywhere;color:#382346;text-shadow:none;min-height:100px}
.match-flower::before{content:'';position:absolute;inset:2%;z-index:-2;background:#edb1df;clip-path:polygon(50% 0,64% 12%,82% 4%,88% 24%,100% 36%,90% 52%,100% 70%,80% 78%,72% 98%,52% 90%,34% 100%,23% 80%,4% 73%,10% 52%,0 34%,20% 24%,22% 5%,40% 12%)}
.match-flower::after{content:'';position:absolute;inset:17%;z-index:-1;background:#fff5cf;border:3px solid #9c668d;border-radius:50%;box-shadow:0 2px 5px #43233b33}
.stage[data-mode=memory] .flower-grid button.flower-claimed::before{background:var(--owner-color)}
.stage[data-mode=memory] .flower-grid button.flower-claimed::after{border:5px solid var(--owner-color);background:#fff9e8}
.stage[data-mode=memory] .flower-grid button.flower-claimed{outline:3px solid var(--owner-color);outline-offset:-3px}
.prep-return{display:none;position:fixed;right:18px;top:12px;z-index:1000;background:#ffe45c;color:#292238;border:3px solid #292238;padding:12px 18px;border-radius:14px;box-shadow:3px 4px #292238;font-weight:800}
.projection .prep-return{display:block}.projection header{padding-top:70px}
.snake-setup{padding:15px;border:2px dashed #adcead;border-radius:16px;background:#ffffff12;margin:12px 0}.snake-setup summary{cursor:pointer;font-weight:800}.snake-names{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:15px 0}.snake-names label{display:grid;gap:6px}.snake-names input{width:100%;min-width:0;padding:10px;border:2px solid #b8a5d4;border-radius:8px;color:#292238}.snake-status{padding:16px;background:#fff3b7;color:#263e38;border-radius:12px;font-weight:800;font-size:20px;line-height:1.4}.snake-roster{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0}.snake-player{border:3px solid var(--player);border-radius:12px;background:#fff;color:#292238;padding:8px 11px;font-weight:800}.snake-player.current{background:var(--player);color:#fff;box-shadow:0 0 0 3px #fff}.snake-frame{padding:5.5%;max-width:870px;margin:20px auto;background:#c5edc4 url('snakes-jungle.webp') center/cover;border:5px solid #e7bc61;border-radius:28px;box-shadow:0 7px 0 #102f35}.snake-board{position:relative;aspect-ratio:1;isolation:isolate;border:3px solid #2a6054;box-shadow:0 2px 18px #183d5466;background:#fff4dd}.snake-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr)}.snake-cell{position:relative;border:1px solid #416b5b55;color:#25463b;padding:3px;font-size:clamp(10px,1.5vw,18px);font-weight:bold;overflow:hidden}.snake-cell strong{position:relative;z-index:2;background:#ffffffe0;border-radius:4px;padding:1px 3px}.snake-cell small{position:absolute;bottom:3px;right:3px;font-size:clamp(7px,.9vw,12px);background:#fff9;padding:1px 2px;border-radius:3px}.snake-paths,.snake-tokens{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.snake-paths{z-index:1}.snake-tokens{z-index:3}.snake-token{position:absolute;display:grid;place-items:center;width:4.5%;aspect-ratio:1;border:3px solid var(--player);border-radius:50%;background:white;box-shadow:0 2px 5px #102d3c80;transform:translate(-50%,-50%);font-size:clamp(11px,2.1vw,26px)}.snake-token.current{outline:3px solid #fff;box-shadow:0 0 0 5px var(--player),0 3px 7px #0006}.stage[data-mode=snakes] .prompt{min-height:0;font-size:clamp(25px,4vw,43px);padding:15px}.stage[data-mode=snakes] .stage-bottom{display:none}
@media(max-width:600px){.snake-names{grid-template-columns:repeat(2,minmax(0,1fr))}.snake-frame{padding:3%;border-radius:15px}.snake-token{border-width:2px;width:5%}.snake-token.current{outline-width:1px;box-shadow:0 0 0 2px var(--player)}.snake-cell{padding:1px}.snake-cell small{bottom:0;right:0}.stage[data-mode=memory] .flower-grid button.match-flower{min-height:65px;font-size:12px!important}.prep-return{font-size:14px;right:8px;top:8px}}
#setup:has(.stage[data-mode=snakes])>.score-head,#setup:has(.stage[data-mode=snakes])>#scores,#setup:has(.stage[data-mode=snakes])>.score-footer,.stage[data-mode=snakes] .stage-top{display:none}
.stage[data-mode=memory] .flower-grid button.match-flower{padding:14%!important;font-size:clamp(12px,1.45vw,19px)!important;font-weight:600;outline:0}
.match-flower::before{--petal:#edb1df;clip-path:none;background:radial-gradient(circle at 50% 21%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 71% 29%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 79% 50%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 71% 71%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 50% 79%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 29% 71%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 21% 50%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 29% 29%,var(--petal) 21%,transparent 22%)}
.stage[data-mode=memory] .flower-grid button.flower-claimed::before{--petal:var(--owner-color);background-color:transparent;background-image:inherit}
.stage[data-mode=memory] .flower-grid button.flower-claimed::before{background-image:radial-gradient(circle at 50% 21%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 71% 29%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 79% 50%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 71% 71%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 50% 79%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 29% 71%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 21% 50%,var(--petal) 21%,transparent 22%),radial-gradient(circle at 29% 29%,var(--petal) 21%,transparent 22%)}
.match-flower::after{inset:13%;border-width:2px}.stage[data-mode=memory] .flower-grid button.flower-claimed::after{border-width:3px}
.projection .stage[data-mode=snakes]>.arena-stamp,.projection .stage[data-mode=snakes]>.prompt,.projection .stage[data-mode=snakes]>.session-bar{display:none}
/* Complete generated board and individual illustrated player pieces. */
.snake-board-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.snake-grid{z-index:2}.snake-cell{background:transparent!important;border:0}.snake-cell strong{display:inline-block;background:#fffdece8;border:1px solid #715d3d55;color:#283e32;font-size:clamp(10px,1.55vw,20px);box-shadow:0 1px 3px #4b3b2022}.snake-cell small{background:#fff9d9ed;color:#294639;border-radius:4px;z-index:2}.snake-paths{opacity:0}.snake-token{width:6.5%;background:transparent;border:0;border-radius:0;box-shadow:none;aspect-ratio:1;overflow:visible}.snake-piece-art{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 2px #173f3466)}.snake-token.current{outline:0;box-shadow:none;filter:drop-shadow(0 0 3px white) drop-shadow(0 0 4px var(--player));z-index:5}.snake-player{display:flex;align-items:center;gap:7px}.snake-player>.snake-piece-art{width:32px;height:38px;flex:none}.snake-names{align-items:start}
.stage[data-mode=memory] .flower-grid button.match-flower:not(.flower-claimed)::before{--petal:#b9e6a4}
.stage[data-mode=memory] .flower-grid button.match-flower:not(.flower-claimed)::after{border-color:#78a466}
@media(max-width:600px){.snake-token{width:7.5%}.snake-cell strong{font-size:10px;padding:0 2px}.snake-cell small{font-size:7px}.snake-player>.snake-piece-art{width:24px;height:30px}}


/* Character choices and memory lanterns */
.snake-names .snake-person{display:grid;grid-template-columns:58px minmax(90px,1fr) minmax(110px,1fr);gap:12px;align-items:center;width:100%}.snake-person label{display:flex;flex-direction:column;gap:6px}.snake-person input,.snake-person select{width:100%;min-width:0}.snake-character-preview{width:58px;height:70px;object-fit:contain}.snake-last-move{font-size:clamp(14px,1.4vw,19px);color:#fff2b8;font-weight:700;margin:8px 0 16px}.snake-setup{max-width:100%}
.glow-settings{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 18px}.glow-settings label{display:flex;flex-direction:column;gap:7px;font-weight:800}.glow-settings select{background:#fff9e4;color:#262041;border:3px solid #211b38;border-radius:12px;padding:10px;font:inherit}.stage[data-mode=sequence]{background:linear-gradient(145deg,#162b39,#182b27);overflow:hidden}.stage[data-mode=sequence] .prompt{font-size:clamp(24px,3.5vw,40px)}.stage[data-mode=sequence] .stage-top,.stage[data-mode=sequence] .stage-bottom{display:none}.glow-grove{position:relative;isolation:isolate;border:2px solid #a8d69a66;border-radius:30px;padding:25px;background:radial-gradient(ellipse at 50% 110%,#528a4444,transparent 65%),radial-gradient(circle at 10% 15%,#ffde6b18,transparent 20%),#0c2029;box-shadow:inset 0 0 70px #0007,0 12px 0 #07151d99}.glow-grove::after{content:'♧';position:absolute;bottom:-30px;left:0;width:100%;font-size:190px;letter-spacing:30px;color:#a8e58c10;z-index:-1;text-align:center;pointer-events:none}.glow-stars{color:#f9e6a1;text-align:center;letter-spacing:20px;font-size:22px}.glow-header{display:flex;justify-content:space-between;gap:15px;align-items:center;flex-wrap:wrap;color:#d5eeb9;font-size:14px;letter-spacing:2px}.glow-record{letter-spacing:0;color:#ffe7a7;background:#ffffff0c;border-radius:20px;padding:8px 14px}.glow-status{min-height:58px;text-align:center;font-size:clamp(18px,2.2vw,27px);font-weight:800;color:#fff1cf;line-height:1.35;margin:20px 0 10px}.glow-progress{display:flex;gap:6px;justify-content:center;min-height:16px;flex-wrap:wrap;margin:10px 0 25px}.glow-dot{width:10px;height:10px;background:#ffffff20;border:1px solid #ffffff55;border-radius:50%}.glow-dot.done{background:#bde67c;box-shadow:0 0 8px #bde67c}.glow-pads{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;max-width:850px;margin:0 auto 20px}.glow-lantern{position:relative!important;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;min-height:180px;aspect-ratio:.8;border:4px solid color-mix(in srgb,var(--glow) 60%,#152832)!important;border-radius:38% 38% 25% 25%!important;background:radial-gradient(ellipse,var(--glow),color-mix(in srgb,var(--glow) 32%,#152832) 85%)!important;color:#101e28!important;box-shadow:inset 0 5px 8px #ffffff3b,inset 0 -12px 10px #0005,0 8px 0 #07121b!important;opacity:1!important;transition:filter .1s,transform .1s,box-shadow .1s!important;filter:brightness(.72)}.glow-lantern::before{display:none!important}.glow-lantern:enabled:hover{filter:brightness(1.1);transform:translateY(-3px)}.glow-lantern:focus-visible{outline:4px solid white;outline-offset:7px}.glow-lantern.lit{filter:brightness(1.4);transform:translateY(-7px) scale(1.04);box-shadow:inset 0 0 25px #fff7,0 0 30px var(--glow),0 0 70px color-mix(in srgb,var(--glow) 50%,transparent)!important}.glow-lantern.mistake{outline:5px dashed #fff;outline-offset:5px}.glow-symbol{font-size:clamp(35px,5vw,65px);line-height:1.1}.glow-lantern strong{font-size:clamp(16px,2vw,24px)}.glow-key{position:absolute;top:12px;left:16px;font-size:15px;font-weight:900}.stage[data-mode=sequence] .tool-strip{margin-top:30px}.stage[data-mode=sequence] .task-status{color:#d1dfcf;background:#ffffff09}
@media(max-width:650px){.glow-pads{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 18px}.glow-lantern{min-height:140px;aspect-ratio:1}.glow-grove{padding:18px 16px}.glow-header{justify-content:center}.glow-stars{letter-spacing:8px}.snake-names .snake-person{grid-template-columns:48px minmax(70px,1fr)}.snake-person label:last-child{grid-column:2}.snake-character-preview{grid-row:span 2;width:48px;height:70px}}
@media(prefers-reduced-motion:reduce){.glow-lantern{transition:none!important}.glow-lantern.lit{transform:none}}
.glow-lantern{color:#fff9df!important;text-shadow:0 2px 3px #091924;filter:brightness(.88)}.workspace:has(.stage[data-mode=sequence]) .preparation,.workspace:has(.stage[data-mode=sequence]) .score-head,.workspace:has(.stage[data-mode=sequence]) .scores,.workspace:has(.stage[data-mode=sequence]) .score-footer{display:none}.projection .stage[data-mode=sequence]{padding:20px 28px}.projection .stage[data-mode=sequence] .session-bar,.projection .stage[data-mode=sequence] .arena-stamp,.projection .stage[data-mode=sequence]>.prompt{display:none}.projection .glow-grove{padding:16px 24px}.projection .glow-pads{max-width:650px}.projection .glow-lantern{min-height:140px;aspect-ratio:1}.projection .glow-status{margin:10px 0;min-height:38px}.projection .glow-stars{display:none}.projection .glow-progress{margin:8px 0 22px}.projection .stage[data-mode=sequence] .tool-strip{margin-top:20px}.projection .glow-settings{margin-bottom:14px}.projection .stage[data-mode=sequence] .task-status{margin-bottom:0}

.glow-lantern::before{display:none!important}.glow-ready{background:#bce987!important;color:#1b3020!important;min-width:180px;font-size:22px!important;padding:14px 30px!important}.glow-ready:disabled{opacity:.45}.glow-endless{align-self:center;color:#e1f1bb;font-size:18px}.glow-settings{align-items:center;justify-content:space-between}

/* Spacious player cards and a single dice control beneath the map. */
.stage[data-mode=snakes] #special{display:flex!important;flex-direction:column;gap:16px;align-items:stretch}
.snake-setup{padding:20px;border:1px solid #bce6cb55;background:#ffffff0a;border-radius:20px;box-sizing:border-box}
.snake-setup summary{font-size:20px;margin-bottom:16px}
.snake-names{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))!important;gap:16px}
.snake-names .snake-person{box-sizing:border-box;grid-template-columns:64px minmax(0,1fr);gap:12px 16px;background:#ffffff0d;border:1px solid #ffffff22;border-radius:16px;padding:16px;min-width:0}
.snake-person .snake-character-preview{grid-row:1 / span 2;width:64px;height:90px}
.snake-person label{grid-column:2;min-width:0;font-size:16px!important}
.snake-person input,.snake-person select{box-sizing:border-box;font:inherit!important;padding:10px!important;max-width:100%}
.snake-status{margin:0!important;font-size:20px!important;padding:12px 18px!important}
.snake-last-move{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.snake-roster{margin:0!important;display:flex!important;gap:10px}
.stage[data-mode=snakes] #special>.snake-frame{width:100%;box-sizing:border-box;max-width:870px!important;margin:0 auto!important}
.snake-roll-controls{display:flex;justify-content:center;padding:6px 0 12px}
.snake-roll-dice{display:grid!important;place-items:center;width:96px;height:96px;padding:0!important;border:3px solid #332549!important;border-radius:22px!important;background:#fff9df!important;color:#302245!important;font-family:Andika,Arial,sans-serif!important;font-size:80px!important;line-height:1!important;box-shadow:0 7px 0 #191129!important;transition:transform .15s}
.snake-roll-dice:enabled:hover{transform:translateY(-3px) rotate(-5deg)}
.snake-roll-dice:disabled{opacity:.5;transform:none}
@media(max-width:600px){.snake-setup{padding:14px}.snake-names .snake-person{padding:12px}.snake-status{font-size:17px!important}}
