.hero-basics{grid-template-columns:repeat(3,1fr)}
.world-place{width:max(44px,calc(92px * var(--actor-scale,1)));height:max(44px,calc(85px * var(--actor-scale,1)))}
.poi-art{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:calc(76px * var(--actor-scale,1));height:calc(68px * var(--actor-scale,1));background-size:cover;background-position:center;border:2px solid #c2a6db;border-radius:35% 35% 12% 12%;box-shadow:0 4px 9px #09191db3}
[data-poi-type="mini"] .poi-art,[data-poi-type="merchant"] .poi-art{width:calc(94px * var(--actor-scale,1));height:calc(94px * var(--actor-scale,1));background-size:contain;background-repeat:no-repeat;border:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 3px 2px #10271a80)}
.realtime-battle{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 138px 30px;gap:8px}
.realtime-battle .battle-stage{display:flex;flex-direction:column;padding:10px;gap:3px;grid-column:auto;grid-row:auto}
.encounter-title{font:10px/18px system-ui;text-align:center;text-transform:uppercase;letter-spacing:1.5px;color:#ead5a5;text-shadow:0 1px 4px #000;flex-shrink:0}
.realtime-battle .opponent-line,.realtime-battle .ally-line{flex:1;padding:6px 0;min-height:0}.realtime-battle .ally-line{flex:1.05}
.realtime-battle .combatant{max-height:270px}.realtime-battle .combatant .figure-ground{bottom:34px}.realtime-battle .battle-sprite{max-height:210px}
.realtime-dock{position:relative;z-index:3;min-height:0;display:flex;flex-direction:column;justify-content:center;padding:0 2px;background:transparent;border:0}
.realtime-controls{display:grid;grid-template-columns:repeat(var(--attack-count,2),minmax(0,1fr));gap:12px;height:100%;align-items:stretch}
.charge-attack{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:5px 5px 13px;border:1px solid #bfa66a66;border-radius:22px 22px 44% 44% / 18px 18px 18px 18px;background:linear-gradient(155deg,#314235,#13251e 58%,#1c3329);color:#c6ceb8;opacity:1!important;touch-action:manipulation;box-shadow:inset 0 0 0 3px #111e1d,inset 0 0 0 4px #a8925738,0 3px 8px #07151266}
.charge-fill{position:absolute;left:0;right:0;bottom:0;height:var(--charge,0%);z-index:-1;background:linear-gradient(0deg,#c09c474f,#e6cb8d1a);border-top:1px solid #e6c17a77;pointer-events:none}
.charge-attack strong{font:600 13px/18px Georgia;color:inherit;text-shadow:0 1px 4px #000;white-space:nowrap}
.attack-emblem{position:relative;display:grid;place-items:center;width:86px;height:86px;flex-shrink:0}
.emblem-rim{position:absolute;inset:7px;transform:rotate(45deg);border:1px solid #dcc7885c;border-radius:14px;background:radial-gradient(#e1c67716,#0e231e66);box-shadow:inset 0 0 0 4px #e0bf6d0c}
.attack-emblem .action-art{position:relative;width:70px;height:70px;filter:brightness(.85) saturate(.7);transition:filter .25s,transform .25s}
.heavy-emblem .action-art{position:absolute;transform:rotate(-35deg) translateX(-7px)}.heavy-emblem .second-blade{transform:rotate(35deg) translateX(7px)}
.ready-spark{position:absolute;bottom:1px;left:50%;transform:translateX(-50%);font:16px Georgia;color:#b5a46c;opacity:.35}
.charge-attack.charged{border-color:#ead18b;color:#ffe2a0;box-shadow:inset 0 0 0 3px #17251f,inset 0 0 0 4px #e4c57477,0 0 15px #dfbd6525}
.charge-attack.charged .action-art{filter:brightness(1.2) saturate(1.15) drop-shadow(0 0 6px #f1c57970)}.charge-attack.charged .ready-spark{opacity:1;color:#ffe5a5;text-shadow:0 0 8px #efc776}.charge-attack:focus-visible{outline:2px solid #ffe7b0;outline-offset:2px}
.combat-status{font:11px system-ui;text-align:center;color:#c9c8a5;margin:0}
.combat-task{position:relative;display:flex;flex-direction:column;justify-content:center;height:100%;padding:6px 8px;background:transparent;user-select:none}
.task-readout{display:flex;align-items:center;gap:8px;font:11px/20px system-ui;color:#dce0c9;margin-bottom:6px}.task-readout strong{font-weight:500;flex:1}.task-score{color:#eed394;font-weight:700}.task-clock{width:37px;text-align:right;color:#b5c3ad;font-variant-numeric:tabular-nums}
.task-timebar{height:3px;background:#071a15;border-radius:5px;overflow:hidden;flex-shrink:0}.task-timebar i{display:block;height:100%;background:linear-gradient(90deg,#7dba9d,#edce89)}
.mash-button{display:flex;align-items:center;justify-content:center;gap:16px;align-self:center;width:min(320px,100%);height:86px;min-height:55px;margin-top:8px;padding:0 16px;border:2px solid #e6c782;border-radius:24px 24px 50% 50% / 18px 18px 22px 22px;background:radial-gradient(ellipse at 50% 15%,#9c81465c,#223b2b 65%,#172d23);box-shadow:inset 0 0 0 3px #14271a,0 0 22px #deb86a22;color:#ffe6b0;touch-action:none}
.mash-button .action-art{width:58px;height:58px;filter:drop-shadow(0 0 6px #d6af6066)}.mash-button strong{font:22px Georgia;letter-spacing:1px}.mash-button:disabled{opacity:.7}
.battle-targets{position:absolute;inset:28px 0 6px;z-index:7;background:transparent;pointer-events:none}
.strike-target{position:absolute;width:52px;height:52px;transform:translate(-50%,-50%);display:grid;place-items:center;padding:0;border:2px solid #ffe4a1;border-radius:50%;background:radial-gradient(#d9c278,#506c3ed9 45%,#163525a6 70%);box-shadow:0 0 15px #f7d77a66;color:#fff0c3;font:27px Georgia;touch-action:none;pointer-events:auto}
.strike-target::after{content:'';position:absolute;inset:-5px;border:2px solid #e4d39b;border-radius:50%;transform:scale(var(--target-life,1));opacity:.7;pointer-events:none}
.task-hit-gems{display:flex;align-items:center;justify-content:center;gap:9px;height:70px}.task-hit-gems i{width:13px;height:13px;transform:rotate(45deg);border:1px solid #99865d;background:#20372c;border-radius:3px}.task-hit-gems i.hit{background:#dfc27b;border-color:#ffe8ac;box-shadow:0 0 10px #d5ba6977}
.remote-task{display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;font:14px/1.5 Georgia;color:#e7d9b6}.remote-task span{font:38px Georgia;color:#dbc088}.remote-task strong{font-weight:400}
[data-presenting="true"] .combat-task,[data-presenting="true"] .battle-targets,[data-presenting="true"] .realtime-controls,body[data-combat-submitting="true"] .realtime-controls{display:none!important}
.realtime-battle .battle-footer{align-self:end}.realtime-battle .battle-banner{top:38%}
@media(max-width:360px){.realtime-controls{gap:8px}.charge-attack strong{font-size:12px}.realtime-battle .battle-stage{padding:7px}.realtime-battle .ally-line{gap:2px}.task-hit-gems{gap:7px}}
@media(max-height:650px){.realtime-battle{grid-template-rows:minmax(0,1fr) 108px 28px;gap:5px}.attack-emblem{width:68px;height:68px}.attack-emblem .action-art{width:58px;height:58px}.charge-attack{padding-bottom:9px}.charge-attack strong{font-size:11px}.task-readout{font-size:10px;margin-bottom:3px}.mash-button{height:65px;margin-top:5px}.mash-button .action-art{width:46px;height:46px}.mash-button strong{font-size:19px}.task-hit-gems{height:55px}.realtime-battle .battle-stage{gap:0}}
@media(orientation:landscape) and (max-height:500px){.realtime-battle{grid-template-columns:minmax(0,1fr) 200px;grid-template-rows:minmax(0,1fr) 28px}.realtime-battle .battle-stage{grid-column:1;grid-row:1/3;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:22px minmax(0,1fr)}.encounter-title{grid-column:1/-1}.realtime-battle .opponent-line{grid-column:2;grid-row:2}.realtime-battle .ally-line{grid-column:1;grid-row:2;padding-top:0}.realtime-dock{grid-column:2;grid-row:1;height:135px;align-self:end}.realtime-battle .battle-footer{grid-column:2;grid-row:2;gap:0}.realtime-controls{gap:6px}.charge-attack strong{font-size:10px;white-space:normal}.task-readout{flex-wrap:wrap;gap:2px 6px}.task-readout strong{flex-basis:100%}.task-readout .task-score{flex:1;text-align:left}.strike-target{width:46px;height:46px;font-size:25px}}
@media(prefers-reduced-motion:reduce){.charge-attack,.strike-target,.attack-emblem .action-art{transition:none}}
