:root{--bg: #07050f;--fg: #f8f7ff;--muted: #cfc8ea;--purple: #9046ff;--purple-soft: #c6a0ff;--ease-out: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:radial-gradient(ellipse at center,#1a0d38 0%,var(--bg) 70%);color:var(--fg);font-family:Space Grotesk,system-ui,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}.scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;cursor:grab;opacity:0;transition:opacity 1.2s ease}.scene.is-ready{opacity:1}.scene:active{cursor:grabbing}.scene canvas{display:block;touch-action:pan-y}.grain{position:fixed;top:-50%;right:-50%;bottom:-50%;left:-50%;z-index:2;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(3,2,8,.75) 100%)}.hero{--look-x: 0;--look-y: 0;position:relative;z-index:3;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;text-align:center;padding:2rem 1.25rem;pointer-events:none}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 42% 38% at 50% 55%,rgba(7,5,15,.8) 0%,transparent 100%)}.ghost-stage{position:relative;display:flex;flex-direction:column;align-items:center;margin-bottom:.5rem}.ghost-wrap{position:relative}.ghost-glow{position:absolute;top:-35%;right:-35%;bottom:-35%;left:-35%;border-radius:50%;background:radial-gradient(circle,rgba(144,70,255,.6) 0%,transparent 65%);filter:blur(22px)}.ghost{position:relative;filter:drop-shadow(0 12px 32px rgba(144,70,255,.55))}.ghost-eyes-track{transform:translate(calc(var(--look-x) * 14px),calc(var(--look-y) * 9px));transition:transform .25s var(--ease-out)}.ghost-shadow{width:clamp(60px,10vw,100px);height:12px;margin-top:10px;border-radius:50%;background:radial-gradient(ellipse,rgba(144,70,255,.55) 0%,transparent 70%);filter:blur(4px)}.title{font-size:clamp(2.6rem,11.5vw,7rem);font-weight:700;letter-spacing:-.035em;line-height:.95;display:flex;flex-wrap:wrap;justify-content:center;column-gap:.25em;text-shadow:0 2px 30px rgba(7,5,15,.9)}.word{display:inline-flex}.char{display:inline-block}.accent .char{background:linear-gradient(100deg,#e4d6ff,#a874ff,#e4d6ff 90%);background-size:400% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 2px 18px rgba(7,5,15,.8))}.accent .char{background-position:calc(var(--i) * -9%) 0}.soon{display:flex;align-items:center;gap:1rem;font-size:clamp(.8rem,2vw,1.1rem);text-transform:uppercase;letter-spacing:.55em;padding-left:.55em;color:var(--muted);text-shadow:0 2px 20px rgba(7,5,15,.95)}.soon-line{width:clamp(24px,6vw,64px);height:1px;background:linear-gradient(90deg,transparent,var(--purple-soft))}.soon-line:last-child{background:linear-gradient(90deg,var(--purple-soft),transparent)}.footer{position:fixed;bottom:1.5rem;width:100%;text-align:center;z-index:3;font-size:.75rem;color:var(--muted);opacity:.7;letter-spacing:.2em;pointer-events:none}@media(prefers-reduced-motion:no-preference){.ghost-stage{opacity:0;animation:rise 1.2s .2s var(--ease-out) forwards}.ghost-wrap{animation:float 4.5s 1.4s ease-in-out infinite}.ghost-shadow{animation:shadow 4.5s 1.4s ease-in-out infinite}.ghost-glow{animation:pulse 4.5s 1.4s ease-in-out infinite}.ghost-eyes{animation:blink 6s 2s infinite;transform-box:fill-box;transform-origin:center}.char{opacity:0;transform:translateY(.5em) rotate(6deg);filter:blur(8px);animation:char-in .9s calc(.6s + var(--i) * 45ms) var(--ease-out) forwards}.accent .char{animation:char-in-clip .9s calc(.6s + var(--i) * 45ms) var(--ease-out) forwards,shimmer 8s 2s linear infinite}.soon{opacity:0;animation:rise 1s 1.4s var(--ease-out) forwards,breathe 3.5s 2.6s ease-in-out infinite}.soon-line{transform:scaleX(0);animation:line-in 1s 1.6s var(--ease-out) forwards}.soon-line:first-child{transform-origin:right}.soon-line:last-child{transform-origin:left}.footer{opacity:0;animation:rise-dim 1s 1.8s var(--ease-out) forwards}}@keyframes rise{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}@keyframes rise-dim{0%{opacity:0;transform:translateY(.75rem)}to{opacity:.7;transform:translateY(0)}}@keyframes char-in{to{opacity:1;transform:none;filter:blur(0)}}@keyframes char-in-clip{0%{opacity:0;transform:translateY(.5em) rotate(6deg);filter:blur(8px)}to{opacity:1;transform:none;filter:drop-shadow(0 2px 18px rgba(7,5,15,.8))}}@keyframes float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-16px) rotate(2deg)}}@keyframes shadow{0%,to{transform:scaleX(1);opacity:1}50%{transform:scaleX(.7);opacity:.5}}@keyframes pulse{0%,to{opacity:.6;transform:scale(.95)}50%{opacity:1;transform:scale(1.08)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}94%{transform:scaleY(.1)}96%{transform:scaleY(1)}97.5%{transform:scaleY(.1)}}@keyframes shimmer{to{background-position:calc(var(--i) * -9% - 400%) 0}}@keyframes breathe{0%,to{opacity:1}50%{opacity:.7}}@keyframes line-in{to{transform:scaleX(1)}}
