main[data-screen=hub],main[data-screen=board]{min-height:0;max-width:100%;padding-top:22px}.hub{display:flex;flex-direction:column;gap:20px;min-height:0}.hub-intro h1{font-size:clamp(28px,5vw,48px);letter-spacing:-1.5px}.hub-intro p{color:var(--muted);margin-top:10px}.hub-intro .eyebrow{margin-bottom:8px}.games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.game-tile{display:flex;align-items:center;text-align:left;background:linear-gradient(135deg,#30243d,#201b2c);border:1px solid var(--line);border-radius:22px;min-height:132px;padding:20px;gap:18px;position:relative}.game-tile.featured{grid-column:1/-1;background:linear-gradient(120deg,#472f6c,#282034);border-color:#7f5eae}.game-tile:hover{border-color:var(--purple)}.game-art{display:grid;place-items:center;flex:0 0 auto;width:70px;height:70px;border-radius:18px;font-size:48px;font-weight:900;line-height:1;background:#ffffff0b;color:var(--lime)}.art-four{color:#f8d866;background:radial-gradient(circle,#ff7b9022,#75baff22)}.art-ttt{color:#ff7b90}.art-mill{color:#a583ff}.art-ludo{color:#76e3b1}.game-tile-copy strong{display:block;font-size:24px;line-height:1.12}.game-tile-copy small{display:block;color:var(--muted);font-size:14px;line-height:1.35;margin-top:8px}.game-arrow{margin-left:auto;color:var(--purple);font-size:24px}.hub-foot{color:var(--muted);font-size:12px;text-align:center}.board-game{display:flex;flex-direction:column;gap:14px;align-items:center;max-width:620px;margin:auto;width:100%;position:relative}.board-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.board-heading h1{font-size:clamp(22px,4vw,32px)}.board-heading .text-button{padding:8px}.game-status{display:flex;align-items:center;justify-content:center;gap:9px;font-size:18px;min-height:30px}.status-dot{width:12px;height:12px;border-radius:100%}.game-bottom{display:flex;gap:12px;width:100%;justify-content:center}.game-bottom button{min-height:44px}.board-instruction{font-size:14px;line-height:1.3;color:var(--muted);text-align:center}.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;aspect-ratio:1;width:min(100%,380px)}.ttt-cell{background:var(--surface);border:1px solid var(--line);border-radius:18px;font-size:clamp(36px,12vw,72px);display:grid;place-items:center;line-height:1}.ttt-cell:disabled,.four-cell:disabled{opacity:1}.winning{box-shadow:inset 0 0 0 3px var(--lime)}.four-wrap{width:min(100%,490px)}.column-controls{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:6px}.column-controls button{min-height:40px;background:var(--raised);border-radius:8px;color:var(--lime);font-size:24px}.four-board{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:12px;background:#4e377c;border-radius:20px}.four-cell{padding:0;background:transparent;aspect-ratio:1;min-width:0;border-radius:100%}.four-cell span{display:block;width:100%;height:100%;border-radius:100%;box-shadow:inset 0 2px 6px #0005}.game-notice{font-size:14px;color:var(--lime);text-align:center}.winner-spark{position:absolute;right:10px;top:55px;color:var(--lime);font-size:30px}.mill-board{position:relative;width:min(100%,420px);aspect-ratio:1;background:linear-gradient(135deg,#332840,#201a2e);border-radius:24px}.mill-board svg{width:100%;height:100%;stroke:#8a769e;stroke-width:1.2}.mill-point{position:absolute;width:9%;height:9%;border-radius:100%;transform:translate(-50%,-50%);border:2px solid #615273;color:#20172e;display:grid;place-items:center;padding:0;font-size:14px;line-height:1}.mill-point:disabled{opacity:1}.mill-point.selected{outline:3px solid var(--lime);outline-offset:2px}.mill-point.legal{border-color:#c2afdf}.mill-point.capture{outline:3px solid #ff7b90}.mill-stock{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}.ludo-board{position:relative;width:min(100%,450px);aspect-ratio:1;border-radius:18px;overflow:hidden;background:#221a2f;border:1px solid var(--line)}.ludo-cell{position:absolute;width:6.6667%;height:6.6667%;border:1px solid #5c486a;display:grid;place-items:center;font-size:12px}.ludo-yard{position:absolute;width:40%;height:40%;border:12px solid;border-radius:18px;pointer-events:none;padding:8px;display:flex;align-items:center;justify-content:center;font-size:11px}.ludo-token{position:absolute;width:5.3%;height:5.3%;border:1px solid #0006;color:#1b1721;font-size:clamp(9px,2.5vw,14px);line-height:1;padding:0;border-radius:100%;transform:translate(-50%,-50%);z-index:2;font-weight:900}.ludo-token:disabled{opacity:1}.ludo-token.legal{outline:3px solid white;outline-offset:1px;box-shadow:0 0 12px #fff5}.dice-bar{display:flex;gap:18px;align-items:center;min-height:56px}.dice-face{font-size:46px;line-height:1;color:var(--lime)}.ludo-setup{width:min(100%,400px);display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;margin:20px auto}.ludo-setup p{font-size:14px;color:var(--muted)}.player-choices{display:flex;gap:12px}.player-choices button{width:54px;height:54px;background:var(--raised);border:1px solid var(--line);border-radius:14px;font-weight:800;font-size:24px}.player-choices .selected{background:var(--lime);color:var(--bg)}
@media(max-width:700px){main[data-screen=hub],main[data-screen=board]{padding-top:8px}.hub{gap:12px;flex:1}.hub-intro .eyebrow{display:none}.hub-intro h1{font-size:28px}.hub-intro p{font-size:13px;margin-top:4px}.games-grid{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0}.game-tile{min-height:70px;flex:1;padding:10px 12px;border-radius:16px;gap:12px}.game-art{width:44px;height:44px;font-size:34px;border-radius:12px}.game-tile-copy strong{font-size:18px}.game-tile-copy small{font-size:12px;margin-top:4px}.game-arrow{font-size:20px}.hub-foot{font-size:10px}.board-game{gap:10px;flex:1;min-height:0;justify-content:center}.board-heading h1{font-size:22px}.game-status{font-size:16px}.ttt-board{width:min(100%,38dvh)}.four-wrap{width:min(100%,50dvh)}.mill-board{width:min(100%,43dvh)}.ludo-board{width:min(100%,44dvh)}.game-bottom{margin-top:auto;flex:0 0 auto}.game-bottom button{padding:10px 12px;font-size:14px}.board-instruction{font-size:12px}.ludo-setup{gap:16px;padding:20px;margin:0 auto}.mill-stock{gap:8px}.column-controls button{min-height:32px}.four-board{gap:5px;padding:9px}}
@media(max-height:480px) and (orientation:landscape){.hub-intro{display:none}.games-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(64px,1fr))}.game-tile.featured{grid-column:auto;grid-row:1/3}.game-tile{padding:8px}.game-tile-copy strong{font-size:16px}.game-tile-copy small{font-size:11px}.game-art{width:34px;height:34px;font-size:26px}.hub-foot{display:none}.board-game{max-width:850px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto 1fr auto;gap:6px 18px}.board-heading{grid-column:2;grid-row:1}.game-status{grid-column:2;grid-row:2}.ttt-board,.four-wrap,.mill-board,.ludo-board,.ludo-setup{grid-column:1;grid-row:1/5;width:min(100%,62dvh);justify-self:center}.game-bottom{grid-column:2;grid-row:4}.dice-bar,.mill-stock,.board-instruction,.game-notice{grid-column:2;grid-row:3;align-self:center}.mill-stock{align-self:end}.board-instruction{align-self:start}.ludo-setup{gap:8px;padding:12px}.ludo-setup .game-art{display:none}.column-controls button{min-height:24px}.game-bottom button{min-height:36px}}
/* Rounded board, sculpted pieces and a die in the active player's color. */
.ludo-board{background:radial-gradient(circle at 50% 50%,#fff6dc,#ead6ad);border:7px solid #b5976a;box-shadow:inset 0 0 0 2px #fff7e4,0 12px 24px #0004;border-radius:24px;isolation:isolate}.ludo-track-lines{position:absolute;inset:0;width:100%;height:100%;stroke:#8c7858;stroke-width:2;fill:none;z-index:-1}.ludo-cell{width:5.65%;height:5.65%;margin:.508%;border-radius:50%;border:1.5px solid #7d705c;box-shadow:inset 0 2px 2px #fff8,0 1px 2px #3c281d33;color:#403524;font-weight:900;font-size:clamp(9px,2.8vw,14px)}.home-lane{border-color:#574e41}.ludo-yard{width:34%;height:34%;margin:3%;border-width:3px;border-radius:20px;background:linear-gradient(145deg,#fffaf188,#ffffff22);box-shadow:inset 0 0 0 3px #ffffff33;padding:0;align-items:center;justify-content:flex-end;flex-direction:column;padding-bottom:4px;transition:box-shadow .2s}.ludo-yard span{font-size:clamp(9px,2.5vw,12px);font-weight:850;padding:2px 8px;border-radius:8px;background:#322638;color:var(--yard-color)!important}.ludo-yard.active-yard{border-color:var(--yard-color)!important;box-shadow:0 0 0 3px #fff9,inset 0 0 22px #fff9}.ludo-yard-socket{position:absolute;width:7.7%;height:7.7%;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--yard-color);background:#fff9;box-shadow:inset 0 2px 5px #0002;pointer-events:none}.ludo-token{width:5.9%;height:5.9%;border:1.5px solid #4a393d;box-shadow:inset 0 2px 2px #fff9,inset 0 -3px 2px #0003,0 3px 3px #0004;text-shadow:0 1px #fff5;font-size:clamp(9px,2.7vw,14px)}.ludo-token.legal{outline:3px solid #fff;outline-offset:1px;box-shadow:0 0 0 5px #45305699,inset 0 2px 2px #fff9,0 4px 8px #0004}.ludo-center-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(18px,5vw,30px);color:#997b4a;text-shadow:0 1px white;pointer-events:none}.dice-bar{background:var(--surface);border:1px solid var(--turn-color);border-radius:18px;padding:9px 14px;gap:14px;width:min(100%,380px);justify-content:center;box-shadow:0 0 20px color-mix(in srgb,var(--turn-color) 12%,transparent)}.dice-bar .primary{background:var(--turn-color);color:#201b2c;min-width:130px;min-height:52px;display:flex;flex-direction:column;gap:0;padding:8px 16px;font-size:16px}.dice-bar .primary small{font-size:11px;line-height:1.2;opacity:.8;font-weight:800}.color-die{width:52px;height:52px;flex-shrink:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:4px;padding:9px;border-radius:12px;background:var(--turn-color);color:#211b2c;box-shadow:inset 0 2px 2px #ffffff80,inset 0 -4px 0 #0002,0 3px 6px #0004;font-size:30px}.color-die b{grid-column:1/4;grid-row:1/4;display:grid;place-items:center;font-size:30px;line-height:1}.dice-pip{border-radius:50%;background:#211b2c;opacity:0}.dice-pip.visible{opacity:1}@media(max-width:700px){.ludo-board{border-width:5px;border-radius:20px}.dice-bar{padding:7px 10px;min-height:64px}.color-die{width:46px;height:46px;padding:8px;gap:3px}.ludo-yard{border-radius:13px}}@media(max-height:480px) and (orientation:landscape){.dice-bar{width:100%;padding:6px}.ludo-board{border-width:4px}.ludo-yard{border-radius:10px}}

/* Landscape play uses the entire available viewport, without site navigation. */
@media (orientation:landscape){
 body.game-active{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;overscroll-behavior:none}
 body.game-active .shell{max-width:none;width:100%;height:100dvh;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;flex-direction:column}
 body.game-active .top,body.game-active .mobile-nav,body.game-active .desktop-nav{display:none!important}
 body.game-active main{height:100%;min-height:0;flex:1;padding:0!important;overflow:hidden;display:flex;justify-content:center}
 body.game-active .board-game{height:100%;max-width:1100px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px 20px;align-items:center}
 body.game-active .board-heading{display:none}
 body.game-active .game-status{grid-column:2;grid-row:1;font-size:clamp(16px,2.8dvh,24px);text-align:center}
 body.game-active .ttt-board,body.game-active .mill-board,body.game-active .ludo-board,body.game-active .four-wrap,body.game-active .ludo-setup{grid-column:1;grid-row:1/5;justify-self:center;align-self:center;margin:0;width:min(100%,calc(100dvh - 32px));max-height:100%}
 body.game-active .four-wrap{width:min(100%,calc((100dvh - 76px)*7/6))}
 body.game-active .column-controls button{min-height:28px;height:28px}
 body.game-active .four-board{padding:8px;gap:5px}
 body.game-active .dice-bar{grid-column:2;grid-row:3;align-self:center;width:100%;max-width:350px;justify-self:center}
 body.game-active .board-instruction{grid-column:2;grid-row:2;align-self:center;font-size:14px}
 body.game-active .mill-stock{grid-column:2;grid-row:3;align-self:center;font-size:14px}
 body.game-active .game-notice{grid-column:2;grid-row:2;align-self:end;font-size:13px}
 body.game-active .game-bottom{grid-column:2;grid-row:4;margin:0;align-self:end}
 body.game-active .game-bottom button{min-height:40px;padding:8px 12px;font-size:14px}
 body.game-active .winner-spark{display:none}
 body.game-active .play{height:100%;width:100%;max-width:1000px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(200px,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px 20px;align-items:center}
 body.game-active main[data-screen=cards] .secret-card{grid-column:1;grid-row:1/5;height:100%;min-height:0;gap:10px;padding:16px}
 body.game-active main[data-screen=cards] .play-top{grid-column:2;grid-row:1;margin:0}
 body.game-active main[data-screen=cards] .progress{display:none}
 body.game-active main[data-screen=cards] .player-title{grid-column:2;grid-row:2;font-size:28px;margin:0}
 body.game-active main[data-screen=cards] .instruction{display:none}
 body.game-active main[data-screen=cards] .play-actions{grid-column:2;grid-row:3;margin:0;min-height:0;align-self:center}
 body.game-active main[data-screen=cards] .play>.text-button{grid-column:2;grid-row:4}
 body.game-active .card-symbol{width:48px;height:48px;border-radius:14px}
 body.game-active .card-symbol svg{width:28px;height:28px}
 body.game-active .card-word{font-size:clamp(24px,6dvh,42px)}
 body.game-active main[data-screen=discussion] .play,body.game-active main[data-screen=result] .play{display:flex;flex-direction:column;justify-content:center;gap:10px;max-width:800px}
 body.game-active main[data-screen=discussion] .ready-icon,body.game-active main[data-screen=discussion] .eyebrow{display:none}
 body.game-active .discussion-copy,body.game-active .round-meta,body.game-active .solution,body.game-active .play-actions{margin:0}
 body.game-active .solution{width:100%;padding:14px}
 body.game-active .solution-word{margin:5px 0 10px;font-size:28px}
 body.game-active .player-title{margin:0;font-size:28px}
 body.game-active main[data-screen=discussion] .play-actions,body.game-active main[data-screen=result] .play-actions{flex-direction:row;min-height:0}
}
.art-tetris{color:#6ee8f3}.tetris-game{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,.7fr);grid-template-rows:minmax(0,1fr) auto auto;gap:12px;max-width:580px;width:100%;height:100%;min-height:0;margin:auto}.tet-board{width:min(100%,27dvh);aspect-ratio:1/2;justify-self:center;align-self:center;display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(20,1fr);gap:1px;padding:5px;background:#100c1b;border:2px solid #79609f;border-radius:12px;position:relative;overflow:hidden}.tet-cell{background:#ffffff05;min-width:0;min-height:0;border-radius:2px}.tet-cell.filled{background:var(--block);box-shadow:inset 1px 1px 0 #ffffff77,inset -2px -2px 0 #0003}.tet-cell.ghost{border:1px solid var(--block);background:color-mix(in srgb,var(--block) 12%,transparent)}.tet-side{display:flex;flex-direction:column;justify-content:center;gap:14px;min-width:0}.tet-side h1{font-size:24px}.tet-stats{display:flex;flex-direction:column;gap:10px}.tet-stats div{display:flex;align-items:center;justify-content:space-between;gap:8px}.tet-stats small,.tet-next small{font-size:14px;color:var(--muted)}.tet-stats strong{font-size:22px;font-variant-numeric:tabular-nums}.tet-preview{display:grid;gap:2px;margin-top:8px;min-height:44px}.tet-preview i{height:20px;border-radius:3px}.tet-help{font-size:12px;color:var(--muted);line-height:1.5}.tet-overlay{position:absolute;inset:0;background:#100c1bd9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:10px;text-align:center}.tet-overlay strong{font-size:22px}.tet-overlay .primary{padding:12px;min-height:44px;font-size:14px}.tet-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.tet-controls button{background:var(--raised);border:1px solid var(--line);border-radius:12px;min-height:48px;font-size:26px;color:#6ee8f3}.tetris-game>.game-bottom{grid-column:1/-1;margin:0}.tet-side .secondary{min-height:44px;padding:8px;font-size:14px}
@media(max-width:700px){.game-tile{min-height:58px}.game-tile-copy small{font-size:11px}.tet-help{display:none}.tet-side{gap:10px}.tet-board{width:min(100%,26dvh)}.tetris-game{gap:8px}}
@media(orientation:landscape){body.game-active .tetris-game{max-width:950px;grid-template-columns:minmax(0,1.2fr) minmax(240px,1fr);grid-template-rows:minmax(0,1fr) auto auto;gap:10px 24px}body.game-active .tet-board{grid-column:1;grid-row:1/4;width:min(100%,calc((100dvh - 32px)/2));max-height:100%}body.game-active .tet-side{grid-column:2;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;align-content:center}body.game-active .tet-side h1{display:none}body.game-active .tet-stats{grid-column:1;grid-row:1/3}body.game-active .tet-help{display:none}body.game-active .tet-controls{grid-column:2;grid-row:2}body.game-active .tetris-game>.game-bottom{grid-column:2;grid-row:3}body.game-active .tet-controls button{min-height:44px}}
@media(max-height:480px) and (orientation:landscape){body:not(.game-active) .games-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(58px,1fr))}body:not(.game-active) .game-tile.featured{grid-row:auto}body:not(.game-active) .game-tile-copy small{display:none}}
.art-sudoku{color:#f8d866}.sudoku-game{height:100%;min-height:0;width:100%;max-width:760px;margin:auto;display:flex;flex-direction:column;align-items:center;gap:12px}.sud-board{display:grid;grid-template-columns:repeat(9,1fr);aspect-ratio:1;width:min(100%,42dvh);border:3px solid #a184ce;border-radius:9px;overflow:hidden;flex-shrink:0;background:#a184ce}.sud-cell{padding:0;min-width:0;background:#30253f;border:0 solid #77638f;border-right-width:1px;border-bottom-width:1px;color:#c7a2ff;font-size:clamp(16px,3dvh,25px);font-weight:650;display:grid;place-items:center}.sud-cell.fixed{color:#faf5ff;font-weight:850;background:#241c30}.sud-cell.related{background:#443353}.sud-cell.selected{background:#a784ee;color:#171121;box-shadow:inset 0 0 0 2px #e6d8ff}.sud-cell.error{color:#ff8da5;background:#5d293c}.sud-side{width:min(100%,450px);display:flex;flex-direction:column;gap:8px}.sud-side h1{display:none}.sud-side>.tag{align-self:center}.sud-help{display:none}.sud-notice{min-height:20px;font-size:14px;text-align:center;color:var(--lime)}.sud-numbers{display:grid;grid-template-columns:repeat(9,1fr);gap:5px}.sud-numbers button{min-height:42px;border-radius:9px;background:var(--raised);border:1px solid var(--line);font-size:20px;color:#c8a9ff;font-weight:800;padding:0}.sud-tools{display:flex;gap:8px}.sud-tools button{flex:1;min-height:40px;padding:8px;font-size:14px}.sudoku-game>.game-bottom{margin-top:auto}.sud-levels{display:flex;gap:8px}.sud-levels button{padding:10px;min-height:44px;font-size:14px}
@media(max-width:700px){.games-grid{gap:6px}.game-tile{min-height:50px;padding:8px 12px}.game-tile-copy strong{font-size:17px}.game-tile-copy small{font-size:10px;margin-top:2px}.game-art{width:38px;height:38px;font-size:30px}.hub{gap:8px}.hub-foot{display:none}.sudoku-game{gap:8px}.sud-board{width:min(100%,39dvh)}}
@media(orientation:landscape){body.game-active .sudoku-game{max-width:1100px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);grid-template-rows:minmax(0,1fr) auto;gap:12px 24px}body.game-active .sud-board{grid-column:1;grid-row:1/3;width:min(100%,calc(100dvh - 32px));justify-self:center}body.game-active .sud-side{grid-column:2;grid-row:1;justify-self:center;align-self:center}body.game-active .sud-numbers{grid-template-columns:repeat(3,1fr)}body.game-active .sud-numbers button{min-height:42px}body.game-active .sudoku-game>.game-bottom{grid-column:2;grid-row:2;margin:0}body.game-active .sud-side>.tag{display:none}}
@media(max-height:480px) and (orientation:landscape){body:not(.game-active) .games-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body:not(.game-active) .game-tile-copy strong{font-size:14px}body:not(.game-active) .game-tile{gap:6px}}
.art-crossword{color:#76e3b1}.cross-setup{display:flex;flex-direction:column;gap:16px;max-width:500px;text-align:center}.cross-themes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.cross-themes button{min-height:44px;padding:10px;font-size:14px}.cross-game{height:100%;min-height:0;max-width:900px;margin:auto;width:100%;display:flex;flex-direction:column;align-items:center;gap:10px}.cross-board{display:grid;grid-template-columns:repeat(var(--cols),1fr);width:min(100%,38dvh);max-height:42dvh;border:3px solid #78608e;border-radius:8px;overflow:hidden;background:#120e1a;flex-shrink:0}.cross-cell{position:relative;min-width:0;padding:0;background:#f7f0ff;color:#271c35;border:1px solid #8d819a;display:grid;place-items:center;aspect-ratio:1}.cross-cell b{font-size:clamp(10px,2dvh,20px);line-height:1}.cross-cell small{position:absolute;left:1px;top:0;font-size:7px;line-height:1}.cross-cell.related{background:#decfff}.cross-cell.selected{background:#b89af2;box-shadow:inset 0 0 0 2px #7e50bd}.cross-cell.error{background:#ffb2c2}.cross-side{width:min(100%,520px);display:flex;flex-direction:column;gap:6px}.cross-side>.tag{align-self:center}.cross-select-label{font-size:12px;color:var(--muted)}#cross-clue{width:100%;min-height:40px;background:var(--raised);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:6px;font-size:14px}.cross-clue{font-size:14px;line-height:1.3;min-height:36px}.cross-keys{display:grid;grid-template-columns:repeat(9,1fr);gap:4px}.cross-keys button{min-height:32px;background:var(--raised);color:#d7c4ff;border:1px solid var(--line);border-radius:6px;padding:0;font-size:16px;font-weight:750}.cross-game>.game-bottom{margin-top:auto}.cross-game .sud-notice{min-height:16px;font-size:12px}.cross-game .sud-tools button{min-height:34px}.cross-game .game-bottom button{min-height:38px}.cross-black{background:#120e1a}
@media(max-width:700px){.game-tile{min-height:44px;padding:6px 10px}.game-tile-copy small{display:none}.game-tile-copy strong{font-size:16px}.game-art{width:32px;height:32px;font-size:26px}.hub-intro p{display:none}.cross-game{gap:6px}.cross-select-label{display:none}.cross-board{width:min(100%,35dvh);max-height:35dvh}}
@media(orientation:landscape){body.game-active .cross-game{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,1fr);grid-template-rows:minmax(0,1fr) auto;gap:8px 20px}body.game-active .cross-board{grid-column:1;grid-row:1/3;justify-self:center;max-height:calc(100dvh - 32px);width:min(100%,calc(100dvh - 32px))}body.game-active .cross-side{grid-column:2;grid-row:1;gap:5px}body.game-active .cross-side>.tag,body.game-active .cross-select-label{display:none}body.game-active .cross-keys button{min-height:30px}body.game-active .cross-game>.game-bottom{grid-column:2;grid-row:2;margin:0}}

.cross-board{width:min(100%,38dvh,calc(42dvh * var(--ratio)))}@media(max-width:700px){.cross-board{width:min(100%,35dvh,calc(35dvh * var(--ratio)))}}@media(orientation:landscape){body.game-active .cross-board{width:min(100%,calc((100dvh - 32px) * var(--ratio)),calc(100dvh - 32px))}}
.art-guess{color:#f8d866}.guess-game{width:100%;max-width:760px;height:100%;min-height:0;margin:auto;display:flex;flex-direction:column;gap:12px}.guess-setup{display:flex;flex-direction:column;gap:16px;max-width:520px;width:100%;margin:auto;min-height:0}.guess-setup h1{font-size:28px}.guess-setup h2{font-size:18px}.guess-setup .count-row{padding:10px 0}.guess-setup .cross-themes button{min-height:42px}.guess-handover{display:flex;flex-direction:column;gap:20px;align-items:center;justify-content:center;text-align:center;flex:1}.guess-handover h1{font-size:36px}.guess-handover p{color:var(--muted);max-width:320px}.guess-hand{font-size:64px}.guess-entry{display:flex;flex-direction:column;gap:24px;justify-content:center;flex:1;max-width:600px;width:100%;margin:auto}.guess-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:14px}.guess-meta strong{color:var(--purple)}.guess-entry h1{font-size:clamp(24px,4vw,34px);line-height:1.2}.guess-entry form{display:flex;flex-direction:column;gap:10px}.guess-entry label{font-size:16px;font-weight:650}.guess-input-row{display:flex;align-items:center;background:var(--surface);border:2px solid var(--purple);border-radius:16px;overflow:hidden}.guess-input-row input{width:100%;min-width:0;background:transparent;border:0;padding:16px;color:var(--ink);font-size:30px;font-family:inherit;font-weight:750;outline:none}.guess-input-row span{padding:12px;color:var(--muted);font-size:14px}.guess-input-row:focus-within{outline:3px solid var(--lime);outline-offset:3px}#guess-error{min-height:18px;font-size:14px;color:#ff9db4}.guess-result,.guess-final{display:flex;flex-direction:column;gap:12px;align-items:center;min-height:0;flex:1;text-align:center}.guess-result h1,.guess-final h1{font-size:28px}.guess-result>p{font-size:16px}.guess-answer{display:flex;flex-direction:column;gap:5px;background:var(--raised);padding:12px;border-radius:16px;width:100%}.guess-answer small{color:var(--muted);font-size:14px}.guess-answer strong{font-size:26px;color:var(--lime)}.guess-answer a{font-size:12px;color:var(--purple)}.guess-table{width:100%;min-height:0;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:6px;flex:1}.guess-table>div{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;font-size:14px}.guess-table>div>span{text-align:right}.guess-table small{grid-column:1/-1;color:var(--muted);font-size:12px}.guess-table .guess-winner{border-color:var(--lime);background:#333a25}.guess-winner strong{color:var(--lime)}.guess-result>.primary,.guess-final>.primary{width:100%;flex-shrink:0}.guess-trophy{font-size:48px}.guess-game>.game-bottom{margin-top:auto;flex-shrink:0}.guess-game .game-bottom button{min-height:40px}.guess-final>p{color:var(--lime);font-weight:750}.guess-entry .primary{min-height:48px}
@media(max-width:700px){.hub-intro h1{font-size:24px}.games-grid{gap:5px}.game-tile{min-height:40px;padding:5px 10px}.guess-setup{padding:18px;gap:12px}.guess-game{gap:8px}.guess-result,.guess-final{gap:8px}.guess-result h1,.guess-final h1{font-size:24px}.guess-answer{padding:8px}.guess-answer strong{font-size:24px}.guess-table>div{padding:8px}.guess-handover{gap:16px}}
@media(orientation:landscape){body.game-active .guess-game{max-width:1000px;display:flex;padding:0 12px}body.game-active .guess-setup{max-width:900px;display:grid;grid-template-columns:1fr 1.5fr;gap:12px 20px;padding:12px}body.game-active .guess-setup .cross-themes{grid-column:2;grid-row:1/4}body.game-active .guess-setup h2{display:none}body.game-active .guess-setup .small-note{font-size:12px}body.game-active .guess-setup>.primary{grid-column:2;grid-row:4;min-height:40px}body.game-active .guess-handover{gap:8px}body.game-active .guess-hand{font-size:40px}body.game-active .guess-handover h1{font-size:28px}body.game-active .guess-entry{max-width:850px;display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:auto 1fr;gap:12px 24px}body.game-active .guess-meta{grid-column:1;grid-row:1}body.game-active .guess-entry h1{grid-column:1;grid-row:2;align-self:center;font-size:26px}body.game-active .guess-entry form{grid-column:2;grid-row:1/3;align-self:center}body.game-active .guess-result{display:grid;grid-template-columns:1fr 1.3fr;grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px 20px}body.game-active .guess-result>.tag{grid-column:1;grid-row:1}body.game-active .guess-result h1{grid-column:1;grid-row:2}body.game-active .guess-result>p{grid-column:1;grid-row:3;align-self:center}body.game-active .guess-answer{grid-column:1;grid-row:4}body.game-active .guess-result .guess-table{grid-column:2;grid-row:1/4;height:100%}body.game-active .guess-result>.primary{grid-column:2;grid-row:4;min-height:40px}body.game-active .guess-final{display:grid;grid-template-columns:1fr 1.3fr;grid-template-rows:auto auto 1fr auto;gap:8px 20px}body.game-active .guess-final .guess-table{grid-column:2;grid-row:1/4;height:100%}body.game-active .guess-final>.primary{grid-column:2;grid-row:4;min-height:40px}body.game-active .guess-final>p{overflow:auto;max-height:100%;align-self:center}body.game-active .guess-trophy{font-size:40px}}
.guess-moderator{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;flex:1;text-align:center;max-width:650px;width:100%;margin:auto}.guess-moderator .guess-meta{width:100%}.guess-moderator h1{font-size:clamp(24px,4vw,34px);line-height:1.25}.guess-moderator .primary{width:100%;max-width:400px}.guess-method{font-size:12px!important;line-height:1.3}.guess-setup .cross-themes{gap:6px}.guess-setup .cross-themes button{padding:8px;min-height:38px;font-size:14px}@media(max-width:700px){.guess-setup{gap:8px;padding:14px}.guess-setup .small-note{font-size:12px}.guess-setup .count-row{padding:8px 0}.guess-moderator{gap:18px}}@media(orientation:landscape){body.game-active .guess-moderator{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:auto minmax(0,1fr);max-width:950px;gap:16px 24px}body.game-active .guess-moderator .guess-meta{grid-column:1;grid-row:1}body.game-active .guess-moderator h1{grid-column:1;grid-row:2;font-size:26px}body.game-active .guess-moderator>.tag{grid-column:2;grid-row:1;justify-self:center}body.game-active .guess-moderator>.primary{grid-column:2;grid-row:2;justify-self:center}body.game-active .guess-setup .cross-themes{grid-template-columns:repeat(3,minmax(0,1fr))}body.game-active .guess-setup .cross-themes button{font-size:13px}body.game-active .guess-answer .guess-method{font-size:10px!important}}
.guess-difficulty{border:0;margin:0;padding:0;min-width:0}.guess-difficulty legend{font-size:16px;font-weight:750;margin-bottom:8px}.guess-difficulty>div{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.guess-difficulty button{font-size:14px;padding:8px;min-height:38px}.guess-difficulty p{font-size:12px;color:var(--muted);line-height:1.3;margin-top:6px}.guess-hint{background:var(--raised);border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px}.guess-hint small{font-size:12px;color:var(--muted)}.guess-hint strong{font-size:18px;color:var(--lime)}.guess-moderator .guess-hint{width:100%;max-width:400px}.guess-entry{gap:16px}@media(max-width:700px){.guess-setup{gap:6px;padding:12px}.guess-setup .count-row{padding:5px 0}.guess-setup h1{font-size:24px}.guess-setup .cross-themes button{min-height:34px}.guess-setup>.primary{min-height:42px;padding:10px}.guess-difficulty legend{margin-bottom:5px}.guess-difficulty p{font-size:11px}.guess-setup .small-note{font-size:11px}.guess-setup h2{font-size:16px}}@media(orientation:landscape){body.game-active .guess-setup{grid-template-columns:1fr 1.5fr;grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px 16px}body.game-active .guess-difficulty{grid-column:1;grid-row:3}body.game-active .guess-setup .small-note{grid-column:1;grid-row:4}body.game-active .guess-moderator{grid-template-rows:auto minmax(0,1fr) auto}body.game-active .guess-moderator .guess-hint{grid-column:2;grid-row:2;align-self:center}body.game-active .guess-moderator>.primary{grid-column:2;grid-row:3}body.game-active .guess-moderator h1{grid-row:2/4}body.game-active .guess-entry{grid-template-rows:auto minmax(0,1fr) auto}body.game-active .guess-entry>.guess-hint{grid-column:1;grid-row:3}body.game-active .guess-entry form{grid-row:1/4}body.game-active .guess-entry h1{font-size:24px}}
.guess-modes{display:flex;gap:8px}.guess-modes button{flex:1;font-size:14px;padding:10px}.online-entry{display:flex;flex-direction:column;gap:12px;width:100%;max-width:520px;margin:auto}.online-entry h1{font-size:24px}.online-entry input,.invite-url{font:inherit;font-size:18px;min-width:0;width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--raised);color:var(--ink)}.online-entry label{font-size:14px}.online-choice{display:flex;flex-direction:column;gap:8px}.online-lobby{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1;text-align:center;align-items:center}.online-lobby h1{font-size:26px}.online-lobby h2{font-size:16px}.online-invite{width:100%;display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:18px}.online-invite>strong{font-size:28px;letter-spacing:3px;color:var(--lime)}.online-invite>div{display:flex;justify-content:center;gap:8px}.online-invite button{min-height:40px;font-size:14px;padding:8px 12px}.invite-url{font-size:12px;padding:8px}.online-lobby>.primary{width:100%;min-height:44px}.online-lobby .guess-table{max-width:600px}.online-wait{text-align:center;align-self:center;padding:16px;color:var(--muted)}#online-notice{font-size:13px;color:var(--lime);text-align:center;min-height:18px;flex-shrink:0}.online-game .game-bottom{margin-top:0}.online-game .guess-entry form{display:flex;flex-direction:column;gap:12px}.online-game .guess-result>p:last-child{grid-column:2;grid-row:4}@media(orientation:landscape){body.game-active .guess-setup .guess-modes{grid-column:2;grid-row:4}body.game-active .online-entry{max-width:900px;display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}body.game-active .online-entry h1{grid-column:1/-1}body.game-active .online-entry .online-choice{grid-column:1;grid-row:4/6}body.game-active .online-entry label[for=online-code]{grid-column:2;grid-row:2}body.game-active #online-code{grid-column:2;grid-row:3}body.game-active .online-entry [data-online=join]{grid-column:2;grid-row:4}body.game-active .online-entry [data-online=local]{grid-column:2;grid-row:5}body.game-active .online-lobby{display:grid;grid-template-columns:1fr 1.2fr;grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px 16px}body.game-active .online-lobby h1{font-size:22px}body.game-active .online-invite{grid-column:1;grid-row:2/4}body.game-active .online-lobby>.tag{grid-column:1;grid-row:4}body.game-active .online-lobby h2{grid-column:2;grid-row:1}body.game-active .online-lobby .guess-table{grid-column:2;grid-row:2/4;height:100%}body.game-active .online-lobby>.primary,body.game-active .online-lobby>p{grid-column:2;grid-row:4}body.game-active .online-lobby>.text-button{grid-column:1;grid-row:1;justify-self:end;font-size:12px;padding:6px}body.game-active .online-invite>strong{font-size:24px}}
.imposo-online{width:100%;margin-top:8px;min-height:42px}.online-role{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:0;flex:1;width:100%;max-width:460px;margin:auto}.online-role h1{font-size:26px}.online-role .secret-card{min-height:0;flex:1;max-height:42dvh;padding:18px;gap:16px}.online-role>.primary{width:100%;min-height:44px}.board-game>#online-notice:empty{display:none}@media(orientation:landscape){body.game-active .online-role{max-width:1000px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(200px,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px 20px}body.game-active .online-role .secret-card{grid-column:1;grid-row:1/5;height:100%;max-height:none}body.game-active .online-role>.tag{grid-column:2;grid-row:1;justify-self:center}body.game-active .online-role>h1{grid-column:2;grid-row:2}body.game-active .online-role>.primary,body.game-active .online-role>p:not(.small-note){grid-column:2;grid-row:3}body.game-active .online-role>.small-note{grid-column:2;grid-row:4}body.game-active .board-game>#online-notice{grid-column:2;grid-row:3;font-size:12px;align-self:end}}
.party-leave{color:#ffa8bd!important;border-color:#925669!important;font-size:14px}.online-game .game-bottom{flex-wrap:wrap}.online-entry #online-code:read-only{color:var(--lime);font-weight:800;letter-spacing:2px}@media(orientation:landscape){body.game-active .game-bottom{flex-wrap:wrap;gap:6px}body.game-active .game-bottom .party-leave{min-height:36px;font-size:13px;padding:8px}}
.hub-online{min-height:42px;padding:10px;font-size:15px;width:100%;flex-shrink:0}.ttt-round-choices{display:flex;gap:8px}.ttt-round-choices button{height:44px;width:44px;border:1px solid var(--line);border-radius:12px;background:var(--raised);font-weight:800;font-size:20px}.ttt-round-choices .selected{background:var(--lime);color:var(--bg)}.ttt-series{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 16px;max-width:100%;text-align:center;font-size:14px}.ttt-series>span{font-weight:800;color:var(--lime)}.ttt-series small{width:100%;color:var(--purple);font-size:14px}.lobby-game-menu{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:8px;flex-shrink:0}.lobby-game-menu summary{cursor:pointer;font-size:14px;font-weight:750;text-align:left}.lobby-game-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px;max-height:180px;overflow:auto}.lobby-game-options button{padding:8px 5px;min-height:50px;display:flex;flex-direction:column;gap:4px;font-size:12px;line-height:1.15}.lobby-game-options small{font-size:10px;font-weight:500;color:var(--muted)}.lobby-config{display:flex;gap:8px;width:100%;flex-shrink:0}.lobby-config label,.lobby-config-label{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;font-size:12px;width:100%;text-align:left}.lobby-config select,.lobby-config-label select{background:var(--raised);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:7px;font-size:14px;width:100%;min-width:0}.online-lobby{overflow:auto}.online-lobby .guess-table{min-height:60px}.online-lobby .invite-url{display:none}@media(max-width:700px){.games-grid{gap:4px}.game-tile{min-height:36px}.hub-online{min-height:36px;padding:8px}.hub{gap:6px}.online-lobby{gap:6px}.online-invite{padding:8px}.online-lobby h1{font-size:22px}}@media(orientation:landscape){body.game-active .ttt-series{grid-column:2;grid-row:2;align-self:end;padding-top:30px}body.game-active .online-lobby{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start;justify-content:center;overflow:auto;gap:8px}body.game-active .online-lobby h1{width:100%}body.game-active .online-invite{width:40%;flex-shrink:0}body.game-active .online-lobby>.tag{width:55%}body.game-active .lobby-game-menu{width:55%}body.game-active .lobby-config,body.game-active .lobby-config-label{width:40%;flex:none}body.game-active .online-lobby .guess-table{width:55%;min-height:70px;max-height:120px;flex:none}body.game-active .online-lobby>.primary{width:40%}body.game-active .online-lobby h2{width:100%;font-size:14px}body.game-active .online-lobby>.text-button{width:auto}}
.slf-game{min-height:0;overflow:auto}.slf-content{display:flex;flex-direction:column;gap:12px;width:100%;max-width:620px;margin:auto}.slf-content h1{font-size:clamp(24px,5vw,36px);margin:0}.slf-content p{margin:0}.slf-content select,.slf-content input{font:inherit;color:inherit;background:#211b31;border:1px solid #675181;border-radius:12px;padding:10px;width:100%}.slf-letter{font-weight:900;font-size:100px;line-height:1.2;color:#c1a0ff;text-align:center}.slf-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.slf-fields label{font-size:14px;text-align:left}.slf-fields input{margin-top:4px}.slf-review{max-height:40dvh;overflow:auto}.slf-review article{background:#211b31;padding:12px;border-radius:14px;margin-bottom:10px}.slf-review label{display:grid;grid-template-columns:70px 1fr 28px;gap:8px;align-items:center;text-align:left;font-size:14px;padding:5px 0}.slf-review label input{width:22px;height:22px;accent-color:#b791ff}.slf-content small{font-size:14px}.slf-content form{text-align:left}.slf-content form button{width:100%}.art-slf{color:#b3f0cc;background:#19382d}@media(orientation:landscape) and (max-height:600px){.slf-game{height:100dvh}.slf-fields{grid-template-columns:repeat(5,1fr)}.slf-letter{font-size:60px}.slf-content{max-width:100%;gap:6px}.slf-review{max-height:45dvh}}@media(max-height:900px) and (orientation:portrait){.hub-intro h1{font-size:26px}.game-tile{padding-block:5px}.games-grid{gap:5px}.hub-foot{margin:4px 0}.hub-intro{margin-bottom:6px}}
.slf-countdown{background:#493329;color:#ffdda0;padding:10px;border-radius:12px;font-weight:800;text-align:center}.slf-player-tabs{display:flex;gap:6px;overflow:auto;flex-shrink:0}.slf-player-tabs button{min-height:36px;font-size:14px;white-space:nowrap;padding:6px 10px}.slf-content form>small{display:block;font-size:14px;margin-bottom:8px}

@keyframes disc-drop{0%{transform:translateY(calc(-1 * var(--drop-distance)));opacity:1}78%{transform:translateY(0)}89%{transform:translateY(-10px)}100%{transform:translateY(0)}}.four-cell{background:#14111e}.four-cell span.falling-disc{position:relative;z-index:5;animation:disc-drop .7s cubic-bezier(.35,.05,.75,.8) both;pointer-events:none}.four-cell.last-play{outline:3px solid var(--lime);outline-offset:2px}@keyframes turn-glow{0%,100%{opacity:1;text-shadow:0 0 10px #c3a2ff88}50%{opacity:.55;text-shadow:none}}.turn-attention{animation:turn-glow 1.3s ease-in-out infinite;color:var(--lime)}@media(prefers-reduced-motion:reduce){.turn-attention,.four-cell span.falling-disc{animation:none}.turn-attention{font-weight:900;text-decoration:underline;text-underline-offset:5px}}
.four-timer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);width:100%;max-width:490px}.four-timer strong{font-size:28px;font-variant-numeric:tabular-nums;color:var(--lime);line-height:1}.four-timer>span{font-size:14px}.four-timer small{width:100%;text-align:center;font-size:12px;color:var(--muted)}.four-timer.urgent{border-color:#ff7b90}.four-timer.urgent strong{color:#ff7b90}.rps-content{display:flex;flex-direction:column;align-items:center;gap:16px;min-height:0;width:100%;max-width:600px;margin:auto;text-align:center}.rps-content h1{font-size:clamp(24px,5vw,36px);margin:0}.rps-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%}.rps-choices button{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 8px;border:1px solid var(--line);border-radius:20px}.rps-choices button span{font-size:56px}.rps-reveal{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%}.rps-reveal article{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 8px;background:var(--surface);border:2px solid var(--line);border-radius:20px;animation:rps-show .45s ease-out}.rps-symbol{font-size:72px}.rps-reveal article.rps-winner{border-color:var(--lime);box-shadow:0 0 24px #a5ea5922}.rps-result{font-size:22px;text-align:center}.art-rps{color:#ffdda0}@keyframes rps-show{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media(orientation:landscape){body.game-active .four-timer{grid-column:2;grid-row:3;align-self:center;max-width:100%;padding:6px}.rps-content{max-width:800px;gap:6px}.rps-symbol{font-size:48px}.rps-reveal article{padding:8px}.rps-choices button{padding:10px}.rps-choices button span{font-size:42px}}@media(prefers-reduced-motion:reduce){.rps-reveal article{animation:none}}@media(max-width:700px){.rps-content{gap:10px}.rps-choices button span{font-size:44px}}
.four-timer{width:auto;padding:5px 12px}.four-timer small{display:none}@media(max-width:700px) and (orientation:portrait){.four-wrap{width:min(100%,44dvh)}.board-game:has(.four-timer){gap:8px}}@media(orientation:landscape){body.game-active .four-timer{width:auto;justify-self:center;max-width:100%}}

.tet-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.tet-stats>div:nth-child(2){border-color:var(--lime)}.tet-stats>div:nth-child(2) strong,.tet-new-record{color:var(--lime)}.tet-new-record{font-size:16px;font-weight:800}
.art-towers{color:#efda9f;background:#244635}.towers-game{position:relative;display:flex;flex-direction:column;gap:10px;min-height:0;height:100%;width:100%;max-width:860px;margin:auto;padding:16px;border-radius:24px;border:1px solid #6a8454;background:radial-gradient(ellipse at 40% 20%,#446337,#234429 65%,#162f20);box-shadow:inset 0 0 60px #0d231bbb;color:#f6f2df;overflow:auto}.tower-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.tower-heading h1{font-size:26px;letter-spacing:-.5px;margin:0}.tower-heading summary{font-size:14px;cursor:pointer}.tower-rules[open]{position:absolute;z-index:30;right:12px;top:12px;width:min(90%,520px);padding:14px;border:1px solid #9faf74;border-radius:14px;background:#172f21;box-shadow:0 12px 40px #0008}.tower-rules p{font-size:16px;line-height:1.45;max-height:45dvh;overflow:auto;margin-top:10px}.tower-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;text-align:left}.tower-stats>span{display:flex;flex-direction:column;gap:3px;font-size:14px;color:#d9dfb4}.tower-stats strong{font-size:24px;font-variant-numeric:tabular-nums;color:#f8edbd}.tower-players{display:flex;gap:6px;flex-wrap:wrap}.tower-players>span{display:flex;justify-content:space-between;gap:8px;flex:1;min-width:100px;padding:7px 9px;border-radius:10px;border:1px solid #b6c69833;background:#162a1fcc;font-size:14px}.tower-players>span.active{border-color:var(--player-color);box-shadow:inset 3px 0 var(--player-color)}.tower-turn{font-size:16px;font-weight:800;min-height:24px;text-align:center}.tower-tableau{position:relative;width:100%;aspect-ratio:20/9;flex-shrink:0;align-self:center;margin:auto 0}.tower-card{position:absolute;width:9%;height:31%;padding:0;border:1px solid #bbb8a2;border-radius:6px;background:#f4f0e5;box-shadow:0 4px 5px #0006;font-family:Georgia,serif;overflow:hidden;min-height:0;transition:filter .16s}.tower-card:disabled{opacity:1}.tower-card.face-down{background:#414943;border:1px solid #79817b;box-shadow:inset 0 0 0 3px #242b26,0 4px 5px #0006}.tower-back{width:100%;height:100%;display:grid;place-items:center;background:repeating-linear-gradient(45deg,#314438,#314438 6px,#405446 6px,#405446 8px);font-size:24px;color:#d1dca2;border-radius:5px}.tower-face{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:0;height:100%;width:100%;color:#17201d;padding:4px 2px}.tower-face.red{color:#bc2938}.tower-face small{font-family:Georgia,serif;font-size:clamp(14px,2.5vw,21px);line-height:1;align-self:stretch;display:flex;justify-content:space-between;gap:2px;font-weight:800;white-space:nowrap}.tower-face strong{font-size:clamp(22px,4.5vw,44px);font-weight:400;line-height:1}.tower-card.playable{outline:2px solid #e9e778;outline-offset:1px}.tower-card.playable:hover{filter:brightness(1.1);box-shadow:0 0 16px #ffff9966}.tower-tray{display:flex;align-items:center;justify-content:center;gap:24px;padding:12px;background:linear-gradient(#51594c,#333c35);border:1px solid #919786;border-radius:20px;box-shadow:inset 0 2px 0 #b3b7a344}.tower-stock{position:relative;width:64px;height:96px;padding:0;border-radius:8px;border:1px solid #78816c;background:#27332b;flex-shrink:0;box-shadow:-4px 0 #3e4b41,-8px 0 #2c3830}.tower-stock:disabled{opacity:.55}.tower-stock>.tower-back{height:64px}.tower-stock>strong{position:absolute;top:22px;left:0;right:0;text-align:center;font-size:22px;color:white;text-shadow:0 1px 4px #000}.tower-stock>small{font-size:12px;line-height:1;display:block;margin:6px 0;color:#f0e8c8}.tower-waste{display:flex;flex-direction:column;align-items:center;gap:4px}.tower-waste>small{font-size:14px;color:#f0e8c8}.tower-waste .waste-card{position:relative;left:auto;top:auto;width:58px;height:82px}.tower-award{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;max-width:100px}.tower-award strong{width:70px;height:70px;border:4px solid #c6c6a1;border-radius:50%;background:#1d2d22;display:grid;place-items:center;font-size:24px;color:#e9e778}.tower-award span{font-size:14px;overflow-wrap:anywhere}.tower-hint{font-size:14px;margin:0;text-align:center;color:#e8e7ca}.towers-game #online-notice:empty{display:none}.towers-game #online-notice{margin:0;flex-shrink:0}.towers-game .game-bottom{gap:6px;flex-wrap:wrap;margin:0;flex-shrink:0}.towers-game .game-bottom button{font-size:14px;padding:7px 10px;min-height:40px}.tower-round-result{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#163020f5;border:1px solid #b9c88b;border-radius:16px;padding:12px;text-align:center}.tower-round-result h2{font-size:22px;margin:0}.tower-round-result p{font-size:14px;margin:0}.tower-round-result button{min-height:40px;padding:8px 20px}.tower-final-scores{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;width:100%;max-width:460px;font-size:14px}.tower-final-scores span{display:flex;justify-content:space-between;gap:8px}.tower-setup{display:flex;flex-direction:column;align-items:center;gap:16px;margin:auto;max-width:580px;text-align:center}.tower-setup h1{margin:0;font-size:34px}.tower-setup p{font-size:16px;line-height:1.4;margin:0}.tower-setup label{display:flex;align-items:center;gap:12px}.tower-setup select{font:inherit;border-radius:8px;background:#223d2a;color:#fff;padding:8px;width:90px;border:1px solid #7f956b}.tower-setup details{font-size:14px}.tower-setup details p{max-height:30dvh;overflow:auto;font-size:14px;margin-top:10px}.tower-record{font-size:18px;color:#f6eab2}@media(max-width:700px){.towers-game{padding:12px;gap:8px;border-radius:18px}.tower-heading h1{font-size:24px}.tower-stats strong{font-size:22px}.tower-stats>span{font-size:14px}.tower-players>span{min-width:80px;padding:5px;font-size:14px}.tower-tray{padding:8px;gap:20px}.tower-stock{height:82px;width:56px}.tower-stock>.tower-back{height:55px}.tower-stock>strong{top:18px}.tower-stock>small{font-size:12px;margin:5px 0}.tower-waste .waste-card{height:72px;width:50px}.tower-award strong{height:58px;width:58px;font-size:22px}}@media(orientation:landscape){body.game-active .towers-game{max-width:1200px;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) 200px;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:6px 14px;overflow:auto}body.game-active .tower-heading{grid-column:1/-1;grid-row:1}body.game-active .tower-stats{grid-column:2;grid-row:2;grid-template-columns:1fr 1fr}body.game-active .tower-players{grid-column:2;grid-row:3;align-content:center}body.game-active .tower-players>span{flex:1 1 100%;padding:5px}body.game-active .tower-turn{grid-column:1;grid-row:2;font-size:14px}body.game-active .tower-tableau{grid-column:1;grid-row:3;width:min(100%,calc((100dvh - 112px)*2.22));max-height:100%;justify-self:center;margin:0;align-self:center}body.game-active .tower-tray{grid-column:1;grid-row:4;padding:4px;gap:20px}body.game-active .tower-stock{width:40px;height:52px}body.game-active .tower-stock .tower-back{height:32px;font-size:16px}body.game-active .tower-stock>strong{top:5px;font-size:18px}body.game-active .tower-stock>small{font-size:12px;margin:2px 0}body.game-active .tower-waste{flex-direction:row}body.game-active .tower-waste .waste-card{height:52px;width:36px}body.game-active .tower-award{flex-direction:row;max-width:180px}body.game-active .tower-award strong{height:44px;width:44px;border-width:2px;font-size:18px}body.game-active .tower-hint{grid-column:1;grid-row:5;font-size:14px}body.game-active .towers-game .game-bottom{grid-column:2;grid-row:4/6;align-content:center;flex-direction:column;gap:4px}body.game-active .towers-game .game-bottom button{min-height:30px;font-size:14px;padding:4px}body.game-active .tower-setup{grid-column:1/-1;grid-row:2/5;max-width:900px;gap:6px}body.game-active .tower-setup h1{font-size:24px}body.game-active .tower-setup p{font-size:14px}body.game-active .tower-round-result{padding:6px;gap:6px}body.game-active .tower-round-result h2{font-size:20px}body.game-active .tower-round-result button{min-height:34px;padding:5px 14px}body.game-active .tower-face small{font-size:14px}body.game-active .tower-face strong{font-size:22px}body.game-active .tower-setup~.game-bottom{grid-column:1/-1;grid-row:5;flex-direction:row}}
/* Farbfall: eight by twelve, round marked colour pairs and connected groups. */
.colorfall-game .tet-board{grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(12,1fr);aspect-ratio:2/3;width:min(100%,38dvh);gap:3px;padding:8px;background:linear-gradient(145deg,#282039,#101c29);border-color:#a583ff;border-radius:24px}
.colorfall-game .tet-cell{border-radius:50%;display:grid;place-items:center;font-size:clamp(9px,2.8vw,16px);line-height:1;color:#14111e}.colorfall-game .tet-cell.filled{box-shadow:inset 0 3px 4px #fff8,inset 0 -3px 4px #0004}.colorfall-game .tet-preview i{height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;color:#14111e}.colorfall-game .tet-overlay{background:#171624e8}.colorfall-game .tet-overlay p{font-size:14px;line-height:1.35;margin:0}.colorfall-game .tet-help{font-size:14px}
.storage-settings-button{min-width:44px;padding:8px;font-size:22px;margin-left:8px}.storage-actions{display:grid;gap:12px}.storage-actions button{width:100%;min-height:48px;font-size:16px}#storage-settings{max-height:85dvh;overflow:auto;z-index:2000}#storage-settings p{font-size:16px;line-height:1.45}
@media(orientation:landscape){body.game-active .colorfall-game .tet-board{width:min(100%,calc((100dvh - 32px)*2/3))}}

.legal-links{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 14px;font-size:14px;flex:0 0 auto}.legal-links a,.legal-links button{color:var(--muted);min-height:36px;display:inline-flex;align-items:center}.legal-links button{font:inherit;background:none;border:0;padding:0;cursor:pointer}#storage-settings a{color:var(--lime)}

/* Musterfall: eleven columns, twenty-two rows and patterned tiles. */
.patternfall-game .tet-board{grid-template-columns:repeat(11,1fr);grid-template-rows:repeat(22,1fr);background:#1c2032;border-color:#a5dbc9;border-radius:20px;padding:7px;gap:2px}
.patternfall-game .tet-cell{border-radius:30%;background:#ffffff04}
.patternfall-game .tet-cell.filled{background:repeating-linear-gradient(135deg,transparent 0 3px,#ffffff45 3px 5px),var(--block);box-shadow:inset 0 0 0 1px #ffffff55}
.patternfall-game .tet-preview i{border-radius:30%;background-image:repeating-linear-gradient(135deg,transparent 0 3px,#ffffff45 3px 5px)}

.patternfall-icon{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;width:76%;height:76%}.patternfall-icon i{min-width:0;min-height:0;border-radius:25%;background:repeating-linear-gradient(135deg,transparent 0 2px,#ffffff70 2px 3px),#e9bcfa;box-shadow:inset 0 0 0 1px #ffffff35}.patternfall-icon i:nth-child(3n+2){background-color:#a5dbc9}.patternfall-icon i:nth-child(3n){background-color:#f0c4a3}.patternfall-icon i:nth-child(5){background-color:#afd3e9}

.patternfall-game .tet-cell.filled{background:repeating-linear-gradient(calc(135deg + var(--pattern-angle,0deg)),transparent 0 3px,#ffffff45 3px 5px),var(--block)}
@keyframes pattern-unthread{to{transform:scaleX(0) scaleY(.35);opacity:0}}@keyframes pattern-press{50%{transform:scaleY(.72) scaleX(1.08)}100%{transform:scale(1)}}@keyframes pattern-slide{from{transform:translateY(calc(var(--slide) * -100%))}to{transform:translateY(0)}}
.patternfall-game .pattern-unthread{transform-origin:left center;animation:pattern-unthread 180ms ease-in var(--unthread-delay) forwards}.patternfall-game .pattern-press{animation:pattern-press 160ms ease-out}.patternfall-game .pattern-slide{animation:pattern-slide 260ms ease-out}
@media(prefers-reduced-motion:reduce){.patternfall-game .pattern-unthread,.patternfall-game .pattern-press,.patternfall-game .pattern-slide{animation:none}}

.opponent-choices{display:grid;grid-template-columns:1fr;gap:8px;width:min(100%,360px);flex-shrink:0;align-self:center}.opponent-choices button{box-sizing:border-box;width:100%;height:auto;min-height:48px;min-width:0;padding:10px 14px;font-size:16px;line-height:1.3;font-weight:650;white-space:normal;overflow-wrap:anywhere;background:var(--raised);color:var(--text,#f6f3ff);border:1px solid var(--line);border-radius:12px}.opponent-choices button.selected{background:var(--lime);color:#14111e;border-color:var(--lime)}
@media(orientation:landscape){.opponent-choices{grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,620px)}.opponent-choices button{min-height:44px}}

.tower-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.tower-stats span{min-width:0}.tower-stats strong{font-variant-numeric:tabular-nums}

.visitor-count{font-size:14px;color:var(--muted);text-align:left;margin-top:14px;display:flex;align-items:center;gap:8px}.visitor-count:not(:empty):before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lime);flex:none}

.visitor-count{flex:0 0 auto;min-height:22px;margin:0;color:var(--lime);font-size:14px;line-height:22px}.hub{gap:6px}

/* Square cover gallery; labels stay live text in the selected language. */
.hub-gallery{gap:12px}.hub-gallery .hub-intro{margin:0}.hub-gallery .hub-intro h1{font-size:28px}.hub-gallery .games-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;flex:none;min-height:0}.hub-gallery .game-tile{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;min-height:0;padding:0;border-radius:16px;overflow:hidden;background:#201b2c;flex:none;grid-column:auto;grid-row:auto;transition:border-color .15s,transform .15s}.hub-gallery .game-tile:hover{transform:translateY(-2px);border-color:var(--lime)}.hub-gallery .game-cover{display:block;width:100%;aspect-ratio:1;overflow:hidden;flex:0 0 auto;background:#201b2c}.hub-gallery .game-cover img{display:block;width:100%;height:100%;object-fit:cover}.hub-gallery .game-tile-copy{padding:9px 7px;text-align:center;min-width:0}.hub-gallery .game-tile-copy strong{font-size:16px;line-height:1.2;letter-spacing:0;overflow-wrap:anywhere}.hub-gallery .legal-links{gap:4px 12px}
@media(max-width:760px){.hub-gallery{flex:1;gap:8px}.hub-gallery .hub-intro h1{font-size:24px}.hub-gallery .games-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:none}.hub-gallery .game-tile{border-radius:12px}.hub-gallery .game-tile-copy{padding:5px 3px;min-height:40px;display:flex;align-items:center;justify-content:center}.hub-gallery .game-tile-copy strong{font-size:14px;line-height:1.15}.hub-gallery .hub-online{min-height:38px;padding:8px}.hub-gallery .legal-links{margin-top:auto;font-size:12px;gap:0 10px}.hub-gallery .legal-links a,.hub-gallery .legal-links button{min-height:28px}}
@media(max-width:760px) and (orientation:portrait){.hub-gallery .games-grid{width:min(100%,max(260px,calc((100dvh - 430px)*.75)));align-self:center}.hub-gallery .game-tile-copy{min-height:34px}.hub-gallery .game-tile-copy strong{font-size:14px}}
@media(orientation:landscape) and (max-height:600px){.hub-gallery .hub-intro{display:none}.hub-gallery .games-grid{grid-template-columns:repeat(6,minmax(0,1fr));width:min(100%,max(420px,calc((100dvh - 215px)*3)));align-self:center;gap:6px}.hub-gallery .game-tile-copy{min-height:28px;padding:4px}.hub-gallery .game-tile-copy strong{font-size:13px}.hub-gallery .hub-online{min-height:32px;padding:5px}.hub-gallery .legal-links{margin:0}.hub-gallery{gap:5px}}

.hub-fixed-controls{position:sticky;top:0;z-index:25;display:flex;flex-direction:column;gap:12px;flex:0 0 auto;width:100%;background:var(--bg);padding-bottom:8px;box-shadow:0 8px 12px var(--bg)}.hub-fixed-controls .hub-online{margin:0}@media(max-width:760px){.hub-fixed-controls{gap:8px;padding-bottom:4px}}@media(orientation:landscape) and (max-height:600px){.hub-fixed-controls{gap:5px;padding-bottom:3px}}

@media(orientation:landscape) and (max-height:600px){.hub-fixed-controls .hub-intro{display:block}.hub-fixed-controls .hub-intro h1{font-size:20px}}

.hub-gallery .game-tile-copy strong{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}.hub-gallery .game-tile-copy{min-height:32px}@media(max-width:760px) and (orientation:portrait){.hub-gallery .games-grid{width:100%}.hub-gallery .game-tile-copy strong{font-size:clamp(12px,2.8vw,14px);letter-spacing:-.25px}.hub-gallery .game-tile-copy{min-height:28px;padding:5px 3px}}

.patternfall-game .tet-board{touch-action:none;user-select:none;-webkit-user-select:none}.patternfall-game [data-tet-active="true"]{cursor:grab}.patternfall-game [data-tet-active="true"]:active{cursor:grabbing}

.bot-difficulty{border:0;margin:0;padding:0;width:min(100%,360px);align-self:center;min-width:0}.bot-difficulty legend{font-size:14px;color:var(--muted);padding:0;margin-bottom:8px}.bot-difficulty>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.bot-difficulty button{min-height:44px;background:var(--raised);color:var(--ink);border:1px solid var(--line);border-radius:12px;font:inherit;font-size:14px;padding:8px 5px}.bot-difficulty button.selected{background:var(--lime);color:#14111e;border-color:var(--lime)}@media(orientation:landscape){.bot-difficulty{width:min(100%,620px)}}

/* Clear player identities and separated scores in local and online RPS. */
.rps-content .rps-player-0{color:#dfff87}.rps-content .rps-player-1{color:#9cdfff}
.rps-scoreboard{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;width:100%;max-width:440px}
.rps-scoreboard>div{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.rps-scoreboard>div>span{font-size:15px;font-weight:700;line-height:1.25;overflow-wrap:anywhere}
.rps-scoreboard strong{font-size:32px;font-weight:850;line-height:1.1;font-variant-numeric:tabular-nums}
.rps-score-separator{font-size:26px;color:var(--muted)}
@media(orientation:landscape){.rps-scoreboard{gap:12px}.rps-scoreboard>div{gap:2px}.rps-scoreboard strong{font-size:24px}.rps-scoreboard>div>span{font-size:13px}}

.rps-hand{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.rps-choices button>span{display:block;width:clamp(60px,18vw,108px);height:clamp(60px,18vw,108px)}
.rps-reveal .rps-symbol{display:block;width:clamp(90px,27vw,160px);height:clamp(90px,27vw,160px)}
@media(orientation:landscape){.rps-choices button>span{width:64px;height:64px}.rps-reveal .rps-symbol{width:84px;height:84px}}
.puzzle-game{display:flex;flex-direction:column;min-height:100%;gap:10px}.puzzle-content{width:100%;max-width:680px;margin:auto;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.puzzle-content h1{font-size:28px}.puzzle-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}.puzzle-options label{display:flex;flex-direction:column;gap:8px;text-align:left;font-size:14px}.puzzle-options select{width:100%;padding:10px;background:var(--raised);color:var(--ink);border:1px solid var(--line);border-radius:12px}.puzzle-modes,.puzzle-levels{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.puzzle-levels{border:1px solid var(--line);border-radius:16px;padding:12px}.puzzle-levels legend{padding:0 8px;font-size:14px}.puzzle-meta{display:flex;justify-content:center;gap:24px;font-variant-numeric:tabular-nums;color:var(--muted)}.puzzle-racers{display:flex;width:100%;gap:16px;justify-content:center}.puzzle-racers>div{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px;font-size:13px}.puzzle-racers strong{overflow-wrap:anywhere}.puzzle-racers progress{width:100%;height:6px;accent-color:currentColor}.puzzle-play-area{display:flex;gap:12px;align-items:center;justify-content:center;width:100%}.puzzle-board{display:grid;grid-template-columns:repeat(var(--puzzle-size),1fr);gap:3px;width:min(100%,380px,46svh);aspect-ratio:1;padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--raised);flex-shrink:0}.puzzle-tile{padding:0;min-width:0;border-radius:5px;aspect-ratio:1;background-repeat:no-repeat;border:2px solid transparent;touch-action:manipulation}.puzzle-tile.selected{border-color:var(--lime);box-shadow:0 0 0 2px var(--lime);z-index:1}.puzzle-tile:disabled{opacity:1}.puzzle-preview{width:100px;max-width:24%;border-radius:12px;object-fit:contain}.puzzle-result{font-size:22px}@media(max-width:500px){.puzzle-play-area{flex-direction:column}.puzzle-preview{width:85px;max-width:100%}.puzzle-board{width:min(100%,380px,43svh)}}@media(orientation:landscape){.puzzle-content{gap:5px}.puzzle-content h1{font-size:20px}.puzzle-board{width:min(50vw,54svh)}.puzzle-content .small-note{font-size:11px}.puzzle-preview{width:85px}.puzzle-racers{max-width:400px}.puzzle-play-area{flex-direction:row}}

.puzzle-cover{position:relative}.puzzle-cover::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 32%,#dfff8799 32%,#dfff8799 33%,transparent 33%,transparent 65%,#dfff8799 65%,#dfff8799 66%,transparent 66%),linear-gradient(0deg,transparent 32%,#dfff8799 32%,#dfff8799 33%,transparent 33%,transparent 65%,#dfff8799 65%,#dfff8799 66%,transparent 66%)}
.memory-game{display:flex;flex-direction:column;gap:8px;min-height:100%}.memory-content{width:100%;max-width:640px;margin:auto;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.memory-content h1{font-size:28px}.memory-modes{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.memory-content select,.memory-pair-select select{padding:10px;background:var(--raised);color:var(--ink);border:1px solid var(--line);border-radius:12px}.memory-pair-select{display:flex;align-items:center;gap:10px}.memory-scores{display:flex;justify-content:center;gap:8px;width:100%}.memory-scores>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--line);border-radius:12px;color:var(--memory-player);font-size:13px}.memory-scores strong{overflow-wrap:anywhere}.memory-scores .active{border-color:var(--memory-player);background:var(--raised)}.memory-status{font-weight:750;min-height:22px}.memory-board{display:grid;grid-template-columns:repeat(var(--memory-cols),1fr);gap:7px;width:min(100%,420px,47svh)}.memory-card{aspect-ratio:1;padding:0;background:transparent;perspective:600px;min-width:0}.memory-card:disabled{opacity:1}.memory-card-inner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .28s}.memory-card.flipped .memory-card-inner{transform:rotateY(180deg)}.memory-back,.memory-face{position:absolute;inset:0;display:grid;place-items:center;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid #8260c2}.memory-back{background:linear-gradient(145deg,#4d2b7b,#251b37);font:bold clamp(20px,5vw,34px)/1 Georgia,serif;color:var(--lime)}.memory-face{background:#f5edff;color:#191421;transform:rotateY(180deg);font-size:clamp(20px,5vw,38px)}.memory-card.matched .memory-face{background:#dfffbb;border-color:#dfff87}.memory-card.matched{opacity:.72}.memory-cover{display:grid!important;grid-template-columns:1fr 1fr;gap:8%;padding:14%;background:radial-gradient(ellipse at top,#45226b,#151020);aspect-ratio:1}.memory-cover i{display:grid;place-items:center;font-style:normal;border-radius:20%;background:linear-gradient(130deg,#fff3ff,#c6afe5);box-shadow:0 5px 14px #0006;font-size:clamp(20px,4vw,48px)}@media(orientation:landscape){.memory-content{gap:4px}.memory-content h1{font-size:20px}.memory-board{width:min(50vw,52svh)}.memory-scores{max-width:400px}.memory-face{font-size:clamp(18px,5svh,32px)}}@media(prefers-reduced-motion:reduce){.memory-card-inner{transition:none}}

/* Consistent, clearly visible return to the main menu in every game. */
button[data-game-action="home"],body.game-active button[data-nav="hub"]{background:#b8324a;color:#fff;border:1px solid #e96a7d;border-radius:14px;font-weight:700;min-height:44px;padding:11px 18px}
button[data-game-action="home"]:hover,body.game-active button[data-nav="hub"]:hover{background:#9f263c}
button[data-game-action="home"]:active,body.game-active button[data-nav="hub"]:active{background:#882035}
.quiz-game{display:flex;flex-direction:column;min-height:100%;gap:12px}.quiz-content{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:700px;margin:auto;text-align:center}.quiz-content h1{font-size:30px}.quiz-content>p{color:var(--muted);line-height:1.45}.quiz-content>h2{font-size:20px}.quiz-themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}.quiz-theme{background:var(--raised);border:1px solid var(--line);border-radius:18px;padding:18px 8px;display:flex;flex-direction:column;gap:8px;align-items:center}.quiz-theme>span{font-size:28px}.quiz-theme.selected{border-color:var(--lime);background:#34322a}.quiz-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.quiz-ladder{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;width:100%}.quiz-ladder>span{display:grid;place-items:center;background:var(--raised);border:1px solid var(--line);border-radius:10px;height:30px;font-size:12px;color:var(--muted)}.quiz-ladder .complete{background:var(--lime);color:#161b12;border-color:var(--lime)}.quiz-ladder .current{color:#ffd78a;border-color:#ffd78a}.quiz-level{font-size:14px;color:#ffd78a}.quiz-content .quiz-question{font-size:clamp(20px,4.5vw,28px);line-height:1.3;max-width:650px}.quiz-answers{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}.quiz-answer{display:flex;align-items:center;gap:12px;text-align:left;min-height:76px;padding:14px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}.quiz-letter{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--raised);color:#ffd78a;font-weight:850;flex-shrink:0}.quiz-answer strong{font-size:15px;line-height:1.3;overflow-wrap:anywhere}.quiz-answer:disabled{opacity:1}.quiz-answer.correct{background:#23342b;border-color:#8dedb0}.quiz-answer.incorrect{background:#42222e;border-color:#ff94a6}.quiz-answer-mark{margin-left:auto;color:#8dedb0}.quiz-feedback{font-weight:700}.quiz-finish{display:flex;flex-direction:column;align-items:center;gap:5px}.quiz-finish>span{font-size:28px;color:#ffb5c0}.quiz-finish h2{font-size:24px}.quiz-finish>strong{font-size:32px;font-variant-numeric:tabular-nums;color:var(--lime)}.quiz-finish small{color:var(--muted)}.quiz-finish.won{background:radial-gradient(ellipse,#dfff8720,transparent 70%);width:100%}.quiz-cover{display:grid!important;grid-template-columns:1fr 1fr;gap:8%;padding:18%;aspect-ratio:1;background:radial-gradient(ellipse at top,#765329,#241626 65%)}.quiz-cover i{display:grid;place-items:center;border:1px solid #f1ce87;border-radius:18%;color:#ffe0a0;background:linear-gradient(145deg,#5f395c,#242037);font-size:clamp(24px,5vw,56px);font-style:normal;font-weight:850;box-shadow:0 8px 12px #0005}@media(max-width:500px){.quiz-content{gap:11px}.quiz-content h1{font-size:25px}.quiz-answer{gap:8px;padding:12px 8px;min-height:68px}.quiz-answer strong{font-size:14px}.quiz-heading .tag{font-size:11px}.quiz-theme{padding:14px 5px}.quiz-theme strong{font-size:13px}}@media(orientation:landscape){.quiz-content{gap:7px}.quiz-content h1{font-size:22px}.quiz-content .quiz-question{font-size:20px}.quiz-answers{gap:8px}.quiz-answer{min-height:52px;padding:8px 12px}.quiz-finish{gap:2px}.quiz-finish>span{display:none}.quiz-finish h2{font-size:18px}.quiz-finish>strong{font-size:22px}.quiz-theme{padding:10px}.quiz-content>p{font-size:12px}}

/* Record posters: preview first, share or download deliberately. */
#record-wallpaper-dialog{width:min(94vw,470px);max-height:92dvh;padding:20px;overflow-y:auto;background:var(--panel,#211c2e);color:var(--ink,#f5f2ff);border:1px solid var(--line,#41364f);border-radius:24px;text-align:center}
#record-wallpaper-dialog::backdrop{background:#080610dd}
#record-wallpaper-dialog h2{font-size:22px;margin-bottom:14px}
.record-wallpaper-preview{display:block;width:auto;max-width:100%;height:auto;max-height:54dvh;margin:0 auto;border-radius:14px}
.record-wallpaper-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:12px 0}
.record-wallpaper-download{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:48px;padding:12px 20px;border-radius:16px}
.record-share-button{margin-block-start:16px;font-size:16px;line-height:1.3;min-height:44px;padding:10px 16px;max-width:100%;white-space:normal}
#record-wallpaper-status{font-size:14px;line-height:1.5;margin:8px 0}
.tet-overlay .record-share-button{pointer-events:auto}
@media(orientation:landscape) and (max-height:600px){#record-wallpaper-dialog{width:min(96vw,760px)}.record-wallpaper-preview{max-height:42dvh}}

/* Dual waste piles and username control. */
.tower-waste-piles{display:flex;justify-content:center;gap:10px}.tower-waste-piles .waste-card{position:relative;left:auto;top:auto;flex:none}.tower-waste-piles .waste-card:disabled{opacity:1}.tower-waste-piles .selected{outline:3px solid var(--lime);outline-offset:3px}.tower-waste.dual-waste{min-width:0}.tower-waste.dual-waste>small{color:var(--lime);font-size:13px;display:block;margin-bottom:8px}.tower-tray:has(.dual-waste){gap:12px;padding:10px}
.profile-menu{display:flex;justify-content:flex-end;min-height:30px;flex:none;margin-top:-4px}.profile-button{background:transparent;border:0;color:var(--lime);font:inherit;font-size:14px;padding:4px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.profile-button::before{content:'●';font-size:10px;margin-right:8px}#profile-dialog{width:min(92vw,440px);max-height:90dvh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:24px;background:var(--panel,#211c2e);color:var(--ink)}#profile-dialog::backdrop{background:#080610dd}#profile-form{display:flex;flex-direction:column;gap:14px;margin-top:16px}#profile-form input{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--raised);font:inherit;font-size:18px}#profile-rule,#profile-status{font-size:16px;line-height:1.45}.profile-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
@media(orientation:landscape) and (max-height:600px){body.game-active .profile-menu{display:none}}
@media(max-width:420px){.tower-tray:has(.dual-waste){gap:8px}.dual-waste .waste-card{width:48px;height:70px}.tower-tray:has(.dual-waste) .tower-stock{width:50px;height:80px}.tower-tray:has(.dual-waste) .tower-award strong{width:50px;height:50px;font-size:20px}.tower-waste-piles{gap:8px}}

.profile-menu{justify-content:space-between;gap:10px}#leaderboard-dialog{width:min(94vw,540px);max-height:90dvh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:24px;background:var(--panel,#211c2e);color:var(--ink)}#leaderboard-dialog::backdrop{background:#080610dd}.leaderboard-games{display:flex;gap:10px;margin:18px 0}.leaderboard-games button{flex:1;padding:10px;min-height:46px;font-size:16px}.leaderboard-table{width:100%;border-collapse:collapse;font-size:16px}.leaderboard-table th,.leaderboard-table td{padding:12px 8px;text-align:left;border-bottom:1px solid var(--line)}.leaderboard-table td:last-child,.leaderboard-table th:last-child{text-align:right;white-space:nowrap}.leaderboard-table td:nth-child(2){overflow-wrap:anywhere}.leaderboard-table .mine{color:var(--lime);background:#dfff8710}.leaderboard-mine{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--lime);border-radius:14px;margin:10px 0 18px}.leaderboard-mine strong{color:var(--lime)}

.hub-gallery .game-rank-badge{position:absolute;right:6px;bottom:46px;z-index:1;border:1px solid #dbfa8470;border-radius:8px;background:#14111eee;color:#dbfa84;padding:4px 6px;font-size:12px;line-height:1.25;font-weight:700;max-width:calc(100% - 12px);white-space:normal;text-align:right;pointer-events:none}.hub-gallery .game-tile:has(.game-rank-badge) .game-tile-copy{min-height:40px}@media(max-width:420px){.hub-gallery .game-rank-badge{bottom:38px;right:4px;padding:3px 4px}}

.guess-countdown{padding:10px 14px;border:1px solid var(--lime);border-radius:12px;color:var(--lime);font-size:14px;line-height:1.4}.guess-countdown strong{font-size:24px;font-variant-numeric:tabular-nums}
.record-save-status{font-size:14px;line-height:1.35;margin:4px 0;color:#dbfa84;max-width:100%;overflow-wrap:anywhere}.record-save-status button{font-size:14px}#record-exit-dialog{width:min(520px,calc(100vw - 32px));max-height:90dvh;overflow:auto;padding:24px;border:1px solid #a583ff;border-radius:20px;background:#201b2c;color:#f6f3ff}#record-exit-dialog::backdrop{background:#000b}#record-exit-dialog h2{margin:0 0 12px}#record-exit-dialog p{font-size:16px;line-height:1.4;margin:12px 0}#record-exit-dialog>button{margin-bottom:12px}
@media(orientation:landscape){body.game-active .towers-game:has(.tower-tableau){display:grid;grid-template-columns:minmax(0,1fr) clamp(180px,25vw,260px);grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:6px 12px;max-width:none;height:100%;min-height:0;padding:8px;overflow:hidden;border-radius:16px}.towers-game:has(.tower-tableau) .tower-heading{grid-column:2;grid-row:1}.tower-heading h1{font-size:20px}.towers-game:has(.tower-tableau) .tower-tableau{grid-column:1;grid-row:1/6;width:min(100%,calc((100dvh - 32px)*20/9));max-height:100%;margin:0;align-self:center;justify-self:center}.towers-game:has(.tower-tableau) .tower-stats{grid-column:2;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.tower-stats>span{font-size:12px}.tower-stats strong{font-size:18px}.towers-game:has(.tower-tableau) .tower-players{grid-column:2;grid-row:3;gap:3px}.tower-players>span{font-size:12px;padding:3px 5px}.towers-game:has(.tower-tableau) .tower-turn{grid-column:2;grid-row:3;align-self:end;margin-top:28px;font-size:13px}.towers-game:has(.tower-tableau) .tower-tray{grid-column:2;grid-row:4;gap:8px;padding:7px;align-self:center;flex-wrap:wrap}.tower-tray .tower-stock{width:44px;height:66px}.tower-stock>.tower-back{height:42px}.tower-stock>strong{top:12px;font-size:18px}.tower-stock>small{font-size:12px}.tower-waste .waste-card{width:42px;height:60px}.tower-waste>small{font-size:12px}.tower-waste-piles{gap:4px}.tower-award strong{width:38px;height:38px;border-width:2px;font-size:16px}.tower-award span{font-size:12px}.tower-hint{display:none}.towers-game:has(.tower-tableau)>.game-bottom{grid-column:2;grid-row:5;gap:4px}.towers-game .game-bottom button{min-height:32px;font-size:12px;padding:5px 7px}.towers-game:has(.tower-tableau)>#online-notice{display:none}.tower-face small{font-size:clamp(12px,2.1dvh,18px)}.tower-face strong{font-size:clamp(16px,5dvh,32px)}.tower-round-result{gap:5px;padding:8px}.tower-round-result h2{font-size:18px}.tower-round-result button{min-height:32px;font-size:13px;padding:6px 12px}.tower-round-result p{font-size:12px}.tower-final-scores{font-size:12px;gap:4px 12px}}
@media(orientation:landscape){.towers-game:has(.tower-tableau) .tower-players{display:none}.towers-game:has(.tower-tableau) .tower-turn{margin:0;align-self:center}.towers-game:has(.tower-tableau) .tower-tray{gap:5px;padding:5px;flex-wrap:nowrap}.tower-tray .tower-stock{width:38px}.tower-tray .tower-waste .waste-card{width:36px;height:54px}.tower-tray .tower-award{max-width:38px}.tower-tray .tower-award strong{width:32px;height:32px;font-size:14px}.tower-tray .tower-waste{min-width:0}.tower-tray .tower-waste>small{line-height:1.2;text-align:center}.tower-tray .tower-award span{max-width:38px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Keep navigation clear of the playing surface in landscape. */
@media (orientation:landscape){
 body.game-active [data-game-action="home"],
 body.game-active .game-bottom [data-online="mode"]{display:none!important}
 body.game-active .game-bottom:not(:has(button:not([data-game-action="home"]):not([data-online="mode"]))){display:none!important}
}
/* Larger playable cards with compact landscape statistics. */
@media(orientation:landscape){
 body.game-active .towers-game:has(.tower-tableau){grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:4px 12px;grid-template-columns:minmax(0,1fr) clamp(210px,28vw,280px)}
 body.game-active .towers-game:has(.tower-tableau) .tower-stats{gap:3px 6px}
 body.game-active .towers-game .tower-stats>span{font-size:10px;gap:1px;line-height:1.2}
 body.game-active .towers-game .tower-stats strong{font-size:15px;line-height:1.2}
 body.game-active .towers-game .tower-heading h1{font-size:18px}
 body.game-active .towers-game .tower-heading summary{font-size:12px}
 body.game-active .towers-game .tower-turn{font-size:12px;min-height:20px}
 body.game-active .towers-game:has(.tower-tableau) .tower-tray{--tray-card-width:clamp(48px,17svh,76px);display:grid;grid-template-columns:var(--tray-card-width) minmax(0,1fr);gap:7px 10px;padding:10px;align-self:center;align-items:center}
 body.game-active .towers-game .tower-tray .tower-stock{width:var(--tray-card-width);height:calc(var(--tray-card-width)*1.5);grid-column:1;grid-row:1}
 body.game-active .towers-game .tower-stock>.tower-back{height:calc(100% - 24px)}
 body.game-active .towers-game .tower-stock>strong{top:26%;font-size:24px}
 body.game-active .towers-game .tower-stock>small{font-size:10px;margin:5px 0}
 body.game-active .towers-game .tower-tray .tower-waste{grid-column:2;grid-row:1;min-width:0}
 body.game-active .towers-game .tower-tray .waste-card{width:var(--tray-card-width);height:calc(var(--tray-card-width)*1.5);flex-shrink:0}
 body.game-active .towers-game .tower-waste-piles{gap:6px}
 body.game-active .towers-game .tower-tray .tower-face small{font-size:18px}
 body.game-active .towers-game .tower-tray .tower-face strong{font-size:32px}
 body.game-active .towers-game .tower-tray .tower-award{grid-column:1/-1;grid-row:2;flex-direction:row;justify-content:center;max-width:none;gap:6px}
 body.game-active .towers-game .tower-award strong{width:25px;height:25px;border-width:1px;font-size:13px}
 body.game-active .towers-game .tower-award span{max-width:none;font-size:11px;white-space:nowrap}
}
/* Spy setup: keep all category rows inside their panel. */
main[data-screen="setup"] .topic{background:linear-gradient(145deg,#30283f,#252032);border:1px solid #ffffff0b;transition:background .15s,border-color .15s;overflow:hidden}
main[data-screen="setup"] .topic.selected{background:linear-gradient(145deg,#463369,#322749);border-color:var(--purple);box-shadow:inset 0 0 0 1px #a583ff33}
@media(max-width:760px) and (min-height:691px) and (orientation:portrait){
 main[data-screen="setup"] .setup-grid{flex:1 0 auto;min-height:min-content;gap:12px}
 main[data-screen="setup"] .topic-panel{flex:1 0 auto;min-height:min-content;padding:12px;gap:10px}
 main[data-screen="setup"] .topic-grid{flex:1 0 auto;min-height:min-content;grid-template-rows:none;grid-auto-rows:minmax(58px,1fr);gap:7px}
 main[data-screen="setup"] .topic{min-height:58px;padding:7px 5px;gap:4px;border-radius:14px}
 main[data-screen="setup"] .topic-icon{font-size:21px;line-height:1}
 main[data-screen="setup"] .topic-label{font-size:12px;line-height:1.2;overflow-wrap:normal;hyphens:auto;max-width:100%}
 main[data-screen="setup"] .topic-panel .section-title h2{font-size:16px}
 main[data-screen="setup"] .launch{flex-shrink:0;margin-top:2px}
 main[data-screen="setup"] .imposo-online{flex-shrink:0}
}
/* Landscape Ludo dedicates the full available height to the board. */
@media(orientation:landscape){
 body.game-active #main[data-game="ludo"] .board-game:has(.ludo-board){width:100%;max-width:none;height:100%;grid-template-columns:minmax(0,1fr) clamp(150px,23vw,230px);grid-template-rows:auto auto minmax(0,1fr) auto;gap:6px 14px}
 body.game-active #main[data-game="ludo"] .ludo-board{grid-column:1;grid-row:1/-1;align-self:center;justify-self:center;width:min(100%,calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));height:auto;max-height:none;aspect-ratio:1;margin:0;flex-shrink:0}
 body.game-active #main[data-game="ludo"] [data-game-action="restart"]{display:none!important}
 body.game-active #main[data-game="ludo"] .game-bottom:not(:has([data-online="party-leave"],[data-online="change-game"])){display:none!important}
 body.game-active #main[data-game="ludo"] .game-status{grid-column:2;grid-row:1;font-size:clamp(12px,3dvh,17px);line-height:1.3;min-width:0;gap:6px;overflow-wrap:anywhere}
 body.game-active #main[data-game="ludo"] .board-instruction{grid-column:2;grid-row:2;align-self:start;font-size:12px}
 body.game-active #main[data-game="ludo"] .dice-bar{grid-column:2;grid-row:3;display:flex;flex-direction:column;justify-content:center;align-items:center;align-self:center;gap:10px;padding:12px 8px;width:100%;min-width:0;max-width:230px}
 body.game-active #main[data-game="ludo"] .dice-bar .primary{width:100%;min-height:48px;padding:8px;font-size:14px;white-space:normal}
 body.game-active #main[data-game="ludo"] .dice-face{width:58px;height:58px;flex-shrink:0}
}
/* Widen the board while sizing circular pieces from its height. */
@media(orientation:landscape){
 body.game-active #main[data-game="ludo"] .board-game:has(.ludo-board){grid-template-columns:minmax(0,1fr) clamp(140px,20vw,190px);gap:6px 12px}
 body.game-active #main[data-game="ludo"] .ludo-board{width:100%;height:100%;aspect-ratio:auto;container-type:size;min-height:0;border-width:5px}
 body.game-active #main[data-game="ludo"] .ludo-cell{width:5.65cqh;height:5.65cqh;margin:0;margin-left:3.333%;margin-top:3.333cqh;transform:translate(-50%,-50%);font-size:clamp(9px,3cqh,14px)}
 body.game-active #main[data-game="ludo"] .ludo-token{width:5.9cqh;height:5.9cqh;font-size:clamp(9px,3cqh,14px)}
 body.game-active #main[data-game="ludo"] .ludo-yard-socket{width:7.7cqh;height:7.7cqh}
 body.game-active #main[data-game="ludo"] .ludo-yard{margin:0;margin-left:3%;margin-top:3cqh;height:34%;width:34%}
 body.game-active #main[data-game="ludo"] .ludo-center-mark{font-size:6cqh}
}
/* Wide landscape Mill board with circular stones. */
@media(orientation:landscape){
 body.game-active #main[data-game="mill"] .board-game:has(.mill-board){width:100%;max-width:none;height:100%;grid-template-columns:minmax(0,1fr) clamp(150px,22vw,210px);grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:7px 12px}
 body.game-active #main[data-game="mill"] .mill-board{grid-column:1;grid-row:1/-1;width:100%;height:100%;aspect-ratio:auto;max-height:none;min-height:0;margin:0;container-type:size}
 body.game-active #main[data-game="mill"] .mill-point{width:9cqh;height:9cqh;min-height:0;font-size:clamp(12px,4cqh,22px)}
 body.game-active #main[data-game="mill"] .game-status{grid-column:2;grid-row:1;font-size:clamp(12px,3dvh,17px);line-height:1.3;min-width:0;overflow-wrap:anywhere}
 body.game-active #main[data-game="mill"] .four-timer{grid-column:2;grid-row:2;width:100%;margin:0;justify-self:stretch}
 body.game-active #main[data-game="mill"] .board-instruction{grid-column:2;grid-row:3;align-self:start;font-size:12px;line-height:1.35}
 body.game-active #main[data-game="mill"] .mill-stock{grid-column:2;grid-row:4;align-self:center;font-size:12px;display:flex;flex-direction:column;gap:8px}
 body.game-active #main[data-game="mill"] .game-bottom{grid-column:2;grid-row:5;flex-wrap:wrap;gap:6px}
}
/* Warm ivory board separates white and violet Mill stones. */
.mill-board{background:radial-gradient(ellipse at 35% 20%,#f4e9d7,#cbbb9f);border:2px solid #a68c67;box-shadow:inset 0 0 0 4px #fff7e54d,0 8px 24px #0004}
.mill-board svg{stroke:#826d50;stroke-width:1.3}
.mill-point{border:2px solid #695574;box-shadow:0 2px 4px #36243b55,inset 0 1px 2px #ffffff77}
.mill-point.selected{outline:3px solid #5c378d;outline-offset:2px}
#profile-dialog[data-onboarding="true"]{width:min(92vw,480px);border:1px solid #a583ff66;border-radius:24px;padding:24px;background:linear-gradient(145deg,#292136,#171320);box-shadow:0 24px 80px #0008}
#profile-dialog[data-onboarding="true"]::backdrop{background:#0c091dcc;backdrop-filter:blur(8px)}
#profile-dialog[data-onboarding="true"] h2{font-size:26px;color:var(--lime);margin-bottom:18px}
#profile-dialog[data-onboarding="true"] .profile-actions{display:flex;flex-direction:column-reverse;gap:10px}
#profile-dialog[data-onboarding="true"] .profile-actions button{width:100%;min-height:48px}
.profile-button[data-rank-open]::before{display:none}
#profile-status:empty{display:none}
#profile-status.profile-error{color:#ff7b90;font-size:14px;line-height:1.4;margin-top:-6px}
#profile-name[aria-invalid="true"]{border-color:#ff7b90}
/* Original classic playing-card artwork, used on tableau and waste piles. */
.towers-game .tower-card.face-up,.towers-game .waste-card{background:linear-gradient(145deg,#fff,#f4f3ed);border:1px solid #d5d5c8;border-radius:7px;box-shadow:0 3px 5px #0005,inset 0 0 0 1px #fff9}
.towers-game .tower-face.classic-card-face{display:block;position:absolute;inset:1px;padding:0;pointer-events:none}
.towers-game .tower-card-art{display:block;width:100%;height:100%;stroke:none;stroke-width:0;overflow:visible}
.towers-game .tower-card-art text{stroke:none}
#profile-status.profile-success{color:#14532d;background:#dcfce7;border:1px solid #86c49b;border-radius:10px;padding:9px 12px;font-weight:650;font-size:14px;line-height:1.4}

/* Classic playing cards: clear ink and narrow white edges. */
.tower-card.face-up,.tower-card.waste-card{border-width:1px;border-radius:5px}
.tower-face.classic-card-face{inset:0;padding:0}

.profile-rank-choice{display:flex!important;align-items:flex-start;gap:10px;line-height:1.4;font-size:14px}.profile-rank-choice input{width:20px!important;height:20px!important;min-width:20px;flex:none;margin:2px 0;accent-color:#7f4cec}.profile-delete-actions{display:grid;gap:9px;border-top:1px solid #494055;padding-top:16px;margin-top:18px}.profile-delete-actions button{color:#ff8c9f;font-size:14px}#profile-dialog a{color:#dafa84}

.leaderboard-artwork{width:min(100%,180px);margin:18px auto 22px;text-align:center}.leaderboard-game-art{display:block;width:100%;aspect-ratio:1;height:auto;object-fit:cover;border:1px solid var(--line);border-radius:18px;overflow:hidden}.leaderboard-artwork figcaption{font-size:16px;font-weight:700;margin-top:8px}.leaderboard-artwork .symbols-cover{display:flex;align-items:center;justify-content:center;padding:8px;background:radial-gradient(ellipse at 50% 60%,#653384 0,#251331 48%,#14101d 95%)}
.leaderboard-artwork .symbols-cover{flex-wrap:nowrap;gap:0;padding:4%;box-sizing:border-box}.leaderboard-artwork .symbols-cover i.sy-icon{flex:0 0 20%;width:20%;min-width:0}
.leaderboard-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.leaderboard-heading h2{margin:0;min-width:0}.leaderboard-share{display:inline-flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:46px;min-height:46px;padding:10px;border-radius:14px}.leaderboard-share:disabled{opacity:.4}
#leaderboard-share-dialog{width:min(94vw,470px);max-height:92dvh;padding:20px;overflow-y:auto;background:var(--panel,#211c2e);color:var(--ink,#f5f2ff);border:1px solid var(--line,#41364f);border-radius:24px;text-align:center}#leaderboard-share-dialog::backdrop{background:#080610dd}#leaderboard-share-status{font-size:14px;line-height:1.5}
/* Fit stock plus both combo piles inside the landscape sidebar. */
@media(orientation:landscape){
 body.game-active .towers-game:has(.tower-tableau) .tower-tray{grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;box-sizing:border-box;gap:7px 8px}
 body.game-active .towers-game .tower-tray .tower-stock{width:min(100%,var(--tray-card-width));height:auto;aspect-ratio:2/3;min-width:0;justify-self:center}
 body.game-active .towers-game .tower-tray .tower-waste{grid-column:2/4;flex-direction:column;width:100%;min-width:0;gap:5px}
 body.game-active .towers-game .tower-tray .tower-waste-piles{width:100%;min-width:0;gap:6px}
 body.game-active .towers-game .tower-tray .waste-card{width:min(var(--tray-card-width),calc((100% - 6px)/2));height:auto;aspect-ratio:2/3;min-width:0}
 body.game-active .towers-game .tower-tray .tower-waste>small{max-width:100%;margin-bottom:0;overflow-wrap:anywhere}
 body.game-active .towers-game .tower-tray .tower-award{grid-column:1/-1}
}
/* Desktop exit stays reachable even when landscape hides in-game navigation. */
.desktop-game-home{display:none!important}
@media(hover:hover) and (pointer:fine){
 #desktop-game-home:not([hidden]){display:inline-flex!important;position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:80;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid #ff9aae;border-radius:14px;background:#b72448;color:#fff;font:700 15px/1.2 Arial,sans-serif;box-shadow:0 5px 18px #0006;cursor:pointer}
 #desktop-game-home:hover{background:#d22c55}
 #desktop-game-home:focus-visible{outline:3px solid #e2ff88;outline-offset:3px}
 .shell:has(#desktop-game-home:not([hidden])){padding-bottom:68px}
 body.game-active .shell:has(#desktop-game-home:not([hidden])){padding-bottom:68px}
 #main [data-game-action="home"]{display:none!important}
}

.slf-check{display:inline-flex;align-items:center;justify-content:center;min-width:24px;font-size:22px;font-weight:900;line-height:1}.slf-check-exact{color:#8de7aa}.slf-check-typo{color:#ffdb63}.slf-check-wrong{color:#ff7185}.slf-review label:has(.slf-check){grid-template-columns:minmax(55px,.6fr) minmax(0,1.4fr) auto auto;gap:8px}.slf-review label>span:nth-child(2){overflow-wrap:anywhere}

.slf-check-accepted{color:#8de7aa}.slf-accept{width:36px;min-height:36px;padding:4px;background:transparent;border:1px solid #ff718566;border-radius:9px;cursor:pointer}.slf-accept:hover{background:#ff71851a}.slf-accept:focus-visible{outline:2px solid var(--lime);outline-offset:2px}.slf-accept:disabled{opacity:.5;cursor:default}

.slf-score-scroll{width:100%;overflow:auto;border:1px solid #655477;border-radius:16px;flex-shrink:0;overscroll-behavior:contain}.slf-score-table{width:100%;border-collapse:separate;border-spacing:0;min-width:580px;font-size:14px;text-align:center}.slf-score-table th,.slf-score-table td{padding:12px 10px;border-bottom:1px solid #51435e;white-space:nowrap}.slf-score-table thead th{background:#352840;color:#d7c4ed;font-size:12px}.slf-score-table tbody tr:last-child>*{border-bottom:0}.slf-score-table tbody tr{background:#241e30}.slf-score-table tbody tr:nth-child(even){background:#2c2438}.slf-score-table tr>:first-child{position:sticky;left:0;text-align:left;background:inherit;z-index:1;max-width:160px;white-space:normal;overflow-wrap:anywhere}.slf-score-table thead tr>:first-child{background:#352840}.slf-score-table .slf-my-score{background:#38352b}.slf-round-sum{font-weight:750;color:#c6a7ff}.slf-total-sum{font-weight:850;color:var(--lime);background:#deff8d08}.slf-answer-details{border:1px solid var(--line);border-radius:14px;padding:10px 12px}.slf-answer-details summary{cursor:pointer;font-weight:700}.slf-answer-details .slf-review{margin-top:12px}.slf-continue{flex-shrink:0;width:100%}@media(orientation:landscape){.slf-score-table th,.slf-score-table td{padding:8px 10px}.slf-content:has(.slf-score-scroll){max-width:1100px}}

.slf-admin-tools{display:flex;justify-content:flex-end;flex-shrink:0}.slf-admin-tools button{min-height:36px;padding:8px 14px;font-size:14px}.slf-accept{cursor:pointer}.slf-accept:focus-visible{outline:2px solid var(--lime);outline-offset:3px}

#leaderboard-dialog .leaderboard-heading{position:sticky;top:-24px;z-index:2;background:var(--panel,#211c2e);padding:12px 0;margin-top:-12px}#leaderboard-title{margin-top:12px}

.lobby-return{background:#a73548;color:#fff;border:1px solid #ec7c8c;border-radius:10px;padding:5px 10px;min-height:32px;font-size:14px;font-weight:700;white-space:nowrap}.profile-menu:has(.lobby-return){flex-wrap:wrap}.game-tile.lobby-disabled{opacity:.45;cursor:not-allowed}.game-tile.lobby-disabled .game-cover{filter:grayscale(1)}

@media(orientation:landscape) and (max-height:600px){body.game-active .profile-menu:has(.lobby-return){display:flex!important;position:fixed;top:max(5px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));left:auto;width:auto;z-index:50;background:transparent}body.game-active .profile-menu:has(.lobby-return)>:not(.lobby-return){display:none!important}.lobby-return{font-size:12px;min-height:28px;padding:4px 8px}}

.quiz-submitted{border-color:var(--lime);background:#dfff8717}.quiz-online-timebar{margin-bottom:18px}.quiz-table-wrap{overflow-x:auto}.quiz-result-table{margin:20px 0}.quiz-result-table .mine{color:var(--lime);background:#dfff8715}@media(orientation:landscape) and (max-height:600px){.quiz-game.online-game .quiz-content{padding:12px 18px}.quiz-game.online-game .quiz-question{font-size:clamp(17px,3vh,24px)}.quiz-game.online-game .quiz-answers{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.quiz-game.online-game .quiz-answer{min-height:60px}.quiz-game.online-game .game-bottom{display:none}}

.tet-scoring{font-size:13px;color:var(--muted);margin:12px 0}.tet-scoring summary{cursor:pointer;color:var(--lime)}.tet-scoring p{margin-top:8px}

/* Keep the landscape stock tray below the entire statistics row. */
.tower-audio-controls{display:flex;justify-content:flex-end;gap:8px}
@media(orientation:landscape){
 body.game-active .towers-game:has(.tower-tableau){grid-template-rows:auto auto auto minmax(min-content,1fr) auto;overflow-y:auto}
 body.game-active .towers-game:has(.tower-tableau)>.tower-audio-controls{grid-column:2;grid-row:5;align-self:end;justify-content:flex-start;z-index:1}
 body.game-active .towers-game:has(.tower-tableau) .tower-stats{align-self:start;position:relative;z-index:2}
 body.game-active .towers-game:has(.tower-tableau) .tower-tray{align-self:start;margin-top:8px;--tray-card-width:clamp(40px,14dvh,68px);gap:5px 8px;padding:8px}
 body.game-active .towers-game:has(.tower-tableau) .tower-players{display:none}
 body.game-active .towers-game:has(.tower-tableau) .tower-turn{align-self:start;margin:0}
 body.game-active .towers-game:has(.tower-tableau)>.game-bottom:has([data-online="party-leave"]){grid-row:6;flex-direction:row;flex-wrap:wrap}
 body.game-active .towers-game:has(.tower-tableau)>.tower-audio-controls button{font-size:14px;min-height:32px;padding:5px 12px}
}

.tower-daily-panel{width:100%;padding:20px;margin-top:14px;border:1px solid #adbc77;border-radius:18px;background:#142c2099;display:flex;flex-direction:column;align-items:stretch;gap:12px;text-align:left}.tower-daily-panel h2{font-size:24px}.tower-daily-panel h3{font-size:18px;margin:8px 0 0}.tower-daily-panel p{font-size:14px}.tower-daily-panel small{font-size:14px;color:#d9dfb4}.tower-daily-rank{max-height:240px;overflow:auto}.tower-daily-rank table{width:100%;border-collapse:collapse;font-size:14px}.tower-daily-rank th,.tower-daily-rank td{padding:10px 6px;border-bottom:1px solid #a2b47644;text-align:left}.tower-daily-rank td:last-child,.tower-daily-rank th:last-child{text-align:right}.tower-daily-rank .mine{color:#dbfa84}.tower-setup:has(.tower-daily-panel){margin:0 auto;width:100%}@media(orientation:landscape){body.game-active .towers-game:has(.tower-daily-panel){overflow-y:auto}.tower-daily-panel{max-width:580px}.online-rematch{min-height:36px}}

.memory-card.matched-mine,.memory-card.matched-opponent{opacity:1}.memory-card.matched-mine .memory-face{background:#d8f5d6;border-color:#52b971;box-shadow:inset 0 0 0 2px #52b97155}.memory-card.matched-opponent .memory-face{background:#ffd4d9;border-color:#d55a6c;box-shadow:inset 0 0 0 2px #d55a6c55}

/* iOS focus zoom: text inputs need at least 16px, including compact landscape. */
#slf-form .slf-fields input{font-size:16px;line-height:20px;padding:8px 10px;min-width:0;max-width:100%;box-sizing:border-box}

/* A clear solo-quiz defeat with both exits directly below the result. */
.quiz-loss{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;text-align:center;padding:24px 16px;border:1px solid #83475e;border-radius:20px;background:radial-gradient(ellipse at top,#ff7f9c15,transparent 70%)}
.quiz-loss-symbol{display:grid;place-items:center;width:64px;height:64px;border:1px solid #d27691;border-radius:50%;background:#6d2e472c;color:#ffabc0;font-size:32px;font-weight:800}
.quiz-loss h1{color:#ffb6c8;margin:0}.quiz-loss p{margin:0;color:var(--muted)}.quiz-loss-answer{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-width:100%;overflow-wrap:anywhere}.quiz-loss-answer small{color:var(--muted)}.quiz-loss-answer strong{color:#dfff87;font-size:20px}
#main .quiz-loss-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;width:100%}#main .quiz-loss-actions button{display:flex!important;align-items:center;justify-content:center;min-height:48px;min-width:130px;padding:12px 20px;flex:1;font-size:16px}#main .quiz-loss-screen>.game-bottom{display:none!important}
@media(orientation:landscape) and (max-height:500px){.quiz-loss{padding:12px;gap:6px}.quiz-loss-symbol{width:40px;height:40px;font-size:24px}.quiz-loss h1{font-size:24px}.quiz-loss-answer{margin-top:2px}.quiz-loss-screen .quiz-content{gap:10px}}

/* One accessible speaker toggle; muted music is visibly red. */
.tower-audio-controls .music-icon-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px!important;padding:6px!important;border:1px solid transparent;border-radius:12px;background:transparent;color:#f6f2df;line-height:1;touch-action:manipulation}
.tower-audio-controls .music-icon-button svg{display:block;width:28px;height:28px;pointer-events:none}
.tower-audio-controls .music-icon-button.is-muted{color:#ff4b5f}
.tower-audio-controls .music-icon-button:hover{background:#f6f2df12}
.tower-audio-controls .music-icon-button:focus-visible{outline:2px solid #dbfa84;outline-offset:2px}
.tower-heading>.tower-audio-controls{order:3;flex-shrink:0}
.tower-heading>h1{min-width:0;flex:1}
@media(orientation:portrait){
 .towers-game:has(.tower-tableau){gap:14px;padding-bottom:64px}
 .towers-game:has(.tower-tableau) .tower-heading{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:6px}
 .towers-game:has(.tower-tableau) .tower-heading>h1{grid-column:2;grid-row:1;text-align:center;font-size:clamp(20px,6vw,28px)}
 .towers-game:has(.tower-tableau) .tower-heading>.tower-audio-controls{grid-column:3;grid-row:1}
 .towers-game:has(.tower-tableau) .tower-heading>.tower-rules{grid-column:1;grid-row:1}
 .towers-game:has(.tower-tableau) .tower-heading summary{font-size:11px}
 .towers-game:has(.tower-tableau) .tower-stats{grid-template-columns:repeat(4,minmax(0,1fr));justify-content:center;gap:6px;text-align:center;width:100%;margin:0 auto}
 .towers-game:has(.tower-tableau) .tower-stats>span{align-items:center;justify-content:center;font-size:clamp(10px,3vw,14px);text-align:center}
 .towers-game:has(.tower-tableau) .tower-stats strong{font-size:clamp(16px,5vw,24px);max-width:100%;overflow-wrap:anywhere}
 .towers-game:has(.tower-tableau) .tower-time,.towers-game:has(.tower-tableau) .tower-players,.towers-game:has(.tower-tableau) .tower-turn{display:none}
 .towers-game .game-bottom>[data-game-action="home"],.towers-game .game-bottom>[data-online="mode"]{display:none}
 .towers-game .game-bottom:not(:has(button:not([data-game-action="home"]):not([data-online="mode"]))){display:none}
}

/* In portrait the header already provides the shared main-menu navigation. */
@media(orientation:portrait){
 .shell:has(nav [data-nav="hub"]) #main [data-game-action="home"],
 .shell:has(nav [data-nav="hub"]) #desktop-game-home:not([hidden]){display:none!important}
 .shell:has(nav [data-nav="hub"]) #main .game-bottom:not(:has(button:not([data-game-action="home"]))){display:none}
}

.tower-restart{display:none}
@media(orientation:portrait){.towers-game .tower-restart{display:inline-flex;position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:1100;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;border:1px solid #bda4ff;border-radius:14px;background:#211c32ef;color:#eee6ff;font-size:14px;font-weight:700;box-shadow:0 4px 20px #0005;touch-action:manipulation}}

/* Both waste slots retain their size, including the covered bonus slot. */
.towers-game .tower-waste-placeholder{display:block;pointer-events:none;background:#314438;border-color:#79817b;box-shadow:inset 0 0 0 3px #242b26,0 3px 5px #0005}
.tower-tray-timebar{display:none!important}
@media(orientation:portrait){
 .towers-game .tower-tray{--fixed-waste-width:clamp(40px,12vw,64px);display:grid;grid-template-columns:var(--fixed-waste-width) minmax(0,1fr) 48px;gap:10px;padding:12px;align-items:center}
 .towers-game .tower-tray .tower-stock{width:var(--fixed-waste-width);height:calc(var(--fixed-waste-width)*1.5);justify-self:center}
 .towers-game .tower-tray .tower-stock>.tower-back{height:calc(100% - 20px)}
 .towers-game .tower-fixed-waste{display:flex;flex-direction:column;align-items:center;min-width:0;gap:6px;width:100%}
 .towers-game .tower-fixed-waste>small{margin:0;line-height:18px;white-space:nowrap}
 .towers-game .tower-waste-piles{display:grid;grid-template-columns:repeat(2,var(--fixed-waste-width));gap:8px;justify-content:center;min-height:calc(var(--fixed-waste-width)*1.5)}
 .towers-game .tower-waste-piles .waste-card{width:var(--fixed-waste-width);height:calc(var(--fixed-waste-width)*1.5);margin:0;box-sizing:border-box}
 .towers-game .tower-tray .tower-award{min-width:0;max-width:48px}
 .towers-game .tower-tray .tower-award strong{width:40px;height:40px;font-size:18px}
 .towers-game .tower-fixed-waste>.tower-tray-timebar{display:block!important;position:relative;width:100%;height:4px;min-height:4px;padding:0;border:0;border-radius:999px;overflow:hidden;background:#102719;box-shadow:none;flex:none}
 .tower-tray-timebar .imposo-timebar-brand{display:none}
 .tower-tray-timebar .imposo-timebar-fill{height:100%;border-radius:999px;box-shadow:none}
}

/* Reserve feedback space even before the first scoring move. */
.towers-game .tower-stats{padding-bottom:32px}
.towers-game .tower-score-stat{position:relative}
.towers-game .tower-score-feedback{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:max-content;max-width:140px;display:flex;flex-direction:column;align-items:center;gap:1px;line-height:15px;font-size:12px;font-weight:800;pointer-events:none;animation:tower-score-fade 2200ms linear both}
.towers-game .tower-score-feedback .negative{color:#ff5b70}
.towers-game .tower-score-feedback .positive{color:#8bef9d}
@keyframes tower-score-fade{0%,75%{opacity:1}100%{opacity:0;visibility:hidden}}

/* Ludo notices keep a permanent slot, so adding text never moves the board. */
.board-game .ludo-notice-slot{box-sizing:border-box;height:32px;min-height:32px;max-height:32px;flex:0 0 32px;margin:0;padding:0;display:flex;align-items:center;justify-content:center;line-height:16px;font-size:12px;text-align:center}
@media(orientation:landscape){body.game-active #main[data-game="ludo"] .ludo-notice-slot{grid-column:2;grid-row:2;align-self:center;justify-self:stretch;margin:0;height:32px;min-height:32px;max-height:32px}}

/* Equal tracks must not use the intrinsic height of X/O button text. */
.board-game .ttt-board{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));aspect-ratio:1;flex-shrink:0;min-width:0;container-type:inline-size}
.board-game .ttt-cell{box-sizing:border-box;min-width:0;min-height:0;width:100%;height:100%;padding:0;margin:0;overflow:hidden;line-height:1;font-size:clamp(24px,22cqw,72px)}

/* Runtime messages use constant boxes in both orientations. */
.board-game .board-notice-slot{box-sizing:border-box;height:32px;min-height:32px;max-height:32px;flex:0 0 32px;margin:0;padding:0;display:flex;align-items:center;justify-content:center;line-height:16px;font-size:12px;text-align:center}
.board-game .board-instruction{box-sizing:border-box;height:48px;min-height:48px;max-height:48px;flex:0 0 48px;margin:0;display:flex;align-items:center;justify-content:center;line-height:16px}
.sud-notice{box-sizing:border-box;height:40px;min-height:40px;max-height:40px;flex:0 0 40px;margin:0;display:flex;align-items:center;justify-content:center;line-height:18px}
.memory-status{box-sizing:border-box;height:48px;min-height:48px;max-height:48px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:20px}
.quiz-game .quiz-feedback{box-sizing:border-box;min-height:48px;margin:0;display:flex;align-items:center;justify-content:center;text-align:center;line-height:20px}
/* Network errors are overlays, outside the board's layout. */
body.game-active #main #online-notice:not(:empty){position:fixed;left:50%;bottom:calc(74px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:90;width:max-content;max-width:calc(100vw - 32px);box-sizing:border-box;padding:10px 16px;border-radius:12px;background:#30243d;color:#ffb3be;box-shadow:0 4px 20px #0007;margin:0}
@media(orientation:landscape){body.game-active .board-notice-slot{grid-column:2;grid-row:2;align-self:end}body.game-active #main[data-game="mill"] .board-instruction{height:48px;min-height:48px;max-height:48px}}

body.game-active #main #online-notice{position:fixed}
body.game-active #main #online-notice:empty{display:none!important}
.board-game .game-status{box-sizing:border-box;height:48px;min-height:48px;max-height:48px;flex:0 0 48px;line-height:20px;text-align:center}
.board-game .game-status strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}

/* End-of-answer explanations must not recenter the question or answer grid. */
.quiz-content:not(.panel){margin-top:0;margin-bottom:0}
.memory-status>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%;overflow-wrap:anywhere}
.classic-game .classic-status{box-sizing:border-box;height:40px;min-height:40px;max-height:40px;line-height:18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:0;margin-bottom:0}

/* Static table themes: no animations or extra rendering work during play. */
[data-tower-theme="elegance"]{--tower-theme-bg:radial-gradient(ellipse at 35% 15%,#48423a,#26262b 60%,#15161b);--tower-theme-border:#b7a56c}
.towers-game[data-tower-theme]{background:var(--tower-theme-bg);border-color:var(--tower-theme-border)}
.towers-game[data-tower-theme]:not([data-tower-theme="classic"]){box-shadow:inset 0 0 60px #0005}
.towers-game[data-tower-theme]:not([data-tower-theme="classic"]) .tower-tray{background:#151723ad;border-color:var(--tower-theme-border)}
.tower-theme-picker{width:100%;min-width:0;max-width:100%;margin-top:10px;text-align:left}
.tower-theme-label{display:block;font-size:14px;font-weight:700;margin-bottom:8px}
.tower-theme-list{display:flex;gap:10px;width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding:4px 2px 8px;touch-action:pan-x;overscroll-behavior-x:contain;scrollbar-width:thin}
.tower-theme-option{flex:0 0 104px;min-width:0;padding:5px;background:#16152299;border:2px solid transparent;border-radius:14px;color:#f6f2df;scroll-snap-align:start}
.tower-theme-option.selected{border-color:#e2ff88}
.tower-theme-preview{position:relative;display:grid;place-items:center;height:64px;width:100%;background:var(--tower-theme-bg);border:1px solid var(--tower-theme-border);border-radius:9px;overflow:hidden}
.tower-theme-preview i{font-style:normal;font-size:24px;color:#f5e8b9}
.tower-theme-preview b{position:absolute;right:5px;top:4px;font-size:13px;line-height:20px;width:20px;height:20px;border-radius:50%;background:#e2ff88;color:#17221c}
.tower-theme-preview b:empty{visibility:hidden}
.tower-theme-option strong{display:block;font-size:12px;padding-top:6px;line-height:18px}
.tower-theme-picker>small{display:block;font-size:11px;opacity:.8;margin-top:2px}
@media(orientation:landscape) and (max-height:500px){.tower-theme-picker{grid-column:1/-1}.tower-theme-preview{height:44px}.tower-theme-option{flex-basis:94px}.tower-theme-picker{margin-top:2px}}

.tower-setup:has(.tower-theme-picker){width:100%;min-width:0}

.tower-card-style-preview{position:relative;display:grid;place-items:center;height:78px;border-radius:9px;background:#16172266;overflow:hidden}
.tower-card-preview-face{position:relative;display:block;width:44px;height:64px;border-radius:5px;background:#faf8f1;box-shadow:0 2px 5px #0005;overflow:hidden}
.tower-card-preview-face .tower-face{display:block;position:absolute;inset:0;width:100%;height:100%;padding:0}
.tower-card-preview-face .tower-card-art{display:block;width:100%;height:100%}
.tower-card-style-preview>b{position:absolute;right:5px;top:4px;font-size:13px;line-height:20px;width:20px;height:20px;border-radius:50%;background:#e2ff88;color:#17221c}
.tower-card-style-preview>b:empty{visibility:hidden}
.tower-card-style-option{flex-basis:120px}
@media(orientation:landscape) and (max-height:500px){.tower-card-style-preview{height:56px}.tower-card-preview-face{width:32px;height:46px}}

/* SLF review wizard and answer matrix */
.slf-review-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.slf-review-navigation button{min-width:0;min-height:44px}.slf-review{max-height:none;overflow:visible}.slf-review article{margin-bottom:0}.slf-review label:has(.slf-check){grid-template-columns:minmax(65px,.6fr) minmax(0,1.4fr) 44px}.slf-accept{min-width:44px;min-height:44px}.slf-score-table{table-layout:fixed;min-width:860px}.slf-score-table th,.slf-score-table td{white-space:normal;overflow-wrap:anywhere}.slf-score-table tr>:first-child{width:110px}.slf-score-table .slf-word-cell{position:relative;padding:32px 10px 12px;vertical-align:middle}.slf-cell-word{display:block;line-height:1.4}.slf-cell-points{position:absolute;top:5px;right:6px;display:flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:50%;background:#deff8d;color:#192018;font-size:11px;font-weight:800;line-height:1}.slf-zero-points{background:#513044;color:#ffbac7}.slf-entry-next{background:#f0d369!important;color:#251d10!important;border-color:#f6e497!important}.slf-entry-button{min-height:44px}.slf-content:has(.slf-score-scroll){max-width:1100px}.slf-content:has(.slf-review-navigation){max-width:620px}@media(max-width:480px){.slf-review-navigation{gap:8px}.slf-review-navigation button{font-size:14px;padding:10px 12px}.slf-score-table{min-width:800px}}

/* Scale each Memory motif to its own card, independent of screen orientation. */
.memory-card{container-type:inline-size}.memory-card .memory-face{font-size:clamp(24px,9vw,84px);font-size:86cqw;line-height:1;padding:0;white-space:nowrap}

.ludo-token{color:#fff9e8;text-shadow:0 1px 2px #0009;border-color:#392b25;box-shadow:inset 0 2px 2px #ffffff66,inset 0 -3px 2px #0005,0 3px 5px #0006}

/* Selected setup options are yellow; the primary start action stays purple. */
button.primary:is([data-tower-mode],[data-sy-mode],[data-guess-difficulty],[data-guess-theme],[data-sud-level],[data-puzzle-mode]){background:#f8d866!important;color:#241c0c!important;border-color:#f8d866!important;text-shadow:none;box-shadow:none}
button.primary:is([data-tower-mode],[data-sy-mode],[data-guess-difficulty],[data-guess-theme],[data-sud-level],[data-puzzle-mode]) .mode-caption small{color:#493b18}

.rps-game:has(.rps-setup){overflow:auto}.rps-content.rps-setup{margin:0 auto;flex-shrink:0;padding:12px 0;gap:14px}.rps-setup>.opponent-choices,.rps-setup>.rps-difficulty,.rps-setup>button{flex-shrink:0}.rps-setup .rps-difficulty{display:block;width:min(100%,420px)}.rps-fairness-note{max-width:440px;line-height:1.5}.rps-difficulty button.selected{background:#f8d866;color:#241c0c;border-color:#f8d866}

/* Neon Arena: paint only. Existing board, controls and disc geometry is retained. */
.four-board{background:linear-gradient(115deg,#223a70 0%,#0a173c 18%,#122754 52%,#07132e 84%,#234977 100%);box-shadow:inset 0 0 0 1px #6caaff99,inset 0 3px 2px #b2d7ff55,inset 0 -4px 5px #0009,0 0 0 1px #080d22,0 0 9px #865dff44,0 5px 12px #0006}
.four-cell{background:#060e24;box-shadow:inset 0 3px 7px #000c,0 1px 1px #82b7ff88}
.four-cell[data-disc="empty"] span{background:radial-gradient(ellipse at 48% 85%,#172647,#070e25 68%)!important;box-shadow:inset 0 3px 7px #000d,inset 0 -1px 2px #8b72ff66}
.four-cell[data-disc="ruby"] span{background:radial-gradient(ellipse at 33% 22%,#ffbfce 0%,#ff667f 8%,#e72850 28%,#b80a34 58%,#62051f 86%,#f24770 100%)!important;box-shadow:inset 0 0 0 2px #ff567888,inset 0 3px 2px #ffd2de88,inset 0 -4px 4px #4c001bb3,inset -3px 0 6px #70052299,0 2px 3px #0008}
.four-cell[data-disc="gold"] span{background:radial-gradient(ellipse at 33% 22%,#fff9d8 0%,#fff0a5 8%,#ffcd43 28%,#eaa711 58%,#a56804 86%,#ffe392 100%)!important;box-shadow:inset 0 0 0 2px #ffe49b99,inset 0 3px 2px #ffffd699,inset 0 -4px 4px #74460099,inset -3px 0 6px #a56c0899,0 2px 3px #0008}
.four-cell.winning{box-shadow:inset 0 0 0 3px #e2ff88,0 0 9px #c5ff8277}
.four-cell.last-play{outline-color:#aa95ff}
.four-wrap .column-controls button{background:linear-gradient(180deg,#23325a,#141c36);color:#d4ceff;box-shadow:inset 0 0 0 1px #758ace66,inset 0 1px 1px #ccdfff33}
.four-wrap .column-controls button:disabled{color:#767b96}
@media(hover:hover){.four-wrap .column-controls button:not(:disabled):hover{background:linear-gradient(180deg,#3b4782,#242851);color:#fff;box-shadow:inset 0 0 0 1px #a99dff,0 0 7px #9778ff55}}
.four-wrap .column-controls button:focus-visible,.four-cell:focus-visible{outline-color:#dbd2ff}

/* Black Steel Mühle: surface styling only; original dimensions and hit targets retained. */
.mill-board{background:repeating-linear-gradient(0deg,#ffffff06 0px,#ffffff06 1px,#00000006 1px,#00000006 3px),linear-gradient(125deg,#64707d 0%,#262e39 17%,#171d27 45%,#3c4653 75%,#161d28 100%);box-shadow:inset 0 0 0 1px #b8c8dfbb,inset 0 3px 3px #eff6ff66,inset 0 -4px 5px #050810bb,0 0 0 1px #101723,0 4px 12px #0007}
.mill-board svg{stroke:#d2dfed}
.mill-point{border-color:#b9cee8;color:#eef6ff;text-shadow:0 1px 2px #0009;box-shadow:inset 0 2px 2px #ffffff55,inset 0 -3px 3px #0009,0 2px 4px #0008}
.mill-point[data-mill-disc="empty"]{background:radial-gradient(circle at 40% 30%,#344150,#0c121b 75%)!important;box-shadow:inset 0 2px 4px #000a,0 1px 1px #e3efff77}
.mill-point[data-mill-disc="ruby"]{background:radial-gradient(ellipse at 33% 22%,#ffbfce 0%,#ff667f 8%,#e72850 28%,#b80a34 58%,#62051f 86%,#f24770 100%)!important;border-color:#ff889f;box-shadow:inset 0 2px 2px #ffd2de88,inset 0 -3px 3px #4c001bb3,0 2px 4px #0009}
.mill-point[data-mill-disc="ice"]{background:radial-gradient(ellipse at 33% 22%,#f1fcff 0%,#b5edff 8%,#5dccff 28%,#188bda 58%,#07457c 86%,#8cdeff 100%)!important;border-color:#a3eaff;box-shadow:inset 0 2px 2px #e4fbff99,inset 0 -3px 3px #053466bb,0 2px 4px #0009}
.mill-point.selected{outline-color:#f8d866}
.mill-point.legal{border-color:#e3f2ff}
.mill-point.capture{outline-color:#ff809b}
.mill-point:focus-visible{outline-color:#f8d866}

/* Royal Safari: keep the existing board geometry, fixed layout and token hit boxes. */
.ludo-board{background:radial-gradient(ellipse at 35% 25%,#fffdf2,#f5ecd7 52%,#e4d0aa);border-color:#805c38;box-shadow:inset 0 0 0 2px #fff3d6,inset 0 0 18px #a8813c33,0 12px 24px #0004}
.ludo-track-lines{stroke:#94723e}
.ludo-cell{border-color:#937443;box-shadow:inset 0 2px 2px #fffffacc,0 1px 2px #60421c44;color:#4e3820}
.ludo-yard{background:linear-gradient(145deg,#fffdf4b3,#e9d5aa55);box-shadow:inset 0 0 0 3px #ffeab366}
.ludo-yard.active-yard{box-shadow:0 0 0 3px #fff7da,inset 0 0 22px #fff6d3}
.ludo-yard-socket{background:radial-gradient(circle,#fff9ed99,#e9d5aa55);box-shadow:inset 0 2px 5px #79592033}
.ludo-center-mark{color:#a67b39}
.ludo-token,.ludo-token.legal{background:transparent!important;border-color:transparent;box-shadow:none;text-shadow:none;color:#fff8df}
.ludo-token.legal{outline-color:#775122;box-shadow:0 0 0 5px #fff2c6bb}
.ludo-token:focus-visible{outline-color:#45321d}
.ludo-animal{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden;pointer-events:none}
.ludo-piece-number{position:absolute;right:-1px;bottom:-1px;display:grid;place-items:center;min-width:1.05em;height:1.05em;padding:0 1px;border-radius:4px;background:#382717;color:#fff8df;font-size:.72em;line-height:1;font-weight:900;pointer-events:none}

/* Royal Safari board finish: decorative paint only, with every layout rule retained. */
.ludo-board{background:repeating-linear-gradient(103deg,#b28c4210 0px,#b28c4210 1px,transparent 1px,transparent 15px),repeating-linear-gradient(7deg,#ffffff28 0px,#ffffff28 2px,transparent 2px,transparent 29px),radial-gradient(ellipse at 32% 20%,#fffdf3 0%,#f8eed5 52%,#e6ce9e 100%);border-color:#5f3b24;box-shadow:inset 0 0 0 1px #fff1c0,inset 0 0 0 3px #bb8c42,inset 0 0 0 5px #55361f,inset 0 0 0 7px #967044,inset 0 0 0 8px #ebc77f,inset 0 0 22px #98703122,0 12px 24px #0004}
.ludo-track-lines{stroke:#a98142}
.ludo-cell{background-image:linear-gradient(150deg,#ffffff80,transparent 48%,#6f47131c)!important;border-color:#ad864b;box-shadow:inset 0 1px 2px #fffffacc,inset 0 -1px 2px #69430f44,0 0 0 1px #fff6df88,0 1px 2px #60421c44;color:#493118}
.ludo-cell.home-lane{border-color:#927039}
.ludo-yard{background:repeating-linear-gradient(110deg,#ad833b0b 0px,#ad833b0b 1px,transparent 1px,transparent 12px),linear-gradient(145deg,#fffaf0c9,#e3c99366);box-shadow:inset 0 0 0 1px #fff4d3,inset 0 0 0 3px #c7a160,inset 0 0 0 4px #fff4d399,inset 0 0 18px #ad7d2b11}
.ludo-yard.active-yard{box-shadow:0 0 0 3px #fff7da,inset 0 0 0 1px #fff5d6,inset 0 0 0 3px #bc8b38,inset 0 0 0 4px #fff7df,inset 0 0 22px #ffe5a366}
.ludo-yard-socket{background:radial-gradient(circle at 40% 30%,#fffdf399,#ecd8ab77);box-shadow:inset 0 0 0 1px #fff5d6,inset 0 0 0 3px #c2a36a66,inset 0 2px 5px #79592033}
.ludo-center-mark{color:#ab7e31;text-shadow:0 1px 0 #fff9e2,0 -1px 0 #73512466}
.memory-telemetry b{font-variant-numeric:tabular-nums}

.memory-new-game{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:1000;min-height:44px}
.memory-solo-game>.game-bottom{min-height:44px}
#leaderboard-dialog{padding:18px;overflow-x:hidden}
#leaderboard-title{font-size:24px;line-height:1.2;margin:10px 0}
#leaderboard-dialog>.small-note{font-size:13px;line-height:1.4;margin:8px 0}
#leaderboard-dialog .leaderboard-heading{top:-18px;padding:8px 0;margin-top:-8px}
#leaderboard-dialog .leaderboard-games{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0}
#leaderboard-dialog .leaderboard-games button{min-width:0;min-height:44px;padding:6px 4px;font-size:clamp(11px,3.2vw,15px);line-height:1.2;overflow-wrap:anywhere}
#leaderboard-dialog .memory-rank-pairs button{white-space:nowrap;color:#f8d866;border-color:#b99b4f}
#leaderboard-dialog .memory-rank-pairs button.primary{background:#f8d866;color:#241c0c;border-color:#f8d866}
#leaderboard-dialog .leaderboard-artwork{width:min(100%,112px);margin:12px auto}
#leaderboard-dialog .leaderboard-artwork figcaption{font-size:13px;margin-top:6px}
#leaderboard-dialog .leaderboard-game-art.memory-cover{box-sizing:border-box}
#leaderboard-dialog .memory-cover i{font-size:clamp(18px,4vw,28px)}
#leaderboard-dialog .leaderboard-mine{padding:9px;margin:8px 0;font-size:13px}
#leaderboard-dialog .leaderboard-table{font-size:14px}
#leaderboard-dialog .leaderboard-table th,#leaderboard-dialog .leaderboard-table td{padding:9px 5px}
#leaderboard-results>p{font-size:14px;line-height:1.45}
@media(max-height:500px){#leaderboard-dialog .leaderboard-artwork{width:70px;margin:8px auto}#leaderboard-title{font-size:20px}#leaderboard-dialog>.small-note{font-size:12px}}

#leaderboard-dialog .leaderboard-games button{overflow-wrap:normal;word-break:normal;hyphens:manual}
@media(orientation:portrait){
 body:has(.memory-solo-game) .memory-new-game,body:has(.memory-solo-game) #game-pause-button{bottom:4px}
 .memory-solo-game>.game-bottom{min-height:64px}
 .memory-solo-game{padding-bottom:12px}
}

/* Musterfall: centered board, top statistics and separated touch controls. */
body.game-active .patternfall-game,.patternfall-game{display:flex;flex-direction:column;width:100%;max-width:620px;height:100%;min-height:0;gap:6px;margin:0 auto;overflow:hidden}
.patternfall-game .tet-top{flex:none;width:100%}.patternfall-game .tet-top h1{font-size:18px;text-align:center;margin:0 0 4px}
.patternfall-game .tet-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.patternfall-game .tet-stats>div{display:flex;flex-direction:column;gap:2px;padding:5px 2px;border:1px solid var(--line);border-radius:10px}.patternfall-game .tet-stats small{font-size:11px}.patternfall-game .tet-stats strong{font-size:19px}
body.game-active .patternfall-game .tet-board,.patternfall-game .tet-board{flex:none;width:min(100%,26dvh);height:auto;min-height:0;max-height:none;aspect-ratio:auto;grid-template-rows:repeat(22,auto);align-self:center;box-sizing:border-box;margin:0 auto;grid-column:auto;grid-row:auto}
.patternfall-game .tet-controls{flex:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,48px);gap:5px 12px;position:relative;padding:0 6px 46px}
.patternfall-game .tet-controls .tet-control{width:54px;height:48px;min-height:48px;padding:0;justify-self:center;border-radius:16px;font-size:30px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.patternfall-game .tet-rotate{grid-column:2;grid-row:1}.patternfall-game .tet-left{grid-column:1;grid-row:2}.patternfall-game .tet-right{grid-column:3;grid-row:2}.patternfall-game .tet-down{grid-column:2;grid-row:3}
.patternfall-game .tet-hold-help{position:absolute;left:65px;right:65px;bottom:12px;text-align:center;font-size:10px;color:var(--muted);margin:0}
.patternfall-game .tet-corner-controls{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none}.patternfall-game .tet-corner-controls button{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:1px;min-height:44px;padding:3px 8px}.patternfall-game .tet-corner-controls span{font-size:23px;line-height:1}.patternfall-game .tet-corner-controls small{font-size:10px}
.patternfall-game .tet-extras{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}.patternfall-game .tet-extras>button{min-height:32px;padding:4px 8px;font-size:11px}.patternfall-game .tet-scoring{margin:0;font-size:11px}.patternfall-game .tet-scoring[open]{max-width:75%}
@media(orientation:landscape){body.game-active .patternfall-game{max-width:700px}.patternfall-game .tet-controls{grid-template-rows:repeat(3,44px)}.patternfall-game .tet-controls .tet-control{height:44px;min-height:44px}}

.patternfall-game .tet-board .tet-cell{aspect-ratio:1/1}

/* Reserve the complete control area before fitting the square-cell board. */
body:has(.patternfall-game){position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;overscroll-behavior:none}
body:has(.patternfall-game) .shell{height:100dvh;max-height:100dvh;box-sizing:border-box;overflow:hidden}
body:has(.patternfall-game) #main{min-height:0;overflow:hidden;overscroll-behavior:none}
.patternfall-game{box-sizing:border-box;overscroll-behavior:none;touch-action:none}
.patternfall-game .tet-controls{grid-template-rows:repeat(3,44px);gap:3px 12px;padding-bottom:40px}
.patternfall-game .tet-controls .tet-control{height:44px;min-height:44px}
.patternfall-game .tet-hold-help{bottom:10px}

/* Next piece centered in the free right margin. */
.patternfall-game .tet-playfield{position:relative;flex:none;width:100%;min-height:0;display:flex;justify-content:center;align-items:center}
.patternfall-game .tet-margin-next{position:absolute;right:0;top:50%;transform:translateY(-50%);width:52px;text-align:center;--next-cell:10px}
.patternfall-game .tet-margin-next small{display:block;font-size:9px;line-height:1.25;overflow-wrap:anywhere}
.patternfall-game .tet-margin-next .tet-preview{justify-content:center;gap:2px;min-height:0;margin-top:7px}
.patternfall-game .tet-margin-next .tet-preview i{width:var(--next-cell);height:var(--next-cell);box-shadow:inset 0 0 0 1px #ffffff55}

/* Two aligned control rows leave more height for the board. */
body.game-active .patternfall-game .tet-controls,.patternfall-game .tet-controls{grid-template-rows:repeat(2,48px);gap:8px 12px;padding-bottom:22px}
.patternfall-game .tet-controls .tet-control{height:48px;min-height:48px}
.patternfall-game .tet-left{grid-column:1;grid-row:1}.patternfall-game .tet-rotate{grid-column:2;grid-row:1}.patternfall-game .tet-right{grid-column:3;grid-row:1}.patternfall-game .tet-down{grid-column:2;grid-row:2}
.patternfall-game .tet-corner-controls{bottom:22px;height:48px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 6px}
.patternfall-game .tet-corner-controls button{width:54px;height:48px;min-height:48px;padding:3px 2px;justify-self:center}.patternfall-game .tet-corner-controls button:first-child{grid-column:1}.patternfall-game .tet-corner-controls button:last-child{grid-column:3}
.patternfall-game .tet-margin-next{right:0;width:calc((100% - var(--tet-board-width,26dvh))/2);padding:0 4px;box-sizing:border-box}

/* Restart below Points, Pause below Level. */
.patternfall-game .tet-top-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:6px;align-items:center}
.patternfall-game .tet-top-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;justify-self:center;width:48px;height:44px;min-height:44px;padding:2px;border-radius:12px;gap:2px}
.patternfall-game .tet-top-actions button:first-child{grid-column:1}.patternfall-game .tet-top-actions button:last-child{grid-column:4}
.patternfall-game .tet-top-actions span{font-size:24px;line-height:1}.patternfall-game .tet-top-actions small{font-size:9px;line-height:1.2}

/* Align utility button tops with the board top, in the side margins. */
.patternfall-game .tet-playfield>.tet-top-actions{position:absolute;top:0;left:0;right:0;margin:0;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;gap:0;padding:0 2px}
.patternfall-game .tet-playfield>.tet-top-actions button{pointer-events:auto;flex:none}

/* Three-row reward: all shapes in the free left margin. */
.patternfall-game .tet-choice-panel{position:absolute;left:0;top:50px;bottom:0;width:calc((100% - var(--tet-board-width,26dvh))/2);box-sizing:border-box;padding:0 3px;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;--choice-cell:6px}
.patternfall-game .tet-choice-panel>strong{font-size:10px;line-height:1.2}.patternfall-game .tet-choice-panel>small{font-size:9px;line-height:1.2;overflow-wrap:anywhere}
.patternfall-game .tet-choice-list{display:flex;flex-direction:column;align-items:stretch;gap:2px;width:100%;flex:1;min-height:0}
.patternfall-game .tet-choice-list button{display:grid;place-items:center;flex:1;min-height:0;max-height:36px;padding:2px;border:1px solid var(--line);border-radius:6px;background:var(--raised);touch-action:manipulation}
.patternfall-game .tet-choice-list button[aria-pressed="true"]{border-color:var(--lime);background:#b7df8230;opacity:1}
.patternfall-game .tet-choice-shape{display:grid;gap:1px}.patternfall-game .tet-choice-shape i{width:var(--choice-cell);height:var(--choice-cell);border-radius:2px;box-shadow:inset 0 0 0 1px #ffffff55}
.patternfall-game .tet-margin-next{--next-cell:8px}

/* Keep a safe bottom gap and disable accidental text selection in play. */
body.game-active .patternfall-game .tet-controls,.patternfall-game .tet-controls{gap:16px 12px;margin-top:auto}
.patternfall-game,.patternfall-game *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
body:has(.patternfall-game) #main{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}

body.game-active .patternfall-game .tet-controls,.patternfall-game .tet-controls{gap:24px 12px}
.patternfall-game .tet-control:active{background:#ffe45c;color:#211800;border-color:#ffe45c;box-shadow:0 0 16px #ffe45c88}

.patternfall-game .tet-controls .tet-down.tet-held-red{background:#ef3b45;color:#fff;border-color:#ff7279;box-shadow:0 0 18px #ef3b4599}

/* Invisible touch padding accepts near-edge presses without changing the icons. */
.patternfall-game .tet-controls .tet-control{position:relative;overflow:visible}
.patternfall-game .tet-controls .tet-control::before{content:'';position:absolute;inset:-12px;z-index:1;border-radius:20px;background:transparent;touch-action:none}
.patternfall-game .tet-hold-help{pointer-events:none}

.slf-google-answer{color:var(--lime);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.slf-google-answer:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.slf-google-note{line-height:1.4}

/* Prevent accidental selection across every active game and its navigation. */
body.game-active,body.game-active *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
body.game-active input,body.game-active textarea,body.game-active [contenteditable="true"],body.game-active [contenteditable="plaintext-only"]{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}

.online-start-countdown{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}.online-start-countdown h1{font-size:28px}.online-start-countdown>strong{font-size:clamp(64px,18dvh,140px);line-height:1;color:var(--lime);font-variant-numeric:tabular-nums}

/* Identical branded backs keep every covered Memory card indistinguishable. */
.memory-card .memory-back{background:#414c46;border-color:#69776d;box-shadow:none}.memory-card .memory-back::after{content:"";width:12%;aspect-ratio:1;border-radius:50%;background:#78847b;opacity:.65}

/* Distinguish mode choices from start actions and highlight ranking selection. */
.memory-modes button.primary[data-memory-mode],.leaderboard-games button.secondary[data-rank-game]{background:#f8d866;color:#241c0c;border-color:#f8d866;box-shadow:0 0 12px #f8d86633}
.leaderboard-games button.primary[data-rank-game]{background:var(--purple);color:var(--bg);border-color:var(--purple)}

/* Keep the ranking dialog anchored while loading different games. */
#leaderboard-dialog{height:min(90dvh,760px);box-sizing:border-box;scrollbar-gutter:stable}

/* Lock live games to the available viewport; menus and result dialogs retain scrolling. */
body.play-screen-locked{position:fixed!important;inset:0;overflow:hidden!important;overscroll-behavior:none}
body.play-screen-locked #main{overflow:hidden!important;overscroll-behavior:none;scrollbar-width:none}
body.play-screen-locked #main>section,body.play-screen-locked #main .memory-content,body.play-screen-locked #main .cb-history,body.play-screen-locked #main .slf-content,body.play-screen-locked #main .classic-playarea{overflow:hidden!important;overscroll-behavior:none}
body.play-screen-locked #main>.game-viewport-scaled{height:var(--game-fit-height)!important;min-height:0!important;max-height:none!important;flex-shrink:0}
body.play-screen-locked .memory-game{height:100%;min-height:0;width:100%;gap:6px}
body.play-screen-locked .memory-content{flex:1;min-height:0;max-height:100%;margin:0 auto;gap:8px}
body.play-screen-locked .memory-content>h1,body.play-screen-locked .memory-scores,body.play-screen-locked .memory-status,body.play-screen-locked .memory-telemetry{flex-shrink:0}
.memory-grid-slot{width:100%;display:grid;place-items:center}
body.play-screen-locked .memory-grid-slot{flex:1;min-height:0;container-type:size}
body.play-screen-locked .memory-board{width:min(100cqw,calc(100cqh * var(--memory-cols) / var(--memory-rows)),420px);max-height:100%;gap:5px}
body.play-screen-locked .memory-game>#online-notice:empty{display:none}
body.play-screen-locked .memory-game>.game-bottom{flex-shrink:0}
@media(max-height:550px){body.play-screen-locked .memory-content{gap:4px}body.play-screen-locked .memory-content h1{font-size:18px}body.play-screen-locked .memory-scores>div{padding:4px;font-size:11px}body.play-screen-locked .memory-status{height:28px;min-height:28px;max-height:28px;font-size:12px}body.play-screen-locked .memory-telemetry{font-size:11px}}

.tower-heading>.tower-restart-icon{order:-1;grid-column:1;grid-row:1;display:grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;padding:9px;border-radius:12px;touch-action:manipulation}

/* Answer review is a scrollable administrative step, not a locked live round. */
body.game-active #main[data-game="slf"]:is([data-slf-phase="review"],[data-slf-phase="slf-result"],[data-slf-phase="slf-final"]){overflow:auto!important;touch-action:pan-y;overscroll-behavior:contain}
#main[data-game="slf"]:is([data-slf-phase="review"],[data-slf-phase="slf-result"],[data-slf-phase="slf-final"])>.slf-game{height:auto!important;max-height:none!important;flex:0 0 auto;overflow:visible!important}
#main[data-game="slf"]:is([data-slf-phase="review"],[data-slf-phase="slf-result"],[data-slf-phase="slf-final"]) .slf-content,#main[data-game="slf"]:is([data-slf-phase="review"],[data-slf-phase="slf-result"],[data-slf-phase="slf-final"]) .slf-review{max-height:none;overflow:visible!important}

/* Menus, review and finished rounds may scroll; only live phases get the lock. */
body.game-active:not(.play-screen-locked) #main{overflow:auto!important;overscroll-behavior:contain}

/* Reliable card taps without changing the board's dimensions. */
.tower-tableau>.tower-card{overflow:visible;touch-action:none}
.tower-tableau>.tower-card>.tower-face,.tower-tableau>.tower-card>.tower-back{overflow:hidden;border-radius:inherit;pointer-events:none}
@media(orientation:landscape){
 .tower-tableau>.tower-card:is([data-tower-card="0"],[data-tower-card="1"],[data-tower-card="2"]):not(:disabled)::after{content:"";position:absolute;inset:-6px;touch-action:none}
}

/* Three permanent waste slots, including the combo-10 reward. */
.towers-game .tower-waste-piles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:6px}
.towers-game .tower-waste-piles .waste-card{width:100%;max-width:64px;aspect-ratio:2/3;height:auto;justify-self:center}
@media(orientation:portrait){.towers-game .tower-tray{--fixed-waste-width:clamp(32px,10vw,56px)}.towers-game .tower-waste-piles{min-height:calc(var(--fixed-waste-width)*1.5)}}
@media(orientation:landscape){body.game-active .towers-game .tower-tray .tower-waste-piles .waste-card{width:100%;max-width:var(--tray-card-width);height:auto;aspect-ratio:2/3}}

/* Matte orange-copper IMPOSO mountain backs: no glow or animated lighting. */
.towers-game .tower-back{background:#351d20 url('/tower-back-copper-peaks.png') center/100% 100% no-repeat;color:transparent;font-size:0;border-radius:inherit}
.towers-game .tower-card.face-down{background:#351d20;border-color:#a5683f;box-shadow:0 3px 5px #0005}
.towers-game .tower-deal-cover{position:absolute;inset:0;z-index:2;pointer-events:none}
.tower-audio-controls [data-tower-audio]{min-width:34px;min-height:34px;padding:4px}.tower-audio-controls [data-tower-audio="music"]{font-size:22px}

/* CSS keyframes work in Safari without relying on Web Animation currentTime. */
@keyframes tower-deal-slide{0%{transform:translate(var(--deal-x),var(--deal-y)) rotate(-8deg) scale(.84);opacity:0}15%{opacity:1}100%{transform:translate(0,0) rotate(0deg) scale(1);opacity:1}}
@keyframes tower-deal-soft{from{opacity:0}to{opacity:1}}
@keyframes tower-deal-reveal{from{opacity:1}to{opacity:0}}
.towers-game .tower-deal-cover{animation:tower-deal-reveal 100ms ease both}

/* Reserve the full minute while the opening deal is still in progress. */
.towers-game.tower-dealing .imposo-timebar-fill{animation-play-state:paused!important}

.towers-game img.tower-back-image{display:block;object-fit:fill;width:100%;height:100%;background:none;pointer-events:none}
.towers-game .tower-stock>img.tower-back-image{height:calc(100% - 20px)}

/* Wider portrait countdown retains its existing height and layout slot. */
@media(orientation:portrait){.towers-game .tower-fixed-waste>.tower-tray-timebar{width:200%;max-width:calc(100vw - 72px);align-self:center}}

/* Card-local score feedback lives outside the board layout. */
.tower-points-bubble{position:fixed;z-index:1080;display:flex;align-items:center;justify-content:center;min-width:34px;min-height:27px;max-width:180px;padding:5px 7px;border:1px solid;border-radius:50% 50% 48% 48%;font:800 13px/1.1 system-ui,sans-serif;white-space:nowrap;pointer-events:none;box-shadow:inset 0 2px 5px #ffffff38,0 3px 9px #0003;opacity:0;will-change:transform,opacity}
.tower-points-bubble.is-positive{color:#e7ffec;border-color:#79dda4;background:linear-gradient(145deg,#268b58,#125737)}
.tower-points-bubble.is-negative{color:#fff0f1;border-color:#fda1aa;background:linear-gradient(145deg,#c24354,#852137)}
.tower-points-bubble.bubble-fly{animation:tower-points-rise 1400ms cubic-bezier(.22,.55,.35,1) both}
.tower-points-bubble.bubble-soft{animation:tower-points-soft 1000ms ease-out both}
@keyframes tower-points-rise{0%{opacity:0;transform:translate3d(0,0,0)}15%,75%{opacity:1}100%{opacity:0;transform:translate3d(0,var(--bubble-rise),0)}}
@keyframes tower-points-soft{0%{opacity:0}15%,70%{opacity:1}100%{opacity:0}}

/* Copper score panels paired with the Drei Gipfel card backs. */
#tower-summary-dialog{width:min(94vw,620px);max-width:620px;max-height:92dvh;padding:clamp(16px,4vw,30px);border:3px double #d98939;border-radius:16px;background:radial-gradient(ellipse at top,#49302255,transparent 65%),#171321;color:#fff0d8;box-shadow:inset 0 0 0 5px #261827,0 20px 70px #0009}
#tower-summary-dialog::backdrop{background:#100b20da}
#tower-summary-dialog header{display:flex;flex-direction:column;text-align:center;margin-bottom:20px;gap:8px}
#tower-summary-dialog h2{font-family:Georgia,serif;color:#efaf62;font-size:clamp(22px,5vw,32px)}
#tower-summary-dialog header p{font-family:Georgia,serif;font-size:20px;margin:0;color:#ffecd2}
#tower-summary-dialog table{font-size:16px;table-layout:fixed;font-variant-numeric:tabular-nums}
#tower-summary-dialog th,#tower-summary-dialog td{padding:10px 6px;border-bottom:1px solid #ba733455;text-align:right;overflow-wrap:anywhere}
#tower-summary-dialog th:first-child{width:48%;text-align:left}
#tower-summary-dialog thead th{font-size:14px;color:#f5b867;text-align:right}
#tower-summary-dialog .tower-column-help{color:#fff0d8;text-align:left;font-size:16px;font-weight:400;min-height:24px;padding:0}
#tower-summary-dialog tfoot{background:linear-gradient(110deg,#5f2e17,#a25620,#542a1c);color:#fff1d3;font-size:20px;font-weight:800}
#tower-summary-dialog .deduction{color:#ffa09b}
#tower-summary-dialog .tower-summary-explanation,#tower-summary-dialog .tower-summary-countdown{color:#d9bfa4;font-size:14px;text-align:center;min-height:0;margin:16px 0}
#tower-summary-dialog .tower-summary-close{background:linear-gradient(#ee9d39,#bc5d18);border:1px solid #ffd18c;color:#211207;font-size:18px;min-height:48px;border-radius:10px;box-shadow:none}
#tower-summary-dialog .tower-summary-total{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 12px;border-block:1px solid #c07c3d;background:linear-gradient(110deg,#64321944,#aa582333,#64321944)}
#tower-summary-dialog .tower-summary-total span{font-size:20px;color:#f3bd7f}
#tower-summary-dialog .tower-summary-total strong{font-size:clamp(28px,7vw,52px);overflow-wrap:anywhere;max-width:100%;color:#ffe2a6;font-variant-numeric:tabular-nums}
#tower-summary-dialog .tower-summary-total small{font-size:16px}
@media(orientation:landscape) and (max-height:500px){#tower-summary-dialog{padding:12px 20px}#tower-summary-dialog header{margin-bottom:8px;gap:4px}#tower-summary-dialog h2{font-size:22px}#tower-summary-dialog th,#tower-summary-dialog td{padding:5px 6px}#tower-summary-dialog .tower-summary-explanation,#tower-summary-dialog .tower-summary-countdown{margin:8px 0}#tower-summary-dialog .tower-summary-total{padding:14px}}

/* Keep the round action visible alongside the results on landscape screens. */
@media(orientation:landscape){
 #tower-summary-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,170px);grid-template-rows:auto minmax(0,1fr) auto;column-gap:24px;row-gap:8px;width:min(94vw,920px);max-width:920px;max-height:92dvh;overflow:hidden}
 #tower-summary-dialog header{grid-column:1/-1;grid-row:1;margin-bottom:4px}
 #tower-summary-dialog .tower-summary-table{grid-column:1;grid-row:2;min-height:0;overflow:auto}
 #tower-summary-dialog .tower-summary-close{grid-column:2;grid-row:2;align-self:center;margin:0;width:100%;min-height:48px}
 #tower-summary-dialog .tower-summary-explanation,#tower-summary-dialog .tower-summary-countdown{grid-column:1;grid-row:3;margin:4px 0}
}
@media(orientation:landscape) and (max-height:500px){
 #tower-summary-dialog[open]{padding:10px 18px;column-gap:18px;row-gap:4px}
 #tower-summary-dialog header{gap:2px}
 #tower-summary-dialog header p{font-size:16px}
 #tower-summary-dialog th,#tower-summary-dialog td{padding:3px 6px}
 #tower-summary-dialog .tower-column-help{min-height:20px;line-height:1.25}
 #tower-summary-dialog .tower-summary-close{font-size:16px}
}

/* Reserve two explanation lines so help text cannot move the score table. */
#tower-summary-dialog .tower-summary-explanation{line-height:1.35;height:2.7em;min-height:2.7em;max-height:2.7em;overflow-y:auto;box-sizing:content-box;scrollbar-gutter:stable}

/* Move only touch controls; keep the board and surrounding layout fixed. */
.patternfall-game .tet-controls .tet-control{top:6px}
.patternfall-game .tet-hold-help{transform:translateY(14px)}

/* Expand the scoring explanation directly below its disclosure label. */
.patternfall-game .tet-extras{align-items:flex-start;flex-wrap:wrap}
.patternfall-game .tet-scoring{flex:1;min-width:0;margin:0;font-size:14px}
.patternfall-game .tet-scoring[open]{max-width:none}
.patternfall-game .tet-scoring summary{min-height:32px;display:list-item;line-height:32px;text-align:right}
.patternfall-game .tet-scoring p{margin:6px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#211b30;color:var(--ink);font-size:14px;line-height:1.4;text-align:left;max-height:25dvh;overflow:auto}

/* Two decelerating hand reels reveal committed choices before the result. */
.rps-reel-window{--reel-size:clamp(80px,22vw,160px);width:var(--reel-size);height:var(--reel-size);overflow:hidden;position:relative;border:1px solid #9475c3;border-radius:18px;background:#171126;margin:12px auto;box-shadow:inset 0 4px 14px #0008}
.rps-reel-strip{display:flex;flex-direction:column;animation:rps-reel-spin var(--reel-duration) cubic-bezier(.12,.65,.12,1) both;animation-delay:var(--reel-delay);will-change:transform}
.rps-reel-item{height:var(--reel-size);width:var(--reel-size);flex:none;display:flex;align-items:center;justify-content:center}
.rps-reel-item .rps-hand{width:90%;height:90%;object-fit:contain}
.rps-reels article{min-width:0}.rps-reel-status{text-align:center;color:var(--muted)}
@keyframes rps-reel-spin{from{transform:translateY(0)}to{transform:translateY(var(--reel-target,0px))}}
@media(orientation:landscape) and (max-height:500px){.rps-reel-window{--reel-size:100px;margin:6px auto}.rps-reel-status{margin:4px}}


/* Paper fingers point left in choices, reels and revealed results. */
.rps-game .rps-hand-paper{transform:rotate(-90deg);rotate:0deg;object-fit:contain;object-position:center}

/* Reveal hands face the opposing player, including every reel frame. */
.rps-game .rps-hand.rps-hand-right{transform:rotate(90deg);rotate:0deg}
.rps-game .rps-hand.rps-hand-left{transform:rotate(-90deg);rotate:0deg}

/* Lift the card-design choices slightly within the Drei Gipfel menu. */
.tower-setup .tower-card-style-picker{position:relative;top:-8px;margin-top:2px}

/* Online round standings: every player's cumulative score at once. */
#tower-summary-dialog .tower-online-standings{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
#tower-summary-dialog .tower-online-standing{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:12px;border:1px solid #aa6b36;border-radius:10px;background:linear-gradient(120deg,#47271c,#241927);font-variant-numeric:tabular-nums}
#tower-summary-dialog .tower-online-standing.is-me{border-color:#efbe7a;background:linear-gradient(120deg,#67371d,#34202a)}
#tower-summary-dialog .tower-standing-rank{grid-row:1/3;color:#efaf62;font-weight:800}
#tower-summary-dialog .tower-online-standing strong{font-size:16px;overflow-wrap:anywhere}
#tower-summary-dialog .tower-online-standing b{font-size:22px;color:#ffe2a6;overflow-wrap:anywhere;text-align:right}
#tower-summary-dialog .tower-online-standing small{grid-column:3;text-align:right;font-size:12px;color:#d9bfa4}
@media(orientation:landscape){
 #tower-summary-dialog.tower-summary-online[open]{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}
 #tower-summary-dialog.tower-summary-online .tower-summary-table{grid-column:1/-1}
 #tower-summary-dialog.tower-summary-online .tower-summary-explanation{grid-row:3;height:auto;min-height:0;max-height:none}
 #tower-summary-dialog.tower-summary-online .tower-summary-countdown,#tower-summary-dialog.tower-summary-online .tower-summary-close{grid-column:1/-1;grid-row:4;justify-self:center;width:auto}
 #tower-summary-dialog.tower-summary-online .tower-online-standings{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(orientation:landscape) and (max-height:500px){#tower-summary-dialog.tower-summary-online .tower-online-standing{padding:7px 10px}#tower-summary-dialog.tower-summary-online .tower-online-standing b{font-size:20px}}
@media(orientation:portrait) and (max-width:500px){#tower-summary-dialog .tower-online-standings{grid-template-columns:1fr}}

/* Selected fantasy artwork with a title that follows the interface language. */
.game-cover.towers-cover{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;background:#241641 url('/game-towers-fantasy-v2.webp') center/cover no-repeat;isolation:isolate;container-type:inline-size}
.towers-cover::before{content:"";position:absolute;inset:0;background:linear-gradient(#201036dd,#23143b88 35%,#23143b88 80%,#201036dd);z-index:0}
.game-cover.towers-cover img{position:absolute;inset:21% 0 auto;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;z-index:1}
.towers-cover-title{position:absolute;top:4%;left:3%;right:3%;z-index:2;text-align:center;font-family:Georgia,"Times New Roman",serif;font-weight:900;font-size:clamp(14px,10cqw,54px);line-height:1.15;white-space:nowrap;text-transform:uppercase;letter-spacing:.01em;color:#ffe5a0;text-shadow:0 1px #ffc05e,0 2px #b96a16,0 3px #763117,0 5px 8px #110924;-webkit-text-stroke:.35px #ffbb59;pointer-events:none}
.leaderboard-artwork .towers-cover{width:180px;max-width:100%;margin:auto;border-radius:16px}

/* Crystal cover: translate the title without changing the artwork. */
.game-cover.patternfall-cover{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;background:#211332;isolation:isolate;container-type:inline-size}
.game-cover.patternfall-cover img{display:block;width:100%;height:100%;object-fit:cover}
.patternfall-cover-title{position:absolute;top:8%;left:3%;right:3%;z-index:1;text-align:center;font-family:Georgia,"Times New Roman",serif;font-weight:900;font-size:clamp(14px,8.3cqw,54px);line-height:1.15;white-space:nowrap;text-transform:uppercase;letter-spacing:-.02em;color:#ffe5a0;text-shadow:0 1px #ffc05e,0 2px #b96a16,0 3px #763117,0 5px 8px #110924;-webkit-text-stroke:.35px #ffbb59;pointer-events:none}
.leaderboard-artwork .patternfall-cover{width:180px;max-width:100%;margin:auto;border-radius:16px}

/* Color-matched light and rising sparks at the trailing edge of falling pieces. */
.patternfall-game .tet-color-trail{position:relative;z-index:2;--trail-length:260%;--trail-opacity:.65}
.patternfall-game .tet-color-trail::before,.patternfall-game .tet-color-trail::after{content:"";position:absolute;pointer-events:none;bottom:90%;left:14%;width:72%;height:var(--trail-length);border-radius:60% 60% 15% 15%;transform-origin:center bottom}
.patternfall-game .tet-color-trail::before{background:linear-gradient(to top,color-mix(in srgb,var(--block) 85%,transparent),color-mix(in srgb,var(--block) 35%,transparent) 40%,transparent);opacity:var(--trail-opacity);filter:blur(1px);animation:tet-color-stream var(--trail-time,.8s) ease-in-out infinite alternate}
.patternfall-game .tet-color-trail::after{left:20%;width:60%;background:radial-gradient(circle at 25% 72%,#fff 0 1px,transparent 2px),radial-gradient(circle at 72% 44%,var(--block) 0 1.5px,transparent 2.5px),radial-gradient(circle at 45% 15%,var(--block) 0 1px,transparent 2px);animation:tet-color-sparks var(--trail-time,.8s) linear infinite;opacity:.8}
.patternfall-game .tet-trail-fast .tet-color-trail{--trail-length:440%;--trail-opacity:.95}
@keyframes tet-color-stream{from{transform:scaleX(.75) scaleY(.8)}to{transform:scaleX(1.05) scaleY(1)}}
@keyframes tet-color-sparks{from{transform:translateY(0);opacity:.95}to{transform:translateY(-45%);opacity:0}}
@media(prefers-reduced-motion:reduce){.patternfall-game .tet-color-trail::before{animation:none;height:120%;opacity:.35}.patternfall-game .tet-color-trail::after{display:none}}

/* Selected direction 2: neon crystal facets and soft energy ribbons. */
.patternfall-game .tet-board{background:linear-gradient(145deg,#100b24,#080c1b);border-color:#63439b}
.patternfall-game .tet-cell{border-radius:2px;background:#ffffff03;box-shadow:inset 0 0 0 1px #8063c510}
.patternfall-game .tet-cell.filled,.patternfall-game .tet-preview i[style*="--block"],.patternfall-game .tet-choice-shape i[style*="--block"]{border-radius:2px;background-color:var(--block);background-image:linear-gradient(135deg,#ffffffb0,transparent 38%,#00000050 72%,#ffffff55),conic-gradient(from 45deg at 50% 50%,#ffffff10 0deg 90deg,#00000050 90deg 180deg,#ffffff40 180deg 270deg,#ffffff95 270deg 360deg);box-shadow:inset 0 0 0 1px #ffffffa0,inset 2px 2px 2px #ffffff65,inset -2px -2px 2px #00000060,0 0 5px color-mix(in srgb,var(--block) 35%,transparent)}
.patternfall-game .tet-cell.filled[data-tet-active="true"]{box-shadow:inset 0 0 0 1px #ffffffd0,inset 2px 2px 2px #ffffff90,inset -2px -2px 2px #00000050,0 0 9px color-mix(in srgb,var(--block) 75%,transparent)}
.patternfall-game .tet-cell.ghost{background:color-mix(in srgb,var(--block) 8%,transparent);box-shadow:none;border:1px solid color-mix(in srgb,var(--block) 45%,transparent);border-radius:2px}
.patternfall-game .tet-color-trail{--trail-length:330%;--trail-opacity:.8}
.patternfall-game .tet-color-trail::before{left:18%;width:64%;border-radius:70% 35% 20% 20%;background:linear-gradient(to top,color-mix(in srgb,var(--block) 90%,white),color-mix(in srgb,var(--block) 50%,transparent) 35%,transparent 95%);filter:blur(1.5px);animation:tet-crystal-ribbon var(--trail-time,.8s) ease-in-out infinite alternate}
.patternfall-game .tet-color-trail::after{left:12%;width:76%;background:conic-gradient(from 45deg at 25% 75%,transparent 0deg 70deg,var(--block) 70deg 110deg,transparent 110deg 250deg,#fff 250deg 290deg,transparent 290deg),radial-gradient(ellipse at 25% 75%,#fff 0 1px,var(--block) 1px 2px,transparent 3px),radial-gradient(ellipse at 74% 38%,#fff 0 1px,var(--block) 1px 2px,transparent 3px);background-size:4px 6px,100% 100%,100% 100%;background-repeat:no-repeat;background-position:25% 75%,center,center;filter:drop-shadow(0 0 2px var(--block));animation:tet-color-sparks var(--trail-time,.8s) linear infinite}
.patternfall-game .tet-trail-fast .tet-color-trail{--trail-length:520%;--trail-opacity:1}
@keyframes tet-crystal-ribbon{from{transform:skewX(-5deg) scaleX(.75) scaleY(.85)}to{transform:skewX(5deg) scaleX(1.05) scaleY(1)}}
@media(prefers-reduced-motion:reduce){.patternfall-game .tet-color-trail::before{animation:none;height:120%;opacity:.35}.patternfall-game .tet-color-trail::after{display:none}}

/* Calm full-screen space scene, restricted to the Musterfall game screen. */
body:has(main[data-game="tetris"] .patternfall-game){background:#030611 url('/patternfall-space-v1.webp') center/100% 100% no-repeat fixed;min-height:100svh}
body:has(main[data-game="tetris"] .patternfall-game)>.shell,body:has(main[data-game="tetris"] .patternfall-game) .shell>.top,body:has(main[data-game="tetris"] .patternfall-game) .shell>.profile-menu,body:has(main[data-game="tetris"] .patternfall-game) main{background:transparent}
.patternfall-game .tet-board{background:linear-gradient(145deg,#080b20f5,#060a19f5);border-color:#654db5;box-shadow:0 0 16px #30206735}
.patternfall-game .tet-stats>div,.patternfall-game .tet-margin-next,.patternfall-game .tet-choice-panel{background:#0b0d24b8;border-color:#54418480}
.patternfall-game .tet-controls .tet-control{background:linear-gradient(145deg,#27234bc9,#100e29e6);border-color:#7160b3;color:#d1c3ff;box-shadow:inset 0 1px 0 #b99dff25}
.patternfall-game .tet-controls .tet-control.tet-held-red{background:#a73548;color:#fff;border-color:#ec7c8c}

/* One-cell meteor and a brief fire/smoke burst at the cleared cell. */
.patternfall-game .tet-meteor{border-radius:28%!important;box-shadow:inset 0 0 0 1px #e9b080,inset 2px 2px 2px #ffdf9a80,inset -2px -2px 3px #3f1d10,0 0 10px #ff852575!important}
.patternfall-game .tet-meteor.tet-color-trail::before{background:linear-gradient(to top,#ffcc72,#e1793380 35%,transparent 95%)}
.patternfall-game .tet-meteor-impact{position:relative;z-index:8;background:transparent!important;box-shadow:none!important}
.patternfall-game .tet-meteor-impact::before,.patternfall-game .tet-meteor-impact::after{content:"";position:absolute;inset:-65%;pointer-events:none;border-radius:50%}
.patternfall-game .tet-meteor-impact::before{background:radial-gradient(ellipse at 50% 65%,#fff5c9 0 8%,#ffbd46 18%,#ff661bc0 38%,transparent 70%);animation:tet-meteor-fire .5s ease-out both}
.patternfall-game .tet-meteor-impact::after{background:radial-gradient(ellipse,#998071b0,#5a526780 45%,transparent 72%);animation:tet-meteor-smoke .5s ease-out both}
@keyframes tet-meteor-fire{0%{opacity:0;transform:scale(.3)}15%{opacity:1;transform:scale(1)}55%{opacity:.7;transform:translateY(-20%) scale(.8)}100%{opacity:0;transform:translateY(-70%) scale(.4)}}
@keyframes tet-meteor-smoke{0%,15%{opacity:0;transform:scale(.35)}35%{opacity:.6}100%{opacity:0;transform:translateY(-110%) scale(1.8)}}
@media(prefers-reduced-motion:reduce){.patternfall-game .tet-meteor-impact::before{animation:none;opacity:.4}.patternfall-game .tet-meteor-impact::after{display:none}}

.patternfall-game .tet-meteor,.patternfall-game .tet-preview i:has(.tet-meteor-bomb){position:relative;container-type:inline-size}
.patternfall-game .tet-meteor-bomb{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(8px,78cqw,22px);font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;font-weight:normal;font-style:normal;line-height:1;z-index:3;pointer-events:none;filter:drop-shadow(0 0 1px #ffe0a0)}
.patternfall-game .tet-meteor-bomb::before{content:"";position:absolute;inset:-18%;border:1.5px solid #ffd07a;border-radius:50%;box-shadow:0 0 4px #ffe4a9,0 0 9px #ff8b36,inset 0 0 5px #ffb85c80;pointer-events:none}

.game-cover.memory-fantasy-cover{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;background:#241335;container-type:inline-size}
.game-cover.memory-fantasy-cover img{display:block;width:100%;height:100%;object-fit:cover}
.memory-fantasy-title{position:absolute;top:11%;left:3%;right:3%;text-align:center;font-family:Georgia,"Times New Roman",serif;font-weight:900;font-size:clamp(14px,14cqw,64px);line-height:1.15;white-space:nowrap;text-transform:uppercase;color:#ffe5a0;text-shadow:0 1px #ffc05e,0 2px #b96a16,0 3px #763117,0 5px 8px #110924;-webkit-text-stroke:.35px #ffbb59;pointer-events:none}
.leaderboard-artwork .memory-fantasy-cover{max-width:100%;margin:auto;border-radius:16px}

.game-cover.symbols-cards-cover{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;background:#241335;container-type:inline-size}
.game-cover.symbols-cards-cover img{display:block;width:100%;height:100%;object-fit:cover}
.symbols-cards-title{position:absolute;top:17%;left:3%;right:3%;text-align:center;font-family:Georgia,"Times New Roman",serif;font-weight:900;font-size:clamp(12px,8.4cqw,54px);line-height:1.15;white-space:nowrap;text-transform:uppercase;color:#ffe5a0;text-shadow:0 1px #ffc05e,0 2px #b96a16,0 3px #763117,0 5px 8px #110924;-webkit-text-stroke:.35px #ffbb59;pointer-events:none}
.leaderboard-artwork .symbols-cards-cover{max-width:100%;margin:auto;border-radius:16px}

.game-cover.reihenfieber-fantasy-cover{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;background:#241335;container-type:inline-size}
.game-cover.reihenfieber-fantasy-cover img{display:block;width:100%;height:100%;object-fit:cover}
.reihenfieber-fantasy-title{position:absolute;top:8%;left:3%;right:3%;text-align:center;font-family:Georgia,"Times New Roman",serif;font-weight:900;font-size:clamp(12px,9.5cqw,60px);line-height:1.15;white-space:nowrap;text-transform:uppercase;color:#ffe5a0;text-shadow:0 1px #ffc05e,0 2px #b96a16,0 3px #763117,0 5px 8px #110924;-webkit-text-stroke:.35px #ffbb59;pointer-events:none}

/* Count overlapping lines on the square 9x9 board. */
.four-wrap .column-controls,.four-wrap .four-board{grid-template-columns:repeat(var(--four-cols,9),minmax(0,1fr))}
.four-wrap .four-board{gap:clamp(2px,.6vw,5px);padding:clamp(6px,1vw,10px)}
.four-wrap .four-cell{min-height:0}
.four-scores{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;padding:7px 10px;border:1px solid var(--line);border-radius:12px;background:#11182c;color:#e9e6ff;text-align:center}
.four-scores>div{display:flex;justify-content:space-between;gap:12px}.four-scores span{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.four-scores span:last-child{justify-content:flex-end}.four-scores i{width:10px;height:10px;border-radius:50%;flex:none}.four-scores b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.four-scores strong{font-size:20px;font-variant-numeric:tabular-nums}.four-scores small{font-size:12px;color:#bbb6cf}
@media(orientation:landscape){body.game-active .four-wrap{width:min(100%,calc(100dvh - 148px))}.four-scores{padding:4px 8px;gap:1px;margin-bottom:4px}.four-scores strong{font-size:17px}}
@media(max-width:700px) and (orientation:portrait){body.game-active .four-wrap{width:min(100%,46dvh)}}

.four-point-bubble{position:fixed;z-index:1080;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:2px solid;border-radius:50%;font-size:18px;font-weight:900;pointer-events:none;opacity:0;box-shadow:0 4px 12px #0006;animation:four-point-rise 1500ms cubic-bezier(.22,.55,.35,1) both}
.four-point-bubble.ruby{color:#fff0f2;border-color:#ff7b90;background:radial-gradient(circle at 30% 20%,#ff6683,#b80a34 75%);box-shadow:0 0 12px #ec315877}
.four-point-bubble.gold{color:#3c2400;border-color:#fff0a5;background:radial-gradient(circle at 30% 20%,#fff0a5,#eaa711 75%);box-shadow:0 0 12px #ffcd4377}
@keyframes four-point-rise{0%{opacity:0;transform:translateY(0) scale(.7)}12%{opacity:1;transform:translateY(-8px) scale(1)}75%{opacity:1}100%{opacity:0;transform:translateY(var(--four-point-rise,-110px)) scale(.95)}}
@media(prefers-reduced-motion:reduce){.four-point-bubble{animation:four-point-soft 1000ms ease-out both}}
@keyframes four-point-soft{0%,100%{opacity:0}15%,75%{opacity:1}}

/* Keep the 9x9 online board and bottom actions inside the phone viewport. */
.board-game.four-online-compact .game-status,.board-game.four-online-compact .board-notice-slot:empty,.board-game.four-online-compact #online-notice:empty{display:none}
@media(orientation:portrait){.board-game.four-online-compact{justify-content:flex-start;margin-top:0;gap:6px}.board-game.four-online-compact .board-heading{min-height:0}.board-game.four-online-compact .board-heading h1{margin:0;font-size:18px}.board-game.four-online-compact .four-timer{margin:0}.board-game.four-online-compact .game-bottom{margin-top:0;gap:6px;padding-bottom:env(safe-area-inset-bottom)}.board-game.four-online-compact .game-bottom button{min-height:36px;padding:7px 10px;font-size:14px}}

.board-game.four-local-compact .board-notice-slot:empty{display:none}
.board-game.four-local-compact .four-restart-icon{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:1100;width:42px;height:42px;min-height:42px;padding:0;border-radius:5px;font-size:30px;line-height:1;display:grid;place-items:center}
@media(orientation:portrait){.board-game.four-local-compact{justify-content:flex-start;margin-top:0;gap:6px}.board-game.four-local-compact .board-heading h1{margin:0;font-size:18px}.board-game.four-local-compact .game-status{height:26px;min-height:26px;max-height:26px;flex:0 0 26px;font-size:14px}.board-game.four-local-compact .game-bottom{margin-top:0;gap:6px}.board-game.four-local-compact .game-bottom button:not(.four-restart-icon){min-height:36px;padding:7px 10px;font-size:14px}}

@media(orientation:portrait){.board-game:has(.four-wrap) .four-wrap{flex:none;max-height:none}.board-game:has(.four-wrap) .four-board{aspect-ratio:1;box-sizing:border-box;padding-bottom:10px}.board-game.four-local-compact .game-bottom:has(>button:only-child){display:none}}

.game-cover.localized-neon-cover{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;background:#241335;container-type:inline-size}
.game-cover.localized-neon-cover img{display:block;width:100%;height:100%;object-fit:cover}
.localized-neon-title{position:absolute;top:5%;left:3%;right:3%;text-align:center;font-family:Impact,"Arial Black",sans-serif;font-weight:900;font-size:clamp(12px,10.5cqw,66px);line-height:1.12;white-space:nowrap;text-transform:uppercase;color:#fff2ff;text-shadow:0 2px #9974b3,0 4px #371341,0 0 5px #ea5aff,0 0 12px #c819fb;-webkit-text-stroke:.4px #dcb8ff;pointer-events:none}
.leaderboard-artwork .localized-neon-cover{max-width:100%;margin:auto;border-radius:16px}

/* Approved crystal symbols, used consistently in choices, reveal reels and results. */
.rps-hand.rps-symbol-neon{background-image:url('/rps-neon-symbols-v1.webp');background-size:336% 144%;background-repeat:no-repeat;border-radius:14%;transform:none;rotate:0deg}
.rps-neon-scissors{background-position:4.2% 34%}.rps-neon-rock{background-position:50% 34%}.rps-neon-paper{background-position:95.8% 34%}
.rps-choices button{transition:border-color .16s,box-shadow .16s,transform .16s}.rps-choices button:active{transform:scale(1.04);border-color:#cf8aff;box-shadow:0 0 16px #ac4fff66}
.rps-choices button:focus-visible{outline:2px solid #dcafff;outline-offset:3px}.rps-reveal .rps-winner .rps-symbol-neon{box-shadow:0 0 18px #c18aff88}
@media(prefers-reduced-motion:reduce){.rps-choices button{transition:none}.rps-choices button:active{transform:none}}

/* Alphabet positions stay fixed while the current letter turns red. */
.slf-alphabet{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:7px;width:100%;padding:8px 0}
.slf-alphabet-letter{display:grid;place-items:center;min-height:42px;border:1px solid #675181;border-radius:10px;background:#211b31;color:#eee6ff;font-size:clamp(20px,4vw,30px);font-weight:800;line-height:1.2}
.slf-alphabet-letter.used{color:#a096b2;background:#191524;border-color:#44384f}
.slf-alphabet-letter.active,.slf-alphabet-letter[data-selected="true"]{color:#fff;background:#bd2649;border-color:#ff819c;box-shadow:0 0 12px #ff476b77}
@media(orientation:landscape){.slf-alphabet{grid-template-columns:repeat(13,minmax(0,1fr));gap:5px}.slf-alphabet-letter{min-height:36px}}

/* Approved steel and ruby alphabet panel. */
#main[data-slf-phase="alphabet"] .slf-content{align-items:center;text-align:center;padding:12px 4px;box-sizing:border-box}
#main[data-slf-phase="alphabet"] .slf-content h1{font-family:Georgia,serif;color:#f0edf1;text-shadow:0 2px 3px #0009;border-bottom:1px solid #a86b7e55;padding-bottom:12px}
.slf-alphabet{grid-template-columns:repeat(18,minmax(0,1fr));gap:8px;padding:14px 0}
.slf-alphabet-letter{grid-column:span 2;min-height:52px;aspect-ratio:.86;border:1px solid #c8c9cf;border-radius:10px;background:repeating-linear-gradient(135deg,#ffffff04 0 1px,transparent 1px 3px),linear-gradient(145deg,#494b51,#24252b 40%,#0e0f14);color:#f3f1f6;font-family:Georgia,serif;font-size:clamp(22px,4.4vw,38px);text-shadow:0 2px 3px #000;box-shadow:inset 0 0 0 2px #ffffff16,inset 0 2px 2px #ffffff66,inset 0 -3px 4px #0009,0 3px 6px #0006}
.slf-alphabet-letter:nth-child(19){grid-column:2/span 2}
.slf-alphabet-letter.used{background:linear-gradient(145deg,#292b32,#121319);color:#817d8d;border-color:#64616d;box-shadow:inset 0 1px 2px #fff2,inset 0 -2px 3px #0007}
.slf-alphabet-letter.active,.slf-alphabet-letter[data-selected="true"]{background:repeating-linear-gradient(135deg,#ffffff04 0 1px,transparent 1px 3px),linear-gradient(145deg,#ff263f,#b60020 50%,#570013);color:#fff;border-color:#ffbac4;box-shadow:inset 0 0 0 2px #ff5e75,inset 0 3px 3px #fff8,inset 0 -3px 4px #45000a,0 0 7px #ff153b,0 0 17px #ff153b66}
#main[data-slf-phase="alphabet"] [data-slf="alphabet-stop"]{width:min(100%,400px);min-height:52px;border-radius:16px;border:1px solid #ff9bad;background:linear-gradient(145deg,#eb294b,#a4082a 55%,#550b24);color:#fff;font-size:22px;font-family:Georgia,serif;font-weight:800;box-shadow:inset 0 0 0 2px #ff527144,inset 0 2px 3px #fff5,0 0 14px #ec21443b}
@media(orientation:landscape){.slf-alphabet{grid-template-columns:repeat(13,minmax(0,1fr));gap:6px;padding:6px 0}.slf-alphabet-letter,.slf-alphabet-letter:nth-child(19){grid-column:auto;min-height:36px;aspect-ratio:auto;font-size:26px}#main[data-slf-phase="alphabet"] .slf-content{padding:4px}#main[data-slf-phase="alphabet"] .slf-content h1{padding-bottom:4px}}

.slf-stopped-letter{font:800 48px Georgia,serif;color:#fff;text-shadow:0 0 12px #ff375c}

.slf-online-cover{position:relative}.slf-online-badge{position:absolute;right:7px;bottom:7px;max-width:90%;padding:5px 8px;border-radius:7px;background:#21162ee8;border:1px solid #baa1e3;color:#fff;font:700 clamp(10px,2.6vw,14px)/1.2 Arial,sans-serif;text-align:right;box-shadow:0 2px 5px #0008}.lobby-game-tile .slf-online-badge{font-size:10px;right:4px;bottom:4px;padding:3px 4px}

/* Steel input cards, matching the alphabet selector. */
#main[data-slf-phase="slf-entry"] .slf-content{gap:9px;padding:6px 2px;box-sizing:border-box}
#main[data-slf-phase="slf-entry"] .slf-entry-title{font:700 clamp(20px,4.8vw,30px)/1.15 Georgia,serif;color:#eee9f1;text-align:center}
.slf-entry-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.slf-entry-letter{display:grid;place-items:center;width:54px;height:54px;border-radius:10px;border:1px solid #ffc1ce;background:linear-gradient(145deg,#ba2943,#530818);box-shadow:inset 0 0 0 2px #ee506955,inset 0 2px 2px #fff4; font:800 38px Georgia,serif;color:#fff;text-shadow:0 2px 3px #000}
#main[data-slf-phase="slf-entry"] .slf-content>h1:not(.slf-entry-title){font-size:16px;color:#b9afc6}
#slf-form .slf-fields{grid-template-columns:1fr;gap:8px}
#slf-form .slf-entry-card{display:grid;grid-template-columns:34px minmax(0,1fr) 22px;gap:9px;align-items:center;padding:8px 10px;border:1px solid #95929d;border-radius:12px;background:repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 3px),linear-gradient(135deg,#33343b,#17181f);box-shadow:inset 0 1px 2px #fff3,0 2px 5px #0004}
.slf-category-icon{font-size:26px;text-align:center;filter:grayscale(1);color:#e6e5eb;text-shadow:0 2px 2px #000}
.slf-entry-field{min-width:0}.slf-category-name{display:block;color:#dfd8e9;font-size:14px;margin-bottom:4px}
#slf-form .slf-entry-card input{margin:0;padding:8px 10px;min-height:38px;border-radius:8px;border:1px solid #78737f;background:linear-gradient(135deg,#0f1015,#1b1c22);color:#fff;font-size:16px;box-shadow:inset 0 2px 3px #0005}
#slf-form .slf-entry-card:focus-within{border-color:#ff899f;box-shadow:inset 0 1px 2px #fff3,0 0 9px #f5224c55}
#slf-form .slf-entry-card input:focus{outline:1px solid #ff5576;border-color:#ff5576;box-shadow:0 0 7px #f5224c55}
.slf-filled-mark{visibility:hidden;color:#9bdf92;font-size:22px}.slf-entry-card.filled .slf-filled-mark{visibility:visible}
#slf-form .slf-entry-button{margin-top:10px;border-radius:14px;border:1px solid #ff9eb2;background:linear-gradient(145deg,#d42c4c,#880d2b 60%,#540a22);color:#fff;font:700 20px Georgia,serif;min-height:48px;box-shadow:inset 0 2px 2px #fff4,0 0 9px #d42c4c33}
@media(orientation:landscape){#slf-form .slf-fields{grid-template-columns:repeat(3,minmax(0,1fr))}#slf-form .slf-entry-card{grid-template-columns:24px minmax(0,1fr) 16px;padding:6px;gap:5px}.slf-category-icon{font-size:21px}.slf-entry-letter{width:40px;height:40px;font-size:28px}}
/* Compact word entry on portrait phones: preserve 16px inputs and every category. */
@media(max-width:600px) and (orientation:portrait){
 #main[data-slf-phase="slf-entry"] .slf-content{gap:5px;padding:2px 0;flex:0 0 auto;margin:0 auto}
 #main[data-slf-phase="slf-entry"] .slf-entry-title{font-size:20px}
 .slf-entry-heading{gap:6px}.slf-entry-letter{width:35px;height:35px;font-size:27px;border-radius:7px}
 #main[data-slf-phase="slf-entry"] .slf-countdown{padding:4px 6px;font-size:14px}
 #main[data-slf-phase="slf-entry"] .slf-content>h1:not(.slf-entry-title){font-size:14px;line-height:1.2}
 #slf-form .slf-fields{gap:5px;margin-bottom:4px}
 #slf-form .slf-entry-card{grid-template-columns:23px minmax(0,1fr) 18px;gap:5px;padding:5px 7px;border-radius:9px}
 .slf-category-icon{font-size:20px}
 .slf-entry-field{display:grid;grid-template-columns:70px minmax(0,1fr);gap:5px;align-items:center}
 .slf-category-name{font-size:14px;margin:0;overflow-wrap:anywhere}
 #slf-form .slf-entry-card input{min-height:36px;height:36px;padding:5px 7px;font-size:16px;box-sizing:border-box}
 .slf-filled-mark{font-size:18px}
 #main[data-slf-phase="slf-entry"] .slf-content form>small{font-size:12px;line-height:1.2;margin:2px 0}
 #slf-form .slf-entry-button{min-height:40px;padding:7px 10px;margin-top:5px;font-size:18px}
 #main[data-slf-phase="slf-entry"] .game-bottom{gap:5px;margin-top:5px}
 #main[data-slf-phase="slf-entry"] .game-bottom button{min-height:36px;padding:6px 8px;font-size:12px}
 #main[data-slf-phase="slf-entry"] #online-notice:empty{display:none}
}

/* Quiz show studio, with readable opaque question and answer panels. */
.quiz-show{position:relative;isolation:isolate;padding:12px;border-radius:20px;box-sizing:border-box;background:#0b071b url('/quiz-show-stage-v1.webp') center top/cover no-repeat}
.quiz-show::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#09071a12,#09071a55 24%,#09071a99 65%,#09071a44);border-radius:inherit;pointer-events:none}
.quiz-show .quiz-content{gap:12px;margin:0 auto;flex:1;justify-content:center;padding-top:clamp(20px,5vh,60px)}
.quiz-show .quiz-heading h1{font-family:Georgia,serif;color:#ffe3a2;text-shadow:0 2px 3px #000,0 0 12px #b4864933;font-size:clamp(22px,5vw,32px)}
.quiz-show .tag{background:#100b28e6;border-color:#b69766;color:#f6dfb7}
.quiz-show .quiz-content .quiz-question{width:100%;box-sizing:border-box;margin:0;padding:20px 16px;border:2px solid #c6a16d;border-radius:18px;background:linear-gradient(145deg,#22153af5,#080b22f5);color:#fff1d5;font-family:Georgia,serif;box-shadow:inset 0 0 0 3px #fff0b412,0 0 12px #d0a16522}
.quiz-show .quiz-level{color:#f7ddb0!important;margin:0}.quiz-show .quiz-online-timebar{margin:0;width:100%}
.quiz-show .quiz-answers{grid-template-columns:1fr;gap:9px}
.quiz-show .quiz-answer{min-height:60px;padding:10px 13px;border-radius:14px;border:1px solid #c5a472;background:linear-gradient(145deg,#372052f5,#0b0c26f5);color:#fff0d9;box-shadow:inset 0 0 0 2px #eccd8822,inset 0 1px 2px #fff2,0 3px 6px #0006}
.quiz-show .quiz-answer strong{font-size:17px}.quiz-show .quiz-letter{width:35px;height:35px;border-radius:50%;border:1px solid #bda0e0;background:#090b21;color:#f5dfb7;box-shadow:0 0 8px #aa77dc33;font:700 23px Georgia,serif}
.quiz-show .quiz-answer.correct{background:linear-gradient(145deg,#0a6550,#072923);border-color:#99eec3;box-shadow:inset 0 0 0 2px #6edbae44,0 0 12px #28d49b55}
.quiz-show .quiz-answer.incorrect{background:linear-gradient(145deg,#7d1e3c,#2f0d24);border-color:#ff9dac}
.quiz-show .quiz-answer.quiz-submitted{border-color:#debc7c;background:linear-gradient(145deg,#5d3c23,#22172b)}
.quiz-show .quiz-feedback{color:#f3dfbd!important;font-size:14px}.quiz-show .quiz-ladder>span{background:#15102bea;border-color:#857051}.quiz-show #online-notice:empty{display:none}
@media(max-width:600px) and (orientation:portrait){.quiz-show{padding:8px;gap:6px}.quiz-show .quiz-content{gap:7px;padding-top:18px}.quiz-show .quiz-heading h1{font-size:22px}.quiz-show .quiz-heading{gap:6px}.quiz-show .quiz-content .quiz-question{padding:12px;font-size:20px}.quiz-show .quiz-answer{min-height:50px;padding:7px 10px}.quiz-show .quiz-answer strong{font-size:16px}.quiz-show .quiz-answers{gap:6px}.quiz-show .quiz-letter{width:30px;height:30px;font-size:20px}.quiz-show .quiz-feedback{min-height:32px;line-height:1.3}.quiz-show .game-bottom{margin-top:4px;gap:5px}.quiz-show .game-bottom button{min-height:36px;padding:6px 8px;font-size:12px}}
@media(orientation:landscape){.quiz-show .quiz-content{padding-top:8px;gap:7px}.quiz-show .quiz-answers{grid-template-columns:1fr 1fr}.quiz-show .quiz-content .quiz-question{padding:10px 14px}.quiz-show .quiz-answer{min-height:50px}}

.quiz-show .quiz-answer{position:relative;isolation:isolate;overflow:hidden}
.quiz-show .quiz-answer.quiz-pending{border-color:#ffba67;background:linear-gradient(145deg,#372052f5,#0b0c26f5)}
.quiz-show .quiz-answer.quiz-pending::before,.quiz-show .quiz-answer.correct::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:rgb(255 140 0 / 50%)}
.quiz-show .quiz-answer.correct{background:linear-gradient(145deg,#372052f5,#0b0c26f5)}
.quiz-show .quiz-answer.correct::before{background:rgb(20 190 100 / 50%)}
.quiz-reveal-click{animation:quiz-lock-glow 650ms ease-out both}
@keyframes quiz-lock-glow{0%{transform:scale(.97);box-shadow:inset 0 0 0 4px #cfffe9;filter:brightness(1.3)}25%{transform:scale(1);box-shadow:inset 0 0 0 2px #cfffe9}55%{box-shadow:0 0 7px #46efa2}100%{transform:scale(1);box-shadow:inset 0 0 0 2px #6edbae44,0 0 18px #28d49b88}}
@media(prefers-reduced-motion:reduce){.quiz-reveal-click{animation:none;box-shadow:0 0 12px #28d49b77}}

.quiz-reveal-click::after{content:'';position:absolute;top:0;left:0;width:7px;height:7px;border-radius:50%;background:#e8fff4;box-shadow:0 0 5px #fff,0 0 12px #4effb0;offset-path:inset(3px round 12px);offset-distance:0%;animation:quiz-border-light 1.6s linear forwards;pointer-events:none}
@keyframes quiz-border-light{0%{offset-distance:0%;opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}
@media(prefers-reduced-motion:reduce){.quiz-reveal-click::after{display:none}}

/* Local and computer Mill: keep the board and actions close to the turn label. */
.board-game.mill-local-compact .board-notice-slot:empty{display:none}
.board-game.mill-local-compact .game-bottom [data-online="mode"]{display:none}
@media(orientation:portrait){
 .board-game.mill-local-compact{justify-content:flex-start;margin-top:0;gap:6px}
 .board-game.mill-local-compact .game-status{height:26px;min-height:26px;max-height:26px;flex:0 0 26px;font-size:14px}
 .board-game.mill-local-compact .four-timer{margin:0;flex-shrink:0}
 .board-game.mill-local-compact .board-instruction{height:24px;min-height:24px;max-height:24px;flex:0 0 24px}
 .board-game.mill-local-compact .mill-board{flex-shrink:0}
 .board-game.mill-local-compact .game-bottom{margin-top:0;gap:6px;padding-bottom:max(8px,env(safe-area-inset-bottom));flex-shrink:0}
 .board-game.mill-local-compact .game-bottom button{min-height:36px;padding:7px 10px;font-size:14px}
}

/* Hide the Mill title only while a board is displayed; retain Rules. */
#main[data-game="mill"] .board-game:has(.mill-board) .board-heading h1{display:none}
#main[data-game="mill"] .board-game:has(.mill-board) .board-heading{justify-content:flex-end}
/* Rank covers share one bounded size, including plain localized artwork. */
#leaderboard-dialog .leaderboard-artwork>.game-cover:has(>img[src*="game-codebreaker-"]),#leaderboard-dialog .leaderboard-artwork>.game-cover:has(>img[src*="game-rps-"]){display:block;width:100%;max-width:100%;height:auto;aspect-ratio:1;margin:0 auto;border-radius:16px;overflow:hidden}
#leaderboard-dialog .leaderboard-artwork>.game-cover>img[src*="game-codebreaker-"],#leaderboard-dialog .leaderboard-artwork>.game-cover>img[src*="game-rps-"]{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}

/* Online Mill uses the same compact spacing as local play. */
#main[data-game="mill"] .board-game:has(.mill-board) .board-notice-slot:empty{display:none}
@media(orientation:portrait){
 #main[data-game="mill"] .board-game:has(.mill-board){justify-content:flex-start;margin-top:0;gap:6px}
 #main[data-game="mill"] .board-game:has(.mill-board) .game-status{height:26px;min-height:26px;max-height:26px;flex:0 0 26px;font-size:14px}
 #main[data-game="mill"] .board-game:has(.mill-board) .four-timer{margin:0;flex-shrink:0}
 #main[data-game="mill"] .board-game:has(.mill-board) .board-instruction{height:24px;min-height:24px;max-height:24px;flex:0 0 24px}
 #main[data-game="mill"] .board-game:has(.mill-board) .mill-board{flex-shrink:0}
 #main[data-game="mill"] .board-game:has(.mill-board) .game-bottom{margin-top:0;gap:6px;flex-wrap:wrap;padding-bottom:max(8px,env(safe-area-inset-bottom));flex-shrink:0}
 #main[data-game="mill"] .board-game:has(.mill-board) .game-bottom button{min-height:36px;padding:7px 10px;font-size:14px}
}

/* Fantasy Memory cards match the fox, panda and owl cover artwork. */
.memory-game:has(.memory-board){background:linear-gradient(#120b1b26,#120b1b26),url('/memory-fantasy-background-v1.webp') center/cover no-repeat,#151020;border-radius:18px;box-shadow:inset 0 0 0 1px #8860a53d}
.memory-game:has(.memory-board) .memory-content>h1{color:#ffe5a0;text-shadow:0 2px 8px #9b5a2944}
.memory-game:has(.memory-board) .memory-scores>div{background:linear-gradient(145deg,#312043,#191124);border-color:#a67b4244}
.memory-game:has(.memory-board) .memory-scores>div.active{border-color:#e3c27b}
.memory-card .memory-back,.memory-card .memory-face{border:1px solid #d6ac5e;border-radius:14%;overflow:hidden;box-shadow:inset 0 0 0 1px #f9dfa633,0 2px 5px #0006}
.memory-card .memory-back{background:linear-gradient(rgba(0,0,0,.75),rgba(0,0,0,.75)),url('/memory-fantasy-back-v1.webp') center/cover no-repeat;background-color:#281441}
.memory-card .memory-back::after{display:none}
.memory-card .memory-face{background:#27143b;padding:0}
.memory-card .memory-face img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.memory-card.matched{opacity:1}
.memory-card.matched .memory-face{border-color:#70e598;box-shadow:inset 0 0 0 2px #70e598,0 0 9px #42d977aa}
.memory-card.matched-opponent .memory-face{border-color:#ff6a8b;box-shadow:inset 0 0 0 2px #ff6a8b,0 0 9px #ef4168aa}
.memory-card.matched .memory-face::after{content:'';position:absolute;inset:0;background:#43d77726;box-shadow:inset 0 0 0 2px #70e598;border-radius:inherit;pointer-events:none}
.memory-card.matched-opponent .memory-face::after{background:#ef416826;box-shadow:inset 0 0 0 2px #ff6a8b}

/* Tierblick: animal picture quiz, shared Quizrunde answer animations. */
.animal-cover{position:relative;display:block!important;aspect-ratio:1;overflow:hidden;border-radius:inherit;background:#160e28}
.animal-cover>img{width:100%;height:100%;object-fit:cover;display:block}
.animal-cover-brand,.animal-cover-title{position:absolute;left:3%;right:3%;text-align:center;color:#ffe5a0;text-shadow:0 2px 2px #130519,0 0 12px #d7922855;font-family:Georgia,serif}
.animal-cover-brand{top:3%;font-size:clamp(8px,1.5vw,15px);letter-spacing:.4em}
.animal-cover-title{top:10%;font-size:clamp(20px,3.8vw,44px);font-weight:900;line-height:1.08;text-transform:uppercase;overflow-wrap:normal}
.animal-quiz.quiz-show{background:#120b22 url('/animal-stage.webp') center/cover no-repeat;min-height:0;gap:5px}
.animal-quiz.quiz-show .quiz-content{padding-top:0;gap:6px;justify-content:flex-start;min-height:0;max-width:650px}
.animal-quiz .animal-picture{margin:0;width:min(100%,320px);flex-shrink:1;min-height:100px;aspect-ratio:1;overflow:hidden;border:2px solid #d8b373;border-radius:18px;box-shadow:inset 0 0 0 3px #ffd98022,0 0 18px #ce963e22;background:#20142f}
.animal-quiz .animal-picture img{display:block;width:100%;height:100%;object-fit:contain}
.animal-quiz.quiz-show .quiz-answers{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.animal-quiz.quiz-show .quiz-answer{min-height:54px;padding:8px;gap:7px}
.animal-quiz.quiz-show .quiz-answer strong{font-size:clamp(12px,3.2vw,16px)}
.animal-quiz.quiz-show .quiz-content .quiz-question{padding:9px;font-size:clamp(17px,3.8vw,24px)}
.animal-quiz.quiz-show .quiz-heading h1{font-size:clamp(20px,4.8vw,28px)}
.animal-quiz.quiz-show .quiz-feedback{margin:0;min-height:0;font-size:12px;line-height:1.3}
.animal-quiz .quiz-level{margin:0}.animal-quiz .quiz-ladder>span{height:22px}
.animal-quiz .game-bottom{margin:0;gap:5px;flex-wrap:wrap}.animal-quiz .game-bottom button{min-height:32px;padding:5px 8px;font-size:12px}
.animal-quiz .quiz-content.panel{background:linear-gradient(#160e26d9,#160e26ed),url('/animal-stage.webp') center/cover;color:#ffe5b4}
.animal-quiz .quiz-content.panel h1{color:#ffe5a0;font-family:Georgia,serif}.animal-quiz .quiz-themes{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(orientation:portrait){.animal-quiz .animal-picture{width:min(100%,max(160px,calc(100dvh - 510px)),320px)}}
@media(orientation:landscape){.animal-quiz.quiz-show .quiz-content:has(.animal-picture){display:grid;grid-template-columns:minmax(140px,.8fr) minmax(240px,1.2fr);align-content:center;max-width:950px}.animal-quiz .quiz-heading,.animal-quiz .quiz-ladder,.animal-quiz .quiz-level,.animal-quiz .quiz-online-timebar{grid-column:1/-1}.animal-quiz .animal-picture{grid-column:1;grid-row:4/span 3;max-height:calc(100dvh - 200px);width:auto;justify-self:center}.animal-quiz .quiz-question,.animal-quiz .quiz-answers,.animal-quiz .quiz-feedback{grid-column:2}.animal-quiz .quiz-answer{min-height:45px}.animal-quiz .quiz-letter{width:26px;height:26px;font-size:18px}}
@media(prefers-reduced-motion:reduce){.animal-quiz .quiz-reveal-click{animation:none}.animal-quiz .quiz-answer.correct::after{animation:none}}
.animal-run-stats{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid #c6a16d;border-radius:12px;background:#170d2ad9;color:#ffe3a2;font-size:14px;font-variant-numeric:tabular-nums}.animal-out{width:100%;padding:7px;box-sizing:border-box;border:1px solid #e7b48d;border-radius:10px;background:#41283cdd;color:#ffe4c4!important;font-size:12px;line-height:1.3;margin:0}.animal-quiz .quiz-content>small{color:#d8cbb8;line-height:1.4}
@media(orientation:landscape){.animal-quiz .animal-run-stats,.animal-quiz .animal-out{grid-column:1/-1}.animal-quiz .quiz-content:has(.animal-picture) .animal-picture{grid-row:auto/span 3}}

/* Flaggenblick uses Tierblick's square picture layout and shared answer effects. */
.flag-cover{display:block;aspect-ratio:1;overflow:hidden;border-radius:inherit;background:#160e28}
.flag-cover img{display:block;width:100%;height:100%;object-fit:cover}
.flag-start-cover{width:min(100%,240px);aspect-ratio:1;margin-inline:auto;border:1px solid #d8b373;border-radius:18px;overflow:hidden;box-shadow:0 0 20px #cc974633}
.flag-quiz.quiz-show{background:linear-gradient(#120b22c9,#120b22e8),url('/flag-stage-v1.webp') center/cover no-repeat}
.flag-quiz .quiz-content.panel{background:linear-gradient(#160e26dd,#160e26ed),url('/flag-stage-v1.webp') center/cover;color:#ffe5b4;gap:10px}
.flag-quiz .quiz-heading h1,.flag-quiz .quiz-content.panel h1{color:#ffe5a0;font-family:Georgia,serif}
.flag-quiz.quiz-show .quiz-answer strong{font-size:clamp(14px,3.2vw,16px);overflow-wrap:anywhere}
.flag-quiz .quiz-content>small{font-size:14px}
.flag-quiz .quiz-content.panel h1{margin:0}
@media(max-height:760px){.flag-start-cover{width:160px}.flag-quiz .quiz-content.panel{padding:12px;gap:6px}}
@media(orientation:landscape){.flag-start-cover{width:140px}.flag-quiz .quiz-content.panel{display:grid;grid-template-columns:150px minmax(220px,1fr);max-width:800px}.flag-start-cover{grid-column:1;grid-row:1/span 6}.flag-quiz .quiz-content.panel>h1,.flag-quiz .quiz-content.panel>p,.flag-quiz .quiz-content.panel>small,.flag-quiz .quiz-content.panel>button,.flag-quiz .quiz-content.panel>.animal-run-stats{grid-column:2}}
.flag-quiz .flag-picture{padding:clamp(14px,3vw,32px);box-sizing:border-box;background:#20142f url('/flag-stage-v1.webp') center/cover no-repeat}
.flag-quiz .flag-picture img{object-fit:contain;filter:drop-shadow(0 7px 9px #090212aa);pointer-events:none;user-select:none}
/* Online Sudoku enables submission only for a complete, correct board. */
.sudoku-online .sud-submit:disabled{background:#3b3b45;color:#a5a5b2;border:1px solid #5b5b68;opacity:1;cursor:default;box-shadow:none}
.sudoku-online .sud-submit.ready:not(:disabled){background:#219b50;color:#fff;border:1px solid #74e79c;box-shadow:0 0 12px #42d97744;font-weight:800}
.sudoku-online .sud-notice{height:auto;min-height:40px;max-height:none;font-size:14px;line-height:1.3}
.sudoku-online #online-notice{margin:0;font-size:14px;min-height:18px}
.sudoku-online .game-bottom{flex-wrap:wrap;gap:6px}
.sudoku-online .game-bottom button{min-height:36px;padding:7px 10px;font-size:14px}

.tet-rotation{position:fixed;inset:0;z-index:10000;background:#151020;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;text-align:center}.tet-rotation[hidden]{display:none}.tet-rotation-phone{width:42px;height:76px;border:3px solid #dfff87;border-radius:9px;animation:tet-rotate-portrait 2s ease-in-out infinite}.tet-rotation-home{position:absolute;top:16px;left:16px}@keyframes tet-rotate-portrait{0%,20%{transform:rotate(90deg)}70%,100%{transform:rotate(0)}}@media(prefers-reduced-motion:reduce){.tet-rotation-phone{animation:none}}

.rps-waiting-choices button:disabled{opacity:1;cursor:default}.rps-waiting-choices button.rps-selected{border-color:#dcafff;box-shadow:0 0 16px #ac4fff66;background:#38204e}

.slf-cell-points.slf-edit-points{padding:0;border:0;min-width:32px;min-height:32px;width:32px;height:32px;font-size:14px;cursor:pointer}.slf-edit-points:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Keep all Drei Gipfel setup controls inside the portrait viewport. */
@media (orientation:portrait) and (max-width:760px){
 .towers-game:has(.tower-setup .tower-card-style-picker){overflow-y:auto;overscroll-behavior-y:contain;padding:12px 14px calc(20px + env(safe-area-inset-bottom,0px));}
 .tower-setup:has(.tower-card-style-picker){margin:0 auto;gap:8px;flex-shrink:0;padding-top:16px;}
 .tower-setup:has(.tower-card-style-picker) h1{font-size:30px;}
 .tower-setup:has(.tower-card-style-picker) p{font-size:15px;line-height:1.3;}
 .tower-setup:has(.tower-card-style-picker) [data-offline-status]{font-size:14px;line-height:1.25;}
 .tower-setup .tower-card-style-picker{top:0;margin-top:0;}
 .tower-setup .tower-theme-label{margin-bottom:4px;}
}

/* Share the first portrait setup row between title and sound control. */
@media (orientation:portrait) and (max-width:760px){
 .towers-game:has(.tower-setup .tower-card-style-picker)>.tower-audio-controls{position:absolute;top:12px;right:14px;z-index:2;}
 .tower-setup:has(.tower-card-style-picker){padding-top:0;}
 .tower-setup:has(.tower-card-style-picker)>h1{box-sizing:border-box;width:100%;min-height:44px;line-height:44px;padding:0 44px;}
}

.game-guide{flex:0 0 auto;margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-size:14px;line-height:1.6;color:var(--muted)}.game-guide summary{cursor:pointer;font-weight:700;color:var(--ink);min-height:24px}.game-guide h2{font-size:20px;margin:16px 0 10px}.game-guide h3{font-size:17px;margin:16px 0 8px}.game-guide p{margin:10px 0}.game-guide a{color:var(--lime)}.game-guide ul{padding-left:22px}.game-guide-links{columns:2;column-gap:24px}body.game-active .game-guide{display:none}@media(max-width:440px){.game-guide-links{columns:1}}

.fill-start-help{font-size:14px;line-height:1.4;color:var(--muted);max-width:240px}

/* Fifteen-column masonry board; no landing projection. */
.patternfall-game .tet-board{grid-template-columns:repeat(15,1fr);background:#211c18;border-color:#ad8d6b;border-radius:12px}
.patternfall-game .tet-cell.filled,.patternfall-game .tet-preview i[style*="--block"],.patternfall-game .tet-choice-shape i[style*="--block"]{border-radius:1px;background-color:var(--block);background-image:linear-gradient(0deg,#49352533,transparent 50%);border:1px solid #4c382a;box-shadow:inset 0 1px #ebd7bb55,inset 0 -1px #36251855}
.patternfall-game .tet-cell.filled[data-tet-active="true"]{outline:1px solid #efd5ad;outline-offset:-1px;box-shadow:inset 0 1px #ffe8c344}
.patternfall-game .tet-color-trail::before,.patternfall-game .tet-color-trail::after{display:none}

.game-cover.masonry-cover{display:block;position:relative;aspect-ratio:1;width:100%;overflow:hidden;background:#211710}.game-cover.masonry-cover img{display:block;width:100%;height:100%;object-fit:contain}.leaderboard-artwork .masonry-cover{max-width:100%;border-radius:16px;margin:auto}

/* Expandable rules at the bottom of the home guide. */
.rules-overview{margin-top:28px}.game-guide .rules-game,.game-guide .rules-mode{margin:10px 0;border:1px solid #51445f;border-radius:12px;background:#221c2f;overflow:hidden}.game-guide .rules-game>summary,.game-guide .rules-mode>summary{padding:14px 16px;font-size:1rem;cursor:pointer;min-height:44px;box-sizing:border-box}.game-guide .rules-game>summary{font-weight:700}.game-guide .rules-game-body{padding:0 16px 12px}.game-guide .rules-mode{background:#181420}.game-guide .rules-mode>p{padding:0 16px 12px;line-height:1.6}.game-guide .rules-game summary:focus-visible,.game-guide .rules-mode summary:focus-visible{outline:2px solid #dbfa84;outline-offset:-3px}.rules-game-body h3{font-size:1rem;margin:18px 0 8px}

.rps-game .rps-run-ended{color:#ff5c70}

.solo-board-clock{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 18px;font-size:14px;margin:8px 0}.solo-board-clock strong{font-variant-numeric:tabular-nums;color:var(--lime)}
#leaderboard-dialog .leaderboard-artwork>.game-cover:has(>img[src*="game-chess-"]),#leaderboard-dialog .leaderboard-artwork>.game-cover:has(>img[src*="game-mill-"]){display:block;width:100%;height:auto;aspect-ratio:1;margin:0 auto;border-radius:16px;overflow:hidden}
#leaderboard-dialog .leaderboard-artwork>.game-cover>img[src*="game-chess-"],#leaderboard-dialog .leaderboard-artwork>.game-cover>img[src*="game-mill-"]{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}

.account-tabs{display:flex;gap:10px;margin:16px 0}.account-tabs button{flex:1}.account-password-form{display:grid;gap:14px;margin:18px 0}.account-password-form>label{display:grid;gap:7px}.account-password-form input:not([type=checkbox]),.account-recovery-code{width:100%;min-width:0;box-sizing:border-box;padding:12px;border:1px solid #64718b;border-radius:10px;background:#111827;color:#fff;font:inherit}.account-password-form>.profile-rank-choice{display:flex}.account-code-check{display:flex;gap:10px;align-items:flex-start;margin:20px 0}.account-recovery-code{font-size:15px;letter-spacing:.04em}.account-password-form [role=status]{color:#ff8294;margin:0}
/* Kartenkette reuses TriPeaks faces, stock backs, theme and point bubbles. */
.chain-game{max-width:1100px;overflow:auto;gap:8px}.chain-game .tower-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.chain-game .tower-heading h1{font-size:24px}.chain-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(4px,1vw,14px);width:100%;min-height:0;aspect-ratio:2.9}.chain-column{position:relative;min-width:0;height:100%}.chain-game .chain-column>.tower-card{position:absolute;left:0;width:100%;height:52%;margin:0;padding:0;opacity:1;touch-action:manipulation;overflow:hidden}.chain-free{outline:2px solid #d4bd7b;outline-offset:0}.chain-covered{filter:brightness(.92)}.chain-tray{display:flex;gap:18px;justify-content:center;align-items:center;padding:10px}.chain-tray .tower-stock,.chain-tray .waste-card{position:relative;width:clamp(48px,8vw,80px);height:clamp(70px,11.52vw,115px);padding:0}.chain-tray .tower-stock{overflow:visible}.chain-tray .tower-stock small{position:absolute;top:100%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:14px}.chain-tray .tower-waste{display:flex;flex-direction:column;align-items:center}.chain-result{text-align:center;padding:12px;border:1px solid #b7a56c;border-radius:12px}.chain-standings{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.chain-standings span{background:#0003;border-radius:8px;padding:5px 10px}.chain-game .game-bottom{margin-top:12px}.chain-status{text-align:center}.chain-game .tower-face{height:100%;width:100%}.chain-game .tower-card-art{height:100%;width:100%}@media(orientation:landscape) and (max-height:550px){.chain-game{padding:8px;gap:4px}.chain-game .tower-heading h1{font-size:18px}.chain-game .tower-stats strong{font-size:18px}.chain-board{aspect-ratio:4.5;flex:1;min-height:135px}.chain-game .chain-column>.tower-card{height:52%}.chain-tray{gap:12px;padding:4px}.chain-tray .tower-stock,.chain-tray .waste-card{width:36px;height:52px}.chain-tray .tower-stock small{font-size:12px}.chain-game .game-bottom{margin-top:8px}.chain-game .game-bottom button{min-height:30px;padding:5px 12px}.chain-result{position:absolute;inset:auto 15% 20%;z-index:20;background:#222329f5}.chain-game .tower-stats>span{font-size:14px}}
@media(orientation:portrait){.chain-game{padding:10px;justify-content:center}.chain-board{aspect-ratio:1.85;margin:12px 0}.chain-game .chain-column>.tower-card{height:52%}.chain-game .tower-stats>span{font-size:14px}.chain-game .tower-stats strong{font-size:20px}.chain-tray{padding-bottom:24px}}
@media(orientation:landscape) and (max-height:550px){.chain-game .chain-column>.tower-card{width:auto;max-width:100%;height:52%;aspect-ratio:100/144;left:50%;transform:translateX(-50%)}}
/* Desktop: centre the larger draw and discard cards below all seven columns. */
@media(min-width:900px) and (min-height:551px){
 body.game-active .towers-game.chain-game{display:flex!important;flex-direction:column;max-width:1500px;gap:12px;overflow:auto}
 body.game-active .chain-game>.tower-heading,body.game-active .chain-game>.tower-stats,body.game-active .chain-game>.chain-board,body.game-active .chain-game>.chain-tray{grid-area:auto!important;width:100%;flex:none}
 body.game-active .chain-game>.chain-board{aspect-ratio:3.5;max-height:none;margin:0}
 body.game-active .chain-game>.chain-tray{display:flex;justify-content:center;align-items:center;gap:32px;align-self:center;margin:12px auto 0;padding:12px 0 32px}
 body.game-active .chain-game .chain-tray .tower-stock,body.game-active .chain-game .chain-tray .waste-card{width:100px;height:144px;min-width:100px;flex:none}
 body.game-active .chain-game .chain-tray .tower-stock>img.tower-back-image{height:100%}
 body.game-active .chain-game .chain-tray .tower-stock small{font-size:16px;top:calc(100% + 6px)}
 body.game-active .chain-game .chain-tray .tower-waste{display:flex;flex-direction:column;gap:6px;font-size:16px}
}
@media(min-width:900px) and (min-height:551px){
 body.game-active .towers-game.chain-game>.chain-board{aspect-ratio:3.1}
 body.game-active .towers-game.chain-game>.tower-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px;max-width:1000px;align-self:center;margin:0 auto 6px;padding:12px 18px;border:1px solid #b7a56c66;border-radius:14px;background:#0002;text-align:center;box-sizing:border-box}
 body.game-active .towers-game.chain-game>.tower-stats>span{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:18px;line-height:1.2}
 body.game-active .towers-game.chain-game>.tower-stats strong{font-size:32px!important;line-height:1.1;font-variant-numeric:tabular-nums}
 body.game-active .towers-game.chain-game>.tower-heading h1{font-size:28px}
 body.game-active .towers-game.chain-game>.tower-audio-controls{position:absolute;top:14px;right:18px}
 body.game-active .towers-game.chain-game>.tower-heading{padding-right:52px;box-sizing:border-box}
}
@media(min-width:900px) and (min-height:551px){
 body.game-active .towers-game.chain-game{container-type:inline-size;--chain-desktop-gap:clamp(4px,1vw,14px)}
 body.game-active .chain-game>.chain-board{gap:var(--chain-desktop-gap)}
 body.game-active .chain-game .chain-tray .tower-stock,body.game-active .chain-game .chain-tray .tower-waste{width:calc((100cqw - 6 * var(--chain-desktop-gap)) / 7);min-width:0;flex:none}
 body.game-active .chain-game .chain-tray .tower-stock,body.game-active .chain-game .chain-tray .waste-card{height:calc(100cqw * .1677419355)}
 body.game-active .chain-game .chain-tray .waste-card{width:100%;min-width:0}
 body.game-active .chain-game>.chain-tray{align-items:flex-start;gap:32px}
 body.game-active .chain-game .chain-tray>span{align-self:center}
}

@media(max-width:899px),(max-height:550px){
 body.game-active .towers-game.chain-game:has(.chain-board){display:flex!important;flex-direction:column;justify-content:center;gap:10px;min-width:0;max-width:100%;overflow-x:hidden;box-sizing:border-box;container-type:inline-size}
 body.game-active .chain-game>.tower-heading,body.game-active .chain-game>.tower-stats,body.game-active .chain-game>.chain-board,body.game-active .chain-game>.chain-tray{grid-area:auto!important;width:100%;min-width:0;box-sizing:border-box;flex:none}
 body.game-active .chain-game>.tower-audio-controls{position:absolute;right:12px;top:12px}
 body.game-active .chain-game>.tower-heading{padding-right:40px}
 body.game-active .chain-game>.tower-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
 body.game-active .chain-game>.chain-board{aspect-ratio:2.55;gap:4px;margin:14px 0;min-height:0}
 body.game-active .chain-game .chain-column>.tower-card{width:100%;height:52%;left:0;transform:none;max-width:100%;border-radius:5px;min-width:0}
 body.game-active .chain-game>.chain-tray{gap:18px;align-items:flex-start;padding:8px 0 30px}
 body.game-active .chain-game .chain-tray .tower-stock,body.game-active .chain-game .chain-tray .tower-waste{width:calc((100cqw - 24px)/7);flex:none;min-width:0}
 body.game-active .chain-game .chain-tray .tower-stock,body.game-active .chain-game .chain-tray .waste-card{height:calc(100cqw * .2039215686)}
 body.game-active .chain-game .chain-tray .waste-card{width:100%}
 body.game-active .chain-game .chain-tray .tower-stock>img.tower-back-image{height:100%}
 body.game-active .chain-game .chain-tray .tower-waste{flex-direction:column}
 body.game-active .chain-game .chain-tray>span{align-self:center;font-size:14px}
 body.game-active .chain-game .chain-tray small{font-size:12px}
}
@media(orientation:landscape) and (max-height:550px){
 body.game-active .chain-game>.chain-board{width:min(100%,calc((100dvh - 170px)*2.55));align-self:center;margin:0}
 body.game-active .chain-game .chain-tray .tower-stock,body.game-active .chain-game .chain-tray .tower-waste{width:36px}
 body.game-active .chain-game .chain-tray .tower-stock,body.game-active .chain-game .chain-tray .waste-card{height:52px}
 body.game-active .towers-game.chain-game:has(.chain-board){gap:4px}
}

#leaderboard-dialog .leaderboard-artwork>.game-cover:has(>img[src*="game-chain-"]){display:block;width:100%;max-width:100%;height:auto;aspect-ratio:1;margin:0 auto;border-radius:16px;overflow:hidden}
#leaderboard-dialog .leaderboard-artwork>.game-cover>img[src*="game-chain-"]{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
/* Phone landscape: make draw/discard readable and reserve their vertical space. */
@media(orientation:landscape) and (max-height:550px) and (pointer:coarse){
 body.game-active .chain-game>.chain-board{width:min(100%,calc((100dvh - 205px)*2.55))}
 body.game-active .chain-game .chain-tray .tower-stock,body.game-active .chain-game .chain-tray .tower-waste{width:52px}
 body.game-active .chain-game .chain-tray .tower-stock,body.game-active .chain-game .chain-tray .waste-card{height:75px}
 body.game-active .chain-game>.chain-tray{gap:28px;padding-top:8px;padding-bottom:24px}
 body.game-active .chain-game .chain-tray .tower-stock small{top:calc(100% + 5px)}
 body.game-active .chain-game .chain-tray .tower-waste{gap:5px}
}

.chain-game .chain-restart-icon{position:fixed;right:auto;z-index:1100;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border:1px solid #bda4ff;background:#211c32ef;color:#eee6ff;border-radius:10px;display:grid;place-items:center;box-shadow:0 4px 20px #0005;touch-action:manipulation}

/* Formenbau grid and controls. */
.builder-game{box-sizing:border-box;width:100%;max-width:950px;height:100%;min-height:0;margin:auto;padding:8px;display:flex;flex-direction:column;align-items:center;gap:8px;color:#f9edc7}.builder-heading{display:flex;align-items:center;justify-content:center;gap:10px;flex:none}.builder-heading h1{margin:0;font-size:21px}.builder-layout{min-height:0;display:block;width:100%;flex:1}.builder-side{display:none}.builder-workspace{height:100%;display:flex;flex-direction:column;align-items:center;gap:8px}.builder-metrics{display:flex;align-items:center;justify-content:space-between;width:var(--builder-width,300px);max-width:100%;gap:10px;flex:none;font-size:14px}.builder-metrics span{display:flex;flex-direction:column}.builder-metrics strong{font-size:20px;font-variant-numeric:tabular-nums}.builder-grid-frame{position:relative;width:var(--builder-width,300px);max-width:100%;min-height:0}.builder-grid{width:100%;display:grid;grid-template-columns:repeat(22,minmax(0,1fr));grid-template-rows:repeat(22,minmax(0,1fr));aspect-ratio:1;gap:1px;padding:5px;background:#211c18;border:2px solid #ad8d6b;border-radius:12px;box-sizing:border-box;touch-action:manipulation}.builder-cell{min-width:0;min-height:0;width:100%;height:100%;padding:0;border:0;border-radius:1px;background:#ffffff08;box-shadow:none}.builder-cell.occupied,.builder-mini i.filled{background:linear-gradient(145deg,color-mix(in srgb,var(--brick),#fff 20%),var(--brick) 50%,color-mix(in srgb,var(--brick),#000 20%));box-shadow:inset 1px 1px #fff5,inset -1px -1px #0005}.builder-cell.selected{outline:1px solid #ffe6a3;outline-offset:-1px}.builder-cell.ghost.valid{background:#76b575;outline:1px solid #c2fcb4;outline-offset:-1px}.builder-cell.ghost.invalid{background:#b84650}.builder-mini{display:grid!important;grid-template-columns:repeat(var(--mini-cols),minmax(0,1fr));gap:1px;width:100%;line-height:0}.builder-mini i{display:block;aspect-ratio:1;min-width:0;min-height:0;background:transparent}.builder-preview-icon{flex:0 0 42px;width:42px;height:48px;padding:5px;background:#33281f;border:1px solid #d3b16e;border-radius:7px;display:flex;align-items:center;justify-content:center}.builder-preview-icon .builder-mini{width:28px}.builder-preview-icon.intro-hidden{visibility:hidden}.builder-preview-overlay{display:none;position:absolute;inset:0;z-index:5;background:#181514;border:2px solid #b99b62;border-radius:12px;box-sizing:border-box;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:40px 18px}.builder-preview-overlay.open{display:flex}.builder-preview-overlay>.builder-mini{width:85%;max-width:250px}.builder-preview-overlay>span{text-align:center;font-size:14px;line-height:1.3}.builder-preview-close{position:absolute;top:6px;right:6px;width:36px;height:36px;min-height:36px;padding:0;background:#392c24;border:1px solid #b99b62;color:#fff;font-size:26px;border-radius:8px}.builder-preview-close[hidden]{display:none}.builder-preview-overlay.departing{display:flex;pointer-events:none;transform-origin:top left;animation:builder-preview-depart .65s ease-in-out forwards}.builder-preview-overlay.departing>span,.builder-preview-overlay.departing>strong{visibility:hidden}@keyframes builder-preview-depart{to{transform:translateY(-55px) scale(.08);opacity:0}}.builder-palette{display:flex;width:min(100%,550px);overflow-x:auto;overscroll-behavior-x:contain;touch-action:pan-x;scroll-snap-type:x proximity;gap:8px;padding:3px;flex:none;scrollbar-width:thin}.builder-palette button{flex:0 0 62px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px;background:#29211d;border:1px solid #71604d;border-radius:10px;color:#ecd7b3;scroll-snap-align:center}.builder-palette .builder-mini{width:36px}.builder-palette small{font-size:12px}.builder-palette button.selected{border-color:#e3c875;background:#493d2b}.builder-tools{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;flex:none}.builder-tools button{min-height:36px;padding:7px 10px;font-size:14px}.builder-status{margin:0;min-height:0;text-align:center;color:#b9e59c;font-size:14px}.builder-status:empty{display:none}.builder-game .game-bottom{margin:0;flex:none}.builder-game .game-bottom button{min-height:32px;padding:6px 12px;font-size:14px}.builder-result{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:10px;background:#3a3322;border-radius:12px}.builder-result h2{font-size:18px;margin:0}.builder-setup{text-align:center;padding:24px;max-width:650px;margin:auto}.builder-setup .opponent-choices{justify-content:center;margin:20px 0}.builder-cover{position:relative}.builder-cover-title{position:absolute;top:4%;left:4%;right:4%;text-align:center;color:#ffe7aa;font-size:clamp(18px,3vw,36px);font-weight:900;text-shadow:0 2px 4px #000,0 0 10px #000;line-height:1.1}@media(orientation:landscape) and (max-height:550px){.builder-game{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:auto 1fr auto auto;gap:6px 18px}.builder-heading{grid-column:2;grid-row:1}.builder-layout{grid-column:1;grid-row:1/5;height:100%}.builder-palette{grid-column:2;grid-row:2;align-self:end}.builder-tools{grid-column:2;grid-row:3}.builder-game .game-bottom{grid-column:2;grid-row:4}.builder-status{display:none}.builder-heading h1{font-size:18px}.builder-metrics strong{font-size:17px}}@media(prefers-reduced-motion:reduce){.builder-preview-overlay.departing{animation-duration:.01s}}

.builder-directions{display:flex;gap:5px}.builder-directions button{width:38px;padding:4px;font-size:22px;touch-action:manipulation}.builder-preview-overlay{padding:0;gap:0;border:0;background:#211c18;overflow:hidden}.builder-preview-overlay>span{position:absolute;left:8px;top:7px;z-index:2;background:#181514e6;padding:4px 6px;border-radius:4px;max-width:70%}.builder-preview-overlay>strong{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);background:#181514dd;padding:3px 8px;border-radius:5px}.builder-preview-close{z-index:3}.builder-reference-grid{display:grid;width:100%;height:100%;grid-template-columns:repeat(22,minmax(0,1fr));grid-template-rows:repeat(22,minmax(0,1fr));gap:1px;padding:5px;border:2px solid #ad8d6b;box-sizing:border-box;border-radius:12px}.builder-reference-grid i{display:block}.builder-reference-grid .occupied,.builder-grid .occupied{border-radius:0}.builder-preview-overlay .builder-reference-grid{flex:1;min-height:0}

.builder-palette{margin-top:12px;position:relative;z-index:1;flex-shrink:0}.builder-grid-frame{flex-shrink:0}.builder-directions{display:grid;grid-template-columns:42px 42px 42px;grid-template-rows:38px 38px 38px;gap:4px}.builder-control-up{grid-column:2;grid-row:1}.builder-control-left{grid-column:1;grid-row:2}.builder-control-rotate{grid-column:2;grid-row:2}.builder-control-right{grid-column:3;grid-row:2}.builder-control-down{grid-column:2;grid-row:3}.builder-directions button{width:42px;min-height:38px;height:38px}.builder-tools{align-items:center}.builder-tools>button{max-width:100px}.builder-preview-close{color:#fff}

.builder-cell.selected{outline:2px solid #fff;outline-offset:-2px;box-shadow:inset 0 0 2px #fff}

.builder-palette{width:min(100%,420px);touch-action:none;cursor:grab;-webkit-overflow-scrolling:touch}.builder-palette button{flex:0 0 72px;touch-action:none}.builder-palette:active{cursor:grabbing}

body.play-screen-locked:has(.builder-game){overflow:hidden;overscroll-behavior:none;touch-action:none}body.play-screen-locked:has(.builder-game) #main{overflow:hidden;overscroll-behavior:none}.builder-game{overflow:hidden;touch-action:none}.builder-palette{overflow-x:auto;overflow-y:hidden;overscroll-behavior:none;scroll-snap-type:none;touch-action:none}.builder-palette button{box-sizing:border-box;flex:0 0 72px}

.builder-metrics{flex-wrap:nowrap;gap:6px;font-size:12px}.builder-metrics span{flex-direction:row;align-items:center;gap:5px;white-space:nowrap;min-width:0}.builder-metrics strong{font-size:15px;line-height:1;white-space:nowrap}.builder-preview-icon{width:34px;height:40px;flex-basis:34px;padding:4px}.builder-preview-icon .builder-mini{width:23px}.builder-metrics span:last-child{margin-left:auto}

.builder-tools{display:grid;grid-template-columns:36px 134px 90px;align-items:center;gap:10px}.builder-undo{width:36px;padding:4px!important;font-size:22px!important}.builder-placement{display:grid;grid-template-rows:38px 38px;gap:4px;align-self:center}.builder-placement button{height:38px;min-height:38px;padding:5px 8px;font-size:13px}

.builder-heading{width:var(--builder-width,300px);max-width:100%;justify-content:flex-start;gap:10px;white-space:nowrap}.builder-heading h1{font-size:20px}.builder-heading>.tag{margin-left:auto}.builder-metrics{justify-content:space-between;gap:20px;flex-wrap:nowrap}.builder-metrics span{flex:0 0 auto;white-space:nowrap}.builder-metrics span:first-child{margin-right:auto}.builder-metrics span:last-child{margin-left:auto}.builder-preview-icon{flex-shrink:0}@keyframes builder-preview-depart{to{transform:translateY(-105px) scale(.08);opacity:0}}

.builder-preview-icon,.builder-preview-close{touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.builder-preview-close{width:44px;height:44px;min-width:44px;min-height:44px;top:5px;right:5px;font-size:28px;z-index:8}.builder-preview-icon{width:44px;height:44px;min-width:44px;min-height:44px;flex-basis:44px}@media(orientation:landscape) and (max-height:550px){.builder-heading{width:100%;gap:12px}.builder-preview-icon{width:48px;height:48px;min-width:48px;min-height:48px;flex-basis:48px}.builder-preview-close{width:48px;height:48px;min-width:48px;min-height:48px}}

.builder-preview-open .builder-grid,.builder-preview-open .builder-palette,.builder-preview-open .builder-tools{pointer-events:none}.builder-preview-overlay{touch-action:none}.builder-preview-icon,.builder-preview-close{touch-action:none}

/* Center the board between the statistics and the lower shape palette. */
.builder-workspace>.builder-grid-frame{margin-block:auto;transform:translateY(6px)}

/* Reihenfieber: omit redundant title and replace the opponent countdown with a clear turn notice. */
#main[data-game="four"] .board-heading{justify-content:flex-end}
.four-opponent-turn{display:flex;align-items:center;justify-content:center;min-height:40px;width:100%;margin:0;color:#ff7b90;font-size:18px;font-weight:800;text-align:center;line-height:1.3}
@media(orientation:landscape){body.game-active .four-opponent-turn{grid-column:2;grid-row:3;align-self:center}}

/* Keep opponent notices in each game's existing countdown slot. */
@media(orientation:landscape){body.game-active #main[data-game="mill"] .online-opponent-turn{grid-column:2;grid-row:2;align-self:center}}
/* Keep Mill's turn indicator identical in size for both players. */
#main[data-game="mill"] .board-game:has(.mill-board) :is(.four-timer,.online-opponent-turn){box-sizing:border-box;width:100%;max-width:100%;height:32px;min-height:32px;max-height:32px;flex:0 0 32px;margin:0;padding:0}
@media(orientation:landscape){body.game-active #main[data-game="mill"] .board-game:has(.mill-board) :is(.four-timer,.online-opponent-turn){grid-column:2;grid-row:2;align-self:center;justify-self:stretch;height:28px;min-height:28px;max-height:28px;flex-basis:28px;font-size:16px}}

.rank-score-details{display:inline-block;min-height:44px;padding:5px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:5px;cursor:pointer}.rank-score-details:focus-visible{outline:2px solid var(--lime);outline-offset:4px}#record-details-dialog{width:min(94vw,960px);max-height:90dvh;overflow:auto;padding:20px;border:1px solid var(--line);border-radius:24px;background:var(--panel,#211c2e);color:var(--ink)}#record-details-dialog::backdrop{background:#080610dd}#record-details-title{font-size:22px}.record-round-scroll{overflow-x:auto;max-width:100%;margin:18px 0;overscroll-behavior-x:contain}.record-round-table{width:100%;border-collapse:collapse;font-size:14px;min-width:710px}.record-round-table th,.record-round-table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.record-round-table th:first-child{text-align:start;position:sticky;left:0;background:var(--panel,#211c2e)}.record-round-table thead th{white-space:normal;min-width:80px}.record-round-table tfoot{font-weight:700;color:var(--lime)}.record-round-table .deduction{color:#ff9aab}

/* Leaderboard artwork reuses the menu covers at the German card size. */
#leaderboard-dialog .leaderboard-artwork>.game-cover{display:block;position:relative;box-sizing:border-box;width:100%;max-width:100%;height:auto;aspect-ratio:1;margin:0 auto;border-radius:16px;overflow:hidden;container-type:inline-size}
#leaderboard-dialog .leaderboard-artwork>.game-cover:not(.towers-cover)>img{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:cover}
#leaderboard-dialog .leaderboard-artwork .extra-language-cover-title{box-sizing:border-box;max-width:92%;font-size:clamp(6px,10cqw,14px);line-height:1.08;overflow-wrap:anywhere;text-wrap:balance}
#leaderboard-dialog .leaderboard-artwork .extra-language-cover-chain .extra-language-cover-title{max-width:90%;font-size:clamp(6px,12cqw,16px)}
#leaderboard-dialog .leaderboard-artwork figcaption{max-width:100%;overflow-wrap:anywhere;text-wrap:balance}

/* Fit the entire record breakdown on desktop; retain mobile swipe scrolling. */
@media(min-width:900px){
 #record-details-dialog{width:min(1200px,calc(100vw - 64px));max-width:calc(100vw - 64px);box-sizing:border-box;padding:24px}
 #record-details-dialog .record-round-table{width:100%;min-width:0;table-layout:fixed;font-variant-numeric:tabular-nums}
 #record-details-dialog .record-round-table th,#record-details-dialog .record-round-table td{min-width:0;padding:12px 8px}
 #record-details-dialog .record-round-table thead th{white-space:normal;overflow-wrap:anywhere;line-height:1.25}
 #record-details-dialog .record-round-table th:first-child{width:64px}
}
