@font-face{font-family:VT323;src:url(/fonts/VT323-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070a09;--panel:#0d1311;--panel-2:#131c19;--line:#26352f;--text:#d3ecdc;--muted:#93ab9d;--alarm:#ff4a4a;--alarm-bg:#b3121f;--accent-text:#fff;--ok:#7be8a8;--error:#ff8f8f;--off:#5f7469;--obs-0:#4fd1ff;--obs-1:#ffc542;--obs-2:#c49bff;--obs-3:#b6f04a;--s1:.25rem;--s2:.5rem;--s3:1rem;--s4:1.5rem;--font-display:"VT323", ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--touch:3.5rem;font-family:var(--font-mono)}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0}body{min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);font-size:.95rem;line-height:1.45;position:relative}body:before{content:"";z-index:40;pointer-events:none;background:radial-gradient(#0000 55%,#00000080 100%);position:fixed;inset:0}body:after{content:"";z-index:41;pointer-events:none;opacity:.06;background:repeating-linear-gradient(#fff 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#fff 0 1px,#0000 1px 7px),repeating-linear-gradient(#fff 0 1px,#0000 1px 11px);position:fixed;inset:0}#app{max-width:28rem;padding:var(--s3);margin:0 auto;position:relative}[hidden]{display:none!important}.top{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s4);display:flex}.rec{align-items:center;gap:var(--s2);font-family:var(--font-display);letter-spacing:.08em;font-size:1.5rem;line-height:1;display:flex}.rec-dot{background:var(--alarm);border-radius:50%;width:.7rem;height:.7rem;animation:1.4s step-end infinite rec-blink}#clock{color:var(--muted);font-variant-numeric:tabular-nums}@keyframes rec-blink{0%,60%{opacity:1}61%,to{opacity:.15}}.brand{align-items:center;gap:var(--s2);margin-bottom:var(--s3);text-align:center;flex-direction:column;display:flex}.logo{width:6rem;height:6rem;display:block}h1{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin:0;font-size:3rem;font-weight:400;line-height:1}h2{margin:0 0 var(--s2);font-family:var(--font-display);letter-spacing:.04em;font-size:2.1rem;font-weight:400;line-height:1.1}h3{margin:var(--s4) 0 var(--s2);color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.85rem;font-weight:400}label{margin:var(--s4) 0 var(--s2);color:var(--muted);font-size:.9rem;display:block}input{width:100%;min-height:var(--touch);padding:var(--s2) var(--s3);font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:.25rem;font-size:16px}input:focus-visible,button:focus-visible{outline:2px solid var(--alarm);outline-offset:2px}input.code{font-family:var(--font-display);letter-spacing:.4em;text-align:center;text-transform:uppercase;font-size:2.6rem}button{min-height:var(--touch);padding:var(--s2) var(--s3);font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);cursor:pointer;touch-action:manipulation;border-radius:.25rem;font-weight:600;transition:transform .12s ease-out,opacity .12s ease-out}button:active:not(:disabled){transform:scale(.98)}button.primary{width:100%;margin-top:var(--s4);color:var(--accent-text);background:var(--alarm-bg);border-color:var(--alarm)}button:disabled,button.primary:disabled{color:var(--muted);background:var(--panel);border-color:var(--line);cursor:not-allowed}button.lang{min-width:var(--touch);padding:var(--s2);font-family:var(--font-display);letter-spacing:.08em;font-size:1.5rem}button.whisper{width:100%;min-height:7.5rem;margin-top:var(--s4);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);background:var(--alarm-bg);border-color:var(--alarm);font-size:2.4rem;font-weight:400;display:block}button.whisper.waiting,button.whisper[aria-disabled=true],button.whisper:disabled{color:var(--muted);background:var(--panel-2);border-color:var(--line);cursor:not-allowed}button#leave{width:100%;margin-top:var(--s4)}.hint,.error{min-height:1.25rem;margin:var(--s2) 0 0;font-size:.9rem}.hint{color:var(--muted)}.error{color:var(--error)}.status{padding:var(--s3);background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:.25rem;margin:0}.status[data-tone=warn]{border-left-color:var(--alarm)}.action-feedback{min-height:1.5rem;margin:var(--s2) 0 0;text-align:center;color:var(--ok)}.slot{margin-top:var(--s3)}.slot-text{font-family:var(--font-display);letter-spacing:.06em;color:var(--muted);margin:0;font-size:1.5rem;line-height:1}.slot-text.free{color:var(--ok)}.now{align-items:center;gap:var(--s2);margin:var(--s1) 0 0;color:var(--text);display:flex}.now[hidden],.slot[hidden]{display:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.energy{margin-top:var(--s4)}.energy-label{margin:0 0 var(--s2);font-family:var(--font-display);letter-spacing:.06em;font-size:1.8rem;line-height:1}.energy-segments{gap:var(--s1);display:flex}.seg{background:var(--panel);border:1px solid var(--line);border-radius:.125rem;flex:1;height:1rem}.seg.on{background:var(--ok);border-color:var(--ok)}.energy-progress{height:.25rem;margin-top:var(--s1);background:var(--muted);transform-origin:0;will-change:transform;border-radius:.125rem;transform:scaleX(0)}.hand{gap:var(--s2);margin-top:var(--s4);flex-direction:column;display:flex}.card{gap:var(--s2);min-height:6rem;padding:var(--s2);background:var(--panel);border:1px solid var(--line);border-radius:.25rem;grid-template-columns:minmax(0,1fr) 8rem;align-items:stretch;font-size:.85rem;display:grid}.card-body{gap:var(--s1);flex-direction:column;min-width:0;display:flex}.card.dim{background:var(--bg)}.card.dim .card-title{color:var(--muted)}.card-title{font-family:var(--font-display);letter-spacing:.04em;overflow-wrap:anywhere;font-size:1.5rem;line-height:1}.card-info,.card-desc{color:var(--muted);font-size:.8rem;font-weight:400}.card-desc{font-size:.75rem}.card-actions{gap:var(--s2);flex-direction:column;display:flex}.card-actions button{width:100%;padding:var(--s1) var(--s2);line-height:1.1}button.card-launch{min-height:var(--touch);font-family:var(--font-display);padding-inline:var(--s1);letter-spacing:.02em;white-space:nowrap;text-overflow:clip;text-transform:uppercase;color:var(--accent-text);background:var(--alarm-bg);border-color:var(--alarm);flex:auto;font-size:1.3rem;font-weight:400;overflow:hidden}button.card-discard{min-height:2.75rem;color:var(--text);background:0 0;font-size:.8rem;font-weight:400}button.card-launch.room{white-space:normal;overflow-wrap:anywhere;font-size:1.1rem;line-height:1}button.card-launch.waiting,button.card-launch[aria-disabled=true],button.card-launch:disabled{color:var(--muted);background:var(--panel-2);border-color:var(--line);cursor:not-allowed}button.card-discard.waiting,button.card-discard[aria-disabled=true],button.card-discard:disabled{color:var(--muted);border-color:var(--line);cursor:not-allowed;background:0 0}.feed{margin:var(--s3) 0 0;color:var(--muted);padding:0;font-size:.9rem;list-style:none}.feed li{padding:var(--s1) 0}.feed li.me{color:var(--ok)}.obs-icon{flex:none;width:1rem;height:1rem;display:inline-flex}.obs-icon svg{width:100%;height:100%}.obs-0{color:var(--obs-0)}.obs-1{color:var(--obs-1)}.obs-2{color:var(--obs-2)}.obs-3{color:var(--obs-3)}#room-header .obs-slot{vertical-align:middle;display:inline-flex}#room-header .obs-icon{width:1.4rem;height:1.4rem;margin-right:var(--s2)}ul#observer-list li,.feed li{align-items:center;gap:var(--s2);display:flex}ul#observer-list{margin:0;padding:0;list-style:none}ul#observer-list li{padding:var(--s2) var(--s3);border-bottom:1px solid var(--line)}ul#observer-list li.me{color:var(--ok);font-weight:700}.map-box{margin-top:var(--s3)}.map-frame{position:relative}.map{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:var(--bg);border:1px solid var(--line);cursor:grab;border-radius:.25rem;width:100%;overflow:hidden}.map-svg{width:100%;height:100%;display:block}.map-room-fill{fill:var(--panel-2)}.map-room.selected .map-room-fill{fill:#ffc54233;stroke:var(--obs-1);stroke-width:2px;vector-effect:non-scaling-stroke}.map-walls rect{fill:var(--muted)}.map-doors rect{fill:var(--ok);fill-opacity:.55}.map-lights rect{fill:var(--obs-1)}.map-room.dark .map-room-fill{fill:#000}.map-room.dark .map-label{fill:var(--off)}.map-lights rect.off{fill:var(--off);fill-opacity:.35}.map-room[data-flash] .map-room-fill{fill:var(--flash,var(--text));stroke:var(--flash,var(--text));stroke-width:2px;vector-effect:non-scaling-stroke;animation:.7s ease-in-out infinite alternate map-flash}.map-room[data-flash="0"]{--flash:var(--obs-0)}.map-room[data-flash="1"]{--flash:var(--obs-1)}.map-room[data-flash="2"]{--flash:var(--obs-2)}.map-room[data-flash="3"]{--flash:var(--obs-3)}@keyframes map-flash{0%{opacity:.35}to{opacity:1}}.map-label{font-family:var(--font-display);fill:var(--text);text-transform:uppercase;letter-spacing:.04em;pointer-events:none}.map-player{color:var(--alarm);pointer-events:none;transition:transform .9s linear}.map-player-stop{stop-color:var(--alarm)}.map-player-ring{fill:none;stroke:currentColor;stroke-width:2px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.map-reset{top:var(--s2);right:var(--s2);min-height:2.75rem;padding:var(--s1) var(--s3);background:var(--panel);font-size:.85rem;position:absolute}.map-selected{margin:var(--s2) 0 0;font-family:var(--font-display);letter-spacing:.06em;color:var(--obs-1);font-size:1.5rem;line-height:1}button.invite-button{width:100%;margin-top:var(--s4)}.invite{z-index:30;padding:var(--s3);background:#070a09f0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.invite-card{width:100%;max-width:22rem;padding:var(--s3);text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:.25rem;margin:auto}.invite-code{font-family:var(--font-display);letter-spacing:.3em;margin:0;padding-left:.3em;font-size:4rem;line-height:1}.invite-qr{margin:var(--s3) auto 0;aspect-ratio:1;width:min(16rem,100%)}.invite-qr-svg{border-radius:.25rem;width:100%;height:100%;display:block}.invite-scan{margin:var(--s2) 0 0;color:var(--muted)}.invite-link{margin:var(--s2) 0 0;color:var(--muted);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font-size:.75rem}.invite-actions{gap:var(--s2);margin-top:var(--s3);display:flex}.invite-actions button{flex:1}.invite-status{min-height:1.5rem;margin:var(--s2) 0 0;color:var(--ok)}button.invite-close{width:100%;margin-top:var(--s2)}.enter{animation:.2s ease-out both screen-in}@keyframes screen-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.rec-dot{opacity:1}}
