:root{--bg: #070b10;--bg-2: #0e151c;--panel: #141c24;--panel-2: #1b2630;--ink: #f3efe6;--muted: #8b93a0;--faint: #5b6470;--line: #c4a35a;--board: #0f3b32;--board-ink: #f4efe4;--accent: #e23d28;--good: #3fa66b;--close: #d4a017;--bad: #2a323c;--tile: #1c252f;--stroke: rgba(243, 239, 230, .08);--shadow: 0 12px 40px rgba(0, 0, 0, .35);--radius: 14px;--font: "IBM Plex Sans JP", "Hiragino Sans", "Noto Sans JP", sans-serif;--display: "Shippori Mincho", "Hiragino Mincho ProN", serif}[data-theme=day]{--bg: #efe6d4;--bg-2: #e7dcc6;--panel: #fffaf0;--panel-2: #f7f0e2;--ink: #1a1f24;--muted: #5c6570;--faint: #8a8274;--line: #9a7420;--board: #0f3b32;--board-ink: #f4efe4;--accent: #c73e1d;--good: #2e8a54;--close: #c49212;--bad: #d9d1c2;--tile: #ece4d4;--stroke: rgba(26, 31, 36, .08);--shadow: 0 12px 32px rgba(60, 40, 10, .12)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45}body{background-image:radial-gradient(1200px 500px at 50% -10%,rgba(196,163,90,.08),transparent 50%),linear-gradient(180deg,var(--bg-2),var(--bg) 40%)}button,input{font-family:inherit}#app{min-height:100dvh;padding-bottom:48px}.wrap{max-width:520px;margin:0 auto;padding:0 14px}.header{position:sticky;top:0;z-index:5;margin:0 0 16px;padding:14px 0 12px;background:var(--board);color:var(--board-ink);box-shadow:var(--shadow)}.header:after{content:"";display:block;height:4px;margin:12px 0 -12px;background:repeating-linear-gradient(90deg,var(--accent) 0 18px,var(--line) 18px 28px,var(--board-ink) 28px 34px,var(--board) 34px 48px)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.brand{display:flex;align-items:baseline;gap:0;text-decoration:none;color:inherit}.brand-eki{font-family:var(--display);font-weight:700;font-size:28px;letter-spacing:0;margin-right:1px}.brand-dle{font-weight:700;font-size:22px;letter-spacing:.02em;opacity:.92;margin-left:-6px}.puzzle-no{margin-left:8px;font-size:12px;opacity:.7;font-variant-numeric:tabular-nums}.icon-row{display:flex;gap:4px}.icon-btn{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--board-ink);cursor:pointer;font-size:16px;display:grid;place-items:center}.icon-btn svg{display:block}.icon-btn:hover,.icon-btn[aria-pressed=true]{background:#f4efe41f}.tabs,.pills{display:flex;gap:5px;background:#0000002e;padding:4px;border-radius:999px}.header .tabs{margin-top:10px;width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.play-row{display:flex;margin-top:8px}.tab,.pill{border:0;background:transparent;color:inherit;opacity:.68;padding:7px 12px;border-radius:999px;cursor:pointer;font-size:12px;font-weight:560;white-space:nowrap;transition:background .12s ease,opacity .12s ease,box-shadow .12s ease}.tab:hover,.pill:hover{opacity:.9}.tab[aria-selected=true],.pill[aria-selected=true]{background:var(--board-ink);color:var(--board);opacity:1;box-shadow:0 1px #0000001f}.tagline{margin:0 0 14px;color:var(--muted);font-size:14px}.search{position:relative;margin-bottom:12px}.search input{width:100%;padding:14px 84px 14px 14px;border:1px solid var(--stroke);border-radius:12px;background:var(--panel);color:var(--ink);font-size:16px}.search input:focus{outline:2px solid var(--line);border-color:transparent}.search .go{position:absolute;right:6px;top:6px;bottom:6px;padding:0 14px;border:0;border-radius:10px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}.search input:disabled,.search .go:disabled{opacity:.45;cursor:not-allowed}.suggest{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--panel);border:1px solid var(--stroke);border-radius:12px;box-shadow:var(--shadow);z-index:6;overflow:hidden}.suggest button{display:flex;width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:10px 12px;cursor:pointer;gap:10px;align-items:baseline}.suggest button[aria-selected=true],.suggest button:hover{background:var(--panel-2)}.suggest .name{font-weight:700}.suggest .meta{color:var(--muted);font-size:12px}.alert{color:var(--accent);font-size:13px;min-height:1.2em;margin:0 0 6px}.remaining{color:var(--muted);font-size:13px;margin:0 0 10px;font-variant-numeric:tabular-nums}.guess-list{display:flex;flex-direction:column;gap:8px}.ticket{background:var(--panel);border-radius:var(--radius);padding:12px 12px 12px 14px;border:1px solid var(--stroke);position:relative;overflow:hidden;animation:pop .35s ease;color:var(--ink)}[data-theme=day] .ticket{background:#fffef8;box-shadow:0 1px 2px #281e0a14}.ticket:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.ticket.pref-same:before{background:var(--good)}.ticket.pref-near:before{background:var(--close)}.ticket.pref-far:before{background:var(--faint)}.ticket.is-win:before{background:var(--good)}.ticket-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.st-name{font-weight:700;font-size:18px}.st-roma{color:var(--muted);font-size:12px;margin-left:6px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{font-size:11px;padding:3px 8px;border-radius:999px;background:var(--panel-2);color:var(--muted)}.chip.good{background:color-mix(in srgb,var(--good) 22%,var(--panel));color:var(--good)}.chip.close{background:color-mix(in srgb,var(--close) 22%,var(--panel));color:var(--close)}.chip.line{position:relative;padding-left:11px}.chip.line:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:4px;background:var(--lc, var(--muted))}.chip.plate{font-family:ui-monospace,IBM Plex Sans JP,monospace;font-weight:800;font-size:15px;letter-spacing:.04em;padding:6px 11px;color:var(--ink);background:var(--panel-2)}.ticket-slim{padding:10px 12px}.ticket-slim .metrics{display:none}.city-strip-one{display:block;text-align:center;padding-top:4px}.dossier{margin:12px 0 4px;text-align:left}.dossier .chips{justify-content:center}.dossier-meta{color:var(--muted);font-size:13px;margin:8px 0 0;text-align:center}.dossier-links{display:flex;gap:16px;justify-content:center;margin-top:10px}.dossier-links a{color:var(--line);font-weight:600;font-size:13px}.scope-panel{margin:0 0 14px;display:flex;flex-direction:column;gap:8px}.scope-toggle{display:flex;width:100%;align-items:center;gap:8px;border:1px solid var(--stroke);background:var(--panel);color:var(--ink);border-radius:12px;padding:8px 12px;cursor:pointer;font:inherit;text-align:left}.scope-toggle-k{flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--muted)}.scope-toggle-v{flex:1;min-width:0;font-weight:700}.scope-toggle-chev{color:var(--muted)}.scope-toggle[aria-expanded=true]{border-color:color-mix(in srgb,var(--line) 55%,var(--stroke))}.scope-sheet{padding:8px 8px 6px;border:1px solid var(--stroke);border-radius:14px;background:color-mix(in srgb,var(--panel) 88%,transparent);display:flex;flex-direction:column;gap:8px}.scope-sheet[hidden],.scope-panel[hidden],#eki-panel[hidden],#moji-panel[hidden]{display:none!important}.scope-row{display:flex;align-items:center;gap:8px;min-width:0}.scope-label{flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--muted);min-width:3.2em}.scope-chips{display:flex;gap:6px;flex:1;min-width:0;flex-wrap:wrap;padding-bottom:2px}.scope-chips .pill{flex:0 0 auto;background:#0000001f;opacity:.85;padding:6px 11px;border:1px solid transparent}.scope-chips .pill[aria-selected=true]{background:var(--accent);color:#fff;opacity:1;border-color:color-mix(in srgb,var(--accent) 70%,#000);box-shadow:0 1px 4px #0000002e}.scope-empty{margin:0;font-size:13px;color:var(--muted)}.ribbon{display:flex;height:8px;border-radius:99px;overflow:hidden;margin:0 auto 10px;max-width:280px}.rib{flex:1;min-width:8px;height:100%}.city-strip{list-style:none;display:flex;flex-wrap:wrap;gap:4px 10px;padding:8px 0 0;margin:0;justify-content:center;font-size:11px;color:var(--muted)}.city-strip li{display:flex;align-items:center;gap:3px}.city-strip .is-guess{color:var(--accent);font-weight:700}.city-strip .is-target{color:var(--good);font-weight:700}.wrap-toggle{flex-wrap:wrap;justify-content:flex-end;max-width:280px}.metrics{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;margin-top:10px}.km{font-variant-numeric:tabular-nums;font-weight:700;font-size:20px}.arrow{width:40px;height:40px;display:grid;place-items:center;transform-origin:center}.arrow-svg{width:26px;height:26px;fill:var(--line);filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.prox{width:92px}.prox-bar{height:8px;border-radius:99px;background:var(--bad);overflow:hidden}.prox-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--close),var(--good))}.prox-lab{font-size:11px;color:var(--muted);text-align:right;margin-top:2px}#eki-panel:not([hidden]){display:flex;flex-direction:column}.clue-card{margin:0 0 12px;padding:12px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--stroke)}.clue-card h3{margin:0 0 8px;font-size:13px;color:var(--muted);font-weight:700}.map-layout .game-wrap,.map-layout .header>.wrap{max-width:1100px}.map-card{min-width:0;margin-bottom:20px;border:1px solid color-mix(in srgb,var(--line) 32%,var(--panel));border-radius:18px;background:var(--panel);overflow:hidden;box-shadow:var(--shadow)}.map-heading{padding:18px 20px 16px}.map-eyebrow{margin:0 0 4px;color:var(--line);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.map-heading h2{margin:0;font-family:var(--display);font-size:27px;line-height:1.25}#map-description{max-width:58ch;margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.map-stage{position:relative;isolation:isolate;z-index:0;height:440px;border-block:1px solid var(--stroke)}#map{width:100%;height:100%;background:#cce4e8;font-family:var(--font)}.map-compass,.map-zoom,.map-unavailable{position:absolute;z-index:1000}.map-compass{top:16px;left:16px;display:grid;justify-items:center;width:34px;padding:7px 0;border-radius:20px;background:#fffdf6e8;color:#294439;box-shadow:0 2px 10px #152b3020;font-size:25px;line-height:1;pointer-events:none}.map-compass span{font-size:10px;font-weight:800;margin-bottom:4px}.map-zoom:not([hidden]){display:grid;top:16px;right:16px;border-radius:10px;overflow:hidden;box-shadow:0 2px 12px #152b3030}.map-zoom button{width:44px;height:44px;border:0;background:#fffdf8;color:#1b3b32;font-size:25px;cursor:pointer}.map-zoom button+button{border-top:1px solid #dce2d9}.map-zoom button:hover{background:#eaf0e7}.map-unavailable{display:none;bottom:25px;left:12px;right:12px;margin:0;padding:10px 12px;border-radius:8px;background:#fffaf0;color:#6d4314;font-size:12px;box-shadow:0 2px 12px #152b3020}#map[data-map-unavailable=true]~.map-unavailable{display:block}.map-loading{display:none;position:absolute;z-index:1000;top:16px;left:50%;transform:translate(-50%);margin:0;padding:7px 12px;border-radius:8px;background:#fffdf7ee;color:#294439;font-size:12px;white-space:nowrap;pointer-events:none}#map[aria-busy=true]:not([data-map-unavailable=true])~.map-loading{display:block}.map-caption{padding:12px 16px}.map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;color:var(--muted);font-size:11px}.map-legend:empty{display:none}.map-legend>span{display:inline-flex;align-items:center;gap:6px}.map-legend b{display:inline-grid;place-items:center;width:16px;height:16px;font-size:12px}.legend-guess{border-radius:50%;color:#241c0e;background:#c4a35a}.legend-latest{color:#ee614c}.legend-answer{color:var(--line)}.map-actions:not([hidden]){display:flex;gap:8px;margin-top:10px}.map-legend:empty+.map-actions{margin-top:0}.map-action{min-height:40px;padding:8px 14px;border:1px solid var(--stroke);border-radius:8px;background:var(--panel-2);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.map-action:hover:not(:disabled){border-color:var(--line)}.map-action:disabled{color:var(--muted);opacity:.5;cursor:default}.station-map-pin{border:0;background:transparent;filter:drop-shadow(0 3px 4px #22332e55)}.station-map-pin span{display:grid;place-items:center;width:34px;height:34px;border:3px solid #fffaf0;border-radius:50%;background:#c4a35a;color:#241c0e;font-size:14px;font-weight:800}.station-map-pin:after{content:"";position:absolute;left:11px;top:30px;border:6px solid transparent;border-bottom:0;border-top:10px solid #fffaf0}.station-map-pin.latest span,.station-map-pin.mystery span{background:#d8432d;color:#fff}.station-map-pin.answer span{background:#f0ca4f;color:#322507;font-size:21px}.leaflet-tooltip.station-map-tooltip{border:1px solid #ddd8ca;border-radius:7px;padding:6px 10px;background:#fffdf7;color:#213c32;font-family:var(--font);font-size:12px;font-weight:700;box-shadow:0 2px 8px #20392a20}#map .leaflet-control-attribution{font-size:10px;background:#fffdf7e6;color:#475c50}#map .leaflet-control-attribution a{color:#315c51}.guess-column{min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.learning-panel:not([hidden]){display:flex;gap:16px;align-items:start;justify-content:space-between;padding:16px;margin-bottom:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.learning-panel strong{color:var(--line)}.learning-panel p{margin:8px 0 0;line-height:1.5;font-size:14px}.learning-panel .btn{flex-shrink:0}.starter-panel{margin-bottom:16px}.starter-panel p,.clue-coach p{margin:8px 0;color:var(--muted);font-size:13px;line-height:1.55}.text-action{color:var(--line);background:none;border:0;padding:8px 0;min-height:44px;cursor:pointer;text-align:left;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px}.station-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.station-choice{display:grid;gap:4px;text-align:left;min-height:58px;padding:10px;background:var(--panel);border:1px solid var(--stroke);border-radius:10px;color:var(--ink);cursor:pointer}.station-choice small{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.station-choice:disabled{opacity:.4;cursor:default}.station-choice:hover:not(:disabled),.station-choice:focus-visible{border-color:var(--line)}.clue-coach{padding:14px;margin:12px 0;border-left:3px solid var(--line);background:var(--panel);border-radius:8px}.clue-coach strong{font-size:14px}.clue-coach summary{cursor:pointer;color:var(--line);font-size:13px;min-height:36px;padding-top:8px}#latest-ticket:not(:empty){margin-bottom:10px}.guess-number{display:inline-grid;place-items:center;min-width:44px;min-height:44px;margin-right:8px;color:var(--ink);background:var(--panel-2);border:1px solid var(--stroke);border-radius:50%;cursor:pointer;font-weight:700}.alert.selection-note{color:var(--muted)}.ticket.is-selected{outline:2px solid var(--line);outline-offset:-2px}.ticket .clue-sentence{font-size:14px;line-height:1.6;margin:12px 0 0}.ticket .distance-change{color:var(--line);font-size:12px;margin:8px 0 0}.station-map-pin.is-selected{filter:drop-shadow(0 0 5px #e7b95c);outline:3px solid #fff;outline-offset:3px;border-radius:16px}.station-map-pin.candidate span{background:#315b54}.answer-recap{margin-top:20px;padding-top:12px;border-top:1px solid var(--stroke)}.answer-recap p{line-height:1.6}.map-expand{display:none}.suggest{max-height:min(280px,42dvh);overflow-y:auto;overscroll-behavior:contain}.suggest button{min-height:48px;flex-wrap:wrap;gap:3px 10px}.suggest .meta{overflow-wrap:anywhere}.map-unavailable .btn{display:block;margin:8px auto 0}button:focus-visible,summary:focus-visible{outline:2px solid var(--line);outline-offset:3px}@media(max-width:859px){.station-layout #eki-panel:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr)}.station-layout .guess-column{display:contents}.station-layout #guess-heading{order:1}.station-layout #guess-form{order:2}.station-layout #alert{order:3}.station-layout #remaining-eki{order:4}.station-layout #starter-panel{order:6}.station-layout #latest-ticket{order:5}.station-layout #clue-coach{order:7}.station-layout #map-card{order:8;margin-bottom:16px}.station-layout #tickets{order:9}.station-layout #city-strip{order:10}.station-layout .map-stage{height:180px}.station-layout.map-expanded .map-stage{height:min(560px,65dvh)}.station-layout .map-heading{padding:10px 14px}.station-layout .map-heading h2{font-size:18px}.station-layout #map-description,.station-layout .map-eyebrow{display:none}.station-layout .map-caption .map-expand{display:block;width:100%;margin-bottom:8px}.station-layout:not(.map-expanded) .map-legend,.station-layout:not(.map-expanded) #map-actions{display:none}.learning-panel:not([hidden]){display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;align-items:center}.learning-panel>div{display:contents}.learning-panel strong{grid-column:1;grid-row:1}.learning-panel .btn{grid-column:2;grid-row:1}.learning-panel p{grid-column:1 / -1;margin:0}.learning-panel .btn{min-height:44px}.guided-layout .tagline,.guided-layout .play-row{display:none}.guided-layout .puzzle-no{font-size:11px}.guided-layout:not(.map-expanded) .map-stage{height:280px}.guided-layout.has-station-guesses #map-card{order:6}.guided-layout.has-station-guesses #starter-panel{order:7}.guided-layout.has-station-guesses #clue-coach{order:8}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.guess-heading{margin:0 0 12px;font-size:16px;font-weight:600}.map-layout #result{max-width:650px;margin-inline:auto}@media(min-width:860px){.map-layout #eki-panel:not([hidden]){display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:24px;align-items:start}.map-stage{height:520px}.map-card{margin-bottom:0}.map-layout .guess-column{padding-top:20px}}@media(max-width:599px){.header .tabs{gap:2px;scrollbar-width:none}.header .tab{flex:1;padding:7px 6px;font-size:11px}.map-card{margin-bottom:16px}.map-eyebrow{display:none}.map-heading{padding:12px 14px}.map-heading h2{font-size:23px}#map-description{margin-top:5px;font-size:12px;line-height:1.5}.map-stage{height:300px}.map-caption{padding:10px 12px}.map-legend{gap:6px 10px;font-size:10px}.map-actions:not([hidden]){margin-top:8px}.map-action{min-height:44px;flex:1}}.result{margin-top:16px;padding:16px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--stroke);text-align:center}.result.won{border-color:color-mix(in srgb,var(--good) 50%,transparent)}.result h2{margin:0 0 4px;font-family:var(--display)}.result .answer-name{font-size:28px;font-weight:700}.actions{display:flex;gap:8px;justify-content:center;margin-top:12px;flex-wrap:wrap}.btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:600;background:var(--panel-2);color:var(--ink)}.btn.primary{background:var(--accent);color:#fff}.countdown{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;margin-top:8px}.board{display:grid;gap:6px;margin:8px 0 14px;justify-content:center}.kana-len{display:flex;align-items:center;gap:8px;margin:0 0 10px}.kana-len[hidden]{display:none!important}.row{display:grid;grid-template-columns:repeat(var(--moji-len, 5),52px);gap:6px}.tile{width:52px;height:52px;border-radius:8px;display:grid;place-items:center;font-size:22px;font-weight:700;background:var(--tile);border:2px solid var(--stroke);text-transform:none;position:relative}.tile.filled{border-color:var(--muted)}.tile.correct{background:var(--good);color:#fff;border-color:transparent}.tile.present{background:var(--close);color:#111;border-color:transparent}.tile.absent{background:var(--bad);color:var(--ink);border-color:transparent}[data-cb=true] .tile.correct:after,[data-cb=true] .tile.present:after{position:absolute;right:3px;bottom:0;font-size:10px;font-weight:800;line-height:1}[data-cb=true] .tile.correct:after{content:"✓"}[data-cb=true] .tile.present:after{content:"◇"}[data-cb=true] .ticket.pref-same .chip-pref:before,[data-cb=true] .ticket-slim .chip-pref.good:before{content:"＝ "}[data-cb=true] .ticket.pref-near .chip-pref:before,[data-cb=true] .ticket-slim .chip-pref.close:before{content:"≈ "}.kana-ime{width:100%;margin-bottom:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--stroke);background:var(--panel);color:var(--ink);font-size:16px}.keyboard{display:grid;gap:4px;margin-top:8px}.key-row{display:flex;justify-content:center;gap:3px}.key{min-width:28px;height:38px;border:0;border-radius:6px;background:var(--panel);color:var(--ink);cursor:pointer;font-size:14px;padding:0 4px}.key.wide{min-width:52px;font-size:11px;font-weight:700}.key.correct{background:var(--good);color:#fff}.key.present{background:var(--close);color:#111}.key.absent{background:var(--bad);color:var(--faint)}.key:disabled{opacity:.35}.modal-back{position:fixed;inset:0;background:#0000008c;z-index:20;display:grid;place-items:center;padding:20px}.modal{background:var(--panel);color:var(--ink);max-width:440px;width:100%;max-height:min(80dvh,640px);overflow:auto;border-radius:16px;padding:20px;box-shadow:var(--shadow)}.modal h2{margin:0 0 8px;font-family:var(--display)}.modal h3{margin:16px 0 6px;font-size:15px}body.modal-open{overflow:hidden}button:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--line);outline-offset:3px}.tutorial{max-width:480px;max-height:88dvh;padding:26px}.tutorial-top{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.tutorial-progress{display:flex;gap:5px;margin:12px 0 24px}.tutorial-progress span{height:3px;flex:1;background:var(--stroke);border-radius:4px}.tutorial-progress .complete{background:var(--line)}.tutorial h2{font-size:28px;line-height:1.2;margin-bottom:16px}.tutorial-route{display:flex;align-items:center;gap:12px;padding:28px 18px;margin:22px 0;background:var(--board);color:var(--board-ink);border-radius:12px;font-weight:700}.tutorial-track{flex:1;height:5px;background:var(--line);border-radius:3px;position:relative}.tutorial-track:before,.tutorial-track:after{content:"";position:absolute;top:-3px;width:11px;height:11px;border:3px solid var(--board-ink);background:var(--board);border-radius:50%}.tutorial-track:after{right:0}.tutorial-primary{width:100%;margin-top:12px}.tutorial .btn{min-height:44px}.tutorial .tutorial-skip{background:transparent;color:var(--muted);border-color:transparent}.tutorial-clue{padding:16px;margin:14px 0;background:var(--bg-2);border:1px solid var(--stroke);border-left:3px solid var(--good);border-radius:12px}.tutorial-guess-label{display:block;color:var(--muted);font-size:12px}.tutorial-clue>strong{font-size:20px}.tutorial-clue .chip.good{color:var(--ink)}.tutorial-metrics{display:flex;gap:24px;margin:16px 0}.tutorial-metrics>div{display:grid;gap:4px}.tutorial-metrics b{font-size:20px}.tutorial-metrics span{font-size:11px;color:var(--muted)}.tutorial-direction{display:flex;align-items:center;gap:6px}.tutorial-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tutorial-options .btn{flex:1;display:grid;gap:4px}.tutorial-options small{font-size:11px;font-weight:400;color:var(--muted)}.tutorial p.tutorial-feedback{margin-top:12px;color:var(--line)}.tutorial-actions{display:grid;gap:10px;margin-top:22px}.legacy-stats{margin-top:24px;font-size:13px}.legacy-stats summary{cursor:pointer;margin-bottom:10px;color:var(--muted)}@media(max-width:420px){.tutorial{padding:20px}.tutorial h2{font-size:25px}}.modal p{margin:0 0 10px;color:var(--muted);font-size:14px}.legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.swatch{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.swatch i{width:16px;height:16px;border-radius:4px;display:block}.swatch .g{background:var(--good)}.swatch .y{background:var(--close)}.swatch .x{background:var(--bad)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center;margin:12px 0}.stat-grid b{display:block;font-size:22px}.stat-grid span{font-size:11px;color:var(--muted)}.dist{display:grid;gap:4px}.dist-row{display:grid;grid-template-columns:16px 1fr 28px;gap:8px;align-items:center;font-size:12px}.dist-bar{height:14px;background:var(--good);border-radius:4px;min-width:8px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid var(--stroke)}.toggle{display:flex;gap:4px}.footer{margin-top:28px;color:var(--faint);font-size:11px;text-align:center}.boot,.error{min-height:100dvh;display:grid;place-items:center;text-align:center;padding:40px 16px}.boot .mark{font-family:var(--display);font-size:42px}#burst{pointer-events:none;position:fixed;inset:0;z-index:30;overflow:hidden}#burst span{position:absolute;left:50%;top:40%;animation:fly 1.1s ease-out forwards;font-size:22px}@keyframes pop{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}@keyframes fly{to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}@media(max-width:420px){.row{grid-template-columns:repeat(var(--moji-len, 5),46px)}.tile{width:46px;height:46px;font-size:20px}.key{min-width:26px;height:36px;font-size:13px}}
