:root{font-family:Arial,Helvetica,sans-serif;color:#24251e;background:#f3f1e7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:4px solid #247be6;outline-offset:4px}header{max-width:1180px;margin:auto;padding:25px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #cccbbf;font-size:10px;font-weight:800;letter-spacing:1.5px}.logo{font-size:27px;color:inherit;text-decoration:none;letter-spacing:-3px}.logo span{color:#e64a34;font-size:20px;margin-left:5px}header button{border:1px solid #bbbbae;border-radius:22px;background:transparent;padding:9px 14px;font-size:11px;letter-spacing:0}main{max-width:1080px;margin:auto;padding:42px 24px 0}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800}h1{font-size:clamp(44px,7.8vw,92px);font-weight:950;letter-spacing:-5px;line-height:.94;margin:17px 0 20px}h1 span{color:#e54c35}.intro{color:#626458;font-size:15px;line-height:1.65;margin-bottom:30px}.arcade{border:2px solid #272a23;border-radius:16px;overflow:hidden;box-shadow:7px 7px 0 #d9dacb;background:#242b23}.hud{display:flex;gap:35px;align-items:center;padding:15px 23px;background:#252c24;color:#bfc9a8;font-size:10px;letter-spacing:1px}.hud strong{color:#f4f4de;font-size:20px;margin-left:10px;letter-spacing:2px}.hud div:nth-child(3) strong{color:#ff765d}.hud button{margin-left:auto;background:transparent;border:1px solid #65705c;border-radius:6px;color:#f0f1dd;padding:7px 12px;font-size:12px}.screen{position:relative;aspect-ratio:16/9;overflow:hidden;background:#dce5b4}canvas{width:100%;height:100%;display:block}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#e4ebc9dc;text-align:center;padding:12px;gap:13px}.warning{font-size:10px;letter-spacing:2px;font-weight:800}#startButton{width:clamp(120px,23vw,235px);height:clamp(120px,23vw,235px);border-radius:50%;background:#ef4b35;color:#fff8e5;border:9px solid #f5694c;box-shadow:0 10px 0 #a93123,0 16px 0 #a1ad7e;font-size:clamp(24px,4vw,43px);font-weight:950;line-height:1;letter-spacing:-1px;transform:rotate(-5deg);transition:transform .15s}#startButton:hover{transform:rotate(3deg) scale(1.04)}#startButton:active{transform:translateY(8px)}.overlay p{font-size:13px;margin:4px}.overlay h2{font-size:clamp(25px,5vw,55px);letter-spacing:-2px;margin:5px}.pill{background:#ec4c35;color:#fff9e8;border:0;border-radius:30px;padding:15px 25px;font-size:12px;font-weight:800}.controls{display:flex;justify-content:space-between;gap:12px;padding:18px 22px;color:#d0d6bc;font-size:11px}kbd{font:11px monospace;border:1px solid #6c775f;border-radius:4px;padding:3px 5px;color:#fff}.notes{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin:40px 0}.notes b{font-size:10px;letter-spacing:1px}.notes p{font-size:12px;color:#737568;line-height:1.5}footer{display:flex;justify-content:space-between;border-top:1px solid #cccebf;padding:20px 0 25px;font-size:9px;letter-spacing:1px;color:#727569}footer span{letter-spacing:0}.hidden{display:none!important}#splat{position:absolute;inset:0;background:#76502d;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff0c5;animation:splat .85s ease-out}#splat div{font-size:clamp(65px,15vw,150px)}#splat b{font-size:30px;letter-spacing:-1px}#announcement{position:absolute;top:16px;left:0;right:0;text-align:center;font-size:22px;font-weight:900;pointer-events:none;color:#3d4b2b;text-shadow:0 2px #fff5}.touch{display:flex;align-items:center;justify-content:space-between;padding:8px 22px 16px}.dpad{display:grid;grid-template-columns:45px 45px 45px;grid-template-rows:42px 42px;gap:5px}.touch button{touch-action:none;user-select:none;border:1px solid #788067;border-radius:10px;background:#3f4935;color:#f5f4dc;font-weight:800;font-size:22px}.up{grid-column:2}.left{grid-column:1;grid-row:2}.down{grid-column:2;grid-row:2}.right{grid-column:3;grid-row:2}.touch .blast{font-size:15px;background:#ed5038;border-color:#ff8b69;border-radius:50%;width:90px;height:90px}.touch button:active{background:#89956c}@keyframes splat{from{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(100% at 50% 50%)}}@media(min-width:800px) and (pointer:fine){.touch{display:none}}@media(max-width:600px){header{padding:15px 18px}header>span{display:none}main{padding:28px 14px 0}h1{letter-spacing:-2px}.intro{font-size:13px}.hud{padding:12px 10px;gap:10px;font-size:8px}.hud strong{font-size:14px;margin-left:3px;letter-spacing:0}.hud button{padding:5px 7px}.controls{padding:14px 10px;flex-wrap:wrap;font-size:10px}.controls>span:last-child{display:none}.warning{font-size:8px;letter-spacing:1px}.overlay{gap:8px}.overlay p{font-size:10px}.notes{gap:13px;margin:28px 0}.notes b{font-size:9px}.notes p{font-size:11px}footer{line-height:1.6;gap:20px;font-size:8px}}

.cast-sprite{display:block;width:64px;height:80px;object-fit:cover;object-position:left;margin-bottom:12px}

.setting-label{padding:10px 22px;background:#38432f;color:#eaf0d3;font-size:11px;letter-spacing:1px}.setting-label strong{color:#fff0b3}.setting-label span{float:right;letter-spacing:0;color:#c8d2b7}@media(max-width:600px){.setting-label{padding:10px;font-size:10px}.setting-label span{display:none}}

.cast-sprite{width:88px;height:88px;object-fit:contain}

.map-picker{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0;font-size:12px}.map-picker label{font-weight:bold}.map-picker select{max-width:100%;padding:10px;border:1px solid #929780;border-radius:8px;background:#fffbed;color:#30392c;font:inherit}.map-picker span{color:#626458;font-size:11px}

.asset-status{font-size:12px;color:#536143;line-height:1.5;min-height:18px}#startButton:disabled{opacity:.55;cursor:wait}

.sound-tests{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;margin:15px 0}.sound-tests button{padding:10px 14px;border:1px solid #737d65;background:#fffbed;border-radius:8px}.sound-tests span{color:#626458;font-size:11px}

.weapon-panel{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 22px;background:#303c2c;color:#f6f2d7;font-size:12px;border-top:1px solid #65705a}.weapon-panel span{font-size:9px;color:#b9caa1;letter-spacing:1px}.weapon-panel strong{color:#ffe19b}.weapon-panel small{display:block;margin-top:5px;font-size:10px;color:#d0d9bd}.ammo-panel{display:flex;align-items:center;gap:10px}.ammo-panel progress{width:65px;height:9px;accent-color:#ecc669}.ammo-panel button{border:1px solid #9ba582;border-radius:6px;background:#46543a;color:#fff5d3;padding:8px;font-size:10px}.ammo-panel button:disabled{opacity:.5;cursor:default}@media(max-width:600px){.weapon-panel{padding:10px;align-items:flex-start}.ammo-panel{flex-wrap:wrap;justify-content:flex-end;max-width:125px;gap:7px}.weapon-panel small{max-width:170px;line-height:1.6}.weapon-panel strong{display:block}.ammo-panel strong{font-size:11px}}

/* Phone and tablet controls: separate pointer IDs allow moving and firing together. */
html{-webkit-text-size-adjust:100%}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.touch{touch-action:none;-webkit-user-select:none;user-select:none}.touch button{-webkit-touch-callout:none;min-width:48px;min-height:48px}.dpad{grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,48px)}
.mobile-hint{display:none;color:#d5dec4;font-size:11px;line-height:1.5;padding:8px 14px}
.hud{gap:16px;flex-wrap:wrap}.hud button{min-height:44px}.hud #viewButton{margin-left:auto}.hud #pause{margin-left:0}
.map-picker select{font-size:16px;min-height:44px}.sound-tests button,#reloadButton{min-height:44px;touch-action:manipulation}
body.game-view{overflow:hidden}body.game-view .arcade{position:fixed;inset:0;z-index:1000;border:0;border-radius:0;box-shadow:none;width:100%;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow:auto}
body.game-view .screen{flex:1;min-height:150px;aspect-ratio:auto}body.game-view canvas{object-fit:contain}body.game-view .controls{display:none}
@media(pointer:coarse),(max-width:799px){.touch{display:flex}.mobile-hint{display:block}.hud{padding:8px 10px;gap:8px}.hud strong{font-size:14px;letter-spacing:0}.hud button{font-size:11px;padding:8px}.touch{padding:8px 14px 12px;gap:12px}.touch .blast{width:96px;height:96px}.weapon-panel{padding:8px 10px}.weapon-panel small{font-size:10px}.screen #announcement{font-size:clamp(12px,3vw,20px);padding:0 8px;top:8px}.screen .overlay h2{font-size:clamp(22px,5vw,45px)}.screen .overlay .pill{min-height:44px}.arcade{box-shadow:3px 3px 0 #d9dacb}}
@media(max-width:380px){main{padding-left:8px;padding-right:8px}.hud{font-size:8px;gap:5px}.hud strong{font-size:12px}.hud button{font-size:10px;padding:6px}.weapon-panel{gap:6px}.ammo-panel{max-width:115px}.notes{grid-template-columns:1fr}.screen #startButton{width:104px;height:104px;min-height:104px;border-width:6px;font-size:25px}.warning{font-size:7px}.overlay p{font-size:9px}}
@media(pointer:coarse) and (orientation:landscape){body.game-view .touch{position:absolute;bottom:calc(8px + env(safe-area-inset-bottom));left:12px;right:12px;pointer-events:none;padding:0}body.game-view .touch button{pointer-events:auto;opacity:.85}body.game-view .mobile-hint{display:none}body.game-view .weapon-panel{padding:4px 12px}body.game-view .weapon-panel small{display:inline;margin-left:8px}body.game-view .setting-label{padding:4px 12px}body.game-view .hud{padding:4px 12px}body.game-view .screen{min-height:0}}

.visitor-counter{text-align:center;margin:24px 0;padding:18px;background:#e3e8d4;border:1px solid #b8c3a1;border-radius:12px;font-size:16px;font-weight:bold;color:#34442e}.visitor-counter strong{color:#ba492f}.visitor-counter small{display:block;font-size:11px;font-weight:normal;margin-top:7px;color:#64705b}

.name-picker{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0;font-size:12px}.name-picker label{font-weight:bold}.name-picker input{font:inherit;font-size:16px;min-height:44px;padding:10px 12px;border:1px solid #929780;border-radius:8px;background:#fffbed;color:#30392c;max-width:100%;width:220px}.name-picker small{color:#626458;font-size:11px}.hud .player-label{flex-basis:100%;min-width:0;overflow-wrap:anywhere}.hud .player-label strong{font-size:14px;color:#ffe19b;letter-spacing:0}

@media(max-width:600px){.setting-label{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.setting-label span{display:inline;margin-left:auto;float:none;font-size:9px}}

.gun-guide{margin:18px 0;padding:14px 18px;border:1px solid #bcc5aa;border-radius:10px;background:#e9eddf;font-size:12px;line-height:1.7}.gun-guide summary{cursor:pointer;font-weight:bold;min-height:24px}.gun-guide ol{padding-left:24px;columns:2;column-gap:30px}.gun-guide li{break-inside:avoid;margin:6px 0}.gun-guide p{color:#526146}@media(max-width:600px){.gun-guide ol{columns:1}}

.difficulty-picker{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:18px 0;font-size:12px}.difficulty-picker label{font-weight:bold}.difficulty-picker select{font-size:16px;min-height:44px;padding:10px;border:1px solid #929780;border-radius:8px;background:#fffbed;max-width:100%;color:#30392c}.difficulty-picker small{color:#626458;font-size:11px}.mode-tag{margin-left:10px;background:#526446;border-radius:20px;padding:4px 10px;color:#e9f0d7;font-size:10px}

.story-portrait{display:block;padding:0;border:0;background:transparent;text-align:left;color:#485839;cursor:pointer}.story-portrait span{display:block;font-size:11px;font-weight:bold;margin:3px 0 12px}.story-portrait .cast-sprite{transition:transform .15s}.story-portrait:hover .cast-sprite{transform:rotate(-4deg) scale(1.06)}
#storyDialog{width:min(670px,calc(100vw - 24px));max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);overflow-y:auto;overscroll-behavior:contain;border:2px solid #35422c;border-radius:18px;padding:24px;background:#f4f0df;color:#30382a;box-shadow:0 15px 80px #0005}#storyDialog::backdrop{background:#172114bd}.story-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.story-top>span{font-size:9px;letter-spacing:1px;font-weight:bold;color:#657055}.story-top button{border:1px solid #9aa686;background:#e4e9d5;border-radius:8px;padding:10px;min-width:70px;min-height:44px;color:#34432c;font-size:12px}#storyDialog h2{font-size:clamp(25px,5vw,39px);line-height:1.05;letter-spacing:-1px;margin:24px 0}.story-copy{font-size:15px;line-height:1.7}.story-copy p{margin:18px 0}.story-copy .story-punchline{font-size:clamp(26px,5vw,38px);font-weight:900;line-height:1.15;color:#c84d30}.story-copy aside{background:#e3e8d5;border-left:4px solid #8a9b68;padding:12px 16px;color:#536146;font-size:13px;font-style:italic}.story-ending{font-weight:bold}#storyDialog>.pill{margin-top:12px;min-height:44px}@media(max-width:600px){#storyDialog{padding:18px}.story-copy{font-size:14px}.story-top>span{font-size:8px}}

.character-photo{display:block;width:100%;height:auto;object-fit:contain;border-radius:12px;border:2px solid #c1cbb0;margin-top:12px}.mario-photo{object-position:center}.tony-photo{object-position:center}.photo-story-button{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:#445638;cursor:pointer}.photo-story-button span,.character-photo-card figcaption{display:block;font-size:11px;line-height:1.5;margin-top:7px;font-weight:bold}.character-photo-card{margin:0}.story-photos{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.story-photos figure{margin:0}.story-photos figcaption{font-size:12px;font-weight:bold;margin-top:8px}.story-photos .character-photo{height:auto}.notes>div{min-width:0}@media(max-width:600px){.notes{grid-template-columns:1fr}.character-photo{height:auto}.story-photos{gap:10px}.story-photos .character-photo{height:auto}}

.leaderboard{margin:32px 0;padding:22px;border:2px solid #596d45;border-radius:16px;background:#e9eddf}.leaderboard h2{font-size:28px;margin:7px 0}.leaderboard-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px}.leaderboard label,.leaderboard p{font-size:12px;line-height:1.6}.leaderboard select,.leaderboard button{font:inherit;font-size:16px;min-height:44px;padding:8px;border:1px solid #899775;border-radius:8px;background:#fffaec;color:#35442c}.leaderboard-table{overflow-x:auto}.leaderboard table{border-collapse:collapse;width:100%;font-size:14px;table-layout:fixed}.leaderboard th,.leaderboard td{padding:12px 6px;border-bottom:1px solid #c3ceb2;text-align:left;overflow-wrap:anywhere}.leaderboard th:first-child{width:16%}.leaderboard th:nth-child(2){width:42%}.leaderboard th:nth-child(3),.leaderboard th:nth-child(4){width:21%}#leaderboardStatus{color:#596d45}#scoreStatus{max-width:90%;line-height:1.4;font-size:11px}@media(max-width:600px){.leaderboard{padding:14px}.leaderboard table{font-size:12px}.leaderboard-heading>div:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.screen #end{gap:5px}.screen #end p{margin:2px;font-size:9px}.screen #end h2{margin:0;font-size:22px}.screen #end .pill{padding:8px 16px}}

.leaderboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.leaderboard-card{min-width:0;border:1px solid #bdc9ac;border-radius:12px;padding:14px;background:#f5f4e8}.leaderboard-card h3{font-size:18px;margin:0 0 10px;color:#3e5633}.leaderboard-card:nth-child(2) h3{color:#81662c}.leaderboard-card:nth-child(3) h3{color:#b25b37}.leaderboard-card:nth-child(4) h3{color:#85509b}.leaderboard-card table{font-size:12px}.leaderboard-card th:first-child{width:52%}.leaderboard-card th:nth-child(2){width:28%}.leaderboard-card th:nth-child(3){width:20%}.leaderboard-card p{font-size:11px;color:#667458}@media(max-width:650px){.leaderboard-grid{grid-template-columns:1fr}.leaderboard-card{padding:12px}}

.cast-sprite{object-fit:cover;object-position:left}.notes>div:nth-child(2) .cast-sprite{object-position:right}
