:root{color:#3a1427;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#fff6fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{overflow-x:hidden}button{font:inherit}h1,p{margin:0}.card-room{background:radial-gradient(circle at 18% 18%,#ff74a63d,#0000 24rem),radial-gradient(circle at 88% 16%,#39ceb433,#0000 22rem),radial-gradient(circle at 50% 88%,#ffc75747,#0000 26rem),linear-gradient(145deg,#fff7fc 0%,#ffeaf3 46%,#f4fff9 100%);place-items:center;min-height:100svh;padding:clamp(16px,4vw,44px);display:grid;position:relative;overflow:hidden}.glow-field,.petal-field{pointer-events:none;position:absolute;inset:0}.glow{filter:blur(10px);opacity:.72;border-radius:999px;animation:7s ease-in-out infinite alternate softPulse;position:absolute}.glow-rose{aspect-ratio:1;background:#fc4f8b33;width:clamp(150px,26vw,360px);top:8%;left:-5%}.glow-mint{aspect-ratio:1;background:#26bea52e;width:clamp(140px,22vw,320px);animation-delay:1.4s;top:18%;right:-4%}.glow-gold{aspect-ratio:1;background:#ffb84033;width:clamp(170px,28vw,390px);animation-delay:2.2s;bottom:-11%;left:35%}.falling-petal{left:var(--left);width:var(--size);height:calc(var(--size) * 1.45);opacity:.5;animation:petalDrift var(--duration) linear infinite;animation-delay:var(--delay);background:linear-gradient(145deg,#ff6f9f,#ffd1df 70%);border-radius:90% 12% 90% 18%;position:absolute;top:-10%;transform:rotate(22deg)}.birthday-card{z-index:1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#ffffffc7,#fff8fce6),radial-gradient(circle at 50% 44%,#ffffffe0,#0000 19rem);border:1px solid #7a254d29;border-radius:clamp(28px,5vw,48px);grid-template-rows:auto minmax(270px,1fr) auto;place-items:center;gap:clamp(18px,4vw,30px);width:min(100%,900px);min-height:min(88svh,760px);padding:clamp(18px,4vw,42px);display:grid;position:relative;box-shadow:0 34px 90px #5616352b}.message{text-align:center;justify-items:center;gap:clamp(10px,2vw,14px);width:min(100%,700px);display:grid}.eyebrow{color:#7b2048;background:#ffffffbd;border:1px solid #7a254d29;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:0 14px;font-size:clamp(.78rem,2vw,.9rem);font-weight:850;display:inline-flex}.message h1{color:#3a1427;letter-spacing:0;max-width:12.5ch;font-size:clamp(2.35rem,7vw,5.4rem);font-weight:950;line-height:.98}.message .note{color:#3a1427c7;max-width:46rem;font-size:clamp(1rem,2.2vw,1.2rem);font-weight:560;line-height:1.62}.cake-stage{width:min(82vw,500px);min-height:min(50svh,380px);color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;display:grid;position:relative}.cake-stage:focus-visible,.primary-action:focus-visible{outline-offset:5px;outline:4px solid #2693805c}.wish-moon{aspect-ratio:1;color:#4a1430;background:radial-gradient(circle at 34% 28%,#fff 0 19%,#0000 20%),conic-gradient(from 80deg,#ffe789,#ff8fbd,#67d9c5,#ffe789);border-radius:999px;place-items:center;width:clamp(62px,12vw,94px);animation:5s linear infinite moonShimmer;display:grid;position:absolute;top:clamp(0px,2vw,18px);box-shadow:0 18px 46px #ff77a742}.cake{aspect-ratio:1.05;filter:drop-shadow(0 34px 42px #5b1c3933);place-items:center;width:clamp(220px,48vw,390px);animation:3.4s ease-in-out infinite alternate cakeFloat;display:grid;position:relative}.candle{z-index:4;background:repeating-linear-gradient(45deg,#fff 0 9px,#ff78a8 10px 18px);border-radius:999px;width:clamp(16px,4vw,24px);height:clamp(66px,13vw,98px);position:absolute;top:4%;box-shadow:inset 0 0 0 1px #5c123314}.flame{aspect-ratio:.72;background:radial-gradient(circle at 48% 70%,#fff5c7 0 20%,#ffd45c 35%,#ff7a5f 70%);border-radius:70% 70% 58% 58%;width:clamp(22px,5vw,32px);animation:.95s ease-in-out infinite alternate flameFlicker;position:absolute;top:-28px;left:50%;transform:translate(-50%)rotate(4deg);box-shadow:0 0 26px #ff9758c7}.flame.final{box-shadow:0 0 30px #ff6c97e6,0 0 70px #ffcd56b8}.cake-top,.cake-cream,.cake-base,.cake-bow{position:absolute}.cake-top{z-index:3;background:linear-gradient(#fffaf3,#ffdce8);border-radius:999px;width:76%;height:23%;top:29%;box-shadow:inset 0 -12px #ff73a12e}.cake-cream{z-index:2;background:radial-gradient(circle at 12% 0,#fffaf3 0 18px,#0000 19px),radial-gradient(circle at 34% 0,#fffaf3 0 22px,#0000 23px),radial-gradient(circle at 58% 0,#fffaf3 0 18px,#0000 19px),radial-gradient(circle at 82% 0,#fffaf3 0 24px,#0000 25px);border-radius:0 0 42px 42px;width:76%;height:16%;top:42%}.cake-base{z-index:1;color:#fff8fc;background:linear-gradient(135deg,#9b2457,#eb5b8e 58%,#ffb85c);border-radius:28px 28px 46px 46px;place-items:center;width:70%;height:34%;display:grid;top:48%;box-shadow:inset 0 -18px #56123229}.cake-bow{z-index:3;background:radial-gradient(circle,#fff7fb 0 15%,#0000 16%),linear-gradient(135deg,#0000 0 12%,#fff7fb 13% 43%,#0000 44%),linear-gradient(225deg,#0000 0 12%,#fff7fb 13% 43%,#0000 44%);width:28%;height:18%;animation:2.6s ease-in-out infinite alternate bowWiggle;bottom:12%}.compliment-orbit{pointer-events:none;position:absolute;inset:0}.compliment{color:#5f1639;background:#fffefd;border:1px solid #7a254d24;border-radius:999px 999px 999px 16px;justify-content:center;align-items:center;min-height:40px;padding:0 18px;font-size:clamp(.82rem,2.5vw,.98rem);font-weight:900;animation:2.8s ease-in-out infinite alternate complimentFloat;display:inline-flex;position:absolute;box-shadow:0 16px 34px #5b1c3921}.compliment-1{top:38%;left:1%;transform:rotate(-12deg)}.compliment-2{animation-delay:.4s;top:30%;right:3%;transform:rotate(10deg)}.compliment-3{animation-delay:.8s;bottom:5%;left:50%;transform:translate(-50%)rotate(3deg)}.controls{justify-content:center;display:flex}.primary-action{color:#fff8fc;cursor:pointer;background:linear-gradient(135deg,#6f1d44,#b92d66);border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:0 24px;font-weight:920;transition:transform .2s,box-shadow .2s,filter .2s;display:inline-flex;box-shadow:0 20px 46px #6f1d443b}.primary-action:hover{filter:brightness(1.04);transform:translateY(-2px);box-shadow:0 24px 54px #6f1d4447}.primary-action:active{transform:translateY(0)scale(.98)}.moment-final-candle .falling-petal{opacity:.68;animation-duration:6.4s}@keyframes softPulse{0%{opacity:.55;transform:scale(.92)}to{opacity:.82;transform:scale(1.08)}}@keyframes petalDrift{0%{transform:translateY(-8vh)rotate(0)}50%{transform:translate(22px,52vh)rotate(150deg)}to{transform:translate(-18px,108vh)rotate(310deg)}}@keyframes cakeFloat{0%{transform:translateY(0)rotate(-.7deg)}to{transform:translateY(-10px)rotate(.7deg)}}@keyframes flameFlicker{0%{transform:translate(-50%)scale(.92)rotate(-5deg)}to{transform:translate(-50%)scale(1.08)rotate(7deg)}}@keyframes bowWiggle{0%{transform:rotate(-2deg)}to{transform:rotate(3deg)}}@keyframes moonShimmer{to{transform:rotate(360deg)}}@keyframes complimentFloat{0%{margin-top:0}to{margin-top:-8px}}@media (width<=680px){.birthday-card{border-radius:30px;grid-template-rows:auto minmax(250px,1fr) auto;min-height:93svh}.message h1{max-width:11.5ch;font-size:clamp(2.15rem,12vw,3.7rem)}.message .note{font-size:1rem}.cake-stage{width:min(88vw,390px);min-height:min(43svh,340px)}.cake{width:min(74vw,300px)}.compliment-1{top:36%;left:-1%}.compliment-2{top:26%;right:-1%}.compliment-3{bottom:3%}}@media (width<=420px){.card-room{padding:10px}.birthday-card{gap:14px;padding:18px 14px}.eyebrow{max-width:100%}.message h1{max-width:10.5ch}.compliment{min-height:34px;padding:0 12px}.primary-action{width:min(100%,250px);padding:0 18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
