:root{--bg:#0d0810;--rose:#ff789f;--rose2:#ffc0d2;--ink:#fff7fa;--muted:#d6b7c2}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:#fff;font-family:Inter,system-ui,sans-serif}body{min-height:100svh;background:radial-gradient(circle at 50% 44%,#2a111f 0,#150b13 34%,#0d0810 72%)}#scene{position:fixed;inset:0;width:100%;height:100%;z-index:0}.fallback-stars,.vignette,.grain{position:fixed;inset:0;pointer-events:none}.fallback-stars{z-index:0;background-image:radial-gradient(circle at 16% 28%,rgba(255,170,198,.8) 0 1px,transparent 1.8px),radial-gradient(circle at 78% 20%,rgba(255,255,255,.5) 0 1px,transparent 1.7px),radial-gradient(circle at 64% 74%,rgba(255,129,167,.6) 0 1px,transparent 2px),radial-gradient(circle at 31% 82%,rgba(255,255,255,.35) 0 1px,transparent 1.6px);background-size:220px 220px,280px 280px,330px 330px,260px 260px;animation:drift 20s linear infinite}.vignette{z-index:1;background:radial-gradient(circle at center,transparent 35%,rgba(3,2,5,.2) 70%,rgba(3,2,5,.72) 100%)}.grain{z-index:2;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='110' height='110'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.page{position:relative;z-index:3;min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:24px 30px 20px}header,footer{display:flex;align-items:center;justify-content:space-between;color:rgba(255,255,255,.66);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-transform:none;letter-spacing:.02em;font:500 19px "Cormorant Garamond",serif}.heart-outline{font-size:23px;color:var(--rose2);filter:drop-shadow(0 0 8px rgba(255,120,159,.45));animation:beat 2.4s ease-in-out infinite}.whisper{display:flex;align-items:center;gap:9px}.whisper span{width:6px;height:6px;border-radius:50%;background:var(--rose);box-shadow:0 0 14px var(--rose);animation:pulse 2s infinite}.hero{place-self:center;position:relative;width:min(980px,94vw);height:min(720px,74vh);display:grid;place-items:center}.content{position:relative;z-index:5;text-align:center}.kicker{margin:0 0 20px;font-size:10px;letter-spacing:.34em;color:rgba(255,255,255,.48);opacity:0;animation:up .9s .15s forwards}h1{margin:0;font-family:"Cormorant Garamond",serif;font-weight:500;line-height:.88}.intro{display:block;font-size:clamp(46px,6.3vw,88px);letter-spacing:-.035em;opacity:0;transform:translateY(18px);animation:up 1s .3s forwards}.name{display:block;margin-top:8px;font-size:clamp(62px,9vw,132px);font-style:italic;letter-spacing:-.055em;background:linear-gradient(180deg,#fffafc 10%,#ffd6e1 58%,#ff93b4 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 14px 26px rgba(255,94,145,.08));opacity:0;transform:translateY(28px) scale(.98);animation:nameIn 1.25s .42s forwards}.copy{max-width:640px;margin:28px auto 0;color:var(--muted);font:400 clamp(22px,2.3vw,31px)/1.35 "Cormorant Garamond",serif;opacity:0;animation:fade 1s .75s forwards}.soon{width:max-content;margin:31px auto 0;display:flex;align-items:center;gap:15px;padding:13px 22px;border:1px solid rgba(255,192,210,.25);border-radius:999px;background:rgba(255,255,255,.035);backdrop-filter:blur(16px);box-shadow:0 12px 45px rgba(0,0,0,.24),inset 0 0 26px rgba(255,255,255,.015);text-transform:uppercase;letter-spacing:.19em;font-size:11px;opacity:0;animation:fade 1s 1s forwards}.soon strong{font-weight:500}.soon span{color:var(--rose);font-size:10px;animation:beat 1.8s infinite}.soon span:last-child{animation-delay:.5s}.orb{position:absolute;border-radius:50%;filter:blur(1px);pointer-events:none}.orb-a{width:min(690px,78vw);aspect-ratio:1;background:radial-gradient(circle,rgba(255,87,141,.14) 0,rgba(255,87,141,.04) 42%,transparent 70%);animation:breathe 7s ease-in-out infinite}.orb-b{width:min(390px,48vw);aspect-ratio:1;background:radial-gradient(circle,rgba(255,215,227,.07),transparent 66%);animation:breathe 5.5s 1s ease-in-out infinite reverse}.orbit{position:absolute;border-radius:50%;border:1px solid rgba(255,194,212,.08);pointer-events:none}.orbit-a{width:min(560px,64vw);aspect-ratio:1;animation:spin 30s linear infinite}.orbit-b{width:min(720px,82vw);aspect-ratio:1;border-color:rgba(255,255,255,.035);animation:spin 46s linear infinite reverse}.float-heart{position:absolute;z-index:4;color:rgba(255,137,174,.75);font-size:12px;filter:drop-shadow(0 0 11px rgba(255,91,144,.45));animation:float 6s ease-in-out infinite}.fh1{left:12%;top:24%}.fh2{right:15%;top:21%;font-size:9px;animation-delay:-1.4s}.fh3{left:20%;bottom:20%;font-size:8px;animation-delay:-3s}.fh4{right:20%;bottom:17%;font-size:11px;animation-delay:-4.2s}footer{justify-content:center;gap:10px;opacity:.68}footer i{font-style:normal;color:var(--rose)}@keyframes up{to{opacity:1;transform:translateY(0)}}@keyframes nameIn{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade{to{opacity:1}}@keyframes beat{0%,100%{transform:scale(1)}22%{transform:scale(1.3)}37%{transform:scale(1)}}@keyframes pulse{50%{opacity:.3;transform:scale(.72)}}@keyframes breathe{50%{transform:scale(1.12);opacity:.65}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(-16px) scale(1.14);opacity:.42}}@keyframes drift{to{background-position:220px 220px,-280px 280px,330px -330px,-260px -260px}}@media(max-width:700px){.page{padding:18px 18px 16px}header{justify-content:center}.whisper{display:none}.hero{width:100%;height:78vh}.kicker{font-size:8px;letter-spacing:.28em;margin-bottom:18px}.intro{font-size:clamp(42px,12vw,58px)}.name{font-size:clamp(58px,17vw,82px);line-height:.86;margin-top:10px}.copy{font-size:22px;max-width:88%;margin-top:24px}.soon{margin-top:27px;padding:12px 18px;font-size:10px}.orb-a{width:118vw}.orb-b{width:76vw}.orbit-a{width:82vw}.orbit-b{width:112vw}.fh1{left:2%}.fh2{right:4%}.fh3{left:6%}.fh4{right:7%}footer{font-size:8px;letter-spacing:.11em;gap:7px;white-space:nowrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
