:root { color-scheme: dark; }
body { margin: 0; background: #171b18; color: #f2ece1; font-family: system-ui, sans-serif; }
#scene-container { position: fixed; inset: 0; }
#scene-container canvas { display: block; width: 100%; height: 100%; }
.asset-loader { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: #171b18; padding: 24px; }
.asset-loader[hidden] { display: none; }
.asset-loader__panel { width: min(100%, 440px); }
.asset-loader__eyebrow { color: #c4a46c; text-transform: uppercase; letter-spacing: 0.22em; font-size: 0.7rem; }
.asset-loader h1 { font-family: Georgia, serif; font-weight: 400; font-size: clamp(2rem, 6vw, 3rem); margin: 16px 0 24px; }
.asset-loader progress { display: block; width: 100%; height: 6px; border: 0; border-radius: 3px; overflow: hidden; background: #343c36; accent-color: #c4a46c; }
.asset-loader progress::-webkit-progress-bar { background: #343c36; }
.asset-loader progress::-webkit-progress-value { background: #c4a46c; }
.asset-loader progress::-moz-progress-bar { background: #c4a46c; }
.asset-loader__status { color: #d2cec5; font-size: 0.875rem; }
.asset-loader__error { color: #ffc2b5; white-space: pre-line; overflow-wrap: anywhere; font-size: 0.875rem; }
.asset-loader__retry { display: none; border: 1px solid #c4a46c; border-radius: 3px; color: #f2ece1; padding: 10px 18px; background: transparent; cursor: pointer; font: inherit; }
.asset-loader[data-state="error"] .asset-loader__retry { display: inline-block; }
.asset-loader__retry:focus-visible { outline: 2px solid #f2ece1; outline-offset: 4px; }
