/* The Legacy: portrait adventure shell, atlas art and tactile pixel UI. */
:root{color-scheme:dark;--ink:#25272d;--paper:#eee7d4;--paper-light:#faf4e3;--muted:#807766;--line:#a29a7c;--gold:#e5bd68;--nav:#29383c;--green:#8ca771;--dim:#a9a798;--text:#f8efda;--red:#dc776b}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior:none}body{background:#111b21;color:var(--text);font-family:"Malgun Gothic","Segoe UI",system-ui,sans-serif;font-size:14px;line-height:1.5}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation;color:var(--ink);background:#edc978;border:2px solid #584935;border-radius:7px;padding:11px 15px;font-weight:800;box-shadow:inset 0 2px 0 #fff6,0 3px 0 #443d31;transition:filter .12s,translate .12s}button:hover:not(:disabled){filter:brightness(1.09)}button:active:not(:disabled){translate:0 2px;box-shadow:inset 0 2px 0 #fff4,0 1px 0 #443d31}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #56cee0;outline-offset:3px}button .pixel-icon{pointer-events:none}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:25px;letter-spacing:-1px}h2{font-size:18px;line-height:1.4}h3{font-size:15px}p{margin:8px 0;line-height:1.6}small{font-size:11px}.hint,.muted{color:#817765;font-size:12px}.success{color:#47744e}.warning{color:#aa582d}.secondary{background:#dedaca;border-color:#7c7a67}.ghost{background:transparent;box-shadow:none;border-color:#bcb097;color:#756e5a}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.actions>button{flex:1;min-height:46px}.text-button{border:0;background:none;box-shadow:none;padding:6px 0;font-size:12px;color:#697b67;min-height:32px}.small-button{padding:6px 10px;font-size:12px;min-height:38px}.flex{display:flex;justify-content:space-between;gap:8px;align-items:center}.eyebrow{display:block;letter-spacing:3px;font-size:10px;font-weight:800;color:var(--gold)}
#app{width:100%;max-width:480px;margin:auto}.game-screen{position:relative;height:100dvh;min-height:580px;max-height:1000px;display:flex;flex-direction:column;background:#eae2cc;overflow:hidden;isolation:isolate;border-left:1px solid #516159;border-right:1px solid #516159}.view-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c4b894 #eae2cc}.view-body:has(.battle-layout){overflow:hidden}.loading-screen{height:100dvh;display:grid;place-content:center;text-align:center;gap:15px;color:#eac47a}.loading-rune{font-size:50px}.loading-screen h1{letter-spacing:5px}.error{position:fixed;top:12px;left:12px;right:12px;z-index:100;background:#6c3030;padding:20px;border:2px solid #e59a7d;border-radius:8px}.error[hidden]{display:none}
.pixel-icon{display:inline-block;flex:none;width:48px;height:48px;background:url('../../assets/game/common/v1/items.png') var(--ix) var(--iy)/600% 600% no-repeat;image-rendering:pixelated;vertical-align:middle}.monster-sprite{display:block;width:100%;height:100%;background:url('../../assets/game/monsters/v5/original.png') var(--mx) var(--my)/400% 200% no-repeat;image-rendering:pixelated}.knight-assembly{position:relative;display:block;width:160px;height:160px;flex:none;image-rendering:pixelated}.knight-body{position:absolute;inset:0;background:url('../../assets/game/characters/v4/knight.png') 0 0/400% 200% no-repeat;image-rendering:pixelated;animation:knight-breathe 1.3s steps(1) infinite}.knight-weapon{position:absolute;left:56%;top:46%;width:45%;height:45%;transform:rotate(-12deg);transform-origin:25% 75%;z-index:2}.knight-weapon .pixel-icon{width:100%;height:100%}.pose-dead .knight-body{background-position:100% 100%;animation:none}.pose-dead .knight-weapon{transform:rotate(70deg);top:62%}.profile-badge .knight-body{animation:none}.floor-1{--floor-x:0%}.floor-2{--floor-x:50%}.floor-3{--floor-x:100%}
.resource-header{position:relative;z-index:5;display:flex;align-items:center;gap:10px;flex:none;height:75px;padding:7px 14px;background:#233438;border-bottom:3px solid #111e25;box-shadow:inset 0 -1px #536160;margin:0}.profile-badge{position:relative;width:55px;height:57px;border:2px solid #c5a46b;background:#15232c;box-shadow:0 2px 0 #0c171a;border-radius:8px;overflow:hidden;flex:none}.profile-badge .knight-assembly{position:absolute;width:75px;height:75px;left:-12px;top:-12px}.profile-badge>span{position:absolute;bottom:-1px;left:0;right:0;text-align:center;font-size:9px;font-weight:900;background:#ab8254;color:#fff5df;line-height:15px}.resource-wallet{display:flex;gap:10px;flex:1;align-items:center}.resource-wallet>div,.wallet-potion{display:flex;align-items:center;gap:5px;border:1px solid #57635b;background:#142429;border-radius:5px;min-height:32px;padding:0 6px;box-shadow:inset 0 2px 0 #071a2255;color:#f0e5c5}.resource-wallet .pixel-icon{width:30px;height:30px;margin-left:-12px}.resource-wallet>div{flex:1}.resource-wallet b{font-size:14px}.resource-wallet>div>span:last-child{font-size:9px;color:#b6b9a4;margin-left:auto}.wallet-potion{min-width:72px}.wallet-potion b small{font-size:10px;color:#929f94}.menu-button{background:#34494a;color:#d5d6b9;box-shadow:0 2px #0b191d;border-color:#6a7b6d;font-size:20px;padding:0;width:38px;height:36px;min-height:36px;line-height:1}
.bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:relative;z-index:5;flex:none;background:#28383b;border-top:3px solid #132226;padding:0 5px env(safe-area-inset-bottom);box-shadow:inset 0 1px #728072}.nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;height:77px;padding:5px 0 7px;border:0;border-radius:0;background:none;box-shadow:none;color:#b4bcaa;font-size:11px}.nav-item .pixel-icon{width:41px;height:41px;filter:saturate(.4) brightness(.8)}.nav-item.active{background:linear-gradient(#5a685a,#3a4c43);color:#fff5da;box-shadow:inset 0 3px var(--gold)}.nav-item.active .pixel-icon{filter:none;transform:translateY(-2px)}.nav-item.adventure-nav .pixel-icon{width:48px;height:43px}.nav-item:hover:not(:disabled){background-color:#3c4e47}.nav-item:disabled{opacity:.7}
.adventure-view{color:var(--ink)}.adventure-scene{position:relative;height:clamp(290px,42dvh,430px);overflow:hidden;background-image:url('../../assets/game/common/v1/dungeons.png');background-position:var(--floor-x) top;background-size:300% 150%;image-rendering:pixelated}.adventure-scene::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(#06151dcc,transparent 37%,transparent 72%,#0b1c2399)}.chapter-heading{position:absolute;z-index:2;left:70px;right:70px;top:17px;text-align:center;color:#fff2d6;text-shadow:0 2px #111a22}.chapter-heading .eyebrow{font-size:10px;color:#e9c67e}.chapter-heading h1{font-size:25px;margin:2px 0 8px}.chapter-track{display:flex;justify-content:center;align-items:center;gap:8px}.chapter-track span{display:grid;place-items:center;width:23px;height:23px;border:1px solid #9a9e89;background:#253839;color:#a8b3a3;border-radius:5px;font-size:11px;font-weight:800}.chapter-track span.current{border-color:#f0d489;background:#c8a964;color:#262b29;box-shadow:0 0 0 2px #131f24}.chapter-track span.complete{background:#607b58;color:#fff}.chapter-track i{width:20px;height:2px;background:#b3b48a66}.scene-shortcuts{position:absolute;z-index:3;top:115px;left:13px;display:grid;gap:12px}.scene-shortcut{display:flex;flex-direction:column;align-items:center;width:50px;height:57px;padding:1px;border:1px solid #96977b;background:#223539bb;border-radius:8px;color:#f0e4c9;box-shadow:0 2px #111b24}.scene-shortcut .pixel-icon{width:36px;height:36px}.scene-shortcut span:last-child{font-size:10px;line-height:1.1}.scene-hero{position:absolute;z-index:3;left:50%;bottom:35px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center}.scene-hero .knight-assembly{width:160px;height:160px}.hero-nameplate{font-size:10px;background:#1e2e32ce;border:1px solid #a1a583;color:#e6ebd3;padding:1px 10px;margin-top:-19px;z-index:3}.scene-object{position:absolute;z-index:2;right:6%;bottom:72px;width:85px;height:85px}.scene-object>.pixel-icon{width:80px;height:80px}.scene-object.cleared{opacity:.5;filter:grayscale(.8)}.exploration-progress{position:absolute;z-index:3;left:22px;right:22px;bottom:13px;display:flex;align-items:center;gap:10px;font-size:10px;color:#e9e8ce}.exploration-progress>div{height:7px;flex:1;border:1px solid #b9b597;background:#12232be6;padding:1px}.exploration-progress i{display:block;height:100%;background:#ccbf82}
.vitals-strip{display:flex;gap:10px;padding:9px 18px 9px 12px;background:#263d3b;border-top:1px solid #87907c;border-bottom:3px solid #152b2e;color:#fff;flex:none}.vital-bar{display:flex;align-items:center;flex:1;gap:2px;min-width:0}.vital-bar>.pixel-icon{width:25px;height:25px}.vital-bar>div{height:19px;position:relative;flex:1;background:#172326;border:1px solid #121c24;border-radius:4px;overflow:hidden;box-shadow:0 1px #b1b4a54d}.vital-bar i{position:absolute;inset:0 auto 0 0;background:#8daf66;border-top:3px solid #b3cb86}.vital-bar.guard i{background:#648cb6;border-color:#a3c0d5}.vital-bar b{position:absolute;inset:0;text-align:center;font-size:10px;line-height:17px;text-shadow:0 1px 2px #142427,1px 0 1px #142427}
.adventure-panel{padding:18px 20px 23px;background:var(--paper);box-shadow:inset 0 2px var(--paper-light);min-height:180px}.panel-kicker{font-size:10px;letter-spacing:1px;color:#8c7955;margin-bottom:4px}.adventure-panel>p{font-size:13px;color:#766d58}.adventure-panel>h2{font-size:20px}.route-heading{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #c5b99c;margin-top:16px;padding-top:9px;font-size:12px;font-weight:700;color:#766a51}.route-list{display:grid;gap:9px;margin-top:6px}.route-card{display:flex;align-items:center;gap:10px;min-height:65px;text-align:left;padding:5px 13px;background:#f5ecd5;border-color:#97865f;box-shadow:inset 0 2px #fff8,0 3px #b3a17c}.route-card>.pixel-icon{width:44px;height:44px}.route-card>span:not(.pixel-icon){display:grid;gap:2px;flex:1}.route-card b{font-size:14px}.route-card small{font-size:11px;font-weight:400;color:#7b7462}.route-card>strong{font-size:24px;color:#927d4c}
.collection-view{color:var(--ink);padding-bottom:15px}.page-heading{text-align:center;padding:21px 15px 18px;background:#e5dcc4;border-bottom:1px solid #b7aa87}.page-heading .eyebrow{color:#8c7753;font-size:9px;letter-spacing:2.3px}.page-heading h1{font-size:24px;margin-top:3px}.page-heading p{font-size:11px;color:#8a7d61;margin:3px 0}.equipment-stage{position:relative;display:flex;justify-content:space-between;align-items:center;min-height:270px;padding:20px 25px;background:url('../../assets/game/common/v1/dungeons.png') var(--floor-x) 55%/300% 220%;border-bottom:3px solid #394944;image-rendering:pixelated}.equipment-slots,.equipment-emblems{display:grid;gap:12px;z-index:2}.gear-slot{width:65px;height:65px;padding:3px;display:flex;flex-direction:column;justify-content:center;align-items:center;border:2px solid #8ba58c;background:#2d4140e6;box-shadow:inset 0 0 0 2px #172c30,0 3px #152326;border-radius:7px;color:#fff0cf}.gear-slot .pixel-icon{width:44px;height:44px}.gear-slot small{font-size:9px;margin-top:-4px;color:#d9ddbc}.gear-slot.empty{border-color:#65746a;background:#1d2c2dbb;color:#b2b89c}.gear-slot.empty>span:not(.pixel-icon){font-size:26px}.empty-slot{font-size:25px;line-height:35px;color:#849488}.equipment-hero{position:absolute;inset:15px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;color:#fff3d4}.equipment-hero .knight-assembly{width:235px;height:210px;margin-top:-30px;margin-bottom:-24px}.equipment-hero>b{z-index:2;text-shadow:0 2px #000}.equipment-hero>span:last-child{font-size:10px;color:#cbd0ae;background:#152728b8;padding:1px 8px;margin-top:2px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #b8ad8d;background:#d4caae;padding:11px 12px 9px}.stat-grid>div{display:grid;grid-template-columns:30px 1fr;grid-template-rows:20px 17px;align-items:center;column-gap:3px;border-right:1px solid #b6aa88;padding:0 7px}.stat-grid>div:last-child{border:0}.stat-grid .pixel-icon{grid-row:1/3;width:30px;height:30px}.stat-grid b{font-size:18px;line-height:1}.stat-grid span:not(.pixel-icon){font-size:9px;color:#7c6e51}.substats{display:flex;justify-content:space-around;padding:7px;font-size:10px;background:#e0d6bc;color:#756d59}.substats b{color:#4b4c42;margin-left:4px}.paper-section{margin:14px 14px 0;padding:15px;border:1px solid #bdb08e;border-radius:8px;background:#f4ecd7;box-shadow:inset 0 1px #fff9,0 2px #cabb9a}.paper-section h2{display:flex;justify-content:space-between;align-items:center;font-size:15px;margin-bottom:10px}.paper-section h2 small{font-weight:400;color:#8a7c60}.gear-list{display:grid}.gear-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #ddd1b5}.gear-row>.pixel-icon{width:48px;height:48px;background-color:#ded5bc;border:1px solid #a9a58a;border-radius:6px}.gear-row>div{display:grid;gap:1px;flex:1;min-width:0}.gear-row b{font-size:12px}.gear-row small{font-size:9px;color:#8e7f60}.gear-row div>span{font-size:10px;color:#766c56}.inventory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.inventory-cell{padding:8px 4px;background:#d9cfb2;border-color:#9b977a;display:grid;place-items:center;box-shadow:0 2px #ada283}.inventory-cell small{font-size:10px}.empty-message{grid-column:1/-1;font-size:12px;text-align:center;color:#93886e;padding:15px 0}.ability-row{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #ddd1b5}.ability-row>.pixel-icon{width:48px;height:48px;background-color:#d4d0ae;border:1px solid #9d9b76;border-radius:7px}.ability-row b{font-size:12px}.ability-row p{font-size:11px;color:#84765e;margin:2px 0}.quest-card{display:flex;gap:12px}.quest-card b{font-size:13px}.quest-card p{font-size:11px;color:#837355}.quest-card strong{color:#72805a;font-size:15px}.relic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.relic-tile{display:flex;align-items:center;flex-direction:column;background:#e4d8b8;border:1px solid #b9a275;padding:10px 3px;box-shadow:0 2px #b7aa87}.relic-tile b{font-size:10px;margin:4px 0}.relic-tile small{font-size:9px;color:#668054}.relic-tile.locked .pixel-icon{filter:grayscale(1);opacity:.45}.relic-tile.locked small{color:#938777}.journal-list{margin:0;padding:0 0 0 19px;color:#817259;font-size:12px}.journal-list li{padding:8px 0 8px 3px;border-bottom:1px dashed #cbbd9c}.journal-list li::marker{color:#aa9470}
.modal-backdrop{position:absolute;inset:0;z-index:20;background:#07141dd1;display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(3px)}.game-modal{width:100%;max-height:90%;display:flex;flex-direction:column;border:3px solid #6a624d;border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 0 0 2px #d7c695,0 16px 50px #0008;outline:none;overflow:hidden}.modal-heading{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#d6c6a1;border-bottom:2px solid #b0a17c;flex:none}.modal-heading h2{font-size:19px}.close-button{display:grid;place-items:center;width:33px;height:33px;min-height:33px;padding:0;font-size:22px;background:#ac6c53;color:#fff0d8;box-shadow:0 2px #765041;border-color:#775744;line-height:1}.modal-body{overflow:auto;overscroll-behavior:contain;padding:16px;scrollbar-width:thin}.modal-body>p{font-size:13px}.settings-list{display:grid;gap:12px}.settings-list button,.settings-list a{display:flex;justify-content:space-between;padding:13px;background:#e0d6bc;border:1px solid #b4a584;border-radius:5px;color:#554e40;text-decoration:none;font-size:13px;box-shadow:0 2px #c1b38f}.item-showcase{text-align:center;background:#d7cfb4;border:1px solid #b7a781;border-radius:8px;padding:15px;margin-bottom:17px}.item-showcase>.pixel-icon{width:100px;height:100px}.item-description{text-align:center;font-weight:800}.map-scroll{overflow:auto;background:#263c3d;border:3px solid #8b8d71;padding:4px;border-radius:6px}.dungeon-map{position:relative;width:100%;aspect-ratio:1;min-width:250px;background:repeating-linear-gradient(0deg,transparent 0 19.6%,#ffffff08 19.6% 20%),repeating-linear-gradient(90deg,transparent 0 19.6%,#ffffff08 19.6% 20%)}.map-node{position:absolute;width:18%;height:18%;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:2;border:1px solid #758276;background:#40504a;border-radius:4px;padding:0;box-shadow:0 2px #17282e;color:#c9d1b6}.map-node .pixel-icon{width:31px;height:31px}.map-node small{font-size:8px;white-space:nowrap}.map-node.available{border:2px solid #d6bf7e;background:#65725a}.map-node.current{opacity:1;background:#bba169;color:#1a3333;border:2px solid #ffde90}.map-node.selected{outline:2px solid #6fd8cf;outline-offset:1px}.map-corridor{position:absolute;display:block;z-index:1;background:#a6a789}.map-corridor.horizontal{width:20%;height:4px;transform:translateY(-2px)}.map-corridor.vertical{width:4px;height:20%;transform:translateX(-2px)}.map-legend{display:flex;justify-content:space-between;font-size:10px!important;color:#8b7a5b}.map-room-preview{padding:12px 0 0;border-top:1px solid #b8ac8d;margin-top:10px}.preview-kicker{font-size:10px;color:#8f8062}.room-preview h2{font-size:17px}.room-preview h2 small{font-size:10px;margin-left:5px;color:#958665}.room-preview p{font-size:12px}.toast{position:absolute;z-index:25;left:20px;right:20px;bottom:92px;padding:12px;background:#203837f2;border:1px solid #b4c199;border-radius:7px;color:#f7f1d1;box-shadow:0 5px 18px #0006;font-size:12px;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translateY(0)}
.has-choice .adventure-scene{height:150px;min-height:150px}.has-choice .scene-hero,.has-choice .scene-shortcuts,.has-choice .scene-object{display:none}.has-choice .chapter-heading{top:15px}.has-choice .adventure-panel{padding-top:15px}.has-choice .adventure-panel>h2{font-size:19px}.scene-kicker{font-size:11px;color:#917c4f}.build-peek{border:1px solid #b5a987;background:#e3d8bb;border-radius:6px;color:#75674e;margin:12px 0;font-size:11px}.build-peek summary{padding:9px;cursor:pointer;font-weight:800;min-height:38px}.build-peek summary span{float:right;font-weight:400;font-size:10px}.peek-grid{padding:0 10px 10px;display:grid;gap:6px}.peek-grid>div{display:grid;gap:2px}.peek-grid b{font-size:10px;color:#516551}.peek-grid span{font-size:10px}.choice-list{display:grid;gap:12px}.choice-card{display:grid;grid-template-columns:55px minmax(0,1fr);gap:8px 11px;background:#faf3de;border:2px solid #aab28a;border-radius:9px;padding:13px;box-shadow:0 3px #b3b595;position:relative;color:var(--ink)}.choice-icon{width:55px;height:55px;display:grid;place-items:center;border:2px solid #749688;background:#cad5ad;border-radius:7px}.choice-icon .pixel-icon{width:49px;height:49px}.choice-role{font-size:9px;color:#6c8b61;letter-spacing:.5px}.choice-copy strong{display:block;font-size:14px}.choice-copy p{font-size:11px;color:#716a54;margin:4px 0;line-height:1.6}.choice-related{display:block;font-size:10px;color:#588466;background:#e5ebd2;padding:3px 5px;border-radius:3px}.choice-details{margin-top:6px;font-size:10px;color:#938264}.choice-details summary{cursor:pointer;min-height:24px}.choice-pick{grid-column:1/-1;min-height:39px;font-size:12px;background:#c5d29c;border-color:#7a885e;box-shadow:0 2px #839263}.outcome-note{font-size:12px;background:#e1d6b9;border-left:3px solid #bfa56b;padding:9px;color:#7c6b4e}.scene-line{color:#686350;font-size:13px}.option{border:1px solid #b5a780;background:#f9f0d7;border-radius:7px;padding:12px;margin:10px 0}.option strong{display:block;font-size:13px}.option small{color:#8a7a5a}.option button{min-height:40px;padding:6px 17px;font-size:12px}.gear-comparison{display:grid;grid-template-columns:1fr 20px 1fr;align-items:center;gap:7px;margin:15px 0}.gear-comparison>div{border:1px solid #b6a47a;background:#e2d5b6;display:flex;align-items:center;text-align:center;flex-direction:column;padding:12px 5px;border-radius:7px;min-height:170px}.gear-comparison>div:last-child{border:2px solid #769673;background:#dce4c5}.gear-comparison .pixel-icon{width:70px;height:70px}.gear-comparison small{color:#887a5a;font-size:9px}.gear-comparison b{font-size:12px}.gear-comparison p{font-size:10px;color:#746c57;margin:5px 0}.gear-comparison>span{text-align:center;font-size:24px;color:#9f8c66}.result{text-align:center;padding:16px 0}.result h2{font-size:24px}.result p{color:#7b7058;font-size:13px}.result button{margin-top:10px;min-width:180px}
/* Only cue animations are shared with the old presentation. Layout is rebuilt. */
.battle-heading{position:absolute;z-index:7;display:flex;justify-content:space-between;align-items:center}.battle-heading strong{padding:3px 9px}.battle-field{position:absolute}.combat-unit,.hero-unit{position:absolute;left:var(--x);top:var(--y);z-index:4;text-align:center}.combat-unit.back-line{z-index:3}.unit-figure,.hero-sprite{position:relative;z-index:1}.unit-plate{position:relative;z-index:2;margin:auto;border:1px solid;border-radius:3px}.unit-plate strong,.unit-plate small{display:block;white-space:nowrap}.unit-hp{overflow:hidden;border:1px solid;border-radius:3px}.unit-hp span{display:block;height:100%}.unit-status{display:flex;justify-content:center;flex-wrap:wrap;gap:3px;margin-top:3px}.unit-status span{font-size:8px;border:1px solid;border-radius:3px;padding:1px 3px}.fighter-shadow{position:absolute;left:50%;transform:translateX(-50%);border-radius:50%;z-index:0}.battle-readout{position:absolute;z-index:7;text-align:left}.readout-label,.battle-readout strong,.battle-readout small{display:block}.turn-track{position:absolute;z-index:7;display:flex;overflow-x:auto;scrollbar-width:none}.turn-chip{flex:none;padding:2px 5px;border-radius:3px;white-space:nowrap}.battle-result-banner{position:absolute;z-index:8;left:50%;transform:translateX(-50%);font-weight:900;white-space:nowrap;color:#fff2ca}.hero-status{font-size:8px}.impact{position:absolute;z-index:8;top:-10px;left:50%;transform:translateX(-50%);font-size:16px;font-weight:900;color:#ffdc96;text-shadow:0 2px #142328}.battle-strike{display:none}
.battle-layout{display:flex;flex-direction:column;height:100%;min-height:0;color:var(--ink)}.battle-stage{position:relative;inset:auto;flex:1;min-height:230px;overflow:hidden;background:url('../../assets/game/common/v1/dungeons.png') var(--floor-x) 45%/300% 130%;border:0;pointer-events:none;image-rendering:pixelated}.battle-stage::before{inset:0;background:linear-gradient(#071a2188,transparent 45%);opacity:1;transform:none}.battle-stage::after,.battle-board,.battle-board-edge,.formation-tag{display:none}.battle-heading{top:12px;left:15px;right:15px;color:#f5e6bc;font-size:11px}.battle-heading strong{background:#17282c;border:1px solid #aab28d;font-size:11px;border-radius:4px}.battle-field{inset:57px 9px 100px;z-index:2;min-height:135px}.combat-unit{width:92px;transform:translate(-50%,-55%) scale(var(--scale));text-shadow:0 1px #000}.unit-figure{width:88px;height:88px;filter:drop-shadow(1px 4px #061b2166);margin:0 auto -3px}.unit-figure::before{display:none}.unit-figure .monster-sprite{width:100%;height:100%;transform:scaleX(-1)}.unit-plate{width:84px;background:#213230ed;border-color:#788971;box-shadow:0 2px #162324;padding:4px}.combat-unit strong{font-size:9px;color:#f5e9c7}.combat-unit small{font-size:8px;color:#d1d7bc}.unit-hp{height:6px;border-color:#283829;background:#192a29;margin:4px 1px}.unit-hp span{background:#d17b68;border-top:1px solid #f7b299}.hero-unit{width:115px;transform:translate(-50%,-57%)}.hero-sprite{width:133px;height:133px;background:none!important;animation:none!important;filter:drop-shadow(2px 4px #0e192166);margin:0 auto -13px;position:relative;left:-9px}.hero-sprite .knight-assembly{width:133px;height:133px}.hero-info{display:flex;flex-direction:column;width:115px;border:1px solid #b6ba90;border-radius:4px;background:#234843ee;color:#e7ebce;font-size:8px;padding:4px;line-height:1.6}.hero-info strong{font-size:10px}.fighter-shadow{filter:none;background:#091c2355;bottom:29px;width:55px;height:10px}.hero-unit .fighter-shadow{bottom:38px}.combat-unit.acting,.hero-unit.acting{filter:drop-shadow(0 0 6px #e2e5a280)}.battle-readout{left:12px;right:12px;bottom:29px;min-height:53px;padding:7px 10px;background:#1d3031ed;border:1px solid #839479;border-radius:5px;box-shadow:0 2px #142124;color:#f0ecd0}.readout-label{font-size:9px;color:#c6d09c;letter-spacing:0}.battle-readout strong{white-space:normal;line-height:1.45;font-size:12px;overflow:visible}.battle-readout small{font-size:10px;color:#acbaac}.turn-track{left:12px;right:12px;bottom:7px;gap:4px}.turn-chip{font-size:8px;background:#243b3c;border:1px solid #5e776c;color:#bdcbb4}.turn-chip.current{background:#c3a465;color:#203032;border-color:#f1d28e}.battle-result-banner{top:44px;padding:6px 19px;font-size:15px;letter-spacing:2px;background:#57794f;border:2px solid #e8ce83;border-radius:5px;box-shadow:0 3px #253c2c}.battle-result-banner.lost{background:#885957}.battle-console{position:relative;flex:none;padding:13px 17px 10px;background:var(--paper);border-top:3px solid #b9aa82;box-shadow:inset 0 2px #fff8}.battle-control-head .scene-kicker{font-size:9px;color:#927f56}.battle-control-head h2{font-size:17px}.battle-control-head p{font-size:11px;color:#8b7d60;margin:3px 0 9px}.battle-actions{margin:9px 0!important}.battle-actions button{font-size:12px;min-height:41px;padding:7px}.battle-actions .secondary{background:#c2cf9f;border-color:#76865e;box-shadow:0 3px #788657}.equipped-skills{display:flex;align-items:center;gap:6px;margin-top:11px}.equipped-skills>span{width:31px;height:31px;background:#d4c9a8;border:1px solid #a29775;border-radius:4px}.equipped-skills .pixel-icon{width:28px;height:28px}.speed-button{margin-left:auto;min-width:40px;padding:3px 6px;font-size:12px;height:32px;background:#d8d1b8;border:1px solid #9e997e;box-shadow:0 2px #a69d7c}.equipped-skills .text-button{margin-left:6px;font-size:10px}.battle-events{display:none}.unit-status span{background:#263930;border-color:#819876;color:#e3e9b9}.combat-impact-fx b{font-size:14px;box-shadow:0 2px #0b1b21;background:#653831;border-color:#e1bd80}.combat-link line{stroke-width:2px}.combat-unit.fallen{opacity:.25}.hero-unit.swinging .hero-sprite,.hero-unit.striking .hero-sprite{animation:none}.hero-unit.swinging .knight-body{animation:none;background-position:0 100%}.hero-unit.striking .knight-body{animation:none;background-position:33.3333% 100%}.hero-unit.receiving .knight-body{animation:none;background-position:66.6667% 100%}.hero-unit.swinging .knight-weapon{animation:weapon-swing .35s ease-in-out}.hero-unit.striking .knight-weapon{transform:rotate(35deg)}
.has-choice .adventure-scene{height:85px;min-height:85px}.has-choice .chapter-track,.has-choice .exploration-progress{display:none}.has-choice .chapter-heading h1{font-size:21px}.has-choice .chapter-heading{top:12px}.has-choice .adventure-panel>h2{font-size:18px}.choice-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.choice-card{display:flex;flex-direction:column;align-items:center;padding:11px 8px;gap:9px;text-align:center;min-height:275px}.choice-copy{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center}.choice-copy strong{font-size:12px;line-height:1.5;word-break:keep-all;margin:5px 0}.choice-copy p{font-size:10px;word-break:keep-all;line-height:1.65}.choice-role{font-size:9px}.choice-pick{width:100%;font-size:11px;padding:8px 3px;margin-top:auto}.choice-related{font-size:9px;margin-top:5px}.choice-details summary{font-size:9px}.build-peek summary span{font-size:9px}
@keyframes knight-breathe{0%,100%{background-position:0 0}50%{background-position:33.3333% 0}}@keyframes weapon-swing{0%{transform:rotate(-45deg)}100%{transform:rotate(50deg) translate(12px,-3px)}}
@media(min-width:600px){body{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,#2b413e,#111b21 70%)}#app{box-shadow:0 0 0 9px #101b20,0 25px 100px #0009}.game-screen{height:min(940px,100dvh)}.adventure-scene{height:390px}.chapter-heading h1{font-size:28px}.scene-hero .knight-assembly{width:188px;height:188px}.adventure-panel{padding:21px 23px}.route-card{min-height:70px}}
@media(max-height:740px){.resource-header{height:65px}.bottom-nav .nav-item{height:67px}.adventure-scene{height:265px}.scene-hero .knight-assembly{width:130px;height:130px}.scene-hero{bottom:32px}.scene-shortcuts{top:104px;gap:8px}.scene-shortcut{height:51px}.chapter-heading h1{font-size:22px}.battle-field{inset:42px 6px 96px}.unit-figure{width:72px;height:72px}.hero-sprite,.hero-sprite .knight-assembly{width:113px;height:113px}.hero-sprite{left:0}.battle-console{padding:9px 14px}.battle-control-head p{display:none}.battle-console .equipped-skills{margin-top:8px}.battle-result-banner{top:37px}.modal-backdrop{padding:13px}}
@media(max-width:360px){body{font-size:13px}.resource-header{padding-left:10px;padding-right:10px;gap:8px}.resource-wallet{gap:9px}.equipment-stage{padding:18px}.gear-slot{width:59px;height:59px}.adventure-panel{padding:15px}.stat-grid{padding:10px 3px}.stat-grid>div{padding:0 4px}.stat-grid b{font-size:16px}.choice-card{padding:10px;gap:8px}.relic-grid{gap:6px}.relic-tile b{font-size:9px}.modal-body{padding:12px}.unit-plate{width:72px}.combat-unit{width:78px}.combat-unit strong{font-size:8px}}
.has-choice .adventure-scene{background-size:300% auto;background-position:var(--floor-x) 15%}.combat-unit{width:80px}.unit-plate{width:80px}.unit-figure{width:76px;height:76px}.hero-info{width:105px}.hero-unit{width:105px}.hero-sprite{left:-14px}.unit-plate strong{overflow:hidden;text-overflow:ellipsis}.battle-heading{pointer-events:none}.knight-assembly.pose-walk .knight-body{animation:knight-walk .5s steps(1) infinite}@keyframes knight-walk{0%,100%{background-position:66.6667% 0}50%{background-position:100% 0}}
@media(max-width:360px){.combat-unit{width:65px}.unit-plate{width:65px}.unit-figure{width:64px;height:64px}.unit-plate strong{font-size:8px}.hero-info{width:91px;font-size:7px}.hero-unit{width:91px}.hero-sprite{left:-11px;width:113px;height:113px}.hero-sprite .knight-assembly{width:113px;height:113px}}
@media(max-height:740px){.unit-figure{width:62px;height:62px}.hero-sprite{width:103px;height:103px;left:1px}.hero-sprite .knight-assembly{width:103px;height:103px}.unit-plate{padding:2px}.unit-plate small{font-size:7px}}
.loading-art{width:100%;max-width:480px;image-rendering:pixelated}.loading-screen{padding:20px;background:#14262b}.game-screen:has(.modal-backdrop)>.view-body{overflow:hidden}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
