:root{color:#fff7ea;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#160714;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:hidden}button{font:inherit}h1,p{margin:0}.birthday-world{--safe-pad:clamp(18px, 4vw, 54px);min-height:100svh;padding:var(--safe-pad);color:#fff7ea;background:radial-gradient(circle at 18% 22%,#ffc45742,#0000 18rem),radial-gradient(circle at 82% 16%,#29b7a433,#0000 20rem),radial-gradient(circle at 58% 84%,#f74e7e47,#0000 24rem),linear-gradient(145deg,#160714 0%,#2b1028 45%,#0d1728 100%);place-items:center;display:grid;position:relative;overflow:hidden}.birthday-world--bloom,.birthday-world--finale{background:radial-gradient(circle at 22% 20%,#ffd37157,#0000 19rem),radial-gradient(circle at 82% 16%,#38d7c238,#0000 20rem),radial-gradient(circle at 58% 82%,#ff5a8e57,#0000 26rem),linear-gradient(145deg,#170714 0%,#37112d 44%,#10223a 100%)}.aurora{pointer-events:none;background:conic-gradient(from 120deg at 48% 48%, transparent 0 18%, #ffd16f2e 26%, transparent 38% 56%, #3fdec929 66%, transparent 78%), radial-gradient(circle at 45% 54%, #ffffff14, transparent 18rem);filter:blur(16px);opacity:.86;animation:14s ease-in-out infinite alternate auroraDrift;position:absolute;inset:-20%}.birthday-stage{z-index:2;width:min(100%,1120px);min-height:min(760px, calc(100svh - var(--safe-pad) - var(--safe-pad)));grid-template-rows:1fr auto auto;grid-template-columns:minmax(0,.96fr) minmax(320px,1.04fr);align-items:center;gap:clamp(16px,3vw,42px);display:grid;position:relative}.wish-copy{align-self:center;max-width:34rem}.eyebrow{color:#ffe7a8;letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f09196b;border:1px solid #fff7ea38;border-radius:999px;width:fit-content;margin-bottom:clamp(12px,2vw,18px);padding:.48rem .82rem;font-size:clamp(.74rem,1.2vw,.86rem);font-weight:900}h1{color:#fff8e9;letter-spacing:0;text-wrap:balance;text-shadow:0 18px 54px #0000006b;max-width:11ch;font-size:clamp(3rem,8.2vw,6.8rem);font-weight:950;line-height:.94}.birthday-note{color:#ffe7cf;text-wrap:pretty;max-width:39rem;margin-top:clamp(18px,3vw,28px);font-size:clamp(1.04rem,1.8vw,1.28rem);font-weight:560;line-height:1.62}.cake-zone{align-self:center;place-items:center;min-height:clamp(330px,52vw,590px);display:grid;position:relative}.birthday-cake{aspect-ratio:1.06;width:clamp(260px,39vw,500px);animation:4.6s ease-in-out infinite alternate cakeFloat;position:relative}.cake-glow{filter:blur(10px);opacity:.55;background:radial-gradient(circle,#ffd26c52,#0000 62%);border-radius:999px;transition:opacity .5s,transform .5s;position:absolute;inset:10% 5% -2%;transform:scale(.9)}.birthday-cake--lit .cake-glow{opacity:1;animation:2.4s ease-in-out infinite alternate glowPulse;transform:scale(1.1)}.cake-plate,.cake-layer,.cake-icing{position:absolute;left:50%;transform:translate(-50%)}.cake-plate{background:linear-gradient(90deg,#ffe7c0,#f7a8bc 44%,#fff1cf);border-radius:999px;width:86%;height:11%;bottom:5%;box-shadow:0 26px 60px #0000005c}.cake-layer{border:1px solid #4c183124;box-shadow:inset 0 -18px 34px #79234829}.cake-layer--bottom{background:linear-gradient(#ffd66d 0%,#fb9e7a 55%,#e85b75 100%);border-radius:30px 30px 42px 42px;width:76%;height:22%;bottom:13%}.cake-layer--middle{background:linear-gradient(#fff1bd 0%,#ffbf72 54%,#ed6d82 100%);border-radius:28px 28px 36px 36px;width:65%;height:20%;bottom:31%}.cake-layer--top{background:linear-gradient(#fff7d7 0%,#ffd584 58%,#f1788b 100%);border-radius:28px 28px 34px 34px;width:52%;height:17%;bottom:48%}.cake-icing{background:linear-gradient(90deg,#fff9ec,#ffd4e2 48%,#fff5d6);border-radius:999px;height:10%;box-shadow:0 9px 18px #5c1c3c29}.cake-icing--one{width:58%;bottom:46%}.cake-icing--two{width:72%;bottom:28%}.candle{left:calc(50% + var(--offset));background:repeating-linear-gradient(135deg,#ffffffeb 0 8px,#44c3b7f2 8px 15px),#fff;border-radius:999px 999px 8px 8px;width:clamp(11px,1.8vw,17px);height:clamp(48px,7.5vw,76px);position:absolute;bottom:64%;transform:translate(-50%);box-shadow:0 6px 12px #41152e2e}.candle i{aspect-ratio:.72;opacity:0;filter:drop-shadow(0 0 18px #ffb743c7);background:radial-gradient(circle at 50% 68%,#fffdf2 0 16%,#ffe178 34%,#ff934f 68%,#ff51501f 100%);border-radius:50% 50% 48% 48%;width:clamp(16px,2.6vw,26px);transition:opacity .42s,transform .42s;position:absolute;top:-42%;left:50%;transform:translate(-50%)scale(.5)}.birthday-cake--lit .candle i{opacity:1;animation:.9s ease-in-out infinite alternate flameFlicker;transform:translate(-50%)scale(1)}.wish-halo{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.wish-halo span{color:#fff4c8;letter-spacing:.02em;min-width:clamp(74px,8vw,102px);min-height:38px;transform:rotate(var(--angle)) translateY(clamp(-156px, -17vw, -118px)) rotate(var(--counter-angle));animation:3.6s ease-in-out infinite alternate wishFloat;animation-delay:var(--float-delay);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#260e2abd;border:1px solid #fff7ea42;border-radius:999px;place-items:center;padding:0 14px;font-size:clamp(.78rem,1.5vw,.92rem);font-weight:900;display:inline-grid;position:absolute;box-shadow:0 16px 38px #0000003d}.action-row{grid-column:1/-1;justify-content:center;align-items:center;min-height:58px;display:flex}.ceremony-button{isolation:isolate;color:#351021;cursor:pointer;background:linear-gradient(135deg,#ffe27c 0%,#ff9c71 48%,#f65b8a 100%);border:1px solid #fff4c88a;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:0 24px;font-weight:950;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 16px 40px #f65b8a42,inset 0 1px #ffffff75}.ceremony-button:before{content:"";z-index:-1;background:linear-gradient(90deg,#0000,#ffffff94,#0000);width:38%;animation:3.4s ease-in-out infinite buttonSweep;position:absolute;inset:-60% auto -60% -40%;transform:skew(-18deg)}.ceremony-button:focus-visible{outline-offset:4px;outline:3px solid #fff7ea}.final-seal{color:#fff4c8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0f0919ad;border:1px solid #fff7ea38;border-radius:999px;align-items:center;gap:10px;padding:12px 16px;font-size:clamp(.82rem,1.4vw,.96rem);font-weight:900;display:inline-flex;position:absolute;bottom:clamp(8px,2vw,26px);right:clamp(0px,2vw,22px);box-shadow:0 18px 50px #00000047}.confetti-field{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-field span{left:var(--x);background:hsl(var(--hue), 88%, 68%);opacity:.22;width:clamp(6px,.8vw,10px);height:clamp(12px,1.4vw,18px);transform:rotate(var(--spin));animation:confettiFall var(--fall) linear infinite;animation-delay:var(--delay);border-radius:5px;position:absolute;top:-12%}.birthday-world--bloom .confetti-field span,.birthday-world--finale .confetti-field span{opacity:.48}.balloon{aspect-ratio:.78;opacity:.62;filter:drop-shadow(0 18px 24px #00000038);border-radius:50% 50% 46% 46%;width:clamp(52px,7vw,88px);animation:5.8s ease-in-out infinite alternate balloonSway;position:absolute}.balloon:after{content:"";background:#fff7ea5c;width:1px;height:clamp(54px,9vw,104px);position:absolute;top:92%;left:50%}.balloon--one{background:radial-gradient(circle at 32% 24%,#fff1c8,#ff777d 58%,#be3159 100%);top:clamp(24px,9vw,86px);left:clamp(14px,5vw,72px)}.balloon--two{background:radial-gradient(circle at 34% 24%,#e7fff8,#44cdbc 58%,#177e82 100%);animation-delay:-2s;top:clamp(30px,12vw,118px);right:clamp(18px,6vw,86px)}@keyframes auroraDrift{0%{transform:translate(-2%,-1%)rotate(-4deg)scale(1)}to{transform:translate(2%,1%)rotate(4deg)scale(1.04)}}@keyframes cakeFloat{0%{transform:translateY(0)rotate(-.8deg)}to{transform:translateY(-10px)rotate(.8deg)}}@keyframes glowPulse{0%{filter:blur(10px)}to{filter:blur(18px)}}@keyframes flameFlicker{0%{transform:translate(-50%)scale(.92)rotate(-3deg)}to{transform:translate(-50%)scale(1.08)rotate(3deg)}}@keyframes wishFloat{0%{margin-top:0}to{margin-top:-9px}}@keyframes buttonSweep{0%,42%{transform:translate(0)skew(-18deg)}72%,to{transform:translate(420%)skew(-18deg)}}@keyframes confettiFall{0%{transform:translateY(-12svh)rotate(0)}to{transform:translateY(118svh)rotate(460deg)}}@keyframes balloonSway{0%{transform:translate(0,0)rotate(-4deg)}to{transform:translate(14px,10px)rotate(5deg)}}@media (width<=760px){body{overflow:auto}.birthday-world{min-height:100svh;padding:clamp(16px,5vw,28px)}.birthday-stage{min-height:calc(100svh - var(--safe-pad) - var(--safe-pad));text-align:center;grid-template-rows:auto minmax(280px,1fr) auto;grid-template-columns:1fr;justify-items:center;gap:clamp(10px,3svh,20px)}.wish-copy{max-width:min(100%,34rem);padding-top:4px}.eyebrow{margin-inline:auto}h1{max-width:12ch;margin-inline:auto;font-size:clamp(2.55rem,13vw,4.1rem);line-height:.98}.birthday-note{max-width:30rem;margin-top:14px;font-size:clamp(.98rem,4vw,1.08rem);line-height:1.5}.cake-zone{width:100%;min-height:min(44svh,370px)}.birthday-cake{width:min(76vw,330px)}.wish-halo span{min-width:68px;min-height:34px;transform:rotate(var(--angle)) translateY(clamp(-116px, -29vw, -88px)) rotate(var(--counter-angle));padding:0 10px}.action-row{width:100%}.ceremony-button{width:min(100%,280px)}.final-seal{grid-column:1;justify-self:center;margin-top:-4px;position:static}.balloon{opacity:.4}}@media (width<=760px) and (height<=640px){.birthday-stage{gap:8px}.eyebrow{margin-bottom:8px;padding:.38rem .7rem}h1{font-size:clamp(2.05rem,10vw,3.2rem)}.birthday-note{margin-top:10px;font-size:.9rem;line-height:1.38}.cake-zone{min-height:218px}.birthday-cake{width:min(66vw,250px)}.ceremony-button{min-height:48px}}@media (width<=410px){h1{font-size:clamp(2.25rem,12vw,3rem)}.birthday-note{font-size:.95rem}.cake-zone{min-height:260px}.birthday-cake{width:min(78vw,285px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
