*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#fff3f5;min-height:100vh;margin:0}button{font:inherit}.love-page{--round-font:ui-rounded,"Nunito","SF Pro Rounded","Avenir Next Rounded","Trebuchet MS",system-ui,sans-serif;--rose:#d83e76;--rose-deep:#8e1f4d;--petal:#ff8fb3;--peach:#ffd0b4;--lilac:#cdb7ff;--violet:#6d4a7d;--cream:#fffaf6;--ink:#44223a;min-height:100vh;color:var(--ink);font-family:var(--round-font);isolation:isolate;background:radial-gradient(circle at 18% 18%,#ffffffb8,#0000 24%),radial-gradient(circle at 78% 12%,#ffd2b485,#0000 28%),radial-gradient(circle at 50% 82%,#ff8fb338,#0000 34%),linear-gradient(135deg,#fff5ef 0%,#ffd6df 33%,#f2d9ff 67%,#ffe0cf 100%);place-items:center;padding:clamp(22px,4vw,56px);display:grid;position:relative;overflow:hidden}.love-page:before,.love-page:after{content:"";z-index:-1;pointer-events:none;filter:blur(34px);opacity:.42;width:min(62vw,560px);height:min(62vw,560px);animation:9s ease-in-out infinite alternate ambientGlow;position:fixed;inset:auto;transform:rotate(18deg)}.love-page:before{background:conic-gradient(from 180deg,#ff8fb39e,#ffd0b4b3,#0000 68%);top:-22vw;left:-16vw}.love-page:after{background:conic-gradient(from 40deg,#cdb7ffb8,#ff8fb380,#0000 66%);animation-delay:-3s;bottom:-24vw;right:-18vw}.ambient,.tap-hearts{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.float-heart{left:var(--x);color:rgba(216,62,118,var(--opacity));font-size:var(--size);animation:floatHeart var(--duration)linear infinite;animation-delay:var(--delay);text-shadow:0 0 18px #ffffffb8;line-height:1;position:absolute;bottom:-8vh}.access-gate,.loader-scene,.love-content{z-index:1;grid-area:1/1;width:min(100%,760px);transition:opacity .9s,transform .9s,visibility .9s,filter .9s;position:relative}.access-gate{opacity:1;visibility:visible;filter:blur();place-items:center;display:grid;transform:translateY(0)scale(1)}.access-card{text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffaf6ad;border:1px solid #ffffffc7;border-radius:30px;justify-items:center;gap:16px;width:min(100%,520px);padding:clamp(28px,6vw,46px);animation:.95s both cardAppear;display:grid;box-shadow:0 28px 80px #8e1f4d2e,inset 0 1px #ffffff94}.access-heart{aspect-ratio:1;width:84px;color:var(--rose);background:#ffffff94;border-radius:50%;place-items:center;font-size:4.6rem;line-height:1;animation:1.7s ease-in-out infinite heartPulse;display:grid;box-shadow:0 0 52px #d83e7647,inset 0 0 18px #ffffff7a}.access-card h2{color:var(--rose-deep);letter-spacing:0;margin:0;font-size:clamp(2rem,8vw,3.9rem);font-weight:700;line-height:.98}.access-card p{color:#44223ac2;margin:0;font-size:clamp(1.05rem,3vw,1.25rem);line-height:1.45}.loader-scene{text-align:center;opacity:0;visibility:hidden;pointer-events:none;filter:blur(10px);justify-items:center;gap:26px;display:grid;transform:translateY(18px)scale(.98)}.heart-loader{aspect-ratio:1;perspective:1200px;width:clamp(190px,34vw,280px);transform-style:preserve-3d;place-items:center;display:grid;position:relative}.heart-aura{filter:blur(18px);background:radial-gradient(circle,#ff8fb36b 0%,#ff8fb329 38%,#cdb7ff1a 62%,#0000 78%);border-radius:50%;animation:2.8s ease-in-out infinite auraPulse;position:absolute;inset:12%}.heart-3d{aspect-ratio:1;width:74%;transform-style:preserve-3d;filter:drop-shadow(0 22px 24px #8e1f4d29)drop-shadow(0 0 26px #ff699b38);place-items:center;animation:3.2s ease-in-out infinite loaderFloat,5.5s ease-in-out infinite loaderTilt;display:grid;position:relative}.heart-layer{transform-style:preserve-3d;-webkit-user-select:none;user-select:none;place-items:center;font-size:clamp(8.5rem,22vw,12.8rem);line-height:1;display:grid;position:absolute;inset:0}.heart-shadow{color:#7819462e;filter:blur(10px);transform:translate3d(0,18px,-50px)scale(1.02)}.heart-back{color:#7e2d5861;filter:blur(1px);transform:translateZ(-36px)scale(1.02)}.heart-mid{color:#cb4d82;text-shadow:0 0 14px #ffb8d573,0 0 28px #e94c812e;transform:translateZ(-12px)scale(.995)}.heart-front{background:linear-gradient(#ffd9e8 0%,#ff7baa 24%,#df4f86 58%,#962a5b 100%);color:#0000;text-shadow:0 0 18px #ffffff5c,0 0 34px #ff699b38;-webkit-background-clip:text;background-clip:text;transform:translateZ(20px)scale(.97)}.heart-glow{color:#ffafd261;filter:blur(6px);transform:translateZ(28px)scale(.985)}.heart-highlight{color:#ffffffdb;filter:blur(.6px);opacity:.85;transform:translate3d(-4px,-8px,34px)scale(.76)}.heart-orbit{transform-style:preserve-3d;pointer-events:none;border:1px solid #ffffff57;border-radius:50%;position:absolute;inset:8%}.orbit-one{animation:4.8s linear infinite orbitSpinOne;transform:rotateX(72deg)rotateY(16deg)}.orbit-two{border-color:#ffbedc6b;animation:6.2s linear infinite reverse orbitSpinTwo;inset:18%;transform:rotateY(74deg)rotateX(18deg)}.orbit-one:before,.orbit-two:before{content:"";background:#fff6fb;border-radius:50%;width:8px;height:8px;position:absolute;top:-4px;left:50%;box-shadow:0 0 12px #fffffff2,0 0 26px #ff84b6bf}.orbit-two:before{background:#ffe1f0;width:6px;height:6px}.heart-spark{background:#fff;border-radius:50%;width:8px;height:8px;animation:2.6s ease-in-out infinite sparkleBlink;position:absolute;box-shadow:0 0 12px #fffffff2,0 0 22px #ff8fb399}.spark-1{animation-delay:0s;top:18%;left:22%}.spark-2{width:6px;height:6px;animation-delay:.5s;top:25%;right:18%}.spark-3{width:7px;height:7px;animation-delay:1.1s;bottom:22%;left:18%}.spark-4{width:5px;height:5px;animation-delay:1.6s;bottom:16%;right:22%}.spark-5{width:5px;height:5px;animation-delay:2s;top:10%;left:50%}.loader-scene p{max-width:min(92vw,560px);color:var(--rose-deep);text-shadow:0 2px 24px #ffffffc2,0 0 14px #ffc9de59;margin:0;font-size:clamp(1.15rem,3.4vw,1.85rem);font-weight:700;line-height:1.4;animation:2.1s ease-in-out infinite alternate loaderTextFloat}.love-content{opacity:0;visibility:hidden;pointer-events:none;filter:blur(12px);justify-items:center;gap:18px;display:grid;transform:translateY(26px)scale(.96)}.overline{color:var(--rose-deep);font-family:var(--round-font);letter-spacing:.04em;opacity:0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffaf69e;border:1px solid #ffffffbd;border-radius:999px;margin:0;padding:10px 18px;font-size:.92rem;font-weight:800;line-height:1;transform:translateY(14px);box-shadow:0 16px 40px #8e1f4d1f,inset 0 0 24px #ffffff52}.message-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;background:#fffaf6a8;border:1px solid #ffffffc7;border-radius:30px;width:100%;padding:clamp(24px,5vw,52px);position:relative;overflow:hidden;transform:translateY(24px)scale(.97);box-shadow:0 28px 80px #8e1f4d2e,inset 0 1px #ffffff9e}.card-shine{pointer-events:none;opacity:.58;background:linear-gradient(120deg,#0000 0%,#ffffffb8 38%,#0000 62%),radial-gradient(circle at 50% 0,#ff8fb32b,#0000 52%);animation:6.5s ease-in-out 4.2s infinite cardShine;position:absolute;inset:0;transform:translate(-120%)}.message-copy{position:relative}.message-copy h1{color:var(--rose-deep);letter-spacing:0;margin:0 0 20px;font-size:clamp(2.2rem,9vw,4.8rem);font-weight:700;line-height:.98}.message-copy p{color:#44223ae0;margin:0;font-size:clamp(1.08rem,2.4vw,1.35rem);line-height:1.74}.message-copy p+p{margin-top:16px}.love-actions{opacity:0;justify-items:center;gap:12px;min-height:104px;display:grid;transform:translateY(18px)}.smile-button{min-height:54px;color:var(--cream);background:linear-gradient(135deg,var(--rose),#ef7c9f 52%,var(--violet));cursor:pointer;font-family:var(--round-font);border:1px solid #ffffffd6;border-radius:999px;padding:0 22px;font-size:clamp(.96rem,3vw,1.05rem);font-weight:800;line-height:1.15;transition:transform .24s,box-shadow .24s,filter .24s;box-shadow:0 18px 44px #8e1f4d38,inset 0 1px #ffffff59}.smile-button:hover{filter:brightness(1.04);transform:translateY(-2px);box-shadow:0 24px 54px #8e1f4d47,inset 0 1px #ffffff6b}.smile-button:active{transform:translateY(0)scale(.98)}.smile-button:focus-visible{outline-offset:4px;outline:3px solid #ffffffdb}.smile-note{min-height:28px;color:var(--rose-deep);font-family:var(--round-font);opacity:0;margin:0;font-size:clamp(1rem,3vw,1.15rem);font-weight:800;transition:opacity .35s,transform .35s;transform:translateY(8px)}.smile-note.is-visible{opacity:1;transform:translateY(0)}.tap-heart{z-index:3;color:var(--rose);font-size:calc(24px*var(--scale));pointer-events:none;text-shadow:0 0 18px #ffffffe6;line-height:1;animation:1.85s ease-out forwards tapHeart;position:fixed;transform:translate(-50%,-50%)}.is-locked .loader-scene,.is-locked .love-content{opacity:0;visibility:hidden;pointer-events:none}.is-locked .heart-3d,.is-locked .heart-orbit,.is-locked .heart-aura,.is-locked .heart-spark{animation-play-state:paused}.love-page:not(.is-locked) .access-gate{opacity:0;visibility:hidden;pointer-events:none;filter:blur(10px);transform:translateY(-18px)scale(.98)}.is-loading .loader-scene{opacity:1;visibility:visible;pointer-events:auto;filter:blur();transform:translateY(0)scale(1)}.is-loading .love-content{opacity:0;visibility:hidden;pointer-events:none;filter:blur(12px);transform:translateY(26px)scale(.96)}.is-ready .loader-scene{opacity:0;visibility:hidden;pointer-events:none;filter:blur(10px);transform:translateY(-18px)scale(.98)}.is-ready .love-content{opacity:1;visibility:visible;pointer-events:auto;filter:blur();transform:translateY(0)scale(1)}.is-ready .overline{animation:.75s .18s both fadeUp}.is-ready .message-card{animation:.95s .34s both contentCardIn}.is-ready .love-actions{animation:.75s .72s both fadeUp}@keyframes ambientGlow{0%{opacity:.34;transform:rotate(12deg)scale(1)}to{opacity:.52;transform:rotate(22deg)scale(1.08)}}@keyframes cardAppear{0%{opacity:0;filter:blur(10px);transform:translateY(22px)scale(.96)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.055)}}@keyframes loaderFloat{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-10px)rotate(2deg)}}@keyframes loaderTilt{0%,to{rotate:y -10deg}50%{rotate:1 1 0 10deg}}@keyframes auraPulse{0%,to{opacity:.72;transform:scale(.96)}50%{opacity:1;transform:scale(1.08)}}@keyframes orbitSpinOne{0%{transform:rotateX(72deg)rotateY(16deg)rotate(0)}to{transform:rotateX(72deg)rotateY(16deg)rotate(360deg)}}@keyframes orbitSpinTwo{0%{transform:rotateY(74deg)rotateX(18deg)rotate(0)}to{transform:rotateY(74deg)rotateX(18deg)rotate(360deg)}}@keyframes sparkleBlink{0%,to{opacity:.25;transform:scale(.75)}50%{opacity:1;transform:scale(1.25)}}@keyframes floatHeart{0%{opacity:0;transform:translate(0,0)rotate(0)scale(.8)}12%{opacity:1}70%{opacity:.85}to{opacity:0;transform:translate(18px,-118vh)rotate(28deg)scale(1.12)}}@keyframes cardShine{0%,44%{transform:translate(-120%)}74%,to{transform:translate(120%)}}@keyframes loaderTextFloat{0%{opacity:.76;transform:translateY(0)}to{opacity:1;transform:translateY(-6px)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes contentCardIn{0%{opacity:0;filter:blur(14px);transform:translateY(28px)scale(.96)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes tapHeart{0%{opacity:0;transform:translate(-50%,-40%)scale(.7)}16%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--drift)),-210px)scale(1.25)rotate(18deg)}}@media (max-width:680px){.love-page{align-items:start;padding:18px}.loader-scene{align-content:center;min-height:calc(100vh - 36px)}.access-gate{min-height:calc(100vh - 36px)}.access-card{border-radius:24px;padding:28px 20px}.access-card h2{font-size:clamp(2rem,12vw,3.2rem)}.heart-loader{width:clamp(180px,72vw,250px)}.heart-layer{font-size:clamp(8rem,42vw,11.5rem)}.love-content{width:100%;padding-block:24px 14px}.message-card{border-radius:24px;padding:24px 20px}.message-copy p{line-height:1.66}.smile-button{width:min(100%,340px);padding:0 18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.35s!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.is-locked .loader-scene,.is-locked .love-content{opacity:0;visibility:hidden;pointer-events:none}.is-loading .loader-scene{opacity:1;visibility:visible;filter:none;transform:none}.is-loading .love-content,.is-ready .loader-scene{opacity:0;visibility:hidden;pointer-events:none}.is-ready .love-content{opacity:1;visibility:visible;filter:none;pointer-events:auto;transform:none}.is-ready .overline,.is-ready .message-card,.is-ready .love-actions{opacity:1;filter:none;transform:none}}
