:root{--bg: #0e1410;--panel: #18211b;--line: #2a3a30;--ink: #eef7f1;--dim: #93b3a2;--accent: #5a9c6a;--accent-d: #0a2113;--tile: #213029;--tile2: #2a3d33;--sel: #234a32;--bad: #5a2230;--gold: #d8b65a}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(900px 560px at 50% -8%,#142019,var(--bg));color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}#app{width:100%;max-width:560px;padding:12px 12px 30px}header{text-align:center;margin-bottom:6px}h1{margin:0;font-size:28px;letter-spacing:7px;font-weight:800;color:var(--accent)}.sub{margin:3px 0 0;color:var(--dim);font-size:13px}.bar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;align-items:center;margin:10px 0}.seg{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:999px;overflow:hidden}.seg button{background:none;border:none;color:var(--dim);padding:6px 13px;font:600 13px system-ui;cursor:pointer}.seg button.active{background:var(--accent);color:var(--accent-d)}.btn{background:var(--panel);border:1px solid var(--line);color:var(--ink);padding:7px 14px;border-radius:999px;font:700 13px system-ui;cursor:pointer}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-d);border-color:var(--accent)}.scoreboard{display:flex;gap:10px;justify-content:center;margin:8px 0;flex-wrap:wrap}.readout{background:#08120c;border:1px solid var(--line);border-radius:8px;padding:5px 14px;font:800 18px ui-monospace,monospace;color:var(--accent);min-width:84px;text-align:center}.readout span{color:var(--dim);font-size:11px;display:block;font-weight:600;letter-spacing:.5px}.phase-title{text-align:center;font-weight:700;margin:10px 0 4px;color:var(--ink)}.phase-help{text-align:center;color:var(--dim);font-size:12.5px;margin:0 4px 8px;line-height:1.45}.section{margin:12px 0}.section h3{font-size:12px;letter-spacing:1px;color:var(--dim);margin:0 0 6px;text-transform:uppercase}.tray{display:flex;gap:8px;flex-wrap:wrap}.tile{background:var(--tile);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:96px;cursor:grab;position:relative;transition:transform .08s,border-color .12s,background .12s}.tile:active{cursor:grabbing}.tile.dragging{opacity:.5}.tile.over{border-color:var(--accent);background:var(--tile2)}.tile .glyph{font-size:18px;color:var(--accent)}.tile .rname{font-weight:700;font-size:14px;margin-top:2px}.tile .rlook{font-size:11px;color:var(--dim);line-height:1.3;margin-top:2px}.tile.used{opacity:.35;pointer-events:none}.route{display:flex;flex-direction:column;gap:6px}.locus{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;position:relative}.locus.over{border-color:var(--accent);background:var(--tile2)}.locus.empty{border-style:dashed;color:var(--dim);justify-content:center;min-height:52px}.locus .step{width:24px;height:24px;border-radius:50%;background:var(--accent-d);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;flex:0 0 auto}.locus .lglyph{font-size:18px;color:var(--accent)}.locus .lbody{flex:1}.locus .lname{font-weight:700;font-size:14px}.locus .llook{font-size:11px;color:var(--dim)}.locus .litem{font-weight:700;font-size:13px;padding:3px 9px;border-radius:999px;background:var(--sel);color:var(--ink)}.locus .litem.placeable{cursor:pointer;background:#13241a;border:1px dashed var(--line);color:var(--dim)}.locus .remove{background:none;border:none;color:var(--dim);cursor:pointer;font-size:16px;line-height:1}.locus .remove:hover{color:var(--bad-ink, #e88)}.items{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-weight:700;font-size:13px;cursor:pointer;background:var(--tile)}.chip:hover{border-color:var(--accent)}.chip.sel{background:var(--accent);color:var(--accent-d);border-color:var(--accent)}.chip.done{opacity:.35;pointer-events:none}.chip .kind{font-size:9px;display:block;color:var(--dim);letter-spacing:.5px}.chip.sel .kind{color:var(--accent-d)}.chip[data-kind=object]{border-left:4px solid #6aa6d8}.chip[data-kind=creature]{border-left:4px solid #c98ad8}.chip[data-kind=food]{border-left:4px solid #d8a85a}.chip[data-kind=name]{border-left:4px solid #5ad8a8}.recall{display:flex;flex-direction:column;gap:6px}.rslot{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px}.rslot.sel{border-color:var(--accent)}.rslot .filled{font-weight:700;padding:3px 10px;border-radius:999px;background:var(--sel)}.rslot .blank{color:var(--dim);font-style:italic}.rslot.correct{border-color:var(--accent)}.rslot.wrong{border-color:var(--bad)}.rslot .mark{margin-left:auto;font-weight:800}.rslot.correct .mark{color:var(--accent)}.rslot.wrong .mark{color:#e07b8e}.reviews{display:flex;flex-direction:column;gap:6px}.rev{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px}.rev .meter{flex:1;height:8px;background:#08120c;border-radius:999px;overflow:hidden}.rev .fill{height:100%;background:linear-gradient(90deg,var(--bad),var(--gold),var(--accent))}.rev .due{color:var(--dim);font-size:12px;min-width:96px;text-align:right}.rev.duenow{border-color:var(--gold)}.overlay{position:fixed;inset:0;background:#060e09d1;display:flex;align-items:center;justify-content:center;z-index:20}.overlay.hidden{display:none}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 24px;text-align:center;max-width:360px}.card h2{margin:0 0 6px;color:var(--accent)}.card p{color:var(--dim);margin:6px 0;line-height:1.5}.card .big{font:800 32px ui-monospace,monospace;color:var(--gold);margin:8px 0}.toast{text-align:center;color:var(--gold);font-size:13px;min-height:18px;margin:4px 0}.footer{text-align:center;color:var(--dim);font-size:11px;margin-top:14px;line-height:1.5}
