@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&family=Sacramento&display=swap";@layer reset,theme,base,components,utilities;:root{--radius:1rem;--pink:#ef3e91;--hot:#d91f78;--wine:#6e173f;--blush:#fce5ef;--paper:#fff7fa;--rose:#f7b5d2;--ink:#45192f;--muted:#96677e}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper);scroll-padding-top:3rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM Sans,sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}.birthday-page{position:relative;overflow:hidden;background:linear-gradient(180deg,#fbd4e5,#fff6fa 32%,#fce9f2 65%,#f8c7dd)}.ambient{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.orb{position:absolute;display:block;width:34rem;height:34rem;border-radius:50%;filter:blur(70px);opacity:.25;will-change:transform}.orb-a{background:#ff5ca6;top:8%;left:-20%;animation:drift 18s ease-in-out infinite alternate}.orb-b{background:#f28dbb;top:50%;right:-25%;animation:drift 23s ease-in-out infinite alternate-reverse}.starfield{position:absolute;top:8%;left:6%;right:4%;color:#fff;opacity:.58;letter-spacing:2rem;font-size:1.3rem;line-height:9rem;white-space:normal}.topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:1.4rem clamp(1.2rem,5vw,5rem);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#873a60}.monogram{font-family:Playfair Display,serif;font-size:1.7rem;letter-spacing:0;color:var(--hot)}.monogram span{font-family:serif;font-size:1rem}.nav-link{border-bottom:1px solid #d67ca5;padding-bottom:.25rem}.hero{min-height:88svh;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5rem 1.4rem 7rem}.hero-kicker,.section-eyebrow{display:flex;align-items:center;gap:.7rem;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#a14a73}.tiny-flower{color:#d82e83;font-size:1rem}.hero-title-wrap{margin:1.8rem 0 1rem}.script{font-family:Sacramento,cursive;font-weight:400}.intro-script{font-size:clamp(2.5rem,6vw,4.5rem);color:#d82e83;line-height:.9;margin:0 0 .3rem;transform:rotate(-3deg)}h1{font-family:Playfair Display,serif;font-weight:500;font-size:clamp(4rem,12vw,9.8rem);letter-spacing:-.07em;line-height:.92;color:#86194c;margin:0;position:relative}h1 em{font-weight:500;color:#e42f88}.title-heart{font-family:serif;font-size:.24em;vertical-align:top;color:#e42f88;letter-spacing:0;margin-left:.25em}.hero-copy{font-size:clamp(1rem,2.4vw,1.3rem);line-height:1.85;color:#874766;margin:1rem 0 2rem}.hero-copy strong{color:#b51f68;font-weight:600}.hero-cta{display:inline-flex;align-items:center;gap:1.4rem;background:#d9247d;color:#fff;border-radius:999px;padding:1rem 1.5rem;box-shadow:0 12px 30px #d9247d33;font-size:.9rem;transition:transform .3s ease,box-shadow .3s ease}.hero-cta:hover{transform:translateY(-3px);box-shadow:0 18px 38px #d9247d44}.hero-cta span{font-size:1.2rem}.hero-decor{position:absolute;color:#e53e8c;font-size:clamp(4rem,10vw,9rem);opacity:.38;filter:drop-shadow(0 8px 20px #db2d8530)}.flower-left{left:9%;top:28%;transform:rotate(-20deg)}.flower-right{right:10%;bottom:24%;font-size:clamp(3rem,7vw,6rem);transform:rotate(18deg)}.hero-bottom-note{position:absolute;bottom:2.4rem;left:0;right:0;display:flex;justify-content:center;gap:1.2rem;color:#b7658b;font-size:.62rem;letter-spacing:.2em}.wish-section{position:relative;z-index:1;text-align:center;padding:7rem 1.3rem 8rem;background:linear-gradient(180deg,#f8d1e4b8,#fff6fae8);border-top:1px solid #fff9}.section-eyebrow{justify-content:center}.section-eyebrow span{font-size:1rem;color:#d52c80}h2{font-family:Playfair Display,serif;font-weight:500;font-size:clamp(2.5rem,6vw,5.2rem);letter-spacing:-.045em;color:#7d1a49;line-height:1.08;margin:1.2rem 0}h2 em{color:#dc2f83;font-weight:500}.section-intro,.about-heading>p{font-size:1rem;line-height:1.8;color:#97617c}.hibiscus-button{position:relative;width:clamp(9rem,25vw,15rem);height:clamp(9rem,25vw,15rem);margin:2.3rem auto 1rem;border:0;background:radial-gradient(circle,#f8b7d2,#fbdbe8 65%,#fff4f8);border-radius:50%;box-shadow:0 22px 55px #ce3e8230,inset 0 0 0 1px #fff;cursor:pointer;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.hibiscus-button:hover{transform:translateY(-5px) rotate(-3deg)}.hibiscus{display:block;font-size:clamp(5rem,14vw,8rem);line-height:1;color:#e52b83;text-shadow:0 8px 20px #c11c6a30;transition:transform .7s}.opened .hibiscus{transform:rotate(22deg) scale(1.08)}.flower-center{position:absolute;top:45%;left:47%;font-size:1.4rem;color:#ffdb75}.flower-hint{position:absolute;bottom:-1.7rem;left:0;right:0;color:#a24e75;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}.wish-reveal{max-width:34rem;margin:2.2rem auto 0;color:#7b3154;line-height:1.9;font-family:Playfair Display,serif;font-size:1.15rem;opacity:0;transform:translateY(12px);max-height:0;overflow:hidden;transition:opacity .45s ease,transform .45s ease,max-height .6s ease}.wish-reveal.visible{opacity:1;transform:translateY(0);max-height:14rem}.wish-reveal span{color:#e52b83}.wish-foot{margin-top:3rem;color:#a45b7e;font-family:Sacramento,cursive;font-size:1.8rem}.wish-foot span{font-size:1rem}.about-section{position:relative;z-index:1;padding:7rem clamp(1.2rem,7vw,7rem) 8rem;background:#fff8fb}.about-heading{text-align:center;margin:0 auto 5rem}.about-heading h2{margin-bottom:.8rem}.memory-list{max-width:1100px;margin:auto;display:flex;flex-direction:column;gap:7rem}.memory-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(2rem,8vw,7rem);align-items:center}.memory-row.reverse{grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}.memory-row.reverse .photo-wrap{order:2}.memory-row.reverse .memory-copy{order:1}.photo-wrap{position:relative;width:min(100%,430px);margin:auto;transform:rotate(-2deg);transition:transform .6s cubic-bezier(.2,.8,.2,1)}.memory-row.reverse .photo-wrap{transform:rotate(2deg)}.photo-wrap:hover{transform:rotate(0) translateY(-5px)}.photo-mat{position:relative;padding:1rem 1rem 3.2rem;background:#fff;border:1px solid #f3d6e4;box-shadow:0 18px 48px #85234c16;border-radius:5px;aspect-ratio:4/4.8;overflow:hidden}.photo-mat img{position:absolute;inset:1rem 1rem 3.2rem;width:calc(100% - 2rem);height:calc(100% - 4.2rem);object-fit:cover;border-radius:2px;z-index:2}.photo-placeholder{position:absolute;inset:1rem 1rem 3.2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;background:linear-gradient(145deg,#fbd7e7,#f9b6d3);color:#b84278}.photo-placeholder span{font-size:2.4rem}.photo-placeholder small{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.photo-caption{position:absolute;bottom:1rem;left:0;right:0;text-align:center;font-family:Sacramento,cursive;font-size:1.5rem;color:#a34c75}.photo-sticker{position:absolute;top:-1.5rem;right:-1.2rem;color:#e23b8b;font-size:2.5rem;filter:drop-shadow(0 5px 10px #d32b7c20)}.frame-2 .photo-mat{border-radius:40% 40% 6px 6px/25% 25% 6px 6px}.frame-3 .photo-mat{border-radius:18px;transform:rotate(1deg)}.frame-4 .photo-mat{border-radius:48% 48% 6px 6px/30% 30% 6px 6px}.memory-copy{max-width:420px}.memory-number{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:#b35a83}.memory-number i{font-style:normal;color:#e73b8e;margin:0 .3rem}.memory-copy h3{font-family:Playfair Display,serif;font-weight:500;font-size:clamp(2rem,4vw,3.5rem);line-height:1.12;letter-spacing:-.04em;color:#8b1c50;margin:1rem 0}.memory-copy p{font-size:1rem;line-height:1.95;color:#8f5a73;max-width:34rem}.memory-flower{display:block;color:#e13b8b;font-size:1.7rem;margin-top:1.2rem}.letter-section{position:relative;z-index:1;padding:7rem 1.3rem;background:linear-gradient(145deg,#f4a8ca,#f9d4e5 55%,#fcebf3);display:flex;justify-content:center}.letter-card{width:min(100%,700px);text-align:center;background:#fff9fc;border:1px solid #fff;box-shadow:0 28px 80px #a3225c22;border-radius:8px;padding:clamp(2rem,6vw,4.5rem);position:relative}.letter-top{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#a34b75}.letter-top span{color:#e32c83}.letter-seal{display:grid;place-items:center;width:3rem;height:3rem;margin:2rem auto 1rem;border-radius:50%;background:#e52d83;color:#fff;font-family:Playfair Display,serif;font-size:1.5rem;box-shadow:0 8px 20px #e52d8333}.letter-card h2{margin:1rem 0}.letter-tease{color:#95627b;line-height:1.8}.letter-button{margin:1.6rem auto 0;border:1px solid #e4a1bf;background:transparent;color:#a12762;border-radius:999px;padding:.9rem 1.3rem;cursor:pointer;display:inline-flex;gap:1rem;align-items:center;transition:background .3s,color .3s}.letter-button:hover{background:#e52d83;color:#fff}.letter-message{max-width:520px;margin:2rem auto 0;padding-top:1.5rem;border-top:1px solid #f0d5e2;color:#86516c;font-family:Playfair Display,serif;font-size:1.1rem;line-height:2;animation:rise .5s ease both}.letter-message span{display:block;margin-top:1rem;color:#d32a7b;font-family:Sacramento,cursive;font-size:1.8rem}.footer{position:relative;z-index:1;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.5rem clamp(1.2rem,5vw,5rem);background:#f5b9d3;color:#98516f;font-size:.68rem;letter-spacing:.08em}.memory-row,.about-heading,.letter-card{animation:soft-rise .8s ease both;animation-timeline:view();animation-range:entry 0% entry 25%}@keyframes soft-rise{0%{transform:translateY(18px)}to{transform:translateY(0)}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes drift{0%{transform:translateZ(0)}to{transform:translate3d(5vw,3vh,0)}}@media(max-width:700px){.topbar{padding:1rem 1.1rem;font-size:.58rem}.hero{min-height:82svh;padding:4rem 1.2rem 6rem}.flower-left{left:2%;top:23%}.flower-right{right:3%;bottom:20%}.hero-kicker{font-size:.58rem;letter-spacing:.12em}.hero-copy{font-size:1rem}.wish-section,.about-section{padding:5rem 1.2rem}.memory-list{gap:4.5rem}.memory-row,.memory-row.reverse{grid-template-columns:1fr;gap:1.6rem}.memory-row.reverse .photo-wrap,.memory-row.reverse .memory-copy{order:initial}.photo-wrap{width:min(82%,360px)}.memory-copy{text-align:center;margin:auto}.memory-flower{margin-top:.8rem}.about-heading{margin-bottom:3.5rem}.letter-section{padding:4.5rem 1rem}.footer{justify-content:center;text-align:center}.starfield{letter-spacing:.9rem;line-height:7rem}.memory-copy p{font-size:.95rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;animation-timeline:auto!important}}.birthday-page{isolation:isolate}.scenery-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:paint}.scenery{position:absolute;display:block;line-height:1;filter:drop-shadow(0 7px 12px #9d38601a);will-change:transform;animation:scenery-float 7s ease-in-out infinite alternate;animation-timeline:scroll(root)}.cloud{font-size:clamp(2.4rem,5vw,4.6rem);opacity:.48}.cloud-one{top:12%;left:3%;--drift:10vh}.cloud-two{top:45%;right:4%;--drift:15vh;animation-delay:-2s}.cloud-three{top:78%;left:7%;--drift:12vh;animation-delay:-4s}.rainbow{font-size:clamp(2.4rem,5vw,4.2rem);opacity:.58}.rainbow-one{top:26%;right:7%;--drift:13vh;transform:rotate(12deg)}.rainbow-two{top:68%;left:2%;--drift:17vh;transform:rotate(-10deg)}.unicorn{font-size:clamp(2.1rem,4vw,3.5rem);opacity:.62}.unicorn-one{top:52%;left:3%;--drift:11vh}.unicorn-two{top:88%;right:5%;--drift:15vh;animation-delay:-3s}.flower{font-size:clamp(1.7rem,3.5vw,3rem);opacity:.66}.flower-one{top:35%;left:13%;--drift:10vh}.flower-two{top:60%;right:13%;--drift:14vh}.flower-three{top:82%;right:17%;--drift:12vh}.flower-four{top:18%;right:20%;--drift:9vh}.flower-five{top:95%;left:25%;--drift:14vh}@keyframes scenery-float{0%{translate:0 -2vh}to{translate:0 var(--drift,12vh)}}.hero{z-index:1}.hero-subnote{margin:1rem 0 0;color:#a45b7e;font-family:Sacramento,cursive;font-size:1.5rem}.hero-cta{border:0;cursor:pointer;font-family:inherit}.hero-cta.is-open{background:#a92361}.surprise-content{position:relative;z-index:1;max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height 1.25s cubic-bezier(.2,.75,.25,1),opacity .55s ease,visibility 0s linear 1.25s}.surprise-content.revealed{max-height:14000px;opacity:1;visibility:visible;transition:max-height 1.5s cubic-bezier(.2,.75,.25,1),opacity .7s ease .12s,visibility 0s}.surprise-content .wish-section,.surprise-content .about-section,.surprise-content .letter-section,.surprise-content .footer{position:relative}.hibiscus{font-size:clamp(5rem,14vw,8rem);display:block;line-height:1.1;filter:drop-shadow(0 8px 14px #c11c6a25);transition:transform .7s}.opened .hibiscus{transform:rotate(18deg) scale(1.1)}.letter-message-wrap{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .7s cubic-bezier(.2,.75,.25,1),opacity .45s ease}@media(max-width:700px){.cloud-one{left:-2%}.cloud-two{right:-3%}.rainbow-one{right:1%}.unicorn-one{left:0}.flower-two{right:4%}.scenery{filter:drop-shadow(0 4px 8px #9d386012)}}@media(prefers-reduced-motion:reduce){.scenery{animation:none!important;will-change:auto}.surprise-content,.surprise-content.revealed,.letter-message-wrap,.letter-message-wrap.visible,.letter-message-wrap .letter-message{transition:none!important}}.birthday-page{overflow:visible;isolation:isolate}.ambient{position:absolute;inset:0 auto auto 0;width:100%;height:100%;overflow:hidden;z-index:0}.scenery-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:visible;contain:none}.scenery{z-index:0}.sparkle{font-size:clamp(1.2rem,2.6vw,2.2rem);color:#df4b91;opacity:.62}.sparkle-one{top:9%;right:31%;--drift:9vh}.sparkle-two{top:57%;left:48%;--drift:14vh;animation-delay:-2.5s}.sparkle-three{top:91%;right:32%;--drift:11vh;animation-delay:-4s}.topbar,.hero,.wish-section,.after-wish-content{position:relative;z-index:1}.hero{min-height:92svh;padding-top:4rem;padding-bottom:6rem}.hero-subnote{margin:.7rem 0 0;color:#a45b7e;font-family:Sacramento,cursive;font-size:1.65rem}.birthday-cake{position:relative;width:clamp(9rem,24vw,13rem);height:clamp(7.5rem,18vw,9.5rem);margin:1.4rem auto 1rem;filter:drop-shadow(0 12px 18px #a82c5c25);animation:cake-arrive .9s ease both}.cake-plate{position:absolute;bottom:.35rem;left:5%;width:90%;height:.7rem;border-radius:50%;background:linear-gradient(90deg,#f1a5c4,#fff0f6 45%,#e98eb6);box-shadow:0 4px #d878a4}.cake-layer{position:absolute;left:14%;width:72%;border-radius:13px 13px 9px 9px;background:repeating-linear-gradient(90deg,#f8a9c9 0 14px,#fbd1e1 14px 27px);box-shadow:inset 0 -7px #e98db5,0 4px #fff1f7}.cake-layer-bottom{height:2.6rem;bottom:1rem}.cake-layer-top{height:1.8rem;bottom:3.2rem;left:21%;width:58%;background:linear-gradient(90deg,#f7b4d0,#ffe6ef 50%,#f5a3c5);border-radius:12px 12px 7px 7px;z-index:2}.cake-top{position:absolute;z-index:3;left:21%;bottom:4.55rem;width:58%;height:.55rem;border-radius:50%;background:#fff0f6;box-shadow:0 3px #f6b4cf}.cake-candles{position:absolute;z-index:4;left:0;right:0;bottom:4.95rem;display:flex;justify-content:center;gap:1.25rem}.cake-candles i{position:relative;display:block;width:.45rem;height:1.8rem;border-radius:4px 4px 2px 2px;background:repeating-linear-gradient(135deg,#fff7fb 0 5px,#e95b9a 5px 9px);box-shadow:0 0 0 1px #db5790}.cake-candles i b{position:absolute;left:50%;bottom:calc(100% + .15rem);width:.52rem;height:.78rem;transform:translate(-50%);border-radius:55% 45%;background:radial-gradient(ellipse at 50% 70%,#fff8a9 0 20%,#ffbd54 45%,#ff7b45 75%,transparent 78%);filter:drop-shadow(0 0 6px #ffad48);animation:candle-flicker .8s ease-in-out infinite alternate;transform-origin:50% 100%}.cake-candles i:nth-child(2) b{animation-delay:-.3s}.cake-candles i:nth-child(3) b{animation-delay:-.55s}@keyframes candle-flicker{0%{transform:translate(-50%) rotate(-5deg) scale(.92);filter:drop-shadow(0 0 5px #ffad48)}to{transform:translate(-50%) rotate(6deg) scale(1.08);filter:drop-shadow(0 0 10px #ffbd55)}}@keyframes cake-arrive{0%{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.hero-copy{margin:.5rem 0 .6rem}.hero-bottom-note{bottom:1.8rem}.hibiscus-stage{padding-top:6rem;padding-bottom:6.5rem;background:linear-gradient(180deg,#f8d1e4d9,#fff6faed)}.hibiscus-stage h2{margin-bottom:.8rem}.hibiscus-button-large{width:clamp(12rem,31vw,17rem);height:clamp(12rem,31vw,17rem);margin:2rem auto 1.5rem;box-shadow:0 24px 58px #ce3e823b,inset 0 0 0 2px #fff,0 0 0 9px #fff8}.hibiscus-button-large .hibiscus{font-size:clamp(7rem,17vw,10rem);filter:drop-shadow(0 9px 14px #c11c6a32)}.hibiscus-button-large .flower-hint{bottom:-2.15rem;font-size:.72rem;font-weight:700;letter-spacing:.17em;white-space:nowrap}.hibiscus-button-large.taps-1{animation:flower-pulse 1.5s ease-in-out infinite}.hibiscus-button-large.taps-2{cursor:default;box-shadow:0 20px 55px #ce3e8230,inset 0 0 0 2px #fff}@keyframes flower-pulse{0%,to{box-shadow:0 24px 58px #ce3e823b,inset 0 0 0 2px #fff,0 0 0 8px #fff8}50%{box-shadow:0 24px 58px #ce3e823b,inset 0 0 0 2px #fff,0 0 0 15px #fff4}}.hibiscus-message{max-width:39rem;margin:1.2rem auto 0;overflow:hidden;max-height:0;opacity:0;transform:translateY(14px);transition:max-height .8s ease,opacity .55s ease,transform .55s ease}.hibiscus-message.visible{max-height:15rem;opacity:1;transform:translateY(0)}.first-message{font-family:Playfair Display,serif;color:#7b3154;font-size:clamp(1.1rem,2.5vw,1.45rem);line-height:1.9}.first-message p{margin:0}.first-message>span{display:block;margin-top:.3rem;color:#df3285}.second-message{max-width:39rem;margin:1.1rem auto 0;font-size:1.08rem;line-height:1.95}.second-message.visible{max-height:18rem}.after-wish-content{max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height 1.6s cubic-bezier(.2,.75,.25,1),opacity .7s ease,visibility 0s linear 1.6s}.after-wish-content.revealed{max-height:40000px;opacity:1;visibility:visible;transition:max-height 2s cubic-bezier(.2,.75,.25,1),opacity .8s ease .1s,visibility 0s}.cards-section{position:relative;z-index:1;padding:7rem clamp(1.2rem,6vw,6rem) 6rem;text-align:center;background:linear-gradient(180deg,#fff8fb,#fce9f2)}.cards-section h2{margin-bottom:.8rem}.card-progress{display:flex;align-items:center;justify-content:center;gap:.65rem;margin:2rem auto 2.2rem;color:#a45b7e;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.progress-hearts{font-weight:700;color:#d52c80}.progress-track{display:inline-block;width:5.5rem;height:4px;border-radius:9px;background:#f1c9db;overflow:hidden}.progress-track i{display:block;height:100%;border-radius:9px;background:#d92b80;transition:width .4s ease}.appreciation-grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.appreciation-card{appearance:none;border:0;background:transparent;padding:0;min-width:0;aspect-ratio:1.08/1;perspective:1000px;cursor:pointer;text-align:center;color:inherit}.card-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.2,.75,.2,1)}.appreciation-card.is-flipped .card-inner{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;padding:1.3rem;border:1px solid #f1c4d8;border-radius:18px;background:linear-gradient(145deg,#fffafd,#fce5ef);box-shadow:0 12px 30px #9d386015;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.card-front:before,.card-back:before{content:"";position:absolute;inset:8px;border:1px solid #f6d8e5;border-radius:12px;pointer-events:none}.card-number{position:absolute;top:1.15rem;left:1.25rem;color:#c77b9d;font-size:.65rem;letter-spacing:.14em}.card-symbol{font-family:Playfair Display,serif;color:#df3989;font-size:2.7rem;line-height:1}.card-front strong,.card-back strong{font-family:Playfair Display,serif;font-size:clamp(1.25rem,2.4vw,1.8rem);font-weight:500;color:#8b1c50}.card-front small,.card-back small{color:#b56b8c;font-size:.65rem;letter-spacing:.13em;text-transform:uppercase}.card-back{transform:rotateY(180deg);background:linear-gradient(145deg,#f9d7e6,#fff8fb)}.card-back-flower{font-size:1.8rem;color:#d92b80}.card-back-copy{max-width:17rem;color:#87516b;font-size:clamp(.78rem,1.5vw,.94rem);line-height:1.65}.appreciation-card.has-been-seen .card-front{border-color:#df90b5}.appreciation-card:focus-visible{outline:3px solid #d92b80;outline-offset:5px;border-radius:18px}.cards-complete-note{max-height:0;opacity:0;overflow:hidden;margin:0 auto;color:#a12b65;font-family:Sacramento,cursive;font-size:1.8rem;transition:max-height .6s ease,opacity .5s ease,margin .5s ease}.cards-complete-note.visible{max-height:5rem;opacity:1;margin:2rem auto 0}.memories-gate{max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height 1.5s cubic-bezier(.2,.75,.25,1),opacity .7s ease,visibility 0s linear 1.5s}.memories-gate.unlocked{max-height:30000px;opacity:1;visibility:visible;transition:max-height 1.8s cubic-bezier(.2,.75,.25,1),opacity .8s ease .1s,visibility 0s}.memories-gate .about-section{background:linear-gradient(180deg,#fff8fb,#fff5f9)}.letter-section{background:linear-gradient(145deg,#f4a8ca,#f9d4e5 55%,#fcebf3)}.gift-letter-card{padding-top:clamp(2.5rem,6vw,4.5rem);padding-bottom:clamp(2.5rem,6vw,4.5rem);overflow:hidden}.gift-box-button{display:flex;flex-direction:column;align-items:center;gap:.9rem;border:0;background:transparent;cursor:pointer;margin:1.5rem auto 0;color:#a12762}.gift-box-art{position:relative;display:block;width:clamp(8rem,21vw,11rem);height:clamp(7.5rem,18vw,9.2rem);filter:drop-shadow(0 13px 15px #a3225c25);transition:transform .5s ease}.gift-box-button:hover .gift-box-art{transform:translateY(-5px) rotate(-2deg)}.gift-body{position:absolute;left:10%;right:10%;bottom:0;height:67%;border-radius:8px 8px 12px 12px;background:linear-gradient(110deg,#df3a89,#f06da8 50%,#d92b80);box-shadow:inset 0 -7px #c92a73}.gift-body i{position:absolute;left:42%;top:0;bottom:0;width:16%;background:#ffe7f0}.gift-lid{position:absolute;z-index:3;left:5%;right:5%;bottom:62%;height:22%;border-radius:7px;background:linear-gradient(90deg,#f48ab7,#ffd0e2 50%,#ed78ac);box-shadow:0 4px #d54a8b;transform-origin:12% 90%;transition:transform .8s cubic-bezier(.2,.75,.2,1),translate .8s cubic-bezier(.2,.75,.2,1)}.gift-lid i{position:absolute;left:42%;top:0;bottom:0;width:16%;background:#fff1f7}.gift-ribbon-vertical{position:absolute;z-index:4;left:42%;bottom:0;width:16%;height:67%;background:#fff0f6;pointer-events:none}.gift-ribbon-horizontal{position:absolute;z-index:4;left:10%;right:10%;bottom:33%;height:12%;background:#fff0f6;pointer-events:none}.gift-bow{position:absolute;z-index:5;bottom:82%;width:29%;height:23%;border:7px solid #d92b80;border-radius:80% 80% 20%;transition:transform .8s ease}.gift-bow-left{left:25%;transform:rotate(24deg)}.gift-bow-right{right:25%;transform:scaleX(-1) rotate(24deg)}.gift-instruction{font-family:Playfair Display,serif;font-size:1.25rem;color:#9f245f}.gift-open .gift-lid{transform:rotate(-24deg) translate(-12px,-23px)}.gift-open .gift-bow-left{transform:rotate(-18deg) translate(-9px,-15px)}.gift-open .gift-bow-right{transform:scaleX(-1) rotate(-18deg) translate(-9px,-15px)}.letter-message-wrap{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .8s cubic-bezier(.2,.75,.25,1),opacity .55s ease}.letter-message-wrap.visible{grid-template-rows:1fr;opacity:1}.letter-message-wrap .letter-message{min-height:0;overflow:hidden;margin:0 auto;padding-top:0;border-top:0;transition:padding .6s ease,margin .6s ease}.letter-message-wrap.visible .letter-message{margin:2rem auto 0;padding-top:1.5rem;border-top:1px solid #f0d5e2}@media(max-width:700px){.hero{min-height:88svh;padding-top:3.2rem}.birthday-cake{margin:1.3rem auto .8rem}.hibiscus-stage{padding:5rem 1.2rem}.appreciation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.appreciation-card{aspect-ratio:.9/1}.card-face{padding:.9rem;border-radius:14px}.card-face:before{inset:6px;border-radius:10px}.card-back-copy{font-size:.78rem;line-height:1.5}.card-front strong,.card-back strong{font-size:1.25rem}.cards-section{padding:5rem 1rem}.card-progress{flex-wrap:wrap}.gift-letter-card{padding:2.2rem 1.3rem}.scenery{filter:drop-shadow(0 4px 8px #9d386012)}}@media(prefers-reduced-motion:reduce){.cake-candles i b,.birthday-cake,.hibiscus-button-large.taps-1{animation:none}.card-inner,.gift-lid,.gift-bow,.after-wish-content,.memories-gate,.hibiscus-message,.cards-complete-note{transition:none!important}}.birthday-page{position:relative;overflow:visible}.scenery-layer{position:absolute;inset:0;height:100%;min-height:100%;z-index:0;pointer-events:none;overflow:hidden;contain:none}.scenery{position:absolute;animation:scenery-float 7s ease-in-out infinite alternate;animation-timeline:auto;will-change:transform}.cards-section{background:linear-gradient(180deg,#fff8fbdf,#fce9f2df)}.memories-gate .about-section{background:linear-gradient(180deg,#fff8fbdf,#fff5f9df)}.letter-section{background:linear-gradient(145deg,#f4a8cae8,#f9d4e5e8 55%,#fcebf3e8)}.footer{background:#f5b9d3e8}.cloud{opacity:.9;font-size:clamp(3.2rem,6.5vw,5.8rem);filter:drop-shadow(0 5px 9px #8f3a6538)}.rainbow{opacity:.92;font-size:clamp(3.1rem,6vw,5rem);filter:drop-shadow(0 5px 10px #8f3a6538)}.unicorn{opacity:.95;font-size:clamp(2.8rem,5vw,4.2rem);filter:drop-shadow(0 5px 10px #8f3a6538)}.flower{opacity:.96;font-size:clamp(2.2rem,4vw,3.6rem);filter:drop-shadow(0 5px 9px #8f3a6538)}.sparkle{opacity:.95;font-size:clamp(1.6rem,3vw,2.6rem);text-shadow:0 2px 8px #b72d7044}.cards-section{background:linear-gradient(180deg,#fff8fb99,#fce9f299)}.memories-gate .about-section{background:linear-gradient(180deg,#fff8fb99,#fff5f999)}.letter-section{background:linear-gradient(145deg,#f4a8cacc,#f9d4e5cc 55%,#fcebf3cc)}.footer{background:#f5b9d3cc}@media(max-width:700px){.cloud{opacity:.94;font-size:clamp(3rem,13vw,4.5rem)}.rainbow{opacity:.96;font-size:clamp(2.8rem,12vw,4rem)}.unicorn{opacity:.98;font-size:clamp(2.5rem,10vw,3.5rem)}.flower{opacity:.98;font-size:clamp(2rem,9vw,3rem)}}.gift-letter-card{isolation:isolate;overflow:visible;max-width:760px;background:linear-gradient(135deg,#fffdf8,#fff8f4 58%,#fffaf7);border:1px solid #e9c7d3;border-radius:3px;box-shadow:0 22px 55px #8f31551c,0 5px 12px #8f315510,inset 0 0 0 7px #fffdf8,inset 0 0 0 8px #f1dce2;transform:rotate(-.7deg)}.gift-letter-card:before{content:"";position:absolute;z-index:4;top:-1.1rem;left:50%;width:7.8rem;height:2.35rem;transform:translate(-50%) rotate(-2deg);background:linear-gradient(135deg,#f7c5d5d9,#fce2e9e8);border-left:1px solid #fff9;border-right:1px solid #fff9;box-shadow:0 3px 8px #9c4a6815;clip-path:polygon(2% 0,100% 4%,96% 100%,0 94%)}.gift-letter-card:after{content:"✿";position:absolute;z-index:3;right:clamp(1rem,4vw,2.4rem);top:clamp(1rem,4vw,2.2rem);display:grid;place-items:center;width:3.2rem;height:3.2rem;border:1px dashed #d98aa9;border-radius:50%;color:#d94d91;font-size:1.8rem;transform:rotate(12deg);background:#fff8f5}.gift-letter-card .letter-top{font-size:.66rem;letter-spacing:.2em;color:#a75c78}.gift-letter-card h2{color:#8d2854}.gift-letter-card .letter-tease{font-family:Sacramento,cursive;font-size:1.65rem;color:#a75c78}.gift-letter-card .gift-box-button{position:relative;z-index:5}.gift-letter-card .letter-message{position:relative;max-width:560px;text-align:left;padding:2.1rem clamp(1.2rem,4vw,2.4rem) 1.8rem;margin:1.8rem auto 0;border:1px solid #f0d8d9;border-radius:2px;background:repeating-linear-gradient(to bottom,#fffdf8 0 31px,#f2e3e3 32px,#fffdf8 33px);box-shadow:0 8px 20px #8f315512;color:#80566a;line-height:2.05;font-size:1.02rem}.gift-letter-card .letter-message:before{content:"A NOTE FOR YOU";display:block;margin:0 0 1.2rem;color:#d05b8e;font-family:DM Sans,sans-serif;font-size:.6rem;font-weight:600;letter-spacing:.2em;text-align:center}.gift-letter-card .letter-message span{margin-top:1.3rem;text-align:right;font-size:1.9rem}.gift-letter-card .letter-message-wrap.visible .letter-message{border-top:1px solid #f0d8d9}@media(max-width:700px){.gift-letter-card{margin:0 .3rem;transform:rotate(-.35deg)}.gift-letter-card:after{width:2.5rem;height:2.5rem;font-size:1.4rem;right:.8rem;top:1.1rem}.gift-letter-card .letter-top{padding-right:2.2rem}.gift-letter-card .letter-message{font-size:.96rem;line-height:1.95;padding:1.6rem 1rem}}.hero{background:linear-gradient(180deg,#f7c5dcb8,#fbe1edb8 52%,#fff0f7c9)}.topbar{background:linear-gradient(90deg,#f8cfe0a8,#fff0f7a8,#f8cfe0a8)}
