:root{--nuit: #17100b;--lanterne: #ffb347;--neon: #ffd9a0;--neon-halo: #ff8c1a;--papier: #f3e6cf;--fondu: .32s}*{box-sizing:border-box}html,body,#root,.app{height:100%;margin:0}body{background:var(--nuit);color:var(--papier);font-family:Georgia,Times New Roman,serif;overflow:hidden}.scene-scroller{height:100%;display:grid;place-items:center;overflow:hidden;background:var(--nuit);cursor:default}.scene{position:relative;width:100vw;height:100vh}.scene-image{display:block;width:100%;height:100%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.scene-scroller.is-paused{pointer-events:none}.hotspot{position:absolute;background:transparent;border:none;border-radius:50%;padding:0;cursor:pointer;min-width:34px;min-height:34px}.hotspot:after{content:"";position:absolute;top:-18%;right:-18%;bottom:-18%;left:-18%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,179,71,.32),rgba(255,179,71,.1) 55%,transparent 75%);opacity:0;transition:opacity .24s ease;pointer-events:none}.hotspot:hover:after,.hotspot:focus-visible:after{opacity:1}.hotspot:focus-visible{outline:2px solid var(--lanterne);outline-offset:2px}.hotspot.visited:after{opacity:.28}.hotspot.visited:hover:after{opacity:1}.hotspot.debug{outline:1px dashed rgba(255,80,80,.9);background:#ff505026;border-radius:50%}.hotspot-id{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:12px;color:#ff5050;font-weight:700}.neon-sign{position:absolute;background:transparent;border:none;padding:0;cursor:pointer}.neon-sign:focus-visible{outline:2px solid var(--neon);outline-offset:4px}.neon-glow{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;opacity:0;transition:opacity .4s ease}.neon-sign.is-on .neon-glow{opacity:1;animation:neon-flicker 2.2s ease-in-out 1,neon-breathe 4s ease-in-out 2.2s infinite}@keyframes neon-flicker{0%{opacity:0}6%{opacity:1}10%{opacity:.2}15%{opacity:1}22%{opacity:.4}30%{opacity:1}to{opacity:1}}@keyframes neon-breathe{0%,to{opacity:1}50%{opacity:.82}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:4vmin;background:#0a0603d1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in var(--fondu) ease forwards}.lightbox.is-closing{animation:fade-out var(--fondu) ease forwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.lightbox-frame{position:relative;margin:0;max-height:calc(92vh - 60px);max-height:92vh;animation:frame-in var(--fondu) ease forwards}.lightbox.is-closing .lightbox-frame{animation:frame-out var(--fondu) ease forwards}@keyframes frame-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes frame-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.lightbox-frame img{display:block;max-width:100%;max-height:calc(92vh - 60px);border:6px solid #2a1d12;border-radius:4px;box-shadow:0 12px 60px #000000b3}.lightbox-frame figcaption{margin-top:12px;text-align:center;font-style:italic;font-size:1.05rem;color:var(--papier);letter-spacing:.04em}.lightbox-close{position:absolute;top:-16px;right:-16px;z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid #6b4d2f;background:#241810;color:var(--papier);font-size:24px;line-height:1;cursor:pointer;transition:background .2s ease,transform .2s ease}.lightbox-close:hover{background:#3a2818;transform:scale(1.08)}.lightbox-close:focus-visible{outline:2px solid var(--lanterne)}.audio-toggle{position:fixed;right:18px;bottom:18px;z-index:60;width:46px;height:46px;border-radius:50%;border:1px solid #6b4d2f;background:#1e140cd9;color:var(--papier);display:grid;place-items:center;cursor:pointer;transition:background .2s ease,transform .2s ease}.audio-toggle:hover{background:#3a2818f2;transform:scale(1.06)}.audio-toggle:focus-visible{outline:2px solid var(--lanterne)}.hint{position:fixed;left:50%;bottom:14px;transform:translate(-50%);z-index:40;font-size:.85rem;font-style:italic;letter-spacing:.05em;color:#f3e6cfbf;background:#17100b99;padding:6px 14px;border-radius:999px;pointer-events:none;animation:hint-fade 1s ease 6s forwards}@keyframes hint-fade{to{opacity:0}}.sound-zone{position:absolute;border-radius:50%}.sound-zone.debug{outline:1px dashed rgba(80,120,255,.9);background:#5078ff26}.sound-zone-id{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:12px;color:#5078ff;font-weight:700}@media (prefers-reduced-motion: reduce){.neon-sign.is-on .neon-text{animation:none}.lightbox,.lightbox-frame,.lightbox.is-closing,.lightbox.is-closing .lightbox-frame{animation-duration:1ms}}.mask-counter{position:fixed;left:18px;bottom:18px;z-index:60;display:flex;align-items:baseline;gap:10px;padding:7px 16px;border-radius:999px;border:1px solid #6b4d2f;background:#1e140cd9;color:var(--papier);font-size:.82rem;letter-spacing:.05em;pointer-events:none;-webkit-user-select:none;user-select:none;transition:box-shadow .4s ease,border-color .4s ease}.mask-counter-label{font-style:italic;opacity:.75}.mask-counter-score{font-size:1rem;font-weight:700;color:var(--lanterne);font-variant-numeric:tabular-nums}.mask-counter.is-pulsing{box-shadow:0 0 18px 4px #ffb34773;border-color:var(--lanterne)}.mask-counter.is-pulsing .mask-counter-score{animation:score-pop .6s ease}@keyframes score-pop{0%{transform:scale(1)}35%{transform:scale(1.35);color:var(--neon)}to{transform:scale(1)}}.mask-counter.is-complete{border-color:var(--neon);box-shadow:0 0 22px 5px #ff8c1a80}.mask-counter.is-complete .mask-counter-score{color:var(--neon)}@media (max-width: 820px),(pointer: coarse){.mask-counter{left:12px;bottom:12px;padding:6px 12px;font-size:.72rem}.mask-counter-label{display:none}}@media (prefers-reduced-motion: reduce){.mask-counter.is-pulsing .mask-counter-score{animation:none}}.back-toggle{position:fixed;right:76px;bottom:18px;z-index:60;width:46px;height:46px;border-radius:50%;border:1px solid #6b4d2f;background:#1e140cd9;color:var(--papier);font-size:25px;display:grid;place-items:center;cursor:pointer;transition:background .2s ease,transform .2s ease}.back-toggle:hover{background:#3a2818f2;transform:scale(1.06)}.back-toggle:focus-visible{outline:2px solid var(--lanterne)}@media (max-width: 820px),(pointer: coarse){.back-toggle{right:66px;bottom:12px}}@media (max-width: 820px),(pointer: coarse){.scene-scroller{overflow:auto;place-items:start;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.scene{display:inline-block;width:auto;height:90vh}.scene-image{width:auto;height:100%}.hotspot{min-width:44px;min-height:44px}.hint{font-size:.78rem;max-width:90vw;text-align:center}}
