@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/dm-sans-400.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/dm-sans-500.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/dm-sans-600.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/dm-sans-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/manrope-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/manrope-600.ttf) format('truetype');
}

:root{color-scheme:dark;--ink:#f6f4fc;--muted:#b6b1c5;--control-panel-accent:#eadefc;--control-panel-accent-rgb:234,222,252;--control-panel-action:#8df5a6;--control-panel-action-rgb:141,245,166;--control-panel-action-inactive:#b69cff;--control-panel-action-inactive-rgb:182,156,255;--control-panel-surface:#1e172c;--control-panel-surface-end:#0e0e1b;--control-panel-border:#ffffff26;--control-panel-card:#10151f;--control-panel-card-selected:#191923;--control-panel-card-hover:#1b1d2a;--control-panel-card-border:#ffffff25;--control-panel-thumbnail:#0e1320;--control-panel-rail:#ffffff28;--control-panel-text:#eeebf4;--control-panel-muted:#9993a7;--accent:var(--control-panel-accent);--accent-rgb:var(--control-panel-accent-rgb);font-family:'DM Sans',sans-serif;font-synthesis:none;font-size:16px;background:#05060e;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{cursor:wait}button svg{pointer-events:none;flex-shrink:0}svg{display:block}::selection{background:#77609a}#app{min-height:100svh}
#experience{position:fixed;inset:0;overflow:hidden;background:#05060e;isolation:isolate}.scenery{position:absolute;inset:-4%;background-position:center;background-size:cover;opacity:0;transition:opacity 2.4s ease;will-change:transform}.scenery.active{opacity:.07}#journey{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.scene-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,5,14,.64),transparent 22%,transparent 87%,rgba(5,5,14,.23));pointer-events:none;transition:opacity .7s}.vignette{position:absolute;inset:0;box-shadow:inset 0 0 120px 20px #01030b40;pointer-events:none}#dimmer{position:absolute;inset:0;background:#000;pointer-events:none;opacity:.05}
.chrome{position:relative;z-index:2;transition:opacity .65s ease,transform .65s ease}.topbar{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:30px 42px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;font-family:'Manrope',sans-serif;font-size:21px;font-weight:600;letter-spacing:-1.1px}.brand-mark{flex:none;object-fit:contain;filter:drop-shadow(0 0 12px #aeecd833)}.icon-button{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:transparent;color:#d4cede;transition:background .2s,color .2s}.icon-button:hover{background:rgba(255,255,255,.1);color:white}.icon-button.is-active{color:var(--accent);background:rgba(var(--accent-rgb),.1)}.outline-icon{border:1px solid #ffffff26;width:42px;height:42px;background:#080b1433;backdrop-filter:blur(10px)}
.bottom-shell{position:fixed;bottom:max(27px,env(safe-area-inset-bottom));left:32px;right:32px;display:flex;justify-content:center;align-items:center;pointer-events:none}.bottom-shell>*{pointer-events:auto}
.control-bar{position:relative;display:flex;align-items:center;gap:18px;padding:15px;border:1px solid var(--control-panel-border);background:linear-gradient(115deg,var(--control-panel-surface),var(--control-panel-surface-end));backdrop-filter:blur(28px);border-radius:0;box-shadow:0 8px 40px #0004;margin:0 auto}
.play-button{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--control-panel-accent);color:var(--control-panel-surface);flex-shrink:0}.play-button:hover{background:white}.divider{height:31px;width:1px;background:#ffffff21;flex-shrink:0}
.sound-control{display:flex;align-items:center;gap:8px}.sound-text{width:112px}.sound-text strong{display:block;font-size:12px;font-weight:500;line-height:1.4}.sound-text small{display:block;margin-top:3px;font-size:10px;color:var(--control-panel-muted)}.sound-bars{display:flex;align-items:center;justify-content:center;gap:2px;width:18px;height:18px;color:var(--control-panel-accent)}.sound-bars i{display:block;width:3px;height:7px;background:currentColor;border-radius:1px;transform-origin:center;animation:sound-bars 1s ease-in-out infinite}.sound-bars i:nth-child(1){animation-delay:-.24s}.sound-bars i:nth-child(2){height:12px;animation-delay:-.58s}.sound-bars i:nth-child(3){height:9px;animation-delay:-.8s}.sound-bars i:nth-child(4){height:5px;animation-delay:-.42s}@keyframes sound-bars{0%,100%{transform:scaleY(.42)}50%{transform:scaleY(1)}}
.world-switch{display:flex;align-items:center;justify-content:space-between;gap:15px;text-align:left;padding:7px 12px 7px 16px;min-width:198px;min-height:46px;border-radius:0;background-color:#181426;background-image:linear-gradient(90deg,#19142ae0,#171225ac),var(--world-thumbnail,none);background-position:center;background-size:cover;box-shadow:0 0 12px rgba(201,180,246,.08),inset 0 0 0 1px rgba(255,255,255,.05);transition:background-color .2s,box-shadow .2s}.world-switch:hover,.world-switch[aria-expanded=true]{background-color:#ffffff16;box-shadow:0 0 16px rgba(216,196,255,.13),inset 0 0 0 1px rgba(255,255,255,.08)}.world-select-copy{min-width:0;display:block}.world-switch strong{display:block;font-weight:500;font-size:13px;white-space:nowrap;text-shadow:0 1px 8px #000}.world-switch .chevron{color:var(--control-panel-text);filter:drop-shadow(0 1px 5px #000);flex-shrink:0;transition:transform .25s}.world-switch[aria-expanded=true] .chevron{transform:rotate(180deg)}
.bar-actions{display:flex;gap:8px}.bar-actions .icon-button{width:36px;height:40px}.icon-button[aria-expanded=true]{color:var(--accent);background:rgba(var(--accent-rgb),.12)}
.control-popover{position:absolute;bottom:calc(100% + 15px);left:50%;transform:translateX(-50%);width:390px;max-width:calc(100vw - 32px);max-height:calc(100svh - 160px);overflow-y:auto;border:1px solid var(--control-panel-border);border-radius:0;background:linear-gradient(145deg,var(--control-panel-surface),var(--control-panel-surface-end));backdrop-filter:blur(30px);box-shadow:0 16px 60px #0006;padding:13px;animation:panel-in .22s ease-out;scrollbar-width:thin;scrollbar-color:var(--control-panel-border) transparent}.control-popover[hidden]{display:none}
.world-panel{width:min(1040px,calc(100vw - 48px));display:grid;grid-template-columns:30px minmax(0,1fr) 30px;align-items:center;gap:6px;overflow:hidden;padding:10px}.world-panel #world-menu{display:flex;grid-column:2;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:0 1px 4px}.world-rail-button{width:30px;height:44px;display:grid;place-items:center;border:1px solid rgba(234,222,252,.13);border-radius:0;background:#171225b8;color:var(--control-panel-text);transition:background .2s,color .2s,border-color .2s}.world-rail-button:hover:not(:disabled){background:var(--control-panel-card-hover);border-color:rgba(234,222,252,.3);color:var(--control-panel-accent)}.world-rail-button:disabled{opacity:.28;cursor:default}.world-rail-chevron-left{transform:rotate(-90deg)}.world-rail-chevron-right{transform:rotate(90deg)}.world-option{position:relative;display:flex;flex:0 0 176px;align-items:stretch;padding:0;text-align:left;border:0;border-radius:0;background:transparent;scroll-snap-align:start;transition:opacity .35s ease}.world-option+.world-option{margin:0}.world-option:hover{opacity:1;transform:none}.world-option:focus-visible{outline:1px solid var(--world-accent);outline-offset:3px}.world-option[aria-checked=false]{opacity:.68}.world-option[aria-checked=true]{opacity:1}.world-thumbnail{position:relative;display:block;width:100%;height:96px;overflow:hidden;border:1px solid rgba(234,222,252,.16);border-radius:0;background:var(--control-panel-thumbnail);box-shadow:0 8px 18px #0003}.world-thumbnail:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,#090815db 100%);pointer-events:none}.world-thumbnail>img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.84) brightness(.92);transition:transform .8s cubic-bezier(.2,.65,.2,1),filter .8s ease}.world-option:hover .world-thumbnail>img{transform:scale(1.075);filter:saturate(1.22) brightness(1.06)}.world-option[aria-checked=true] .world-thumbnail{border-color:rgba(234,222,252,.5);box-shadow:0 0 0 1px rgba(234,222,252,.16),0 10px 20px #0005}.world-option-copy{position:absolute;z-index:1;left:9px;right:8px;bottom:8px;min-width:0;text-shadow:0 1px 8px #000}.world-option strong{display:block;overflow:hidden;color:var(--control-panel-text);font-size:12px;font-weight:600;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.settings-panel{width:520px;padding:19px 23px 23px}.settings-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.slider-control{display:block;min-width:0}.slider-control+.slider-control{margin-top:0}.slider-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#d6cede;margin-bottom:10px;gap:18px}.slider-label span:last-child{font-size:11px;color:var(--accent);font-variant-numeric:tabular-nums}.slider-control input{width:100%;min-width:0;margin:0}input[type=range]{appearance:none;-webkit-appearance:none;height:22px;border-radius:0;background:linear-gradient(#ffffff38,#ffffff38) center/100% 3px no-repeat;accent-color:var(--accent);cursor:pointer;display:block}input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px rgba(var(--accent-rgb),.2)}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--accent)}
.session{position:absolute;right:0;font-size:11px;color:#b8afc4;display:flex;align-items:center;gap:8px;white-space:nowrap;font-variant-numeric:tabular-nums;pointer-events:none}.session svg{opacity:.8}.session-label{color:#776d87;margin-right:3px}
.quiet .chrome,.quiet #toast{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility 0s .45s}.quiet .chrome *{pointer-events:none}.quiet .scene-shade{opacity:0}#app.quiet,#app.quiet #experience{cursor:none!important}
@keyframes panel-in{from{opacity:0;transform:translate(-50%,7px)}to{opacity:1;transform:translate(-50%,0)}}
.popover{position:fixed;right:42px;top:94px;width:305px;max-height:calc(100svh - 120px);overflow-y:auto;background:#14121fee;border:1px solid #ffffff24;backdrop-filter:blur(28px);border-radius:14px;padding:21px;z-index:5;box-shadow:0 12px 50px #0005}.popover[hidden]{display:none}.popover h2{font-size:15px;margin:0 0 18px;font-weight:500}.popover p{font-size:12px;color:#ada3bb;line-height:1.7}.shortcut{display:flex;justify-content:space-between;margin:12px 0;font-size:12px;color:#ccc4d8;align-items:center}.shortcut kbd{border:1px solid #ffffff24;border-radius:4px;min-width:24px;padding:3px 6px;font-size:10px;text-align:center;font-family:inherit;color:#ded1f7;background:#ffffff06}.volume-row{display:flex;align-items:center;gap:12px;margin:18px 0 10px}.volume-row input{flex:1;min-width:0}.volume-row label{font-size:12px}.volume-row output{font-size:11px;color:#a99ab9;width:29px}.popover hr{border:0;border-top:1px solid #ffffff16;margin:18px 0}
.paused .sound-bars i{animation-play-state:paused}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.loading-screen{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px;background:radial-gradient(ellipse at 50% 42%,#19172c,#050710 68%);transition:opacity .9s,visibility .9s;color:#e7e0f7;text-align:center;padding:32px}.loading-screen.loaded{opacity:0;visibility:hidden;pointer-events:none}.loading-screen p{font-size:17px;font-weight:400;margin:8px 0 0;max-width:430px;line-height:1.6}.loading-screen small{font-size:12px;color:#978cab}.loading-orbit{height:67px;width:67px;border:1px solid #d1b2fb35;border-top-color:#c7b1f8;border-radius:50%;animation:orbit-loading 3s linear infinite}.loading-track{width:170px;height:2px;background:#ffffff15;border-radius:4px;overflow:hidden}.loading-track span{height:100%;display:block;background:#d0bdf9;transition:width .5s}#reload-world{margin-top:10px;padding:12px 20px;border-radius:8px;background:#e8daf9;color:#251d31}#reload-world[hidden]{display:none}@keyframes orbit-loading{to{transform:rotate(360deg)}}
/* Keep the surrounding world in charge of the screen. */
.top-actions{display:flex;align-items:center;gap:12px}.view-toggle{display:flex;padding:4px;border:1px solid #ffffff29;border-radius:30px;background:#0b1024b8;backdrop-filter:blur(18px)}.view-toggle button{padding:9px 17px;font-size:14px;border-radius:24px;background:transparent;color:#aeb7cc;min-height:38px}.view-toggle button[aria-pressed=true]{background:#dcdff3;color:#171d2d}.view-toggle button:hover{color:#fff}.view-toggle button[aria-pressed=true]:hover{color:#171d2d}#vr-help[hidden]{display:none}#app[data-view='360'] #experience{cursor:grab;touch-action:none}#app.looking #experience{cursor:grabbing}/* Surrounding worlds retain the same contrast across the entire view. */
#app[data-view='360'] .scene-shade,#app[data-view='360'] .vignette{display:none}.in-vr .chrome,.in-vr #toast{visibility:hidden}#app[data-view='360'] .scenery{display:none}
@media(min-width:1600px){.control-bar{gap:20px}.bottom-shell{bottom:34px}}
@media(max-width:1150px){.session{display:none}.topbar{padding:25px 28px}.bottom-shell{left:24px;right:24px}.control-bar{gap:13px}}
@media(max-width:760px){.sound-text,.equalizer{display:none}.sound-control{gap:0}.control-bar{gap:10px}.world-switch{min-width:185px}}
@media(max-width:540px){.topbar{padding:18px}.brand{font-size:18px;gap:6px}.brand-mark{width:27px;height:27px}.top-actions{gap:6px}.view-toggle{padding:3px}.view-toggle button{font-size:12px;padding:8px 10px;min-height:32px}.top-actions>.outline-icon{width:34px;height:34px}.top-actions>.outline-icon svg{width:16px;height:16px}.bottom-shell{bottom:max(17px,env(safe-area-inset-bottom));left:12px;right:12px}.control-bar{width:100%;gap:0;padding:8px;border-radius:0}.control-bar>.divider{display:none}.play-button{width:36px;height:36px}.sound-control .icon-button{width:36px;height:40px}.world-switch{flex:1;min-width:0;gap:5px;padding:7px 7px 7px 11px;margin:0 3px}.world-switch strong{font-size:11px;white-space:normal;line-height:1.3}.world-switch .chevron{width:12px}.bar-actions{gap:0}.bar-actions .icon-button{width:34px;height:40px}.control-popover{max-height:calc(100svh - 160px);width:370px;bottom:calc(100% + 12px);padding:10px}.world-panel{grid-template-columns:26px minmax(0,1fr) 26px;gap:4px}.world-rail-button{width:26px;height:44px}.world-option{padding:0 0 3px}.settings-panel{width:min(360px,calc(100vw - 32px));padding:18px}.settings-panel .slider-label{font-size:12px;gap:8px}.popover{right:16px;top:77px;max-width:calc(100vw - 32px);max-height:calc(100svh - 100px)}.vignette{box-shadow:inset 0 0 90px 10px #0003}.toast{top:90px;font-size:12px}}
@media(max-width:360px){.topbar{padding:15px 12px}.brand{font-size:16px;gap:4px}.brand-mark{width:23px;height:23px}.top-actions{gap:4px}.view-toggle button{padding:7px 8px;min-height:30px}.top-actions>.outline-icon{width:30px;height:30px}.bottom-shell{left:8px;right:8px}.control-bar{padding:6px}.play-button{width:32px;height:32px}.sound-control .icon-button,.bar-actions .icon-button{width:30px;height:40px}.world-switch{margin:0 2px;padding:7px 4px}.world-switch strong{font-size:10px}}
@media(max-height:500px) and (orientation:landscape){.topbar{padding:14px 23px}.brand{font-size:20px}.bottom-shell{bottom:12px}.control-popover{max-height:calc(100svh - 100px)}.popover{top:68px;max-height:calc(100svh - 88px)}.world-option{padding:0 0 3px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.chrome,.scenery{transition:opacity .25s!important}.sound-bars i,.loading-orbit,.control-popover{animation:none}}
.loading-screen.preparing .loading-track span{animation:light-preparation 2.8s ease-in-out infinite;width:35%;background:linear-gradient(90deg,transparent,#cfbb92,#acd9cf,transparent)}.loading-screen.failed .loading-track{display:none}.loading-orbit{position:relative;display:grid;place-items:center;width:90px;height:90px;border:0;border-radius:0;animation:orbit-loading 16s linear infinite}.loading-orbit:before,.loading-orbit:after,.loading-orbit i{content:'';position:absolute;width:54px;height:54px;border:1px solid #b2ddcb6b;transform:rotate(45deg);border-radius:11px 2px;box-shadow:0 0 20px #acd9cf08}.loading-orbit:after{transform:rotate(105deg);border-color:#b9a3d862}.loading-orbit i:nth-child(1){transform:rotate(165deg);border-color:#e1ba8d80}.loading-orbit i:nth-child(2){width:29px;height:29px;transform:rotate(45deg)}.loading-orbit i:nth-child(3){width:8px;height:8px;background:#cce7d8aa;box-shadow:0 0 22px #bbdfbd88}.loading-screen{background:radial-gradient(ellipse at 50% 42%,#172d30,#080e19 65%)}.loading-screen small{color:#9faea8}.loading-track{margin-top:8px}.loading-track span{background:#c8d8bb}@keyframes light-preparation{0%{transform:translateX(-110%)}100%{transform:translateX(390%)}}
@media(prefers-reduced-motion:reduce){.loading-screen.preparing .loading-track span,.loading-orbit{animation:none}.loading-screen.preparing .loading-track span{width:100%;opacity:.55}.loading-screen{transition:opacity .2s,visibility .2s}}
/* Contextual interactions stay inside the one widget as icon-only controls. */
.bar-actions .world-action{position:relative;display:grid;place-items:center;border-radius:50%;color:var(--control-panel-action-inactive);border:0;background:transparent;box-shadow:none}.bar-actions .world-action[aria-pressed=true]{background:rgba(var(--control-panel-action-rgb),.14);color:var(--control-panel-action);box-shadow:0 0 0 2px rgba(var(--control-panel-action-rgb),.06)}.bar-actions .world-action[hidden]{display:none}.world-action-icon{display:block}.bar-actions .world-action[aria-pressed=true] .world-action-icon{animation:world-action-pulse 2.8s ease-in-out infinite}@keyframes world-action-pulse{0%,100%{filter:drop-shadow(0 0 2px rgba(var(--control-panel-action-rgb),.42));transform:translateY(0)}50%{filter:drop-shadow(0 0 6px rgba(var(--control-panel-action-rgb),.78));transform:translateY(-1px) scale(1.02)}}
@media(prefers-reduced-motion:reduce){.bar-actions .world-action[aria-pressed=true] .world-action-icon{animation:none}}
/* Aurorafy arrives through a reflection: the loading mark is a pool of light. */
#app[data-world=aurora] .loading-screen{background:radial-gradient(ellipse at 50% 32%,#193745 0,#0d202e 32%,#07131f 70%);color:#e4f5ef}
#app[data-world=aurora] .loading-screen small{color:#9dbbb9;letter-spacing:.03em}
#app[data-world=aurora] .loading-orbit{animation:none;transform:perspective(180px) rotateX(55deg);width:122px;height:122px}
#app[data-world=aurora] .loading-orbit:before,#app[data-world=aurora] .loading-orbit:after,#app[data-world=aurora] .loading-orbit i{width:96px;height:96px;border-radius:50%;transform:none;border-color:#a3e7d247;box-shadow:0 0 32px #9cdec713;animation:lake-arrival 5s ease-in-out infinite}
#app[data-world=aurora] .loading-orbit:after{width:69px;height:69px;border-color:#aed4ed5c;animation-delay:-1.2s}
#app[data-world=aurora] .loading-orbit i:nth-child(1){width:40px;height:40px;border-color:#e7e4c765;animation-delay:-2.4s}
#app[data-world=aurora] .loading-orbit i:nth-child(2){width:8px;height:8px;background:#d2f3e6b0;box-shadow:0 0 26px #bbdfbd66}
#app[data-world=aurora] .loading-orbit i:nth-child(3){display:none}
#app[data-world=aurora] .loading-track span{background:linear-gradient(90deg,transparent,#b9dfd1,#b1c5e5,transparent)}
@keyframes lake-arrival{0%,100%{opacity:.35;transform:scale(.92)}50%{opacity:.9;transform:scale(1.08)}}
@media(prefers-reduced-motion:reduce){#app[data-world=aurora] .loading-orbit:before,#app[data-world=aurora] .loading-orbit:after,#app[data-world=aurora] .loading-orbit i{animation:none}}
/* High Camp arrives at dusk: a peak, a low ember sun, a lit tent and its small fire on one thin horizon. */
#app[data-world=summit] .loading-screen{background:radial-gradient(ellipse 62% 24% at 36% 86%,#f4a26138,transparent 72%),linear-gradient(180deg,#0b1024 0,#141838 36%,#2a2850 58%,#4a3559 72%,#8a4f55 81%,#d98a5a 86%,#f4a261 88%,#5d3646 90.5%,#1a1630 96%,#0e0f22 100%);color:#f6e9d6}
#app[data-world=summit] .loading-screen small{color:#a9a3c4;letter-spacing:.03em}
#app[data-world=summit] .loading-orbit{animation:none;width:110px;height:110px}
#app[data-world=summit] .loading-orbit:before,#app[data-world=summit] .loading-orbit:after,#app[data-world=summit] .loading-orbit i{border:0;border-radius:0;box-shadow:none;transform:none;animation:none}
#app[data-world=summit] .loading-orbit:before{left:20px;top:52px;width:52px;height:52px;border-top:1px solid #f6e9d6c4;border-left:1px solid #f6e9d6c4;background:linear-gradient(90deg,#f4a26140,transparent 42%);clip-path:polygon(0 0,100% 0,0 100%);transform:scale(.8,1.15) rotate(45deg)}
#app[data-world=summit] .loading-orbit:after{left:8px;top:44px;width:14px;height:14px;border:1px solid #f6b55cd0;border-radius:50%;background:radial-gradient(circle,#f6b55c80,transparent 72%);box-shadow:0 0 24px 5px #f4a26150;animation:summit-sun 6s ease-in-out infinite}
#app[data-world=summit] .loading-orbit i:nth-child(1){left:78px;top:66px;width:16px;height:12px;background:linear-gradient(180deg,#f6b55c,#c8452c);clip-path:polygon(50% 0,100% 100%,0 100%);opacity:.94}
#app[data-world=summit] .loading-orbit i:nth-child(2){left:98px;top:73px;width:4px;height:4px;border-radius:50%;background:#ffd08a;box-shadow:0 0 10px 2px #f4a261b0;animation:summit-fire 1.9s ease-in-out infinite}
#app[data-world=summit] .loading-orbit i:nth-child(3){left:3px;top:78px;width:104px;height:1px;background:linear-gradient(90deg,transparent,#f6e9d68a 16%,#f6e9d68a 84%,transparent)}
#app[data-world=summit] .loading-track{width:220px;background:#f6e9d61c}
#app[data-world=summit] .loading-track span{background:linear-gradient(90deg,#f6b55c,#c8452c)}
#app[data-world=summit] .loading-screen.preparing .loading-track span{background:linear-gradient(90deg,transparent,#f6b55c,#c8452c,transparent)}
#app[data-world=summit] #reload-world{background:#f6e9d6;color:#2a1a1f}
@keyframes summit-sun{0%,100%{opacity:.6;transform:scale(.92)}50%{opacity:1;transform:scale(1.1)}}
@keyframes summit-fire{0%,100%{opacity:.75;transform:scale(.9)}22%{opacity:1;transform:scale(1.2)}41%{opacity:.8;transform:scale(.95)}63%{opacity:1;transform:scale(1.25)}80%{opacity:.7;transform:scale(.85)}}
@media(prefers-reduced-motion:reduce){#app[data-world=summit] .loading-orbit:after,#app[data-world=summit] .loading-orbit i:nth-child(2){animation:none}}
/* Above the Gate arrives before sunrise: the tower in elevation, its two cables, a beacon, and fog moving through its feet. */
#app[data-world=gate] .loading-screen{background:radial-gradient(ellipse 70% 20% at 66% 81%,#f7c59a55,transparent 70%),linear-gradient(180deg,#10172f 0,#1f2d57 32%,#3c5087 54%,#857fa6 69%,#dba189 78%,#f3c6a0 82%,#a3abc9 88%,#5b678f 100%);color:#fdf1e4}
#app[data-world=gate] .loading-screen small{color:#c3cae3;letter-spacing:.03em}
#app[data-world=gate] .loading-orbit{animation:none;width:120px;height:120px;background:radial-gradient(ellipse 56px 78px at -12px 4px,transparent 0 97.4%,#e0573fd9 98.2% 99.3%,transparent 100%),radial-gradient(ellipse 56px 78px at 132px 4px,transparent 0 97.4%,#e0573fd9 98.2% 99.3%,transparent 100%)}
#app[data-world=gate] .loading-orbit:before,#app[data-world=gate] .loading-orbit:after,#app[data-world=gate] .loading-orbit i{border:0;border-radius:0;box-shadow:none;transform:none;animation:none}
#app[data-world=gate] .loading-orbit i:nth-child(1),#app[data-world=gate] .loading-orbit i:nth-child(2){top:14px;width:8px;height:100px;background:linear-gradient(90deg,#e8664a,#b8382a);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%)}
#app[data-world=gate] .loading-orbit i:nth-child(1){left:40px}
#app[data-world=gate] .loading-orbit i:nth-child(2){left:72px}
#app[data-world=gate] .loading-orbit:before{left:46px;top:19px;width:28px;height:74px;background:linear-gradient(180deg,#c8412f 0 9px,transparent 9px 25px,#c8412f 25px 31px,transparent 31px 47px,#c8412f 47px 53px,transparent 53px 68px,#c8412f 68px 74px)}
#app[data-world=gate] .loading-orbit:after{left:74px;top:7px;width:4px;height:4px;border-radius:50%;background:#ff5a3c;box-shadow:0 0 12px 3px #ff5a3c99;animation:gate-beacon 3.4s ease-in-out infinite}
#app[data-world=gate] .loading-orbit i:nth-child(3){left:-34px;top:86px;width:188px;height:40px;background:radial-gradient(ellipse 50% 50% at 50% 50%,#f6e6dcf2,#d9dcecb0 45%,transparent 72%);filter:blur(3px);animation:gate-fog 9s ease-in-out infinite}
#app[data-world=gate] .loading-track{width:220px;background:#fdf1e422}
#app[data-world=gate] .loading-track span{background:linear-gradient(90deg,#f6c59a,#e0573f)}
#app[data-world=gate] .loading-screen.preparing .loading-track span{background:linear-gradient(90deg,transparent,#f6c59a,#e0573f,transparent)}
#app[data-world=gate] #reload-world{background:#fdf1e4;color:#2a1a1f}
@keyframes gate-beacon{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
@keyframes gate-fog{0%,100%{transform:translateX(-12px)}50%{transform:translateX(12px)}}
@media(prefers-reduced-motion:reduce){#app[data-world=gate] .loading-orbit:after,#app[data-world=gate] .loading-orbit i:nth-child(3){animation:none}}
/* About, Terms and Privacy sit at the bottom left, opposite the session clock, and fade with the rest of the controls. */
.legal{position:fixed;left:32px;bottom:max(52px,calc(env(safe-area-inset-bottom) + 25px));z-index:3;display:flex;gap:16px;padding:6px 14px;border-radius:999px;background:#14121f8c;border:1px solid #ffffff1a;backdrop-filter:blur(14px);font-size:11px;letter-spacing:.04em}
.legal a{color:#d6cfe3;text-decoration:none}.help-links a{color:#c9bfe0;text-decoration:none}.legal a:hover,.legal a:focus-visible,.help-links a:hover,.help-links a:focus-visible{color:#f6f4fc;text-decoration:underline;text-underline-offset:3px}
.help-about strong{color:#e6e0f0;font-weight:500}.help-links{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;margin-top:10px}
/* Where the control bar takes the full width there is no room beside it, so the links sit centred just above it. */
@media(max-width:1150px){.legal{left:50%;transform:translateX(-50%);bottom:calc(max(27px,env(safe-area-inset-bottom)) + 88px);padding:4px 12px;font-size:10px;gap:14px}}
@media(max-width:540px){.legal{bottom:calc(max(17px,env(safe-area-inset-bottom)) + 74px)}}
/* An open picker or settings panel rises from the bar into the same space, so the links step aside. */
#app:has(.control-popover:not([hidden])) .legal{opacity:0;visibility:hidden;pointer-events:none}
@media(max-height:500px) and (orientation:landscape){.legal{display:none}}
/* Skybloom (id heaven) arrives in daylight: deep blue above, a low warm sun, mirror water, and one slow ring of light breathing around the sun. */
#app[data-world=heaven] .loading-screen{background:radial-gradient(circle at 50% 40%,#fffdf2f5,#fff1c8b8 8%,#ffdf9c59 20%,#fff0 40%),linear-gradient(180deg,#2f6fd0 0,#6fa9ea 30%,#c9dcf1 47%,#ffd9a6 57%,#ffe9c9 60%,#a9dfe0 62%,#6fc3cf 100%);color:#173a63}
#app[data-world=heaven] .loading-screen small{color:#33598a;letter-spacing:.03em}
#app[data-world=heaven] .loading-orbit{animation:none;width:110px;height:110px}
#app[data-world=heaven] .loading-orbit:before,#app[data-world=heaven] .loading-orbit:after,#app[data-world=heaven] .loading-orbit i{border:0;border-radius:50%;box-shadow:none;transform:none;animation:none}
#app[data-world=heaven] .loading-orbit:before{left:37px;top:37px;width:36px;height:36px;background:#fffdf0;box-shadow:0 0 28px 12px #fff3c4e0,0 0 70px 30px #ffd98a80}
#app[data-world=heaven] .loading-orbit:after{left:15px;top:15px;width:80px;height:80px;border:1px solid #fff6d6c0;animation:heaven-ring 6s ease-in-out infinite}
#app[data-world=heaven] .loading-orbit i{display:none}
#app[data-world=heaven] .loading-track{width:220px;background:#173a6340}
#app[data-world=heaven] .loading-track span{background:linear-gradient(90deg,#fff6d6,#ffc76a)}
#app[data-world=heaven] .loading-screen.preparing .loading-track span{background:linear-gradient(90deg,transparent,#fff6d6,#ffc76a,transparent)}
#app[data-world=heaven] #reload-world{background:#173a63;color:#fffaf0}
@keyframes heaven-ring{0%,100%{opacity:.35;transform:scale(.9)}50%{opacity:.95;transform:scale(1.16)}}
@media(prefers-reduced-motion:reduce){#app[data-world=heaven] .loading-orbit:after{animation:none;opacity:.8}}
/* Wild Tower arrives in bright open air: clear sky over a low band of fields, a slender tower, a ring of old light breathing at its top, and seeds on the wind. */
#app[data-world=tower] .loading-screen{background:radial-gradient(circle at 80% 13%,#fffbe6f5,#fff8dcb0 7%,#ffffff55 19%,#fff0 36%),linear-gradient(180deg,#4f9fe6 0,#86c0ee 22%,#bfe0f4 38%,#dcf0f9 50%,#e6f4f7 80%,#c4e2a0 84%,#8cc65a 89%,#5aa53d 100%);color:#123a5a}
#app[data-world=tower] .loading-screen small{color:#3d6a8a;letter-spacing:.03em}
#app[data-world=tower] .loading-orbit{animation:none;width:110px;height:110px}
#app[data-world=tower] .loading-orbit:before,#app[data-world=tower] .loading-orbit:after,#app[data-world=tower] .loading-orbit i{border:0;border-radius:0;box-shadow:none;transform:none;animation:none}
#app[data-world=tower] .loading-orbit:before{left:44px;top:24px;width:22px;height:80px;background:linear-gradient(180deg,#1d6f86,#123a5a 34%);clip-path:polygon(44% 0,56% 0,60% 90%,100% 97%,100% 100%,0 100%,0 97%,40% 90%)}
#app[data-world=tower] .loading-orbit:after{left:38px;top:19px;width:34px;height:12px;border:1px solid #159a9c;border-radius:50%;box-shadow:0 0 0 1px #57e6e0 inset,0 0 16px 3px #57e6e0b8;animation:tower-ring 5.4s ease-in-out infinite}
#app[data-world=tower] .loading-orbit i{width:3px;height:3px;border-radius:50%;background:#fffdf2;box-shadow:0 0 6px 1px #ffffffd0;opacity:0;animation:tower-seed 7s linear infinite}
#app[data-world=tower] .loading-orbit i:nth-child(1){left:6px;top:58px}
#app[data-world=tower] .loading-orbit i:nth-child(2){left:0;top:40px;width:2px;height:2px;animation-duration:9s;animation-delay:-3.2s}
#app[data-world=tower] .loading-orbit i:nth-child(3){left:10px;top:76px;background:#ffd48f;box-shadow:0 0 6px 1px #ffb24ab0;animation-duration:8s;animation-delay:-5.6s}
#app[data-world=tower] .loading-track{width:220px;background:#123a5a4d}
#app[data-world=tower] .loading-track span{background:linear-gradient(90deg,#57e6e0,#ffb24a)}
#app[data-world=tower] .loading-screen.preparing .loading-track span{background:linear-gradient(90deg,transparent,#57e6e0,#ffb24a,transparent)}
#app[data-world=tower] #reload-world{background:#123a5a;color:#f4fbff}
@keyframes tower-ring{0%,100%{opacity:.62;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}
@keyframes tower-seed{0%{opacity:0;transform:translate(0,0)}14%{opacity:.95}80%{opacity:.9}100%{opacity:0;transform:translate(96px,-22px)}}
@media(prefers-reduced-motion:reduce){#app[data-world=tower] .loading-orbit:after{animation:none}#app[data-world=tower] .loading-orbit i{animation:none;opacity:.85}#app[data-world=tower] .loading-orbit i:nth-child(1){left:24px;top:52px}#app[data-world=tower] .loading-orbit i:nth-child(2){left:82px;top:36px}#app[data-world=tower] .loading-orbit i:nth-child(3){left:90px;top:66px}}

#world-interaction-shortcut[hidden]{display:none}

.vibe-switch{min-width:132px;justify-content:flex-start;gap:11px;background-image:linear-gradient(90deg,#19142ae0,#171225ac)}.vibe-switch[hidden]{display:none}.vibe-switch .chevron{margin-left:auto}
#app[data-world=hypnotic] .vibe-switch .world-select-copy strong{font-size:15px}
.vibe-swatch{flex-shrink:0;width:19px;height:19px;border:1px solid rgba(255,255,255,.22);box-shadow:0 0 10px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.06)}
.vibe-panel{width:calc(100% + 2px);max-width:none;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;padding:11px}
.vibe-panel #vibe-menu{display:contents}
.vibe-option{display:flex;min-width:0;align-items:center;justify-content:center;gap:8px;padding:9px 8px;text-align:left;border:1px solid rgba(234,222,252,.14);border-radius:0;background:#171225b8;color:var(--control-panel-text);transition:background .2s,border-color .2s,opacity .3s}
.vibe-option[aria-checked=false]{opacity:.66}
.vibe-option[aria-checked=true]{opacity:1;border-color:rgba(234,222,252,.5);background:var(--control-panel-card-selected)}
.vibe-option:hover{opacity:1;background:var(--control-panel-card-hover);border-color:rgba(234,222,252,.3)}
.vibe-option:focus-visible{outline:1px solid var(--control-panel-accent);outline-offset:3px}
.vibe-option-swatch{flex-shrink:0;width:26px;height:26px;border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 0 0 1px rgba(0,0,0,.35)}
.vibe-option-copy{min-width:0;overflow:hidden;font-size:12px;font-weight:600;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
@media(min-width:541px){.vibe-panel:has(.vibe-option:nth-child(6)) .vibe-option{gap:6px;padding-inline:4px}.vibe-panel:has(.vibe-option:nth-child(6)) .vibe-option-swatch{width:22px;height:22px}}
@media(max-width:760px){.vibe-switch{min-width:0}}
@media(max-width:540px){.vibe-switch{flex:0 0 auto;padding:7px 9px;gap:6px}.vibe-switch .world-select-copy{display:none}.vibe-panel{gap:4px;padding:9px}.vibe-option{flex-direction:column;gap:6px;padding:8px 3px;text-align:center}.vibe-option-swatch{width:20px;height:20px}.vibe-option-copy{max-width:100%;font-size:11px;white-space:normal;overflow-wrap:anywhere}}
@media(max-width:540px){.vibe-panel:has(.vibe-option:nth-child(6)){grid-auto-columns:auto;gap:3px;padding-inline:5px}.vibe-panel:has(.vibe-option:nth-child(6)) .vibe-option-copy{white-space:nowrap}}
.next-track[hidden]{display:none}
.next-track{margin-left:-10px}
/* On a phone the extra control must not squeeze a long world name onto a third line. */
@media(max-width:540px){.next-track{width:32px;height:40px;margin-left:0}.control-bar:has(.next-track:not([hidden])) #sound{width:34px}.control-bar:has(.next-track:not([hidden])) .world-switch:not(.vibe-switch) .chevron{display:none}}
@media(max-width:360px){.next-track{width:30px}}
.topbar .brand{color:inherit;text-decoration:none;cursor:pointer}

/* A carriage threshold. Progress remains indeterminate through shader compilation. */
#app[data-world="express"] .loading-screen{background:radial-gradient(ellipse at 50% 35%,#244346 0%,#10272c 48%,#091719 100%);color:#e8d6ad}
#app[data-world="express"] .loading-orbit{border:1px solid #bea47765;border-radius:48% 48% 5px 5px;width:112px;height:132px;box-shadow:inset 0 0 0 6px #122b2f,inset 0 0 0 7px #bfa47542,0 0 80px #caa96c12;transform:none}
#app[data-world="express"] .loading-orbit i{border-color:#d5bb84;border-radius:1px;height:1px;width:58px;inset:78px 26px auto;animation:none;transform:rotate(-25deg)}
#app[data-world="express"] .loading-orbit i:nth-child(2){top:88px}#app[data-world="express"] .loading-orbit i:nth-child(3){top:98px}
#app[data-world="express"] #loading-label{font-family:Georgia,serif;font-size:clamp(21px,3vw,30px);font-weight:400;letter-spacing:.025em}
#app[data-world="express"] #loading-detail{color:#b9bba9;max-width:330px;line-height:1.8;padding:0 20px}
#app[data-world="express"] .loading-track{background:#bc9a5921}#app[data-world="express"] #loading-progress{background:#d0b27b}

/* Nightglass arrives through the same shared loader, as a thin vertical light. */
#app[data-world="nightglass"] .loading-screen{background:radial-gradient(ellipse at 50% 60%,#1d2749 0%,#0d142a 48%,#040819 100%);color:#d2def6}
#app[data-world="nightglass"] .loading-orbit{width:94px;height:100px;border:0;border-bottom:1px solid #62bddd66;border-radius:0;transform:none;box-shadow:none;animation:none}
#app[data-world="nightglass"] .loading-orbit:before,#app[data-world="nightglass"] .loading-orbit:after{display:none}
#app[data-world="nightglass"] .loading-orbit i{transform:none;box-shadow:none;inset:auto;bottom:0;left:8px;width:21px;height:68px;border:1px solid #599bc666;border-top:2px solid #72d3ed;border-radius:0;background:repeating-linear-gradient(0deg,transparent 0 8px,#72ccef20 8px 9px);animation:nightglass-arrival 3s ease-in-out infinite alternate}
#app[data-world="nightglass"] .loading-orbit i:nth-child(2){left:35px;width:27px;height:97px;border-color:#b567a966;border-top-color:#f28ac5;animation-delay:-1s}
#app[data-world="nightglass"] .loading-orbit i:nth-child(3){left:68px;width:18px;height:52px;animation-delay:-2s}
#app[data-world="nightglass"] #loading-label{font-size:clamp(20px,3vw,29px);font-weight:400;letter-spacing:.035em}
#app[data-world="nightglass"] #loading-detail{max-width:370px;line-height:1.8;padding:0 22px;color:#93a4c4}
#app[data-world="nightglass"] .loading-track{background:#8babdf1c}#app[data-world="nightglass"] #loading-progress{background:#93cce2}
@keyframes nightglass-arrival{from{opacity:.45}to{opacity:1}}
@media(prefers-reduced-motion:reduce){#app[data-world="nightglass"] .loading-orbit i{animation:none}}

/* This direct-link world has a title, not a world selector. */
#world-button{cursor:default}#world-button .chevron{display:none}

/* Beta badge & Bug reporting affordances */
.beta-badge{display:inline-block;padding:1px 6px;margin-left:6px;border-radius:999px;background:rgba(245,158,11,0.2);border:1px solid rgba(245,158,11,0.45);color:#fbbf24;font:600 10px/1.2 'DM Sans',system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;vertical-align:middle}
.world-switch .beta-badge{font-size:9px;padding:1px 5px;margin-left:4px}
.icon-button.report-bug{color:#fbbf24}
.icon-button.report-bug:hover{color:#fff;background:rgba(245,158,11,0.2)}
.icon-button.report-bug[hidden]{display:none}
.bug-panel{width:min(380px,calc(100vw - 32px));padding:18px 20px 22px}
.bug-panel h3{margin:0 0 6px;font:600 17px/1.3 'Manrope',sans-serif;color:var(--control-panel-text)}
.bug-panel-intro{margin:0 0 14px;color:var(--control-panel-muted);font-size:13px;line-height:1.45}
.bug-panel-intro strong{color:var(--control-panel-text)}
.popover-close-button{position:absolute;top:10px;right:12px;width:28px;height:28px;border:0;border-radius:50%;background:rgba(255,255,255,0.08);color:var(--control-panel-text);font:18px/1 sans-serif;cursor:pointer;display:grid;place-items:center}
.popover-close-button:hover{background:rgba(255,255,255,0.18)}
.bug-panel .contact-form{display:grid;gap:10px}
.bug-panel .contact-form input,.bug-panel .contact-form textarea{width:100%;padding:8px 11px;border:1px solid rgba(255,255,255,0.18);border-radius:8px;background:rgba(10,8,19,0.7);color:var(--control-panel-text);font:400 13px/1.4 'DM Sans',sans-serif;outline:none}
.bug-panel .contact-form input:focus,.bug-panel .contact-form textarea:focus{border-color:#fbbf24;box-shadow:0 0 0 2px rgba(251,191,36,0.2)}
.bug-panel .contact-form textarea{min-height:85px;resize:vertical}
.bug-panel .contact-form button[type=submit]{justify-self:start;margin-top:2px;padding:8px 16px;border:1px solid #fbbf24;border-radius:8px;background:rgba(245,158,11,0.22);color:#fbbf24;font:600 12px/1.2 'DM Sans',sans-serif;letter-spacing:.05em;cursor:pointer}
.bug-panel .contact-form button[type=submit]:hover{background:rgba(245,158,11,0.38);color:#fff}
.bug-panel .contact-form button:disabled{cursor:wait;opacity:.6}
.bug-panel .contact-error{margin:4px 0 0;color:#ff9e9e;font-size:12px}
.bug-panel .contact-success{margin:8px 0 0;color:#8df5a6;font:600 15px/1.4 'Manrope',sans-serif}
.bug-panel .contact-honey{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)}
