:root{--bg:#05060b;--bg-2:#10151f;--star:#edeff5;--text-secondary:#7c8699;--text-dim:#4b5468;--amber:#d68a6e;--amber-light:#e3a98d;--teal:#5fa8b0;--danger:#c97575;--parallax-x:0px;--parallax-y:0px}*{box-sizing:border-box}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html,body{background:var(--bg);min-height:100%;color:var(--star);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,sans-serif}.starfield{pointer-events:none;z-index:0;transform:translate(var(--parallax-x),var(--parallax-y));position:fixed;inset:-12px;overflow:hidden}.star{background:var(--star);border-radius:50%;animation:ease-in-out infinite drift;position:absolute}.star.twinkle{animation-name:drift,twinkle;animation-direction:normal,alternate}.vignette{pointer-events:none;z-index:1;background:radial-gradient(#0000 45%,#0000008c 100%);position:fixed;inset:0}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(18px,-15px)}}@keyframes twinkle{0%{opacity:.2}to{opacity:.85}}main{z-index:2;max-width:640px;margin:auto;padding:5rem 1.5rem 6rem;position:relative}.eyebrow{text-align:center;letter-spacing:.12em;text-transform:uppercase;color:var(--amber-light);margin-bottom:1rem;font:12px IBM Plex Mono,monospace;display:block}.aperture-tagline{text-align:center;color:var(--text-secondary);max-width:440px;margin:0 auto 1.75rem;font:italic 500 21px/1.55 Cormorant Garamond,Fraunces,serif}.aperture{background:radial-gradient(circle at 50% 40%,#d68a6e0d,#0000 70%);border:1px solid #edeff524;border-radius:50%;justify-content:center;align-items:center;width:300px;height:300px;margin:0 auto 2.75rem;display:flex;position:relative}.bg-constellation{opacity:.5;position:absolute}.bg-constellation path{stroke:#5fa8b040;stroke-width:.6px;fill:none}.bg-constellation circle{fill:#edeff580}.bg-constellation.lit path{animation:2.6s ease-out constellationLineGlow}.bg-constellation.lit circle{animation:2.6s ease-out constellationGlow}@keyframes constellationLineGlow{0%,to{stroke:#5fa8b040}25%{stroke:#e3a98dd9;filter:drop-shadow(0 0 5px #d68a6ea6)}}@keyframes constellationGlow{0%,to{fill:#edeff580;filter:none}25%{fill:#fff;filter:drop-shadow(0 0 9px #e3a98d)drop-shadow(0 0 18px #d68a6ea6)}}@media (width<=480px){.bg-constellation{opacity:.32}}.coord{letter-spacing:.04em;color:var(--text-dim);font:9px IBM Plex Mono,monospace;position:absolute}.coord--tl{top:10px;left:14px}.coord--tr{top:10px;right:14px}.coord--bl{bottom:10px;left:14px}.coord--br{bottom:10px;right:14px}.reading{z-index:2;flex-direction:column;align-items:center;gap:.9rem;width:100%;padding:0 2.25rem;display:flex;position:relative}.reading label{color:var(--text-secondary);text-align:center;font-size:12px}.reading input{text-align:center;width:120px;color:var(--star);letter-spacing:.06em;background:0 0;border:0;border-bottom:1px solid #d68a6e66;padding:4px 0;font:22px IBM Plex Mono,monospace}.reading input:focus-visible{border-bottom-color:var(--amber-light);outline:none}.mirror-wrap{color:var(--amber-light);letter-spacing:.05em;flex-direction:column;align-items:center;font:15px IBM Plex Mono,monospace;display:flex}.mirror-wrap i{background:#d68a6e59;width:46px;height:1px;margin:5px 0}.reflection{opacity:.35;transform:scaleY(-1);mask-image:linear-gradient(#000 15%,#0000)}h1{text-align:center;margin:0 0 1rem;font:500 clamp(2rem,5vw,2.75rem)/1.15 Fraunces,serif}.btn-amber{letter-spacing:.03em;color:var(--bg);background:var(--amber);cursor:pointer;border:0;border-radius:2px;margin:auto;padding:.9rem 2rem;font:500 14px Inter,sans-serif;transition:background .15s,box-shadow .2s,transform .1s;display:block}.btn-amber:hover{background:var(--amber-light);box-shadow:0 0 20px #d68a6e40}.btn-amber:active{transform:scale(.98)}.btn-amber:focus-visible{outline:2px solid var(--amber-light);outline-offset:3px}.input-error{text-align:center;color:var(--danger);min-height:16px;margin:-1.5rem 0 1.75rem;font-size:13px}.result{background:var(--bg-2);border:1px solid #edeff514;border-radius:4px;margin-top:3rem;padding:2rem 2.25rem;animation:.4s both resultIn}@keyframes resultIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.result-badge{letter-spacing:.05em;text-transform:uppercase;color:var(--amber-light);border-bottom:1px solid #d68a6e40;margin-bottom:1rem;padding-bottom:6px;font:12px IBM Plex Mono,monospace;display:inline-block}.result p{margin:0;font:19px/1.55 Fraunces,serif}.back-home{text-align:center;color:var(--text-secondary);letter-spacing:.04em;margin-top:1.75rem;font:13px IBM Plex Mono,monospace;text-decoration:none;display:block}.back-home:hover{color:var(--amber-light)}.shooting-star{background:var(--star);border-radius:50%;width:2px;height:2px;animation:.9s ease-out forwards shoot;position:absolute;top:18%;left:60%;box-shadow:0 0 6px 1px #edeff5e6}.shooting-star:before{content:"";background:linear-gradient(270deg,#edeff5d9,#0000);width:90px;height:1px;position:absolute;transform:translate(-100%,-50%)rotate(210deg)}@keyframes shoot{0%{opacity:0;transform:translate(0)}12%,78%{opacity:1}to{opacity:0;transform:translate(-210px,130px)}}@media (width<=420px){.aperture{width:240px;height:240px}main{padding:3.5rem 1.25rem 4rem}}@media (prefers-reduced-motion:reduce){.star,.shooting-star{animation:none}.star.twinkle{opacity:.5}.starfield{transition:none}.result,.bg-constellation.lit path,.bg-constellation.lit circle{animation:none}}
