:root{--bg:#1d1b2b;--panel:#fdf6e3;--ink:#2b2433;--muted:#6d6578;--accent:#7b4fd6;--ok:#2e8b57;--ko:#c0392b;--slot:#ece3cc;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#game{position:fixed;inset:0}#game canvas{touch-action:none;display:block}#hud{padding:max(6px, env(safe-area-inset-top)) 12px 6px;color:#fff;pointer-events:none;background:linear-gradient(#000a,#0000);justify-content:space-between;align-items:center;gap:12px;font-size:16px;font-weight:600;display:flex;position:fixed;top:0;left:0;right:0}#hud .pv{letter-spacing:2px;color:#ff6b81;font-size:20px}#toast{left:50%;bottom:max(16px, env(safe-area-inset-bottom));background:var(--panel);max-width:min(92vw,520px);color:var(--ink);text-align:center;border-radius:12px;padding:12px 16px;font-size:17px;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #0008}#overlay{padding:max(12px, env(safe-area-inset-top)) 12px 24px;background:#0009;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow:hidden auto}#overlay[hidden],#hud[hidden],#toast[hidden]{display:none}.panel{background:var(--panel);border-radius:16px;width:100%;max-width:560px;margin:auto 0;padding:16px;font-size:18px;line-height:1.4;box-shadow:0 10px 30px #000a}.panel h1,.panel h2{margin:0 0 8px;line-height:1.2}.panel h1{font-size:24px}.panel h2{font-size:20px}.kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:14px;font-weight:700}.muted{color:var(--muted);font-size:15px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}button,.btn{min-width:48px;min-height:48px;font:inherit;background:var(--accent);color:#fff;cursor:pointer;touch-action:manipulation;border:0;border-radius:12px;padding:10px 14px;font-size:17px}button.secondary{color:var(--ink);background:#e4dcc8}button.ghost{color:var(--accent);background:0 0;padding:10px 8px}button:disabled{opacity:.45;cursor:default}button.icon{padding:6px 10px;font-size:22px}input,textarea{width:100%;font:inherit;background:#fff;border:2px solid #d8ccb0;border-radius:10px;padding:12px;font-size:18px}textarea{word-break:break-all;min-height:96px;font-family:ui-monospace,monospace;font-size:14px}.consigne{margin:8px 0 12px;font-size:20px;font-weight:600}.slots{gap:8px;margin-bottom:12px;display:grid}.slot{background:var(--slot);border:2px dashed #cdbf9f;border-radius:12px;align-items:center;gap:8px;min-height:52px;padding:8px 10px;display:flex}.slot .lab{color:var(--muted);min-width:92px;font-size:13px;font-weight:700}.slot.filled{border-style:solid;border-color:var(--accent);cursor:pointer;background:#f3edff}.options{gap:8px;display:grid}.option{text-align:left;color:var(--ink);background:#fff;border:2px solid #d8ccb0}.option.used{visibility:hidden}.feedback{border-radius:12px;margin-top:12px;padding:12px}.feedback.ok{border:2px solid var(--ok);background:#e3f4ea}.feedback.ko{border:2px solid var(--ko);background:#fbe7e4}.feedback ol{margin:6px 0;padding-left:22px}.source{color:var(--muted);margin-top:6px;font-size:14px}.zones{gap:8px;margin:12px 0;display:grid}.zone-btn{text-align:left;align-items:center;gap:10px;display:flex}.bar{background:#e4dcc8;border-radius:6px;height:10px;overflow:hidden}.bar>i{background:var(--ok);height:100%;display:block}@media (height<=500px){.panel{padding:10px 12px;font-size:16px}.consigne{margin:4px 0 8px;font-size:17px}.slots,.options{gap:6px}.options{grid-template-columns:1fr 1fr}.slot{min-height:44px;padding:4px 8px}button,.btn{min-height:44px;padding:8px 10px;font-size:15px}}
