:root{--pink-50:#fff7fb;--pink-100:#fff1f6;--pink-200:#ffd9ec;--pink-300:#ffb3d1;--pink-400:#ff8fbd;--pink-500:#ff6f9e;--crimson:#ff4f86;--crimson-deep:#e02a63;--lavender-200:#efe6ff;--lavender-300:#e3d0ff;--lavender-500:#c9a2ff;--warm:#fff6ee;--deep-900:#0a0414;--deep-800:#150922;--deep-700:#2a1140;--font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-hand:"Caveat", "Segoe Script", "Bradley Hand", cursive;--glass-bg:#ffe9f50f;--glass-bg-strong:#ffe9f51a;--glass-border:#ffd6ec42;--glass-blur:20px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.4, 0, .2, 1);--shadow-soft:0 18px 60px -20px #ff4f8673;--shadow-lift:0 30px 90px -28px #ff4f86a6}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--deep-900);color:var(--pink-100);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;touch-action:manipulation;font-size:16px;line-height:1.6;overflow:hidden}body.has-custom-cursor,body.has-custom-cursor *{cursor:none!important}button{font:inherit;color:inherit;background:0 0;border:none;margin:0;padding:0}:focus-visible{outline:2px solid var(--pink-200);outline-offset:5px;border-radius:6px}::selection{color:var(--warm);background:#ff8fbd66}.canvas-layer{z-index:0;position:fixed;inset:0}.ui-layer{z-index:10;pointer-events:none;padding:max(1.5rem, env(safe-area-inset-top)) 1.5rem max(1.5rem, env(safe-area-inset-bottom));place-items:center;display:grid;position:fixed;inset:0}.ui-layer>*{pointer-events:none}.ui-layer [data-interactive],.ui-layer .panel,.ui-layer .interactive{pointer-events:auto}.ui-page{pointer-events:none;place-items:center;width:100%;height:100%;display:grid}.stage{text-align:center;perspective:1200px;flex-direction:column;align-items:center;gap:1.5rem;max-width:min(760px,92vw);display:flex}.stage--bottom{justify-content:flex-end;height:100%;padding-bottom:2vh}.spacer-lg{flex:none;height:clamp(10rem,34vh,22rem)}.spacer-md{flex:none;height:clamp(3.5rem,12vh,8rem)}.display{--display-gradient:linear-gradient(170deg, var(--warm) 0%, var(--pink-200) 42%, var(--pink-400) 78%, var(--lavender-300) 100%);font-family:var(--font-display);letter-spacing:-.015em;background-image:var(--display-gradient);color:#0000;text-shadow:0 0 70px #ff8fbd47;filter:drop-shadow(0 6px 30px #ff4f864d);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.6rem,8.5vw,6.5rem);font-weight:400;line-height:1.02}.display .char{background-image:var(--display-gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.display--sm{font-size:clamp(1.9rem,5.2vw,3.4rem)}.display--xl{letter-spacing:-.02em;font-size:clamp(3rem,11vw,8rem);font-weight:500}.display em{font-style:italic}.eyebrow{font-family:var(--font-ui);letter-spacing:.34em;text-transform:uppercase;color:#ffd9ec9e;margin:0;font-size:clamp(.7rem,1.6vw,.82rem);font-weight:500}.lede{font-family:var(--font-display);color:#fff1f6e6;text-wrap:balance;max-width:34ch;margin:0;font-size:clamp(1.15rem,2.9vw,1.85rem);font-style:italic;font-weight:300;line-height:1.5}.whisper{color:#ffd9ec80;letter-spacing:.06em;margin:0;font-size:clamp(.75rem,1.8vw,.9rem)}.panel{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.35);box-shadow:var(--shadow-soft), inset 0 1px 0 #ffffff29, inset 0 -30px 60px -40px #ff8fbd80;transform-style:preserve-3d;border-radius:26px;padding:clamp(1.5rem,4vw,2.75rem);position:relative}.panel:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(150deg,#ffd9ec8c,#ff8fbd14 40%,#c9a2ff59);padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.panel--note{text-align:left;background:linear-gradient(155deg,#fff6fb21,#ffd9ec0d 55%,#c9a2ff14);max-width:34rem}.note-text{font-family:var(--font-hand);color:#fff6fbf0;text-shadow:0 2px 20px #ff8fbd59;margin:0 0 .85rem;font-size:clamp(1.25rem,3.1vw,1.7rem);line-height:1.55}.note-text:last-of-type{margin-bottom:0}.note-signature{font-family:var(--font-hand);color:var(--pink-300);text-align:right;margin:.6rem 0 0;font-size:clamp(1.8rem,4vw,2.4rem);line-height:1}.btn{--btn-glow:#ff8fbd8c;font-family:var(--font-ui);letter-spacing:.08em;color:var(--pink-100);background:var(--glass-bg-strong);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(14px)saturate(1.3);box-shadow:0 14px 40px -16px var(--btn-glow), inset 0 1px 0 #fff3;cursor:pointer;transform-style:preserve-3d;will-change:transform;transition:background .4s var(--ease-soft), box-shadow .4s var(--ease-soft), border-color .4s var(--ease-soft), color .4s var(--ease-soft);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:999px;justify-content:center;align-items:center;gap:.6rem;padding:.95rem 2.1rem;font-size:clamp(.88rem,2vw,1rem);font-weight:500;display:inline-flex;position:relative}.btn:hover,.btn:focus-visible{box-shadow:0 24px 60px -18px var(--btn-glow), 0 0 40px -8px var(--btn-glow), inset 0 1px 0 #ffffff4d;background:#ffe9f529;border-color:#ffd6ec8c}.btn:active{box-shadow:0 8px 26px -14px var(--btn-glow), inset 0 1px 0 #fff3}.btn__label{z-index:1;white-space:nowrap;position:relative}.btn--yes{--btn-glow:#ff4f86d9;letter-spacing:.14em;color:#3d0a1e;background:linear-gradient(150deg, var(--warm) 0%, var(--pink-200) 38%, var(--pink-400) 100%);box-shadow:0 24px 70px -18px var(--btn-glow), 0 0 60px -14px #ff8fbdb3, inset 0 2px 0 #ffffffd9, inset 0 -14px 30px -18px #e02a6399;border-color:#fff6fbb3;padding:clamp(1.1rem,3vw,1.5rem) clamp(2.6rem,7vw,4.2rem);font-size:clamp(1.1rem,3.2vw,1.6rem);font-weight:600}.btn--yes:hover,.btn--yes:focus-visible{background:linear-gradient(150deg, #fff 0%, var(--pink-100) 34%, var(--pink-300) 100%);box-shadow:0 34px 90px -18px var(--btn-glow), 0 0 90px -10px #ff8fbde6, inset 0 2px 0 #fffffff2, inset 0 -14px 30px -18px #e02a6380}.btn--no{--btn-glow:#c9a2ff66;color:#fff1f6b8;will-change:transform;background:#ffffff0b;padding:.8rem 1.7rem;font-size:clamp(.8rem,1.9vw,.95rem)}.btn--ghost{--btn-glow:#c9a2ff59;color:#ffd9ecbf;background:#ffffff0a;padding:.7rem 1.5rem;font-size:.85rem}.btn--tiny{letter-spacing:.1em;padding:.5rem 1rem;font-size:.75rem}.btn-hearts{pointer-events:none;z-index:0;position:absolute;inset:-40px}.btn-heart{opacity:0;color:var(--pink-200);animation:btn-heart-float 1.5s var(--ease-out) infinite;text-shadow:0 0 14px #ff8fbde6;font-size:1rem;position:absolute}@keyframes btn-heart-float{0%{opacity:0;transform:translateY(10px)scale(.5)}25%{opacity:1}to{opacity:0;transform:translate3d(var(--dx,0), -42px, 0) scale(1.15) rotate(var(--rot,0deg))}}.answer-area{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(1rem,4vw,3rem);width:min(680px,92vw);min-height:190px;display:flex;position:relative}.btn--no{z-index:25;will-change:transform;margin:0;position:fixed;top:0;left:0}.btn--no.is-decoy{pointer-events:none;z-index:24;filter:blur(.4px);transition:opacity .5s var(--ease-soft)}.no-reply{bottom:max(1.4rem, env(safe-area-inset-bottom));color:#ffd9ecb8;white-space:nowrap;z-index:26;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);animation:rise-in .5s var(--ease-out) both;background:#14082299;border-radius:999px;padding:.5rem 1.1rem;font-size:.82rem;position:fixed;left:50%;transform:translate(-50%)}.heart-word{font-family:var(--font-display);letter-spacing:.04em;color:#fff6fbd9;text-shadow:0 0 22px #ff8fbdd9;white-space:nowrap;transition:color .5s var(--ease-soft), text-shadow .5s var(--ease-soft);font-size:1.6rem;font-style:italic;display:inline-block}.heart-word.is-found{color:var(--warm);text-shadow:0 0 30px #ffd6ec}.platform-name{font-family:var(--font-display);letter-spacing:.06em;color:var(--warm);text-shadow:0 0 34px #ff8fbde6;cursor:pointer;white-space:nowrap;transition:transform .4s var(--ease-out), text-shadow .4s var(--ease-soft);font-size:2.4rem;font-weight:500}.platform-name:hover,.platform-name:focus-visible{text-shadow:0 0 50px #ffd6ec;transform:scale(1.08)}.heart-toast{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);max-width:min(30rem,88vw);font-family:var(--font-display);color:var(--pink-100);text-align:center;box-shadow:var(--shadow-soft);z-index:30;background:#1408228c;border-radius:999px;padding:.9rem 1.6rem;font-size:clamp(1rem,2.4vw,1.3rem);font-style:italic;position:fixed;bottom:clamp(5rem,14vh,9rem);left:50%;transform:translate(-50%)}.progress-pips{justify-content:center;align-items:center;gap:.55rem;display:flex}.pip{width:9px;height:9px;transition:all .5s var(--ease-out);background:#ffd9ec38;border:1px solid #ffd9ec4d;border-radius:999px}.pip.is-on{background:var(--pink-300);border-color:var(--pink-200);transform:scale(1.25);box-shadow:0 0 16px #ff8fbde6}.corner{z-index:40;pointer-events:auto;position:fixed}.corner--tr{top:max(1.1rem, env(safe-area-inset-top));right:max(1.1rem, env(safe-area-inset-right));align-items:center;gap:.6rem;display:flex}.corner--bl{bottom:max(1.1rem, env(safe-area-inset-bottom));left:max(1.1rem, env(safe-area-inset-left))}.icon-btn{background:var(--glass-bg-strong);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(14px);width:44px;height:44px;color:var(--pink-200);cursor:pointer;transition:all .35s var(--ease-out);border-radius:999px;place-items:center;display:grid}.icon-btn:hover,.icon-btn:focus-visible{color:var(--warm);background:#ffe9f52e;transform:scale(1.08);box-shadow:0 0 30px -6px #ff8fbdcc}.secret-counter{letter-spacing:.18em;text-transform:uppercase;color:#ffd9ec73;-webkit-user-select:none;user-select:none;font-size:.72rem}.cursor-canvas{z-index:9999;pointer-events:none;position:fixed;inset:0}.curtain{z-index:60;pointer-events:none;background:radial-gradient(circle,#fff6fbf2 0%,#ffb3d18c 28%,#2a114000 68%);position:fixed;inset:0}.shout{z-index:55;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.shout__text{font-family:var(--font-display);letter-spacing:.04em;color:var(--warm);text-shadow:0 0 40px #ff8fbd,0 0 120px #ff4f86cc;font-size:clamp(3rem,17vw,14rem);font-weight:600}.char{white-space:pre;will-change:transform, opacity;display:inline-block}.fallback{background:radial-gradient(ellipse at 22% 18%, #c9a2ff4d, transparent 55%), radial-gradient(ellipse at 78% 72%, #ff6f9e4d, transparent 55%), linear-gradient(170deg, var(--deep-800), var(--deep-900) 60%, #1d0a2e);place-items:center;min-height:100%;display:grid;position:relative;overflow:hidden}.fallback__sky{pointer-events:none;position:absolute;inset:0;overflow:hidden}.fallback__mote{font-size:var(--size,1rem);color:var(--tint,var(--pink-300));opacity:0;animation:fallback-drift var(--dur,14s) linear infinite;animation-delay:var(--delay,0s);text-shadow:0 0 18px;position:absolute}@keyframes fallback-drift{0%{opacity:0;transform:translateY(12vh)scale(.6)rotate(0)}12%{opacity:.85}88%{opacity:.85}to{opacity:0;transform:translate3d(var(--drift,4vw), -108vh, 0) scale(1.1) rotate(var(--spin,180deg))}}.fallback__heart{filter:drop-shadow(0 0 60px #ff4f86cc);animation:fallback-beat 1.6s var(--ease-soft) infinite;font-size:clamp(5rem,20vw,12rem);line-height:1}@keyframes fallback-beat{0%,to{transform:scale(1)}12%{transform:scale(1.09)}26%{transform:scale(1.01)}38%{transform:scale(1.05)}}.fallback .stage{z-index:2;padding:2rem;position:relative}@keyframes rise-in{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translate(0,0)}}.rise{animation:rise-in 1.1s var(--ease-out) both}@media (max-width:720px){.ui-layer{padding:max(1rem, env(safe-area-inset-top)) 1rem max(1.5rem, env(safe-area-inset-bottom))}.stage{gap:1.15rem}.answer-area{min-height:230px}.panel{border-radius:22px}.heart-toast{bottom:max(4.5rem,12vh)}}@media (max-width:420px){.btn--yes{padding:1rem 2.4rem}}@media (max-height:520px){.spacer-lg{height:6rem}.answer-area{min-height:150px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.15s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.fallback__mote{display:none}.fallback__heart{animation:none}body.has-custom-cursor,body.has-custom-cursor *{cursor:auto!important}}
