:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);color-scheme:dark;font-family:system-ui,sans-serif;color:#f7edd7;background:#171b1c}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button,select{font:inherit;font-size:14px;min-width:44px;min-height:44px;color:inherit;border:1px solid #78725d;border-radius:8px;background:#303c3d;padding:6px 12px;touch-action:manipulation}button{cursor:pointer}button:focus-visible,select:focus-visible{outline:3px solid #ffe08b;outline-offset:-3px}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true],button.selected{border-color:#ffe08b;background:#56604a}[hidden]{display:none!important}#mobile-app{height:100vh;height:100dvh;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);display:flex;flex-direction:column;background:#20292a;position:relative}.hud{display:flex;align-items:center;gap:12px;min-height:52px;padding:4px 12px;flex-shrink:0}.hud h1{font-size:16px;margin:0;white-space:nowrap}.hud-stats{margin-left:auto;font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}#field{position:relative;flex:1;min-height:0;background:#b89b5e;overflow:hidden}#game{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}#game canvas{display:block}.field-labels{position:absolute;inset:4px 10px auto;display:flex;justify-content:space-between;font-size:14px;pointer-events:none;color:#171b1c;font-weight:700}.field-labels span{padding:2px 8px;background:#f0e3c4dd;border-radius:4px}.field-labels span:first-child{border-left:4px solid #24629a}.field-labels span:last-child{border-right:4px solid #a13732}.action-panel{flex-shrink:0;padding:4px 12px 8px}.action-status{min-height:24px;font-size:14px;line-height:20px;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.skill-button{min-height:68px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.skill-button strong{font-size:16px;font-weight:600;white-space:nowrap}.skill-button span{font-size:14px;white-space:nowrap}.skill-button.unavailable{color:#c6c8bd;background:#283132}.target-row{display:grid;grid-template-columns:76px repeat(3,minmax(0,1fr)) 76px;gap:8px;min-height:68px;align-items:center}.target-row button{min-height:60px;padding:4px}.target-row .target{font-size:14px}.target-page{display:flex;gap:8px;align-items:center}.target-page button{min-height:44px}.overlay{position:absolute;inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);z-index:20;display:grid;place-items:center;padding:12px;background:#131919dd}.dialog{width:min(440px,100%);max-height:100%;padding:20px;border:1px solid #9a8d67;border-radius:12px;background:#253031;text-align:center}.dialog h2{font-size:28px;margin:0 0 12px;color:#ffe08b}.dialog p{margin:8px 0 16px;font-size:16px}.dialog-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.settings-grid{display:flex;gap:8px;align-items:center;justify-content:center;margin:12px 0}.settings-grid label{font-size:14px}#rotate{z-index:50}.preview-shell{height:100dvh;display:flex;flex-direction:column;padding:12px;gap:8px}.preview-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}.preview-tools h1{font-size:18px;margin:0 12px 0 0}.preview-hint{text-align:center;margin:0;font-size:14px;color:#c1c7bc}.preview-stage{flex:1;min-height:0;position:relative;overflow:hidden}.preview-frame{position:absolute;top:50%;left:50%;transform-origin:center;border:0;background:#20292a;box-shadow:0 0 0 3px #8d927e;border-radius:4px}@media (orientation: portrait){#rotate:not([hidden]){display:grid}}:root{--gold: #dbc08a;--muted: #b6b6a8;--ink: #121c1e}#lobby{position:absolute;inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);display:flex;flex-direction:column;background:linear-gradient(90deg,#0a171ddd,#0d181b88,#12191911),url(/backgrounds/campaign_landscape.png) center/cover}#battle-screen{flex:1;min-height:0;display:flex;flex-direction:column}.lobby-header{height:56px;padding:6px 20px;display:flex;align-items:center;gap:10px;background:linear-gradient(#0b171bb8,transparent);flex-shrink:0}.brand-mark{color:#f1d9b4;background:#913d32;width:30px;height:32px;display:grid;place-items:center;border:1px solid #c08260;font-family:serif;font-size:20px}.brand-name{font-family:Songti TC,"Noto Serif TC",serif;font-weight:600;font-size:18px;letter-spacing:2px}.lobby-wallet{margin-left:auto;color:var(--gold);font-size:14px;font-variant-numeric:tabular-nums}#lobby button{border-radius:3px;background:#132328c9;border-color:#a798705e;color:#ede3cf}#lobby button:hover{border-color:var(--gold)}.home-content{flex:1;min-height:0;padding:6px 36px 14px;display:flex;align-items:center;justify-content:space-between;gap:24px}.home-story{min-width:270px}.eyebrow{font-size:14px;letter-spacing:3px;color:var(--gold);margin:0 0 10px}.home-story h1{font-family:Songti TC,"Noto Serif TC",serif;font-size:clamp(38px,6.1vh,62px);line-height:1.12;font-weight:600;letter-spacing:10px;margin:0;color:#f4ecda;text-shadow:0 2px 20px #0007}.home-story h1 span{color:#dfc691}.home-subtitle{font-size:14px;color:#cecbbc;margin:12px 0 16px;letter-spacing:1px}#lobby .gold-button,.gold-button{background:linear-gradient(110deg,#d7bd85,#ad8950);border:1px solid #ead3a0;color:#1a2424;font-weight:700}.home-start{min-width:200px;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:8px 20px;font-size:18px}.chapter-card{width:260px;padding:20px;border-top:1px solid #dcc89780;border-bottom:1px solid #dcc89766;background:linear-gradient(100deg,#122327df,#172326ae);backdrop-filter:blur(5px);flex-shrink:0}.chapter-card h2{font-family:Songti TC,serif;margin:0 0 8px;font-size:26px;letter-spacing:4px}.chapter-card>p:not(.eyebrow){margin:0;font-size:14px;color:#d1cbbd}.chapter-nodes{display:flex;justify-content:space-between;margin:20px 0 16px;position:relative}.chapter-nodes:before{content:"";height:1px;position:absolute;top:12px;left:0;right:0;background:#99835d70}.chapter-nodes span{position:relative;background:#263232;border:1px solid #72745f;width:25px;height:25px;display:grid;place-items:center;font-size:14px;color:#a9ae9e}.chapter-nodes span.current{background:#a98a52;color:#101d20;border-color:#ead19c}.chapter-nodes span.done{color:#f4d692;border-color:#caae77}.chapter-progress{display:flex;justify-content:space-between;font-size:14px;color:#d9c9a5;gap:8px}.lobby-footer{min-height:58px;padding:6px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#0d191dd9;border-top:1px solid #bb9f6933;flex-shrink:0}.lobby-footer nav{display:flex;gap:12px}.lobby-footer nav button{min-width:100px;letter-spacing:2px}#lobby .nav-active{color:var(--gold);border-color:#b99b65;background:#263332}.lobby-footer small{font-size:12px;color:#a4a89b}@media (max-height: 360px){.lobby-header{height:48px}.lobby-footer{min-height:52px}.home-content{padding:0 24px 6px}.home-subtitle{margin:8px 0}.eyebrow{margin-bottom:6px}.chapter-card{padding:12px 16px}.chapter-nodes{margin:12px 0}}.lobby-notice{flex-shrink:0;min-height:0;margin:0;background:#142329ed;color:#f0d79b;font-size:14px;z-index:2}.lobby-notice:empty{display:none}.lobby-notice:not(:empty){padding:6px 12px}.page-content{flex:1;min-height:0;padding:0 20px 10px;display:flex;flex-direction:column;gap:10px;background:#0a191b70}.page-heading{display:flex;justify-content:space-between;align-items:center;min-height:48px;flex-shrink:0;gap:12px}.page-heading h1{font-family:Songti TC,serif;color:#f1dfb9;font-size:22px;letter-spacing:3px;margin:0 0 4px}.page-heading p{margin:0;font-size:14px;color:#ccc8b9}.stage-grid,.formation-grid,.guide-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}#lobby .stage-card{padding:12px;text-align:left;display:flex;flex-direction:column;gap:8px;background:linear-gradient(145deg,#1b3033ef,#101f25ed);min-width:0}#lobby .stage-card.selected{border-color:#efd098;background:linear-gradient(145deg,#3b4438ef,#14292ced);box-shadow:inset 0 2px #c9ab72}.stage-card strong{font-family:Songti TC,serif;font-size:22px;letter-spacing:2px;color:#e5d2a7}.stage-index{display:flex;justify-content:space-between;font-size:14px;color:#bbb7a6;gap:4px}.stage-index>span{color:#d6b57c}.stage-description{font-size:14px;line-height:1.5;color:#d2d2c4}.stage-meta{display:flex;justify-content:space-between;gap:4px;margin-top:auto;font-size:14px}.stage-reward{font-size:14px;color:#c2b491}.stars{color:#efd095;white-space:nowrap;font-size:16px;letter-spacing:2px}.stars>span{color:#7d8b82}.page-controls{display:flex;align-items:center;gap:12px;font-size:14px}.formation-card,.guide-card{padding:12px;background:#11272bec;border:1px solid #ac9a684f;display:flex;flex-direction:column;min-width:0}.formation-title{display:flex;gap:10px;align-items:center}.formation-card h2,.guide-card h2{font-size:18px;margin:0 0 4px;color:#e9d8b6}.formation-card p,.guide-card p{font-size:14px;line-height:1.5;margin:6px 0;color:#c3c9ba}.unit-icon{display:inline-flex;width:44px;height:44px;color:#d6bc80;flex-shrink:0}.unit-icon svg{width:100%;height:100%}.unit-options{display:flex;gap:4px;margin-top:auto}.unit-options button{flex:1;padding:4px;min-width:44px}#lobby button[aria-pressed=true]{border-color:#ddbd80;background:#405145}.guide-card{justify-content:center}.guide-card .unit-icon{margin-bottom:6px}.upgrade-card button{margin-top:auto}.settings-card{background:#13262aea;padding:16px;max-width:560px;display:flex;align-items:center;flex-wrap:wrap;gap:12px;border:1px solid #a9986b60;font-size:14px}.settings-card p{flex-basis:100%;margin:0;line-height:1.6}@media (max-height: 370px){.page-content{gap:4px;padding-bottom:6px}.page-heading{min-height:44px}.page-heading h1{font-size:20px}.page-heading p{line-height:1.3}.stage-card strong{font-size:18px}#lobby .stage-card{padding:8px;gap:4px}.formation-card,.guide-card{padding:8px}.guide-card .unit-icon{width:32px;height:32px}}#mobile-app{background:#102024}#field{background:radial-gradient(ellipse at center,#64715b,#3e5149);border-top:1px solid #99845766;border-bottom:1px solid #99845766}.hud{background:linear-gradient(110deg,#10252a,#1b3031);border-bottom:1px solid #bea67744}.hud h1{color:#ecd5a5;font-family:Songti TC,serif;letter-spacing:1px}.field-labels span{background:#172d2cdd;color:#e8e0c9;border:1px solid #9b946655}.action-panel{background:linear-gradient(#1d3335,#101f23)}.action-status{color:#d0c9ac}.skill-button{position:relative;background:linear-gradient(140deg,#2d4647,#1a3035);border-color:#ab95605e;border-radius:4px;padding-left:34px}.skill-button i{position:absolute;left:7px;top:17px;width:30px;height:30px;color:#dec38a}.skill-button svg{width:100%;height:100%}.skill-button strong{font-size:15px}.skill-button.unavailable{background:#1a3032;color:#a7b0a5}.skill-button.unavailable i{color:#8d967f}#settings .dialog,#result .dialog,#tutorial .dialog{background:linear-gradient(145deg,#1d3638,#102127);border-color:#b29b69;border-radius:4px}#result .dialog{width:min(620px,100%)}#result .dialog h2{margin-bottom:4px}#result .dialog p{margin:8px 0;font-size:14px}#result-stars{color:#eac88b;font-size:30px;letter-spacing:8px;line-height:1.2}#result-stars>span{color:#697b70}#result-reward{color:#ebcc8e}#result-save{color:#b4bdaa}#result .dialog-actions{margin-top:16px}.tutorial-dialog{width:min(580px,100%)}.tutorial-dialog h2{font-size:24px}.tutorial-dialog p{font-size:16px;line-height:1.6}.tutorial-dialog .unit-icon{margin:0 auto 8px}.tutorial-dialog .dialog-actions{align-items:center;font-size:14px}@media (max-width: 760px){.skill-button{padding-left:4px}.skill-button i{display:none}}.footer-note{font-size:14px;color:#c6c5b3}#loading{z-index:40;background:#102025}#loading .dialog{background:none;border:0}#loading h2{font-family:Songti TC,serif;letter-spacing:4px}#loading-progress{display:block;width:100%;height:8px;margin:20px 0;accent-color:#d4b87e}
