.app-root{min-height:100vh;color:#4b304a}.app-main{max-width:960px;margin:0 auto;padding:4rem 1.5rem 6rem}.section{margin:4rem 0}.section-title{font-size:2rem;margin-bottom:1.5rem;text-align:center;color:#d474a6}.centered{display:flex;flex-direction:column;align-items:center;justify-content:center}.subtle-text{font-size:.95rem;opacity:.7;margin-top:.75rem}.music-toggle-wrapper{position:fixed;top:1rem;right:1rem;z-index:20}.cement-intro-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem}.cement-intro-inner{max-width:460px;padding:2.8rem 2.2rem;border-radius:26px;background:radial-gradient(circle at top,#ffe8f4 0,#fff 55%);text-align:center;box-shadow:0 20px 50px #ad78be66}.cement-intro-title{font-size:1.5rem;margin-bottom:.4rem;color:#d474a6}.cement-intro-sub{font-size:.98rem;opacity:.8;margin-bottom:1.8rem}.cement-bag-button{border:none;background:none;cursor:pointer}.cement-image{max-width:220px;height:auto;filter:drop-shadow(0 18px 35px rgba(90,61,121,.45))}.cement-rip-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.cement-rip-left,.cement-rip-right{position:absolute;top:50%;width:60%;height:40%;background:#ffe4f2;border-radius:28px;box-shadow:0 18px 40px #a55f9966}.cement-rip-left{left:0;transform-origin:right center}.cement-rip-right{right:0;transform-origin:left center}.cement-rip-text{position:relative;z-index:2;font-size:2rem;color:#d474a6;text-shadow:0 6px 24px rgba(131,80,144,.5)}.landing-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem}.landing-inner{max-width:520px;padding:3rem 2.5rem;border-radius:28px;text-align:center;background:#ffffffdb;box-shadow:0 18px 45px #e7a0c159;border:1px solid rgba(255,182,193,.45);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.landing-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;color:#98648b;margin-bottom:.75rem}.landing-title{font-size:clamp(2.5rem,7vw,3.4rem);color:#d474a6;margin-bottom:.75rem}.landing-subtitle{font-size:1.02rem;margin-bottom:2.3rem;color:#6b4769}.primary-btn{border:none;padding:.95rem 2.4rem;border-radius:999px;background:linear-gradient(135deg,#ff9ac6,#ffce92);color:#4b304a;font-weight:600;cursor:pointer;box-shadow:0 10px 25px #ffa3c299;font-size:1rem}.landing-hint{margin-top:1.5rem;font-size:.9rem;opacity:.7}.typing-section .typing-container{padding:2rem 1.75rem;border-radius:24px;background:#ffffffe6;border:1px solid rgba(222,176,255,.6);box-shadow:0 12px 35px #bea0ff59}.typing-line{font-size:1.3rem;margin-bottom:.8rem;min-height:1.4em}.typing-line.is-done{color:#7a5276}.typing-cursor{display:inline-block;width:1px;margin-left:4px;background:#d474a6;animation:blink .9s steps(2,start) infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.continue-section{margin-top:2.5rem}.continue-btn{background:linear-gradient(135deg,#a5b4ff,#ff9ac6)}.lyric-section{margin-top:3rem}.lyric-backdrop{border-radius:26px;padding:3rem 1.5rem;background:radial-gradient(circle at top,#111321 0,#050509,#05050a);box-shadow:0 24px 60px #05050af2;overflow:hidden}.lyric-backdrop-pulse{animation:lyricPulse .8s ease-out}@keyframes lyricPulse{0%{transform:scale(1);box-shadow:0 24px 60px #05050af2}40%{transform:scale(1.02);box-shadow:0 26px 70px #ff96fa66}to{transform:scale(1);box-shadow:0 24px 60px #05050af2}}.lyric-spot{max-width:640px;margin:0 auto;text-align:center}.lyric-tagline{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:#b6a4ff;margin-bottom:1.4rem}.lyric-line{font-size:clamp(1.6rem,4vw,2.1rem);margin-bottom:1.4rem;color:#f9f5ff;text-shadow:0 0 22px rgba(209,162,255,.8)}.lyric-line-bass{animation:lyricBass .6s ease-out}@keyframes lyricBass{0%{transform:translateY(0)}25%{transform:translateY(-6px)}50%{transform:translateY(0)}75%{transform:translateY(-3px)}to{transform:translateY(0)}}.lyric-hint{margin-top:1.4rem;font-size:.9rem;color:#a79ad9}.fortune-section .fortune-card{margin-top:2.2rem;border-radius:24px;padding:2.1rem 1.8rem;background:#fffffff0;box-shadow:0 16px 40px #a37dd066;text-align:center}.fortune-btn{margin-top:1.3rem}.fortune-result-wrapper{min-height:3rem;margin-top:1.2rem}.fortune-text{font-size:1.02rem;color:#6b4769}.cakegame-section .cakegame-card{margin-top:1.8rem;border-radius:26px;padding:1.6rem 1.6rem 1.9rem;background:#fffffff5;box-shadow:0 18px 48px #9c7ad180}.cakegame-header{display:flex;justify-content:space-between;margin-bottom:.8rem;font-weight:500}.cakegame-playfield{position:relative;margin:.7rem 0 1.2rem;height:220px;border-radius:20px;background:linear-gradient(180deg,#ffe8f4,#fff7e6);overflow:hidden}.cakegame-cake{position:absolute;transform:translate(-50%,-50%);font-size:1.6rem}.cakegame-basket{position:absolute;bottom:10px;transform:translate(-50%);font-size:1.8rem}.cakegame-result{text-align:center;margin-top:.6rem}.friendship-section .friendship-grid{margin-top:2.2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem}.friendship-card{border-radius:22px;padding:1.3rem 1.3rem 1.5rem;background:#fffffff0;box-shadow:0 14px 35px #9373c773}.friendship-card h3{margin-bottom:.4rem;font-size:1.05rem}.friendship-card p{font-size:.95rem}.friendship-emoji{font-size:1.6rem;margin-bottom:.6rem}.finale-section{margin-top:3.2rem;display:flex;justify-content:center}.finale-card{text-align:center;max-width:520px;padding:2.4rem 2rem;border-radius:28px;background:radial-gradient(circle at top,#ffe9f7 0,#fff 55%,#f3e3ff);box-shadow:0 24px 60px #b284dc99}.finale-card h2{font-size:clamp(2.1rem,5vw,2.7rem);margin-bottom:1rem;color:#d474a6}.finale-card p{margin-bottom:1.5rem}.finale-btn{margin-top:.5rem}.finale-insta-wrapper{margin-top:2rem}.finale-insta-text{font-size:.95rem;margin-bottom:.7rem;color:#7a4f88}.finale-insta-image{max-width:260px;width:100%;border-radius:20px;box-shadow:0 18px 45px #a76bd699}.gift-section .gift-button,.cake-section .cake-button{border:none;background:none;margin-top:2rem;cursor:pointer}.gift-box{position:relative;width:180px;height:160px}.gift-lid{position:absolute;top:0;left:0;right:0;height:55px;border-radius:18px 18px 12px 12px;background:linear-gradient(135deg,#ffb6d9,#ffc9a3)}.gift-base{position:absolute;bottom:0;left:0;right:0;height:110px;border-radius:12px 12px 18px 18px;background:linear-gradient(135deg,#ffe3f0,#fff0d6)}.gift-ribbon-vertical,.gift-ribbon-horizontal{position:absolute;background:#e67aaae6}.gift-ribbon-vertical{width:26px;top:0;bottom:0;left:50%;transform:translate(-50%);border-radius:999px}.gift-ribbon-horizontal{height:22px;left:0;right:0;top:46%}.gift-message{position:absolute;top:-70px;left:50%;transform:translate(-50%);background:#fff;padding:.8rem 1rem;border-radius:16px;width:220px;font-size:.9rem;box-shadow:0 10px 30px #d284b34d}.cake{position:relative;width:200px;height:160px;margin-top:1.5rem;transition:transform .4s ease}.cake-layer{position:absolute;left:50%;transform:translate(-50%);border-radius:16px 16px 20px 20px}.cake-layer-top{bottom:100px;width:120px;height:35px;background:linear-gradient(135deg,#ffe0f4,#ffe7ba)}.cake-layer-middle{bottom:65px;width:150px;height:38px;background:linear-gradient(135deg,#ffbad5,#ffe0a3)}.cake-layer-bottom{bottom:30px;width:180px;height:40px;background:linear-gradient(135deg,#ff92c5,#ffd27f)}.cake-plate{position:absolute;bottom:16px;left:50%;transform:translate(-50%);width:210px;height:10px;border-radius:999px;background:#f5f5ff;box-shadow:0 4px 12px #67579b40}.cake-candle{position:absolute;bottom:135px;left:50%;transform:translate(-50%);width:10px;height:34px;background:repeating-linear-gradient(45deg,#ffbfd7,#ffbfd7 4px,#ffeef7 4px,#ffeef7 8px);border-radius:999px}.candle-flame{position:absolute;top:-14px;left:50%;transform:translate(-50%);width:16px;height:22px;border-radius:50%;background:radial-gradient(circle at 30% 10%,#fff7c1 0,#ffb347 40%,#ff8a65 70%);animation:flicker .9s infinite alternate}@keyframes flicker{0%{transform:translate(-50%) scale(1)}to{transform:translate(-50%) scale(1.1)}}.cake-cut{transform:translate(-6px) rotate(-2deg)}.cake-message{margin-top:1.2rem;font-weight:500;color:#7a4f88}.timeline-section .timeline{margin-top:2.5rem;display:flex;flex-direction:column;gap:2.5rem}.timeline-card{position:relative;display:flex}.timeline-line{position:absolute;left:16px;top:0;bottom:-2.5rem;width:2px;background:linear-gradient(to bottom,#ffc1e5,transparent)}.timeline-dot{position:relative;margin-top:.6rem;width:14px;height:14px;border-radius:999px;background:#ff9ac6;box-shadow:0 0 0 6px #ffb1d64d}.timeline-content{margin-left:2.5rem;display:flex;gap:1.2rem;align-items:center}.timeline-image-wrapper{width:150px;height:110px;border-radius:18px;overflow:hidden;box-shadow:0 12px 30px #634b8247;background:#f6f0ff}.timeline-image{width:100%;height:100%;object-fit:cover}.timeline-text{max-width:420px}.timeline-year{font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;color:#a47eb1;margin-bottom:.4rem}.timeline-caption{font-size:.98rem}.secret-section{display:flex;justify-content:center}.secret-card{max-width:540px;padding:2.4rem 2.1rem;border-radius:26px;text-align:center;background:radial-gradient(circle at top,#ffe9f6 0,#fff 55%,#f3e3ff);box-shadow:0 16px 40px #ba84dc66}.secret-card h2{font-size:1.5rem;margin-bottom:1rem;color:#d474a6}.secret-card p{margin-bottom:.5rem}.secret-label{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:#9a6cb0;margin-bottom:.7rem}.music-player{display:flex;align-items:center;gap:.5rem}.music-toggle{border:none;border-radius:999px;padding:.5rem .9rem;font-size:.85rem;background:#ffffffe0;box-shadow:0 8px 22px #a370c066;cursor:pointer}.cake3d-section .cake3d-wrapper{margin-top:2.2rem;border-radius:26px;padding:1.6rem;background:#ffffffe6;box-shadow:0 16px 40px #9674d373;cursor:pointer}.cake3d-message{margin-top:1.3rem;font-weight:500;color:#7a4f88}.midnight-section{display:flex;justify-content:center}.midnight-card{max-width:520px;width:100%;padding:2rem 1.7rem;border-radius:22px;background:radial-gradient(circle at top,#110a2f 0,#1a103f 40%,#2a184f);color:#f8ecff;box-shadow:0 22px 55px #1d0838e6;position:relative;overflow:hidden}.midnight-card:before{content:"";position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:radial-gradient(circle at top,rgba(255,255,255,.16) 0,transparent 50%);opacity:.4;animation:midnightGlow 6s ease-in-out infinite}@keyframes midnightGlow{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-12%);opacity:.7}}.midnight-locked{text-align:center;font-size:.98rem}.midnight-unlocked{position:relative;z-index:1;text-align:center}.midnight-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:#c1a7ff;margin-bottom:.7rem}.midnight-unlocked h3{font-size:1.4rem;margin-bottom:.5rem}.midnight-strong{margin-top:.9rem;font-weight:600;color:#ffd8ff}.gauri-ai-widget{position:fixed;right:1rem;bottom:1rem;width:260px;border-radius:18px;background:#221133f5;color:#f8ecff;box-shadow:0 18px 45px #110322d9;padding:.9rem;z-index:30;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.gauri-ai-header{font-size:.82rem;margin-bottom:.55rem;color:#e2c8ff}.gauri-ai-body{min-height:54px;font-size:.86rem;margin-bottom:.7rem}.gauri-ai-message{opacity:.9}.gauri-ai-button{width:100%;border-radius:999px;border:none;padding:.45rem .7rem;font-size:.82rem;background:linear-gradient(135deg,#ff9ac6,#ffce92);cursor:pointer;color:#3b2138;font-weight:600}@media (min-width: 768px){.app-main{padding:5rem 2.5rem 7rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at top,#ffe4f0 0,#fff7e6 45%,#f5ecff);color:#4b304a;min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh}button{font-family:inherit}a{color:inherit;text-decoration:none}.floating-background{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:-1}.floating-heart,.floating-sparkle,.floating-flower{position:absolute;opacity:.6;animation:floatUp 18s linear infinite;filter:drop-shadow(0 0 6px rgba(255,182,193,.5))}.floating-heart{color:#ff8fb7}.floating-sparkle{color:#ffd27f}.floating-flower{color:#ffbde6;animation-duration:22s}@keyframes floatUp{0%{transform:translateY(0) translate(0) scale(.9);opacity:.1}20%{opacity:.8}to{transform:translateY(-120vh) translate(40px) scale(1.2);opacity:0}}
