:root{font-family:system-ui,-apple-system,Microsoft YaHei,sans-serif;color:#273d37;background:#f3f1e9;font-synthesis:none;--ink:#173e34;--green:#27755c;--line:#d9ddd1;--gold:#ad8238;--red:#a35345}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:1px solid var(--line);background:transparent;border-radius:6px;min-height:44px;touch-action:manipulation}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible{outline:3px solid #bc8f39;outline-offset:3px}button:not(:disabled):hover{border-color:var(--green);background:#e7ecdf}main{max-width:1160px;margin:auto;padding:0 36px}header{display:flex;align-items:center;gap:24px;padding:25px 0;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--ink);font-family:"Noto Serif SC",serif;font-weight:900;font-size:25px;letter-spacing:3px}.brand span{font-family:system-ui;font-size:11px;letter-spacing:2px;margin-left:18px;font-weight:500}.edition{margin-left:auto;font-size:10px;letter-spacing:2px;color:#718079}.quiet{border:0;font-size:12px;padding:0 8px}.intro{padding:42px 0 30px}.eyebrow{font-size:10px;letter-spacing:2px;color:#708276}.intro h1{font-family:"Noto Serif SC",serif;font-weight:700;font-size:38px;letter-spacing:4px;margin:12px 0;color:var(--ink)}.intro h1 span{color:var(--gold)}.intro>p:last-child{font-size:13px;color:#758076;letter-spacing:1px}.game{display:grid;grid-template-columns:260px minmax(0,1fr);gap:58px;border-top:1px solid var(--line);padding-top:26px}.chapter nav{margin:18px 0 28px}.level{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;display:flex;align-items:center;text-align:left;gap:14px;padding:17px 12px}.level>span{font-family:Georgia,serif;font-size:25px;color:#a5aca0}.level div{flex:1}.level strong{display:block;font-size:14px;letter-spacing:1px}.level small{display:block;font-size:10px;color:#7e897d;margin-top:5px}.level>b{font-weight:400;color:var(--green)}.level.current{background:#e3e9dc;border-left:3px solid var(--green)}.objective{padding:8px 12px 18px}.objective h2{font-family:"Noto Serif SC",serif;font-size:19px;margin:12px 0}.objective p{font-size:12px;line-height:1.9;color:#6a786c}.objective .switch-count{color:var(--green);font-weight:600}.legend{border-top:1px solid var(--line);padding:18px 12px;display:flex;flex-wrap:wrap;gap:10px;font-size:10px}.legend span{display:flex;align-items:center;gap:4px}.legend i{font-style:normal;border:1px solid #c4a69b;color:var(--red);padding:3px;border-radius:3px}.legend .green{color:var(--green);border-color:#96b39d}.legend .gold{color:var(--gold);border-color:#cdbb91}.legend small{display:block;width:100%;color:#81887c;line-height:1.8}.play{max-width:560px;width:100%;justify-self:end}.board-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:1px;margin-bottom:14px}.energy{display:inline-block;margin-left:10px;color:var(--green);font-size:11px;background:#e2e9db;padding:6px 10px;border-radius:3px}.board{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;padding:8px;border:1px solid #bbc6b3;background:#dde3d5;box-shadow:0 12px 32px #243e2810;border-radius:5px}.cell{position:relative;aspect-ratio:1;min-height:0;min-width:0;border:1px solid transparent;background:#f7f6ed;border-radius:3px;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden}.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-color:#edf0e3}.cell .coord{position:absolute;left:4px;top:3px;font-size:8px;color:#adb7a4;letter-spacing:1px}.cell.danger{background-image:repeating-linear-gradient(135deg,transparent,transparent 6px,#a3534510 6px,#a3534510 8px)}.cell.legal{border:1px solid #7baa8b;background-color:#e3eddb}.cell.legal:after{content:"";width:6px;height:6px;border-radius:50%;background:#76a584;position:absolute;bottom:8px}.cell.destination{box-shadow:inset 0 0 0 2px var(--green)}.cell.selected{box-shadow:inset 0 0 0 2px var(--gold)}.cell.targetable{border:1px dashed var(--gold)}.piece{width:44%;aspect-ratio:1;border:1px solid #bf8170;display:grid;place-items:center;border-radius:50%;font-family:"Noto Serif SC",serif;font-weight:900;font-size:clamp(16px,2vw,23px);color:var(--red);background:#f4e9dd;box-shadow:0 2px #b5906a22;z-index:1}.player .piece{background:var(--green);border-color:var(--green);color:#fffbea}.bow .piece{border-radius:3px;transform:rotate(-4deg)}.barrel .piece{border-radius:3px;color:#946522;border-color:#bda165;background:#efe1bb}.intent{position:absolute;right:4px;bottom:3px;font-size:15px;color:var(--red);z-index:2;font-weight:700}.intent.walking{color:#88967c}.enemy-id{position:absolute;right:5px;top:3px;color:#9d8c78;font-size:8px}.switch{position:absolute;font-size:40px;color:#d0bb80;bottom:0;left:50%;transform:translate(-50%);line-height:1.6}.switch.on{color:#7b9e62}.exit{position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px double #a1b69b;display:grid;place-items:center;color:#9bb094;font-size:26px}.ghost{position:absolute;background:#f6fff0e8;border:2px dashed var(--green);border-radius:5px;top:15%;right:15%;bottom:15%;left:15%;display:grid;place-items:center;z-index:3;color:var(--green)}.removed .piece{opacity:.25;text-decoration:line-through}.wall{font-size:36px;color:#73846a}.tools{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 12px}.tools button{font-size:12px;background:#f8f8f0;padding:9px 3px}.tools b{font-size:17px;margin-right:7px;font-weight:500}.tools small{display:block;font-size:9px;letter-spacing:1px;color:#8a9483;margin-top:4px}.tools .active{background:var(--ink);color:#fffbe9;border-color:var(--ink)}.tools .active small{color:#b8c9b3}.feedback{min-height:100px;padding:14px 16px;border-left:2px solid #b6c5aa;background:#e9eddf}.feedback strong{font-size:12px;letter-spacing:1px}.feedback p{font-size:11px;line-height:1.8;color:#6d7d66;margin:6px 0 0}.feedback.preview{border-color:var(--gold);background:#efe9d8}.forecast{font-size:11px;display:block;color:#8c6829;margin-top:6px}.controls{display:flex;gap:8px;margin:12px 0 20px}.controls button{font-size:11px;padding:0 14px}.primary{background:var(--ink);border-color:var(--ink);color:#fffbea;padding:10px 18px}.controls .primary{margin-left:auto}footer{display:flex;gap:20px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:30px;padding:22px 0;color:#8a9384;font-size:10px}dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;max-width:450px;width:calc(100% - 40px);border:1px solid #bac7ae;background:#f7f6ed;border-radius:10px;padding:28px;box-shadow:0 0 0 100vmax #12281ec9;color:var(--ink)}dialog h2{font-family:"Noto Serif SC",serif}dialog p{font-size:13px;line-height:1.9}dialog button{width:100%}@media(max-width:760px){main{padding:0 16px}header{padding:17px 0;gap:8px}.brand{font-size:21px}.brand span{font-size:9px;margin-left:9px}.edition{display:none}header .quiet{margin-left:auto}.intro{padding:20px 0 15px}.intro h1{font-size:25px;letter-spacing:2px}.intro>p:last-child{font-size:10px}.game{display:flex;flex-direction:column;gap:12px;padding-top:12px}.chapter>.eyebrow,.legend,.objective>.eyebrow,.objective h2{display:none}.chapter nav{display:flex;margin:0 0 10px;gap:5px}.level{padding:10px 6px;gap:6px;min-width:0;border:1px solid var(--line);border-radius:4px}.level>span{font-size:19px}.level strong{font-size:11px}.level small{font-size:8px}.level>b{display:none}.objective{padding:0 3px}.objective p{font-size:10px;margin:4px 0;line-height:1.7}.play{max-width:560px;align-self:center}.board-head{font-size:10px;margin-bottom:10px}.board{gap:3px;padding:5px}.piece{font-size:19px;width:48%}.tools{margin:12px 0 10px;gap:6px}.tools b{margin-right:4px}.feedback{min-height:82px;padding:10px 12px}.controls button{padding:0 11px}footer{flex-wrap:wrap;gap:8px;margin-top:14px;padding:16px 0}footer>span:first-child{width:100%}.intent{font-size:12px;right:3px}.switch{font-size:30px}.ghost{top:12%;right:12%;bottom:12%;left:12%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
