/* The same five regions for every game: navigation, scores, timer, play area, tools. */
body.gh-play-mode{overflow:hidden;overscroll-behavior:none;background:#fff}
#app.gh-playing[data-screen="play"]{position:fixed;inset:var(--gh-top,0px) 0 auto;height:var(--gh-height,100dvh);background:#fff;overflow:hidden;--play-gap:6px}
#app.gh-playing[data-screen="play"] .shell{height:100%;width:100%;max-width:880px;margin:0 auto;padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));background:#fff;color:#213c30;overflow:hidden}
#app.gh-playing[data-screen="play"] #main{height:100%;min-height:0;max-width:100%;width:100%;margin:0;padding:max(2px,env(safe-area-inset-top)) 0 max(5px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:var(--play-gap);overflow:hidden}
#app.gh-playing .topbar,#app.gh-playing .bottom-note{display:none}
#app.gh-playing .v3-play-nav{height:44px;min-height:44px!important;max-width:none;padding:0!important;margin:0!important;grid-template-columns:44px minmax(0,1fr) auto;gap:5px;border:0}
#app.gh-playing .v3-play-nav>.gh-back{width:44px;height:44px;min-height:44px;min-width:44px;padding:8px;border:0;background:transparent}
#app.gh-playing .v3-play-nav>.gh-back svg{width:28px;height:28px}
#app.gh-playing .v3-play-nav>strong{font-size:clamp(14px,4vw,19px);line-height:1.15;letter-spacing:-.035em}
#app.gh-playing .v3-play-nav>.text-button{font-size:12px;min-height:44px;padding:5px 2px;text-decoration:underline;text-underline-offset:3px}
#app.gh-playing .gh-match-header{display:grid;grid-template-columns:minmax(0,1fr) 48px;max-width:none;width:100%;margin:0!important;border:1px solid #d6dfd7;border-radius:12px;overflow:hidden}
#app.gh-playing .gh-scoreboard.scorebar{border:0;border-radius:0;display:grid;grid-template-columns:repeat(var(--score-columns,2),minmax(0,1fr));overflow:hidden}
#app.gh-playing .gh-scoreboard .score-team{padding:5px 8px!important;gap:5px;min-height:38px;font-size:12px;line-height:1.15}
#app.gh-playing .gh-scoreboard .team-name{overflow:hidden;overflow-wrap:anywhere;max-height:2.3em}
#app.gh-playing .gh-scoreboard .team-dot{width:6px;height:6px;flex-basis:6px}
#app.gh-playing .gh-scoreboard strong{font-size:24px;line-height:1;flex-shrink:0}
#app.gh-playing .gh-scoreboard.v3-many-teams .score-team{min-height:29px;padding:3px 6px!important;font-size:11px}
#app.gh-playing .gh-scoreboard.v3-many-teams strong{font-size:19px}
#app.gh-playing .gh-turn-progress{align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px;font-size:10px;line-height:1.1;border-left:1px solid #d6dfd7;color:#213c30;background:#fff}
#app.gh-playing .gh-turn-progress strong{font-size:15px}
#app.gh-playing .gh-fun-note{align-self:center;font-size:12px}
#app.gh-playing #main>.gh-timer-bar{height:52px;min-height:52px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:0 0 5px!important;margin:0!important;gap:6px;border-bottom:1px solid #dae1d9}
#app.gh-playing .gh-active-team{font-size:10px;letter-spacing:0;padding:8px 10px;line-height:1.15;max-height:40px;overflow:hidden}
#app.gh-playing .gh-clock{font-size:34px;min-width:2.4em}
#app.gh-playing .gh-timer-tools{justify-self:end;gap:5px}
#app.gh-playing .gh-timer-tools button{min-height:44px;height:44px;min-width:40px;padding:4px;border-radius:10px}
#app.gh-playing .gh-sound-button{width:47px}.gh-playing .gh-sound-button span{font-size:9px}
#app.gh-playing .gh-play-stage{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;position:relative;container-type:size}
#app.gh-playing .gh-play-stage>.game{width:100%;max-width:none;margin:0!important;padding:0!important;min-height:0!important;height:100%!important;display:flex!important;flex-direction:column}
#app.gh-playing .gh-game-body{width:100%;max-width:none;flex:1;min-height:0!important;height:100%;margin:0!important;padding:0!important;border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:flex-start;gap:6px;background:#fff;overflow:visible;text-align:center}
#app.gh-playing .gh-game-body>h1,#app.gh-playing .gh-game-body>h2{font-size:clamp(18px,4.7vw,25px);line-height:1.18;letter-spacing:-.03em;margin:0!important;flex:none}
#app.gh-playing .gh-game-body p{font-size:14px;line-height:1.4;margin:0}
#app.gh-playing .gh-game-body>p,#app.gh-playing .gh-game-body>.pill{flex:none}
#app.gh-playing .gh-game-body .helper,#app.gh-playing .gh-game-body .eyebrow{font-size:12px;line-height:1.3;margin:0}
#app.gh-playing .gh-game-body .pill{align-self:center;font-size:10px;line-height:1.2;padding:6px 10px;max-width:100%;margin:0}
#app.gh-playing .gh-game-body .btn,#app.gh-playing .gh-reader-actions .btn{margin:0!important;min-height:44px;padding:9px 12px;font-size:14px;line-height:1.2;border-radius:11px;flex-shrink:0}
#app.gh-playing .gh-game-body .button-row{gap:8px;margin:0!important;flex:none}
#app.gh-playing .gh-game-body .button-row:empty,#app.gh-playing .odd-timer-controls:empty{display:none}
#app.gh-playing .gh-play-footer{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;background:#fff}
#app.gh-playing .gh-play-footer .btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin:0!important;padding:8px 5px;border:1.5px solid #286f4c;border-radius:10px;background:#fff;color:#214b38;font-size:13px;line-height:1.2}
#app.gh-playing .gh-play-footer .btn>span{font-size:23px;line-height:1}
#app.gh-playing .gh-answer-form{display:flex;flex-direction:column;gap:8px;margin:0!important;flex:none;text-align:left}
#app.gh-playing .gh-answer-form .field{display:flex;flex-direction:column;gap:5px;margin:0!important}
#app.gh-playing .field-label{font-size:13px;line-height:1.2;margin:0!important}
#app.gh-playing .gh-answer-input{width:100%;min-height:44px;height:46px;margin:0;padding:9px 12px;border:2px solid #247545;border-radius:11px;background:#fff;color:#243e32;font-size:16px;line-height:1.3;box-shadow:none}
#app.gh-playing textarea.gh-answer-input{height:66px;resize:none}
#app.gh-playing .gh-answer-input:focus{outline:2px solid #b6d794;outline-offset:2px;border-color:#17633b}
#app.gh-playing .gh-answer-form [type="submit"],#app.gh-playing .score-confirmation .btn{background:#247545;border:2px solid #247545;color:#fff;font-weight:750}
#app.gh-playing .host-reminder-answer{padding:12px;margin:0;border-radius:12px;font-size:clamp(24px,6vw,38px);line-height:1.15;overflow-wrap:anywhere}
#app.gh-playing .actor-badge,#app.gh-playing .odd-avatar,#app.gh-playing .headband-symbol{width:50px;height:50px;font-size:30px;margin:4px auto}
#app.gh-playing .artist-clock,#app.gh-playing .clash-clock,#app.gh-playing .odd-duration{font-size:clamp(40px,12vw,72px);margin:6px 0;line-height:1.1}
/* Content pages use arrows rather than a tall scrolling result or instructions card. */
.gh-reader{display:flex;flex-direction:column;flex:1;min-height:0;position:relative;gap:4px}
.gh-reader-pages{flex:1;min-height:0;overflow:hidden}
.gh-reader-page,.gh-reader-measure{display:flex;flex-direction:column;gap:8px;text-align:center}
.gh-reader-page[hidden],.gh-reader-nav[hidden]{display:none!important}
.gh-reader-page>h1{font-size:clamp(21px,5vw,30px);line-height:1.15;margin:0}.gh-reader-page>h2{font-size:20px;margin:0}.gh-reader-page>p{margin:0;font-size:14px;line-height:1.4}
.gh-reader-page>img,.gh-reader-page .artist-photo,.gh-reader-page .clue-photo{display:block;max-width:100%;width:100%;height:min(28dvh,200px);object-fit:contain;margin:0 auto}
.gh-reader-page .artist-picture,.gh-reader-page .jigsaw-reference{margin:0 auto;max-height:30dvh;max-width:100%;width:min(100%,300px)}
.gh-reader-page .artist-picture strong{font-size:20px}.gh-reader-page .clue-word{font-size:32px;margin:4px 0}
.gh-reader-page .artist-review-canvas{max-height:26dvh;width:auto;max-width:100%;margin:0 auto}
.gh-reader-page .artist-compare{margin:0;gap:8px}.gh-reader-page .artist-compare img,.gh-reader-page .artist-compare canvas{height:min(23dvh,180px);object-fit:contain}
.gh-reader-measure{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;z-index:-1;contain:layout}
.gh-reader-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;height:34px}
.gh-reader-nav button{min-height:32px;border:1px solid #bccdc0;border-radius:8px;background:#fff;color:#215137;padding:5px 10px;font:inherit;font-size:12px}.gh-reader-nav span{font-size:12px}
.gh-reader-actions{display:flex;flex-direction:column;gap:6px;flex:none}.gh-reader-actions:empty{display:none}
/* Split the Clue */
#app.gh-playing .split-live-content .game-panel{justify-content:center;gap:10px}
#app.gh-playing .split-live-content .split-prompt{font-size:clamp(24px,6vw,40px);margin:0}
#app.gh-playing .split-secret-cards{display:flex;align-items:center;justify-content:center;gap:15px;flex:1;min-height:50px;max-height:260px}
.split-secret-cards>span{display:grid;place-items:center;width:33%;height:100%;max-height:230px;border:3px solid #62984e;border-radius:15px;background:repeating-linear-gradient(135deg,#5c954b 0 8px,#679f55 8px 16px);color:white;font-size:clamp(45px,12vw,90px);font-weight:800}
.split-secret-cards>span:last-child{border-color:#a388bc;background:repeating-linear-gradient(135deg,#9171b7 0 8px,#a082c2 8px 16px)}.split-secret-cards>b{font-size:40px}
#app.gh-playing .split-live-content .timer-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0!important;position:static!important;flex:none}
#app.gh-playing .timer-actions .btn{min-height:48px!important;height:auto;font-size:17px;padding:8px}
#app.gh-playing .timer-actions small{font-size:11px;margin-top:3px}
#app.gh-playing .timer-review{margin:0!important;flex:none}
#app.gh-playing .timer-review-button{min-height:44px;padding:6px 12px;font-size:13px}.gh-playing .timer-review-button span{font-size:10px;margin-top:1px}
#app.gh-playing .split-live-content .host-reminder{margin:0!important;font-size:12px}
/* Reveal text uses its natural height; only the clue photographs shrink. */
#app.gh-playing .answer-screen{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:100%;max-width:none;height:100%;min-height:0;padding:0;gap:6px;overflow:visible}
#app.gh-playing .answer-header{padding:0;margin:0;width:100%;min-height:22px;line-height:1.35;flex:none}
#app.gh-playing .answer-access{display:flex;align-items:center;gap:6px;font-size:12px;overflow-wrap:anywhere}
#app.gh-playing .answer-turn{display:none}
#app.gh-playing .answer-stage{width:100%;height:auto;min-height:min-content;display:flex;flex-direction:column;justify-content:flex-start;gap:5px;padding:0;margin:0;flex:none}
#app.gh-playing .answer-stage>*,#app.gh-playing .answer-bottom>*{flex:none}
#app.gh-playing .answer-stage .answer-status{margin:0;font-size:17px;line-height:1.2}
#app.gh-playing .answer-screen .answer-eyebrow{font-size:11px;letter-spacing:.16em;line-height:16px;margin:0}
#app.gh-playing .answer-screen .answer-word,#app.gh-playing .answer-screen .answer-word.answer-medium,#app.gh-playing .answer-screen .answer-word.answer-long{font-size:clamp(28px,8vw,46px);line-height:1.12;margin:0;padding:10px 12px;border-radius:12px;overflow-wrap:anywhere}
#app.gh-playing .answer-screen .combination{font-size:13px;line-height:1.35;margin:0;overflow-wrap:anywhere;color:#526157}
#app.gh-playing .answer-bottom{padding:0;margin:0;width:100%;min-height:min-content;display:flex;flex-direction:column;gap:6px;flex:none}
#app.gh-playing .answer-bottom .btn{min-height:44px;padding:9px 10px;font-size:14px;line-height:1.25;height:auto;white-space:normal}
#app.gh-playing .answer-screen>.answer-clues{padding:6px;margin:0;display:flex;flex-direction:column;min-height:70px;gap:4px;overflow:visible}
#app.gh-playing .answer-screen .answer-clues-title{margin:0;padding:0;font-size:11px;line-height:15px;flex:none}
#app.gh-playing .answer-screen .reveal-clues{gap:6px;margin:0;padding:0;flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
#app.gh-playing .answer-screen .mini-clue{padding:4px;display:flex;flex-direction:column;min-height:0;gap:3px;margin:0}
#app.gh-playing .answer-screen .mini-clue img{height:0;flex:1;min-height:0;max-height:190px;width:100%;object-fit:contain;margin:0}
#app.gh-playing .answer-screen .mini-clue strong{font-size:16px;line-height:1.2;overflow-wrap:anywhere;margin:0;flex:none}
#app.gh-playing .answer-screen .mini-clue small{font-size:9px;line-height:1.2;margin:0;flex:none}
#app.gh-playing .answer-screen .answer-note,#app.gh-playing .answer-screen .answer-footnote,#app.gh-playing .answer-screen .answer-points{font-size:12px;line-height:1.35;margin:0;overflow-wrap:anywhere}
#app.gh-playing .answer-correction{display:none}
#app.gh-playing .answer-screen:has(>.gh-reader){display:flex;flex-direction:column}
#app.gh-playing .answer-screen .gh-reader-page .answer-clues{padding:6px;margin:0}
#app.gh-playing .answer-screen .gh-reader-page .mini-clue img{flex:none;height:min(15dvh,100px)}
/* Drawing */
#app.gh-playing .artist-drawing-live .artist-panel{gap:6px}.gh-playing .artist-draw-heading h1{font-size:17px!important;line-height:1.2!important}
#app.gh-playing .artist-drawing-live .artist-canvas-wrap{flex:1;min-height:0!important;height:auto!important;width:100%;border:2px solid #639678;border-radius:12px}
#app.gh-playing .artist-drawing-live .artist-draw-heading{min-height:34px;gap:6px}.gh-playing .artist-drawing-live .artist-clue-button{min-height:34px;padding:6px 8px;font-size:12px}
#app.gh-playing .artist-draw-tools{gap:6px;margin:0!important}.gh-playing .artist-draw-tools .btn{min-height:40px!important;padding:6px 2px;font-size:12px}
/* Photo Jigsaw: exact square pieces; reference and 4x3 board keep the same crop. */
#app.gh-playing .jigsaw-live-board{display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;height:100%!important;min-height:0!important;width:100%;margin:0;padding:0;--boardW:260px;--referenceW:160px;--trayW:200px;touch-action:none;overscroll-behavior:none}
#app.gh-playing .jigsaw-live-board>.jigsaw-reference-area,#app.gh-playing .jigsaw-live-board>.jigsaw-board-area,#app.gh-playing .jigsaw-live-board>.jigsaw-tray-area{width:100%;min-width:0;flex:none;display:flex;flex-direction:column;align-items:center;gap:3px}
#app.gh-playing .jigsaw-live-board h2{font-size:13px;line-height:16px;margin:0;width:100%;text-align:left;display:flex;justify-content:space-between}.gh-playing .jigsaw-live-board .jigsaw-reference-area h2{justify-content:center}
#app.gh-playing .jigsaw-live-board .jigsaw-reference{width:var(--referenceW);height:auto;aspect-ratio:4/3;margin:0;border-radius:0;border:0;padding:0}
#app.gh-playing .jigsaw-live-board .jigsaw-reference img{border-radius:0}
#app.gh-playing .jigsaw-live-board .jigsaw-board{width:var(--boardW);height:auto;aspect-ratio:4/3;max-width:100%;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));padding:0;gap:0;border:2px solid #7b9568;border-radius:0;overflow:hidden;margin:0}
#app.gh-playing .jigsaw-live-board .jigsaw-slot{aspect-ratio:1;border:1px solid #a7b99b;border-radius:0;min-height:0;padding:0}.gh-playing .jigsaw-empty-mark{font-size:28px}
#app.gh-playing .jigsaw-live-board .jigsaw-tray{width:var(--trayW);height:auto;aspect-ratio:3;max-width:100%;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));border:0;border-radius:0;padding:0;gap:2px;background:#fff;margin:0;min-height:0}
#app.gh-playing .jigsaw-tray .jigsaw-tile,#app.gh-playing .jigsaw-tray-placeholder{aspect-ratio:1;min-width:0;min-height:0;padding:0;border-radius:0}
#app.gh-playing .jigsaw-tray-row{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-width:0}
#app.gh-playing .jigsaw-tray-tools{flex:none;width:88px;display:grid;grid-template-rows:repeat(2,44px);gap:4px}
#app.gh-playing .jigsaw-tray-tools .btn{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;gap:4px;margin:0;padding:4px;font-size:11px;line-height:1.15;border:1px solid #7b9568;border-radius:9px}
#app.gh-playing .jigsaw-tray-tools .btn>span:first-child{font-size:19px;line-height:1}
#app.gh-playing .jigsaw-tray-placeholder{border:1px dashed #a7b99b;background:#f1f4eb;color:#28573e;font-size:20px}
#app.gh-playing .jigsaw-tray-placeholder:disabled{opacity:.45}
#app.gh-playing .jigsaw-live-board h2>span{font-size:11px;font-weight:400}
#app.gh-playing .jigsaw-compact-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
/* Spot the Difference: two complete matching-size scenes, never cropped. */
#app.gh-playing .spot-panel{gap:4px}.gh-playing .gh-content-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;flex:none;min-height:24px}.gh-playing .gh-content-heading h1{font-size:18px;line-height:1.2;margin:0}.gh-playing .gh-content-heading .gh-found-count{font-size:13px;margin:0;white-space:nowrap}
#app.gh-playing .spot-pair-scroll{flex:1;min-height:0;overflow:hidden;margin:0;padding:0;display:flex;justify-content:center;align-items:center}
#app.gh-playing .spot-pair{max-width:100%;margin:0;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto auto;gap:0}
#app.gh-playing .spot-picture-label{padding:3px 8px;line-height:16px;font-size:10px;margin:0!important;letter-spacing:.04em;border-radius:9px 9px 0 0}
#app.gh-playing .spot-picture-label:nth-child(3){margin-top:6px!important}
#app.gh-playing .spot-frame{min-width:0;width:100%;height:auto;padding:0;border:0;margin:0;border-radius:0 0 9px 9px;overflow:hidden;position:relative;display:block;touch-action:none}
#app.gh-playing .spot-frame .spot-base{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
#app.gh-playing .spot-credit{display:none}.gh-playing .spot-feedback{font-size:11px!important;line-height:16px!important;flex:none}
/* Word grids */
#app.gh-playing .wordsearch-scroll{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;overflow:hidden;margin:0;padding:0}
#app.gh-playing .wordsearch-grid{height:auto;aspect-ratio:1;max-width:100%;padding:2px;gap:1px;margin:0;grid-template-rows:repeat(var(--wordsearch-size),minmax(0,1fr));border-width:1px;border-radius:8px}
#app.gh-playing .wordsearch-cell{aspect-ratio:1;min-height:0;min-width:0;padding:0;border-radius:1px;font-size:clamp(12px,3.5vw,21px);line-height:1}
#app.gh-playing .wordsearch-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin:0;padding:0;flex:none}
#app.gh-playing .wordsearch-list li{font-size:10px;padding:4px 2px;line-height:1.15;min-height:22px;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere;border-radius:12px}
#app.gh-playing .wordsearch-feedback{font-size:11px!important;line-height:14px!important}
/* Shared text / photographic answer games */
#app.gh-playing .picture-hint{font-size:14px;margin:0!important}.gh-playing .picture-grid{flex:1;min-height:0;width:100%;max-width:none!important;margin:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:6px}
#app.gh-playing .picture-count-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr)}
#app.gh-playing .picture-count-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr)}
#app.gh-playing .picture-count-3 .picture-clue:last-child{grid-column:auto;width:100%}
#app.gh-playing .picture-clue{height:100%;min-height:0;padding:0;display:grid;grid-template-rows:minmax(0,1fr) 18px}.gh-playing .picture-clue img{display:block;width:100%;height:100%;min-height:0;aspect-ratio:auto;object-fit:cover;padding:0;margin:0}.gh-playing .picture-clue figcaption{font-size:10px;padding:2px;line-height:14px}
#app.gh-playing .scramble-letters{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:4px;flex:1;min-height:0;margin:0;padding:0}
#app.gh-playing .scramble-letters span{display:grid;place-items:center;width:clamp(26px,9vw,57px);height:clamp(42px,10cqh,74px);padding:0;font-size:clamp(22px,6.5vw,38px);border-radius:8px}
#app.gh-playing .scramble-clue{margin:0;padding:10px;font-size:14px;border-radius:10px;flex:none}.gh-playing .scramble-clue p{font-size:14px}
#app.gh-playing .hear-clue{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;margin:0!important;padding:12px;border-radius:15px;font-size:clamp(24px,7vw,48px);line-height:1.15;overflow-wrap:anywhere}
#app.gh-playing .hear-instruction{margin:0!important;font-size:15px}.gh-playing .hear-prompt{flex:1;min-height:0}
#app.gh-playing .riddle-question{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;margin:0;padding:12px;font-size:clamp(18px,4.5vw,28px);line-height:1.3;border-radius:14px}
#app.gh-playing .zoom-frame{flex:1;min-height:0;width:100%;max-width:none;margin:0;aspect-ratio:auto}
#app.gh-playing .zoom-status{margin:0;min-height:25px;font-size:13px}.gh-playing .zoom-answer-heading{display:none}.gh-playing .zoom-answer-clock{display:none}
/* Cards, memory and preferences */
#app.gh-playing .headband-live-board{display:flex!important;flex-direction:column;gap:6px;width:100%;height:100%!important;padding:0!important;margin:0;min-height:0!important}
#app.gh-playing .headband-current{display:flex;flex-direction:column;flex:1;min-height:0;gap:6px;justify-content:center}
#app.gh-playing .headband-current img{flex:1;min-height:0;width:100%;height:0;max-height:none;object-fit:contain;aspect-ratio:auto;border-radius:12px}
#app.gh-playing .headband-current h1{font-size:clamp(30px,8vw,54px);line-height:1.05;margin:0;flex:none}
#app.gh-playing .headband-judge-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:none}.gh-playing .headband-judge-controls .btn{min-height:48px!important;padding:8px;font-size:15px!important;border-radius:11px}
#app.gh-playing .headband-live-footer{font-size:12px;min-height:18px;margin:0;justify-content:center}
#app.gh-playing .memory-grid{flex:1;min-height:0;width:100%;max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:6px;margin:0}
#app.gh-playing .memory-count-3,#app.gh-playing .memory-count-6,#app.gh-playing .memory-count-9{grid-template-columns:repeat(3,minmax(0,1fr))}
#app.gh-playing .memory-tile{position:relative;min-height:0;min-width:0;height:100%;padding:0;border-radius:10px;border-width:2px;overflow:hidden}
#app.gh-playing .memory-tile img{display:block;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;object-fit:cover;padding:0;margin:0}
#app.gh-playing .memory-tile.selected{border-color:#9d64d4;box-shadow:0 0 0 1px #9d64d4;background:#fff;color:var(--ink)}
#app.gh-playing .memory-position{position:absolute;top:4px;left:4px;display:inline-block;padding:3px 6px;border-radius:6px;background:#fff;color:#234433;font-size:12px;font-weight:750;line-height:1.2}
#app.gh-playing .rather-options{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;flex:1;min-height:0;margin:0}
#app.gh-playing .rather-option{padding:12px;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:8px;border-radius:14px}
#app.gh-playing .rather-option strong{font-size:clamp(18px,4.5vw,27px);line-height:1.25}.gh-playing .rather-option-letter{width:32px;height:32px;font-size:20px;margin:0 auto}.gh-playing .rather-option-status{font-size:12px;margin:0}
#app.gh-playing .rank-ordering{display:flex;flex-direction:column;flex:1;min-height:0;gap:8px;margin:0}
#app.gh-playing .rank-sort-list{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;flex:1;min-height:0;list-style:none;padding:0;margin:0}
#app.gh-playing .rank-sort-list li{display:grid;grid-template-columns:34px minmax(0,1fr) 44px;align-items:center;gap:10px;padding:8px;background:#f7f8f1;border:1px solid #dce3d6;border-radius:12px;min-height:0}
#app.gh-playing .rank-sort-list strong{font-size:17px;line-height:1.25;overflow-wrap:anywhere;text-align:left}.gh-playing .rank-number{width:32px;height:36px;display:grid;place-items:center;margin:0;font-size:23px;border-radius:8px;background:#eaf2d7}
.rank-move-buttons{display:grid;gap:4px}.rank-move-buttons button{width:40px;height:32px;border:1px solid #c2d2c6;border-radius:8px;background:white;color:#215137;font-size:18px;cursor:pointer}
/* Number pickers keep all 50 choices visible. */
#app.gh-playing .riddle-board,#app.gh-playing .sets-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(var(--board-rows,10),minmax(0,1fr));gap:4px;flex:1;min-height:0;margin:0}
#app.gh-playing .riddle-number,#app.gh-playing .sets-number{min-height:0;min-width:0;padding:0 2px;border-radius:7px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;aspect-ratio:auto;line-height:1}
#app.gh-playing .riddle-number strong,#app.gh-playing .sets-number strong{font-size:clamp(13px,4vw,21px);line-height:1.1}.gh-playing .riddle-number small,.gh-playing .sets-number small{font-size:9px;line-height:1.1}
#app.gh-playing .riddle-number.available small,#app.gh-playing .sets-number.available small{display:none}
#app.gh-playing .riddle-board-head,#app.gh-playing .sets-board-head{margin:0;padding:0;flex:none}.gh-playing .riddle-board-head h1,.gh-playing .sets-board-head h1{font-size:19px;line-height:1.2;margin:0}.gh-playing .riddle-board-head p,.gh-playing .sets-board-head p{font-size:12px;line-height:1.3;margin:3px 0 0}
#app.gh-playing .riddle-board-head .pill,#app.gh-playing .sets-board-head .pill,#app.gh-playing .riddle-legend,#app.gh-playing .sets-legend{display:none}
/* One Name the Set input at a time; every saved draft stays in the form. */
#app.gh-playing .sets-question{font-size:clamp(19px,5vw,28px)!important;line-height:1.2;flex:none}
#app.gh-playing .sets-required{font-size:12px}.gh-playing .sets-answer-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:0}.gh-playing .sets-answer-tabs button{min-height:38px;border:1px solid #9bb49e;border-radius:8px;background:#fff;color:#214b38;font-size:13px;padding:5px}
#app.gh-playing .sets-answer-tabs [aria-pressed=true]{background:#247545;color:white}.gh-playing .sets-answer-tabs [data-filled=true]:after{content:' ✓'}
#app.gh-playing .sets-answer-fields{display:block;margin:0}.gh-playing .sets-answer-fields .field[hidden]{display:none!important}.gh-playing #sets-guess-form{margin-top:auto!important;gap:8px}.gh-playing .sets-draft-summary{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;align-content:center;text-align:left}.gh-playing .sets-draft-summary p{padding:6px;background:#f3f6ed;border-radius:7px;font-size:12px!important;overflow-wrap:anywhere}
/* Case / Evidence / Solve */
#app.gh-playing .mystery-title{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}.gh-playing .mystery-title h1{font-size:18px;line-height:1.2;margin:0;text-align:left}.gh-playing .mystery-title span{font-size:11px;white-space:nowrap;padding:6px;background:#edf4dd;border-radius:15px}
.gh-case-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;flex:none}.gh-case-tabs button{height:36px;border:1px solid #c7d6ca;border-radius:8px;background:#f4f6f2;font:inherit;font-size:13px;color:#264b38}.gh-case-tabs [aria-selected=true]{background:#e9f3d6;border-color:#7a9c55;font-weight:750}
.gh-case-panel{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}.gh-case-panel[hidden]{display:none!important}
#app.gh-playing .mystery-evidence{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0}.gh-playing .mystery-evidence figure{display:flex;flex-direction:column;min-height:0;margin:0}.gh-playing .mystery-evidence img{flex:1;width:100%;height:0;min-height:0;object-fit:contain;aspect-ratio:auto;border-radius:9px}.gh-playing .mystery-evidence figcaption{font-size:11px;line-height:1.3;padding:4px}
#app.gh-playing .mystery-statements{margin:0;padding:0;flex:none}.gh-playing .mystery-statements h2{display:none}.gh-playing .mystery-statements p{padding:6px;background:#f5f7f1;font-size:12px;margin-bottom:4px;border-radius:8px}
#app.gh-playing .mystery-solutions{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;margin:0;padding:0}.gh-playing .mystery-solutions h2{font-size:15px;margin:0}.gh-playing .mystery-option{flex:1;min-height:0;padding:8px;font-size:14px;line-height:1.25;border-radius:9px}
#app.gh-playing .mystery-hints{padding:0;margin:0;display:flex;flex-direction:column;gap:5px;flex:none}.gh-playing .mystery-hints p{font-size:12px;line-height:1.3}.gh-playing .mystery-hints .btn{min-height:36px;font-size:12px}
/* Discussion and counting */
#app.gh-playing .odd-player-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:7px;flex:1;min-height:0}.odd-player-cards>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:12px;background:#edf5e2;min-height:0;padding:5px}.odd-player-cards>div:nth-child(2n){background:#eee7f8}.odd-player-cards>div:nth-child(3n){background:#fff1cf}.odd-player-cards strong{font-size:13px;line-height:1.2;overflow-wrap:anywhere}.odd-player-cards span{display:grid;place-items:center;width:clamp(30px,13vw,70px);aspect-ratio:1;border-radius:50%;background:#fff9;font-size:30px;font-weight:750;color:#345541}
#app.gh-playing .odd-vote-grid,.gh-playing .rank-player-grid,.gh-playing .rather-player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0}
#app.gh-playing .clash-category{margin:0;padding:12px;border-radius:14px;font-size:21px}.gh-playing .clash-category h1{font-size:24px;margin:0}.gh-playing .clash-category p{font-size:12px}
#app.gh-playing .clash-count-controls{flex:1;min-height:0;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0}.gh-playing #clash-count{font-size:clamp(65px,15vw,110px);line-height:1}.gh-playing .clash-count-controls button{width:65px;height:65px;font-size:32px}
#app.gh-playing .clash-target{font-size:52px;margin:0}.gh-playing .clash-current-bid{margin:0;padding:6px}.gh-playing .clash-current-bid strong{font-size:38px}.gh-playing .clash-team-turn{font-size:19px;margin:0}
#app.gh-playing #clash-bid-form{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:auto}.gh-playing #clash-bid-form>.btn{grid-column:1/-1}.gh-playing #clash-bid-form .field{margin:0}.gh-playing #clash-bid-form input{min-height:44px;height:44px;font-size:20px;padding:5px;text-align:center;border:2px solid #247545}.gh-playing .clash-bid-controls{margin:0;gap:6px;align-items:end}.gh-playing .clash-bid-controls .btn{min-width:44px}
/* Keyboard: keep the clue, input and green submit button inside the visible viewport. */
body.gh-keyboard #app.gh-playing #main{gap:3px;grid-template-rows:36px 28px 36px minmax(0,1fr)}
body.gh-keyboard #app.gh-playing .gh-play-footer{display:none!important}
body.gh-keyboard #app.gh-playing .v3-play-nav{height:36px;min-height:36px!important}.gh-keyboard #app.gh-playing .v3-play-nav>.gh-back,.gh-keyboard #app.gh-playing .v3-play-nav>.text-button{height:36px;min-height:36px}
body.gh-keyboard #app.gh-playing .gh-scoreboard .score-team{min-height:26px;padding:3px 6px!important;font-size:10px}.gh-keyboard #app.gh-playing .gh-scoreboard strong{font-size:18px}
body.gh-keyboard #app.gh-playing #main>.gh-timer-bar{min-height:36px;height:36px;padding-bottom:2px!important}.gh-keyboard #app.gh-playing .gh-clock{font-size:25px}.gh-keyboard #app.gh-playing .gh-timer-tools button{min-height:32px;height:32px}.gh-keyboard #app.gh-playing .gh-sound-button svg{display:none}.gh-keyboard #app.gh-playing .gh-active-team{padding:5px 8px;font-size:9px}
body.gh-keyboard #app.gh-playing .gh-game-body{gap:4px}.gh-keyboard #app.gh-playing .gh-game-body>.helper,.gh-keyboard #app.gh-playing .gh-game-body>.eyebrow,.gh-keyboard #app.gh-playing .gh-game-body>p:not(.picture-hint):not(.sets-required){display:none}
body.gh-keyboard #app.gh-playing .gh-answer-form{gap:4px}.gh-keyboard #app.gh-playing .gh-answer-form .field{gap:3px}.gh-keyboard #app.gh-playing .gh-answer-input{height:40px;min-height:40px;padding:6px 10px}.gh-keyboard #app.gh-playing .gh-answer-form .btn{min-height:40px;padding:7px}
body.gh-keyboard #app.gh-playing .scramble-letters span{height:36px;font-size:23px;width:30px}.gh-keyboard #app.gh-playing .scramble-clue{padding:4px;font-size:11px}.gh-keyboard #app.gh-playing .hear-clue{font-size:24px;padding:5px}.gh-keyboard #app.gh-playing .riddle-question{font-size:16px;padding:6px}.gh-keyboard #app.gh-playing .picture-count-2{grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr)}
body.gh-keyboard #app.gh-playing .sets-draft-summary{display:none}.gh-keyboard #app.gh-playing .sets-question{font-size:16px!important}.gh-keyboard #app.gh-playing .sets-answer-tabs button{min-height:30px;padding:3px}
@media(max-height:650px){#app.gh-playing{--play-gap:4px}#app.gh-playing .gh-game-body{gap:4px}#app.gh-playing .gh-game-body>.helper{font-size:11px}.gh-playing .gh-game-body>h1{font-size:19px!important}.gh-playing .gh-play-footer .btn{min-height:40px}.gh-playing .gh-game-body .btn{min-height:40px}}
@media(orientation:landscape) and (max-height:600px){
 #app.gh-playing .shell{max-width:1100px}
 #app.gh-playing #main{grid-template-columns:1fr 1fr;grid-template-rows:40px 44px minmax(0,1fr) 38px;gap:4px}
 #app.gh-playing .v3-play-nav{grid-column:1;grid-row:1;min-height:40px!important;height:40px}
 #app.gh-playing .gh-match-header{grid-column:2;grid-row:1}
 #app.gh-playing #main>.gh-timer-bar{grid-column:1/-1;grid-row:2;height:44px;min-height:44px}
 #app.gh-playing .gh-play-stage{grid-column:1/-1;grid-row:3}
 #app.gh-playing .gh-play-footer{grid-column:1/-1;grid-row:4}
 #app.gh-playing .gh-play-footer .btn{min-height:36px;height:36px}
 #app.gh-playing .picture-count-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr!important}
 #app.gh-playing .rather-options{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
 #app.gh-playing .riddle-board,#app.gh-playing .sets-board{grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(var(--board-landscape-rows,5),minmax(0,1fr))}
}

/* Compact supporting controls retain the available play space. */
#app.gh-playing .gh-game-body>.btn.wide{max-width:none;width:100%}
#app.gh-playing .gh-answer-form{width:100%;max-width:none}
#app.gh-playing .scramble-letters{width:100%;max-width:none}
#app.gh-playing .scramble-letters span{min-width:0}
#app.gh-playing .hear-clue{font-size:clamp(15px,var(--word-size,6vw),var(--word-max,48px));white-space:nowrap;word-break:normal;overflow-wrap:normal}
#app.gh-playing .gh-case-reading,#app.gh-playing .gh-set-guide{display:flex;flex-direction:column;flex:1;min-height:0;gap:6px}
#app.gh-playing .gh-set-guide[hidden],#app.gh-playing .gh-set-review[hidden]{display:none!important}
#app.gh-playing .gh-set-review{display:flex;flex-direction:column;justify-content:center;flex:1;min-height:0;gap:8px}
#app.gh-playing .sets-review-answer{font-size:clamp(20px,5vw,30px);line-height:1.25;overflow-wrap:anywhere;padding:10px}
#app.gh-playing .gh-review-pagination,#app.gh-playing .sets-input-actions{display:flex;gap:8px;flex:none}.gh-review-pagination>*{flex:1}.sets-input-actions [type=submit]{flex:1}
#app.gh-playing .score-confirmation{flex:none;margin:0;padding:6px;display:flex;flex-direction:column;gap:6px;border-radius:10px}
#app.gh-playing .gh-set-review .sets-item{min-height:44px;padding:10px;border-radius:10px}
#app.gh-playing .gh-case-tabs:has([data-action=setsReviewTab]){grid-template-columns:1fr 1fr}
#app.gh-playing .wordsearch-feedback-row{display:flex;align-items:center;justify-content:space-between;gap:5px;flex:none}.wordsearch-feedback-row .wordsearch-feedback{flex:1}
#app.gh-playing .wordsearch-feedback-row .btn{min-height:28px;padding:3px 7px;font-size:11px}
#app.gh-playing .jigsaw-live-board .jigsaw-tray{aspect-ratio:auto}
#app.gh-playing .jigsaw-live-board .jigsaw-board{aspect-ratio:auto;grid-template-rows:repeat(3,auto)}
#app.gh-playing .jigsaw-live-board .jigsaw-tray{grid-template-rows:repeat(2,auto)}
#app.gh-playing .storage-banner{position:fixed;top:0;left:10px;right:10px;z-index:30;font-size:12px;padding:6px}
@media(orientation:landscape) and (max-height:600px){
 #app.gh-playing .jigsaw-live-board{display:grid!important;grid-template-columns:var(--referenceW) var(--boardW) calc(var(--trayW) + 96px);grid-template-rows:minmax(0,1fr);align-items:center;justify-content:space-between;gap:4px}
 #app.gh-playing .headband-current{flex-direction:row}.gh-playing .headband-current img{height:100%;width:50%;max-width:50%;flex:none}
 #app.gh-playing .headband-current h1{width:45%;max-width:none}
 #app.gh-playing .headband-words-only h1{width:100%}
 #app.gh-playing .rank-sort-list{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr;gap:5px}
 #app.gh-playing .rank-sort-list li{grid-template-columns:25px 1fr 32px;gap:5px;padding:5px}.gh-playing .rank-move-buttons button{width:30px;height:28px}
 #app.gh-playing .odd-player-cards{grid-template-columns:repeat(6,minmax(0,1fr))}.gh-playing .odd-player-cards span{width:36px;font-size:24px}
}

/* Online Word Scramble uses the same viewport and controls, with host permissions intact. */
.multiplayer-v3 #app.gh-playing .brandbar{display:none}
.multiplayer-v3 #app.gh-playing .play-card{flex:1;min-height:0;height:auto;padding:0;border:0;box-shadow:none;border-radius:0;gap:6px}
.multiplayer-v3 #app.gh-playing .connection{flex:none;font-size:10px;min-height:15px;margin:0;padding:0 3px}
.multiplayer-v3 #app.gh-playing .tools{flex:none;margin:0;gap:5px}.multiplayer-v3 #app.gh-playing .tools:empty{display:none}
.multiplayer-v3 #app.gh-playing .tools .btn{min-height:32px;padding:4px;font-size:12px}
.multiplayer-v3 #app.gh-playing .clue-box{flex:none;margin:0;padding:8px;font-size:13px}
.multiplayer-v3 #app.gh-playing .notice{margin:0;padding:8px;font-size:13px}
.multiplayer-v3 #app.gh-playing .sr-title{margin:0;font-size:20px;line-height:1.2}
.multiplayer-v3 #app.gh-playing .guess-form{width:100%;display:flex;flex-direction:column;gap:6px}
.multiplayer-v3 #app.gh-playing .answer{font-size:30px;padding:10px;overflow-wrap:anywhere}

body.gh-keyboard-short #app.gh-playing #main{grid-template-columns:1fr;grid-template-rows:36px minmax(0,1fr);gap:4px}
body.gh-keyboard-short #app.gh-playing .v3-play-nav,body.gh-keyboard-short #app.gh-playing .gh-match-header{display:none}
body.gh-keyboard-short #app.gh-playing #main>.gh-timer-bar{grid-column:1;grid-row:1}
body.gh-keyboard-short #app.gh-playing .gh-play-stage{grid-column:1;grid-row:2}
#app.gh-playing .gh-reader-page .riddle-question{font-size:19px;line-height:1.35;padding:8px;display:block;flex:none}
#app.gh-playing .gh-reader-page .scramble-letters{flex:none;min-height:55px}
#app.gh-playing .gh-reader-page .hear-clue{flex:none;min-height:75px}
#app.gh-playing .gh-reader-page .rather-options{height:240px;flex:none}
#app.gh-playing .gh-reader-page .mystery-evidence{height:220px;flex:none}
#app.gh-playing .gh-reader-page .odd-player-cards{height:180px;flex:none}

#app.gh-playing .gh-reader-page .picture-grid{height:min(240px,var(--reader-limit,240px));flex:none}
#app.gh-playing .gh-reader-page .memory-grid{height:min(260px,var(--reader-limit,260px));flex:none}
#app.gh-playing .gh-reader-page .spot-pair-scroll{height:min(360px,var(--reader-limit,360px));flex:none}
#app.gh-playing .gh-reader-page .wordsearch-scroll{height:min(280px,var(--reader-limit,280px));flex:none}
#app.gh-playing .gh-reader-page .zoom-frame{height:min(230px,var(--reader-limit,230px));flex:none}
#app.gh-playing .gh-reader-page .rank-sort-list{height:min(280px,var(--reader-limit,280px));flex:none}
#app.gh-playing .gh-reader-page .split-secret-cards{height:min(180px,var(--reader-limit,180px));flex:none}
#app.gh-playing .gh-reader-page .clash-count-controls{height:100px;flex:none}

#app.gh-playing .gh-reader-page>img,#app.gh-playing .gh-reader-page .artist-photo,#app.gh-playing .gh-reader-page .clue-photo{height:min(200px,var(--reader-limit,200px));max-height:var(--reader-limit,200px);object-fit:contain}
#app.gh-playing .gh-reader-page .artist-review-canvas{max-height:var(--reader-limit,230px)}
#app.gh-playing .gh-reader-page .gh-expanded-details{padding:0;margin:0}

#app.gh-playing .headband-live-instruction{font-size:12px;line-height:1.25;margin:0;flex:none}

/* Memory Mix-Up: the board consumes remaining height; badges and controls stay compact. */
#app.gh-playing .memory-count-12{grid-template-columns:repeat(4,minmax(0,1fr))}
#app.gh-playing .memory-count-4,#app.gh-playing .memory-count-6{grid-template-rows:repeat(2,minmax(0,1fr))}
#app.gh-playing .memory-count-9,#app.gh-playing .memory-count-12{grid-template-rows:repeat(3,minmax(0,1fr))}
#app.gh-playing .memory-selection-count{flex:none;margin:0;font-size:12px;line-height:1.3}
#app.gh-playing .memory-tile.selected .memory-position{background:#6f3a9d;color:white}
#app.gh-playing .memory-tile.selected::after{content:'✓';position:absolute;top:4px;right:4px;background:#6f3a9d;color:white;border-radius:50%;width:20px;height:20px;line-height:20px;text-align:center;font-size:14px}
.memory-reveals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
.memory-reveals>section{min-width:0}
.memory-reveals h3{margin:0 0 4px;font-size:14px}
#app.gh-playing .memory-reveals .memory-reveal-photos{gap:4px;margin:0}
#app.gh-playing .memory-reveals img{display:block;width:100%;height:80px;object-fit:cover;padding:0}
#app.gh-playing .memory-reveals figcaption{padding:3px;font-size:11px;overflow-wrap:anywhere}
#app.gh-playing .memory-result-summary{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
