:root{--bg:#1F0710;--burgundy:#480D20;--pearl:#FAF9F6;--silver:#C9C5C8;--muted:#9A8288;--mx:50%;--my:50%}
*{box-sizing:border-box;margin:0}
html,body{height:100%}
body{background:var(--bg);color:var(--pearl);font-family:'Geist',system-ui,sans-serif;overflow:hidden;position:relative}
.glow{position:fixed;inset:0;background:
 radial-gradient(circle at var(--mx) var(--my),rgba(110,28,56,.55),transparent 42%),
 radial-gradient(ellipse at 50% 45%,#44122A 0%,#2A0B16 40%,#1A050D 100%);transition:background .2s;animation:fade 1.6s ease both}
.rings{position:fixed;inset:0;display:grid;place-items:center;pointer-events:none}
.rings i{position:absolute;border:1px solid rgba(250,249,246,.07);border-radius:50%;animation:breathe 9s ease-in-out infinite,fade 2s ease both}
.rings i:nth-child(1){width:min(130vw,1080px);aspect-ratio:1;animation-delay:0s}
.rings i:nth-child(2){width:min(95vw,790px);aspect-ratio:1;animation-delay:-3s}
.rings i:nth-child(3){width:min(160vw,1400px);aspect-ratio:1;animation-delay:-6s}
@keyframes breathe{50%{transform:scale(1.035);opacity:.6}}
.pearl{position:fixed;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#C9C5C8 55%,#8E8589);box-shadow:0 0 18px rgba(250,249,246,.25);animation:float 11s ease-in-out infinite,fade 2s .6s ease both;transform:translate(var(--px,0),var(--py,0))}
.p1{width:18px;height:18px;top:19%;right:24%}
.p2{width:13px;height:13px;bottom:28%;left:20%;animation-duration:14s;animation-delay:-4s}
.p3{width:8px;height:8px;top:58%;right:14%;animation-duration:9s;animation-delay:-2s;opacity:.7}
@keyframes float{50%{margin-top:-18px}}
main{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 1.5rem 6rem}
.logo img{display:block;width:min(572px,82vw);height:auto;animation:logo 1.6s cubic-bezier(.2,.7,.2,1) both}
@keyframes logo{from{opacity:0;filter:blur(14px);transform:scale(.96) translateY(10px);letter-spacing:.1em}to{opacity:1;filter:none;transform:none}}
.soon{font-family:'Bodoni Moda',serif;font-weight:400;font-size:clamp(2.2rem,5vw,3.6rem);margin-top:clamp(2.5rem,8vh,5rem);line-height:1.1}
.soon em{font-style:italic}
.sub{margin-top:.8rem;font-size:1.05rem;color:#E2D9DC;font-weight:300}
.signup{margin-top:2rem;display:flex;width:min(500px,100%);padding:6px;border:1px solid rgba(250,249,246,.18);border-radius:999px;background:rgba(250,249,246,.03);transition:border-color .3s,box-shadow .3s,background .3s}
.signup:focus-within{border-color:rgba(250,249,246,.5);box-shadow:0 0 0 6px rgba(250,249,246,.05),0 10px 40px rgba(0,0,0,.35);background:rgba(250,249,246,.06)}
.signup.err{animation:shake .4s}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--pearl);font:inherit;padding:0 1.4rem}
input::placeholder{color:var(--muted)}
button{border:0;border-radius:999px;background:var(--pearl);color:var(--burgundy);font:500 .95rem 'Geist',sans-serif;padding:.95rem 1.6rem;cursor:pointer;transition:transform .2s,box-shadow .3s}
button:hover{transform:scale(1.04);box-shadow:0 0 24px rgba(250,249,246,.3)}
button:active{transform:scale(.97)}
.note{margin-top:1.6rem;font:400 .68rem 'Geist Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:color .3s}
.note.ok{color:var(--pearl)}
footer{position:fixed;z-index:1;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:1rem;padding:1.5rem clamp(1.2rem,4.5vw,4.2rem);font:400 .68rem 'Geist Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
footer a{color:inherit;text-decoration:none;transition:color .2s}footer a:hover{color:var(--pearl)}
.reveal{animation:up 1s var(--d,0s) cubic-bezier(.2,.7,.2,1) both}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}}
@media(max-width:560px){footer{flex-direction:column;align-items:center;gap:.4rem;text-align:center}.signup button{padding:.9rem 1.2rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition:none!important}}
