@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&family=Great+Vibes&display=swap";:root{font-family:DM Sans,sans-serif;color:#493b40;background:#f6f0eb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible{outline:3px solid #a483b2;outline-offset:3px}h1,h2,p{margin-top:0}h1,h2{font-family:"DM Serif Display",Georgia,serif;font-weight:400;letter-spacing:-.045em}h1{font-size:clamp(3.2rem,6vw,6.5rem);line-height:1.03}h2{font-size:clamp(2.9rem,5vw,5.3rem);line-height:1.06}h1 em,h2 em{font-weight:400;color:#9b78aa}p{line-height:1.7}.app-shell{min-height:100vh;position:relative;overflow:hidden;background:radial-gradient(circle at 4% 20%,#e8dcec99 0,transparent 32%),radial-gradient(circle at 95% 5%,#f4dfe399 0,transparent 34%),#f7f1ea}.grain{position:fixed;pointer-events:none;top:0;right:0;bottom:0;left:0;opacity:.16;z-index:15;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E")}.site-header,.site-footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;max-width:1460px;padding:27px 42px;margin:auto}.site-header{border-bottom:1px solid #b7a3a044}.brand-mark{font-family:"DM Serif Display",serif;font-size:1.45rem;letter-spacing:-.1em}.brand-mark span,.site-footer span{color:#bb8191}.header-note{font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:#967b81}.header-year{font-size:.7rem;letter-spacing:.16em;color:#876d71}.site-footer{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:#a99295;justify-content:center;gap:10px;padding-top:45px;padding-bottom:30px}.site-footer span{font-size:1.3rem}.eyebrow,.page-eyebrow{display:flex;gap:12px;align-items:center;color:#a47a94;font-size:.68rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase}.star{color:#d2ad62;font-size:1rem}.paper-card{background:#fffaf3;box-shadow:0 24px 70px #715a6030,0 2px 6px #715a6012;border:1px solid #e9ddd3}.primary-button{border:0;border-radius:100px;padding:16px 23px;background:#735567;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:19px;font-size:.81rem;font-weight:700;letter-spacing:.03em;transition:transform .2s,background .2s,box-shadow .2s;box-shadow:0 8px 22px #73556731}.primary-button:hover{transform:translateY(-2px);background:#5e4255;box-shadow:0 13px 25px #73556745}.primary-button span{font-size:1.15rem;font-weight:400}.script-note,.small-handwriting{font-family:Great Vibes,cursive;color:#a67790;font-size:2.2rem;line-height:1.2}.couple-art{overflow:hidden;position:relative}.couple-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 10%}.login-screen .site-header{border:0}.invitation{position:relative;max-width:1170px;min-height:610px;margin:35px auto 32px;display:grid;grid-template-columns:52% 48%;align-items:center;overflow:hidden;border-radius:3px}.invitation:after{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border:1px solid #c6aa8c88;pointer-events:none}.invitation>.eyebrow{position:absolute;top:42px;left:58px;z-index:2}.login-art{height:610px;align-self:stretch}.login-art img{object-position:34% 16%;width:125%;max-width:none;transform:translate(-7%)}.invitation-copy{padding:90px 70px 75px 30px;z-index:1}.invitation-copy h1{font-size:clamp(3.1rem,4.4vw,5.5rem);margin-bottom:22px}.invitation-copy>p:not(.script-note){max-width:390px;color:#7a6868;font-size:.94rem}.invitation-copy .script-note{margin-bottom:12px}.pass-form{margin-top:37px}.pass-form label{display:block;margin-bottom:10px;color:#8e7880;font-size:.69rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.pass-row{display:flex;gap:8px}.pass-row input{min-width:0;flex:1;border:1px solid #e0d3cc;border-radius:100px;background:#f8f3ed;padding:16px 21px;font-size:.8rem}.pass-row .primary-button{white-space:nowrap}.form-error{margin:12px 0 0;color:#b4445b;font-size:.82rem}.invitation-stamp{position:absolute;right:26px;bottom:24px;width:54px;height:54px;border:1px solid #c4a977;border-radius:50%;display:grid;place-items:center;color:#b49a68;font-family:"DM Serif Display",serif;font-size:1.5rem;transform:rotate(12deg)}.countdown-layout{max-width:1350px;margin:58px auto 20px;min-height:640px;display:grid;grid-template-columns:53% 47%;align-items:center;padding:0 55px;gap:30px}.countdown-copy{padding:20px 0 50px}.countdown-copy h1{margin:22px 0 28px;max-width:680px}.countdown-copy>p{max-width:560px;color:#7b6b70}.timer{display:flex;gap:13px;margin:38px 0 12px}.timer-unit{width:105px;height:111px;background:#fffaf5;border:1px solid #e2d4d0;border-radius:3px;display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:0 8px 16px #75636812}.timer-unit strong{font-family:"DM Serif Display",serif;font-size:2.65rem;font-weight:400;color:#765569;line-height:1}.timer-unit span{margin-top:11px;text-transform:uppercase;font-size:.58rem;letter-spacing:.19em;color:#a78e91}.countdown-foot{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.sealed-note{border-left:2px solid #cfad70;margin-top:44px;padding:6px 0 6px 22px;max-width:470px;color:#9a8185;font-family:"DM Serif Display",serif;font-style:italic;font-size:1.15rem;line-height:1.5}.sealed-note span{color:#b47787}.countdown-visual{height:600px;position:relative;border-radius:50% 50% 4px 4px;background:radial-gradient(ellipse at center,#faf3f2 5%,#eadce6 58%,transparent 70%)}.countdown-visual .couple-art{position:absolute;width:100%;height:95%;bottom:4%;left:0;filter:drop-shadow(0 15px 18px #7d657131)}.countdown-visual .couple-art img{object-position:center 5%}.visual-caption{position:absolute;top:5%;right:0;font-family:Great Vibes,cursive;font-size:2rem;color:#b78fa3;transform:rotate(7deg)}.gift-illustration{position:absolute;bottom:3%;left:39%;filter:drop-shadow(0 15px 17px #70536b42)}.gift-box{width:150px;height:95px;background:#bd97ae;border:7px solid #a77997;border-radius:4px;display:grid;place-items:center}.gift-box:before{content:"";position:absolute;left:71px;top:0;width:17px;height:124px;background:#ead2a5}.gift-box span{z-index:2;color:#fff7e7;font-size:1.7rem}.gift-lid{width:174px;height:32px;background:#a77997;border:5px solid #926684;margin-left:-12px}.float-heart{position:absolute;color:#c28fa4;font-size:2.5rem}.float-heart.h1{top:23%;left:6%;transform:rotate(-16deg)}.float-heart.h2{right:4%;bottom:32%;color:#d4b16e}.loading{min-height:68vh;display:grid;place-content:center;text-align:center;color:#9b7890;font-family:"DM Serif Display",serif;font-size:1.5rem}.story-screen .site-header{display:none}.storybook-nav{max-width:1460px;margin:auto;padding:24px 42px;display:flex;justify-content:space-between;align-items:center}.book-brand{font-family:"DM Serif Display",serif;font-size:1.5rem}.book-brand em{color:#a17fac}.nav-actions{display:flex;gap:10px}.quiet-button,.text-button{border:0;background:none;color:#947b85;font-size:.75rem;letter-spacing:.06em}.quiet-button{border:1px solid #cfbcc7;border-radius:100px;padding:10px 17px}.quiet-button:hover,.text-button:hover{color:#6a4c62}.chapter-progress{height:3px;background:#e9dbe3}.chapter-progress div{height:100%;background:#a889ae;transition:width .4s}.book-wrap{max-width:1150px;min-height:800px;margin:45px auto 0;padding:0 20px}.chapter-rail{display:flex;justify-content:space-between;align-items:center;color:#a57f96;font-size:.67rem;font-weight:700;letter-spacing:.2em}.rail-dots{display:flex;gap:8px}.rail-dots button{border:1px solid #aa8d9f;border-radius:50%;background:transparent;width:9px;height:9px;padding:0}.rail-dots button.active{background:#9f7b99;transform:scale(1.2)}.book-page{background:#fffbf6;min-height:680px;margin-top:17px;padding:70px 85px 60px;text-align:center;border:1px solid #e4d8d0;box-shadow:0 26px 55px #6e596828;position:relative;animation:page-in .45s ease both}.book-page:before,.book-page:after{content:"";position:absolute;top:12px;bottom:12px;width:1px;background:#d8c9c180}.book-page:before{left:12px}.book-page:after{right:12px}.book-page .page-eyebrow{justify-content:center;margin-bottom:22px}.book-page h1,.book-page h2{margin:0 auto 19px;max-width:860px}.book-page .lead{font-family:"DM Serif Display",serif;font-size:1.45rem;color:#866e7b;margin:0 auto 18px;max-width:700px}.chapter-intro{max-width:580px;margin:0 auto 30px;color:#8d7c7e;font-size:.91rem}.chapter-art{height:330px;max-width:530px;margin:auto}.chapter-art img{object-position:center top}.book-page .small-handwriting{margin:10px 0 0}.book-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:27px 0 10px}.book-controls>span{font-family:"DM Serif Display",serif;font-style:italic;color:#b198a7}.gallery{max-width:550px;margin:auto}.gallery-frame{touch-action:pan-y}.polaroid{background:#fff;padding:14px 14px 20px;margin:0;box-shadow:0 15px 35px #54464a27;transform:rotate(-2deg)}.polaroid img,.photo-awaiting{width:100%;height:310px;object-fit:cover;background:#eee1e9}.photo-awaiting{display:grid;place-content:center;gap:0;color:#ad8fa3}.photo-awaiting span{font-family:"DM Serif Display",serif;font-size:5rem;line-height:1}.photo-awaiting small{letter-spacing:.14em;text-transform:uppercase;font-size:.7rem}.polaroid figcaption{margin:14px 8px 0;text-align:left;font-family:"DM Serif Display",serif;font-size:1.05rem;color:#74656a;line-height:1.45}.photo-number{display:block;color:#b8979d;font:700 .56rem DM Sans,sans-serif;letter-spacing:.2em;margin-bottom:5px}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin:25px auto 0;color:#987b8d;font-family:"DM Serif Display",serif;font-size:1.05rem}.gallery-controls button{width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid #d8c8d2;color:#795b73;font-size:1.2rem}.gallery-controls button:hover{background:#eee0e9}.gallery-controls i{font-style:normal;color:#cbb7c2}.gesture-hint{color:#ad98a1;font-size:.73rem;margin:13px auto 0}.reason-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:35px;text-align:left}.reason{background:#f8f0ee;border:1px solid #eee0e0;padding:14px 18px;display:flex;gap:20px;align-items:baseline}.reason:nth-child(4n+2),.reason:nth-child(4n+3){background:#f3eef5}.reason span{font-family:"DM Serif Display",serif;color:#bd92aa;font-size:1.25rem}.reason p{margin:0;line-height:1.4;font-size:.84rem}.cake-section{margin:45px auto 12px}.cake{position:relative;height:300px;width:350px;margin:auto}.cake-body{position:absolute;bottom:30px;left:40px;width:270px;height:140px;border-radius:12px 12px 38px 38px;background:linear-gradient(100deg,#e8acc1,#f9d6df 45%,#d894ae);border-bottom:15px solid #bd7e9d;box-shadow:inset -13px 0 #fff3,0 13px 25px #95637b33;display:grid;place-items:center;color:#fff3ed;font:2.8rem "DM Serif Display",serif}.cake-top{position:absolute;left:40px;bottom:143px;width:270px;height:48px;border-radius:45%;background:#fff1e5;z-index:2;box-shadow:0 15px #fff1e5}.cake-plate{position:absolute;bottom:13px;left:9px;width:332px;height:31px;border-radius:50%;background:#d8c5d8;border-bottom:8px solid #b99eb7}.candle{position:absolute;z-index:3;left:168px;bottom:180px;height:63px;width:15px;border-radius:4px;background:repeating-linear-gradient(-30deg,#fff3eb 0,#fff3eb 8px,#dca1b7 8px,#dca1b7 16px)}.candle i{position:absolute;bottom:66px;left:2px;width:12px;height:22px;background:#f6be66;border-radius:80% 0 80% 80%;transform:rotate(-45deg);box-shadow:0 0 25px 8px #f5bf7d8a;animation:flicker 1.2s infinite alternate}.cake.wished .candle i{display:none}.cake-prompt{font-family:"DM Serif Display",serif;font-style:italic;font-size:1.2rem;color:#8c7082}.letter-wrap{max-width:730px;margin:40px auto 0}.envelope{width:270px;height:165px;position:relative;border:0;background:#dbb6c3;box-shadow:0 15px 28px #906f7f30;overflow:hidden;transition:transform .3s}.envelope:hover{transform:translateY(-4px)}.envelope:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-left:135px solid #eac9d3;border-right:135px solid #e4c0cb;border-top:83px solid transparent;border-bottom:83px solid transparent;z-index:2}.envelope-flap{position:absolute;left:0;top:0;width:0;height:0;border-left:135px solid transparent;border-right:135px solid transparent;border-top:95px solid #f0d0d9;z-index:3;transform-origin:top;transition:transform .4s}.envelope.opened .envelope-flap{transform:rotateX(180deg)}.envelope-seal{position:absolute;z-index:4;top:69px;left:119px;border-radius:50%;background:#ae829b;color:#fff;width:34px;height:34px;display:grid;place-items:center}.envelope.opened .envelope-seal{opacity:0}.letter-paper{animation:page-in .55s ease both;text-align:left;background:#fffdf8;border:1px solid #e7dbcf;padding:38px 50px;margin-top:30px;box-shadow:0 12px 25px #7862651d}.letter-paper p{font-family:"DM Serif Display",serif;font-size:1.04rem;color:#60515a;line-height:1.75}.letter-paper .script-note{font-family:Great Vibes,cursive;color:#a67790;font-size:2.1rem}.letter-paper .letter-signoff{text-align:right;color:#a27892;font-style:italic;font-size:1.2rem}.voice-note{border-top:1px solid #e9d5df;padding-top:22px;display:grid;gap:10px;color:#9b7890;font-size:.78rem}.voice-note audio{max-width:100%;width:100%}.voice-soon{border-top:1px solid #ead9e2;padding-top:20px;color:#ad939e!important;font-style:italic}.finale-art{height:350px;margin:30px auto}.finale-words{font-family:Great Vibes,cursive;color:#aa778f;font-size:3rem;margin:25px auto 0}.finale-words span{font-size:1.6rem;margin:0 12px;color:#d0a76b}@keyframes flicker{to{transform:rotate(-36deg) scale(.85);opacity:.78}}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.invitation{margin:20px 24px;grid-template-columns:1fr}.invitation>.eyebrow{position:relative;top:auto;left:auto;padding:32px 35px 0}.login-art{height:330px}.login-art img{width:100%;transform:none;object-position:center top}.invitation-copy{padding:0 35px 55px}.countdown-layout{grid-template-columns:1fr;padding:0 35px;margin:35px auto}.countdown-copy{padding-bottom:0}.countdown-visual{height:470px;max-width:600px;width:100%;margin:auto}.book-wrap{margin-top:25px}.book-page{padding:55px 42px}.reason-grid{grid-template-columns:1fr}.reason{padding:10px 15px}.site-header,.site-footer,.storybook-nav{padding-left:25px;padding-right:25px}}@media(max-width:600px){.site-header{padding-top:20px;padding-bottom:16px}.header-note{display:none}.header-year{font-size:.61rem}.invitation{margin:14px 13px 0;min-height:auto}.invitation>.eyebrow{padding:28px 24px 0;font-size:.58rem}.login-art{height:280px}.login-art img{object-position:center top}.invitation-copy{padding:0 25px 55px}.invitation-copy h1{font-size:3rem}.pass-row{flex-direction:column}.pass-row input,.pass-row button{width:100%}.invitation-stamp{width:39px;height:39px;font-size:1rem;bottom:12px;right:12px}.countdown-layout{padding:0 23px;gap:0}.countdown-copy h1{font-size:3.5rem}.countdown-copy>p{font-size:.9rem}.timer{gap:6px}.timer-unit{height:84px;width:25%}.timer-unit strong{font-size:2rem}.timer-unit span{font-size:.49rem;letter-spacing:.08em}.countdown-visual{height:380px}.gift-illustration{transform:scale(.7);transform-origin:bottom left}.sealed-note{font-size:1rem;margin-top:25px}.storybook-nav{padding:14px 18px}.book-brand{font-size:1.05rem}.nav-actions{gap:5px}.quiet-button{padding:7px 8px;font-size:.6rem}.book-wrap{padding:0 11px;margin-top:20px}.chapter-rail{padding:0 9px;font-size:.55rem}.book-page{padding:43px 23px 48px;min-height:600px}.book-page h1{font-size:3.3rem}.book-page h2{font-size:2.85rem}.book-page .lead{font-size:1.13rem}.chapter-art{height:300px}.chapter-intro{font-size:.84rem}.polaroid img,.photo-awaiting{height:240px}.polaroid figcaption{font-size:.88rem}.reason-grid{gap:7px}.reason p{font-size:.77rem}.book-controls{padding:22px 3px;gap:8px}.book-controls>span{display:none}.book-controls .primary-button{padding:12px 18px}.cake{transform:scale(.8);transform-origin:top center;margin-bottom:-55px}.letter-paper{padding:27px 25px}.letter-paper p{font-size:.94rem}.finale-words{font-size:2.4rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.login-art{height:610px;-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 81%,transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 81%,transparent 100%)}.login-art img{width:100%;transform:none;object-position:center 46%}.countdown-visual{border-radius:0;background:transparent;height:610px;-webkit-mask-image:radial-gradient(ellipse 78% 73% at 50% 50%,#000 56%,transparent 100%);mask-image:radial-gradient(ellipse 78% 73% at 50% 50%,#000 56%,transparent 100%)}.countdown-visual .couple-art{height:100%;width:100%;top:0;right:0;bottom:0;left:0;filter:none}.countdown-visual .couple-art img{object-fit:cover;object-position:center}.visual-caption{z-index:2;top:3%;right:3%}.chapter-art{-webkit-mask-image:radial-gradient(ellipse 60% 66% at 50% 50%,#000 47%,transparent 100%);mask-image:radial-gradient(ellipse 60% 66% at 50% 50%,#000 47%,transparent 100%)}.chapter-art img{object-fit:cover;object-position:center 65%}.finale-art{height:420px;max-width:710px;margin:20px auto 27px;-webkit-mask-image:radial-gradient(ellipse 56% 58% at 50% 50%,#000 43%,transparent 100%);mask-image:radial-gradient(ellipse 56% 58% at 50% 50%,#000 43%,transparent 100%)}.finale-art img{object-fit:cover;object-position:center 63%}.cake-art{display:block;width:min(430px,100%);height:auto;margin:0 auto 2px;filter:drop-shadow(0 18px 13px #a66b8625);transition:transform .4s ease}.cake-art.wished{transform:scale(.98)}.cake-section{margin:18px auto 10px}.envelope-art{display:block;width:min(360px,85%);height:auto;margin:0 auto;border:0;background:transparent;padding:0;transition:transform .3s ease,filter .3s ease;filter:drop-shadow(0 16px 13px #8a607231)}.envelope-art:hover{transform:translateY(-6px) rotate(-1deg);filter:drop-shadow(0 20px 16px #8a60723d)}.envelope-art.opened{transform:translateY(-5px) rotate(-3deg)}.envelope-art img{width:100%;height:auto;display:block}.invitation>.eyebrow{left:auto;right:73px;top:44px}.visual-caption{display:none}@media(max-width:900px){.login-art{height:340px;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 78%,transparent 100%)}.login-art img{object-position:center 65%}.countdown-visual{height:470px}}@media(max-width:900px){.invitation>.eyebrow{left:35px;right:auto;top:auto}}@media(max-width:600px){.login-art{height:280px}.invitation>.eyebrow{left:auto}.countdown-visual{height:390px}.finale-art{height:270px}.cake-art{width:min(330px,100%)}.envelope-art{width:min(300px,90%)}}.invitation-timer{margin:22px 0 25px;padding:17px 18px;background:#f3eaf0;border:1px solid #e7d8e3;border-radius:14px}.invitation-timer>span{display:block;margin-bottom:12px;color:#8e7285;font-size:.65rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.timer-compact{margin:0;gap:8px}.timer-compact .timer-unit{height:72px;min-width:0;flex:1;background:#fffaf5;border:1px solid #eadfe5;box-shadow:none}.timer-compact .timer-unit strong{font-size:1.75rem}.timer-compact .timer-unit span{font-size:.55rem}.preview-banner{position:relative;z-index:3;text-align:center;padding:9px 15px;background:#6f5369;color:#fff;font-size:.72rem;letter-spacing:.04em}@media(max-width:600px){.invitation-timer{padding:13px 10px}.timer-compact{gap:5px}.timer-compact .timer-unit{height:65px}.timer-compact .timer-unit strong{font-size:1.45rem}.timer-compact .timer-unit span{font-size:.46rem}}.book-page.chapter-3{background:radial-gradient(ellipse at 50% 51%,#513b57,#281d34 56%,#15111f);border-color:#69536b;color:#fff8f1;box-shadow:0 27px 75px #1a10244d}.book-page.chapter-3:before,.book-page.chapter-3:after{background:#d9b8ce48}.chapter-3 .page-eyebrow{color:#e6b6d3}.chapter-3 h2{color:#fff8f1}.chapter-3 h2 em{color:#f2c2d9}.chapter-3 .chapter-intro{color:#ead8e5}.chapter-3 .small-handwriting{color:#f3c2d7}.chapter-3 .cake-section{margin:12px auto 17px}.cake-stage{position:relative;isolation:isolate;width:min(500px,100%);margin:0 auto}.cake-stage:before{content:"";position:absolute;top:12%;right:4%;bottom:5%;left:4%;border-radius:50%;background:radial-gradient(circle at 50% 32%,#f9dba063 0%,#ddae8350 25%,#c48dab24 50%,transparent 74%);filter:blur(17px);opacity:1;transition:opacity .75s ease;pointer-events:none}.cake-stage.wished:before{opacity:.15}.cake-tap{display:block;position:relative;z-index:1;width:min(430px,100%);aspect-ratio:1;margin:0 auto;padding:0;border:0;background:transparent;cursor:pointer;transition:transform .2s ease}.cake-tap:not(:disabled):hover{transform:scale(1.025)}.cake-tap:disabled{opacity:1;cursor:default}.cake-tap .cake-art{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;margin:0;object-fit:contain;filter:drop-shadow(0 16px 18px #08060f90);transition:opacity .6s ease,transform .9s ease}.cake-stage .cake-art-lit{opacity:1;transform:scale(1)}.cake-stage .cake-art-smoke{opacity:0;transform:translateY(10px) scale(.96)}.cake-stage.wished .cake-art-lit{opacity:0;transform:scale(.985)}.cake-stage.wished .cake-art-smoke{opacity:1;transform:translateY(-3px) scale(1)}.chapter-3 .cake-prompt{color:#f8e4ed;margin:5px auto 0;max-width:510px}.wish-reveal{max-width:560px;margin:25px auto 5px;padding:19px 23px;border:1px solid #e5bdc880;border-radius:17px;background:#fff4ef12;box-shadow:0 16px 42px #0d091a38;animation:wish-appear .75s .65s both}.wish-reveal p{margin:0;color:#ffe8dc;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(1.25rem,3vw,1.7rem);line-height:1.35}@keyframes wish-appear{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.cake-tap{width:min(330px,100%)}.chapter-3 .cake-section{margin:4px auto 12px}.wish-reveal{margin-top:18px;padding:16px 18px}}@media(prefers-reduced-motion:reduce){.wish-reveal{animation-delay:0ms}.cake-tap .cake-art,.cake-stage:before{transition-duration:.01ms}}.pass-hint{margin:-2px 0 12px;color:#9b7c8d;font-size:.78rem;line-height:1.45}.love-question{max-width:660px;margin:0 auto}.love-art{height:250px;display:grid;place-items:center;position:relative;isolation:isolate}.love-art:before{content:"";position:absolute;z-index:-1;width:80%;height:75%;border-radius:50%;background:radial-gradient(ellipse,#f4dfe899 0%,#eee1f388 48%,transparent 75%);filter:blur(13px)}.love-art img{display:block;width:min(440px,100%);height:100%;object-fit:contain;filter:drop-shadow(0 12px 12px #98788624)}.love-choice-stage{position:relative;width:min(100%,470px);height:188px;margin:-10px auto 0}.love-choice-stage button{white-space:nowrap}.love-yes{position:absolute;z-index:2;left:50%;top:50%;min-width:145px;transform:translate(-50%,-50%)}.love-yes:hover{transform:translate(-50%,-53%)}.love-no{position:absolute;z-index:3;width:100px;min-height:49px;border:1px solid #d4bdca;border-radius:100px;background:#fff9f8;color:#936f83;font-size:.83rem;font-weight:700;box-shadow:0 8px 20px #9a708824;transition:left .18s ease,top .18s ease,transform .18s ease;touch-action:none}.love-no-0{left:55%;top:7%}.love-no-1{left:6%;top:68%}.love-no-2{left:55%;top:68%}.love-no-3{left:6%;top:7%}.love-answer{min-height:102px;display:grid;place-items:center;color:#966e88}.love-answer p{font-family:"DM Serif Display",Georgia,serif;font-size:1.18rem;line-height:1.35;margin:0 auto;max-width:540px}.love-answer .love-tease{font-family:DM Sans,sans-serif;font-size:.8rem;color:#aa8d9b}.love-meter{width:min(330px,85%);margin:15px auto 0;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#aa8096;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;flex-wrap:wrap}.love-meter strong{font-family:"DM Serif Display",serif;font-size:1.35rem;color:#a65e88}.love-meter div{width:100%;height:8px;background:#f2e4ed;border-radius:30px;overflow:hidden}.love-meter i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#cda9cc,#d692ab,#e9b4b3);border-radius:30px;animation:love-fill .9s ease both}.love-hearts{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;color:#d98ca7}.love-hearts span{position:absolute;left:50%;top:25%;font-size:1.8rem;animation:love-float 1.8s ease-in-out infinite alternate}.love-hearts span:nth-child(2){left:22%;top:53%;animation-delay:.4s}.love-hearts span:nth-child(3){left:75%;top:54%;animation-delay:.8s}@keyframes love-fill{0%{width:0}to{width:100%}}@keyframes love-float{to{transform:translateY(-16px) rotate(9deg);opacity:.55}}@media(max-width:600px){.love-art{height:210px}.love-choice-stage{height:180px}.love-answer p{font-size:1.04rem}}.photo-media{position:relative;width:100%;min-height:280px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f3e9ed,#f9f2e9)}.photo-media img{display:block;width:auto;height:auto;max-width:100%;max-height:min(78vh,760px);object-fit:contain;object-position:center;background:transparent}.photo-media img.photo-rotate-left{transform:rotate(-90deg)}.photo-loading img,.photo-error img{opacity:0}.photo-loading-indicator{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#896d80;font-size:.82rem;background:linear-gradient(135deg,#f3e9ed,#f9f2e9)}.photo-loading-heart{font-family:"DM Serif Display",serif;font-size:2.4rem;line-height:1;animation:photo-heartbeat 1.1s ease-in-out infinite alternate}.photo-loading-indicator button{min-height:44px;padding:8px 18px;border:1px solid #c8aebd;border-radius:100px;background:#fffaf6;color:#78546d}@keyframes photo-heartbeat{to{transform:scale(1.16);opacity:.55}}.online-party{max-width:680px;margin:0 auto;position:relative;isolation:isolate}.party-art{height:380px;position:relative;display:grid;place-items:center}.party-art:before{content:"";position:absolute;z-index:-1;top:12%;right:4%;bottom:12%;left:4%;border-radius:50%;background:radial-gradient(ellipse,#f5e4ee 0%,#ece5f495 55%,transparent 75%);filter:blur(16px)}.party-art img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 11px 15px #a682912c)}.party-message{font-family:"DM Serif Display",Georgia,serif;font-size:clamp(1.15rem,2.5vw,1.5rem);color:#805e78;line-height:1.5;max-width:570px;margin:2px auto 20px}.party-button{position:relative;z-index:2}.party-confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.party-confetti i{position:absolute;top:0;left:calc(var(--piece) * 4%);width:9px;height:15px;border-radius:3px;background:#d7a0ba;opacity:0;animation:confetti-fall 1.8s ease-out both;animation-delay:calc(var(--piece) * 26ms)}.party-confetti i:nth-child(3n){background:#d0b36e}.party-confetti i:nth-child(4n){background:#b8a4cd}.party-confetti i:nth-child(5n){background:#f0bfa7}@keyframes confetti-fall{10%{opacity:1}to{opacity:0;transform:translate(var(--drift),430px) rotate(620deg)}}.birthday-gifts{max-width:760px;margin:18px auto 0}.gift-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.gift-card{min-height:235px;padding:15px 24px 20px;border:1px solid #ead9df;border-radius:5px;background:radial-gradient(circle at 50% 45%,#f6e7ef,#fffaf6 60%);box-shadow:0 8px 18px #9f7d8d13;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;color:#725769;text-align:center;transition:transform .24s,box-shadow .24s,border-color .24s}.gift-card:hover{transform:translateY(-4px);box-shadow:0 13px 24px #9f7d8d2b;border-color:#d6b9c7}.gift-card img{display:block;width:130px;height:110px;object-fit:contain;margin:1px auto 7px;filter:drop-shadow(0 6px 6px #9e7d8b22)}.gift-card strong{font-family:"DM Serif Display",Georgia,serif;font-size:1.25rem;font-weight:400}.gift-number{align-self:flex-start;color:#ba94a5;font-size:.57rem;font-weight:700;letter-spacing:.2em}.gift-description{display:block;max-width:270px;margin-top:8px;color:#9d8290;font-size:.76rem;line-height:1.5}.gift-open{background:radial-gradient(circle at 50% 40%,#f5e5ed,#fffaf6 65%);border-color:#d7b4c3}.gift-open .gift-description{color:#735b69;font-size:.83rem}.all-gifts-open{font-family:Great Vibes,cursive;color:#a97b93;font-size:2rem;margin:23px 0 0}.final-keepsake{max-width:500px;margin:45px auto 0;padding:17px 17px 22px;background:#fff;border:1px solid #ede0d8;box-shadow:0 19px 39px #725d6733;transform:rotate(-1deg)}.final-keepsake img{display:block;width:100%;height:auto;object-fit:contain}.keepsake-label{display:block;text-align:left;margin-bottom:12px;color:#a47990;font-size:.6rem;font-weight:700;letter-spacing:.22em}.final-keepsake figcaption{margin-top:18px;font-family:"DM Serif Display",Georgia,serif;font-size:1.1rem;color:#74566d;line-height:1.5}@media(max-width:600px){.photo-media{min-height:220px}.photo-media img{height:auto;max-height:72vh}.party-art{height:270px}.party-message{font-size:1.1rem}.gift-grid{grid-template-columns:1fr;gap:12px}.gift-card{min-height:205px}.gift-card img{height:95px;width:115px}.final-keepsake{margin-top:33px;padding:12px 12px 20px}.final-keepsake figcaption{font-size:.96rem}}@media(prefers-reduced-motion:reduce){.party-confetti{display:none}}
