:root{color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:#091923;color:#f7e8bc;font:13px/1.6 'Microsoft YaHei',sans-serif}button{font:inherit;cursor:pointer;color:inherit;background:#143d50;border:1px solid #b98b46;border-radius:5px;padding:7px 12px}button:hover:not(:disabled){background:#265a69}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #90fce4;outline-offset:3px}a{color:inherit}[hidden]{display:none!important}.toolbar{max-width:480px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:10px;height:42px;padding:6px 12px;font-size:11px}.toolbar a{text-decoration:none}.toolbar button{font-size:11px;padding:3px 10px}.phone{position:relative;width:min(100%,480px);aspect-ratio:768/1376;margin:0 auto;container-type:inline-size;isolation:isolate;overflow:hidden;box-shadow:0 15px 50px #0006}.scene-image{display:block;width:100%;height:100%;position:absolute;inset:0;z-index:-1}.hotspot{position:absolute;padding:0;border:0;border-radius:10px;background:transparent!important;box-shadow:none;color:transparent}.hotspot:hover:not(:disabled),.hotspot:focus-visible{box-shadow:inset 0 0 15px #fff0a780,0 0 14px #ffd872aa;outline:2px solid #ffe7a1}.hotspot:disabled{opacity:1}.start-hit{left:29%;top:79.5%;width:44%;height:18%}.pause-hit{left:40%;top:13.2%;width:20%;height:3.4%;border-radius:2px}.health-live{position:absolute;top:6.45%;height:2.35%;width:26.5%;background:#281b15;box-shadow:inset 0 0 5px #000;border:1px solid #422614;overflow:hidden}.health-live.player{left:10%}.health-live.enemy{left:62.7%}.health-live i{display:block;height:100%;background:repeating-linear-gradient(90deg,transparent 0 11%,#733521 11% 13%),linear-gradient(#ff7463,#ef271c);transition:width .3s}.health-live.enemy i{background:repeating-linear-gradient(90deg,transparent 0 11%,#316529 11% 13%),linear-gradient(#a2fd71,#46d449)}.hp-number{position:absolute;top:9.2%;font:bold 2.3cqw Georgia;color:#ffe6a2;text-shadow:0 1px 2px #000;background:#5b301bee;border-radius:3px;padding:0 5px;min-width:20%;text-align:center}.hp-number.player{left:11%}.hp-number.enemy{right:11%}.turn-live{position:absolute;left:44%;top:7.2%;width:14%;height:4.6%;display:grid;place-items:center;background:#efdbad;color:#241e19;font:bold 6.5cqw Georgia;line-height:1}.intent-strip{position:absolute;left:11%;top:43%;width:78%;display:flex;justify-content:space-between;align-items:center;gap:4px;background:#092c46ed;color:#ffe4a1;border:1px solid #c9934b;border-radius:5px;padding:1.2% 2%;font-size:2.35cqw;line-height:1.6;box-shadow:0 3px 9px #001e30}.intent-strip strong{font-size:2.5cqw}.deck-readout{position:absolute;left:8%;top:51%;width:30%;text-align:center;color:#dceacf;text-shadow:0 2px 3px #082e3f;font-size:2.8cqw}.deck-readout b{display:block;font-size:5.3cqw;color:#fff0b0}.turn-hit{left:62%;top:50.6%;width:18%;height:10.1%;color:#fff2b2;background:#492a17bb!important;border:1px solid #c99c4f;border-radius:6px;font-size:2.8cqw;font-weight:700;text-shadow:0 2px #000}.turn-hit small{display:block;font-size:2.2cqw;color:#e4d8b4;margin-top:5px}.last-play{position:absolute;left:42%;top:50.6%;width:16%;height:10%;border:1px solid #d7b86d;border-radius:5px;overflow:hidden;background:#613c23}.last-play svg{width:100%;height:100%}.last-play span{position:absolute;bottom:0;left:0;right:0;background:#e8d6a5ed;color:#253c45;text-align:center;font-size:2cqw}.energy-readout{position:absolute;left:42%;top:69%;width:42%;text-align:center;color:#e8e3ad;text-shadow:0 2px 2px #0a2431;font-size:3cqw;line-height:1.6}.energy-readout b{font-size:4cqw;color:#ffda6e}.hand-slot{position:absolute;top:80.9%;height:16%;width:23.5%;padding:0;background:#ccb578;border:2px solid #2a4143;border-radius:6px;box-shadow:0 0 0 1px #e4bd62,0 0 12px #52e8d066;transform:rotate(var(--tilt));transform-origin:50% 100%;overflow:visible}.hand-slot[data-slot="0"]{left:17%;--tilt:-10deg}.hand-slot[data-slot="1"]{left:39%;top:79.9%;--tilt:1deg}.hand-slot[data-slot="2"]{left:61%;--tilt:12deg}.hand-slot:hover:not(:disabled){transform:translateY(-5%) rotate(var(--tilt));box-shadow:0 0 0 2px #ffdf6e,0 0 24px #ffce56}.hand-slot.selected{transform:translateY(-6%) rotate(var(--tilt));box-shadow:0 0 0 3px #82ffe1,0 0 20px #5ff4dd}.hand-slot:disabled{opacity:1;filter:saturate(.45) brightness(.72)}.hand-slot svg{display:block;width:100%;height:100%;border-radius:4px}.hand-slot .card-label{position:absolute;bottom:0;left:0;right:0;padding:2% 0;background:#e8d7a9f5;color:#182f37;text-align:center;font-size:2.5cqw;font-weight:700;border-top:1px solid #49351e}.hand-slot .cost{position:absolute;left:-6%;top:-5%;border-radius:50%;width:25%;aspect-ratio:1;background:#dae8df;border:2px solid #203b49;color:#16374e;display:grid;place-items:center;font:bold 3.2cqw Georgia;box-shadow:0 2px 3px #0007}.empty-slot{position:absolute;top:82%;left:18%;width:65%;height:14%;background:#12374ee8;border:1px solid #bb9655;border-radius:9px;display:grid;place-items:center;text-align:center;font-size:3cqw;color:#f0d390}.battle-float{position:absolute;left:55%;top:29%;font:bold 6cqw Georgia;color:#fff0a8;text-shadow:0 2px 2px #000;pointer-events:none;animation:float 1s both}.flash .scene-image{animation:impact .3s}.victory-stat{position:absolute;left:24.7%;width:24.6%;height:2.8%;background:#c5a47b;color:#251d17;font-size:2.65cqw;display:flex;align-items:center;justify-content:space-between;padding:0 1%;white-space:nowrap}.victory-stat.row0{top:49.8%}.victory-stat.row1{top:53.4%}.victory-stat.row2{top:57.05%}.victory-stat.row3{top:60.7%}.victory-next{left:18%;top:73%;width:66%;height:18%}.victory-next span{position:absolute;bottom:1%;left:12%;right:12%;padding:4% 0;background:#e6c478ed;border:2px solid #613c21;border-radius:8px;color:#233945;text-align:center;font-size:3.4cqw;font-weight:700}.reward-hit{top:48%;height:17%;width:20%;border-radius:8px}.reward-hit[data-choice="0"]{left:20%;transform:rotate(-9deg)}.reward-hit[data-choice="1"]{left:41%}.reward-hit[data-choice="2"]{left:61%;transform:rotate(10deg)}.reward-hit.chosen{box-shadow:0 0 0 3px #8cffe8,0 0 24px #7cffd9}.reward-hit.chosen:after{content:'✓';position:absolute;right:-10%;top:-8%;width:35%;aspect-ratio:1;border-radius:50%;background:#b6f8cf;color:#214d4d;font-size:4cqw;display:grid;place-items:center}.claim-hit{left:23%;top:81%;width:56%;height:8%}.reward-note{position:absolute;top:67.8%;left:24%;width:54%;height:9.3%;display:flex;flex-direction:column;justify-content:center;background:#174253;color:#ffdf91;text-align:center;font-size:3cqw;text-shadow:0 2px #082732;line-height:1.8}.reward-note small{font-size:2.5cqw;color:#f8efc5}.controls{max-width:480px;margin:0 auto;padding:12px 16px 20px;background:#102b3b;min-height:75px}.controls p{margin:0 0 8px;font-size:12px;color:#c3d6d8}.controls strong{color:#f3d194}.control-row{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}.control-row button{font-size:12px}.control-row small{color:#a8c3c8;font-size:11px}.selected-copy{min-height:40px}.controls .use-card{background:#e4c276;color:#1a3340;border-color:#f1d99d;font-weight:700}.controls a{font-size:11px}.controls details{font-size:11px;margin-top:10px;color:#c6d4d3}.controls summary{cursor:pointer}.controls ul{padding-left:18px}dialog{background:#eddcb3;color:#15384b;border:4px solid #784926;outline:1px solid #deb66a;border-radius:10px;padding:22px;max-width:420px;width:calc(100% - 30px);box-shadow:0 20px 60px #0009}dialog::backdrop{background:#02131dd9;backdrop-filter:blur(4px)}dialog h2{margin-top:0;font-size:21px}dialog p,dialog li{font-size:13px;line-height:1.9}dialog button{margin:5px 5px 0 0;background:#19475a;color:#fbe3ad}.sr-only{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}@keyframes float{from{opacity:1;translate:0 0}to{opacity:0;translate:0 -30px}}@keyframes impact{50%{filter:brightness(1.2)}}
@media(min-width:600px){.phone,.controls,.toolbar{width:min(440px,calc((100svh - 42px)*.55814));min-width:300px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Keep guidance and the next action visible beside the original portrait art. */
.controls{position:sticky;bottom:0;z-index:10;border-top:1px solid #c8a76b;box-shadow:0 -8px 22px #00151e99;max-height:42svh;overflow-y:auto}.turn-banner{background:#1e4657;border-left:3px solid #efd382;padding:7px 9px;margin-bottom:8px}.turn-banner strong,.turn-banner span{display:block}.turn-banner span{font-size:11px;color:#d2e3df}.battle-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.battle-actions button{font-size:11px;padding:6px 8px}.battle-actions .ready-end{background:#f0cb78;color:#193344;border:2px solid #ffe6aa;font-weight:bold}.hand-slot[data-unaffordable=true]{filter:saturate(.4) brightness(.75)}.codex{display:grid;gap:12px}.codex article{display:flex;gap:12px;padding:10px 0;border-top:1px solid #a68a58}.codex svg{width:64px;height:90px;flex-shrink:0;border:2px solid #9b7846;border-radius:5px}.codex h3{font-size:14px;margin:0}.codex h3 small{display:block;font-size:11px;font-weight:normal}.codex p{font-size:12px;margin:4px 0;line-height:1.6}.codex .tip{color:#5c5c40}.turn-report{background:#d7c394;padding:10px 14px;border:1px solid #a28351;border-radius:6px}.turn-report b{font-size:20px;color:#7a321e}dialog{max-height:88svh;overflow:auto}

/* A fitted play surface: guidance never floats over the original artwork. */
html,body{height:100%;overflow:hidden}.toolbar{height:40px;width:min(100%,480px);min-width:0;padding:4px 8px}.toolbar-tools{display:flex;gap:6px}.toolbar>span{font-size:10px}.toolbar-tools button{min-height:30px;padding:3px 8px}main{height:calc(100svh - 40px);display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.phone{flex:none;width:min(100vw,480px,calc((100svh - 138px)*.55814));min-width:0;max-height:none}.controls{position:static;flex:none;width:min(100vw,480px,calc((100svh - 138px)*.55814));min-width:0;height:98px;max-height:none;overflow:auto;padding:6px 9px;box-shadow:none;border-top:0;font-size:11px}.controls p{font-size:11px;line-height:1.5;margin:0 0 4px}.controls small{font-size:10px}.controls.compact{height:36px;display:flex;align-items:center;justify-content:space-between;gap:5px;overflow:hidden;font-size:9px;padding:3px 6px}.controls.compact button{font-size:10px;padding:4px 5px;white-space:nowrap}main:has(.compact) .phone,main:has(.compact) .controls{width:min(100vw,480px,calc((100svh - 76px)*.55814))}.turn-live{top:4.8%;height:7.6%;font-size:4.5cqw;display:flex;flex-direction:column;justify-content:center;line-height:1.4}.turn-live small{font:2.4cqw sans-serif}.hand-slot .card-label{font-size:2.4cqw;line-height:1.25}.hand-slot .card-label small{display:block;font-size:2.1cqw;font-weight:400;padding:2px;line-height:1.3}.intent-strip span{max-width:74%;font-size:2.25cqw}.intent-strip{pointer-events:none}.hand-slot{transition:transform .16s,filter .16s}.hand-slot:hover:not(:disabled){transform:translateY(-2%) rotate(var(--tilt))}.empty-slot{font-size:3cqw}.turn-hit{font-size:2.6cqw}.turn-hit small{font-size:1.9cqw}.energy-readout{font-size:2.4cqw}

.controls,.controls.compact{min-height:0}.toolbar{flex-shrink:0}main{overflow:hidden}

.sr-only{position:fixed;top:0;left:0;margin:0}

.map-panel{position:absolute;left:8%;right:8%;top:29%;height:46%;padding:5.2cqw 4.2cqw;background:linear-gradient(180deg,#0b2b45f2,#061926f7);border:1px solid #d5ad69;border-radius:10px;box-shadow:inset 0 0 30px #c9904140,0 12px 30px #00151eb0;color:#f6df9d;text-align:center}
.map-panel p{margin:0 0 1.5cqw;color:#83f6df;font-size:2.6cqw;letter-spacing:.18em;text-transform:uppercase}
.map-panel h2{margin:0 auto 4cqw;max-width:80%;font:700 5.1cqw Georgia,'Microsoft YaHei',serif;line-height:1.25;text-shadow:0 2px 4px #000}
.map-line{position:absolute;left:16%;right:16%;top:51%;height:2px;background:linear-gradient(90deg,#ecd080,#68eadc,#ecd080);box-shadow:0 0 12px #75ffe2}
.map-node{position:absolute;top:42%;width:26%;height:34%;padding:0 2cqw;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1cqw;border-radius:8px;background:#0d3449e8;border:1px solid #caa15f;color:#fbe4a8;text-align:center;box-shadow:0 0 0 1px #fff1b826,0 8px 18px #0008}
.map-node:nth-of-type(1){left:4%}.map-node:nth-of-type(2){left:37%}.map-node:nth-of-type(3){left:70%}
.map-node span{width:8.5cqw;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:#ead489;color:#17394b;font:bold 4cqw Georgia;box-shadow:0 0 14px #f5d875}
.map-node strong{font-size:2.6cqw;line-height:1.25}
.map-node small{font-size:2.05cqw;line-height:1.25;color:#cbe9dd}
.map-node.current{background:#154d5ff2;transform:translateY(-7%);box-shadow:0 0 0 2px #ffdd7e,0 0 28px #74ffe1}
.map-node.done{background:#173637d8;color:#d8efdf}
.map-node.done span{background:#9be6c4;color:#123c3f}
.map-node.locked{filter:saturate(.25) brightness(.7);box-shadow:none}
