:root{color-scheme:dark;--cream:#eee8d8;--red:#e76247;--green:#8dc2a0}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#080f13;font-family:Arial,Helvetica,sans-serif;color:var(--cream);user-select:none}button{font:inherit;color:inherit;cursor:pointer;border:0;border-radius:2px;touch-action:none}button:focus-visible{outline:3px solid #f8cc79;outline-offset:4px}#shell{position:absolute;width:min(100vw,133.333333vh,1600px);height:min(100vh,75vw,1200px);inset:0;margin:auto;overflow:hidden;background:#18282e;container-type:inline-size}canvas{width:100%;height:100%;display:block;touch-action:none}.hidden{display:none!important}.panel{position:absolute;inset:0}#menu{background:linear-gradient(90deg,rgba(9,18,23,.97),rgba(9,18,23,.82) 35%,rgba(9,18,23,.08) 80%)}.menuCopy{position:absolute;left:7%;top:8%;width:62%}.eyebrow{font-size:clamp(8px,1cqw,13px);font-weight:700;letter-spacing:.22em}.red{color:var(--red)}h1{font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(46px,9.1cqw,118px);line-height:.81;letter-spacing:-.015em;margin:4% 0 2%}h1 span{color:var(--red)}.subtitle{font-size:clamp(11px,1.9cqw,24px);font-weight:700;letter-spacing:.45em;margin-top:3%}.menuCopy p{color:#aebfbb;font-size:clamp(10px,1.3cqw,17px);line-height:1.6;margin:4% 0}.primary,.secondary{display:block;text-align:left;padding:clamp(8px,1.4cqw,18px) clamp(12px,2cqw,26px);font-size:clamp(10px,1.2cqw,16px);font-weight:800;letter-spacing:.09em;background:var(--red);color:#142126;min-width:42%;margin-bottom:10px}.primary span{float:right;margin-left:20px}.secondary{background:#273c41;color:var(--cream)}.menuLinks{display:flex;gap:20px;margin-top:3%}.menuLinks button{background:none;color:#b5c4bc;font-size:clamp(7px,.9cqw,11px);letter-spacing:.08em;padding:0}.routeLine{font-size:clamp(6px,.75cqw,10px);letter-spacing:.11em;color:#8a9c98;margin-top:5%;white-space:nowrap}.routeLine i{color:var(--red);padding:0 6px}.menuStamp{position:absolute;right:5%;bottom:12%;font-weight:900;font-size:clamp(15px,2.6cqw,34px);line-height:1.1;text-align:right;transform:rotate(-4deg);color:#d4d3ba}.menuStamp span{display:block;font-size:clamp(6px,.65cqw,9px);letter-spacing:.15em;margin-top:12px;color:#8baca7}#saveNotice{position:absolute;bottom:3%;left:7%;color:#eeb783;font-size:12px}#hud{position:absolute;inset:0;pointer-events:none}.top{position:absolute;top:max(3%,env(safe-area-inset-top));left:max(3%,env(safe-area-inset-left));right:max(3%,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:start}.identity{padding:10px 14px;border-left:3px solid var(--red);background:#0c171bd9}.identity strong{display:block;font-size:clamp(12px,1.5cqw,20px);margin-top:6px}.identity .eyebrow{color:#8baba3}.status{display:flex;align-items:center;gap:8px}.status>span,.status button{background:#0c171be6;padding:12px;font-size:clamp(8px,1cqw,13px);font-weight:bold}.status button{pointer-events:auto}.status>span:first-child{color:#e4bd6e}.bottom{position:absolute;bottom:4%;left:3%;right:3%;display:flex;align-items:center;justify-content:space-between;gap:20px}.vitals{width:19%;min-width:100px;background:#0b161bd9;padding:12px}.vitals>span{display:flex;justify-content:space-between;font-weight:700;font-size:clamp(9px,1.1cqw,14px)}.healthbar{height:6px;background:#4c3935;margin:8px 0}.healthbar i{display:block;background:var(--green);height:100%;width:100%;transition:width .15s}.vitals small,.ammo small{font-size:clamp(7px,.8cqw,10px);letter-spacing:.1em;color:#b5c5b6}.ammo{background:#0b161bd9;padding:10px 18px;min-width:110px}.ammo strong{font-size:clamp(20px,3cqw,38px)}.ammo>span{color:#99ada9;margin-left:8px}.ammo small{display:block}#objective{font-size:clamp(9px,1cqw,13px);text-align:center;color:#dfd7b5;text-shadow:0 2px 4px #000;background:#0c171bb8;padding:10px 16px}#toast{position:absolute;top:19%;left:20%;right:20%;text-align:center;font-size:clamp(12px,1.5cqw,20px);color:#ffdb9a;text-shadow:0 2px 4px #000;letter-spacing:.03em}#interactHint{position:absolute;left:25%;right:25%;bottom:23%;text-align:center;color:#ffdc92;font-size:clamp(11px,1.3cqw,17px);font-weight:bold;text-shadow:0 2px 4px #000}#bossHud{position:absolute;top:15%;left:31%;right:31%;text-align:center;font-size:clamp(9px,1cqw,13px);letter-spacing:.18em}#bossHud>div{height:7px;margin-top:8px;background:#302524}#bossFill{display:block;height:100%;background:var(--red)}#dialog{display:flex;align-items:center;justify-content:center;background:#061016cd;backdrop-filter:blur(5px)}.card{padding:4%;width:65%;max-height:94%;overflow:auto;border-top:3px solid var(--red);background:#13232a;box-shadow:0 20px 70px #0008}h2{font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(22px,3.7cqw,48px);text-transform:uppercase;letter-spacing:.025em;margin:12px 0 18px}.card p{color:#bcc9c3;line-height:1.6;font-size:clamp(10px,1.25cqw,16px)}#dialogActions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}#dialogActions button{min-width:0;margin:0}.guide{display:grid;grid-template-columns:1fr 1fr;gap:10px 25px;font-size:clamp(9px,1.1cqw,14px);line-height:1.55}.guide b{color:#e8bf78}#touch{position:absolute;inset:0;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.movePad{position:absolute;left:max(3%,env(safe-area-inset-left));bottom:5%;display:flex;gap:12px}.actionPad{position:absolute;right:max(3%,env(safe-area-inset-right));bottom:4%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}#touch button{pointer-events:auto;background:#1c363cce;border:1px solid #c2d4bc80;min-width:48px;min-height:43px;width:6cqw;height:5cqw;font-size:clamp(10px,1.15cqw,15px);font-weight:bold;color:#d9e3d6}#touch .movePad button{width:8cqw;height:8cqw;font-size:24px}#touch .fire{background:#c75b42e8;color:#fff4de}#touch button.active{background:#92b9a2;color:#09232b}body.touch .bottom{bottom:27%;left:3%;right:3%}body.touch #interactHint{bottom:49%}body.touch #objective{max-width:40%;padding:8px}body.touch .vitals{padding:7px}body.touch .ammo{padding:4px 12px}body.touch .ammo strong{font-size:23px}#rotate{display:none;position:absolute;inset:0;background:#0b171ff2;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:10%;gap:20px}#rotate button{padding:14px;background:var(--red)}@media(orientation:portrait) and (pointer:coarse){#rotate{display:flex}body.portrait-ok #rotate{display:none}}@media(max-height:450px){.menuCopy{top:6%}.menuCopy p{margin:2% 0}.menuLinks{margin-top:2%}.routeLine{margin-top:3%}.primary,.secondary{margin-bottom:6px}.card{padding:3%}.card h2{margin:8px 0}.status>span,.status button{padding:8px}.identity{padding:7px 10px}}

body.touch .bottom{bottom:auto;top:17%;align-items:flex-start}body.touch #toast{top:34%}body.touch #bossHud{top:31%}body.touch #interactHint{bottom:32%}

#toast{top:22%}body.touch #toast{top:41%}body.touch #bossHud{top:30%}

.mix{position:absolute;top:89px;right:24px;display:flex;gap:14px;font-size:9px;letter-spacing:1px;color:#d4c5a4;pointer-events:auto}.mix label{display:flex;gap:5px;align-items:center}.mix input{width:68px;accent-color:#c4a272}.touch .mix{top:65px;right:16px;transform:scale(.8);transform-origin:right top}

#stageSelect{display:block;margin:10px 0;background:#142329;color:#dfd6bf;border:1px solid #657167;padding:8px;max-width:310px}#stageSelect.hidden{display:none}
body.touch .mix{top:29%;right:16px}

@container (max-width: 600px){.top{gap:6px}.identity{padding:6px}.identity .eyebrow{letter-spacing:.08em}.status{gap:3px}.status>span,.status button{padding:7px 5px;font-size:9px}.identity strong{font-size:12px}.card{width:88%}.mix{top:75px;right:3%;gap:6px}.mix input{width:50px}#touch button{min-width:40px;min-height:38px}.actionPad{gap:5px}.movePad{gap:8px}.vitals{min-width:85px}.ammo{min-width:84px}body.touch #objective{font-size:9px;padding:5px}.menuStamp{right:3%;font-size:18px}.menuCopy{width:80%}.menuCopy h1{font-size:62px}.menuLinks{gap:15px}.routeLine{letter-spacing:0}.routeLine i{padding:0 3px}}

.more-games{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border:1px solid currentColor;text-decoration:none;color:inherit;font:inherit;font-weight:bold;cursor:pointer}.more-games:hover{filter:brightness(1.2)}#gm-ad-status{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:120;background:#101820;color:white;padding:10px 18px;border-radius:5px;pointer-events:none}
