@media(min-width:700px){.game .letter-tile{font-size:20px}.game .chain-row{gap:5px}.chain-board{padding:18px;gap:8px}.game .main{padding-top:26px}.hero{padding-top:36px}.hero-flare span{width:49px;height:54px;font-size:25px}}
@media(max-width:600px){.main{padding:15px 13px 26px}.mode-grid{grid-template-columns:1fr}.mode-card.featured{grid-column:span 1}.mode-card{min-height:84px;padding:12px}.mode-card.featured{min-height:95px}.mode-icon{font-size:26px}.hero h1{font-size:34px}.hero-flare{margin-top:19px}.hero-flare span{width:37px;height:40px}.achievements{grid-template-columns:1fr}.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.action-panel{padding:12px}.guess-form{flex-wrap:wrap}.guess-form .answer-field{flex:1 1 65%}.guess-form .btn-clear{flex:0 0 40px}.guess-form .btn-primary{flex:1 1 100%}.wager-metrics{grid-template-columns:repeat(2,1fr)}.speed-inputs{grid-template-columns:1fr}.score-name{font-size:11px}.score-side{padding:9px}.score-side strong{font-size:21px}.game-meta{font-size:11px}}
@media(max-width:390px){.app-header{height:55px}.brand{font-size:18px}.main{padding:11px 9px 23px}.chain-board{padding:7px;gap:5px}.chain-row{gap:2px;padding:2px}.letter-tile{border-radius:2px;font-size:clamp(9px,2.5vw,12px)}.row-actions{grid-template-columns:1fr}.row-action{padding:5px}.score-side strong{font-size:19px}.round-title{font-size:10px}.game-meta{margin-bottom:7px}.action-panel{margin-top:9px}.opponent-profile{grid-template-columns:repeat(3,1fr)}}
@media(max-width:340px){.letter-tile{font-size:9px}.chain-board{padding:5px}.chain-row{padding:1px}.mode-card small{font-size:11px}}
@media(orientation:landscape) and (max-height:550px){.app-header{height:47px}.game .chain-board{max-width:550px;margin:auto}.game .letter-tile{aspect-ratio:1.3/1}.main{padding-top:6px}.scoreboard{max-width:550px;margin:0 auto 6px}.game-meta{max-width:550px;margin:4px auto}.round-title{font-size:11px}.action-panel{max-width:650px;margin:8px auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
body.fast-motion *{animation-duration:.001ms!important;transition-duration:.001ms!important}

/* v1.4.0: keep game inputs and clock usable with mobile virtual keyboards. */
html,body{min-height:100%;} .shell{min-height:var(--wc-viewport-height,100dvh);}
.game-meta{position:sticky;top:0;z-index:15;background:#091a40;padding:8px 10px;border-radius:10px;}
.keyboard-open .game-meta{position:sticky;top:0;}
.keyboard-open .action-panel{position:sticky;bottom:0;z-index:16;background:#0a1b42;padding-bottom:max(8px,env(safe-area-inset-bottom));box-shadow:0 -8px 25px #0006;}
.keyboard-open .footer{display:none;}
@media(max-width:430px){.keyboard-open .guess-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;}.keyboard-open .guess-form [data-act="submit-guess"]{grid-column:1/-1;min-height:42px;}.keyboard-open .speed-inputs{gap:5px;}.keyboard-open .speed-inputs input{min-width:0;max-width:100%;}}

/* v2.6.1: Android keyboard-aware compact answer dock. */
.keyboard-row-preview{display:none}
@media(max-width:700px){
 body.keyboard-open .app-header,body.keyboard-open .game-toolbar,
 body.keyboard-open .broadcast-status,body.keyboard-open .contestant-reaction,
 body.keyboard-open .scoreboard,body.keyboard-open .game-progress{display:none!important}
 body.keyboard-open .game-meta{position:relative;top:auto;margin-bottom:6px}
 body.keyboard-open #answerPanel{position:fixed!important;left:8px;right:8px;bottom:auto!important;z-index:80;
   margin:0;padding:8px 10px 10px;border:2px solid var(--gold);border-radius:12px;
   box-shadow:0 0 0 4px #061126,0 6px 26px #000b;max-height:48vh;overflow-y:auto}
 body.keyboard-open #answerPanel .keyboard-row-preview{display:block;margin-bottom:6px}
 body.keyboard-open #answerPanel .keyboard-row-preview .chain-row{gap:2px;padding:2px}
 body.keyboard-open #answerPanel .keyboard-row-preview .letter-tile{font-size:clamp(9px,2.5vw,14px)}
 body.keyboard-open #answerPanel .eyebrow{font-size:10px;margin-bottom:4px}
 body.keyboard-open #answerPanel small{display:none}
 body.keyboard-open #answerPanel .guess-form{display:grid;grid-template-columns:minmax(0,1fr) 38px auto;gap:5px;align-items:center}
 body.keyboard-open #answerPanel .guess-form .answer-field{min-width:0;min-height:42px;font-size:16px;padding:7px}
 body.keyboard-open #answerPanel .guess-form .btn{min-height:42px;padding:6px 8px;font-size:11px}
 body.keyboard-open #answerPanel .guess-form [data-act="submit-guess"]{grid-column:auto}
 body.keyboard-open .game{padding-bottom:180px}
}

@media(max-width:700px){body.keyboard-open #answerPanel .keyboard-row-preview .letter-tile{font-size:clamp(12px,3.4vw,18px)}}

/* Player-selectable text sizing. Use scalable variables and protect 14-column rows. */
:root{--wc-text-scale:1}
:root[data-text-size="small"]{--wc-text-scale:.88}
:root[data-text-size="normal"]{--wc-text-scale:1}
:root[data-text-size="large"]{--wc-text-scale:1.18}
:root[data-text-size="extra-large"]{--wc-text-scale:1.36}
.game .letter-tile{font-size:clamp(9px,calc(3.8vw * var(--wc-text-scale)),calc(25px * var(--wc-text-scale)))}
@media(min-width:700px){.game .letter-tile{font-size:calc(20px * var(--wc-text-scale))}}
@media(max-width:390px){.game .letter-tile{font-size:clamp(9px,calc(3.6vw * var(--wc-text-scale)),calc(16px * var(--wc-text-scale)))}}
@media(max-width:340px){.game .letter-tile{font-size:calc(11px * var(--wc-text-scale))}}
.game .chain-row{min-width:0}
.game .letter-tile{overflow:hidden;white-space:nowrap}
body.keyboard-open #answerPanel .keyboard-row-preview .letter-tile{font-size:clamp(9px,calc(3.4vw * var(--wc-text-scale)),calc(18px * var(--wc-text-scale)))}
.guess-form .answer-field{font-size:calc(18px * var(--wc-text-scale))}
body.keyboard-open #answerPanel .guess-form .answer-field{font-size:calc(16px * var(--wc-text-scale))}
.game .round-title,.game .game-meta,.game .row-action>span{font-size:calc(12px * var(--wc-text-scale))}
.text-size-preview{display:flex;flex-direction:column;gap:6px;border:1px solid #4b7cbb;border-radius:9px;padding:12px;margin:8px 0 14px;background:#0c224e}
.text-size-preview strong{font-size:calc(17px * var(--wc-text-scale))}
.text-size-preview span{font-size:calc(15px * var(--wc-text-scale));letter-spacing:.03em}
