*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #667eea;--secondary-color: #764ba2;--text-light: #ffffff;--text-dark: #1a1a1a;--bg-overlay: rgba(0, 0, 0, .8)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;overflow:hidden;background:#000;color:var(--text-light);cursor:default}#app{width:100vw;height:100vh;position:relative}#webgl,#overlay{position:absolute;top:0;left:0;width:100%;height:100%}#webgl{pointer-events:none;z-index:1}#overlay{pointer-events:none!important;z-index:0}#webgl canvas{pointer-events:none}#webgl.free-cam canvas{pointer-events:auto;cursor:grab}#webgl.free-cam canvas:active{cursor:grabbing}#css{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}:root{--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-out-quart: cubic-bezier(.76, 0, .24, 1)}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;z-index:10000;font-family:Doto,Courier New,Monaco,monospace;cursor:default;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.loading-screen.is-ready{cursor:pointer}.loading-screen.is-gone{visibility:hidden}.loader-shutter{position:absolute;left:0;width:100%;height:50.5%;background:#000;will-change:transform;transition:transform 1s var(--ease-in-out-quart)}.loader-shutter-top{top:0}.loader-shutter-bottom{bottom:0}.loading-screen.is-leaving .loader-shutter-top{transform:translateY(-100%)}.loading-screen.is-leaving .loader-shutter-bottom{transform:translateY(100%)}.loader{position:relative;width:min(460px,80vw);display:flex;flex-direction:column;align-items:center;text-align:center;transition:opacity .35s ease-out,transform .9s var(--ease-in-out-quart)}.loading-screen.is-leaving .loader{opacity:0;transform:scale(1.06)}.mask{overflow:hidden;line-height:1.25}.mask>span{display:inline-block;transform:translateY(115%);animation:riseIn .9s var(--ease-out-expo) forwards;animation-delay:var(--d, 0ms)}.loader-name{display:flex;justify-content:center;font-size:36px;letter-spacing:.3em;text-transform:uppercase;margin-left:.3em;line-height:1.2;overflow:hidden}.loader-name .letter{display:inline-block;white-space:pre;transform:translateY(120%);animation:riseIn 1s var(--ease-out-expo) forwards;animation-delay:var(--d, 0ms)}.loader-sub{margin-top:12px;font-size:15px;letter-spacing:.24em;text-transform:uppercase;color:#ffffff8c;margin-left:.24em}.loader-bar{position:relative;width:100%;height:1px;margin-top:42px}.loader-bar-track{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff2e;transform:scaleX(0);animation:drawLine 1.2s var(--ease-out-expo) .55s forwards}.loader-bar-fill{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;transform-origin:center;transform:scaleX(0);will-change:transform}.loader-status{width:100%;display:flex;justify-content:space-between;margin-top:14px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff8c;font-variant-numeric:tabular-nums}.loading-screen.is-ready #loader-status-text{animation:riseOutIn .9s var(--ease-out-expo) forwards}.loader-prompt{margin-top:32px;font-size:15px;letter-spacing:.18em;text-transform:uppercase}.loader-prompt>span{animation:none;transform:translateY(115%)}.loading-screen.is-ready .loader-prompt>span{animation:riseIn 1s var(--ease-out-expo) .35s forwards}.loading-screen.is-ready .loader-prompt>span:after{content:"";display:inline-block;width:.55em;height:1px;margin-left:.5em;vertical-align:middle;background:#fff;animation:pulse 1.6s ease-in-out infinite}.loading-screen.has-error .loader-status{color:#ff6b6b}@keyframes riseIn{to{transform:translateY(0)}}@keyframes riseOutIn{0%{transform:translateY(0)}45%{transform:translateY(-115%)}50%{transform:translateY(115%)}to{transform:translateY(0)}}@keyframes drawLine{to{transform:scaleX(1)}}@keyframes pulse{0%,to{opacity:.2}50%{opacity:1}}.ui-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:100;font-family:Doto,Courier New,Monaco,monospace;color:#17181b}.hud{position:absolute;left:34px;display:flex;flex-direction:column;align-items:flex-start}.hud-top{top:40px}.hud-bottom{bottom:36px}.hud .mask>span{animation:none;transform:translateY(115%)}.ui-overlay.is-live .hud .mask>span{animation:riseIn 1.5s var(--ease-out-expo) forwards;animation-delay:var(--d, 0ms)}.hud-name{font-size:46px;letter-spacing:.01em;line-height:1.1}.hud-rule{width:44px;height:1px;margin:18px 0 16px;background:currentColor;opacity:.7;transform:scaleX(0);transform-origin:left center}.ui-overlay.is-live .hud-rule{animation:drawLine 1.4s var(--ease-out-expo) var(--d, 0ms) forwards}.hud-role,.hud-time,.hud-hint{font-size:14px;letter-spacing:.26em;text-transform:uppercase;line-height:1.6}.hud-role{opacity:.9}.hud-time{opacity:.74;margin-top:4px;font-variant-numeric:tabular-nums}.hud-hint{opacity:1;font-size:15px;color:#0f1012}.hud-hint>span:after{content:"";display:inline-block;width:.6em;height:1px;margin-left:.45em;vertical-align:middle;background:currentColor;opacity:0}.hud-hint>span.is-typing:after{opacity:1}.hud-hint>span.is-idle:after{animation:pulse 1.8s ease-in-out infinite}.beacon{position:absolute;top:0;left:0;z-index:110;pointer-events:none;font-family:Doto,Courier New,Monaco,monospace;will-change:transform;opacity:0}.beacon.is-live{opacity:1}.beacon.is-hidden,.beacon.is-offscreen{opacity:0;pointer-events:none}.beacon.is-hidden *{pointer-events:none!important}.beacon-dot{position:absolute;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#17181b;pointer-events:auto;cursor:pointer;transform:scale(0)}.beacon-dot:before{content:"";position:absolute;top:-22px;right:-22px;bottom:-22px;left:-22px;border-radius:50%}.beacon-dot:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:1px solid #17181b;opacity:0}.beacon.is-live .beacon-dot{animation:beaconDot .7s cubic-bezier(.34,1.56,.64,1) forwards}.beacon.is-live .beacon-dot:after{animation:beaconRing 2.6s cubic-bezier(.2,.6,.3,1) .9s infinite}.beacon-bubble{position:absolute;left:0;bottom:18px;transform:translate(-50%,10px) scale(.6);transform-origin:50% 100%;opacity:0;pointer-events:auto;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #17181b;background:#fff;color:#17181b;padding:10px 15px 9px;font:inherit;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap;border-radius:3px;box-shadow:3px 3px #17181b;transition:background .25s ease,color .25s ease,box-shadow .25s ease}.beacon-bubble:after{content:"";position:absolute;left:50%;bottom:-6px;width:9px;height:9px;margin-left:-5px;background:inherit;border-right:1px solid #17181b;border-bottom:1px solid #17181b;transform:rotate(45deg)}.beacon.is-live .beacon-bubble{animation:bubblePop .8s cubic-bezier(.34,1.56,.64,1) .25s forwards,bubbleFloat 3.4s ease-in-out 1.05s infinite}.beacon-bubble:hover,.beacon-bubble:focus-visible{background:#17181b;color:#fff;box-shadow:1px 1px #17181b;outline:none}@keyframes beaconDot{to{transform:scale(1)}}@keyframes beaconRing{0%{transform:scale(1);opacity:.7}70%{transform:scale(3.4);opacity:0}to{transform:scale(3.4);opacity:0}}@keyframes bubblePop{0%{transform:translate(-50%,10px) scale(.6);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}@keyframes bubbleFloat{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%,-4px) scale(1)}}.beacon-hit{position:absolute;top:0;left:0;z-index:105;cursor:pointer;pointer-events:none;will-change:transform}.beacon-hit.is-live{pointer-events:auto}.beacon-hit.is-hidden,.beacon-hit.is-offscreen{pointer-events:none}.back-chip{position:absolute;top:34px;left:34px;z-index:10002;display:inline-flex;align-items:center;gap:10px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #17181b;background:#fff;color:#17181b;padding:9px 13px 8px 11px;font-family:Doto,Courier New,Monaco,monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;border-radius:3px;box-shadow:3px 3px #17181b;cursor:pointer;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .35s var(--ease-out-expo),transform .55s var(--ease-out-expo),background .2s ease,color .2s ease,box-shadow .2s ease}.back-chip.is-visible{opacity:1;transform:translateY(0);pointer-events:auto;transition-delay:.35s}.back-chip:hover{background:#17181b;color:#fff;box-shadow:1px 1px #17181b}.back-chip-key{padding:2px 5px 1px;border:1px solid currentColor;border-radius:2px;font-size:10px;opacity:.8}.role-swap{position:relative;display:inline-block;overflow:hidden;vertical-align:bottom}.role-sizer{visibility:hidden;white-space:nowrap;margin-right:-.26em}.role-word{position:absolute;left:0;top:0;white-space:nowrap;opacity:0;transform:translateY(70%);will-change:transform,opacity}.role-word.is-in{opacity:1;transform:translateY(0)}.role-word.is-entering{animation:roleIn .85s var(--ease-out-expo) forwards}.role-word.is-leaving{animation:roleOut .6s cubic-bezier(.5,0,.75,0) forwards}@keyframes roleIn{0%{opacity:0;transform:translateY(85%)}to{opacity:1;transform:translateY(0)}}@keyframes roleOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-85%)}}@media (prefers-reduced-motion: reduce){.role-word.is-entering,.role-word.is-leaving{animation-duration:.01ms}}@media (max-width: 768px){.top-left-info{top:20px;left:20px}.hud{left:22px}.hud-top{top:24px}.hud-bottom{bottom:22px}.hud-name{font-size:30px}.hud-rule{margin:12px 0 10px}.hud-role,.hud-time,.hud-hint{font-size:12px}.beacon-bubble{font-size:10.5px;padding:8px 12px 7px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
