:root{--bg-1: #ffd8de;--bg-2: #ffc4cf;--bg-3: #ffb3c1;--card: rgba(255, 253, 254, .86);--ink: #3c2230;--hot: #d23b71;--hot-2: #f85192;--line: rgba(165, 75, 109, .18)}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}html{scroll-snap-type:y proximity;scroll-behavior:smooth;timeline-scope:--story-section}body{font-family:"Baloo 2",system-ui,sans-serif;color:var(--ink);background:radial-gradient(circle at 85% 10%,#ffd1f0 0,#ffd1f000 28%),radial-gradient(circle at 10% 80%,#ffc1cf 0,#ffc1cf00 30%),linear-gradient(180deg,var(--bg-1) 0%,var(--bg-2) 52%,var(--bg-3) 100%);background-size:110% 110%;animation:bgBreathe 48s ease-in-out infinite}.app{position:relative;overflow-x:clip}.access-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.access-card{width:min(620px,94vw);border-radius:24px;padding:clamp(20px,4vw,34px);background:#fffcfdf5;border:1px solid rgba(165,75,109,.22);box-shadow:0 14px 34px #a0366329;text-align:center}.access-card.denied{border-color:#aa1e506b}.access-meta{margin-top:10px;font-size:clamp(.92rem,2vw,1rem);color:#8c3559;font-weight:700}.access-retry{margin:18px auto 0}.blocked-countdown{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:24px}.blocked-unit{display:flex;flex-direction:column;align-items:center;gap:4px}.blocked-digits{font-family:"Press Start 2P",monospace;font-size:clamp(1.6rem,5vw,2.4rem);color:var(--hot);background:#ffffffb8;border:1px solid rgba(202,81,124,.28);border-radius:12px;padding:8px 14px;line-height:1;min-width:70px;text-align:center}.blocked-label{font-size:.72rem;font-weight:700;color:#9b355d;letter-spacing:.05em;text-transform:uppercase}.blocked-sep{font-family:"Press Start 2P",monospace;font-size:clamp(1.4rem,4vw,2rem);color:var(--hot);align-self:flex-start;padding-top:10px;line-height:1}.blocked-progress-wrap{margin-top:22px;width:100%;height:10px;background:#ca517c26;border-radius:999px;overflow:hidden;border:1px solid rgba(202,81,124,.22)}.blocked-progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--hot-2) 0%,var(--hot) 100%);transition:width .9s linear;box-shadow:0 0 8px #d23b7173}.blocked-screen{background:radial-gradient(circle at 18% 22%,rgba(30,58,138,.8) 0,transparent 42%),radial-gradient(circle at 82% 78%,rgba(29,78,216,.6) 0,transparent 36%),linear-gradient(160deg,#060e1f,#0b1d3a 48%,#091530);background-attachment:fixed}.blocked-screen .access-card{background:#08122de6;border:1px solid rgba(96,165,250,.25);box-shadow:0 16px 48px #0000008c,0 0 0 1px #60a5fa14}.blocked-screen h2{color:#93c5fd}.blocked-screen p{color:#bfdbfe}.blocked-screen p strong{color:#e0f2fe}.blocked-screen .blocked-digits{color:#60a5fa;background:#0a1941eb;border:1px solid rgba(96,165,250,.32)}.blocked-screen .blocked-label{color:#7dd3fc}.blocked-screen .blocked-sep{color:#60a5fa}.blocked-screen .blocked-progress-wrap{background:#0f235a73;border:1px solid rgba(96,165,250,.18)}.blocked-screen .blocked-progress-bar{background:linear-gradient(90deg,#1d4ed8,#38bdf8);box-shadow:0 0 10px #38bdf880}.section{min-height:100vh;display:grid;place-items:center;padding:36px 18px;scroll-snap-align:start;scroll-snap-stop:normal;view-timeline-name:--story-section;view-timeline-axis:block}.section--intro{padding-top:0;align-content:center}.intro-card{text-align:center;padding-top:0}.intro-card h1{margin-bottom:6px}.intro-photo-wrap{margin:0;width:170px;border-radius:16px;overflow:hidden;border:1px solid rgba(186,53,104,.32);box-shadow:0 16px 34px #ab376533}.intro-photo-wrap--corner{position:static;margin:0 auto 14px;transform:rotate(1.5deg)}.intro-photo{display:block;width:100%;height:170px;object-fit:cover;object-position:center}.section-photo-wrap{margin:16px auto 0;width:min(320px,92%);border-radius:16px;overflow:hidden;border:1px solid rgba(186,53,104,.28);box-shadow:0 10px 22px #ab376529}.section-photo{display:block;width:100%;height:180px;object-fit:cover}.envelope-wrap{margin-top:60px;display:flex;flex-direction:column;align-items:center;gap:8px}.envelope-cta{font-size:.82rem;font-weight:700;color:#a63468;letter-spacing:.04em;opacity:.8}.card{width:min(900px,95vw);position:relative;z-index:2;border-radius:28px;padding:clamp(20px,4vw,42px);background:#fffcfdf5;border:1px solid var(--line);box-shadow:0 10px 28px #a0366321;opacity:0;transform:translateY(26px);transition:opacity .55s ease,transform .55s ease,box-shadow .3s ease}.card.visible{opacity:1;transform:none}.card.visible:hover{transform:translateY(-5px);box-shadow:0 22px 44px #a0366338;transition:transform .28s ease,box-shadow .28s ease}@supports (animation-timeline: view()){.card{will-change:transform,opacity,filter}.section .card.visible{animation-name:snapReveal;animation-duration:1s;animation-timing-function:ease-out;animation-fill-mode:both;animation-timeline:--story-section;animation-range:entry 0% cover 62%}.section--intro .card.visible,.section--question .card.visible{animation-range:entry 8% cover 70%}}.card[data-dir=left]{transform:translate(-52px)}.card[data-dir=right]{transform:translate(52px)}.card[data-dir=zoom]{transform:scale(.93) translateY(10px)}.card .moments li,.card .reasons li{opacity:0;transition:opacity .36s ease,transform .36s ease}.card .moments li{transform:translate(-16px)}.card .reasons li{transform:translate(16px)}.card.visible .moments li,.card.visible .reasons li{opacity:1;transform:none}.card.visible .moments li:nth-child(1){transition-delay:.3s}.card.visible .moments li:nth-child(2){transition-delay:.44s}.card.visible .moments li:nth-child(3){transition-delay:.58s}.card.visible .reasons li:nth-child(1){transition-delay:.25s}.card.visible .reasons li:nth-child(2){transition-delay:.38s}.card.visible .reasons li:nth-child(3){transition-delay:.51s}.card.visible .reasons li:nth-child(4){transition-delay:.64s}.card.visible .reasons li:nth-child(5){transition-delay:.77s}.card.visible .reasons li:nth-child(6){transition-delay:.9s}.card.visible .moments li:hover,.card.visible .reasons li:hover{transition-delay:0s}.pixel-tag{font-family:"Press Start 2P",monospace;font-size:clamp(.52rem,2vw,.72rem);line-height:1.8;color:#9b355d;margin:0 0 12px}h1,h2,h3{margin:0;line-height:1.12}h1{font-size:clamp(2rem,5vw,4.2rem);letter-spacing:.02em;color:#aa2557}h2{font-size:clamp(1.7rem,4.4vw,3.3rem);color:#b0245a}h3{font-size:clamp(1.4rem,4vw,2.2rem);color:#b0245a}p{margin:12px 0 0;font-size:clamp(1.08rem,2.4vw,1.34rem);line-height:1.45}.scroll-hint{margin-top:24px;display:inline-flex;border-radius:999px;padding:10px 18px;color:#8f3458;background:#ffffffa6;border:1px solid rgba(202,81,124,.24);font-weight:700}.envelope-static{position:relative;width:220px;height:150px;margin-top:20px;padding:0;border:none;border-radius:14px;cursor:pointer;overflow:hidden;background:linear-gradient(to bottom-right,transparent 49.5%,rgba(180,50,95,.12) 50%,transparent 50.5%),linear-gradient(to bottom-left,transparent 49.5%,rgba(180,50,95,.12) 50%,transparent 50.5%),linear-gradient(160deg,#ffe0ed,#ffc6d8);box-shadow:0 8px 24px #a5285a33;transition:transform .22s ease,box-shadow .22s ease}.envelope-static:hover{transform:translateY(-4px);box-shadow:0 16px 34px #a5285a42}.envelope-static:before{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:linear-gradient(175deg,#c04876,#d96490);clip-path:polygon(0 0,100% 0,50% 50%);z-index:1}.envelope-static:after{content:"";position:absolute;bottom:0;left:0;right:0;height:100%;background:#be3c6e1f;clip-path:polygon(0 100%,100% 100%,50% 52%);z-index:0}.envelope-heart{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#b83268;font-size:1.7rem;z-index:2;pointer-events:none;-webkit-user-select:none;user-select:none;transition:transform .28s ease}.envelope-static.open .envelope-heart{transform:translateY(-8px) scale(1.15)}.envelope-note{margin-top:12px;padding:10px 14px;border-radius:12px;background:#ffffffb8;border:1px solid rgba(180,61,107,.24);font-weight:700;color:#8d2f57}.moments{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:10px}.origin-list{margin:20px 0 0;padding:0;list-style:none;display:grid;gap:14px}.origin-list li{display:flex;gap:14px;align-items:flex-start;background:#ffffffc7;border:1px solid rgba(198,74,119,.22);border-radius:16px;padding:13px 16px;font-size:clamp(1rem,2.2vw,1.16rem);opacity:0;transform:translate(16px);transition:opacity .36s ease,transform .36s ease,background .22s ease,border-color .22s ease}.origin-list li:hover{background:#fffffffa;border-color:#c1206a73;transform:translate(-4px);transition-delay:0s}.card.visible .origin-list li{opacity:1;transform:none}.card.visible .origin-list li:nth-child(1){transition-delay:.25s}.card.visible .origin-list li:nth-child(2){transition-delay:.42s}.card.visible .origin-list li:nth-child(3){transition-delay:.59s}.card.visible .origin-list li:nth-child(4){transition-delay:.76s}.origin-icon{font-size:1.4rem;flex:0 0 auto;margin-top:1px;line-height:1}.moments li{border-left:4px solid #e1588f;padding:10px 12px;border-radius:10px;background:#ffffffbf;font-size:clamp(1.02rem,2.2vw,1.16rem);transition:background .22s ease,border-color .22s ease,transform .22s ease}.moments li:hover{background:#fffffffa;border-color:#c1206a;transform:translate(5px)}.reasons{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px}.reasons li{background:#ffffffc7;border:1px solid rgba(198,74,119,.26);border-radius:16px;padding:12px 14px;display:flex;gap:12px;align-items:flex-start;font-size:clamp(1rem,2.2vw,1.2rem);transition:background .22s ease,border-color .22s ease,transform .22s ease}.reasons li:hover{background:#fffffffa;border-color:#c1206a80;transform:translate(-5px)}.promises-list{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:12px}.promises-list li{background:#ffffffd1;border:1px solid rgba(198,74,119,.28);border-radius:16px;padding:12px 14px;display:flex;gap:10px;align-items:flex-start;font-size:clamp(1rem,2.2vw,1.15rem);transition:transform .24s ease,border-color .24s ease,background .24s ease}.promises-list li:hover{transform:translate(4px);border-color:#c1206a80;background:#fffffff5}.promise-dot{width:11px;height:11px;border-radius:999px;margin-top:8px;background:radial-gradient(circle at 30% 30%,#fff 0,#fff 24%,#ef5a91 35%,#b92f61);flex:0 0 auto}.excuses-list{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:14px}.excuse-item{display:flex;gap:14px;align-items:flex-start;background:#ffffffd1;border:1px solid rgba(198,74,119,.22);border-radius:16px;padding:13px 16px;font-size:clamp(1rem,2.2vw,1.15rem);transition:transform .24s ease,border-color .24s ease}.excuse-item:hover{transform:translate(4px);border-color:#c1206a73}.excuse-number{font-family:"Press Start 2P",monospace;font-size:.62rem;color:var(--hot);background:#ffc8dc8c;border:1px solid rgba(202,81,124,.22);border-radius:8px;padding:4px 7px;flex:0 0 auto;margin-top:3px;line-height:1.6}.coupon-grid{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.coupon-item{min-width:0;border-radius:16px;transition:transform .24s ease,box-shadow .24s ease;display:flex}.coupon-item:hover{transform:translateY(-3px);box-shadow:0 10px 20px #b1316029}.coupon-item.is-selected{box-shadow:0 12px 24px #b1316042}.coupon-button{width:100%;min-width:0;min-height:100px;border:1px dashed rgba(186,53,104,.5);border-radius:16px;padding:14px;text-align:left;cursor:pointer;color:inherit;font:inherit;background:linear-gradient(135deg,#ffffffe6,#fff3f8d9),repeating-linear-gradient(90deg,#d23b7114 0,#d23b7114 8px,#ffffff1a 8px,#ffffff1a 16px);transition:border-color .22s ease,transform .22s ease;display:flex;flex-direction:column;gap:4px;justify-content:center}.coupon-button p{margin:0}.coupon-button:hover{border-color:#a8235ab3}.coupon-button:active{transform:scale(.99)}.coupon-button:disabled{cursor:not-allowed;opacity:.6}.coupon-item.is-selected .coupon-button{opacity:1;border-color:#a11c50e6}.coupon-note{margin-top:14px;font-size:clamp(.95rem,2vw,1.05rem);font-weight:700;color:#8f3159}.coupon-warning{margin-top:14px;font-size:clamp(.95rem,2vw,1.05rem);font-weight:700;color:#d23b71;animation:pulse-warning .6s ease-in-out}@keyframes pulse-warning{0%{opacity:0;transform:scale(.95)}50%{opacity:1}to{opacity:1;transform:scale(1)}}.coupon-label{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.12em;color:#aa2557;margin-bottom:6px}.coupon-item p{margin:0;font-size:clamp(.95rem,2vw,1.05rem);line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.heart-dot{width:10px;height:10px;border-radius:999px;margin-top:8px;background:radial-gradient(circle at 35% 35%,#fff 0,#fff 20%,#f14381 28%,#c12f63);flex:0 0 auto}.question-card{text-align:center}.btn-continue{margin-top:24px;margin-left:auto;display:block;color:#fff;background:linear-gradient(135deg,#c84072,#f06a9d);box-shadow:0 12px 24px #c840723d}.btn-continue:hover{transform:translateY(-2px)}.cta-wrap{margin-top:22px;min-height:170px;display:grid;place-items:center;position:relative}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;border-radius:999px;font-family:"Baloo 2",system-ui,sans-serif;font-size:clamp(1rem,2.6vw,1.35rem);font-weight:800;padding:12px 26px}.btn-yes{color:#fff;background:linear-gradient(120deg,var(--hot),var(--hot-2));box-shadow:0 10px 24px #d23b7161;z-index:2;animation:pulseSi 2.4s ease-in-out infinite}.btn-yes:disabled{cursor:not-allowed;opacity:.55;animation:none;box-shadow:none}.btn-no{margin-top:18px;color:#7a5a64;background:#f7f0f3;border:1px dashed #cda7b5;z-index:3;min-width:220px}.forced-joke{margin-top:16px;color:#8c3458;font-weight:700}.accepted{margin-top:20px;background:linear-gradient(170deg,#ffffffe0,#ffecf3cc);border:1px solid rgba(200,83,126,.25);border-radius:20px;padding:18px}.yes-hearts{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:20}.yes-heart{position:absolute;bottom:-20px;color:#ef4a86;font-size:clamp(18px,2.5vw,28px);opacity:0;animation-name:heartRise;animation-timing-function:ease-out;animation-iteration-count:infinite}.bg-decor{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:clip}.parallax-wrap{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;transition:transform 1.5s cubic-bezier(.2,.8,.4,1)}.blob{position:absolute;border-radius:50%;opacity:.38;will-change:transform}.blob-a{width:300px;height:300px;left:-80px;top:15vh;background:radial-gradient(circle at 30% 30%,#ffe8ef,#ff9eb9);animation:driftA 22s ease-in-out infinite}.blob-b{width:240px;height:240px;right:-90px;top:40vh;background:radial-gradient(circle at 35% 35%,#ffd8ea,#ff8fb0);animation:driftB 24s ease-in-out infinite}.blob-c{width:170px;height:170px;right:14vw;top:7vh;background:radial-gradient(circle at 30% 30%,#ffeef4,#ffbad0);animation:driftC 20s ease-in-out infinite}.spark{position:absolute;width:8px;height:8px;border-radius:50%;background:#ffffffe6;opacity:.7;animation:twinkle 4s ease-in-out infinite}.s1{top:16%;left:24%;animation-delay:0s}.s2{top:28%;right:26%;animation-delay:.4s}.s3{top:62%;left:18%;animation-delay:1s}.s4{top:78%;right:12%;animation-delay:1.4s}@keyframes driftA{0%,to{transform:translateY(0) translate(0)}50%{transform:translateY(30px) translate(18px)}}@keyframes driftB{0%,to{transform:translateY(0) translate(0)}50%{transform:translateY(-28px) translate(-20px)}}@keyframes driftC{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(20px) scale(1.08)}}@keyframes twinkle{0%,to{transform:scale(.8);opacity:.35}50%{transform:scale(1.4);opacity:1}}@keyframes bgBreathe{0%,to{background-position:0% 0%}50%{background-position:100% 100%}}@keyframes snapReveal{0%{opacity:.35;filter:blur(4px);transform:translateY(3vh) scale(.98)}35%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}to{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}}@keyframes pulseSi{0%,to{box-shadow:0 10px 24px #d23b7161}50%{box-shadow:0 10px 24px #d23b7161,0 0 0 8px #d23b711f}}@keyframes shimmer{0%,58%{transform:translate(-200%)}78%,to{transform:translate(200%)}}@keyframes heartRise{0%{transform:translateY(0) scale(.8) rotate(-6deg);opacity:0}16%{opacity:1}88%{opacity:.5}to{transform:translateY(-72vh) scale(1.12) rotate(6deg);opacity:0}}.cursor-trails{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:30}.cursor-heart{position:absolute;transform:translate(-50%,-50%);font-size:14px;line-height:1;color:#e94080;animation:trailFloat 1.1s ease-out forwards;-webkit-user-select:none;user-select:none}.cursor-heart:before{content:"❤"}@keyframes trailFloat{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}40%{opacity:.85;transform:translate(-50%,-110%) scale(1)}to{opacity:0;transform:translate(-50%,-200%) scale(.4)}}.cursor-blink{color:#d23b71;animation:blink .7s step-end infinite}.cursor-blink.done{display:none}@keyframes blink{50%{opacity:0}}.sstar{position:absolute;height:2px;width:90px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),rgba(255,185,215,.5),transparent);border-radius:999px;opacity:0;animation:shootStar linear infinite}.ss1{top:12%;animation-duration:6.5s;animation-delay:.5s}.ss2{top:32%;animation-duration:8.2s;animation-delay:3.1s}.ss3{top:52%;animation-duration:5.6s;animation-delay:1.8s}.ss4{top:22%;animation-duration:9.4s;animation-delay:5s}.ss5{top:68%;animation-duration:7.1s;animation-delay:2.4s}.ss6{top:8%;animation-duration:10.5s;animation-delay:7.2s}@keyframes shootStar{0%{transform:translate(-120px) translateY(0) rotate(-18deg);opacity:0}4%{opacity:.9}25%{opacity:0}to{transform:translate(110vw) translateY(55px) rotate(-18deg);opacity:0}}@media (max-width: 720px){html{scroll-snap-type:y proximity}.section{min-height:auto;padding:28px 16px;scroll-snap-stop:normal}@supports (animation-timeline: view()){.section .card.visible,.section--intro .card.visible,.section--question .card.visible{animation-range:entry 0% cover 55%}}.coupon-grid{grid-template-columns:1fr}}.petals-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.petal{position:absolute;top:-30px;opacity:0;animation-name:petalFall;animation-timing-function:ease-in-out;animation-iteration-count:infinite;-webkit-user-select:none;user-select:none;filter:hue-rotate(0deg)}@keyframes petalFall{0%{transform:translateY(0) rotate(0) translate(0);opacity:0}8%{opacity:.45}85%{opacity:.3}to{transform:translateY(105vh) rotate(520deg) translate(28px);opacity:0}}@media (prefers-reduced-motion: reduce){body,.blob,.spark,.scroll-hint,.yes-heart,.card,.card .moments li,.card .reasons li,.card .origin-list li,.cursor-heart,.sstar,.petal{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}.cursor-trails,.petals-container{display:none}}@media (max-width: 720px){.blob,.spark,.btn-yes,.sstar,.petal{animation:none!important}.petals-container{display:none}.card{border-radius:22px;width:min(96vw,720px)}.envelope-static{width:190px;height:128px}.intro-photo-wrap{width:126px;border-radius:14px}.intro-photo-wrap--corner{margin:0 auto 14px;transform:none}.intro-card{padding-top:0}.intro-photo{height:126px}.section-photo-wrap{width:min(280px,100%);border-radius:14px}.section-photo{height:150px}.btn-no{min-width:170px;max-width:78vw;margin-top:14px}.cta-wrap{min-height:200px}}@media (max-height: 760px){.section{min-height:auto;padding:20px 16px}.card{width:min(940px,95vw);padding:clamp(16px,2.8vw,26px);border-radius:22px}h1{font-size:clamp(1.8rem,3.8vw,3rem)}h2{font-size:clamp(1.4rem,3.2vw,2.2rem)}h3{font-size:clamp(1.2rem,2.8vw,1.7rem)}p{font-size:clamp(.96rem,1.6vw,1.08rem);line-height:1.38}.envelope-wrap{margin-top:28px}.envelope-static{width:186px;height:124px;margin-top:10px}.intro-photo-wrap{width:132px}.intro-photo{height:132px}.section-photo{height:150px}.origin-list{margin-top:14px;gap:10px}.origin-list li,.moments li,.reasons li,.promises-list li{font-size:.98rem;padding-top:10px;padding-bottom:10px}.coupon-grid{gap:10px}.coupon-button{min-height:86px;padding:12px}.btn{padding:10px 22px}.btn-continue{margin-top:18px}.cta-wrap{margin-top:16px;min-height:145px}}
