:root{--bg-deep:#060919;--bg-panel:#0e152de6;--bg-card:#162042e0;--bg-card-hover:#1e2c58f2;--gold-main:#fde047;--gold-warm:#f59e0b;--cyan-star:#38bdf8;--emerald-ok:#34d399;--rose-alert:#fb7185;--text-main:#f8fafc;--text-sub:#cbd5e1;--text-muted:#94a3b8;--border-subtle:#94a3b83d;--border-gold:#facc158c;--font-jp:"M PLUS Rounded 1c", -apple-system, BlinkMacSystemFont, sans-serif;--font-en:"Cinzel", serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}html,body{width:100%;height:100%;color:var(--text-main);font-family:var(--font-jp);background:radial-gradient(circle at 50% 15%,#172554 0%,#060919 75%);overflow:hidden}#app{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.mobile-shell{background:linear-gradient(#090e26 0%,#0d1636 55%,#070b1e 100%);flex-direction:column;width:100%;max-width:480px;height:100dvh;min-height:100%;display:flex;position:relative;overflow:hidden;box-shadow:0 0 55px #000000d9,0 0 1px 1px #ffffff1f}.top-header{border-bottom:1px solid var(--border-subtle);z-index:30;background:linear-gradient(#0a0f24f5 0%,#101834e0 100%);flex-shrink:0;justify-content:space-between;align-items:center;height:58px;padding:0 12px;display:flex}.brand-title-wrap{flex-direction:column;display:flex}.brand-title-main{letter-spacing:.04em;color:#fef08a;text-shadow:0 1px 6px #facc1573;font-size:14px;font-weight:800}.brand-title-sub{font-family:var(--font-en);color:var(--cyan-star);letter-spacing:.14em;font-size:9px}.header-stats{align-items:center;gap:8px;display:flex}.resource-pill{background:#060a19d9;border:1px solid #facc1566;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:800;display:flex}.resource-pill.power-pill{color:#e0f2fe;border-color:#38bdf873}.resource-pill .icon{font-size:13px}.icon-btn{border:1px solid var(--border-subtle);width:34px;height:34px;color:var(--text-main);cursor:pointer;background:#1e293bcc;border-radius:10px;justify-content:center;align-items:center;font-size:15px;transition:transform .12s,background .15s;display:flex}.icon-btn:active{transform:scale(.92)}.main-stage{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.tab-pane{flex-direction:column;gap:12px;width:100%;height:100%;padding:12px;display:none;overflow:hidden auto}.tab-pane.active{display:flex}.quest-hero-banner{background:linear-gradient(135deg,#172554 0%,#0f172a 100%);border:1px solid #facc1573;border-radius:16px;flex-shrink:0;align-items:flex-end;min-height:148px;padding:14px;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #00000073}.quest-hero-bg{opacity:.48;background-position:50% 22%;background-size:cover;transition:background-image .3s;position:absolute;inset:0}.quest-hero-overlay{background:linear-gradient(90deg,#060919eb 0%,#06091959 60%,#060919d9 100%);position:absolute;inset:0}.quest-hero-content{z-index:2;justify-content:space-between;align-items:flex-end;gap:10px;width:100%;display:flex;position:relative}.quest-leader-speech{color:#fef08a;background:#0f172ad9;border:1px solid #facc1559;border-radius:8px;margin-bottom:6px;padding:4px 9px;font-size:11px;display:inline-block}.quest-banner-title{color:#fff;text-shadow:0 2px 8px #000000e6;font-size:18px;font-weight:800}.quest-banner-sub{color:var(--text-sub);margin-top:2px;font-size:11px}.world-filter-row{flex-shrink:0;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.world-chip{border:1px solid var(--border-subtle);color:var(--text-sub);white-space:nowrap;cursor:pointer;background:#0f172ad9;border-radius:10px;padding:7px 12px;font-size:12px;font-weight:700}.world-chip.active{color:#fff;background:linear-gradient(135deg,#1d4ed8 0%,#0284c7 100%);border-color:#7dd3fc;box-shadow:0 2px 10px #38bdf859}.stage-list{flex-direction:column;gap:10px;padding-bottom:16px;display:flex}.stage-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;flex-direction:column;gap:8px;padding:12px;transition:transform .12s,border-color .15s;display:flex}.stage-card.selected{border-color:var(--gold-main);box-shadow:0 0 16px #facc1533}.stage-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.stage-code-badge{color:#090d16;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);border-radius:6px;margin-right:6px;padding:2px 8px;font-size:11px;font-weight:800}.stage-name{color:#fff;font-size:15px;font-weight:800}.stage-subtitle{color:var(--text-muted);margin-top:2px;font-size:11px}.stage-clear-badge{color:#6ee7b7;white-space:nowrap;background:#34d3992e;border:1px solid #34d39966;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:800}.stage-clear-badge.unvisited{color:#fde047;background:#facc1529;border-color:#facc1573}.stage-meta-row{border-top:1px solid #94a3b826;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:6px;display:flex}.stage-metrics{color:var(--text-sub);gap:10px;font-size:11px;display:flex}.stage-metrics span strong{color:#fef08a}.btn-sortie{color:#090d16;font-family:var(--font-jp);cursor:pointer;background:linear-gradient(#f59e0b 0%,#d97706 100%);border:1px solid #fef08a;border-radius:10px;padding:8px 18px;font-size:13px;font-weight:800;transition:transform .1s;box-shadow:0 3px 12px #f59e0b73}.btn-sortie:active{transform:scale(.95)}.battle-screen-wrapper{z-index:25;background:#050814;flex-direction:column;display:none;position:absolute;inset:0}.battle-screen-wrapper.active{display:flex}.battle-top-hud{z-index:10;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;top:8px;left:8px;right:8px}.battle-wave-pill{pointer-events:auto;background:#090d1ce0;border:1px solid #38bdf88c;border-radius:12px;flex-direction:column;padding:6px 12px;display:flex}.battle-stage-title{color:var(--text-sub);font-size:11px}.battle-wave-indicator{color:#fde047;font-size:14px;font-weight:800}.battle-controls-group{pointer-events:auto;gap:6px;display:flex}.battle-ctrl-btn{border:1px solid var(--border-subtle);color:#f8fafc;font-family:var(--font-jp);cursor:pointer;background:#0f172ae6;border-radius:10px;padding:7px 11px;font-size:12px;font-weight:800}.battle-ctrl-btn.active{color:#fef08a;background:#eab30840;border-color:#fde047}.battle-ctrl-btn.retreat{color:#fda4af;border-color:#fb718580}#phaser-battle-container{flex:1;width:100%;position:relative;overflow:hidden}.battle-party-cards{background:linear-gradient(#0a0f22f2 0%,#060916fa 100%);border-top:1px solid #38bdf859;flex-shrink:0;grid-template-columns:repeat(5,1fr);gap:6px;height:110px;padding:8px;display:grid}.battle-hero-mini{border:1px solid var(--border-subtle);background:#162040e6;border-radius:10px;flex-direction:column;display:flex;position:relative;overflow:hidden}.battle-hero-mini.ko{opacity:.4;filter:grayscale(.9)}.battle-hero-thumb{object-fit:cover;object-position:center 18%;width:100%;height:54px}.battle-hero-bars{flex-direction:column;gap:3px;padding:4px 5px;display:flex}.mini-name{white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:800;overflow:hidden}.mini-bar-track{background:#090d16;border-radius:99px;width:100%;height:5px;overflow:hidden}.mini-hp-fill{background:linear-gradient(90deg,#22c55e,#4ade80);height:100%;transition:width .15s}.mini-sp-fill{background:linear-gradient(90deg,#f59e0b,#fde047);height:100%;transition:width .15s}.skill-cutin-banner{z-index:20;pointer-events:none;background:linear-gradient(90deg,#0f172af5 0%,#1e3a8aeb 60%,#0f172a33 100%);border-top:2px solid #fde047;border-bottom:2px solid #fde047;align-items:center;gap:12px;width:100%;height:96px;padding:0 16px;transition:left .22s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:24%;left:-100%;box-shadow:0 0 30px #facc1580}.skill-cutin-banner.show{left:0}.cutin-portrait{object-fit:cover;object-position:center 15%;border:1px solid #fde047;border-radius:8px;width:84px;height:92px}.cutin-text-group{flex-direction:column;display:flex}.cutin-char-name{color:#7dd3fc;font-size:11px;font-weight:800}.cutin-skill-name{color:#fef08a;text-shadow:0 2px 10px #f59e0bcc;font-size:18px;font-weight:800}.party-Stage-preview{background:linear-gradient(#111838f2 0%,#0b1126f2 100%);border:1px solid #38bdf859;border-radius:16px;flex-direction:column;flex-shrink:0;gap:10px;padding:12px;display:flex}.section-header-row{justify-content:space-between;align-items:center;display:flex}.section-title{color:#fef08a;font-size:14px;font-weight:800}.party-slots-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.party-slot-card{cursor:pointer;background:#090d1cd9;border:1px solid #facc1573;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:4px;display:flex;position:relative}.party-slot-card.empty{border-style:dashed;border-color:var(--border-subtle);min-height:118px;color:var(--text-muted);justify-content:center;font-size:11px}.party-slot-portrait{object-fit:cover;object-position:center 15%;border-radius:8px;width:100%;height:58px}.party-slot-sd-canvas,.party-slot-sd-img{object-fit:contain;filter:drop-shadow(0 2px 6px #0009);width:52px;height:52px}.roster-card-sd-badge{object-fit:contain;filter:drop-shadow(0 2px 5px #000c);z-index:2;pointer-events:none;width:50px;height:50px;position:absolute;bottom:2px;right:2px}.party-slot-name{color:#fff;font-size:10px;font-weight:800}.roster-grid{grid-template-columns:repeat(2,1fr);gap:10px;padding-bottom:16px;display:grid}.roster-char-card{background:var(--bg-card);border:1px solid var(--border-subtle);cursor:pointer;border-radius:14px;flex-direction:column;transition:transform .12s,border-color .15s;display:flex;overflow:hidden}.roster-char-card.in-party{border-color:var(--gold-main);box-shadow:0 0 12px #facc1540}.roster-char-card.locked{opacity:.55;filter:grayscale(.65)}.roster-card-visual{height:126px;position:relative;overflow:hidden}.roster-card-img{object-fit:cover;object-position:center 15%;width:100%;height:100%}.roster-badge-top{justify-content:space-between;display:flex;position:absolute;top:6px;left:6px;right:6px}.class-pill{color:#f8fafc;background:#090d1ce0;border:1px solid #ffffff40;border-radius:6px;padding:2px 7px;font-size:10px;font-weight:800}.party-tag{color:#090d16;background:#fde047;border-radius:6px;padding:2px 7px;font-size:10px;font-weight:800}.roster-card-body{flex-direction:column;gap:4px;padding:8px 10px;display:flex}.roster-char-name{color:#fff;justify-content:space-between;align-items:center;font-size:13px;font-weight:800;display:flex}.awakening-stars{color:#fde047;font-size:11px}.roster-stat-line{color:var(--text-sub);justify-content:space-between;font-size:11px;display:flex}.stella-tab-pane{gap:8px;padding:8px;overflow:hidden}.char-selector-strip{flex-shrink:0;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.char-Avatar-chip{border:1px solid var(--border-subtle);cursor:pointer;background:#0f172ae6;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px 4px 4px;display:flex}.char-Avatar-chip.active{border-color:var(--gold-main);background:#1e3a8ad9}.char-Avatar-chip img{object-fit:cover;object-position:center 15%;border-radius:50%;width:28px;height:28px}.char-Avatar-chip span{color:#f8fafc;font-size:11px;font-weight:800}.stella-viewport-box{background:radial-gradient(circle,#111c44 0%,#050816 100%);border:1px solid #38bdf859;border-radius:16px;flex:1;min-height:240px;position:relative;overflow:hidden}#phaser-stella-container{width:100%;height:100%}.stella-overlay-controls{z-index:10;flex-direction:column;gap:5px;display:flex;position:absolute;top:8px;right:8px}.stella-char-summary{border:1px solid var(--border-subtle);pointer-events:none;z-index:10;background:#090d1cdb;border-radius:10px;padding:6px 10px;position:absolute;top:8px;left:8px}.stella-node-inspector{background:var(--bg-panel);border:1px solid #facc1573;border-radius:14px;flex-direction:column;flex-shrink:0;gap:6px;padding:10px 12px;display:flex}.node-inspector-header{justify-content:space-between;align-items:center;display:flex}.node-title{color:#fef08a;font-size:14px;font-weight:800}.node-ring-badge{color:#7dd3fc;background:#38bdf833;border-radius:99px;padding:2px 8px;font-size:10px;font-weight:800}.node-desc{color:var(--text-sub);font-size:11px;line-height:1.4}.node-action-row{justify-content:space-between;align-items:center;gap:8px;margin-top:2px;display:flex}.btn-unlock-node{color:#090d16;font-family:var(--font-jp);cursor:pointer;background:linear-gradient(#f59e0b 0%,#d97706 100%);border:1px solid #fef08a;border-radius:10px;flex:1;padding:9px 14px;font-size:13px;font-weight:800}.btn-unlock-node:disabled{color:#94a3b8;cursor:not-allowed;background:#334155;border-color:#475569}.btn-batch-unlock{color:#e0f2fe;font-family:var(--font-jp);cursor:pointer;white-space:nowrap;background:#0284c759;border:1px solid #7dd3fc;border-radius:10px;padding:9px 12px;font-size:11px;font-weight:800}.gacha-banner-card{border:1px solid var(--gold-main);background:linear-gradient(145deg,#1e1b4b 0%,#090d24 100%);border-radius:18px;flex-direction:column;gap:12px;padding:16px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #0009}.gacha-showcase-strip{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.gacha-showcase-img{object-fit:cover;object-position:center 15%;border:1px solid #facc1573;border-radius:10px;width:100%;height:92px}.gacha-cta-row{grid-template-columns:1fr 1.35fr;gap:10px;display:grid}.btn-gacha-single{color:#fff;font-family:var(--font-jp);cursor:pointer;background:linear-gradient(#0284c7 0%,#0369a1 100%);border:1px solid #7dd3fc;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:12px 10px;font-weight:800;display:flex}.btn-gacha-ten{color:#090d16;font-family:var(--font-jp);cursor:pointer;background:linear-gradient(#f59e0b 0%,#b45309 100%);border:1px solid #fef08a;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:12px 10px;font-weight:800;display:flex;box-shadow:0 4px 18px #f59e0b73}.gacha-results-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.gacha-result-item{border:1px solid var(--gold-main);background:#0f172aeb;border-radius:10px;flex-direction:column;align-items:center;padding-bottom:4px;animation:.32s cubic-bezier(.18,.89,.32,1.28) backwards popIn;display:flex;position:relative;overflow:hidden}@keyframes popIn{0%{opacity:0;transform:scale(.5)translateY(15px)}to{opacity:1;transform:scale(1)translateY(0)}}.gacha-result-item img{object-fit:cover;object-position:center 15%;width:100%;height:68px}.gacha-badge-new{color:#fff;background:#f43f5e;border-radius:4px;padding:1px 5px;font-size:9px;font-weight:800;position:absolute;top:3px;left:3px}.gacha-badge-awake{color:#090d16;background:#fde047;border-radius:4px;padding:1px 5px;font-size:9px;font-weight:800;position:absolute;top:3px;right:3px}.bottom-nav{border-top:1px solid var(--border-subtle);z-index:30;background:linear-gradient(#0c122af5 0%,#060918fc 100%);flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:6px;height:68px;padding:6px 8px;display:grid}.nav-tab-btn{color:var(--text-muted);font-family:var(--font-jp);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:all .15s;display:flex}.nav-tab-btn .nav-icon{font-size:19px}.nav-tab-btn .nav-label{font-size:11px;font-weight:800}.nav-tab-btn.active{border-color:var(--gold-main);color:#fef08a;background:linear-gradient(#1e3a8abf 0%,#0f172ae6 100%);box-shadow:0 2px 12px #facc1538}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:60;background:#040713db;justify-content:center;align-items:center;padding:16px;display:none;position:absolute;inset:0}.modal-backdrop.active{display:flex}.modal-card{border:1px solid var(--gold-main);background:linear-gradient(#131c3e 0%,#090e24 100%);border-radius:18px;flex-direction:column;gap:12px;width:100%;max-height:88dvh;padding:18px;display:flex;overflow-y:auto;box-shadow:0 16px 40px #000000d9}.textarea-backup{border:1px solid var(--border-subtle);color:#7dd3fc;resize:none;-webkit-user-select:text;user-select:text;background:#050814;border-radius:8px;width:100%;height:76px;padding:8px;font-family:monospace;font-size:11px}
