@import"https://fonts.googleapis.com/css2?family=Archivo:wght@600;700;800&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--bg: #14171A;--surface: #1C2024;--ink: #ECEDE9;--muted: #9AA0A6;--line: #2B3034;--accent: #F2B705;--accent-ink: #14171A}*{box-sizing:border-box}html,body{margin:0;height:100%;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none}body{background:var(--bg);color:var(--ink);font-family:IBM Plex Sans,system-ui,sans-serif}#app{height:100vh;height:100dvh;width:100vw;overflow:hidden;position:relative}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}h1,h2,h3{font-family:Archivo,system-ui,sans-serif;text-wrap:balance;margin:0}.mono{font-family:IBM Plex Mono,monospace}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}.btn{font-family:Archivo,sans-serif;font-weight:700;font-size:1.4rem;background:var(--accent);color:var(--accent-ink);border:none;padding:1.1rem 2.6rem;cursor:pointer;margin-top:2rem;touch-action:manipulation}.btn:active{transform:scale(.97)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--muted);font-size:1rem;padding:.7rem 1.6rem}.game-cards{display:flex;gap:1.4rem;margin:2rem 0;flex-wrap:wrap;justify-content:center}.game-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);font-family:IBM Plex Sans,sans-serif;width:240px;padding:1.8rem 1.4rem;cursor:pointer;touch-action:manipulation;text-align:left}.game-card:active{transform:scale(.98)}.game-card .icon{font-size:2.4rem;margin-bottom:.6rem}.game-card h3{font-size:1.15rem;margin-bottom:.4rem}.game-card p{color:var(--muted);font-size:.88rem;margin:0}.steps{display:flex;gap:1.5rem;margin:2rem 0;flex-wrap:wrap;justify-content:center}.step{background:var(--surface);border:1px solid var(--line);padding:1.4rem;width:200px}.step .n{font-family:IBM Plex Mono,monospace;color:var(--accent);font-size:.8rem}.step p{color:var(--muted);font-size:.92rem;margin:.5rem 0 0}.countdown-number{font-family:Archivo,sans-serif;font-weight:800;font-size:12rem;color:var(--accent);line-height:1}.game-screen{padding:0;justify-content:flex-start}.hud{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.4rem;background:var(--surface);border-bottom:1px solid var(--line);font-family:IBM Plex Mono,monospace;z-index:2}.hud .score{font-size:1.6rem;font-weight:600;color:var(--accent)}.hud .timer{font-size:1.6rem;font-variant-numeric:tabular-nums}.game-area{position:relative;flex:1;width:100%}.game-area canvas{display:block;touch-action:none}.tournevis-area{flex:1;width:100%;display:flex;align-items:center;justify-content:center;gap:3rem;padding:2rem}.gauge{width:36px;height:min(320px,50vh);background:var(--surface);border:1px solid var(--line);position:relative;display:flex;align-items:flex-end}.gauge-fill{width:100%;height:0%;background:var(--accent);transition:height .08s linear}.tap-target{width:min(220px,40vw);height:min(220px,40vw);border-radius:50%;background:var(--accent);color:var(--accent-ink);border:none;font-family:Archivo,sans-serif;font-weight:800;font-size:1.4rem;cursor:pointer;touch-action:manipulation;box-shadow:0 0 0 8px #f2b70526}.tap-target.pulse{animation:tap-pulse .15s ease-out}@keyframes tap-pulse{0%{transform:scale(.9)}to{transform:scale(1)}}.box-stack{display:flex;flex-direction:column-reverse;gap:6px;width:60px}.box-stack .box{height:22px;background:var(--surface);border:1px solid var(--line);opacity:.35;transform:scaleX(.8);transition:opacity .2s ease,transform .2s ease}.box-stack .box.filled{background:var(--accent);opacity:1;transform:scaleX(1)}@media (prefers-reduced-motion: reduce){.tap-target.pulse{animation:none}}.stage-area{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;padding:1.5rem;overflow-y:auto}.stage-instruction{font-family:IBM Plex Mono,monospace;color:var(--muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.04em;margin:0}.penalty-flash{animation:penalty-flash .4s ease-out}@keyframes penalty-flash{0%{color:#e0554a}to{color:var(--ink)}}.embout-target{background:var(--surface);border:1px solid var(--accent)}.embout-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;max-width:400px}.embout-grid.disabled{pointer-events:none;opacity:.5}.embout-btn{background:var(--surface);border:1px solid var(--line);padding:.3rem;cursor:pointer;touch-action:manipulation}.embout-btn.wrong{border-color:#e0554a}.screw-progress{width:200px;height:8px;background:var(--surface);border:1px solid var(--line)}.screw-progress .fill{height:100%;width:0%;background:var(--accent);transition:width .75s linear}.vis-track{position:relative;width:min(500px,90vw);height:44px;background:var(--surface);border:1px solid var(--line)}.vis-zone{position:absolute;top:0;height:100%;background:#f2b70540;border-left:2px dashed var(--accent);border-right:2px dashed var(--accent)}.vis-marker{position:absolute;top:-6px;width:4px;height:56px;background:var(--ink);transform:translate(-2px)}.vis-marker.caught{background:#3fa34d}.vis-marker.miss{background:#e0554a}.hold-target{touch-action:manipulation;-webkit-user-select:none;user-select:none}.rangement-area{display:flex;flex-direction:column;gap:2rem;align-items:center;width:100%}.tool-tray,.slot-row{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.tool-item{background:var(--surface);border:1px solid var(--line);padding:.5rem;cursor:grab;touch-action:none}.tool-item.dragging{opacity:.3}.tool-ghost{position:fixed;pointer-events:none;transform:translate(-50%,-50%);z-index:50;opacity:.9}.tool-slot{width:84px;height:84px;background:var(--surface);border:1px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;font-family:IBM Plex Mono,monospace;font-size:.65rem;color:var(--muted);text-align:center}.tool-slot.filled{border-style:solid;border-color:var(--accent);color:var(--ink)}.tool-slot.wrong{border-color:#e0554a}.oeil-preview,.oeil-wall{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;max-width:480px}.oeil-target-card,.oeil-tile{background:var(--surface);border:1px solid var(--line);padding:.5rem}.oeil-tile{cursor:pointer;touch-action:manipulation}.oeil-tile.found{border-color:#3fa34d;opacity:.4;pointer-events:none}.oeil-tile.wrong{border-color:#e0554a}.geste-row{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.geste-btn{font-family:Archivo,sans-serif;font-weight:700;background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:1.4rem 1.6rem;cursor:pointer;touch-action:manipulation}.geste-btn.done{border-color:#3fa34d;color:#3fa34d}.geste-btn.wrong{border-color:#e0554a}.geste-btn.buzzer{background:var(--accent);color:var(--accent-ink)}.result-score{font-family:Archivo,sans-serif;font-weight:800;font-size:5rem;color:var(--accent);line-height:1;margin:1rem 0}.tier-badge{font-family:IBM Plex Mono,monospace;border:1px solid var(--accent);color:var(--accent);padding:.4rem 1rem;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem}.rank{color:var(--muted);margin-top:.8rem}.form-panel{background:var(--surface);border:1px solid var(--line);padding:2rem;width:min(420px,90vw);text-align:left}.field{margin-bottom:1.1rem}.field label{display:block;font-family:IBM Plex Mono,monospace;font-size:.75rem;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}.field input[type=text],.field input[type=email]{width:100%;padding:.8rem;background:var(--bg);border:1px solid var(--line);color:var(--ink);font-size:1rem;font-family:IBM Plex Sans,sans-serif}.field.consent{display:flex;align-items:flex-start;gap:.6rem}.field.consent label{text-transform:none;font-size:.85rem;color:var(--muted);margin:0}.field.consent input{width:18px;height:18px;margin-top:.15rem}.error{color:#e0554a;font-size:.85rem;margin-top:.4rem}.leaderboard-columns{display:flex;gap:1.5rem;margin-top:2rem;flex-wrap:wrap;justify-content:center}.leaderboard{width:min(260px,90vw);text-align:left}.leaderboard .row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--line);font-family:IBM Plex Mono,monospace;font-size:.9rem}.leaderboard .row .rk{color:var(--accent);width:2rem}.leaderboard .row .nm{flex:1;color:var(--ink);text-align:left}
