:root{color-scheme:dark;--gold:#e6b45e;--ink:#0c1014;--paper:#e3dccb;--muted:#a2a4a5;--line:#39424a;--panel:#141b22}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#06080b;color:var(--paper);font:16px/1.5 Consolas,"Courier New",monospace}body{display:grid;place-items:center}button,select,input{font:inherit}button,a,summary,input,select{-webkit-tap-highlight-color:transparent}button{border:1px solid var(--line);background:#202932;color:var(--paper);padding:11px 16px;min-height:44px;cursor:pointer;font-weight:700;letter-spacing:.045em}button:hover{background:#35414b}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:wait}button.primary{background:var(--gold);border-color:var(--gold);color:#171b20}button.primary:hover{background:#f4cb84}button.primary span{float:right}a{color:var(--gold)}.hidden{display:none!important}#shell{position:relative;width:min(100vw,153vh);height:min(100vh,65.36vw);max-height:100dvh;display:flex;flex-direction:column;background:var(--ink);overflow:hidden;box-shadow:0 0 100px #000}#view{position:relative;flex:1;min-height:0;overflow:hidden}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;object-fit:fill;touch-action:none;cursor:crosshair}#topbar{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;padding:18px 22px;background:linear-gradient(#020509ce,transparent);pointer-events:none}#topbar button{pointer-events:auto;padding:6px 10px;min-height:36px;font-size:12px;background:#0d1720b5}#mission{font-size:14px;letter-spacing:.14em}#objective{font-size:12px;color:#c4d2d4;margin:4px 0}.top-actions{display:flex;gap:8px;align-items:flex-start}#bossBar{position:absolute;top:66px;left:27%;width:46%;text-align:center;font-size:12px;font-weight:bold;text-shadow:1px 2px #000;color:#ff9f85}#bossBar>div{height:7px;background:#221a1ad9;border:1px solid #733d30;margin-top:5px}#bossHealth{display:block;height:100%;background:#c56343;transition:width .1s}#notice{position:absolute;left:50%;top:27%;transform:translateX(-50%);text-align:center;background:#081015c9;color:#ffe2a5;padding:7px 14px;font-size:14px;max-width:80%;opacity:0;pointer-events:none;transition:opacity .2s}#notice.show{opacity:1}#hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font-size:13px;white-space:nowrap;background:#05080ba6;padding:5px 12px;pointer-events:none;margin:0}#hint:empty{display:none}#hud{height:85px;display:flex;align-items:center;justify-content:space-around;gap:12px;padding:10px 20px;background:#10161b url('assets/ui/hud.png') center/100% 100%;flex-shrink:0;z-index:2}.readout{min-width:65px;text-align:center}.readout label{display:block;font-size:12px;letter-spacing:.12em;color:#9aabaf}.readout strong{font-size:28px;line-height:1.2;color:#f0d598}.readout:first-child strong{color:#82d0b8}.readout.ammo strong{color:#f0d598}#weapons{display:flex;gap:4px}#weapons button{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:58px;padding:5px;background:#10191f;border-color:#313b43}#weapons button.active{background:#5e4926;border-color:#dcb565}#weapons img{max-width:100%;height:43px;object-fit:contain;image-rendering:pixelated}#weapons small{position:absolute;top:0;left:4px;color:#abbaa8;font-size:11px}.overlay{position:absolute;inset:0;z-index:10;background:linear-gradient(100deg,#080e15fa 30%,#0b111bc9 100%);overflow:auto}.menu-panel{position:relative;width:57%;padding:clamp(24px,4vw,65px);z-index:2}.eyebrow{color:var(--gold);font-size:13px;letter-spacing:.2em;font-weight:bold;margin:0 0 14px}.insignia{position:absolute;right:40px;top:35px;border:1px solid #61676d;padding:5px 8px;font-size:12px;color:#858f98}h1{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:clamp(54px,7.5vw,118px);line-height:.88;letter-spacing:.01em;margin:20px 0 24px;text-shadow:4px 6px #000}h1 span{color:var(--gold)}.tagline{font-size:13px;letter-spacing:.11em;color:#b7b1a5}.intro{font-size:15px;line-height:1.6;color:#a6b0b8;margin:20px 0}.menu-actions{display:grid;grid-template-columns:1fr;gap:8px}.menu-actions #continueBtn{padding:8px;min-height:36px;font-size:13px}#loadStatus{font-size:12px;color:#83b9b0;margin:8px 0}#loadStatus.error{color:#ff8d76;white-space:pre-line}.settings{display:flex;gap:15px;margin:16px 0}.settings label{display:grid;gap:4px;width:50%;font-size:12px;color:#a4b1bc}select{width:100%;padding:5px 8px;font-size:14px;background:#18212a;border:1px solid #39444e;color:#e4d7bd;min-height:36px}details{border-top:1px solid #36404a;border-bottom:1px solid #36404a}summary{cursor:pointer;padding:10px 0;font-size:12px;letter-spacing:.12em}#levelGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:12px}#levelGrid button{padding:7px 5px;font-size:13px;min-height:38px}#levelGrid button.boss{border-color:#946344;color:#f0b67c}.help{font-size:12px;line-height:1.8;color:#98a8b3;margin:14px 0}.asset-link{font-size:12px;text-decoration:none}.fine{font-size:11px;color:#6d808d;margin-bottom:0}.menu-art{position:absolute;right:0;top:0;width:48%;height:100%;background:linear-gradient(0deg,#080d12,#19303dcc);overflow:hidden}.menu-art:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#0003 3px 4px);z-index:2;pointer-events:none}.menu-art img{position:absolute;bottom:5%;left:8%;height:82%;width:90%;object-fit:contain;object-position:bottom;image-rendering:pixelated;filter:drop-shadow(0 0 35px #4e727d6b)}.art-label{position:absolute;bottom:22px;right:25px;font-size:12px;color:#8da7b7;text-align:right;z-index:3}.art-label b{display:block;font-size:16px;color:#cba87a;margin-top:6px}.dialog-panel{width:min(480px,92%);margin:6vh auto;padding:32px;background:#121b24;border:1px solid #6f6a55;box-shadow:0 20px 80px #000}.dialog-panel h2{font-family:Impact,Haettenschweiler,sans-serif;font-size:44px;line-height:1.05;letter-spacing:.025em;margin:10px 0 20px;color:var(--gold)}#dialogBody{color:#b6c4cd;white-space:pre-line;line-height:1.7}.dialog-panel button{width:100%;margin-top:10px}#pauseSettings{border-block:1px solid #35424c;margin:16px 0;padding:12px 0}#pauseSettings label{display:flex;justify-content:space-between;align-items:center;gap:18px;font-size:14px;margin:8px 0}#pauseSettings input{width:48%;accent-color:var(--gold)}#touch{position:absolute;inset:0;pointer-events:none;touch-action:none;z-index:3}#lookArea{position:absolute;inset:22% 0 0 40%;pointer-events:auto;touch-action:none}#lookArea span{position:absolute;bottom:10px;left:20%;font-size:10px;color:#ced4d655;pointer-events:none}#stick{position:absolute;bottom:22px;left:28px;width:120px;height:120px;border:2px solid #dfd6bb66;border-radius:50%;background:#0c15203d;pointer-events:auto;touch-action:none}#stickKnob{position:absolute;left:38px;top:38px;width:40px;height:40px;border-radius:50%;background:#e6cf9866;border:1px solid #e6cf98aa;pointer-events:none}#touchActions{position:absolute;right:22px;bottom:28px;display:flex;align-items:end;gap:16px;pointer-events:none}#touchActions button{pointer-events:auto;border-radius:50%;width:64px;height:64px;min-height:64px;background:#27313f8c;border:2px solid #b8b8a285;touch-action:none;font-size:12px;padding:0}#touchActions #fireTouch{width:92px;height:92px;background:#754b2aa6;border-color:#e3b977b3;font-size:16px}.mobileHelp{display:none}body.touch .mobileHelp{display:inline}body.touch .desktopHelp{display:none}body.touch #shell{width:100vw;height:100dvh}body.touch #view{min-height:0}body.touch #hud{height:68px}body.touch #topbar{padding:10px 14px}body.touch #bossBar{top:53px}body.touch #objective{max-width:50vw;font-size:10px}body.touch #mission{font-size:11px}body.touch #hint{bottom:auto;top:37%;font-size:11px}body.touch #notice{font-size:11px;top:20%}
@media(max-height:720px){.menu-panel{padding:24px 34px}h1{font-size:66px;margin:16px 0}.intro{margin:10px 0;font-size:14px}.tagline{font-size:11px}.insignia{display:none}.settings{margin:10px 0}.help{margin:10px 0}.eyebrow{margin-bottom:8px}.menu-actions button{padding:9px 12px}}
@media(max-width:750px){#shell{width:100vw;height:100dvh}#hud{gap:5px;padding:8px;height:76px}.readout{min-width:44px}.readout strong{font-size:23px}.readout label{font-size:10px;letter-spacing:0}.score{display:none}#weapons button{width:47px;height:49px}#weapons img{height:38px}#weapons{gap:2px}.menu-panel{width:65%;padding:22px}.menu-art{width:40%}.menu-art img{left:-12%;width:123%;bottom:10%}h1{font-size:58px}.art-label{display:none}.intro{font-size:13px}.menu-panel .eyebrow{font-size:10px}.tagline{font-size:10px}}
@media(orientation:portrait) and (max-width:750px){#view{flex:1}.menu-panel{width:100%;padding:30px 26px;background:#07101be6}.menu-art{display:none}h1{font-size:82px}.help{font-size:12px}.intro{font-size:15px}#weapons button{width:42px}.readout{min-width:38px}.readout.armor{display:none}#stick{left:16px;bottom:28px;width:108px;height:108px}#stickKnob{left:32px;top:32px}#touchActions{right:14px;gap:12px}#touchActions #fireTouch{width:77px;height:77px}#touchActions #useTouch{width:55px;height:55px;min-height:55px}#bossBar{left:18%;width:64%;top:74px}}

/* Campaign 3: classic status bar and red, dripping menu lettering. */
:root{--gold:#cb2e22}#shell{width:min(100vw,170vh);height:min(100dvh,58.82vw)}
#menu{background:radial-gradient(ellipse at 50% 65%,#532b1d55,#130705c9 70%),linear-gradient(#10070555,#100805c9);}
.menu-panel{width:100%;min-height:100%;padding:210px 5% 24px;position:relative}.menu-panel>*{position:relative;width:36%;z-index:3}
.menu-panel h1{position:absolute;top:16px;left:0;width:100%;text-align:center;margin:0;line-height:.96;font-size:clamp(42px,5.8vw,84px);z-index:4;letter-spacing:.015em}
.bloody,.bloody span{color:#bd140e!important;font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;text-shadow:1px 1px #fa7250,2px 3px #5c0905,4px 6px #170101,0 6px 0 #730900;text-transform:uppercase}
h1.bloody:after{content:'';display:block;width:170px;height:13px;margin:auto;background:linear-gradient(90deg,transparent 8%,#860b07 8% 10%,transparent 10% 34%,#7c0704 34% 37%,transparent 37% 61%,#8e0a05 61% 63%,transparent 63% 87%,#730600 87% 89%,transparent 89%);clip-path:polygon(0 0,100% 0,100% 35%,88% 100%,63% 55%,35% 95%,9% 70%,0 35%)}
.menu-actions button,.menu-actions #continueBtn{background:transparent;border:0;color:#d84129;text-shadow:2px 3px #270000;font:28px Impact,Haettenschweiler,sans-serif;text-align:left;padding:5px 10px;min-height:40px;letter-spacing:.04em}
.menu-actions button:hover,.menu-actions button:focus-visible{color:#ffca91;background:#28050077}.menu-actions button:before{content:'◆';display:inline-block;width:30px;color:#bdac89}.menu-art{left:32%;right:auto;width:36%;background:none;pointer-events:none;z-index:1;overflow:visible}.menu-art img{left:0;width:100%;height:72%;bottom:2%;filter:drop-shadow(8px 10px 3px #0009);object-position:bottom}.menu-art:before{display:none}.art-label{right:-25%;bottom:8%;color:#c6a081}.art-label b{color:#d94a2c;font-size:20px}
.tagline{font-size:11px;color:#c4b69e;margin-top:0}#loadStatus{font-size:10px;color:#a49482}.settings{gap:10px}.settings label{width:50%}.settings select{background:#211812}.help{color:#c3b69e;font-size:10px}.fine{color:#b09887;font-size:10px}.asset-link{font-size:10px}.menu-panel details{border-color:#5b3025}.menu-panel .settings,.menu-panel .help{margin:9px 0}.menu-panel .fine{margin-top:8px}
#hud{position:relative;height:96px;display:grid;grid-template-columns:1fr 1fr 90px 1fr 1fr;gap:12px;padding:3px 20px;background-color:#55504a;border-top:4px ridge #9c9182;box-shadow:inset 0 3px 4px #0009;background-blend-mode:luminosity}.portrait-frame{height:88px;align-self:end;display:grid;place-items:center;background:#262520;border:4px ridge #aaa293;overflow:hidden}.portrait-frame img{height:94px;width:68px;object-fit:contain;image-rendering:pixelated}.readout label{color:#c4bba7;font-weight:bold}.readout strong{font:34px Impact,sans-serif;color:#c52618!important;text-shadow:1px 1px #ed8b60,2px 2px #260604}.readout.score{display:block}.readout.score strong{font-size:25px}
#weapons{position:absolute;bottom:100%;right:6px;gap:2px;margin-bottom:7px}#weapons button{width:39px;height:35px;min-height:35px;padding:2px;background:#1c1b17c9;border-color:#655842}#weapons img{height:28px}#weapons button.active{border-color:#ce5c37;background:#583a25bb}
.dialog-panel{background:#1c100ef0;border:3px ridge #7c5040;width:min(650px,94%)}.dialog-panel h2.bloody{font-size:clamp(38px,6vw,64px)}#dialogPrimary{background:#862c20;color:#f3d5ae;border-color:#b24b32}.eyebrow{color:#cb9471}#topbar{padding:10px 14px}#objective{font-size:10px}#mission{font-size:12px}#bossBar{top:58px}
@media(max-height:650px){.menu-panel{padding-top:155px}.menu-panel h1{font-size:57px;top:12px}.menu-actions button,.menu-actions #continueBtn{font-size:23px;min-height:34px}.menu-panel .help{margin:5px 0;font-size:9px}.menu-panel .settings{margin:5px 0}.menu-panel select{min-height:28px;font-size:12px}.menu-panel .fine{display:none}#hud{height:78px}.portrait-frame{height:70px}.portrait-frame img{height:76px}}
@media(max-width:750px){#shell{width:100vw;height:100dvh}#hud,body.touch #hud{height:72px;grid-template-columns:1fr 1fr 58px 1fr 1fr;gap:3px;padding:2px 5px}.portrait-frame{height:64px;border-width:3px}.portrait-frame img{height:68px;width:50px}.readout strong{font-size:25px}.readout.score strong{font-size:19px}.readout{min-width:30px}.readout label{font-size:9px}.menu-panel{padding:140px 4% 20px}.menu-panel>*{width:44%}.menu-panel h1{font-size:44px}.menu-art{display:block;left:46%;width:47%}.menu-art img{left:0;width:100%;bottom:5%}.menu-actions button,.menu-actions #continueBtn{font-size:23px}.menu-panel .eyebrow{font-size:10px}.menu-panel .settings{width:44%}.menu-panel .help{font-size:9px}.art-label{display:none}}
@media(orientation:portrait) and (max-width:750px){.menu-panel{background:none;padding-top:175px}.menu-panel>*{width:63%}.menu-panel h1{font-size:48px;top:28px}.menu-art{left:38%;width:62%;opacity:.68}.menu-art img{height:52%;bottom:13%}.menu-panel .settings{width:63%}.menu-panel .help{font-size:10px}.menu-panel .fine{display:block}.menu-panel{padding-bottom:30px}#weapons button{width:34px}}

/* Version 5: shared battle painting, character choice and uniform-aware HUD. */
#menu{background:#130907}.menu-art{inset:0;width:100%;height:100%;opacity:1;overflow:hidden;display:block}.menu-art img{inset:0;width:100%;height:100%;object-fit:cover;object-position:62% center;filter:none}.menu-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#080605f2 0%,#100805b8 32%,transparent 58%),linear-gradient(#100300a0,transparent 32%)}
.menu-panel{padding-top:190px;pointer-events:none}.menu-panel>*{pointer-events:auto}.menu-panel h1{pointer-events:none}.character-select label{font-size:10px;color:#e8bb80;letter-spacing:.12em}.character-select select{font-weight:bold;border-color:#956443;background:#18120fee}.character-select p{white-space:pre-line;font-size:11px;line-height:1.5;margin:6px 0 10px;color:#e6cc9d}.portrait-frame{position:relative}.portrait-frame img{align-self:end}.portrait-frame span{position:absolute;bottom:0;left:0;right:0;z-index:1;text-align:center;background:#110b08d9;color:#e5cf9b;font-size:9px;line-height:13px;letter-spacing:.08em}
@media(max-height:650px){.menu-panel{padding-top:150px}.character-select p{font-size:10px;margin:3px 0 6px}.menu-panel .tagline{display:none}}
@media(max-width:750px){.menu-panel{padding-top:130px}.menu-art{inset:0;width:100%;opacity:1}.menu-art img{inset:0;width:100%;height:100%;object-position:65% center}.character-select p{font-size:10px}}
@media(orientation:portrait) and (max-width:750px){.menu-panel{padding-top:170px}.menu-panel>*{width:74%}.menu-panel .settings{width:74%}.menu-art{inset:0;width:100%;opacity:1}.menu-art img{height:100%;object-position:64% center}.menu-art:after{background:linear-gradient(90deg,#0a0504ed,#10070590 65%,#10070555)}#touchActions{gap:7px}#touchActions #jumpTouch{width:51px;height:51px;min-height:51px;font-size:10px}}

#dialog.ending .dialog-panel{width:min(780px,94%)}#dialog.ending #dialogTitle{font-size:clamp(28px,4.6vw,48px);line-height:1.13;overflow-wrap:break-word}

/* v11: 150% HUD dimensions; responsive dimensions remain 150% of their v10 tier. */
#hud,body.touch #hud{height:144px;flex-shrink:0;grid-template-columns:1fr 1fr 135px 1fr 1fr;gap:18px;padding:4.5px 30px}
.portrait-frame{height:132px;border-width:6px}.portrait-frame img{height:141px;width:102px}.portrait-frame span{font-size:13.5px;line-height:19.5px}
.readout label{font-size:18px}.readout strong{font-size:51px}.readout.score strong{font-size:37.5px}
#weapons{gap:3px;margin-bottom:10.5px}#weapons button{width:58.5px;height:52.5px;min-height:52.5px;padding:3px}#weapons img{height:42px}
@media(max-height:650px){#hud,body.touch #hud{height:117px}.portrait-frame{height:105px}.portrait-frame img{height:114px}}
@media(max-width:750px){#hud,body.touch #hud{height:108px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 87px minmax(0,1fr) minmax(0,1fr);gap:4.5px;padding:3px 7.5px}.portrait-frame{height:96px;border-width:4.5px}.portrait-frame img{height:102px;width:75px}.readout strong{font-size:37.5px}.readout.score strong{font-size:28.5px}.readout label{font-size:13.5px}.readout{min-width:0}.portrait-frame span{font-size:11px}}
@media(orientation:portrait) and (max-width:750px){#weapons button{width:51px}.readout.score strong{font-size:clamp(16px,6vw,28.5px)}}

/* v13: reserve title space, keep the upper part of the heroes visible. */
#menu{--menu-title-size:clamp(26px,5.8vw,84px);--menu-title-space:calc(var(--menu-title-size) + var(--menu-title-size) + 48px);background:#130907}
#menu .menu-panel{padding-top:var(--menu-title-space)}
#menu .menu-panel h1{top:16px;font-size:var(--menu-title-size);line-height:.96}
#menu .menu-art{inset:var(--menu-title-space) 0 0;width:100%;height:auto;overflow:hidden}
#menu .menu-art img{inset:0;width:100%;height:100%;object-fit:cover;object-position:64% top}
@media(orientation:portrait) and (max-width:750px){
 #menu{--menu-hero-height:clamp(200px,66.67vw,360px)}
 #menu .menu-art{height:var(--menu-hero-height);bottom:auto}
 #menu .menu-art img{left:-40%;right:auto;width:150%;height:150%;object-position:center top}
 #menu .menu-art:after{background:linear-gradient(0deg,#130907,transparent 24%)}
 #menu .menu-panel{padding-top:calc(var(--menu-title-space) + var(--menu-hero-height) + 16px)}
 #menu .menu-panel>*:not(h1),#menu .menu-panel .settings{width:100%}
}
