:root{--bg:#f3f0e8;--paper:#fffdf7;--ink:#18232f;--muted:#66717c;--line:#d9d3c5;--teal:#0f766e;--orange:#c25f18;--red:#b42318;--blue:#265d97}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 15% 10%,#fff 0,#f3f0e8 42%,#e9e4d8 100%);color:var(--ink);font:16px/1.5 "Microsoft YaHei",system-ui,sans-serif}.wrap{max-width:1080px;margin:auto;padding:24px}.top{display:flex;justify-content:space-between;gap:20px;align-items:end}.eyebrow{color:var(--orange);letter-spacing:.16em;font:700 12px ui-monospace,monospace}h1{margin:.2rem 0;font-size:clamp(30px,5vw,54px)}.sub{color:var(--muted);max-width:700px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.stat,.panel{background:rgba(255,253,247,.94);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px #42331210}.stat{padding:10px 14px}.stat b{display:block;font-size:22px}.play{display:grid;grid-template-columns:310px 1fr;gap:16px}.panel{padding:18px}.families{display:grid;gap:9px}.families button,.actions button,.cell{border:1px solid var(--line);background:#fff;border-radius:10px;color:var(--ink);cursor:pointer}.families button{padding:12px;text-align:left}.families button:hover,.actions button:hover{border-color:var(--teal)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:470px;margin:0 auto}.cell{aspect-ratio:1;font-size:23px;font-weight:800;background:linear-gradient(145deg,#fbfaf5,#e5dfd2)}.cell.revealed{background:#fff}.cell.hazard{color:#fff;background:var(--red)}.cell.safe{color:var(--blue)}.actions{display:flex;gap:8px;justify-content:center;margin-top:14px;flex-wrap:wrap}.actions button{padding:10px 16px;font-weight:700}.actions .bank{background:var(--teal);color:white}.actions .auto{background:#fff4e9;color:#8d430d}.cause{border-left:4px solid var(--orange);padding:10px 12px;background:#fff7ed;margin-top:14px;border-radius:8px}.trace{max-height:190px;overflow:auto;font:12px/1.45 ui-monospace,monospace;color:var(--muted)}a{color:#1d4ed8}@media(max-width:760px){.play{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.top{align-items:start;flex-direction:column}}

