*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#102d30;color:#fff4d6;font-family:'Microsoft YaHei',sans-serif}canvas{position:fixed;inset:0;width:100%;height:100%}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #b9ba8d70;background:#153f40e8;color:#fff4d6;padding:10px 16px;border-radius:12px;font:inherit}button:hover,button.selected{border-color:#ffe3a2;background:#4e6859}button:disabled{opacity:.5;cursor:default}a{color:#f3d9a2}header{position:absolute;top:0;left:0;right:0;padding:15px 24px;display:flex;gap:14px;align-items:center;background:linear-gradient(#0c282bea,transparent);z-index:2}header b{flex:1;letter-spacing:3px}header small{font-weight:400;letter-spacing:0;margin-left:15px;font-size:12px}#panel,#modal{position:absolute;inset:85px auto auto 50%;transform:translateX(-50%);width:min(800px,94vw);max-height:calc(100dvh - 100px);overflow:auto;background:#102f32ed;border:1px solid #d8c99770;border-radius:22px;padding:28px;text-align:center;box-shadow:0 25px 90px #0008;backdrop-filter:blur(12px)}h1{font-family:serif;font-size:46px;letter-spacing:12px;margin:12px}p{line-height:1.7}.eyebrow{color:#b6cfbe;letter-spacing:5px;font-size:10px}.intro{color:#dae3cd;margin:10px}#roles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.role{padding:0 8px 9px;position:relative}.portrait{height:125px;background-image:url('/versions/1.0.14/play/assets/release-actors.png');background-size:200% 200%;display:block;margin-bottom:6px}.role small{display:block;font-size:11px;opacity:.8;margin:4px}#levels{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}#levels button{font-size:12px;padding:9px}#story{min-height:45px;font-size:13px;color:#d7e0cf}.primary{background:#e4c98a;color:#173a38;font-weight:bold;padding:12px 50px}.hint{font-size:12px;color:#bed1c5}#panel>small:last-child{font-size:10px;color:#9fb7ab}#hud{position:absolute;top:75px;left:25px;right:25px;display:flex;justify-content:space-between;gap:12px;pointer-events:none;text-shadow:0 2px 5px #000}#hud p{margin:7px 0;font-size:14px}progress{display:block;width:180px;height:12px;accent-color:#b7e9c8;margin:8px 0}#controls{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:25px;right:25px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}#stick{width:120px;height:120px;border:2px solid #f3e9c86b;border-radius:50%;background:#153e4166;touch-action:none;pointer-events:auto;display:grid;place-items:center}#stick i{width:48px;height:48px;border-radius:50%;background:#e5edd39c;pointer-events:none}.actions{display:flex;gap:14px;pointer-events:auto}.actions button{width:84px;height:84px;border-radius:50%;touch-action:none;background:#164b4bce}#modal{top:30%;max-width:600px}#modal button{margin:6px}body [hidden]{display:none!important}@media(max-width:600px){header{padding:10px;gap:8px}header small{display:none}header a,header button{font-size:11px;padding:8px}header b{font-size:14px;letter-spacing:1px}#panel{top:58px;padding:18px 12px;max-height:calc(100dvh - 65px)}h1{font-size:30px}.intro{font-size:12px}.portrait{height:95px}.role{font-size:13px;padding:0 2px 6px}.role small{font-size:9px}#roles{gap:5px;margin:12px 0}#hud{top:62px;left:12px;right:12px}#hud b{font-size:14px}#hud p{max-width:190px;font-size:12px}progress{width:110px}#controls{left:18px;right:18px}#stick{width:100px;height:100px}.actions button{width:65px;height:65px;font-size:12px}}
#growth{display:block;margin:8px auto;color:#ffe4a6;font-size:13px}.growth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.growth-grid article{background:#234947;border:1px solid #c6b87b60;border-radius:12px;padding:12px}.growth-grid h3{margin:10px 0}.growth-grid p,.growth-note{font-size:12px;color:#ccddcb}.growth-grid small{color:#e0c799}#save-notice{font-size:12px;color:#f0c788}@media(max-width:600px){.growth-grid{grid-template-columns:1fr}.growth-grid article{padding:8px}.growth-grid h3,.growth-grid p{margin:5px}#modal{top:12%;max-height:80dvh}}
.chapter-bar{display:flex;justify-content:center;gap:20px;align-items:center;margin:14px 0;flex-wrap:wrap;font-size:12px;color:#d2decc}.chapter-bar select{background:#204a49;color:#ffebbf;border:1px solid #8ea88b;padding:8px;border-radius:8px}.chapter-bar input{accent-color:#d4bf85}.chapter-bar label{display:flex;align-items:center;gap:8px}
#hud>div{padding:10px 14px;border-radius:12px;background:#102f32b8;border:1px solid #b1c4a94d}#hud p{margin-bottom:0}@media(max-width:600px){#hud>div{padding:8px}#hud{gap:6px}}
#world{outline:none;touch-action:none}#controls{z-index:3;user-select:none;-webkit-user-select:none}#modal{z-index:5}#panel{z-index:4}#ready{position:absolute;z-index:2;top:44%;left:50%;transform:translate(-50%,-50%);background:#123b3ce8;padding:18px 25px;border:1px solid #e3cf99;border-radius:16px;text-align:center;pointer-events:none;max-width:90vw;width:340px}#ready b,#ready span{display:block}#ready span{font-size:12px;line-height:1.8;margin-top:8px;color:#d4dfcb}.stick-group{display:flex;flex-direction:column;align-items:center;gap:6px}.stick-group small{color:#fff2cb;font-size:11px;text-shadow:0 1px 3px #000}.debug-label{display:block;margin-top:14px;font-size:11px;color:#bed1c5}.debug-label input{accent-color:#d9ca91}#position{display:block;font-size:10px;color:#f1dfaa;max-width:260px;margin-top:6px}
#play-build{font-size:10px;color:#d6d9b6;display:block;margin-top:6px}
.survival-start{display:block;margin:12px auto 0;background:#375d4d;color:#ffe8b2;border-color:#c5c68c}.upgrade-growth{padding:12px;border-radius:12px;background:#45604f80;color:#ffe8b2;font-size:13px;line-height:1.8}
/* Suppress accidental double-tap zoom while retaining menu scrolling. */
html,body{touch-action:manipulation;overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a,label,summary{touch-action:manipulation}
#world,#controls,#stick,.actions,.actions button{touch-action:none}
#panel,#modal{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
@media(pointer:coarse),(max-width:600px){select,input,textarea,.chapter-bar select{font-size:16px}}
/* Lobby: quiet jade, warm gold and a clear play-first hierarchy. */
#panel.lobby{width:min(1000px,94vw);padding:28px 36px 16px;border-radius:24px;background:linear-gradient(135deg,#123c3eee,#0d262ef2);border-color:#b7c8a35c;box-shadow:0 24px 100px #001b22b0}
.lobby-title{padding:0 0 22px}.lobby-title .eyebrow{letter-spacing:8px;color:#b3ccbe;font-size:11px}.lobby-title h1{font-family:'STKaiti','KaiTi',serif;font-size:48px;font-weight:500;letter-spacing:14px;margin:7px 0 6px;color:#ffe9b9}.lobby-title .intro{font-size:12px;letter-spacing:3px;margin:0;color:#b6ccbf}
.lobby-content{display:grid;grid-template-columns:1.65fr 1fr;gap:32px;align-items:center}.section-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#c1d5c7}.section-label #role-tag{font-size:11px;color:#cfbd89}#roles{margin:12px 0 6px;gap:8px}.lobby .role{padding:0 3px 10px;border:1px solid #9bb9a337;background:linear-gradient(#4e75611a,#66816a24);border-radius:16px;transition:transform .18s,border-color .18s,background .18s}.lobby .role.selected{border-color:#e7d49b;background:linear-gradient(#92bca640,#b7a57426);box-shadow:inset 0 -3px #dfcd91,0 6px 22px #041e2545;transform:translateY(-3px)}.lobby .portrait{height:145px;margin-bottom:3px}.lobby .role b{font-size:15px}.lobby .role small{display:flex;align-items:center;justify-content:center;gap:4px;font-size:11px;color:#c0d2c1;margin:5px 0 0}.role svg{width:14px;height:14px}
#panel #growth{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:9px 2px;margin:0;color:#c5d8c8;font-size:12px}#growth svg{width:20px;height:20px;color:#deca95}#growth small{margin-left:auto;color:#dfca96;font-size:11px}
.journey{padding-left:26px;border-left:1px solid #b1c8a92d}.journey .chapter-bar{margin:0 0 14px;display:block;text-align:left}.chapter-bar label{display:block;color:#b9cbbd;font-size:11px}.chapter-bar select{display:block;width:100%;margin-top:7px;padding:10px 12px;border-radius:10px;border:1px solid #9ab79566;background:#0d3035;color:#f4e5c3;font-size:16px}
#levels{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}#levels button{padding:9px 0 5px;border-radius:10px;background:#50725a18;font-size:15px;border-color:#adc2a63d;color:#c2d4c4}#levels button small{display:block;font-size:9px;height:13px;opacity:.7}#levels button.selected{background:#c5b47b27;border-color:#dac78f;color:#ffe8b4}#levels button:disabled{opacity:.35}#stage-caption{margin:12px 0 5px;text-align:left;font-size:15px;color:#f1e4c7}
.story-detail{text-align:left;font-size:11px;color:#a7c0b1;margin:0 0 16px}.story-detail summary{cursor:pointer}.story-detail #story{font-size:12px;min-height:0;margin:8px 0 0;color:#bbcebf}
#panel #start{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:47px;padding:11px 18px;border:1px solid #ead69e;border-radius:12px;background:linear-gradient(120deg,#efd8a0,#cfb278);box-shadow:0 5px 20px #001e254d;color:#173f3c;font-size:16px}#start svg{width:24px;height:24px}#panel #survival{width:100%;background:transparent;border-color:#93b69b55;color:#c4d9c5;font-size:12px;margin:8px 0 0;min-height:36px;padding:8px}.lobby #mode-note{font-size:10px;color:#d6c38f;margin:7px 0 0}
.lobby-options{margin-top:18px;border-top:1px solid #adc4a62b;padding-top:11px;color:#9cb7aa;font-size:11px}.lobby-options summary{cursor:pointer;list-style:none}.lobby-options summary::after{content:' ＋';color:#cfbd91}.lobby-options[open] summary::after{content:' −'}.lobby-options-body{display:grid;gap:10px;padding:15px 5px;text-align:left}.lobby-options-body label{display:flex;align-items:center;gap:8px;font-size:12px}.lobby-options-body .hint{margin:0}.lobby-options-body a{font-size:11px}.lobby-options-body #play-build{margin:0;font-size:10px;color:#88a495}.lobby-foot{padding-top:10px;text-align:center;color:#829f92;font-size:10px;letter-spacing:1px}.lobby-foot span{margin:0 6px}
#modal.upgrade-modal{top:16%;width:min(850px,94vw);max-width:850px;padding:26px 30px;background:linear-gradient(135deg,#153f41f5,#102832fa);border-radius:24px}.modal-kicker{color:#acbfa9;font-size:11px;letter-spacing:3px}#modal h2{font-family:'KaiTi',serif;font-weight:500;font-size:30px;letter-spacing:5px;margin:10px 0 22px}.upgrade-options{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.upgrade-options .upgrade-card{display:flex;align-items:center;flex-direction:column;margin:0;padding:22px 12px 14px;min-width:0;border-radius:18px;border:1px solid #b9d0b647;background:linear-gradient(#70987c25,#3e615629);transition:transform .15s,border-color .15s}.upgrade-card:hover,.upgrade-card:focus-visible{transform:translateY(-4px);border-color:#e6d6a0;box-shadow:0 8px 25px #001a235e}.ability-icon{width:62px;height:62px;display:grid;place-items:center;border-radius:18px;border:1px solid #cdd9aa55;background:#87b79721;color:#b5e5c2}.ability-icon svg{width:34px;height:34px}.rose .ability-icon{color:#efb8c8;border-color:#dbadbf55;background:#c78fa01d}.sky .ability-icon{color:#b2deed;border-color:#aad2e155;background:#7facbe1f}.upgrade-card>b{font-size:17px;font-weight:500;margin:15px 0 8px;color:#f4e8cd}.upgrade-card>strong{font-family:Georgia,serif;font-size:34px;font-weight:400;color:#e7d29c;line-height:1.2}.upgrade-card>small{font-size:11px;color:#abc5b2;margin:9px 0 18px;line-height:1.6}.pick-label{display:flex;align-items:center;gap:10px;font-size:10px;border-top:1px solid #b2c8a72d;padding-top:12px;width:100%;justify-content:center;color:#cbd7bd}.pick-label svg{width:16px;height:16px}.upgrade-shared{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;color:#c6bc90;font-size:11px;line-height:1.7}.upgrade-shared>svg{width:18px;height:18px;flex:none}.upgrade-shared i{font-style:normal;margin:0 5px;color:#688b79}
@media(max-width:650px){#panel.lobby{top:58px;padding:19px 15px 12px;max-height:calc(100dvh - 68px);border-radius:20px}.lobby-title{padding-bottom:17px}.lobby-title h1{font-size:36px;letter-spacing:9px}.lobby-title .eyebrow{font-size:10px;letter-spacing:6px}.lobby-title .intro{font-size:11px;letter-spacing:2px}.lobby-content{grid-template-columns:1fr;gap:15px}.lobby .portrait{height:93px}.lobby .role{border-radius:12px;padding-bottom:8px}.lobby .role b{font-size:14px}.lobby .role small{font-size:10px}.journey{padding:15px 0 0;border-left:0;border-top:1px solid #adc5ab29}.journey .chapter-bar{margin-bottom:12px}.chapter-bar label{font-size:10px}.chapter-bar select{margin-top:5px;padding:8px 10px}#levels button{padding:7px 0 4px}#stage-caption{margin:9px 0 4px;font-size:14px}.story-detail{margin-bottom:12px}#panel #start{min-height:44px}.lobby-options{margin-top:14px;padding-top:10px}.lobby-foot{font-size:9px;padding-top:8px}
#modal.upgrade-modal{top:12%;padding:20px 15px;max-height:80dvh}#modal h2{font-size:26px;margin:8px 0 17px}.upgrade-options{grid-template-columns:1fr;gap:9px}.upgrade-options .upgrade-card{display:grid;grid-template-columns:50px 1fr 70px;grid-template-rows:auto auto;column-gap:12px;text-align:left;padding:12px;min-height:92px}.ability-icon{width:48px;height:48px;border-radius:14px;grid-row:1/3}.ability-icon svg{width:28px;height:28px}.upgrade-card>b{margin:1px 0 4px;font-size:16px;grid-column:2;grid-row:1}.upgrade-card>strong{font-size:26px;grid-column:3;grid-row:1/3;text-align:right}.upgrade-card>small{margin:0;font-size:10px;grid-column:2;grid-row:2}.pick-label{display:none}.upgrade-shared{font-size:10px;text-align:left;align-items:flex-start}.upgrade-shared i{margin:0 3px}}
#modal.growth-modal{max-width:800px;width:min(800px,94vw);top:18%;background:linear-gradient(135deg,#163e3ff5,#102a32fa);border-radius:24px}.growth-modal .growth-grid article{padding:18px 12px;background:#7a9d7e15;border-color:#abc4a640;border-radius:16px}.growth-modal .ability-icon{margin:0 auto 12px}.growth-modal .growth-grid article>small{font-size:10px;color:#9db7a2}.growth-modal h3{font-size:18px;font-weight:500;color:#f3e5c7}.growth-modal .growth-grid p{font-size:11px;min-height:35px}.growth-modal .growth-grid button{font-size:12px;padding:8px 12px}.growth-modal .growth-note{font-size:10px}.growth-modal #close-growth{font-size:12px;border-color:#8daa9550;background:transparent;padding:8px 28px}@media(max-width:650px){#modal.growth-modal{top:12%;padding:20px 15px;max-height:80dvh}.growth-modal .growth-grid{grid-template-columns:1fr;gap:9px}.growth-modal .growth-grid article{display:grid;grid-template-columns:48px 1fr auto;gap:3px 12px;text-align:left;padding:12px}.growth-modal .ability-icon{grid-row:1/4;margin:0}.growth-modal .growth-grid article>small,.growth-modal h3,.growth-modal .growth-grid p{grid-column:2;margin:0;min-height:0}.growth-modal h3{font-size:16px}.growth-modal .growth-grid button{grid-column:3;grid-row:1/4;align-self:center;margin:0!important;font-size:11px}}
/* Battle controls and end-of-run surfaces share the lobby's visual language. */
.actions button{--cooldown:0deg;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:7px;border:0;background:conic-gradient(#648c7b var(--cooldown),#d7d6a5 var(--cooldown));box-shadow:0 6px 20px #001e2455;overflow:hidden}.actions button::before{content:'';position:absolute;z-index:-1;inset:3px;border-radius:50%;background:#153b3f}.actions .action-symbol{display:block;height:27px;color:#cae7d1;pointer-events:none}.action-symbol svg{width:27px;height:27px}.action-name{font-size:11px;line-height:1.3;color:#f2e9cc;pointer-events:none}.action-timer{font-size:10px;line-height:1.2;color:#93b1a3;pointer-events:none}.actions .is-ready{box-shadow:0 0 16px #acd9a825,0 6px 20px #001e2455}.actions .is-ready .action-timer{color:#e6d8a6}.actions button:disabled{opacity:.9}.actions .is-silenced{background:conic-gradient(#79618c var(--cooldown),#b2a0c4 var(--cooldown))}.actions .is-silenced .action-symbol{color:#c3add4}
#hud>div{background:linear-gradient(130deg,#163b3de8,#102b34cf);border-color:#a3c0a63b;border-radius:14px}#hud progress{height:8px;border-radius:10px;overflow:hidden}#timer{font-size:11px;color:#b7cbb9}#health{font-size:13px}
#modal.pause-modal,#modal.result-modal{top:16%;width:min(470px,94vw);max-width:470px;padding:26px 32px;background:linear-gradient(135deg,#183f40f7,#102b34fa);border-radius:24px;border-color:#c5cda563}.modal-emblem{display:grid;place-items:center;width:58px;height:58px;border-radius:20px;margin:0 auto 16px;background:#8fb7991c;border:1px solid #a9c2a443;color:#d9d4a0}.modal-emblem svg{width:30px;height:30px}.modal-kicker{display:block}.pause-modal h2,.result-modal h2{margin-bottom:12px!important}.pause-meta{font-size:12px;color:#acc6b1;margin:0 0 24px}.pause-meta i{font-style:normal;margin:0 10px;color:#678a76}
#modal .modal-primary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:10px 0 0;min-height:46px;border:1px solid #e4d097;background:linear-gradient(120deg,#edd69b,#cfb27b);color:#173e3b;border-radius:12px;font-size:15px}#modal button svg{width:20px;height:20px;flex:none}.modal-secondary{display:flex;gap:10px;margin-top:10px}#modal .modal-secondary button{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;background:transparent;border-color:#9eb79e45;color:#bed1be;font-size:12px;padding:10px 4px;margin:0}.pause-help{font-size:11px;color:#92b09e;margin-top:19px}.pause-help summary{cursor:pointer;list-style:none}.pause-help p{font-size:11px;line-height:1.8;color:#adbfad}
.result-score{padding:8px 0 17px}.result-score>small{display:block;font-size:10px;color:#9bb5a1;letter-spacing:2px}.result-score>strong{display:block;font-family:Georgia,serif;font-weight:400;letter-spacing:1px;font-size:44px;color:#ebd5a0;line-height:1.3}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:16px 0;border-block:1px solid #a4bca22f;margin-bottom:14px}.result-stats span+span{border-left:1px solid #a4bca22f}.result-stats b{display:block;font-family:Georgia,serif;font-size:23px;font-weight:400;color:#d8e5c8}.result-stats small{display:block;font-size:10px;margin-top:4px;color:#96b49f}#modal .modal-quiet{display:inline-flex;align-items:center;gap:7px;background:transparent;border:0;color:#b4c9b8;padding:9px 12px;font-size:12px;margin:8px 0 0}.save-state{display:block;font-size:10px;color:#7fa28e;margin-top:12px}.chapter-ending{font-size:11px;color:#b1c3a9;margin-top:12px}.chapter-ending p{font-size:12px;color:#bccfb9}.modal-emblem.victory{border-color:#d6c58b80;color:#efd395;background:#c8b47519}
@media(max-width:650px){.actions button{padding:5px;gap:1px}.actions .action-symbol{height:22px}.action-symbol svg{width:22px;height:22px}.action-name{font-size:9px}.action-timer{font-size:8px}.actions button::before{inset:2px}#modal.pause-modal,#modal.result-modal{top:13%;padding:23px 22px;max-height:80dvh}.modal-emblem{width:50px;height:50px;margin-bottom:12px}.result-score>strong{font-size:38px}.result-stats{padding:13px 0}.result-stats b{font-size:21px}}
@media(prefers-reduced-motion:reduce){.role,.upgrade-card{transition:none!important}}
#hud progress{-webkit-appearance:none;appearance:none;border:0;background:#234943}#hud progress::-webkit-progress-bar{background:#234943;border-radius:10px}#hud progress::-webkit-progress-value{background:linear-gradient(90deg,#89ba9d,#d2dfab);border-radius:10px}#hud progress::-moz-progress-bar{background:#b9d6a7;border-radius:10px}
@media(max-width:650px){.action-name{font-size:10px}.action-timer{font-size:9px}}
#hud #objective-progress{width:100%;max-width:230px;height:3px;margin:7px 0 6px;opacity:.8}#weapon-info{display:flex;align-items:center;gap:6px;pointer-events:auto;padding:5px 0 0;background:transparent;border:0;color:#ddcca0;font-size:11px}#weapon-info svg{width:17px;height:17px}#weapon-info small{font-size:9px;color:#8da99b;margin-left:5px}.experience-row{margin-top:8px;padding-top:7px;border-top:1px solid #a3bea42b}#experience-label{display:block;font-size:10px;color:#adbed0}#hud #experience{height:4px;margin:5px 0 0;width:100%}#hud #experience::-webkit-progress-value{background:linear-gradient(90deg,#8bbccc,#d0c6e1)}#hud #experience::-moz-progress-bar{background:#b4c4df}
#danger-edge{position:fixed;inset:0;z-index:1;box-shadow:inset 0 0 90px #b44b4055;pointer-events:none}#danger-hint{position:fixed;top:calc(50% + 100px);left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap;padding:7px 12px;border:1px solid #e0a08066;border-radius:20px;color:#f0c0a0;background:#552e2bd9;pointer-events:none;z-index:2}#growth-toast{position:fixed;bottom:175px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:90vw;width:max-content;padding:13px 20px;border:1px solid #d1d79d80;border-radius:16px;background:linear-gradient(120deg,#224e47ed,#193c43f0);box-shadow:0 8px 35px #00191e77;z-index:3;pointer-events:none}#growth-toast>span{color:#dfd399}#growth-toast svg{width:29px;height:29px}#growth-toast b{display:block;font-size:15px;font-weight:500;color:#f5e6bb}#growth-toast small{display:block;margin-top:4px;color:#bad0b6;font-size:11px}
#modal.build-modal{top:13%;width:min(490px,94vw);max-width:490px;padding:24px 30px;background:linear-gradient(135deg,#173f40f7,#102b34fa);border-radius:24px}.build-modal h2{margin:10px 0!important}.build-grade{font-family:Georgia,serif;font-size:48px;color:#e5d09a;line-height:1.2}.build-grade small{font-family:inherit;font-size:13px;margin-left:6px;color:#aabda9}.build-detail{font-size:13px;color:#c2d6bd;margin:9px 0 19px}.build-active{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 0 15px}.build-active>svg{width:28px;height:28px;color:#d4cc98}.build-active b{display:block;color:#e7dbb7;font-size:14px;font-weight:500}.build-active small{display:block;color:#94b09b;font-size:11px;margin-top:5px}@media(max-width:650px){#weapon-info{font-size:10px}#weapon-info small{font-size:8px;margin-left:0}#weapon-info svg{width:15px;height:15px}.experience-row{margin-top:6px;padding-top:6px}#experience-label{font-size:9px}#growth-toast{bottom:155px;padding:10px 15px;gap:10px}#growth-toast b{font-size:13px}#growth-toast small{font-size:10px}#growth-toast svg{width:25px;height:25px}#modal.build-modal{top:10%;padding:20px;max-height:83dvh}.build-grade{font-size:42px}}
.hud-tools{display:flex;align-items:center;justify-content:space-between;gap:10px}#map-toggle{pointer-events:auto;display:flex;align-items:center;gap:5px;border:0;background:transparent;padding:6px 0 0;color:#a6c1b1;font-size:10px}#map-toggle svg{width:15px;height:15px}#map-toggle[aria-expanded=true]{color:#ecd39b}#hud>div{min-width:0}#hud>div:first-child{flex:0 1 240px;max-width:260px}#hud>div:last-child{flex:0 1 210px;max-width:230px}#minimap-wrap{margin-top:9px;padding-top:8px;border-top:1px solid #adc1a72c;pointer-events:none}#mini-map{position:static;inset:auto;display:block;width:100%;height:auto;max-width:220px;border-radius:8px}#map-caption{display:block;color:#c1c4a0;font-size:9px;margin-top:5px;line-height:1.5}
#boss-bar{position:absolute;top:77px;left:50%;transform:translateX(-50%);width:min(410px,45vw);padding:10px 15px;border:1px solid #ce9cab50;background:linear-gradient(125deg,#3d3039e8,#18323be8);border-radius:14px;display:grid;grid-template-columns:1fr auto;gap:5px 10px;pointer-events:none;z-index:2}#boss-name{font-size:12px;font-weight:500;color:#f1c7d4}#boss-percent{font-size:11px;color:#d4aeba}#boss-health{grid-column:1/3;width:100%;height:6px;margin:0;border:0;-webkit-appearance:none;appearance:none;border-radius:6px;overflow:hidden;background:#5f414d}#boss-health::-webkit-progress-bar{background:#5f414d}#boss-health::-webkit-progress-value{background:linear-gradient(90deg,#d68caa,#e1b2be)}#boss-health::-moz-progress-bar{background:#d89cb4}#boss-phase{grid-column:1/3;font-size:10px;color:#bcaeb3}
@media(max-width:650px){#hud>div:first-child{flex:1;max-width:200px}#hud>div:last-child{flex:0 1 144px;max-width:150px}.hud-tools{gap:5px}#map-toggle{font-size:9px;gap:3px}#map-toggle svg{width:13px;height:13px}#weapon-info small{display:none}#map-caption{font-size:8px}#boss-bar{top:226px;width:min(330px,90vw);padding:8px 12px}#boss-name{font-size:11px}#boss-phase{font-size:9px}#boss-percent{font-size:10px}}
#hud{align-items:flex-start}
.campaign-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;color:#a9bea8;font-size:10px}.campaign-status button{padding:5px 0;background:transparent;border:0;color:#d9c899;font-size:11px}.trial-fold{margin-top:13px;color:#9cb59f;font-size:11px}.trial-fold>summary{cursor:pointer;list-style:none;padding:8px}.trial-fold>summary::after{content:' ＋';color:#cbbd8c}.trial-fold[open]>summary::after{content:' −'}#modal.campaign-modal{top:7%;width:min(850px,94vw);max-width:850px;max-height:87dvh;padding:24px}.campaign-note{font-size:11px;color:#b1c4ab;margin:0 0 16px}.campaign-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;text-align:left;max-height:55dvh;overflow:auto;margin-bottom:16px}.campaign-grid article{padding:13px;border:1px solid #93ae8e33;border-radius:13px;background:#183b3c80}.campaign-grid article.produced{border-color:#c8c39366;background:#31524780}.campaign-grid article>small{display:block;font-size:9px;color:#8caa94;line-height:1.6}.campaign-grid b{display:block;font-family:'KaiTi',serif;font-weight:500;font-size:18px;color:#ded8b5;margin:6px 0}.campaign-grid article>span{display:block;font-size:10px;color:#a5b89f;margin:7px 0}.campaign-grid button{font-size:10px;padding:6px 9px!important;margin:0!important}.campaign-grid details{font-size:10px;color:#9cb397;margin-top:8px}.campaign-grid details p{font-size:10px;line-height:1.7;color:#b8c7ac}.campaign-grid summary{cursor:pointer}@media(max-width:650px){#modal.campaign-modal{padding:20px 16px}.campaign-grid{grid-template-columns:repeat(2,1fr);gap:8px;max-height:57dvh}.campaign-grid article{padding:11px}.campaign-grid b{font-size:17px}.campaign-status{font-size:10px}}
#panel,#modal{scrollbar-width:thin;scrollbar-color:#8ba58a66 transparent}#panel::-webkit-scrollbar,#modal::-webkit-scrollbar{width:5px}#panel::-webkit-scrollbar-thumb,#modal::-webkit-scrollbar-thumb{background:#8ba58a66;border-radius:6px}#panel::-webkit-scrollbar-track,#modal::-webkit-scrollbar-track{background:transparent}
.trial-difficulty{display:flex;align-items:center;justify-content:center;gap:7px;border:0;padding:0;margin:12px 0 5px}.trial-difficulty legend{float:left;font-size:10px;color:#9fb59e;margin-right:8px;padding:0}.trial-difficulty button{font-size:11px;padding:6px 12px;border-radius:16px;background:transparent;color:#b4c8b2}.trial-difficulty button[aria-pressed=true]{color:#f3dfaa;background:#62735a77;border-color:#d3c78a}#difficulty-help{display:block;text-align:center;font-size:10px;line-height:1.5;color:#91ac97}#difficulty-notice{display:block;font-size:10px;color:#e3c895;margin:5px 0}#difficulty-notice:empty{display:none}@media(max-width:650px){.trial-difficulty{gap:5px;margin-top:10px}.trial-difficulty button{padding:6px 11px}.trial-difficulty legend{font-size:9px;margin-right:4px}#difficulty-help{font-size:9px}}
#ally-health{-webkit-appearance:none;appearance:none;background:#24483f}#ally-health::-webkit-progress-bar{background:#24483f}#ally-health::-webkit-progress-value{background:linear-gradient(90deg,#8bbd9a,#d2dfac)}#ally-health::-moz-progress-bar{background:#b5d5a4}.critical #ally-health::-webkit-progress-value{background:#e8a58d}.critical #ally-health::-moz-progress-bar{background:#e8a58d}
#ally-bar{position:absolute;top:77px;left:50%;transform:translateX(-50%);width:min(410px,45vw);padding:10px 15px;border:1px solid #a3c6a660;background:linear-gradient(125deg,#284b43ed,#18343ded);border-radius:14px;display:grid;grid-template-columns:1fr auto;gap:6px 10px;pointer-events:none;z-index:2}#ally-name{font-size:12px;font-weight:500;color:#d5e8c1}#ally-health-text{font-size:11px;color:#d2dcbc}#ally-health{grid-column:1/3;width:100%;height:6px;margin:0;border:0;border-radius:6px;overflow:hidden;accent-color:#b7d6a2}#ally-message{font-size:10px;color:#c6d2b7}#ally-travel{font-size:10px;color:#b3c6b4;text-align:right;white-space:nowrap}#ally-bar.attacked{border-color:#e5a278;background:linear-gradient(125deg,#594235ed,#263b3ded)}#ally-bar.critical{border-color:#edab8c;background:linear-gradient(125deg,#613d38ed,#31313ded)}#ally-bar.critical #ally-message{color:#ffd1ad}@media(max-width:650px){#ally-bar{width:min(330px,90vw);padding:8px 12px}#ally-name{font-size:11px}#ally-health-text,#ally-message,#ally-travel{font-size:10px}}
.result-debrief{text-align:left;padding:12px 14px;background:#5e35422e;border:1px solid #cc9c9a47;border-radius:12px;margin-bottom:15px}.result-debrief.won{background:#5c80512a;border-color:#b2c39147}.result-debrief>b{font-size:13px;font-weight:500;color:#ebc6b1}.result-debrief.won>b{color:#d3e4b6}.result-debrief p{font-size:11px;line-height:1.6;color:#bfcbb7;margin:5px 0 10px}.result-debrief>div{display:flex;align-items:center;gap:12px}.result-debrief span{font-size:9px;color:#a8b5a4;white-space:nowrap}.result-debrief progress{width:auto;flex:1;min-width:0;height:4px;margin:0;accent-color:#c7c78f}.result-modal .result-score{padding-top:0}@media(max-width:650px){.result-debrief{padding:10px 12px;margin-bottom:12px}.result-debrief p{font-size:10px}#modal.result-modal{top:9%;max-height:85dvh}.result-modal .modal-emblem{width:42px;height:42px;margin-bottom:8px}.result-modal .result-score>strong{font-size:32px}}
#coach{position:fixed;bottom:175px;left:50%;transform:translateX(-50%);z-index:4;width:min(410px,92vw);display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid #d6ca9780;border-radius:15px;background:linear-gradient(120deg,#204a43f5,#12323cf5);box-shadow:0 8px 30px #001b2677;text-align:left}#coach-symbol{color:#dfce9e;flex-shrink:0}#coach-symbol svg{width:28px;height:28px}#coach>div{flex:1;min-width:0}#coach-step{display:block;font-size:9px;color:#9dbba5;letter-spacing:1px}#coach-title{display:block;font-size:14px;font-weight:500;color:#f1e3b6;margin-top:4px}#coach-text{font-size:11px;line-height:1.6;color:#bfd2be;margin:5px 0 0}#coach-skip{font-size:11px;padding:8px;background:transparent;color:#bdc7ac;border:0;flex-shrink:0}.guide-target{outline:3px solid #ead28e!important;outline-offset:5px;box-shadow:0 0 22px #e7ca6f66!important}.guide-replay{font-size:11px;margin:10px 0;padding:8px 12px}@media(max-width:650px){#coach{bottom:150px;padding:11px 13px;gap:9px;width:min(370px,92vw)}#coach-title{font-size:13px}#coach-text{font-size:10px}#coach-symbol svg{width:24px;height:24px}}
.upgrade-options{grid-template-columns:repeat(4,1fr)}.gold .ability-icon{color:#ebce83;border-color:#d6bb7655;background:#c9ab6e1d}.gold.upgrade-card{border-color:#d4b87870}.upgrade-card:disabled{opacity:.45;transform:none!important;box-shadow:none!important}.gold.upgrade-card>strong{font-size:27px}.mastery-detail{margin:2px 0 15px;font-size:12px;color:#dfcc99;line-height:1.7}.mastery-detail small{font-size:11px;color:#a7c3b1}@media(max-width:650px){.upgrade-options{grid-template-columns:1fr}.upgrade-options .upgrade-card{min-height:83px;padding:10px}.upgrade-card>small{font-size:10px}.gold.upgrade-card>strong{font-size:24px}#modal.upgrade-modal{top:8%;max-height:85dvh}}
.history-open{display:block;margin:12px auto 0;background:transparent;border:0;color:#c6cfac;font-size:12px;padding:6px}#modal.history-modal{top:9%;width:min(640px,94vw);max-width:640px;max-height:84dvh;padding:24px}.history-filters{display:flex;justify-content:center;gap:6px;margin:16px 0}.history-filters button{font-size:12px;padding:7px 15px!important;margin:0!important}.history-filters button[aria-pressed=true]{border-color:#dcc58c;background:#526754;color:#fff0bc}.history-list{max-height:36dvh;overflow:auto;margin-bottom:16px;overscroll-behavior:contain}.history-list article{display:flex;align-items:center;gap:12px;text-align:left;padding:14px 2px;border-bottom:1px solid #a1bea331}.history-instrument{color:#d4cb9f;flex-shrink:0}.history-instrument svg{width:25px;height:25px}.history-list article>div{flex:1;min-width:0}.history-list b{font-size:13px;color:#e2e4c9;font-weight:500}.history-list small{display:block;font-size:10px;color:#a9bfad;margin-top:5px;line-height:1.5}.history-list em{font-style:normal;color:#bba3a7;font-size:9px;margin-left:10px}.history-list em.won{color:#b3dfb8}.history-list strong{font-size:20px;color:#dfce9b;font-family:Georgia,serif;font-weight:400;text-align:right}.history-list strong small{font-family:'Microsoft YaHei',sans-serif;font-size:9px}.history-empty{padding:25px 0;color:#d6d7bb;font-size:14px}.history-modal h2{margin:8px 0}@media(max-width:650px){#modal.history-modal{top:9%;padding:20px 16px}.history-list article{gap:8px}.history-list strong{font-size:17px}.history-filters button{padding:7px 12px!important}.history-list small{font-size:9px}}
.display-settings{margin:10px 0;padding:12px;border:1px solid #a6c2ad40;border-radius:12px;text-align:left;background:#10363966}.display-settings label{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 10px;color:#d8e3c8;font-size:12px}.display-settings select{width:auto;min-width:88px;padding:7px 10px;border:1px solid #8dad9366;border-radius:8px;background:#173d40;color:#f1e4bd;font-size:16px}.display-settings input{width:19px;height:19px;accent-color:#b9d6a7}.display-settings>small{display:block;color:#a7bfae;font-size:11px;line-height:1.6}.display-settings output{display:block;font-size:10px;color:#d4c99e;margin-top:7px}.display-settings output:empty{display:none}
@media (orientation:landscape) and (max-height:500px){
 header{height:46px;padding:6px 14px;gap:10px}header small{display:none}header b{font-size:13px;letter-spacing:1px}header a,header button{font-size:11px;padding:7px 10px}
 #hud{top:52px;left:14px;right:14px}#hud>div:first-child{flex:0 1 26vw;max-width:205px}#hud>div:last-child{flex:0 1 24vw;max-width:190px}#hud b{font-size:12px}#hud p{font-size:10px;margin:4px 0;line-height:1.35}#hud progress{height:6px;margin:4px 0}#hud #objective-progress{margin:4px 0}#hud #timer,#experience-label{font-size:9px}.experience-row{margin-top:4px;padding-top:4px}#weapon-info{font-size:10px}#weapon-info small{display:none}#minimap-wrap{margin-top:5px;padding-top:5px}#mini-map{max-height:105px;object-fit:contain}
 #controls{left:18px;right:18px;bottom:14px}#stick{width:86px;height:86px}#stick i{width:36px;height:36px}.stick-group small{font-size:9px}.actions button{width:66px;height:66px}.actions .action-symbol{height:22px}.actions .action-symbol svg{width:22px;height:22px}.actions .action-name{font-size:10px}
 #boss-bar,#ally-bar{width:min(320px,38vw);padding:7px 10px}#boss-name,#ally-name{font-size:11px}#boss-phase,#ally-message,#ally-travel{font-size:9px}
 #panel{top:50px;max-height:calc(100dvh - 58px)}#modal.upgrade-modal{top:6%;max-height:88dvh}
}
.troops-help{font-size:11px;color:#bdd0bb}.troops-help>summary{cursor:pointer}.troop-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.troop-guide article{padding:8px 5px;border:1px solid #9cb29740;border-radius:10px;background:#15363ca8;text-align:center}.troop-guide i{display:block;width:60px;height:60px;margin:0 auto 6px;background-image:url('/versions/1.0.14/play/assets/troops-v1.webp');background-size:300% 200%}.troop-guide b{display:block;font-size:11px;color:#efdbb4}.troop-guide small{display:block;font-size:10px;line-height:1.5;margin-top:4px;color:#b9c8bb}.troops-help p{font-size:10px}@media(max-width:650px){.troop-guide{grid-template-columns:repeat(2,1fr)}}
#phase-notice{position:fixed;left:50%;bottom:260px;transform:translateX(-50%);z-index:3;pointer-events:none;padding:9px 18px;border:1px solid #d5c68b88;border-radius:22px;background:#24473de8;color:#f5e4b3;font-size:13px;white-space:nowrap;box-shadow:0 5px 20px #071d2455}@media(orientation:landscape) and (max-height:500px){#phase-notice{bottom:18px;font-size:11px;padding:6px 14px}}
.phase-status{padding:12px 14px;margin:12px 0 16px;border:1px solid #c9d6b533;border-radius:12px;background:#16383c;text-align:left}.phase-status>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.phase-status b{font-size:13px;color:#f1dfaf}.phase-status small{font-size:11px;color:#abc1b6}.phase-status ul{list-style:none;margin:8px 0;padding:0}.phase-status li{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;color:#ddd5bb}.phase-status li small{margin-left:auto}.phase-status i{font-style:normal;width:16px;text-align:center;color:#e7c985}.phase-status .done,.phase-status .done i{color:#a9e3c1}.phase-status p{margin:8px 0 0;padding-top:8px;border-top:1px solid #d7d2a51f;font-size:11px;line-height:1.5;color:#e8d49d}
@media (max-height:500px) and (orientation:landscape){#modal.pause-modal{padding:12px 22px}.pause-modal>.modal-emblem,.pause-modal>.modal-kicker{display:none}.pause-modal>h2{font-size:22px;margin:3px 0}.pause-modal>.pause-meta{font-size:11px;margin:3px 0 6px}.pause-modal .phase-status{padding:7px 12px;margin:7px 0}.pause-modal .phase-status ul{margin:3px 0}.pause-modal .phase-status li{padding:2px 0}.pause-modal .phase-status p{margin-top:4px;padding-top:4px}.pause-modal>.modal-primary{padding-top:10px;padding-bottom:10px}}
#phase-notice{width:max-content;max-width:min(440px,calc(100vw - 36px));white-space:normal;border-radius:14px;text-align:center;padding:10px 16px}#phase-notice strong{display:block;font-size:13px;line-height:1.4;margin-bottom:4px}#phase-notice span{display:block;font-size:11px;line-height:1.6;color:#d8e3c7}#phase-notice[data-kind=danger]{background:#4d303deb;border-color:#edb0bc}#phase-notice[data-kind=danger] strong{color:#ffd1c0}#phase-notice[data-kind=final]{border-color:#eed090;background:#3d4030ed}@media(orientation:landscape) and (max-height:500px){#phase-notice{bottom:16px;max-width:420px;padding:6px 12px}#phase-notice strong{font-size:11px;margin-bottom:2px}#phase-notice span{font-size:10px}}
.stage-briefing{text-align:left;margin:10px 0;color:#dce2ca;font-size:12px}.stage-briefing summary{cursor:pointer;color:#c8c7a1;padding:5px 0}.stage-briefing[open]{padding:10px 12px;background:#173b3bb3;border:1px solid #aebc9638;border-radius:12px}.briefing-time{display:flex;justify-content:space-between;gap:12px;color:#e7d397;font-size:10px;margin:8px 0}.stage-briefing ol{list-style:none;margin:8px 0;padding:0}.stage-briefing li{display:flex;gap:10px;padding:9px 0;border-top:1px solid #abc4ac24}.stage-briefing li i{flex:0 0 24px;height:24px;display:grid;place-items:center;border:1px solid #c9c18c77;border-radius:50%;font-style:normal;font-size:11px;color:#eed69c}.stage-briefing li b,.stage-briefing li span,.stage-briefing li small{display:block;line-height:1.6}.stage-briefing li b{font-size:12px;color:#f0e4c1}.stage-briefing li span{font-size:11px;color:#c7dcc8}.stage-briefing li small{font-size:10px;color:#a9b9ab}.stage-briefing p{font-size:10px;line-height:1.6;color:#c5c4a7;margin:6px 0 0}
.resume-battle{display:block;width:100%;margin:10px 0;padding:11px 12px;border:1px solid #a7d1b67a;color:#c7f1d3;background:#244c40;font-size:12px}#battle-save-note{display:block;color:#e5bd9c;font-size:10px;line-height:1.5}#battle-save-note:empty{display:none}
.backup-tools{margin-top:12px;padding-top:12px;border-top:1px solid #a6c4a632;text-align:left;color:#c8d4bc}.backup-tools summary{cursor:pointer;font-size:12px}.backup-tools p{font-size:11px;line-height:1.6}.backup-tools>div,.backup-tools section>div{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.backup-tools button{font-size:11px;padding:9px 12px}.backup-tools small{display:block;font-size:10px;line-height:1.6;color:#aebea7}.backup-tools section{padding:12px;border-radius:12px;border:1px solid #d8c68a66;background:#25443d;margin:12px 0}.backup-tools section b{font-size:13px;color:#ebd79b}.backup-tools output{display:block;font-size:11px;color:#ebd79b;line-height:1.6;margin:8px 0}

.mission-flow-preview{display:flex;gap:7px;list-style:none;margin:8px 0 10px;padding:0}.mission-flow-preview li{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;min-width:0;padding:6px 3px;border:1px solid #aec9b52e;border-radius:9px;background:#153c3b66;color:#e7dbb4;font-size:11px}.mission-flow-preview span{display:grid;place-items:center;flex-shrink:0;width:16px;height:16px;border-radius:50%;background:#e6cc8b22;color:#efd89d}.mission-flow-preview b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

#rally-meter{margin-top:7px;padding-top:6px;border-top:1px solid #e8d39333;color:#d6d8b7}#rally-meter small{display:block;font-size:10px;line-height:1.4}#rally-meter progress{height:4px;accent-color:#d6bb78;margin:3px 0}#rally-meter.ready{color:#ffe4a1}#rally-meter.ready progress{accent-color:#f1cf83}
.result-context{display:block;color:#c4c9a6;font-size:10px;line-height:1.6;margin-top:5px}.retry-note{display:block;font-size:10px;color:#a2b9a5;margin:5px 0 12px}
@media(max-height:500px){#modal.result-modal{top:4%;max-height:92dvh;padding:14px 20px}.result-modal .modal-emblem{display:none}.result-modal h2{font-size:22px;margin:5px 0 8px!important}.result-modal .result-debrief{margin-bottom:8px;padding:8px 10px}.result-modal .result-score{padding:3px 0 8px}.result-modal .result-score>strong{font-size:28px}.result-modal .result-stats{padding:8px 0;margin-bottom:5px}.result-modal .retry-note{margin-bottom:7px}}
#phase-notice[data-kind=progress]{background:#173e38ed;border-color:#a5e0bc}#phase-notice[data-kind=progress] strong{color:#d3ffde}
@media (max-height:500px) and (min-width:651px){#modal.result-modal:not(.fox-result):not(.jun-result):not(.weaver-result){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px 14px;width:min(760px,94vw);max-width:760px}#modal.result-modal:not(.fox-result):not(.jun-result):not(.weaver-result)>:is(.modal-kicker,h2,.save-state,.chapter-ending){grid-column:1/-1}#modal.result-modal:not(.fox-result):not(.jun-result):not(.weaver-result)>.result-debrief{grid-column:1;grid-row:3/span 3;margin:0}#modal.result-modal:not(.fox-result):not(.jun-result):not(.weaver-result)>.result-score{grid-column:2;grid-row:3}#modal.result-modal:not(.fox-result):not(.jun-result):not(.weaver-result)>.result-stats{grid-column:2;grid-row:4}#modal.result-modal:not(.fox-result):not(.jun-result):not(.weaver-result)>#next{grid-column:1;grid-row:6;margin:0;padding:9px 12px}#modal.result-modal:not(.fox-result):not(.jun-result):not(.weaver-result)>#retry{grid-column:2;grid-row:6;margin:0;padding:9px 12px}#modal.result-modal:not(.fox-result):not(.jun-result):not(.weaver-result)>.retry-note{grid-column:2;margin:0}#modal.result-modal:not(.fox-result):not(.jun-result):not(.weaver-result)>#back{grid-column:1;grid-row:7;margin:0}}
button{touch-action:manipulation}

/* Portrait dual defense keeps enemy health in the objective HUD and both drum hearts below it. */
@media(max-width:650px){#boss-bar.heart-status{display:none!important}}

@media(max-width:650px){#ally-bar.heart-status{top:auto!important;bottom:calc(150px + env(safe-area-inset-bottom))}}

.actions button.is-threat{box-shadow:0 0 0 2px #efc57d,0 0 24px #e5ac5555}.actions button.is-threat::before{background:#4e4936}.actions button.is-threat .action-timer{color:#ffe2a5}

#float-route-controls{pointer-events:auto;margin-top:7px}#float-route-label{display:block;font-size:10px;color:#c8d8b9;margin-bottom:4px}#float-route-controls>div{display:flex;gap:5px}#float-route-controls button{min-height:32px;flex:1;padding:5px 8px;border:1px solid #89a99166;border-radius:7px;background:#193e40;color:#bdd3bf;font-size:11px;touch-action:manipulation}#float-route-controls button[aria-pressed=true]{border-color:#e1c48c;background:#415441;color:#ffe1a5}#float-route-controls button:disabled{opacity:.45}
@media(max-height:500px){#minimap-wrap[data-float-route=true]{display:grid;grid-template-columns:112px 1fr;gap:5px}#minimap-wrap[data-float-route=true] #mini-map{width:112px}#minimap-wrap[data-float-route=true] #float-route-controls{grid-column:2;grid-row:1;margin-top:0}#minimap-wrap[data-float-route=true] #float-route-controls>div{flex-direction:column;gap:3px}#minimap-wrap[data-float-route=true] #float-route-label{font-size:9px}#minimap-wrap[data-float-route=true] #float-route-controls button{font-size:10px;min-height:30px;padding:4px}#minimap-wrap[data-float-route=true] #map-caption{grid-column:1/-1;margin-top:0}}

#boss-bar.rescue-alert{border-color:#e1b486;background:#453335ed}#boss-bar.rescue-alert #boss-phase{color:#ffe1ba}

.alley-ring{position:fixed;right:22px;bottom:calc(126px + env(safe-area-inset-bottom));width:116px;min-height:48px;z-index:15;pointer-events:auto;touch-action:manipulation;border:1px solid #c5bb7b;border-radius:15px;background:#173e40ed;color:#e6d8a9;box-shadow:0 4px 16px #0a1d2466;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;margin:0!important;padding:6px!important}.alley-ring[hidden]{display:none}.alley-ring b{font-size:14px}.alley-ring small{font-size:10px;color:#bccdb6}.alley-ring:disabled{opacity:.62}@media(max-height:500px){.alley-ring{bottom:calc(96px + env(safe-area-inset-bottom));right:20px;min-height:42px;width:108px}}

/* Colored instrument actions; button footprints and touch targets are unchanged. */
.actions button{border-radius:50%;background:linear-gradient(145deg,#e8d4a0,#688e87);box-shadow:0 5px 16px #071e2677}.actions button::before{border-radius:50%;background:linear-gradient(145deg,#244b50,#122e37)}.actions .action-symbol{height:34px;filter:drop-shadow(0 2px 3px #071d2566)}.actions .action-symbol svg{width:34px;height:34px}.actions .action-name{font-size:10px;font-weight:600}.actions .action-timer{font-size:9px}.actions button:not(.is-ready){background:conic-gradient(#4d686b var(--cooldown),#e7d7a5 var(--cooldown))}.actions button:not(.is-ready) .action-symbol{opacity:.6;filter:saturate(.65)}.command-emblem{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;pointer-events:none}.command-emblem svg{width:100%;height:100%}.alley-ring{padding-left:34px!important}.alley-ring b{font-size:13px}.alley-ring small{font-size:9px}@media(max-width:650px),(max-height:500px){.actions button{border-radius:19px}.actions button::before{border-radius:16px}.actions .action-symbol{height:28px}.actions .action-symbol svg{width:28px;height:28px}.actions .action-name{font-size:9px}.actions .action-timer{font-size:8px}}

/* Progress must follow the actual card width, including compact landscape HUDs. */
#hud progress{width:100%;max-width:100%;min-width:0}
#hud>div{overflow-wrap:anywhere}

/* On compact screens, the map replaces mission prose rather than pushing controls down. */
@media(max-width:650px),(orientation:landscape) and (max-height:500px){
 #hud.map-open #stage-title,#hud.map-open #goal,#hud.map-open #objective-progress{display:none}
 #hud.map-open #minimap-wrap{margin-top:5px;padding-top:5px}
 #hud.map-open #mini-map{max-height:90px;object-fit:contain}
 #hud.map-open #map-caption{font-size:9px;line-height:1.35}
 #hud.map-open #minimap-wrap[data-float-route=true]{display:block}
 #hud.map-open #minimap-wrap[data-float-route=true] #mini-map{width:100%}
 #hud.map-open #float-route-controls{margin-top:5px}
 #hud.map-open #float-route-controls>div{flex-direction:row;gap:4px}
 #hud.map-open #float-route-controls button{font-size:10px;padding:4px;min-height:32px}
}
@media(orientation:landscape) and (max-height:500px){#hud.map-open #mini-map{max-height:64px}#hud.map-open #map-caption{font-size:8px}#hud.map-open #float-route-label{font-size:8px}}

#gallery-routing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:7px;font-size:11px}#gallery-routing>span{display:flex;align-items:center;gap:4px;border-left:3px solid;padding:3px 4px;background:#061c277a;border-radius:3px}#gallery-routing em{font-style:normal}#gallery-routing small{margin-left:auto;font-size:9px;color:#c7d1bb}

#boss-bar.page-ally{background:linear-gradient(120deg,#243d3fef,#1e333fe8);border-color:#a8c8b260}#boss-bar.page-ally #boss-health::-webkit-progress-value{background:#b4d5bc}#boss-bar.page-ally #boss-health::-moz-progress-bar{background:#b4d5bc}

#quartet-score{display:flex;gap:5px;justify-content:space-between;margin-top:8px;font-size:12px;color:#7d9595}#quartet-score .done{color:#bdd4b1}#quartet-score .current{color:#f0d99c;font-weight:bold}#boss-bar.score-status{background:linear-gradient(120deg,#344137ef,#263a44e8);border-color:#c7c5a25c}

#boss-bar.score-status #boss-health::-webkit-progress-value{background:linear-gradient(90deg,#8ebfb4,#e1d1a4)}#boss-bar.score-status #boss-health::-moz-progress-bar{background:#b3d0b6}

#lake-evidence{display:grid;gap:4px;margin-top:7px;font-size:10px;color:#d2d9c7}#lake-evidence span{background:#0d293873;border-left:2px solid #b7c5a4;padding:3px 5px;border-radius:3px}

#boss-bar.score-status #boss-health{accent-color:#b5cfb7}

#skill.is-counter{border-color:#eddb9b;box-shadow:0 0 18px #d6c58066,inset 0 0 12px #d4cfa026}#boss-bar.dyad-status #boss-phase{font-size:11px;line-height:1.5}

#admission-status{position:fixed;z-index:100;left:50%;top:54px;transform:translateX(-50%);margin:0;padding:8px 14px;border-radius:8px;background:#173a37;color:#fff4d6;max-width:90vw;text-align:center}

#account-entry{display:block;margin:0 0 .65rem auto;max-width:100%;overflow-wrap:anywhere;padding:.45rem .9rem;font-size:.9rem}
#account-entry[hidden],#test-account [hidden]{display:none}
#test-account{box-sizing:border-box;width:min(26rem,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow:auto;padding:clamp(1rem,5vw,1.75rem);border:1px solid #8f7950;border-radius:1rem;background:#102a30;color:#fff0ce;box-shadow:0 1rem 4rem #0009}
#test-account::backdrop{background:#041317bb;backdrop-filter:blur(4px)}
.account-heading,.account-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.account-heading small{color:#dfbd7e}
.account-heading h2{margin:.2rem 0 .9rem}
#test-account form label{display:grid;gap:.35rem;margin-bottom:.85rem;text-align:left}
#test-account input{box-sizing:border-box;width:100%;min-height:44px;padding:.6rem .75rem;border:1px solid #577177;border-radius:.5rem;background:#091e23;color:#fff0ce;font-size:16px}
#test-account button{min-height:44px}
.account-actions button{flex:1}
.account-actions button[value=login]{background:#e0bf7c;color:#102a30;font-weight:700}
#test-account output{display:block;margin-top:.7rem;color:#e6cb99;font-size:.875rem}

.lobby-title .lobby-logo {
  margin: .25rem 0 .55rem;
  font-family: "STKaiti", "KaiTi", "Noto Serif SC", serif;
  font-size: clamp(2.9rem, 9vw, 5.75rem);
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1.15;
  color: #f5d591;
}
.lobby-logo span {
  display: inline-block;
  background: linear-gradient(#fff3cc 12%, #f5d591 50%, #c88c42 95%);
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 2px #714722) drop-shadow(0 4px 5px #041619a0);
}

.upgrade-card .ability-icon{--seal:#9ae4cb;display:grid;place-items:center;position:relative;width:52px;height:52px;border-radius:50%;color:var(--seal);border:1px solid currentColor;background:radial-gradient(circle at 38% 28%,#395454,#102427 76%);box-shadow:inset 0 0 0 3px #13272a,0 3px 8px #07171988}
.upgrade-card.rose .ability-icon{--seal:#ffc0b4}
.upgrade-card.sky .ability-icon{--seal:#a9ddff}
.upgrade-card.gold .ability-icon{--seal:#ffda87}
.upgrade-card .ability-icon svg{width:31px;height:31px}
.upgrade-card[data-up="3"] .ability-icon::after{content:'';position:absolute;bottom:-3px;width:6px;height:6px;background:currentColor;transform:rotate(45deg)}
