*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;min-height:100dvh;font-family:Outfit,Segoe UI,system-ui,sans-serif;background:#05070d;color:#e8eaed;overflow-x:hidden}#canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;height:100dvh;display:block;z-index:0;touch-action:none;pointer-events:auto}.ui-overlay{position:relative;z-index:1;min-height:100vh;min-height:100dvh;padding:clamp(1rem,5vw,2rem);padding-top:max(env(safe-area-inset-top),1rem);padding-bottom:max(env(safe-area-inset-bottom),2rem);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;animation:overlayFadeIn .6s ease-out}.ui-header{text-align:center;margin-bottom:1.5rem}.ui-title{font-size:clamp(1.5rem,5vw,2rem);font-weight:300;letter-spacing:.12em;margin:0;text-shadow:0 0 20px rgba(255,255,255,.15);animation:slideDown .5s ease-out .1s both}.ui-subtitle{font-size:.9rem;opacity:.85;margin:.25rem 0 0;font-weight:400;animation:slideDown .5s ease-out .2s both}.ui-hint{max-width:320px;margin:0 auto 1rem;padding:0 .5rem;font-size:.9rem;line-height:1.45;color:#ffffffbf;text-align:center;animation:slideUp .5s ease-out .2s both}.ui-form{width:100%;max-width:320px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem;animation:slideUp .5s ease-out .25s both}.ui-input-date{text-align:center}@media (max-width: 480px){.ui-form{width:100%;padding:0 .5rem}.ui-input,.ui-input-date{text-align:center;margin-left:auto;margin-right:auto}}.ui-label{font-size:.8rem;opacity:.9}.ui-input{width:100%;padding:.65rem .9rem;font-size:1rem;color:#e8eaed;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;outline:none;transition:border-color .2s,box-shadow .2s,transform .2s ease}.ui-input::placeholder{color:#fff6}.ui-input:focus{border-color:#ffffff4d;box-shadow:0 0 0 2px #ffffff14;transform:translateY(-1px)}.ui-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.ui-btn{padding:.65rem 1.2rem;font-size:.95rem;font-weight:500;color:#0a0e1a;background:#ffffffe6;border:none;border-radius:8px;cursor:pointer;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}.ui-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.ui-btn:active{transform:scale(.98) translateY(0)}.ui-btn-primary{flex:1;min-width:140px}.ui-btn-primary:hover{background:#fff}.ui-btn-secondary{background:#ffffff26;color:#e8eaed}.ui-btn-secondary:hover{background:#ffffff38}.ui-btn-secondary.active{background:#ffffff40;color:#fff}.ui-progress{margin-top:1.5rem;width:100%;max-width:320px;cursor:pointer;padding:.5rem 0;-webkit-tap-highlight-color:transparent}.ui-progress.hidden{display:none}.reveal-hint{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 1.25rem;margin-bottom:.75rem;background:#ffffff0f;border:1px dashed rgba(255,255,255,.25);border-radius:12px;animation:revealHintPulse 2.5s ease-in-out infinite}.reveal-hint-icon{display:flex;align-items:center;justify-content:center;color:#fff9;animation:revealHintBounce 1.5s ease-in-out infinite}.reveal-hint-icon svg{width:1.25rem;height:1.25rem;display:block}.ui-progress-text{font-size:.9rem;font-weight:500;color:#fffffff2;margin:0;text-align:center;line-height:1.4}.ui-progress-bar{height:4px;background:#ffffff26;border-radius:2px;overflow:hidden}.ui-progress-fill{display:block;height:100%;width:calc(var(--progress, 0) * 100%);background:linear-gradient(90deg,#ffffff80,#ffffffe6);border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1)}.constellation-info{margin-top:1.25rem;padding:1rem 1.25rem;max-width:320px;width:100%;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px;opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease}.constellation-info.hidden{display:none}.constellation-info.constellation-info-visible{opacity:1;transform:translateY(0);animation:cardSlideIn .5s ease-out both}.constellation-info-title{font-size:1rem;font-weight:600;margin:0 0 .35rem;color:#fffffff2;letter-spacing:.02em}.constellation-info-desc{font-size:.8rem;line-height:1.5;margin:0;opacity:.85;color:#fffc}.ui-btn-reveal{margin-top:1rem;background:#ffdcb440;color:#f5e6d3;border:1px solid rgba(255,220,180,.35)}.ui-btn-reveal{transition:opacity .3s ease,transform .2s ease,box-shadow .3s ease,background .2s ease}.ui-btn-reveal:hover:not(:disabled){background:#ffdcb459;box-shadow:0 0 20px #ffdcb433}.ui-btn-reveal:not(:disabled){animation:revealReady .6s ease-out}.ui-btn-reveal:disabled{opacity:.5;cursor:not-allowed}.ui-btn-screenshot{margin-top:.5rem;background:#ffffff1a;color:#ffffffe6;font-size:.9rem}.ui-btn-screenshot:hover{background:#ffffff2e}.ui-btn-screenshot.hidden{display:none}.ui-footer{margin-top:auto;padding:2rem 1rem 1.5rem;padding-bottom:max(env(safe-area-inset-bottom),1.5rem);width:100%;max-width:320px;margin-left:auto;margin-right:auto;text-align:center}.btn-screenshot-subtle{padding:.4rem .75rem;font-size:.8rem;color:#ffffff80;background:transparent;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .2s}.btn-screenshot-subtle:hover{color:#fffc}.btn-screenshot-subtle.hidden{display:none!important}.btn-fullscreen,.btn-exit-fullscreen{position:fixed;z-index:5;top:max(env(safe-area-inset-top),.5rem);right:max(env(safe-area-inset-right),.5rem);width:2.5rem;height:2.5rem;padding:0;border:none;border-radius:50%;background:#00000059;color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,opacity .2s;-webkit-tap-highlight-color:transparent}.btn-fullscreen:hover,.btn-exit-fullscreen:hover{background:#ffffff26;color:#fff}.btn-fullscreen:active,.btn-exit-fullscreen:active{transform:scale(.95)}.btn-fullscreen.hidden,.btn-exit-fullscreen.hidden{display:none!important}.btn-fullscreen-icon,.btn-exit-fullscreen-icon{width:1.25rem;height:1.25rem;display:block}.btn-exit-fullscreen{z-index:15;background:#0006}.ui-overlay.immersive-hidden{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .3s ease}body.immersive{overflow:hidden}.fullscreen-note{position:fixed;bottom:max(env(safe-area-inset-bottom),1rem);left:50%;transform:translate(-50%);z-index:5;max-width:90%;margin:0;padding:.5rem .75rem;font-size:.75rem;line-height:1.35;color:#ffffff8c;text-align:center;pointer-events:none}.fullscreen-note.hidden{display:none!important}.message-card{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:overlayFadeIn .35s ease}.message-card .message-card-inner{animation:messagePopIn .45s cubic-bezier(.34,1.56,.64,1) both}.message-card.hidden{display:none}.message-card-inner{max-width:380px;width:100%;padding:1.75rem;background:linear-gradient(145deg,#0f1520,#0a0e18);border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:0 20px 50px #00000080}.message-title{font-size:1.35rem;font-weight:400;margin:0 0 1rem;color:#f5e6d3}.message-body{font-size:.95rem;line-height:1.6;opacity:.95;margin-bottom:1.25rem}.message-body p{margin:0 0 .5rem}.message-body p:last-child{margin-bottom:0}.ui-btn-close{width:100%;background:#ffffff1f;color:#e8eaed}.ui-btn-close:hover{background:#ffffff2e}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes messagePopIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes revealReady{0%{box-shadow:0 0 #ffdcb466}50%{box-shadow:0 0 16px 4px #ffdcb440}to{box-shadow:none}}@keyframes revealHintPulse{0%,to{border-color:#ffffff40;background:#ffffff0f}50%{border-color:#ffffff73;background:#ffffff1a}}@keyframes revealHintBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}
