/* S2ND Love Confession — isolated design; no global font size changes */
.love-builder{max-width:900px;margin:26px auto 70px;padding:clamp(24px,5vw,58px);border:1px solid #f6d5ed;border-radius:30px;text-align:center;background:radial-gradient(ellipse at 15% 0%,#ffe1f3 0%,transparent 55%),linear-gradient(135deg,#fff9ff,#f8eafa 65%,#f2eeff);box-shadow:0 28px 80px #aa438522}
.love-badge{display:inline-block;background:white;border:1px solid #f5c6e4;border-radius:99px;padding:9px 16px;color:#d72888;font-weight:750;font-size:13px}
.love-builder h2{margin:22px auto 12px;color:#451461;font-weight:900;font-size:clamp(26px,4vw,42px);line-height:1.22;max-width:680px}
.love-builder>p{color:#785d89;line-height:1.7}.love-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;text-align:left;margin-top:30px}
.love-form label{font-weight:750;color:#552269;display:flex;flex-direction:column;gap:9px}
.love-form input,.love-form textarea{width:100%;box-sizing:border-box;font:inherit;color:#39144c;background:#fff;border:1.5px solid #ead0e8;border-radius:15px;padding:15px 17px;box-shadow:0 6px 18px #661a6610;outline:none;resize:vertical}
.love-form input:focus,.love-form textarea:focus{border-color:#ec3eaa;box-shadow:0 0 0 4px #ee50bb20}.love-wide{grid-column:1/-1}
.love-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;text-align:center}.love-actions span{color:#795c82;font-size:13px}.love-main-btn{border:0;border-radius:16px;background:linear-gradient(110deg,#f52d8e,#a645df);color:#fff;font-weight:850;padding:17px 25px;cursor:pointer;box-shadow:0 15px 35px #df39934d}
.love-scene[hidden]{display:none!important}.love-scene{position:fixed;inset:0;z-index:100000;overflow-y:auto;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:35px 18px;background:radial-gradient(circle at 50% 40%,#69216f 0%,#310a4e 45%,#130727 100%);color:#fff;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;text-align:center}
.love-scene::before,.love-scene::after{content:'';position:fixed;inset:-20%;z-index:-1;pointer-events:none;background:radial-gradient(circle at 30% 35%,#f80b8c35,transparent 32%),radial-gradient(circle at 70% 70%,#9d6bff35,transparent 33%);animation:love-breathe 7s ease-in-out infinite alternate}.love-scene::after{filter:blur(48px);animation-delay:-3s}
.love-sky{position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#fff9 1px,transparent 2px),radial-gradient(#ffb9f7bb 1px,transparent 2px);background-size:71px 71px,113px 113px;background-position:0 0,35px 51px;opacity:.5;animation:love-sky 25s linear infinite}
#love-particles{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.love-close{position:fixed;right:22px;top:20px;z-index:3;border:1px solid #ffffff55;background:#ffffff18;color:white;border-radius:100px;width:43px;height:43px;cursor:pointer;font-size:21px}
.love-scene-center{position:relative;width:min(100%,880px);margin:auto;padding:38px 4px;z-index:1;animation:love-entrance .9s cubic-bezier(.2,.9,.2,1) both}.love-overline{color:#ffbbef;letter-spacing:.2em;text-transform:uppercase;font-size:12px;font-weight:800;animation:love-entrance 1s .2s both}.love-heart{font-size:clamp(85px,13vw,135px);line-height:1.3;color:#ff4f9c;text-shadow:0 0 26px #ff3ca7,0 0 95px #fd3ca7;filter:drop-shadow(0 12px 14px #f7228766);animation:love-heartbeat 1.8s infinite ease-in-out}
.love-scene h2{color:white;font-size:clamp(30px,5vw,62px);line-height:1.18;font-weight:900;overflow-wrap:anywhere;text-shadow:0 2px 27px #ff63e255;margin:5px auto 20px}.love-x{color:#ff6aa9}.love-note{max-width:670px;margin:12px auto 25px;color:#ffe2f3;line-height:1.75;font-size:clamp(17px,2.5vw,24px);white-space:pre-line;overflow-wrap:anywhere;animation:love-entrance 1s .35s both}.love-question{color:#fff;font-size:clamp(17px,2vw,23px);font-weight:750;margin:0 auto 18px}
.love-answer,.love-share{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.love-answer button,.love-share button{border:1px solid #ffbbf566;border-radius:99px;padding:13px 22px;color:white;background:#ffffff25;font-weight:800;cursor:pointer;backdrop-filter:blur(12px)}.love-answer button:first-child{border:0;background:linear-gradient(110deg,#ff2b91,#a84bff);box-shadow:0 9px 30px #fb2d9280}.love-answer button:hover,.love-share button:hover{transform:translateY(-2px);background-color:#ffffff45}.love-share{margin-top:23px}.love-share button{font-size:12px;padding:10px 15px}#love-reply{min-height:22px;color:#ffcee9;font-weight:750;margin:14px}
.love-orbit{pointer-events:none;position:absolute;inset:8px -10px auto;display:flex;justify-content:space-between;color:#ffc6f3;font-size:27px;filter:drop-shadow(0 0 13px #fa7cde);animation:love-float 3s ease-in-out infinite alternate}
@keyframes love-heartbeat{0%,100%{transform:scale(1)}18%{transform:scale(1.15)}34%{transform:scale(.98)}48%{transform:scale(1.1)}65%{transform:scale(1)}}@keyframes love-entrance{from{opacity:0;transform:translateY(45px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes love-breathe{to{transform:scale(1.15) rotate(8deg)}}@keyframes love-sky{to{background-position:100px -150px,-100px -120px}}@keyframes love-float{to{transform:translateY(-20px)}}
@media(max-width:620px){.love-form{grid-template-columns:1fr}.love-scene-center{padding:28px 0}.love-builder{margin-bottom:35px}.love-orbit{display:none}}
@media(prefers-reduced-motion:reduce){.love-scene *, .love-scene::before,.love-scene::after,.love-sky{animation:none!important;transition:none!important}}


/* Romantic acceptance scene v2: independent overlay that preserves the original message. */
.love-celebration[hidden]{display:none!important}
.love-celebration{position:fixed;inset:0;z-index:6;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:clamp(9px,1.6vh,18px);padding:64px 22px 42px;overflow-y:auto;isolation:isolate;background:radial-gradient(ellipse at 50% 38%,rgba(255,77,169,.42),transparent 50%),radial-gradient(ellipse at 80% 78%,rgba(128,57,255,.38),transparent 47%),linear-gradient(145deg,rgba(50,7,75,.98),rgba(92,16,110,.98) 48%,rgba(28,9,61,.98));box-sizing:border-box;animation:love-celebration-entrance .9s cubic-bezier(.15,.85,.25,1) both}
.love-celeb-rays{position:absolute;z-index:-1;inset:-35%;background:repeating-conic-gradient(from 0deg at 50% 46%,transparent 0 11deg,rgba(255,198,235,.055) 11deg 13deg,transparent 13deg 27deg);mask-image:radial-gradient(ellipse at 50% 46%,black 0,transparent 56%);animation:love-celeb-spin 34s linear infinite;pointer-events:none}
.love-celeb-crown{font-size:clamp(17px,2vw,25px);color:#ffe6a3;letter-spacing:22px;text-shadow:0 0 20px #ff9ed7}
.love-celeb-emoji{font-size:clamp(65px,11vw,112px);line-height:1.05;filter:drop-shadow(0 0 35px #ff66c3);animation:love-celeb-bounce 2.4s ease-in-out infinite}
.love-celeb-eyebrow{margin:0;color:#ffcaeb;letter-spacing:.18em;font-size:clamp(10px,1.4vw,13px);font-weight:800}
.love-celebration h3{font-size:clamp(31px,5.6vw,68px);line-height:1.08;letter-spacing:-.045em;font-weight:900;color:#fff;margin:0;text-shadow:0 0 35px #ff4aa955;text-wrap:balance}
.love-celeb-names{font-size:clamp(24px,4.2vw,47px);line-height:1.18;margin:0;font-weight:850;color:#ffe4f4;overflow-wrap:anywhere;text-shadow:0 2px 25px #ee53c477}
.love-celeb-names [aria-hidden]{color:#ff6aa9;display:inline-block;animation:love-heartbeat 1.8s infinite}
.love-celeb-quote{max-width:750px;margin:4px auto 0;color:#fff3fc;font-weight:580;font-size:clamp(17px,2.1vw,23px);line-height:1.65;text-wrap:balance}
.love-celeb-infinity{font-size:clamp(44px,6vw,78px);line-height:.8;color:#fcb8eb;text-shadow:0 0 26px #ff50b0}
.love-celeb-sign{margin:0;color:#f6c9ea;font-size:clamp(12px,1.6vw,15px)}
.love-celeb-back{margin-top:10px;border:1px solid #ffc5e58c;background:#ffffff24;color:#fff;box-shadow:0 12px 40px #15021c55;font:750 14px system-ui,sans-serif;padding:12px 22px;border-radius:999px;cursor:pointer;transition:background .2s,transform .2s}
.love-celeb-back:hover{background:#ffffff43;transform:translateY(-2px)}
.love-celeb-back:focus-visible{outline:3px solid #fff;outline-offset:4px}
@keyframes love-celebration-entrance{from{opacity:0;transform:scale(1.07)}to{opacity:1;transform:scale(1)}}
@keyframes love-celeb-bounce{0%,100%{transform:translateY(0) scale(1)}48%{transform:translateY(-12px) scale(1.07)}}
@keyframes love-celeb-spin{to{transform:rotate(360deg)}}
@media(max-height:620px){.love-celebration{justify-content:flex-start;gap:8px;padding-top:55px}.love-celeb-emoji{font-size:62px}.love-celebration h3{font-size:clamp(27px,4vw,48px)}.love-celeb-infinity{font-size:38px}}
@media(prefers-reduced-motion:reduce){.love-celebration,.love-celeb-rays,.love-celeb-emoji,.love-celeb-names [aria-hidden]{animation:none!important}}
/* Keep the close control usable above the celebration layer. */
.love-scene .love-close{z-index:10}

/* V3 celebration: truly full-screen sibling overlay (not trapped in animated parent) */
.love-scene{box-sizing:border-box;overflow-x:hidden}
.love-scene.love-is-celebrating{overflow:hidden;padding:0}
.love-celebration[hidden]{display:none!important}
.love-scene > .love-celebration{
  position:fixed!important;inset:0!important;z-index:8!important;
  display:flex!important;flex-direction:column;align-items:center;justify-content:center;
  width:100%;height:100%;height:100dvh;max-width:none;max-height:none;
  margin:0;padding:clamp(54px,7vh,78px) 22px 24px;box-sizing:border-box;
  overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  gap:clamp(10px,1.7vh,17px);border:0;border-radius:0;
  background:radial-gradient(ellipse at 50% 28%,rgba(244,67,160,.22),transparent 43%),radial-gradient(ellipse at 80% 80%,rgba(123,80,223,.24),transparent 46%),linear-gradient(150deg,#230937,#48155e 55%,#241044);
  animation:love-celebration-entrance .65s ease-out both;
}
.love-celebration::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#ffdeef77 1px,transparent 1.5px);background-size:55px 55px;opacity:.3}
.love-celeb-rays{position:absolute;inset:-25%;z-index:0;opacity:.55;mask-image:radial-gradient(ellipse at 50% 45%,#000 0,transparent 58%)}
.love-scene > .love-celebration > *:not(.love-celeb-rays){position:relative;z-index:1}
.love-celeb-crown{font-size:17px;letter-spacing:4px;color:#ffe4b5}
.love-celeb-emblem{width:clamp(76px,14vh,120px);height:clamp(76px,14vh,120px);display:grid;place-items:center;filter:drop-shadow(0 0 28px rgba(255,92,168,.6));animation:love-celeb-bounce 3s ease-in-out infinite}
.love-celeb-emblem svg{height:100%;width:100%;overflow:visible}
.love-celebration h3{max-width:800px;font-size:clamp(29px,5vw,58px);line-height:1.13;letter-spacing:-.035em;margin:0;text-align:center;text-wrap:balance}
.love-celeb-eyebrow{font-size:clamp(10px,1.2vw,12px);letter-spacing:.14em;line-height:1.5;margin:0}
.love-celeb-names{font-size:clamp(23px,3.8vw,42px);margin:0;line-height:1.2}
.love-celeb-quote{max-width:680px;font-size:clamp(16px,1.9vw,21px);line-height:1.6;margin:0;text-wrap:balance}
.love-celeb-sign{font-size:13px;opacity:.8;line-height:1.5;margin:0}
.love-celeb-back{flex:none;min-height:45px;margin:4px 0 0;padding:11px 25px;background:linear-gradient(110deg,#f0449c,#af4deb);border:1px solid #ffc6e5;color:#fff;box-shadow:0 10px 28px #1a052e66}
.love-scene .love-close{z-index:30!important;right:max(17px,env(safe-area-inset-right));top:max(17px,env(safe-area-inset-top))}
@media(max-width:620px){.love-scene > .love-celebration{padding:70px 20px 30px;gap:13px}.love-celeb-emblem{width:95px;height:95px}.love-celebration h3{font-size:clamp(28px,8vw,40px)}.love-celeb-quote{font-size:16px;line-height:1.55}.love-celeb-names{font-size:clamp(23px,7vw,34px)}}
@media(max-height:680px){.love-scene > .love-celebration{justify-content:flex-start;gap:9px;padding-top:58px}.love-celeb-emblem{width:66px;height:66px}.love-celebration h3{font-size:clamp(26px,4.5vw,42px)}.love-celeb-quote{font-size:15px}.love-celeb-crown{display:none}}
@media(prefers-reduced-motion:reduce){.love-celeb-emblem,.love-scene > .love-celebration{animation:none!important}}
.love-scene > .love-celebration[hidden]{display:none!important}
