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}
