:root{--background:#fff8fa;--foreground:#4d2635;--primary:#b33c68;--secondary:#fce5eb;--muted:#f9ebef;--border:#efd3db;--ink:#4d2635;--rose:#c94f78;--rose-deep:#8f3455;--petal:#fcecf0;--line:#8f34552e;color:var(--foreground);background:var(--background);font-family:Trebuchet Ms,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--background)}body{background:var(--background);min-width:0;min-height:100svh;margin:0;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.site-shell.is-intro-visible{height:100svh;min-height:0}.site-shell{background:radial-gradient(circle at 8% 15%,#f8c1d27a,#0000 28rem),radial-gradient(circle at 93% 34%,#ffdce5a6,#0000 24rem),linear-gradient(145deg,#fffafd 0%,#fff4f7 48%,#fffaf8 100%);min-height:100vh;position:relative;overflow:hidden}.grain{z-index:1;pointer-events:none;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.12'/%3E%3C/svg%3E");position:fixed;inset:0}.ambient{z-index:0;filter:blur(2px);pointer-events:none;border-radius:50%;animation:10s ease-in-out infinite alternate ambient-float;position:fixed}.ambient-one{border:1px solid #c94f7821;width:22rem;height:22rem;top:-10rem;right:-7rem;box-shadow:inset 0 0 0 3.5rem #ffffff38}.ambient-two{background:#f8d2dd47;width:15rem;height:15rem;animation-delay:-3s;bottom:5rem;left:-8rem}.birthday-page{z-index:2;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s .15s,transform .8s .15s;position:relative;transform:translateY(1rem)}.site-shell.is-open .birthday-page{opacity:1;visibility:visible;pointer-events:auto;transform:none}.hero{min-height:100svh;padding:calc(3rem + env(safe-area-inset-top)) 1.5rem 4rem;text-align:center;flex-direction:column;align-items:center;display:flex}.hero-topline{color:#86596a;letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:.75rem;font-size:.73rem;font-weight:700;display:flex}.tiny-heart{color:var(--rose);place-items:center;display:grid}.hero-ornament{width:min(80vw,26rem);color:var(--rose);align-items:center;gap:1rem;margin:clamp(2.2rem,8vh,5rem) 0 1.8rem;display:flex}.hero-ornament span{background:linear-gradient(90deg,#0000,#c94f787a);flex:1;height:1px}.hero-ornament span:last-child{background:linear-gradient(90deg,#c94f787a,#0000)}.eyebrow{color:var(--rose-deep);letter-spacing:.24em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700}.hero h1{color:var(--ink);letter-spacing:-.055em;flex-direction:column;margin:.65rem 0 1.5rem;font-family:Georgia,Times New Roman,Times,serif;font-size:clamp(3.2rem,11vw,8rem);font-weight:400;line-height:.9;display:flex}.hero h1 em{color:var(--rose);margin-top:.2em;font-size:1.25em;font-weight:400;position:relative}.hero h1 em:after{content:"";background:#c94f782e;border-radius:50%;width:1.25em;height:.08em;position:absolute;bottom:-.08em;left:50%;transform:translate(-50%)rotate(-2deg)}.hero-copy{color:#765260;max-width:38rem;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.05rem,2.5vw,1.28rem);line-height:1.85}.intro{z-index:100;padding:max(1.5rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left));overscroll-behavior:contain;text-align:center;background:radial-gradient(circle at 50% 42%,#fff 0%,#fff4f8 42%,#f8dbe4 100%);align-content:center;place-items:center;gap:1.35rem;display:grid;position:fixed;inset:0;overflow-y:auto}.intro.is-opening{pointer-events:none;animation:.55s 2.65s both intro-depart}.intro-stars{color:var(--rose);align-items:center;gap:1.6rem;animation:2.4s ease-in-out infinite stars-breathe;display:flex}.envelope{aspect-ratio:1.48;cursor:pointer;filter:drop-shadow(0 24px 28px #64213929);background:0 0;border:0;width:min(78vw,20rem);max-width:100%;padding:0;transition:transform .35s,filter .35s;position:relative}.envelope:hover:not(:disabled){filter:drop-shadow(0 31px 34px #64213933);transform:translateY(-7px)rotate(-1deg)}.envelope:disabled{cursor:default}.envelope-back,.envelope-front,.envelope-flap,.letter,.seal{position:absolute}.envelope-back{background:#f8d8e2;border:1px solid #8f345524;border-radius:.7rem;inset:0}.letter{z-index:2;color:var(--ink);opacity:0;background:#fffdfb;border-radius:.4rem;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;display:flex;inset:8% 7% 18%;transform:translateY(12%);box-shadow:0 2px 12px #6f2c4314}.letter-kicker{color:#a67586;letter-spacing:.28em;text-transform:uppercase;font-size:.68rem}.letter strong{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.7rem,7vw,2.5rem);font-style:italic;font-weight:400}.letter-line{background:var(--rose);width:2.5rem;height:1px;margin-top:.4rem}.envelope-front{z-index:3;clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);background:linear-gradient(155deg,#f3c6d4 0 49.5%,#f7d4de 50%);border-radius:.7rem;inset:0}.envelope-flap{z-index:4;clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:top;background:linear-gradient(160deg,#fae4ea,#f3c8d5);border-radius:.7rem;inset:0}.seal{z-index:5;color:#fff8fa;background:linear-gradient(145deg,#c94f78,#9f365e);border:4px double #ffffff85;border-radius:50%;place-items:center;width:3.2rem;height:3.2rem;display:grid;top:49%;left:50%;transform:translate(-50%,-50%);box-shadow:0 5px 12px #63213838}.intro-note{color:#805268;margin:.3rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;font-style:italic}.open-button{color:#fff;min-height:3.25rem;font:inherit;letter-spacing:.02em;cursor:pointer;background:linear-gradient(135deg,#c94f78,#a73760);border:1px solid #7828461a;border-radius:999px;justify-content:center;align-items:center;gap:.65rem;padding:.8rem 1.4rem;font-size:.95rem;font-weight:700;transition:transform .25s,box-shadow .25s;display:inline-flex;box-shadow:0 12px 28px #a6325b38}.open-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 34px #a6325b47}.intro.is-opening .intro-stars,.intro.is-opening .intro-note,.intro.is-opening .open-button{animation:.4s both intro-detail-away}.intro.is-opening .envelope{animation:.5s ease-in 2.35s both envelope-drop}.intro.is-opening .envelope-flap{animation:1.15s cubic-bezier(.22,.76,.2,1) forwards envelope-open-flap}.intro.is-opening .seal{animation:.4s both seal-break}.intro.is-opening .letter{animation:1.5s cubic-bezier(.22,.82,.25,1) .3s both letter-rise}.site-shell:not(.is-open) .birthday-page{visibility:hidden;pointer-events:none;transform:translateY(1rem);opacity:0!important}.site-shell.is-open .birthday-page{visibility:visible;pointer-events:auto;transform:translateY(0);opacity:1!important}.celebration-effects{z-index:50;pointer-events:none;width:100%;height:100%;position:fixed;inset:0;overflow:hidden}.confetti-layer,.fireworks-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.confetti-piece{opacity:0;border-radius:.15rem;width:.65rem;height:1rem;animation-name:confetti-fall-right;animation-timing-function:cubic-bezier(.18,.7,.35,1);animation-fill-mode:both;display:block;position:absolute;top:-2rem;box-shadow:0 2px 4px #6f2c4321}.confetti-piece:nth-child(2n){animation-name:confetti-fall-left}.confetti-circle{border-radius:50%;width:.55rem;height:.55rem}.confetti-strip{border-radius:999px;width:.35rem;height:1.2rem}.confetti-layer{z-index:1}.fireworks-layer{z-index:2}.envelope:focus-visible,.open-button:focus-visible,.scroll-cue:focus-visible{outline:2px solid var(--rose-deep);outline-offset:6px}@media (height<=500px){.intro{gap:.75rem}.envelope{width:min(65vw,48svh,20rem)}.letter strong{font-size:clamp(1rem,5svh,1.5rem)}}.balloons-layer{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.celebration-balloon{width:clamp(38px, 6vw, var(--balloon-size));opacity:0;animation:linear both balloon-rise;display:block;position:absolute;bottom:-230px}.balloon-sway{transform-origin:50% 0;animation:balloon-sway var(--balloon-sway) ease-in-out infinite alternate;display:block}.balloon-body{aspect-ratio:.8;background:radial-gradient(ellipse at 29% 24%, #ffffffdb, transparent 23%), radial-gradient(ellipse at 34% 29%, var(--balloon-light), var(--balloon-color) 55%, var(--balloon-shade));border:1px solid #ffffff59;border-radius:48% 48% 46% 46%/44% 44% 56% 56%;width:100%;display:block;position:relative;box-shadow:inset -5px -8px 12px #62294317,inset 3px 2px 7px #fff6,3px 7px 14px #6a334c17}.balloon-body:after{content:"";background:var(--balloon-shade);clip-path:polygon(50% 0,100% 100%,0 100%);width:8px;height:8px;position:absolute;top:calc(100% - 2px);left:calc(50% - 4px)}.balloon-string{width:24px;height:clamp(75px,12vw,112px);color:var(--balloon-shade);opacity:.48;margin:5px auto 0;display:block}@keyframes balloon-rise{0%{opacity:0;transform:translate(-50%)}8%,88%{opacity:.94}to{opacity:0;transform:translate3d(calc(-50% + var(--balloon-drift)), calc(-100vh - 360px), 0)}}@keyframes balloon-sway{0%{transform:translate(-8px)rotate(-6deg)}to{transform:translate(8px)rotate(6deg)}}.firework{width:1px;height:1px;display:block;position:absolute;overflow:visible}.firework-direction{transform-origin:50%;width:1px;height:1px;display:block;position:absolute;top:0;left:0}.firework-spark{opacity:0;width:.44rem;height:.44rem;color:inherit;will-change:transform, opacity;background-color:currentColor;border-radius:50%;animation-name:colorful-firework-spark;animation-duration:.95s;animation-timing-function:cubic-bezier(.18,.6,.45,.5);animation-fill-mode:both;display:block;position:absolute;top:-.22rem;left:0;box-shadow:0 0 5px,0 0 11px,0 0 18px}.firework-center{opacity:0;width:.75rem;height:.75rem;color:inherit;will-change:transform, opacity;background-color:currentColor;border-radius:50%;animation-name:colorful-firework-center;animation-duration:.55s;animation-timing-function:ease-out;animation-fill-mode:both;display:block;position:absolute;top:-.375rem;left:-.375rem;box-shadow:0 0 10px,0 0 24px}.birthday-letter{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:85svh;padding:6rem 1.5rem;display:flex;position:relative}.hero{padding-bottom:9rem;position:relative}.scroll-cue{z-index:4;color:var(--rose-deep);flex-direction:column;align-items:center;gap:.9rem;text-decoration:none;display:flex;position:absolute;bottom:1.6rem;left:50%;transform:translate(-50%)}.scroll-cue span{letter-spacing:.28em;white-space:nowrap;text-transform:uppercase;font-size:.72rem;font-weight:700;transition:color .25s,transform .25s}.scroll-cue:hover span{color:var(--rose);transform:translateY(-2px)}.scroll-cue-line{background:#c94f782e;width:1px;height:4.2rem;display:block;position:relative;overflow:hidden}.scroll-cue-line:after{content:"";background:linear-gradient(to bottom, transparent, var(--rose), transparent);width:1px;height:45%;animation:1.8s ease-in-out infinite scroll-line-move;position:absolute;top:0;left:0;transform:translateY(-120%)}@keyframes scroll-line-move{0%{opacity:0;transform:translateY(-120%)}20%{opacity:1}75%{opacity:1}to{opacity:0;transform:translateY(260%)}}@media (width<=600px){.hero{padding-bottom:calc(8rem + env(safe-area-inset-bottom))}.scroll-cue{bottom:max(1.2rem, env(safe-area-inset-bottom))}.scroll-cue-line{height:3.5rem}}.birthday-letter-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fff9;border:1px solid #c94f7829;border-radius:2rem;width:min(100%,44rem);padding:clamp(2.2rem,6vw,4.5rem);position:relative;box-shadow:0 30px 70px #6f2c4314,inset 0 1px #ffffffe6}.birthday-letter-card p{z-index:2;color:#684353;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.1rem,2.5vw,1.45rem);line-height:1.9;position:relative}.birthday-letter-card p+p{color:var(--rose-deep);margin-top:1.4rem;font-style:italic}.letter-quote-mark{color:#c94f7826;font-family:Georgia,Times New Roman,serif;font-size:8rem;line-height:1;position:absolute;top:-1rem;left:1.5rem}.birthday-letter-heart{color:var(--rose);filter:drop-shadow(0 5px 8px #c94f7833);margin-top:2rem}.memory-gallery{z-index:2;text-align:center;min-height:100svh;padding:7rem 1.5rem 9rem;position:relative;overflow:hidden}.memory-heading{flex-direction:column;align-items:center;display:flex}.memory-icon{width:3rem;height:3rem;color:var(--rose);background:#ffffffb3;border:1px solid #c94f782e;border-radius:50%;place-items:center;margin-bottom:1.2rem;display:grid}.memory-heading p{color:#a96a80;letter-spacing:.25em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.memory-heading h2{color:var(--ink);margin:.5rem 0 1rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.8rem,7vw,5.5rem);font-weight:400}.memory-heading-line{background:var(--rose);width:4rem;height:1px;display:block}.polaroid-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(1.5rem,4vw,3.5rem);width:min(100%,62rem);margin:5rem auto 0;display:grid}.polaroid-reveal{opacity:0;transform:translateY(4rem)scale(.9)}.memory-gallery.is-visible .polaroid-reveal{animation:.85s cubic-bezier(.2,.8,.2,1) forwards polaroid-reveal}.polaroid-card{background:#fffdfb;margin:0;padding:.8rem .8rem 1.2rem;transition:transform .35s,box-shadow .35s;box-shadow:0 22px 42px #4e1d3026,0 4px 10px #4e1d3014}.polaroid-1{transform:rotate(-5deg)}.polaroid-2{transform:translateY(-1rem)rotate(2deg)}.polaroid-3{transform:rotate(5deg)}.polaroid-card:hover{transform:translateY(-.8rem)rotate(0);box-shadow:0 32px 55px #4e1d3030,0 8px 16px #4e1d301a}.polaroid-image{aspect-ratio:4/5;background:#f4dce4;position:relative;overflow:hidden}.polaroid-image img{object-fit:cover;width:100%;height:100%;transition:transform .6s;display:block}.polaroid-card:hover img{transform:scale(1.04)}.polaroid-card figcaption{color:#805268;justify-content:center;align-items:center;gap:.6rem;min-height:4.5rem;padding:1rem .3rem 0;font-family:Georgia,Times New Roman,serif;font-size:.95rem;font-style:italic;line-height:1.4;display:flex}.polaroid-card figcaption svg{color:var(--rose);flex:none}@keyframes polaroid-reveal{0%{opacity:0;transform:translateY(4rem)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=760px){.birthday-letter{min-height:auto;padding-block:6rem}.polaroid-grid{grid-template-columns:1fr;gap:3rem;width:min(100%,22rem)}.polaroid-1{transform:rotate(-3deg)}.polaroid-2{transform:rotate(2deg)}.polaroid-3{transform:rotate(-2deg)}}@keyframes colorful-firework-spark{0%{opacity:0;transform:translate(0)scale(.15)}12%{opacity:1;transform:translate(12px)scale(1.2)}52%{opacity:1;transform:translate(82px)scale(1)}68%{opacity:.8;transform:translate(94px)scale(.75)}82%{opacity:.35;transform:translate(104px)scale(.3)}to{opacity:0;transform:translate(120px)scale(.1)}}@keyframes colorful-firework-center{0%{opacity:0;transform:scale(.1)}28%{opacity:1;transform:scale(2.2)}55%{opacity:.75;transform:scale(1.1)}to{opacity:0;transform:scale(0)}}@keyframes confetti-fall-right{0%{opacity:0;transform:translateY(-5vh)rotate(0)}8%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(90px,110vh)rotate(900deg)}}@keyframes confetti-fall-left{0%{opacity:0;transform:translateY(-5vh)rotate(0)}8%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(-90px,110vh)rotate(-900deg)}}@keyframes stars-breathe{50%{opacity:.68;transform:scale(1.08)}}@keyframes intro-detail-away{to{opacity:0;transform:translateY(.4rem)}}@keyframes envelope-open-flap{0%{z-index:4;transform:perspective(700px)rotateX(0)}49%{z-index:4}50%,to{z-index:1;transform:perspective(700px)rotateX(180deg)}}@keyframes seal-break{45%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.45)rotate(18deg)}}@keyframes letter-rise{0%,28%{z-index:2;opacity:0;transform:translateY(12%)}29%{z-index:2;opacity:1;transform:translateY(12%)}60%{z-index:2;opacity:1;transform:translateY(-70%)}61%,to{z-index:6;opacity:1;transform:translateY(-95%)scale(1.06);box-shadow:0 18px 30px #6f2c4321}}@keyframes envelope-drop{to{opacity:0;transform:translateY(4rem)scale(.92)}}@keyframes intro-depart{to{opacity:0}}@keyframes ambient-float{to{transform:translate(1rem,2rem)scale(1.05)}}@media (width<=390px){.hero-topline{letter-spacing:.12em;gap:.48rem;font-size:.63rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=600px){.firework-spark{width:.36rem;height:.36rem}@keyframes colorful-firework-spark{0%{opacity:0;transform:translate(0)scale(.15)}12%{opacity:1;transform:translate(8px)scale(1.2)}52%{opacity:1;transform:translate(48px)scale(1)}68%{opacity:.8;transform:translate(56px)scale(.75)}82%{opacity:.35;transform:translate(62px)scale(.45)}to{opacity:0;transform:translate(68px)scale(.1)}}}.secret-surprise-section{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:clamp(5rem,9vw,8rem) 1.5rem;display:flex;position:relative;overflow:hidden}.secret-surprise-heading{z-index:2;width:min(100%,1200px);position:relative}.secret-surprise-eyebrow{color:#a83a62;letter-spacing:.35em;margin:0 0 2.2rem;font-size:.88rem;font-weight:700}.secret-surprise-heading h2{color:#4f2233;letter-spacing:-.04em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,5.3vw,6.1rem);font-weight:400;line-height:1.05}.secret-surprise-content{z-index:2;flex-direction:column;align-items:center;width:100%;margin-top:clamp(3.5rem,6vw,5.5rem);display:flex;position:relative}.secret-reveal-button{aspect-ratio:1;color:#fff;cursor:pointer;isolation:isolate;background:radial-gradient(circle at 50% 38%,#fffffff5,#ffebf2e0);border:1px solid #bf467126;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:clamp(18rem,20vw,22.5rem);padding:2rem;transition:transform .35s,box-shadow .35s;display:flex;position:relative;box-shadow:0 28px 65px #87315121,inset 0 0 0 12px #ffffff8c}.secret-reveal-button:not(:disabled):hover{transform:translateY(-7px);box-shadow:0 34px 75px #87315130,inset 0 0 0 12px #ffffffa6}.secret-reveal-button:not(:disabled):active{transform:translateY(-2px)scale(.98)}.secret-reveal-button:focus-visible{outline-offset:8px;outline:3px solid #c13d6d61}.secret-reveal-button:disabled{cursor:default}.secret-reveal-glow{z-index:-1;filter:blur(22px);opacity:0;background:#d95a891c;border-radius:50%;position:absolute;inset:14%;transform:scale(.7)}.secret-reveal-icon{aspect-ratio:1;background:linear-gradient(145deg,#db6993,#ba3f6d);border-radius:2.4rem;place-items:center;width:clamp(8rem,9vw,9.3rem);transition:transform .5s cubic-bezier(.2,.8,.2,1.15),border-radius .5s,background .5s;display:grid;box-shadow:0 22px 42px #a2315b3b,inset 0 1px #ffffff40}.secret-reveal-label{color:#845065;letter-spacing:.24em;margin-top:1.6rem;font-size:.88rem;font-weight:700}.secret-surprise-section.is-open .secret-reveal-glow{animation:1.1s ease-out both secret-glow-open}.secret-surprise-section.is-open .secret-reveal-icon{background:linear-gradient(145deg,#d95585,#ae315f);border-radius:50%;animation:.9s cubic-bezier(.2,.8,.2,1.15) both secret-icon-open}.secret-surprise-section.is-open .secret-reveal-label{animation:.6s both secret-label-change}.secret-message-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffb3;border:1px solid #c4437129;border-radius:1.6rem;width:min(100%,650px);margin-top:2.8rem;padding:clamp(1.8rem,4vw,3rem);animation:.9s .35s both secret-message-appear;box-shadow:0 24px 65px #7d2d4b1f}.secret-message-heart{color:#c33e6f}.secret-message-card h3{color:#532638;max-width:560px;margin:1rem auto 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.55rem,3vw,2.25rem);font-weight:400;line-height:1.3}.secret-message-card p{color:#765060;max-width:530px;margin:1rem auto 0;font-size:clamp(1rem,2vw,1.1rem);line-height:1.8}@keyframes secret-icon-open{0%{transform:scale(1)rotate(0)}35%{transform:scale(.82)rotate(-8deg)}70%{transform:scale(1.1)rotate(7deg)}to{transform:scale(1)rotate(0)}}@keyframes secret-glow-open{0%{opacity:0;transform:scale(.5)}45%{opacity:1}to{opacity:0;transform:scale(1.45)}}@keyframes secret-label-change{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes secret-message-appear{0%{opacity:0;transform:translateY(35px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=700px){.secret-surprise-section{min-height:auto;padding-top:6rem;padding-bottom:6rem}.secret-surprise-eyebrow{letter-spacing:.27em;margin-bottom:1.5rem;font-size:.75rem}.secret-surprise-heading h2{font-size:clamp(2.8rem,13vw,4.2rem);line-height:1.08}.secret-surprise-content{margin-top:3rem}.secret-reveal-button{width:min(82vw,19rem)}.secret-reveal-icon{border-radius:2rem;width:8rem}.secret-message-card{margin-top:2rem}}@media (prefers-reduced-motion:reduce){.secret-reveal-button,.secret-reveal-icon{transition:none}.secret-surprise-section.is-open .secret-reveal-glow{display:none}.secret-surprise-section.is-open .secret-reveal-icon,.secret-surprise-section.is-open .secret-reveal-label,.secret-message-card{animation:none}}.birthday-wishes{flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:clamp(6rem,9vw,8.5rem) clamp(1.5rem,8vw,14rem);display:flex;position:relative;overflow:hidden}.birthday-wishes-heading{text-align:center;width:100%;margin-bottom:clamp(2.9rem,4vw,4.5rem)}.birthday-wishes-heading>p{color:#a83a62;letter-spacing:.34em;margin:0 0 1.35rem;font-size:.82rem;font-weight:700}.birthday-wishes-heading h2{color:#4f2233;letter-spacing:-.04em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.9rem,4vw,4.5rem);font-weight:400;line-height:1}.birthday-wishes-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:20px;width:min(100%,1440px);display:grid}.birthday-wish-card{box-sizing:border-box;opacity:1;-webkit-backdrop-filter:blur(8px);background:#ffffff5c;border:1px solid #b7497136;border-radius:36px;flex-direction:column;justify-content:flex-start;width:100%;height:424px;min-height:0;padding:40px 34px;transition:transform .3s,border-color .3s,box-shadow .3s;display:flex;position:relative;transform:translateY(0);box-shadow:0 24px 55px #802e4c09,inset 0 1px #ffffffa6}.birthday-wish-card:nth-child(2){height:384px;margin-top:40px}.birthday-wish-card:hover{border-color:#b7497161;transform:translateY(-5px);box-shadow:0 28px 65px #802e4c17,inset 0 1px #fffc}.birthday-wish-card:nth-child(2):hover{transform:translateY(-5px)}.birthday-wish-number{color:#bd7a93;letter-spacing:.22em;font-size:.82rem;font-weight:600}.birthday-wish-icon{color:#d64f81;background:#fbe0eac7;border:9px solid #ffffff8c;border-radius:50%;flex-shrink:0;place-items:center;width:76px;height:76px;margin-top:62px;display:grid;box-shadow:0 12px 28px #be497414}.birthday-wish-card:nth-child(2) .birthday-wish-icon{margin-top:54px}.birthday-wish-card h3{color:#55283a;margin:28px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.55rem,1.7vw,1.85rem);font-weight:400;line-height:1.2}.birthday-wish-card p{color:#805969;max-width:24rem;margin:18px 0 0;font-size:clamp(.95rem,1vw,1.05rem);font-weight:500;line-height:1.7}@media (width<=1050px){.birthday-wishes{min-height:auto;padding:6rem 2rem}.birthday-wishes-heading{margin-bottom:3.5rem}.birthday-wishes-grid{grid-template-columns:1fr;gap:1.5rem;max-width:650px}.birthday-wish-card,.birthday-wish-card:nth-child(2){height:auto;min-height:330px;margin-top:0;padding:36px 32px}.birthday-wish-icon,.birthday-wish-card:nth-child(2) .birthday-wish-icon{margin-top:3rem}.birthday-wish-card h3{font-size:1.75rem}.birthday-wish-card p{font-size:1rem}}@media (width<=600px){.birthday-wishes{padding:5rem 1rem}.birthday-wishes-heading{margin-bottom:2.6rem}.birthday-wishes-heading>p{letter-spacing:.27em;margin-bottom:1rem;font-size:.72rem}.birthday-wishes-heading h2{font-size:clamp(2.55rem,11vw,3.25rem);line-height:1.05}.birthday-wishes-grid{gap:1.15rem;width:100%}.birthday-wish-card,.birthday-wish-card:nth-child(2){border-radius:26px;height:auto;min-height:300px;margin-top:0;padding:28px 25px}.birthday-wish-number{font-size:.75rem}.birthday-wish-icon,.birthday-wish-card:nth-child(2) .birthday-wish-icon{border-width:7px;width:68px;height:68px;margin-top:36px}.birthday-wish-icon svg{width:25px;height:25px}.birthday-wish-card h3{margin-top:24px;font-size:1.55rem}.birthday-wish-card p{max-width:none;margin-top:14px;font-size:.95rem;line-height:1.65}}@media (width<=380px){.birthday-wishes{padding-left:.8rem;padding-right:.8rem}.birthday-wishes-heading h2{font-size:2.45rem}.birthday-wish-card,.birthday-wish-card:nth-child(2){min-height:285px;padding:25px 22px}.birthday-wish-icon,.birthday-wish-card:nth-child(2) .birthday-wish-icon{margin-top:30px}}@media (prefers-reduced-motion:reduce){.birthday-wish-card{transition:none;transform:none}.birthday-wish-card:hover,.birthday-wish-card:nth-child(2):hover{transform:none}}.birthday-cake-section{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:clamp(5rem,7vw,7rem) 1.5rem clamp(3.5rem,5vw,5rem);display:flex;position:relative;overflow:hidden}.birthday-cake-heading{z-index:2;max-width:800px;position:relative}.birthday-cake-heading>p{color:#a83a62;letter-spacing:.35em;margin:0 0 1.2rem;font-size:.78rem;font-weight:700}.birthday-cake-heading h2{color:#4f2233;letter-spacing:-.04em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,4vw,4.7rem);font-weight:400;line-height:1}.birthday-cake-heading>span{color:#805969;max-width:600px;margin:1.5rem auto 0;font-size:clamp(.98rem,1.2vw,1.08rem);line-height:1.7;display:block}.cake-interaction-area{z-index:2;flex-direction:column;align-items:center;width:100%;margin-top:1.8rem;display:flex;position:relative}.cake-touch-area{aspect-ratio:1.094;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;outline:0;width:min(100%,445px);height:auto;padding:0;display:block;overflow:visible}.cake-touch-area:disabled{cursor:default}.cake-touch-area:focus-visible{outline-offset:10px;border-radius:3rem;outline:3px solid #c53d6e61}.real-cake-stage{width:100%;height:100%;transition:transform .35s,filter .35s;display:block;position:relative;overflow:visible}.cake-touch-area:not(:disabled):hover .real-cake-stage{filter:drop-shadow(0 28px 28px #82314e1f);transform:translateY(-6px)scale(1.01)}.real-cake-image{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 24px 22px #78304b24);width:100%;height:100%;display:block;position:absolute;inset:0}.real-cake-flame{z-index:5;clip-path:polygon(50% 0%,77% 31%,96% 65%,85% 90%,50% 100%,15% 90%,4% 65%,23% 31%);transform-origin:50% 100%;background:radial-gradient(circle at 50% 72%,#fffbd5 0 17%,#ffd65e 19% 46%,#ff9e47 49% 70%,#ed6373 73% 100%);border-radius:50% 50% 48% 48%/70% 70% 35% 35%;width:18px;height:29px;animation:.72s ease-in-out infinite alternate vertical-flame-dance;display:block;position:absolute;top:-20px;transform:translate(-50%);box-shadow:0 0 9px #ffd257f2,0 0 20px #ff8e4894,0 0 32px #e54f763b}.real-cake-flame-one{animation-delay:0s;left:40.82%}.real-cake-flame-two{animation-delay:.16s;left:60.16%}.real-cake-smoke{z-index:6;opacity:0;pointer-events:none;border:2px solid #0000;border-color:#6c565e6b #0000 #0000 #6c565e6b;border-radius:50%;width:10px;height:10px;display:block;position:absolute;top:-14px;transform:translate(-50%)}.real-cake-smoke-one{left:40.82%}.real-cake-smoke-two{animation-delay:.16s;left:60.16%}.candles-are-out .real-cake-flame{animation:.42s ease-out both real-cake-flame-out}.candles-are-out .real-cake-smoke{animation:1.8s ease-out .25s both real-cake-smoke-rise}.cake-action-message{color:#855567;justify-content:center;align-items:center;gap:.55rem;min-height:28px;margin:.7rem 0 0;font-size:.92rem;line-height:1.5;display:flex}.cake-action-message svg{color:#ca4777;flex-shrink:0}.cake-action-message.status-requesting{opacity:.72}.cake-action-message.status-listening{color:#b63867;font-weight:600}.cake-action-message.status-blown{color:#b63867;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;font-style:italic}.cake-relight-button{border:1px solid var(--line);min-height:44px;color:var(--rose-deep);font:inherit;cursor:pointer;background:#ffffff80;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;margin-top:1rem;padding:.65rem .9rem;font-size:.75rem;display:inline-flex}.cake-relight-button:hover{background:var(--secondary)}.cake-relight-button:focus-visible{outline:2px solid var(--rose);outline-offset:4px}.cake-footer-note{color:#956275;letter-spacing:.02em;justify-content:center;align-items:center;gap:.65rem;margin-top:clamp(3rem,5vw,4.5rem);padding-top:1rem;font-family:Georgia,Times New Roman,serif;font-size:.92rem;font-style:italic;display:flex}.cake-footer-note svg{color:#bd416f;filter:drop-shadow(0 2px 4px #9f305929);flex-shrink:0}@keyframes vertical-flame-dance{0%{transform:translate(-50%)scaleX(.94)scaleY(.96)rotate(-2deg)}to{transform:translate(-50%)scaleX(1.04)scaleY(1.08)rotate(2deg)}}@keyframes real-cake-flame-out{0%{opacity:1;transform:translate(-50%)scale(1)rotate(0)}45%{opacity:.7;transform:translate(-58%)scale(.65)rotate(9deg)}to{opacity:0;transform:translate(-70%)scale(0)rotate(15deg)}}@keyframes real-cake-smoke-rise{0%{opacity:0;transform:translate(-50%)scale(.45)}25%{opacity:.55}65%{opacity:.32}to{opacity:0;transform:translate(-20%,-70px)scale(2.4)rotate(35deg)}}@media (width<=700px){.cake-touch-area{width:min(100%,390px)}.real-cake-flame{width:16px;height:26px;top:-17px}.cake-footer-note{margin-top:3rem}}@media (width<=480px){.birthday-cake-section{padding:5rem .8rem 3rem}.birthday-cake-heading h2{font-size:clamp(2.6rem,11vw,3.35rem)}.cake-touch-area{width:min(90vw,330px)}.real-cake-image{filter:drop-shadow(0 17px 17px #78304b21)}.real-cake-flame{width:14px;height:23px;top:-14px}.real-cake-smoke{width:8px;height:8px;top:-10px}.cake-action-message{max-width:320px;padding:0 .5rem;font-size:.84rem}.cake-footer-note{margin-top:2.7rem;font-size:.84rem}}@media (width<=600px){.birthday-letter{padding:4rem 1rem}.birthday-letter-card{padding:2rem 1.5rem}.birthday-letter-card p{line-height:1.75}.secret-surprise-section{padding:4rem 1.25rem}.secret-surprise-heading h2{text-wrap:balance;font-size:clamp(2.35rem,10vw,3.2rem)}.secret-surprise-content{margin-top:2.25rem}.secret-reveal-button{width:min(72vw,16rem)}.secret-reveal-icon{border-radius:2rem;width:6.5rem}.secret-reveal-label{letter-spacing:.18em;margin-top:1.2rem;font-size:.75rem}.secret-message-card{padding:1.5rem 1.25rem}.birthday-cake-heading h2{text-wrap:balance}.birthday-cake-section{padding-bottom:max(3rem, env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.real-cake-stage,.real-cake-flame{transition:none;animation:none}.candles-are-out .real-cake-flame,.candles-are-out .real-cake-smoke{display:none}}
