:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#f3e8d2;background:#0b0907;color-scheme:dark}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}body{overflow:hidden;background:radial-gradient(circle at 50% -20%,#50331e 0,transparent 45%),#0b0907}
.shell{width:min(100vw,1480px);height:100vh;margin:auto;padding:clamp(10px,1.5vw,20px);display:flex;flex-direction:column;gap:10px}
header{display:flex;align-items:end;justify-content:space-between;gap:18px;min-height:62px}h1{font-family:serif;font-size:clamp(28px,4vw,48px);letter-spacing:.08em;line-height:1;margin:3px 0 0}.eyebrow{margin:0;color:#a68a66;font-size:10px;letter-spacing:.22em}.stats{display:flex;gap:8px}.stats span{padding:9px 13px;border:1px solid #72583d;background:#17110dcc;border-radius:4px;color:#baa487;font-size:13px}.stats b{font-size:20px;color:#f4d28b;margin-left:4px}
.stage{position:relative;width:100%;min-width:0;flex:1;min-height:0;overflow:hidden;border:1px solid #5d432d;border-radius:7px;background:#17110d;box-shadow:0 24px 70px #0009}canvas{display:block;width:100%;max-width:100%;height:100%;min-width:0;touch-action:none;cursor:crosshair}
.mission{position:absolute;right:3.2%;top:4%;width:24%;min-width:220px;padding:12px 15px;border-left:3px solid #b8924e;background:#100d0bcc;backdrop-filter:blur(5px);pointer-events:none}.mission small{display:block;color:#a68a66;letter-spacing:.16em}.mission strong{display:block;font-family:serif;font-size:clamp(21px,2.3vw,32px);color:#f3d490;margin:2px 0}.mission span{display:block;color:#c4b299;font-size:12px;line-height:1.45}
.overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:18px;background:#0504038c;transition:opacity .25s,visibility .25s}.overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.dialog{width:min(470px,94vw);padding:28px;border:1px solid #8c6842;border-radius:5px;background:linear-gradient(145deg,#241a12f5,#100d0bf8);box-shadow:0 26px 90px #000c,inset 0 1px #fff1;text-align:center}.dialog h2{font-family:serif;font-size:30px;margin:5px 0 10px;color:#f3dfb8}.dialog>p:not(.stamp){margin:0 0 18px;color:#cbbda9;line-height:1.7}.stamp{margin:0;color:#a1664e;font-size:10px;letter-spacing:.2em;font-weight:800}.rules{display:flex;justify-content:center;gap:8px;margin:0 0 20px}.rules span{padding:5px 8px;border:1px solid #6b5138;color:#cdbd9f;font-size:11px}.actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}button{min-height:44px;padding:0 20px;border:1px solid #d8af65;border-radius:3px;background:#c9974e;color:#160f09;font:800 15px inherit;cursor:pointer;box-shadow:0 5px 0 #684421}button:active{transform:translateY(3px);box-shadow:0 2px 0 #684421}button.ghost{background:transparent;color:#dfc89f;box-shadow:none}#brief{color:#d7a85e;font-size:13px;line-height:1.55;border-top:1px solid #ffffff14;padding-top:13px;margin:2px 0 20px}
.board{max-height:92%;display:flex;flex-direction:column;padding:20px}.board h2{margin-bottom:4px}.board form{display:flex;gap:8px;margin:8px 0 12px}.board input{min-width:0;flex:1;padding:10px;border:1px solid #7c5a3b;background:#0b0907;color:#eee;font:inherit}.board form button{min-height:40px}.board-head,.board li{display:grid;grid-template-columns:55px 1fr 70px;text-align:left;gap:8px;align-items:center}.board-head{padding:5px 9px;color:#8f7d67;font-size:11px}.board ol{list-style:none;margin:0 0 15px;padding:0;overflow:auto;max-height:45vh}.board li{padding:7px 9px;border-top:1px solid #ffffff12;color:#d7c5ab;font-size:13px}.board li span:last-child{text-align:right;color:#f0cc82;font-weight:800}.board li.me{background:#76522666;border:1px solid #bf9457}
@media(max-width:720px){.shell{padding:7px}.mission{right:2%;top:2%;min-width:0;width:46%;padding:8px}.mission span{display:block;font-size:11px;line-height:1.4}.mission small{font-size:10px}.mission strong{font-size:18px}#brief{font-size:12px;padding-top:10px;margin-bottom:16px}.stats{gap:4px}.stats span{padding:6px;font-size:10px}.stats b{font-size:16px;margin-left:2px}header{min-width:0;min-height:66px;align-items:center;gap:5px}h1{font-size:25px;white-space:nowrap}.eyebrow{display:none}.dialog{width:min(94vw,470px);padding:18px 14px}.dialog h2{font-size:25px}.dialog>p:not(.stamp){font-size:13px}.rules{gap:4px}.rules span{padding:4px}.stage{border-radius:4px}}
