:root{--bg: #070a14;--ink: #eef2ff;--dim: #97a2c8;--line: rgba(255, 255, 255, .12);--glass: rgba(16, 21, 40, .72);--accent: #ffb454;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:Segoe UI,system-ui,-apple-system,sans-serif;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0}#scene{position:absolute;inset:0}#scene canvas{display:block;width:100%;height:100%}#hud{position:absolute;inset:0;pointer-events:none;padding:max(14px,env(safe-area-inset-top)) 16px 16px;display:flex;flex-direction:column}.hud-top{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.players{display:flex;gap:8px;flex-wrap:wrap}.hud-right{display:flex;align-items:flex-start;gap:8px}.card{display:flex;align-items:center;gap:9px;padding:7px 12px 7px 9px;border-radius:12px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);font-size:13px;line-height:1;transition:opacity .3s,filter .3s}.card.dead{opacity:.35;filter:grayscale(1)}.card.you{border-color:#ffffff6b}.dot{width:13px;height:13px;border-radius:50%;box-shadow:0 0 12px currentColor;background:currentColor;flex:none}.card .who{font-weight:650;letter-spacing:.2px}.card .who small{display:block;font-weight:400;color:var(--dim);font-size:10px;margin-top:3px;letter-spacing:.5px}.card .stats{display:flex;gap:7px;color:var(--dim);font-variant-numeric:tabular-nums}.card .stats b{color:var(--ink);font-weight:650}.card .kick{font-size:9px;padding:3px 5px;border-radius:5px;background:#ffffff24;letter-spacing:.6px}.clock{text-align:right;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border-radius:12px;padding:8px 13px;font-variant-numeric:tabular-nums}.clock span{font-size:22px;font-weight:700;letter-spacing:.5px;display:block;line-height:1.05}.clock small{color:var(--dim);font-size:10px;letter-spacing:.4px}.clock.urgent span{color:#ff6b6b}.clock.urgent{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.05)}}.cam-control{position:relative;pointer-events:auto}.cam-toggle{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);color:var(--ink);font-size:16px;cursor:pointer;transition:.16s}.cam-toggle:hover{background:#ffffff1f}.cam-panel{position:absolute;top:calc(100% + 8px);right:0;width:172px;padding:12px 14px 10px;border-radius:12px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);box-shadow:0 14px 34px #00000073}.cam-panel[hidden]{display:none}.cam-panel label{display:block;font-size:11px;color:var(--dim);margin-bottom:8px;letter-spacing:.3px}.cam-panel input[type=range]{width:100%}.cam-panel-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--dim);margin-top:5px}.hunt{align-self:center;margin-top:10px;display:flex;align-items:center;gap:12px;padding:9px 16px 9px 13px;border-radius:14px;background:#2e0210d1;border:1px solid rgba(255,0,85,.55);box-shadow:0 0 26px #ff005559;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);animation:huntPulse 1s ease-in-out infinite}.hunt-skull{font-size:22px;line-height:1;filter:drop-shadow(0 0 8px #ff0055)}.hunt-text{line-height:1.15}.hunt-text b{display:block;font-size:14px;letter-spacing:1.4px;color:#ff5c8a}.hunt-text small{display:block;font-size:10.5px;color:var(--dim);letter-spacing:.3px;margin-top:2px}.hunt-timer{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;color:#fff;min-width:52px;text-align:right}@keyframes huntPulse{50%{box-shadow:0 0 40px #f059}}.vignette{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .45s;background:radial-gradient(ellipse at center,#ff003c00 42%,#ff002d57)}.vignette.on{opacity:1;animation:huntBreath 1.6s ease-in-out infinite}@keyframes huntBreath{50%{opacity:.62}}.card .shield{font-size:11px;filter:drop-shadow(0 0 6px #7fd4ff)}.card.prey{border-color:#ff0055d9;box-shadow:0 0 18px #f056}.toast{margin-top:auto;align-self:center;padding:9px 18px;border-radius:999px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);font-size:14px;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s}.toast.show{opacity:1;transform:none}.loading{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:0 16px;background:#050812db;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.loading-box{width:min(440px,100%);display:flex;flex-direction:column;gap:18px;align-items:center;text-align:center}.loading-msg{min-height:2.6em;font-size:clamp(15px,3.6vw,19px);font-weight:600;color:#ffe2b0}.loading-bar{width:100%;height:12px;border-radius:999px;background:#ffffff1a;border:1px solid var(--line);overflow:hidden}.loading-bar i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#ff7a3d,#ffd37a);box-shadow:0 0 14px #ffaa46b3;transition:width .2s linear}.intro{position:fixed;inset:0;z-index:30;pointer-events:none;overflow:hidden}.intro-tag{position:absolute;left:50%;top:50%;display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:900;line-height:1;white-space:nowrap;color:var(--c, #fff);text-shadow:0 0 22px var(--c, #fff),0 4px 0 rgba(0,0,0,.75);-webkit-text-stroke:2px rgba(0,0,0,.75);paint-order:stroke fill;transform:translate(-50%,-50%)}.intro-tag small{font-size:clamp(12px,2.4vw,18px);letter-spacing:.18em;text-transform:uppercase;color:#fff;-webkit-text-stroke:0;text-shadow:0 2px 6px #000}.intro-tag b{font-size:clamp(30px,8vw,76px)}.intro-tag.go b{font-size:clamp(56px,16vw,150px)}.intro-tag .zoom{display:flex;flex-direction:column;align-items:center;animation:introZoom .55s cubic-bezier(.2,1.4,.4,1) both}.intro-tag.go .zoom{animation-name:introGo}@keyframes introZoom{0%{transform:scale(3.2);opacity:0}55%{opacity:1}to{transform:scale(1);opacity:1}}@keyframes introGo{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.25);opacity:1}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.intro-tag .zoom{animation:none}}.overlay{position:absolute;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at center,#070a148c,#070a14ed);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .25s}.overlay[hidden]{display:none}.panel{width:min(560px,100%);max-height:100%;overflow:auto;text-align:center;padding:30px 30px 26px;border-radius:22px;background:var(--glass);border:1px solid var(--line);box-shadow:0 30px 80px #0009;animation:rise .3s ease-out}.panel[hidden]{display:none}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.title{margin:0 0 6px;font-size:clamp(38px,9vw,62px);letter-spacing:2px;font-weight:800;background:linear-gradient(180deg,#fff,#ffb454);-webkit-background-clip:text;background-clip:text;color:transparent}.title span{-webkit-text-fill-color:transparent;opacity:.85}.panel h2{margin:0 0 8px;font-size:30px;letter-spacing:.5px}.tagline{margin:0 0 22px;color:var(--dim);font-size:14px}.options{display:grid;gap:12px;margin-bottom:22px}.option{display:flex;align-items:center;justify-content:space-between;gap:12px}.option label{color:var(--dim);font-size:13px;letter-spacing:.3px}.choices{display:flex;gap:6px}.option-slider{flex-direction:column;align-items:stretch;gap:7px}.option-slider label{text-align:left}.slider-row{display:flex;align-items:center;gap:12px}.slider-row input[type=range]{flex:1}.slider-value{min-width:66px;text-align:right;font-size:12.5px;font-weight:650;color:var(--ink)}.option-hint{color:var(--dim);font-size:11.5px;line-height:1.35;text-align:left;opacity:.8}.menu-actions{margin-top:12px}input[type=range]{-webkit-appearance:none;appearance:none;height:6px;border-radius:999px;background:#ffffff24;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);border:2px solid #26160a;cursor:pointer;margin-top:-6px}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid #26160a;cursor:pointer}input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:#ffffff24}.choices button{padding:8px 13px;border-radius:9px;border:1px solid var(--line);background:#ffffff0d;color:var(--dim);font:inherit;font-size:13px;cursor:pointer;transition:.16s}.choices button:hover{background:#ffffff1a;color:var(--ink)}.choices button.on{background:var(--accent);border-color:var(--accent);color:#26160a;font-weight:650;animation:pick .28s ease-out}.choices button:active{transform:scale(.94);filter:brightness(1.25)}@keyframes pick{0%{box-shadow:0 0 #ffb454b3;transform:scale(.94)}to{box-shadow:0 0 0 10px #ffb45400;transform:scale(1)}}.cta,.ghost{font:inherit;font-weight:700;letter-spacing:1px;padding:13px 30px;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:.16s}.cta{background:var(--accent);color:#26160a;border-color:var(--accent);font-size:16px}.cta:hover{filter:brightness(1.1);transform:translateY(-1px)}.cta:active{filter:brightness(.9);transform:translateY(1px) scale(.96);box-shadow:0 0 0 4px #ffb45459}a.ghost{text-decoration:none}.ghost{background:transparent;color:var(--dim);border-color:var(--line)}.ghost:hover{color:var(--ink);background:#ffffff0f}.ghost:active{background:#ffffff29;color:var(--ink);transform:scale(.96)}.cta:focus-visible,.ghost:focus-visible,.choices button:focus-visible,.tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}input[type=text]{font:inherit;padding:11px 14px;border-radius:10px;border:1px solid var(--line);background:#ffffff0d;color:var(--ink);outline:none}input[type=text]:focus{border-color:var(--accent)}.lobby-link{flex:1;min-width:160px}.lobby-join{margin-top:14px}.lobby-join input[type=text]{flex:1;min-width:140px}.lobby-players{list-style:none;margin:18px 0;padding:0;display:flex;flex-direction:column;gap:6px}.lobby-players li{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;background:#ffffff0d;border:1px solid transparent;font-size:14px;text-align:left}.lobby-players li.you{border-color:var(--accent)}.lobby-players li.dot:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c, var(--dim));flex:none}.lobby-players li .score{margin-left:auto;font-weight:700;color:var(--ink)}.panel-wide{width:min(760px,100%);text-align:left}.panel-wide>h2{text-align:center}.panel-wide>.row:first-of-type{margin-bottom:4px}.panel-wide>.option-slider{margin:14px 0 4px}.lobby-map{display:grid;gap:8px;margin:10px 0 4px}.lobby-result{margin:6px 0 14px;padding:11px 14px;border-radius:10px;background:#ffffff0f;border:1px solid var(--line);text-align:center;font-size:17px}.lobby-result.win{border-color:#69f0ae;color:#a4ffce}.lobby-result.lose{border-color:#ff5252;color:#ffb0b0}.lobby-result small{display:block;margin-top:5px;font-size:13.5px;opacity:.85}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:18px}.lobby-col h3{margin:0 0 8px;font-size:12.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--dim)}.lobby-col h3:not(:first-child){margin-top:18px}.lobby-actions{justify-content:flex-start;margin:14px 0 8px}.chat-log{height:200px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#00000038;display:flex;flex-direction:column;gap:7px;font-size:13px;line-height:1.4}.chat-log:empty:before{content:"Personne n'a encore parlé.";color:var(--dim)}.chat-msg b{color:var(--accent);margin-right:5px}.chat-row{margin-top:10px;justify-content:flex-start}.chat-row input[type=text]{flex:1;min-width:120px}@media(max-width:640px){.lobby-grid{grid-template-columns:1fr}}.legend{margin:18px 0 4px;text-align:left}.legend summary{cursor:pointer;list-style:none;color:var(--dim);font-size:13px;letter-spacing:.3px;padding:9px 14px;border-radius:10px;border:1px solid var(--line);background:#ffffff0a;transition:.16s}.legend summary::-webkit-details-marker{display:none}.legend summary:hover{color:var(--ink);background:#ffffff14}.legend summary:after{content:"▾";float:right}.legend[open] summary:after{content:"▴"}.legend[open] summary{border-radius:10px 10px 0 0;border-bottom-color:transparent}.legend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2px;padding:10px 14px 12px;border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;background:#0000002e}.legend-row{display:flex;align-items:center;gap:10px;padding:6px 4px}.legend-row img{width:34px;height:34px;flex:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.legend-row b{display:block;font-size:12.5px;letter-spacing:.3px}.legend-row span{display:block;font-size:11.5px;color:var(--dim);line-height:1.35;margin-top:1px}.keys{margin-top:22px;color:var(--dim);font-size:12px;display:grid;gap:7px}.keys .dim{opacity:.65}kbd{display:inline-block;padding:2px 7px;border-radius:5px;border:1px solid var(--line);border-bottom-width:2px;background:#ffffff12;font:inherit;font-size:11px;color:var(--ink)}.stats{display:grid;gap:7px;margin-bottom:22px;font-size:13px}.stats .line{display:flex;align-items:center;gap:9px;justify-content:space-between;padding:9px 13px;border-radius:10px;background:#ffffff0d}.stats .line.win{background:#ffb45429;border:1px solid rgba(255,180,84,.35)}.stats .name{display:flex;align-items:center;gap:8px}.stats .val{color:var(--dim);font-variant-numeric:tabular-nums}.touch{position:absolute;inset:auto 0 0;height:45%;pointer-events:none}.touch[hidden]{display:none}.stick{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:max(26px,env(safe-area-inset-bottom));width:132px;height:132px;border-radius:50%;border:1px solid var(--line);background:#10152873;pointer-events:auto;touch-action:none}.knob{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:#ffffff38;border:1px solid rgba(255,255,255,.3);transition:transform .05s linear}.touch-bomb{position:absolute;right:max(24px,env(safe-area-inset-right));bottom:max(34px,env(safe-area-inset-bottom));width:96px;height:96px;border-radius:50%;font-size:38px;border:1px solid var(--line);background:#ffb45438;pointer-events:auto;touch-action:none;cursor:pointer}.touch-det{position:absolute;right:max(130px,calc(env(safe-area-inset-right) + 106px));bottom:max(48px,env(safe-area-inset-bottom));width:72px;height:72px;border-radius:50%;font-size:30px;border:1px solid var(--line);background:#6fd0ff38;pointer-events:auto;touch-action:none;cursor:pointer}.touch-det[hidden]{display:none}.touch-det:active{background:#6fd0ff73;transform:scale(.95)}.touch-bomb:active{background:#ffb45473;transform:scale(.95)}@media(max-width:620px){.card .stats{display:none}.panel{padding:24px 20px}.option{flex-direction:column;align-items:stretch;gap:7px}.choices button{flex:1}.choices{flex-wrap:wrap}}@media(max-height:500px)and (orientation:landscape){#hud{padding:max(6px,env(safe-area-inset-top)) 10px 6px}.card{padding:4px 9px 4px 6px;gap:6px;font-size:12px}.overlay{padding:8px}.panel{padding:14px 18px;max-height:100%}.panel h2{font-size:22px;margin-bottom:4px}.title{font-size:34px;margin-bottom:2px}.tagline{margin-bottom:10px}.options{margin-bottom:10px;gap:8px}.keys{display:none}.touch{height:100%}.stick{width:112px;height:112px;left:max(18px,env(safe-area-inset-left));bottom:14px}.knob{width:46px;height:46px;margin:-23px 0 0 -23px}.touch-bomb{width:84px;height:84px;font-size:32px;right:max(24px,env(safe-area-inset-right));bottom:22px}}.tabs{display:flex;gap:6px;justify-content:center;margin:0 0 16px}.tabs button{padding:8px 18px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--dim);font:inherit;font-size:13px;cursor:pointer;transition:.16s}.tabs button:hover{color:var(--ink);background:#ffffff14}.tabs button:active{transform:scale(.94);background:#ffffff2e}.tabs button.on{background:var(--accent);border-color:var(--accent);color:#26160a;font-weight:650;animation:pick .28s ease-out}.tab-page[hidden]{display:none}.bonus-list{display:grid;gap:8px;margin:12px 0 16px}.bonus-row{display:flex;align-items:center;gap:12px;padding:6px 4px;text-align:left}.bonus-row img{width:40px;height:40px;flex:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.bonus-body{flex:1;min-width:0}.bonus-body b{display:block;font-size:13px;margin-bottom:3px}.bonus-row.off{opacity:.45}#bonus-reset{margin-bottom:18px}
