/* v0.2: independent thumb controls and cumulative weapon status. */
body{overscroll-behavior:none}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}#scene{touch-action:none}#toast{max-width:90vw;text-align:center;font-size:clamp(12px,1.5vw,18px);white-space:normal}
.brand small{letter-spacing:1px}#rigHUD{position:absolute;left:35px;top:250px;border-left:2px solid var(--acid);padding:8px 12px;background:#111b2980}#rigHUD>span{font-size:10px;letter-spacing:1.5px;color:#bac4cb}#rigHUD>div{width:130px;height:3px;background:#ffffff18;margin-top:8px;display:none}#rigHUD.compound>div{display:block}#rocketMeter{height:100%;display:block;background:var(--orange);width:0}#shop button.locked{opacity:.45}#slots button:disabled{opacity:.4}#shop button strong{font-size:11px}
#touch{bottom:max(18px,env(safe-area-inset-bottom));left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));align-items:flex-end;height:98px;z-index:11;user-select:none;-webkit-user-select:none;pointer-events:none}
#touch .move-pad{pointer-events:none}#touch .move-pad>span{display:block;font-size:9px;letter-spacing:3px;color:#9caeb9;margin-bottom:8px;text-align:center}#touch .move-pad>div{display:flex;gap:10px}#touch button{pointer-events:auto;touch-action:none;border:1px solid #ffffff48;background:#142333e8;box-shadow:0 4px 20px #0005;color:#eaf3ef;padding:0;width:66px;height:64px;border-radius:15px;font-size:23px;transform:none}#touch button.held{background:#627f3b;border-color:var(--acid);box-shadow:0 0 22px #d3fd6940}#touch #fire{margin:0;width:94px;height:94px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:2px solid var(--acid);background:#293e29ed;box-shadow:0 0 0 5px #e4fc7310,0 4px 25px #0006}#fire>span{font-size:24px;line-height:1}#fire>b{font-size:16px}#fire>small{font-size:9px;color:#c2d3b0}#touch #fire.held{background:#e4fc73;color:#182511}#touch #fire.held small{color:#30451b}
.touch-device footer{bottom:calc(120px + env(safe-area-inset-bottom));padding:10px 16px 8px;background:linear-gradient(transparent,#080f1bdb 20%);grid-template-columns:1fr;gap:9px}.touch-device .bottom-help{display:none}.touch-device .section-label{font-size:9px;margin-bottom:5px}.touch-device .section-label span{display:none}.touch-device #slots button{height:43px;padding:8px}.touch-device #slots button b{display:inline;font-size:11px;margin-left:8px}.touch-device #shop button{height:55px;min-height:55px;padding:8px}.touch-device #shop b{font-size:11px;margin-bottom:5px}.touch-device #shop small{display:none}.touch-device #shop strong{display:block;float:none;font-size:10px}.touch-device #rigHUD{top:190px;left:16px;font-size:9px}.touch-device #rigHUD>span{font-size:8px}.touch-device .control-summary{font-size:0;gap:0}.touch-device .control-summary span{display:none}.touch-device .control-summary:after{content:'왼손 ◀ ▶ 이동  ·  오른손 공격 버튼 길게';font-size:11px;line-height:1.7;color:#c2ccd1}.touch-device .intro-card{top:19%}.touch-device .primary{min-height:50px}.touch-device #pause,.touch-device #sound,.touch-device #settingsOpen{min-height:38px;min-width:38px}.touch-device .brand small{display:none}.touch-device #warning{top:29%;max-width:80vw}.touch-device #toast{top:43%}
@media(pointer:coarse) and (orientation:portrait){.touch-device .intro-card{top:18%;left:7%;right:7%}.touch-device h1{font-size:54px;letter-spacing:-3px}.touch-device .intro-tags{margin:16px 0}.touch-device .intro-card>p{font-size:12px}.touch-device .eyebrow{letter-spacing:1px;font-size:9px}.touch-device .control-summary{margin-top:15px}.touch-device .prototype-note{font-size:9px}.touch-device #rigHUD{top:197px}.touch-device .boss-sub{font-size:8px}}
@media(pointer:coarse) and (orientation:landscape){
 header{height:48px;padding:7px 18px}.stage{font-size:9px}.stage span{display:none}.brand{font-size:18px}.brand b{font-size:12px}.top-actions button{padding:6px 8px}.boss-hud{top:51px;width:38%;max-width:420px}.boss-label{margin-bottom:5px}.boss-label b{font-size:12px}.boss-sub{margin-top:5px}.telemetry,.economy{top:64px}.telemetry strong{font-size:28px}.economy strong{font-size:24px}.telemetry{left:20px}.economy{right:20px}.telemetry label,.economy label{font-size:8px}.distance-track{width:82px;margin-top:4px}#clock{margin-top:5px;font-size:11px}
 .touch-device footer{width:46%;left:27%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom));padding:8px;gap:6px;border-radius:8px;background:#080f1bad}.touch-device #slots button{height:35px;padding:5px}.touch-device #slots button b{font-size:9px;margin-left:3px}.touch-device #slots button small{font-size:8px}.touch-device #shop button{height:45px;min-height:45px;padding:5px}.touch-device #shop b{font-size:9px}.touch-device #shop strong{font-size:9px}.touch-device .section-label{font-size:8px;letter-spacing:1px;margin-bottom:3px}.touch-device #touch{bottom:max(13px,env(safe-area-inset-bottom));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right))}.touch-device #touch button{width:58px;height:58px}.touch-device #touch #fire{width:82px;height:82px}.touch-device #rigHUD{top:152px;left:20px;padding:6px 8px}.touch-device #rigHUD>div{width:95px}.touch-device #warning{top:29%;padding:8px 14px}.touch-device #warning small{font-size:9px}.touch-device #toast{top:48%;font-size:13px}
 .touch-device .intro-card{top:65px;left:6%;max-width:430px}.touch-device .intro-card h1{font-size:42px;margin:10px 0;line-height:1.08}.touch-device .intro-card h1 br{display:none}.touch-device .intro-card h1 em{margin-left:12px}.touch-device .intro-card>p{font-size:11px;line-height:1.5;margin:8px 0}.touch-device .intro-tags{margin:9px 0}.touch-device .intro-tags span{padding:4px 7px;font-size:8px}.touch-device .primary{min-height:42px;padding:10px 18px;font-size:13px}.touch-device .control-summary{margin-top:10px}.touch-device .prototype-note{display:none}.touch-device .boss-caption{right:7%;bottom:20%}.modal{overflow-y:auto;padding:14px}.result-card,.panel{padding:20px;width:520px;max-height:94dvh;overflow:auto}.result-card h2,.panel h2{font-size:28px;margin:10px 0}.result-stats{margin:12px 0;padding:12px 0}.result-actions{margin:9px 0}.result-card>small{font-size:9px}
}
@media(max-width:360px){#touch{left:12px;right:12px}#touch button{width:59px;height:59px}#touch .move-pad>div{gap:7px}#touch #fire{width:84px;height:84px}.touch-device #shop b{font-size:9px}.touch-device #slots button b{font-size:10px}.touch-device .intro-card h1{font-size:44px}}

#touch #fire.held>b,#touch #fire.held>span{color:#182511}.touch-device #shop b{line-height:1.15;word-break:keep-all}.touch-device #slots button b{word-break:keep-all}

/* In-world story presentation. Controls and combat HUD stay hidden until countdown ends. */
#story{position:absolute;inset:0;z-index:12;pointer-events:none;background:linear-gradient(#07101bbf,transparent 32%,transparent 57%,#07101be8)}.story-heading{position:absolute;top:11%;left:6%;right:6%}.story-heading>span{color:var(--acid);font-size:12px;letter-spacing:2px}.story-heading h2{font-size:clamp(28px,4vw,54px);margin:12px 0;text-shadow:0 2px 20px #000}#storySkip{position:absolute;right:5%;top:20px;padding:12px 18px;min-height:44px;pointer-events:auto;border-radius:4px;background:#111b29ed;font-size:14px}.story-radio{position:absolute;bottom:max(7%,env(safe-area-inset-bottom));left:6%;width:88%;max-width:760px;border-left:3px solid var(--acid);padding:12px 20px;background:#0b1521e8}.story-radio>span{color:var(--acid);font-size:12px;letter-spacing:1px}.story-radio p{font-size:clamp(15px,2vw,21px);line-height:1.6;margin:10px 0 14px;word-break:keep-all}.story-track{height:2px;background:#ffffff18}.story-track i{display:block;height:100%;background:var(--acid)}.story-replay{display:block;margin-top:12px;padding:9px 12px;font-size:12px;border-radius:4px}.cinematic header{z-index:15}.cinematic .brand,.cinematic .stage{visibility:hidden}.cinematic .top-actions{position:absolute;right:5%;top:75px}.cinematic #toast{display:none}
@media(max-width:600px){.story-heading{top:20%;}.story-radio{bottom:8%;padding:12px 15px}.story-radio p{font-size:16px}.cinematic .top-actions{top:75px}.story-replay{font-size:12px;margin-top:8px}.touch-device .intro-card{top:15%}}
@media(orientation:landscape) and (max-height:500px){.story-heading{top:13%;max-width:65%}.story-heading h2{font-size:28px;margin:8px 0}.story-radio{bottom:5%;max-width:74%;padding:8px 14px}.story-radio p{font-size:15px;margin:5px 0 8px}#storySkip{top:12px}.cinematic .top-actions{top:64px}.story-replay{display:inline-block;margin-top:6px;padding:6px 10px}.touch-device .intro-card{top:52px}.touch-device .intro-tags{margin:6px 0}.touch-device .control-summary{margin-top:6px}}
.cinematic header{pointer-events:none}.cinematic .top-actions{pointer-events:auto}

.stage-choice{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:15px 18px;margin:10px 0;border-radius:5px;border-color:#e4fc7340}.stage-choice span{color:var(--acid);font-size:12px}.stage-choice b{font-size:20px}.stage-choice small{font-size:12px;color:#a6b2bc}.future-stages{font-size:12px!important}.stage-panel{max-height:94dvh;overflow:auto}#nextStage{margin-bottom:10px}.intro-card .story-replay{display:inline-block;margin-right:5px}#stageMenu{z-index:25}#result .story-replay{display:inline-block}.result-card{max-height:95dvh;overflow:auto}@media(orientation:landscape) and (max-height:500px){.intro-card .story-replay{font-size:11px;padding:5px 8px}.touch-device .intro-card h1{font-size:36px;margin:7px 0}.touch-device .intro-card>p{font-size:10px}.stage-choice{padding:10px;gap:5px}}

#toxicHUD{position:absolute;top:20%;left:50%;transform:translateX(-50%);display:flex;gap:5px;width:min(350px,62vw);pointer-events:none}#toxicHUD span{flex:1;text-align:center;padding:7px 4px;background:#07191be8;border:1px solid #68857c;font-size:12px;color:#c0d2cc;border-radius:3px}#toxicHUD .poison{color:#d6ff83;border-color:#a8da53;background:#31471de8}#toxicHUD .incoming{color:#ffb786;border-color:#ff8752}.cinematic #toxicHUD{display:none!important}@media(max-width:600px){#toxicHUD{top:162px;width:64vw;left:62%}#toxicHUD span{font-size:10px;padding:6px 2px}}@media(orientation:landscape) and (max-height:500px){#toxicHUD{top:100px;width:38%;left:50%}#toxicHUD span{font-size:10px;padding:4px 2px}.stage-panel .stage-choice{padding:8px 12px}}

#energyHUD{position:absolute;left:35px;top:315px;width:156px;padding:9px 12px;border-left:2px solid #88dbff;background:#112c3ddd;pointer-events:none}#energyHUD span{font-size:11px;color:#bceeff}#energyHUD>div{height:4px;background:#ffffff25;margin-top:8px}#energyFill{display:block;height:100%;background:#8bdfff}.cinematic #energyHUD{display:none!important}@media(max-width:600px){#energyHUD{top:246px;left:16px;width:140px;padding:6px 9px}}@media(orientation:landscape) and (max-height:500px){#energyHUD{top:200px;left:20px;width:120px;padding:5px 8px}#energyHUD span{font-size:10px}}

@media(orientation:landscape) and (max-height:500px){.touch-device #slots button b{display:block;margin:2px 0 0;font-size:9px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

#runBadge{position:absolute;top:82px;left:35px;background:#1b302cee;padding:5px 8px;color:#e4fc73;font-size:11px;pointer-events:none}.cinematic #runBadge{display:none!important}.run-menu{border:1px solid #b9d87745;padding:12px;border-radius:5px;margin:14px 0 18px}.run-menu h3{font-size:17px;margin:0 0 8px}.run-menu p{font-size:12px;line-height:1.6}.run-menu .primary{font-size:13px;min-width:0}.run-menu .plain{font-size:12px}.run-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.run-stats label{display:block;color:#a5b6c4;font-size:11px;margin-bottom:5px}.run-stats strong{color:#e4fc73;font-size:20px}#runResult{border:1px solid #e4fc7335;padding:15px;margin:16px 0;background:#1b2b28}#runResultTitle{font-size:15px}#runResult small,#runBreakdown{font-size:11px;line-height:1.6;color:#aebdc3}.result-card{overscroll-behavior:contain}@media(max-width:600px){#runBadge{top:65px;left:16px;font-size:9px;padding:3px 5px}}@media(orientation:landscape) and (max-height:500px){#runBadge{top:45px;left:20px;font-size:9px;padding:2px 5px}}
/* Character dialogue portraits: approved cast, compact on handheld screens. */
.story-dialogue{position:absolute;left:6%;bottom:max(7%,env(safe-area-inset-bottom));width:min(88%,960px);display:flex;align-items:stretch;gap:0;--speaker-color:inherit}
.story-dialogue .story-radio{position:relative;left:auto;bottom:auto;width:auto;max-width:none;flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:22px 26px;border-left-color:var(--speaker-color,var(--acid));background:linear-gradient(110deg,#0b1521fa,#0b1521eb)}
.story-dialogue .story-radio>span{color:var(--speaker-color,var(--acid));font-size:14px}.story-dialogue .story-radio p{margin:14px 0 22px}.story-dialogue .story-track i{background:var(--speaker-color,var(--acid))}
#storyPortrait{position:relative;flex:0 0 220px;width:220px;margin:0;overflow:hidden;background:#0b1521;border:1px solid #ffffff30;border-right:0}
#portraitImage{display:block;width:100%;height:100%;min-height:220px;object-fit:cover;object-position:center top}
#storyPortrait figcaption{position:absolute;inset:auto 0 0;padding:24px 14px 12px;background:linear-gradient(transparent,#07101bf2)}#portraitName{display:block;font-size:20px;letter-spacing:2px}#portraitRole{display:block;font-size:12px;color:var(--speaker-color,var(--acid));margin-top:4px}
.portrait-enter{animation:portrait-in .25s ease-out}@keyframes portrait-in{from{opacity:.4;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:600px){.story-dialogue{left:5%;width:90%;bottom:max(6%,env(safe-area-inset-bottom))}#storyPortrait{flex-basis:106px;width:106px}#portraitImage{min-height:170px;object-position:48% top}.story-dialogue .story-radio{padding:14px 13px}.story-dialogue .story-radio p{font-size:16px;line-height:1.55;margin:10px 0 14px}.story-dialogue .story-radio>span{font-size:12px}#storyPortrait figcaption{padding:25px 9px 10px}#portraitName{font-size:17px}#portraitRole{font-size:11px}.story-heading{top:19%;}}
@media(orientation:landscape) and (max-height:500px){.story-dialogue{left:5%;width:78%;bottom:5%}#storyPortrait{flex-basis:124px;width:124px}#portraitImage{min-height:124px;max-height:145px}.story-dialogue .story-radio{padding:10px 16px}.story-dialogue .story-radio p{font-size:16px;line-height:1.4;margin:8px 0 12px}.story-heading{top:10%}.story-heading h2{font-size:25px}.story-heading>span{font-size:11px}#portraitName{font-size:16px}#portraitRole{font-size:11px}}
@media(prefers-reduced-motion:reduce){.portrait-enter{animation:none}}
#settings .panel{max-height:94dvh;overflow:auto}#settings .effects-help{font-size:13px;line-height:1.6;color:#a6b4c3;margin:0 0 18px}#settings .check input{width:20px;height:20px;accent-color:var(--acid)}
/* Keep the playfield and touch targets clear during a hit. */
#flash{background:radial-gradient(ellipse at center,transparent 54%,#ff7458 100%)}#hitCue{position:absolute;left:50%;top:48%;transform:translateX(-50%);z-index:9;pointer-events:none;border:1px solid #ffc3a866;border-radius:4px;padding:6px 11px;background:#311a17cc;color:#ffdbcb;font-size:13px;opacity:0;white-space:nowrap}@media(orientation:landscape) and (max-height:500px){#hitCue{top:43%;font-size:12px;padding:4px 8px}}
@media(max-width:600px){#rigHUD{top:197px;left:16px}}.touch-device #slots button b{font-size:10px}.touch-device #shop b{font-size:10px}
#coach{position:absolute;right:35px;top:218px;width:280px;display:flex;gap:10px;z-index:9;pointer-events:none;background:#101c2bef;border:1px solid #d6ef7644;border-left:3px solid var(--acid);border-radius:5px;padding:14px}#coach strong{font-size:14px;color:var(--acid)}#coach p{font-size:14px;line-height:1.55;margin:8px 0 0;word-break:keep-all}#coach button{pointer-events:auto;align-self:flex-start;flex:0 0 44px;min-height:44px;font-size:12px;border-radius:4px}#shop button.affordable{border-color:var(--acid);box-shadow:inset 0 0 0 1px #e4fc7340}#rigHUD>span{letter-spacing:0;font-size:11px}#shop strong{line-height:1.25}@media(max-width:600px){#coach{top:40%;left:8%;right:auto;width:84%;padding:12px}#coach p{font-size:13px}.touch-device #shop strong{font-size:9px;white-space:normal}.touch-device #shop button{height:auto;min-height:56px}}@media(orientation:landscape) and (max-height:500px){#coach{top:110px;right:16px;left:auto;width:235px;padding:10px}#coach strong,#coach p{font-size:12px}#coach p{margin-top:5px}.touch-device #shop button{min-height:45px}}
.coach-active #toast{visibility:hidden}
#runnerHUD{position:absolute;top:175px;left:50%;transform:translateX(-50%);max-width:80%;padding:7px 12px;background:#18212be8;border:1px solid #d8b57855;border-radius:4px;color:#ffe1af;font-size:13px;text-align:center;pointer-events:none;z-index:8}#runnerHUD.danger{border-color:#ffb347;background:#3d291be8}@media(max-width:600px){#runnerHUD{top:180px;max-width:90%;font-size:12px}}@media(orientation:landscape) and (max-height:500px){#runnerHUD{top:101px;max-width:48%;font-size:11px;padding:5px 8px}}

/* Image-led shop: silhouettes light up only when the purchase is available. */
#shop button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:84px;min-height:84px;padding:5px 8px;opacity:1!important;overflow:hidden}#shop button>b,#shop button>small{display:none}#shop .weapon-art{display:block;width:100%;height:51px;filter:grayscale(1);opacity:.28;transition:opacity .2s,filter .2s;pointer-events:none}#shop .weapon-art svg{display:block;width:100%;height:100%}#shop button.affordable .weapon-art{filter:drop-shadow(0 0 5px #ffd78955);opacity:1}#shop button>strong{float:none;display:block;font-size:14px;line-height:18px;color:#cad1cc;font-variant-numeric:tabular-nums}#shop button.affordable>strong{color:var(--acid)}#shop button.owned>strong{color:var(--acid)}#shop button:focus-visible{outline:2px solid white;outline-offset:2px}.touch-device #shop button{height:73px;min-height:73px;padding:4px}.touch-device #shop .weapon-art{height:43px}.touch-device #shop button>strong{font-size:14px;line-height:18px}@media(orientation:landscape) and (max-height:500px){.touch-device #shop button{height:59px;min-height:59px}.touch-device #shop .weapon-art{height:30px}.touch-device #shop button>strong{font-size:12px;line-height:16px}}

#feverHUD{position:absolute;left:35px;top:305px;display:flex;align-items:center;gap:7px;padding:5px 8px;border:1px solid #ffcc6644;background:#151f2cdc;pointer-events:none;z-index:7;color:#d0b77c}#feverHUD>span{font-size:25px;line-height:1}#feverHUD>div{display:flex;gap:3px}#feverHUD i{display:block;width:19px;height:6px;background:#ffc759}#feverHUD.active{color:#ffe5a0;border-color:#ffd260;box-shadow:0 0 16px #ffac3625}.fever-active #touch #fire{border-color:#ffd260;box-shadow:0 0 18px #ffb33460}.finisher #scene{filter:contrast(1.08) saturate(1.15)}@media(max-width:600px){#feverHUD{top:242px;left:16px}}@media(orientation:landscape) and (max-height:500px){#feverHUD{top:196px;left:20px;padding:3px 6px}#feverHUD>span{font-size:20px}#feverHUD i{width:14px}}

#shop .weapon-art img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 3px #0008)}#shop .weapon-art{height:55px}#shop button{height:88px;min-height:88px}.touch-device #shop .weapon-art{height:43px}.touch-device #shop button{height:73px;min-height:73px}@media(orientation:landscape) and (max-height:500px){.touch-device #shop .weapon-art{height:30px}.touch-device #shop button{height:59px;min-height:59px}}

.cinematic #coach{display:none!important}

/* Combat feedback is spatial and pictographic. Narrative and resource HUD remain. */
#toast,#warning,#runnerHUD,#hitCue,#coach,#toxicHUD{display:none!important}#hazardMap{position:absolute;left:50%;top:185px;transform:translateX(-50%);z-index:8;pointer-events:none;width:156px;padding:5px;border-radius:9px;background:#0a131bcc;border:1px solid #ffffff18}.hazard-now{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.hazard-now>span{height:41px;border:1px solid #8da1ac35;border-radius:5px;display:grid;place-items:center;color:#66818a;background:#12252c88}.hazard-now svg{width:25px;height:25px;display:block}.hazard-now .danger{color:#ffb69b;border-color:#ff865f;background:linear-gradient(to top,#a53c2f99 var(--charge),#41201eaa var(--charge))}.hazard-now .residual{color:#d6f97f;border-color:#aaca64;background:repeating-linear-gradient(135deg,#3b532cbb 0 5px,#203821bb 5px 10px)}.hazard-next{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:5px}.hazard-next>i{height:5px;background:#52616b38;border-radius:2px}.hazard-next>i.next{background:#ffce7e;box-shadow:0 0 5px #ffa94a88}.cinematic #hazardMap{display:none!important}@media(max-width:600px){#hazardMap{top:175px;width:132px}.hazard-now>span{height:34px}.hazard-now svg{width:23px;height:23px}}@media(orientation:landscape) and (max-height:500px){#hazardMap{top:95px;width:120px}.hazard-now>span{height:28px}.hazard-now svg{width:20px;height:20px}}

.hazard-now .residual.scar{color:#ffb191;border-color:#ff8459;background:repeating-linear-gradient(135deg,#69352abb 0 5px,#37201cbb 5px 10px)}

/* One contextual upgrade, leaving the battlefield unobstructed. */
#combatUI,.touch-device #combatUI{display:block;left:50%;right:auto;bottom:26px;transform:translateX(-50%);width:218px;padding:0;background:none;z-index:10;pointer-events:none}
#combatUI .loadout,#combatUI .section-label,#combatUI .bottom-help,#rigHUD{display:none!important}
#shop{display:block}#shop button[hidden]{display:none!important}
#shop button,.touch-device #shop button{width:100%;height:112px;min-height:112px;border:1px solid #e0f6a1;border-radius:9px;background:linear-gradient(145deg,#354436ef,#0e1b24f5);box-shadow:0 0 30px #d3ef7a28,inset 0 0 18px #dcfa7412;padding:8px 16px;pointer-events:auto;animation:upgrade-arrive .45s ease-out,upgrade-breathe 2.4s .45s ease-in-out infinite}
#shop .weapon-art,.touch-device #shop .weapon-art{height:73px;opacity:1;filter:drop-shadow(0 0 9px #d9ef9360)}#shop button>strong,.touch-device #shop button>strong{font-size:16px;line-height:20px;color:#e4fcad}
#shop button:active{transform:scale(.96)}#shop button:focus-visible{outline:3px solid #fff;outline-offset:4px}
@keyframes upgrade-arrive{from{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:none}}
@keyframes upgrade-breathe{50%{border-color:#fff5cc;box-shadow:0 0 32px #e8f9a04a,inset 0 0 22px #dcfa7428}}
.reduced-motion #shop button{animation:none!important}.reduced-motion #shop button:active{transform:none}
.boss-sub #phase,.economy>small{visibility:hidden}
.touch-device #combatUI{bottom:calc(138px + env(safe-area-inset-bottom));width:188px}
.touch-device #shop button{height:100px;min-height:100px}.touch-device #shop .weapon-art{height:61px}
@media(orientation:landscape) and (max-height:500px){.touch-device #combatUI{bottom:calc(14px + env(safe-area-inset-bottom));width:174px}.touch-device #shop button{height:85px;min-height:85px}.touch-device #shop .weapon-art{height:46px}}
@media(prefers-reduced-motion:reduce){#shop button{animation:none!important}}

.challenge-setup{display:grid;gap:10px;padding:16px 0;border-top:1px solid #354451}.challenge-setup label,#settings label:has(select){display:grid;gap:6px;color:#b6c8d8;font-size:13px}select{width:100%;min-height:42px;color:#edf6ff;background:#182734;border:1px solid #597080;border-radius:8px;padding:8px}.challenge-setup #honorList{white-space:pre-line;font-size:12px;line-height:1.8;color:#c8dfab}.challenge-setup small,#setupHint{font-size:12px;color:#afbdca}#gradeResult{font-size:19px;color:#e4fc73}.stage-panel{max-height:90dvh;overflow:auto}#intro .intro-card{max-height:90dvh;overflow:auto}#battleSetup{font-size:13px;margin:8px 0}.story-dialogue #radioLine{line-height:1.55}html[lang=en] #radioLine{font-size:clamp(16px,2vw,25px)}

html[lang=en] .touch-device .control-summary:after{content:'Left: move ◀ ▶  ·  Right: hold FIRE'}#result .result-card,#settings .panel{max-height:90dvh;overflow:auto}@media(max-height:650px){#intro .intro-card{top:78px;max-height:calc(100dvh - 90px)}}

#gradeResult{white-space:pre-line;line-height:1.7}

#clearBanner{position:fixed;z-index:55;pointer-events:none;left:0;right:0;top:34%;padding:26px 5% 24px;text-align:center;color:#f7fce8;background:linear-gradient(90deg,transparent,#07131be8 18%,#07131bf5 50%,#07131be8 82%,transparent);border-top:1px solid #d9fb7b80;border-bottom:1px solid #d9fb7b80;box-shadow:0 0 70px #d6ff6b20;overflow:hidden}#clearBanner span,#clearBanner strong,#clearBanner small{position:relative;display:block}#clearStage{font-size:12px;letter-spacing:6px;color:#dcff83}#clearTitle{font-size:clamp(29px,5vw,66px);font-style:italic;letter-spacing:-1px;margin:7px 0;text-shadow:0 0 22px #b8ed5360}#clearSubtitle{font-size:13px;letter-spacing:2px;color:#bdcdb6}.clear-insignia{position:absolute;left:10%;top:15%;font-size:130px;font-weight:900;color:#d8ff7310}.clear-rule{width:110px;height:3px;background:#e4fc73;margin:18px auto 0}.clear-streak{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,#eaffae25 50%,transparent 60%);transform:translateX(-100%)}#clearBanner.reveal{animation:clear-enter .45s cubic-bezier(.2,.8,.3,1) both}#clearBanner.reveal .clear-streak{animation:clear-sweep 1.3s .15s both}@keyframes clear-enter{from{opacity:0;transform:scaleX(1.12) translateY(12px)}to{opacity:1;transform:none}}@keyframes clear-sweep{to{transform:translateX(100%)}}#clearBanner.quiet,#clearBanner.quiet .clear-streak{animation:none!important}#clearBanner.quiet .clear-streak{display:none}@media(max-width:600px){#clearBanner{top:34%;padding:22px 10px}#clearTitle{font-size:33px}}

#defenseHUD{display:flex;gap:4px;margin-top:8px}#defenseHUD svg{width:19px;height:23px;fill:#dfff7825;stroke:#dfff78;stroke-width:1.6}#defenseHUD .fracture{display:none;fill:none}#defenseHUD .broken{fill:#ed694d18;stroke:#e97557;opacity:.65}#defenseHUD .broken .fracture{display:block}@media(max-width:600px){#defenseHUD{gap:2px;margin-top:4px}#defenseHUD svg{width:14px;height:17px}}
