:root{--neon-cyan: #86e8ff;--neon-magenta: #7b4dff;--void: #000002;--font-mono: "SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", "Courier New", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--void);color:var(--neon-cyan);font-family:var(--font-mono);overflow:hidden;touch-action:none;-webkit-text-size-adjust:100%}#scene-root{position:fixed;inset:0;outline:none}#scene-root:focus-visible{box-shadow:inset 0 0 0 2px #86e8ff80}#scene-root canvas{display:block}.skip-link{position:absolute;left:50%;top:-120%;transform:translate(-50%);z-index:100;padding:.6rem 1rem;background:var(--void);color:var(--neon-cyan);border:1px solid var(--neon-cyan);border-radius:4px;text-decoration:none;transition:top .15s ease}.skip-link:focus{top:.75rem}.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}.a11y-fallback{position:fixed;left:.75rem;bottom:.75rem;z-index:90;max-width:min(90vw,360px);padding:0;background:#05010aeb;border:1px solid rgba(134,232,255,.4);border-radius:6px;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.a11y-fallback:focus-within{width:auto;height:auto;clip:auto;padding:.75rem 1rem}.a11y-fallback h2{margin:0 0 .5rem;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--neon-magenta)}.a11y-fallback ul{margin:0;padding:0;list-style:none}.a11y-fallback li{margin:.25rem 0}.a11y-fallback a{color:var(--neon-cyan);text-decoration:none}.a11y-fallback a:hover,.a11y-fallback a:focus{text-decoration:underline}.a11y-fallback a[aria-disabled=true]{opacity:.55}.hint{position:fixed;left:50%;bottom:1.1rem;transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:.2rem;text-align:center;font-size:.7rem;letter-spacing:.08em;color:#86e8ff8c;pointer-events:none;text-transform:uppercase;transition:opacity .6s ease}.hint.is-hidden{opacity:0}@media (max-width: 600px){.hint{font-size:.6rem;bottom:.8rem}}@media (prefers-reduced-motion: reduce){.skip-link,.hint{transition:none}}.overlay{position:fixed;inset:0;z-index:95;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:radial-gradient(ellipse at center,#05010a8c,#05010ad9);opacity:0;pointer-events:none;transition:opacity .2s ease}.overlay.is-open{opacity:1;pointer-events:auto}.overlay__card{position:relative;width:min(440px,100%);padding:1.75rem 1.75rem 1.5rem;background:#05010aeb;border:1px solid var(--accent, #00fff7);border-radius:8px;box-shadow:0 0 0 1px #0006,0 0 24px color-mix(in srgb,var(--accent, #00fff7) 45%,transparent),inset 0 0 40px color-mix(in srgb,var(--accent, #00fff7) 8%,transparent);transform:translateY(12px) scale(.98);transition:transform .2s ease}.overlay.is-open .overlay__card{transform:translateY(0) scale(1)}.overlay__card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.025) 0px,rgba(255,255,255,.025) 1px,transparent 1px,transparent 3px)}.overlay__eyebrow{margin:0 0 .35rem;font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent, #00fff7);opacity:.8}.overlay__title{margin:0 0 .75rem;font-size:1.5rem;line-height:1.1;letter-spacing:.04em;color:#fff;text-shadow:0 0 12px color-mix(in srgb,var(--accent, #00fff7) 60%,transparent)}.overlay__desc{margin:0 0 1.5rem;font-size:.9rem;line-height:1.5;color:#dcf0ffd1}.overlay__actions{display:flex;gap:.75rem;flex-wrap:wrap}.overlay__visit{flex:1 1 auto;min-width:140px;padding:.7rem 1.1rem;font-family:inherit;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;text-align:center;text-decoration:none;color:var(--void, #05010a);background:var(--accent, #00fff7);border:1px solid var(--accent, #00fff7);border-radius:4px;cursor:pointer}.overlay__visit:hover,.overlay__visit:focus-visible{filter:brightness(1.15);box-shadow:0 0 14px color-mix(in srgb,var(--accent, #00fff7) 70%,transparent)}.overlay__visit:disabled,.overlay__visit[aria-disabled=true]{color:#dcf0ff80;background:transparent;border-color:#dcf0ff40;cursor:not-allowed;filter:none;box-shadow:none}.overlay__close{padding:.7rem 1.1rem;font-family:inherit;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:#dcf0ffcc;background:transparent;border:1px solid rgba(220,240,255,.25);border-radius:4px;cursor:pointer}.overlay__close:hover,.overlay__close:focus-visible{color:#fff;border-color:#dcf0ff99}*:focus-visible{outline:2px solid var(--accent, #00fff7);outline-offset:2px}@media (prefers-reduced-motion: reduce){.overlay,.overlay__card{transition:none}}.controls{position:fixed;top:.8rem;right:.8rem;z-index:92;width:max-content;border:1px solid rgba(0,255,247,.45);border-radius:8px;background:#05010ae6;box-shadow:0 0 18px #00fff733;pointer-events:auto;font-size:.74rem;letter-spacing:.05em}.controls__toggle{width:100%;padding:.55rem .8rem;border:0;border-radius:8px;background:#00fff71a;color:#caffff;text-transform:uppercase;text-align:left;font-family:inherit;cursor:pointer}.controls__toggle:after{content:"▸";opacity:.8}.controls__toggle[aria-expanded=false]{text-align:center}.controls__toggle[aria-expanded=false] .controls__toggle-label{display:none}.controls__toggle[aria-expanded=true] .controls__toggle-label{margin-right:.4rem}.controls__toggle[aria-expanded=true]{border-radius:8px 8px 0 0}.controls__toggle[aria-expanded=true]:after{content:" ▾"}.controls__body{display:grid;gap:.65rem;width:min(320px,calc(100vw - 1.6rem));padding:.7rem .8rem .85rem}.controls__body[hidden]{display:none}.controls__row{display:grid;gap:.2rem}.controls__row-top{display:flex;justify-content:space-between;text-transform:uppercase;color:#c8ffffd9}.controls__value{color:#fff}.controls input[type=range]{width:100%}.controls__colors{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:.35rem}.controls__colors legend{width:100%;margin-bottom:.15rem;color:#c8ffffd9;text-transform:uppercase}.controls__chip{border:1px solid color-mix(in srgb,var(--chip) 70%,#000);border-radius:999px;padding:.2rem .45rem;background:color-mix(in srgb,var(--chip) 14%,transparent);color:#d9f9ff;display:inline-flex;align-items:center;gap:.25rem;text-transform:uppercase}.controls__chip input{margin:0}
