:root{--scene-loader-size:6rem;--scene-loader-page-size:8rem;--scene-loader-turn:5s;--scene-loader-counter-turn:8s;--scene-loader-pulse:2.4s;--scene-loader-line:color-mix(in oklab, var(--sun-light) 24%, transparent);--scene-loader-glow:color-mix(in oklab, var(--violet) 24%, transparent)}.scene-loader{justify-content:center;align-items:center;gap:var(--space-6);padding:var(--space-6);color:var(--text);text-align:center;flex-direction:column;display:flex}.scene-loader[hidden]{display:none}.scene-loader-art{width:var(--scene-loader-size);aspect-ratio:1;background:radial-gradient(circle, var(--scene-loader-glow), transparent 68%);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.scene-loader--page .scene-loader-art{width:var(--scene-loader-page-size)}.scene-loader-orbit{border:1px solid var(--scene-loader-line);border-radius:50%;position:absolute;inset:0}.scene-loader-orbit--outer{border-top-color:var(--sun-light);animation:scene-loader-orbit var(--scene-loader-turn) linear infinite;border-right-color:#0000}.scene-loader-orbit--outer:after{content:"";width:var(--space-1);height:var(--space-1);background:var(--sun-light);box-shadow:0 0 var(--space-2) var(--sun-light);border-radius:50%;position:absolute;top:14%;right:14%}.scene-loader-orbit--inner{border-bottom-color:var(--accent);animation:scene-loader-orbit var(--scene-loader-counter-turn) linear infinite reverse;border-left-color:#0000;inset:18%}.scene-loader-core{color:var(--sun-light);animation:scene-loader-breathe var(--scene-loader-pulse) ease-in-out infinite;place-items:center;display:grid}.scene-loader .scene-loader-core svg{width:var(--space-6);height:var(--space-6)}.scene-loader .scene-loader-title{color:var(--sun-light);font-family:var(--display-font);font-size:var(--type-title);letter-spacing:.025em;margin:0;font-weight:300;line-height:1.25}.scene-loader .scene-loader-message{margin:var(--space-2) 0 0;max-width:34ch;color:var(--muted);font-size:var(--type-caption);line-height:1.5}.scene-loader--panel .scene-loader-title{font-size:var(--type-ui)}.scene-loader[data-state=error] .scene-loader-title{display:none}.scene-loader[data-state=error] .scene-loader-art{opacity:.5}.scene-loader[data-state=error] .scene-loader-orbit,.scene-loader[data-state=error] .scene-loader-core{animation:none}@keyframes scene-loader-orbit{to{transform:rotate(360deg)}}@keyframes scene-loader-breathe{50%{opacity:.55;transform:scale(.9)}}@media (prefers-reduced-motion:reduce){.scene-loader-orbit,.scene-loader-core{animation:none}}
