:root{font-family:DM Sans,Arial,sans-serif;color:#683846;background:#fbecef;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--pink-mist: #fcebed;--paper: #fffaf8;--rose: #c77b90;--rose-deep: #8b3e56;--rose-dark: #642c42;--ink: #693849;--muted: #9c7780;--stroke: #edd0d5;--shadow: 0 20px 65px rgba(142, 68, 89, .12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent;cursor:pointer}button:disabled{cursor:default}button:focus-visible,input:focus-visible{outline:3px solid #cf7798;outline-offset:4px}button,a{touch-action:manipulation}::selection{background:#ebb3c4;color:#663044}#root{min-height:100svh}.app-shell{min-height:100svh;position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 48% 25%,rgba(255,255,255,.9),transparent 55%),linear-gradient(142deg,#f9e4e7,#fff5f5 48%,#f8dfe6)}.app-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.23;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='.48' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");z-index:0}.global-content{min-height:100svh;max-width:1550px;margin:auto;position:relative;z-index:3;display:flex;flex-direction:column}.ambient-orb{position:absolute;border-radius:50%;filter:blur(35px);pointer-events:none;z-index:0}.orb-one{width:510px;height:480px;top:-200px;left:3%;background:#ffffff85}.orb-two{width:430px;height:450px;right:-160px;top:31%;background:#f4b2c230}.orb-three{width:500px;height:500px;left:-210px;bottom:-260px;background:#f3bccd3b}.blossom{display:block;position:absolute;pointer-events:none;z-index:1;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;opacity:.77;filter:drop-shadow(0 15px 15px rgba(163,71,100,.08))}.flowers-left{width:min(39vw,590px);left:-155px;top:8%;transform:rotate(-24deg);animation:flowerSwing 12s ease-in-out infinite alternate}.flowers-right{width:min(43vw,650px);right:-230px;bottom:-11%;transform:rotate(160deg);animation:flowerSwingRight 15s ease-in-out infinite alternate}.floating-petals{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;overflow:hidden}.petal{position:absolute;width:9px;height:20px;opacity:.47;border-radius:90% 10% 70% 20%;background:linear-gradient(125deg,#ffd2df,#e99eaf);animation:petalFloat 13s ease-in-out infinite alternate}.p-0{left:8%;top:17%;transform:rotate(25deg);animation-delay:-5s}.p-1{left:20%;top:69%;transform:rotate(55deg);animation-delay:-7s}.p-2{left:73%;top:7%;transform:rotate(110deg);animation-delay:-3s}.p-3{left:83%;top:23%;transform:rotate(24deg);animation-delay:-9s}.p-4{left:11%;top:85%;transform:rotate(180deg);animation-delay:-4s}.p-5{left:91%;top:81%;transform:rotate(60deg);animation-delay:-11s}.p-6{left:45%;top:17%;transform:rotate(130deg);animation-delay:-2s}.p-7{left:59%;top:90%;transform:rotate(25deg);animation-delay:-1s}.p-8{left:30%;top:28%;animation-delay:-10s}.p-9{left:67%;top:62%;animation-delay:-4s}.p-10{left:40%;top:81%;animation-delay:-8s}.p-11{left:78%;top:76%;animation-delay:-12s}.site-header{display:flex;justify-content:space-between;align-items:center;min-height:80px;padding:17px clamp(22px,5.2vw,86px);gap:15px}.header-brand{display:flex;align-items:center;gap:9px;color:#a35d75;letter-spacing:.19em;text-transform:uppercase;font-size:11px;font-weight:700}.header-brand svg{color:#b86581}.header-actions{display:flex;gap:12px;align-items:center}.header-icon,.restart-link{background:#ffffff59;border:1px solid rgba(194,121,144,.23);color:#a06479;transition:background .2s,transform .2s}.header-icon{height:35px;width:35px;border-radius:50%;display:grid;place-items:center}.restart-link{padding:9px 14px;border-radius:100px;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600}.header-icon:hover,.restart-link:hover{background:#ffffffd9;transform:translateY(-2px)}.step-indicator{display:flex;align-items:center;justify-content:center;gap:14px;color:#a47580;min-height:33px;font-size:11px;letter-spacing:.09em}.step-label{color:var(--rose-deep);font-weight:700;font-variant-numeric:tabular-nums}.step-label i{font-style:normal;color:#c69da8;font-weight:400;padding:0 2px}.step-bars{display:flex;gap:5px;align-items:center}.step-bars button{width:26px;height:4px;border:none;border-radius:20px;background:#e5cbd1;padding:0;transition:background .2s,width .2s}.step-bars button.active{background:#b76680}.step-bars button:disabled{opacity:.8}.step-bars button:not(:disabled):hover{background:#833e57}.step-name{min-width:110px;font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.main-content{flex:1;display:flex;flex-direction:column;animation:screenEntrance .65s cubic-bezier(.2,.74,.23,1) both}.screen{width:100%;flex:1;max-width:1160px;margin:0 auto;position:relative;display:flex;flex-direction:column;justify-content:center;padding:30px 36px 46px}.screen-centered{align-items:center}.site-footer{height:40px;display:flex;align-items:center;justify-content:center;gap:8px;color:#b98b96;font-size:10px;letter-spacing:.1em;text-transform:uppercase;text-align:center;padding:0 12px 10px}.site-footer svg{color:#bf7990}.script-heading{font-family:Great Vibes,Brush Script MT,cursive;font-weight:400;color:var(--rose-deep);line-height:1.11;letter-spacing:.005em;text-shadow:0 4px 10px rgba(192,100,127,.04);margin:0}.flourish{display:flex;align-items:center;justify-content:center;gap:10px;color:#c86e88;font:32px Georgia,serif;margin:12px auto 15px}.flourish span{width:50px;height:1px;background:linear-gradient(90deg,transparent,#cc8397)}.flourish span:last-child{transform:scaleX(-1)}.flourish--small{font-size:26px;gap:8px;margin:6px auto 14px}.flourish--small span{width:31px}.eyebrow{display:flex;justify-content:center;align-items:center;gap:10px;color:#b17787;font-size:10px;letter-spacing:.26em;text-transform:uppercase;font-weight:700;margin-bottom:18px}.eyebrow-line{display:block;width:19px;height:1px;background:#d7a7b5}.eyebrow--left{justify-content:flex-start;margin-bottom:12px}.screen-heading{width:100%}.screen-heading .script-heading{font-size:clamp(54px,6vw,86px)}.screen-subtitle{font-size:14px;line-height:1.8;color:#9b7581;max-width:550px;margin:0 auto}.screen-heading:not(.text-center) .screen-subtitle{margin-left:0}.text-center{text-align:center}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:15px;background:linear-gradient(135deg,#ca8096,#ad5c77);border:1px solid rgba(143,66,88,.15);min-width:220px;padding:16px 23px;border-radius:100px;color:#fff;box-shadow:0 10px 23px #a9506e2e,inset 0 1px #ffffff45;font-size:13px;font-weight:700;letter-spacing:.02em;transition:transform .22s,box-shadow .22s}.primary-button:hover{transform:translateY(-3px);box-shadow:0 15px 29px #a9506e3b}.primary-button svg{flex-shrink:0}.primary-button--light{background:#fffaf9;color:#a75b73}.text-button{display:inline-flex;align-items:center;gap:8px;padding:12px 3px;color:#ab7886;background:none;border:0;font-size:12px;font-weight:600;transition:color .2s,transform .2s}.text-button:hover{color:#78354d;transform:translate(-3px)}.screen-actions{display:flex;gap:20px;justify-content:space-between;align-items:center;margin:25px auto 0;width:100%;max-width:540px}.screen-actions--wide{max-width:1010px;margin-top:26px}.small-icon-emblem{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#ffffff8c;border:1px solid #efd1da;color:#bd768c;margin:0 auto 16px;box-shadow:0 8px 23px #a65c7412}.screen-intro{align-items:center;padding-top:8px}.intro-content{display:flex;flex-direction:column;align-items:center;width:100%;text-align:center}.intro-tiny-label{text-transform:uppercase;letter-spacing:.25em;color:#b87b8e;font-size:11px;font-weight:600;margin-top:4px;margin-bottom:10px}.intro-tiny-label span{color:#d9a0b1;margin:0 8px}.intro-title{font-size:clamp(66px,7.3vw,103px);line-height:1.04}.intro-content>.flourish{margin:5px auto 6px}.intro-subtitle{margin:5px auto 10px;line-height:1.7;color:#986a79;font-size:14px}.envelope-hitbox{background:transparent;border:0;position:relative;display:block;width:min(400px,88vw);height:276px;margin-top:4px;overflow:visible;padding:0;perspective:950px;transition:transform .4s}.envelope-hitbox:not(:disabled):hover{transform:translateY(-6px) rotate(-1deg)}.envelope-shadow{position:absolute;width:78%;height:38px;left:11%;bottom:6px;background:#94465b2b;border-radius:50%;filter:blur(21px)}.envelope{position:absolute;width:334px;height:212px;max-width:85%;left:50%;top:51%;transform:translate(-50%,-50%) rotate(-6deg);transform-style:preserve-3d;filter:drop-shadow(0 12px 16px rgba(151,76,103,.17))}.envelope-back{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);background:linear-gradient(145deg,#fffefa,#f8dadb);border-radius:7px;z-index:1}.envelope-paper{position:absolute;top:16px;left:10%;width:80%;height:74%;background:linear-gradient(160deg,#fffefd,#fff6f2);border:1px solid #f0ded7;box-shadow:0 1px 6px #81484e1a;z-index:2;display:flex;flex-direction:column;align-items:center;gap:0;padding-top:25px;color:#bd7488;font-family:Great Vibes,cursive;font-size:30px;transition:transform .9s cubic-bezier(.2,.68,.2,1) .25s}.paper-tiny-heart{font:37px Georgia,serif;line-height:24px}.paper-tiny-line{width:75px;height:1px;background:#deb0bd;margin-top:2px}.envelope-front{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:polygon(0 100%,50% 42%,100% 100%);background:linear-gradient(0deg,#fcf0eb,#fffaf7);z-index:4;border-radius:5px}.envelope-fold-left{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:polygon(0 0,52% 54%,0 100%);background:linear-gradient(132deg,#fffefd,#f8dedd);z-index:3;border-radius:5px}.envelope-fold-right{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:polygon(100% 0,48% 54%,100% 100%);background:linear-gradient(240deg,#fffaf8,#f7dedf);z-index:3;border-radius:5px}.envelope-flap{position:absolute;top:0;left:0;width:100%;height:57%;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(170deg,#fffaf7,#f3d3d5);transform-origin:top;z-index:7;transition:transform .7s ease-in-out,z-index .1s .45s;backface-visibility:hidden;filter:drop-shadow(0 3px 3px rgba(173,98,123,.08))}.wax-seal{width:57px;height:57px;background:radial-gradient(circle at 28% 26%,#e9b3c3,#c37890 70%,#a85a77);position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);z-index:8;border-radius:50%;display:grid;place-items:center;color:#fff2f6;box-shadow:0 4px 9px #78344c42,inset 0 0 0 4px #ffffff3b,inset 0 0 0 6px #93446229;transition:opacity .4s,transform .5s}.envelope-hitbox.is-open .envelope-flap{transform:rotateX(180deg);z-index:0}.envelope-hitbox.is-open .wax-seal{opacity:0;transform:translate(-50%,-100%) scale(.5)}.envelope-hitbox.is-open .envelope-paper{transform:translateY(-118px);transition-delay:.42s}.envelope-note{margin:0;display:flex;align-items:center;gap:7px;font-size:12px;color:#a97b86}.intro-open{display:flex;align-items:center;gap:9px;border:0;background:linear-gradient(135deg,#c57990,#b5687e);box-shadow:0 7px 17px #a8546d2e;border-radius:100px;color:#fff;padding:13px 30px;margin-top:15px;font-size:13px;min-width:156px;justify-content:center;transition:transform .2s,box-shadow .2s}.intro-open:hover{transform:translateY(-2px);box-shadow:0 9px 20px #a8546d40}.intro-footer{color:#b58e98;letter-spacing:.08em;text-transform:uppercase;font-size:10px;margin-top:18px;text-align:center}.narrow-layout{max-width:730px;width:100%;margin:auto;text-align:center}.screen-choose .screen-heading .script-heading{font-size:clamp(52px,6vw,75px)}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:36px auto 16px;max-width:650px}.choice-card{display:flex;align-items:center;flex-direction:column;position:relative;min-height:265px;padding:30px 23px 25px;border:1px solid #efd1d8;border-radius:23px;background:linear-gradient(156deg,#ffffffe3,#fff6f5c2);box-shadow:0 12px 29px #ae687b12;color:var(--rose-deep);transition:transform .28s,box-shadow .28s,border-color .28s}.choice-card:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(221,173,186,.34);border-radius:18px;pointer-events:none}.choice-card:hover{transform:translateY(-7px);box-shadow:0 20px 34px #ae687b26;border-color:#dda8b8}.choice-icon{height:70px;width:70px;display:grid;place-items:center;background:#fce7eb;color:#ad6079;border-radius:50%;margin-bottom:18px}.choice-title{font:500 26px Playfair Display,Georgia,serif;margin-bottom:10px}.choice-desc{color:#a3858a;font-size:13px;line-height:1.7;max-width:190px}.choice-arrow{position:absolute;bottom:-14px;right:calc(50% - 15px);width:30px;height:30px;border-radius:50%;color:#b3617d;display:grid;place-items:center;background:#fff5f6;border:1px solid #e9c6d2;box-shadow:0 3px 8px #a54d6b17}.choice-hint{display:flex;justify-content:center;align-items:center;gap:8px;margin:19px 0 15px;color:#ad8590;font-size:11px}.screen-choose .text-button{margin:0 auto}.screen-letter{max-width:1200px}.letter-layout{display:grid;grid-template-columns:minmax(275px,.84fr) minmax(350px,1.16fr);gap:clamp(40px,8vw,120px);align-items:center;max-width:1020px;margin:0 auto;width:100%}.letter-side{padding:12px 0 0 10px}.letter-side-heading{font-size:clamp(55px,6vw,88px)}.letter-side .flourish{justify-content:flex-start;margin:10px 0 19px}.letter-side>p{color:#9b7580;font-size:14px;line-height:1.85;max-width:320px;margin:0 0 25px}.mode-switch{display:flex;align-items:center;gap:5px;padding:5px;background:#ffffff80;border:1px solid #ebccd6;border-radius:100px;width:max-content}.mode-switch button{background:transparent;border:0;border-radius:100px;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 22px;color:#996c7d;font-size:12px;min-width:110px;transition:background .2s,color .2s}.mode-switch button.chosen{background:#bd7188;color:#fff;box-shadow:0 3px 9px #a3486529}.letter-side-note{display:block;margin-top:23px;color:#b58b96;font:italic 14px Playfair Display,Georgia,serif}.letter-main{width:100%;min-width:0}.paper-letter{position:relative;background:linear-gradient(135deg,#fffdf9,#fff7f4);border:1px solid #f0d9d1;padding:42px clamp(27px,3.6vw,55px) 30px;box-shadow:0 19px 40px #80494921,0 3px 6px #8049490a;transform:rotate(1.1deg);margin:6px 0;max-height:min(65vh,650px);overflow:auto;scrollbar-width:thin;scrollbar-color:#ebc0cb transparent;clip-path:polygon(0% 0%,3% .4%,6% 0%,10% .35%,15% .1%,21% .25%,28% 0%,37% .2%,45% .1%,53% 0%,63% .2%,72% .05%,84% .3%,95% .1%,100% 0%,100% 100%,0 100%)}.paper-letter:after{content:"";pointer-events:none;position:fixed;top:10px;right:10px;bottom:10px;left:10px;border:1px solid #f3e4dd}.paper-watermark{position:absolute;bottom:8px;right:16px;font:95px Great Vibes,cursive;color:#e198a81f;pointer-events:none}.letter-kicker{display:block;text-align:center;text-transform:uppercase;letter-spacing:.23em;color:#b48a91;font-size:10px;font-weight:600;margin-bottom:16px}.letter-title{margin:0 0 29px;text-align:center;font:49px/1.04 Great Vibes,cursive;color:#a84f6d}.letter-title span{font:24px Georgia,serif;color:#c78398}.letter-body p{color:#5f4245;font:14px/1.95 Playfair Display,Georgia,serif;margin:0 0 18px;animation:appearLetter .6s both;animation-delay:calc(var(--p-order) * 90ms)}.letter-body p:first-child{font-size:16px}.letter-signature{text-align:right;color:#ae6179;font:29px Great Vibes,cursive;margin:10px 0 3px}.letter-signature span{font:19px Georgia,serif}.audio-letter-wrap{padding:35px 25px 25px;border:1px solid #ecd0d8;border-radius:23px;background:linear-gradient(145deg,#fffdfcd6,#fff1f4c9);text-align:center;box-shadow:var(--shadow);min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center}.audio-heading-art{position:relative;width:105px;height:105px;display:grid;place-items:center;margin:0 auto 10px}.voice-heart{height:66px;width:66px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#f2d2da,#efb4c7);color:#bd708a;box-shadow:inset 0 1px #fffc,0 4px 14px #b169811f}.voice-ring{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;border:1px solid #efd1d8;animation:ring 3s ease-out infinite}.voice-ring.two{animation-delay:1.5s}.audio-big-title{font:48px/1.1 Great Vibes,cursive;color:#9c506b;margin:8px 0}.audio-big-subtitle{font-size:13px;color:#9b7580;max-width:330px;line-height:1.7;margin:0 auto 25px}.audio-player{width:100%;max-width:460px;background:#ffffffd1;border:1px solid #eed3da;border-radius:17px;min-height:108px;padding:21px;box-shadow:0 7px 16px #ac5d750f}.audio-player-main{display:flex;gap:16px;align-items:center}.play-button{height:56px;width:56px;border-radius:50%;border:0;background:#be748b;color:#fff;display:grid;place-items:center;flex-shrink:0;box-shadow:0 6px 13px #b25a7633}.audio-track-wrap{flex:1;min-width:0;text-align:left}.audio-track-title{font-size:12px;font-weight:700;color:#8f5064;margin:0 0 11px}.audio-range{display:block;width:100%;height:5px;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:linear-gradient(to right,#ba7187 var(--played),#efd3da var(--played));border-radius:20px;cursor:pointer;outline-offset:5px}.audio-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:12px;width:12px;border-radius:50%;background:#bc7189;box-shadow:0 0 0 3px #fbe8ec}.audio-range::-moz-range-thumb{height:12px;width:12px;border:0;border-radius:50%;background:#bc7189}.audio-timestamps{display:flex;justify-content:space-between;color:#b38e9a;font-size:10px;font-variant-numeric:tabular-nums;margin-top:9px}.audio-unavailable{display:flex;align-items:center;flex-direction:column;gap:8px;color:#a66a80}.audio-unavailable strong{font:21px Playfair Display,Georgia,serif}.audio-unavailable p{margin:0;color:#ae8892;font-size:12px;line-height:1.6;max-width:260px}.follow-text-toggle{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;min-height:43px;border:1px solid #efcfda;border-radius:100px;background:#ffffff9e;color:#92596a;font-size:12px;padding:7px 15px}.tiny-switch{width:28px;height:16px;border-radius:10px;background:#eacfd7;position:relative;transition:background .2s}.tiny-switch:after{content:"";position:absolute;height:12px;width:12px;background:#fff;border-radius:50%;left:2px;top:2px;transition:left .2s}.tiny-switch.on{background:#c57b91}.tiny-switch.on:after{left:14px}.transcript{margin-top:17px;padding:17px 20px;max-height:170px;overflow:auto;text-align:left;background:#fffaf9;border:1px solid #f2dfe2;border-radius:14px;width:100%;scrollbar-width:thin}.transcript p{font:13px/1.8 Playfair Display,Georgia,serif;margin:0 0 12px;color:#734c56}.memories-layout{width:100%;max-width:650px;margin:0 auto;text-align:center}.screen-memories{padding-top:12px}.screen-memories .screen-heading .script-heading{font-size:clamp(61px,6.5vw,84px)}.photo-stage{height:365px;width:min(360px,100%);margin:14px auto 0;position:relative;display:flex;justify-content:center;align-items:center;touch-action:pan-y}.polaroid{width:275px;height:335px;background:#fffefb;border:1px solid #f2dedc;padding:12px 12px 19px;box-shadow:0 14px 28px #79474e26;border-radius:2px}.polaroid-behind{position:absolute;top:16px;left:calc(50% - 136px);background:linear-gradient(155deg,#fffdfa,#f7dfdb)}.polaroid-behind-one{transform:rotate(-12deg) translate(-9px,3px);z-index:0}.polaroid-behind-two{transform:rotate(9deg) translate(16px,-3px);z-index:1}.polaroid-main{border:1px solid #f0dfd9;position:relative;top:0;z-index:3;display:flex;flex-direction:column;align-items:stretch;transition:transform .25s;transform:rotate(-2deg);text-align:center;cursor:zoom-in}.polaroid-main:hover{transform:translateY(-5px) rotate(0)}.memory-image{width:100%;height:260px;flex-shrink:0;overflow:hidden;position:relative;background:#e7bac1}.memory-image>img{width:100%;height:100%;object-fit:contain;display:block;background:linear-gradient(145deg,#f9ecf0,#f5dfe5)}.memory-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:linear-gradient(166deg,#f2cdca 3%,#dcb7b6 45%,#9c7182)}.memory-image--1 .memory-placeholder{background:linear-gradient(160deg,#e6cfcd 5%,#c5c1bf 40%,#9e9397)}.memory-image--2 .memory-placeholder{background:linear-gradient(160deg,#e9c7b8 5%,#e3a6a6 45%,#a67b89)}.memory-image--3 .memory-placeholder{background:linear-gradient(150deg,#d9c3d0 5%,#b7b8c7 45%,#788e9c)}.placeholder-sun{position:absolute;top:34px;left:calc(50% - 28px);width:56px;height:56px;border-radius:50%;background:#f9e6d8;box-shadow:0 0 46px 22px #ffebdb5c}.placeholder-hill{position:absolute;bottom:-60px;width:135%;left:-15%;height:175px;border-radius:50% 50% 0 0}.hill-1{background:#7a576380;transform:rotate(17deg);bottom:-91px;left:-17%}.hill-2{background:#5b536387;transform:rotate(-13deg);bottom:-126px;left:-25%}.placeholder-mini-heart{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);font:90px Great Vibes,cursive;color:#fffbf8e6;text-shadow:0 3px 10px rgba(82,63,80,.16)}.placeholder-caption{position:absolute;bottom:15px;left:0;right:0;text-align:center;font:italic 12px Playfair Display,Georgia,serif;color:#ffffffdb;letter-spacing:.07em}.polaroid-caption{display:block;font:29px Great Vibes,cursive;color:#9d5d6d;margin-top:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.polaroid-caption span{font:17px Georgia,serif;color:#c78398}.photo-clip{position:absolute;right:-12px;top:-13px;transform:rotate(19deg);color:#b7647a;z-index:5;filter:drop-shadow(0 2px 1px rgba(117,47,66,.1))}.photo-arrow{position:absolute;top:47%;transform:translateY(-50%);border:1px solid #f0d4dc;color:#ae687f;background:#fffaf9fa;width:39px;height:39px;border-radius:50%;z-index:6;display:grid;place-items:center;box-shadow:0 3px 9px #9a4b641f;transition:transform .2s,background .2s}.photo-arrow:hover{transform:translateY(-50%) scale(1.08);background:#fff}.arrow-left{left:-24px}.arrow-right{right:-24px}.photo-description{min-height:29px;margin:10px 0 13px;color:#9d7581;font:italic 14px Playfair Display,Georgia,serif;animation:screenEntrance .3s both}.photo-dots{display:flex;gap:8px;justify-content:center;align-items:center}.photo-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:#dfb7c1;transition:width .2s,background .2s}.photo-dots button.active{width:24px;border-radius:10px;background:#b9657d}.screen-memories .screen-actions{max-width:490px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#301b24d4;z-index:30;display:grid;place-items:center;padding:30px;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.lightbox-close{position:fixed;top:25px;right:25px;background:#fffaf7;border:0;border-radius:50%;width:42px;height:42px;color:#9b506c;display:grid;place-items:center}.lightbox-content{width:min(86vw,520px);text-align:center;color:#fff;position:relative}.lightbox-content .memory-image{width:min(86vw,520px);height:min(70vh,600px);border:10px solid #fffaf7;box-shadow:0 20px 30px #0003}.lightbox-content p{font:italic 16px/1.7 Playfair Display,Georgia,serif;margin:17px auto}.lightbox-arrows{display:flex;justify-content:center;gap:18px}.lightbox-arrows button{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:#ffffff24;color:#fff;display:grid;place-items:center}.details-layout{width:100%;max-width:900px;margin:auto;text-align:center}.screen-details .screen-heading .script-heading{font-size:clamp(57px,6vw,82px)}.details-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:32px auto 18px}.petal-card{min-height:250px;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:20px 16px 24px;background:#fffdfbcc;border:1px solid #eeced6;border-radius:130px 130px 20px 20px;box-shadow:0 10px 20px #994b6812;transition:transform .25s,background .25s,border .25s;text-align:center;color:#93536d;overflow:hidden}.petal-card:hover{transform:translateY(-6px);border-color:#dfaabc}.petal-card:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid rgba(215,161,177,.23);border-radius:130px 130px 16px 16px;pointer-events:none}.petal-card.flipped{background:linear-gradient(160deg,#fff7f5,#f6d5dd);border-color:#dfafbf}.petal-number{position:absolute;top:18px;left:24px;font-size:10px;letter-spacing:.16em;color:#bd8c98}.petal-card-flower{width:100px;height:100px;background:radial-gradient(circle,#fce5eb,transparent 70%);display:grid;place-items:center;color:#bd748b;margin:10px auto 1px;animation:floatY 5s ease-in-out infinite alternate}.petal-card strong{font:500 20px Playfair Display,Georgia,serif;color:#97566b}.petal-tap{display:flex;align-items:center;gap:4px;font-size:10px;color:#b88d99;margin-top:auto}.petal-card.flipped .petal-tap{margin-top:auto}.petal-card.flipped p{font:13px/1.65 Playfair Display,Georgia,serif;color:#895c68;margin:0}.petal-revealed-icon{color:#c9889d;margin:24px auto 0}.details-soft-note{color:#ad8591;font:italic 13px Playfair Display,Georgia,serif;margin:4px auto 0}.details-layout .screen-actions{margin-top:28px;max-width:650px}.final-layout{width:100%;max-width:650px;margin:auto;text-align:center;display:flex;align-items:center;flex-direction:column}.final-gift{position:relative;display:grid;place-items:center;width:114px;height:114px;margin:0 auto 23px;border:1px solid #e7c3cf;background:#ffffff8c;border-radius:50%;color:#bd7390;box-shadow:0 0 0 13px #ffffff36,0 10px 27px #9a5c6d1a;animation:floatY 5s ease-in-out infinite alternate}.gift-halo{position:absolute;top:-25px;right:-25px;bottom:-25px;left:-25px;border:1px dashed #ecc6d1;border-radius:50%;animation:rotateSlow 28s linear infinite}.final-mini-heart{position:absolute;right:17px;top:13px;color:#b95c7a;font:25px Georgia,serif}.screen-final .screen-heading .script-heading{font-size:clamp(68px,7.5vw,95px)}.screen-final .screen-heading .screen-subtitle{margin-bottom:29px}.reveal-button{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:51px;padding:14px 24px;margin:0 auto 21px;border:1px solid rgba(142,66,88,.13);border-radius:100px;background:linear-gradient(130deg,#ca7d95,#ab5876);box-shadow:0 10px 23px #a649642e;color:#fff;font-size:13px;font-weight:700;transition:transform .25s,box-shadow .25s}.reveal-button:hover{transform:translateY(-3px);box-shadow:0 15px 25px #a6496445}.reveal-layout{animation:revealAnim .9s both;display:flex;align-items:center;flex-direction:column;width:100%}.reveal-top{display:flex;align-items:center;gap:11px;color:#be8194;text-transform:uppercase;letter-spacing:.19em;font-size:10px;margin:12px auto 13px}.reveal-title{font-size:clamp(67px,8vw,93px);margin:0}.reveal-title span{font:31px Georgia,serif;color:#bd7890}.reveal-layout>.flourish{margin-top:7px;margin-bottom:15px}.reveal-paper{background:linear-gradient(150deg,#fffdfa,#fff5f3);border:1px solid #edd6d7;box-shadow:0 13px 35px #99546b1a;padding:35px clamp(22px,5vw,51px);width:100%;border-radius:5px;position:relative;margin-bottom:25px}.reveal-paper:before,.reveal-paper:after{content:"✽";position:absolute;font-size:30px;color:#efc9d4;left:17px;top:13px}.reveal-paper:after{left:auto;top:auto;right:17px;bottom:13px}.reveal-paper p{font:15px/1.9 Playfair Display,Georgia,serif;margin:0 auto 17px;color:#68454f;max-width:460px;animation:appearLetter .6s both;animation-delay:calc(var(--p-order) * .11s)}.reveal-signature{font:33px Great Vibes,cursive;color:#b5657c;margin-top:13px}.held-response{display:flex;align-items:center;justify-content:center;gap:10px;font:italic 14px Playfair Display,Georgia,serif;color:#a65c79;min-height:52px;animation:revealAnim .5s both}.final-restart{margin:4px 0 0}.celebration-petals{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:8;overflow:hidden}.celebration-petals i{position:absolute;left:calc(var(--i) * 4.8%);top:-50px;width:11px;height:20px;background:#edb0c1;border-radius:90% 10% 70%;opacity:.7;transform:rotate(28deg);animation:fallPetal 7s linear infinite;animation-delay:calc(var(--i) * -.31s)}@keyframes screenEntrance{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes appearLetter{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes revealAnim{0%{opacity:0;transform:scale(.97) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes flowerSwing{0%{transform:rotate(-24deg) translateY(0)}to{transform:rotate(-21deg) translateY(18px)}}@keyframes flowerSwingRight{0%{transform:rotate(160deg) translateY(0)}to{transform:rotate(156deg) translateY(-20px)}}@keyframes petalFloat{0%{translate:0 0;rotate:-8deg}to{translate:17px 37px;rotate:22deg}}@keyframes floatY{0%{transform:translateY(0)}to{transform:translateY(-8px)}}@keyframes ring{0%{transform:scale(.7);opacity:.6}to{transform:scale(1.2);opacity:0}}@keyframes rotateSlow{to{transform:rotate(360deg)}}@keyframes fallPetal{0%{transform:translateY(-10vh) rotate(0);opacity:0}10%{opacity:.7}90%{opacity:.7}to{transform:translateY(115vh) translate(100px) rotate(470deg);opacity:0}}@media(max-width:1000px){.flowers-left{left:-180px;width:530px;top:5%;opacity:.42}.flowers-right{right:-200px;width:550px;opacity:.44}.letter-layout{gap:35px;grid-template-columns:minmax(245px,.8fr) minmax(320px,1.2fr)}.screen{padding-left:26px;padding-right:26px}.details-grid{gap:12px}.petal-card{padding:19px 11px;min-height:235px}.petal-card strong{font-size:18px}}@media(max-width:700px){.site-header{min-height:65px;padding:15px 20px}.header-brand{font-size:9px;letter-spacing:.12em}.step-indicator{gap:8px;margin-top:2px}.step-bars{gap:4px}.step-bars button{width:18px}.step-name{min-width:70px;max-width:80px;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.screen{padding:23px 21px 35px;min-height:calc(100svh - 135px)}.screen-heading .script-heading{font-size:clamp(54px,12vw,70px)}.screen-subtitle{font-size:12px;line-height:1.7}.eyebrow{font-size:9px;letter-spacing:.14em;margin-bottom:15px}.site-footer{font-size:9px;height:35px;padding:0 10px 8px}.flowers-left{width:390px;left:-222px;top:0;opacity:.32}.flowers-right{width:435px;right:-260px;bottom:-4%;opacity:.38}.intro-tiny-label{font-size:9px;letter-spacing:.16em}.intro-title{font-size:clamp(62px,15vw,84px)}.intro-subtitle{font-size:12px;max-width:270px;margin:5px auto 0}.envelope-hitbox{height:258px;width:min(355px,92vw)}.envelope{width:310px;height:200px}.intro-footer{font-size:9px;margin-top:25px}.choice-grid{gap:12px;margin-top:29px}.choice-card{min-height:223px;padding:21px 12px}.choice-icon{width:60px;height:60px;margin-bottom:16px}.choice-icon svg{width:27px;height:27px}.choice-title{font-size:21px}.choice-desc{font-size:11px}.choice-hint{font-size:10px}.letter-layout{grid-template-columns:1fr;gap:19px;max-width:510px}.letter-side{text-align:center;padding:0}.letter-side .eyebrow,.letter-side .flourish{justify-content:center}.letter-side-heading{font-size:clamp(52px,11vw,69px);line-height:1.04}.letter-side>p{margin:0 auto 12px;font-size:12px;line-height:1.65}.mode-switch{margin:0 auto}.letter-side-note{margin-top:12px;font-size:12px}.paper-letter{max-height:none;overflow:visible;transform:rotate(.4deg);padding:33px 27px 24px}.paper-letter:after{position:absolute}.letter-title{font-size:47px;margin-bottom:20px}.letter-body p{font-size:13px;line-height:1.85;margin-bottom:16px}.audio-letter-wrap{min-height:340px;padding:24px 18px}.audio-heading-art{height:80px;width:80px}.voice-heart{width:58px;height:58px}.audio-big-title{font-size:42px}.audio-big-subtitle{font-size:12px;margin-bottom:18px}.screen-actions--wide{max-width:520px}.screen-memories .screen-heading .script-heading{font-size:65px}.photo-stage{margin-top:10px}.screen-details .screen-heading .script-heading{font-size:clamp(55px,12vw,73px)}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:420px;gap:13px;margin-top:25px}.petal-card{min-height:213px;border-radius:110px 110px 18px 18px}.petal-card:after{border-radius:110px 110px 15px 15px}.petal-card-flower{width:70px;height:75px;margin:4px auto 0}.petal-card-flower svg{width:45px}.petal-card.flipped p{font-size:12px}.screen-final .screen-heading .script-heading{font-size:clamp(67px,15vw,90px)}.final-gift{width:95px;height:95px}.reveal-title{font-size:clamp(63px,14vw,86px)}.reveal-paper p{font-size:13px}}@media(max-width:400px){.site-header{padding:12px 14px}.restart-link{padding:8px 10px;font-size:10px}.step-name{display:none}.screen{padding-left:16px;padding-right:16px}.intro-title{font-size:61px}.envelope-hitbox{width:310px;height:222px}.envelope{width:280px;height:181px}.envelope-paper{font-size:25px}.wax-seal{height:49px;width:49px}.choice-grid{gap:10px}.choice-card{min-height:213px;padding:19px 9px 20px}.choice-title{font-size:19px}.screen-actions{gap:10px}.primary-button{min-width:0;padding:14px 15px;font-size:11px;gap:9px}.photo-stage{width:300px;height:340px}.polaroid{width:245px;height:306px}.memory-image{height:232px}.polaroid-behind{left:calc(50% - 122px)}.arrow-left{left:-9px}.arrow-right{right:-9px}.details-grid{gap:9px}.petal-card{padding:19px 8px;min-height:215px}.petal-card strong{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.photo-dots{flex-wrap:wrap;max-width:330px;margin-inline:auto;row-gap:9px}.lightbox-content .memory-image>img{object-fit:contain}.photo-count{font:600 11px/1.4 DM Sans,sans-serif;letter-spacing:.14em;color:#a76d80;margin:10px auto 0}.letter-scroll-note{font-size:11px;letter-spacing:.045em;color:#af7a8b;text-align:center;margin:-12px 0 22px}.letter-body p{font-size:15.5px;line-height:1.95;margin-bottom:21px;letter-spacing:.005em}.letter-body p:first-child{font-size:18px;color:#9b4e68;font-weight:600}.letter-body p:nth-child(7),.letter-body p:nth-child(12),.letter-body p:nth-child(16),.letter-body p:nth-child(21),.letter-body p:nth-child(33),.letter-body p:nth-child(36),.letter-body p:nth-child(37){color:#91425e;font-weight:600}.letter-body p:last-child{font-size:19px;text-align:center;margin:30px 0 14px}.transcript{max-height:285px}.transcript p{font-size:14px;line-height:1.95;margin-bottom:15px}.audio-duration-note{margin:11px 0 0;font-size:11px;color:#a67f8b}@media(max-width:700px){.letter-body p{font-size:15px;line-height:1.9;margin-bottom:19px}.letter-body p:first-child{font-size:18px}.letter-body p:last-child{font-size:18px}.transcript{max-height:320px}}.password-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#4a22317a;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;padding:20px;animation:passwordEnter .28s ease both}.password-dialog{position:relative;width:min(100%,410px);background:linear-gradient(165deg,#fffdfb,#fff3f5);border:1px solid #efd2d9;border-radius:26px;box-shadow:0 24px 75px #5729383d;padding:38px 34px 34px;text-align:center;animation:passwordCardEnter .38s ease both}.password-dialog:before,.password-dialog:after{content:"✿";position:absolute;color:#ebbecd;font:24px Georgia,serif}.password-dialog:before{left:20px;top:18px}.password-dialog:after{bottom:17px;right:21px}.password-close{position:absolute;right:14px;top:14px;width:35px;height:35px;background:transparent;border:0;color:#b27c8b;display:grid;place-items:center;border-radius:50%}.password-close:hover{background:#f9e7ec}.password-flower{width:66px;height:66px;display:grid;place-items:center;border:1px solid #f0ced9;background:#fce8ef;border-radius:50%;color:#b66586;margin:0 auto 14px;box-shadow:0 0 0 8px #fff5f8}.password-eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#b27a8f;font-weight:700;margin:8px 0}.password-heading{font-family:Great Vibes,Brush Script MT,cursive;font-size:clamp(48px,8vw,60px);font-weight:400;line-height:1.15;color:#974a68;margin:8px 0 12px}.password-description{font-size:13px;line-height:1.85;color:#8f6b79;max-width:310px;margin:0 auto 22px}.password-form{text-align:left}.password-form label{font-size:11px;letter-spacing:.08em;font-weight:700;text-transform:uppercase;color:#8a5068;display:block;margin-bottom:9px}.password-input-wrap{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid #e8c8d2;border-radius:14px;min-height:52px;padding:0 13px;color:#bf8199;transition:border-color .2s,box-shadow .2s}.password-input-wrap:focus-within{border-color:#be7895;box-shadow:0 0 0 3px #cf809b29}.password-input-wrap input{width:100%;min-width:0;background:transparent;border:0;outline:0;font-size:19px;letter-spacing:.3em;color:#75374e;text-align:center}.password-input-wrap input::placeholder{color:#d4b7c2}.password-visibility{display:grid;place-items:center;flex-shrink:0;background:none;border:0;color:#a57c88;padding:5px}.password-hint,.password-error{font-size:11px;line-height:1.5;text-align:center;min-height:18px;margin:9px 0 17px}.password-hint{color:#ba95a1}.password-error{color:#aa355b;font-weight:600}.password-submit{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;padding:15px 22px;border:0;border-radius:100px;background:linear-gradient(130deg,#cd859d,#a95775);color:#fff;font-weight:700;font-size:13px;box-shadow:0 10px 25px #a6496433;transition:transform .2s,box-shadow .2s}.password-submit:hover{transform:translateY(-2px);box-shadow:0 14px 28px #a6496447}@keyframes passwordEnter{0%{opacity:0}to{opacity:1}}@keyframes passwordCardEnter{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:450px){.password-dialog{padding:34px 24px 27px;border-radius:21px}.password-heading{font-size:52px}}
