:root{--paper:#f7f0e2;--paper-light:#fffaf1;--ink:#292520;--muted:#746b60;--coral:#df6359;--coral-dark:#ae413e;--butter:#f1bf57;--blue:#5e8f99;--green:#718b70;--berry:#a15469;--night:#171923;--night-soft:#242535;--starlight:#f8e2a4;--serif:Georgia, "Times New Roman", serif;--sans:"Trebuchet MS", "Segoe UI", sans-serif;--hand:"Segoe Print", "Bradley Hand", cursive}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);margin:0}body.keepsake-locked,body.anniversary-locked{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.birthday-experience{background:radial-gradient(circle at 15% 8%, #efb54a1f, transparent 28rem), radial-gradient(circle at 88% 30%, #e163591a, transparent 32rem), var(--paper);min-height:100vh;position:relative;overflow:hidden}.paper-noise{z-index:100;pointer-events:none;opacity:.13;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");position:fixed;inset:0}.section-kicker{color:var(--coral-dark);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.69rem;font-weight:800;line-height:1.5}.gift-reveal{z-index:90;background:linear-gradient(135deg,#0000 48%,#3e504417 48% 52%,#0000 52%) 0 0/72px 72px,linear-gradient(45deg,#0000 48%,#e1635914 48% 52%,#0000 52%) 0 0/72px 72px,#ddd6bc;place-items:center;padding:5vw;transition:opacity .8s,visibility .8s,transform .8s cubic-bezier(.2,.75,.25,1);display:grid;position:fixed;inset:0;overflow:hidden}.gift-reveal:before,.gift-reveal:after{content:"";z-index:2;background:var(--coral);position:absolute;box-shadow:0 0 25px #8039332e}.gift-reveal:before{width:68px;top:0;bottom:0;left:calc(50% - 34px)}.gift-reveal:after{height:68px;top:calc(50% - 34px);left:0;right:0}.gift-reveal--opened{opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.08)}.gift-card{z-index:5;background:var(--paper-light);text-align:center;border:1px solid #463c3024;width:min(90vw,580px);padding:clamp(2rem,6vw,4.5rem);position:relative;transform:rotate(-1deg);box-shadow:0 30px 90px #3a302340}.gift-card:before{content:"";pointer-events:none;border:1px solid #a1546930;position:absolute;inset:12px}.gift-card h1{max-width:470px;font:500 clamp(2.4rem, 7vw, 5.1rem)/.95 var(--serif);letter-spacing:-.055em;margin:1rem auto .9rem}.gift-card>p:not(.section-kicker){max-width:390px;color:var(--muted);font:italic 1.05rem/1.7 var(--serif);margin:0 auto}.gift-seal{background:var(--ink);color:#fff;cursor:pointer;letter-spacing:.09em;text-transform:uppercase;border:0;border-radius:999px;grid-template-columns:auto 1fr;align-items:center;gap:.7rem;margin-top:2rem;padding:.55rem 1rem .55rem .55rem;font-size:.7rem;font-weight:800;transition:transform .25s,background .25s;display:inline-grid}.gift-seal span{background:var(--coral);border-radius:50%;place-items:center;width:2.65rem;height:2.65rem;font-size:1rem;display:grid}.gift-seal:hover{background:var(--coral-dark);transform:translateY(-2px)rotate(.5deg)}.reveal-confetti{z-index:4;background:var(--butter);border-radius:2px;width:14px;height:42px;position:absolute;transform:rotate(24deg)}.reveal-confetti-one{top:13%;left:9%}.reveal-confetti-two{background:var(--blue);bottom:13%;right:10%;transform:rotate(-31deg)}.reveal-confetti-three{background:var(--berry);border-radius:50%;width:22px;height:22px;top:16%;right:16%}.birthday-hero{isolation:isolate;place-items:center;min-height:115vh;padding:10vh 5vw 14vh;display:grid;position:relative}.birthday-hero:before{content:"";z-index:-1;aspect-ratio:1;background:var(--butter);opacity:.14;border-radius:50%;width:min(52vw,640px);position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.hero-copy{z-index:5;text-align:center;width:min(90vw,780px);position:relative}.hero-age{color:var(--coral);font:800 clamp(8rem, 25vw, 21rem)/.8 var(--serif);letter-spacing:-.12em;text-shadow:5px 5px 0 var(--paper-light);margin:.15em 0 -.04em}.hero-copy h2{font:500 clamp(3rem, 8vw, 7rem)/.92 var(--serif);letter-spacing:-.065em;margin:0}.hero-copy h2 em,.story-intro h2 em,.ribbon-heading h2 em,.zodiac-copy h2 em{color:var(--coral-dark);font-family:var(--hand);letter-spacing:-.08em;font-size:.72em;font-weight:400}.hero-line{max-width:460px;color:var(--muted);font:italic clamp(1rem, 2vw, 1.25rem)/1.6 var(--serif);margin:1.6rem auto 0}.scroll-note{color:var(--ink);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:.7rem;margin-top:2rem;font-size:.67rem;font-weight:800;text-decoration:none;display:inline-flex}.scroll-note span{color:var(--coral);font-size:1.1rem;animation:1.4s ease-in-out infinite noteNudge}.hero-doodles span{z-index:1;color:var(--berry);font:700 2rem var(--hand);opacity:.72;position:absolute}.hero-doodles span:first-child{top:15%;left:9%;transform:rotate(-16deg)}.hero-doodles span:nth-child(2){color:var(--coral);top:17%;right:9%;transform:rotate(12deg)}.hero-doodles span:nth-child(3){color:var(--blue);bottom:15%;left:12%}.hero-doodles span:nth-child(4){color:var(--green);bottom:13%;right:13%;transform:rotate(9deg)}.memory-photo{background:var(--paper-light);color:var(--ink);cursor:pointer;text-align:left;border:0;grid-template-rows:1fr auto;margin:0;padding:.55rem .55rem .9rem;transition:transform .28s,box-shadow .28s;display:grid;position:relative;box-shadow:0 18px 45px #342d232e}.memory-photo:hover{z-index:8;box-shadow:0 24px 58px #342d2340;transform:translateY(-7px)rotate(0)!important}.memory-photo img,.photo-placeholder{object-fit:cover;width:100%;height:100%;min-height:0}.photo-placeholder{background:#e6b6a9;min-height:160px;display:block;position:relative;overflow:hidden}.memory-photo--blue .photo-placeholder{background:#a9c8ce}.memory-photo--gold .photo-placeholder{background:#e7c273}.memory-photo--green .photo-placeholder{background:#a8b8a0}.memory-photo--berry .photo-placeholder{background:#c594a1}.placeholder-sun{aspect-ratio:1;border:3px solid #fffaf1b3;border-radius:50%;width:18%;position:absolute;top:12%;right:14%}.placeholder-hill{background:#2b352d2e;border-radius:50% 50% 0 0;position:absolute;bottom:-22%;transform:rotate(-7deg)}.placeholder-hill-one{width:90%;height:55%;left:-25%}.placeholder-hill-two{background:#fffaf138;width:95%;height:68%;right:-35%;transform:rotate(11deg)}.placeholder-label{z-index:2;color:#fff;letter-spacing:.16em;text-transform:uppercase;border:1px solid #ffffff85;padding:.3rem .5rem;font-size:.53rem;font-weight:900;position:absolute;bottom:12%;left:10%}.photo-placeholder strong{color:#fffaf19e;font:500 clamp(2.5rem, 6vw, 5rem)/1 var(--serif);position:absolute;top:8%;left:8%}.photo-caption{font:600 .72rem/1.3 var(--hand);padding:.8rem .25rem 0;display:block}.tape-strip{opacity:.78;width:34%;height:1.6rem;transform:translateX(-50%) rotate(var(--tape-turn));background:#f0c15dad;position:absolute;top:-.7rem;left:50%}.hero-photos{z-index:2;pointer-events:none;position:absolute;inset:7% 2.5% 5%}.hero-photo{pointer-events:auto;width:clamp(125px,16vw,230px);height:clamp(180px,23vw,330px);position:absolute}.hero-photo-1{top:16%;left:3%;transform:rotate(-8deg)}.hero-photo-2{top:13%;right:4%;transform:rotate(7deg)}.hero-photo-3{width:clamp(110px,14vw,190px);height:clamp(155px,20vw,270px);bottom:7%;left:10%;transform:rotate(5deg)}.hero-photo-4{width:clamp(105px,13vw,180px);height:clamp(150px,19vw,255px);bottom:4%;right:12%;transform:rotate(-5deg)}.hero-photo-5{width:clamp(90px,11vw,145px);height:clamp(128px,16vw,205px);bottom:-2%;left:46%;transform:rotate(3deg)}.trait-ticker{z-index:4;background:var(--paper-light);border-block:1px solid #29252024;grid-template-columns:auto 1fr;align-items:center;gap:2rem;padding:1.5rem max(5vw,50vw - 590px);display:grid;position:relative;transform:rotate(-1deg)scale(1.01)}.trait-ticker>p{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.62rem;font-weight:900}.trait-ticker>div{justify-content:space-around;gap:1rem;display:flex;overflow:hidden}.trait-pill{white-space:nowrap;font:600 clamp(.95rem, 1.8vw, 1.25rem)/1 var(--hand)}.trait-pill:before{content:"✦";color:var(--coral);margin-right:.65rem}.trait-pill-2:before{color:var(--blue)}.trait-pill-3:before{color:var(--butter)}.trait-pill-4:before{color:var(--green)}.story-intro{text-align:center;width:min(88vw,850px);margin:0 auto;padding:20vh 0 12vh}.story-intro h2,.ribbon-heading h2{font:500 clamp(2.7rem, 6.7vw, 6.1rem)/.98 var(--serif);letter-spacing:-.055em;margin:1rem 0 1.6rem}.story-intro>p:last-child{max-width:600px;color:var(--muted);font:italic clamp(1rem, 2vw, 1.23rem)/1.75 var(--serif);margin:0 auto}.memory-chapters{width:min(92vw,1180px);margin:0 auto}.memory-chapter{grid-template-columns:minmax(250px,.75fr) minmax(520px,1.25fr);align-items:center;gap:clamp(2rem,7vw,7rem);min-height:100vh;padding:10vh 0;display:grid}.memory-chapter:nth-child(2n){grid-template-columns:minmax(520px,1.25fr) minmax(250px,.75fr)}.memory-chapter:nth-child(2n) .chapter-copy{order:2}.memory-chapter:nth-child(2n) .chapter-collage{order:1}.chapter-copy>span{color:#29252014;font:700 clamp(6rem, 13vw, 11rem)/.75 var(--serif);margin-bottom:-.2em;display:block}.chapter-copy h3{font:500 clamp(2rem, 4vw, 4rem)/1.02 var(--serif);letter-spacing:-.045em;margin:.8rem 0 1.3rem}.chapter-copy>p:last-child{color:var(--muted);font:1rem/1.8 var(--serif)}.chapter-collage{height:min(68vw,650px);position:relative}.chapter-photo{width:41%;height:58%;position:absolute}.chapter-photo-1{z-index:4;top:20%;left:28%;transform:rotate(-2deg)}.chapter-photo-2{z-index:2;width:34%;height:48%;top:3%;left:2%;transform:rotate(-8deg)}.chapter-photo-3{z-index:3;width:35%;height:47%;top:7%;right:2%;transform:rotate(7deg)}.chapter-photo-4{z-index:2;width:34%;height:43%;bottom:1%;right:8%;transform:rotate(-5deg)}.zodiac-section{background:radial-gradient(circle at 75% 45%, #a1546933, transparent 32rem), radial-gradient(circle at 30% 80%, #5e8f9921, transparent 28rem), var(--night);color:#fff8e9;grid-template-columns:minmax(280px,.68fr) minmax(520px,1.32fr);align-items:center;gap:clamp(2rem,6vw,6rem);min-height:130vh;margin-top:12vh;padding:18vh max(5vw,50vw - 620px);display:grid;position:relative;overflow:hidden}.zodiac-section:before,.zodiac-section:after{content:"";opacity:.4;pointer-events:none;background-image:radial-gradient(circle,#fff 0 1px,#0000 1.5px);background-size:107px 101px;position:absolute;inset:0}.zodiac-section:after{opacity:.16;background-position:41px 22px;background-size:63px 67px}.zodiac-paper-edge{z-index:3;background:var(--paper);clip-path:polygon(0 0,100% 0,100% 10%,96% 52%,92% 19%,87% 68%,82% 27%,77% 61%,72% 18%,66% 70%,60% 28%,54% 64%,48% 17%,42% 73%,36% 23%,30% 66%,24% 15%,18% 73%,12% 28%,6% 65%,0 20%);height:42px;position:absolute;top:-2px;left:0;right:0}.zodiac-copy{z-index:5;position:relative}.zodiac-copy .section-kicker{color:var(--starlight)}.zodiac-symbol{color:var(--starlight);font:400 clamp(5rem, 12vw, 9rem)/1 var(--serif);text-shadow:0 0 35px #f8e2a447;margin:1rem 0 -.15em;display:block}.zodiac-copy h2{font:500 clamp(2.6rem, 5vw, 5rem)/.98 var(--serif);letter-spacing:-.05em;margin:0}.zodiac-copy h2 em{color:var(--starlight)}.zodiac-copy>p:not(.section-kicker){color:#fff8e985;letter-spacing:.13em;text-transform:uppercase;margin:1.4rem 0 .45rem;font-size:.7rem;font-weight:800}.zodiac-copy small{color:#fff8e95c;font:italic .9rem var(--serif)}.zodiac-map{z-index:5;aspect-ratio:1.25;background:radial-gradient(circle at 52% 48%,#f8e2a414,#0000 64%);border:1px solid #f8e2a41f;border-radius:49% 45% 52% 46%;width:100%;position:relative}.zodiac-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.zodiac-lines line{stroke:#f8e2a4ad;stroke-width:.25px;stroke-dasharray:120;stroke-dashoffset:120px;filter:drop-shadow(0 0 1px var(--starlight));animation:drawConstellation 1.4s var(--line-delay) ease forwards}.zodiac-star{z-index:4;left:var(--star-x);top:var(--star-y);cursor:pointer;background:0 0;border:0;border-radius:50%;width:42px;height:42px;position:absolute;transform:translate(-50%,-50%)}.zodiac-star:before{content:"";width:calc(8px * var(--star-scale));height:calc(8px * var(--star-scale));box-shadow:0 0 9px var(--starlight), 0 0 24px #f8e2a47a;animation:starPulse 2.4s var(--star-delay) ease-in-out infinite alternate;background:#fff8dc;border-radius:50%;transition:transform .25s,box-shadow .25s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.zodiac-star:hover:before,.zodiac-star.is-active:before{box-shadow:0 0 14px #fff, 0 0 42px var(--starlight);transform:translate(-50%,-50%)scale(1.7)}.zodiac-star span{color:#fff8e96e;font-size:.5rem;font-weight:800;position:absolute;top:calc(50% - 15px);left:calc(50% + 10px)}.reason-card{z-index:110;color:#fff8e9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#1a1924f0;border:1px solid #f8e2a447;width:min(88vw,530px);padding:2rem 4rem 2rem 2rem;animation:.35s both reasonReveal;position:fixed;bottom:6vh;left:50%;transform:translate(-50%);box-shadow:0 28px 80px #0000007a}.reason-card>span{color:var(--starlight);letter-spacing:.15em;font-size:.6rem;font-weight:800}.reason-card p{font:italic clamp(1.4rem, 4vw, 2.25rem)/1.25 var(--serif);margin:.7rem 0 0}.reason-card button{color:#ffffffa6;cursor:pointer;background:0 0;border:0;width:2.4rem;height:2.4rem;font-size:1.8rem;position:absolute;top:.8rem;right:.9rem}.reason-card i{background:linear-gradient(90deg, var(--starlight), var(--coral));transform-origin:0;height:2px;animation:6.5s linear forwards reasonTimer;position:absolute;bottom:0;left:0;right:0}.ribbon-section{padding:20vh 0}.ribbon-heading{text-align:center;width:min(88vw,900px);margin:0 auto 10vh}.memory-ribbon{width:100%;overflow:hidden}.memory-ribbon-track{align-items:center;gap:1.2rem;width:max-content;padding:2rem 1rem;animation:52s linear infinite alternate ribbonTravel;display:flex}.memory-ribbon .memory-photo{flex:none;width:clamp(160px,19vw,260px);height:clamp(240px,29vw,390px);transform:rotate(-3deg)}.memory-ribbon .memory-photo:nth-child(3n){transform:rotate(4deg)translateY(24px)}.memory-ribbon .memory-photo:nth-child(4n){transform:rotate(-5deg)translateY(-18px)}.letter-section{background:linear-gradient(#5e8f9917 1px,#0000 1px) 0 0/100% 34px,#dbe3db;place-items:center;min-height:130vh;padding:16vh 5vw;display:grid;position:relative}.letter-shadow{filter:blur(18px);background:#2830272b;width:min(84vw,680px);height:min(85vh,760px);position:absolute;transform:translate(2rem,2rem)rotate(2deg)}.birthday-letter{background:var(--paper-light);width:min(88vw,680px);padding:clamp(2rem,7vw,5rem);position:relative;transform:rotate(-1.1deg);box-shadow:0 28px 80px #2b342a38}.birthday-letter:after{content:"";pointer-events:none;border:1px solid #2925201a;position:absolute;inset:1rem}.letter-stamp{z-index:2;aspect-ratio:1;border:1px dashed var(--coral-dark);width:4.6rem;color:var(--coral-dark);letter-spacing:.15em;text-align:center;place-items:center;font-size:.62rem;font-weight:900;line-height:1.1;display:grid;position:absolute;top:2rem;right:2rem;transform:rotate(6deg)}.letter-date{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;font-weight:800}.birthday-letter h2{font:500 clamp(2.5rem, 7vw, 4.7rem)/1 var(--hand);letter-spacing:-.07em;margin:2.5rem 0 2rem}.birthday-letter>p:not(.letter-date){z-index:2;color:#4b443c;font:1.05rem/1.85 var(--serif);position:relative}.birthday-letter strong{z-index:2;color:var(--coral-dark);font:500 1.9rem var(--hand);margin-top:2.2rem;display:block;position:relative}.wish-finale{background:var(--coral);color:#fffaf0;text-align:center;align-content:center;place-items:center;gap:1rem;min-height:110vh;padding:15vh 5vw 3rem;display:grid;position:relative;overflow:hidden}.wish-finale:before{content:"";aspect-ratio:1;border:1px solid #fffaf02b;border-radius:50%;width:min(72vw,730px);position:absolute;box-shadow:0 0 0 80px #fffaf00d,0 0 0 160px #fffaf00a}.wish-finale .section-kicker{z-index:2;color:#fff1c8;position:relative}.wish-finale h2{z-index:2;max-width:760px;font:500 clamp(2.7rem, 7vw, 6.3rem)/.96 var(--serif);letter-spacing:-.055em;margin:.6rem auto;position:relative}.cake{z-index:3;width:150px;height:180px;margin-bottom:1rem;position:relative}.cake span{position:absolute;left:50%;transform:translate(-50%)}.candle-flame{z-index:4;transform-origin:bottom;background:radial-gradient(circle at 50% 70%,#fffbe0 0 20%,#ffe66e 38%,#ff9f43 72%);border-radius:65% 38% 62% 42%;width:24px;height:38px;animation:.85s ease-in-out infinite flameDance;top:-1px;box-shadow:0 0 20px #ffd878,0 0 48px #ffd878ad}.candle-flame:after{content:"";background:#fffdf2;border-radius:60% 40% 55% 45%;width:8px;height:17px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.candle-wick{z-index:1;background:linear-gradient(#211b18,#514038 75%,#2d2420);border-radius:999px 999px 0 0;width:4px;height:15px;top:27px}.candle-wick:after{content:"";background:#171312;border-radius:50%;width:6px;height:5px;position:absolute;top:-2px;left:50%;transform:translate(-50%)}.candle{z-index:2;background:repeating-linear-gradient(-35deg, #fff8eb 0 7px, var(--blue) 7px 13px);border-radius:4px 4px 0 0;width:13px;height:54px;top:34px}.cake-top{background:#fff2d1;border-radius:50%;width:118px;height:34px;top:83px}.cake-base{background:repeating-linear-gradient(90deg,#f5cb66 0 16px,#efbc4a 16px 32px);border-radius:0 0 17px 17px;width:118px;height:75px;top:99px;box-shadow:inset 0 -12px #b7413d29}.wish-finale--made .candle-flame{opacity:0;transition:all .5s;transform:translate(-50%)translateY(-20px)scale(.2)}.wish-finale--made .candle-wick:before{content:"";border:2px solid #fff5e17a;opacity:0;border-bottom-color:#0000;border-right-color:#0000;border-radius:50%;width:8px;height:22px;animation:2.2s ease-out .2s smokeCurl;position:absolute;bottom:9px;left:50%}.wish-button{z-index:4;color:#fff;cursor:pointer;letter-spacing:.13em;text-transform:uppercase;background:0 0;border:1px solid #fffaf08c;border-radius:999px;margin-top:1.2rem;padding:1rem 1.5rem;font-size:.7rem;font-weight:900;transition:background .25s,color .25s,transform .25s;position:relative}.wish-button:hover:not(:disabled){color:var(--coral-dark);background:#fffaf0;transform:translateY(-3px)}.wish-status{z-index:3;min-height:1.4rem;font:italic 1rem var(--serif);margin:0;position:relative}.wish-finale footer{z-index:3;color:#fffaf094;letter-spacing:.15em;text-transform:uppercase;font-size:.58rem;font-weight:800;position:absolute;bottom:2rem}.celebration-burst{pointer-events:none;position:absolute;inset:0}.finale-confetti{z-index:50;pointer-events:none;position:fixed;inset:0;overflow:hidden}.finale-confetti i{left:var(--left);background:hsl(var(--hue) 78% 70%);width:7px;height:13px;box-shadow:0 0 8px hsl(var(--hue) 75% 66% / 42%);animation:confettiFall var(--fall-duration) var(--fall-delay) ease-in forwards;border-radius:2px;position:absolute;top:-5%}.finale-confetti i:nth-child(3n){border-radius:50%;width:9px;height:9px}.finale-confetti i:nth-child(4n){border-radius:999px;width:12px;height:4px}.finale-balloons{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.finale-balloons i{left:var(--balloon-x);aspect-ratio:.82;background:radial-gradient(circle at 32% 26%, #fff9 0 6%, transparent 7%), var(--balloon-color);opacity:0;width:clamp(42px,6vw,72px);animation:balloonRise var(--balloon-duration) var(--balloon-delay) cubic-bezier(.2, .6, .3, 1) forwards;border-radius:50% 50% 46% 46%;position:absolute;bottom:-24%;box-shadow:inset -9px -8px #4e262117}.finale-balloons i:before{content:"";background:var(--balloon-color);clip-path:polygon(50% 0,100% 100%,0 100%);width:12px;height:10px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)}.balloon-string{transform-origin:top;background:#fffaf08c;width:1px;height:95px;animation:.95s ease-in-out infinite alternate balloonStringSway;position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%)rotate(-2deg)}.memory-modal{z-index:120;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1b1816e8;place-items:center;padding:6vh 5vw;animation:.3s both modalFade;display:grid;position:fixed;inset:0}.modal-close{z-index:3;color:#fff;cursor:pointer;background:#0000002e;border:1px solid #ffffff52;border-radius:50%;width:3rem;height:3rem;font-size:1.8rem;position:absolute;top:1.5rem;right:1.5rem}.modal-photo{background:var(--paper-light);width:min(88vw,700px);max-height:84vh;padding:.75rem .75rem 1.5rem;overflow:auto;transform:rotate(-1deg);box-shadow:0 30px 100px #0000008c}.modal-photo img,.modal-placeholder{object-fit:contain;width:100%;min-height:min(65vh,620px)}.modal-placeholder{color:#fffaf1d1;text-align:center;background:#e4b2a7;align-content:center;place-items:center;gap:.6rem;display:grid}.modal-photo--blue .modal-placeholder{background:#9ebfc6}.modal-photo--gold .modal-placeholder{background:#dfb863}.modal-photo--green .modal-placeholder{background:#9daf97}.modal-photo--berry .modal-placeholder{background:#b98492}.modal-placeholder span{letter-spacing:.16em;text-transform:uppercase;font-size:.65rem;font-weight:900}.modal-placeholder strong{font:500 clamp(5rem, 20vw, 11rem)/.9 var(--serif)}.modal-placeholder small{max-width:280px;font:italic .9rem/1.5 var(--serif)}.modal-photo>p{text-align:center;font:600 .95rem var(--hand);margin:1rem 0 0}@keyframes noteNudge{50%{transform:translateY(5px)}}@keyframes drawConstellation{to{stroke-dashoffset:0}}@keyframes starPulse{to{opacity:.55;transform:translate(-50%,-50%)scale(.72)}}@keyframes reasonReveal{0%{opacity:0;transform:translate(-50%,24px)}}@keyframes reasonTimer{to{transform:scaleX(0)}}@keyframes ribbonTravel{0%{transform:translate(1vw)}to{transform:translate(calc(99vw - 100%))}}@keyframes flameDance{0%,to{transform:translate(-50%)rotate(-2deg)scale(.96,1.02)}28%{transform:translate(calc(2px - 50%))rotate(5deg)scale(1.05,.9)}58%{transform:translate(calc(-50% - 2px))rotate(-5deg)scale(.91,1.08)}78%{transform:translate(calc(1px - 50%))rotate(2deg)scale(1.02,.95)}}@keyframes smokeCurl{0%{opacity:0;transform:translate(-50%)scale(.6)rotate(0)}20%{opacity:.65}to{opacity:0;transform:translate(-20%,-34px)scale(1.3)rotate(24deg)}}@keyframes balloonRise{0%{opacity:0;transform:translate(-50%)rotate(-2deg)}10%{opacity:.9}48%{opacity:.9;transform:translate3d(calc(-50% + var(--balloon-drift)), -58vh, 0) rotate(1deg)}78%{opacity:.9;transform:translate3d(calc(-50% + var(--balloon-drift)), -72vh, 0) rotate(2deg)}to{opacity:0;transform:translate3d(calc(-50% + var(--balloon-drift)), -125vh, 0) rotate(3deg)}}@keyframes balloonStringSway{0%{transform:translate(-50%)rotate(-2.4deg)}to{transform:translate(-50%)rotate(2.4deg)}}@keyframes confettiFall{0%{opacity:0;transform:translateY(-4vh)rotate(0)}8%{opacity:1}to{opacity:.12;transform:translate3d(var(--drift), 110vh, 0) rotate(var(--spin))}}@keyframes modalFade{0%{opacity:0}}@media (width<=900px){.birthday-hero{min-height:1100px;padding-top:8rem}.hero-age{font-size:clamp(9rem,30vw,15rem)}.hero-photo{width:145px;height:205px}.hero-photo-1{top:12%}.hero-photo-2{top:10%}.hero-photo-3,.hero-photo-4{bottom:8%}.hero-photo-5{bottom:1%}.trait-ticker{text-align:center;grid-template-columns:1fr;gap:1rem}.memory-chapter,.memory-chapter:nth-child(2n){grid-template-columns:1fr;gap:1rem;min-height:auto;padding:8vh 0 12vh}.memory-chapter:nth-child(2n) .chapter-copy,.memory-chapter:nth-child(2n) .chapter-collage{order:initial}.chapter-copy{width:min(88vw,620px)}.chapter-collage{height:min(90vw,680px)}.zodiac-section{text-align:center;grid-template-columns:1fr;gap:5rem;padding-block:16vh}.zodiac-copy{max-width:620px;margin:0 auto}.zodiac-map{width:min(92vw,760px);margin:0 auto}}@media (width<=640px){.gift-reveal:before{width:44px;left:calc(50% - 22px)}.gift-reveal:after{height:44px;top:calc(50% - 22px)}.gift-card{width:90vw;padding:2.5rem 1.5rem}.gift-card:before{inset:8px}.birthday-hero{place-items:start center;min-height:1320px;padding:12vh 1rem 7vh}.birthday-hero:before{width:100vw;top:27%}.hero-copy{width:95vw}.hero-age{font-size:clamp(8rem,45vw,12rem)}.hero-copy h2{font-size:clamp(2.7rem,14vw,4.7rem)}.hero-line{max-width:310px}.hero-doodles span:first-child,.hero-doodles span:nth-child(2){top:6%}.hero-photos{top:auto;bottom:2rem;height:420px;inset-inline:0}.hero-photo{width:112px;height:162px}.hero-photo-1{top:20%;left:4%}.hero-photo-2{top:10%;right:4%}.hero-photo-3{width:105px;height:150px;bottom:2%;left:20%}.hero-photo-4{width:108px;height:155px;bottom:1%;right:18%}.hero-photo-5{width:92px;height:133px;top:2%;left:39%}.photo-caption{padding-top:.55rem;font-size:.56rem}.photo-placeholder{min-height:110px}.trait-ticker{transform:none}.trait-ticker>div{scrollbar-width:none;justify-content:flex-start;padding-bottom:.5rem;overflow-x:auto}.story-intro{padding:14vh 0 9vh}.story-intro h2,.ribbon-heading h2{font-size:clamp(2.5rem,12vw,4rem)}.memory-chapters{width:90vw}.chapter-copy>span{font-size:6rem}.chapter-copy h3{font-size:2.45rem}.chapter-collage{height:125vw;margin-inline:-2vw}.chapter-photo{width:48%;height:55%}.chapter-photo-1{left:25%}.chapter-photo-2{left:0}.chapter-photo-3{right:0}.chapter-photo-4{right:7%}.zodiac-section{min-height:110vh;margin-top:3vh;padding-inline:1rem}.zodiac-symbol{font-size:5rem}.zodiac-copy h2{font-size:2.8rem}.zodiac-map{aspect-ratio:1.05;width:98vw;margin-left:-1rem}.zodiac-star{width:46px;height:46px}.zodiac-star span{font-size:.48rem}.reason-card{padding:1.5rem 3.5rem 1.5rem 1.5rem;bottom:1.2rem}.ribbon-section{padding:14vh 0}.ribbon-heading{margin-bottom:5vh}.memory-ribbon{scroll-snap-type:x mandatory;scrollbar-width:none;padding-block:1rem;overflow-x:auto}.memory-ribbon-track{animation:none}.memory-ribbon .memory-photo{scroll-snap-align:center;width:170px;height:260px}.letter-section{min-height:115vh;padding-inline:1rem}.birthday-letter{width:94vw;padding:3.2rem 1.7rem 2.5rem}.letter-stamp{width:3.6rem;top:1.2rem;right:1.2rem}.birthday-letter h2{margin-top:3.5rem}.wish-finale{min-height:100svh}.wish-finale h2{font-size:clamp(2.7rem,13vw,4.5rem)}.modal-photo{width:92vw}.modal-placeholder{min-height:60vh}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.anniversary-experience{--love-red:#a30d2d;--love-red-dark:#60081c;--love-wine:#360611;--love-rose:#d54762;--love-blush:#f1b7bd;--love-paper:#fff6ed;--love-ink:#381a1e;background:var(--love-paper);min-height:100vh;color:var(--love-ink);position:relative;overflow:hidden}.anniversary-grain{z-index:110;pointer-events:none;opacity:.1;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");position:fixed;inset:0}.anniversary-opening{z-index:100;background:radial-gradient(circle at 12% 18%, #ef929e2e, transparent 25rem), radial-gradient(circle at 82% 78%, #a5183a4d, transparent 32rem), var(--love-wine);color:var(--love-paper);grid-template-columns:minmax(280px,440px) minmax(320px,620px);place-content:center;align-items:center;gap:clamp(2rem,7vw,8rem);padding:6vw;transition:opacity .8s,visibility .8s,transform .8s cubic-bezier(.2,.75,.25,1);display:grid;position:fixed;inset:0;overflow:hidden}.anniversary-opening:before,.anniversary-opening:after{content:"♥";color:#fff6ed0d;font:500 clamp(22rem, 50vw, 48rem)/1 var(--serif);position:absolute;transform:rotate(-14deg)}.anniversary-opening:before{top:-25%;left:-12%}.anniversary-opening:after{bottom:-40%;right:-15%;transform:rotate(16deg)}.anniversary-opening--open{opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.05)}.anniversary-envelope{z-index:2;aspect-ratio:1.42;background:#ead1bf;width:min(82vw,420px);position:relative;transform:rotate(-4deg);box-shadow:0 35px 90px #0000006b}.anniversary-envelope:before,.anniversary-envelope:after{content:"";clip-path:polygon(0 0,52% 58%,100% 0,100% 100%,0 100%);background:#f4dfcf;position:absolute;inset:0}.anniversary-envelope:after{clip-path:polygon(0 100%,0 0,52% 62%,100% 0,100% 100%);background:linear-gradient(145deg,#dcc0ae,#f0d7c6 65%)}.anniversary-envelope-flap{z-index:2;clip-path:polygon(0 0,100% 0,52% 62%);filter:drop-shadow(0 8px 9px #5c2a2521);background:#f9e9dc;position:absolute;inset:0}.anniversary-envelope-letter{z-index:4;aspect-ratio:1;background:var(--love-red);color:#ffe8dd;width:82px;font:italic 600 .85rem var(--serif);border-radius:50%;place-items:center;display:grid;position:absolute;top:53%;left:50%;transform:translate(-50%,-50%)rotate(5deg);box-shadow:0 7px 20px #5c081c59,inset 0 0 0 3px #fff6ed26}.anniversary-opening-copy{z-index:3;max-width:590px;position:relative}.anniversary-opening-copy>p,.anniversary-hero-copy>p,.anniversary-timeline header>p,.anniversary-gallery header>p,.anniversary-love-notes-copy>p,.anniversary-then-now-copy>p,.anniversary-finale>p{color:var(--love-rose);letter-spacing:.2em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:900}.anniversary-opening-copy h1{max-width:600px;font:500 clamp(3rem, 6vw, 6.5rem)/.94 var(--serif);letter-spacing:-.055em;margin:1rem 0 1.2rem}.anniversary-opening-copy>span{color:#fff6edb3;max-width:480px;font:italic 1.05rem/1.7 var(--serif);display:block}.anniversary-opening-copy button,.anniversary-finale>button{color:var(--love-paper);cursor:pointer;letter-spacing:.14em;text-transform:uppercase;background:0 0;border:1px solid #fff6ed73;border-radius:999px;margin-top:2rem;padding:1rem 1.45rem;font-size:.68rem;font-weight:900;transition:all .3s}.anniversary-opening-copy button:hover,.anniversary-finale>button:hover{background:var(--love-paper);color:var(--love-red);border-color:#0000;transform:translateY(-3px)}.anniversary-opening-copy button i{color:var(--love-rose);margin-left:.45rem;font-style:normal}.anniversary-hero{background:radial-gradient(circle at 50% 43%, #d5476238, transparent 36rem), linear-gradient(155deg, #4d0718, var(--love-wine) 52%, #650b23);min-height:max(100svh,900px);color:var(--love-paper);place-items:center;padding:12vh 5vw 18vh;display:grid;position:relative;overflow:hidden}.anniversary-hero:before{content:"";aspect-ratio:1;border:1px solid #fff6ed1a;border-radius:50%;width:min(75vw,820px);position:absolute;box-shadow:0 0 0 90px #fff6ed08,0 0 0 180px #fff6ed05}.anniversary-hero-copy{z-index:4;text-align:center;width:min(92vw,850px);position:relative}.anniversary-monogram{color:#fff6ed1a;font:500 clamp(8rem, 22vw, 17rem)/.8 var(--serif);letter-spacing:-.1em;margin:1.3rem 0 -1rem;display:block}.anniversary-hero-copy h2{font:500 clamp(3.6rem, 8vw, 8rem)/.9 var(--serif);letter-spacing:-.065em;margin:0}.anniversary-hero-copy h2 em{color:#f8a6b4;font-weight:500}.anniversary-hero-copy>strong{color:#f4c4c8;font:600 1.2rem var(--hand);margin:1.8rem 0 0;display:block}.anniversary-hero-copy blockquote{color:#fff6edab;max-width:460px;font:italic 1.05rem/1.7 var(--serif);margin:1.3rem auto}.anniversary-hero-copy>a{color:#f4c4c8;letter-spacing:.15em;text-transform:uppercase;font-size:.62rem;font-weight:900;text-decoration:none}.anniversary-hero-copy>a span{margin-left:.35rem;animation:1.6s ease-in-out infinite noteNudge;display:inline-block}.anniversary-hero-hearts i{z-index:1;color:#e5697e1f;font-style:normal;animation:5s ease-in-out infinite alternate anniversaryHeartFloat;position:absolute}.anniversary-hero-hearts i:first-child{font-size:9rem;top:14%;left:7%;transform:rotate(-14deg)}.anniversary-hero-hearts i:nth-child(2){font-size:6rem;animation-delay:-2s;top:18%;right:8%}.anniversary-hero-hearts i:nth-child(3){font-size:4rem;animation-delay:-3.5s;bottom:10%;left:14%}.anniversary-hero-photos{z-index:3;pointer-events:none;position:absolute;inset:0}.anniversary-hero-photo{pointer-events:auto;width:190px;height:260px;position:absolute}.anniversary-hero-photo-1{top:31%;left:4%;transform:rotate(-8deg)}.anniversary-hero-photo-2{top:27%;right:5%;transform:rotate(7deg)}.anniversary-hero-photo-3{width:155px;height:218px;bottom:5%;right:12%;transform:rotate(-4deg)}.anniversary-photo{min-width:0;color:var(--love-ink);cursor:pointer;background:#fff8ed;border:0;flex-direction:column;padding:.55rem .55rem 1rem;transition:transform .3s,box-shadow .3s;display:flex;position:relative;box-shadow:0 18px 45px #3606113d}.anniversary-photo:hover{translate:0 -5px;box-shadow:0 24px 58px #36061157}.anniversary-hero-photos .anniversary-hero-photo{position:absolute}.anniversary-photo img,.anniversary-photo-placeholder{object-fit:cover;flex:1;width:100%;min-height:0}.anniversary-photo-placeholder{color:#fff6edc7;background:#a82443;align-content:center;place-items:center;gap:.2rem;display:grid;position:relative;overflow:hidden}.anniversary-photo-placeholder:before{content:"";aspect-ratio:1;border:1px solid #fff6ed24;border-radius:50%;width:150%;position:absolute;box-shadow:0 0 0 34px #fff6ed0a}.anniversary-photo--rose .anniversary-photo-placeholder{background:#c95468}.anniversary-photo--blush .anniversary-photo-placeholder{background:#d99ca2}.anniversary-photo--cream .anniversary-photo-placeholder{background:#c89a7a}.anniversary-photo-placeholder small{z-index:1;letter-spacing:.16em;text-transform:uppercase;font-size:.52rem;font-weight:900;position:relative}.anniversary-photo-placeholder strong{z-index:1;font:500 clamp(3.4rem, 7vw, 6rem)/1 var(--serif);position:relative}.anniversary-photo-placeholder i{color:#fff6ed59;font-style:normal;position:absolute;bottom:.5rem;right:.75rem}.anniversary-photo-caption{font:600 .68rem/1.3 var(--hand);padding-top:.65rem}.anniversary-love-ribbon{z-index:5;background:var(--love-red);color:#ffe7df;white-space:nowrap;justify-content:center;gap:clamp(1rem,4vw,4rem);padding:1.2rem 3rem;display:flex;position:relative;overflow:hidden;transform:rotate(-1deg)scale(1.02)}.anniversary-love-ribbon span{letter-spacing:.18em;font-size:.65rem;font-weight:900}.anniversary-love-ribbon i{color:#f6a5b1;font-style:normal}.anniversary-timeline{width:min(90vw,1140px);margin:0 auto;padding:18vh 0;position:relative}.anniversary-timeline header{text-align:center;max-width:670px;margin:0 auto 12vh}.anniversary-timeline header h2,.anniversary-gallery header h2,.anniversary-love-notes-copy h2,.anniversary-then-now-copy h2{color:var(--love-red-dark);font:500 clamp(3.2rem, 7vw, 6.5rem)/.92 var(--serif);letter-spacing:-.055em;margin:.7rem 0 1rem}.anniversary-timeline header>span,.anniversary-love-notes-copy>span,.anniversary-then-now-copy>span{color:#765b58;font:italic 1rem/1.7 var(--serif)}.anniversary-timeline-line{background:linear-gradient(var(--love-blush), var(--love-red), transparent);width:1px;position:absolute;top:31%;bottom:12%;left:50%}.anniversary-milestone{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(3rem,9vw,9rem);min-height:620px;padding:6vh 0;display:grid;position:relative}.anniversary-milestone:nth-of-type(2n) .anniversary-milestone-copy{order:2}.anniversary-milestone:nth-of-type(2n) .anniversary-photo{order:1;transform:rotate(-3deg)}.anniversary-milestone>.anniversary-photo{justify-self:center;width:min(100%,390px);height:500px;transform:rotate(3deg)}.anniversary-milestone-copy{position:relative}.anniversary-milestone-copy>span{color:#a30d2d1a;font:500 8rem/.8 var(--serif);margin-bottom:-1.4rem;display:block}.anniversary-milestone-copy>p{color:var(--love-red);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.65rem;font-weight:900}.anniversary-milestone-copy h3{max-width:480px;color:var(--love-red-dark);font:500 clamp(2.5rem, 4vw, 4.2rem)/.98 var(--serif);letter-spacing:-.04em;margin:.8rem 0 1.2rem}.anniversary-milestone-copy>div{color:#765b58;max-width:430px;font:1rem/1.8 var(--serif)}.anniversary-gallery{background:#f2dfd6;padding:16vh 0 20vh;overflow:hidden}.anniversary-gallery header{width:min(88vw,1040px);margin:0 auto 8vh}.anniversary-gallery header h2 em{color:var(--love-red);font-weight:500}.anniversary-gallery-grid{width:min(92vw,1180px);height:980px;margin:0 auto;position:relative}.anniversary-gallery-photo{width:250px;height:340px;position:absolute}.anniversary-gallery-photo-1{top:3%;left:3%;transform:rotate(-6deg)}.anniversary-gallery-photo-2{top:12%;left:29%;transform:rotate(3deg)}.anniversary-gallery-photo-3{top:0;right:20%;transform:rotate(-2deg)}.anniversary-gallery-photo-4{width:215px;height:300px;top:25%;right:0;transform:rotate(7deg)}.anniversary-gallery-photo-5{width:220px;height:310px;bottom:3%;left:8%;transform:rotate(5deg)}.anniversary-gallery-photo-6{bottom:8%;left:34%;transform:rotate(-4deg)}.anniversary-gallery-photo-7{bottom:0;right:19%;transform:rotate(4deg)}.anniversary-gallery-photo-8{z-index:3;width:205px;height:285px;top:37%;left:48%;transform:rotate(-7deg)}.anniversary-love-notes{background:var(--love-red-dark);min-height:980px;color:var(--love-paper);grid-template-columns:minmax(280px,470px) minmax(420px,660px);justify-content:center;align-items:center;gap:clamp(3rem,8vw,9rem);padding:14vh 6vw;display:grid;position:relative;overflow:hidden}.anniversary-love-notes:before{content:"LOVE";color:#fff6ed08;font:900 clamp(12rem, 30vw, 30rem)/.8 var(--sans);letter-spacing:-.1em;position:absolute;bottom:-5vw;right:-4vw}.anniversary-love-notes-copy{z-index:2;position:relative}.anniversary-love-notes-copy h2{color:var(--love-paper)}.anniversary-love-notes-copy h2 em{color:#f4a8b4;font-weight:500}.anniversary-love-notes-copy>span{color:#fff6ed9e}.anniversary-heart-grid{z-index:2;grid-template-columns:repeat(4,1fr);gap:1.2rem;display:grid;position:relative}.anniversary-heart-grid button{aspect-ratio:1;color:#f8b0bc;cursor:pointer;background:#fff6ed0d;border:1px solid #fff6ed30;border-radius:50%;transition:all .3s;position:relative}.anniversary-heart-grid button:hover,.anniversary-heart-grid button.is-active{background:#f8b0bc1f;border-color:#f8b0bc;transform:translateY(-5px)scale(1.03)}.anniversary-heart-grid button i{filter:drop-shadow(0 6px 12px #1b000747);font-size:clamp(2.2rem,5vw,4rem);font-style:normal;display:block}.anniversary-heart-grid button span{color:#fff6ed73;letter-spacing:.1em;font-size:.55rem;font-weight:900;position:absolute;bottom:12%;right:17%}.anniversary-note-card{z-index:125;background:var(--love-paper);width:min(88vw,620px);color:var(--love-ink);padding:2rem 4rem 2rem 2.2rem;animation:.35s both anniversaryNoteReveal;position:fixed;bottom:max(2rem,5vh);left:50%;transform:translate(-50%)rotate(-1deg);box-shadow:0 24px 80px #0f00046b}.anniversary-note-card>span{color:var(--love-red);letter-spacing:.13em;font-size:.58rem;font-weight:900}.anniversary-note-card p{font:italic 1.35rem/1.5 var(--serif);margin:.7rem 0 0}.anniversary-note-card button{aspect-ratio:1;width:2.5rem;color:var(--love-red);cursor:pointer;background:0 0;border:1px solid #d9b6ae;border-radius:50%;font-size:1.5rem;position:absolute;top:1rem;right:1rem}.anniversary-then-now{background:var(--love-paper);grid-template-columns:minmax(300px,430px) minmax(520px,760px);justify-content:center;align-items:center;gap:clamp(3rem,8vw,8rem);min-height:980px;padding:14vh 6vw;display:grid}.anniversary-then-now-copy h2{max-width:460px}.anniversary-then-now-photos{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;display:grid}.anniversary-then-now-photos>div{position:relative}.anniversary-then-now-photos>div>b{z-index:3;background:var(--love-red);color:#fff;letter-spacing:.14em;padding:.5rem .8rem;font-size:.58rem;position:absolute;top:-1.5rem;left:50%;transform:translate(-50%)rotate(-2deg)}.anniversary-then-now-photos .anniversary-photo{height:440px}.anniversary-then-now-photos>div:first-child .anniversary-photo{transform:rotate(-4deg)}.anniversary-then-now-photos>div:last-child .anniversary-photo{transform:rotate(4deg)}.anniversary-then-now-photos>span{color:var(--love-red);font-size:2.2rem}.anniversary-letter-section{background:#e9c9c2;place-items:center;min-height:1100px;padding:14vh 1rem;display:grid;position:relative;overflow:hidden}.anniversary-letter-section:before{content:"";opacity:.25;background:repeating-linear-gradient(45deg,#0000 0 24px,#a30d2d1a 24px 25px);position:absolute;inset:0}.anniversary-letter-back{background:#a30d2d;width:min(88vw,730px);height:760px;position:absolute;transform:rotate(4deg);box-shadow:0 35px 90px #4b061647}.anniversary-letter{z-index:2;background:#fffaf2;width:min(88vw,700px);padding:clamp(3rem,7vw,6rem);position:relative;transform:rotate(-1.5deg);box-shadow:0 26px 80px #4b061640}.anniversary-letter>span{aspect-ratio:1;width:4.5rem;color:var(--love-red);border:1px solid #d9a29f;border-radius:50%;place-items:center;font-size:2.2rem;display:grid;position:absolute;top:2rem;right:2rem}.anniversary-letter>p{color:var(--love-red);letter-spacing:.16em;text-transform:uppercase;font-size:.62rem;font-weight:900}.anniversary-letter h2{color:var(--love-red-dark);font:italic 500 clamp(3rem, 7vw, 5.3rem)/1 var(--serif);margin:2.2rem 0 1.8rem}.anniversary-letter>div{color:#5f4441;font:1.05rem/1.9 var(--serif);margin:1.2rem 0}.anniversary-letter strong{color:var(--love-red);font:600 1.7rem var(--hand);margin-top:2.4rem;display:block}.anniversary-finale{background:radial-gradient(circle at 50% 42%, #9d1838, transparent 34rem), var(--love-wine);min-height:1050px;color:var(--love-paper);text-align:center;align-content:center;place-items:center;gap:.8rem;padding:14vh 5vw 5rem;display:grid;position:relative;overflow:hidden}.anniversary-finale:before{content:"";aspect-ratio:1;border:1px solid #fff6ed1a;border-radius:50%;width:min(76vw,800px);position:absolute;box-shadow:0 0 0 90px #fff6ed08,0 0 0 180px #fff6ed05}.anniversary-final-heart{z-index:3;aspect-ratio:1;border:1px solid #fff6ed33;border-radius:50%;place-items:center;width:130px;margin-bottom:1rem;display:grid;position:relative;box-shadow:0 0 60px #e05a7238}.anniversary-final-heart span{color:#f48699;font-size:5rem;animation:1.35s ease-in-out infinite anniversaryHeartbeat}.anniversary-finale>p{z-index:4;color:#f4a8b4;position:relative}.anniversary-finale h2{z-index:4;font:500 clamp(3.4rem, 8vw, 7.5rem)/.9 var(--serif);letter-spacing:-.06em;margin:.5rem 0 1rem;position:relative}.anniversary-finale h2 em{color:#f4a8b4;font-weight:500}.anniversary-finale>button{z-index:6;margin-top:1rem;position:relative}.anniversary-celebration-status{z-index:4;color:#fff6edad;min-height:1.4rem;font:italic 1rem var(--serif);position:relative}.anniversary-finale footer{z-index:4;color:#fff6ed59;letter-spacing:.14em;text-transform:uppercase;font-size:.58rem;font-weight:900;position:absolute;bottom:2rem}.anniversary-celebration{pointer-events:none;position:absolute;inset:0}.anniversary-petal{z-index:5;left:var(--petal-left);background:var(--petal-color);opacity:0;width:11px;height:20px;animation:anniversaryPetalFall var(--petal-duration) var(--petal-delay) ease-in forwards;border-radius:85% 15% 75% 25%;position:absolute;top:-7%}.anniversary-petal:nth-child(3n){border-radius:20% 80% 25% 75%;width:8px;height:16px}.anniversary-burst-heart{z-index:5;color:#f69aaa;opacity:0;animation:anniversaryHeartBurst 2.4s var(--heart-delay) cubic-bezier(.12, .72, .18, 1) forwards;font-size:clamp(1rem,2vw,1.8rem);position:absolute;top:44%;left:50%}.anniversary-modal{z-index:130;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#23020aeb;place-items:center;padding:5vh 5vw;animation:.3s both modalFade;display:grid;position:fixed;inset:0}.anniversary-modal>button{z-index:3;aspect-ratio:1;color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff47;border-radius:50%;width:3rem;font-size:1.8rem;position:absolute;top:1.5rem;right:1.5rem}.anniversary-modal-photo{background:#fff8ed;width:min(88vw,700px);max-height:86vh;padding:.7rem .7rem 1.4rem;overflow:auto;transform:rotate(-1deg);box-shadow:0 30px 100px #0009}.anniversary-modal-photo img,.anniversary-modal-photo>div{object-fit:contain;width:100%;min-height:min(65vh,620px)}.anniversary-modal-photo>div{color:#fff6edc7;background:#a82443;align-content:center;place-items:center;gap:.6rem;display:grid}.anniversary-modal-photo--rose>div{background:#c95468}.anniversary-modal-photo--blush>div{background:#d99ca2}.anniversary-modal-photo--cream>div{background:#c89a7a}.anniversary-modal-photo>div>span{letter-spacing:.16em;text-transform:uppercase;font-size:.6rem;font-weight:900}.anniversary-modal-photo>div>strong{font:500 clamp(5rem, 18vw, 10rem)/.9 var(--serif)}.anniversary-modal-photo>div>small{text-align:center;max-width:300px;font:italic .9rem/1.5 var(--serif)}.anniversary-modal-photo>p{text-align:center;font:600 .95rem var(--hand);margin:1rem 0 0}@keyframes anniversaryHeartFloat{to{opacity:.55;translate:12px -22px}}@keyframes anniversaryNoteReveal{0%{opacity:0;transform:translate(-50%,24px)rotate(-1deg)}}@keyframes anniversaryHeartbeat{0%,to{transform:scale(1)}12%{transform:scale(1.12)}25%{transform:scale(1)}38%{transform:scale(1.08)}}@keyframes anniversaryPetalFall{0%{opacity:0;transform:translateY(-4vh)rotate(0)}8%{opacity:.95}to{opacity:0;transform:translate3d(var(--petal-drift), 112vh, 0) rotate(620deg)}}@keyframes anniversaryHeartBurst{0%{opacity:0;transform:translate(-50%, -50%) rotate(var(--heart-angle)) translateY(0) scale(.4)}14%{opacity:1}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--heart-angle)) translateY(calc(-1 * var(--heart-distance))) rotate(180deg) scale(1.15)}}@media (width<=900px){.anniversary-opening{text-align:center;grid-template-columns:1fr;gap:2.5rem}.anniversary-envelope{width:min(62vw,340px);margin:0 auto}.anniversary-opening-copy>span{margin-inline:auto}.anniversary-hero{min-height:1180px}.anniversary-hero-photo{width:145px;height:210px}.anniversary-hero-photo-1{top:17%;left:6%}.anniversary-hero-photo-2{top:17%;right:6%}.anniversary-hero-photo-3{bottom:5%;right:9%}.anniversary-timeline-line{left:2%}.anniversary-milestone,.anniversary-milestone:nth-of-type(2n){grid-template-columns:1fr;gap:2rem;min-height:auto;padding:9vh 4vw}.anniversary-milestone:nth-of-type(2n) .anniversary-milestone-copy,.anniversary-milestone:nth-of-type(2n) .anniversary-photo{order:initial}.anniversary-milestone-copy{width:min(86vw,560px);margin:0 auto}.anniversary-milestone>.anniversary-photo{width:min(75vw,380px);height:500px}.anniversary-gallery-grid{height:1320px}.anniversary-gallery-photo{width:31vw;min-width:190px}.anniversary-gallery-photo-2{left:36%}.anniversary-gallery-photo-3{right:2%}.anniversary-gallery-photo-5{bottom:12%;left:4%}.anniversary-gallery-photo-6{bottom:2%;left:34%}.anniversary-gallery-photo-7{bottom:15%;right:2%}.anniversary-love-notes{text-align:center;grid-template-columns:1fr;min-height:1100px}.anniversary-love-notes-copy{max-width:620px;margin:0 auto}.anniversary-heart-grid{width:min(88vw,620px);margin:0 auto}.anniversary-then-now{text-align:center;grid-template-columns:1fr}.anniversary-then-now-copy{max-width:620px;margin:0 auto}}@media (width<=640px){.anniversary-opening{place-content:center;padding:7vh 1.2rem}.anniversary-envelope{width:min(78vw,310px)}.anniversary-opening-copy h1{font-size:clamp(2.7rem,13vw,4.4rem)}.anniversary-hero{min-height:1320px;padding-inline:1rem}.anniversary-monogram{font-size:30vw}.anniversary-hero-copy h2{font-size:clamp(3rem,14vw,5rem)}.anniversary-hero-photo{width:112px;height:168px}.anniversary-hero-photo-1{top:14%;left:4%}.anniversary-hero-photo-2{top:14%;right:4%}.anniversary-hero-photo-3{width:105px;height:155px;bottom:3%;right:11%}.anniversary-love-ribbon{justify-content:flex-start;overflow-x:hidden}.anniversary-timeline{width:92vw;padding-block:13vh}.anniversary-timeline header{margin-bottom:6vh}.anniversary-timeline-line{display:none}.anniversary-milestone{padding:7vh 0}.anniversary-milestone-copy>span{font-size:6rem}.anniversary-milestone-copy h3{font-size:2.6rem}.anniversary-milestone>.anniversary-photo{width:78vw;height:104vw}.anniversary-gallery{padding-block:12vh}.anniversary-gallery header{text-align:center}.anniversary-gallery-grid{grid-template-columns:1fr 1fr;gap:1rem;width:92vw;height:auto;display:grid}.anniversary-gallery-photo{width:100%;min-width:0;height:65vw;position:relative;inset:auto;transform:rotate(-2deg)}.anniversary-gallery-photo:nth-child(2n){transform:rotate(2deg)translateY(1.5rem)}.anniversary-love-notes{min-height:1050px;padding-inline:1rem}.anniversary-love-notes-copy h2{font-size:3.1rem}.anniversary-heart-grid{grid-template-columns:repeat(4,1fr);gap:.55rem;width:96vw}.anniversary-heart-grid button i{font-size:2.1rem}.anniversary-note-card{padding:1.6rem 3.5rem 1.6rem 1.4rem;bottom:4vh}.anniversary-then-now{min-height:900px;padding-inline:1rem}.anniversary-then-now-photos{grid-template-columns:1fr 1fr;gap:.8rem}.anniversary-then-now-photos>span{display:none}.anniversary-then-now-photos .anniversary-photo{height:64vw}.anniversary-letter-section{min-height:1050px}.anniversary-letter-back{width:90vw;height:790px}.anniversary-letter{width:92vw;padding:3.2rem 1.7rem 2.5rem}.anniversary-letter>span{width:3.6rem;top:1rem;right:1rem}.anniversary-finale{min-height:100svh}.anniversary-finale h2{font-size:clamp(3rem,14vw,5rem)}.anniversary-modal-photo{width:92vw}.anniversary-modal-photo>div{min-height:62vh}}
