:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#263e39;background:#f7f6f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.app{max-width:940px;margin:auto;padding:32px 28px}header{display:flex;align-items:center;justify-content:space-between}.brand{color:inherit;text-decoration:none;font-size:25px;font-weight:800;letter-spacing:.1em}.brand span{display:block;font-size:9px;letter-spacing:.19em;margin-top:5px}.edition{font-size:11px;color:#78847d;letter-spacing:.09em}.intro{text-align:center;margin:50px 0 30px}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:700;color:#528276;margin:0 0 9px}h1{font-size:clamp(30px,5vw,44px);line-height:1.5;letter-spacing:.08em;margin:12px 0} .intro>p:last-child{font-size:13px;line-height:1.9;color:#77817c}.mobile-break{display:none}.game{max-width:620px;margin:auto;background:#fff;border:1px solid #e4e8e0;border-radius:24px;padding:26px 30px;box-shadow:0 12px 40px #253e3906}.game-heading{display:flex;justify-content:space-between;align-items:center}h2{font-size:20px;margin:0}.counter{text-align:right}.counter strong{font-size:29px;font-weight:600}.counter span{font-size:14px;color:#8a948f}.counter small{display:block;font-size:10px;color:#78847d}.progress{height:3px;background:#edf0ea;margin-top:20px;border-radius:4px;overflow:hidden}#progress-fill{height:100%;background:#508772;transition:width .2s}.board-wrap{max-width:440px;margin:0 auto}#board{display:block;width:100%;height:auto;touch-action:none;user-select:none;-webkit-user-select:none}.edge{stroke:#d6dfd8;stroke-width:6;stroke-linecap:round}.edge.used{stroke:#518975}.node{cursor:pointer;outline:none}.node .dot{fill:#fff;stroke:#647d71;stroke-width:3;transition:fill .15s}.node.visited .dot{fill:#518975;stroke:#518975}.node.current .dot{fill:#e8b164;stroke:#bc8743}.node .halo{fill:none;stroke:transparent;stroke-width:2}.node.current .halo{stroke:#e8b164}.node:focus-visible .halo{stroke:#263e39;stroke-dasharray:3 3}.node text{fill:#405b4e;font-size:11px;font-weight:700;pointer-events:none}.node.visited text{fill:white}.node.current text{fill:#473b28}.legend{display:flex;gap:16px;justify-content:center;font-size:10px;color:#75837b;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:6px}.legend i{display:inline-block;width:16px;height:3px;border-radius:4px}.unused-key{background:#d6dfd8}.used-key{background:#518975}.legend .current-key{background:#e8b164;width:8px;height:8px;border-radius:50%}#message{min-height:62px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;line-height:1.7;padding:14px 0;color:#66796d}#message.success{color:#32765a;font-weight:700}#message.warning{color:#976331}.actions{display:flex;gap:12px}button{font:inherit;font-size:13px;min-height:48px;border-radius:11px;cursor:pointer;font-weight:600;flex:1;transition:background .15s}button:focus-visible{outline:3px solid #d4a05a;outline-offset:4px}.secondary{background:white;border:1px solid #dce3db;color:#52675a}.secondary:hover{background:#f4f6f1}.primary{background:#365e4e;border:1px solid #365e4e;color:#fff}.primary:hover:enabled{background:#284a3c}.primary:disabled{background:#eef1eb;border-color:#eef1eb;color:#a2aea3;cursor:default}.instructions{display:flex;max-width:740px;gap:28px;margin:32px auto}.instructions>div{display:flex;gap:12px;flex:1}.instructions>div>span{font-size:11px;color:#8ba38f;margin-top:4px}.instructions p{font-size:11px;line-height:1.9;color:#899188;margin:0}.instructions strong{display:block;font-size:12px;color:#536858;margin-bottom:5px}footer{text-align:center;color:#8a958b;font-size:11px;margin:45px 0 10px}footer span{display:block;font-size:8px;letter-spacing:.15em;margin-top:10px}@media(max-width:560px){.app{padding:23px 16px}.edition{font-size:9px;max-width:110px;text-align:right;line-height:1.7}.intro{margin:32px 0 22px}.mobile-break{display:block}.game{padding:22px 18px;border-radius:20px}.legend{gap:10px;font-size:9px}.instructions{flex-direction:column;gap:16px;margin:26px 12px}.instructions strong{margin-bottom:0}.instructions>div>span{margin-top:2px}footer{margin-top:30px}}
