/* The collection becomes the playfield. All game chrome lives in the same world. */
.dawn{--mood:#62dd73;position:absolute;inset:0;z-index:12;overflow:hidden;color:#fff;background:#0b0b0b}.dawn[hidden]{display:none}#dawnCanvas{width:100%;height:100%;display:block;touch-action:none;outline-offset:-4px;image-rendering:pixelated}.game-mode .header{visibility:hidden;opacity:0;pointer-events:none;transition:none}.game-mode .world-heading,.game-mode .world-actions,.game-mode .world-wayfinding,.game-mode .world-zoom,.game-mode .world-caption,.game-mode .encounter-follow,.game-mode .team-dock{opacity:0!important;pointer-events:none!important;visibility:hidden}.game-mode .world-landmark{z-index:15;pointer-events:none;animation:landmark-out .7s steps(9) forwards}.game-mode #arcadeCursor,.game-mode .cursor-pixel,.game-mode .click-pixel{display:none!important}.game-mode,.game-mode button{cursor:auto!important}#dawnCanvas{cursor:crosshair!important}.game-returning .world-landmark{animation:landmark-back .8s steps(8) forwards}.game-mode .app-footer{background:#0b0b0b}.game-mode #egg{visibility:hidden}
@keyframes landmark-out{0%{opacity:1;clip-path:inset(0)}40%{opacity:1;clip-path:inset(0 0 55%)}80%{opacity:.7;clip-path:inset(0 0 92%)}100%{opacity:0;clip-path:inset(0 0 100%)}}@keyframes landmark-back{from{opacity:0;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}
.dawn-hud{position:absolute;top:25px;left:30px;right:30px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:start;pointer-events:none}.dawn-vitals .mono{font:12px var(--mono);color:#bec4bd}#dawnHearts{font:27px/1.35 var(--pixel);color:#ffb2b2;letter-spacing:4px;max-width:300px;overflow-wrap:anywhere}.dawn-ammo{font:12px var(--mono);color:var(--mood);margin-top:5px}.dawn-clock{text-align:center}.dawn-clock>.mono{font-size:12px;color:var(--mood)}.dawn-clock strong{display:block;font:58px/.95 var(--pixel);letter-spacing:-2px;margin:5px 0 8px;font-variant-numeric:tabular-nums}.dawn-chapters{display:flex;justify-content:center;gap:6px}.dawn-chapters i{width:21px;height:3px;background:#fff3}.dawn-chapters i.on{background:var(--mood)}.dawn-hud-actions{display:flex;justify-content:flex-end;gap:6px;pointer-events:auto}.dawn-hud-actions button{border:1px solid #ffffff40;background:#0b0b0bdc;padding:10px 12px;min-height:44px;font:16px var(--font)}.dawn-hud-actions button:hover{border-color:var(--mood);color:var(--mood)}
.dawn-xp{position:absolute;left:0;right:0;top:0;height:5px;background:#fff2;pointer-events:none}.dawn-xp>div{height:100%;background:var(--mood);transition:width .15s}.dawn-xp>span{position:absolute;right:30px;top:72px;font:12px var(--mono);color:var(--mood)}.dawn-boss{position:absolute;left:50%;top:136px;transform:translateX(-50%);width:min(360px,60%);text-align:center;pointer-events:none}.dawn-boss>span{font:12px var(--mono);color:#ffb2b2}.dawn-boss>div{height:6px;background:#fff2;margin-top:8px}.dawn-boss i{display:block;height:100%;background:#ef0150;transition:width .12s}.dawn-bottom{position:absolute;left:30px;right:30px;bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:15px;pointer-events:none}.dawn-bottom>.mono{font-size:12px;color:#c1bfc8}.dawn-bottom>div{display:flex;gap:9px;pointer-events:auto}.dawn-bottom button{font:14px var(--font);background:#0b0b0be6;border:1px solid #ffffff40;padding:11px 15px;min-height:44px}.dawn-bottom button:hover{border-color:var(--mood)}#dawnDash{color:var(--mood);font-family:var(--pixel)}#dawnDash span{font:12px var(--mono);margin-left:10px;color:#eee}#dawnDash:disabled{opacity:.5}
.dawn-stage{position:absolute;top:30%;left:50%;width:min(620px,90%);text-align:center;transform:translate(-50%,-12px);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;text-shadow:0 2px 8px #000}.dawn-stage.show{opacity:1;transform:translate(-50%,0)}.dawn-stage>span{font:12px var(--mono);letter-spacing:3px;color:var(--mood)}.dawn-stage strong{display:block;font:clamp(25px,3.5vw,45px)/1.05 var(--pixel);color:#fff;margin:12px 0}.dawn-stage p{font:16px var(--font);margin:0;color:#cecece}.dawn-panel{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:28px;background:#080b10cb;overflow:auto;backdrop-filter:blur(3px)}.dawn-panel[hidden]{display:none}.dawn-panel-inner{width:min(820px,100%);text-align:center;animation:upgrade-in .25s steps(5) both;margin:auto}.dawn-panel-eyebrow{font-size:12px;color:var(--mood);letter-spacing:2px}.dawn-panel h2{font:clamp(34px,4.4vw,58px)/1.05 var(--pixel);font-weight:600;margin:12px 0;letter-spacing:-1px}.dawn-panel-inner>p{font:16px/1.5 var(--font);color:#bcbdc0;margin:10px 0 26px}.dawn-upgrades{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left;margin:28px 0 20px}.dawn-upgrades>button{--card-color:#62dd73;position:relative;min-height:255px;display:flex;flex-direction:column;align-items:stretch;background:#111916;color:#fff;border:1px solid #ffffff40;border-top:4px solid var(--card-color);text-align:left;padding:18px 20px;transition:transform .15s,background .15s;animation:upgrade-in .35s steps(6) both}.dawn-upgrades>button:nth-child(2){animation-delay:.07s}.dawn-upgrades>button:nth-child(3){animation-delay:.14s}.dawn-upgrades>button:hover,.dawn-upgrades>button:focus-visible{transform:translateY(-7px);background:#202a24;border-color:var(--card-color);box-shadow:0 6px 0 var(--card-color)}.upgrade-top{display:flex;justify-content:space-between;font-size:12px;color:var(--card-color)}.upgrade-top kbd{font:12px var(--mono);border:1px solid #fff3;padding:1px 4px}.upgrade-icon{font:48px/1.2 var(--pixel);color:var(--card-color);margin:12px 0}.dawn-upgrades strong{font:25px/1 var(--pixel);font-weight:500}.dawn-upgrades p{font:15px/1.45 var(--font);color:#bdc4bf;margin:13px 0 24px}.upgrade-foot{font-size:12px;color:var(--card-color);margin-top:auto}.dawn-upgrades .evolution{background:#242035;border-color:#a95af2}.dawn-ready-actions{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}.dawn-ready-actions .button{font-size:16px;border-radius:0;min-height:47px}.dawn-ready-actions .primary{background:var(--mood);color:#080808;box-shadow:4px 4px 0 #fff}.dawn-ready-actions .text-button{font:14px var(--font);padding:14px 4px;color:#b9c0bb}.dawn-synergies,.dawn-build-summary{font:14px/1.6 var(--font);color:#aaa;margin-top:22px;display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.dawn-synergies span,.dawn-build-summary span{padding:5px 9px;background:#fff1;border:1px solid #fff2}.dawn-record{font-size:14px!important;margin-top:20px!important}.dawn-results{display:flex;justify-content:center;gap:55px;margin:25px 0}.dawn-results span{font:12px var(--mono);color:#aaa}.dawn-results strong{font:42px var(--pixel);color:var(--mood);display:block;margin-bottom:5px}
.dawn-ready{align-items:flex-end;background:linear-gradient(0deg,#0a100ffd 0%,#0a100ff5 28%,transparent 90%);backdrop-filter:none;padding:22px 25px}.dawn-ready .dawn-panel-inner{width:min(750px,100%);margin:0 auto}.dawn-ready h2{font-size:31px}.dawn-ready .dawn-panel-inner>p{font-size:14px;margin:10px 0 15px}.dawn-loadout{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.dawn-loadout button{display:flex;gap:12px;align-items:center;text-align:left;padding:11px 13px;border:1px solid #fff3;background:#111b15;color:#fff}.dawn-loadout b{font:27px var(--pixel);color:var(--mood)}.dawn-loadout button>span{font:17px var(--pixel);line-height:1.1}.dawn-loadout small{display:block;font:12px/1.4 var(--font);color:#aaa;margin-top:5px}.dawn-loadout button.selected{border-color:var(--mood);background:#203226}.dawn-controls-copy{font:12px/1.6 var(--font);color:#aaa;margin-top:15px}.dawn-pilot-picker{display:flex;align-items:center;justify-content:center;gap:8px;margin:12px 0}.dawn-pilot-picker>.mono{font-size:12px;color:#aaa;margin-right:5px}.dawn-pilot-picker button{padding:3px;border:1px solid #fff3;background:#0b0b0b}.dawn-pilot-picker button.selected{border-color:#fff}.dawn-pilot-picker canvas{display:block;width:28px;height:28px}.dawn-bonus{font:12px var(--mono);color:var(--mood);margin-left:8px}.dawn-message{position:absolute;left:50%;bottom:82px;transform:translateX(-50%) translateY(10px);opacity:0;max-width:90%;text-align:center;padding:10px 15px;background:#0b0b0bec;border-left:3px solid var(--mood);font:14px var(--pixel);pointer-events:none;transition:opacity .2s,transform .2s}.dawn-message.show{opacity:1;transform:translateX(-50%)}
.dawn-touch{display:none;position:absolute;inset:auto 26px 94px;justify-content:space-between;pointer-events:none}.dawn-stick{position:relative;width:98px;height:98px;border:2px solid #fff3;border-radius:50%;background:#0a111066;pointer-events:auto;touch-action:none;user-select:none}.dawn-stick i{position:absolute;width:34px;height:34px;left:30px;top:30px;background:#fff4;border:1px solid #fff8;border-radius:4px;pointer-events:none}.dawn-stick span{position:absolute;left:0;right:0;bottom:-25px;text-align:center;font:12px var(--mono);color:#b5bcb7}.aim-stick{border-color:#62dd7366}.aim-stick i{background:#62dd7355;border-color:#62dd73}.game-deploying .dawn-hud,.game-deploying .dawn-bottom,.game-deploying .dawn-xp,.game-deploying .dawn-touch{opacity:0;pointer-events:none}.dawn[data-state="ready"] .dawn-touch,.dawn[data-state="ready"] .dawn-bottom{visibility:hidden}.dawn[data-state="upgrade"] .dawn-touch,.dawn[data-state="paused"] .dawn-touch,.dawn[data-state="won"] .dawn-touch,.dawn[data-state="lost"] .dawn-touch{visibility:hidden}@keyframes upgrade-in{from{opacity:0;clip-path:inset(100% 0 0)}to{opacity:1;clip-path:inset(0)}}
@media(pointer:coarse){.dawn-touch{display:flex}.dawn-bottom>.mono{max-width:120px;line-height:1.5}.dawn-controls-copy{font-size:12px}}
@media(max-width:760px){.dawn-hud{top:19px;left:15px;right:15px;grid-template-columns:1fr 1fr 1fr;gap:5px}.dawn-vitals .mono{font:12px var(--font);display:block;max-width:110px;line-height:1.4}.dawn-clock strong{font-size:40px}.dawn-clock>.mono{font:12px var(--font);display:block;line-height:1.3}.dawn-hud-actions button{padding:8px;width:38px;min-height:38px}.dawn-hud-actions span{display:none}#dawnHearts{font-size:19px;letter-spacing:2px}.dawn-ammo{font:12px var(--font);max-width:130px}.dawn-xp>span{right:16px;top:69px}.dawn-boss{top:125px;width:50%}.dawn-bottom{left:15px;right:15px;bottom:16px;gap:8px}.dawn-bottom button{padding:10px;font-size:12px}#dawnDash span{margin-left:5px}.dawn-bottom>div{gap:6px}.dawn-bottom>.mono{font:12px var(--font)}.dawn-panel{padding:22px 15px}.dawn-panel h2{font-size:34px}.dawn-panel-inner>p{margin:10px 0 17px}.dawn-upgrades{gap:8px;margin:17px 0;grid-template-columns:1fr}.dawn-upgrades>button{min-height:0;padding:12px 14px;display:grid;grid-template-columns:38px 1fr;column-gap:12px;border-top-width:1px;border-left:3px solid var(--card-color)}.upgrade-top{grid-column:2;font-size:12px}.upgrade-icon{grid-row:1/4;grid-column:1;margin:0;font-size:34px;align-self:center}.dawn-upgrades strong{grid-column:2;font-size:21px;margin-top:5px}.dawn-upgrades p{grid-column:2;font-size:14px;margin:6px 0}.upgrade-foot{display:none}.dawn-upgrades>button:hover{transform:translateX(2px);box-shadow:none}.dawn-synergies{font-size:12px;margin-top:12px;max-height:60px;overflow:auto}.dawn-synergies span{padding:2px 6px}.dawn-ready{padding:18px 15px;background:linear-gradient(0deg,#0a100f 60%,#0a100fc9 83%,transparent)}.dawn-ready h2{font-size:24px;margin:8px 0}.dawn-ready .dawn-panel-inner>p{font-size:14px;margin:8px 0 12px}.dawn-loadout{gap:5px;margin:10px 0}.dawn-loadout button{padding:9px 6px;flex-direction:column;gap:4px;text-align:center}.dawn-loadout button>span{font-size:16px}.dawn-loadout small{display:none}.dawn-loadout b{font-size:24px}.dawn-controls-copy{font-size:12px;margin-top:10px}.dawn-pilot-picker{gap:5px;flex-wrap:wrap;margin:10px 0}.dawn-pilot-picker canvas{width:25px;height:25px}.dawn-bonus{font:12px var(--font)}.dawn-pilot-picker>.mono{font:12px var(--font)}.dawn-ready-actions{gap:14px}.dawn-results{gap:30px}.dawn-build-summary{max-height:90px;overflow:auto}.dawn-record{margin:15px 0!important}.dawn-stage{top:32%}.dawn-stage strong{font-size:28px}.dawn-stage p{font-size:14px}.dawn-message{font-size:14px;bottom:70px;width:max-content;max-width:90%}}
@media(max-height:640px){.dawn-panel-inner{padding:8px 0}.dawn-ready h2{font-size:24px}.dawn-ready .dawn-panel-inner>p{margin-bottom:10px}.dawn-loadout small{display:none}.dawn-ready .dawn-controls-copy{margin-top:8px}.dawn-upgrades>button{min-height:190px}.upgrade-icon{font-size:30px;margin:5px 0}.dawn-upgrades p{margin:10px 0}.dawn-panel h2{font-size:32px}.dawn-ready .dawn-panel-eyebrow{display:none}.dawn-touch{bottom:73px}.dawn-stick{width:80px;height:80px}.dawn-stick i{left:21px;top:21px}.dawn-stage{top:34%}.dawn-boss{top:112px}}
@media(prefers-reduced-motion:reduce){.dawn-panel-inner,.dawn-upgrades>button{animation:none}.game-mode .world-landmark{opacity:0!important}.dawn-stage,.dawn-message{transition:none}}

.no-motion.game-mode .world-landmark{opacity:0!important}

/* Persistent, legible progression with separate numeric and visual feedback. */
.dawn-xp{top:112px;left:30px;right:30px;height:38px;background:none;transition:filter .15s}.dawn-xp-label{display:flex;align-items:baseline;gap:14px;height:24px!important;background:none!important;color:#fff}.dawn-xp-label strong{font:21px/1 var(--pixel);color:#bfffff}.dawn-xp-label>span{font:14px/1 var(--font);color:#bceef2}.dawn-xp-label #dawnXPHint{margin-left:auto;font-size:12px;color:#b1b7b6}.dawn-xp-track{height:10px!important;background:#07151b!important;border:1px solid #56e6ea70;box-shadow:0 1px 5px #000;overflow:hidden}#dawnXP{height:100%;background:#56e6ea;box-shadow:inset 0 3px #d5ffff;transition:width .15s}.dawn-xp.xp-hit #dawnXP{background:#fff}.dawn-boss{top:165px}.dawn-panel-eyebrow{font-size:14px}.dawn-recipe{display:flex;flex-direction:column;gap:7px;margin-top:15px;color:#bbb;font:14px/1.5 var(--font)}.dawn-recipe b{color:#56e6ea;font-weight:500}.dawn[data-state="ready"] .dawn-xp{visibility:hidden}
@media(max-width:760px){.dawn-xp{left:15px;right:15px;top:118px;height:35px}.dawn-xp-label{gap:10px}.dawn-xp-label strong{font-size:20px}.dawn-xp-label>span{font-size:14px}.dawn-xp-label #dawnXPHint{font-size:12px;max-width:120px;line-height:1.1;text-align:right}.dawn-boss{top:171px;width:62%}.dawn-recipe{font-size:12px;gap:4px;max-height:65px;overflow:auto}.dawn-panel-eyebrow{font-size:14px}.dawn-stage{top:37%}}
@media(max-height:640px) and (min-width:761px){.dawn-xp{top:105px}.dawn-boss{top:154px}.dawn-recipe{font-size:12px}.dawn-upgrades{margin:15px 0}}

.dawn-final .dawn-clock strong{font-size:32px;letter-spacing:0;line-height:1.3}.dawn-final .dawn-clock>.mono{color:#ffe100}@media(max-width:760px){.dawn-final .dawn-clock strong{font-size:22px}}

.dawn-boss.feeding{color:#ffe100}.dawn-boss.feeding #dawnBossHP{background:#f47a20}

@media(max-width:520px){.dawn-bottom{flex-wrap:wrap}.dawn-bottom>div{margin-left:auto}.dawn-bottom>.mono{max-width:100%;font-size:12px}.dawn-bottom button{padding:9px 8px}}

/* Color belongs to the creature, its weapon and its progression. */
.dawn-class-picker{display:flex;gap:7px;overflow-x:auto;padding:9px 0 12px;justify-content:flex-start}.dawn-class-picker button{flex:0 0 auto;min-width:58px;border:1px solid #555;padding:8px;background:#111;color:#ddd;font:13px var(--font)}.dawn-class-picker i{display:block;width:14px;height:14px;background:var(--class-color);margin:0 auto 6px}.dawn-class-picker button.selected{border-color:var(--class-color);box-shadow:inset 0 -3px var(--class-color);color:#fff}.dawn-class-card{border-left:4px solid var(--class-color);padding:8px 15px;text-align:left;background:#ffffff08}.dawn-class-card>.mono{font-size:12px;color:var(--class-color)}.dawn-class-card strong{display:block;font:28px var(--pixel);margin:4px 0}.dawn-class-card p{margin:4px 0;font-size:16px}.dawn-class-card small{display:block;margin:7px 0;color:#ccc;font-size:13px}.class-tree{margin:14px 0;text-align:left;border:1px solid #ffffff30;padding:10px}.class-tree summary{cursor:pointer;font:16px var(--font);color:var(--mood)}.class-tree>div{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.class-tree article{padding:10px;border:1px solid #777;background:#111}.class-tree article.locked{opacity:.55}.class-tree article.learned{border-color:var(--mood)}.class-tree article>span{font:12px var(--mono);color:#bbb;display:block}.class-tree b{font:19px var(--pixel)}.class-tree p{font:14px var(--font);margin:5px 0}.class-tree small{font:12px var(--font);color:#bbb}.dawn-ready .dawn-panel-inner{max-width:820px}.dawn-ready{padding-top:15px}.dawn-class-picker button:focus-visible,.class-tree summary:focus-visible{outline:2px solid #fff;outline-offset:2px}@media(max-width:600px){.dawn-class-card strong{font-size:23px}.dawn-class-card p{font-size:14px}.dawn-class-card small{font-size:12px}.dawn-class-picker{gap:5px}.dawn-class-picker button{min-width:55px}.class-tree>div{grid-template-columns:1fr}.dawn-ready .dawn-controls-copy{font-size:12px}}

.dawn-upgrades button.upgrade-selected{opacity:1!important;transform:none!important;transition:none!important;animation:none!important;border-color:#fff!important;box-shadow:inset 0 0 0 2px #fff!important;outline:none!important}.dawn-upgrades button.upgrade-selected .upgrade-icon{transform:none!important;animation:none!important}.dawn-upgrades:has(.upgrade-selected) button:not(.upgrade-selected){opacity:.65}.upgrade-selected::after{display:none!important}.upgrade-burst-layer{position:fixed;inset:0;z-index:10000;pointer-events:none;overflow:visible}.upgrade-burst-layer i{position:absolute;width:5px;height:5px;animation:upgrade-pixel-burst .24s steps(5,end) both}@keyframes upgrade-pixel-burst{0%{transform:translate(-2px,-2px);opacity:1}65%{opacity:1}100%{transform:translate(var(--dx),var(--dy));opacity:0}}@media(prefers-reduced-motion:reduce){.upgrade-burst-layer{display:none}}

@media(any-pointer:fine){body.game-mode #dawn,body.game-mode #dawn *{cursor:url("assets/cursor-glove.png") 12 2,pointer!important}body.game-mode #dawn[data-cursor="combat"] #dawnCanvas{cursor:url("assets/cursor-crosshair.png") 16 16,crosshair!important}}.dawn-cursor-trail{position:fixed;width:5px;height:5px;z-index:11000;pointer-events:none;animation:dawn-cursor-fade .4s steps(5,end) forwards}@keyframes dawn-cursor-fade{from{opacity:.9;transform:translate(0,0)}to{opacity:0;transform:translate(0,8px)}}.no-motion .dawn-cursor-trail{display:none}@media(prefers-reduced-motion:reduce){.dawn-cursor-trail{display:none}}
/* Full-viewport play removes the homepage's minimum-height constraint. */
.game-mode .dawn{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;z-index:200}
.game-mode{overflow:hidden}.dawn:fullscreen{width:100vw;height:100dvh}
#dawnScreenStatus{position:absolute;z-index:30;top:60px;right:max(16px,env(safe-area-inset-right));max-width:min(360px,85%);background:#0b101fee;color:#fff;font:14px/1.4 var(--font);padding:10px;pointer-events:none}#dawnScreenStatus:empty{display:none}
.touch-dash{position:absolute;right:112px;bottom:10px;width:64px;height:64px;border-radius:50%;border:2px solid var(--mood);background:#0a101eef;color:#fff;font:16px var(--pixel);touch-action:none;pointer-events:auto;user-select:none;box-shadow:0 3px 0 #0008}.touch-dash span{display:block;font:12px var(--mono);margin-top:3px}.touch-dash:disabled{opacity:.5}.touch-dash:active{background:#344454;transform:translateY(2px)}
@media(pointer:coarse){#dawnDash{display:none}.dawn-touch{left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:max(76px,calc(env(safe-area-inset-bottom) + 60px))}.dawn-hud{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top))}.dawn-bottom{bottom:max(12px,env(safe-area-inset-bottom))}.dawn-hud-actions button{min-width:44px;min-height:44px}}
@media(orientation:landscape) and (max-height:520px){
 .dawn-hud{top:max(10px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}.dawn-clock strong{font-size:28px}.dawn-clock>.mono,.dawn-vitals>.mono{font-size:12px}.dawn-chapters{display:none}#dawnHearts{font-size:18px}.dawn-ammo{font-size:12px}.dawn-hud-actions span{display:none}.dawn-hud-actions button{padding:8px;min-width:44px;min-height:44px}
 .dawn-touch{bottom:max(38px,calc(env(safe-area-inset-bottom) + 22px));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right))}.dawn-stick{width:80px;height:80px}.dawn-stick i{left:21px;top:21px}.touch-dash{right:102px;bottom:3px;width:60px;height:60px}.dawn-bottom{left:120px;right:180px;bottom:max(6px,env(safe-area-inset-bottom));justify-content:center}.dawn-bottom>.mono{display:none}.dawn-bottom button{padding:5px 9px;min-height:36px;font-size:12px}.dawn-message{bottom:54px}.dawn-boss{top:95px;width:32%}
 .dawn-panel{padding:12px max(18px,env(safe-area-inset-left));align-items:flex-start}.dawn-panel-inner{margin:auto}.dawn-panel h2{font-size:25px;margin:6px 0}.dawn-panel-inner>p{font-size:14px;margin:5px 0 10px}.dawn-upgrades{grid-template-columns:repeat(3,1fr);margin:10px 0;gap:8px}.dawn-upgrades>button{display:flex;min-height:150px;padding:10px}.dawn-upgrades strong{font-size:19px}.dawn-upgrades p{font-size:13px;margin:6px 0}.upgrade-icon{font-size:25px}.dawn-class-card strong{font-size:22px}.dawn-class-card p{font-size:14px}.dawn-ready .dawn-controls-copy{margin-top:6px}.dawn-pilot-picker{margin:5px 0}.dawn-class-picker{padding:5px 0}.dawn-ready-actions{gap:12px}
}
@media(orientation:landscape) and (max-height:520px){.dawn-xp{top:76px;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));height:25px}.dawn-xp-label{height:18px!important}.dawn-xp-label strong{font-size:16px}.dawn-xp-label>span{font-size:12px}.dawn-xp-label #dawnXPHint{display:none}.dawn-xp-track{height:6px!important}.dawn-boss{top:112px}.dawn-stage{top:38%}}

/* Quiet corner controls; fullscreen notices never occupy the timer band. */
.dawn-hud{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}
.dawn-hud-actions{min-width:0;flex-wrap:wrap}
#dawnFullscreen{flex:0 0 36px;width:36px;min-width:36px;min-height:36px;height:36px;padding:0;align-self:center;font-size:20px;color:#bdc4c2;border-color:transparent;background:#0b0b0b55}
#dawnFullscreen:hover,#dawnFullscreen:focus-visible{color:#fff;border-color:#ffffff70;background:#0b0b0bcc}
#dawnScreenStatus{top:auto;bottom:max(130px,calc(env(safe-area-inset-bottom) + 100px));left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:min(360px,75%);text-align:center;font-size:12px;padding:7px 10px;background:#0b101fd9}
@media(pointer:fine){.dawn-hud-actions button{flex:0 0 36px;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;background:#0b0b0b55;border-color:transparent;color:#bdc4c2}.dawn-hud-actions button span{display:none}.dawn-hud-actions button:hover,.dawn-hud-actions button:focus-visible{color:#fff;background:#0b0b0bcc;border-color:#ffffff70}}
@media(pointer:coarse){#dawnFullscreen{flex-basis:44px;width:44px;min-width:44px;min-height:44px;height:44px}}

/* Site chrome must never overlap the arcade HUD. */
.game-mode .app-footer{visibility:hidden;opacity:0;pointer-events:none;transition:none}
.dawn-buffs{position:absolute;left:30px;bottom:80px;max-width:calc(100% - 60px);font:12px/1.5 var(--mono);color:#d8f4ff;pointer-events:none;text-shadow:0 2px 3px #000}
.dawn-mastery{margin:12px auto;padding:10px 14px;border:1px solid #ffffff25;background:#ffffff06;text-align:left;max-width:620px}.dawn-mastery b{font:14px var(--pixel);color:var(--class-color,var(--mood))}.dawn-mastery span{display:block;font:12px var(--mono);margin-top:5px}.dawn-mastery p{font:14px var(--font);margin:6px 0}.dawn-mastery small,.dawn-status-key{font:12px var(--font);color:#b9c6cc}.dawn-status-key{margin-top:10px}
@media(pointer:coarse){.dawn-buffs{left:50%;transform:translateX(-50%);bottom:165px;max-width:70%;text-align:center}}
@media(orientation:landscape) and (max-height:520px){.dawn-buffs{bottom:60px;max-width:50%}.dawn-mastery{margin:6px auto;padding:6px 10px}.dawn-status-key{margin-top:5px}}
/* Fixed pixel bevels keep the menu frame crisp at every panel size. */
.dawn-upgrade-panel{background:#070b16ed;backdrop-filter:none}
.dawn-upgrade-panel .dawn-panel-inner{max-width:920px;border:4px solid #67769a;box-shadow:inset 0 0 0 3px #111a30,0 0 0 3px #05070e;padding:24px;background:linear-gradient(#192238 0 6px,#0d1425 6px);position:relative}
.dawn-upgrade-panel .dawn-panel-eyebrow{font:14px var(--mono);color:#9eebff;letter-spacing:3px}
.dawn-upgrade-panel h2{font:clamp(32px,5vw,58px)/1 var(--pixel);text-shadow:3px 3px #345379;letter-spacing:2px}
.dawn-upgrade-panel .dawn-panel-inner>p{font:16px/1.5 var(--font);color:#d4dfef;margin:10px 0 18px}
.dawn-upgrades>button{border:3px solid var(--card-color);border-bottom-width:7px;background:#111c30;box-shadow:inset 0 0 0 3px #070d18;padding:16px;min-height:270px;transition:background .12s;animation:upgrade-in .22s steps(6) both}
.dawn-upgrades>button:hover,.dawn-upgrades>button:focus-visible{transform:none;background:#22334f;box-shadow:inset 0 0 0 3px #070d18,0 0 0 3px #fff;outline:none}
.dawn-upgrades .upgrade-top{font:12px var(--mono);align-items:center;gap:8px;flex-wrap:wrap}
.dawn-upgrades .upgrade-top kbd{background:var(--card-color);color:#080d19;padding:4px 7px;border:0;font:16px var(--pixel)}
.dawn-upgrades .upgrade-icon{align-self:center;display:grid;place-items:center;width:64px;height:64px;margin:15px auto;border:2px solid var(--card-color);box-shadow:4px 4px #050911;font-size:38px;background:#080f1e}
.dawn-upgrades strong{font:26px/1.05 var(--pixel);color:#fff}.dawn-upgrades p{font:16px/1.45 var(--font);color:#d3deef;margin:12px 0 20px}.dawn-upgrades .upgrade-foot{font:12px var(--mono);border-top:1px solid #ffffff30;padding-top:10px}
.dawn-upgrades .evolution{background:#251c3e;border-color:#e8b7ff}
.dawn-warning{position:absolute;z-index:19;left:0;right:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;flex-direction:column;gap:8px;background:#090a12ee;color:#ff365d;padding:0 0 0;pointer-events:none;animation:warning-enter .3s steps(8) both}
.dawn-warning[hidden]{display:none}.dawn-warning strong{font:clamp(42px,9vw,100px)/.95 var(--pixel);letter-spacing:8px;text-shadow:4px 4px #6f1730}.warning-code{font:12px var(--mono);letter-spacing:3px;color:#ffb3c1}#dawnWarningName{font:clamp(18px,3vw,28px) var(--pixel);color:#fff;letter-spacing:3px;padding-bottom:8px}
.warning-rail{height:10px;width:100%;background:repeating-linear-gradient(135deg,#ff365d 0 12px,#3b0e24 12px 24px);background-size:34px 100%;animation:warning-rail 1s steps(12) infinite;border-top:2px solid #ff95a9;border-bottom:2px solid #6f1730}
@keyframes warning-enter{from{clip-path:inset(45% 50%)}to{clip-path:inset(0)}}@keyframes warning-rail{to{background-position:34px 0}}
@media(max-width:760px){.dawn-upgrade-panel{padding:12px}.dawn-upgrade-panel .dawn-panel-inner{padding:16px 12px}.dawn-upgrades>button{min-height:0;padding:12px;border-width:2px;border-bottom-width:5px;grid-template-columns:58px 1fr;column-gap:12px}.dawn-upgrades .upgrade-icon{width:48px;height:48px;font-size:28px;margin:0}.dawn-upgrades strong{font-size:22px}.dawn-upgrades p{font-size:14px;margin:6px 0}.dawn-warning strong{letter-spacing:3px}}
@media(orientation:landscape) and (max-height:520px){.dawn-upgrade-panel .dawn-panel-inner{padding:12px}.dawn-upgrade-panel h2{font-size:28px}.dawn-upgrade-panel .dawn-panel-inner>p{margin:6px 0;font-size:14px}.dawn-upgrades>button{display:flex;min-height:200px;padding:12px}.dawn-upgrades .upgrade-icon{margin:8px auto;width:40px;height:40px;font-size:25px}.dawn-upgrades strong{font-size:21px}.dawn-upgrades p{font-size:14px}.dawn-warning{gap:5px}.dawn-warning strong{font-size:52px}}
@media(prefers-reduced-motion:reduce){.dawn-warning,.warning-rail{animation:none}}.no-motion .dawn-warning,.no-motion .warning-rail{animation:none}
/* Character select: portrait roster and an actual, isolated weapon simulation. */
.dawn-ready{align-items:center;background:#080d18b8;padding:26px;backdrop-filter:none}.dawn-ready .dawn-panel-inner{width:min(1040px,100%);max-width:1040px}.select-heading{margin:0 0 22px}.select-heading>.mono{font-size:11px;letter-spacing:4px;color:#a3b4cf}.dawn-ready .select-heading h2{font:clamp(30px,5vw,58px)/1 var(--pixel);letter-spacing:2px;margin:9px 0;color:#fff3d9;text-shadow:3px 3px #3c4263}.select-heading p{font:15px var(--font);color:#c1c9d8;margin:8px 0}.fighter-select{display:grid;grid-template-columns:1fr 1.05fr;gap:24px;text-align:left;align-items:start}.fighter-roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding-top:4px}.fighter-roster button{position:relative;min-width:0;min-height:128px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:2px solid #455269;background:#111c2ade;padding:10px 3px;color:#e4e8ef;box-shadow:inset 0 -5px #060b1455;cursor:pointer}.fighter-roster canvas{width:64px;height:64px;image-rendering:pixelated}.fighter-roster span{font:17px/1 var(--pixel)}.fighter-roster small{font:10px var(--mono);color:#aab6c7}.fighter-roster button:hover{border-color:var(--fighter);background:#223044}.fighter-roster button.selected,.fighter-roster button:focus-visible{border-color:#fff0c9;outline:2px solid var(--fighter);outline-offset:2px;background:#26344b;box-shadow:inset 0 -5px var(--fighter)}.fighter-roster button b{position:absolute;top:-9px;left:-5px;padding:3px 5px;background:#fff0c9;color:#152139;font:15px var(--pixel)}.fighter-profile{border:2px solid #72819a;background:#0d1725d9;box-shadow:inset 0 4px var(--fighter);padding:18px 20px}.fighter-name>.mono{font-size:10px;letter-spacing:2px;color:var(--fighter)}.fighter-name h3{font:42px/1 var(--pixel);margin:7px 0;color:#fff0d5}.attack-demo{position:relative;margin:10px -8px 0;border-block:1px solid #71809844;background:#030a1444}.attack-demo canvas{display:block;width:100%;height:auto;image-rendering:pixelated}.attack-demo>span{position:absolute;bottom:8px;left:12px;font-size:9px;letter-spacing:1px;color:#a6b4c9}.fighter-effect{font:15px/1.45 var(--font);color:#e0e5eb;margin:12px 0}.fighter-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px 0;border-block:1px solid #71809855}.fighter-stats span{font:9px var(--mono);color:#a2b3cb}.fighter-stats b{display:block;font:25px var(--pixel);color:#fff3d9;margin-bottom:4px}.fighter-bonus{font:12px/1.4 var(--font);color:#bfcddd;padding:9px 0}.fighter-evolution{display:grid;grid-template-columns:1fr;gap:4px;border-left:3px solid var(--fighter);padding-left:10px;margin:6px 0 14px}.fighter-evolution small{font:9px var(--mono);letter-spacing:2px;color:#a5b0c1}.fighter-evolution b{font:20px var(--pixel);color:var(--fighter)}.fighter-evolution span{font:12px/1.4 var(--font);color:#bac6d5}.deploy-mon{width:100%;display:flex;justify-content:space-between;background:#fff0cf!important;color:#101a2b!important;border:0!important;border-bottom:4px solid var(--fighter)!important;font:21px var(--pixel)!important;min-height:46px}.deploy-mon:hover{background:var(--fighter)!important}.select-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:18px 0 0}.select-footer>span{font:10px/1.6 var(--mono);color:#a1afc2}.select-footer>div{display:flex;gap:16px}.select-footer button{color:#c1cfdf}.fighter-profile .dawn-pilot-picker{margin:8px 0}.fighter-profile .dawn-pilot-picker canvas{width:32px;height:32px;image-rendering:pixelated}
/* Leave the battlefield visible; cards carry the frame, not a dashboard. */
.dawn-upgrade-panel{background:#080e1b80;backdrop-filter:none}.dawn-upgrade-panel .dawn-panel-inner{max-width:940px;border:0;box-shadow:none;padding:20px 0;background:none}.dawn-upgrade-panel h2{color:#ffecce;text-shadow:3px 3px #3f2342;margin:8px 0}.dawn-upgrade-panel .dawn-panel-inner>p{margin:8px 0 22px;color:#e1e5eb}.dawn-upgrades{gap:18px}.dawn-upgrades>button{position:relative;display:flex;flex-direction:column;align-items:stretch;min-height:310px;padding:20px;text-align:left;border:2px solid #64778b;border-bottom:4px solid var(--card-color);background:#121c2beb;box-shadow:4px 4px #050a1480;clip-path:none}.dawn-upgrades>button:hover,.dawn-upgrades>button:focus-visible{background:#263247f5;border-color:#fff0cd;box-shadow:0 0 0 2px #fff0cd,6px 6px #080d19;transform:translateY(-3px)}.dawn-upgrades .upgrade-top{color:#aebbd0;margin-bottom:14px;font-size:10px}.dawn-upgrades .upgrade-top kbd{background:#ffffff12;color:#fff1d1;font-size:17px}.dawn-upgrades strong{font:28px/1.05 var(--pixel);color:var(--card-color)}.dawn-upgrades .upgrade-icon{width:120px;height:80px;min-height:80px;border:0;box-shadow:none;background:none;margin:12px auto;color:var(--card-color);font:52px var(--pixel)}.upgrade-icon canvas{width:120px;height:80px;image-rendering:pixelated}.dawn-upgrades p{font:16px/1.5 var(--font);margin:6px 0 20px;color:#e1e3e9}.dawn-upgrades .upgrade-foot{margin-top:auto;color:#a8b9cd;font-size:10px}.dawn-upgrades .evolution{background:#251e35eb;border-color:#a794ba}.dawn-upgrade-panel .dawn-ready-actions{margin:18px 0 10px}.evolution-path{max-width:640px;margin:12px auto;color:#c9d4e2;text-align:left}.evolution-path summary{text-align:center;cursor:pointer;font:14px var(--pixel);letter-spacing:1px;padding:10px}.evolution-nodes{display:grid;grid-template-columns:1fr 1fr;gap:18px 30px;margin:10px 0}.path-node{position:relative;padding:12px 14px;background:#111b2cef;border:1px solid #52657b}.path-node.node-0,.path-node.node-3{grid-column:1/-1;width:60%;justify-self:center}.path-node:not(.node-0):before{content:'';position:absolute;top:-19px;left:50%;width:2px;height:18px;background:#66758b}.path-node>span{float:right;color:#8190a7}.path-node b{display:block;font:20px var(--pixel);color:#c6d6eb}.path-node small{font:9px var(--mono);letter-spacing:1px;color:#98a9c1}.path-node p{font:12px/1.4 var(--font);margin:6px 0 0;color:#aab7c9}.path-node.learned{border-color:#65d98a}.path-node.learned>span,.path-node.learned small{color:#65d98a}.path-node.locked{opacity:.65}
/* Readable health, with slow low-health feedback rather than flashing art. */
#dawnHearts{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:6px;max-width:290px;min-height:22px}.pixel-heart{display:inline-block;flex:0 0 20px;width:20px;height:20px;background:#ff6479;clip-path:polygon(10% 0,40% 0,40% 10%,60% 10%,60% 0,90% 0,90% 10%,100% 10%,100% 50%,90% 50%,90% 60%,80% 60%,80% 70%,70% 70%,70% 80%,60% 80%,60% 90%,40% 90%,40% 80%,30% 80%,30% 70%,20% 70%,20% 60%,10% 60%,10% 50%,0 50%,0 10%,10% 10%);box-shadow:inset 0 4px #ffb7ae}.pixel-heart.heart-lost{background:#526172;box-shadow:inset 0 4px #718397}.health-count{font:11px var(--mono);color:#f7e4df;margin-left:4px}.critical-health #dawnHearts{filter:drop-shadow(0 0 6px #ff244e70)}.critical-health .pixel-heart.filled{animation:heart-breathe 1.8s ease-in-out infinite}.critical-health .health-count{color:#ff97a8}@keyframes heart-breathe{50%{opacity:.55;transform:scale(.88)}}
@media(max-width:760px){.dawn-ready{padding:16px}.fighter-select{gap:14px;grid-template-columns:1fr}.fighter-roster{grid-template-columns:repeat(4,1fr);gap:8px}.fighter-roster button{min-height:95px;padding:8px 2px}.fighter-roster canvas{width:48px;height:48px}.fighter-roster span{font-size:15px}.fighter-roster small{font-size:9px}.fighter-profile{padding:14px}.fighter-name h3{font-size:34px}.attack-demo canvas{max-height:180px;object-fit:contain}.select-footer{flex-direction:column}.dawn-upgrades>button{display:grid;grid-template-columns:70px 1fr;gap:5px 12px;min-height:0;padding:14px}.dawn-upgrades .upgrade-top{grid-column:1/-1;margin:0}.dawn-upgrades .upgrade-icon{grid-column:1;grid-row:2/5;width:70px;height:65px;min-height:65px;margin:auto;font-size:40px}.upgrade-icon canvas{width:90px;height:60px}.dawn-upgrades strong{grid-column:2;font-size:25px}.dawn-upgrades p{grid-column:2;font-size:14px;margin:2px 0 6px}.dawn-upgrades .upgrade-foot{grid-column:2;font-size:9px}.pixel-heart{flex-basis:16px;width:16px;height:16px}#dawnHearts{gap:3px;max-width:210px}.health-count{font-size:9px}}
@media(orientation:landscape) and (max-height:600px){.dawn-ready{padding:14px}.select-heading{margin-bottom:12px}.select-heading p{display:none}.dawn-ready .select-heading h2{font-size:30px}.fighter-select{grid-template-columns:.95fr 1.05fr;gap:16px}.fighter-roster button{min-height:85px}.fighter-roster canvas{width:44px;height:44px}.fighter-profile{padding:12px}.fighter-name h3{font-size:28px}.attack-demo canvas{max-height:110px;object-fit:contain}.fighter-effect{font-size:13px;margin:8px 0}.fighter-stats{padding:7px 0}.fighter-bonus,.fighter-evolution span{font-size:11px}.select-footer{flex-direction:row;margin-top:10px}.dawn-upgrades>button{display:flex;min-height:240px;padding:14px}.dawn-upgrades .upgrade-icon{width:100px;height:55px;min-height:55px;margin:6px auto}.dawn-upgrades .upgrade-icon canvas{width:90px;height:60px}.dawn-upgrades p{font-size:13px}.dawn-upgrade-panel h2{font-size:32px}.dawn-upgrade-panel .dawn-panel-inner>p{margin:5px 0 12px}.dawn-upgrade-panel .dawn-ready-actions{margin:12px 0 0}}
@media(prefers-reduced-motion:reduce){.critical-health .pixel-heart.filled{animation:none}.dawn-upgrades>button{animation:none;transition:none}}.no-motion .critical-health .pixel-heart.filled{animation:none}
.fighter-name>.mono,.fighter-evolution b{color:color-mix(in srgb,var(--fighter),white 30%)}.dawn-upgrades strong{color:color-mix(in srgb,var(--card-color),white 30%)}.path-node.node-0:after{content:'';position:absolute;bottom:-10px;left:-4%;width:108%;height:9px;border-bottom:2px solid #66758b;border-left:2px solid #66758b;border-right:2px solid #66758b}.path-node.node-3:before{height:18px}
@media(max-width:760px){.fighter-roster span{font-size:12px}}

/* Prism energy has a quiet gauge; the battlefield beam supplies the color. */
.dawn-energy{width:140px;max-width:100%;height:6px;margin-top:6px;background:#101827;border:1px solid #7286a4}.dawn-energy[hidden]{display:none}.dawn-energy i{display:block;height:100%;background:linear-gradient(90deg,#ef0150,#ffe100,#56e6ea,#a95af2,#fff);transition:width .08s linear}.dawn-energy.cooling i{background:#7286a4}.no-motion .dawn-energy i{transition:none}@media(prefers-reduced-motion:reduce){.dawn-energy i{transition:none}}

/* Floating movement input is visual only; the canvas owns the left touch zone. */
.dawn-floating-stick{position:absolute;width:98px;height:98px;transform:translate(-50%,-50%);pointer-events:none!important;border-color:#ffffff70;z-index:8}
.dawn-floating-stick[hidden]{display:none}
.dawn-floating-stick i{left:30px;top:30px}
.dawn-menu-open>.dawn-floating-stick{visibility:hidden}
.dawn-touch .aim-stick{margin-left:auto}
.dawn-move-hint{align-self:center;font:14px/1.45 var(--font);color:#b5bcb7;pointer-events:none;max-width:130px}
.dawn:has(.dawn-floating-stick:not([hidden])) .dawn-move-hint{visibility:hidden}
