html,body{background:#e8e4dc;height:100%;margin:0;font-family:system-ui,sans-serif;overflow:hidden}#world{touch-action:none;width:100%;height:100%;display:block}#overlay-root{pointer-events:none;position:fixed;inset:0}#overlay-root>*{pointer-events:auto}.mute-button{top:calc(1rem + env(safe-area-inset-top));left:calc(1rem + env(safe-area-inset-left));color:#f2efe7;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141414b3;border:0;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .75rem;font:600 .8rem/1.2 system-ui,sans-serif;display:inline-flex;position:fixed}.mute-button:hover{background:#141414d9}.mute-button:focus-visible{outline-offset:2px;outline:3px solid #1f6fd1}.touch-joystick{left:calc(1.5rem + env(safe-area-inset-left));bottom:calc(1.5rem + env(safe-area-inset-bottom));touch-action:none;-webkit-user-select:none;user-select:none;background:#26292a38;border:2px solid #f2efe7b3;border-radius:50%;place-items:center;width:8rem;height:8rem;display:grid;position:fixed}.touch-joystick__knob{pointer-events:none;background:#f2efe7d9;border-radius:50%;width:3.4rem;height:3.4rem;box-shadow:0 2px 8px #26292a4d}.touch-joystick--active .touch-joystick__knob{background:#f2efe7}#overlay-root>.npc-bubble{pointer-events:none}.tuning-panel{color:#f2efe7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141414c7;border-radius:.5rem;width:16rem;padding:.75rem 1rem 1rem;font-size:.8rem;position:fixed;top:1rem;right:1rem}.tuning-panel h2{margin:0 0 .5rem;font-size:.85rem;font-weight:600}.tuning-panel__row{grid-template-columns:1fr auto;align-items:center;gap:.25rem .5rem;margin-bottom:.4rem;display:grid}.tuning-panel__label{opacity:.85;grid-column:1/-1}.tuning-panel__row input[type=range]{width:100%}.tuning-panel__readout{text-align:right;font-variant-numeric:tabular-nums;min-width:2.5rem}.map-attribution{color:#28241eb3;font-size:.7rem;text-decoration:none;position:fixed;bottom:.4rem;right:.5rem}.map-attribution:hover,.map-attribution:focus-visible{text-decoration:underline}.dev-console{color:#f2efe7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141414d1;border-radius:.5rem;flex-direction:column;gap:.5rem;width:min(28rem,100vw - 2rem);padding:.75rem;font:.75rem/1.4 ui-monospace,Cascadia Mono,Consolas,monospace;display:flex;position:fixed;bottom:1rem;left:1rem}.dev-console[hidden]{display:none}.dev-console__status{font-variant-numeric:tabular-nums;opacity:.85}.dev-console__group{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.dev-console__group-label{opacity:.6;min-width:6.5rem}.dev-console button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #f2efe74d;border-radius:.3rem;padding:.2rem .55rem}.dev-console button:hover{background:#f2efe71f}.dev-console button[aria-pressed=true]{color:#1a1a1a;background:#f2efe7}.dev-console__log{max-height:10rem;margin:0;padding:0;list-style:none;overflow-y:auto}.dev-console__line--echo{opacity:.6}.dev-console__line--error{color:#ff9d8a}.dev-console__log:empty{display:none}.dev-console__input{color:inherit;font:inherit;background:#00000059;border:1px solid #f2efe74d;border-radius:.3rem;padding:.35rem .5rem}.totem-panel{--panel-ink:#26292a;--panel-muted:#5d5a53;--panel-paper:#f2efe7;--panel-card:#fff;--panel-line:#d8d0bf;--panel-accent:#cc4938;--panel-focus:#1f6fd1;box-sizing:border-box;background:var(--panel-paper);color:var(--panel-ink);border-top:6px solid var(--panel-accent);flex-direction:column;gap:.6rem;padding:1.1rem 1.25rem 1.25rem;font:15px/1.4 system-ui,sans-serif;display:flex;overflow:hidden}.totem-panel[hidden]{display:none}.totem-panel *,.totem-panel :before,.totem-panel :after{box-sizing:border-box}.totem-panel.panel--overlay{border-radius:.6rem;width:min(34rem,100vw - 2rem);max-height:calc(100vh - 3rem);position:fixed;top:50%;left:1.5rem;transform:translateY(-50%);box-shadow:0 12px 40px #26292a40}.totem-panel.panel--in-world{transform-origin:0 0;width:720px;height:540px;position:absolute;top:0;left:0}@media (width<=40rem){.totem-panel.panel--overlay{max-height:70vh;top:auto;bottom:1rem;left:1rem;transform:none}}.totem-panel__header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.totem-panel__title{margin:0;font-size:1.35rem;line-height:1.2}.totem-panel__privacy{color:var(--panel-muted);background:#fff4dc;border-left:3px solid #e0a64b;margin:0;padding:.45rem .65rem;font-size:.85rem}.totem-panel__list,.totem-panel__detail{flex:1;min-height:0;overflow-y:auto}.totem-panel__hint{color:var(--panel-muted);margin:0 0 .5rem;font-size:.9rem}.totem-panel__group+.totem-panel__group{margin-top:.8rem}.totem-panel__group-title{letter-spacing:.06em;text-transform:uppercase;color:var(--panel-accent);margin:0 0 .4rem;font-size:.8rem}.totem-panel__cards{grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.course-card{border:1px solid var(--panel-line);background:var(--panel-card);width:100%;height:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:.4rem;flex-direction:column;gap:.15rem;padding:.55rem .7rem;display:flex}.course-card:hover{border-color:var(--panel-accent)}.course-card__title{font-weight:600}.course-card__description{color:var(--panel-muted);font-size:.82rem}.totem-panel button,.totem-panel select,.totem-panel input{font:inherit}.totem-panel__close,.totem-panel__back{border:1px solid var(--panel-line);background:var(--panel-card);color:inherit;cursor:pointer;border-radius:.35rem;padding:.3rem .7rem}.totem-panel__back{margin-bottom:.4rem}.totem-panel__detail-category{letter-spacing:.06em;text-transform:uppercase;color:var(--panel-accent);margin:.2rem 0 0;font-size:.8rem}.totem-panel__detail-title{margin:.1rem 0 .3rem;font-size:1.25rem}.totem-panel__detail-description{margin:0 0 .8rem}.enrol-form{border:1px solid var(--panel-line);background:var(--panel-card);border-radius:.45rem;gap:.55rem;padding:.8rem;display:grid}.enrol-form__field{gap:.2rem;display:grid}.enrol-form__label{font-size:.85rem;font-weight:600}.enrol-form__select,.enrol-form__input{color:inherit;background:#fff;border:1px solid #b7ac98;border-radius:.3rem;padding:.4rem .5rem}.enrol-form__submit{background:var(--panel-accent);color:#fff;cursor:pointer;border:0;border-radius:.35rem;justify-self:start;padding:.5rem 1.1rem;font-weight:600}.enrol-form__submit:hover{background:#b33d2e}.enrol-form__note{color:var(--panel-muted);margin:0;font-size:.78rem}.totem-panel :focus-visible{outline:3px solid var(--panel-focus);outline-offset:2px}.totem-panel__detail-title:focus{outline:none}.npc-bubble{box-sizing:border-box;color:#26292a;justify-content:center;align-items:center;padding:0 0 18px;font:600 30px/1.2 system-ui,sans-serif;display:flex}.npc-bubble[hidden]{display:none}.npc-bubble__text{text-align:center;background:#fff;border:3px solid #4f86a6;border-radius:1.1em;margin:0;padding:.55em .9em;position:relative}.npc-bubble__text:after{content:"";background:#fff;border:3px solid #4f86a6;border-width:0 3px 3px 0;width:16px;height:16px;position:absolute;bottom:-11px;left:50%;transform:translate(-50%)rotate(45deg)}.npc-bubble.panel--in-world{transform-origin:0 0;width:528px;height:180px;position:absolute;top:0;left:0}.npc-bubble.panel--overlay{filter:drop-shadow(0 4px 10px #26292a33);max-width:min(20rem,100vw - 2rem);font-size:1rem;position:fixed;top:0;left:0}
