*{box-sizing:border-box}.game-shell{width:min(1320px,100%);padding:0 28px;margin:auto;color:#163e5c;font-size:16px}.game-shell button,.game-shell select,#reset-dialog button{font:inherit;border:1px solid #71a3c1;border-radius:2px;background:linear-gradient(#fff,#d6effb);color:#164d79;padding:10px 14px;cursor:pointer;box-shadow:inset 0 1px #fff}.game-shell button:hover:not(:disabled){background:#fff;box-shadow:0 0 0 2px #83d6ff}.game-shell button:disabled{opacity:.55;cursor:default}.game-shell :focus-visible,#reset-dialog :focus-visible{outline:3px solid #075cb5;outline-offset:4px}.game-header{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:23px 0;border-bottom:1px solid #8dbdd3}.game-brand{font-family:Audiowide,sans-serif;font-size:17px;text-decoration:none}.game-brand span{font:12px monospace;letter-spacing:2px}.back-archive{font-size:14px}.game-title{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0 22px}.game-kicker{font:12px monospace;letter-spacing:2px;margin:0 0 12px;color:#287aa4}.game-title h1{font-family:Audiowide,sans-serif;font-size:clamp(21px,3vw,39px);font-weight:400;letter-spacing:-1px;margin:0;text-shadow:0 2px #fff}.game-title h1 span{color:#1279b7}.devotion-box{min-width:150px;text-align:right;border-left:1px solid #8dbdd3;padding-left:25px}.devotion-box>span{display:block;font:12px monospace;letter-spacing:2px}.devotion-box strong{font:32px Audiowide,sans-serif;display:block;color:#1269a1;line-height:1.2}.devotion-box small{font-size:12px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 355px;gap:22px;align-items:start}.battle-column{min-width:0}.window-bar{background:linear-gradient(#f7feff,#b6dced 45%,#84b6d2 49%,#c6e5f4);border:1px solid #649bb9;border-bottom:0;box-shadow:inset 0 1px #fff;min-height:39px;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;gap:10px;font:12px monospace;color:#163e5c}.window-bar h2{font:12px Audiowide,sans-serif;margin:0}.arena{position:relative;isolation:isolate;aspect-ratio:16/10;overflow:hidden;border:2px solid #5689a8;background:#172b3e url('/assets/game/arenas/gamestop.jpg') center/cover}.arena:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:3;background:repeating-linear-gradient(transparent 0 3px,#08203915 3px 4px)}.enemy-hud{position:absolute;top:15px;right:15px;width:45%;z-index:4;background:#092334ec;color:#f1fbff;padding:11px 14px;border:1px solid #7bbede;box-shadow:2px 2px #03253a}.enemy-hud>div{display:flex;justify-content:space-between;gap:8px;align-items:center}.enemy-hud strong{font-size:14px}.enemy-hud #enemy-rank{font:10px monospace;color:#b8eaff;white-space:nowrap}progress{display:block;width:100%;height:10px;appearance:none;border:1px solid #58819b;background:#08283e}progress::-webkit-progress-bar{background:#08283e}progress::-webkit-progress-value{background:linear-gradient(#dcfbff,#5cd1ef)}progress::-moz-progress-bar{background:#5cd1ef}.enemy-hud progress{margin:8px 0 5px}.enemy-hud>span{display:block;text-align:right;font:12px monospace}.fighter{position:absolute;left:12%;bottom:12%;width:21%;height:64%;z-index:2;transform-origin:bottom center;animation:beardson-idle 2.4s steps(2,end) infinite}.fighter canvas{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;position:relative;z-index:1}.fighter-shadow,.enemy-shadow{position:absolute;bottom:0;left:12%;width:80%;height:12px;background:#06182666;border-radius:50%;filter:blur(2px);z-index:-1}.game-shell .enemy-target{position:absolute;right:12%;bottom:16%;width:25%;height:45%;padding:0;background:transparent!important;border:0;box-shadow:none!important;z-index:2;touch-action:manipulation;-webkit-tap-highlight-color:transparent;animation:relic-hover 2.8s ease-in-out infinite;cursor:crosshair}.enemy-target img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 8px #50c9ff88);pointer-events:none}.enemy-target.boss{width:31%;height:47%;right:9%}.enemy-target.entering{animation:enemy-enter .45s steps(7,end)}.enemy-target.defeated{opacity:0;transform:translateY(25px) scale(.75);transition:.22s}.enemy-target.hit{animation:enemy-hit .17s steps(3,end)}.fighter.attacking{animation:beardson-attack .2s steps(3,end)}.arena-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:11px 13px;background:#082639df;color:#d4f4ff;font:12px monospace;letter-spacing:1px;z-index:4}.start-screen,.pause-screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:linear-gradient(#051d37e8,#083251d9);z-index:6;color:white;padding:22px}.start-screen .game-kicker{color:#89d7ff;font-size:11px}.start-screen h2,.pause-screen h2{font:clamp(18px,2vw,28px)/1.5 Audiowide,sans-serif;margin:4px 0 8px;text-shadow:3px 3px #061326}.start-screen p{line-height:1.65;margin:6px 0 17px;color:#d6eefa}.game-shell .primary-button{font-family:Audiowide,sans-serif;background:linear-gradient(#efffff,#87d9f9);border:2px solid white;box-shadow:4px 4px #051e31;padding:14px 25px;margin:8px 0}.start-screen .start-controls{font:12px monospace;margin-top:20px}.start-screen small{font-size:12px;color:#b1d1e2}[hidden]{display:none!important}.battle-controls{display:flex;gap:9px;padding:12px;background:#d8eff9d9;border:1px solid #84adc4;border-top:0;align-items:stretch}.game-shell .attack-button{flex:1;font:19px Audiowide,sans-serif;background:linear-gradient(#fff,#c1edff 48%,#86c7e9 49%,#c0e8fc);min-height:53px;border:1px solid #3883b1;box-shadow:inset 0 0 0 2px #fff8,0 3px #699fb9;touch-action:manipulation}.attack-button kbd{font:13px monospace;border:1px solid #42738f;padding:2px 5px;margin-left:8px}.attack-button span{font:12px Nunito,sans-serif;margin-left:7px}.battle-controls>button:not(.attack-button){font-size:13px;padding:10px}.battle-hint{font-size:12px;text-align:center;color:#41677d;margin:10px 0 17px}.player-progress{background:#effbffd9;padding:14px;border:1px solid #a2c3d6}.player-progress>div{display:flex;justify-content:space-between;font:13px monospace;margin-bottom:9px}.combat-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#c9e8f7;border:1px solid #92b7ce;border-top:0}.combat-stats>span{font:10px monospace;text-align:center;padding:11px 3px;border-right:1px solid #9fc4d7}.combat-stats strong{display:block;font:18px Audiowide,sans-serif;margin-top:5px}.battle-status{min-height:40px;margin:13px 0;font-size:14px;color:#165478}.section-label{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #8db5cb;padding-bottom:9px}.section-label h2{font:13px Audiowide,sans-serif;margin:0}.section-label>span{font:10px monospace;color:#496e84}.variants{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0 20px}.game-shell .variant{display:flex;flex-direction:column;text-align:left;padding:12px;font-size:13px;line-height:1.5;min-height:95px}.variant strong{font-weight:800}.variant span{font-size:12px;color:#356989}.variant em{font:11px monospace;margin-top:7px;font-style:normal}.game-shell .variant[aria-pressed=true]{border:2px solid #157fbc;background:#f1fbff;padding:11px}.game-settings{font-size:14px;border-top:1px solid #96bdd3;padding-top:12px}.game-settings summary{cursor:pointer}.game-settings p{line-height:1.6}.game-settings button{margin:0 6px 6px 0}.game-settings label{display:block;margin:12px 0}.game-settings input[type=range]{vertical-align:middle}.edition-note{font:11px/1.7 monospace;color:#3f6880;margin:20px 0}.upgrade-window{border:1px solid #78a4bf;background:#e8f6fde8;box-shadow:4px 4px #729dbf33}.upgrade-window>.window-bar{border:0;border-bottom:1px solid #78a4bf}.upgrade-window .window-bar>span{font-size:10px}.upgrade-intro{font-size:13px;margin:0;padding:13px 15px;background:#f7fdff;border-bottom:1px solid #b2d0e2}.upgrade{display:grid;grid-template-columns:66px minmax(0,1fr);gap:12px;padding:14px 13px;border-bottom:1px solid #b6d4e4}.upgrade>img{width:64px;height:64px;object-fit:contain;image-rendering:pixelated;align-self:start;background:#c6e2ef6b}.upgrade h3{font-size:15px;margin:0 0 3px;line-height:1.25}.upgrade p{font-size:12px;line-height:1.4;margin:4px 0;color:#3d647c}.upgrade .upgrade-effect{color:#15618e;font-size:12px;font-weight:700}.upgrade .upgrade-meta{display:flex;justify-content:space-between;gap:5px;margin-bottom:5px}.upgrade-meta span{font:11px monospace;white-space:nowrap}.game-shell .buy-upgrade{width:100%;display:flex;justify-content:space-between;gap:10px;padding:7px 9px;font-size:12px;margin-top:7px}.game-shell .buy-upgrade:not(:disabled){border-color:#2b8ec1;background:linear-gradient(#fff,#b8e8fc)}.game-footer{font:11px monospace;letter-spacing:1px;padding:20px 0;margin-top:25px;border-top:1px solid #8fb7ce}.damage-number{position:absolute;right:23%;top:41%;z-index:5;color:#fff;font:bold 24px monospace;text-shadow:2px 2px #061d30,-1px -1px #061d30;pointer-events:none;animation:damage-rise .65s steps(10,end) forwards}.damage-number.critical{color:#ffe88e;font-size:29px}#reset-dialog{max-width:440px;font-size:16px;padding:25px}#reset-dialog p{line-height:1.6}#reset-dialog>div{display:flex;gap:10px}#reset-dialog button{padding:12px}.arena-select label{margin-right:10px}@keyframes beardson-idle{50%{transform:translateY(-2px)}}@keyframes relic-hover{50%{transform:translateY(-8px) rotate(2deg)}}@keyframes beardson-attack{50%{transform:translateX(15px) rotate(5deg)}}@keyframes enemy-hit{50%{transform:translateX(7px);filter:brightness(1.8)}}@keyframes enemy-enter{from{transform:translateX(170%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes damage-rise{to{transform:translateY(-65px);opacity:0}}
.game-shell.game-paused .arena *,.game-shell.game-paused .arena *::after{animation-play-state:paused!important}.game-shell.reduce-motion *{animation:none!important;transition:none!important}.game-shell.reduce-motion .damage-number{opacity:1}.game-shell.reduce-motion .fighter.attacking{filter:brightness(1.2)}
@media(min-width:1600px){.arena{aspect-ratio:16/10}}
@media(max-width:1000px){.game-layout{grid-template-columns:minmax(0,1fr) 300px;gap:14px}.game-shell{padding:0 18px}.window-bar h2{font-size:10px}.upgrade{grid-template-columns:52px minmax(0,1fr);gap:8px;padding:12px 10px}.upgrade>img{width:50px;height:50px}.game-title h1{font-size:25px}.arena{aspect-ratio:4/3}.enemy-hud{width:52%;right:10px;top:10px}.fighter{left:9%;width:25%}.start-screen{padding:14px}.start-screen h2{font-size:20px}.start-screen p{font-size:14px}.battle-controls{flex-wrap:wrap}.attack-button{min-width:100%}.devotion-box small{display:none}}
@media(max-width:740px){.game-layout{grid-template-columns:1fr}.game-title h1{font-size:clamp(17px,4.8vw,30px);max-width:300px;line-height:1.3}.game-title{padding:20px 0;gap:10px}.game-title .game-kicker{font-size:10px;letter-spacing:1px}.devotion-box{min-width:90px;padding-left:12px}.devotion-box strong{font-size:25px}.devotion-box>span{font-size:10px;letter-spacing:1px}.arena{aspect-ratio:4/3}.game-shell{padding:0 12px}.game-header{padding:18px 0}.game-brand{font-size:13px}.game-brand span{display:none}.back-archive{font-size:12px}.fighter{width:23%;left:10%;height:61%}.enemy-target{right:10%!important}.enemy-hud strong{font-size:12px}.enemy-hud #enemy-rank{font-size:9px}.enemy-hud{padding:9px;width:55%}.start-screen .game-kicker{font-size:9px}.start-screen h2{font-size:19px}.start-screen p{font-size:13px;margin:4px 0 10px}.start-screen .start-controls{margin:10px 0}.game-shell .primary-button{padding:12px 16px;font-size:14px}.game-shell .attack-button{font-size:18px;min-width:0}.attack-button span,.attack-button kbd{display:none}.battle-controls{flex-wrap:nowrap;padding:9px;gap:7px}.battle-controls>button:not(.attack-button){font-size:11px;padding:8px}.variants{gap:6px}.game-shell .variant{padding:9px;font-size:12px}.game-shell .variant[aria-pressed=true]{padding:8px}.variant span{font-size:11px}.section-label>span{display:none}.upgrade{grid-template-columns:74px minmax(0,1fr);padding:14px}.upgrade>img{width:68px;height:68px}.upgrade h3{font-size:16px}.upgrade p,.upgrade .upgrade-effect{font-size:13px}.game-shell .buy-upgrade{padding:12px;font-size:14px}.window-bar h2{font-size:12px}.game-footer{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.edition-note{font-size:10px}.game-title h1 span{display:block}}
@media(prefers-reduced-motion:reduce){.game-shell *{animation:none!important;transition:none!important}}
@media(min-width:741px){.arena{max-height:52vh}.game-title{padding:18px 0}.game-header{padding:18px 0}}
.arena{width:100%}
/* Supplied full-body challengers share Beardson's floor line. */
.game-shell .enemy-target{width:32%;height:60%;bottom:12%;right:9%}
.game-shell .enemy-target.boss{width:38%;height:66%;right:6%}
@media(max-width:740px){.enemy-hud{width:calc(100% - 20px);top:8px}.enemy-hud>div{align-items:baseline}.enemy-hud strong{font-size:11px}}
.game-shell .enemy-target.boss{height:60%}
@media(max-width:740px){.game-shell .enemy-target,.game-shell .enemy-target.boss{height:50%}}
/* Shared floor and normalized visible sprite height. Flipping the canvas keeps
   facing direction independent of hit, entry and defeat transforms. */
.game-shell .enemy-target,.game-shell .enemy-target.boss{height:calc(62% * var(--enemy-scale,1));width:37%;bottom:12%;right:7%;animation:challenger-idle 2.4s steps(2,end) infinite;transform-origin:50% 100%}
.enemy-target canvas{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;image-rendering:pixelated;transform:scaleX(-1);pointer-events:none;filter:drop-shadow(0 2px 1px #07192566)}
.enemy-target.entering{animation:enemy-enter .35s steps(6,end)!important}.enemy-target.hit{animation:enemy-hit .18s steps(3,end)!important}.enemy-target.defeated{animation:none!important}
.enemy-hud{position:relative;top:auto!important;right:auto!important;width:100%!important;min-height:66px;border:0;border-bottom:1px solid #7bbede;box-shadow:none;padding:8px 12px;z-index:4}
.arena{padding-top:66px;min-height:350px}
.enemy-hud{position:absolute;top:0!important;left:0;right:0!important}
.enemy-hud>div{align-items:center}.enemy-hud strong{font-size:13px}.enemy-hud progress{margin:6px 0 3px}
.fighter.attacking{animation:beardson-strike .23s steps(5,end)!important}
.fighter.attacking::after{content:'';position:absolute;left:90%;top:28%;width:45%;height:28%;border-top:5px solid #dffaff;border-right:7px solid #77dfff;transform:skew(-20deg) rotate(20deg);filter:drop-shadow(2px 2px #237cb9);pointer-events:none}
@keyframes beardson-strike{0%{transform:translateX(0)}20%{transform:translateX(-5px) rotate(-3deg)}55%{transform:translateX(clamp(16px,3vw,38px)) rotate(5deg)}75%{transform:translateX(18px) rotate(2deg)}100%{transform:translateX(0)}}
@keyframes challenger-idle{50%{transform:translateY(-2px)}}
@media(max-width:740px){.arena{min-height:330px;aspect-ratio:1.1}.fighter{height:60%;width:27%;left:9%}.game-shell .enemy-target,.game-shell .enemy-target.boss{height:calc(59% * var(--enemy-scale,1));width:40%;right:5%!important}.enemy-hud strong{font-size:12px}.game-header{flex-wrap:wrap}.game-header .sky-theme-toggle{font-size:11px;padding:6px 8px;margin:0}.fighter.attacking::after{border-width:4px}}
.game-shell.reduce-motion .fighter.attacking::after{display:none}
@media(prefers-reduced-motion:reduce){.fighter.attacking::after{display:none}}
@media(max-width:740px){.game-shell .enemy-target,.game-shell .enemy-target.boss{width:45%;right:3%!important}}
.game-shell.reduce-motion .arena *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.game-shell .arena .enemy-target,.game-shell .arena .fighter{animation:none!important;transition:none!important}}

/* Defeat must outrank the generic disabled-button opacity. */
.game-shell .enemy-target.defeated{visibility:hidden;opacity:0!important;transition:none!important;animation:none!important}
.variants{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Player workspace: travel and goals above battle, paged shop beside it. */
.game-header{padding:10px 0}.game-title{padding:14px 0}.game-kicker{margin-bottom:5px}.game-title h1{font-size:clamp(20px,2.3vw,31px)}
.arena-select{display:flex;align-items:center;gap:12px;margin:0 0 10px}.arena-select select{max-width:100%;flex:1}.objective-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;background:#effbffe6;border:1px solid #8db5cb;padding:10px 13px;margin-bottom:12px;font-size:13px}.objective-bar>span{flex:1;min-width:200px;font-size:12px}.objective-bar button{font-size:12px}
.upgrade-window{position:sticky;top:12px}.shop-pages{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;gap:8px;font:11px monospace}.shop-pages button{padding:5px 12px}.upgrade{padding:9px 10px;grid-template-columns:42px 1fr;gap:8px}.upgrade>img{width:40px;height:40px}.upgrade h3{font-size:13px}.upgrade p:first-of-type{display:none}.upgrade p{margin:2px 0;font-size:11px}.upgrade .buy-upgrade{margin-top:4px}.upgrade-intro{padding:8px 12px}.arena{aspect-ratio:16/9;min-height:300px}.battle-hint{margin:6px 0;font-size:11px}.player-progress{padding:9px}.combat-stats>span{padding:6px}.battle-status{min-height:20px;margin:8px 0}.variants-section{margin:10px 0}.variants-section summary{cursor:pointer;font-weight:bold}.boss-clock{display:flex;gap:10px;align-items:center;background:#482239;color:#fff;padding:9px 12px;font-size:12px}.boss-clock strong{font:22px monospace}.boss-clock span{flex:1}.boss-clock button{padding:5px 9px}
@media(max-width:800px){.game-layout{display:flex;flex-direction:column}.battle-column,.upgrade-window{width:100%}.upgrade-window{position:static}#upgrades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.upgrade{grid-template-columns:1fr}.upgrade>img{display:none}.game-title{gap:8px}.devotion-box{min-width:85px;padding-left:10px}.devotion-box strong{font-size:24px}.game-shell{padding:0 12px}.arena{min-height:280px}.objective-bar>span{min-width:100%;}.battle-controls{position:sticky;bottom:0;z-index:7}.game-layout{gap:12px}}

/* Planted casting: no lunge, body nod or oversized arrow. */
.game-shell .fighter,.game-shell .fighter.attacking{animation:none!important;transform:none!important}
.fighter.attacking::after{display:none!important}
.devotion-pulse{position:absolute;z-index:3;left:0;top:0;width:7px;height:7px;margin:-3px 0 0 -3px;background:#e5fcff;box-shadow:0 0 0 2px #53cfff,0 0 10px #8fe8ff;pointer-events:none;will-change:transform}
.game-shell.reduce-motion .devotion-pulse{display:none}
@media(prefers-reduced-motion:reduce){.devotion-pulse{display:none}}
