:root{color-scheme:dark;--bg:#10191f;--panel:#19272e;--line:#31424a;--gold:#d0b482;--text:#e9e5da;--muted:#9eafb4;--green:#82bba4;--red:#d88775}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 25% 0,#293b40,transparent 65%),var(--bg);color:var(--text);font:14px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}button,select,.file-button{font:inherit;color:var(--text);background:#203038;border:1px solid #41545d;border-radius:5px;padding:10px 16px;cursor:pointer}button:hover,.file-button:hover{border-color:var(--gold);background:#304047}button:focus-visible,select:focus-visible,.cell:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.45;cursor:default}.shell{max-width:1240px;margin:auto;padding:30px 40px 15px}header{display:flex;align-items:center;gap:18px;padding:0 0 22px}small{font:10px/1.5 ui-monospace,monospace;letter-spacing:2px;color:var(--gold)}h1{font:30px/1.3 Georgia,serif;letter-spacing:4px;margin:3px 0}h2{font:26px/1.3 Georgia,"Songti TC",serif;margin:6px 0 20px}h3{font-size:16px;font-weight:500;margin:8px 0 12px}p{color:var(--muted);margin:8px 0 16px}.brandmark{font:34px Georgia;color:var(--gold);border:1px solid #a28b65;width:62px;height:67px;text-align:center;line-height:45px;transform:rotate(-3deg)}.brandmark span{display:block;font:9px ui-monospace;letter-spacing:2px}.build{margin-left:auto;border:1px solid #615742;color:var(--gold);padding:3px 9px;font-size:11px}.notice{display:flex;gap:10px;align-items:center;border-block:1px solid var(--line);padding:10px 0;color:var(--muted);font-size:11px}.dot{width:6px;height:6px;background:var(--gold);border-radius:50%}#offline{margin-left:auto;color:var(--green)}nav{display:flex;gap:25px;margin:16px 0 27px;border-bottom:1px solid var(--line)}nav button{border:0;border-radius:0;padding:10px 2px 14px;background:transparent;color:var(--muted);font-size:13px}nav button.active{color:var(--gold);border-bottom:2px solid var(--gold)}.view{display:none}.view.active{display:block}.battle-layout{display:grid;grid-template-columns:minmax(280px,580px) minmax(260px,1fr);gap:36px}.section-head{display:flex;align-items:center;justify-content:space-between}.section-head h2{margin-bottom:12px}.turn{font:10px ui-monospace;color:var(--muted);letter-spacing:1px}.turn strong{font:25px Georgia;color:var(--gold);margin-left:6px}.timer{height:3px;background:#34444b;margin:4px 0 14px}.timer div{height:100%;width:100%;background:var(--gold);transition:width .05s linear}.board-wrap{position:relative;border:7px solid #33464d;outline:1px solid #657575;border-radius:3px;box-shadow:0 20px 50px #0006;isolation:isolate}#board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));aspect-ratio:6/8;touch-action:none;user-select:none;-webkit-user-select:none}.cell{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid #ffffff0c;background:#26383d;min-width:0;padding:3px;border-radius:0;cursor:pointer}.cell:nth-child(12n+2),.cell:nth-child(12n+4),.cell:nth-child(12n+6),.cell:nth-child(12n+7),.cell:nth-child(12n+9),.cell:nth-child(12n+11){background:#30454a}.cell:hover{background:#3a5054;border-color:#ffffff35}.piece{position:relative;width:86%;height:86%;background:linear-gradient(135deg,#3b7469,#22423f);border:1px solid #a2cbb1;box-shadow:inset 0 0 0 3px #19362c,0 3px 6px #0007;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-direction:column;font:22px Georgia;color:#d6e5d9;pointer-events:none}.piece.enemy{background:linear-gradient(135deg,#8b5143,#4a2c28);border-color:#e0aa8b;box-shadow:inset 0 0 0 3px #472f29,0 3px 6px #0007;border-radius:40% 40% 7px 7px;color:#f0d4c0}.piece.selected{outline:3px solid var(--gold);transform:scale(1.04)}.piece.in-chain{box-shadow:0 0 12px #ddb976}.piece b{font:8px ui-monospace;color:#e3d3b3;position:absolute;top:3px;right:4px}.hp{height:3px;width:80%;background:#0c211c;position:absolute;bottom:6px}.hp i{display:block;height:100%;background:#9ed9a8}.enemy .hp i{background:#efaa82}.board-footer{display:flex;gap:16px;color:var(--muted);font-size:11px;margin:16px 0}.board-footer>span:last-child{margin-left:auto;color:var(--gold)}.key{display:inline-block;height:7px;width:7px;background:var(--green);margin-right:4px}.key.enemy{background:var(--red)}#lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions button{flex:1}.primary{background:#c4a574;color:#18232a;border-color:#c4a574}.primary:hover{background:#e2c997;color:#18232a}.card{border:1px solid var(--line);border-radius:6px;background:linear-gradient(120deg,#1e2e35,#18262d);padding:22px;margin-bottom:18px}.card p{font-size:12px}select{width:100%;margin-top:8px;font-size:12px}label{font-size:11px;color:var(--muted)}#log{padding-left:18px;max-height:220px;overflow:auto;color:#b2c0bd;font:11px/1.9 ui-monospace,monospace}#result{font-size:11px;color:var(--gold)}.intro{max-width:740px}.progress-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.progress-grid .card{margin:0 0 18px}.tag{font-size:10px;color:var(--green);border:1px solid #43685b;padding:3px 7px}.pending{color:var(--gold);border-color:#746343}.blocked{color:var(--red);border-color:#79594f}.roster{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:24px 0}.roster .card{margin:0}.roster label{display:flex;align-items:center;gap:9px;font-size:17px;color:var(--text)}.roster input{accent-color:var(--gold)}.slot{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);padding:10px 0;font-size:11px}.slot span{flex:1}.slot button{padding:5px 8px;font-size:11px}.file-button{display:inline-block;color:#e9e5da}.file-button input{display:none}.instructions{padding-left:20px;color:var(--muted);font-size:13px;line-height:2}.subtle{color:#c2aa82!important}footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:35px;padding:20px 0;color:#71848b;font:9px/1.8 ui-monospace,monospace;letter-spacing:1px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:13px 20px;background:#e0c49b;color:#16252d;border-radius:5px;z-index:20;max-width:90vw;display:none}#toast.show{display:block}@media(max-width:760px){.shell{padding:20px 16px 10px}.battle-layout{grid-template-columns:1fr;gap:25px}.field{max-width:530px;width:100%;margin:auto}aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}aside .card{padding:15px;margin:0}.log-card{grid-column:1/-1}.progress-grid{grid-template-columns:1fr}.roster{grid-template-columns:1fr 1fr}h1{font-size:23px;letter-spacing:2px}header{gap:12px}.brandmark{width:48px;height:58px}small{font-size:9px;letter-spacing:1px}nav{justify-content:space-between;gap:5px}nav button{font-size:12px}.notice{font-size:10px;flex-wrap:wrap}#offline{margin-left:16px}.piece{font-size:22px}footer{flex-direction:column}h2{font-size:23px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(max-width:370px){aside{grid-template-columns:1fr}.piece{font-size:17px}.roster{grid-template-columns:1fr}}
