:root{--bg-deep: #050816;--bg-mid: #0b1026;--bg-core: #02030a;--glow: #e6f0ff;--white: #ffffff;--white-75: rgba(255, 255, 255, .75);--white-50: rgba(255, 255, 255, .5);--glass: rgba(12, 18, 40, .55);--glass-border: rgba(255, 255, 255, .12);--accent: #dfe9ff}*{box-sizing:border-box}::selection{background:#d8c49a59;color:#fff}::-moz-selection{background:#d8c49a59;color:#fff}html,body{height:100%}body{margin:0;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--white);background:radial-gradient(circle at top,#070912,#04050b 45%,#010205);overflow:hidden;animation:pageReveal 1.2s ease-out}@keyframes pageReveal{0%{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur(0)}}.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0%;background:linear-gradient(90deg,#d8c49a99,#ffb4dc80);z-index:9990;transition:width .1s linear;pointer-events:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}#app{position:relative}.app{position:relative;z-index:1;height:100vh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:y proximity;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}.app::-webkit-scrollbar{display:none}#stars{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}#fx-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;filter:blur(3px) contrast(1.15);mix-blend-mode:screen;opacity:1;transition:opacity .5s ease}body.milkyway-mode #fx-canvas,body.neon-mode #fx-canvas{opacity:0}#neon-video{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:0;transition:opacity .35s ease;object-fit:cover;filter:saturate(1.08) contrast(1.05) brightness(.95)}body.neon-mode #neon-video{opacity:1;pointer-events:none}.neon-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .35s ease;display:grid;align-items:end;padding:18px}body.neon-mode .neon-overlay{opacity:1}.lyrics-title{position:absolute;top:12vh;left:50%;transform:translate(-50%);margin:0;color:#e0ecffb3;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;text-shadow:0 0 10px rgba(139,188,255,.35);transition:opacity .45s ease}.lyrics-title.hide{opacity:0}.lyrics-list{position:absolute;top:42vh;left:50%;transform:translate(-50%);width:min(780px,94vw);max-height:42vh;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;display:grid;gap:12px;justify-items:center;text-align:center;pointer-events:none;background:transparent}.lyrics-list::-webkit-scrollbar{width:0;height:0}.lyric-line{margin:0;padding:2px 0;color:#d2dcec59;filter:blur(.8px);transform:scale(.985);transition:color .25s ease,filter .25s ease,transform .25s ease,opacity .25s ease;opacity:.45;text-align:center;max-width:72ch}.lyric-line.active{color:#f1f7fffc;filter:blur(0);transform:scale(1.02);opacity:1;text-shadow:0 0 26px rgba(158,206,255,.95)}.lyric-line.near{color:#d0dcee94;filter:blur(.25px);opacity:.72}.lyric-line.hidden{opacity:0;max-height:0;padding:0}.neon-exit{position:fixed;top:14px;right:14px;z-index:4;border:1px solid rgba(255,255,255,.28);background:transparent;border-radius:999px;width:48px;height:48px;padding:0;line-height:0;display:none;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.neon-exit:hover{transform:translateY(-1px) scale(1.02);border-color:#ffffff85;box-shadow:0 8px 24px #00000059}.neon-exit-icon{width:26px;height:26px;display:block;object-fit:contain;transform:translate(10px);filter:drop-shadow(0 0 8px rgba(197,226,255,.48))}body.neon-mode .neon-exit,body.experience .neon-exit,body.bloom-mode .neon-exit,body.milkyway-mode .neon-exit{display:inline-block}.quick-pop{position:fixed;left:50%;top:12%;transform:translate(-50%,-8px);z-index:6;padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#060c1cb8;color:#e9f2ff;font-size:.82rem;letter-spacing:.04em;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.quick-pop.show{opacity:1;transform:translate(-50%)}.section-dots{display:none;position:fixed;right:12px;top:50%;transform:translateY(-50%);z-index:6;gap:8px}.section-dot{width:44px;height:44px;border:0;border-radius:999px;background:transparent;cursor:pointer;position:relative}.section-dot:before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:999px;border:1px solid rgba(255,255,255,.44);background:#fff3;transition:transform .2s ease,background .2s ease,box-shadow .2s ease,border-color .2s ease}.section-dot.is-active:before{transform:translate(-50%,-50%) scale(1.35);border-color:#e6f0fff2;background:#e6f0ffe6;box-shadow:0 0 14px #e6f0ff8c}.swipe-tip{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;display:grid;place-items:center;background:#020816a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .25s ease}.swipe-tip.show{opacity:1;pointer-events:auto}.swipe-tip-card{width:min(420px,88vw);border-radius:16px;border:1px solid rgba(255,255,255,.2);background:#071026e0;padding:18px 16px 16px;text-align:center}.swipe-tip-icon{width:88px;height:88px;display:block;margin:0 auto 10px;opacity:.95}.swipe-tip-text{margin:0 0 12px;color:#eaf2ffeb;letter-spacing:.02em}.swipe-tip-ok{min-width:96px}#galaxy-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.9;transition:opacity .35s ease}#milkyway-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:0;transition:opacity .35s ease;touch-action:none;cursor:grab}body.milkyway-mode #milkyway-canvas{opacity:1;cursor:grabbing}body.milkyway-mode #galaxy-canvas,body.neon-mode #galaxy-canvas{opacity:0}.petal-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;overflow:hidden;opacity:0;transition:opacity .6s ease}body.bloom-mode .petal-layer{opacity:1}.bloom-cta{margin-top:16px}.mode-actions{display:flex;gap:12px;flex-wrap:wrap}.neon-cta{margin-top:16px}.ready-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#010205d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:3;transition:opacity .6s ease,visibility .6s ease}.ready-overlay.hide{opacity:0;visibility:hidden;pointer-events:none}.ready-card{text-align:center;padding:32px;border-radius:24px;background:#080a12cc;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 40px #0009}.ready-title{font-family:Playfair Display,Times New Roman,serif;font-size:2rem;margin:0 0 8px}.ready-subtitle{margin:0 0 20px;color:var(--white-75)}.ready-countdown{font-family:Playfair Display,Times New Roman,serif;font-size:2.6rem;margin-bottom:16px;opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease}.ready-countdown.show{opacity:1;transform:translateY(0)}.ui-layer{position:relative;z-index:1;transition:transform 1.2s ease,opacity 1.2s ease}body.experience .ui-layer,body.bloom-mode .ui-layer,body.milkyway-mode .ui-layer,body.neon-mode .ui-layer{transform:translateY(-120vh);opacity:0;pointer-events:none}body.experience .section-dots,body.bloom-mode .section-dots,body.milkyway-mode .section-dots,body.neon-mode .section-dots{opacity:0;pointer-events:none}.section{min-height:100vh;padding:88px 8vw;display:grid;place-items:center;position:relative;scroll-snap-align:start}.hero{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:56px;align-items:center}.hero-left{max-width:520px}.eyebrow{letter-spacing:.32em;text-transform:uppercase;font-size:.72rem;color:var(--white-50);margin-bottom:24px}.name{font-family:Playfair Display,Times New Roman,serif;font-weight:600;font-size:clamp(2.8rem,6vw,5.5rem);margin:0 0 16px;color:var(--white)}.subtitle{font-family:Playfair Display,Times New Roman,serif;font-style:italic;font-size:clamp(1.2rem,2.4vw,1.8rem);color:var(--white-75);margin:0 0 12px}.lede{color:var(--white-50);line-height:1.7;margin:0 0 32px}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.cta{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.45);background:transparent;color:var(--white);text-decoration:none;padding:14px 28px;border-radius:999px;letter-spacing:.08em;text-transform:uppercase;font-size:.74rem;cursor:pointer;transition:box-shadow .3s ease,border-color .3s ease,transform .3s ease}.cta:hover{border-color:var(--glow);box-shadow:0 0 30px #e6f0ff66;transform:translateY(-2px)}.clock{display:grid;gap:4px}.clock-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--white-50)}.clock-time{font-family:Playfair Display,Times New Roman,serif;font-size:1.4rem;color:var(--accent)}.hero-right{display:grid;place-items:center}.tulip-frame{position:relative;width:min(420px,80vw);aspect-ratio:3 / 4;border-radius:28px;background:linear-gradient(160deg,#ffffff14,#ffffff05);border:1px solid rgba(255,255,255,.12);overflow:hidden;box-shadow:0 24px 50px #05081699}.tulip-image{width:100%;height:100%;display:block;object-fit:cover}.tulip-glow{position:absolute;top:20%;right:10%;bottom:10%;left:10%;background:radial-gradient(circle,rgba(255,255,255,.2),transparent 60%);filter:blur(12px);pointer-events:none}.tulip-caption{position:absolute;bottom:18px;left:24px;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--white-50)}.glass{width:min(900px,92vw);padding:30px 22px;border-radius:20px;background:linear-gradient(170deg,#090d1f61,#070b1b42);border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 22px 46px #00000038}.glass h2,.glass p,.glass span,.glass label{text-shadow:0 2px 4px rgba(0,0,0,.6)}.glass.wide{width:min(1020px,94vw)}.anticipation .glass{background:linear-gradient(160deg,#0c112757,#080c1e38)}.countdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:20px;margin:28px 0 20px}.countdown-item{border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:18px 16px;text-align:center;background:#05081699}.countdown-value{display:block;font-family:Playfair Display,Times New Roman,serif;font-size:2.4rem;letter-spacing:.08em}.countdown-label{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:var(--white-50)}.countdown-footer{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.countdown-note{color:var(--white-75);font-style:italic}.pill{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:6px 14px;text-transform:uppercase;letter-spacing:.2em;font-size:.75rem}.testimonial-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.testimonial-card{padding:20px;border-radius:20px;border:1px solid rgba(255,255,255,.12);background:#06091880}.testimonial-quote{margin:0 0 16px;font-style:italic;color:var(--white-75)}.testimonial-name{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--white-50)}.joke-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.joke-card{display:grid;gap:12px;padding:20px;border-radius:20px;background:#06091880;border:1px solid rgba(255,255,255,.12)}.joke-title,.joke-body{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.15);background:#02030ab3;color:var(--white);padding:10px 12px;font-family:Inter,system-ui,sans-serif}.joke-body{resize:vertical;min-height:96px}.joke-hint{font-size:.75rem;color:var(--white-50)}.quiz-card{display:grid;gap:16px;padding:24px;border-radius:24px;border:1px solid rgba(255,255,255,.12);background:#06091899}.quiz-question{font-size:1.4rem;margin:0;font-family:Playfair Display,Times New Roman,serif}.quiz-options{display:grid;gap:12px}.quiz-option{text-align:left;border-radius:14px;padding:12px 16px;border:1px solid rgba(255,255,255,.15);background:#02030a99;color:var(--white);cursor:pointer;transition:border-color .2s ease,transform .2s ease}.quiz-option:hover{border-color:#fff6;transform:translateY(-2px)}.quiz-option.active{border-color:var(--glow);box-shadow:0 0 22px #e6f0ff40}.quiz-feedback{margin:0;color:var(--white-75);min-height:24px}.quiz-next{justify-self:start}.quiz-next:disabled{opacity:.5;cursor:not-allowed;transform:none}.question-actions{display:flex;gap:12px;flex-wrap:wrap}.question-btn{min-width:110px}.question-btn.is-active{border-color:var(--glow);box-shadow:0 0 24px #e6f0ff59}.question-promise{display:none}.question-promise.show{display:inline-flex}.question-result{margin:16px 0 0;color:var(--white-75);opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease}.question-result.show{opacity:1;transform:translateY(0)}.question-link{margin-top:14px;transition:all .5s ease}.question-link.attract{background:linear-gradient(135deg,#ffd70040,#ffb4dc33);border:1px solid rgba(255,215,0,.5);box-shadow:0 0 15px #ffd7004d,0 0 40px #ffd7001f;animation:attractPulse 1.8s ease-in-out infinite;transform:scale(1.06);color:gold;font-weight:500;letter-spacing:.5px}@keyframes attractPulse{0%,to{box-shadow:0 0 15px #ffd7004d,0 0 40px #ffd7001f;transform:scale(1.06)}50%{box-shadow:0 0 25px #ffd70080,0 0 60px #ffd70033;transform:scale(1.1)}}.question-result.is-accepted{color:#ccffe8;text-shadow:0 0 14px rgba(140,255,214,.35)}.question-result.is-pending{color:#d7e4ff}.section-title h2{font-family:Playfair Display,Times New Roman,serif;font-size:clamp(2rem,3.8vw,3rem);margin:0 0 12px}.section-title p{margin:0 0 36px;color:var(--white-75)}.constellation-map{position:relative;height:min(320px,60vw);margin-bottom:32px;border-radius:24px;background:radial-gradient(circle at top right,rgba(255,255,255,.06),transparent 60%);overflow:hidden}.constellation-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;stroke:#ffffff2e;stroke-width:.4}.star{position:absolute;width:44px;height:44px;border-radius:50%;background:transparent;box-shadow:none;border:none;cursor:pointer;transform:translate(-50%,-50%);left:var(--x);top:var(--y);transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.star:after{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);background:var(--white);box-shadow:0 0 12px #fffc;animation:twinkle 3.2s ease-in-out infinite}.star:hover,.star:focus-visible{transform:translate(-50%,-50%) scale(1.24);outline:none}.star.active{transform:translate(-50%,-50%) scale(1.32)}.star.active:after{background:#f7fbff;box-shadow:0 0 24px #dcf0ff}.star.small{position:static;width:44px;height:44px;margin:0}.memory-card{border-top:1px solid rgba(255,255,255,.12);padding-top:24px;display:grid;gap:12px;transition:transform .22s ease,opacity .22s ease}.memory-card.show{transform:translateY(-2px)}.memory-title{font-family:Playfair Display,Times New Roman,serif;font-size:1.2rem}.memory-body{margin:0;color:var(--white-75)}.petal-fall{position:relative;height:260px;overflow:hidden;margin-top:16px}.petal-svg{position:absolute;top:-10%;pointer-events:none;z-index:1}@keyframes petal-fall{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:.9}to{transform:translateY(110vh) rotate(160deg);opacity:0}}.surprise-grid{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}.footer{padding:40px 8vw 60px;text-align:center;color:var(--white-50)}.footer-cta{margin-top:14px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#02030ab3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:4}.modal.show{opacity:1;pointer-events:auto}.modal-card{width:min(520px,90vw);position:relative;padding:40px;text-align:left}.modal-close{position:absolute;top:18px;right:20px;border:none;background:transparent;color:var(--white-75);font-size:1.6rem;cursor:pointer}.gate-modal,.lock-in-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .28s ease;z-index:5}.gate-modal{background:#01030ac7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.gate-modal.show,.lock-in-overlay.show{opacity:1;pointer-events:auto}.gate-card{width:min(460px,92vw);border-radius:22px;position:relative;display:grid;gap:14px;padding:28px;border:1px solid rgba(255,255,255,.15);background:#060a19e6}.gate-card h3{margin:0;font-family:Playfair Display,Times New Roman,serif;font-size:1.8rem}.gate-card p{margin:0;color:var(--white-75)}.gate-input{border-radius:14px;border:1px solid rgba(255,255,255,.18);background:#01030ccc;color:var(--white);padding:12px 14px;font-size:.95rem}.gate-actions{display:flex;gap:10px;flex-wrap:wrap}.gate-error{color:#ffcad4;min-height:20px}.lock-in-overlay{background:radial-gradient(circle at center,#081024f2,#010206f5)}.lock-in-card{text-align:center;max-width:min(640px,88vw)}.lock-in-label{letter-spacing:.22em;text-transform:uppercase;color:var(--white-50);font-size:.68rem;margin:0 0 10px}.lock-in-card h3{margin:0;font-family:Playfair Display,Times New Roman,serif;font-size:clamp(2rem,5vw,3.3rem)}.lock-in-sub{margin:10px 0 2px;color:var(--white-75)}.lock-in-count{font-family:Playfair Display,Times New Roman,serif;font-size:clamp(2.4rem,8vw,4rem);color:#ebf4ff;text-shadow:0 0 20px rgba(230,240,255,.45)}.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:translateY(0)}body.low-power .reveal{transition-duration:.45s}body.low-power .star{animation:none;box-shadow:0 0 8px #ffffff8c}body.low-power .cta:hover{transform:none;box-shadow:none}@keyframes twinkle{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.8}50%{transform:translate(-50%,-50%) scale(1.4);opacity:1}}@media (max-width: 900px){.app{scroll-snap-type:y mandatory}.section{padding:64px 7vw}.hero{grid-template-columns:1fr}.surprise-grid{justify-content:center}}@media (max-width: 600px){.app{scroll-snap-type:y mandatory}.glass{padding:24px 18px}.hero-actions{flex-direction:column;align-items:flex-start}.section{padding:48px 7vw}.section-dots{right:6px;gap:6px}.lyrics-list{top:39vh;width:min(92vw,680px);max-height:50vh}}.screen-shake{animation:screenShake .6s ease-out}@keyframes screenShake{0%,to{transform:translate(0)}10%{transform:translate(-2px,1px)}20%{transform:translate(3px,-1px)}30%{transform:translate(-1px,2px)}40%{transform:translate(2px,-2px)}50%{transform:translate(-3px,1px)}60%{transform:translate(1px,-1px)}70%{transform:translate(-2px,2px)}80%{transform:translate(3px,-1px)}90%{transform:translate(-1px,1px)}}.typewriter-section .glass{max-width:700px;margin:0 auto}.letter-paper{position:relative;background:linear-gradient(170deg,#1e1628d9,#120e1eeb);border:1px solid rgba(216,196,154,.18);border-radius:16px;padding:clamp(1.5rem,4vw,2.5rem);margin-top:1.2rem;box-shadow:inset 0 1px #ffffff0f,0 0 60px #d8c49a0f,0 8px 32px #0000004d;min-height:200px;overflow-y:auto;max-height:65vh}.letter-paper::-webkit-scrollbar{width:4px}.letter-paper::-webkit-scrollbar-thumb{background:#d8c49a40;border-radius:2px}.letter-content{font-family:Playfair Display,serif;font-style:italic;font-size:clamp(.95rem,2.2vw,1.1rem);line-height:1.85;color:#e9efffe0;letter-spacing:.02em;white-space:pre-wrap;word-wrap:break-word}.letter-content .letter-bold{font-weight:600;color:#d8c49af2;font-style:italic}.letter-content .letter-break{display:block;height:.6em}.letter-cursor{display:inline;font-family:Inter,sans-serif;font-weight:300;font-style:normal;color:#d8c49ae6;animation:cursorBlink .9s ease-in-out infinite;font-size:1.1em}.letter-cursor.done{animation:cursorFade 2s ease-out forwards}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}@keyframes cursorFade{0%{opacity:1}to{opacity:0}}.vibe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:24px}.vibe-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);padding:24px;border-radius:16px;text-align:center;transition:transform .3s ease,background .3s ease}.vibe-card:hover{transform:translateY(-4px);background:#ffffff14}.vibe-card h3{font-family:Playfair Display,serif;font-size:1.25rem;margin-bottom:8px;color:var(--white);text-shadow:0 2px 4px rgba(0,0,0,.6)}.vibe-card p{font-size:.95rem;color:var(--white-75);line-height:1.5;text-shadow:0 2px 4px rgba(0,0,0,.6)}
