*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#fff;touch-action:none;-webkit-user-select:none;user-select:none}#canvas-container{position:fixed;inset:0;z-index:0}canvas{display:block;touch-action:none}#loading-screen{position:fixed;inset:0;z-index:1000;background:radial-gradient(ellipse at center,#0a0a2e,#000 80%);display:flex;align-items:center;justify-content:center;transition:opacity .6s ease}#loading-screen.fade-out{opacity:0;pointer-events:none}.loading-content{text-align:center;padding:2rem}.loading-content h1{font-size:2rem;margin-bottom:1rem;font-weight:300}.progress-bar-container{width:280px;height:4px;background:#ffffff26;border-radius:2px;margin:1rem auto;overflow:hidden}.progress-bar{height:100%;width:0%;background:linear-gradient(90deg,#4fc3f7,#81d4fa);border-radius:2px;transition:width .3s}.loading-percent{font-size:.85rem;opacity:.6}#nav-bar{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:10;display:flex;align-items:center;gap:.25rem;background:#000000a6;backdrop-filter:blur(12px);border-radius:2rem;padding:.35rem .5rem;border:1px solid rgba(255,255,255,.1)}.nav-btn{background:none;border:none;color:#fff;font-size:1.1rem;cursor:pointer;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s}.nav-btn:hover,.nav-btn:focus-visible{background:#ffffff26}.nav-btn.active{background:#4fc3f74d}.planet-list{display:flex;gap:.15rem}.detail-panel{position:fixed;top:50%;right:1.5rem;transform:translateY(-50%) translate(110%);z-index:20;width:340px;max-height:80vh;background:#0a0a28d9;backdrop-filter:blur(16px);border-radius:1rem;padding:1.5rem;border:1px solid rgba(255,255,255,.12);overflow-y:auto;transition:transform .4s cubic-bezier(.4,0,.2,1)}.detail-panel.visible{transform:translateY(-50%) translate(0)}.detail-panel.hidden{transform:translateY(-50%) translate(110%)}.detail-close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;opacity:.7;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}.detail-close:hover{opacity:1;background:#ffffff1a}.detail-panel h2{font-size:1.5rem;font-weight:600;margin-bottom:.75rem}.detail-panel .detail-emoji{font-size:2.5rem;margin-bottom:.5rem;display:block}.detail-panel .fact-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0}.fact-item{background:#ffffff0f;border-radius:.5rem;padding:.6rem .75rem}.fact-item .label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;opacity:.5}.fact-item .value{font-size:.95rem;margin-top:.2rem}.detail-panel .description{font-size:.9rem;line-height:1.6;opacity:.8;margin-top:.75rem}.planet-label{color:#fff;font-size:.75rem;background:#00000080;padding:2px 8px;border-radius:10px;cursor:pointer;pointer-events:auto;white-space:nowrap;transition:opacity .2s,transform .2s;transform:translateY(-20px)}.planet-label:hover{background:#4fc3f766}#attribution{position:fixed;bottom:.5rem;right:.75rem;z-index:5;font-size:.65rem;opacity:.35}#attribution a{color:#81d4fa;text-decoration:none}#attribution a:hover{text-decoration:underline}@media(max-width:767px){#nav-bar{inset:auto 0 0;transform:none;border-radius:0;justify-content:center;padding:.4rem .25rem calc(.4rem + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.1);border-left:none;border-right:none;border-bottom:none}.nav-btn{width:36px;height:36px;font-size:1rem}.detail-panel{inset:auto 0 0;width:100%;max-height:55vh;border-radius:1.25rem 1.25rem 0 0;transform:translateY(100%);padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}.detail-panel.visible{transform:translateY(0)}.detail-panel.hidden{transform:translateY(100%)}#attribution{bottom:calc(3.5rem + env(safe-area-inset-bottom));right:.5rem}}@media(prefers-reduced-motion:reduce){.detail-panel,#loading-screen,.progress-bar{transition:none!important}}:focus-visible{outline:2px solid #4fc3f7;outline-offset:2px}
