:root{--ink:#152226;--paper:#edeadf;--muted:#8f9b98;--red:#ff6948;--lime:#c2d883;--line:#354346;--cream:#fff6de}*{box-sizing:border-box}body{margin:0;background:#142024;color:var(--paper);font-family:Arial,Helvetica,sans-serif;font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--lime);outline-offset:4px}button{color:inherit}a{color:inherit}button[hidden],[hidden]{display:none!important}.masthead{max-width:1512px;margin:auto;padding:24px 46px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;gap:12px;text-decoration:none;font-size:13px;letter-spacing:.6px;font-weight:900;line-height:1.05}.brand-icon{display:grid;place-items:center;width:41px;height:41px;background:var(--red);color:var(--ink);font-size:29px;letter-spacing:-3px;padding-right:3px;border-radius:3px}.edition{font:10px 'Courier New',monospace;letter-spacing:1.5px;color:#b4bfba}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);margin-right:9px}.edition-small{color:#6d807d;margin-left:10px}nav{display:flex;align-items:center;gap:20px}.text-btn{background:none;border:0;padding:7px 0;color:inherit;font-size:10px;font-weight:700;letter-spacing:1px;white-space:nowrap}.text-btn span{margin-left:10px;color:var(--red)}.icon-btn{width:36px;height:36px;border:1px solid #485351;border-radius:50%;background:none;display:flex;align-items:center;justify-content:center;gap:3px;font-size:17px}.sound-state{font-size:8px}main{max-width:1512px;margin:auto;padding:0 46px}.arcade{border:1px solid #4c5550;border-radius:12px;overflow:hidden;background:#0d171a;box-shadow:0 18px 50px #0003}.game-top{min-height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 21px;font:9px 'Courier New',monospace;letter-spacing:1px;color:#adb4a8;background:#192326}.game-top>div{display:flex;gap:22px}.red-dot{color:var(--red)}.red-dot:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--red);margin-right:7px}.save-label{font-size:8px;color:#8b9991}.viewport{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#0c191d}#game{display:block;width:100%;height:100%;outline-offset:-4px}.title-screen{position:absolute;inset:0;display:flex;align-items:center;background:linear-gradient(90deg,#0a191ce8 0%,#0a191ce3 30%,#0a191c55 56%,transparent 75%)}.title-copy{width:57%;padding:4% 5.2%}.eyebrow{font:9px 'Courier New',monospace;letter-spacing:2px;color:var(--red);font-weight:bold}.eyebrow i{display:inline-block;width:22px;height:1px;background:var(--red);vertical-align:middle;margin-right:8px}h1{font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(38px,5.6vw,88px);font-weight:900;letter-spacing:-1px;line-height:.98;margin:22px 0 18px;transform:rotate(-2deg);transform-origin:left center}h1 em{font-style:normal;color:var(--red)}.lead{font-size:clamp(13px,1.4vw,20px);line-height:1.45;letter-spacing:.1px;margin:0 0 12px}.description{max-width:315px;font-size:12px;color:#abbab4;line-height:1.6;margin:0 0 20px}.difficulty{display:flex;gap:0;margin-bottom:12px;border:1px solid #435550;border-radius:4px;width:max-content;overflow:hidden}.difficulty button{background:transparent;border:0;color:#8fa29c;font:8px 'Courier New',monospace;letter-spacing:.4px;padding:9px 12px}.difficulty button.selected{background:#d9e2c9;color:#1b2c26;font-weight:bold}.primary-btn{display:flex;align-items:center;justify-content:space-between;gap:25px;background:var(--red);color:#172325;border:0;border-radius:3px;font-size:11px;font-weight:900;letter-spacing:1px;padding:18px 20px;min-width:282px;transition:background .15s,transform .15s}.primary-btn:hover{background:#ff8969;transform:translateY(-1px)}.primary-btn span{font-size:20px;line-height:.5}.practice-btn{display:block;border:0;background:none;font-size:10px;letter-spacing:.25px;color:#e0e4d5;padding:16px 0}.practice-btn span{margin-left:12px}.title-footnote{font:7px 'Courier New',monospace;letter-spacing:1px;color:#82988d}.scene-stamp{position:absolute;bottom:9%;right:7%;transform:rotate(-9deg);border:2px solid #bbbd8b80;color:#d5d2a0a0;padding:9px 15px;display:flex;flex-direction:column;gap:2px;text-align:center}.scene-stamp span{font:7px 'Courier New',monospace;letter-spacing:2px}.scene-stamp b{font:19px Impact,sans-serif;letter-spacing:2px}.controls-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 21px;background:#1c292b;border-top:1px solid #43524a;font-size:10px}.control-caption{font:9px 'Courier New',monospace;letter-spacing:1px;color:#b6c3ae}#keyboardHelp{display:flex;gap:18px;color:#c6cebf;font-size:9px}#keyboardHelp span{display:flex;gap:5px;align-items:center}kbd{display:inline-block;background:#2d3b39;color:#e2e7d3;box-shadow:0 2px 0 #091915;font-family:'Courier New',monospace;font-size:9px;min-width:20px;text-align:center;border:1px solid #5a6b60;border-radius:3px;padding:4px 5px}.lineup-section{padding-top:32px}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:18px}.section-heading .eyebrow{font-size:8px;color:#90a092}.section-heading h2{font-size:21px;font-weight:500;letter-spacing:-.5px;margin:8px 0 0}.section-heading p{font-size:10px;line-height:1.7;color:#8d9e94;margin:0}.boss-lineup{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.boss-card{position:relative;display:flex;align-items:center;text-align:left;gap:10px;min-height:98px;padding:8px 12px 8px 3px;background:#1c2b2e;border:1px solid #3b4844;border-radius:6px;overflow:hidden;transition:border-color .2s,transform .2s}.boss-card:hover{border-color:var(--accent);transform:translateY(-3px)}.boss-card canvas{width:70px;height:80px;flex-shrink:0;align-self:end}.boss-card .number{position:absolute;top:8px;left:8px;font:8px 'Courier New',monospace;color:#819084}.boss-card small{font:7px 'Courier New',monospace;letter-spacing:.8px;color:var(--accent)}.boss-card b{display:block;font-size:12px;margin:7px 0}.boss-card .amount{font:9px 'Courier New',monospace;color:#abb8a6}.boss-card .arrow{position:absolute;top:8px;right:8px;color:#8b9c8b;font-size:11px}.boss-card.beaten{border-color:#b5d879}.boss-card.active{background:#2c3935;border-color:var(--accent)}footer{display:flex;justify-content:space-between;gap:32px;padding:23px 0 30px;color:#7d9087;font-size:8px;line-height:1.7}footer p{max-width:650px;margin:0}footer b{color:#a0af9d;font-size:8px}footer>div{display:flex;gap:20px;align-items:start;white-space:nowrap}footer .text-btn{padding:0;font-size:8px;color:#a0af9d}footer span{font:7px 'Courier New',monospace;letter-spacing:1px}.hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:start;gap:24px;padding:24px 32px;background:linear-gradient(#0b181de8,transparent);pointer-events:none}.hero-meter,.enemy-meter{width:28%;max-width:330px}.meter-title{display:flex;justify-content:space-between;font:12px 'Courier New',monospace;letter-spacing:1px;color:#f1efcf;margin-bottom:8px}.enemy-meter .meter-title{flex-direction:row-reverse}.meter-track{height:12px;background:#253537;transform:skewX(-14deg);border:1px solid #d7ddbc70;overflow:hidden}.meter-track i{display:block;height:100%;width:100%;background:var(--lime);transition:width .12s}.enemy-meter .meter-track i{background:var(--red);float:right}.charge-track{height:4px;background:#314443;margin-top:6px}.charge-track i{display:block;width:40%;height:100%;background:#efc270}.hud small{font:7px 'Courier New',monospace;letter-spacing:1px;display:block;margin-top:7px;color:#b4c8b5}.enemy-meter small{text-align:right}.run-money{text-align:center}.run-money>span{font:7px 'Courier New',monospace;letter-spacing:1px;color:#a7b5a6}.run-money strong{display:block;font-size:22px;color:#f2e9c9;margin:6px 0 8px;letter-spacing:-.7px}.stage-dots{display:flex;gap:6px;justify-content:center}.stage-dots i{display:block;width:6px;height:6px;border:1px solid #738171;transform:rotate(45deg)}.stage-dots i.done{background:var(--lime);border-color:var(--lime)}.stage-dots i.current{border-color:var(--red);background:var(--red)}.progress-line{position:absolute;bottom:0;left:0;right:0;height:3px;background:#122523}.progress-line i{display:block;background:var(--red);height:100%;width:0}.toast{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);background:#101e21e8;border:1px solid #667b60;padding:10px 20px;text-align:center;font:11px 'Courier New',monospace;color:#e5e9c5;border-radius:3px;max-width:80%;opacity:0;transition:opacity .15s;pointer-events:none}.toast.visible{opacity:1}.card-overlay{position:absolute;inset:0;background:#081317bb;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(5px)}.modal-card{background:#e9e6d8;color:#172629;border-radius:5px;max-width:480px;width:100%;padding:30px;box-shadow:10px 10px 0 #0004;border-top:5px solid var(--red)}.modal-card h2{font-family:Impact,'Arial Narrow',sans-serif;font-size:38px;font-weight:500;line-height:1;margin:14px 0}.modal-card p{font-size:13px;line-height:1.6;color:#46564f;margin:12px 0}.modal-card .eyebrow{color:#b44d31}.modal-card .primary-btn{width:100%;margin-top:20px;min-width:0}.modal-card .practice-btn{color:#42584a;padding-bottom:0}.card-extra{font:10px 'Courier New',monospace;line-height:1.7;border-top:1px solid #c3cabc;padding-top:12px;margin-top:14px;color:#5c6c5a}.card-extra strong{font-size:24px;display:block;color:#263e2e}.touch-controls{padding:12px;display:flex;justify-content:space-between;gap:12px;background:#142326;touch-action:none;user-select:none}.touch-controls button{min-width:45px;height:46px;border-radius:7px;border:1px solid #77856e;background:#30433d;color:#edf0d6;font-size:9px;font-weight:bold;touch-action:none}.touch-controls button.pressed{background:var(--red);color:#122223}.touch-movement,.touch-actions{display:flex;gap:7px}.touch-special{border-color:var(--red)!important;color:var(--red)!important}dialog{border:1px solid #697467;background:var(--paper);color:var(--ink);border-radius:9px;padding:30px;max-width:850px;width:calc(100% - 32px);max-height:85dvh}dialog::backdrop{background:#061317dc;backdrop-filter:blur(6px)}.dialog-header{display:flex;align-items:start;justify-content:space-between;gap:10px}.dialog-header h2{font-family:Impact,sans-serif;font-size:36px;font-weight:500;letter-spacing:.3px;margin:12px 0}.dialog-header .eyebrow{font-size:8px;color:#a24b34}.dialog-header .icon-btn{color:var(--ink);flex-shrink:0}.dossier-intro{font-size:12px;line-height:1.7;color:#566052;background:#dce0d0;padding:16px;border-radius:4px}.dossier-row{padding:22px 0;border-bottom:1px solid #bec6b5;display:grid;grid-template-columns:100px 1fr;gap:20px}.dossier-row canvas{width:100px;height:130px;background:#17292b;border-radius:4px}.dossier-row h3{margin:0 0 10px;font-size:20px}.dossier-row .grant{font:12px 'Courier New',monospace;color:#9c412b;line-height:1.5}.dossier-row p{font-size:12px;line-height:1.6;margin:8px 0}.dossier-row small{display:block;color:#677264;font-size:10px;line-height:1.7}.dossier-row a,.sources-context a{color:#955037;text-underline-offset:3px;font-size:11px}.sources-context{font-size:11px;line-height:1.7;padding-top:12px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.viewport:fullscreen{height:100dvh;aspect-ratio:auto}.viewport:fullscreen canvas{object-fit:contain;height:100%;width:100%}@media(min-width:1600px){h1{font-size:88px}}@media(max-width:1050px){.masthead{padding:20px 24px}main{padding:0 24px}.edition-small{display:none}.title-copy{padding-left:5%;width:60%}.description{font-size:10px;max-width:250px;margin-bottom:12px}.lead{margin-bottom:8px}h1{margin:14px 0}.title-footnote{display:none}.primary-btn{padding:14px 16px;font-size:10px;min-width:245px}.practice-btn{padding:12px 0;font-size:9px}.difficulty button{padding:7px 9px;font-size:7px}.boss-card{gap:1px;padding-right:6px}.boss-card canvas{width:53px;height:72px}.boss-card b{font-size:10px}.boss-card small{font-size:6px}.controls-bar{padding:12px}.control-caption{display:none}#keyboardHelp{gap:12px}footer{flex-direction:column;gap:10px}.hud{padding:18px 24px}.run-money strong{font-size:18px}.scene-stamp{bottom:9%;right:6%}.eyebrow{font-size:8px}}
@media(max-width:700px){.masthead{padding:16px}.brand{font-size:10px;gap:8px}.brand-icon{width:33px;height:33px;font-size:25px}.edition{display:none}nav{gap:12px}main{padding:0 12px}.game-top{padding:0 12px;font-size:7px;min-height:30px}.game-top>div{gap:10px}.save-label{display:none}.viewport{aspect-ratio:4/3}#game{object-fit:cover}.title-screen{background:linear-gradient(90deg,#0a191cf5,#0a191cd9 48%,#0a191c22)}.title-copy{width:78%;padding:5% 6%}h1{font-size:clamp(36px,8.5vw,59px);margin:14px 0}.title-copy .eyebrow{font-size:6px;letter-spacing:1px}.title-copy .lead{font-size:12px}.description{display:none}.primary-btn{min-width:220px;font-size:9px;padding:13px 15px}.difficulty{margin-top:12px;margin-bottom:10px}.difficulty button{font-size:6px;padding:7px 8px}.practice-btn{font-size:9px;padding:12px 0}.scene-stamp{display:none}.controls-bar{padding:10px 12px}#keyboardHelp{gap:8px;font-size:7px;flex-wrap:wrap}kbd{font-size:7px;padding:3px;min-width:16px}.controls-bar #fullscreenBtn{font-size:0}.controls-bar #fullscreenBtn:after{content:'⛶';font-size:18px}.section-heading{align-items:start;margin-bottom:14px}.section-heading h2{font-size:17px}.section-heading .eyebrow{font-size:7px}.section-heading p{display:none}.boss-lineup{grid-template-columns:repeat(5,minmax(110px,1fr));overflow-x:auto;padding-bottom:7px;gap:7px}.boss-card{min-height:130px;flex-direction:column;justify-content:end;text-align:center;padding:5px}.boss-card canvas{align-self:center;width:60px;height:65px}.boss-card b{font-size:10px;margin:5px 0}.boss-card .amount{font-size:8px}.boss-card small{font-size:6px}footer{padding-top:15px;font-size:8px}footer>div{gap:15px}.hud{padding:14px 12px;gap:8px}.meter-title{font-size:8px;margin-bottom:5px}.meter-track{height:8px}.hud small{font-size:5px;letter-spacing:.2px;margin-top:5px}.run-money{min-width:95px}.run-money>span{font-size:5px}.run-money strong{font-size:13px;margin:4px 0}.stage-dots{gap:4px}.stage-dots i{width:4px;height:4px}.hero-meter,.enemy-meter{width:29%}.modal-card{padding:20px;max-height:97%;overflow:auto}.modal-card h2{font-size:27px;margin:10px 0}.modal-card p{font-size:11px;margin:8px 0}.modal-card .card-extra{font-size:8px;margin-top:8px;padding-top:8px}.modal-card .primary-btn{margin-top:12px;padding:12px}.modal-card .practice-btn{padding:9px 0 0}.card-extra strong{font-size:18px}.toast{font-size:9px;padding:8px 12px;bottom:5%;max-width:92%;width:max-content}.touch-controls{padding:10px 8px;gap:6px}.touch-controls button{min-width:38px;padding:0 8px;height:44px;font-size:8px}.touch-actions,.touch-movement{gap:5px}dialog{padding:20px}.dialog-header h2{font-size:28px}.dossier-row{grid-template-columns:65px 1fr;gap:12px}.dossier-row canvas{width:65px;height:90px}.dossier-row h3{font-size:17px}.dossier-row .grant{font-size:10px}.dossier-row p{font-size:11px}.dossier-intro{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

@media(max-width:700px){.viewport.playing #game{object-fit:contain}}
@media(min-width:701px) and (pointer:fine){.touch-controls{display:none!important}}

#fieldPause{display:none}.arcade:fullscreen{width:100vw;height:100dvh;border:0;border-radius:0;display:flex;flex-direction:column}.arcade:fullscreen .viewport{flex:1;min-height:0;aspect-ratio:auto}.arcade:fullscreen #game{object-fit:contain}.arcade:fullscreen .controls-bar{flex-shrink:0}.arcade:fullscreen .touch-controls{flex-shrink:0}.arcade:fullscreen #fieldPause{display:flex;width:28px;height:28px;font-size:13px;margin-left:auto}

.banter{display:none}@media(max-width:700px){.banter:not([hidden]){display:block;position:absolute;left:10px;right:10px;bottom:9px;padding:8px 10px;border:1px solid #c4d8ac77;border-radius:4px;background:#101e23ed;color:#f0e8c8;text-align:center;font-size:10px;line-height:1.45;pointer-events:none;z-index:2}}

.enemy-super-track i{background:#ecb1d5}.ending-dossier,.practice-dossier,.loss-dossier{display:block;margin-top:12px;line-height:1.5;text-align:left}.gag-info{padding:10px 12px;border-left:3px solid #9b6844;background:#e0dcc8}

.sound-settings{max-width:1190px;margin:0 auto 28px;padding:0 24px;display:flex;align-items:center;gap:14px;color:#bdc7b1;font:9px monospace;letter-spacing:1px}.sound-settings input{accent-color:#d9bb80;width:140px}.sound-settings span{margin-left:auto;color:#91a28c;font-size:8px}#blessingText{color:#f5d594}.title-copy .practice-btn{display:block;padding:8px 0}.title-copy #runnerPracticeBtn{color:#c4d9a6}.boss-card b{font-size:12px}
@media(max-width:700px){.sound-settings{padding:0 16px;flex-wrap:wrap;font-size:8px}.sound-settings span{width:100%;margin-left:0;font-size:7px}.title-copy .practice-btn{padding:7px 0;font-size:8px}.title-copy h1{margin:8px 0}.title-copy .lead{margin-bottom:4px}.title-copy .difficulty{margin:7px 0}.touch-controls .touch-slide{font-size:7px}.boss-card b{font-size:10px}}

#blessingText{display:block;margin-top:7px;padding:7px 9px;border:1px solid #f2d28a;border-radius:4px;background:#332e20ed;color:#ffe2a0;font:700 10px/1.35 Arial,sans-serif;letter-spacing:.3px}#blessingText span{display:block;margin-top:2px;color:#f7edcf;font-size:9px;font-weight:400;letter-spacing:0}@media(max-width:700px){#blessingText{padding:4px 5px;font-size:8px;margin-top:4px}#blessingText span{font-size:7px}}

#prayerActivate{pointer-events:auto;margin-top:6px;min-height:32px;width:100%;border:1px solid #f7d48b;border-radius:4px;background:#ead39b;color:#242c31;font:700 10px Arial;letter-spacing:.4px;padding:6px;touch-action:manipulation}#prayerActivate:disabled{opacity:.45}#prayerActivate:not(:disabled):hover{background:#fff0bd}.touch-prayer{border-color:#f2d38c!important;color:#ffe3a3!important}@media(max-width:700px){#prayerActivate{min-height:28px;font-size:8px;padding:4px}.touch-controls{flex-wrap:wrap}.touch-actions{flex-wrap:wrap;justify-content:flex-end}.touch-movement{flex-shrink:0}#keyboardHelp{gap:6px}}

.ending-ledger{display:grid;gap:7px;text-align:left;padding:14px 16px;background:#102125;border:1px solid #75856a;border-radius:5px;font-size:11px}.ending-ledger>b{display:block;font-size:25px;color:#f5dfab;letter-spacing:.3px}.ending-ledger>span:first-child{font:9px monospace;letter-spacing:1px;color:#c8d5ac}.ending-track{height:9px;background:#394945;overflow:hidden;border-radius:3px;margin:4px 0}.ending-track i{display:block;height:100%;background:#d0db9f}.ending-note{font-size:11px!important;line-height:1.55;color:#d2d6c1}.plea-stamp{display:inline-block;border:3px solid #c8d7a0;color:#d5e9ac;transform:rotate(-7deg);padding:8px 16px;font:bold 24px monospace;letter-spacing:5px;margin:6px 0 18px}.metrics-note{font-size:10px;color:#9eada4;line-height:1.7;margin:0 0 24px;max-width:850px}.modal-card #cardSecondary{white-space:normal;line-height:1.5;min-height:44px;width:100%;padding:12px 8px}.modal-card{max-height:96%;overflow:auto}@media(max-width:700px){.ending-ledger{padding:10px;font-size:10px;gap:5px}.ending-ledger>b{font-size:20px}.ending-note{font-size:10px!important}.modal-card #cardSecondary{font-size:10px}.metrics-note{font-size:9px}}

.title-screen{background:linear-gradient(90deg,#0a191cf2 0%,#0a191cde 28%,#0a191c55 43%,transparent 57%)}.title-copy{width:46%}
@media(max-width:700px){.viewport:not(.playing){aspect-ratio:4/5;min-height:510px}.title-screen{align-items:flex-end;background:linear-gradient(0deg,#0a191cf5 0%,#0a191cf0 41%,#0a191c33 58%,transparent 77%)}.title-copy{width:100%;padding:20px 22px 26px;text-align:center}.title-copy h1{font-size:42px;margin:10px 0;transform:none}.title-copy .lead{font-size:12px;line-height:1.4;margin-bottom:10px}.title-copy .difficulty{margin:10px auto}.title-copy .primary-btn{width:100%;max-width:320px;min-width:0;margin:0 auto}.title-copy .eyebrow{font-size:6px;letter-spacing:1px}.title-copy .eyebrow i{display:none}}

.arrival-controls{position:absolute;right:18px;top:16px;z-index:5}.arrival-controls button{min-height:44px;border:1px solid #b7c5be;border-radius:4px;padding:10px 15px;background:#152934e8;color:#ede9d5;font:bold 11px Arial;letter-spacing:1px}.arrival-controls button:hover{background:#354c57}.arrival-controls span{margin-left:12px}.arrival-caption{position:absolute;bottom:6%;left:17%;right:17%;padding:11px 14px;border:1px solid #657d82;border-radius:5px;background:#0a1c28f5;color:#ece7d4;text-align:center;pointer-events:none}.arrival-caption strong{display:block;font-size:14px;line-height:1.45}.arrival-caption span{display:block;font-size:10px;color:#aabbbd;margin-top:5px}@media(max-width:700px){.arrival-controls{top:8px;right:8px}.arrival-controls button{min-height:40px;padding:8px 10px;font-size:9px}.arrival-caption{left:5%;right:5%;bottom:5%;padding:8px 10px}.arrival-caption strong{font-size:11px}.arrival-caption span{font-size:8px}}
@media(max-width:700px){.viewport.playing.arrival-view #game{object-fit:cover}.arrival-view .arrival-caption{bottom:2%}}

#fieldSound,.rotate-hint{display:none}
html.mobile-session{overflow:hidden;overscroll-behavior:none;height:100%}body.mobile-session{position:fixed;left:0;right:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
body.mobile-session .masthead,body.mobile-session .lineup-section,body.mobile-session footer,body.mobile-session .metrics-note,body.mobile-session .sound-settings{display:none}
body.mobile-session .arcade{position:fixed;inset:0;z-index:1000;width:100%;height:100vh;height:100dvh;max-width:none;display:flex;flex-direction:column;border:0;border-radius:0;box-shadow:none;background:#0b1921;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
body.mobile-session .game-top{flex:none;min-height:28px;height:28px;padding:0 max(12px,env(safe-area-inset-left));font-size:8px}body.mobile-session .game-top>div{gap:12px}body.mobile-session .save-label{display:none}
body.mobile-session .viewport,body.mobile-session .viewport:not(.playing){flex:1;min-height:0;aspect-ratio:auto;height:auto;overflow:hidden}
body.mobile-session #game,body.mobile-session .viewport.playing.arrival-view #game{width:100%;height:100%;object-fit:contain;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
body.mobile-session .controls-bar{position:absolute;top:max(35px,calc(env(safe-area-inset-top) + 35px));right:max(10px,env(safe-area-inset-right));z-index:12;background:#142731d9;border:1px solid #71847a;border-radius:9px;gap:5px;padding:4px}
body.mobile-session .controls-bar .control-caption,body.mobile-session #keyboardHelp{display:none}body.mobile-session #fieldPause,body.mobile-session #fieldSound{display:flex;width:44px;height:44px;min-width:44px;border:0;font-size:16px;touch-action:none}body.mobile-session #fieldSound{font-size:10px;letter-spacing:.3px}body.mobile-session #fullscreenBtn{min-width:44px;min-height:44px;padding:0 8px;font-size:0;touch-action:none}body.mobile-session #fullscreenBtn:after{content:'⛶';font-size:23px}
body.mobile-session .touch-controls{position:absolute;bottom:max(14px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));z-index:11;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:0;border:0;background:transparent;pointer-events:none;flex-wrap:nowrap}
body.mobile-session .touch-movement{display:grid;grid-template-columns:repeat(2,60px);gap:8px;pointer-events:auto}body.mobile-session .touch-actions{display:grid;grid-template-columns:repeat(3,68px);gap:8px;pointer-events:auto;margin-left:auto;max-width:100%}
body.mobile-session .touch-controls button{min-width:0;width:100%;height:58px;border:1px solid #c3d1b5;border-radius:14px;background:#203b43ed;box-shadow:0 4px 0 #06182099;color:#f2efdc;font:800 10px/1.2 Arial;letter-spacing:.2px;padding:7px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
body.mobile-session .touch-controls button.pressed{background:#e9cc89;color:#10242b;transform:translateY(3px);box-shadow:none}body.mobile-session .touch-controls .touch-special{background:#d47746e8;color:#15252c}body.mobile-session .touch-controls .touch-prayer{background:#403c28ed}
body.mobile-session .hud{top:var(--scene-top,0px);left:var(--scene-left,0px);width:var(--scene-width,100%);padding:12px 14px;gap:10px}body.mobile-session .meter-title{font-size:10px}body.mobile-session .meter-track{height:10px}body.mobile-session .hud small{font-size:7px}body.mobile-session .run-money strong{font-size:17px}body.mobile-session .run-money{min-width:110px}body.mobile-session .run-money>span{font-size:6px}
body.mobile-session .toast{bottom:calc(var(--scene-bottom,0px) + 16%);max-width:70%}body.mobile-session .banter:not([hidden]){left:24%;right:24%;bottom:calc(var(--scene-bottom,0px) + 8%);font-size:10px}
body.mobile-session .card-overlay{z-index:20}body.mobile-session .modal-card{max-height:calc(100% - 24px);max-width:580px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y}body.mobile-session dialog{z-index:30;overscroll-behavior:contain;touch-action:pan-y}body.mobile-session .arrival-controls{top:calc(var(--scene-top,0px) + 14px);right:calc(var(--scene-left,0px) + 14px);z-index:13}body.mobile-session .arrival-caption{left:calc(var(--scene-left,0px) + 5%);right:calc(var(--scene-left,0px) + 5%);bottom:calc(var(--scene-bottom,0px) + 5%)}
@media(orientation:portrait){body.mobile-session .rotate-hint{display:block;position:absolute;left:14px;right:14px;bottom:145px;text-align:center;color:#a8bcae;font-size:10px;line-height:1.5;pointer-events:none;z-index:10}body.mobile-session .touch-controls{flex-wrap:wrap;gap:18px;bottom:max(20px,env(safe-area-inset-bottom))}body.mobile-session .touch-movement{grid-template-columns:repeat(2,52px)}body.mobile-session .touch-actions{grid-template-columns:repeat(3,minmax(54px,1fr));flex:1;gap:7px}body.mobile-session .touch-controls button{height:60px;font-size:9px}body.mobile-session .hud{padding:9px 11px;gap:8px}body.mobile-session .meter-title{font-size:8px}body.mobile-session .run-money strong{font-size:13px}body.mobile-session .run-money{min-width:93px}body.mobile-session .hero-meter,body.mobile-session .enemy-meter{width:29%}body.mobile-session .hud small{font-size:6px}body.mobile-session .arrival-caption strong{font-size:11px}}
@media(orientation:landscape) and (max-height:500px){body.mobile-session .game-top{height:23px;min-height:23px;font-size:7px}body.mobile-session .controls-bar{top:max(27px,calc(env(safe-area-inset-top) + 27px))}body.mobile-session .touch-controls{bottom:max(8px,env(safe-area-inset-bottom))}body.mobile-session .touch-movement{grid-template-columns:repeat(2,54px)}body.mobile-session .touch-actions{grid-template-columns:repeat(3,58px);gap:6px}body.mobile-session .touch-controls button{height:49px;font-size:9px;border-radius:12px}body.mobile-session .hud{padding:8px 12px}body.mobile-session .arrival-caption{padding:8px 10px}body.mobile-session .arrival-caption strong{font-size:12px}}
body.mobile-session .arrival-controls{left:calc(var(--scene-left,0px) + 14px);right:auto}
@media(orientation:portrait){body.mobile-session .arrival-caption{bottom:calc(var(--scene-bottom,0px) - 64px)}}
/* Keep the mobile toolbar above the canvas HUD, including compact landscape. */
body.mobile-session .game-top{height:56px;min-height:56px;padding-right:174px}
body.mobile-session .game-top>div{flex-wrap:wrap;gap:5px 12px}
body.mobile-session .controls-bar{top:calc(env(safe-area-inset-top) + 3px)}
body.mobile-session .touch-controls:not([hidden]){display:flex!important}
/* A reserved upper section holds dialogue; it never overlays the action. */
.game-messages{display:none;position:relative;flex:none;height:76px;min-height:76px;background:#142731;border-top:1px solid #40545b;border-bottom:1px solid #40545b;padding:10px 16px;align-items:center;justify-items:center;text-align:center}
.arcade:has(.viewport.playing) .game-messages{display:grid}
.game-messages .banter,.game-messages .toast,.game-messages .arrival-caption,body.mobile-session .game-messages .banter,body.mobile-session .game-messages .toast,body.mobile-session .game-messages .arrival-caption{position:static;grid-area:1/1;inset:auto;transform:none;width:100%;max-width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;font:700 12px/1.45 Arial;color:#f5e3bb;box-shadow:none}
.game-messages .banter:not([hidden]),body.mobile-session .game-messages .banter:not([hidden]){display:block}
.game-messages .toast:not(.visible){visibility:hidden}
.game-messages .arrival-caption strong{font-size:12px}.game-messages .arrival-caption span{font-size:9px;margin-top:3px}
body.mobile-session .game-messages{height:72px;min-height:72px;padding:8px 14px}
body.mobile-session .game-messages .banter,body.mobile-session .game-messages .toast{font-size:11px}
body.mobile-session .touch-controls:not([hidden]){position:relative;inset:auto;flex:none;height:144px;min-height:144px;align-items:flex-end;padding:10px max(12px,env(safe-area-inset-right)) 16px;gap:12px}
body.mobile-session .touch-actions{grid-template-columns:repeat(3,minmax(45px,61px));flex:0 1 197px;gap:7px}
body.mobile-session .touch-movement{grid-template-columns:repeat(2,52px);gap:7px}
body.mobile-session .touch-controls button{height:55px;font-size:9px}
body.mobile-session .rotate-hint{display:none}
body.mobile-session .hud{padding:9px 10px;gap:6px}
body.mobile-session .meter-title{font-size:8px;letter-spacing:0}.mobile-session .hud small{font-size:6px;letter-spacing:0}
body.mobile-session .run-money{min-width:78px}.mobile-session .run-money strong{font-size:12px}
body.mobile-session .hero-meter,body.mobile-session .enemy-meter{width:30%}
body.mobile-session .arrival-controls{top:calc(var(--scene-top,0px) + 130px);left:calc(var(--scene-left,0px) + 12px)}
@media(orientation:landscape){body.mobile-session .touch-controls:not([hidden]){position:absolute;left:0;right:0;bottom:0;height:128px;min-height:0;pointer-events:none}body.mobile-session .touch-actions,body.mobile-session .touch-movement{pointer-events:auto}body.mobile-session .rotate-hint{display:block;position:absolute;left:12px;bottom:150px;right:auto;width:150px;font-size:10px;color:#c5d4be;z-index:10}body.mobile-session .game-messages{height:60px;min-height:60px}}
body.mobile-session .arcade:not(.combat-controls) .touch-controls:not([hidden]){height:90px;min-height:90px}
body.mobile-session .arcade:not(.combat-controls) .touch-actions{flex:1;grid-template-columns:repeat(3,1fr);max-width:300px}
@media(orientation:landscape){body.mobile-session .arcade:not(.combat-controls) .touch-controls:not([hidden]){height:90px;min-height:0}}

/* Live presence stays in the arcade, including the fixed portrait game view. */
.live-presence{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:10px 22px;background:#243a38;border-bottom:1px solid #51634b;color:#ecedd9;flex-shrink:0}.presence-figures{display:flex;gap:24px;align-items:center;font-size:14px}.presence-figures>span{display:flex;align-items:center;gap:8px}.presence-figures strong{font-size:25px;line-height:1;font-variant-numeric:tabular-nums;color:#f4d190}.presence-dot{width:7px;height:7px;display:inline-block;background:#c5dba2;border-radius:50%;box-shadow:0 0 10px #b3d58d66}.live-presence small{font:10px monospace;color:#c1cfbb}.live-presence.unavailable .presence-dot{background:#9ca6a1;box-shadow:none}
.wall-section{padding:36px 0 28px;border-top:1px solid #3d514c;margin-top:30px}.wall-desk{background:#1d3032;border:1px solid #435950;border-radius:8px;padding:22px;margin:22px 0}.wall-auth{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.wall-auth p{font-size:14px;color:#d5ddce;flex:1;min-width:210px;margin:0}.wall-button{padding:12px 18px;border:1px solid #e6d298;background:#e6d298;color:#182a2c;border-radius:5px;font:700 12px Arial,sans-serif;cursor:pointer;min-height:44px}.wall-button:disabled{opacity:.5;cursor:default}.wall-section button:focus-visible,.wall-section textarea:focus-visible,.wall-section select:focus-visible{outline:3px solid #ff8966;outline-offset:3px}.wall-section form{display:grid;gap:12px;margin-top:22px;padding-top:22px;border-top:1px solid #476057}.wall-section form>label{font-size:15px;font-weight:700}.wall-section textarea{resize:vertical;min-height:104px;max-height:300px;width:100%;font:16px/1.6 Arial,sans-serif;color:#14282a;background:#efe8b8;border:1px solid #d1c78e;border-radius:4px;padding:14px}.wall-form-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.wall-form-tools label,.wall-form-tools span{font-size:12px;color:#d0d6c5}.wall-form-tools select{padding:8px;margin-left:6px;background:#182a2c;border:1px solid #687c69;border-radius:4px;color:#eee;font:inherit}.wall-form-tools button{margin-left:auto}.wall-section form small,.wall-note{font-size:12px;color:#afc0ad;line-height:1.6}.wall-section #wallStatus{font-size:13px;color:#efcf9f;min-height:0;margin:12px 0 0}.wall-section #wallStatus:empty{margin:0}.wall-empty{border:1px dashed #677258;padding:36px 24px;text-align:center;color:#bcccaf;font-size:15px;border-radius:5px}.postit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding:12px 5px 20px}.postit{color:#27312a;background:#eee4a4;min-height:190px;padding:24px 22px 18px;box-shadow:2px 6px 0 #0915164d;transform:rotate(var(--tilt));display:flex;flex-direction:column;overflow-wrap:anywhere;position:relative}.postit:before{content:'';width:54px;height:17px;position:absolute;top:-6px;left:calc(50% - 27px);background:#f4edbd66;transform:rotate(-3deg)}.postit-coral{background:#efbea5}.postit-mint{background:#c5dbb6}.postit-lilac{background:#d2c8e2}.postit>p{font:17px/1.55 Arial,sans-serif;white-space:pre-wrap;margin:5px 0 24px;flex:1}.postit-meta{display:flex;justify-content:space-between;gap:10px;font:12px Arial,sans-serif}.postit-meta strong{max-width:65%;overflow-wrap:anywhere}.postit-hide{align-self:start;margin-top:16px;padding:7px 0;background:none;border:0;text-decoration:underline;text-underline-offset:3px;font-size:11px;color:#36412f;cursor:pointer}.wall-note{margin-top:20px}
@media(max-width:700px){.live-presence{padding:8px 12px;min-height:49px;gap:5px}.presence-figures{gap:18px;font-size:11px}.presence-figures>span{gap:5px}.presence-figures strong{font-size:21px}.live-presence small{font-size:8px;max-width:88px;text-align:right}.postit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:12px 4px}.postit{padding:20px 15px 16px;min-height:170px}.postit>p{font-size:15px}.postit-meta{font-size:10px}.wall-desk{padding:17px}.wall-auth{gap:14px}.wall-section .section-heading{gap:16px}.wall-section .section-heading h2{font-size:25px}.wall-form-tools button{width:100%;margin:0}.wall-section{margin-top:20px}.mobile-session .live-presence{min-height:36px;height:36px;padding:3px 12px}.mobile-session .presence-figures strong{font-size:17px}.mobile-session .presence-figures{font-size:10px}.mobile-session .live-presence small{font-size:7px;max-width:none}}
@media(max-width:359px){.postit-grid{grid-template-columns:1fr}.presence-figures{gap:12px}.live-presence small{max-width:70px}}

.mobile-session .wall-section{display:none}

.iphone-install-tip{display:flex;align-items:center;gap:18px;justify-content:space-between;margin:0 0 14px;padding:16px 19px;border:1px solid #8b835f;background:#263936;border-radius:8px}.iphone-install-tip strong{display:block;font-size:14px;color:#efdfb7;margin-bottom:6px}.iphone-install-tip span{font-size:12px;line-height:1.5;color:#c6d3c1}.iphone-install-tip button{flex-shrink:0;min-height:44px;border:1px solid #e6d298;border-radius:4px;background:#e6d298;color:#183035;padding:10px 14px;font:700 10px Arial}.fullscreen-help{width:calc(100% - 28px);max-width:550px;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);padding:26px;background:#efeadd;color:#18292d;border:1px solid #65776c;border-radius:10px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y}.fullscreen-help::backdrop{background:#06151bdc;backdrop-filter:blur(6px)}.fullscreen-help .dialog-header{align-items:start;gap:12px;margin:0 0 18px}.fullscreen-help .dialog-header h2{font-size:29px;line-height:1.1;margin:10px 0 0}.fullscreen-help .icon-btn{flex-shrink:0;color:#263b38;border-color:#8b9b87;width:44px;height:44px}.fullscreen-help .eyebrow{color:#af4b32}.install-lead{font-size:15px;line-height:1.5;margin:0 0 24px}.install-steps{display:grid;gap:22px;list-style:none;padding:0;margin:0 0 26px}.install-steps li{display:flex;align-items:start;gap:14px}.install-step-icon{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;font-weight:bold;background:#213c3c;color:#f4dfac}.install-steps strong{font-size:15px;line-height:1.5}.install-steps svg{display:inline-block;width:20px;height:23px;vertical-align:middle;margin-left:6px;color:#155db1}.install-steps p{font-size:13px;line-height:1.6;margin:5px 0 0;color:#475e54}.install-note{font-size:11px;line-height:1.65;color:#53685d}.install-note a{text-decoration:underline}.mobile-session .iphone-install-tip{display:none}body.mobile-session .fullscreen-help{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));z-index:1100}body.mobile-session #fullscreenBtn[data-fullscreen-mode="standalone"]:after{content:'✓';font-size:20px}body.mobile-session #fullscreenBtn[data-fullscreen-mode="install"]:after{content:'↗';font-size:24px}@media(max-width:500px){.iphone-install-tip{align-items:start;flex-direction:column;gap:12px}.iphone-install-tip button{width:100%}.fullscreen-help{padding:22px 20px}.fullscreen-help .dialog-header h2{font-size:26px}.install-steps{gap:18px}}

/* Movement and jump share the left thumb area in both corridor and duel. */
body.mobile-session .touch-controls:not([hidden]){display:grid!important;grid-template-columns:minmax(104px,2fr) minmax(0,3fr);gap:12px;align-items:end}
body.mobile-session .touch-movement{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0;width:100%}
body.mobile-session .touch-movement .touch-jump{grid-column:1/-1;border-color:#c2d883;background:#2d4946}
body.mobile-session .touch-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;max-width:none;min-width:0;margin:0}
body.mobile-session .arcade.combat-controls .touch-special{grid-column:span 2}
body.mobile-session .arcade:not(.combat-controls) .touch-actions{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}
@media(max-width:350px){body.mobile-session .touch-controls:not([hidden]){gap:10px;padding-left:10px;padding-right:10px;grid-template-columns:minmax(104px,2fr) minmax(0,3fr)}body.mobile-session .touch-controls button{padding:5px;font-size:8px}}
