: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);--viewport-bg:#0b101d;--strike-ink:#ffe2a1;--control-bg:#203049;--control-hover:#2b405d;--control-border:#526780;--control-text:#edf3fa;--accent-bg:#edcb83;--accent-text:#222333;--danger-bg:#422431;--danger-border:#a15b69;--danger-text:#ffd0d5;--surface-shadow:0 12px 36px #0005;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f6efc4;--muted:#a7afd0;--panel:#171d3d;--panel-2:#222852;--deep:#0b0e20;--line:#5964a0;--gold:#ffd166;--red:#ff6b6b;--green:#75e6a4;--blue:#79c7ff;--violet:#be8cff;--poison:#d6a0ff;--poison-edge:#ad67e3;--poison-surface:#432259;--shadow:#060711;--motion-scale:.125;--combo-duration:.2s}*{box-sizing:border-box}body{background:radial-gradient(circle at 50% 0%, #273064 0, transparent 36rem), repeating-linear-gradient(0deg, #ffffff05 0 1px, transparent 1px 4px), var(--deep);min-height:100vh;color:var(--ink);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.45}button{font:inherit}.game-shell{width:min(1120px,100% - 24px);margin:0 auto;padding:28px 0 20px}.game-header,.run-bar,.battlefield,.window,.result-card{border:3px solid var(--line);box-shadow:6px 6px 0 var(--shadow), inset 0 0 0 2px #0d1128}.game-header{background:linear-gradient(135deg,#222a58,#151a38);justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.header-actions{gap:8px;display:flex}.eyebrow{color:var(--gold);letter-spacing:.14em;margin:0 0 4px;font-size:.72rem}h1,h2,h3,p{margin-top:0}h1{text-transform:uppercase;margin-bottom:0;font-size:clamp(1.2rem,4vw,2rem)}h2{color:var(--gold);font-size:1.15rem}h3{margin-bottom:6px;font-size:.92rem}.run-bar{background:#0e132c;grid-template-columns:repeat(4,1fr);gap:1px;margin:14px 0;padding:10px 14px;display:grid}.run-stat{flex-direction:column;gap:2px;display:flex}.run-stat span{color:var(--muted);text-transform:uppercase;font-size:.7rem}.run-stat strong{color:var(--ink)}.battlefield{background:linear-gradient(#0000 0 62%,#0b0e20d6 62%),repeating-linear-gradient(90deg,#0000 0 60px,#ffffff06 60px 62px),linear-gradient(#353f78,#63608a 61%,#393a5e 62%,#252944);min-height:420px;position:relative;overflow:hidden}.battlefield:before{content:"";opacity:.35;background:linear-gradient(135deg,#0000 38%,#0c1027 39% 61%,#0000 62%) 0 0/190px 100%,linear-gradient(45deg,#0000 38%,#181b39 39% 61%,#0000 62%) 90px 8px/220px 100%;height:48%;position:absolute;inset:13% 0 auto}.combatants{z-index:1;grid-template-columns:minmax(250px,1fr) minmax(250px,1fr);align-items:end;gap:48px;min-height:280px;padding:28px clamp(18px,5vw,64px) 10px;display:grid;position:relative}.team-column,.enemy-column{justify-content:center;align-items:end;gap:clamp(14px,4vw,48px);display:flex}.combatant{min-width:96px;color:var(--ink);text-align:center;cursor:pointer;background:0 0;border:0;padding:8px;position:relative}.combatant.targetable:hover,.combatant.selected{outline:3px solid var(--gold);background:#ffd1661a}.combatant.ko{filter:grayscale();opacity:.45}.combatant.active .sprite-stage{animation:.7s steps(2,end) infinite active-bob}.combatant.active:after{content:"▼";color:var(--gold);position:absolute;top:-14px;left:50%}.sprite-stage{place-items:center;height:112px;display:grid}.sprite-stage.enemy{transform:scaleX(-1)}.pixel-sprite{--skin:#e9b18a;--cloth:#6bbcff;--dark:#27305c;filter:drop-shadow(7px 7px #00000059);width:52px;height:74px;image-rendering:pixelated;position:relative}.pixel-sprite i{display:block;position:absolute}.pixel-head{background:var(--skin);width:28px;height:25px;box-shadow:-5px 5px 0 var(--skin), 5px 5px 0 var(--skin), 0 -5px 0 var(--dark);top:6px;left:16px}.pixel-body{background:var(--cloth);width:36px;height:30px;box-shadow:0 6px 0 var(--dark);top:32px;left:12px}.pixel-arm{background:var(--skin);width:9px;height:28px;top:35px}.pixel-arm.left{box-shadow:0 -4px 0 var(--cloth);left:1px}.pixel-arm.right{box-shadow:0 -4px 0 var(--cloth);right:-5px}.pixel-leg{background:var(--dark);width:12px;height:13px;top:62px}.pixel-leg.left{left:14px}.pixel-leg.right{right:4px}.sprite-mage{--cloth:#a77bff;--dark:#472d78}.sprite-mender{--cloth:#75e6a4;--dark:#245b4b}.sprite-slime{--skin:#75e6a4;--cloth:#54ba8c;--dark:#183f42;transform:scale(.75)}.sprite-bat{--skin:#c59cff;--cloth:#713f9c;--dark:#2f1c4f;transform:scale(.72)}.sprite-brute{--skin:#cb8a60;--cloth:#be5d4b;--dark:#532f38;transform:scale(1.08)}.sprite-wisp{--skin:#8de7ff;--cloth:#3ea6d6;--dark:#245585;transform:scale(.7)}.sprite-guardian{--skin:#aaaeca;--cloth:#6c7194;--dark:#353953;transform:scale(1.15)}.sprite-boss{--skin:#ff8b82;--cloth:#8c2855;--dark:#3d1532;transform:scale(1.28)}.nameplate{background:#090c1dd9;border:2px solid #4c568c;margin-top:5px;padding:5px 7px;font-size:.72rem;position:relative}.nameplate strong{white-space:nowrap;display:block}.mini-bar{background:#2b2f4b;height:6px;margin-top:4px}.mini-bar>span{background:var(--green);height:100%;transition:width calc(.42s * var(--motion-scale)) steps(8, end);display:block}.mini-bar.mp>span{background:var(--blue)}.numbers{color:var(--muted);justify-content:space-between;gap:8px;font-size:.62rem;display:flex}.unit-resources{gap:2px;display:grid}.resource-mp .numbers{color:#b9e3ff}.combat-ui{z-index:2;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:10px;padding:10px;display:grid;position:relative}.window{background:#101634f5;min-height:110px;padding:12px 14px}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.action-button,.choice-card,.shop-card,.primary-button,.quiet-button{color:var(--ink);cursor:pointer;background:#293161;border:2px solid #6874ad;border-radius:0;padding:10px 12px;box-shadow:3px 3px #080a19}.action-button:hover:not(:disabled),.choice-card:hover:not(:disabled),.shop-card:hover:not(:disabled),.primary-button:hover,.quiet-button:hover{border-color:var(--gold);transform:translate(-1px,-1px)}button:disabled{opacity:.42;cursor:not-allowed}.primary-button{background:#6e3fa2;border-color:#c19aff}.quiet-button{padding:8px 10px;font-size:.75rem}.text-button{color:var(--muted);cursor:pointer;background:0 0;border:0;text-decoration:underline}.button-cost{color:var(--muted);margin-top:2px;font-size:.62rem;display:block}.combat-log{height:84px;color:var(--muted);font-size:.72rem;overflow:auto}.combat-log p{margin-bottom:4px}.combat-log p:last-child{color:var(--ink)}.phase-screen{place-items:center;min-height:520px;padding:28px;display:grid}.result-card{background:linear-gradient(145deg,#202750,#121731);width:min(760px,100%);padding:clamp(20px,5vw,44px)}.reward-line{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.reward-chip{color:var(--gold);background:#0f1430;border:2px solid #4d588e;padding:6px 10px}.choice-grid,.shop-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0;display:grid}.choice-card,.shop-card{text-align:left;min-height:130px}.choice-card strong,.shop-card strong{color:var(--gold);margin-bottom:7px;display:block}.choice-card span,.shop-card span{color:var(--muted);font-size:.75rem}.price{margin-top:12px;display:block;color:var(--gold)!important}.party-select{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.party-pill{color:var(--ink);cursor:pointer;background:#171d3d;border:2px solid #505a8f;padding:7px 10px}.party-pill.selected{border-color:var(--gold);color:var(--gold)}.party-summary{gap:8px;margin:18px 0;display:grid}.summary-row{border-left:3px solid var(--blue);background:#10152f;grid-template-columns:1fr repeat(5,auto);gap:14px;padding:9px 10px;display:grid}.summary-row span{color:var(--muted)}.shop-message{min-height:22px;color:var(--green)}.danger{color:var(--red)}.muted{color:var(--muted)}.kicker{color:var(--violet);text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}footer{color:var(--muted);justify-content:space-between;gap:16px;margin-top:14px;font-size:.68rem;display:flex}body.reduce-motion *,body.reduce-motion :before,body.reduce-motion :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@keyframes active-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media (max-width:720px){.game-shell{width:min(100% - 12px,620px);padding-top:8px}.game-header{padding:12px}.run-bar{grid-template-columns:repeat(2,1fr)}.battlefield{min-height:610px}.combatants{grid-template-columns:1fr;gap:4px;min-height:380px;padding:20px 8px 4px}.team-column,.enemy-column{gap:5px;min-height:170px}.sprite-stage{transform-origin:bottom;height:92px;transform:scale(.82)}.sprite-stage.enemy{transform:scaleX(-1)scale(.82)}.combatant{min-width:82px;padding:4px}.combat-ui,.choice-grid,.shop-grid{grid-template-columns:1fr}.choice-card,.shop-card{min-height:auto}.summary-row{grid-template-columns:1fr 1fr}footer{flex-direction:column}}.vertical-battlefield{background:linear-gradient(#0e112a1a,#1318388a),repeating-linear-gradient(90deg,#0000 0 60px,#ffffff06 60px 62px),linear-gradient(#30386d,#535783 42%,#33375d 43%,#202744 72%,#11162f);min-height:790px}.vertical-battlefield:before{height:46%;inset:5% 0 auto}.combat-zone{z-index:1;place-items:center;min-height:210px;padding:26px 18px 8px;display:grid;position:relative}.enemy-zone{padding-top:36px}.ally-zone{min-height:200px;padding-top:10px}.enemy-row,.ally-row{justify-content:center;align-items:end;gap:clamp(12px,5vw,60px);width:100%;display:flex}.zone-label{color:#f6efc48c;letter-spacing:.16em;font-size:.64rem;position:absolute;top:10px;left:16px}.ally-zone .zone-label{top:auto;bottom:6px}.battle-divider{z-index:2;color:var(--muted);background:linear-gradient(90deg,#0000,#586397,#0000) 50%/100% 1px no-repeat;border:0;justify-content:space-between;align-items:center;gap:18px;margin:0 14px;padding:8px 12px;font-size:.66rem;display:flex;position:relative}.fire-text{color:#ff8a6b}.water-text{color:#71d2ff}.wind-text{color:#9cf0b4}.combatant>.element-badge{z-index:3;white-space:nowrap;position:absolute;top:0;left:50%;transform:translate(-50%)}.nameplate small{color:var(--muted);white-space:nowrap;font-size:.58rem;display:block}.battle-action-banner{z-index:12;border:2px solid var(--gold);min-width:min(360px,82%);color:var(--ink);box-shadow:4px 4px 0 var(--shadow);text-align:center;pointer-events:none;animation:banner-in calc(.28s * var(--motion-scale)) steps(4, end) both;background:#080b1bf0;flex-direction:column;align-items:center;padding:7px 12px;display:flex;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)}.battle-action-banner span{color:var(--blue);letter-spacing:.1em;font-size:.58rem}.battle-action-banner strong{color:var(--gold);font-size:.78rem}.combatant.acting{z-index:9;animation:ally-lunge calc(.3s * var(--motion-scale)) steps(5, end) both}.enemy-zone .combatant.acting{animation-name:enemy-lunge}.impact-fx{z-index:11;color:var(--red);text-shadow:3px 3px #3a101b;pointer-events:none;animation:impact-rise calc(.55s * var(--motion-scale)) steps(6, end) both;font-size:1.25rem;font-weight:900;position:absolute;top:24%;left:50%}.impact-fx.heal{color:var(--green);text-shadow:3px 3px #103728}.impact-fx.poison,.impact-fx.status.poison{color:var(--poison);text-shadow:3px 3px #291039}.unit-status .status-poison{color:var(--poison)}@keyframes poison-flash{0%,to{background:#090c1dd9}45%{background:var(--poison-surface)}}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-40%)scale(.85)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes ally-lunge{0%{transform:translateY(0)}55%{transform:translateY(-12px)scale(1.08)}to{transform:translateY(0)}}@keyframes enemy-lunge{0%{transform:translateY(0)}55%{transform:translateY(12px)scale(1.08)}to{transform:translateY(0)}}@keyframes hit-flash{0%,to{background:#090c1dd9}40%{background:#892e42;transform:translate(4px)}60%{transform:translate(-4px)}}@keyframes heal-flash{0%,to{background:#090c1dd9}45%{background:#1d6a55}}@keyframes impact-rise{0%{opacity:0;transform:translate(-50%,12px)scale(.7)}25%{opacity:1;transform:translate(-50%)scale(1.2)}to{opacity:0;transform:translate(-50%,-26px)scale(1)}}.element-badge{background:#10152f;border:1px solid;align-items:center;gap:4px;width:max-content;padding:4px 7px;font-size:.66rem;font-style:normal;display:inline-flex}.element-badge.compact{padding:2px 5px;font-size:.58rem}.element-fire{color:#ff8a6b}.element-water{color:#71d2ff}.element-wind{color:#9cf0b4}.element-earth{color:#d6a866}.combatant>.enemy-element-charge{z-index:4;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;background:#090f20f5;border:1px solid;border-radius:6px;align-items:center;gap:3px;max-width:calc(100% - 8px);padding:3px 5px;font:800 .875rem/1.2 ui-monospace,monospace;display:inline-flex;position:absolute;top:4px;left:4px;box-shadow:0 2px 4px #0008}.enemy-element-charge .skill-icon,.enemy-element-charge .skill-icon img{flex:0 0 18px;width:18px;height:18px}.enemy-element-charge .element-charge-count{text-overflow:ellipsis;color:#f1f4ff;min-width:0;overflow:hidden}.sprite-tidecaller{--cloth:#55c8ff;--dark:#245985}.sprite-ranger{--cloth:#8ce6a7;--dark:#285b45}.sprite-berserker{--cloth:#ff7657;--dark:#702e2b;transform:scale(1.08)}.sprite-duelist{--cloth:#e7d56b;--dark:#6e5c31}.sprite-geomancer{--cloth:#d6a866;--dark:#604832}.vertical-battlefield .combat-ui{grid-template-columns:minmax(0,1.45fr) minmax(240px,.55fr);padding-top:14px}.action-window{min-height:240px}.turn-heading,.section-heading,.progression-heading{justify-content:space-between;align-items:start;gap:20px;display:flex}.turn-heading h3{margin:2px 0 10px}.actor-summary{align-items:center;gap:8px;min-width:0;display:flex}.actor-avatar{width:48px;height:48px;color:var(--violet);flex:0 0 48px;place-items:center;display:grid}.actor-portrait{object-fit:contain;width:100%;height:100%;image-rendering:pixelated}.actor-identity{min-width:0}.actor-identity h3{margin:0}.actor-identity h3 small{color:var(--muted);font-size:.8em}.actor-class{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;display:block;overflow:hidden}.actor-vitals{font-variant-numeric:tabular-nums;flex:none;align-content:center;gap:2px;font:12px/18px system-ui,sans-serif;display:grid}.actor-vitals>span{justify-content:space-between;gap:12px;display:flex}.actor-vitals strong{font-size:14px}.actor-vitals small{font-size:inherit;font-weight:400}.actor-hp{color:#a6f1c7}.actor-mp{color:#b9e3ff}.target-copy{color:var(--muted);text-align:right;font-size:.66rem}.target-copy strong{color:var(--ink)}.category-window{flex-direction:column;display:flex}.category-choice-heading{color:var(--gold);justify-content:space-between;align-items:center;gap:10px;margin:2px 0 7px;font-size:.68rem;display:flex}.category-choice-heading small{color:var(--muted);font-size:.58rem}.category-choice-grid{flex:auto;grid-template-rows:repeat(2,minmax(72px,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.category-card{min-height:76px;color:var(--ink);text-align:left;cursor:pointer;background:linear-gradient(145deg,#272f5a,#171c3b);border:2px solid #566196;grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:2px 9px;padding:9px 11px;display:grid;position:relative}.category-card:hover:not(:disabled){border-color:var(--gold);transform:translateY(-1px)}.category-card:focus-visible{border-color:var(--gold);transform:translateY(-1px)}.category-card>b{width:42px;height:42px;color:var(--gold);background:#10152f;border:2px solid;grid-row:1/3;place-items:center;font-size:1.25rem;display:grid}.category-card>strong{color:var(--ink);font-size:.78rem}.category-card>span{color:var(--muted);font-size:.58rem}.category-card>small{color:var(--blue);text-align:right;grid-area:1/3/3;font-size:.54rem}.category-card:disabled{opacity:.42;cursor:default;filter:grayscale(.6)}.category-skill>b{color:var(--green)}.category-magic>b{color:var(--violet)}.category-item>b{color:var(--blue)}.action-detail-bar{border-block:1px solid #4a537f;align-items:center;gap:8px;margin-bottom:6px;padding:5px 0;display:flex}.action-detail-bar button{color:var(--ink);font:inherit;cursor:pointer;background:#171d3d;border:1px solid #5964a0;padding:5px 8px;font-size:.58rem}.action-detail-bar strong{color:var(--gold);font-size:.68rem}.action-detail-bar>span{color:var(--muted);margin-left:auto;font-size:.55rem}.action-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:6px;display:grid}.action-card{min-height:96px;color:var(--ink);text-align:left;cursor:pointer;background:linear-gradient(145deg,#272f5a,#1a2043);border:2px solid #566196;flex-direction:column;padding:9px 10px;display:flex}.action-card:hover:not(:disabled){border-color:var(--gold);transform:translateY(-1px)}.action-option{flex-direction:column;min-width:0;display:flex}.action-option .action-card{flex:1;width:100%}.action-help-button,.node-help-button{min-height:44px;color:var(--blue);border:1px solid var(--line);text-align:left;cursor:pointer;background:#11152b;padding:7px 10px;font:14px/1.3 system-ui,sans-serif}.action-help-button{border-top:0;justify-content:space-between;align-items:center;display:flex}:is(.action-help-button:focus-visible,.node-help-button:focus-visible){outline:2px solid var(--gold);outline-offset:-2px}.node-help-button{margin-top:6px}.ability-help{border:2px solid var(--line);width:min(600px,100vw - 16px);max-width:none;max-height:calc(100dvh - 24px);color:var(--ink);background:#151a36;margin:auto;padding:0;overflow:hidden;box-shadow:0 12px 60px #0009}.ability-help[open]{flex-direction:column;display:flex}.ability-help::backdrop{background:#050817cc}.ability-help-header{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.ability-help-header h2{color:var(--gold);overflow-wrap:anywhere;margin:0;font:700 19px/1.25 system-ui,sans-serif}.ability-help-header button{flex:none;min-height:44px;padding:8px 10px;font:14px/1.3 system-ui,sans-serif}.ability-help-content{overscroll-behavior:contain;min-height:0;padding:6px 16px max(16px, env(safe-area-inset-bottom));font:16px/1.5 system-ui,sans-serif;overflow-y:auto}.ability-help-content:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}.ability-help-content h3{margin:20px 0 8px;font:700 16px/1.4 system-ui,sans-serif}.ability-help-summary{font-weight:650}.ability-help-content ul{margin:8px 0;padding-left:22px}.ability-help-content li{margin:10px 0}.ability-help-meta,.ability-glossary{color:var(--muted);font-size:14px}.ability-examples{border-left:3px solid var(--blue);background:#252d50;padding:1px 12px 6px}.ability-glossary{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.action-top{justify-content:space-between;align-items:start;gap:8px;display:flex}.action-scope-badge{letter-spacing:.06em;text-align:center;border:2px solid;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:5px;padding:3px 6px;font-size:.58rem;font-weight:900;line-height:1;display:flex}.action-scope-badge b{font-size:.85rem}.action-scope-badge.all-enemies{color:#fff1d4;background:#7d2943;box-shadow:2px 2px #210914,0 0 12px #ff6b6b47}.action-scope-badge.all-allies{color:#e8fff0;background:#24634f;box-shadow:2px 2px #09251b}.action-description{color:#d5dced;overflow-wrap:anywhere;margin:5px 0 8px;font:.875rem/1.35 system-ui,sans-serif;display:block}.action-meta{color:var(--blue);text-transform:uppercase;justify-content:space-between;gap:8px;margin-top:auto;font-size:.58rem;display:flex}.empty-actions{color:var(--muted);border:1px dashed #4a527d;grid-column:1/-1;padding:12px}.action-pagination{color:var(--muted);justify-content:center;align-items:center;gap:10px;padding-top:6px;font-size:.62rem;display:flex}.action-pagination button{width:34px;color:var(--ink);cursor:pointer;background:#171d3d;border:1px solid #5964a0}.vertical-battlefield .combat-log{height:240px}.turn-plan{gap:5px;margin:4px 0 7px;display:flex;overflow-x:auto}.plan-chip{min-width:118px;color:var(--muted);text-align:left;cursor:pointer;background:#10152f;border:1px solid #4f598c;grid-template-columns:1fr auto;padding:4px 6px;display:grid}.plan-chip span{grid-column:1;font-size:.53rem}.plan-chip strong{color:var(--ink);white-space:nowrap;grid-column:1;font-size:.62rem}.plan-chip small{color:var(--blue);grid-area:1/2/3;align-self:center;font-size:.5rem}.plan-chip.planned{border-color:var(--green)}.plan-chip.pending{border-style:dashed}.plan-chip.current{border:1px solid var(--gold);box-shadow:inset 0 -2px var(--gold);background:#2d2b40}.plan-chip.current span{color:var(--gold)}.plan-chip:focus-visible{outline:2px solid var(--blue);outline-offset:-3px}.initiative-strip{gap:5px;margin:7px 0;padding-bottom:3px;display:flex;overflow-x:auto}.initiative-chip{min-width:max-content;color:var(--ink);background:#111630;border:1px solid #586397;align-items:center;gap:5px;padding:5px 7px;font-size:.62rem;display:inline-flex}.initiative-chip b{width:18px;height:18px;color:var(--deep);background:var(--blue);place-items:center;display:grid}.initiative-chip.hero{border-color:var(--green)}.initiative-chip.enemy{border-color:var(--red)}.initiative-chip.enemy b{background:var(--red)}.initiative-chip small{color:var(--muted);font-size:.48rem}.earth-text{color:#e1b976}.reaction-fx{z-index:8;pointer-events:none;filter:drop-shadow(3px 4px #0000008c);min-width:120px;animation:reaction-pop var(--combo-duration) steps(8, end) both;flex-direction:column;align-items:center;display:flex;position:absolute;top:26px;left:50%;transform:translate(-50%)}.reaction-fx strong{text-align:center;background:#0b0e20;border:2px solid;max-width:190px;padding:4px 7px;font-size:.72rem}.reaction-fx b{margin-top:4px;font-size:1rem}.fx-blaze,.fx-heat,.fx-magma{color:#ff8a56;text-shadow:0 -6px #ffca63,6px 2px #d33f49,-6px 2px #d33f49}.fx-tide,.fx-frost{color:#76d9ff;text-shadow:0 6px #277db5,6px 0 #d6f6ff,-6px 0 #d6f6ff}.fx-storm{color:#a3f6b9;text-shadow:7px 0 #5fbf84,-7px 0 #5fbf84}.fx-quake,.fx-mud,.fx-sand{color:#e2ba78;text-shadow:0 6px #79553a,6px 4px #9a7047,-6px 4px #9a7047}.fx-steam{color:#c3ccda;text-shadow:6px -3px #6f8098,-6px -3px #6f8098}.fx-magma{text-shadow:0 6px #7d2b28,7px 0 #e4a348,-7px 0 #e4a348}@keyframes reaction-pop{0%{opacity:0;transform:translate(-50%,18px)scale(.4)}22%{opacity:1;transform:translate(-50%,-8px)scale(1.16)}72%{opacity:1;transform:translate(-50%,-14px)scale(1)}to{opacity:0;transform:translate(-50%,-28px)scale(.9)}}.combo-burst{z-index:24;width:min(440px,88%);box-shadow:0 0 0 4px #080b1bd1, 0 0 36px currentColor, 7px 7px 0 var(--shadow);text-align:center;pointer-events:none;animation:combo-reveal var(--combo-duration) steps(9, end) both;background:#070918f5;border:4px double;place-items:center;padding:14px 18px;display:grid;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)}.combo-burst>span{color:var(--ink);letter-spacing:.2em;font-size:.62rem;font-weight:900}.combo-burst>strong{color:currentColor;margin:5px 0 2px;font-size:1.24rem;line-height:1.1}.combo-burst>b{color:var(--deep);letter-spacing:.08em;text-shadow:none;background:currentColor;margin-top:6px;padding:4px 8px;font-size:.78rem}.combo-elements{flex-wrap:wrap;justify-content:center;gap:4px;margin-top:3px;font-style:normal;display:flex}body.prototype-fast .combatant.active .sprite-stage,body.prototype-fast .skill-map-node.available,body.prototype-fast .combatant.hit .nameplate,body.prototype-fast .combatant.healed .nameplate,body.prototype-fast .vertical-battlefield.has-combo .battle-divider{animation:none}body.prototype-fast .combatant.hit .nameplate{box-shadow:inset 0 0 0 2px var(--red)}body.prototype-fast .combatant.healed .nameplate{box-shadow:inset 0 0 0 2px var(--green)}@keyframes combo-reveal{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)rotate(-2deg)}16%{opacity:1;transform:translate(-50%,-50%)scale(1.14)rotate(1deg)}30%,78%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-60%)scale(.92)}}@keyframes combo-divider-flash{0%,to{filter:brightness()}20%,60%{filter:brightness(2.2);box-shadow:0 0 28px}}.progression-card,.shop-result-card{width:min(980px,100%)}.hero-stats{flex-wrap:wrap;justify-content:end;gap:6px;display:flex}.hero-stats span{color:var(--muted);background:#0e1430;border:1px solid #48517e;padding:5px 7px;font-size:.65rem}.skill-tree{gap:12px;margin:22px 0;display:grid}.tree-tier{background:#0c1128b3;border:2px solid #4c5788;padding:32px 14px 14px;position:relative}.tier-label{color:var(--blue);letter-spacing:.12em;font-size:.64rem;position:absolute;top:8px;left:12px}.tree-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.tree-grid.tier-two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:520px;margin:0 auto}.tree-node{min-height:148px;color:var(--muted);text-align:left;background:#11152e;border:2px solid #3f466a;flex-direction:column;align-items:start;padding:10px;display:flex;position:relative}.tree-node strong{color:var(--ink);margin:7px 0 4px;display:block}.tree-node>span:not(.node-type):not(.element-badge){font-size:.68rem}.tree-node small{color:#8991b2;margin-top:8px;font-size:.58rem}.tree-node em{color:#6e7699;letter-spacing:.1em;margin-top:auto;padding-top:10px;font-size:.58rem;font-style:normal}.tree-node.available{border-color:var(--gold);color:var(--ink);cursor:pointer;background:#29264b;box-shadow:0 0 18px #ffd1661f}.tree-node.available em{color:var(--gold)}.tree-node.available:hover{transform:translateY(-2px)}.tree-node.unlocked{border-color:var(--green);opacity:1;background:#172f37}.tree-node.unlocked em{color:var(--green)}.tree-node.locked{opacity:.58}.node-type{color:var(--violet);letter-spacing:.1em;font-size:.54rem}.tree-bridge{color:var(--gold);text-align:center;letter-spacing:.12em;font-size:.68rem}.hidden-tier{opacity:.4;filter:grayscale()}.selection-hint{color:var(--gold);text-align:center}.tree-browser-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.skill-map-toolbar{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin:14px 0 6px;font-size:.68rem;display:flex}.skill-map-controls{flex:none;align-items:center;gap:4px;display:flex}.skill-map-controls button{min-width:32px;height:30px;color:var(--ink);font:inherit;cursor:pointer;background:#171d3d;border:1px solid #5964a0;padding:0 8px;font-weight:900}.skill-map-controls button:active{background:#292f5a;transform:translateY(1px)}.skill-map-controls output{min-width:48px;color:var(--blue);text-align:center;font-size:.58rem}.skill-map-controls .center-map-button{min-width:0;color:var(--muted);font-weight:500}.skill-map-viewport{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(circle,#7e8fff1f 0 2px,#0000 3px) 0 0/28px 28px,radial-gradient(circle,#26305d 0,#11162f 70%);border:3px solid #505b91;width:100%;height:min(58vh,560px);min-height:430px;position:relative;overflow:hidden;box-shadow:inset 0 0 55px #070a19}.skill-map-viewport.dragging{cursor:grabbing}.skill-map-canvas{transform-origin:0 0;will-change:transform;width:900px;height:720px;position:absolute;top:0;left:0}.skill-links{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.skill-link{stroke:#3e4669;stroke-width:5px;stroke-dasharray:9 7}.skill-link.available{stroke:var(--gold);stroke-dasharray:none;filter:drop-shadow(0 0 5px #ffd166b3)}.skill-link.unlocked{stroke:var(--green);stroke-dasharray:none}.skill-link.class-locked{stroke:#30354d}.skill-map-legend{color:#c4c9dd;flex-wrap:wrap;align-items:center;gap:4px 16px;margin:4px 8px 8px;font:14px/1.35 system-ui,sans-serif;display:flex}.skill-map-legend>span{align-items:center;gap:5px;display:inline-flex}.skill-map-legend .legend-open{color:var(--gold)}.skill-map-legend .interface-icon{width:16px;height:16px}.node-prerequisites{grid-column:1/-1;gap:8px;margin-top:12px;display:grid}.node-prerequisites p{color:var(--ink);margin:0;font:14px/1.4 system-ui,sans-serif}.node-prerequisites button{width:100%;min-height:48px;color:var(--ink);text-align:left;cursor:pointer;background:#15243c;border:1px solid #7aaad1;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:10px 12px;font:14px/1.35 system-ui,sans-serif;display:flex}.node-prerequisites button small{color:#a9d6fa;align-items:center;gap:4px;display:inline-flex}.node-prerequisites button .interface-icon{width:16px;height:16px}.node-prerequisites button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.class-boundary{z-index:1;pointer-events:none;border:3px dashed #79c7ff61;border-radius:50%;width:600px;height:520px;position:absolute;top:90px;left:150px}.class-boundary span{color:#8ea6cf;letter-spacing:.1em;text-align:center;background:#10152f;border:1px solid #536195;width:max-content;max-width:420px;padding:5px 9px;font-size:.58rem;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.skill-map-node{z-index:3;color:#6f7690;text-align:center;cursor:pointer;background:radial-gradient(circle,#1c213d,#0e1228);border:3px solid #414966;border-radius:50%;place-items:center;width:68px;height:68px;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 7px #080a17}.node-pictogram{filter:grayscale(.4);font-size:1.45rem;line-height:1}.unit-status{color:#b6e8a7;min-height:1em;font-size:.6rem;display:block}.element-poison{color:var(--poison);border-color:var(--poison-edge)}.element-ring-poison{border-color:var(--poison)}.fx-poison,.combo-burst.has-poison{color:var(--poison);text-shadow:0 0 12px var(--poison-edge)}.ally-row.with-summons{gap:4px}.ally-row.with-summons .combatant{flex:1 1 0;width:19%;min-width:0}.node-cost{width:23px;height:23px;color:var(--ink);background:#10152f;border:2px solid #555d81;border-radius:50%;place-items:center;font-size:.58rem;font-weight:800;display:grid;position:absolute;bottom:-4px;right:-5px}.node-lock{color:#e6e9fa;background:#171d36;border:2px solid #9da7ca;border-radius:50%;place-items:center;width:27px;height:27px;display:grid;position:absolute;bottom:-5px;left:-7px}.node-lock :is(svg,.interface-icon){fill:currentColor;shape-rendering:crispedges;width:18px;height:18px}.skill-map-node.available{border-color:var(--gold);color:var(--ink);cursor:pointer;background:radial-gradient(circle,#4a3c55,#221d3d);animation:1.4s steps(3,end) infinite node-pulse;box-shadow:0 7px #080a17,0 0 22px #ffd16661}.skill-map-node.available:hover{transform:translate(-50%,calc(-50% - 3px))}.skill-map-node.unlocked{border-color:var(--green);color:var(--ink);background:radial-gradient(circle,#214a49,#10272e);box-shadow:0 7px #080a17,0 0 18px #75e6a433}.skill-map-node.class-locked{color:#555a6d;filter:grayscale();background:#0d1021;border-color:#353a50}.skill-map-node.branch-foreign{opacity:.52;cursor:default}.skill-map-node.branch-foreign .node-pictogram{color:#666b7e;filter:grayscale()blur(.2px)}.skill-map-node.branch-foreign .node-cost{color:#777c8e;background:#0a0d1b;border-color:#3b4054}.skill-map-node.branch-chosen{outline-offset:4px;outline:2px solid #be8cff9e}.skill-map-node.no-points{color:#aaa2bf;border-color:#6a6285}.skill-map-node.selected{outline:3px solid var(--blue);outline-offset:5px}.skill-map-node[data-select-node=root]{border-width:5px}.element-ring-fire{box-shadow:0 7px #080a17,0 0 0 3px #ff765738}.element-ring-water{box-shadow:0 7px #080a17,0 0 0 3px #55c8ff38}.element-ring-wind{box-shadow:0 7px #080a17,0 0 0 3px #8ce6a738}.element-ring-earth{box-shadow:0 7px #080a17,0 0 0 3px #d6a86638}.skill-detail-card{z-index:9;border:2px solid var(--blue);min-height:118px;color:var(--ink);box-shadow:5px 5px 0 var(--shadow);background:#0c1128f7;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 42px 12px 14px;display:grid;position:absolute;bottom:12px;left:12px;right:12px}.detail-close{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1.2rem;position:absolute;top:5px;right:7px}.detail-icon{background:#161b38;border:2px solid #5964a0;border-radius:50%;place-items:center;width:54px;height:54px;font-size:1.35rem;display:grid}.detail-copy span{color:var(--violet);letter-spacing:.1em;text-transform:uppercase;font-size:.55rem}.detail-copy h3{color:var(--gold);margin:2px 0}.detail-copy p{color:var(--muted);margin:0 0 4px;font-size:.66rem}.detail-copy small{color:var(--blue);margin-top:4px;font-size:.56rem;display:block}.detail-buy{min-width:170px}.detail-state{color:var(--green);border:1px solid var(--green);padding:7px 10px;font-size:.62rem}.skill-detail-card.undiscovered{border-color:var(--violet)}.node-known{color:var(--green);background:#10152f;border-radius:50%;font-size:14px;position:absolute;top:-5px;left:-5px}.node-rank{color:#dadff4;background:#10152f;border-radius:7px;min-width:19px;padding:2px 3px;font-size:10px;font-weight:800;line-height:14px;position:absolute;top:-6px;right:-5px}.branch-foreign .node-rank{color:#777c8e}.discovery-status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0;font:14px/1.3 system-ui,sans-serif;display:flex}.discovery-status button{padding:5px 8px;font-size:14px}.skill-detail-card .detail-copy p{font:14px/1.4 system-ui,sans-serif}.skill-detail-card .detail-copy small{font:14px/1.3 system-ui,sans-serif}.skill-detail-card .detail-copy>span{font:12px/1.3 system-ui,sans-serif}.skill-detail-card{max-height:calc(100% - 12px);overflow-y:auto}@keyframes node-pulse{0%,to{filter:brightness()}50%{filter:brightness(1.25)}}.evolution-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:22px;display:grid}.evolution-card,.recruit-card{color:var(--ink);text-align:left;cursor:pointer;background:linear-gradient(145deg,#292e5a,#161b39);border:2px solid #5964a0;flex-direction:column;align-items:start;gap:8px;padding:18px;display:flex}.evolution-card:hover:not(:disabled),.recruit-card:hover:not(:disabled){border-color:var(--gold);transform:translateY(-2px)}.evolution-card strong,.recruit-card strong{color:var(--gold);font-size:1rem}.evolution-card span:not(.element-badge),.recruit-card span:not(.element-badge){color:var(--muted);font-size:.75rem}.evolution-card small{color:var(--blue)}.recruitment-section,.merchant-section{border-top:2px solid #4e588b;margin:22px 0;padding-top:18px}.section-heading h3{color:var(--gold);margin:0;font-size:1.05rem}.section-heading>span,.section-heading>strong{color:var(--gold)}.recruit-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0;display:grid}.recruit-card{text-align:center;align-items:center;min-height:270px;padding:12px}.recruit-card .sprite-stage{height:110px}.recruit-card>div:last-child{gap:5px;margin-top:auto;display:flex}.shop-result-card .shop-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:820px){.vertical-battlefield{min-height:860px}.vertical-battlefield .combat-ui{grid-template-columns:1fr}.vertical-battlefield .combat-log{height:140px}.tree-grid,.shop-result-card .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.vertical-battlefield{min-height:910px}.combat-zone{min-height:185px;padding-inline:4px}.enemy-row,.ally-row{gap:0}.vertical-battlefield .combatant{min-width:30%;max-width:34%}.vertical-battlefield .sprite-stage{margin-inline:-8px;transform:scale(.72)}.vertical-battlefield .sprite-stage.enemy{transform:scaleX(-1)scale(.72)}.battle-divider{flex-direction:column;align-items:start;gap:3px}.reaction-legend{text-align:left}.action-list,.tree-grid,.tree-grid.tier-two,.evolution-grid,.recruit-grid,.shop-result-card .shop-grid{grid-template-columns:1fr}.action-card{min-height:84px}.recruit-card{min-height:220px}.turn-heading,.progression-heading{flex-direction:column;gap:4px}.target-copy{text-align:left}.hero-stats{justify-content:start}}@media (max-width:720px){body.combat-mode{overscroll-behavior:none;-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%;overflow:hidden}html:has(body.combat-mode){overscroll-behavior:none;-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%;overflow:hidden}body.combat-mode .game-shell{width:100%;height:100vh;height:100dvh;padding:max(2px, env(safe-area-inset-top)) max(2px, env(safe-area-inset-right)) max(2px, env(safe-area-inset-bottom)) max(2px, env(safe-area-inset-left));grid-template-rows:auto auto minmax(0,1fr);margin:0;display:grid;overflow:hidden}body.combat-mode .game-header{min-height:48px;box-shadow:2px 2px 0 var(--shadow);border-width:2px;gap:6px;padding:0 5px}body.combat-mode .game-header>div:first-child{min-width:0}body.combat-mode .game-header h1{font-size:clamp(12px,3.3vw,16px);line-height:1.2}body.combat-mode .eyebrow{display:none}body.combat-mode .header-actions{flex-shrink:0;gap:4px}body.combat-mode .quiet-button{min-width:44px;max-width:92px;min-height:44px;box-shadow:none;padding:3px 6px;font:12px/15px system-ui,sans-serif}body.combat-mode .run-bar{min-height:26px;box-shadow:2px 2px 0 var(--shadow);border-width:2px;grid-template-columns:repeat(3,minmax(0,1fr));margin:2px 0;padding:2px 5px}body.combat-mode .run-stat{white-space:nowrap;flex-direction:row;justify-content:center;align-items:center;gap:5px}body.combat-mode .run-stat span{text-transform:none;font:11px/16px system-ui,sans-serif}body.combat-mode .run-stat strong{font-variant-numeric:tabular-nums;font:700 13px/16px system-ui,sans-serif}body.combat-mode .run-mode{display:none}body.combat-mode #screen{min-height:0;overflow:hidden}body.combat-mode .vertical-battlefield{--command-height:clamp(228px, 38dvh, 270px);grid-template-rows:minmax(100px, 1fr) 22px minmax(100px, 1fr) var(--command-height);width:100%;height:100%;min-height:0;box-shadow:2px 2px 0 var(--shadow);border-width:2px;display:grid;overflow:hidden}body.combat-mode .vertical-battlefield:has(.action-detail-window){--command-height:clamp(260px, 42dvh, 304px)}body.combat-mode .combat-zone{flex-direction:column;align-items:stretch;min-height:0;padding:2px 1px;display:flex;overflow:hidden}body.combat-mode .zone-label{display:none}body.combat-mode .enemy-row,body.combat-mode .ally-row{flex:1 1 0;align-items:stretch;gap:2px;height:auto;min-height:0}body.combat-mode .combatant{grid-template-rows:minmax(0,1fr) auto;width:calc(33.3333% - 1.33333px);min-width:0;max-width:33.333%;height:auto;min-height:0;padding:0;display:grid;overflow:hidden}body.combat-mode .combatant.selected{box-shadow:inset 0 0 0 2px var(--gold);outline:none}body.combat-mode .ally-row.with-summons{scrollbar-width:thin;touch-action:pan-x;justify-content:safe center;overflow:auto hidden}body.combat-mode .ally-row.with-summons .combatant{flex:1 0 88px;min-width:88px;max-width:25%;padding:0 1px}body.combat-mode .ally-row.with-summons .nameplate{padding:2px}body.combat-mode .ally-row.with-summons .pixel-sprite{transform:scale(.45)}body.combat-mode .unit-status{white-space:nowrap;text-overflow:ellipsis;min-height:14px;max-height:14px;font:11px/14px system-ui,sans-serif;overflow:hidden}body.combat-mode .unit-status:empty{display:block}body.combat-mode .sprite-stage,body.combat-mode .sprite-stage.enemy{justify-content:center;align-items:center;height:auto;min-height:0;display:flex;overflow:hidden;transform:none}body.combat-mode .pixel-sprite{transform-origin:50%;flex-shrink:0;transform:scale(.58)}body.combat-mode .sprite-stage.enemy .pixel-sprite{transform:scaleX(-1)scale(.58)}body.combat-mode .nameplate{background:#10152f;border-width:1px;width:100%;min-width:0;margin:0;padding:2px 3px 3px;font:700 13px/16px system-ui,sans-serif}body.combat-mode .nameplate strong{text-overflow:ellipsis;overflow:hidden}body.combat-mode .nameplate small{display:none}body.combat-mode .unit-resources{gap:3px}body.combat-mode .mini-bar{height:4px;margin-top:0}body.combat-mode .numbers{color:#f1f4ff;font-variant-numeric:tabular-nums;white-space:nowrap;gap:2px;font:600 12px/16px system-ui,sans-serif}body.combat-mode .numbers>span:last-child{text-align:right;min-width:0}body.combat-mode .resource-mp .numbers{color:#b9e3ff}body.combat-mode .ally-row.with-summons .numbers{font-size:11px}body.combat-mode .combatant>.element-badge{font-size:.44rem;top:0}body.combat-mode .combatant.active:after{font-size:.55rem;top:0}body.combat-mode .reaction-fx{transform-origin:50%;top:20%}body.combat-mode .reaction-fx strong{padding:2px 4px;font-size:.5rem}body.combat-mode .reaction-fx b{font-size:.72rem}body.combat-mode .combo-burst{width:91%;box-shadow:0 0 0 2px #080b1bd1, 0 0 24px currentColor, 3px 3px 0 var(--shadow);border-width:3px;padding:8px 10px;top:40%}body.combat-mode .combo-burst>span{font-size:.48rem}body.combat-mode .combo-burst>strong{margin:3px 0 1px;font-size:.82rem}body.combat-mode .combo-burst>b{margin-top:3px;padding:2px 5px;font-size:.58rem}body.combat-mode .combo-elements .element-badge{padding:1px 3px;font-size:.42rem}body.combat-mode .battle-action-banner{min-width:76%;padding:4px 7px;top:41%}body.combat-mode .battle-action-banner span{font-size:.43rem}body.combat-mode .battle-action-banner strong{font-size:.6rem}body.combat-mode .impact-fx{font-size:.86rem;top:16%}body.combat-mode .battle-divider{border-width:1px;min-height:0;margin:0 4px;padding:2px 5px;font:11px/16px system-ui,sans-serif;overflow:hidden}body.combat-mode .vertical-battlefield .combat-ui{min-height:0;padding:3px 1px 1px;display:block;overflow:hidden}body.combat-mode .action-window{height:100%;min-height:0;box-shadow:none;border-width:2px;flex-direction:column;padding:4px;display:flex;overflow:hidden}body.combat-mode .turn-heading{flex-direction:row;flex:none;align-items:center;gap:6px;min-height:46px;margin-bottom:3px}body.combat-mode .actor-summary{gap:4px;overflow:hidden}body.combat-mode .actor-avatar{flex-basis:34px;width:34px;height:40px}body.combat-mode .turn-heading .kicker{letter-spacing:0;font:11px/14px system-ui,sans-serif;display:block}body.combat-mode .turn-heading h3{margin:0;font:700 14px/17px system-ui,sans-serif}body.combat-mode .actor-class{font:11px/14px system-ui,sans-serif}body.combat-mode .action-detail-window .turn-heading{min-height:36px}body.combat-mode .action-detail-window .actor-avatar{flex-basis:30px;width:30px;height:32px}body.combat-mode .action-detail-window .actor-class{display:none}body.combat-mode .category-choice-grid{overscroll-behavior:contain;grid-template-rows:repeat(2,minmax(50px,1fr));gap:4px;min-height:0;overflow-y:auto}body.combat-mode .category-card{border-width:1px;grid-template-columns:26px minmax(0,1fr);gap:0 6px;min-height:50px;padding:4px 6px}body.combat-mode .category-card>b{border-width:1px;width:26px;height:26px;font-size:16px}body.combat-mode .category-card>strong{font:600 14px/18px system-ui,sans-serif}body.combat-mode .category-card>span{display:none}body.combat-mode .category-card>small{text-align:left;grid-area:2/2;font:11px/14px system-ui,sans-serif}body.combat-mode .action-detail-bar{flex:none;gap:6px;min-width:0;margin-bottom:3px;padding:0}body.combat-mode .action-detail-bar button{flex:none;min-width:64px;min-height:44px;padding:3px 6px;font:12px/16px system-ui,sans-serif}body.combat-mode .action-detail-bar>strong{font:600 12px/16px system-ui,sans-serif}body.combat-mode .action-detail-bar .target-copy{text-align:right;min-width:0;font:11px/14px system-ui,sans-serif}body.combat-mode .target-copy strong{color:var(--ink);font:600 11px/14px system-ui,sans-serif;display:block}body.combat-mode .action-list{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;flex:1 1 0;grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;align-items:start;gap:5px;min-height:0;margin:0;overflow-y:auto}body.combat-mode .action-list:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}body.combat-mode .action-card{overflow-wrap:anywhere;border-width:1px;min-width:0;min-height:44px;padding:6px}body.combat-mode .action-top{flex-wrap:wrap;gap:3px}body.combat-mode .action-card strong{font-size:.875rem;line-height:1.2}body.combat-mode .action-card .element-badge{flex-shrink:0;padding:1px 3px;font-size:.75rem}body.combat-mode .action-scope-badge{border-width:1px;flex:none;margin-top:2px;padding:2px 3px;font-size:.75rem}body.combat-mode .action-scope-badge b{font-size:.75rem}body.combat-mode .action-description{flex:none;margin:4px 0;font-size:.875rem;line-height:1.35}body.combat-mode .action-meta{flex-wrap:wrap;gap:3px;font-size:.75rem;line-height:1.2}body.combat-mode .action-meta>span:last-child{flex-shrink:0}body.combat-mode .action-pagination{flex:0 0 36px;padding:4px 0 0;font-size:.875rem}body.combat-mode .action-pagination button{width:52px;height:32px;font-size:1rem}body.combat-mode .turn-plan{scrollbar-width:thin;touch-action:pan-x;flex:none;gap:3px;min-height:44px;margin:0 0 4px}body.combat-mode .plan-chip{flex:1 0 56px;grid-template-columns:minmax(0,1fr);align-content:center;min-width:56px;min-height:44px;padding:2px 4px}body.combat-mode .plan-chip span{text-overflow:ellipsis;white-space:nowrap;font:600 12px/16px system-ui,sans-serif;overflow:hidden}body.combat-mode .plan-chip strong{text-overflow:ellipsis;font:11px/14px system-ui,sans-serif;overflow:hidden}body.combat-mode .turn-launching{text-align:center;justify-content:center}body.combat-mode .turn-launching .initiative-strip{justify-content:center;margin:3px 0}body.combat-mode .initiative-chip{padding:3px 5px;font-size:.48rem}body.combat-mode .initiative-chip b{width:15px;height:15px}body.combat-mode .vertical-battlefield .combat-log,body.combat-mode footer{display:none}}@media (max-width:620px){.skill-map-viewport{height:470px;min-height:400px}.skill-map-node{width:62px;height:62px}.class-boundary span{max-width:300px;font-size:.5rem}body.skill-map-mode .game-shell{width:100%;padding:4px}body.skill-map-mode .phase-screen{min-height:0;padding:0}body.skill-map-mode .progression-card{width:100%;padding:10px 6px 14px}body.skill-map-mode .skill-map-viewport{border-left-width:2px;border-right-width:2px;width:100%}.skill-map-toolbar{flex-direction:column;align-items:start;gap:7px}.skill-map-controls{justify-content:end;align-self:stretch}.skill-map-controls .center-map-button{margin-left:auto}.skill-detail-card{grid-template-columns:auto minmax(0,1fr);gap:8px;padding:9px 32px 9px 9px;bottom:5px;left:5px;right:5px}.detail-icon{width:44px;height:44px}.detail-copy p{font-size:.59rem}.detail-buy,.detail-state{grid-column:1/-1;width:100%;min-width:0;padding:7px}}body.level-up-mode{height:100vh;height:100dvh;min-height:0;overflow:hidden}body.level-up-mode .game-header,body.level-up-mode .run-bar,body.level-up-mode footer{display:none}body.level-up-mode .game-shell{width:100%;max-width:1120px;height:100%;padding:4px}body.level-up-mode .screen,body.level-up-mode .level-up-screen{height:100%;min-height:0;margin:0;padding:0}body.level-up-mode .level-up-card{text-align:left;width:100%;height:100%;min-height:0;box-shadow:none;flex-direction:column;gap:0;margin:0;padding:0;font-family:system-ui,sans-serif;display:flex;overflow:hidden}.level-up-summary{overscroll-behavior:contain;flex:0 auto;min-height:0;max-height:40%;padding:10px 12px 6px;overflow-y:auto}.level-up-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.level-up-heading .kicker{color:var(--violet);letter-spacing:.1em;margin:0 0 2px;font-size:14px}.level-up-heading h2{margin:0;font-size:20px;line-height:1.2}.level-up-heading h2 span{color:var(--muted);font-size:14px;font-weight:500}.level-up-level{border:1px solid var(--gold);color:var(--gold);flex-shrink:0;padding:4px 8px;font-size:16px}.level-up-reward{color:var(--green);margin:5px 0 7px;font-size:14px}.level-up-stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.level-up-stat{background:#0e142c;border:1px solid #46517f;flex-direction:column;justify-content:center;min-width:0;padding:4px 6px;display:flex}.level-up-stat>span{color:var(--muted);font-size:14px}.level-up-stat>strong{color:var(--ink);overflow-wrap:anywhere;font-size:16px;line-height:1.25}.level-up-stat>small{color:var(--green);font-size:13px}.level-up-note{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.3}.level-up-gains{margin-top:6px;font-size:14px}.level-up-gains summary{color:var(--green);cursor:pointer}.level-up-gains ul{margin:5px 0;padding-left:20px}.level-up-tree{flex-direction:column;flex:1 1 0;min-height:120px;display:flex}.level-up-tree .skill-map-toolbar{flex-direction:row;flex:none;align-items:center;gap:4px;margin:3px 8px;font-size:14px}.level-up-tree .skill-map-toolbar>span{flex:1}.level-up-tree .skill-map-controls{gap:3px}.level-up-tree .skill-map-controls button{min-width:36px;height:36px;padding:0 7px;font-size:14px}.level-up-tree .skill-map-controls output{min-width:40px;font-size:13px}.level-up-tree .discovery-status{flex:none;max-height:48px;margin:2px 8px 4px;font-size:13px;overflow-y:auto}body.level-up-mode .level-up-tree .skill-map-viewport{border-width:1px 0;flex:1 1 0;height:auto;min-height:80px}.level-up-confirm{padding:6px 10px max(6px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#10162f;flex:none}.level-up-confirm p{margin:0 0 4px;font-size:14px}.level-up-confirm p span{color:var(--muted);font-size:13px}.level-up-confirm .primary-button{width:100%;min-height:44px;padding:8px;font-size:16px}.level-up-confirm>small{color:var(--muted);margin-top:4px;font-size:12px;display:block}.level-up-confirm>.quiet-button{float:right;margin:0 0 4px 6px;padding:5px 7px;font-size:14px}body.level-up-mode .evolution-screen{height:100%;min-height:0;padding:10px;overflow-y:auto}.evolution-screen [data-back-evolution]{min-height:44px;margin-top:16px}@media (max-width:620px){.level-up-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.level-up-summary{max-height:43%;padding:7px 8px 5px}.level-up-stat{padding:3px 6px}.level-up-heading h2{font-size:18px}.level-up-heading h2 span{display:block}.level-up-tree .skill-map-toolbar{flex-wrap:wrap}.level-up-tree .skill-map-controls{align-self:auto}.level-up-confirm>.quiet-button{float:none;width:100%;margin:0 0 5px}}@media (max-width:360px){.level-up-tree .skill-map-toolbar>span{display:none}.level-up-tree .skill-map-controls{margin-left:auto}}@media (max-width:720px) and (max-height:560px){body.combat-mode .vertical-battlefield{grid-template-rows:minmax(88px,1fr) 20px minmax(88px,1fr) 220px}body.combat-mode .pixel-sprite{transform:scale(.35)}body.combat-mode .sprite-stage.enemy .pixel-sprite{transform:scaleX(-1)scale(.35)}}@media (max-width:720px) and (max-height:500px){body.combat-mode .vertical-battlefield{grid-template-rows:minmax(72px,1fr) 20px minmax(72px,1fr) 204px}body.combat-mode .unit-status,body.combat-mode .unit-status:empty{display:none}body.combat-mode .turn-heading{min-height:36px}body.combat-mode .actor-class{display:none}body.combat-mode .actor-avatar{height:32px}body.combat-mode .category-card{min-height:48px}body.combat-mode .category-choice-grid{grid-template-rows:repeat(2,minmax(48px,1fr))}}body.equipment-detail-mode{overflow:hidden}.equipment-shop-screen{padding:20px 12px}.equipment-shop-screen .shop-result-card{padding:clamp(14px,3vw,28px)}.equipment-shop-screen .merchant-section{border-top:0;padding-top:0}.equipment-shop-screen button{min-height:44px}.shop-gold{white-space:nowrap}.equipment-slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.equipment-slot,.equipment-card{--rarity:#c8d0d8;border:1px solid var(--rarity);min-width:0;color:var(--ink);text-align:left;cursor:pointer;background:#111a36;border-top-width:3px}.equipment-slot{flex-direction:column;gap:7px;padding:12px 10px;display:flex}.equipment-slot>span:first-child{color:var(--muted);font-size:.875rem}.equipment-slot>strong{overflow-wrap:anywhere;font-size:.875rem;line-height:1.45}.equipment-slot small{color:var(--muted);font-size:.8rem}.equipment-slot.empty-slot{border-style:dashed;border-color:#556488}.rarity-common{--rarity:#c8d0d8}.rarity-uncommon{--rarity:#8ce6a7}.rarity-rare{--rarity:#70bcff}.rarity-epic{--rarity:#d99bff}.rarity-badge{color:var(--rarity);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--rarity);align-self:flex-start;padding:4px 6px;font:700 .75rem/1.2 system-ui,sans-serif;display:inline-flex}.equipped-stats{color:var(--muted);flex-wrap:wrap;gap:8px 14px;margin:12px 0;font-size:.875rem;display:flex}.equipped-stats strong{color:var(--ink)}.shop-tabs{background:#0c132b;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.shop-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;padding:10px 4px;font-size:.875rem}.shop-tabs button.selected{color:#fff;background:#27365b;border-color:#839bea}.shop-help,.empty-equipment{color:var(--muted);margin:14px 0;font:1rem/1.55 system-ui,sans-serif}.equipment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.equipment-card{flex-direction:column;align-items:stretch;gap:9px;padding:14px;display:flex}.equipment-card-top,.equipment-card-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.equipment-icon{color:var(--rarity);font-size:1.55rem}.equipment-card>strong{overflow-wrap:anywhere;color:var(--ink);font-size:1rem;line-height:1.4}.equipment-type{color:var(--muted);font-size:.875rem}.equipment-description{color:#d5dced;font:.875rem/1.5 system-ui,sans-serif}.equipment-card-footer{color:var(--gold);margin-top:auto;padding-top:9px;font-size:.875rem}.equipment-card-footer>span{color:var(--muted)}.equipment-card.sold{opacity:.6}.equipment-card:hover,.equipment-slot:hover{background:#202e52}.equipment-shop-screen button:focus-visible{outline-offset:3px;outline:3px solid #fff}.equipment-card .unaffordable,.equipment-warning,.stat-loss{color:#f99}.stat-gain{color:#8ce6a7}.equipment-overlay{z-index:100;background:#060b1bcc;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.equipment-detail{overscroll-behavior:contain;border:2px solid var(--rarity);background:#15213d;width:min(520px,100%);max-height:calc(100dvh - 32px);padding:20px;font:1rem/1.6 system-ui,sans-serif;overflow-y:auto;box-shadow:0 20px 80px #000a}.equipment-detail-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.equipment-detail h3{color:var(--rarity);font-size:1.4rem;line-height:1.35}.equipment-full-description{margin:16px 0}.equipment-recipient-picker{border:0;min-width:0;margin:12px 0 16px;padding:0}.equipment-recipient-picker legend{color:var(--ink);margin-bottom:8px;font-weight:700}.equipment-recipient-picker>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.equipment-recipient-picker button{min-width:0;min-height:56px;color:var(--ink);text-align:left;overflow-wrap:anywhere;cursor:pointer;background:#0d162d;border:2px solid #53648c;flex-direction:column;gap:3px;padding:8px 10px;font:.875rem/1.4 system-ui,sans-serif;display:flex}.equipment-recipient-picker button.selected{border-color:var(--gold);background:#36314d}.equipment-recipient-picker button span{color:var(--muted)}.ring-slot-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ring-slot-picker button{color:var(--ink);text-align:left;cursor:pointer;background:#0d162d;border:2px solid #53648c;flex-direction:column;gap:5px;min-width:0;padding:10px;display:flex}.ring-slot-picker button.selected{border-color:var(--gold);background:#36314d}.ring-slot-picker span{color:var(--muted);overflow-wrap:anywhere;font-size:.875rem}.equipment-replacement{background:#0c162e;border:1px solid #405379;margin:14px 0;padding:12px}.equipment-replacement>span,.equipment-replacement>strong{display:block}.equipment-replacement>p{color:var(--muted);margin:8px 0;font-size:.875rem}.equipment-replacement small{color:var(--muted);font-size:.8rem}.equipment-comparison{flex-wrap:wrap;gap:6px 16px;margin:10px 0;display:flex}.equipment-comparison span{gap:5px;font-size:.875rem;display:inline-flex}.equipment-confirm{width:100%;min-height:48px;margin-top:12px;font-size:1rem}.equipment-warning{margin:12px 0 0;font-size:.875rem}.equipment-shop-screen .shop-message{font:.875rem/1.5 system-ui,sans-serif}.equipment-shop-screen .shop-card>span{margin-top:6px;font-size:.875rem;display:block}.impact-fx.shield,.impact-fx.mana{color:#91d9ff}.impact-fx.status{color:#ffd782;white-space:nowrap;font-size:.9rem}@media (max-width:700px){.equipment-slots,.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-shop-screen{padding:8px 0}.equipment-shop-screen .shop-result-card{padding:14px 10px}.equipment-shop-screen .party-pill{font-size:.875rem}.equipment-card{padding:11px}.equipment-card-top{flex-wrap:wrap}.equipment-overlay{align-items:end;padding:6px}.equipment-detail{max-height:calc(100dvh - 12px);padding:16px 14px calc(16px + env(safe-area-inset-bottom))}.equipment-shop-screen .summary-row{flex-wrap:wrap;gap:8px;font-size:.875rem;display:flex}}@media (max-width:359px){.equipment-grid{grid-template-columns:minmax(0,1fr)}}.shop-reroll{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.75rem 0;display:flex}.shop-reroll .shop-help{flex:240px;margin:0}.shop-reroll button{flex:0 auto;max-width:100%;min-height:44px;font-size:.875rem}.hero-sprite,.hero-thumbnail{object-fit:contain;image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none;display:block}.hero-sprite{filter:drop-shadow(0 3px #090c20aa);width:128px;max-width:100%;height:128px;max-height:100%}.hero-stage{transform:none}.hero-thumbnail{flex:0 0 52px;width:52px;height:52px}.hero-thumbnail.compact{flex-basis:36px;width:36px;height:36px}.hero-identity{align-items:center;gap:8px;min-width:0;display:flex}.hero-identity>div{min-width:0}.hero-identity h2{overflow-wrap:anywhere}.equipment-hero{margin:8px 0}.equipment-hero small{color:var(--muted);margin-top:3px;display:block}.evolution-portrait{place-items:center;width:100%;height:160px;display:grid}.evolution-portrait .hero-sprite{width:160px;height:160px}.recruit-card .hero-stage{height:150px;transform:none}.recruit-card .hero-sprite{width:150px;height:150px}.vertical-battlefield .sprite-stage.hero-stage{margin-inline:0;transform:none}.enemy-sprite{object-fit:contain;width:112px;max-width:100%;height:112px;max-height:100%;image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none;display:block}.vertical-battlefield .sprite-stage.enemy-art-stage{margin-inline:0;transform:none}@media (max-width:720px){.combat-mode .sprite-stage.hero-stage{min-height:0;position:relative;overflow:hidden}.combat-mode .hero-stage .hero-sprite{width:100%;height:100%;margin:auto;position:absolute;inset:0}.combat-mode .sprite-stage.enemy-art-stage{min-height:0;position:relative;overflow:hidden}.combat-mode .enemy-art-stage .enemy-sprite{width:100%;height:100%;margin:auto;position:absolute;inset:0}.hero-thumbnail{flex-basis:42px;width:42px;height:42px}.level-up-heading .hero-identity{gap:4px}.evolution-portrait{height:120px}.evolution-portrait .hero-sprite{width:120px;height:120px}}.skill-icon{vertical-align:middle;pointer-events:none;flex:none;width:32px;height:32px;line-height:1;display:inline-block;position:relative}.skill-icon img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;display:block}.skill-icon img[src$="/poison.png"]{filter:sepia()saturate(5)hue-rotate(220deg)}.skill-icon-mark{color:#fff2cf;background:#11162d;border:1px solid #8994b9;place-items:center;min-width:13px;height:13px;padding:0 1px;font:800 12px/1 system-ui,sans-serif;display:grid;position:absolute;bottom:-2px;right:-2px}.action-title{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.action-title strong{overflow-wrap:anywhere;min-width:0}.action-title .skill-icon{width:28px;height:28px}.category-card>b .skill-icon{width:32px;height:32px}.node-pictogram{place-items:center;display:grid}.skill-map-node.locked .node-pictogram{filter:grayscale();opacity:.7}.skill-map-node.unlocked .node-pictogram,.skill-map-node.available .node-pictogram{filter:none}.detail-icon .skill-icon{width:32px;height:32px}.skill-icon-gallery{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:20px 12px;display:grid}.skill-icon-gallery figure{text-align:center;background:#151c33;border:1px solid #374260;flex-direction:column;align-items:center;padding:16px 4px;display:flex}.skill-icon-gallery .skill-icon{width:48px;height:48px}.skill-icon-gallery figcaption{font-size:14px;line-height:1.4}@media (max-width:720px){body.combat-mode .category-card>b .skill-icon,body.combat-mode .action-title .skill-icon{width:24px;height:24px}}: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);--viewport-bg:#0b101d;--strike-ink:#ffe2a1;--ink:#f2f2e9;--muted:#aeb7cd;--line:#38455e;--panel:#151e31;--panel-2:#1d2940;--deep:#0b101d;--control-bg:#203049;--control-hover:#2b405d;--control-border:#526780;--control-text:#edf3fa;--accent-bg:#edcb83;--accent-text:#222333;--danger-bg:#422431;--danger-border:#a15b69;--danger-text:#ffd0d5;--surface-shadow:0 12px 36px #0005;--feedback-scale:.833333}body{background:#0b101d;font-family:system-ui,-apple-system,sans-serif}:is(html:has(.game-viewport),body:has(.game-viewport)){overscroll-behavior:none;background:var(--viewport-bg);height:100%;min-height:0;overflow:hidden}.game-viewport{height:100%;height:100dvh;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);background:var(--viewport-bg);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.game-scroll{overscroll-behavior:none;-webkit-overflow-scrolling:touch;flex:1 1 0;width:100%;min-height:0;overflow:auto}body.level-up-mode .game-viewport .game-shell{height:100%;padding:4px}body.level-up-mode .game-scroll{overflow:hidden}body.level-up-mode .level-up-confirm{padding-bottom:6px}@media (max-width:720px){body.combat-mode .game-scroll{overflow:hidden}body.combat-mode .game-viewport .game-shell{height:100%;padding:2px}}.interface-icon{vertical-align:middle;pointer-events:none;flex:none;width:24px;height:24px;display:inline-block}.resource-icon{vertical-align:middle;pointer-events:none;flex:0 0 1em;width:1em;height:1em;display:inline-flex}.resource-icon>.skill-icon{width:100%;height:100%}.combat-resource-label,.run-stat .combat-gold-value{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.run-stat .combat-gold-value{gap:4px}.combat-gold-value .resource-icon{font-size:1.125em}body.starter-mode .game-scroll{overflow:hidden}.game-viewport .game-shell.starter-shell{width:100%;max-width:780px;height:100%;min-height:0;padding:8px}.starter-shell>.screen{height:100%;min-height:0}.starter-screen{border:1px solid var(--line);background:linear-gradient(155deg,#1d2c43,#101829 60%);border-radius:18px;flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.starter-heading{border-bottom:1px solid #687c9133;flex:none;align-items:center;gap:12px;padding:12px;display:flex}.starter-heading>div{flex:1;min-width:0}.starter-heading .eyebrow{letter-spacing:.1em;margin:0 0 3px;font-size:.75rem}.starter-heading h1{text-transform:none;text-wrap:balance;font-size:clamp(1rem,3.7vw,1.25rem);line-height:1.25}.starter-detail-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#60738d transparent;flex:1 1 0;min-height:0;overflow:auto}.starter-detail{max-width:650px;margin:auto;padding:4px 24px 20px;animation:.22s ease-out both starter-arrive}.starter-showcase{justify-content:center;align-items:center;gap:18px;min-height:200px;display:flex}.starter-art{--hero-glow:#6cbef0;background:radial-gradient(ellipse at 50% 62%,color-mix(in srgb,var(--hero-glow) 23%,transparent),transparent 66%);flex:none;place-items:center;width:220px;height:220px;display:grid}.starter-art-earth{--hero-glow:#bf976c}.starter-art-fire{--hero-glow:#f0786c}.starter-art-water{--hero-glow:#6fbffd}.starter-art-wind{--hero-glow:#69d5a0}.starter-art-poison{--hero-glow:#b581e9}.starter-portrait{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;filter:drop-shadow(0 9px 9px #0005)}.starter-identity{min-width:0;max-width:260px}.starter-identity>p{color:#abcddc;margin:0 0 6px;font-size:.875rem;line-height:1.4}.starter-identity h2{color:#ffe1a0;letter-spacing:-.04em;margin:0 0 8px;font-size:clamp(2rem,7vw,3rem);font-weight:800;line-height:1.05}.starter-identity>span{color:var(--muted);font-size:.875rem}.starter-stats{text-align:center;border-block:1px solid #6c829844;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:0 0 16px;padding:10px 0;display:grid}.starter-stats>div+div{border-left:1px solid #6c82982e}.starter-stats dt{color:var(--muted);font-size:.75rem}.starter-stats dd{font-variant-numeric:tabular-nums;margin:1px 0 0;font-size:1rem;font-weight:750}.starter-stats>div:first-child dd{color:#95dfbf}.starter-stats>div:nth-child(2) dd{color:#98d2fa}.starter-style,.starter-advice p{color:#dbe3ee;margin:0;font-size:1rem;line-height:1.55}.starter-advice{background:#e4c38109;border-left:2px solid #d9b879;border-radius:0 8px 8px 0;margin:14px 0;padding:12px 14px}.starter-advice h3,.starter-paths h3{color:#f1d397;margin:0 0 5px;font-size:.875rem;font-weight:650}.starter-paths p{color:#c5d0e2;margin:0;font-size:.875rem;line-height:1.4}.starter-choices{background:#111b2c;border-top:1px solid #72849d55;flex:none;padding:12px 18px 10px;box-shadow:0 -12px 30px #080e1733}.starter-roster-label{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.starter-roster-label h2{color:var(--ink);margin:0;font-size:.875rem}.starter-roster-label>span{color:var(--muted);font-size:.75rem}.starter-roster{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;display:grid}.starter-tile{color:#c9d3e3;cursor:pointer;background:linear-gradient(#23324b,#192338);border:1px solid #41516b;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:3px 2px 5px;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.starter-tile:hover:not(:disabled){background:#2b3c55;border-color:#b8c8dd;transform:none}}.starter-tile[aria-pressed=true]{color:#ffe3a6;background:linear-gradient(#514636,#28303a);border-color:#edcd83;box-shadow:inset 0 0 0 1px #edcd83}.starter-thumbnail{object-fit:contain;width:58px;max-width:100%;height:58px;image-rendering:pixelated;display:block}.starter-tile>span:not(.starter-selected-mark,.starter-lock-mark){font-size:.875rem;font-weight:650;line-height:1.25}.starter-tile.starter-tile-locked{opacity:1;color:#a6adbb;box-shadow:none;background:linear-gradient(#1c2432,#171e2a);border-color:#343e4f}.starter-tile.starter-tile-locked[aria-pressed=true]{border-color:#edcd83;box-shadow:inset 0 0 0 1px #edcd83}.starter-detail-locked{place-items:center;min-height:100%;display:grid}.starter-unlock-condition{text-align:center;max-width:430px;padding-block:24px}.starter-unlock-condition>.interface-icon{opacity:.65;width:32px;height:32px;margin-bottom:12px}.starter-unlock-condition h2{color:#d3d9e5;margin:0 0 20px;font-size:clamp(1.8rem,7vw,2.6rem)}.starter-unlock-condition h3{color:#f1d397;margin:0 0 10px;font-size:.875rem}.starter-unlock-condition p{text-wrap:pretty;margin:0;font-size:1rem;line-height:1.6}.starter-unlock-condition .starter-unlock-duel{color:var(--muted);margin-top:12px}.starter-silhouette{background:#687283;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.starter-lock-mark{color:#a6adbb;line-height:1;position:absolute;top:4px;right:4px}.starter-lock-mark .interface-icon{width:12px;height:12px}.starter-selected-mark{line-height:1;position:absolute;top:4px;right:4px}.starter-selected-mark .interface-icon{width:14px;height:14px}.game-shell .starter-start{justify-content:center;align-items:center;gap:8px;width:100%;min-height:52px;margin-top:12px;font-size:1rem;display:flex}.starter-departure{text-align:center;color:var(--muted);margin:7px 0 0;font-size:.75rem;line-height:1.35}@keyframes starter-arrive{0%{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}@media (min-width:700px){.starter-roster{grid-template-columns:repeat(auto-fit,minmax(56px,1fr))}}@media (max-width:480px){.game-viewport .game-shell.starter-shell{padding:4px}.starter-heading{gap:8px;padding:10px 8px}.starter-detail{padding:0 14px 16px}.starter-showcase{gap:6px;min-height:176px}.starter-art{width:48%;height:180px}.starter-identity{flex:1}.starter-choices{padding:10px 10px 8px}.starter-roster{gap:5px}.starter-thumbnail{width:48px;height:48px}}@media (max-height:650px){.starter-heading{padding-block:6px}.starter-choices{padding-block:8px}.starter-thumbnail{width:40px;height:40px}.game-shell .starter-start{min-height:44px;margin-top:8px}}.reduce-motion .starter-detail{animation:none}@media (prefers-reduced-motion:reduce){.starter-detail{animation:none}}.game-shell.victory-shell{width:100%;max-width:none;min-height:100%;margin:0;padding:0}.victory-shell>.screen{min-height:calc(100dvh - var(--safe-top) - var(--safe-bottom));display:flex}.victory-screen{isolation:isolate;color:#f7f4e9;background:radial-gradient(at 50% 8%,#4e4264 0%,#152d38 34%,#0b1425 65%);width:100%;position:relative;overflow:hidden}.victory-atmosphere{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.victory-halo{aspect-ratio:1;background:radial-gradient(circle,#ffe2a54d,#0000 64%);width:min(140vw,1000px);animation:2.8s ease-out both victory-glow;position:absolute;top:-220px;left:50%;transform:translate(-50%)}.victory-rays{aspect-ratio:1;background:repeating-conic-gradient(from 7deg,#ffe3a914 0deg 9deg,#0000 9deg 28deg);width:max(150vw,1100px);animation:9s ease-out both victory-rays;position:absolute;top:150px;left:50%;transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(circle,#000,#0000 65%);mask-image:radial-gradient(circle,#000,#0000 65%)}.victory-ripple{border:2px solid #ffebbc;border-radius:50%;width:180px;height:180px;animation:2.1s ease-out both victory-ripple;position:absolute;top:90px;left:calc(50% - 90px)}.victory-atmosphere>i{top:-30px;left:var(--particle-x);background:var(--particle-color);width:6px;height:12px;box-shadow:0 0 9px var(--particle-color);opacity:0;animation:victory-confetti 3.6s cubic-bezier(.15,.4,.6,1) var(--particle-delay) both;position:absolute}.victory-atmosphere>i:nth-child(3n){width:5px;height:5px}.victory-content{text-align:center;width:min(100%,840px);margin:0 auto;padding:24px clamp(16px,4vw,36px) 28px}.victory-seal{color:#ffe3a5;letter-spacing:.12em;text-transform:uppercase;background:#171c2ca6;border:1px solid #e1c89466;border-radius:30px;align-items:center;gap:9px;margin:0;padding:7px 14px;font:600 .75rem/1.4 ui-monospace,monospace;display:inline-flex}.victory-seal .interface-icon{width:20px;height:20px}.victory-heading{padding:90px 0 0;animation:.8s cubic-bezier(.2,.7,.2,1) both victory-reveal;position:relative}.victory-number{color:#ffdfa642;letter-spacing:-.08em;text-shadow:0 0 70px #ffc85155;font:900 148px/1 system-ui,sans-serif;position:absolute;top:-14px;left:0;right:0}.victory-heading h1{letter-spacing:-.05em;color:#ffdf92;text-transform:none;text-shadow:0 4px #57432d,0 0 30px #ffbb3a44;margin:0;font:900 clamp(3.25rem,10vw,5.5rem)/1 system-ui,sans-serif;position:relative}.victory-heading h1:focus{outline:none}.victory-heading p{margin:16px 0 6px;font-size:clamp(1rem,3.5vw,1.2rem);font-weight:650}.victory-subtitle{color:#c9d8df;font-size:.875rem}.victory-party{flex-wrap:wrap;justify-content:center;gap:10px;margin:22px 0 28px;padding:0;list-style:none;display:flex}.victory-party li{flex-direction:column;flex:80px;align-items:center;min-width:0;max-width:155px;animation:.8s .15s both victory-reveal;display:flex}.victory-portrait{object-fit:contain;width:clamp(76px,22vw,128px);height:clamp(76px,22vw,128px);image-rendering:pixelated;filter:drop-shadow(0 6px 16px #80ffd033)}.victory-party strong{margin-top:4px;font-size:.9375rem}.victory-party strong span{color:#c2cfdf;white-space:nowrap;font-size:.75rem;font-weight:500}.victory-party small{color:#bacbd8;text-wrap:balance;margin-top:4px;font-size:.75rem;line-height:1.35}.victory-recap{background:#0a172cc9;border:1px solid #b5dacc36;border-radius:18px;padding:16px;animation:.7s .25s both victory-reveal;box-shadow:0 14px 48px #0003}.victory-recap h2{margin:0 0 14px;font:650 1rem/1.3 system-ui,sans-serif}.victory-partial{color:#c0cfde;margin:0 0 12px;font-size:.75rem}.victory-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px;margin:0;display:grid}.victory-stats>div{flex-direction:column-reverse;gap:5px;min-width:0;display:flex}.victory-stats dt{color:#b7cada;font-size:.75rem;line-height:1.35}.victory-stats dd{color:#9ef0d2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-size:clamp(1.1rem,3.8vw,1.55rem);font-weight:780}.victory-choices{max-width:620px;margin:20px auto 0}.game-shell .victory-finish{width:100%;min-height:56px;font-size:1.0625rem;box-shadow:0 5px 24px #f5cf7326,inset 0 1px #fff6}.victory-endless{text-align:left;background:linear-gradient(130deg,#332038b3,#151a2fde);border:1px solid #d993ad66;border-radius:14px;margin-top:20px;padding:16px}.victory-endless-heading{align-items:center;gap:12px;display:flex}.endless-symbol{color:#ffbcbd;font:500 3rem/1 system-ui,sans-serif}.victory-endless .kicker{color:#ffbcbd;letter-spacing:.15em;margin:0 0 5px;font-size:.6875rem}.victory-endless h2{margin:0;font:750 1rem/1.3 system-ui,sans-serif}.victory-endless p:not(.kicker){color:#d1cddd;margin:10px 0;font-size:.8125rem;line-height:1.5}.endless-pressure{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.endless-pressure span{color:#e8c7d4;background:#100e2099;border:1px solid #d991a347;border-radius:6px;padding:6px 9px;font-size:.75rem}.endless-pressure b{color:#fff2ee;margin-left:5px;font-size:1rem}.game-shell .victory-endless button{color:#ffe2e6;background:#392c44;border-color:#b17c9d;justify-content:center;align-items:center;gap:9px;width:100%;min-height:52px;margin-top:14px;display:flex}.game-shell .victory-endless button:hover{background:#503850;border-color:#ffd0d9}.victory-guarantee{color:#aebed1;margin:14px 12px 0;font-size:.75rem;line-height:1.5}@keyframes victory-reveal{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:none}}@keyframes victory-glow{0%{opacity:0;scale:.5}40%{opacity:1}to{opacity:1;scale:1}}@keyframes victory-rays{0%{opacity:0;transform:translate(-50%,-50%)rotate(-20deg)}15%{opacity:1}to{opacity:.45;transform:translate(-50%,-50%)rotate(25deg)}}@keyframes victory-ripple{0%{opacity:.8;transform:scale(.2)}to{opacity:0;transform:scale(7)}}@keyframes victory-confetti{0%{opacity:0;transform:translateY(-20px)rotate(0)}12%{opacity:.9}80%{opacity:.9}to{transform:translate3d(var(--particle-drift),min(95dvh,900px),0) rotate(300deg);opacity:0}}@media (max-width:420px){.victory-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.victory-content{padding-top:18px}}body.reduce-motion .victory-screen *,body.reduce-motion .victory-screen :before,body.reduce-motion .victory-screen :after{animation:none}body.reduce-motion .victory-ripple,body.reduce-motion .victory-atmosphere>i{display:none}@media (prefers-reduced-motion:reduce){.victory-screen *{animation:none!important}.victory-ripple,.victory-atmosphere>i{display:none}}.home-play>button,.home-sign-in,.home-secondary button,.home-resources button{justify-content:center;align-items:center;gap:10px;display:flex}.secondary-navigation .interface-icon{width:20px;height:20px;margin-right:7px}.menu-option-icon .interface-icon,.achievement-symbol .interface-icon{width:28px;height:28px}.menu-chevron.interface-icon{width:16px;height:16px}.node-cost .interface-icon,.node-known .interface-icon{width:12px;height:12px}.skill-icon-mark .interface-icon{width:10px;height:10px}.element-badge .skill-icon,.element-badge .skill-icon img{width:14px;height:14px}.header-actions .interface-icon{width:20px;height:20px}.action-scope-badge .interface-icon,.plan-chip .interface-icon,.guide-hint .interface-icon{width:16px;height:16px}.action-detail-bar .skill-icon,.action-detail-bar .skill-icon img{width:20px;height:20px}.equipment-icon .interface-icon{width:30px;height:30px}.settings-group-title{align-items:center;gap:10px;display:flex}.settings-group-title .interface-icon{color:var(--accent-bg)}.speed-choices{border:0;min-width:0;margin:16px 0;padding:0}.speed-choices legend{padding:0;font-weight:700}.speed-choices small{color:var(--muted);margin:6px 0 12px;display:block}.speed-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.card-reading-options,.language-options{grid-template-columns:repeat(2,minmax(0,1fr))}.speed-options label{cursor:pointer;min-width:0;position:relative}.speed-options input{opacity:0;width:1px;height:1px;position:absolute}.speed-options span{border:1px solid var(--control-border);background:var(--control-bg);border-radius:9px;justify-content:center;align-items:center;gap:6px;min-height:48px;padding:8px 4px;font-size:.875rem;display:flex}.speed-options .interface-icon{visibility:hidden;width:16px;height:16px}.speed-options input:checked+span{border-color:var(--accent-bg);color:#ffe2a2;background:#334260}.speed-options input:checked+span .interface-icon{visibility:visible}.speed-options input:focus-visible+span{outline-offset:2px;outline:3px solid #90d6ff}.setting-row input[type=checkbox]{-webkit-appearance:none;appearance:none;cursor:pointer;background:linear-gradient(#46536d,#46536d) 50%/52px 28px no-repeat;border:0;border-radius:8px;flex:0 0 52px;width:52px;height:44px;margin:0;position:relative}.setting-row input[type=checkbox]:before{content:"";background:#e0e8f6;border-radius:3px;width:20px;height:20px;position:absolute;top:12px;left:4px;box-shadow:0 2px 3px #0005}.setting-row input[type=checkbox]:checked{background:linear-gradient(#806940,#806940) 50%/52px 28px no-repeat}.setting-row input[type=checkbox]:checked:before{background:#ffe1a0;left:28px}.setting-row input[type=range]{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;height:44px}.setting-row input[type=range]::-webkit-slider-runnable-track{background:#637391;border-radius:2px;height:6px}.setting-row input[type=range]::-moz-range-track{background:#637391;border-radius:2px;height:6px}.setting-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#c49e58;border:2px solid #ffe5ae;border-radius:4px;width:22px;height:26px;margin-top:-10px}.setting-row input[type=range]::-moz-range-thumb{background:#c49e58;border:2px solid #ffe5ae;border-radius:4px;width:18px;height:22px}.game-scroll summary{list-style:none}.game-scroll summary::-webkit-details-marker{display:none}.game-scroll summary>.interface-icon{width:16px;height:16px;margin-right:8px}.game-scroll details[open]>summary>.interface-icon{transform:rotate(90deg)}h1,.eyebrow,.kicker{font-family:ui-monospace,monospace}button{min-height:44px;transition:background-color calc(.12s * var(--feedback-scale)), border-color calc(.12s * var(--feedback-scale)), box-shadow calc(.12s * var(--feedback-scale));border-radius:8px}.game-shell :is(.primary-button,.quiet-button,.icon-button),.preferences-screen>button,.settings-column>button,.statistics-overview>button,.pwa-actions button,.update-notice button,.home-secondary button,.home-resources button,.app-dialog button{border:1px solid var(--control-border);background:var(--control-bg);min-height:44px;color:var(--control-text);cursor:pointer;text-wrap:pretty;border-radius:10px;padding:10px 14px;font:600 .9375rem/1.35 system-ui,sans-serif;box-shadow:inset 0 1px #ffffff0a,0 2px #0003}.game-shell :is(.primary-button,.quiet-button,.icon-button):hover:not(:disabled),.preferences-screen>button:hover:not(:disabled),.settings-column>button:hover:not(:disabled),.statistics-overview>button:hover:not(:disabled),.app-dialog button:hover:not(:disabled){background:var(--control-hover);border-color:#9bb0c8;transform:none}.game-shell button:active:not(:disabled),.app-dialog button:active:not(:disabled){box-shadow:inset 0 1px 4px #0003}.game-shell button:disabled,.app-dialog button:disabled{cursor:not-allowed}.game-shell .primary-button,.app-dialog .primary-button{color:var(--accent-text);background:linear-gradient(#f4d993,var(--accent-bg));border-color:#f8dea5;font-weight:750}.game-shell .primary-button:hover:not(:disabled),.app-dialog .primary-button:hover:not(:disabled){background:#ffe3a4;border-color:#fff0c9}.game-shell .icon-button,.app-dialog .icon-button{flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;padding:8px;font-size:1.375rem;display:inline-flex}.app-dialog .danger-button{color:var(--danger-text);border-color:var(--danger-border);background:var(--danger-bg)}.app-dialog .danger-button:hover:not(:disabled){background:#61313e;border-color:#df8998}:is(button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible){outline-offset:2px;outline:3px solid #90d6ff}.game-header,.run-bar,.battlefield,.window,.result-card{border:1px solid var(--line);box-shadow:none;border-radius:12px}.game-header{background:linear-gradient(110deg,#1c2940,#111b2d);border-color:#465872;padding:8px 12px}.game-header h1{font-size:clamp(16px,2.5vw,25px)}.run-bar{background:#0e1727;margin:5px 0;padding:7px 12px}.run-stat+.run-stat{border-left:1px solid #33425a;padding-left:12px}.run-stat strong{font-variant-numeric:tabular-nums}.page-location{align-items:center;gap:12px;min-width:0;display:flex}.page-location h1{text-transform:none;font-family:system-ui,sans-serif;font-size:1.375rem}.page-location .eyebrow{color:var(--muted);letter-spacing:.04em;font-size:.75rem}.secondary-shell{max-width:820px}.secondary-shell .game-header{z-index:12;position:sticky;top:4px}.secondary-navigation{border:1px solid var(--line);background:#111b2b;border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:8px 0 0;padding:6px;display:grid}.secondary-navigation button{min-width:0;min-height:48px;color:var(--muted);box-shadow:none;background:0 0;border:1px solid #0000;padding:10px 4px;font:600 .875rem/1.35 system-ui,sans-serif}.secondary-navigation button span{color:#d8c496;margin-right:7px;display:inline-block}.secondary-navigation button[aria-current]{color:#fff3d3;background:#293951;border-color:#71809a}.secondary-navigation button:hover:not([aria-current]){color:var(--ink);background:#1c2a40}.secondary-shell .preferences-screen{width:100%;margin:12px auto}.settings-group-title{color:var(--ink);margin:28px 0 4px;font:700 1.05rem/1.4 system-ui,sans-serif}.preferences-screen>button,.settings-column>button,.statistics-overview>button{margin:4px 5px 4px 0}.setting-row input[type=range]{width:min(180px,45%);accent-color:var(--accent-bg);min-height:44px}.setting-row input[type=checkbox]{accent-color:var(--accent-bg)}.home-resources{margin-top:16px}.home-resources button{box-shadow:none;background:0 0}.app-dialog{inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);width:min(480px,100vw - 24px);max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 24px);max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px);color:var(--control-text);overscroll-behavior:contain;background:#142035;border:1px solid #7c8a9c;border-radius:18px;margin:auto;padding:0;font:1rem/1.5 system-ui,sans-serif;overflow:auto;box-shadow:0 24px 80px #000b}.app-dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050a17b8}.ability-help{inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px);max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 24px);background:#142035;border:1px solid #7c8a9c;border-radius:16px}.game-viewport .equipment-overlay{inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}.game-viewport .equipment-detail{max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 32px);padding-bottom:20px}.game-viewport .ability-help-content{padding-bottom:16px}.ability-help::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050a17b8}.ability-help-header{background:#1d2b42}.ability-help-header button{border:1px solid var(--control-border);background:var(--control-bg);color:var(--control-text);cursor:pointer;border-radius:9px}.app-dialog-surface{background:linear-gradient(135deg,#23324c,#121d30 65%);padding:22px}.app-dialog header{border-bottom:1px solid #46536a;justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;display:flex}.app-dialog .kicker{letter-spacing:.1em;color:#c9b588;margin:0 0 5px;font-size:.75rem}.app-dialog h2{color:#f8efd9;margin:0;font-size:1.4rem;line-height:1.2}.app-dialog button{text-align:left;max-width:none}.app-dialog .icon-button{text-align:center}.menu-checkpoint{color:#bfccde;margin:14px 0;font-size:.875rem}.menu-checkpoint span{color:#8694aa;margin:0 4px}.app-dialog .menu-resume{justify-content:center;align-items:center;gap:10px;width:100%;min-height:50px;margin-bottom:14px;display:flex}.menu-options{gap:7px;display:grid}.menu-options button{align-items:center;gap:12px;padding:12px;display:flex}.menu-options strong{font-size:1rem;display:block}.menu-options small,.menu-exits small{color:#bfcde0;margin-top:3px;font-size:.875rem;font-weight:400;display:block}.menu-option-icon{color:#ecd192;text-align:center;flex:0 0 34px;width:34px;font-size:1.4rem}.menu-chevron{color:#9daec5;margin-left:auto;font-size:1.4rem}.app-dialog .menu-options .menu-tree{background:#27283a;border-color:#86733d;grid-column:1/-1}.menu-exits{border-top:1px solid #46536a;gap:8px;margin-top:16px;padding-top:16px;display:grid}.menu-exits .danger-button small{color:#e0afba}.confirmation-dialog{width:min(420px,100vw - 24px)}.confirmation-emblem{color:#e9d092;border:1px solid #71819a;border-radius:14px;place-items:center;width:48px;height:48px;margin:20px 0 12px;font-size:1.7rem;display:grid}.confirmation-emblem.danger{color:#ffadb9;background:#422432;border-color:#8e5866}.confirmation-dialog p:not(.kicker){color:#ced8e8;font-size:1rem;line-height:1.6}.confirmation-actions{grid-template-columns:auto 1fr;gap:10px;margin-top:24px;display:grid}.confirmation-actions button{text-align:center}.unit-effects-dialog[open]{flex-direction:column;width:min(580px,100vw - 24px);display:flex;overflow:hidden}.unit-effects-dialog .app-dialog-surface{width:100%;min-height:0;height:calc(90dvh - var(--safe-top) - var(--safe-bottom));grid-template-rows:auto minmax(0,1fr) auto;padding:0;display:grid}.unit-effects-dialog header{padding:16px}.unit-effects-dialog h2{font-size:1.25rem}.unit-effects-scroll{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;min-height:0;padding:0 16px 16px;overflow-y:auto}.unit-effects-resources{flex-wrap:wrap;align-items:baseline;gap:6px;margin:14px 0 8px;display:flex}.unit-effects-resources>span{margin-inline:4px}.unit-effects-dialog .unit-effects-note{color:#b5c4db;margin:10px 0;font-size:.875rem;line-height:1.5}.unit-effects-section-title{color:#f6deaa;align-items:center;gap:8px;margin:22px 0 12px;font-size:1rem;display:flex}.unit-effects-section-title span{color:#b5c4db;font-size:.875rem}.unit-effect{background:#101c31;border:1px solid #42536b;border-left:4px solid #9daed1;border-radius:10px;margin:10px 0;padding:14px}.unit-effect.effect-benefit{border-left-color:#83dbaa}.unit-effect.effect-harm{border-left-color:#ff8a9d}.unit-effect.effect-poison{border-left-color:var(--poison);background:#251a38}.unit-effect-heading{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.unit-effect-heading h3{color:#f1f2f7;margin:0;font-size:1rem}.unit-effect.effect-poison .unit-effect-heading h3{color:var(--poison)}.unit-effect-heading>span{color:#f4d389;font-size:.875rem}.unit-effects-dialog .unit-effect p{margin:8px 0;font-size:1rem;line-height:1.5}.unit-effect small,.unit-effect li{color:#bfcce2;font-size:.875rem;line-height:1.5}.unit-effect ul{margin:10px 0 0;padding-left:20px}.unit-effect li+li{margin-top:6px}.unit-effects-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.unit-effects-stats>div{background:#0e192b;border-radius:8px;padding:10px}.unit-effects-stats dt,.unit-effects-stats small{color:#bdcce3;font-size:.875rem}.unit-effects-stats dd{color:#f7eedb;margin:3px 0;font-size:1.25rem;font-weight:800}.unit-effects-build summary{color:#c6d6f0;cursor:pointer;min-height:44px;padding:12px 0}.unit-effects-footer{background:#1b2b43;border-top:1px solid #435771;padding:12px 16px}.unit-effects-footer button{text-align:center;justify-content:center;align-items:center;gap:8px;width:100%;min-height:56px;font-size:1rem;display:flex}.unit-effects-empty{border:1px dashed #53647d;border-radius:10px;padding:16px}.unit-effects-warning{color:#ff9aac}@media (max-width:720px){body.combat-mode .game-header{box-shadow:none;border-width:1px;border-radius:10px;padding:2px 8px}body.combat-mode .run-bar{box-shadow:none;border-width:1px;border-radius:8px;padding:3px 4px}body.combat-mode .run-stat+.run-stat{padding-left:4px}body.combat-mode .header-actions .quiet-button{max-width:none;padding:6px 10px;font-size:.875rem}body.combat-mode .app-dialog button{min-width:0;max-width:none;padding:10px 14px;font:600 .9375rem/1.35 system-ui,sans-serif}.app-dialog-surface{padding:18px}}@media (max-width:480px){.secondary-shell .game-header{gap:6px;padding:8px}.page-location{gap:8px}.page-location h1{font-size:1.125rem}.page-location .eyebrow{letter-spacing:0;font-size:.75rem}.game-shell .return-to-run{padding:8px;font-size:.875rem}.secondary-navigation button span{margin:0 0 3px;display:block}.secondary-navigation .interface-icon{margin:0 auto 5px;display:block}.speed-options{gap:4px}.speed-options span{flex-direction:column;gap:3px}.secondary-navigation{gap:0;padding:4px}.secondary-navigation button{font-size:.875rem}.setting-row.speed-setting{grid-template-columns:1fr;gap:10px;display:grid}.setting-row.speed-setting select{width:100%;max-width:none}.confirmation-actions{grid-template-columns:1fr}.confirmation-actions .quiet-button{order:2}}.window{background:#121b2e}.action-card,.category-card,.plan-chip{box-shadow:none;background:#1b2840;border:1px solid #3d4d68}.category-card:hover:not(:disabled):not([aria-disabled=true]),.action-card:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--gold);background:#27364e}.action-help-button{min-height:32px;padding:4px 8px;font-size:12px}.action-element-hint{color:#f2d593;margin:0 0 6px;font:600 .875rem/1.3 system-ui,sans-serif;display:block}.target-options{flex-wrap:wrap;gap:6px;min-height:0;display:flex;overflow:auto}.target-options button{border:1px solid var(--gold);background:#273549;flex:1 0 90px;padding:8px}.target-options small{color:var(--muted);display:block}.target-instruction{color:#ffe2a0;margin:4px 0 8px;font-size:14px}.combatant.valid-target{background:#3c342849;box-shadow:inset 0 0 0 2px var(--gold)!important}.combatant.invalid-target{opacity:.45}.nameplate{border-radius:6px}.unit-resource .numbers{font-variant-numeric:tabular-nums}.target-window{flex-direction:column;gap:4px;display:flex}.brand-short{display:none}.guide-hint{background:#17313b;border:1px solid #496471;border-radius:6px;flex:none;gap:2px;margin:3px 0 5px;display:flex}.guide-hint button{box-shadow:none;color:#d3e8e9;background:0 0;border:0;min-height:36px;padding:4px 7px;font:12px/16px system-ui,sans-serif}.guide-copy{text-align:left;flex:1}.guide-copy>span{color:#92dcd3;letter-spacing:.07em;font-size:9px;font-weight:800}.guide-dismiss{flex:0 0 36px}.guide-chapters details{border-bottom:1px solid var(--line);padding:14px 0}.guide-chapters summary{cursor:pointer;padding:8px 0;font-weight:650}.guide-chapters p{font-size:15px;line-height:1.6}.guide-example{background:var(--panel-2);border-left:3px solid var(--gold);padding:12px}@media (max-width:720px){body.combat-mode .brand-long{display:none}body.combat-mode .brand-short{font-size:14px;display:inline}body.combat-mode .guide-hint button{min-height:32px;font-size:11px;line-height:14px}body.combat-mode .guide-dismiss{flex-basis:32px}body.combat-mode .vertical-battlefield:has(.guide-hint){--command-height:clamp(258px, 42dvh, 290px)}body.combat-mode .vertical-battlefield:has(.action-detail-window .guide-hint){--command-height:clamp(275px, 44dvh, 320px)}}body.home-mode .game-scroll{overflow:hidden}.game-viewport .game-shell.home-shell{flex-direction:column;width:100%;max-width:820px;height:100%;min-height:0;padding:8px clamp(8px,2vw,20px);display:flex}.home-shell>.game-header{flex:none;gap:8px;padding:8px 12px}.home-shell>.game-header h1{font-size:clamp(16px,4vw,22px)}.home-shell>.game-header .eyebrow{font-size:10px}.home-shell>.screen{flex:1 1 0;min-height:0}.game-shell>.game-footer{justify-content:center;align-items:center;font-size:.75rem}.home-screen{text-align:center;flex-direction:column;gap:clamp(8px,2dvh,18px);width:100%;height:100%;min-height:0;margin:0 auto;padding:clamp(12px,3dvh,28px) 8px 4px;display:flex}.home-intro{flex:none;max-width:560px;margin:0 auto}.home-intro h2{color:var(--ink);letter-spacing:-.04em;margin:0 0 10px;font-size:clamp(28px,min(6vw,5dvh),44px);line-height:1.13}.home-intro h2 em{color:var(--gold);font-style:normal}.home-intro p{color:var(--muted);margin:0;font-size:clamp(13px,3.5vw,16px);line-height:1.4}.home-party{background:radial-gradient(at 50% 65%,#6552aa24,#0000 65%);flex:1 1 0;justify-content:center;align-items:center;gap:clamp(4px,2vw,16px);min-height:0;margin:0;display:flex;overflow:hidden}.home-party .sprite-stage{flex:0 150px;width:100px;min-width:0;height:100%;min-height:0;max-height:220px}.home-party .hero-sprite{object-fit:contain;width:100%;height:100%}.home-play{flex:none;gap:8px;width:100%;max-width:460px;margin:0 auto;display:grid}.home-shell .home-play>button{min-height:48px;padding:10px 12px;font-size:16px}.home-shell .home-play .home-sign-in{min-height:44px;padding:8px 12px;font-size:14px;text-decoration:none}.home-play .muted{margin:0;font-size:11px;line-height:1.3}.home-secondary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.home-secondary button{background:var(--panel);width:100%;min-width:0;min-height:48px;color:var(--ink);border:1px solid var(--line);box-shadow:none;padding:10px 6px;font-size:14px}.home-secondary button:hover{background:var(--panel-2);border-color:var(--muted)}@media (max-height:650px){.home-screen{gap:8px;padding-top:10px}.home-intro h2{margin-bottom:6px;font-size:28px}.home-intro p{display:none}}@media (max-height:500px) and (min-width:550px){.home-screen{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(260px,1fr);column-gap:20px;display:grid}.home-intro{grid-area:1/1}.home-party{grid-area:2/1;height:100%}.home-play{grid-area:1/2/-1;align-self:center;gap:6px}.home-play .muted{display:none}.home-shell .home-play>button,.home-secondary button{min-height:44px;padding:8px}}.admin-page{max-width:560px;margin:24px auto;padding:20px}.admin-page h1{margin:0 0 20px;font-size:24px}.admin-links{gap:8px;display:grid}.admin-links a{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-height:48px;padding:14px;font-size:16px;text-decoration:none;display:block}.admin-links a:hover{background:var(--panel-2)}.preferences-screen{max-width:740px;margin:24px auto;padding:24px}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading button{padding:8px 14px}.setting-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:20px 0;display:flex}.setting-row small{color:var(--muted);margin-top:4px;display:block}.setting-row select{border:1px solid var(--line);background:var(--panel-2);max-width:48%;min-height:44px;font:inherit;border-radius:6px;padding:8px}.setting-row input[type=checkbox]{width:24px;height:24px;accent-color:var(--gold);flex-shrink:0}.statistics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0 28px;display:grid}.statistics-grid.play-time-overview{grid-template-columns:1fr}.statistics-grid.play-time-overview>div{background:linear-gradient(110deg,#263249,#151d31);border:1px solid #c9a958}.statistics-grid.play-time-overview span{font-size:.875rem}.statistics-grid.play-time-overview strong{color:#ffe090;font-size:2rem}.statistics-grid>div{background:var(--panel-2);border-radius:8px;padding:12px}.statistics-grid span{color:var(--muted);font-size:12px;display:block}.statistics-grid strong{font-variant-numeric:tabular-nums;font-size:24px;display:block}.stats-ranking{margin-bottom:30px;padding:0;list-style:none}.stats-ranking li{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:10px 0;display:flex}.stats-table{margin-bottom:24px;overflow:auto}.stats-table table{border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums;width:100%}.stats-table td,.stats-table th{border-bottom:1px solid var(--line);padding:8px}.sync-status{color:var(--blue);font-size:13px}.pwa-card{border:1px solid var(--line);background:var(--panel);border-radius:10px;max-width:740px;margin:20px auto;padding:18px}.pwa-card p{margin:5px 0;font-size:13px}.pwa-card small{color:var(--muted)}.pwa-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.pwa-actions button{padding:8px 12px}.offline-indicator{bottom:max(4px, env(safe-area-inset-bottom));z-index:50;pointer-events:none;background:#172738ee;border:1px solid #668399;border-radius:6px;width:max-content;max-width:95vw;padding:3px 8px;font-size:11px;position:fixed;left:50%;transform:translate(-50%)}.update-notice{max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 24px);max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px);z-index:90;bottom:max(12px, env(safe-area-inset-bottom));border:1px solid var(--blue);background:#22324b;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;width:min(94vw,520px);padding:16px;display:flex;position:fixed;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 8px 28px #0008}.update-notice div{flex:1 0 100%}.update-notice p{margin:5px 0;font-size:13px}.update-notice button{padding:8px 12px}.achievement-list{gap:10px;display:grid}.achievement-card{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;gap:14px;padding:16px;display:flex}.achievement-card.achieved{background:#2a2a27;border-color:#9a854c}.achievement-symbol{color:var(--muted);font-size:28px}.achieved .achievement-symbol{color:var(--gold)}.achievement-card p{color:var(--muted);margin:0 0 8px;font-size:14px;line-height:1.5}.achievement-card progress{width:100%;height:6px;accent-color:var(--gold);display:block}.achievement-card small{color:var(--muted);margin-top:5px;display:block}.achievement-card>div{flex:1;min-width:0}.achievement-exploration{margin-top:2rem}.achievement-hero{border:1px solid var(--line);border-radius:14px;margin-top:.75rem;overflow:hidden}.achievement-hero>summary{cursor:pointer;background:var(--panel);justify-content:space-between;align-items:center;gap:.75rem;min-height:56px;padding:1rem;font-size:1.1rem;font-weight:700;display:flex}.achievement-hero>summary>span:last-child{white-space:nowrap;color:var(--muted);align-items:center;gap:.75rem;font-size:.9rem;display:flex}.achievement-hero>summary .interface-icon{width:18px;height:18px}.achievement-hero[open]>summary .interface-icon{transform:rotate(90deg)}.achievement-hero .achievement-list{padding:.5rem}.achievement-collection{position:relative}.achievement-collection:hover{border-color:var(--gold)}.achievement-open{color:var(--gold);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;margin-top:12px;padding:0;font-size:.875rem;font-weight:700;display:flex}.achievement-open:after{content:"";border-radius:10px;position:absolute;inset:0}.achievement-open:focus-visible{outline:none}.achievement-open:focus-visible:after{outline:3px solid var(--gold);outline-offset:3px}.achievement-open .interface-icon{width:18px;height:18px}.combo-collection{max-width:920px;margin:20px auto;padding:0 4px 20px}.combo-collection-intro{justify-content:space-between;align-items:center;gap:16px;padding:20px 0 12px;display:flex}.combo-collection-intro h2{letter-spacing:-.025em;margin:4px 0;font-size:clamp(1.25rem,4.8vw,1.8rem)}.combo-collection-intro h2:focus{outline:none}.combo-collection-count{border:1px solid var(--gold);color:var(--gold);font-variant-numeric:tabular-nums;border-radius:12px;flex:none;padding:10px 12px;font-size:1rem}.combo-collection-rule,.combo-collection-footnote{color:var(--muted);align-items:flex-start;gap:10px;font-size:.875rem;line-height:1.6;display:flex}.combo-collection-rule .interface-icon,.combo-collection-footnote .interface-icon{width:22px;height:22px;color:var(--gold);flex:0 0 22px;margin-top:3px}.combo-collection-group{margin-top:30px}.combo-collection-group>header{margin-bottom:14px}.combo-collection-group h2{color:var(--gold);margin:0 0 5px;font-size:1.125rem}.combo-collection-group>header p{color:var(--muted);margin:0;font-size:.875rem}.combo-recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.combo-recipe{border:1px solid var(--line);background:var(--panel);border-radius:18px;min-width:0;padding:18px;position:relative;overflow:hidden;box-shadow:0 8px 22px #0003}.combo-recipe:before{content:"";background:linear-gradient(90deg,var(--recipe-from),var(--recipe-to));height:3px;position:absolute;top:0;left:0;right:0}.combo-recipe-sequence{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:start;gap:10px;margin-bottom:18px;display:grid}.combo-ingredient{text-align:center;color:var(--recipe-from);grid-column:1;min-width:0;font-size:.875rem;line-height:1.35}.combo-ingredient:nth-child(2){color:var(--recipe-to);grid-column:3}.combo-ingredient-icon{background:#0b1429;border:1px solid;border-radius:16px;justify-content:center;align-items:center;width:68px;height:64px;margin:0 auto 8px;display:flex}.combo-ingredient-icon .skill-icon,.combo-ingredient-icon .skill-icon img{width:40px;height:40px}.combo-sequence-arrow{color:var(--gold);grid-area:1/2;align-self:start;width:26px;height:26px;margin-top:20px}.combo-recipe h3{margin:0 0 10px;font-size:1.25rem;line-height:1.3}.combo-recipe-effect{color:var(--ink);margin:0 0 18px;font-size:1rem;line-height:1.55}.combo-trigger{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;padding:14px}.combo-trigger h4{color:var(--gold);margin:0 0 7px;font-size:.875rem}.combo-trigger p,.combo-recipe-details p{margin:0;font-size:1rem;line-height:1.55}.combo-recipe-details{margin-top:12px}.combo-recipe-details summary{cursor:pointer;min-height:44px;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:10px 0;font-size:.875rem;display:flex}.combo-recipe-details summary::-webkit-details-marker{display:none}.combo-recipe-details summary:focus-visible{outline-offset:2px;border-radius:6px;outline:3px solid #90d6ff}.combo-recipe-details summary .interface-icon{flex:none;width:18px;height:18px}.game-scroll .combo-recipe-details[open] summary .interface-icon{transform:rotate(45deg)}.combo-recipe-details p{color:var(--muted)}.combo-recipe-details table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:18px 0 12px;font-size:1rem}.combo-recipe-details caption{text-align:left;color:var(--gold);padding-bottom:8px;font-size:.875rem}.combo-recipe-details th,.combo-recipe-details td{border-bottom:1px solid var(--line);text-align:left;padding:8px}.combo-recipe-details th{color:var(--muted);font-size:.875rem;font-weight:500}.combo-recipe-details td:last-child{color:var(--recipe-to);font-weight:700}.combo-recipe-details .combo-example-note{font-size:.875rem}.combo-collection-empty{text-align:center;border:1px dashed var(--line);background:var(--panel);border-radius:18px;margin:24px 0;padding:40px 22px}.combo-collection-empty>.interface-icon{width:44px;height:44px;color:var(--gold)}.combo-collection-empty h3{margin:16px 0 10px;font-size:1.2rem}.combo-collection-empty p{color:var(--muted);font-size:1rem;line-height:1.6}.combo-collection-footnote{margin-top:24px}.combo-collection-back{justify-content:center;align-items:center;gap:10px;width:100%;min-height:48px;margin-top:24px;display:flex}@media (max-width:640px){.combo-recipe-grid{grid-template-columns:minmax(0,1fr)}.combo-collection{margin-top:4px}.combo-recipe{padding:16px}}@media (max-width:480px){.preferences-screen{margin:12px 0;padding:16px}.setting-row{gap:12px;font-size:14px}.game-header .header-actions{gap:3px}body.combat-mode .game-header h1{font-size:11px}}.notice-stack{z-index:80;top:max(8px, env(safe-area-inset-top));pointer-events:none;gap:6px;width:min(94vw,440px);display:grid;position:fixed;left:50%;transform:translate(-50%)}.game-notice{border:1px solid #566e84;border-left:4px solid var(--gold);animation:notice-enter calc(.24s * var(--feedback-scale)) ease-out both;pointer-events:auto;background:#1d2c3ff5;border-radius:10px;align-items:center;gap:8px;padding:12px;display:flex;box-shadow:0 8px 32px #0009}.game-notice p{color:#d2dbea;margin:2px 0 0;font-size:13px;line-height:1.35}.game-notice button{background:0 0;border:0;flex-shrink:0;width:44px;margin-left:auto}.notice-defeat{border-left-color:var(--red)}.notice-level,.notice-talent{border-left-color:var(--violet)}.notice-equipment,.notice-purchase{border-left-color:var(--green)}.combatant.low-health .resource-hp .numbers{color:#ffaba3}.combatant.low-health .mini-bar:not(.mp){animation:low-health calc(2s * var(--feedback-scale)) ease-in-out 2;outline:1px solid #ff8d80}.combatant.casting-magic .sprite-stage{animation:magic-cast calc(.6s * var(--feedback-scale)) ease-out}.combatant.casting-skill .sprite-stage{animation:skill-cast calc(.5s * var(--feedback-scale)) ease-out}.combatant.hit .nameplate{animation:damage-flash calc(.36s * var(--feedback-scale)) ease-out}.combatant.healed .nameplate{animation:restore-flash calc(.5s * var(--feedback-scale)) ease-out}body.prototype-fast .combatant.acting{animation:actor-strike calc(.18s * var(--feedback-scale)) ease-out}body.prototype-fast .combatant.casting-magic .sprite-stage{animation:magic-cast calc(.24s * var(--feedback-scale)) ease-out}body.prototype-fast .combatant.casting-skill .sprite-stage{animation:skill-cast calc(.2s * var(--feedback-scale)) ease-out}body.prototype-fast .combatant.hit .nameplate{animation:damage-flash calc(.18s * var(--feedback-scale)) ease-out}body.prototype-fast .combatant.healed .nameplate{animation:restore-flash calc(.22s * var(--feedback-scale)) ease-out}.impact-fx.timingPerfect{color:var(--gold);text-shadow:0 2px #090b15,0 0 12px #ffa544;font-weight:900}.impact-fx.dodge{color:#c5e8ff}.impact-fx.poison{color:var(--poison)}.combatant.poisoned .nameplate{animation:poison-flash calc(.36s * var(--feedback-scale)) ease-out}body.prototype-fast .combatant.poisoned .nameplate{animation-duration:calc(.18s * var(--feedback-scale))}.level-up-reward{animation:notice-enter calc(.28s * var(--feedback-scale)) ease-out}.level-up-level{animation:magic-cast calc(.36s * var(--feedback-scale)) ease-out}.talent-workspace-heading{flex:none;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:10px 12px 6px;display:grid}.talent-workspace-heading.has-back{grid-template-columns:44px 44px minmax(0,1fr) auto;column-gap:8px}.talent-workspace-heading .talent-back-button{place-self:start}.tree-browser-screen .level-up-confirm p{margin-bottom:0}.talent-workspace-heading .hero-thumbnail{width:44px;height:54px}.talent-workspace-identity{min-width:0}.talent-workspace-identity h2{color:var(--gold);margin:0;font-size:20px;line-height:1.2}.talent-workspace-identity h2 span{color:var(--ink);white-space:nowrap;font-size:14px;font-weight:500}.talent-workspace-identity p{color:var(--muted);margin:3px 0 0;font-size:14px;line-height:1.25}.talent-workspace-heading .talent-recap-button{min-height:44px;padding:7px 10px;font-size:14px}.talent-resource-strip{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;gap:4px 20px;font-size:14px;display:flex}.talent-resource-strip strong{color:var(--ink);font-variant-numeric:tabular-nums;margin-left:4px}.talent-party-strip{overscroll-behavior-x:contain;flex:none;gap:6px;min-width:0;padding:3px 10px 6px;display:flex;overflow-x:auto}.talent-party-strip .talent-party-button{min-width:0;min-height:48px;color:var(--muted);text-align:left;background:#17253b;border:1px solid #475872;border-radius:12px;flex:1 0 90px;grid-template-rows:auto auto;grid-template-columns:26px minmax(0,1fr);align-items:center;column-gap:6px;padding:4px 7px;display:grid}.talent-party-button .hero-thumbnail{grid-row:1/-1;width:26px;height:36px}.talent-party-button>span{text-overflow:ellipsis;white-space:nowrap;font:600 14px/1.2 system-ui,sans-serif;overflow:hidden}.talent-party-button>small{font-variant-numeric:tabular-nums;font:12px/1.2 system-ui,sans-serif}.talent-party-strip .talent-party-button.selected{border-color:var(--gold);color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);background:#34334a}.talent-party-button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}body.level-up-mode .level-up-tree{min-height:0;position:relative}body.level-up-mode .level-up-tree .skill-map-toolbar{flex-wrap:nowrap;margin:4px 10px 6px}body.level-up-mode .level-up-tree .skill-map-toolbar>span{display:block}body.level-up-mode .level-up-tree .skill-map-controls{margin-left:auto}body.level-up-mode .level-up-tree .skill-map-controls button,.level-up-tree .tree-help-button{border-radius:12px;min-width:44px;height:44px;min-height:44px;padding:6px;font-size:14px}.level-up-tree .tree-help-button{color:var(--muted);background:0 0;border:0;align-items:center;gap:5px;display:flex}body.level-up-mode .level-up-confirm{padding:8px 12px}.level-up-confirm .quiet-button{min-height:40px;font-size:14px}.level-up-confirm .primary-button{border-radius:14px}.level-up-recap .level-up-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0}.level-up-recap .level-up-note{font-size:14px}.progression-dialog-backdrop{z-index:160;padding:max(14px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050b19d9;place-items:center;display:grid;position:fixed;inset:0}.progression-dialog{text-align:left;background:#152237;border:1px solid #536482;border-radius:20px;flex-direction:column;gap:14px;width:min(100%,540px);min-height:0;max-height:100%;padding:18px;display:flex;box-shadow:0 20px 70px #0008}.progression-dialog>h2{color:var(--gold);margin:0;font-size:22px}.progression-dialog-content{overscroll-behavior:contain;min-height:0;font:16px/1.5 system-ui,sans-serif;overflow-y:auto}.progression-dialog>button{flex-shrink:0;min-height:48px}.level-celebration{z-index:140;padding:env(safe-area-inset-top) 20px env(safe-area-inset-bottom);text-align:center;cursor:pointer;isolation:isolate;background:radial-gradient(at 50% 46%,#463567 0,#17233c 38%,#080f1d 75%);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:fixed;inset:0;overflow:hidden}.level-celebration .kicker{color:var(--gold);letter-spacing:.2em;margin:0;font-size:18px}.level-celebration .level-celebration-portrait{object-fit:contain;z-index:1;filter:drop-shadow(0 0 22px #d1a6ff80);width:150px;height:190px;animation:.65s cubic-bezier(.2,.8,.2,1) both level-arrival}.level-celebration h2{color:var(--ink);margin:0;font-size:30px}.level-celebration-rank{color:var(--gold);font-size:clamp(40px,10vw,68px);line-height:1.1;animation:.6s .1s both level-arrival}.level-celebration-rank span{color:#aaa3c1;vertical-align:middle;font-size:.55em}.level-celebration p:not(.kicker){color:var(--green);margin:8px 0;font-size:18px}.level-celebration small{color:var(--muted);margin-top:16px;font-size:14px}.level-celebration-halo{z-index:-1;aspect-ratio:1;border:2px solid #eed19280;border-radius:50%;width:min(72vw,420px);animation:1.4s ease-out both level-halo;position:absolute;box-shadow:0 0 90px #b693ff50,inset 0 0 50px #c6a0ff35}@keyframes level-arrival{0%{opacity:0;transform:translateY(18px)scale(.86)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes level-halo{0%{opacity:0;transform:scale(.4)rotate(-15deg)}35%{opacity:1}to{opacity:0;transform:scale(1.6)rotate(15deg)}}body .skill-map-node.talent-acquired{animation:.9s ease-out both talent-acquisition}body .skill-map-node.talent-revealed{animation:.65s ease-out both talent-unveil}.skill-link.talent-link-revealed{animation:.95s ease-out both talent-link-unveil}.talent-reveal-caption{z-index:10;text-align:center;pointer-events:none;background:#101c32f2;border:1px solid #a494c9;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;width:fit-content;max-width:calc(100% - 24px);margin:auto;padding:10px 14px;font-size:14px;display:flex;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 6px 22px #0008}.talent-reveal-caption strong{color:var(--gold)}.talent-reveal-caption span{color:var(--muted)}.talent-reveal-caption button{pointer-events:auto;min-height:40px;padding:4px 10px;font-size:14px}@keyframes talent-acquisition{0%{box-shadow:0 0 #ffe198}40%{box-shadow:0 0 0 22px #ffe19850,0 0 70px #ffe198}to{box-shadow:0 0 0 38px #0000,0 0 18px #75e6a433}}@keyframes talent-unveil{0%{opacity:0;filter:brightness(1.8);transform:translate(-50%,-50%)scale(.6)}65%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes talent-link-unveil{0%{opacity:0}to{opacity:1}}body.reduce-motion .level-celebration *,body.reduce-motion .skill-map-node.talent-acquired,body.reduce-motion .skill-map-node.talent-revealed,body.reduce-motion .talent-link-revealed{animation:none!important}@media (prefers-reduced-motion:reduce){.level-celebration *,body .skill-map-node.talent-acquired,body .skill-map-node.talent-revealed,.talent-link-revealed{animation:none!important}}@media (max-height:560px){.talent-workspace-heading{grid-template-columns:32px minmax(0,1fr) auto;padding:5px 10px}.talent-workspace-heading.has-back{grid-template-columns:44px 32px minmax(0,1fr) auto}.talent-workspace-heading .hero-thumbnail{width:32px;height:38px}.talent-workspace-identity p{display:none}.level-celebration .level-celebration-portrait{width:85px;height:100px}.level-celebration-rank{font-size:36px}}.skill-node.owned{transition:background-color calc(.18s * var(--feedback-scale)), box-shadow calc(.18s * var(--feedback-scale))}.vertical-battlefield .combatant[aria-disabled=true]:not(.executing):not(.receiving-impact){opacity:.42}.combatant[data-inspect-unit]{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.combatant[data-inspect-unit] img{-webkit-user-drag:none}.ally-row.with-summons{touch-action:pan-x;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;min-width:0;max-width:100%;overflow:auto hidden}.ally-row.with-summons .combatant[data-inspect-unit]{touch-action:pan-x}@media (max-width:720px){body.combat-mode .ally-row.with-summons{justify-content:flex-start}}.combat-inspection-open *,.combat-inspection-open :before,.combat-inspection-open :after{animation-play-state:paused!important}.vertical-battlefield .combatant.executing,.vertical-battlefield .combatant.receiving-impact{opacity:1;filter:none}.vertical-battlefield.resolving .combatant.selected:not(.executing){box-shadow:none;background:0 0;outline:none}.vertical-battlefield .combatant.executing{z-index:9;box-shadow:inset 0 0 0 2px var(--gold);background:#ffd16614;outline:none}.combatant.receiving-damage .sprite-stage :is(img,.pixel-sprite){filter:sepia()saturate(6)hue-rotate(315deg)drop-shadow(0 0 6px #ff4e68)}.combatant.receiving-heal .sprite-stage :is(img,.pixel-sprite){filter:sepia()saturate(5)hue-rotate(65deg)drop-shadow(0 0 6px #5bf1a2)}.combatant.receiving-poison .sprite-stage :is(img,.pixel-sprite){filter:sepia(1) saturate(5) hue-rotate(220deg) drop-shadow(0 0 6px var(--poison-edge))}.combat-impact-wash{z-index:1;border-radius:inherit;pointer-events:none;opacity:.3;animation:impact-wash var(--impact-pop-duration,.133s) ease-out both;position:absolute;inset:0;box-shadow:inset 0 0 28px}.combat-impact-wash.damage{color:#ff546b}.combat-impact-wash.heal{color:#55e69a}.combat-impact-wash.poison{color:var(--poison)}.vertical-battlefield .combatant .impact-fx.health-impact{z-index:11;font-variant-numeric:tabular-nums;letter-spacing:-.06em;overflow-wrap:anywhere;text-shadow:1px 2px #000;transform-origin:100% 0;max-width:calc(100% - 8px);animation:health-impact-pop var(--impact-pop-duration,.133s) ease-out both;background:#090f20e8;border-radius:6px;justify-items:end;padding:3px 5px;font:900 clamp(18px,4.8vw,28px)/1.05 ui-monospace,monospace;display:grid;top:4px;left:auto;right:4px;box-shadow:0 2px #0007}.health-impact :is(small,.impact-value){min-width:0;max-width:100%}.health-impact small{letter-spacing:0;font:800 10px/1.2 system-ui,sans-serif}.impact-fx.health-impact:is(.damage,.sacrifice){color:#ff8792}.impact-fx.health-impact.heal{color:#7df5b5}.impact-fx.health-impact.timingPerfect small{color:var(--gold)}.impact-fx.health-impact.poison,.impact-fx.health-impact.poison small{color:var(--poison)}.combatant.multi-striking .sprite-stage{animation:strike-pulse var(--strike-duration,.18s) ease-out both}.enemy-zone .combatant.multi-striking .sprite-stage{animation-name:enemy-strike-pulse}.combatant.multi-struck .sprite-stage{animation:strike-recoil var(--strike-duration,.18s) ease-out both}.combatant.multi-struck .mini-bar>span{transition-duration:min(90ms,var(--strike-duration,.18s));transition-timing-function:linear}.strike-impact{z-index:10;pointer-events:none;color:var(--strike-ink);animation:strike-cut var(--strike-duration,.18s) ease-out both;position:absolute;inset:8% 12% 40%}.strike-impact:before{content:"";background:currentColor;width:5px;height:86%;position:absolute;top:6%;left:48%;transform:rotate(38deg);box-shadow:0 0 0 2px #241827,0 0 10px}.strike-impact.slash-right:before{transform:rotate(-38deg)}.battle-action-banner .strike-counter{color:var(--strike-ink);letter-spacing:.06em;margin-top:4px;font:700 13px/1.2 system-ui,sans-serif;display:block}.battle-action-banner .strike-counter strong{color:inherit;margin:0;padding:0;font:900 21px/1 ui-monospace,monospace;display:inline}.health-impact .impact-strike-count{color:var(--strike-ink);font-size:11px}.strike-impact.poison,.health-impact.poison .impact-strike-count{color:var(--poison)}@keyframes strike-pulse{0%,to{translate:0}30%{translate:0 -9px}58%{translate:0 -3px}}@keyframes enemy-strike-pulse{0%,to{translate:0}30%{translate:0 9px}58%{translate:0 3px}}@keyframes strike-recoil{0%,to{translate:0}25%{translate:5px}55%{translate:-3px}}@keyframes strike-cut{0%{opacity:0;scale:.55}20%{opacity:1;scale:1.05}75%,to{opacity:0;scale:1.15}}body.reduce-motion .strike-impact{display:none}.combo-burst{--reaction-ink:#c9b6ff;color:var(--reaction-ink);text-shadow:none}.combo-burst.fx-blaze,.combo-burst.fx-heat,.combo-burst.fx-inferno,.combo-burst.fx-magma{--reaction-ink:#ffb36a}.combo-burst.fx-wave,.combo-burst.fx-frost,.combo-burst.fx-tide,.combo-burst.fx-flood{--reaction-ink:#7bdaff}.combo-burst.fx-storm,.combo-burst.fx-gale{--reaction-ink:#a3f6d2}.combo-burst.fx-quake,.combo-burst.fx-mud,.combo-burst.fx-sand{--reaction-ink:#ebcb8e}.combo-burst.fx-steam{--reaction-ink:#d8e0ed}.combo-burst.fx-poison,.combo-burst.has-poison{--reaction-ink:var(--poison)}.combo-burst>.combo-target{color:#f4f0dc;margin:2px 0;font-size:.7rem}.combo-burst>.combo-damage{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:7px;margin:5px 0;display:flex}.combo-damage strong{font-variant-numeric:tabular-nums;text-shadow:2px 3px #060b1d;font-size:clamp(1.7rem,6vw,2.5rem);font-weight:950;line-height:1}.combo-damage span{font-size:.65rem;font-weight:900}body.combat-mode .combo-burst>b{color:#080e20;background:var(--reaction-ink);letter-spacing:.025em;font-size:clamp(.62rem,2.4vw,.78rem);line-height:1.35}body.combat-mode .combo-burst>strong{font-size:clamp(.85rem,3.4vw,1.24rem)}body.combat-mode .combo-burst>span{letter-spacing:.08em;font-size:clamp(.54rem,2.1vw,.62rem)}.vertical-battlefield.resolving .combat-ui{grid-template-columns:minmax(0,1fr)}.vertical-battlefield.resolving .combat-log{display:none}.battlefield .combat-ui .combat-resolution-panel{isolation:isolate;text-align:center;background:#0c1429;border-color:#566987;flex-direction:column;width:100%;height:100%;min-height:0;padding:8px 12px;display:flex;position:relative;overflow:hidden}.battlefield .combat-resolution-panel .combat-event-body{z-index:auto;width:100%;min-width:0;min-height:0;max-height:none;box-shadow:none;text-shadow:none;overflow-wrap:anywhere;overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto;background:0 0;border:0;border-radius:0;flex-direction:column;flex:auto;justify-content:safe center;align-items:center;gap:4px;margin:0;padding:4px 0;animation:.14s ease-out both battle-panel-enter;display:flex;position:static;inset:auto;overflow:auto;transform:none}.combat-resolution-panel .elemental-fusion{--fusion-duration:calc(var(--combo-duration,.833s) * 1.5);z-index:-1;pointer-events:none;contain:paint;border-radius:6px;position:absolute;inset:2px;overflow:hidden}.elemental-fusion *,.elemental-fusion:before{pointer-events:none}.elemental-fusion:before{content:"";border-radius:inherit;border-left:3px solid var(--fusion-left);border-right:3px solid var(--fusion-right);background:linear-gradient(90deg,var(--fusion-left),var(--fusion-right)) top/100% 2px no-repeat, linear-gradient(90deg,var(--fusion-left),var(--fusion-right)) bottom/100% 2px no-repeat;opacity:.8;position:absolute;inset:0}.elemental-fusion .fusion-stream{opacity:0;width:50%;animation:fusion-converge var(--fusion-duration) cubic-bezier(.16,.65,.24,1) both;position:absolute;top:0;bottom:0}.elemental-fusion .fusion-left{--fusion-start:-100%;color:var(--fusion-left);clip-path:polygon(0 5%,68% 24%,100% 50%,68% 76%,0 95%);background:linear-gradient(90deg,#0000 5%,currentColor);left:0}.elemental-fusion .fusion-right{--fusion-start:100%;color:var(--fusion-right);clip-path:polygon(100% 5%,32% 24%,0 50%,32% 76%,100% 95%);background:linear-gradient(270deg,#0000 5%,currentColor);right:0}.elemental-fusion .fusion-contact,.elemental-fusion .fusion-ring{opacity:0;width:44px;height:44px;animation:fusion-contact var(--fusion-duration) ease-out both;margin:-22px;position:absolute;top:50%;left:50%}.elemental-fusion .fusion-contact{background:linear-gradient(90deg,var(--fusion-left) 50%,var(--fusion-right) 50%);clip-path:polygon(50% 0,62% 36%,100% 50%,62% 64%,50% 100%,38% 64%,0 50%,38% 36%)}.elemental-fusion .fusion-ring{border:3px solid var(--fusion-left);border-right-color:var(--fusion-right);border-bottom-color:var(--fusion-right);border-radius:50%;animation-name:fusion-ripple}@keyframes fusion-converge{0%{transform:translateX(var(--fusion-start));opacity:0}12%{opacity:.24}45%{opacity:.24;transform:translate(0)}75%,to{opacity:0;transform:translate(0)}}@keyframes fusion-contact{0%,38%{opacity:0;transform:scale(.25)}48%{opacity:.38;transform:scale(1.2)}80%,to{opacity:0;transform:scale(.75)}}@keyframes fusion-ripple{0%,40%{opacity:0;transform:scale(.35)}50%{opacity:.65}to{opacity:0;transform:scale(4.5)}}.battlefield .combat-resolution-panel .combat-event-kind{letter-spacing:.06em;font:800 .875rem/1.3 system-ui,sans-serif}.battlefield .combat-resolution-panel .combat-event-title{margin:0;font:850 clamp(1.2rem,4.8vw,1.6rem)/1.18 system-ui,sans-serif}.battlefield .combat-resolution-panel .combat-event-detail{letter-spacing:0;border-radius:6px;margin:0;padding:5px 8px;font:750 .875rem/1.35 system-ui,sans-serif}.combat-resolution-panel .combo-context{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;display:flex}.combat-resolution-panel .combo-target{color:#f4f0dc;font:600 .875rem/1.3 system-ui,sans-serif}.combat-resolution-panel .combo-charge{color:var(--reaction-ink);gap:3px;font:700 .875rem/1.3 system-ui,sans-serif;display:grid}.combat-resolution-panel .combo-charge b{color:#f3ebd8;font:800 .875rem/1.3 system-ui,sans-serif}.battlefield .combat-resolution-panel .combo-damage{margin:0}.battlefield .combat-resolution-panel .combo-damage strong{font-size:clamp(2.25rem,9vw,3rem)}.battlefield .combat-resolution-panel .combo-damage span{font-size:.875rem}.battlefield .combat-resolution-panel .combo-elements .element-badge{padding:2px 5px;font-size:.875rem}.battlefield .combat-resolution-panel .combo-elements .skill-icon{width:20px;height:20px}.battlefield .combat-resolution-panel .battle-panel-hint{color:#c0cbe0;letter-spacing:0;text-shadow:none;border-top:1px solid #28364f;flex:none;margin:4px 0 0;padding-top:5px;font:500 .875rem/1.4 system-ui,sans-serif;display:block}.battle-outcomes{flex-wrap:wrap;justify-content:center;gap:8px 18px;display:flex}.battle-outcome{flex-direction:column;align-items:center;gap:2px;display:flex}.battlefield .combat-resolution-panel .battle-outcome>span{color:#e7ebf3;letter-spacing:0;font:500 .875rem/1.3 system-ui,sans-serif}.battlefield .combat-resolution-panel .battle-outcome>strong{font:850 clamp(1.25rem,5vw,1.8rem)/1.2 system-ui,sans-serif}.battle-outcome.damage>strong{color:#ff929d}.battle-outcome.heal>strong{color:#95efb9}.battle-outcome.poison>strong{color:var(--poison)}.battle-outcome.gold>strong{color:#ffda7a}.battle-outcome.mana>strong{color:#85d2ff}.battle-outcome.buff>strong{color:#b8cbff}.battlefield .combat-resolution-panel .battle-outcome.compact>strong{font-size:1rem;line-height:1.35}.battle-outcome{overflow-wrap:anywhere;max-width:100%}.battle-outcome>small{color:#c5d1e6;font:500 .875rem/1.4 system-ui,sans-serif}.combat-event-actor{color:#c5d1e6;font:650 .875rem/1.3 system-ui,sans-serif}.strike-element-note,.strike-poison-note{text-align:center;overflow-wrap:anywhere;background:#172b40ba;border:1px solid #435d76;border-radius:10px;gap:4px;width:100%;padding:9px 10px;display:grid}.strike-element-note>div{color:#bcd8ee;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;font:700 .875rem/1.3 system-ui,sans-serif;display:flex}.strike-element-note>strong,.strike-poison-note>strong{color:#e5f1ff;font:750 1rem/1.3 system-ui,sans-serif}.strike-element-note>small,.strike-poison-note>small{color:#c2d4e8;font:500 .875rem/1.4 system-ui,sans-serif}.strike-element-note[data-strike-element=burst]{background:#23344dd9;border-color:#a2b5d4}.strike-poison-note{background:#30213ed9;border-color:#9465b9}.strike-poison-note>strong{color:var(--poison)}.combat-action-costs{flex-wrap:wrap;justify-content:center;gap:4px 8px;padding:4px 0;display:flex}.combat-action-costs>span{color:#d4dbea;border:1px solid #45516b;border-radius:20px;padding:3px 8px;font:550 .8rem/1.3 system-ui,sans-serif}.victory-content .victory-menu{margin:0 0 8px auto;display:flex}.battlefield .combat-resolution-panel .battle-action-banner.has-poison :is(.combat-event-kind,.combat-event-title,.strike-counter){color:var(--poison)}.game-viewport .battle-playback-skip,.game-viewport .battle-playback-skip:is(:hover,:active,:focus){z-index:95;color:#0000;width:100%;height:100%;min-height:0;box-shadow:none;touch-action:none;cursor:pointer;pointer-events:none;background:0 0;border:0;border-radius:0;margin:0;padding:0;position:fixed;inset:0;transform:none}.game-viewport .battle-playback-skip:focus-visible{outline:2px solid var(--gold);outline-offset:-8px}@keyframes battle-panel-enter{0%{opacity:.4}to{opacity:1}}body.reduce-motion .battlefield .combat-resolution-panel .combat-event-body{animation:none}@media (max-height:520px){.battlefield .combat-ui .combat-resolution-panel{padding:6px 10px}.battlefield .combat-resolution-panel .combat-event-body{gap:2px}.battlefield .combat-resolution-panel .combo-damage strong{font-size:2.25rem}.battlefield .combat-resolution-panel .battle-panel-hint{margin-top:3px}}.combatant.active .sprite-stage{animation-duration:calc(.7s * var(--feedback-scale))}.skill-map-node.available{animation-duration:calc(1.4s * var(--feedback-scale))}@keyframes health-impact-pop{0%{opacity:.25;transform:scale(.55)rotate(-6deg)}55%{opacity:1;transform:scale(1.12)rotate(2deg)}to{opacity:1;transform:scale(1)}}@keyframes impact-wash{0%{opacity:.6}to{opacity:.3}}@keyframes notice-enter{0%{opacity:0;translate:0 -10px}to{opacity:1;translate:0}}@keyframes actor-strike{40%{translate:0 -6px}}@keyframes magic-cast{50%{filter:drop-shadow(0 0 12px #ab89ff)}}@keyframes skill-cast{50%{filter:drop-shadow(0 0 9px #8af4c2)}}@keyframes damage-flash{30%{background:#663947}}@keyframes restore-flash{30%{background:#23594e}}@keyframes low-health{50%{opacity:.65}}body.shop-mode .game-shell{max-width:960px}body.shop-mode .game-footer{display:none}.shop-workspace.phase-screen{box-shadow:none;background:0 0;border:0;padding:0}.halte-header{z-index:12;background:linear-gradient(120deg,#1c3045,#121b2d);border:1px solid #42556e;border-radius:16px;align-items:center;gap:10px;margin-bottom:14px;padding:12px;display:flex;position:sticky;top:0}.halte-title{flex:1;min-width:0}.halte-title small{color:#b7bfd0;letter-spacing:.1em;font-size:10px;display:block}.halte-title h2{color:#fff1c5;margin:2px 0 0;font-size:25px}.halte-gold{color:#f7d576;white-space:nowrap;align-items:baseline;gap:5px;font-size:22px;display:flex}.halte-gold small{font-size:13px}.shop-summary{gap:16px;display:grid}.halte-reward{color:#a6ddc2;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;font-size:13px;display:flex}.halte-reward .interface-icon{width:16px;height:16px}.halte-recruit-slot{display:none}.halte-team{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.halte-hero{text-align:left;background:#131e30;border:1px solid #3d5066;border-radius:14px;flex-direction:column;align-items:stretch;gap:5px;min-width:0;padding:10px 7px;font-size:13px;display:flex}.halte-portrait{object-fit:contain;width:100%;height:76px;image-rendering:pixelated}.halte-hero strong{color:#fff0be;font-size:16px}.halte-hero strong small{color:#b4c0d0;font-size:11px}.halte-hero>span{justify-content:space-between;gap:3px;display:flex}.halte-hero>span b{font-variant-numeric:tabular-nums}.halte-hero>span:first-of-type{color:#93dfb4}.halte-hero>span:nth-of-type(2){color:#8ac9f6}.halte-hero .halte-slots{color:#b8c3d4;border-top:1px solid #2c3e54;justify-content:center;margin-top:4px;padding-top:6px;font-size:11px}.halte-slots .interface-icon{width:14px;height:14px}.halte-hero em{color:#f5b5ab;font-size:11px;font-style:normal}.halte-destinations{gap:10px;display:grid}.halte-destination{isolation:isolate;text-align:left;background:#15121e;border:1px solid #94723f;border-radius:16px;align-items:center;min-width:0;min-height:124px;padding:18px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #edd59712,0 4px 12px #0003}.halte-destination-art{z-index:-2;object-fit:cover;object-position:right center;width:100%;height:100%;image-rendering:pixelated;pointer-events:none;position:absolute;inset:0}.halte-destination:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#0c0b17f2 0%,#0c0b17d9 36%,#0c0b1780 64%,#0c0b1700 100%);position:absolute;inset:0}.halte-destination-copy{text-shadow:0 2px 3px #000;width:72%;min-width:0;display:block}.halte-destination strong{color:#fff1d0;overflow-wrap:anywhere;font-size:1.25rem;line-height:1.2;display:block}.halte-destination small{color:#e2dacc;margin-top:5px;font-size:.875rem;line-height:1.35;display:block}.halte-destination>.interface-icon{color:#ffe4a6;background:#13101bd9;border:1px solid #cab172a6;border-radius:8px;width:26px;height:26px;padding:4px;position:absolute;bottom:12px;right:12px}.halte-destination:hover:not(:disabled){border-color:#ffe1a1;box-shadow:0 0 0 1px #edc78570,0 4px 14px #0005}.halte-destination:disabled{opacity:1;border-color:#68616e}.halte-destination:disabled .halte-destination-art{filter:grayscale(.85)brightness(.65)}.halte-destination:disabled strong{color:#e4dfe9}.halte-recruitment-status{color:#c0f3df;max-width:100%;text-shadow:none;background:#102b26ed;border:1px solid #80beab;border-radius:6px;align-items:center;gap:5px;margin-top:7px;padding:3px 7px;font-size:.875rem;font-weight:700;line-height:1.3;display:inline-flex}.halte-recruitment-status .interface-icon{flex:0 0 14px;width:14px;height:14px}.halte-destination:disabled .halte-recruitment-status,.halte-destination[data-recruitment-state=unaffordable] .halte-recruitment-status{color:#ffe2af;background:#392517f2;border-color:#c39861}.halte-departure{text-align:center;gap:9px;margin:3px 0 10px;display:grid}.halte-departure .primary-button{justify-content:center;align-items:center;gap:10px;width:100%;min-height:58px;font-size:19px;display:flex}.halte-departure small,.shop-brief{color:#acb8cb;font-size:13px;line-height:1.5}.shop-subscreen{gap:12px;display:grid}.shop-subscreen .shop-tabs{grid-template-columns:1fr 1fr;gap:8px;margin:0;display:grid}.shop-subscreen .shop-tabs button{border-radius:12px;min-height:48px;padding:8px}.halte-reroll{color:#bbc7d9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.halte-reroll button{align-items:center;gap:7px;min-height:44px;font-size:13px;display:flex}.shop-brief{margin:0}.shop-subscreen .equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.shop-subscreen .equipment-card{text-align:left;border-radius:14px;min-width:0;padding:12px}.shop-subscreen .equipment-card strong{font-size:16px}.shop-subscreen .equipment-description{font-size:13px;line-height:1.45}.shop-subscreen .equipment-card-footer{font-size:13px}.shop-subscreen .equipment-type{font-size:11px}.shop-subscreen .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.shop-subscreen .shop-card{border-radius:14px;min-width:0;padding:14px;font-size:14px}.shop-subscreen .shop-card .action-top{flex-wrap:wrap}.shop-hero-picker{gap:8px;display:flex}.shop-hero-picker button{border-radius:12px;flex:1;justify-content:center;align-items:center;gap:5px;min-width:0;padding:7px;display:flex}.shop-mini-portrait{object-fit:contain;width:26px;height:38px;image-rendering:pixelated}.shop-equipped-identity{color:#b2c3d6;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:14px;display:flex}.shop-equipped-identity strong{color:#f9e2a1}.shop-stat-details{border:1px solid #36475e;border-radius:12px;padding:10px 12px;font-size:14px}.shop-stat-details summary{cursor:pointer;min-height:24px}.shop-stat-details .equipped-stats{margin-top:12px}.shop-subscreen .equipment-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-subscreen .equipment-slot{border-radius:12px;min-width:0}.shop-subscreen .empty-equipment{grid-column:1/-1;font-size:14px}.halte-empty{text-align:center;color:#b5c6d9;background:#111d2d;border:1px solid #35485f;border-radius:16px;padding:30px 18px}.halte-empty>.interface-icon{width:40px;height:40px}body.shop-mode .game-scroll:has(.mercenary-workspace){overflow:hidden}body.shop-mode .game-shell:has(.mercenary-workspace){flex-direction:column;width:100%;max-width:780px;height:100%;min-height:0;padding:6px;display:flex}.game-shell:has(.mercenary-workspace)>.screen{flex:1;min-width:0;min-height:0}.mercenary-workspace{width:100%;height:100%;min-height:0}.mercenary-workspace .shop-workspace-content{flex-direction:column;height:100%;min-height:0;display:flex}.mercenary-workspace .halte-header{border-radius:13px;flex:none;gap:8px;margin:0 0 8px;padding:8px;position:static}.mercenary-workspace .halte-title h2{font-size:22px}.mercenary-workspace .halte-header .icon-button{width:44px;min-width:44px;height:44px;padding:8px}.mercenary-workspace .shop-mercenaries{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex}.shop-mercenaries .shop-message{flex:none;margin:0;font-size:12px}.shop-mercenaries .halte-empty{margin:auto 0}.recruitment-section{background:linear-gradient(155deg,#1d2c43,#101829 60%);border:1px solid #465773;border-radius:16px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.recruit-detail{flex:1;grid-template-rows:minmax(60px,1fr) auto minmax(0,1fr);min-width:0;min-height:0;padding:8px 14px 10px;display:grid}.recruit-showcase{justify-content:center;align-items:center;gap:12px;min-height:0;display:flex}.recruit-art{--hero-glow:#6cbef0;background:radial-gradient(ellipse at 50% 62%,color-mix(in srgb,var(--hero-glow) 23%,transparent),transparent 66%);width:42%;min-width:0;max-width:220px;height:100%;max-height:240px}.recruit-art.starter-art-earth{--hero-glow:#bf976c}.recruit-art.starter-art-fire{--hero-glow:#f0786c}.recruit-art.starter-art-water{--hero-glow:#6fbffd}.recruit-art.starter-art-wind{--hero-glow:#69d5a0}.recruit-art.starter-art-poison{--hero-glow:#b581e9}.recruit-portrait{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;filter:drop-shadow(0 8px 8px #0005)}.recruit-identity{flex:1;min-width:0;max-width:260px}.recruit-identity>p{color:#abcddc;margin:0 0 6px;font-size:14px;line-height:1.3}.recruit-identity h3{color:#ffe1a0;margin:0 0 6px;font-size:clamp(28px,7vw,42px);line-height:1.05}.recruit-identity>span{color:var(--muted);font-size:14px}.recruit-stats{text-align:center;border-block:1px solid #6c829844;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:6px 0;padding:6px 0;display:grid}.recruit-stats dt{color:var(--muted);font-size:12px}.recruit-stats dd{font-variant-numeric:tabular-nums;margin:0;font-size:16px;font-weight:750}.recruit-stats>div:first-child dd{color:#95dfbf}.recruit-stats>div:nth-child(2) dd{color:#98d2fa}.recruit-copy{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#60738d transparent;min-width:0;min-height:0;overflow:auto}.recruit-copy>p,.recruit-advice p{color:#dbe3ee;margin:0;font-size:16px;line-height:1.4}.recruit-paths{margin-top:8px}.recruit-paths h4{color:#abc0d2;margin:0 0 3px;font-size:12px;font-weight:500}.recruit-paths p{color:#f1d397;margin:0;font-size:14px;line-height:1.3}.recruit-advice{margin-top:8px}.recruit-advice summary{cursor:pointer;color:#b7d5ec;align-items:center;min-height:32px;font-size:14px;display:flex}.recruit-advice summary:before{content:"+";flex:none;width:18px}.recruit-advice[open] summary:before{content:"−"}.recruit-choices{background:#111b2c;border-top:1px solid #72849d55;flex:none;padding:10px}.recruit-roster-label{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.recruit-roster-label h3{color:var(--ink);margin:0;font-size:14px}.recruit-roster-label>span{color:var(--muted);font-size:12px}.shop-mercenaries .recruit-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.recruit-tile{color:#c9d3e3;background:linear-gradient(#23324b,#192338);border:1px solid #41516b;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:3px 2px 5px;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.recruit-tile:hover:not(:disabled){background:#2b3c55;border-color:#b8c8dd;transform:none}}.recruit-tile[aria-pressed=true]{color:#ffe3a6;background:linear-gradient(#514636,#28303a);border-color:#edcd83;box-shadow:inset 0 0 0 1px #edcd83}.recruit-thumbnail{object-fit:contain;width:58px;max-width:100%;height:58px;image-rendering:pixelated}.recruit-tile>span{font-size:14px;font-weight:650;line-height:1.25}.recruit-selected{line-height:1;position:absolute;top:5px;right:5px}.recruit-selected .interface-icon{width:14px;height:14px}.game-shell .recruit-confirm{justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;margin-top:8px;padding:8px;font-size:16px;display:flex}.recruit-cost-note{text-align:center;color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.3}@media (max-height:650px){.mercenary-workspace .halte-header{margin-bottom:5px;padding:6px}.recruit-choices{padding:8px}.recruit-thumbnail{width:40px;height:40px}.recruit-identity>p{margin-bottom:3px}.recruit-identity h3{margin-bottom:3px;font-size:28px}.game-shell .recruit-confirm{min-height:44px}}@media (max-height:500px) and (min-width:550px){.recruit-detail{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 14px}.recruit-showcase{grid-area:1/1;gap:6px}.recruit-stats{grid-area:2/1;margin:0}.recruit-copy{grid-area:1/2/-1}.recruit-art{width:34%}.recruit-choices{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.recruit-roster-label{grid-column:1;margin:0}.shop-mercenaries .recruit-grid{grid-area:2/1/4}.game-shell .recruit-confirm{grid-area:1/2/3;align-self:end;margin:0}.recruit-cost-note{grid-area:3/2;margin:0}.recruit-thumbnail{width:32px;height:32px}}.shop-hero-picker button{color:#d6e0ee;background:#17243a;border:1px solid #435773}.shop-hero-picker button.selected{color:#ffe6a0;background:#374052;border-color:#efd17c;box-shadow:inset 0 -3px #efd17c}.shop-stat-details summary{justify-content:space-between;align-items:center;gap:8px;display:flex}.shop-stat-details[open] summary .interface-icon{transform:rotate(180deg)}.purchase-choices{text-align:center;gap:12px;padding:8px 0;display:grid}.purchase-choices .primary-button{min-height:52px;font-size:18px}.purchase-choices small{color:#b7c6d8;font-size:13px}.purchase-choices .quiet-button{justify-content:center;align-items:center;gap:8px;min-height:44px;font-size:14px;display:flex}.purchase-reveal{z-index:130;isolation:isolate;pointer-events:auto;background:#07101deb;place-items:center;padding:24px;display:grid;position:absolute;inset:0;overflow:hidden}.purchase-reveal-glow{background:radial-gradient(circle,#ffe4a055,#b790e122 42%,#0000 70%);border-radius:50%;width:85vmin;height:85vmin;animation:1.8s ease-out both acquisition-glow;position:absolute}.purchase-reveal-card{text-align:center;background:linear-gradient(150deg,#2b3250,#152437);border:2px solid #f3d486;border-radius:24px;width:min(100%,420px);padding:30px 20px;animation:.55s cubic-bezier(.16,1,.3,1) both acquisition-pop;position:relative;box-shadow:0 0 0 7px #d6b65d14,0 0 80px #eac06635}.purchase-reveal-icon{background:radial-gradient(#637387,#101b2e 72%);border:1px solid #ad925c;border-radius:22px;place-items:center;width:110px;height:110px;margin:0 auto 20px;display:grid;transform:rotate(-7deg);box-shadow:0 0 36px #f2d38b36}.purchase-reveal-icon .interface-icon{color:#ffe5a2;width:66px;height:66px}.purchase-reveal-kicker{color:#f4d791;letter-spacing:.22em;font-size:12px}.purchase-reveal-card h2{color:#fff2cb;margin:10px 0;font-size:clamp(23px,6vw,32px);line-height:1.15}.purchase-reveal-card p{color:#b9d7e9;font-size:15px}.purchase-reveal-card button{align-items:center;gap:8px;min-height:44px;margin-top:12px;display:inline-flex}.equipment-feedback{z-index:110;bottom:max(18px,var(--safe-bottom));pointer-events:none;background:#173536f2;border:1px solid #89d1bb;border-radius:16px;align-items:center;gap:12px;width:max-content;max-width:calc(100% - 28px);padding:13px 18px;animation:.45s ease-out both equipment-settle;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #0008}.equipment-feedback div{gap:4px;display:grid}.equipment-feedback strong{color:#d1ffe4;font-size:16px}.equipment-feedback span{color:#b4d8cc;font-size:13px}.equipment-feedback>.interface-icon{color:#a1efd4;flex-shrink:0}.door-opening{z-index:140;isolation:isolate;pointer-events:auto;background:#081327;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.door-leaf{image-rendering:pixelated;will-change:transform;background-image:url(/game/assets/interface/door-transition.png);background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.door-left{clip-path:inset(0 50% 0 0);animation:2.3s cubic-bezier(.6,0,.2,1) both door-slide-left}.door-right{clip-path:inset(0 0 0 50%);animation:2.3s cubic-bezier(.6,0,.2,1) both door-slide-right}.door-light{background:radial-gradient(#f5da86 0%,#a5a0e6 12%,#384b76 30%,#081327 65%);animation:2.3s ease-out both door-radiance;position:absolute;inset:-20%}.door-opening-copy{z-index:1;text-align:center;text-shadow:0 3px 22px #020712;padding:22px;animation:2.3s ease-out both door-title}.door-opening-copy>span{color:#f6d491;letter-spacing:.22em;font-size:12px}.door-opening-copy h2{letter-spacing:-.04em;color:#fff3cf;margin:12px 0;font-size:clamp(46px,15vw,90px)}.door-opening-copy p{color:#d3deec;font-size:16px}.door-skip{z-index:2;bottom:max(24px,var(--safe-bottom));white-space:nowrap;color:#f3e4bd;background:#0c182add;border:1px solid #c3b88866;border-radius:24px;align-items:center;gap:9px;min-height:44px;padding:10px 16px;font-size:13px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.door-reduced .door-leaf{display:none}.door-reduced .door-opening-copy,.door-reduced .door-light{animation:none}@keyframes acquisition-glow{0%{opacity:0;transform:scale(.4)}35%{opacity:1}to{opacity:.6;transform:scale(1.5)}}@keyframes acquisition-pop{0%{opacity:0;transform:scale(.65)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes equipment-settle{0%{opacity:0;margin-bottom:-12px}to{opacity:1;margin-bottom:0}}@keyframes door-slide-left{0%,15%{transform:translate(0)}80%,to{transform:translate(-51%)}}@keyframes door-slide-right{0%,15%{transform:translate(0)}80%,to{transform:translate(51%)}}@keyframes door-radiance{0%,20%{opacity:0;transform:scale(.5)}60%{opacity:1}to{opacity:.25;transform:scale(1.6)}}@keyframes door-title{0%,32%{opacity:0;transform:translateY(18px)scale(.92)}70%,to{opacity:1;transform:translateY(0)scale(1)}}@media (min-width:1000px){.halte-destinations{grid-template-columns:repeat(3,minmax(0,1fr))}.halte-destination{min-height:150px;padding:18px 14px}.halte-destination-copy{width:85%}}@media (min-width:720px){.halte-portrait{height:110px}.halte-hero{padding:14px}.shop-subscreen .equipment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:360px){.halte-header{gap:7px;padding:9px}.halte-title h2{font-size:21px}.halte-hero{padding:8px 4px;font-size:11px}.halte-hero strong{font-size:14px}.halte-destination{padding:12px}.shop-subscreen .equipment-grid,.shop-subscreen .shop-grid{grid-template-columns:1fr}}body.reduce-motion *,body.reduce-motion :before,body.reduce-motion :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (max-width:720px){body.combat-mode .game-header,body.combat-mode .run-bar,body.combat-mode .vertical-battlefield{box-shadow:none;border-width:1px}body.combat-mode .game-header{border-radius:0}body.combat-mode .vertical-battlefield{--command-height:clamp(218px, 37dvh, 268px);grid-template-rows:minmax(85px, 1fr) 20px minmax(85px, 1fr) var(--command-height)}body.combat-mode .vertical-battlefield:has(.action-detail-window){--command-height:clamp(250px, 41dvh, 300px)}body.combat-mode .vertical-battlefield:has(.target-window){--command-height:clamp(218px, 34dvh, 260px)}body.combat-mode .action-window{border-width:1px;border-radius:10px 10px 0 0;padding:6px}body.combat-mode .combatant{border:0;border-radius:8px}body.combat-mode .nameplate{background:#111a2b;border:0}body.combat-mode .unit-status{color:#ced7e5}body.combat-mode .target-options button{padding:5px 7px;font-size:13px}body.combat-mode .target-instruction{margin:2px 0;font-size:12px}body.combat-mode .target-window .actor-class{display:none}body.combat-mode .target-window .turn-heading{min-height:36px}}@media (max-height:520px) and (orientation:landscape){body.combat-mode .vertical-battlefield{grid-template-rows:minmax(80px,1fr) 20px minmax(80px,1fr);grid-template-columns:minmax(0,1fr) minmax(280px,1fr)}body.combat-mode .combat-ui{grid-area:1/2/4}}@media (orientation:portrait){body.combat-mode .game-viewport{height:auto}body.combat-mode .game-viewport .game-scroll{flex-direction:column;display:flex;overflow:hidden}.game-viewport .game-scroll .game-shell[data-game-scene=combat]{flex-direction:column;flex:1 1 0;gap:2px;width:100%;max-width:1000px;height:auto;min-height:0;margin:0 auto;padding:2px;display:flex}.game-viewport .game-shell[data-game-scene=combat]>:is(.game-header,.run-bar){flex:none;margin:0}.game-viewport .game-shell[data-game-scene=combat]>#screen{overscroll-behavior:contain;flex-direction:column;flex:1 1 0;min-height:0;display:flex;overflow:auto}.game-viewport .game-shell[data-game-scene=combat]>.game-footer{display:none}.game-viewport .game-shell[data-game-scene=combat] .vertical-battlefield{flex:1 0 400px;grid-template-rows:minmax(100px,min(22%,210px)) 12px minmax(100px,min(22%,210px)) minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:0;width:100%;height:auto;min-height:400px;padding:0;display:grid;overflow:hidden}.game-viewport .vertical-battlefield .combat-zone{flex-direction:column;min-height:0;padding:2px;display:flex;overflow:hidden}.game-viewport .vertical-battlefield .zone-label{display:none}.game-viewport .vertical-battlefield :is(.enemy-row,.ally-row){flex:1 1 0;align-items:stretch;gap:4px;height:auto;min-height:0}.game-viewport .vertical-battlefield .combatant{grid-template-rows:minmax(0,1fr) auto;height:auto;min-height:0;padding:0;display:grid;overflow:hidden}.game-viewport .vertical-battlefield .sprite-stage{height:100%;min-height:0;margin:0;overflow:hidden;transform:none}.game-viewport .vertical-battlefield .sprite-stage :is(.hero-sprite,.enemy-sprite){object-fit:contain;max-height:100%}.game-viewport .vertical-battlefield .battle-divider{min-height:0;padding:0}body.combat-mode .game-viewport .vertical-battlefield .combat-ui{flex-direction:column;min-width:0;min-height:0;padding:3px 1px 1px;display:flex;overflow:hidden}.game-viewport .vertical-battlefield .combat-log{display:none}.game-viewport .vertical-battlefield .action-window{flex-direction:column;flex:1 1 0;min-width:0;height:auto;min-height:0;margin:0;display:flex;overflow:hidden}.game-viewport .vertical-battlefield .action-window:not(.timing-panel):not(.combat-resolution-panel){overscroll-behavior:contain;overflow-y:auto}.game-viewport .vertical-battlefield :is(.turn-heading,.turn-plan,.action-detail-bar,.target-instruction,.action-scope-badge,.action-pagination){flex:none}.game-viewport .vertical-battlefield .category-choice-grid{flex:1 0 120px;grid-template-rows:repeat(2,minmax(56px,1fr));min-height:120px;overflow:auto}.game-viewport .vertical-battlefield .action-list{overscroll-behavior:contain;flex:1 1 0;min-height:88px;overflow-y:auto}.game-viewport .vertical-battlefield .target-options{flex:auto;align-content:start;min-height:44px;overflow-y:auto}.game-viewport .vertical-battlefield .combat-resolution-panel .combat-event-body{flex:1 1 0;min-height:0;overflow-y:auto}}.category-card>.category-preview{display:none}.settings-legal-links{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.settings-legal-links a{color:#edcb83;text-underline-offset:.2em;cursor:pointer;align-items:center;min-height:44px;font-size:1rem;display:inline-flex}.settings-legal-links a:focus-visible{outline-offset:3px;border-radius:3px;outline:3px solid #edcb83}.item-art{vertical-align:middle;flex:none;justify-content:center;align-items:center;width:64px;height:64px;display:inline-flex;position:relative}.item-art>img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;filter:drop-shadow(0 3px 2px #0005)}.item-art-sigil{background:#0e182b;border:1px solid #62758a;border-radius:6px;place-items:center;width:23px;height:23px;display:grid;position:absolute;bottom:0;right:-2px}.item-art-sigil .skill-icon,.item-art-sigil .skill-icon img{width:19px;height:19px}.halte-equipment-hint{text-align:center;color:#becadc;margin:-7px 0 0;font-size:14px}.halte-hero:hover{background:#1c2b40;border-color:#f4d68a}.halte-hero .halte-slots{color:#f1d68e;font-size:12px}.shop-subscreen .inventory-card{border:1px solid #34465d;border-left:3px solid var(--rarity);background:#121e2e;border-radius:12px;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;padding:12px;display:grid}.inventory-card .inventory-card-copy{gap:7px;min-width:0;display:grid}.inventory-card .inventory-card-copy>strong{color:#f4f2e9;overflow-wrap:anywhere;font:600 16px/1.25 system-ui,sans-serif}.inventory-card-meta{flex-wrap:wrap;align-items:center;gap:5px 8px;display:flex}.inventory-card-meta>span:not(.rarity-badge){color:#afc0d4;font-size:12px}.inventory-card .rarity-badge,.loadout-slot .rarity-badge{background:0 0;border:0;width:fit-content;padding:0;font-size:12px;font-weight:600;line-height:1.35}.shop-subscreen .inventory-card .equipment-description{color:#b7c6d8;font:14px/1.45 system-ui,sans-serif}.inventory-card-price{text-align:right;color:#f7d787;border-top:1px solid #314359;grid-column:1/-1;padding-top:8px;font-size:18px;font-weight:700}.inventory-card-price small{font-size:14px;font-weight:500}.inventory-card .unaffordable{color:#f2a5a8}.inventory-card.sold .item-art{opacity:.55}.shop-subscreen .inventory-card:hover{border-color:var(--rarity);background:#1b2b40}.shop-subscreen .shop-grid .consumable-card{text-align:left;background:#121e2e;border:1px solid #34465d;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;display:flex}.shop-subscreen .shop-grid .consumable-card>.item-art{width:76px;height:76px;margin:0 auto;display:inline-flex}.consumable-copy{flex-direction:column;flex:1;gap:9px;width:100%;min-width:0;margin:0!important;display:flex!important}.consumable-copy .action-top{align-items:flex-start}.consumable-copy strong{color:#f3ebd5;margin:0;font-size:16px;line-height:1.3}.consumable-copy>span{color:#bdcbdc;font-size:14px}.consumable-copy .price{color:#f7d787;margin-top:auto;padding-top:8px;font-size:14px}.consumable-card:disabled{opacity:.6}.action-title>.item-art{width:38px;height:38px}.purchase-reveal-icon>.item-art{width:116px;height:116px}.equipment-feedback>.item-art{width:48px;height:48px}.shop-equipment{gap:16px}.loadout-heroes{border-bottom:1px solid #34465a;padding:3px}.shop-hero-picker.loadout-heroes button{color:#c5d2e2;background:0 0;border:0;border-radius:8px;min-height:54px;padding:5px 8px;font-size:16px}.shop-hero-picker.loadout-heroes button.selected{color:#ffe3a1;background:#26344a;box-shadow:inset 0 -2px #efcf80}.loadout-heroes .shop-mini-portrait{width:28px;height:40px}.loadout{background:#101b2b;border:1px solid #35475c;border-radius:16px;min-width:0;overflow:hidden}.loadout-heading{justify-content:space-between;align-items:center;gap:8px;padding:14px 14px 8px;display:flex}.loadout-heading h3{color:#f9e6b4;margin:0;font:700 22px/1.15 system-ui,sans-serif}.loadout-heading h3 small{color:#aebdd0;white-space:nowrap;font-size:14px;font-weight:500}.loadout-heading p{color:#b4c4d8;margin:5px 0 0;font:14px/1.4 system-ui,sans-serif}.loadout-heading>span{color:#b8c9dc;white-space:nowrap;font-size:12px}.loadout-stage{isolation:isolate;grid-template-rows:repeat(2,minmax(122px,auto));grid-template-columns:minmax(0,1fr) minmax(65px,.82fr) minmax(0,1fr);gap:10px 5px;padding:12px;display:grid;position:relative}.loadout-character{pointer-events:none;grid-area:1/2/3;justify-content:center;align-items:center;min-width:0;display:flex;position:relative}.loadout-character:before{content:"";z-index:-1;background:radial-gradient(#658ab02a,#0000 68%);width:160%;height:85%;position:absolute}.loadout-portrait{object-fit:contain;width:155%;max-width:none;height:230px;image-rendering:pixelated;filter:drop-shadow(0 12px 7px #0005)}.loadout-slot{border:1px solid #4c607a;border-bottom:2px solid var(--rarity,#bdcbdc);color:#edf2fa;text-align:center;cursor:pointer;background:#152237e6;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;padding:8px 5px;display:flex}.loadout-weapon{grid-area:1/1}.loadout-armor{grid-area:2/1}.loadout-ring1{grid-area:1/3}.loadout-ring2{grid-area:2/3}.loadout-slot-label{color:#b4c2d6;font-size:12px}.loadout-slot .item-art{width:49px;height:49px}.loadout-slot>strong{color:#f0eee6;overflow-wrap:anywhere;width:100%;font:600 14px/1.25 system-ui,sans-serif}.loadout-slot .rarity-badge{color:var(--rarity)}.loadout-slot.empty{background:#13203499;border:1px dashed #4c607a}.loadout-slot.empty>strong{color:#ccd8e8;font-size:14px}.loadout-slot:hover,.loadout-slot.focused{background:#23334a;border-color:#efcd7c}.loadout-empty-icon{color:#7f94b0;place-items:center;width:49px;height:49px;display:grid;position:relative}.loadout-empty-icon>.interface-icon{width:32px;height:32px}.loadout-empty-icon i{color:#ffe3a3;background:#31405a;border-radius:6px;place-items:center;width:20px;height:20px;display:grid;position:absolute;bottom:0;right:0}.loadout-empty-icon i .interface-icon{width:14px;height:14px}.loadout-stats{background:#0d1725;border-top:1px solid #35475c;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:0;padding:12px 8px;display:grid}.loadout-stats div{text-align:center;min-width:0}.loadout-stats dt{color:#aebed2;white-space:nowrap;font-size:12px}.loadout-stats dd{color:#f1f3ef;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:5px 0 0;font-size:17px;font-weight:700}.loadout-reserve{min-width:0;scroll-margin-top:90px}.reserve-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.reserve-heading h3{color:#edf1f5;margin:0;font:700 18px/1.3 system-ui,sans-serif}.reserve-heading h3 span{color:#a8bad0;padding-left:4px;font-size:14px}.reserve-heading button{align-items:center;gap:7px;min-height:44px;padding:8px 10px;font-size:14px;display:flex}.reserve-heading button .interface-icon{width:18px;height:18px}.reserve-filters{background:#101a2a;border:1px solid #34455d;border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:3px;display:grid}.reserve-filters button{color:#c0cddd;cursor:pointer;background:0 0;border:0;border-radius:7px;min-width:0;min-height:44px;padding:8px 3px;font-size:14px}.reserve-filters button[aria-pressed=true]{color:#ffe1a0;background:#2c3b50}.reserve-hint{color:#aebfd4;margin:10px 2px;font-size:12px;line-height:1.5}.reserve-list{gap:8px;display:grid}.reserve-list .inventory-card{grid-template-columns:52px minmax(0,1fr) 18px;gap:10px;padding:10px}.reserve-list .inventory-card>.item-art{width:52px;height:52px}.reserve-list .inventory-card>.interface-icon{color:#91a9c5;width:18px;height:18px}.reserve-empty{color:#b4c5d9;text-align:center;background:#111c2c;border-radius:12px;justify-items:center;padding:20px 14px;display:grid}.reserve-empty>.item-art{opacity:.6;width:52px;height:52px}.reserve-empty p{color:#e5eaf1;margin:10px 0 5px;font-size:16px}.reserve-empty>span:not(.item-art){font-size:14px;line-height:1.5}.game-viewport .equipment-detail.equipment-sheet,.equipment-detail.equipment-sheet{width:min(540px,100%);max-height:calc(100dvh - var(--safe-top,0px) - var(--safe-bottom,0px) - 20px);border:1px solid #627186;border-top:3px solid var(--rarity);color:#e4eaf3;background:#111d2e;border-radius:18px;flex-direction:column;padding:0;display:flex;overflow:hidden;box-shadow:0 20px 80px #000b}.equipment-sheet-top{color:#b6c6da;border-bottom:1px solid #314359;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px 8px 18px;font-size:14px;display:flex}.equipment-sheet-top .icon-button{background:#1c2b40;border:1px solid #3f536e;border-radius:10px;width:44px;height:44px;min-height:44px}.equipment-sheet-body{overscroll-behavior:contain;min-height:0;padding:16px 18px;overflow-y:auto}.equipment-sheet-item{align-items:center;gap:14px;display:flex}.equipment-sheet-item>.item-art{width:86px;height:86px}.equipment-sheet-item>div{min-width:0}.equipment-sheet .equipment-sheet-item h3{color:#ffedc1;overflow-wrap:anywhere;margin:7px 0 5px;font:700 22px/1.18 system-ui,sans-serif}.equipment-sheet-item>div>span:last-child{color:#aabdd5;font-size:14px}.equipment-sheet .rarity-badge{background:0 0;border:0;padding:0;font-size:13px}.equipment-sheet .equipment-full-description{color:#dbe4f0;margin:14px 0;font-size:16px;line-height:1.55}.equipment-sheet .equipment-compare-toggle{color:#d5e1f0;text-align:left;background:#1a293e;border:1px solid #435871;border-radius:10px;justify-content:space-between;align-items:center;gap:6px;width:100%;min-height:44px;margin:4px 0;padding:10px;font-size:14px;display:flex}.equipment-compare-toggle[aria-expanded=true] .interface-icon{transform:rotate(180deg)}.equipment-sheet .equipment-recipient-picker{margin:18px 0 12px}.equipment-sheet .equipment-recipient-picker legend{color:#e8edf6;font-size:14px}.equipment-sheet .equipment-recipient-picker>div{gap:6px;display:flex}.equipment-sheet .equipment-recipient-picker button{background:#19283b;border:1px solid #435872;border-radius:9px;flex-direction:row;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:54px;padding:5px}.equipment-sheet .equipment-recipient-picker button strong{overflow-wrap:anywhere;font-size:14px}.equipment-sheet .equipment-recipient-picker button.selected{color:#ffe5a2;background:#34374a;border-color:#edcc7b}.equipment-sheet .ring-slot-picker{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;display:grid}.equipment-sheet .ring-slot-picker button{color:#eef1f8;text-align:left;background:#18273c;border:1px solid #425570;border-radius:9px;min-width:0;min-height:60px;padding:9px}.equipment-sheet .ring-slot-picker button.selected{background:#34374a;border-color:#edcc7b}.equipment-sheet .ring-slot-picker strong{font-size:14px}.equipment-sheet .ring-slot-picker span{color:#b9c9de;overflow-wrap:anywhere;margin-top:4px;font-size:12px;line-height:1.3;display:block}.equipment-sheet .equipment-replacement{background:#0d1727;border:1px solid #364b65;border-radius:10px;margin:14px 0 0;padding:12px}.equipment-replacement>span{color:#b9c9df;font-size:13px}.equipment-previous{align-items:center;gap:8px;margin:5px 0;display:flex}.equipment-previous .item-art{width:38px;height:38px}.equipment-previous strong{font-size:14px;line-height:1.3}.equipment-replacement details{color:#b7c9df;font-size:14px}.equipment-replacement summary{cursor:pointer;min-height:44px;padding:10px 0}.equipment-replacement details p{margin:0 0 10px;line-height:1.5}.equipment-sheet .equipment-replacement>small{color:#9fb4ce;font-size:12px;line-height:1.4;display:block}.equipment-sheet .equipment-comparison{gap:6px;margin:10px 0}.equipment-comparison>span{color:#c4d1e4;background:#19283b;border:1px solid #30435c;border-radius:6px;padding:5px 8px}.equipment-sheet-footer{text-align:center;background:#172438;border-top:1px solid #36485e;flex-shrink:0;padding:12px 16px 14px}.equipment-sheet .equipment-confirm{border-radius:10px;min-height:50px;margin:0;font-size:16px}.equipment-sheet-footer>small{color:#b3c4da;margin:7px 0 0;font-size:12px;line-height:1.45;display:block}.shop-equipment button:focus-visible{outline-offset:3px;outline:3px solid #fff0b5}.equipment-sheet button:focus-visible{outline-offset:3px;outline:3px solid #fff0b5}.inventory-card:focus-visible{outline-offset:3px;outline:3px solid #fff0b5}@media (min-width:720px){.shop-equipment{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:18px}.shop-equipment>.loadout-heroes,.shop-equipment>.shop-message{grid-column:1/-1}.shop-equipment .loadout-stage{grid-template-rows:repeat(2,minmax(140px,auto))}.loadout-portrait{height:270px}.halte-destinations{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:360px){.loadout-stage{gap:8px 4px;padding:8px}.loadout-heading{padding:12px 10px 5px}.loadout-heading h3{font-size:20px}.loadout-heading>span{display:none}.equipment-sheet-body{padding:12px}.equipment-sheet-item{gap:10px}.equipment-sheet-item>.item-art{width:68px;height:68px}.equipment-sheet .equipment-sheet-item h3{font-size:20px}.shop-subscreen .shop-grid{grid-template-columns:1fr 1fr}.shop-subscreen .shop-grid .consumable-card{padding:10px}}@media (prefers-reduced-motion:reduce){.loadout-reserve{scroll-behavior:auto}}body.shop-mode .game-scroll:has(.store-workspace){overflow:hidden}body.shop-mode .game-shell:has(.store-workspace){flex-direction:column;width:min(960px,100% - 12px);min-width:0;height:100%;padding:6px 0;display:flex}.game-shell:has(.store-workspace)>.screen{flex:1;min-width:0;min-height:0}.store-workspace{width:100%;min-width:0;height:100%;min-height:0;display:block}.store-workspace .shop-workspace-content{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex}.store-workspace .halte-header{border-radius:13px;flex:none;gap:8px;min-width:0;margin:0 0 8px;padding:8px;position:static}.store-workspace .halte-header .icon-button{width:44px;min-width:44px;height:44px;padding:8px}.store-workspace .halte-title small{letter-spacing:.08em;font-size:9px}.store-workspace .halte-title h2{font-size:22px}.store-workspace .halte-gold{font-size:20px}.store-workspace .shop-store{flex:1;min-width:0;min-height:0;display:flex}.storefront{grid-template-rows:minmax(0,1fr) minmax(120px,1.1fr);grid-template-columns:minmax(0,1fr);gap:10px;width:100%;min-width:0;min-height:0;display:grid}.store-detail{border:1px solid #516179;border-top:2px solid var(--rarity,#8fbcdb);background:linear-gradient(145deg,#1c2d42,#121c2f);border-radius:15px;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.store-detail-heading{align-items:center;gap:12px;min-width:0;padding:12px 14px 8px;display:flex}.store-detail-heading>.item-art{width:64px;height:64px}.store-detail-heading>div{flex:1;min-width:0}.store-detail-heading h3{color:#fff0ce;overflow-wrap:anywhere;margin:4px 0 0;font:700 20px/1.2 system-ui,sans-serif}.store-detail-meta{color:#b6c6d9;flex-wrap:wrap;align-items:center;gap:4px 8px;font:12px/1.3 system-ui,sans-serif;display:flex}.store-detail-meta .rarity-badge{color:var(--rarity);letter-spacing:.06em;background:0 0;border:0;padding:0;font-size:11px}.store-detail-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#61728a transparent;min-width:0;min-height:0;padding:0 14px 10px;overflow:auto}.store-detail-body p{color:#e2eaf3;overflow-wrap:anywhere;margin:0;font:15px/1.5 system-ui,sans-serif}.store-detail-body small{color:#aebed1;margin-top:8px;font:12px/1.4 system-ui,sans-serif;display:block}.store-detail-footer{background:#101b2ee0;border-top:1px solid #425069;min-width:0;padding:9px 12px}.store-purchase-actions{align-items:stretch;gap:8px;display:flex}.store-purchase-actions>button{border-radius:10px;min-width:0;min-height:48px;margin:0}.store-purchase-actions>.primary-button{flex:1;padding:8px;font:700 17px/1.2 system-ui,sans-serif}.store-purchase-actions>.store-compare{flex:0 116px;padding:6px 10px;font:600 12px/1.3 system-ui,sans-serif}.store-detail-footer>small{color:#b8c6d7;overflow-wrap:anywhere;margin-top:6px;font:12px/1.35 system-ui,sans-serif;display:block}.store-catalogue{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#61728a transparent;background:#0f192a;border:1px solid #34465e;border-radius:14px;min-width:0;min-height:0;padding:6px 8px 10px;overflow:auto}.store-catalogue-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;margin:0 0 6px;display:flex}.store-catalogue-heading h3{color:#d6e1ef;margin:0;font:650 14px/1.3 system-ui,sans-serif}.store-catalogue-heading>small{color:#a2b5cb;font-size:11px}.store-catalogue-heading .store-reroll{min-height:44px;box-shadow:none;color:#f4d895;background:0 0;border:0;justify-content:center;align-items:center;gap:5px;padding:5px 7px;font:600 12px/1.2 system-ui,sans-serif;display:flex}.store-reroll .interface-icon{width:17px;height:17px}.store-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;display:grid}.store-tiles .store-tile{border:1px solid #3b4b63;border-bottom:2px solid var(--rarity,#7dbbe3);color:#ebeced;min-width:0;min-height:78px;box-shadow:none;cursor:pointer;background:radial-gradient(at 50% 30%,#31415870,#162237);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:7px 3px 5px;transition:background .15s,border-color .15s;display:flex;position:relative}.store-tile .item-art{width:43px;height:43px}.store-tile .item-art-sigil{width:18px;height:18px;right:-3px}.store-tile .item-art-sigil .skill-icon,.store-tile .item-art-sigil .skill-icon img{width:15px;height:15px}.store-tile-price{color:#f2d58e;overflow-wrap:anywhere;justify-content:center;align-items:center;gap:3px;width:100%;font:650 13px/1.2 system-ui,sans-serif;display:flex}.store-tile-price small{font-size:10px;font-weight:500}.store-tile-price .interface-icon{width:12px;height:12px}.store-tile-quantity{color:#c1d9ec;background:#0b1629e8;border-radius:4px;padding:1px 3px;font:600 10px/1.3 system-ui,sans-serif;position:absolute;top:4px;right:4px}.store-tile-selected{color:#192132;background:#f3d58f;border-radius:50%;place-items:center;width:17px;height:17px;display:grid;position:absolute;top:3px;left:3px}.store-tile-selected .interface-icon{width:11px;height:11px}.store-tiles .store-tile[aria-pressed=true]{background:radial-gradient(at 50% 30%,#76644266,#293347);border-color:#f7d78d;box-shadow:inset 0 0 0 1px #f7d78d}.store-tiles .store-tile:hover{border-color:#ebd091}:is(.store-tile:focus-visible,.store-detail-body:focus-visible){outline-offset:-3px;outline:2px solid #ffe3a4}.store-sold .item-art{opacity:.5}.store-sold .store-tile-price{color:#b1c7bc;font-size:11px}.store-reroll-help{color:#a6b8cc;margin:7px 0 12px;font:11px/1.4 system-ui,sans-serif}.store-reroll-help summary{cursor:pointer;padding:4px 0}.store-reroll-help p{overflow-wrap:anywhere;margin:6px 0}.store-message{color:#b5d9c7;overflow-wrap:anywhere;margin:9px 0 0;font:12px/1.4 system-ui,sans-serif}@media (min-width:600px){.storefront{grid-template-rows:minmax(0,.85fr) minmax(120px,1fr)}.store-tiles{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.store-tile .item-art{width:48px;height:48px}.store-detail-heading>.item-art{width:76px;height:76px}.store-detail-heading h3{font-size:24px}}@media (max-height:650px){.store-workspace .halte-header{margin-bottom:6px;padding:4px 8px}.store-detail-heading{gap:8px;padding:8px 10px 5px}.store-detail-heading>.item-art{width:44px;height:44px}.store-detail-heading h3{font-size:17px}.store-detail-footer{padding:6px 8px}.store-detail-footer>small{display:none}.store-detail-body{padding:0 10px 6px}.store-detail-body p{font-size:14px}.storefront{gap:7px}}@media (max-height:430px){.store-detail{display:block;overflow:auto}.store-detail-body{overflow:visible}}@media (prefers-reduced-motion:reduce){.store-tiles .store-tile{transition:none}}.combat-motion-layer{z-index:15;pointer-events:none;position:absolute;inset:0;overflow:hidden}.combat-motion-layer *{pointer-events:none}.combat-traveler{will-change:transform;filter:drop-shadow(0 0 6px var(--travel-ink));position:absolute}.combat-traveler>.sprite-stage{width:100%!important;height:100%!important;min-height:0!important;margin:0!important;animation:none!important;transform:none!important}.combat-traveler .sprite-stage img{max-width:100%;max-height:100%;animation:none!important}.combatant[data-motion-source]>.sprite-stage{animation:none!important}.combat-cast-trail{border:2px solid var(--travel-ink);opacity:0;border-radius:50%;position:absolute;inset:25% 12%}.motion-skill .combat-cast-trail{animation:combat-skill-aura var(--travel-duration) ease-out both;border-radius:20%}.motion-magic .combat-cast-trail{background:radial-gradient(circle,#fff,var(--travel-ink) 25%,transparent 70%);animation:combat-spell-flight var(--travel-duration) ease-out both;border:0}.combat-contact{width:56px;height:56px;color:var(--travel-ink);opacity:0;animation:combat-contact var(--travel-duration) ease-out both;margin:-28px;position:absolute}.motion-attack .combat-contact{background:currentColor;border-radius:60%;width:6px;height:84px;margin:-42px -3px;rotate:-30deg;box-shadow:0 0 14px}.motion-skill .combat-contact{border:5px double;border-radius:18%;rotate:45deg;box-shadow:0 0 22px}.motion-magic .combat-contact{background:radial-gradient(circle,#ffffffc0,#0000 64%);border:3px solid;border-radius:50%;box-shadow:0 0 28px,inset 0 0 14px}@keyframes combat-contact{0%,34%{opacity:0;scale:.4}43%{opacity:1;scale:1.3}75%,to{opacity:0;scale:1.7}}@keyframes combat-skill-aura{0%,to{opacity:0;scale:.6}20%,55%{opacity:.75;scale:1.25}}@keyframes combat-spell-flight{0%{opacity:0;transform:scale(.3)}18%{opacity:1;transform:scale(.9)}42%{opacity:1;transform:translate(calc(var(--travel-x) * .64),calc(var(--travel-y) * .64)) scale(1.3)}64%,to{opacity:0;transform:translate(calc(var(--travel-x) * .64),calc(var(--travel-y) * .64)) scale(.2)}}.combatant.motion-recipient :is(.combat-impact-wash,.impact-fx,.strike-impact),.combatant.motion-recipient.multi-struck>.sprite-stage{animation-delay:var(--contact-delay,0s)}.combatant.motion-recipient .mini-bar>span{transition-delay:var(--contact-delay,0s)}.combat-round-impacts{z-index:12;pointer-events:none;gap:3px;max-width:calc(100% - 8px);display:grid;position:absolute;top:4px;right:4px}.vertical-battlefield .combat-round-impacts .impact-fx{background:#0a1428ee;border-radius:6px;align-items:center;gap:4px;padding:3px 5px;animation:.22s ease-out both health-impact-pop;display:flex;max-width:100%!important;font-size:clamp(14px,4vw,22px)!important;position:static!important;inset:auto!important}.combat-round-impacts .impact-fx.mana{color:#85d2ff}.combatant.receiving-mana .sprite-stage{filter:drop-shadow(0 0 8px #75c8ff)}.combat-impact-wash.mana{color:#75c8ff}.battlefield .combat-resolution-panel .combat-round-summary{justify-content:flex-start;gap:10px}.round-outcome-groups{text-align:left;gap:8px;width:100%;display:grid}.round-outcome-group{background:#142239;border:1px solid #384c68;border-radius:12px;padding:9px 10px}.round-outcome-group>strong{color:#f1e6c6;margin-bottom:4px;font:700 .95rem/1.3 system-ui,sans-serif;display:block}.round-outcome-group .battle-outcomes{justify-content:flex-start;gap:5px 14px}.round-outcome-group .battle-outcome{align-items:flex-start}.battlefield .round-outcome-group .battle-outcome>strong{font-size:1.05rem}.combat-accent-layer{z-index:16;pointer-events:none;position:absolute;inset:0;overflow:hidden}.combat-accent-layer *{pointer-events:none}.combat-accent-target{color:var(--accent-ink);position:absolute}.combat-accent-glyph{width:62px;height:62px;filter:drop-shadow(0 0 9px var(--accent-ink));will-change:transform,opacity;position:absolute;top:-31px;left:-31px}.combat-accent-glyph :is(.skill-icon,.item-art){background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;display:block}.combat-accent-glyph :is(.skill-icon,.item-art) img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;display:block}.combat-accent-ring{background:radial-gradient(#ffffff45,#0000 67%);border:3px solid;border-radius:50%;width:88px;height:88px;position:absolute;top:-44px;left:-44px;box-shadow:0 0 20px,inset 0 0 14px}.accent-guard .combat-accent-ring{background:linear-gradient(120deg,#0000,#93d6ff60,#0000);border-width:4px;border-radius:48% 48% 42% 42%;height:102px;top:-51px}.accent-counter-ready .combat-accent-ring{outline-offset:6px;border:6px double;outline:1px solid #ffe19a66}.accent-counter-hit .combat-accent-ring{border-width:5px;border-radius:20%;rotate:45deg}.combat-accent-spark{background:currentColor;width:6px;height:6px;position:absolute;top:-3px;left:-3px;box-shadow:0 0 9px}.accent-potion-heal .combat-accent-spark{clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%);width:10px;height:10px}.accent-potion-mana .combat-accent-spark{rotate:45deg}.combat-accent-glyph{width:calc(62px * var(--accent-size,1));height:calc(62px * var(--accent-size,1));left:calc(-31px * var(--accent-size,1));top:calc(-31px * var(--accent-size,1))}.combat-accent-ring{width:calc(88px * var(--accent-size,1));height:calc(88px * var(--accent-size,1));left:calc(-44px * var(--accent-size,1));top:calc(-44px * var(--accent-size,1))}.combat-accent-echo{opacity:0;border:2px solid;border-radius:50%;width:88px;height:88px;position:absolute;top:-44px;left:-44px}.combat-accent-tether{transform-origin:0;background:linear-gradient(90deg,#0000,currentColor,#fff,currentColor);height:4px;position:absolute;box-shadow:0 0 8px}.accent-tier-3 .combat-accent-ring{border-width:5px;box-shadow:0 0 26px,inset 0 0 18px}.accent-pattern-fall .combat-accent-ring{border-style:dashed;border-radius:12%;rotate:45deg}.accent-pattern-orbit .combat-accent-ring{border-style:double;border-width:7px;border-top-color:#0000;border-bottom-color:#0000}.accent-pattern-collapse .combat-accent-ring{background:radial-gradient(circle,#0b101ddd,#0000 65%);border-style:dotted}.accent-pattern-fade .combat-accent-ring{box-shadow:none;border-style:dashed}.accent-pattern-burst .combat-accent-ring{border-radius:18%;rotate:45deg}.accent-impact .combat-accent-glyph{width:40px;height:40px;top:-20px;left:-20px}.accent-heal .combat-accent-spark,.accent-cleanse .combat-accent-spark{border-radius:50%}.accent-poison .combat-accent-spark{background:0 0;border:2px solid;border-radius:50%;width:10px;height:10px}.accent-mana .combat-accent-spark{rotate:45deg}.accent-control .combat-accent-ring{border-style:double;border-width:6px;border-radius:12%}body.reduce-motion :is(.combat-motion-layer,.combat-accent-layer){display:none}body.reduce-motion .combatant.motion-recipient *{transition-delay:0s;animation-delay:0s}@media (prefers-reduced-motion:reduce){.combat-motion-layer,.combat-accent-layer{display:none}.combatant.motion-recipient *{transition-delay:0s!important;animation-delay:0s!important}}.unlock-identity,.unlock-briefing{display:contents}@media (orientation:landscape){.game-viewport .game-scroll{overflow:hidden}.game-viewport .game-scroll .game-shell{flex-direction:column;gap:8px;width:100%;min-width:0;max-width:1600px;height:100%;min-height:0;margin:0 auto;padding:clamp(6px,1.2dvh,14px) clamp(8px,1.2vw,20px);display:flex}.game-viewport .game-scroll .game-shell[data-game-scene=shop]{width:100%;max-width:1600px}.game-viewport .game-shell>.screen{overscroll-behavior:contain;scrollbar-width:thin;flex:1 1 0;min-width:0;height:auto;min-height:0;overflow:auto}.game-viewport .game-shell>.game-header,.game-viewport .halte-header,.game-viewport .starter-heading{flex:none;gap:10px;min-height:0;margin:0;padding:6px 12px}.game-viewport .game-header h1{font-size:20px}.game-viewport .game-header .eyebrow{margin:0;font-size:10px}.game-viewport .game-shell>.run-bar{flex:none;justify-content:space-around;gap:8px;min-height:0;margin:0;padding:5px 10px;display:flex}.game-viewport .run-stat{align-items:baseline;gap:8px;font-size:13px;display:flex}.game-viewport .run-stat strong{font-size:14px}.game-viewport .game-shell:is([data-game-scene=progression],[data-game-scene=treeview])>.run-bar,.game-viewport .game-shell>.game-footer{display:none}.game-viewport .phase-screen{min-height:0;padding:12px}.game-viewport .game-shell:is([data-game-scene=combat],[data-game-scene=home],[data-game-scene=class-choice],[data-game-scene=shop],[data-game-scene=progression],[data-game-scene=treeview],[data-game-scene=victory],[data-game-scene^=challenge-])>.screen{overflow:hidden}.game-viewport .game-shell[data-game-scene=combat] .vertical-battlefield{border:1px solid var(--line);border-radius:16px;grid-template:"enemies command"minmax(0,1fr)"divider command"12px"allies command"minmax(0,1fr)/minmax(0,1.35fr) minmax(290px,1fr);gap:0 12px;height:100%;min-height:0;padding:8px;display:grid}.game-viewport .vertical-battlefield .enemy-zone{grid-area:enemies}.game-viewport .vertical-battlefield .battle-divider{grid-area:divider;min-height:0;margin:0 8px;padding:0}.game-viewport .vertical-battlefield .ally-zone{grid-area:allies}.game-viewport .vertical-battlefield .combat-zone{min-width:0;min-height:0;padding:20px 4px 0;display:flex;overflow:hidden}.game-viewport .vertical-battlefield .zone-label{font-size:10px;top:2px;bottom:auto;left:8px}.game-viewport .vertical-battlefield :is(.enemy-row,.ally-row){justify-content:center;align-items:stretch;gap:6px;height:100%;min-height:0}.game-viewport .vertical-battlefield .combatant{border-radius:12px;flex:0 190px;grid-template-rows:minmax(0,1fr) auto;width:calc(33.3333% - 4px);min-width:0;max-width:34%;height:100%;min-height:0;padding:3px;display:grid;overflow:hidden}.game-viewport .vertical-battlefield .ally-row.with-summons{overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:thin;scroll-snap-type:x proximity;justify-content:flex-start;padding-bottom:4px;overflow:auto hidden}.game-viewport .vertical-battlefield .ally-row.with-summons .combatant{scroll-snap-align:start;flex:0 0 max(100px,30.303% - 3.63636px);width:auto;min-width:100px;max-width:none}.game-viewport .vertical-battlefield .sprite-stage{justify-content:center;align-items:center;height:100%;min-height:0;margin:0;display:flex;position:relative;overflow:hidden;transform:none}.game-viewport .vertical-battlefield .sprite-stage :is(.hero-sprite,.enemy-sprite){object-fit:contain;width:100%;height:100%;max-height:100%;position:absolute;inset:0}.game-viewport .vertical-battlefield .nameplate{background:#10192dee;border:0;width:100%;min-width:0;margin:0;padding:4px 5px;font:600 14px/1.3 system-ui,sans-serif}.game-viewport .vertical-battlefield .nameplate>strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.game-viewport .vertical-battlefield .nameplate>small{display:none}.game-viewport .vertical-battlefield .unit-status{text-overflow:ellipsis;white-space:nowrap;height:16px;font-size:11px;display:block;overflow:hidden}.game-viewport .vertical-battlefield .unit-resources{gap:3px;display:grid}.game-viewport .vertical-battlefield .unit-resource .mini-bar{height:5px;margin:0}.game-viewport .vertical-battlefield .unit-resource .numbers{justify-content:space-between;font-size:12px;line-height:16px;display:flex}.game-viewport .vertical-battlefield .combat-ui{flex-direction:column;grid-area:command;gap:0;min-width:0;min-height:0;padding:0;display:flex;overflow:hidden}.game-viewport .vertical-battlefield .combat-log{display:none}.game-viewport .vertical-battlefield .action-window{border:1px solid #536581;border-radius:14px;flex-direction:column;flex:1 1 0;gap:8px;min-width:0;height:100%;min-height:0;margin:0;padding:12px;display:flex;overflow:hidden}.game-viewport .vertical-battlefield .turn-heading{flex:none;align-items:center;gap:8px;min-width:0}.game-viewport .vertical-battlefield .turn-heading h3{margin:0;font-size:18px}.game-viewport .vertical-battlefield .turn-heading .kicker{font-size:10px}.game-viewport .vertical-battlefield .turn-plan{flex:none;min-height:0;margin:0}.game-viewport .vertical-battlefield .plan-chip{flex:1 0 64px;grid-template-columns:minmax(0,1fr);align-content:center;min-width:64px;min-height:44px;padding:3px 5px}.game-viewport .vertical-battlefield .plan-chip>span{text-overflow:ellipsis;white-space:nowrap;font:600 12px/16px system-ui,sans-serif;overflow:hidden}.game-viewport .vertical-battlefield .plan-chip>strong{text-overflow:ellipsis;font:500 11px/14px system-ui,sans-serif;overflow:hidden}.game-viewport .vertical-battlefield .category-choice-grid{grid-template-rows:repeat(2,minmax(44px,1fr));gap:8px;min-height:0;overflow:auto}.game-viewport .vertical-battlefield .category-card{grid-template-rows:auto auto;grid-template-columns:28px minmax(0,1fr);gap:2px 8px;min-width:0;min-height:44px;padding:10px}.game-viewport .vertical-battlefield .category-card>b{grid-area:1/1/3;width:28px;height:28px}.game-viewport .vertical-battlefield .category-card>b .skill-icon{width:24px;height:24px}.game-viewport .vertical-battlefield .category-card>strong{overflow-wrap:anywhere;grid-area:1/2}.game-viewport .vertical-battlefield .category-card>small{text-align:left;grid-area:2/2;font-size:11px}.game-viewport .vertical-battlefield .category-card strong{font-size:16px}.game-viewport .vertical-battlefield .category-card>span{display:none}.game-viewport .vertical-battlefield .action-detail-bar{flex:none;gap:6px;margin:0}.game-viewport .vertical-battlefield .action-list{overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;flex:1 1 0;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;align-items:start;gap:8px;min-width:0;min-height:0;margin:0;display:grid;overflow:auto}.game-viewport .vertical-battlefield .action-card{gap:6px;min-height:0;padding:10px}.game-viewport .vertical-battlefield .action-card strong{font-size:15px}.game-viewport .vertical-battlefield .action-description{overflow-wrap:anywhere;font-size:13px;line-height:1.4;display:block}.game-viewport .vertical-battlefield .action-meta{flex-wrap:wrap;font-size:11px}.game-viewport .vertical-battlefield .target-options{flex:1 1 0;align-content:start}.game-viewport .vertical-battlefield .combat-resolution-panel{justify-content:stretch}.game-viewport .vertical-battlefield .combat-resolution-panel .combat-event-body{flex:1 1 0;min-height:0;overflow:auto}.game-viewport .vertical-battlefield .timing-panel{min-height:0;padding:0}.game-viewport .home-screen{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1.1fr) minmax(250px,1fr);gap:16px 32px;padding:24px;display:grid}.game-viewport .home-intro{grid-area:1/1;align-self:end}.game-viewport .home-party{grid-area:2/1;height:100%}.game-viewport .home-play{grid-area:1/2/-1;align-self:center;max-height:100%;overflow:auto}.game-viewport .home-party .sprite-stage{flex-basis:220px;max-height:360px}.game-viewport .starter-screen{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1.25fr) minmax(250px,1fr);display:grid}.game-viewport .starter-heading{grid-column:1/-1}.game-viewport .starter-detail-scroll{flex-direction:column;display:flex}.game-viewport .starter-detail{flex:none;width:100%;margin-block:auto}.game-viewport .starter-detail-locked{min-height:0}.game-viewport .starter-choices{border-top:0;border-left:1px solid var(--line);flex-direction:column;gap:10px;min-height:0;padding:16px;display:flex}.game-viewport .starter-roster{flex:1 1 0;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;min-height:0;overflow:auto}.game-viewport .starter-start{flex:none;min-height:48px;margin:0}.game-viewport .starter-showcase{min-height:0}.game-viewport .starter-art{width:clamp(100px,22dvh,220px);height:clamp(100px,22dvh,220px)}.game-viewport .shop-workspace.phase-screen{height:100%;padding:0}.game-viewport .shop-workspace .shop-workspace-content{flex-direction:column;gap:10px;height:100%;min-height:0;display:flex}.game-viewport .shop-summary{flex:1 1 0;grid-template:"reward reward""team destinations"minmax(0,1fr)"hint departure"/minmax(0,1.2fr) minmax(260px,1fr);gap:12px 20px;min-height:0;display:grid}.game-viewport .halte-reward{grid-area:reward;margin:0;padding:8px}.game-viewport .halte-team{grid-area:team;align-items:center;min-height:0;overflow:auto}.game-viewport .halte-hero{min-width:0;padding:12px 6px}.game-viewport .halte-portrait{height:clamp(54px,22dvh,160px)}.game-viewport .halte-equipment-hint{grid-area:hint;align-self:center;margin:0}.game-viewport .halte-destinations{grid-area:destinations;grid-template-rows:1fr 1fr;grid-template-columns:1fr;gap:12px;min-height:0}.game-viewport .halte-destination{min-height:0;padding:12px}.game-viewport .halte-departure{grid-area:departure;margin:0}.game-viewport .shop-subscreen{flex:1 1 0;min-width:0;min-height:0}.game-viewport .shop-store{display:flex}.game-viewport .storefront{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;width:100%;height:100%;min-height:0;display:grid}.game-viewport .store-detail{grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}.game-viewport .store-detail-body{min-height:0;overflow:auto}.game-viewport .store-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.game-viewport .recruitment-section{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.25fr) minmax(240px,1fr);height:100%;display:grid}.game-viewport .recruit-detail{grid-template-rows:minmax(80px,.8fr) auto minmax(0,1fr);grid-template-columns:1fr;min-height:0;display:grid}.game-viewport .recruit-detail>*{grid-area:auto}.game-viewport .recruit-choices{border-top:0;border-left:1px solid var(--line);flex-direction:column;justify-content:safe center;gap:12px;min-height:0;padding:16px;display:flex;overflow:auto}.game-viewport .recruit-choices>*{grid-area:auto;margin:0}.game-viewport .recruit-thumbnail{width:76px;height:clamp(42px,14dvh,100px)}.game-viewport .recruit-choices .recruit-confirm{flex:none;align-self:stretch;margin:0}.game-viewport .shop-equipment{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:10px 20px;display:grid}.game-viewport .loadout-heroes{grid-column:1/-1;margin:0}.game-viewport .loadout{flex-direction:column;min-height:0;display:flex;overflow:auto}.game-viewport .loadout-stage{flex:1 0 auto;grid-template-rows:repeat(2,minmax(85px,1fr));padding:8px}.game-viewport .loadout-portrait{height:clamp(100px,34dvh,260px)}.game-viewport .loadout-stats{padding:8px}.game-viewport .loadout-reserve{flex-direction:column;min-height:0;display:flex}.game-viewport .reserve-list{overscroll-behavior:contain;flex:1 1 0;min-height:0;overflow:auto}.game-viewport .reserve-heading,.game-viewport .reserve-filters,.game-viewport .reserve-hint{flex:none}.game-viewport .reserve-empty{overflow:auto}.game-viewport .shop-equipment>.shop-message{grid-column:1/-1;margin:0;font-size:12px}.game-viewport .level-up-screen{height:100%;padding:0}.game-viewport .level-up-screen .level-up-card{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:clamp(190px,23vw,280px) minmax(0,1fr);width:100%;max-width:none;height:100%;min-height:0;padding:0;display:grid}.game-viewport .level-up-card .talent-workspace-heading{grid-area:1/1;grid-template-columns:40px minmax(0,1fr);padding:12px}.game-viewport .talent-workspace-heading .talent-back-button,.game-viewport .talent-workspace-heading .talent-recap-button{grid-column:1/-1}.game-viewport .talent-resource-strip{flex-direction:column;gap:4px}.game-viewport .talent-party-strip{flex-direction:column;grid-area:2/1;align-self:start;max-height:100%;overflow:auto}.game-viewport .talent-party-strip .talent-party-button{flex:none;min-height:44px}.game-viewport .level-up-card .level-up-tree{border-left:1px solid var(--line);grid-area:1/2/-1;min-width:0;min-height:0}.game-viewport .level-up-card .level-up-confirm{grid-area:3/1;padding:10px}.game-viewport .level-up-confirm p{font-size:13px}.game-viewport .level-up-confirm .primary-button{min-height:48px;padding:8px;font-size:14px}.game-viewport .level-up-tree .skill-detail-card{flex-direction:column;align-items:stretch;gap:8px;width:min(340px,80%);max-height:none;padding:12px;display:flex;inset:62px 8px 8px auto;overflow:hidden}.game-viewport .skill-detail-card .detail-icon{display:none}.game-viewport .skill-detail-card .detail-copy{flex:1 1 0;min-height:0;padding-right:26px;overflow:auto}.game-viewport .skill-detail-card .detail-buy{flex:none;width:100%;min-height:44px}.game-viewport .preferences-screen{max-width:none;min-height:100%;margin:0;padding:16px}.game-viewport .pwa-card{flex:none;max-height:24dvh;margin:0;padding:10px;font-size:12px;overflow:auto}.game-viewport .pwa-card p{margin:4px 0}.game-viewport .settings-screen{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;align-items:start;gap:16px;display:grid}.game-viewport .settings-column{border:1px solid var(--line);background:#111b2d;border-radius:14px;min-width:0;padding:14px}.game-viewport .settings-column:nth-child(2){grid-area:1/2/3}.game-viewport .settings-column:nth-child(3){grid-area:1/3/3}.game-viewport .settings-group-title{margin:0 0 12px;font-size:18px}.game-viewport .setting-row{padding:12px 0}.game-viewport .speed-options{gap:4px}.game-viewport .speed-options label span{padding:8px 4px;font-size:13px}.game-viewport .statistics-screen{grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:20px;display:grid}.game-viewport .statistics-overview{min-width:0}.game-viewport .statistics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.game-viewport .play-time-overview{grid-template-columns:1fr}.game-viewport .statistics-history{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:14px;min-width:0;display:grid}.game-viewport .statistics-panel{border:1px solid var(--line);background:#111b2d;border-radius:12px;min-width:0;padding:12px}.game-viewport .statistics-panel:last-child{grid-column:1/-1}.game-viewport .statistics-panel h3{margin:0 0 12px}.game-viewport .stats-ranking,.game-viewport .stats-table{max-height:30dvh;overflow:auto}.game-viewport .stats-table thead{background:#152238;position:sticky;top:0}.game-viewport .achievements-screen{grid-template-rows:auto auto;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-content:start;align-items:start;gap:16px;display:grid}.game-viewport .achievements-summary{grid-column:1/-1}.game-viewport .achievement-exploration{margin:0;padding:0}.game-viewport .achievement-challenges,.game-viewport .achievement-exploration{min-width:0}.game-viewport .achievement-list{grid-template-columns:repeat(2,minmax(0,1fr))}.game-viewport .achievement-exploration .achievement-list{grid-template-columns:1fr}.game-viewport .achievement-card{gap:8px;padding:12px}.game-viewport .combo-collection{flex-direction:column;gap:8px;max-width:none;height:100%;min-height:0;margin:0;display:flex}.game-viewport .combo-collection-scroll{flex:1 1 0;min-height:0;overflow:auto}.game-viewport .combo-recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.game-viewport .combo-collection-back{flex:none;align-self:flex-start;margin:0}.game-viewport .combo-collection-intro,.game-viewport .combo-collection-rule{flex:none;margin:0}.game-viewport .guide-chapters{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:0 24px;display:grid}.game-viewport .victory-screen{height:100%;min-height:0}.game-viewport .victory-content{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;width:100%;height:100%;padding:16px;display:grid;position:relative}.game-viewport .victory-content .victory-menu{z-index:2;margin:0;position:absolute;top:8px;right:12px}.game-viewport .victory-overview{min-height:0;overflow:auto}.game-viewport .victory-heading{padding-top:45px}.game-viewport .victory-number{font-size:90px}.game-viewport .victory-heading h1{font-size:clamp(32px,6dvh,58px)}.game-viewport .victory-party{margin:12px 0}.game-viewport .victory-portrait{width:100%;height:clamp(50px,15dvh,128px)}.game-viewport .victory-choices{flex-direction:column;max-width:none;min-height:0;margin:0;padding-top:50px;display:flex}.game-viewport .victory-choices>button{flex:none}.game-viewport .victory-endless{flex-direction:column;flex:1 1 0;min-height:0;margin-top:12px;padding:12px;display:flex}.game-viewport .victory-endless-copy{flex:1 1 0;min-height:0;overflow:auto}.game-viewport .victory-endless>button{flex:none}.game-viewport .victory-guarantee{flex:none;margin:6px 0 0}.game-viewport [data-game-scene=defeat] .result-card,.game-viewport [data-game-scene=finished] .result-card{max-width:960px;margin:auto;padding:20px}.game-viewport .unlock-screen{height:100%;min-height:0;padding:16px}.game-viewport .unlock-content{grid-template-rows:minmax(0,1fr) auto auto;grid-template-columns:1fr 1fr;gap:12px 24px;width:100%;height:100%;min-height:0;display:grid}.game-viewport .unlock-identity{flex-direction:column;grid-area:1/1/-1;justify-content:safe center;align-items:center;gap:10px;min-height:0;display:flex;overflow:auto}.game-viewport .unlock-portrait{flex:0 auto;height:clamp(80px,32dvh,300px);min-height:0}.game-viewport .unlock-briefing{flex-direction:column;grid-area:1/2;gap:16px;min-height:0;display:flex;overflow:auto}.game-viewport .unlock-cta{grid-area:2/2;min-height:48px;margin:0}.game-viewport .unlock-content>small{grid-area:3/2;max-width:none}.game-viewport .evolution-choice{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(160px,.55fr) minmax(0,1.5fr);align-content:stretch;gap:24px;display:grid}.game-viewport .evolution-heading{margin:0}.game-viewport .evolution-options{max-width:none;min-height:0;max-height:100%;overflow:auto}.game-viewport .evolution-option-art{height:clamp(70px,25dvh,220px)}.game-viewport .evolution-option-description{font-size:14px}.game-viewport .evolution-reveal{grid-template-rows:auto auto auto auto;grid-template-columns:1fr 1fr;align-content:center;gap:10px 24px;display:grid}.game-viewport .evolution-transformation{grid-area:1/1/-1;width:100%;height:60dvh}.game-viewport .evolution-reveal>:not(.evolution-atmosphere,.evolution-transformation){grid-column:2;justify-self:center}.game-viewport .evolution-reveal-title h2{font-size:clamp(24px,5dvh,48px)}.game-viewport #run-menu{width:min(860px,96vw)}.game-viewport .menu-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.game-viewport .menu-exits{grid-template-columns:repeat(2,minmax(0,1fr))}.game-viewport .equipment-detail.equipment-sheet{width:min(820px,96vw);max-width:820px}}@media (orientation:landscape) and (max-height:600px){.game-viewport .game-scroll .game-shell{gap:4px;padding:4px 6px}.game-viewport .game-shell>.game-header,.game-viewport .halte-header,.game-viewport .starter-heading{gap:8px;padding:2px 8px}.game-viewport .game-header .eyebrow,.game-viewport .game-header .page-location .eyebrow{display:none}.game-viewport .game-header h1,.game-viewport .halte-title h2{font-size:18px}.game-viewport .game-shell>.run-bar{padding:2px 8px}.game-viewport .run-stat{font-size:11px}.game-viewport .game-shell[data-game-scene=combat] .vertical-battlefield{grid-template-rows:minmax(0,1fr) 4px minmax(0,1fr);grid-template-columns:minmax(0,1.1fr) minmax(250px,1fr);gap:0 6px;padding:3px}.game-viewport .vertical-battlefield .combat-zone{padding:0 2px}.game-viewport .vertical-battlefield .zone-label{display:none}.game-viewport .vertical-battlefield .nameplate{padding:2px 3px;font-size:12px}.game-viewport .vertical-battlefield .unit-status{display:none}.game-viewport .vertical-battlefield .unit-resource .numbers{font-size:11px;line-height:13px}.game-viewport .vertical-battlefield .unit-resources{gap:2px}.game-viewport .vertical-battlefield .unit-resource .mini-bar{height:3px}.game-viewport .vertical-battlefield .action-window{gap:4px;padding:6px}.game-viewport .vertical-battlefield .actor-avatar,.game-viewport .vertical-battlefield .actor-class{display:none}.game-viewport .vertical-battlefield .turn-heading h3{font-size:14px}.game-viewport .vertical-battlefield .turn-heading .kicker{font-size:9px}.game-viewport .vertical-battlefield .category-card{padding:5px}.game-viewport .vertical-battlefield .category-card strong{font-size:13px}.game-viewport .vertical-battlefield .category-choice-grid{gap:4px}.game-viewport .vertical-battlefield .action-list{grid-template-columns:1fr}.game-viewport .vertical-battlefield .action-card{padding:7px}.game-viewport .vertical-battlefield .turn-plan{gap:3px}.game-viewport .vertical-battlefield .guide-hint{margin:0}.game-viewport .timing-copy{gap:3px;padding:6px}.game-viewport .timing-title{padding:3px 6px}.game-viewport .timing-title h2{margin:0;font-size:15px}.game-viewport .timing-motion-label,.game-viewport .timing-instructions small{display:none}.game-viewport .timing-legend{gap:3px 7px;padding:2px 5px;font-size:10px}.game-viewport .timing-status{padding:3px 6px;font-size:14px}.game-viewport .timing-instructions{gap:2px;font-size:11px}.game-viewport .timing-instructions strong{font-size:12px}.game-viewport .home-screen{gap:8px 16px;padding:6px}.game-viewport .home-intro h2{font-size:26px}.game-viewport .home-play{gap:6px}.game-viewport .home-play .muted{display:none}.game-viewport .starter-choices{gap:6px;padding:8px}.game-viewport .starter-roster{align-content:start}.game-viewport .starter-thumbnail{width:42px;height:42px}.game-viewport .starter-departure{display:none}.game-viewport .starter-detail{padding:4px 12px 12px}.game-viewport .starter-art{width:100px;height:100px}.game-viewport .shop-summary{gap:6px 12px}.game-viewport .halte-hero{padding:6px 3px;font-size:12px}.game-viewport .halte-hero strong{font-size:14px}.game-viewport .halte-portrait{height:60px}.game-viewport .halte-destinations{gap:6px}.game-viewport .halte-destination strong{font-size:17px}.game-viewport .halte-departure>small{display:none}.game-viewport .recruit-detail{grid-template-rows:minmax(60px,.6fr) auto minmax(0,1fr);padding:8px}.game-viewport .recruit-identity h3{font-size:24px}.game-viewport .recruit-choices{gap:8px;padding:8px}.game-viewport .loadout-heading{padding:8px}.game-viewport .loadout-heading h3{font-size:16px}.game-viewport .loadout-slot .item-art{width:32px;height:32px}.game-viewport .loadout-stage{gap:5px}.game-viewport .loadout-slot{padding:5px}.game-viewport .loadout-slot strong{font-size:12px}.game-viewport .level-up-card .talent-workspace-heading{gap:3px;padding:6px 8px}.game-viewport .talent-workspace-heading .hero-thumbnail{width:34px;height:40px}.game-viewport .talent-workspace-identity h2{font-size:17px}.game-viewport .talent-workspace-identity p{font-size:12px}.game-viewport .talent-resource-strip{flex-direction:row;gap:3px 8px;font-size:12px}.game-viewport .level-up-card .level-up-confirm{padding:6px}.game-viewport .level-up-confirm p{margin:0 0 4px}.game-viewport .level-up-tree .skill-map-toolbar{margin:3px 6px}.game-viewport .level-up-tree .skill-detail-card{top:48px}.game-viewport .preferences-screen{padding:10px}.game-viewport .settings-screen{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-viewport .settings-column:nth-child(n){grid-area:auto}.game-viewport .settings-column{padding:10px}.game-viewport .achievement-list{grid-template-columns:1fr}.game-viewport .combo-recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-viewport .combo-recipe-sequence{min-height:0}.game-viewport .victory-content{gap:12px;padding:8px}.game-viewport .victory-choices{padding-top:0}.game-viewport .victory-content .victory-menu{top:6px;right:6px}.game-viewport .victory-finish{width:calc(100% - 50px);min-height:44px;margin-right:50px;padding:7px;font-size:14px}.game-viewport .victory-endless{margin-top:6px;padding:8px}.game-viewport .victory-endless>button{min-height:44px;margin-top:6px;padding:6px;font-size:13px}.game-viewport .victory-heading{padding-top:28px}.game-viewport .victory-number{font-size:70px}.game-viewport .victory-recap{padding:8px}.game-viewport .victory-stats{gap:8px}.game-viewport .victory-guarantee{font-size:10px}.game-viewport .unlock-content{gap:8px 16px}.game-viewport .unlock-identity{gap:5px}.game-viewport .unlock-screen h1{font-size:28px}.game-viewport .unlock-name{font-size:14px}.game-viewport .unlock-eyebrow{font-size:9px}}@media (orientation:landscape) and (max-width:900px){.game-viewport .statistics-screen{grid-template-columns:1fr}.game-viewport .statistics-history{grid-template-columns:repeat(3,minmax(0,1fr))}.game-viewport .statistics-panel:last-child{grid-column:auto}.game-viewport .settings-screen{grid-template-columns:repeat(2,minmax(0,1fr))}.game-viewport .settings-column:nth-child(n){grid-area:auto}.game-viewport .vertical-battlefield .action-list{grid-template-columns:1fr}.game-viewport .store-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.game-viewport .level-up-tree .tree-help-button>span{display:none}}@media (orientation:landscape) and (min-height:601px) and (min-width:901px){.game-viewport .halte-team{align-content:center;align-items:stretch}.game-viewport .halte-recruit-slot{color:#bfcee1;text-align:center;cursor:pointer;overflow-wrap:anywhere;background:#131e3080;border:1px dashed #71849e;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-width:0;padding:18px 10px;display:flex}.game-viewport .halte-recruit-slot>.interface-icon{opacity:.6;width:48px;height:48px}.game-viewport .halte-recruit-slot>strong{color:#ead6a4;font-size:1rem}.game-viewport .halte-recruit-slot>small{font-size:.875rem;line-height:1.4}.game-viewport .halte-recruit-slot>span{align-items:center;gap:6px;font-size:.875rem;display:flex}.game-viewport .halte-recruit-slot>span .interface-icon{width:18px;height:18px}.game-viewport .halte-recruit-slot:focus-visible{outline-offset:-3px;border-color:#ffdf8c;outline:2px solid #ffdf8c}.game-viewport .vertical-battlefield .combat-resolution-panel .combat-event-body{gap:12px;padding:18px 8px}.game-viewport .vertical-battlefield .combat-resolution-panel .combat-event-kind{font-size:1rem}.game-viewport .vertical-battlefield .combat-resolution-panel .combat-event-title{font-size:clamp(1.5rem,2.6vw,2rem)}.game-viewport .vertical-battlefield .combat-resolution-panel .battle-outcome>strong{font-size:clamp(1.75rem,3vw,2.75rem)}.game-viewport .vertical-battlefield .combat-resolution-panel .battle-outcome.compact>strong{font-size:1.25rem}.game-viewport .vertical-battlefield .combat-resolution-panel .combo-damage strong{font-size:clamp(3.5rem,5.5vw,5rem)}.game-viewport .vertical-battlefield .combat-resolution-panel :is(.combo-target,.battle-outcome>span){font-size:1rem}.game-viewport .vertical-battlefield .combat-resolution-panel .combat-event-preview{text-align:left;width:100%;max-width:38rem;color:var(--muted);background:#162238cc;border:1px solid #52688766;border-radius:12px;flex:none;gap:6px;margin-top:18px;padding:12px 16px;font:400 .875rem/1.5 system-ui,sans-serif;display:grid}.game-viewport .vertical-battlefield .combat-event-preview>small{color:#d7eaff;font:600 .875rem/1.4 system-ui,sans-serif}.game-viewport .vertical-battlefield .combat-event-preview>p{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.game-viewport .starter-art{aspect-ratio:1;width:min(48%,clamp(200px,36dvh,320px));height:auto}.game-viewport .settings-screen{grid-template-rows:repeat(2,minmax(0,1fr));align-items:stretch;height:100%;min-height:0}.game-viewport .settings-column{min-height:0;overflow:auto}.game-viewport .settings-column:first-child{grid-area:1/1}.game-viewport .settings-column:nth-child(2){grid-area:1/2/3}.game-viewport .settings-column:nth-child(3){grid-area:1/3}.game-viewport .settings-column:nth-child(4){grid-area:2/1}.game-viewport .settings-column:nth-child(5){grid-area:2/3}.game-viewport .statistics-screen{height:100%;min-height:0}.game-viewport .statistics-overview,.game-viewport .statistics-history{min-height:0;overflow:auto}.game-viewport .achievements-screen{grid-template-rows:auto minmax(0,1fr);align-items:stretch;height:100%;min-height:0}.game-viewport .achievement-challenges,.game-viewport .achievement-exploration{min-height:0;overflow:auto}}@media (orientation:landscape) and (max-height:420px){.game-viewport .vertical-battlefield .action-window:not(.timing-panel):not(.combat-resolution-panel){overflow-y:auto}.game-viewport .vertical-battlefield .category-choice-grid{flex:1 0 92px}.game-viewport .vertical-battlefield :is(.action-list,.target-options){flex:1 0 64px}.game-viewport .vertical-battlefield .target-options>button{min-height:44px}}@media (orientation:landscape) and (max-height:300px){.game-viewport .game-scroll{overflow:auto}.game-viewport .game-scroll .game-shell{min-height:300px}}@media (orientation:landscape) and (min-height:601px) and (min-width:901px) and (hover:hover) and (pointer:fine){.game-viewport .halte-recruit-slot:hover{background:#24334a;border-color:#ffdf8c;box-shadow:inset 0 0 0 1px #ffdf8c}}@media (orientation:landscape) and (min-width:900px) and (min-height:500px){.game-viewport .vertical-battlefield .action-window.category-window{flex:0 auto;gap:14px;height:auto;margin-block:auto;padding:16px;overflow-y:auto}.game-viewport .vertical-battlefield .category-window .category-choice-grid{flex:none;grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;gap:10px;min-height:0;overflow:visible}.game-viewport .vertical-battlefield .category-window .category-card{grid-template-rows:auto auto;grid-template-columns:44px minmax(0,1fr) auto;align-content:center;gap:5px 12px;min-height:82px;padding:12px}.game-viewport .vertical-battlefield .category-window .category-card>b{grid-area:1/1/3;width:44px;height:44px}.game-viewport .vertical-battlefield .category-window .category-card>b .skill-icon{width:36px;height:36px}.game-viewport .vertical-battlefield .category-window .category-card>strong{font-size:16px;line-height:1.3}.game-viewport .vertical-battlefield .category-window .category-card>small{text-align:right;grid-area:1/3;font-size:12px;line-height:1.3}.game-viewport .vertical-battlefield .category-window .category-card>.category-preview{min-width:0;color:var(--muted);flex-wrap:wrap;grid-area:2/2/auto/4;align-items:baseline;gap:2px 8px;font:400 14px/1.4 system-ui,sans-serif;display:flex}.category-preview>span{overflow-wrap:anywhere;min-width:0}.category-preview>span+span:before{content:"·";opacity:.65;margin-right:8px}}.game-viewport :is(.category-card,.action-card,.plan-chip,.starter-tile,.recruit-tile,.talent-party-button,.halte-hero,.store-tile,.inventory-card,.loadout-slot,.shop-hero-picker button,.equipment-recipient-picker button,.ring-slot-picker button):not(:disabled):not([aria-disabled=true]):is(:focus-visible,:active,[aria-pressed=true],[aria-selected=true],.selected,.current,.focused){outline:2px solid var(--gold,#ffd166);outline-offset:-2px}@media (hover:hover) and (pointer:fine){.game-viewport :is(.category-card,.action-card,.plan-chip,.starter-tile,.recruit-tile,.talent-party-button,.halte-hero,.store-tile,.inventory-card,.loadout-slot,.shop-hero-picker button,.equipment-recipient-picker button,.ring-slot-picker button):not(:disabled):not([aria-disabled=true]):hover{outline:2px solid var(--gold,#ffd166);outline-offset:-2px}}.game-viewport :is(.category-card,.action-card):is(:hover,:focus-visible,:active){transform:none}@media (any-hover:hover) and (any-pointer:fine){:is(button,a[href],summary,select,input[type=button],input[type=submit],input[type=reset],input[type=image],input[type=checkbox],input[type=radio],input[type=range],input[type=color],input[type=file],[role=button],[role=link],[role=tab]):not(:disabled):not([aria-disabled=true]){cursor:pointer!important}label[for]{cursor:pointer}label:has(:is(input[type=checkbox],input[type=radio],input[type=range],select):not(:disabled)){cursor:pointer}input[type=file]:not(:disabled)::file-selector-button{cursor:pointer}:is(.purchase-reveal,.door-opening,.evolution-reveal,.progression-dialog-backdrop,.equipment-overlay,.app-dialog,.ability-help){cursor:pointer}:is(.app-dialog,.ability-help)::backdrop{cursor:pointer}.progression-dialog-backdrop>.progression-dialog,.equipment-overlay>.equipment-detail,.app-dialog>.app-dialog-surface,.ability-help>:not(button){cursor:auto}:is(button,input,select,textarea):disabled,[aria-disabled=true]{cursor:not-allowed!important}label:has(input:disabled,select:disabled,textarea:disabled){cursor:not-allowed!important}.skill-map-viewport.dragging,.skill-map-viewport.dragging *{cursor:grabbing!important}:is(.game-viewport:has(.battle-playback-skip),.game-viewport:has(.battle-playback-skip) *){cursor:pointer!important}}
