:root{color-scheme:dark;--ink:#e6edf6;--muted:#8c9cad;--accent:#90eddf;--bg:#060910;--nebula-a:#0e1c29;--nebula-b:#16132a;--vignette:#06091088;--core-halo:#080e17c9;--name:#d1dce5;--name-secondary:#94a9bc;--button-bg:#0c1425a6;--button-border:#afcee626}
:root[data-theme=light]{color-scheme:light;--ink:#20334b;--muted:#586a7f;--accent:#286778;--bg:#f5f6f8;--nebula-a:#e6edfa;--nebula-b:#f0e7f5;--vignette:#f5f6f833;--core-halo:#f5f6f8bb;--name:#2d435c;--name-secondary:#536780;--button-bg:#ffffff99;--button-border:#20334b26}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;touch-action:none;background-image:radial-gradient(ellipse at 36% 45%,var(--nebula-a) 0,transparent 48%),radial-gradient(ellipse at 70% 60%,var(--nebula-b) 0,transparent 48%)}
button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
#universe{position:fixed;inset:0;width:100%;height:100%}
.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse,transparent 40%,var(--vignette) 100%)}
main{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;padding-bottom:12px;perspective:1100px}
#core{pointer-events:auto;width:clamp(230px,30vw,380px);padding:0;background:transparent;border:0;cursor:grab;will-change:transform;filter:drop-shadow(0 0 30px #9ddde51c);position:relative}
#core:before{content:'';position:absolute;inset:-20%;background:radial-gradient(ellipse,var(--core-halo) 0,transparent 70%);z-index:-1}
#core svg{width:100%;display:block;overflow:visible}
h1{margin:22px 0 0;font-weight:400;font-size:11px;--name-spacing:.34em;letter-spacing:calc(var(--name-spacing) + var(--press-spacing,0em));line-height:1.7;color:var(--name);text-shadow:0 0 12px var(--bg)}
h1 span{color:var(--name-secondary);margin-left:7px}
footer{position:fixed;z-index:3;bottom:max(28px,env(safe-area-inset-bottom));left:20px;right:20px;text-align:center;font-size:10px;letter-spacing:.025em;color:var(--muted);pointer-events:none}
footer p{margin:0}
button:focus-visible{outline:1px solid var(--accent);outline-offset:8px;border-radius:3px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:650px){footer{bottom:max(22px,env(safe-area-inset-bottom));font-size:9px}h1{font-size:9px;--name-spacing:.25em;margin-top:18px}#core{width:245px}}
@media(max-height:500px){#core{width:200px}h1{margin-top:8px}}
@media(prefers-reduced-motion:reduce){#core{will-change:auto}}

#core:active{cursor:grabbing}

#theme-toggle{position:fixed;z-index:5;top:max(20px,env(safe-area-inset-top));right:max(24px,env(safe-area-inset-right));width:66px;height:44px;padding:0;background:none;border:0;cursor:pointer;touch-action:manipulation;border-radius:24px}
.switch-track{position:absolute;inset:4px 0;background:#141e2d;border:1px solid #8eacc93d;border-radius:20px;transition:background .25s,border-color .25s}
.switch-thumb{position:absolute;top:7px;left:3px;width:30px;height:30px;background:#35465f;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .25s,background .25s}
#theme-toggle:hover .switch-thumb{background:#4a607e}
[data-theme=light] #theme-toggle:hover .switch-thumb{background:#fff;box-shadow:0 1px 5px #24334b18}
#theme-toggle svg{position:absolute;z-index:1;top:14px;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
#theme-toggle .moon{left:10px;color:#e2e9fb}
#theme-toggle .sun{right:10px;color:#92a0b5}
[data-theme=light] .switch-track{background:#e9ecf080;border-color:#c7ced780}
[data-theme=light] .switch-thumb{transform:translateX(30px);background:#f3f5f7;box-shadow:0 1px 3px #24334b0d}
[data-theme=light] #theme-toggle .moon{color:#929ba9}
[data-theme=light] #theme-toggle .sun{color:#778497}
#theme-toggle:focus-visible{border-radius:24px;outline-offset:1px}
@media(max-width:650px){#theme-toggle{top:max(14px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right))}}
@media(prefers-reduced-motion:reduce){.switch-thumb,.switch-track{transition:none}}
