:root{color-scheme:light;--ink:#202c29;--muted:#586966;--wash:#f5f1e8;--white:#fffaf0;--paper:#ebe4d5;--line:#d1c6b3;--river:#305f63;--jade:#2b5851;--red:#a04531;--red-dark:#7f3426;--gold:#95621d;--radius:17px;--shadow:0 9px 22px #4e3b2615;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 40% -18%,#cbd8d3 0,transparent 47%),var(--wash);color:var(--ink);min-width:280px}button,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.52}button:focus-visible{outline:3px solid #a45b28;outline-offset:2px}h1,h2,h3,p{margin:0}#app{max-width:1180px;margin:auto;padding:12px clamp(10px,3vw,32px) 0}.hidden{display:none!important}.masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:7px 0 15px}.identity{display:flex;align-items:center;gap:12px}.stamp{display:grid;place-items:center;width:43px;height:43px;border-radius:9px;rotate:-4deg;border:2px solid #fffbf1;box-shadow:0 0 0 1px var(--red);background:var(--red);color:#fffbf1;font:700 27px "Kaiti SC","STKaiti",serif}.eyebrow{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;font-size:10px;font-weight:800;color:var(--muted);line-height:1.4}.eyebrow span{color:var(--red);margin:0 4px}.masthead h1{font:900 clamp(23px,4vw,37px)/1.1 "Songti SC","Noto Serif CJK SC",Georgia,serif;letter-spacing:.035em;margin-top:2px}.pill{padding:8px 12px;min-height:40px;border:1px solid var(--line);background:var(--white);color:var(--jade);border-radius:99px;font-weight:800;white-space:nowrap}
#choose{padding:20px 0 16px}.intro{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius);padding:clamp(22px,6vw,68px) clamp(18px,5.5vw,74px);color:#fffaf0;background:#234e4b;min-height:255px;display:flex;flex-direction:column;justify-content:center}.intro:before,.intro:after{position:absolute;z-index:-1;content:"";width:59%;height:125%;right:-4%;top:16%;background:#92aba0;opacity:.27;clip-path:polygon(0 78%,39% 35%,53% 54%,70% 14%,100% 70%,100% 100%,0 100%)}.intro:after{right:-9%;top:31%;background:#d9c7a0;opacity:.38;transform:scaleX(-1)}.intro .eyebrow{color:#e8c697}.intro h2{font:900 clamp(32px,8vw,82px)/.99 "Songti SC","Noto Serif CJK SC",Georgia,serif;margin:10px 0 14px}.intro p{max-width:480px;color:#ece4d5;font-size:clamp(14px,2.5vw,17px);line-height:1.6}.intro .steps{font-size:12px;font-weight:800;color:#f2cc9d;margin-top:14px}.paths{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.path-card{display:flex;flex-direction:column;text-align:left;gap:9px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fffaf2;color:var(--ink);min-height:138px}.path-card:hover{border-color:var(--river);background:#fffdf8}.path-card .domain{background:var(--c,var(--jade));color:#fff;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;font-weight:900;font-size:20px}.path-card strong{font-size:15px}.path-card small{color:var(--muted);font-size:12px;line-height:1.45}.path-card em{font-size:11px;font-style:normal;color:var(--red-dark);font-weight:800;margin-top:auto}
.chapterbar{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:13px 0 12px}.chapterbar h2{font-size:clamp(19px,3.7vw,30px);margin:2px 0}.chapterbar p{font-size:12px;color:var(--muted);line-height:1.4}.play-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(266px,.8fr);gap:12px;align-items:start}.warboard,#roster,#intel{border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--white);box-shadow:var(--shadow);min-width:0}.board-head{display:flex;justify-content:space-between;align-items:center;gap:7px}.board-head h3{font-size:17px;margin-top:1px}.status-chip{font-size:11px;font-weight:800;border-radius:99px;background:#dce8de;color:#234f48;padding:5px 8px;white-space:nowrap}.board-meta{display:flex;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:11px;padding:7px 0 8px}.board-meta span{border-radius:4px;background:#eee9db;padding:3px 5px}.warboard #board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:5px;background:#d3d0bb;border:1px solid #c6bda4;border-radius:11px}.cell{border:1px solid #b7aa9290;border-radius:6px;min-width:0;aspect-ratio:1.25;min-height:33px;background:#f1e3d5;color:var(--ink);padding:1px;position:relative;display:grid;place-items:center;isolation:isolate}.cell.ally{background:#e1ebdd}.cell.middle{margin-top:3px;border-top:2px solid #7b9da0}.cell.feature{background:#c1d9d1}.cell.feature:before{content:attr(data-terrain);position:absolute;font-size:10px;opacity:.66;bottom:1px;right:2px;z-index:-1}.cell.available:hover,.cell.chosen{border-color:#075e59;box-shadow:inset 0 0 0 1px #075e59}.cell.enemy{border-color:#b47768}.cell.friend{border-color:#6b9c86}.cell .token{display:grid;justify-items:center;align-items:center;max-width:100%;padding:1px 0;width:98%;animation:arrive .22s ease-out}.token .sig{font-weight:900;color:#fff;background:var(--c,#326c63);border-radius:6px;min-width:20px;max-width:96%;padding:0 4px;font-size:clamp(10px,2.5vw,15px);line-height:1.4}.token .token-name{font-size:clamp(8px,1.5vw,12px);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.token .hp{height:3px;width:84%;background:#aab5a0;border-radius:6px;overflow:hidden;margin:1px 0}.token .hp i{display:block;height:100%;background:#3b7969}.enemy .token .hp i{background:#ab503e}.cell.hit:after,.cell.strike:after{content:"";inset:0;position:absolute;border-radius:6px;pointer-events:none;animation:fade .4s both}.cell.hit:after{background:#a13c3070}.cell.strike:after{box-shadow:inset 0 0 0 2px #a7802f}@keyframes fade{to{opacity:0}}@keyframes arrive{from{transform:translateY(3px);opacity:.8}}
.board-controls{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.btn{background:#eee8db;color:var(--ink);font-size:12px;line-height:1.15;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-weight:800;min-height:39px}.btn:hover:not(:disabled){border-color:var(--jade)}.btn.primary{background:var(--jade);border-color:var(--jade);color:#fff}.btn.danger{background:#f2e4db;color:var(--red-dark);border-color:#dbb3a7}.message{margin-top:8px;font-size:11px;color:var(--muted);min-height:15px}.result{display:grid;gap:6px;background:#e0ebdf;color:#265248;margin-top:9px;padding:10px;border-radius:10px;line-height:1.35}.result.lose{color:var(--red-dark);background:#f2ded5}.result strong{font-size:16px}.result p{font-size:12px}
aside{display:grid;gap:10px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:7px}.panel-head h3{font-size:16px}.wallet{font-weight:800;font-size:11px;color:#86551d;background:#f1e6c7;border-radius:6px;padding:4px 6px}.offers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:7px}.offer{padding:6px 4px;text-align:left;border:1px solid var(--line);border-radius:7px;background:#f5efe4;color:var(--ink);min-height:48px}.offer:hover:not(:disabled),.bench-button.on{border-color:var(--jade);background:#e6ede2}.offer strong,.bench-button strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.offer small,.bench-button small{display:block;color:var(--muted);font-size:9px;line-height:1.22}.offer .coin{color:#86551d;font-weight:800}.bench-title{font-size:11px;margin:9px 0 4px;color:var(--muted)}.bench{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.bench-button{border:1px solid var(--line);border-radius:7px;background:#f7f1e7;text-align:left;min-height:34px;color:var(--ink);padding:4px;overflow:hidden}.golds{display:flex;gap:5px;flex-wrap:wrap}.golds .btn{min-height:34px;padding:4px 7px;font-size:11px}.intel-line{font-size:11px;margin:5px 0 7px;color:var(--muted);line-height:1.4}.intel-line b{color:var(--jade)}details{margin-top:9px;border-top:1px solid var(--line);padding-top:6px;font-size:11px;color:var(--muted)}summary{font-weight:800;color:var(--jade);cursor:pointer}.logs{max-height:84px;overflow:auto;padding-left:18px;line-height:1.45}#footer-note{font-size:11px;text-align:right}
footer{display:flex;justify-content:space-between;gap:6px;border-top:1px solid var(--line);padding:11px 0 14px;margin-top:15px;color:var(--muted);font-size:10px;font-weight:700}
@media(max-width:750px){.play-grid{grid-template-columns:1fr}.paths{grid-template-columns:repeat(2,minmax(0,1fr))}.warboard,#roster,#intel{padding:9px}.warboard #board{max-width:540px;margin:auto}.cell{aspect-ratio:1.7;min-height:37px}.board-controls .btn{flex:1;white-space:nowrap}.intro{min-height:163px}.masthead{padding-bottom:9px}#choose{padding-top:10px}.intro h2{margin:5px 0 10px}.path-card{min-height:101px;padding:8px;gap:6px}.chapterbar p{font-size:10px}.chapterbar{padding:7px 0}.offers,.bench{grid-template-columns:repeat(3,minmax(0,1fr))}.offer strong,.bench-button strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}
.stage-panel{padding:11px;margin-top:10px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}.stage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.stage-grid .btn{text-align:left}@media(max-width:750px){.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(min-width:751px){.cell{aspect-ratio:1.65;max-height:63px}.warboard #board{max-width:820px;margin:auto}}
.cell{width:100%}
