*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%;background:#1a1a1a;height:100%;overflow:hidden}body{touch-action:none;font-family:system-ui,-apple-system,Segoe UI,sans-serif}#renderCanvas{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui-root{pointer-events:none;z-index:10;position:fixed;inset:0}:where(#ui-root)>*{pointer-events:auto}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.visually-hidden:focus-visible{clip-path:none;color:#fff;z-index:100;background:#111;border-radius:8px;width:auto;height:auto;padding:8px 14px;top:12px;left:50%;transform:translate(-50%)}.loading-screen,.error-screen{z-index:50;color:#f2efe9;text-align:center;background:#1a1a1a;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;transition:opacity .3s;display:flex;position:fixed;inset:0}.is-hidden{opacity:0;pointer-events:none;visibility:hidden}.loading-title{letter-spacing:.02em;font-size:clamp(1.2rem,4vw,1.8rem);font-weight:600}.loading-bar{background:#3a3a3a;border-radius:2px;width:min(320px,70vw);height:4px;overflow:hidden}.loading-bar-fill{background:#e8c170;height:100%;transition:width .2s}.loading-progress{font-variant-numeric:tabular-nums;color:#b8b2a7}.btn{font:inherit;color:#f2efe9;cursor:pointer;background:#2c2c2c;border:1px solid #555;border-radius:8px;padding:10px 22px}.btn:hover{background:#3a3a3a}.btn:focus-visible{outline-offset:2px;outline:2px solid #e8c170}.fade-overlay{z-index:40;pointer-events:none;background:#000;transition-property:opacity;transition-timing-function:ease;position:fixed;inset:0}.hud-title{top:calc(12px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left));color:#f2efe9;text-shadow:0 1px 3px #000c;font-size:1rem;font-weight:600;position:fixed}.hud-actions{top:calc(12px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));gap:8px;display:flex;position:fixed}.btn-hud{background:#1119;padding:8px 12px;font-size:1rem;line-height:1}.hud-hint{bottom:calc(14px + env(safe-area-inset-bottom));color:#f2efe9;white-space:nowrap;text-overflow:ellipsis;background:#1111118c;border-radius:999px;max-width:92vw;padding:6px 14px;font-size:.8rem;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}.room-menu{bottom:calc(14px + env(safe-area-inset-bottom));left:calc(16px + env(safe-area-inset-left));z-index:20;flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:fixed}.room-menu-toggle{font:inherit;color:#f2efe9;cursor:pointer;background:#1111118c;border:0;border-radius:999px;align-items:center;gap:8px;padding:11px 16px;font-size:.85rem;display:inline-flex}.room-menu-toggle:hover{background:#111111c7}.room-menu-toggle:focus-visible{outline-offset:2px;outline:2px solid #e8c170}.room-menu-caret{font-size:.7em;transition:transform .15s}.room-menu.is-open .room-menu-caret{transform:rotate(180deg)}.room-menu-list{background:#111111eb;border-radius:12px;min-width:170px;max-height:50vh;padding:6px;list-style:none;overflow-y:auto}.room-menu-item{text-align:left;width:100%;font:inherit;color:#f2efe9;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:11px 14px;font-size:.9rem;display:block}.room-menu-item:hover{background:#ffffff1f}.room-menu-item:focus-visible{outline-offset:-2px;outline:2px solid #e8c170}.room-menu-item.is-current{color:#e8c170;font-weight:600}@media (width<=600px){.hud-hint{display:none}}.help-overlay{z-index:60;background:#0009;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){.loading-screen,.error-screen,.loading-bar-fill,.help-overlay,.room-menu-caret{transition:none}}.help-card{color:#f2efe9;background:#222;border-radius:12px;max-width:min(420px,90vw);max-height:85vh;padding:28px 32px;position:relative;overflow-y:auto}.help-card h2{margin-bottom:12px;font-size:1.25rem}.help-card h3{color:#e8c170;margin:14px 0 6px;font-size:.95rem}.help-card ul{list-style:none}.help-card li{color:#d8d2c7;padding:3px 0}.help-card li:before{content:"• ";color:#e8c170}.help-close{padding:6px 10px;position:absolute;top:10px;right:10px}.help-start{width:100%;margin-top:18px}.mobile-controls{bottom:calc(18px + env(safe-area-inset-bottom));right:calc(16px + env(safe-area-inset-right));flex-direction:column;gap:10px;display:flex;position:fixed}.mobile-move{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#1111118c;border-radius:50%;width:64px;height:64px;font-size:1.3rem}.debug-panel{z-index:70;color:#9fe89f;background:#0a0a0ad9;border-radius:8px;width:260px;padding:12px;font-family:ui-monospace,Consolas,monospace;font-size:11px;position:fixed;top:60px;left:16px}.debug-panel pre{white-space:pre-wrap;word-break:break-all;margin-bottom:8px}.debug-help{color:#777;margin-top:8px}.tour{bottom:calc(70px + env(safe-area-inset-bottom));z-index:25;background:#1111119e;border-radius:999px;align-items:center;gap:12px;width:min(620px,100vw - 28px);padding:9px 14px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.tour-play{color:#1a1a1a;cursor:pointer;background:#e8c170;border:0;border-radius:50%;flex:none;width:40px;height:40px;font-size:.85rem}.tour-play:hover{background:#f0cd85}.tour-play:focus-visible{outline-offset:2px;outline:2px solid #fff}.tour-track{cursor:pointer;background:#ffffff40;border-radius:3px;flex:1;height:6px;position:relative}.tour-fill{background:#e8c170;border-radius:3px;width:0%;height:100%}.tour-chapter{cursor:pointer;background:#f2efe9;border:2px solid #1a1a1a;border-radius:50%;width:13px;height:13px;margin-left:-6.5px;padding:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.tour-chapter:hover{background:#e8c170}.tour-chapter:focus-visible{outline-offset:2px;outline:2px solid #e8c170}.tour-chapter-label{color:#f2efe9;white-space:nowrap;pointer-events:none;text-shadow:0 1px 3px #000000f2;font-size:.7rem;position:absolute;bottom:15px;left:50%;transform:translate(-50%)}.tour-time{color:#f2efe9;font-variant-numeric:tabular-nums;flex:none;font-size:.75rem}@media (width<=600px){.tour-chapter-label{display:none}.tour-chapter{width:16px;height:16px;margin-left:-8px}}.help-tour{color:#d8d2c7;margin-bottom:6px;font-size:.9rem}
