/* One fixed 320 x 50 AdSense unit. The reserve never depends on ad state. */
:root{--ad-reserve:calc(74px + env(safe-area-inset-bottom,0px))}
html,body{margin:0;height:100%;min-height:100%;overflow:hidden}
body{padding-bottom:0}
.show-app{height:100vh;height:100dvh;min-height:0;overflow:hidden;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.show-app::after{content:"";display:block;flex:0 0 var(--ad-reserve);width:100%;pointer-events:none}
#advertising-slot{position:fixed;inset:auto 0 0;height:var(--ad-reserve);box-sizing:border-box;padding:4px env(safe-area-inset-right,0px) calc(4px + env(safe-area-inset-bottom,0px)) env(safe-area-inset-left,0px);display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:0;z-index:30}
.ad-label{font:700 10px/12px Nunito,Arial,sans-serif;color:#52688c}
.ad-frame{width:320px;height:50px;min-height:50px;max-width:100%;flex:none;overflow:hidden;background:transparent;line-height:0}
#noplp-ad-unit{display:inline-block;width:320px;height:50px}
#noplp-ad-unit[hidden]{display:none}
#noplp-ad-unit[data-ad-status="unfilled"]{visibility:hidden;pointer-events:none}
.stage-footer{min-height:30px;height:30px;padding:3px 12px;justify-content:flex-start;border-top:0;font-size:10px;line-height:24px}
.stage-footer>span{display:none}
.header-actions .fullscreen{order:10}
.notice{bottom:calc(var(--ad-reserve) + 36px)}
.home-screen{min-height:0;gap:clamp(8px,1.5vh,18px);padding-bottom:12px}
.game-screen{padding-bottom:10px}
.noplp-privacy-controls{position:fixed;left:62px;right:max(10px,env(safe-area-inset-right,0px));bottom:var(--ad-reserve);min-height:30px;z-index:31;display:flex;align-items:center;justify-content:flex-end;gap:12px}
.noplp-privacy-controls button,.noplp-privacy-controls a{font:700 10px/14px Nunito,Arial,sans-serif;color:#52688c;background:transparent;border:0;padding:5px 0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.noplp-privacy-controls button{min-height:30px}
.noplp-privacy-controls a{max-width:130px}
@media (max-width:360px){.noplp-privacy-controls{gap:8px}.noplp-privacy-controls button,.noplp-privacy-controls a{font-size:9px;line-height:12px;padding:2px 0}.noplp-privacy-controls a{max-width:102px}}
.noplp-privacy-controls :focus-visible{outline:3px solid #dc3679;outline-offset:2px;border-radius:4px}
#noplp-privacy-status{position:fixed;left:12px;right:12px;bottom:calc(var(--ad-reserve) + 34px);margin:0 auto;max-width:440px;z-index:40;font:700 12px/1.4 Nunito,Arial,sans-serif;color:#162653;background:#fff5ca;box-shadow:0 3px 16px #14264f22;border-radius:10px;padding:10px 12px;pointer-events:none}
#noplp-privacy-status:empty{display:none}
html:has([role="dialog"][data-state="open"]) .noplp-privacy-controls{visibility:hidden}
@media (max-width:319px){#noplp-ad-unit{visibility:hidden;pointer-events:none}.noplp-privacy-controls{gap:6px}.noplp-privacy-controls button,.noplp-privacy-controls a{font-size:9px}}
@media (min-width:701px) and (max-height:900px){
 .topbar{padding-top:10px;padding-bottom:10px}
 .home-screen .game-logo>span{font-size:48px}.home-screen .game-logo>span+span{font-size:80px}
 .home-screen .eyebrow{padding:6px 12px;font-size:11px}.home-pitch{font-size:16px;line-height:1.35}
 .demo-verse{padding:10px 22px}.demo-verse p{font-size:18px;margin-top:4px}
 .launch{height:48px}.home-meta{font-size:12px}.home-links button{height:30px}
 .has-saved-game .home-game-actions{flex-direction:row;align-items:center;gap:12px}
 .has-saved-game .resume-button{min-width:215px;height:48px}.home-screen.has-saved-game{gap:12px}
 .brief-panel{gap:12px;padding:8px 20px}.brief-panel>p{font-size:16px}.round-medallion{width:48px;height:48px}
 .brief-note{padding:12px 18px;font-size:13px}.winner-panel{gap:15px;padding:8px 0}.winner-trophy{width:68px;height:68px}.winner-trophy svg{width:38px;height:38px}
}
@media (max-width:700px) and (max-height:780px){
 .topbar{min-height:58px;padding-top:6px;padding-bottom:6px}.studio img{height:40px}
 .home-screen{padding:5px 12px 8px;gap:8px}.home-screen .eyebrow{font-size:10px;padding:5px 11px}
 .home-screen .game-logo>span{font-size:min(8.5vw,32px)}.home-screen .game-logo>span+span{font-size:min(13vw,49px)}
 .home-pitch{font-size:14px;line-height:1.3}.demo-verse{padding:7px 16px}.demo-verse p{font-size:15px;margin-top:4px}.tiny-label{font-size:10px}
 .home-links button{height:28px;font-size:12px}.launch-area{gap:3px}.launch{height:44px;font-size:15px}.home-meta{font-size:10px;gap:14px}
 .home-screen.has-saved-game{gap:6px}.has-saved-game>.eyebrow{display:none}.has-saved-game .home-game-actions{gap:6px}.has-saved-game .resume-button{height:37px;font-size:14px}
 .setup-screen{gap:11px;padding:6px 15px}.setup-screen h1{font-size:27px}.setup-screen>p{font-size:13px}.setup-screen>.eyebrow{font-size:10px;padding:5px 10px}
 .team-inputs{margin:3px 0}.team-input{padding:10px}.team-input label{margin-bottom:8px}.team-input-note{margin-top:6px}
 .game-screen{gap:6px;padding-bottom:8px}.score-team{padding:8px 10px}.score-team strong{font-size:23px}.score-team .team-name{font-size:12px}
 .auction-panel{gap:8px}.passage-preview{min-height:105px;padding:10px 15px}.passage-clue{font-size:23px;margin:7px 0}
 .auction-controls{gap:3px}.auction-controls h1{font-size:22px}.auction-context{font-size:12px;min-height:17px}
 .bid-value input{height:46px;font-size:44px!important}.bid-value>span{font-size:11px}.step-button{width:38px;height:38px}.bid-quick button{height:24px}
 .auction-buttons .primary-button,.auction-buttons .secondary-button{height:44px}
 .brief-panel{gap:8px;padding:4px}.brief-panel h1{font-size:23px}.brief-panel>p{font-size:13px;line-height:1.4}.brief-panel .eyebrow{font-size:10px;padding:5px 10px}
 .round-medallion{width:35px;height:35px;border-radius:11px}.round-medallion svg{width:20px;height:20px}.brief-note{padding:8px 10px;font-size:11px}
 .brief-panel .primary-button{height:44px;font-size:14px;flex-shrink:0}.challenge-summary{padding:9px 13px;gap:15px}.challenge-summary strong{font-size:22px}.challenge-summary strong span{font-size:10px}
 .translation-badge{font-size:10px}.verse-surface{padding:10px 13px;gap:7px}.challenge-panel{gap:6px}.challenge-bottom,.judge-panel{gap:6px}
 .challenge-bottom>.primary-button,.success-button,.fail-button{height:43px}.challenge-bottom p,.judge-panel p{font-size:11px;line-height:1.3}
 .result-panel{gap:8px}.result-symbol{width:38px;height:38px}.result-panel .eyebrow{font-size:10px;padding:5px 10px}.result-panel h1{font-size:27px}.result-amount{font-size:54px}
 .result-panel p{font-size:12px}.result-panel>.primary-button{height:44px}.result-panel .text-button{height:30px;font-size:12px}
 .winner-panel{gap:11px;padding:4px 0}.winner-panel h1{font-size:32px}.winner-trophy{width:48px;height:48px}.winner-trophy svg{width:28px;height:28px}.winner-panel .eyebrow{font-size:10px;padding:5px 10px}
 .winner-panel .primary-button{height:44px}.winner-panel .text-button{height:28px}
}

/* Short landscape: preserve the existing two-column game layout. */
@media (orientation:landscape) and (max-height:520px){
 .topbar{min-height:42px;height:42px;padding:3px 14px}.studio img{width:80px;height:32px}.compact-logo{width:105px}.compact-logo>span{font-size:12px!important}.compact-logo>span+span{font-size:22px!important}
 .header-actions .icon-button{width:31px;height:31px}.header-actions{gap:6px}.stage-footer{height:24px;min-height:24px;font-size:10px}
 .home-screen,.home-screen.has-saved-game{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;column-gap:28px;row-gap:4px;padding:4px 28px 8px;align-content:center;justify-items:center}
 .home-screen>.eyebrow{display:none}.home-screen .game-logo{grid-column:1;grid-row:1/3}.home-screen .game-logo>span{font-size:28px}.home-screen .game-logo>span+span{font-size:46px}
 .home-pitch{grid-column:1;grid-row:3;font-size:12px}.demo-verse{grid-column:2;grid-row:1;padding:4px 12px}.demo-verse .tiny-label{font-size:8px}.demo-verse p{font-size:12px;margin-top:1px}
 .launch-area{grid-column:2;grid-row:2;gap:2px}.home-meta{grid-column:2;grid-row:3;font-size:9px;gap:12px}.home-game-actions,.has-saved-game .home-game-actions{flex-direction:row;gap:8px}
 .launch{min-width:180px;height:35px;font-size:13px}.has-saved-game .launch{min-width:145px;padding:0 15px}.has-saved-game .resume-button{min-width:135px;height:35px;font-size:12px;padding:0 10px}
 .home-links button{height:23px;font-size:10px}.home-links svg{width:12px}.home-screen .home-pitch strong{font-weight:800}
 .setup-screen{display:grid;grid-template-columns:1fr 1fr;gap:5px 20px;padding:4px 25px;align-content:center;justify-items:center}
 .setup-screen>.eyebrow,.setup-screen>p{display:none}.setup-screen h1{font-size:22px;grid-column:1;grid-row:1}
 .team-inputs{grid-column:1;grid-row:2/4;max-width:360px;margin:0;gap:8px}.team-input{padding:7px}.team-input label{margin:0 0 5px;font-size:10px}.team-input label>span{width:18px;height:18px;font-size:10px}
 .team-input input{height:33px;font-size:15px!important;padding:6px}.team-input-note{font-size:9px;margin-top:3px}.setup-summary{grid-column:2;grid-row:1;font-size:11px}
 .setup-screen>.primary-button{grid-column:2;grid-row:2;height:38px;min-width:200px}.setup-screen>.text-button{grid-column:2;grid-row:3;height:26px;font-size:11px}
 .game-screen{display:grid;grid-template-columns:minmax(140px,.6fr) minmax(0,2fr);grid-template-rows:22px minmax(0,1fr);gap:5px 14px;max-width:1100px;padding:2px 14px 5px}
 .round-strip{grid-column:1;grid-row:1;font-size:10px}.round-pill{padding:3px 6px;font-size:9px}.round-pill>span{display:none}
 .game-screen>.scoreboard{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:7px;align-self:start}.score-team{padding:7px 9px}.score-team strong{font-size:21px}.score-team .team-name{font-size:11px}.bid-marker{font-size:8px}
 .auction-panel,.brief-panel,.challenge-panel,.result-panel{grid-column:2;grid-row:1/3;min-height:0}
 .auction-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px}.passage-preview{height:100%;min-height:0;padding:10px;justify-content:center;gap:8px}.passage-heading{font-size:10px}.passage-heading span:last-child{font-size:9px}.passage-clue{font-size:24px;margin:6px 0}.passage-info{font-size:10px}
 .auction-controls{gap:2px;padding:0}.turn-label{font-size:9px}.auction-controls h1{font-size:18px}.auction-context{font-size:10px;min-height:12px;line-height:1.2}.bid-stepper{gap:20px;margin:0}.bid-value input{height:36px;font-size:35px!important}.bid-value>span{font-size:9px}.step-button{width:30px;height:30px}.bid-quick{font-size:9px;gap:10px}.bid-quick button{height:20px;font-size:10px}
 .auction-buttons{flex-direction:row;gap:7px;margin-top:2px;max-width:none}.auction-buttons .primary-button,.auction-buttons .secondary-button{height:34px;font-size:11px;padding:0 9px;gap:5px}.auction-buttons .secondary-button{width:90px}.auction-buttons .primary-button{flex:1}
 .brief-panel{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;gap:5px 12px;padding:4px;align-content:center}.brief-panel>.round-medallion{display:none}.brief-panel>.eyebrow{grid-column:1;grid-row:1;font-size:9px;padding:4px 8px;justify-self:center}.brief-panel>h1{grid-column:1;grid-row:2;font-size:21px}.brief-panel>p{grid-column:1;grid-row:3;font-size:11px;line-height:1.3}.brief-note,.challenge-summary{grid-column:2;grid-row:1/3;font-size:10px;padding:8px;gap:4px}.brief-panel>.primary-button{grid-column:2;grid-row:3;height:36px;min-width:0;width:100%;font-size:12px;margin:0;padding:0 8px}.handoff-panel>.translation-badge{display:none}.challenge-summary strong{font-size:24px}.challenge-summary strong span{font-size:9px}
 .challenge-panel{gap:4px}.challenge-topline{font-size:10px}.timer{font-size:11px;padding:3px 8px}.verse-surface{padding:6px 10px;gap:4px;border-radius:13px}.passage-text{font-size:15px;line-height:1.5}.missing-word{min-width:30px;margin:0 1px}.challenge-bottom,.judge-panel{gap:3px;padding:0}.challenge-bottom p,.judge-panel p{font-size:10px;line-height:1.15}.challenge-bottom>.primary-button,.success-button,.fail-button{height:32px;font-size:12px;min-width:0}.challenge-bottom>.primary-button{width:100%}.passage-page.paginated{bottom:34px}.passage-viewport .passage-pagination{height:29px}.page-button{height:25px;width:30px}.passage-pagination{font-size:10px}
 .result-panel{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;align-content:center;gap:6px 15px}.result-symbol{display:none}.result-panel>.eyebrow{grid-column:1;grid-row:1;font-size:9px;padding:4px 7px}.result-panel>h1{grid-column:1;grid-row:2;font-size:23px}.result-amount{grid-column:1;grid-row:3;font-size:42px}.result-panel>p{grid-column:2;grid-row:1;font-size:11px}.result-panel>.primary-button{grid-column:2;grid-row:2;height:37px;min-width:0;font-size:12px;width:100%}.result-panel>.text-button{grid-column:2;grid-row:3;font-size:10px;height:28px}
 .stage-winner{display:flex}.winner-panel{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;align-content:center;gap:6px 25px;padding:0 15px}.winner-trophy{display:none}.winner-panel>.eyebrow{grid-column:1;grid-row:1;font-size:9px;padding:4px 8px}.winner-panel>h1{grid-column:1;grid-row:2/4;font-size:27px}.winner-panel>.scoreboard{grid-column:2;grid-row:1;gap:7px}.winner-panel>.primary-button{grid-column:2;grid-row:2;height:34px;min-width:0;width:100%;font-size:12px}.winner-panel>.text-button{grid-column:2;grid-row:3;height:25px;font-size:10px}
}

/* Keep interactive controls from being squeezed by long text. */
.home-screen,.setup-screen,.game-screen{min-width:0}
.round-strip,.challenge-topline,.challenge-bottom,.judge-panel,.passage-heading{flex-shrink:0}
.verse-surface,.passage-viewport{min-height:0;min-width:0}
.passage-heading{flex-wrap:wrap;row-gap:3px}
@media (orientation:landscape) and (min-height:340px) and (max-height:520px){
 .header-actions .icon-button{width:36px;height:36px}.topbar{height:46px;min-height:46px}
 .auction-buttons .primary-button,.auction-buttons .secondary-button,.brief-panel>.primary-button,.challenge-bottom>.primary-button,.success-button,.fail-button,.result-panel>.primary-button,.winner-panel>.primary-button{height:44px;flex-shrink:0}
 .passage-text{font-size:17px;line-height:1.55}.challenge-bottom p,.judge-panel p{font-size:11px}
 .auction-context{font-size:12px;line-height:1.3}.auction-controls h1{font-size:20px}
 .brief-panel>p,.result-panel>p{font-size:12px;line-height:1.4}
 .setup-screen>.primary-button{height:44px}.team-input input{height:38px;font-size:16px!important}
 .setup-summary{flex-wrap:wrap;justify-content:center;row-gap:3px}
}
@media (max-width:350px){
 .header-actions{gap:4px}.topbar{padding-left:10px;padding-right:10px}.compact-logo{transform-origin:left center;transform:rotate(-3deg) scale(.9)}
 .auction-buttons{gap:7px}.auction-buttons .secondary-button{width:96px;font-size:12px}.auction-buttons .primary-button{font-size:14px;padding:0 9px;gap:6px}
 .brief-panel h1,.result-panel h1{overflow-wrap:anywhere}.winner-panel h1{overflow-wrap:anywhere;font-size:30px}
 .setup-summary{flex-wrap:wrap;justify-content:center;row-gap:3px}
}

/* Small viewports retain access to all commands through internal panels only. */
@media (max-height:520px){
 .stage-footer{height:30px;min-height:30px}
 .home-screen,.setup-screen{overflow-y:auto;overscroll-behavior:contain}
 .game-screen{min-height:0}
 .auction-controls,.brief-panel,.result-panel,.winner-panel{overflow-y:auto;overscroll-behavior:contain;max-height:100%}
 .challenge-panel{min-height:0}.verse-surface{flex:1;min-height:40px}
}
@media (orientation:landscape) and (max-height:420px){
 .topbar{height:38px;min-height:38px;padding-top:2px;padding-bottom:2px}
 .header-actions .icon-button{width:32px;height:32px}
 .auction-controls h1{font-size:17px}.auction-context{font-size:10px}
 .auction-buttons .primary-button,.auction-buttons .secondary-button{height:38px}
 .auction-panel{gap:8px}.auction-controls{justify-content:flex-start}
 .home-screen,.home-screen.has-saved-game{gap:3px 16px;padding:3px 16px}
 .home-screen .game-logo>span{font-size:22px}.home-screen .game-logo>span+span{font-size:38px}
 .home-pitch{font-size:11px}.demo-verse{padding:3px 8px}
}
