/* Reusable game lifecycle UI — preserves the neon arcade art direction. */
.arcade-game-panel{border:3px solid var(--cyan);box-shadow:7px 7px 0 var(--pink), 0 0 22px #25e7ff24}.game-flow-badges,.result-actions,.game-footer-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.game-state{margin:24px 0;padding:clamp(20px,4vw,42px);text-align:center;background:linear-gradient(135deg,#21104a,#151b47);border:3px solid var(--yellow);box-shadow:6px 6px 0 #ff4fd8}.game-state[hidden]{display:none}.game-state h2{color:var(--yellow);font-size:clamp(22px,4vw,34px);text-shadow:3px 3px 0 #f04cb9;margin:12px 0}.game-state p{max-width:560px;margin:10px auto 22px}.pixel-hero-mark{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 18px;background:var(--cyan);color:#1a1041;border:4px solid #fff;box-shadow:5px 5px 0 var(--pink);font-size:34px;font-weight:900}.playfield-kicker,.results-stamp{display:inline-block;padding:8px 12px;background:var(--pink);color:#190b35;font-weight:900;letter-spacing:.12em;transform:rotate(-1deg)}.engine-slot{max-width:520px;margin:22px auto;padding:22px;border:2px solid var(--cyan);background:#0e1230}.prototype-note{font-size:12px;color:var(--muted)}.result-score{font-size:clamp(64px,12vw,110px);line-height:1;color:var(--cyan);font-weight:900;text-shadow:5px 5px 0 #ff4fd8;margin:24px}.result-score small{font-size:22px;color:white;text-shadow:none}.result-actions{justify-content:center}.used-score{color:var(--cyan);font-size:24px;font-weight:900;margin:16px}.game-footer-actions{justify-content:flex-end}.engine-slot input{max-width:150px;padding:12px;background:#fff;color:#15102c;border:3px solid var(--pink);font:700 18px monospace}.engine-slot button{margin:6px}.guess-feedback{font-weight:900;color:var(--yellow);min-height:24px}.button.big{padding:16px 22px;min-height:52px}@media(max-width:600px){.game-shell-footer{gap:16px;align-items:flex-start;flex-direction:column}.game-footer-actions{justify-content:flex-start}.game-state{padding:20px 14px}}

/* Standalone game experience: the original homepage remains unchanged. */
.game-site-header{background:#120a30f5;border-bottom:2px solid var(--line-bright);box-shadow:0 5px 0 #ff4fd81b;backdrop-filter:blur(10px)}
.game-header-inner{min-height:66px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}
.game-header-inner .brand{justify-self:center;white-space:nowrap}
.game-menu-toggle{display:inline-flex;align-items:center;justify-self:start;gap:9px;min-height:42px;padding:0 12px;background:transparent;border:1px solid var(--line-bright);color:var(--text);font:800 10px var(--pixel);letter-spacing:.5px}
.game-menu-toggle:hover,.game-menu-toggle[aria-expanded="true"]{border-color:var(--cyan);color:var(--cyan);background:#25e7ff0c}
.hamburger-lines{font:700 19px/1 sans-serif}.game-header-account{justify-self:end;color:var(--muted);font:800 10px var(--pixel);letter-spacing:.4px}.game-header-account:hover{color:var(--cyan)}
.game-menu{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;padding:0 0 20px}.game-menu[hidden]{display:none}.game-menu-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px}.game-menu-group .section-meta{grid-column:1/-1;margin-bottom:3px}.game-menu-group a{padding:10px 12px;border:1px solid var(--line);background:var(--panel-deep);font-size:12px}.game-menu-group a:hover{border-color:var(--pink);color:var(--cyan)}
@media(max-width:600px){.game-header-inner{min-height:60px;grid-template-columns:1fr auto 1fr;gap:6px}.game-header-inner .brand{gap:5px;font-size:11px;letter-spacing:-.5px}.game-header-inner .brand img{width:27px;height:27px}.game-menu-toggle{padding:0 8px;gap:5px;font-size:9px}.game-header-account{font-size:9px}.game-menu{grid-template-columns:1fr;gap:16px}.game-menu-group{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Standalone per-game layout: preserves the approved Midnight Arcade palette and pixel-arcade styling. */
body:has(.standalone-page){min-height:100vh;background-color:#100a2e;background-image:radial-gradient(ellipse at 50% 22%,#35206a 0%,#17103b 42%,#0b0821 100%);background-attachment:fixed}
.game-site-header{position:relative;background:#100a2ef5;border-bottom:2px solid #493078;box-shadow:0 4px 0 #ff4fd81b}
.game-site-header .brand{font-size:16px}.game-site-header .brand-name span{color:var(--yellow)}
.standalone-page{min-height:calc(100vh - 72px);padding:22px 0 28px}
.standalone-wrap{width:min(calc(100% - 28px),560px);margin:0 auto}
.standalone-heading{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:10px;text-align:center;margin:0 auto 16px}
.standalone-title-group h1{margin:0;color:var(--yellow);font-size:clamp(21px,4vw,26px);letter-spacing:-1.2px;text-shadow:2px 2px 0 #08051b}
.standalone-title-group p{margin:5px 0 0;color:#e1d5ff;font-size:12px;font-weight:700}
.standalone-title-group .daily-countdown{color:#b8acd9;font-size:11px}.daily-countdown strong{color:var(--cyan);font-family:var(--pixel)}
.standalone-tools{display:flex;gap:6px;justify-self:end;padding-top:2px}
.mini-tool{display:grid;place-items:center;width:35px;height:35px;border:2px solid #7b5aab;background:#20134c;color:var(--text);box-shadow:2px 2px 0 #08051b;font:900 17px var(--pixel)}
.mini-tool img{width:19px;height:19px;filter:brightness(0) invert(1)}.mini-tool:hover{border-color:var(--cyan);color:var(--cyan)}
.mode-switch{margin-bottom:12px;display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border:2px solid #7c56a8;border-radius:8px;background:#160d39;box-shadow:3px 3px 0 #08051b}
.mode-option{min-height:38px;border:1px solid transparent;border-radius:5px;background:transparent;color:#c5b6f3;font:800 12px var(--pixel)}.mode-option.is-selected{background:var(--yellow);border-color:#fff0a1;color:#21113f;box-shadow:0 2px 0 #bd7b35}.mode-option:disabled{opacity:1;cursor:not-allowed;color:#b7a8d6}
.region-line{display:flex;align-items:center;justify-content:center;gap:10px;margin:13px 0 15px;color:#e0d3ff;font:800 12px var(--pixel)}
.region-line select{max-width:180px;min-height:38px;padding:0 30px 0 10px;border:2px solid #7951a8;border-radius:5px;background:#1b1246;color:white;font:700 12px var(--pixel)}
.quick-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.quick-stat{min-height:75px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:2px solid #52347f;border-radius:10px;background:linear-gradient(145deg,#2b1b60,#1b1243);box-shadow:3px 3px 0 #08051b}
.quick-stat strong{color:var(--yellow);font:900 24px/1.1 var(--pixel)}.quick-stat span{color:#e0d3ff;font:800 11px var(--pixel);text-transform:uppercase}
.item-subline{text-align:center;margin:13px 0 8px;font:700 11px var(--pixel);color:#c8b9ed}
.round-dots{display:flex;justify-content:center;gap:7px;margin:0 auto 24px}.round-dots span{display:block;width:13px;height:13px;border:2px solid #a66bdf;border-radius:50%;background:#1a103f;box-shadow:1px 1px 0 #08051b}.round-dots span.active{background:var(--cyan);border-color:#b2f8ff;box-shadow:0 0 9px #25e7ff70}
.interchange-card{position:relative;width:min(100%,330px);min-height:475px;margin:0 auto;padding:18px 20px 24px;display:flex;align-items:stretch;justify-content:center;overflow:hidden;background:linear-gradient(145deg,#35216c,#21134d 55%,#180e3b);border:3px solid #b58cff;border-radius:8px;box-shadow:7px 7px 0 #08051b,0 0 24px #b58cff20,inset 0 0 0 5px #100a2e}
.interchange-card:before{content:"";position:absolute;inset:10px;pointer-events:none;border:1px solid #7750a5;border-radius:4px;background:repeating-linear-gradient(0deg,#ffffff04 0 2px,transparent 2px 5px)}
.interchange-card:after{content:"Midnight Arcade  •  DAILY ARCADE";position:absolute;bottom:17px;left:0;right:0;text-align:center;color:#9888cb;font:700 8px var(--pixel);letter-spacing:1px;pointer-events:none}
.game-state.card-ready,.game-state.card-playing,.game-state.card-results,.game-state.card-used{position:relative;z-index:1;width:100%;margin:8px 0 20px;padding:24px 6px 26px;text-align:center;background:transparent;border:0;box-shadow:none;align-self:stretch}
.game-state.card-ready:before,.game-state.card-playing:before,.game-state.card-results:before,.game-state.card-used:before{display:none}
.card-ready .item-art{height:165px;display:grid;place-items:center;margin:0 auto 18px;color:var(--yellow)}
.item-art span{display:grid;place-items:center;width:128px;height:128px;border:3px solid var(--cyan);background:linear-gradient(145deg,#36256c,#17103a);color:var(--yellow);font:900 56px var(--pixel);text-shadow:4px 4px 0 #ff4fd8;box-shadow:5px 5px 0 #08051b,0 0 24px #25e7ff24;transform:rotate(-3deg)}
.item-art.art-lowball span{border-color:#25e7ff}.item-art.art-pixel-pairs span{color:#ff4fd8}.item-art.art-word-forge span{color:#ffe45c}.item-art.art-gridlock span{color:#70ff9b}.item-art.art-number-drop span{color:#ff9c45}.item-art.art-memory-lane span{color:#b58cff}.item-art.art-mystery-cabinet span{color:#ffe45c}
.card-ready h2,.card-playing h2,.card-results h2,.card-used h2{color:#fff8f0;font:900 18px var(--pixel);text-shadow:2px 2px 0 #08051b;margin:8px 0}
.card-ready>p,.card-playing>p,.card-results>p,.card-used>p{font-size:12px;line-height:1.55;color:#c5b6f3;margin:10px auto 18px;max-width:230px}
.card-ready .game-flow-badges{justify-content:center;gap:6px;margin:12px 0 18px}.card-ready .score-badge{font-size:9px;padding:5px 7px}
.lock-button{width:min(100%,190px);margin:0 auto;background:var(--yellow)!important;border-color:#fff0a1!important;color:#21113f!important;box-shadow:0 5px 0 #bd7b35!important;font-size:12px!important}
.card-playing .engine-slot{padding:14px 8px;background:#150d35;border:2px solid var(--cyan);color:white}.card-playing .engine-slot p{font-size:12px}.card-playing .button,.card-results .button,.card-used .button{font-size:10px}
.card-results .result-score{font-size:62px;margin:18px 0;color:var(--cyan);text-shadow:3px 3px 0 #ff4fd8}.card-results .result-actions{justify-content:center}.card-used .pixel-hero-mark{width:58px;height:58px;font-size:26px;margin:0 auto 16px}
.standalone-footer{text-align:center;margin:18px auto 0;max-width:390px}.sound-control{border:0;background:transparent;color:#c5b6f3;font:800 11px var(--pixel);padding:6px 12px;min-height:32px}.sound-control:hover{color:var(--yellow)}.standalone-legal{display:flex;justify-content:center;gap:14px;margin:7px 0;color:#b2a3d8;font-size:10px}.standalone-legal a:hover{color:var(--cyan)}.standalone-footer>p{max-width:370px;margin:8px auto 0;color:#9888cb;font-size:10px;line-height:1.5}.standalone-hidden-actions{display:none}.standalone-site-footer{display:none}
@media(max-width:480px){.standalone-page{padding-top:16px}.standalone-wrap{width:min(calc(100% - 22px),420px)}.standalone-heading{grid-template-columns:1fr auto;gap:6px}.standalone-heading-spacer{display:none}.standalone-title-group{text-align:left}.standalone-tools{grid-column:2;grid-row:1}.standalone-title-group h1{font-size:22px}.standalone-title-group p{font-size:11px}.mode-option{font-size:10px}.quick-stats{gap:7px}.quick-stat{min-height:67px}.quick-stat strong{font-size:21px}.quick-stat span{font-size:9px}.round-dots{margin-bottom:18px}.interchange-card{min-height:440px;padding:12px 14px 22px;width:min(100%,310px)}.card-ready .item-art{height:145px}.item-art span{width:112px;height:112px;font-size:48px}.game-state.card-ready,.game-state.card-playing,.game-state.card-results,.game-state.card-used{padding-top:18px}.standalone-footer>p{font-size:9px}}


/* Per-game help and extended-stat popups */
.game-popup-backdrop[hidden]{display:none!important}.game-popup-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:#08051bd9;backdrop-filter:blur(5px)}.game-popup{position:relative;width:min(100%,440px);max-height:min(85vh,720px);overflow:auto;padding:28px 24px 22px;background:linear-gradient(145deg,#30205f,#160d35);border:3px solid #b58cff;border-radius:9px;box-shadow:7px 7px 0 #050312,0 0 30px #b58cff24;color:#f5edff;text-align:center}.game-popup:before{content:"";position:absolute;inset:7px;pointer-events:none;border:1px solid #7750a5;border-radius:4px}.game-popup>*{position:relative}.game-popup-close{position:absolute;z-index:2;right:12px;top:9px;width:32px;height:32px;border:1px solid #8c65bb;background:#1a103d;color:#fff;font:700 24px/1 sans-serif}.popup-kicker{margin:0 0 9px;color:var(--cyan);font:700 10px var(--pixel);letter-spacing:1px}.game-popup h2{margin:0 24px 12px;color:var(--yellow);font:900 18px var(--pixel);line-height:1.5}.game-popup>p:not(.popup-kicker):not(.popup-footnote){color:#d7c9f6;font-size:13px;line-height:1.6}.popup-instructions{margin:16px 0;padding:15px;text-align:left;white-space:pre-line;line-height:1.7;font-size:13px;background:#120a30;border:1px solid #65458f;color:#fff}.popup-done{margin-top:12px;min-width:150px}.extended-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0}.extended-stats-grid>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:75px;padding:10px 6px;background:#160d39;border:1px solid #65458f}.extended-stats-grid strong{color:var(--yellow);font:900 20px var(--pixel)}.extended-stats-grid span{color:#c5b6f3;font:700 9px var(--pixel);text-align:center}.stats-popup-game{margin:0}.game-popup .popup-footnote{font-size:10px;line-height:1.5;color:#a99acb}@media(max-width:420px){.game-popup{padding:26px 16px 18px}.game-popup h2{font-size:15px}.extended-stats-grid>div{min-height:68px}}

/* Two-font system: pixel display typography for game identity; readable sans-serif for gameplay copy. */
.standalone-title-group h1,.game-popup h2,.extended-stats-grid strong,.extended-stats-grid span{font-family:var(--pixel)}
.standalone-title-group p,.game-popup>p:not(.popup-kicker):not(.popup-footnote),.popup-instructions,.popup-footnote,.card-ready>p,.card-playing>p,.card-results>p,.card-used>p{font-family:var(--body)}

/* Keep gameplay score numerals in the original monospaced arcade style; descriptions use the reading font. */
.result-score,.used-score,.extended-stats-grid strong,.extended-stats-grid span{font-family:"Courier New",monospace !important;font-variant-numeric:tabular-nums;}
.game-card p,.standalone-title-group>p:not(.daily-countdown),.game-popup>p:not(.popup-kicker):not(.popup-footnote),.popup-instructions,.popup-footnote,.card-ready>p,.card-playing>p,.card-results>p,.card-used>p{font-family:var(--body),Arial,Helvetica,sans-serif;font-weight:500;}


/* Midnight Arcade Template v1.0 header drawer: scoped to standalone game pages only. */
.game-site-header .game-header-inner{width:auto;max-width:none;margin-left:0;margin-right:0;padding-left:20px;padding-right:20px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.game-site-header .game-header-inner>.game-menu-toggle{justify-self:start}
.game-site-header .game-header-inner>.brand{justify-self:center;position:relative;left:auto;transform:none}
.game-site-header .game-header-inner>.game-header-account{justify-self:end;white-space:nowrap}
.game-menu-backdrop[hidden],.game-menu[hidden]{display:none!important}
.game-menu-backdrop{position:fixed;inset:0;z-index:1090;background:transparent}
.game-menu{position:fixed;z-index:1100;top:0;bottom:0;left:0;width:min( min(88vw,360px), 100%);max-width:100%;height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;gap:0;overflow-y:auto;padding:20px 18px 28px;background:#120a30;border:0;border-right:3px solid var(--cyan);box-shadow:8px 0 0 #ff4fd81c,12px 0 30px #05031280;transform:translateX(-105%);transition:transform .22s ease;visibility:hidden}
.game-menu:not([hidden]){transform:translateX(0);visibility:visible}
.game-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 18px;border-bottom:2px solid var(--line);flex-shrink:0}
.game-menu-heading .section-meta{color:var(--cyan)}
.game-menu-close{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:2px solid var(--pink);background:var(--panel-deep);color:var(--text);font:700 27px/1 Arial,sans-serif;cursor:pointer}
.game-menu-close:hover{background:var(--pink);color:#160d25}
.game-menu-content{display:grid;grid-template-columns:1fr;gap:25px;padding-top:22px}
.game-menu-group{display:grid;grid-template-columns:1fr;gap:8px}
.game-menu-group .section-meta{grid-column:auto;margin:0 0 3px;color:var(--yellow)}
.game-menu-group a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border:2px solid var(--line);background:#1a103b;color:var(--text);font:700 11px var(--pixel);line-height:1.5}
.game-menu-group a:hover,.game-menu-group a:focus-visible{border-color:var(--cyan);background:#25e7ff0c;color:var(--cyan)}
body.game-menu-open{overflow:hidden}
@media(max-width:600px){
 .game-site-header .game-header-inner{width:auto;max-width:none;margin-left:0;margin-right:0;padding-left:10px;padding-right:10px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:5px}
 .game-site-header .game-header-inner>.game-menu-toggle{padding:0 7px;gap:5px;min-width:0}
 .game-site-header .menu-toggle-label{font-size:8px}
 .game-site-header .game-header-inner>.brand{font-size:10px;gap:4px;letter-spacing:-.5px}
 .game-site-header .game-header-inner>.brand img{width:25px;height:25px}
 .game-site-header .game-header-inner>.game-header-account{font-size:8px}
}
@media(prefers-reduced-motion:reduce){.game-menu{transition:none}}

/* Mobile QA pass: protect the shared header and drawer at narrow viewport widths. */
.game-site-header{position:relative;z-index:1080}
.game-site-header .game-header-inner{box-sizing:border-box;width:100%;}
.game-menu{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.game-menu-backdrop{touch-action:manipulation}
.game-menu-close,.game-menu-toggle,.game-header-account{touch-action:manipulation}
.game-menu-group a{min-height:44px;box-sizing:border-box}
@media(max-width:380px){
 .game-site-header .game-header-inner{padding-left:8px;padding-right:8px;column-gap:4px}
 .game-site-header .game-header-inner>.game-menu-toggle{padding:0 5px;gap:4px}
 .game-site-header .menu-toggle-label{font-size:7px;letter-spacing:0}
 .game-site-header .game-header-inner>.brand{font-size:9px;gap:3px;letter-spacing:-.6px}
 .game-site-header .game-header-inner>.brand img{width:22px;height:22px}
 .game-site-header .game-header-inner>.game-header-account{font-size:7px;letter-spacing:0}
}
@media(max-width:320px){
 .game-site-header .game-header-inner>.brand img{display:none}
 .game-site-header .game-header-inner>.brand{font-size:8px}
 .game-site-header .game-header-inner>.game-menu-toggle{font-size:7px}
}

/* The drawer lives directly in body, above its backdrop and outside the header. */
body>.game-menu{z-index:1100}
body>.game-menu-backdrop{z-index:1090}
.game-state button:disabled{cursor:not-allowed;opacity:.75}
/* Midnight Arcade is wider than the former wordmark; retain the centred header. */
@media(max-width:480px){.game-site-header .brand-name{font-size:11px}}
@media(max-width:380px){.game-site-header .brand-name{font-size:9px}}
@media(max-width:340px){.game-site-header .brand-name{font-size:8px}}

/* Keep the selected logo independently centred between Menu and Account. */
.game-site-header .game-header-inner>.brand .brand-logo{display:block;width:180px;height:54px}
@media(max-width:600px){.game-site-header .game-header-inner>.brand .brand-logo{width:166px;height:50px}}
@media(max-width:340px){.game-site-header .game-header-inner>.brand .brand-logo{width:150px;height:48px}}
