@import url('/css/tokens.css');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.skip{position:absolute;left:1rem;top:-5rem;background:var(--ink);color:var(--bg);padding:1rem;z-index:50}.skip:focus{top:1rem}.game-page{max-width:1540px;margin:auto}.game-header{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 clamp(20px,5vw,80px);gap:20px}.back{font:700 12px var(--mono);display:flex;align-items:center;gap:12px;white-space:nowrap}.back span:first-child{font-size:22px}.back:hover{color:var(--accent)}.game-brand{margin:auto;font:900 13px var(--mono);letter-spacing:-.03em;white-space:nowrap}.game-brand i{font-style:normal;color:var(--accent);font-size:22px;vertical-align:middle}.header-tools{display:flex;gap:12px;align-items:center}.mini-control{display:flex}.mini-control button,.theme-toggle{background:transparent;color:var(--muted-strong);border:1px solid var(--line);font:700 11px var(--mono);padding:9px}.mini-control button+button{border-left:0}.mini-control button.is-active{background:var(--ink);color:var(--bg)}.theme-toggle{min-width:85px}.theme-toggle:hover{border-color:var(--ink)}main{padding:52px clamp(20px,5vw,80px) 75px}.intro-line{display:flex;justify-content:space-between}.micro-label{font:700 11px var(--mono);letter-spacing:.14em;color:var(--accent)}.version{color:var(--muted)}h1{font-size:clamp(40px,5.2vw,72px);letter-spacing:-.065em;line-height:1.05;margin:23px 0 9px}p.lead{font-size:18px;line-height:1.45;color:var(--muted-strong);margin:0 0 33px}.machine{border:1px solid var(--ink);box-shadow:12px 12px 0 var(--line);background:var(--surface)}.machine-top,.machine-bottom{height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 18px;font:700 11px var(--mono);letter-spacing:.06em}.machine-top{border-bottom:1px solid var(--line)}.machine-bottom{border-top:1px solid var(--line);color:var(--muted-strong)}.status{display:flex;gap:9px;align-items:center;white-space:nowrap}.status-lamp{width:8px;height:8px;background:#78d15b;border-radius:50%;box-shadow:0 0 0 3px #78d15b33}.hud{display:flex;align-items:center;gap:20px}.hud strong{color:var(--ink)}.hud button{color:var(--ink);background:transparent;border:1px solid var(--line);padding:7px 10px;font:700 10px var(--mono)}.hud button:hover{background:var(--ink);color:var(--bg)}.canvas-wrap{position:relative;background:#182337;overflow:hidden;aspect-ratio:16/9}canvas{display:block;width:100%;height:100%;object-fit:contain}.game-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;padding:18px;background:#0a1426a8;z-index:5}.game-overlay[hidden]{display:none}.overlay-card{width:min(100%,510px);background:#f2f0e7;color:#1b2631;border:3px solid #1b2631;box-shadow:10px 10px 0 #d7fa5b;padding:clamp(20px,3vw,38px)}.overlay-kicker{font:800 10px var(--mono);letter-spacing:.14em;color:#667362}.overlay-card h2{font-size:clamp(27px,3.2vw,43px);letter-spacing:-.05em;line-height:1.06;margin:18px 0}.overlay-card p{font-size:16px;line-height:1.5;margin:0 0 20px;color:#3d4d50}.overlay-actions{display:flex;gap:10px;flex-wrap:wrap}.overlay-actions button{border:2px solid #1b2631;background:#d7fa5b;color:#1b2631;padding:13px 16px;font-weight:850;font-size:13px}.overlay-actions button.secondary{background:transparent}.overlay-actions button:hover{transform:translateY(-2px);box-shadow:3px 3px 0 #1b2631}.overlay-card .overlay-foot{font:700 11px/1.5 var(--mono);color:#62726a;margin:19px 0 0}.toast{position:absolute;left:50%;top:14%;transform:translateX(-50%);z-index:4;padding:9px 14px;background:#17212bea;color:#d7fa5b;font:700 12px var(--mono);opacity:0;pointer-events:none;transition:opacity .2s;text-align:center;max-width:90%}.toast.show{opacity:1}.under-game{display:flex;justify-content:space-between;gap:30px;margin-top:34px}.instructions p{font-size:14px;color:var(--muted-strong);line-height:1.5;max-width:600px}.legend{display:flex;gap:15px;align-items:flex-start;flex-wrap:wrap}.legend>span{display:flex;align-items:center;gap:4px;font:700 11px var(--mono);color:var(--muted-strong)}.legend img{object-fit:contain;background:#243647;border-radius:4px}footer{padding:26px clamp(20px,5vw,80px);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font:700 10px var(--mono);letter-spacing:.07em;color:var(--muted)}footer a{color:var(--ink)}
@media(max-width:850px){.game-brand span{display:none}.hud{gap:9px}.machine-top{height:auto;min-height:52px;flex-wrap:wrap;padding:8px 12px}.under-game{display:block}.legend{margin-top:20px}}@media(max-width:600px){.game-header{height:70px;padding:0 15px;gap:8px}.back span:last-child{display:none}.game-brand{font-size:10px}.game-brand i{font-size:15px}.header-tools{gap:5px}.mini-control button{padding:7px 5px}.theme-toggle{min-width:40px;padding:7px 4px}.theme-toggle span{display:none}main{padding:34px 14px 60px}.version{display:none}h1{font-size:42px}.lead{font-size:15px!important}.machine{box-shadow:5px 5px 0 var(--line)}.machine-top,.machine-bottom{font-size:9px}.hud{width:100%;justify-content:space-between}.hud button{padding:5px}.canvas-wrap{aspect-ratio:4/5}canvas{height:100%;object-fit:cover}.overlay-card{padding:18px;box-shadow:5px 5px 0 #d7fa5b}.overlay-card h2{font-size:27px;margin:10px 0}.overlay-card p{font-size:13px;margin-bottom:13px}.overlay-actions button{font-size:11px;padding:10px}.overlay-foot{font-size:9px!important}.machine-bottom{padding:0 9px}.machine-bottom #route-label{display:none}footer{padding:22px 14px}}
.audio-toggle{min-width:34px;height:34px;padding:0 6px;background:transparent;border:1px solid var(--line);color:var(--ink);font:900 12px var(--mono);position:relative}.audio-toggle:hover{border-color:var(--ink)}.audio-toggle.is-muted{color:var(--muted);opacity:.65}.audio-toggle.is-muted::after{content:"";position:absolute;left:3px;right:3px;top:50%;border-top:2px solid currentColor;transform:rotate(-35deg)}
@media(max-width:600px){.game-brand{display:none}.header-tools{margin-left:auto}.audio-toggle{min-width:29px;height:29px;padding:0 3px;font-size:10px}}

#game-canvas{touch-action:none;user-select:none;-webkit-user-select:none}.overlay-kicker[hidden],.overlay-card p[hidden]{display:none}

