:root{font-family:DM Sans,sans-serif;color:#65384d;background:#fff8fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--pink:#e777aa;--rose:#bb4e80;--berry:#7c3457;--ink:#65384d;--muted:#a67d91;--paper:#fffafd;--line:#f1d9e5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;overflow-x:hidden;background:radial-gradient(ellipse at 10% 12%,#fff0f6 0,transparent 32%),radial-gradient(ellipse at 90% 40%,#fff0f7 0,transparent 30%),#fffafd}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #e777aa;outline-offset:4px}::selection{background:#f8cfe0;color:#6b2d4d}.floating-layer{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0;color:#f0b8d0;opacity:.48}.float-heart{position:absolute;bottom:-35px;animation:floatUp linear infinite}.ambient{position:fixed;width:340px;height:340px;border-radius:50%;filter:blur(80px);opacity:.19;pointer-events:none;z-index:0}.ambient-one{background:#f5b8d1;top:15%;left:-210px}.ambient-two{background:#d9b7f2;right:-210px;top:58%}.site-nav{height:76px;padding:0 clamp(22px,6vw,90px);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:4;border-bottom:1px solid #f7e8ef;background:#fffafdcc;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.brand{display:flex;align-items:center;gap:9px;color:var(--berry);text-decoration:none;font-family:Playfair Display,serif;font-size:20px}.brand-icon{display:grid;place-items:center;width:28px;height:28px;background:#fae1ec;border-radius:50%;color:#c65d8c}.brand-sparkle{font-size:11px;color:#e7a0bf}.nav-right{display:flex;align-items:center;gap:24px}.tiny-note{font-family:Caveat,cursive;color:#b2879d;font-size:19px}.sound-toggle{display:flex;gap:7px;align-items:center;border:1px solid #efd8e4;border-radius:100px;padding:8px 12px;background:#fff8fb;color:#a25c7e;font-size:11px}.section-shell{width:min(1160px,calc(100% - 44px));margin-inline:auto;position:relative;z-index:1}.section-space{padding-top:118px;padding-bottom:80px}.gate{min-height:calc(100vh - 76px);display:flex;align-items:center;justify-content:center;flex-direction:column;padding-top:48px;padding-bottom:55px}.gate-card{position:relative;isolation:isolate;overflow:hidden;width:min(520px,100%);padding:55px clamp(24px,6vw,66px) 30px;border:1px solid #f1d6e3;border-radius:29px;background:linear-gradient(145deg,#fffdfd,#fff1f7 75%,#fff8fb);box-shadow:0 24px 85px #d997b21c;text-align:center}.gate-card:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border:1px solid #f7e4ed;border-radius:22px;pointer-events:none;z-index:-1}.orbit{position:absolute;border:1px solid #f3d3e2;border-radius:50%;pointer-events:none}.orbit-a{width:340px;height:340px;top:-220px;right:-120px}.orbit-b{width:230px;height:230px;bottom:-170px;left:-110px}.lock-medallion{position:relative;margin:0 auto 25px;width:83px;height:83px;border:1px solid #efccdc;background:linear-gradient(145deg,#fff,#ffe4ef);border-radius:50%;display:grid;place-items:center;color:#b94d7e;box-shadow:0 10px 28px #e4a0bd30}.lock-halo{position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px;border:1px dashed #eab7ce;border-radius:50%}.lock-heart{position:absolute;right:13px;bottom:13px;color:#e67da9}.eyebrow{display:flex;align-items:center;justify-content:center;gap:8px;color:#bc7294;font-size:10px;letter-spacing:2.3px;font-weight:700}.gate h1,.hero h1,.section-heading h2,.birthday-card h2,.finale-content h2{font-family:Playfair Display,serif;font-weight:500;letter-spacing:-1.8px;line-height:1.12;color:#713a55}.gate h1{font-size:clamp(42px,7vw,58px);margin:21px 0 15px}.gate h1 em,.hero h1 em,.section-heading h2 em,.birthday-card h2 em,.finale-content h2 em{font-weight:500;color:#d56f9c}.gate-copy{font-size:13px;line-height:1.9;color:#a07b8e;margin:0 0 28px}.password-form{text-align:left}.password-form label{display:block;font-size:12px;line-height:1.6;color:#80516a;margin-bottom:10px}.input-wrap{height:53px;border:1px solid #edccdc;border-radius:13px;background:#fffdfd;display:flex;align-items:center;gap:10px;padding:0 7px 0 14px;color:#cf7da0;transition:.25s}.input-wrap:focus-within{border-color:#d67aa0;box-shadow:0 0 0 4px #f9e1ec}.input-wrap input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#713a55;font-size:12px}.input-wrap input::placeholder{color:#c9a7b8}.input-wrap button{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:10px;background:#d66e9b;color:#fff;transition:.2s}.input-wrap button:hover{background:#b94e7e;transform:translate(2px)}.input-error{border-color:#d45d8a;animation:shake .35s}.error-text{font-size:11px;color:#c44d7a;margin:9px 0 0}.gate-bottom{display:flex;justify-content:center;align-items:center;gap:9px;margin-top:29px;font-size:10px;letter-spacing:.8px;color:#c090a8}.gate-footnote{display:flex;gap:13px;align-items:center;margin-top:23px;color:#b88ca2;font-family:Caveat,cursive;font-size:19px}.hero{min-height:calc(100vh - 76px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px;padding-top:55px;padding-bottom:85px}.hero-copy{padding-left:clamp(0px,3vw,38px)}.hero-copy .eyebrow{justify-content:flex-start}.hero h1{font-size:clamp(47px,6.5vw,78px);margin:22px 0 20px}.hero-copy>p{max-width:410px;color:#98758a;font-size:14px;line-height:1.95}.hero-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:28px}.button-primary,.button-light{border:0;display:inline-flex;align-items:center;justify-content:center;gap:11px;background:linear-gradient(110deg,#e68ab0,#c95e91);color:#fff;border-radius:100px;padding:14px 21px;font-size:12px;box-shadow:0 9px 24px #d26b992d;transition:transform .2s,box-shadow .2s}.button-primary:hover{transform:translateY(-2px);box-shadow:0 13px 28px #d26b9945}.text-button{border:0;background:transparent;color:#a65b7e;display:inline-flex;align-items:center;gap:9px;font-size:12px;padding:10px 0}.text-button:hover{color:#74304f}.hero-signature{margin-top:37px;font-family:Caveat,cursive;font-size:23px;color:#b27b96}.hero-signature span{color:#d879a3}.hero-art{height:490px;position:relative;display:grid;place-items:center}.hero-sun{width:360px;height:360px;position:absolute;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff5fa,#fbe0ec 65%,#f4c5db);box-shadow:inset 0 0 55px #fff9fc}.hero-ring{position:absolute;border:1px solid #eec5d8;border-radius:50%;transform:rotate(-22deg)}.ring-one{width:430px;height:285px}.ring-two{width:390px;height:460px;transform:rotate(48deg)}.hero-photo-card{position:relative;width:280px;padding:12px 12px 0;background:#fffdfd;box-shadow:0 18px 48px #a95b7e20;transform:rotate(-4deg);z-index:1}.hero-photo-placeholder{height:300px;background:linear-gradient(145deg,#fbe1ed,#f8d6e6 45%,#e9d9f0);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;color:#b95e88;text-align:center}.hero-photo-placeholder span{font-size:9px;letter-spacing:1.5px;font-weight:700}.hero-photo-placeholder small{font-size:9px;color:#a67d91}.hero-photo-caption{height:49px;display:flex;align-items:center;justify-content:space-between;font-family:Caveat,cursive;font-size:17px;color:#8e5b75;padding:0 6px}.hero-photo-caption span{color:#d67ba3}.floating-note{position:absolute;z-index:2;display:grid;place-items:center;background:#fffafd;border:1px solid #f3d7e4;box-shadow:0 8px 25px #ad64841a;color:#b8678c;font-family:Caveat,cursive;font-size:22px;padding:14px 20px}.note-top{top:72px;left:3%;transform:rotate(-8deg)}.note-bottom{right:1%;bottom:68px;transform:rotate(7deg)}.art-star{position:absolute;color:#d681a6}.star-one{top:78px;right:17%;font-size:26px}.star-two{bottom:75px;left:15%;font-size:27px}.star-three{top:47%;right:4%;font-size:23px}.scroll-cue{position:absolute;bottom:23px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;color:#b38ca0;font-size:10px;letter-spacing:.7px;cursor:pointer}.scroll-cue span{height:22px;width:1px;background:#dfabc3}.section-heading{text-align:center;margin-bottom:56px}.section-heading .eyebrow{margin-bottom:18px}.section-heading h2,.birthday-card h2,.finale-content h2{font-size:clamp(37px,5vw,56px);margin:0 0 15px}.section-heading>p{font-size:13px;color:#a08091;line-height:1.8}.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;align-items:start}.memory-grid>div:nth-child(2){margin-top:45px}.memory-grid>div:nth-child(3){margin-top:15px}.polaroid{background:#fff;box-shadow:0 13px 40px #a65b7b12;padding:12px 12px 0;transform:rotate(var(--tilt));border:1px solid #f3e5ec;transition:box-shadow .3s}.polaroid:hover{box-shadow:0 22px 48px #a65b7b20}.photo-area{height:290px;position:relative;overflow:hidden;display:grid;place-items:center;background:#fae5ee}.photo-area img{width:100%;height:100%;object-fit:cover;display:block}.polaroid.peach .photo-area{background:linear-gradient(140deg,#f9e1d7,#f4c9d6)}.polaroid.lilac .photo-area{background:linear-gradient(140deg,#f1e0f2,#e7cde7)}.polaroid.mint .photo-area{background:linear-gradient(140deg,#e3f0e9,#d7e8df)}.photo-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;text-align:center;color:#b7688d;padding:16px}.photo-placeholder span{font-size:10px;letter-spacing:1.4px;font-weight:700}.photo-placeholder small{font-size:9px;line-height:1.5;color:#9b7186;overflow-wrap:anywhere}.photo-sticker{position:absolute;top:12px;right:12px;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#fffaf0d9;color:#d16e9a;font-size:20px}.polaroid-caption{padding:17px 8px 21px;min-height:143px}.polaroid-caption>span{display:block;font-size:8px;letter-spacing:1.7px;color:#bd83a0;margin-bottom:8px}.polaroid-caption strong{font-family:Playfair Display,serif;font-size:20px;font-weight:500;color:#7e4a63}.polaroid-caption p{font-size:11px;line-height:1.8;color:#a17d90;margin:8px 0 0}.memory-footnote{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:53px;font-family:Caveat,cursive;color:#b4869c;font-size:19px}.memory-footnote span{color:#e3a1bc}.timeline-section{background:linear-gradient(180deg,transparent,#fff3f8 45%,transparent);width:100%;max-width:none;padding-left:max(22px,calc((100% - 1160px)/2));padding-right:max(22px,calc((100% - 1160px)/2))}.timeline{position:relative;max-width:780px;margin:0 auto}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(#f0cada,#d783a9,#f0cada)}.timeline-item{position:relative;width:50%;padding:0 38px 38px 0}.timeline-right{margin-left:50%;padding:0 0 38px 38px}.timeline-dot{position:absolute;right:-17px;top:25px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff5fa;border:1px solid #f0c8da;color:#d77ca2;z-index:1}.timeline-right .timeline-dot{right:auto;left:-17px}.timeline-card{position:relative;padding:25px 25px 27px;background:#fffdfd;border:1px solid #f1dce7;box-shadow:0 10px 35px #ad64840b;border-radius:5px 22px 22px}.timeline-right .timeline-card{border-radius:22px 5px 22px 22px}.timeline-number,.note-index{font-size:8px;letter-spacing:1.6px;color:#c087a2;font-weight:700}.timeline-card h3,.note-card h3{font-family:Playfair Display,serif;font-size:22px;font-weight:500;color:#7b435d;margin:13px 0 8px}.timeline-card p{font-size:11px;line-height:1.9;color:#a17d90;margin:0}.timeline-doodle{position:absolute;right:17px;bottom:10px;color:#e8b1c9;font-family:Caveat,cursive;font-size:24px}.notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.note-card{position:relative;min-height:220px;text-align:left;padding:26px 24px;background:linear-gradient(145deg,#fffdfd,#fff3f8);border:1px solid #f1dce7;border-radius:4px 20px 20px;box-shadow:0 10px 30px #b35c8010;color:inherit;overflow:hidden;transition:background .3s}.note-card:before{content:"";position:absolute;width:65px;height:65px;border:1px solid #f3d7e4;border-radius:50%;right:-28px;top:-28px}.note-card:hover,.note-open{background:#fff0f6}.note-heart{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fbe3ed;color:#d77ba2;margin:17px 0 8px}.note-card h3{font-size:20px;margin:8px 0 10px}.note-card p{font-size:11px;line-height:1.9;color:#9d748a;margin:10px 0 0}.open-note{display:flex;align-items:center;gap:7px;color:#b77796;font-size:10px;margin-top:20px}.birthday-section{padding-top:80px}.birthday-card{position:relative;overflow:hidden;text-align:center;padding:60px 22px 65px;background:linear-gradient(135deg,#fff0f6,#ffe5f0 50%,#f9e8f7);border:1px solid #f1d2e2;border-radius:30px}.birthday-card:before,.birthday-card:after{content:"";position:absolute;width:250px;height:250px;border-radius:50%;border:1px solid #f0c9dc;opacity:.8}.birthday-card:before{left:-130px;top:-150px}.birthday-card:after{right:-130px;bottom:-160px}.birthday-card .eyebrow{margin-bottom:18px}.birthday-card h2{font-size:clamp(34px,4.6vw,51px)}.birthday-card h2 em{font-size:.75em}.birthday-card>p,.wish-reveal p{font-size:12px;line-height:1.8;color:#9e778c}.cake{position:relative;width:150px;height:145px;margin:27px auto 19px}.cake-body{position:absolute;bottom:20px;left:15px;width:120px;height:73px;border-radius:9px 9px 13px 13px;background:linear-gradient(90deg,#e9a5c2,#f4c4d8 50%,#e7a0bf);box-shadow:inset 0 -9px #d783a8}.cake-top{position:absolute;bottom:82px;left:15px;width:120px;height:27px;border-radius:50%;background:#fff0f6;border:2px solid #efb6ce;z-index:1}.icing-drip{position:absolute;top:7px;width:14px;height:23px;background:#fff0f6;border-radius:0 0 9px 9px}.drip-a{left:25px;height:27px}.drip-b{left:57px;height:19px}.drip-c{right:23px;height:25px}.cake-heart{position:absolute;top:28px;left:47px;color:#fff1f6;opacity:.9}.cake-plate{position:absolute;bottom:12px;left:0;width:150px;height:15px;border-radius:50%;background:#f7d7e5;border:1px solid #edbdd3}.candle{position:absolute;bottom:105px;width:7px;height:29px;border-radius:3px;background:repeating-linear-gradient(45deg,#fff6fa 0,#fff6fa 4px,#d97ba2 4px,#d97ba2 7px);z-index:2}.candle-one{left:44px}.candle-two{left:72px;bottom:112px}.candle-three{right:42px}.candle i{position:absolute;top:-11px;left:1px;width:5px;height:10px;border-radius:70% 30% 60% 40%;background:#f7b95c;box-shadow:0 0 12px #ffca77;transform:rotate(10deg);animation:flicker .8s infinite alternate}.cake-celebrate .candle i{animation:blow .45s forwards}.cake-celebrate{animation:celebrate .65s ease}.wish-reveal h3{font-family:Playfair Display,serif;font-weight:500;font-size:24px;color:#8c4967;margin:22px 0 0}.confetti{font-size:20px;letter-spacing:4px;color:#d977a0;animation:pop .7s ease}.wish-reveal .text-button{margin-top:14px}.birthday-spark{position:absolute;color:#d986aa;font-size:25px}.birthday-spark-a{top:30px;left:13%}.birthday-spark-b{bottom:37px;right:13%}.finale-section{width:100%;max-width:none;min-height:680px;background:radial-gradient(ellipse at center top,#743c5b 0,#472238 45%,#2b1728);color:#ffeaf3;display:flex;align-items:center;justify-content:center;padding:100px 22px 60px;overflow:hidden}.finale-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(#fff4f8 1px,transparent 1px),radial-gradient(#e6a4c3 1px,transparent 1px);background-size:57px 57px,91px 91px;background-position:0 0,25px 38px;opacity:.2;-webkit-mask-image:linear-gradient(transparent,#000 15%,#000 80%,transparent);mask-image:linear-gradient(transparent,#000 15%,#000 80%,transparent)}.finale-content{position:relative;z-index:1;max-width:650px;text-align:center}.final-heart{position:relative;display:grid;place-items:center;width:95px;height:95px;margin:0 auto 29px;color:#f6b1d0;animation:heartbeat 2.5s infinite}.heart-glow{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;box-shadow:0 0 45px #f49dc744,0 0 90px #f49dc722}.finale-content .eyebrow{color:#dba2bc}.finale-content h2{color:#fff1f7;font-size:clamp(37px,5vw,58px);margin:20px 0 30px}.finale-content h2 em{color:#f2a5c7}.button-light{background:#fff0f6;color:#984d70;box-shadow:0 8px 30px #1309142e}.button-light:hover{transform:translateY(-2px)}.final-reveal{max-width:510px;margin:0 auto}.typewriter{font-family:Playfair Display,serif;font-size:clamp(48px,9vw,85px);font-weight:600;letter-spacing:3px;color:#ffd6e7;text-shadow:0 0 28px #f1a0c666;animation:glowText 2.5s ease-in-out infinite alternate}.final-reveal>p{font-family:Playfair Display,serif;font-size:17px;line-height:1.9;color:#f6d8e5;margin:24px 0}.final-signature{display:block;font-family:Caveat,cursive;font-size:24px;color:#f3b4d0;margin:22px 0 32px}.replay-button{display:inline-flex;align-items:center;gap:7px;border:1px solid #86516d;background:transparent;color:#d7a4bc;padding:10px 15px;border-radius:100px;font-size:10px}.replay-button:hover{background:#ffffff0c}.final-footer{position:absolute;bottom:27px;display:flex;align-items:center;gap:7px;font-size:10px;color:#c59ab0;letter-spacing:.5px}.final-footer svg{color:#e89abc}.finale-stars span{position:absolute;color:#f2c1d7;opacity:.65}.finale-stars span:nth-child(1){top:18%;left:15%;font-size:25px}.finale-stars span:nth-child(2){top:28%;right:17%;font-size:34px}.finale-stars span:nth-child(3){bottom:25%;left:11%;font-size:28px}.finale-stars span:nth-child(4){bottom:20%;right:13%;font-size:20px}.finale-stars span:nth-child(5){top:50%;left:7%;font-size:33px}.finale-stars span:nth-child(6){top:15%;right:35%;font-size:19px}.page-footer{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;gap:6px;padding:19px 10px;background:#fffafd;color:#bd94a8;font-size:10px;letter-spacing:.4px}.page-footer span{color:#df83a9}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#4a2037a8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}.letter-modal{position:relative;width:min(540px,100%);max-height:90vh;overflow:auto;background:linear-gradient(145deg,#fffdfd,#fff3f8);border:1px solid #f0d6e2;border-radius:7px 25px 25px;padding:45px clamp(24px,6vw,55px);box-shadow:0 30px 100px #2c12234a}.modal-close{position:absolute;right:17px;top:12px;border:0;background:transparent;font-size:29px;color:#b97b98}.letter-modal .eyebrow{justify-content:flex-start}.letter-flower{font-size:30px;color:#d881a5;margin:20px 0 0}.letter-modal h2{font-family:Playfair Display,serif;font-weight:500;font-size:29px;color:#7c405b;margin:5px 0 18px}.letter-modal p{font-size:12px;line-height:2;color:#98758a}.letter-sign{display:block;font-family:Caveat,cursive;font-size:23px;color:#b36b8c;margin:23px 0}.letter-modal .button-primary{font-size:11px}@keyframes floatUp{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:.6}90%{opacity:.4}to{transform:translateY(-110vh) rotate(35deg);opacity:0}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes flicker{0%{transform:rotate(-6deg) scale(.9);opacity:.85}to{transform:rotate(7deg) scale(1.08);opacity:1}}@keyframes blow{to{opacity:0;transform:translateY(-15px) scale(.5)}}@keyframes celebrate{0%,to{transform:scale(1)}35%{transform:scale(1.08) rotate(-2deg)}70%{transform:scale(1.03) rotate(2deg)}}@keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}@keyframes heartbeat{0%,to{transform:scale(1)}12%{transform:scale(1.08)}22%{transform:scale(1)}35%{transform:scale(1.12)}48%{transform:scale(1)}}@keyframes glowText{0%{text-shadow:0 0 16px #f1a0c633}to{text-shadow:0 0 35px #f1a0c688,0 0 70px #f1a0c633}}@media(max-width:800px){.section-space{padding-top:88px;padding-bottom:60px}.hero{grid-template-columns:1fr;gap:5px;padding-top:65px;min-height:auto}.hero-copy{text-align:center;padding:0}.hero-copy .eyebrow{justify-content:center}.hero-copy>p{margin-inline:auto}.hero-actions{justify-content:center}.hero-signature{margin-top:20px}.hero-art{height:430px;margin-top:10px}.hero-sun{width:300px;height:300px}.ring-one{width:350px;height:245px}.ring-two{width:320px;height:390px}.hero-photo-card{width:230px}.hero-photo-placeholder{height:240px}.note-top{left:8%;top:50px}.note-bottom{right:6%;bottom:45px}.scroll-cue{display:none}.memory-grid{gap:20px}.photo-area{height:220px}.polaroid-caption{padding:14px 5px 17px}.polaroid-caption strong{font-size:17px}.polaroid-caption p{font-size:10px}.notes-grid{gap:12px}.note-card{padding:20px 17px}.note-card h3{font-size:18px}.timeline-item{padding-right:25px}.timeline-right{padding-left:25px}.timeline-card{padding:21px 18px}.timeline-card h3{font-size:19px}}@media(max-width:560px){.site-nav{height:65px;padding-inline:18px}.brand{font-size:18px}.tiny-note{display:none}.sound-toggle{padding:8px 9px}.section-shell{width:calc(100% - 34px)}.gate{min-height:calc(100svh - 65px);padding-top:25px}.gate-card{padding:43px 23px 26px;border-radius:23px}.gate h1{font-size:45px}.gate-copy{font-size:12px}.gate-bottom{font-size:9px}.hero{padding-top:55px}.hero h1{font-size:clamp(43px,12vw,59px)}.hero-copy>p{font-size:13px}.hero-actions{gap:13px}.hero-art{height:370px}.hero-sun{width:250px;height:250px}.ring-one{width:300px;height:210px}.ring-two{width:280px;height:340px}.hero-photo-card{width:190px;padding:8px 8px 0}.hero-photo-placeholder{height:200px}.hero-photo-placeholder svg{width:32px}.hero-photo-caption{font-size:14px;height:39px}.floating-note{font-size:17px;padding:11px 14px}.note-top{left:0;top:46px}.note-bottom{right:0;bottom:35px}.star-one{right:8%;top:38px}.star-two{left:5%;bottom:38px}.section-space{padding-top:76px;padding-bottom:55px}.section-heading{margin-bottom:36px}.section-heading h2{font-size:40px}.section-heading>p{font-size:12px}.memory-grid{grid-template-columns:1fr;gap:24px;width:min(360px,100%);margin:auto}.memory-grid>div:nth-child(2),.memory-grid>div:nth-child(3){margin-top:0}.polaroid{padding:10px 10px 0}.photo-area{height:300px}.polaroid-caption{min-height:0;padding:15px 8px 20px}.polaroid-caption strong{font-size:21px}.polaroid-caption p{font-size:11px}.memory-footnote{font-size:16px;text-align:center;gap:8px}.timeline-section{padding-left:24px;padding-right:24px}.timeline:before{left:14px}.timeline-item,.timeline-right{width:100%;margin-left:0;padding:0 0 23px 42px}.timeline-dot,.timeline-right .timeline-dot{left:-2px;right:auto;width:31px;height:31px}.timeline-card,.timeline-right .timeline-card{border-radius:5px 18px 18px}.timeline-card h3{font-size:21px}.timeline-card p{font-size:11px}.notes-grid{grid-template-columns:1fr;gap:13px}.note-card{min-height:0;padding:22px}.note-heart{margin:12px 0 5px}.note-card h3{font-size:21px}.birthday-section{padding-top:40px}.birthday-card{padding:47px 18px 48px;border-radius:22px}.birthday-card h2{font-size:36px;letter-spacing:-1px}.birthday-card h2 em{font-size:.75em;line-height:1.5}.birthday-card>p,.wish-reveal p{font-size:11px}.birthday-spark-a{left:7%;top:18px}.birthday-spark-b{right:7%;bottom:18px}.finale-section{min-height:650px;padding:90px 22px 70px}.finale-content h2{font-size:40px}.final-reveal>p{font-size:15px}.final-footer{font-size:9px}.letter-modal{padding:40px 25px}.letter-modal h2{font-size:25px}.letter-modal p{font-size:11px}.page-footer{font-size:9px;text-align:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}html.waiting-active,body.waiting-active{overflow:hidden!important;height:100%!important;max-height:100vh!important;max-height:100svh!important;touch-action:none}.gate{min-height:calc(100vh - 76px);min-height:calc(100svh - 76px);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:clamp(16px,2.8vh,32px) 16px;box-sizing:border-box}.gate-waiting{height:100vh!important;height:100dvh!important;height:100svh!important;max-height:100vh!important;max-height:100dvh!important;max-height:100svh!important;overflow:hidden!important;padding:clamp(6px,1.4vh,16px) 16px!important;box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;width:100%}.site-nav.site-nav-waiting{position:absolute;top:0;left:0;right:0;z-index:10;height:clamp(38px,5vh,50px);background:transparent!important;border-bottom:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:0 clamp(16px,4vw,40px);pointer-events:auto}.site-nav.site-nav-waiting .brand{font-size:clamp(15px,2vh,18px)}.timer-card{width:min(580px,94vw);max-height:calc(100svh - clamp(20px,4vh,44px));padding:clamp(18px,3vh,32px) clamp(18px,4.2vw,38px) clamp(14px,2.2vh,24px);text-align:center;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:clamp(20px,3vh,28px);box-shadow:0 20px 70px #b84c7e2e,0 0 0 1px #ffffffd9 inset;box-sizing:border-box}.timer-medallion{position:relative;margin:0 auto clamp(4px,1vh,10px);width:clamp(52px,7.2vh,66px);height:clamp(52px,7.2vh,66px);border:1.5px solid #ecc9db;background:linear-gradient(145deg,#fff,#ffe8f2);border-radius:50%;display:grid;place-items:center;color:#b7477c;box-shadow:0 8px 24px #e4a0bd47;flex-shrink:0}.timer-sparkle{position:absolute;top:7px;right:7px;color:#e57ea7;animation:pulseGlow 1.8s ease-in-out infinite alternate}.timer-card .eyebrow{font-size:clamp(8.5px,1.15vh,10.5px);letter-spacing:2px;margin-bottom:2px;color:#a44872;font-weight:700}.timer-card h1{font-family:Playfair Display,serif;font-weight:500;font-size:clamp(24px,4vh,36px);letter-spacing:-.8px;line-height:1.15;color:#5d223f;margin:clamp(3px,.6vh,7px) 0}.timer-card h1 em{color:#cf5287}.timer-card .gate-copy{font-size:clamp(12px,1.6vh,14px);line-height:1.5;color:#6d3954;margin:0 0 clamp(6px,1.1vh,12px);font-weight:450;max-width:480px}.countdown-wrap{margin:clamp(4px,1vh,12px) 0 clamp(6px,1.1vh,12px);position:relative;z-index:1;width:100%}.countdown-grid{display:flex;align-items:center;justify-content:center;gap:clamp(5px,1.2vw,10px)}.countdown-card{flex:1;min-width:0;background:linear-gradient(165deg,#fff,#fff3f9);border:1px solid #f2c7da;border-radius:clamp(10px,1.6vh,16px);padding:clamp(8px,1.5vh,14px) clamp(4px,1vw,10px) clamp(6px,1.2vh,12px);box-shadow:0 6px 20px #d997b229;position:relative;overflow:hidden;transition:transform .2s ease}.countdown-card:hover{transform:translateY(-2px)}.countdown-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;background:linear-gradient(180deg,#ffffffd9,#fff0 55%);pointer-events:none}.countdown-num-box{display:flex;align-items:center;justify-content:center;height:clamp(32px,4.6vh,46px)}.countdown-num{font-family:DM Sans,sans-serif;font-weight:750;font-size:clamp(26px,4vh,38px);line-height:1;color:#5d203e;font-variant-numeric:tabular-nums;letter-spacing:-.5px;text-shadow:0 1px 4px rgba(187,78,128,.1)}.countdown-tag{display:block;font-size:clamp(8px,1.1vh,10px);font-weight:700;letter-spacing:1.5px;color:#ad5c84;margin-top:2px;text-transform:uppercase}.countdown-colon{font-family:Playfair Display,serif;font-size:clamp(18px,2.8vh,26px);font-weight:600;color:#d881a7;line-height:1;margin-bottom:clamp(4px,.8vh,8px);-webkit-user-select:none;user-select:none}.timer-sweet-note{display:flex;align-items:center;justify-content:center;gap:6px;font-family:Caveat,cursive;font-size:clamp(13px,1.8vh,16px);color:#8c3f66;margin:clamp(5px,.9vh,10px) 0 clamp(4px,.7vh,8px);line-height:1.2}.timer-sweet-note svg{color:#df6f98;animation:heartbeat 2.2s infinite;flex-shrink:0;width:13px;height:13px}.countdown-action-row{margin-top:clamp(6px,1.1vh,12px);display:flex;justify-content:center}.fullscreen-btn-glow{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:linear-gradient(110deg,#e675a3,#c54f83);color:#fff;padding:clamp(7px,1.2vh,11px) clamp(16px,3.2vw,24px);font-size:clamp(11.5px,1.45vh,13px);font-weight:600;border:0;border-radius:999px;box-shadow:0 6px 20px #c54f834d;cursor:pointer;transition:all .25s ease;touch-action:manipulation}.fullscreen-btn-glow:hover{transform:translateY(-2px);box-shadow:0 9px 26px #c54f836b;background:linear-gradient(110deg,#eb83ad,#cb598c)}.nav-fullscreen-btn{display:inline-flex;align-items:center;gap:6px;background:#fff5fa;border:1px solid #ecc6d8;color:#9c456f;font-size:11px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;transition:all .2s;touch-action:manipulation}.nav-fullscreen-btn:hover{background:#ffe6f2;border-color:#d881a7;color:#6e254b;transform:translateY(-1px)}.button-large-pulse{animation:pulseGlow 2.4s ease-in-out infinite alternate}.gate-footnote{display:flex;gap:7px;align-items:center;margin-top:clamp(3px,.7vh,8px);color:#9d5d7e;font-family:Caveat,cursive;font-size:clamp(11.5px,1.4vh,14px)}.gate-footnote span{color:#df9fba}@keyframes pulseGlow{0%{opacity:.45;transform:scale(.96)}to{opacity:1;transform:scale(1.05)}}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@media(max-width:560px){.timer-card{width:min(580px,94vw);padding:clamp(14px,2.2vh,22px) 12px clamp(10px,1.8vh,16px);border-radius:18px}.timer-medallion{width:clamp(46px,6.4vh,56px);height:clamp(46px,6.4vh,56px)}.timer-card h1{font-size:clamp(22px,3.6vh,28px)}.countdown-grid{gap:4px}.countdown-card{padding:6px 2px 7px;border-radius:10px}.countdown-num-box{height:clamp(28px,4.2vh,36px)}.countdown-num{font-size:clamp(22px,3.4vh,28px)}.countdown-tag{font-size:7.5px;letter-spacing:1px;margin-top:1px}.countdown-colon{font-size:16px;margin-bottom:6px}.timer-sweet-note{font-size:12.5px;flex-wrap:wrap;text-align:center}.fullscreen-btn-glow{font-size:11.5px;padding:6px 16px}}.floating-photos-layer{contain:layout style paint}.floating-photo-card{will-change:transform;backface-visibility:hidden;transform:translateZ(0)}.cinematic-bg-container,.cinematic-layer{contain:strict;will-change:opacity;backface-visibility:hidden;transform:translateZ(0)}@media(max-width:768px){.floating-photos-layer{display:none!important}.nav-fullscreen-btn .nav-fs-label{display:none}.nav-fullscreen-btn{padding:6px}}.storytime-gate{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:clamp(14px,3vh,32px) 16px;position:relative;z-index:10;box-sizing:border-box}.storytime-card{width:min(580px,94vw);background:linear-gradient(155deg,#fff,#fff4fa 55%,#ffeef6);border:1.5px solid #f2c7da;border-radius:clamp(20px,3.5vh,28px);padding:clamp(22px,3.8vh,42px) clamp(18px,4.5vw,44px) clamp(18px,3.2vh,30px);box-shadow:0 24px 80px #a9487238,0 0 0 1px #fffc inset;text-align:center;position:relative;overflow:hidden;box-sizing:border-box}.storytime-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(10px,1.6vh,16px);gap:10px;flex-wrap:wrap}.storytime-chapter-badge{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(90deg,#d86797,#b84c7e);color:#fff;font-size:clamp(9px,1.2vh,10px);font-weight:700;letter-spacing:1.8px;text-transform:uppercase;padding:4px 12px;border-radius:999px;box-shadow:0 3px 10px #b84c7e40}.storytime-date-pill{display:inline-flex;align-items:center;gap:5px;font-family:DM Sans,sans-serif;font-size:clamp(10px,1.3vh,11px);font-weight:700;color:#983864;background:#ffe3ef;padding:4px 12px;border-radius:999px;border:1px solid #f2bed4}.storytime-card h2{font-family:Playfair Display,serif;font-size:clamp(23px,4vh,34px);font-weight:600;color:#551e39;line-height:1.22;margin:clamp(4px,.8vh,10px) 0 clamp(8px,1.4vh,14px);letter-spacing:-.5px}.storytime-card h2 em{color:#cf5287;font-style:italic}.storytime-text{font-family:DM Sans,sans-serif;font-size:clamp(13px,1.75vh,15px);line-height:1.8;color:#4b1f36;margin:0 auto clamp(12px,2.2vh,20px);max-width:490px;font-weight:450}.storytime-quote-box{background:#ffffffbf;border:1px dashed #e8b0ca;border-radius:14px;padding:clamp(9px,1.5vh,13px) clamp(14px,2.5vw,20px);margin:0 auto clamp(14px,2.4vh,22px);font-family:Playfair Display,serif;font-style:italic;font-size:clamp(12.5px,1.6vh,14.5px);color:#722046;line-height:1.5}.storytime-dots{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:clamp(12px,2vh,18px)}.storytime-dot{width:8px;height:8px;border-radius:50%;background:#ecccdb;border:none;cursor:pointer;transition:all .25s ease;padding:0}.storytime-dot.active{width:24px;border-radius:999px;background:linear-gradient(90deg,#d86797,#b84c7e)}.storytime-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.storytime-actions .button-primary{flex:1;padding:clamp(11px,1.7vh,15px) 22px;font-size:clamp(12px,1.5vh,13.5px);font-weight:600}.storytime-actions .button-ghost{padding:clamp(9px,1.4vh,13px) 16px;font-size:clamp(11px,1.3vh,12px);border-radius:999px;border:1px solid #ecc9db;background:#fff;color:#933e68;cursor:pointer;transition:all .2s ease}.storytime-actions .button-ghost:hover{background:#ffeff7;color:#651e40}.hero-art{min-height:520px;height:auto;position:relative;display:grid;place-items:center}.hero-photo-card{position:relative;width:min(290px,86vw);padding:12px 12px 14px;background:#fff;border-radius:14px;border:1px solid #f4e1eb;box-shadow:0 22px 65px #a95b7e3d;transform:rotate(-3deg);z-index:1;transition:transform .3s ease,box-shadow .3s ease}.hero-photo-card:hover{transform:rotate(0) translateY(-6px);box-shadow:0 28px 75px #a95b7e52}.hero-photo-img-wrap{position:relative;width:100%;background:linear-gradient(145deg,#fff2f8,#fbe1ed);border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-photo-img{width:100%;height:auto;max-height:430px;object-fit:contain;display:block;border-radius:6px;transition:transform .4s ease}.hero-photo-card:hover .hero-photo-img{transform:scale(1.02)}.filmstrip-wrap{width:100vw;margin-left:calc(-50vw + 50%);overflow:hidden;padding:18px 0;position:relative;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.filmstrip-track{display:flex;gap:14px;width:max-content;animation:filmstripScroll 70s linear infinite}.filmstrip-track:hover{animation-play-state:paused}.filmstrip-item{width:115px;height:148px;background:#fff;padding:6px 6px 12px;border-radius:6px;box-shadow:0 6px 18px #bb4e8024;border:1px solid #f3dbe7;cursor:pointer;flex-shrink:0;transition:transform .25s ease,box-shadow .25s ease;text-align:center}.filmstrip-item:hover{transform:translateY(-5px) scale(1.06);box-shadow:0 12px 26px #bb4e8047}.filmstrip-img{width:100%;height:102px;object-fit:cover;border-radius:4px;display:block}.filmstrip-label{font-family:Caveat,cursive;font-size:13px;color:#b36e8e;display:block;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes filmstripScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.gallery-tabs{display:flex;align-items:center;justify-content:center;gap:8px;margin:22px 0 28px;flex-wrap:wrap}.gallery-tab-btn{background:#fff;border:1px solid #f0cfde;border-radius:999px;padding:8px 16px;font-size:11px;font-weight:600;color:#8c5270;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.gallery-tab-btn:hover{background:#ffeff6;border-color:#d782a7;color:#6b284c;transform:translateY(-1px)}.gallery-tab-btn.active{background:linear-gradient(110deg,#e68ab0,#c95e91);color:#fff;border-color:transparent;box-shadow:0 6px 18px #d26b9947}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:42px;flex-wrap:wrap}.memory-counter-badge{text-align:center;margin-bottom:18px;font-family:Caveat,cursive;font-size:22px;color:#b77695;display:flex;align-items:center;justify-content:center;gap:8px}.photo-zoom-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);background:#ffffffe6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#9f4974;font-size:10px;font-weight:600;letter-spacing:.5px;padding:4px 10px;border-radius:999px;display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .25s ease,transform .25s ease;pointer-events:none;white-space:nowrap;box-shadow:0 2px 8px #00000014}.polaroid:hover .photo-zoom-hint{opacity:1;transform:translate(-50%) translateY(-2px)}.timeline-card-photo{margin-top:14px;background:#fff;border:1px solid #f2d4e3;border-radius:10px;padding:6px 6px 8px;box-shadow:0 6px 20px #bb4e801f;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}.timeline-card-photo:hover{transform:scale(1.02) translateY(-3px);box-shadow:0 10px 26px #bb4e8038}.timeline-photo-img{width:100%;height:180px;object-fit:cover;border-radius:6px;display:block}.timeline-photo-tag{display:flex;align-items:center;justify-content:space-between;padding:5px 4px 0;font-family:Caveat,cursive;font-size:13px;color:#b06f8e}.note-photo-keepsake{margin-top:14px;background:#fff;border:1px solid #f2d2e2;border-radius:8px;padding:6px 6px 8px;box-shadow:0 6px 18px #bb4e801f;cursor:pointer;transition:transform .2s ease}.note-photo-keepsake:hover{transform:scale(1.03)}.note-photo-img{width:100%;height:140px;object-fit:cover;border-radius:5px;display:block}.note-photo-tag{display:block;text-align:center;font-family:Caveat,cursive;font-size:13px;color:#b57293;margin-top:5px}.cake-memory-halo{display:flex;justify-content:center;align-items:center;gap:10px;margin:20px auto 14px;flex-wrap:wrap;max-width:580px}.cake-mini-polaroid{width:76px;height:98px;background:#fff;padding:4px 4px 6px;border-radius:6px;border:1px solid #f2d4e3;box-shadow:0 6px 16px #bb4e8029;cursor:pointer;transition:transform .25s ease}.cake-mini-polaroid:hover{transform:scale(1.12) translateY(-4px);z-index:3}.cake-mini-polaroid img{width:100%;height:70px;object-fit:cover;border-radius:4px;display:block}.cake-mini-polaroid span{font-family:Caveat,cursive;font-size:11px;color:#b77696;display:block;text-align:center;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.finale-constellation{display:flex;justify-content:center;align-items:center;gap:10px;margin:24px auto 14px;flex-wrap:wrap;max-width:640px}.constellation-polaroid{width:78px;height:102px;background:#fffffff2;padding:4px 4px 8px;border-radius:6px;border:1px solid rgba(246,177,208,.6);box-shadow:0 8px 24px #00000059;cursor:pointer;transition:all .3s ease}.constellation-polaroid:hover{transform:scale(1.15) translateY(-5px);box-shadow:0 12px 30px #f1a0c666;z-index:5}.constellation-polaroid img{width:100%;height:74px;object-fit:cover;border-radius:4px;display:block}.constellation-polaroid span{font-family:Caveat,cursive;font-size:11px;color:#793455;display:block;text-align:center;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.letter-keepsake{margin:18px 0 16px;background:#fff;padding:8px 8px 10px;border-radius:10px;border:1px solid #f1d5e3;box-shadow:0 8px 24px #bb4e8024;cursor:pointer;text-align:center}.letter-keepsake img{width:100%;max-height:220px;object-fit:cover;border-radius:6px;display:block}.letter-keepsake span{font-family:Caveat,cursive;font-size:14px;color:#b56f8f;display:block;margin-top:6px}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#2b1320db;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:16px}.lightbox-card{position:relative;background:linear-gradient(150deg,#fff,#fff2f8);border:1px solid #f1cfdf;border-radius:22px;padding:22px 22px 24px;width:min(600px,94vw);max-height:92vh;display:flex;flex-direction:column;align-items:center;box-shadow:0 25px 70px #1c0a148c;animation:lightboxPop .3s cubic-bezier(.18,.89,.32,1.28)}.lightbox-img-wrap{width:100%;max-height:58vh;display:flex;align-items:center;justify-content:center;background:#fbeef4;border-radius:12px;overflow:hidden;position:relative}.lightbox-img{max-width:100%;max-height:58vh;object-fit:contain;display:block;border-radius:10px}.lightbox-info{width:100%;margin-top:14px;text-align:center}.lightbox-meta{font-size:10px;letter-spacing:2px;font-weight:700;color:#b77695;text-transform:uppercase;margin-bottom:4px;display:block}.lightbox-title{font-family:Playfair Display,serif;font-size:22px;font-weight:600;color:#723453;margin:0 0 6px}.lightbox-caption{font-size:13px;color:#8c6077;line-height:1.6;margin:0;font-family:DM Sans,sans-serif}.lightbox-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:#ffffffeb;border:1px solid #ecd0de;color:#8c3e66;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 16px #87325c33;transition:all .2s ease;z-index:5}.lightbox-nav-btn:hover{background:#fff;color:#6d2449;transform:translateY(-50%) scale(1.1)}.lightbox-prev{left:10px}.lightbox-next{right:10px}.lightbox-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid #ecccdb;color:#8b456b;display:grid;place-items:center;font-size:20px;cursor:pointer;z-index:6;transition:all .2s}.lightbox-close:hover{background:#ffe8f2;color:#631e42;transform:scale(1.08)}@keyframes lightboxPop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media(max-width:800px){.hero-art{min-height:460px}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media(max-width:560px){.hero-art{min-height:380px}.hero-photo-card{width:min(250px,84vw);padding:10px 10px 12px}.hero-photo-img{max-height:360px}.lightbox-card{padding:14px 14px 16px;border-radius:16px}.lightbox-img-wrap,.lightbox-img{max-height:48vh}.lightbox-nav-btn{width:36px;height:36px}.lightbox-prev{left:4px}.lightbox-next{right:4px}.filmstrip-item{width:95px;height:124px;padding:4px 4px 8px}.filmstrip-img{height:82px}.filmstrip-label{font-size:11px}.memory-grid{grid-template-columns:1fr;gap:20px;width:100%;max-width:340px;margin-inline:auto}.gallery-controls{flex-direction:column;gap:10px;width:100%}.gallery-controls .button-primary,.gallery-controls .button-light{width:100%;justify-content:center}.gallery-tabs{gap:6px;margin:16px 0 22px}.gallery-tab-btn{padding:6px 12px;font-size:10px}.cake-mini-polaroid{width:64px;height:84px;padding:3px 3px 5px}.cake-mini-polaroid img{height:58px}.constellation-polaroid{width:64px;height:84px;padding:3px 3px 5px}.constellation-polaroid img{height:58px}.timeline-photo-img{height:150px}.note-photo-img{height:120px}}.cinematic-bg-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;background:#fff8fb}.cinematic-layer{position:absolute;top:-4%;right:-4%;bottom:-4%;left:-4%;width:108%;height:108%;background-size:cover;background-position:center;transition:opacity 2.4s cubic-bezier(.4,0,.2,1);filter:blur(6px) brightness(.98) contrast(1.02) saturate(1.08);transform:scale(1.02);will-change:transform,opacity}.cinematic-layer.active{opacity:var(--cinematic-opacity,.12);animation:kenBurnsZoom 18s ease-in-out infinite alternate}.cinematic-layer.inactive{opacity:0}@keyframes kenBurnsZoom{0%{transform:scale(1.02) translate(0)}50%{transform:scale(1.08) translate(-1%,1%)}to{transform:scale(1.04) translate(1%,-1%)}}.cinematic-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 40%,#fffafdd1,#fff0f7e6 55%,#ffe6f2f5);pointer-events:none}.floating-photos-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.floating-photo-card{position:absolute;bottom:-220px;width:95px;height:126px;background:#ffffffe6;padding:5px 5px 12px;border-radius:8px;box-shadow:0 8px 24px #bb4e801f;border:1px solid rgba(247,217,230,.75);transform:rotate(var(--tilt));animation:floatPhotoUp linear infinite;opacity:.16;transition:opacity .3s ease;pointer-events:none}.floating-photo-card img{width:100%;height:100%;object-fit:cover;border-radius:5px;display:block}@keyframes floatPhotoUp{0%{transform:translateY(0) rotate(var(--tilt)) scale(.92);opacity:0}15%{opacity:.16}85%{opacity:.16}to{transform:translateY(-120vh) rotate(calc(var(--tilt)*1.5)) scale(1.04);opacity:0}}@media(max-width:800px){.floating-photo-card{width:70px;height:94px;padding:3px 3px 8px;opacity:.1}}.cinematic-toggle-btn{position:fixed;bottom:20px;right:20px;z-index:50;background:#fffffff0;border:1px solid #ecccdb;color:#7c2d54;border-radius:999px;padding:8px 14px;font-size:11px;font-weight:600;display:flex;align-items:center;gap:7px;cursor:pointer;box-shadow:0 4px 18px #bb4e802e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .25s ease}.cinematic-toggle-btn:hover{background:#fff0f6;color:#5a1738;transform:translateY(-2px);box-shadow:0 8px 24px #bb4e8047}.step-card{width:min(480px,92vw);padding:clamp(24px,4.5vh,42px) clamp(20px,5vw,46px) clamp(20px,3.5vh,32px);text-align:center;position:relative;border-radius:clamp(18px,3vh,26px);box-sizing:border-box}.step-icon-medallion{position:relative;margin:0 auto clamp(10px,1.8vh,18px);width:clamp(56px,7.8vh,72px);height:clamp(56px,7.8vh,72px);border:1px solid #efccdc;background:linear-gradient(145deg,#fff,#ffe4ef);border-radius:50%;display:grid;place-items:center;color:#b94d7e;box-shadow:0 8px 24px #e4a0bd47}.step-card h1{font-size:clamp(24px,4vh,38px);margin:clamp(6px,1vh,12px) 0 clamp(8px,1.4vh,14px);color:#5d223f}.step-card .gate-copy{font-size:clamp(11.5px,1.5vh,13px);line-height:1.65;color:#6d3954;margin:0 0 clamp(12px,2vh,20px)}.step-card-actions{display:flex;flex-direction:column;gap:clamp(8px,1.2vh,12px);margin-top:clamp(14px,2.2vh,24px);align-items:center}.step-card-actions .button-primary{width:100%;max-width:340px;padding:clamp(11px,1.8vh,14px) 22px;font-size:clamp(11.5px,1.4vh,13px);justify-content:center}.step-card-actions .button-ghost{background:transparent;border:1px dashed #e8b0ca;color:#983864;padding:clamp(8px,1.2vh,10px) 18px;border-radius:999px;font-size:clamp(10.5px,1.3vh,11.5px);cursor:pointer;transition:all .2s ease}.step-card-actions .button-ghost:hover{background:#ffeff7;color:#651e40;border-style:solid}.music-dock{position:fixed;bottom:20px;left:20px;z-index:50;background:#fffffff0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #f0cfde;border-radius:999px;padding:6px 14px 6px 8px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 30px #87325c2e;transition:all .25s ease;max-width:min(420px,calc(100vw - 120px))}.music-dock:hover{box-shadow:0 12px 36px #87325c42;border-color:#d782a7}.music-dock-icon{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#e68ab0,#c95e91);color:#fff;display:grid;place-items:center;flex-shrink:0;cursor:pointer;transition:transform .2s}.music-dock-icon:hover{transform:scale(1.08)}.music-dock-info{display:flex;flex-direction:column;min-width:0;cursor:pointer}.music-dock-status{font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#bc7294;display:flex;align-items:center;gap:6px}.music-equalizer{display:inline-flex;align-items:flex-end;gap:2px;height:10px}.music-equalizer span{width:2.5px;background:#d46395;border-radius:1px;animation:eqWave 1s ease-in-out infinite alternate}.music-equalizer span:nth-child(1){height:4px;animation-delay:.1s}.music-equalizer span:nth-child(2){height:9px;animation-delay:.3s}.music-equalizer span:nth-child(3){height:6px;animation-delay:.2s}@keyframes eqWave{0%{height:3px}to{height:10px}}.music-dock-title{font-family:DM Sans,sans-serif;font-size:11px;font-weight:600;color:#723453;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.music-dock-controls{display:flex;align-items:center;gap:4px;margin-left:auto}.music-mini-btn{background:transparent;border:0;color:#9f4974;padding:4px;border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:all .2s}.music-mini-btn:hover{background:#fae1ec;color:#631e42}.yt-player-drawer{position:fixed;bottom:74px;left:20px;z-index:49;background:#fff;border:1px solid #edd0df;border-radius:14px;overflow:hidden;box-shadow:0 14px 40px #00000040;width:280px;transition:transform .3s ease,opacity .3s ease}.yt-player-drawer.drawer-hidden{opacity:.01;pointer-events:none;transform:scale(.01);transform-origin:bottom left}.yt-player-drawer.drawer-visible{opacity:1;pointer-events:auto;transform:scale(1);transform-origin:bottom left}.highlight-ps-card{position:relative;margin:45px auto 25px;max-width:620px;padding:30px 28px 28px;background:linear-gradient(145deg,#fff,#fff0f7,#ffe9f4);border:2px dashed #f496c1;border-radius:24px;box-shadow:0 16px 50px #e36ba340,inset 0 0 25px #ffe6f299;text-align:center;overflow:hidden;animation:psPulse 3.5s ease-in-out infinite alternate}@keyframes psPulse{0%{box-shadow:0 16px 50px #e36ba338}to{box-shadow:0 20px 60px #e36ba361,0 0 25px #f496c14d}}.highlight-ps-tag{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(90deg,#d86797,#b84c7e);color:#fff;padding:5px 16px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;box-shadow:0 4px 14px #b84c7e4d}.highlight-ps-quote{font-family:Playfair Display,serif;font-size:clamp(23px,4vw,32px);font-weight:600;color:#6d2348;line-height:1.35;margin:0 0 10px;letter-spacing:-.5px}.highlight-ps-quote em{color:#d14d86;font-style:italic;text-decoration:underline;text-decoration-color:#f7a2ca;text-underline-offset:4px}.highlight-ps-sub{font-family:DM Sans,sans-serif;font-size:13px;color:#8f5875;line-height:1.6;margin:0;font-weight:500}.highlight-ps-doodle{font-family:Caveat,cursive;font-size:22px;color:#e57ea7;margin-top:10px}@media(max-width:560px){.highlight-ps-card{padding:22px 18px 20px;margin:32px 14px 20px;border-radius:18px}.highlight-ps-quote{font-size:20px}.highlight-ps-sub{font-size:12px}.music-dock{left:10px;bottom:12px;padding:5px 10px 5px 6px}.music-dock-title{max-width:130px;font-size:10px}.cinematic-toggle-btn{right:10px;bottom:12px;padding:7px 11px;font-size:10px}}
