@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Poppins:wght@300;400;500;600;700&display=swap";:root{color:#fff0f5;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--wine:#310d22;--wine-dark:#190711;--wine-light:#5b1b3b;--rose:#ffabc9;--rose-light:#ffe1ed;--gold:#f4ce94;--gold-light:#ffe8bd;--cream:#fff7ef;--text-light:#f9eaf1;--text-muted:#d9b8c7;background:#190711;font-family:Poppins,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--wine-dark);min-height:100%}body{background:var(--wine-dark);min-width:320px;min-height:100vh;margin:0;font-family:Poppins,sans-serif;overflow-x:hidden}body,button,input,textarea{font-family:Poppins,sans-serif}button{font:inherit}button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{cursor:not-allowed;opacity:.45}img,video{max-width:100%}img{display:block}#root{isolation:isolate;min-height:100vh}::selection{color:#fff;background:#a73d6a}.birthday-journey{isolation:isolate;min-height:100vh;color:var(--text-light);text-align:center;background:radial-gradient(at 50% 42%,#67203f 0%,#0000 53%),linear-gradient(145deg,#190711,#380d25 55%,#170611);flex-direction:column;justify-content:center;align-items:center;padding:95px 22px 50px;display:flex;position:relative;overflow:hidden}.journey-glow{z-index:-1;aspect-ratio:1;filter:blur(130px);opacity:.18;pointer-events:none;background:#e54c8b;border-radius:50%;width:min(75vw,450px);position:absolute;top:20%;left:50%;transform:translate(-50%)}.journey-back{z-index:10;color:#ffe5ef;cursor:pointer;background:#ffffff0d;border:1px solid #e9a6c34a;border-radius:30px;padding:11px 17px;transition:background .25s,transform .25s;position:absolute;top:22px;left:22px}.journey-back:hover{background:#ffffff1c;transform:translate(-3px)}.journey-eyebrow{color:var(--gold);letter-spacing:3.5px;margin:0 0 18px;font-size:11px;font-weight:600;line-height:1.8}.journey-description{color:#f3dce6;max-width:510px;margin:22px auto;font-size:15px;font-weight:300;line-height:2}.journey-primary,.journey-secondary{cursor:pointer;border-radius:40px;justify-content:center;align-items:center;gap:8px;min-height:48px;margin:18px 6px 0;padding:14px 25px;font-size:13px;font-weight:600;line-height:1.5;transition:transform .25s,box-shadow .25s,background .25s;display:inline-flex}.journey-primary{color:#451025;background:linear-gradient(120deg,#ffe3b0,#f6a6c5);border:1px solid #ffdfac;box-shadow:0 8px 30px #ef7db92b}.journey-secondary{color:#ffe5ef;background:#ffffff0d;border:1px solid #e9a6c37a}.journey-primary:hover,.journey-secondary:hover{transform:translateY(-3px);box-shadow:0 12px 34px #ef7db940}.journey-love-message{max-width:520px;color:var(--gold-light);margin:24px auto;font-family:Cormorant Garamond,Georgia,serif;font-size:23px;font-style:italic;line-height:1.7}.invitation-screen,.gift-screen,.gift-message-screen,.cake-screen,.cake-wish-screen,.giftbox-screen,.giftbox-reveal-screen,.letter-envelope-screen,.love-letter-reading-screen,.scratch-screen{width:min(100%,760px);animation:.65s both journey-enter}.invitation-screen h1,.gift-screen h1,.gift-message-screen h1,.cake-screen h1,.cake-wish-screen h1,.giftbox-screen h1,.giftbox-reveal-screen h1,.letter-envelope-screen h1,.scratch-screen h1{margin:20px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(38px,7vw,64px);font-weight:500;line-height:1.12}.invitation-screen h1 span,.gift-screen h1 span,.gift-message-screen h1 span,.cake-screen h1 span,.cake-wish-screen h1 span,.giftbox-screen h1 span,.giftbox-reveal-screen h1 span,.letter-envelope-screen h1 span,.scratch-screen h1 span{color:var(--rose);font-style:italic}.invitation-stars{color:var(--gold);margin-bottom:28px;font-size:26px;animation:2.5s ease-in-out infinite alternate invitation-twinkle}.invitation-seal,.gift-invitation-icon,.cake-invitation-icon,.love-letter-invitation-icon,.scratch-invitation-icon{background:#ffffff0b;border:1px solid #f6cb8a70;border-radius:50%;place-items:center;width:100px;height:100px;margin:28px auto;font-size:43px;animation:3s ease-in-out infinite gift-invitation-float;display:grid;box-shadow:0 0 40px #f6a6c526}.invitation-seal{color:#fff0f5;background:linear-gradient(145deg,#a52d59,#55102f);font-size:29px}.invitation-note,.journey-footnote{color:#e9bdcf;font-family:Cormorant Garamond,Georgia,serif;font-size:17px;font-style:italic;line-height:1.8}.journey-footnote{margin-top:24px;font-size:14px}@keyframes journey-enter{0%{opacity:0;transform:translateY(22px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes invitation-twinkle{0%{opacity:.55;transform:scale(.96)}to{opacity:1;transform:scale(1.05)}}@keyframes gift-invitation-float{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-9px)rotate(3deg)}}@keyframes gift-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes heart-beat{0%,to{transform:scale(1)}50%{transform:scale(1.16)}}@keyframes sparkle-rise{0%{opacity:0;transform:translateY(35px)scale(.4)rotate(0)}25%{opacity:1}to{opacity:0;transform:translateY(-180px)scale(1.3)rotate(100deg)}}@keyframes floating-heart-rise{0%{opacity:0;transform:translate(0,0)rotate(0)scale(.8)}12%{opacity:var(--heart-opacity,.35)}80%{opacity:var(--heart-opacity,.35)}to{opacity:0;transform:translate3d(var(--heart-drift,20px), -115vh, 0) rotate(35deg) scale(1.15)}}.welcome-screen{isolation:isolate;color:#fff0f5;text-align:center;background:#210916;justify-content:center;align-items:center;width:100%;min-height:100svh;padding:55px 24px;transition:opacity .9s,transform .9s;display:flex;position:relative;overflow:hidden}.welcome-background{z-index:-3;background-image:url(/images/hero.jpg),radial-gradient(#64213f,#190711);background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.02)}.welcome-overlay{z-index:-2;background:linear-gradient(#160610a8,#25091bd9 45%,#160610ed),radial-gradient(at 50% 45%,#77274740,#0000 65%);position:absolute;inset:0}.welcome-screen.welcome-started{opacity:0;pointer-events:none;transform:scale(1.035)}.welcome-content{z-index:2;width:min(100%,850px);animation:1s both journey-enter;position:relative}.welcome-top-decoration{color:var(--gold);justify-content:center;align-items:center;gap:24px;margin-bottom:25px;font-size:19px;display:flex}.welcome-top-heart{font-size:37px;animation:2s ease-in-out infinite heart-beat}.welcome-eyebrow{color:var(--gold);letter-spacing:3.2px;margin:0 0 18px;font-size:10px;font-weight:500;line-height:1.8}.welcome-script{color:#f8d9e6;margin:20px 0 12px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(20px,3vw,27px);font-style:italic}.welcome-title{flex-direction:column;gap:4px;margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(45px,9vw,90px);font-weight:500;line-height:1.05;display:flex}.welcome-title span{color:var(--rose);font-size:1.08em;font-style:italic}.welcome-divider{color:var(--gold);justify-content:center;align-items:center;gap:17px;margin:28px 0;font-size:23px;display:flex}.welcome-divider span{background:linear-gradient(90deg, transparent, var(--gold));width:75px;height:1px}.welcome-divider span:last-child{transform:rotate(180deg)}.welcome-message{color:#ffedf4;font-size:clamp(13px,2vw,16px);font-weight:300;line-height:2}.welcome-secret{color:#f5d7e4;max-width:430px;margin:20px auto 24px;font-family:Cormorant Garamond,Georgia,serif;font-size:19px;font-style:italic;line-height:1.8}.welcome-begin-button{color:#451025;cursor:pointer;background:linear-gradient(120deg,#ffe3b0,#f6a6c5);border:1px solid #ffdfac;border-radius:40px;justify-content:center;align-items:center;gap:14px;min-height:50px;padding:14px 27px;font-size:13px;font-weight:600;transition:transform .3s,box-shadow .3s,opacity .3s;display:inline-flex;box-shadow:0 8px 30px #ef7db92b}.welcome-begin-button:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 10px 35px #f59cc240}.welcome-begin-button:disabled{cursor:wait;opacity:.85}.welcome-button-heart{font-size:19px}.welcome-bottom-note{color:#e8c6d5;letter-spacing:2px;margin-top:35px;font-size:9px;line-height:1.8}.welcome-corner{color:#f7cf9b;opacity:.75;font-size:35px;position:absolute;bottom:30px}.welcome-corner-left{left:30px}.welcome-corner-right{right:30px}.welcome-bottom-glow{z-index:-1;filter:blur(110px);opacity:.13;background:#e54c8b;height:200px;position:absolute;bottom:-100px;left:0;right:0}.welcome-particles{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.welcome-particle{color:#ffb5d0;pointer-events:none;animation:10s linear infinite floating-heart-rise;position:absolute;bottom:-45px}.birthday-menu{isolation:isolate;min-height:100vh;color:var(--text-light);text-align:center;background:radial-gradient(at 50% 35%,#68213f,#0000 60%),linear-gradient(145deg,#190711,#380d25 55%,#170611);flex-direction:column;justify-content:center;align-items:center;padding:75px 24px;display:flex;position:relative;overflow:hidden}.birthday-menu-content{width:min(100%,1050px);animation:.7s both journey-enter}.birthday-menu-title{margin:16px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(38px,7vw,64px);font-weight:500;line-height:1.15}.birthday-menu-title span{color:var(--rose);font-style:italic}.birthday-menu-subtitle{max-width:560px;color:var(--text-muted);margin:0 auto 36px;font-size:14px;line-height:1.9}.birthday-menu-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%;display:grid}.birthday-menu-card{min-height:200px;color:var(--text-light);cursor:pointer;text-align:center;background:linear-gradient(145deg,#ffffff0c,#ffffff04);border:1px solid #f6c4da30;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;padding:24px 18px;transition:transform .3s,border-color .3s,background .3s,box-shadow .3s;display:flex}.birthday-menu-card:hover{background:linear-gradient(145deg,#ffffff16,#ffffff07);border-color:#f5c68a9c;transform:translateY(-6px);box-shadow:0 15px 40px #00000020}.birthday-menu-icon{width:58px;height:58px;color:var(--gold);background:#ffffff08;border:1px solid #f6cb8a4a;border-radius:50%;place-items:center;margin-bottom:15px;font-size:26px;display:grid}.birthday-menu-card h3{margin:0 0 8px;font-family:Cormorant Garamond,Georgia,serif;font-size:24px;font-weight:600}.birthday-menu-card p{color:var(--text-muted);margin:0;font-size:11px;line-height:1.8}.floating-hearts{z-index:5;pointer-events:none;position:fixed;inset:0;overflow:hidden}.floating-heart{color:#ffabc9;opacity:var(--heart-opacity,.35);-webkit-user-select:none;user-select:none;pointer-events:none;will-change:transform, opacity;animation:12s linear infinite floating-heart-rise;position:absolute;bottom:-45px}.love-story-gallery{min-height:100vh;color:var(--text-light);background:radial-gradient(at 50% 10%,#57203a70,#0000 50%),linear-gradient(#1d0814,#310d22 55%,#1b0813);padding:90px 24px 70px;position:relative;overflow:hidden}.story-intro{text-align:center;width:min(100%,750px);margin:0 auto 50px}.story-eyebrow{color:var(--gold);letter-spacing:3px;font-size:10px;font-weight:600;line-height:1.9;display:block}.story-decor-heart{color:var(--rose);margin:18px 0;font-size:39px;animation:2s ease-in-out infinite heart-beat}.story-intro h2{margin:0 0 18px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(38px,6vw,58px);font-weight:500}.story-intro h2 span,.memory-video-invitation h3 span,.story-finale h3 span{color:var(--rose);font-style:italic}.story-intro>p{max-width:630px;color:var(--text-muted);margin:0 auto;font-size:14px;font-weight:300;line-height:2}.memory-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;width:min(100%,1100px);margin:0 auto;display:grid}.memory-card{min-width:0;color:var(--text-light);cursor:pointer;text-align:left;background:#ffffff07;border:1px solid #f1c5d82b;border-radius:17px;flex-direction:column;padding:0;transition:transform .3s,border-color .3s,box-shadow .3s;display:flex;overflow:hidden}.memory-card:hover{border-color:#f5c68a80;transform:translateY(-5px);box-shadow:0 18px 35px #0000002a}.memory-card-image{aspect-ratio:4/3;background:#41162c;position:relative;overflow:hidden}.memory-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.memory-card:hover .memory-card-image img{transform:scale(1.055)}.memory-card-open{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#260b1bbd;border:1px solid #fff5;border-radius:30px;padding:8px 12px;font-size:10px;position:absolute;bottom:10px;right:10px}.memory-card-copy{padding:19px 18px 22px}.memory-card-copy>span{color:var(--gold);letter-spacing:1.6px;font-size:9px;font-weight:600;line-height:1.7}.memory-card-copy h3{margin:10px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:25px;font-weight:600;line-height:1.2}.memory-card-copy p{color:var(--text-muted);margin:0;font-size:11px;line-height:1.7}.memory-video-invitation{text-align:center;background:linear-gradient(145deg,#ffffff0c,#ffffff03);border:1px solid #f6cb8a40;border-radius:22px;width:min(100%,780px);margin:65px auto 0;padding:35px 24px}.memory-video-invitation h3{margin:16px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(28px,5vw,40px);font-weight:500}.memory-video-invitation p{color:var(--text-muted);font-size:13px;line-height:1.8}.memory-surprise-button{color:#ffe5ef;cursor:pointer;background:#ffffff0a;border:1px solid #f6cb8a91;border-radius:40px;justify-content:center;align-items:center;margin-top:14px;padding:13px 21px;font-size:12px;transition:background .25s,transform .25s;display:inline-flex}.memory-surprise-button:hover{background:#ffffff18;transform:translateY(-2px)}.story-finale{text-align:center;width:min(100%,720px);margin:65px auto 0}.finale-stars{color:var(--gold);margin-bottom:18px;font-size:25px;display:block}.story-finale h3{margin:17px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(30px,5vw,44px);font-weight:500;line-height:1.25}.story-finale>p:not(.story-eyebrow){color:var(--text-muted);font-size:13px;line-height:2}.memory-video-caption{color:#f4cbdc;font-family:Cormorant Garamond,Georgia,serif;font-size:18px;font-style:italic;line-height:1.8}.memory-page{min-height:100vh;color:var(--text-light);background:radial-gradient(at 50% 25%,#65213f,#0000 60%),linear-gradient(145deg,#190711,#380d25 60%,#170611);flex-direction:column;align-items:center;padding:85px 22px 60px;display:flex;position:relative}.memory-back-button{color:#ffe5ef;cursor:pointer;background:#ffffff0d;border:1px solid #e9a6c34a;border-radius:30px;padding:10px 15px;font-size:12px;transition:background .25s;position:absolute;top:22px;left:22px}.memory-back-button:hover{background:#ffffff1b}.memory-page-content{text-align:center;width:min(100%,760px);margin:auto;animation:.6s both journey-enter}.memory-page-content h1{margin:15px 0 25px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(35px,6vw,58px);font-weight:500;line-height:1.2}.memory-page-content h1 span{color:var(--rose);font-style:italic}.memory-detail-photo{background:#2b0b1d;border:1px solid #f4ce9470;border-radius:18px;width:min(100%,520px);max-height:560px;margin:0 auto 25px;overflow:hidden;box-shadow:0 20px 50px #00000030}.memory-detail-photo img{object-fit:contain;width:100%;max-height:560px}.memory-detail-story{color:#f2dce6;max-width:620px;margin:20px auto;font-size:14px;font-weight:300;line-height:2}.memory-secret-page{background:#ffffff09;border:1px solid #f4ce9450;border-radius:16px;max-width:620px;margin:28px auto;padding:24px;animation:.5s both journey-enter}.memory-secret-page>span{color:var(--gold);letter-spacing:2px;font-size:10px;font-weight:600;line-height:1.9}.memory-secret-page p{color:#ffe2ed;margin:15px 0 0;font-family:Cormorant Garamond,Georgia,serif;font-size:23px;font-style:italic;line-height:1.7}.memory-page-navigation{border-top:1px solid #f4ce942d;justify-content:space-between;align-items:center;gap:15px;margin-top:35px;padding-top:22px;display:flex}.memory-page-navigation button{color:#ffe5ef;cursor:pointer;background:#ffffff0a;border:1px solid #e9a6c34a;border-radius:30px;padding:10px 14px;font-size:12px}.memory-page-navigation button:not(:disabled):hover{background:#ffffff1b}.memory-page-navigation span{color:var(--gold);font-family:Cormorant Garamond,Georgia,serif;font-size:17px;font-style:italic}.gallery-video-frame{background:#0f050b;border:1px solid #f4ce9470;border-radius:18px;width:min(100%,760px);margin:25px auto;overflow:hidden;box-shadow:0 18px 45px #00000035}.gallery-video{background:#0f050b;width:100%;max-height:75vh;display:block}.scratch-card-section{color:var(--text-light);text-align:center;background:radial-gradient(at 50% 35%,#60203d,#0000 60%),linear-gradient(145deg,#190711,#310d22);padding:80px 22px;position:relative}.scratch-heading{width:min(100%,700px);margin:0 auto 35px}.scratch-eyebrow{color:var(--gold);letter-spacing:3px;font-size:10px;font-weight:600}.scratch-heading h2{margin:17px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(35px,6vw,55px);font-weight:500;line-height:1.2}.scratch-heading h2 span{color:var(--rose);font-style:italic}.scratch-heading>p{color:var(--text-muted);font-size:14px;line-height:1.9}.scratch-card{isolation:isolate;background:linear-gradient(135deg,#fff3e7,#ffe2ed);border:1px solid #f4ce9485;border-radius:17px;width:min(100%,700px);margin:0 auto;position:relative;overflow:hidden;box-shadow:0 18px 50px #00000035}.scratch-hidden-message{color:#652340;background:linear-gradient(135deg,#fff4e7,#ffe2ed);flex-direction:column;justify-content:center;align-items:center;min-height:350px;padding:30px;display:flex;position:relative}.scratch-hidden-heart{color:#c34578;font-size:38px;animation:1.8s ease-in-out infinite heart-beat}.scratch-hidden-label{color:#a45a79;letter-spacing:2px;font-size:10px;font-weight:600}.scratch-hidden-message h3{margin:12px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(25px,5vw,37px);font-weight:600}.scratch-hidden-message>p:not(.scratch-hidden-label){color:#774158;max-width:470px;font-size:13px;line-height:1.9}.scratch-i-love-you{letter-spacing:1.3px;font-weight:700;color:#a02d60!important}.scratch-hidden-stars{color:#bd8b51;font-size:20px}.scratch-canvas{z-index:2;touch-action:none;cursor:crosshair;width:100%;height:100%;display:block;position:absolute;inset:0}.scratch-complete .scratch-canvas{display:none}.scratch-status{color:#f5d8e5;width:min(100%,500px);margin:22px auto;font-size:12px}.scratch-progress-track{background:#ffffff1c;border-radius:20px;width:100%;height:6px;margin-top:14px;overflow:hidden}.scratch-progress-track span{border-radius:inherit;background:linear-gradient(90deg,#e66eaa,#ffdfac);height:100%;transition:width .2s;display:block}.scratch-success{color:var(--gold-light);font-size:14px;line-height:1.8}.scratch-reset-button{color:#ffe5ef;cursor:pointer;background:#ffffff0b;border:1px solid #f4ce9480;border-radius:40px;margin-top:10px;padding:13px 23px}.scratch-journey{min-height:100vh}.scratch-invitation-icon{background:#ffffff0b;border:1px solid #f6cb8a70;border-radius:50%;place-items:center;width:105px;height:105px;margin:30px auto;font-size:45px;animation:3s ease-in-out infinite gift-invitation-float;display:grid;box-shadow:0 0 40px #f6a6c526}.scratch-screen{width:min(100%,850px);animation:.65s both journey-enter;position:relative}.scratch-screen h1{margin:20px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(36px,7vw,58px);font-weight:500;line-height:1.15}.scratch-screen h1 span{color:var(--rose);font-style:italic}.scratch-screen .scratch-card{margin:30px auto 20px}.scratch-screen .scratch-canvas{aspect-ratio:2}.scratch-reveal-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.scratch-reveal-sparkle{color:#e6a5c0;animation:3s ease-out forwards sparkle-rise;position:absolute;bottom:10%}.scratch-finale{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;display:flex}.giftbox-section{color:var(--text-light);text-align:center;background:radial-gradient(at 50% 40%,#60203d,#0000 60%),linear-gradient(145deg,#190711,#310d22);padding:80px 22px;position:relative}.giftbox-heading{width:min(100%,700px);margin:0 auto 25px}.giftbox-eyebrow{color:var(--gold);letter-spacing:3px;font-size:10px;font-weight:600}.giftbox-heading h2{margin:17px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(35px,6vw,55px);font-weight:500;line-height:1.2}.giftbox-heading h2 span{color:var(--rose);font-style:italic}.giftbox-heading>p{color:var(--text-muted);font-size:14px;line-height:1.9}.giftbox-stage{place-items:center;width:min(100%,430px);min-height:320px;margin:20px auto;display:grid;position:relative}.giftbox-glow{filter:blur(90px);opacity:.19;background:#e64b90;border-radius:50%;width:230px;height:230px;position:absolute}.giftbox-image-button{z-index:1;color:#ffe5ef;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:15px;padding:12px;display:flex;position:relative}.giftbox-image{object-fit:contain;filter:drop-shadow(0 15px 35px #f7a2cc30);width:min(60vw,260px);max-height:280px;transition:transform .3s,filter .3s}.giftbox-image-button:hover .giftbox-image{filter:drop-shadow(0 15px 35px #f7a2cc60);transform:scale(1.07)rotate(-3deg)}.giftbox-tap-hint{color:#f9d8e6;letter-spacing:.8px;font-size:12px}.giftbox-sparkle{z-index:2;color:var(--gold-light);pointer-events:none;animation:2.8s ease-out forwards sparkle-rise;position:absolute;bottom:20%}.giftbox-open-button,.giftbox-close-button{color:#ffe5ef;cursor:pointer;background:#ffffff0b;border:1px solid #f4ce9485;border-radius:40px;padding:14px 24px;font-size:12px;transition:background .25s,transform .25s}.giftbox-open-button:hover,.giftbox-close-button:hover{background:#ffffff17;transform:translateY(-2px)}.giftbox-reveal{background:#ffffff08;border:1px solid #f4ce9440;border-radius:20px;width:min(100%,600px);margin:30px auto 0;padding:30px;animation:.6s both journey-enter}.giftbox-heart,.revealed-heart{color:#ff9dc4;font-size:48px;animation:1.3s ease-in-out infinite heart-beat;display:block}.giftbox-reveal-label{color:var(--gold);letter-spacing:2.5px;font-size:10px;font-weight:600}.giftbox-reveal h3{margin:15px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:34px;font-weight:600}.giftbox-reveal>p{color:#f3dce6;font-size:13px;line-height:2}.giftbox-love-message{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;color:var(--gold-light)!important;font-size:21px!important}.giftbox-journey{min-height:100vh}.gift-invitation-icon{font-size:49px}.giftbox-screen,.giftbox-reveal-screen{width:min(100%,680px);animation:.65s both journey-enter;position:relative}.giftbox-journey .giftbox-stage{min-height:290px}.giftbox-journey .giftbox-image{width:min(65vw,250px);max-height:260px}.giftbox-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.giftbox-particles .giftbox-sparkle{animation:3s ease-out forwards sparkle-rise;bottom:15%}.giftbox-revealed-image{object-fit:contain;filter:drop-shadow(0 12px 32px #ff9dc42c);width:min(50vw,210px);max-height:220px;margin:12px auto;animation:.8s both journey-enter;display:block}.birthday-cake-section{color:var(--text-light);text-align:center;background:radial-gradient(at 50% 40%,#60203d,#0000 60%),linear-gradient(145deg,#190711,#310d22);padding:80px 22px;position:relative;overflow:hidden}.cake-heading{width:min(100%,700px);margin:0 auto 25px}.cake-eyebrow{color:var(--gold);letter-spacing:3px;font-size:10px;font-weight:600}.cake-heading h2{margin:17px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(35px,6vw,55px);font-weight:500;line-height:1.2}.cake-heading h2 span{color:var(--rose);font-style:italic}.cake-heading>p{color:var(--text-muted);font-size:14px;line-height:1.9}.cake-scene{place-items:center;width:min(100%,430px);min-height:320px;margin:20px auto;display:grid;position:relative}.cake-glow{filter:blur(90px);opacity:.16;background:#e64b90;border-radius:50%;width:230px;height:230px;position:absolute}.cake-image-button{z-index:1;color:#ffe5ef;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;padding:12px;display:flex;position:relative}.cake-image{object-fit:contain;filter:drop-shadow(0 15px 35px #f7a2cc30);width:min(65vw,280px);max-height:290px;transition:transform .3s,filter .3s}.cake-image-button:hover .cake-image{filter:drop-shadow(0 15px 35px #f7a2cc60);transform:scale(1.05)}.cake-tap-hint{color:#f9d8e6;letter-spacing:.7px;margin-top:15px;font-size:12px}.cake-particle{z-index:2;color:var(--gold-light);pointer-events:none;animation:2.7s ease-out forwards sparkle-rise;position:absolute;bottom:20%}.cake-wish-reveal{background:#ffffff08;border:1px solid #f4ce9440;border-radius:20px;width:min(100%,600px);margin:25px auto 0;padding:30px;animation:.6s both journey-enter}.cake-wish-reveal h3{margin:16px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:32px;font-weight:600}.cake-wish-reveal>p{color:#f3dce6;font-size:13px;line-height:2}.cake-wish-reveal .wish-love{color:var(--gold-light);font-family:Cormorant Garamond,Georgia,serif;font-size:21px;font-style:italic}.cake-reset-button{color:#ffe5ef;cursor:pointer;background:#ffffff0b;border:1px solid #f4ce9480;border-radius:40px;margin-top:12px;padding:12px 21px}.cake-journey{min-height:100vh}.cake-invitation-icon{font-size:48px}.cake-screen,.cake-wish-screen{width:min(100%,680px);animation:.65s both journey-enter;position:relative}.cake-journey-scene{width:min(100%,430px);margin:20px auto}.cake-journey-scene .cake-image{width:min(70vw,300px);max-height:300px}.cake-journey-scene .cake-tap-hint{margin-top:12px;display:block}.cake-wish-screen{overflow:hidden}.cake-wish-image{object-fit:contain;filter:drop-shadow(0 12px 32px #ff9dc42c);width:min(55vw,220px);max-height:230px;margin:12px auto;display:block}.cake-wish-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.cake-wish-particles .cake-particle{animation:3s ease-out forwards sparkle-rise}.magical-letter-section{color:var(--text-light);text-align:center;background:radial-gradient(at 50% 35%,#60203d,#0000 60%),linear-gradient(145deg,#190711,#310d22);padding:80px 22px;position:relative;overflow:hidden}.magical-letter-heading{width:min(100%,700px);margin:0 auto 25px}.magical-letter-eyebrow{color:var(--gold);letter-spacing:3px;font-size:10px;font-weight:600}.magical-letter-heading h2{margin:17px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(35px,6vw,55px);font-weight:500;line-height:1.2}.magical-letter-heading h2 span{color:var(--rose);font-style:italic}.magical-letter-heading>p{color:var(--text-muted);font-size:14px;line-height:1.9}.letter-magic-stage{place-items:center;width:min(100%,760px);min-height:320px;margin:20px auto;display:grid;position:relative}.letter-aura{filter:blur(100px);opacity:.15;background:#e64b90;border-radius:50%;width:260px;height:260px;position:absolute}.letter-sparkle{z-index:2;color:var(--gold-light);pointer-events:none;animation:3s ease-out forwards sparkle-rise;position:absolute;bottom:20%}.sealed-envelope{z-index:1;color:#ffe5ef;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:17px;padding:15px;display:flex;position:relative}.envelope-stars{color:var(--gold);font-size:22px}.envelope-body{background:linear-gradient(145deg,#9a345d,#5c1737);border:1px solid #e8b7c96e;border-radius:8px;place-items:center;width:min(72vw,320px);height:205px;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 45px #00000035}.envelope-flap{filter:drop-shadow(0 4px 3px #00000015);border:160px solid #0000;border-top:100px solid #c26382;border-bottom-width:90px;width:0;height:0;position:absolute;top:-1px;left:0}.envelope-letter-preview{z-index:1;color:#ffe4ed;margin-top:25px;font-family:Cormorant Garamond,Georgia,serif;font-size:24px;font-style:italic;position:relative}.envelope-seal{z-index:2;color:#fff0f5;background:#7e2147;border:1px solid #ffe2ac;border-radius:50%;place-items:center;width:45px;height:45px;font-size:20px;display:grid;position:absolute;top:45%;box-shadow:0 3px 10px #00000025}.envelope-caption{font-family:Cormorant Garamond,Georgia,serif;font-size:19px;font-style:italic}.envelope-tap-hint{color:#f6d7e4;letter-spacing:1px;font-size:11px}.magical-letter-paper{color:#54263c;text-align:left;background:linear-gradient(145deg,#fff8ed,#ffeaf1);border:1px solid #f3d5aa80;border-radius:18px;width:min(100%,700px);margin:0 auto;padding:clamp(22px,5vw,45px);box-shadow:0 20px 70px #00000035}.letter-paper-decoration{color:#b77b88;text-align:center;font-size:25px}.letter-paper-label{color:#a66a80;letter-spacing:2px;text-align:center;margin:15px 0 28px;font-size:10px;font-weight:600}.letter-paper-content{min-height:100px}.letter-line{color:#633449;margin:0 0 19px;font-family:Cormorant Garamond,Georgia,serif;font-size:18px;line-height:1.9;animation:.6s both journey-enter}.letter-greeting{color:#9c315e;font-size:26px;font-weight:700}.letter-ending{color:#a02d60;font-style:italic}.letter-writing-hint{color:#9d6580;text-align:center;font-family:Cormorant Garamond,Georgia,serif;font-size:16px;font-style:italic}.letter-finished{text-align:center;border-top:1px solid #d8a6b577;padding-top:20px}.letter-finished>span{color:#c34878;font-size:35px;animation:1.3s ease-in-out infinite heart-beat;display:block}.letter-finished>p{color:#8f3c5c;font-family:Cormorant Garamond,Georgia,serif;font-size:20px;font-style:italic}.letter-open-button,.letter-close-button{color:#ffe5ef;cursor:pointer;background:#ffffff0b;border:1px solid #f4ce9480;border-radius:40px;margin-top:18px;padding:13px 23px;font-size:12px}.love-letter-journey{min-height:100vh}.love-letter-invitation-icon{font-size:47px}.letter-envelope-screen,.love-letter-reading-screen{width:min(100%,760px);animation:.65s both journey-enter;position:relative}.letter-envelope-screen .letter-magic-stage{margin:25px auto}.love-letter-reading-screen{width:min(100%,800px)}.love-letter-reading-screen .magical-letter-paper{z-index:1;box-sizing:border-box;width:100%;position:relative}.love-letter-reading-screen .letter-paper-decoration,.love-letter-reading-screen .letter-paper-label{text-align:center}.love-letter-reading-screen .letter-line{margin-bottom:20px;font-size:16px;line-height:1.95}.love-letter-reading-screen .letter-greeting{font-size:clamp(20px,4vw,27px)}.love-letter-reading-screen .letter-finished{text-align:center}.love-letter-reading-screen .letter-finished>span{color:#c34878}.love-letter-reading-screen .letter-finished p{color:#8f3c5c;font-size:18px;font-style:italic}.letter-reveal-all{margin:15px auto 0;display:block}.letter-reading-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.letter-reading-particles .letter-sparkle{animation:3s ease-out forwards sparkle-rise}.site-footer{color:#d9b8c7;text-align:center;background:#190711;padding:30px 20px;font-size:11px;line-height:1.8}.site-footer p{margin:5px 0}.site-footer span{color:var(--rose)}@media (width<=900px){.memory-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.birthday-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.memory-card-copy h3{font-size:23px}}@media (width<=600px){.birthday-journey{padding:85px 18px 35px}.journey-back{padding:9px 13px;font-size:11px;top:15px;left:14px}.journey-eyebrow{letter-spacing:2.4px;font-size:9px}.journey-description{font-size:13px;line-height:1.9}.journey-primary,.journey-secondary{padding:13px 19px;font-size:12px}.welcome-screen{min-height:100svh;padding:50px 20px}.welcome-top-decoration{gap:17px;margin-bottom:20px}.welcome-eyebrow{letter-spacing:2px;font-size:9px}.welcome-title{font-size:clamp(43px,12vw,65px)}.welcome-divider{margin:22px 0}.welcome-divider span{width:48px}.welcome-message{font-size:12px;line-height:1.9}.welcome-desktop-break{display:none}.welcome-secret{font-size:17px}.welcome-bottom-note{letter-spacing:1.2px;max-width:270px;margin:28px auto 0;font-size:8px}.welcome-corner{font-size:25px;bottom:16px}.welcome-corner-left{left:15px}.welcome-corner-right{right:15px}.birthday-menu{padding:80px 16px 45px}.birthday-menu-subtitle{margin-bottom:25px;font-size:12px}.birthday-menu-grid{gap:12px}.birthday-menu-card{border-radius:15px;min-height:165px;padding:17px 10px}.birthday-menu-icon{width:48px;height:48px;margin-bottom:12px;font-size:22px}.birthday-menu-card h3{font-size:20px}.birthday-menu-card p{font-size:10px}.love-story-gallery{padding:70px 15px 45px}.story-intro{margin-bottom:32px}.story-intro>p{font-size:12px}.memory-card-grid{gap:12px}.memory-card{border-radius:13px}.memory-card-copy{padding:13px 11px 15px}.memory-card-copy>span{letter-spacing:.8px;font-size:8px}.memory-card-copy h3{margin:8px 0;font-size:20px}.memory-card-copy p{font-size:10px}.memory-card-open{padding:6px 8px;font-size:8px;bottom:6px;right:6px}.memory-video-invitation{margin-top:40px;padding:27px 16px}.story-finale{margin-top:45px}.memory-page{padding:80px 16px 40px}.memory-back-button{padding:9px 12px;font-size:10px;top:15px;left:14px}.memory-detail-story{font-size:12px}.memory-secret-page{padding:20px 15px}.memory-secret-page p{font-size:20px}.memory-page-navigation{gap:8px}.memory-page-navigation button{padding:9px 10px;font-size:10px}.memory-page-navigation span{font-size:14px}.scratch-card-section,.giftbox-section,.birthday-cake-section,.magical-letter-section{padding:60px 16px}.scratch-heading>p,.giftbox-heading>p,.cake-heading>p,.magical-letter-heading>p{font-size:12px}.scratch-hidden-message{min-height:270px;padding:18px}.scratch-screen .scratch-card{margin-top:24px}.scratch-screen .scratch-hidden-message{min-height:250px;padding:14px}.scratch-screen .scratch-hidden-message h3{font-size:20px}.scratch-screen .scratch-hidden-message p{font-size:12px;line-height:1.7}.giftbox-stage,.cake-scene{min-height:265px}.giftbox-image{width:min(72vw,220px)}.cake-image{width:min(75vw,250px)}.giftbox-reveal,.cake-wish-reveal{padding:22px 17px}.giftbox-reveal h3,.cake-wish-reveal h3{font-size:28px}.giftbox-reveal>p,.cake-wish-reveal>p{font-size:12px}.giftbox-journey .giftbox-stage{min-height:260px}.giftbox-journey .giftbox-image{width:min(72vw,220px)}.giftbox-revealed-image{width:175px}.cake-journey-scene .cake-image{width:min(75vw,260px)}.cake-wish-image{width:170px}.letter-magic-stage{min-height:285px}.envelope-body{width:min(75vw,300px);height:180px}.envelope-flap{border-left-width:min(37.5vw,150px);border-right-width:min(37.5vw,150px)}.magical-letter-paper{padding:23px 17px}.letter-paper-label{letter-spacing:1.2px;font-size:9px}.letter-line{font-size:15px;line-height:1.85}.love-letter-reading-screen .magical-letter-paper{padding:23px 19px}.love-letter-reading-screen .letter-line{font-size:14px;line-height:1.85}.love-letter-reading-screen .letter-paper-label{letter-spacing:1.5px;font-size:9px}}@media (width<=360px){.birthday-menu-grid{grid-template-columns:1fr}.birthday-menu-card{min-height:135px}.memory-card-grid{grid-template-columns:1fr}.memory-card-image{aspect-ratio:5/4}.welcome-title{font-size:42px}.memory-page-navigation button{padding:8px;font-size:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.floating-heart{display:none}}.birthday-app{background:#190711;width:100%;height:100dvh;position:relative;overflow:hidden}.birthday-screen{z-index:2;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.surprise-scroll-area{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#c76b91 #260d1b;width:100%;height:100%;padding-bottom:24px;overflow:hidden auto}.surprise-scroll-area>*{max-width:100%}.surprise-navigation{z-index:10;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin:0 auto;padding:30px 20px 40px;display:flex;position:relative}.surprise-navigation button{color:#fff4f8;font:inherit;cursor:pointer;background:linear-gradient(135deg,#85264f,#5b1938);border:1px solid #ffbed780;border-radius:30px;padding:12px 20px;transition:transform .2s,background .2s}.surprise-navigation button:hover{background:#a63867;transform:translateY(-2px)}.surprise-navigation span{color:#f7c2d6;font-size:13px}.welcome-screen{overflow:hidden}.welcome-screen>*{width:100%;height:100%}.floating-hearts{pointer-events:none}@media (width<=600px){.surprise-navigation{gap:10px;padding:24px 14px 32px}.surprise-navigation button{padding:11px 15px;font-size:13px}}.surprise-navigation{justify-content:center;align-items:center;gap:22px;padding:24px 16px 36px;display:flex}.surprise-navigation .arrow-button{color:#fff4f8;cursor:pointer;background:linear-gradient(135deg,#85264f,#5b1938);border:1px solid #ffbed7a6;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;padding:0;font-size:26px;transition:transform .2s,opacity .2s;display:inline-flex}.surprise-navigation .arrow-button:hover:not(:disabled){transform:scale(1.1)}.surprise-navigation .arrow-button:disabled{opacity:.3;cursor:not-allowed}.surprise-navigation .surprise-counter{color:#f7c2d6;text-align:center;min-width:42px;font-size:13px}.birthday-app{overflow:hidden}.birthday-screen{min-width:0}.floating-hearts{z-index:1!important;pointer-events:none!important}.photo-carousel-screen{box-sizing:border-box;width:100%;max-width:680px;margin:0 auto;padding:12px 16px 20px}.carousel-gallery{padding:16px 0 10px;overflow-x:hidden}.carousel-gallery .journey-glow{pointer-events:none}.carousel-gallery .journey-eyebrow{letter-spacing:3px;margin:8px 0 10px;font-size:10px}.carousel-heading{margin:8px 0 12px;font-size:clamp(25px,7vw,38px);line-height:1.2}.carousel-subtitle{max-width:300px;margin:0 auto 20px;font-size:13px;line-height:1.6}.photo-carousel{grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:10px;width:100%;max-width:490px;margin:0 auto;display:grid!important}.carousel-photo-frame{aspect-ratio:4/5;border:1px solid #ffc1d8b3;border-radius:18px;min-width:0;max-height:390px;overflow:hidden;width:100%!important;height:auto!important}.carousel-photo-frame img{object-fit:contain;object-position:center;width:100%;height:100%}.photo-carousel-arrow{z-index:3;justify-self:center;width:36px;min-width:36px;height:36px;padding:0;font-size:27px;position:relative}.carousel-dots{gap:7px;margin:16px auto}.carousel-memory-caption{box-sizing:border-box;width:100%;max-width:450px;margin:0 auto;padding:0 10px}.carousel-memory-caption h2{font-size:20px;line-height:1.4}.carousel-memory-caption>p{font-size:13px;line-height:1.7}.carousel-reveal-button{white-space:normal;max-width:100%}.carousel-secret{overflow-wrap:anywhere}.carousel-swipe-hint{font-size:10px;line-height:1.6}.video-surprise{padding:20px 14px;overflow-x:hidden}.romantic-video-frame{box-sizing:border-box;width:100%}@media (width<=380px){.photo-carousel-screen{padding-left:12px;padding-right:12px}.photo-carousel{grid-template-columns:30px minmax(0,1fr) 30px;gap:7px}.photo-carousel-arrow{width:30px;min-width:30px;height:30px;font-size:24px}.carousel-heading{font-size:26px}.carousel-photo-frame{border-radius:14px}}.video-invitation,.video-reveal{width:100%;max-width:600px;margin:0 auto}.video-envelope-icon{filter:drop-shadow(0 8px 20px #f3a2c338);margin:28px auto 18px;font-size:76px;animation:3s ease-in-out infinite videoEnvelopeFloat;position:relative}.video-envelope-icon span{color:#ffb7d1;font-size:28px;position:absolute;top:-7px;right:calc(50% - 52px)}@keyframes videoEnvelopeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.video-memory-card{color:#fff1f7;width:min(100%,360px);min-height:250px;font:inherit;cursor:pointer;background:radial-gradient(at top,#bc467757,#0000 65%),linear-gradient(145deg,#401329,#200916 75%);border:1px solid #ffbed78c;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:13px;margin:28px auto;padding:28px 20px;transition:transform .25s,border-color .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 45px #00000047,inset 0 0 30px #ffb4d20d}.video-memory-card:hover{border-color:#f6a8c8;transform:translateY(-4px)}.video-card-sparkles{color:#f6b3ce;letter-spacing:5px}.video-card-icon{filter:drop-shadow(0 5px 12px #ff9dc538);font-size:54px}.video-card-title{font-size:21px;font-weight:700}.video-card-hint{color:#e7b8cb;font-size:12px}.video-card-seal{color:#ffb7d1;font-size:23px;position:absolute;bottom:14px;right:16px}.video-unwrapped-card{min-height:210px}.video-back-link{color:#f3b3cd;font:inherit;cursor:pointer;background:0 0;border:0;margin:8px 0 22px;padding:8px 0;display:block}.romantic-video-frame{margin:24px auto}.video-frame-decoration{color:#f5b0cb;text-align:center}.video-footer-message{color:#f3c5d7;max-width:440px;margin:22px auto;font-size:14px;line-height:1.8}@media (width<=600px){.video-envelope-icon{margin-top:20px;font-size:64px}.video-memory-card{border-radius:20px;min-height:220px;margin:22px auto}.video-card-icon{font-size:46px}.video-card-title{font-size:19px}}.video-surprise{box-sizing:border-box;color:#fff0f6;min-height:100%;padding:22px 16px 32px;position:relative;overflow-x:hidden}.video-surprise-content{z-index:2;text-align:center;width:100%;max-width:560px;margin:0 auto;position:relative}.admiration-intro,.admiration-reveal{animation:.65s both admirationAppear}@keyframes admirationAppear{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.admiration-eyebrow{color:#f3b4cd;letter-spacing:3px;margin:8px 0 18px;font-size:10px;font-weight:700;display:block}.admiration-heart{color:#f6a5c5;justify-content:center;align-items:center;gap:12px;margin:8px auto 16px;display:flex}.admiration-heart span:first-child,.admiration-heart span:nth-child(3){font-size:18px}.admiration-heart span:nth-child(2){text-shadow:0 0 25px #f6a5c559;font-size:37px;animation:2.2s ease-in-out infinite admirationHeartbeat}@keyframes admirationHeartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.admiration-pretitle{color:#e9c1d2;margin:0 0 8px;font-size:14px}.admiration-heading{color:#fff2f7;letter-spacing:-1px;margin:8px 0 14px;font-size:clamp(29px,6vw,43px);line-height:1.17}.admiration-heading span{color:#f3a2c3}.admiration-description{color:#e8c6d5;max-width:390px;margin:0 auto 22px;font-size:13px;line-height:1.85}.admiration-card{color:#fff0f6;width:min(100%,330px);font:inherit;text-align:center;cursor:pointer;background:radial-gradient(at top,#9a376347,#0000 70%),linear-gradient(145deg,#351024,#210a17);border:1px solid #f6b2cd80;border-radius:23px;flex-direction:column;align-items:center;margin:22px auto;padding:18px;transition:transform .25s,border-color .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 45px #00000040}.admiration-card:hover{border-color:#ffbed7e6;transform:translateY(-3px)}.admiration-card-top{color:#f4b5cd;letter-spacing:3px;margin-bottom:14px;font-size:9px;font-weight:700}.admiration-card-image{background:#1b0a13;border-radius:15px;width:100%;height:215px;display:block;position:relative;overflow:hidden}.admiration-card-image img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.admiration-image-heart{color:#ffc4d9;text-shadow:0 2px 10px #391020;font-size:25px;position:absolute;bottom:10px;right:12px}.admiration-card-caption{color:#fff0f6;margin-top:17px;font-size:19px;font-weight:600}.admiration-card-hint{color:#e6b4c9;margin-top:8px;font-size:11px;line-height:1.7}.admiration-footer{color:#cda2b6;letter-spacing:.3px;margin:18px auto 4px;font-size:11px}.admiration-film-icon{color:#ffc3d8;background:#f6b2cd14;border:1px solid #f6b2cd80;border-radius:50%;place-items:center;width:82px;height:82px;margin:18px 0 6px;font-size:42px;display:grid;box-shadow:0 0 30px #f6b2cd1a}.admiration-unwrapped{justify-content:center;min-height:225px}.admiration-video-wrap{box-sizing:border-box;background:#3a1127cc;border:1px solid #f6b2cd73;border-radius:20px;width:100%;margin:22px auto;padding:12px;animation:.45s both admirationAppear;box-shadow:0 15px 40px #00000040}.admiration-video-heading{color:#f5b4ce;justify-content:center;align-items:center;gap:12px;display:flex}.admiration-video-heading p{font-size:13px;font-weight:600}.romantic-video-player{object-fit:contain;background:#10060c;border-radius:13px;width:100%;max-height:55vh;display:block}.admiration-video-caption{color:#f0c5d6;margin:14px 4px 4px;font-size:12px;line-height:1.7}.admiration-back-button{color:#f5bfd3;font:inherit;cursor:pointer;background:#ffbed70f;border:1px solid #f6b2cd59;border-radius:24px;margin:6px auto 18px;padding:10px 16px;font-size:12px;display:inline-block}.admiration-back-button:hover{background:#ffbed721}@media (width<=380px){.video-surprise{padding:16px 12px 24px}.admiration-heading{font-size:29px}.admiration-description{font-size:12px}.admiration-card{padding:13px}.admiration-card-image{height:190px}}.closing-screen{box-sizing:border-box;color:#fff0f6;text-align:center;min-height:100%;padding:30px 18px 40px;overflow-x:hidden}.closing-content{z-index:2;width:100%;max-width:520px;margin:0 auto;animation:.9s both closingAppear;position:relative}@keyframes closingAppear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.closing-eyebrow{color:#f3b3cd;letter-spacing:3px;margin:8px 0 22px;font-size:10px;font-weight:700}.closing-photo-frame{background:linear-gradient(145deg,#7f3153,#2b1020);border:1px solid #ffc0d8b3;border-radius:150px 150px 24px 24px;width:min(72%,290px);margin:0 auto 24px;padding:10px;position:relative;box-shadow:0 0 35px #ef7ead26}.closing-photo-decoration{color:#f6c5d8;letter-spacing:5px;padding:5px 0 10px;font-size:16px}.closing-photo{object-fit:cover;object-position:center;background:#210b17;border-radius:140px 140px 16px 16px;width:100%;height:clamp(240px,38vh,360px);display:block}.closing-photo-heart{color:#fff0f6;background:#8d3157;border:1px solid #fff6;border-radius:50%;place-items:center;width:42px;height:42px;font-size:21px;display:grid;position:absolute;bottom:28px;right:-12px;box-shadow:0 5px 20px #00000040}.closing-small-text{color:#e7b6ca;letter-spacing:1px;margin:10px 0;font-size:13px}.closing-content h1{color:#fff1f7;margin:10px 0;font-size:clamp(30px,6vw,43px);line-height:1.2}.closing-content h1 span{color:#f3a2c3}.closing-divider{color:#f3a2c3;justify-content:center;align-items:center;gap:12px;margin:20px auto;display:flex}.closing-divider span{background:#f3a2c38c;width:48px;height:1px}.closing-message{color:#e8c6d5;max-width:410px;margin:0 auto 18px;font-size:13px;line-height:1.9}.closing-love{color:#ffd5e4;margin:20px auto;font-size:15px;line-height:1.9}.closing-signature{color:#f3a2c3;margin:20px 0;font-family:Georgia,serif;font-size:19px;font-style:italic}.closing-replay-button{margin:14px auto}.closing-bottom-hearts{color:#d984aa;letter-spacing:8px;margin-top:20px}@media (width<=380px){.closing-screen{padding:20px 14px 30px}.closing-photo-frame{width:min(76%,250px)}.closing-photo{height:230px}.closing-content h1{font-size:30px}.closing-message{font-size:12px}}.welcome-screen-shell{box-sizing:border-box;width:100%;min-height:100svh;overflow:hidden;padding:0!important}.welcome-screen{isolation:isolate;box-sizing:border-box;color:#fff6f8;background:radial-gradient(at top,#682843 0%,#321323 52%,#180912 100%);justify-content:center;align-items:center;width:100%;min-height:100svh;padding:26px 18px;display:flex;position:relative;overflow:hidden}.welcome-screen .welcome-background{z-index:-1;pointer-events:none;background:radial-gradient(circle at 15% 20%,#ffaecc1f,#0000 32%),radial-gradient(circle at 85% 80%,#f6c5891a,#0000 30%);position:absolute;inset:0}.welcome-screen .welcome-card{z-index:2;background:linear-gradient(155deg,#4b1c32,#2a1020 75%);border:1px solid #ffd8e27a;border-radius:25px;width:min(100%,420px);margin:auto;animation:.85s both welcome-card-appear;position:relative;overflow:hidden;box-shadow:0 25px 75px #0006,0 0 35px #ef95b81f}.welcome-screen .welcome-photo-frame{aspect-ratio:4/3;background:#321323;width:100%;height:auto;position:relative;overflow:hidden}.welcome-screen .welcome-photo{object-fit:contain;object-position:center;width:100%;height:100%;display:block}@media (width<=600px){.welcome-screen .welcome-photo-frame{aspect-ratio:4/3;height:auto}}.welcome-screen .welcome-photo-heart{z-index:1;color:#fff1f5;text-shadow:0 2px 15px #0000004d;font-size:30px;position:absolute;bottom:13px;right:17px}.welcome-screen .welcome-card-content{text-align:center;padding:25px 25px 24px}.welcome-screen .welcome-top-heart{color:#f8c8d9;letter-spacing:7px;margin-bottom:12px;font-size:20px;animation:3s ease-in-out infinite welcome-gentle-glow}.welcome-screen .welcome-eyebrow{color:#f1cb98;letter-spacing:.2em;margin:0 0 15px;font-size:9px;font-weight:600}.welcome-screen .welcome-script{color:#f7cad9;margin:0 0 9px;font-family:Georgia,Times New Roman,serif;font-size:18px;font-style:italic}.welcome-screen .welcome-title{color:#fff6f6;letter-spacing:-.035em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,7vw,45px);font-weight:400;line-height:1.13}.welcome-screen .welcome-title span{color:#f4b8ce;margin-top:7px;font-size:clamp(28px,5.5vw,36px);font-style:italic;line-height:1.2;display:block}.welcome-screen .welcome-divider{color:#f5c99c;justify-content:center;align-items:center;gap:12px;margin:17px auto;font-size:14px;display:flex}.welcome-screen .welcome-divider span{background:linear-gradient(90deg,#0000,#dcae7b);width:38px;height:1px}.welcome-screen .welcome-divider span:last-child{transform:rotate(180deg)}.welcome-screen .welcome-message{color:#f8e8ed;margin:0;font-size:12px;line-height:1.85}.welcome-screen .welcome-begin-button{z-index:4;color:#48192e;cursor:pointer;background:linear-gradient(120deg,#ffe2c8,#f7bfd3);border:1px solid #ffe4d1;border-radius:50px;justify-content:center;align-items:center;gap:13px;max-width:100%;min-height:46px;margin-top:21px;padding:0 23px;font-family:inherit;font-size:12px;font-weight:700;transition:transform .2s,box-shadow .2s;display:inline-flex;position:relative;box-shadow:0 5px 22px #0000002b}.welcome-screen .welcome-begin-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 27px #f4aec93d}.welcome-screen .welcome-begin-button:disabled{opacity:.8;cursor:wait}.welcome-screen .welcome-begin-button span{font-size:18px}.welcome-screen .welcome-footer{color:#d9b5c2;letter-spacing:.13em;margin:18px 0 0;font-size:8px}.welcome-screen .welcome-particles{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.welcome-screen .welcome-particle{color:#ffd0e0;opacity:0;text-shadow:0 0 13px #ffaecd99;animation-name:welcome-float;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;bottom:-35px}@keyframes welcome-float{0%{opacity:0;transform:translateY(0)rotate(0)}15%{opacity:.75}80%{opacity:.6}to{opacity:0;transform:translateY(-110vh)rotate(35deg)}}@keyframes welcome-card-appear{0%{opacity:0;transform:translateY(15px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes welcome-gentle-glow{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.welcome-screen.welcome-started .welcome-card{animation:.65s ease-in forwards welcome-card-exit}@keyframes welcome-card-exit{to{opacity:0;transform:scale(.97)}}@media (width<=600px){.welcome-screen{padding:16px 14px}.welcome-screen .welcome-card{border-radius:21px;width:min(100%,390px)}.welcome-screen .welcome-photo-frame{height:clamp(155px,25vh,205px)}.welcome-screen .welcome-card-content{padding:19px 15px 20px}.welcome-screen .welcome-top-heart{margin-bottom:9px;font-size:17px}.welcome-screen .welcome-eyebrow{letter-spacing:.16em;margin-bottom:12px;font-size:8px}.welcome-screen .welcome-script{font-size:16px}.welcome-screen .welcome-title{font-size:clamp(31px,9vw,38px)}.welcome-screen .welcome-title span{font-size:clamp(26px,7.5vw,32px)}.welcome-screen .welcome-divider{margin:13px auto}.welcome-screen .welcome-message{font-size:11px;line-height:1.8}.welcome-screen .welcome-begin-button{min-height:43px;margin-top:17px;padding:0 19px;font-size:11px}.welcome-screen .welcome-footer{margin-top:14px;font-size:7px}}@media (height<=700px) and (width>=601px){.welcome-screen{padding-top:12px;padding-bottom:12px}.welcome-screen .welcome-photo-frame{height:180px}.welcome-screen .welcome-card-content{padding-top:17px;padding-bottom:17px}}@media (prefers-reduced-motion:reduce){.welcome-screen *,.welcome-screen :before,.welcome-screen :after{transition:none!important;animation:none!important}}
