:root{color-scheme:dark;--ink:#170e2b;--cream:#fff1ca;--gold:#ffbd45;--muted:#cebfdf;font-family:'Courier New',monospace;font-weight:700;background:var(--ink);color:var(--cream)}
.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);pointer-events:none;visibility:hidden}
*{box-sizing:border-box}body{margin:0}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait;opacity:.7}button:focus-visible{outline:3px solid white;outline-offset:4px}button,canvas{touch-action:manipulation}canvas{image-rendering:pixelated;display:block}button:hover{filter:brightness(1.1)}[hidden]{display:none!important}
.intro{max-width:1200px;margin:auto;min-height:100svh;padding:24px max(20px,env(safe-area-inset-right)) 24px max(20px,env(safe-area-inset-left));display:flex;flex-direction:column;justify-content:center;gap:24px}
.title{text-align:center}.title p{margin:0;font-size:16px;letter-spacing:.25em}.title h1{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(44px,7vw,84px);line-height:1;margin:6px 0;color:var(--gold);letter-spacing:.025em;text-shadow:3px 3px 0 #8e431b,6px 6px 0 #05020c}.title h1 span{color:#ffd66e}
.cast{display:flex;align-items:stretch;gap:32px}.player-choice{flex:1.05;min-width:0}.player-choice h2{font-size:18px;color:var(--gold);text-align:center;margin:0 0 10px}.pickers{display:flex;gap:14px}.character{position:relative;flex:1;min-width:0;border:2px solid #604773;background:#251839;border-radius:12px;padding:8px 10px 12px;transition:border-color .15s,background .15s}.character.selected{border-color:var(--gold);background:#35263b;box-shadow:0 4px 0 #8d532c}.character.selected:before{content:'PLAYER';position:absolute;top:6px;left:6px;background:var(--gold);color:var(--ink);font-size:11px;padding:3px 5px;z-index:1}.character canvas{width:100%;height:auto;max-height:180px;object-fit:contain}.character strong{font-size:24px;display:block;margin-top:4px}.character .role{font-size:14px;color:var(--muted);display:block;margin-top:5px;line-height:1.3}
.pursuers{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.pursuers>p{font-size:14px;color:var(--muted);text-align:center;margin:0 0 12px;line-height:1.3}.plush-line{display:flex;justify-content:center;gap:12px}.plush-line figure{margin:0;flex:1;min-width:0}.plush-line canvas{width:100%;height:auto;max-height:156px;object-fit:contain;filter:drop-shadow(0 0 9px #ffffff70) drop-shadow(0 0 18px #ffffff24)}.plush-line figcaption{text-align:center;font-size:17px;margin-top:9px}
.intro-bottom{display:flex;align-items:center;gap:20px;padding-top:16px;border-top:1px solid #604773}.food-guide{display:flex;flex:1;gap:14px;min-width:0}.food-guide>div{display:flex;align-items:center;flex:1;min-width:0;background:#30203e;border:1px solid #816340;border-radius:10px;padding:10px;gap:10px}.food-guide canvas{width:80px;height:80px;flex:none}.food-guide p{margin:0}.food-guide strong{font-size:19px;line-height:1.2;display:block;color:var(--gold)}.food-guide span{font-size:14px;line-height:1.35;display:block;color:var(--muted);margin-top:5px}.primary{border:0;border-bottom:5px solid #ab5925;background:var(--gold);color:var(--ink);padding:14px 22px;border-radius:7px;font-size:18px;font-weight:900;min-height:48px}.primary:active{transform:translateY(2px)}.start-block{flex:0 0 235px;text-align:center}.start-block p{font-size:14px;color:var(--muted);line-height:1.4;margin:9px 0 0}.intro-footer{text-align:center;font-size:15px;line-height:1.5;color:var(--muted)}.intro-footer p{margin:4px 0}.prize-line{color:var(--gold)}.separator{color:#a888bd;margin:0 4px}
.game{height:100svh;height:100dvh;overflow:hidden;padding:max(6px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:5px;background:radial-gradient(ellipse at center,#231039,var(--ink))}.hud{display:flex;align-items:center;gap:clamp(10px,1.5vw,22px);min-height:44px}.hud-brand{font-size:20px;line-height:1;color:var(--gold)}.hud-brand span{display:block;letter-spacing:.1em}.stat{white-space:nowrap}.stat>span{font-size:12px;color:var(--muted);display:block;margin-bottom:3px}.stat strong{font-size:21px}#lives{color:#ff8497}.panic{flex:1;min-width:75px;max-width:220px;margin-left:auto}.panic>span{font-size:12px;display:block;margin-bottom:7px}.panic>div{height:6px;background:#38234d;border-radius:3px;overflow:hidden}.panic i{display:block;height:100%;background:linear-gradient(90deg,#c7abff,#ff626e);width:0;transition:width .3s}.icon-button{border:1px solid #73588d;background:#2b1b3d;border-radius:7px;min-width:44px;min-height:44px;padding:7px;font-size:14px}.play-area{display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;gap:10px}.board-wrap{flex:1;min-width:0;min-height:0;height:100%;display:flex;align-items:center;justify-content:center}#board{touch-action:none;max-width:100%;max-height:100%;width:auto;height:auto;border-radius:6px;flex:none;object-fit:contain}.controls{width:158px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.dpad{display:grid;grid-template:repeat(3,48px)/repeat(3,48px);gap:4px;touch-action:none}.dpad button{border:1px solid #9671bb;border-bottom:3px solid #38204f;background:#493265;color:#fff0cc;font-size:25px;border-radius:9px;touch-action:none;user-select:none;-webkit-user-select:none}.dpad button:active,.dpad button.pressed{background:#9364ce}.dpad [data-dir=up]{grid-area:1/2}.dpad [data-dir=left]{grid-area:2/1}.dpad [data-dir=right]{grid-area:2/3}.dpad [data-dir=down]{grid-area:3/2}.dpad-center{grid-area:2/2;display:grid;place-items:center;color:#a17ec5;font-size:24px}.control-hint{font-size:12px;color:var(--muted);text-align:center;line-height:1.4;margin:0}.rotate-tip{display:none;font-size:14px;text-align:center;color:var(--gold);max-width:260px;margin:0}.game-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;min-height:20px;color:var(--muted)}#power-status{color:var(--gold);text-align:center}
.overlay{position:fixed;inset:0;background:#10081ddd;z-index:10;display:grid;place-items:center;padding:16px;backdrop-filter:blur(5px);overflow:auto}.dialog{background:#281939;border:2px solid #9671bb;border-radius:14px;padding:clamp(20px,4vw,42px);text-align:center;width:min(490px,100%);max-height:100%;overflow:auto;box-shadow:0 10px 0 #0c0713}.eyebrow{font-size:14px;letter-spacing:.16em;color:var(--gold)}.dialog h2{font-size:clamp(25px,4vw,34px);line-height:1.2;margin:20px 0}.dialog>p:not(.eyebrow){font-size:16px;color:var(--muted);line-height:1.5}.dialog button{display:block;width:100%;margin-top:16px}.secondary{border:0;background:none;padding:12px;font-size:17px;min-height:44px;color:var(--muted);text-decoration:underline}
@media(orientation:landscape) and (max-height:540px){.intro{padding-top:10px;padding-bottom:10px;gap:10px}.title h1{font-size:36px;margin:3px 0}.title p{font-size:12px}.cast{gap:24px}.player-choice h2{font-size:16px;margin-bottom:6px}.character{padding:4px 6px 6px}.character canvas{max-height:84px}.character strong{font-size:18px;margin-top:0}.character .role{font-size:12px;margin-top:3px}.character.selected:before{font-size:10px;padding:2px 3px}.plush-line canvas{max-height:100px}.plush-line figcaption{font-size:16px;margin-top:5px}.pursuers>p{font-size:12px;margin-bottom:8px}.intro-bottom{padding-top:8px;gap:12px}.food-guide{gap:10px}.food-guide>div{padding:6px;gap:7px}.food-guide canvas{width:56px;height:56px}.food-guide strong{font-size:16px}.food-guide span{font-size:12px}.start-block{flex-basis:185px}.start-block .primary{font-size:16px;padding:10px 12px}.start-block p{font-size:12px;margin-top:5px}.intro-footer{font-size:14px;line-height:1.35}.intro-footer p{margin:4px 0}.hud{gap:10px}.hud-brand{font-size:17px}.stat strong{font-size:19px}.panic>span{font-size:11px}.game-footer{font-size:12px}.controls{width:150px}.dpad{grid-template:repeat(3,46px)/repeat(3,46px);gap:3px}}
@media(orientation:landscape) and (max-width:700px){.intro{padding-left:14px;padding-right:14px}.cast{gap:16px}.pickers{gap:8px}.character .role{min-height:32px}.plush-line{gap:5px}.intro-bottom{flex-wrap:wrap}.food-guide{flex-basis:100%}.food-guide canvas{width:58px;height:58px}.start-block{flex-basis:100%;display:flex;align-items:center;justify-content:center;gap:14px}.start-block p{max-width:185px;text-align:left;margin:0;font-size:13px}.intro-footer p{display:flex;flex-wrap:wrap;justify-content:center;column-gap:6px}.hud-brand,.panic{display:none}.hud{gap:10px}.stat:first-of-type{margin-right:auto}.controls{width:140px}.dpad{grid-template:repeat(3,44px)/repeat(3,44px)}.game-footer{font-size:12px}}
@media(orientation:portrait){.intro{gap:24px;padding-top:24px;padding-bottom:24px}.cast{flex-direction:column;gap:24px;align-items:center}.player-choice{width:100%;max-width:480px}.pursuers{width:100%;max-width:420px}.plush-line canvas{max-height:135px}.intro-bottom{flex-direction:column;gap:18px}.food-guide{width:100%;gap:10px}.food-guide>div{flex-direction:column;text-align:center;padding:12px 8px;gap:5px}.food-guide strong{font-size:18px}.food-guide canvas{width:80px;height:80px}.start-block{flex:auto;width:100%}.start-block button{width:100%}.intro-footer{font-size:15px}.intro-footer p{margin:10px 0;display:flex;flex-wrap:wrap;justify-content:center;column-gap:5px}.intro-footer p>span:not(.separator),.prize-line{display:block}.play-area{flex-direction:column;gap:12px}.board-wrap{width:100%;height:0;flex:1;align-items:center}.controls{width:100%;flex:none;justify-content:center;gap:6px}.dpad{grid-template:repeat(3,clamp(44px,6dvh,56px))/repeat(3,clamp(44px,6dvh,56px));gap:4px}.hud{flex-wrap:wrap;gap:8px}.hud-brand{display:none}.stat strong{font-size:18px}.panic{order:2;max-width:none;width:100%;flex:auto}.panic>span{font-size:12px}.game-footer{font-size:12px}.game-footer>span{max-width:28%}}
@media(orientation:portrait) and (max-width:350px){.intro{padding-left:12px;padding-right:12px}.character .role{font-size:13px}.title h1{font-size:40px}.food-guide strong{font-size:17px}.hud{gap:6px}.hud .stat{flex:1}.icon-button{font-size:13px}.game-footer{font-size:11px}.dpad{grid-template:repeat(3,48px)/repeat(3,48px);gap:4px}.controls{gap:8px}.rotate-tip{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(orientation:landscape) and (min-width:701px) and (max-height:420px){.intro{padding-top:8px;padding-bottom:8px;gap:8px}.character canvas{max-height:78px}.intro-footer p{margin:2px 0}}
/* Prize claim and thank-you layouts. */
.dialog--won{width:min(760px,100%);padding:24px;border-color:var(--gold);background:radial-gradient(ellipse at top,#422347,#281939 65%)}.dialog--won .eyebrow{margin:0 0 10px;font-size:13px}.dialog--won h2{max-width:620px;margin:0 auto 22px;font-size:clamp(25px,3.6vw,34px);line-height:1.15}.win-reward{display:grid;grid-template-columns:.85fr 1.15fr;align-items:stretch;gap:24px;text-align:left}.reward-ticket{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:2px dashed #ab793d;border-radius:12px;padding:18px 12px;background:#ffbf4510;color:var(--gold)}.reward-ticket img{image-rendering:pixelated;object-fit:contain;filter:drop-shadow(0 0 12px #ffc44d50);margin-bottom:8px}.reward-ticket p{margin:0;font-size:18px;line-height:1.4}.reward-amount{font-size:80px;line-height:1.05;letter-spacing:-.07em;padding-right:.07em;color:#ffe49a;text-shadow:3px 4px 0 #8e431b}.reward-form{min-width:0}.reward-intro{font-size:15px;line-height:1.4;color:var(--muted);margin:0 0 15px}.reward-form label{display:block;font-size:15px;margin:12px 0 6px}.reward-form input{font:inherit;font-size:16px;color:var(--cream);background:#170e2b;border:1px solid #9271ac;border-radius:7px;min-height:46px;padding:11px 12px;width:100%;min-width:0}.reward-form input::placeholder{color:#b3a0c6;font-weight:400}.reward-form input:focus{outline:2px solid var(--gold);outline-offset:2px}.reward-form .primary{margin-top:18px;width:100%}.reward-status{font-size:14px;line-height:1.4;color:var(--muted);margin-bottom:0}.dialog--won #choose{margin-top:14px}
@media(orientation:landscape) and (max-height:540px){.dialog--won{padding:14px 20px}.dialog--won .eyebrow{font-size:12px;margin-bottom:6px}.dialog--won h2{font-size:25px;margin-bottom:12px;max-width:650px}.win-reward{gap:20px}.reward-ticket{padding:10px}.reward-ticket img{width:44px;height:44px;margin-bottom:0}.reward-amount{font-size:62px}.reward-ticket p{font-size:16px}.reward-intro{font-size:13px;margin-bottom:6px}.reward-form label{font-size:14px;margin:7px 0 4px}.reward-form input{min-height:42px;padding:8px 10px}.reward-form .primary{margin-top:10px;min-height:44px;padding:8px 16px}.dialog--won #choose{margin-top:5px;padding:8px;min-height:36px;font-size:15px}}
@media(max-width:500px){.dialog--won{padding:20px 16px}.dialog--won h2{font-size:26px;margin-bottom:18px}.win-reward{grid-template-columns:1fr;gap:18px}.reward-ticket{display:grid;grid-template-columns:70px 1fr;column-gap:14px;text-align:left;padding:14px 18px}.reward-ticket img{grid-row:1/4;width:64px;height:64px;margin:0}.reward-ticket p{font-size:16px}.reward-amount{font-size:58px}.reward-intro{margin-bottom:10px}.dialog--won #choose{margin-top:8px}}
.title .prize-subheader{display:inline-block;margin:14px 0 0;padding:7px 16px;border:1px solid #ffbd4538;border-radius:30px;background:#ffbd450c;color:#ffda8a;font-size:16px;line-height:1.4;letter-spacing:0}
@media(orientation:landscape) and (max-height:540px){.title .prize-subheader{font-size:14px;margin-top:8px;padding:4px 12px}.intro{gap:7px}}
@media(max-width:380px){.title .prize-subheader{font-size:14px;padding:7px 10px}}
.dialog--won #choose{margin-top:32px;padding-top:18px;border-top:1px solid #745383;min-height:52px}
#start{background:#d52d43;color:#fff8e9;border:2px solid #ff7884;border-bottom:5px solid #861d31;box-shadow:0 0 0 3px #ff65751c,0 5px 20px #ec344b38;font-size:19px;min-height:56px;padding:12px 18px;width:100%;text-shadow:0 1px 0 #861d31}
#start:hover{background:#e4384e;filter:none;box-shadow:0 0 0 3px #ff657534,0 5px 24px #ec344b50}
@media(orientation:landscape) and (max-height:540px){#start{font-size:18px;padding:11px 12px}.start-block{flex-basis:210px}}
@media(orientation:landscape) and (max-width:700px){.start-block{flex-basis:100%}#start{width:auto;flex:none;min-width:210px}}

/* A shop exit stays available in every screen, including the modal focus trap. */
a{color:inherit}a:focus-visible{outline:3px solid white;outline-offset:4px}.intro-shop{display:flex;justify-content:flex-end;margin-bottom:-12px}.shop-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid #705a80;border-radius:7px;text-decoration:none;font-size:14px;color:#e0d3e9;white-space:nowrap;background:#261934}.shop-link:hover{background:#3b284e;color:white}.game-footer .shop-link{min-height:32px;padding:4px 10px;font-size:13px}.game-footer #best{margin-left:auto}#dialog-shop{align-self:center;margin:8px 0 12px}.reward-consent{font:14px/1.5 Arial,sans-serif;color:var(--muted);margin:3px 0 8px}.reward-thanks>img{display:block;margin:0 auto 16px;image-rendering:pixelated}.reward-thanks>p{font-size:clamp(18px,3vw,23px);line-height:1.5;margin:12px 0}.coupon-code{display:block;color:var(--gold);letter-spacing:.04em;font-size:clamp(23px,5vw,32px);padding:14px 8px;margin:10px 0;border:2px dashed #967344;border-radius:8px;background:#35233c}.reward-thanks .email-confirmation{font:16px/1.5 Arial,sans-serif;color:var(--muted);margin:18px 0 24px}.shop-return{display:flex;align-items:center;justify-content:center;text-decoration:none}.dialog--thanks #choose{font-size:15px;color:var(--muted)}
@media(max-width:600px){.game-footer #runner,.game-footer #best{display:none}.game-footer{justify-content:space-between}.intro-shop{margin-bottom:-8px}.shop-link{font-size:14px}}
@media(orientation:landscape) and (max-height:500px){.intro-shop{margin-bottom:-12px}.intro-shop .shop-link{min-height:36px}.reward-thanks>img{width:56px;height:56px;margin-bottom:8px}}

@media(orientation:portrait) and (max-height:700px){.game .panic{display:none}.play-area{gap:6px}.game .dpad{grid-template:repeat(3,44px)/repeat(3,44px);gap:3px}.game .control-hint{display:none}.game .hud{gap:5px}.game .icon-button{padding:5px;font-size:12px}.game .stat strong{font-size:16px}.game .stat>span{font-size:11px}}
/* Keep portrait status and actions on one row so the maze gets the space. */
@media(orientation:portrait){.hud{display:grid;grid-template-columns:1.4fr .9fr 1fr 52px 44px 44px;gap:5px}.hud .stat{min-width:0}.hud .stat strong{font-size:clamp(14px,4vw,18px)}.hud .stat>span{font-size:11px}.hud #mute{font-size:11px;padding:4px;line-height:1.25}.hud .panic{grid-column:1/-1;order:0;width:auto;margin:0}.hud #mute,.hud #pause,.hud #fullscreen{grid-row:1}.hud #mute{grid-column:4}.hud #pause{grid-column:5}.hud #fullscreen{grid-column:6}}
@media(orientation:portrait) and (max-width:350px){.hud{grid-template-columns:1.4fr .9fr 1fr 52px 44px}.hud #fullscreen{display:none}}

/* Phone-first play area. The compact maze and two-row pad reserve space for both. */
.intro{padding-top:max(70px,calc(env(safe-area-inset-top) + 62px))}
.intro-shop{position:absolute;top:max(6px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));margin:0;justify-content:flex-start}
.shop-link{min-height:44px;padding:8px 12px;border-color:#b69bc9;background:#493354;color:#fff1ca;box-shadow:0 2px 0 #10091e;font-size:14px}
.shop-link:hover{background:#62456f}
.game{grid-template-rows:auto minmax(0,1fr);gap:6px}
.game .hud{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-height:0}
.game-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px}
.game-actions{display:flex;gap:5px;flex:none}
.game .icon-button{font-size:14px;padding:6px;min-width:44px;min-height:44px}
.game #mute{font-size:11px;width:52px;line-height:1.2}
.game #fullscreen{display:none}
.hud-stats{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 3px}
.game .stat{flex:none;display:flex;align-items:baseline;gap:6px;min-width:0}
.game .stat>span{font-size:11px;margin:0}
.game .stat strong{font-size:17px}
.game .panic{display:none}
.game .play-area{flex-direction:column;gap:6px}
.game .board-wrap{width:100%;height:0;flex:1;align-items:center}
.game .controls{width:100%;flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.game .dpad{grid-column:2;grid-row:1;grid-template:repeat(2,clamp(44px,6.2dvh,58px))/repeat(3,clamp(44px,6.2dvh,58px));gap:4px}
.game .dpad [data-dir=down]{grid-area:2/2}
.game .dpad-center{display:none}
.control-info{grid-column:1;grid-row:1;text-align:center;min-width:0;font-size:12px;line-height:1.4}
.control-info #power-status{display:block;overflow-wrap:break-word}
.game .control-hint{display:block;font-size:11px;line-height:1.4;margin-top:7px}
.game .game-footer{display:none}
.overlay{padding:calc(max(6px,env(safe-area-inset-top)) + 56px) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));grid-template-rows:minmax(0,1fr)}
#dialog-shop{position:absolute;top:max(6px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));margin:0;z-index:1}
@media(orientation:portrait) and (max-width:350px){
 .game .stat{gap:4px}.game .stat>span{font-size:10px}.game .stat strong{font-size:15px}.hud-stats{gap:8px}
 .game .control-hint{display:none}.control-info{font-size:11px}
}
@media(orientation:landscape){
 .game{grid-template-rows:auto minmax(0,1fr) auto}
 .game .hud{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px}
 .game-topbar{display:contents}.game-topbar>.shop-link{grid-column:1;grid-row:1}.game-actions{grid-column:3;grid-row:1}
 .hud-stats{grid-column:2;grid-row:1;justify-content:center;gap:clamp(12px,3vw,48px)}
 .game .stat{display:block}.game .stat>span{display:block;margin-bottom:2px;font-size:11px}.game .stat strong{font-size:19px}
 .game #fullscreen{display:block}.game .play-area{flex-direction:row;gap:8px}.game .board-wrap{width:auto;height:100%}
 .game .controls{display:flex;flex-direction:column;width:164px;gap:12px}
 .game .dpad{grid-template:repeat(3,48px)/repeat(3,48px);gap:4px}.game .dpad [data-dir=down]{grid-area:3/2}.game .dpad-center{display:grid}
 .control-info{font-size:14px}.game .control-hint{font-size:12px;margin-top:6px}
 .game .game-footer{display:flex;min-height:18px;font-size:12px}.game-footer #runner,.game-footer #best{display:block;max-width:none}
}
@media(orientation:landscape) and (max-width:900px){
 .game .hud{gap:8px}.hud-stats{gap:14px}.game .stat strong{font-size:17px}.game .stat>span{font-size:10px}
 .game #fullscreen{display:none}.game .controls{width:140px;gap:8px}.game .dpad{grid-template:repeat(3,44px)/repeat(3,44px);gap:3px}
 .control-info{font-size:12px}.game .control-hint{display:none}.game .game-footer{display:none}.game{grid-template-rows:auto minmax(0,1fr)}
}
