:root{--bg-1:#e9e6f7;--bg-2:#eef0fb;--bg-3:#f5eaf4;--lav:#cfc6f0;--lav-deep:#8b7fc4;--peri:#b9c4f0;--pink:#f0d6ea;--green:#6fae84;--green-deep:#4f9268;--green-soft:#bfe6cd;--ink:#443a5c;--ink-soft:#8c83a8;--glass:#ffffff80;--glass-border:#fffc}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:var(--ink);background:radial-gradient(at 72% 18%, #cfc6f08c, transparent 58%), radial-gradient(at 18% 82%, #f0d6ea80, transparent 55%), linear-gradient(160deg, var(--bg-1) 0%, var(--bg-2) 50%, var(--bg-3) 100%);-webkit-font-smoothing:antialiased;font-family:Quicksand,system-ui,-apple-system,sans-serif;overflow:hidden}.stage{justify-content:center;align-items:center;min-height:100dvh;padding:clamp(1rem,4vw,2.5rem);display:flex;position:relative;overflow:hidden}.tint{z-index:0;pointer-events:none;position:absolute;inset:0}.blob{filter:blur(78px);z-index:0;pointer-events:none;will-change:transform;border-radius:50%;position:absolute}.blob-a{opacity:.6;background:radial-gradient(circle at 35% 35%,#d8cef5,#c2b6ee);width:48vmax;height:48vmax;animation:24s ease-in-out infinite drift;top:-16vmax;left:-12vmax}.blob-b{opacity:.7;background:radial-gradient(circle at 60% 40%,#fff,#d7defa);width:40vmax;height:40vmax;animation:28s ease-in-out infinite reverse drift;bottom:-16vmax;right:-10vmax}.blob-c{opacity:.6;background:radial-gradient(circle,#f4dcef,#ecd0e6);width:28vmax;height:28vmax;animation:32s ease-in-out infinite drift;bottom:6vmax;left:8vmax}.blob-d{opacity:.55;background:radial-gradient(circle,#c9e8d6,#0000 70%);width:22vmax;height:22vmax;animation:26s ease-in-out infinite drift-b;top:6vmax;right:14vmax}@keyframes drift{0%,to{transform:translate(0)scale(1)}50%{transform:translate(4vmax,-3vmax)scale(1.08)}}@keyframes drift-b{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-3vmax,2.5vmax)scale(1.12)}}.grain{z-index:1;pointer-events:none;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.05'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.sparkles{z-index:1;pointer-events:none;position:absolute;inset:0}.sparkle{filter:drop-shadow(0 0 4px);animation:3.4s ease-in-out infinite twinkle;display:block;position:absolute;transform:translate(-50%,-50%)}.sparkle svg{width:100%;height:100%;display:block}@keyframes twinkle{0%,to{opacity:.2;transform:translate(-50%,-50%)scale(.7)rotate(0)}50%{opacity:.95;transform:translate(-50%,-50%)scale(1)rotate(15deg)}}.masthead{top:max(1.6rem, env(safe-area-inset-top));z-index:3;pointer-events:none;justify-content:center;align-items:center;gap:.7rem;display:flex;position:absolute;left:0;right:0}.masthead-icon{width:44px;height:44px;color:var(--lav-deep);background:#ffffff8c;border:1px solid #fffc;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 6px 16px -8px #8b7fc473}.masthead-icon svg{width:20px;height:20px}.masthead-title{color:#7b71a8;letter-spacing:.3px;font-size:1.08rem;font-weight:600}.deco{z-index:1;pointer-events:none;position:absolute}.deco svg{width:100%;height:100%}.deco-sparkle{color:#a091d766;width:44px;height:44px;top:14%;left:6%}.deco-leaf{color:#6fae8473;width:40px;height:40px;top:16%;right:7%;transform:rotate(20deg)}.card{z-index:2;width:100%;max-width:560px;position:relative}.bow{z-index:4;pointer-events:none;filter:drop-shadow(0 8px 13px #7869aa4d);width:clamp(74px,16vw,108px);position:absolute;top:0;left:50%;transform:translate(-50%,-62%)}.bow svg{width:100%;height:auto;display:block}.card-inner{text-align:left;-webkit-backdrop-filter:blur(20px)saturate(1.25);backdrop-filter:blur(20px)saturate(1.25);background:linear-gradient(#ffffff85,#fff6) 0 0/100% 100% padding-box padding-box,linear-gradient(125deg,#ffd9f0,#d7c8ff,#bfe3ff,#b8f0cf,#fff3cf,#ffd9f0) 0%/320% 320% border-box;border:2px solid #0000;border-radius:36px;padding:clamp(2rem,6vw,3rem) clamp(1.5rem,5vw,2.6rem) clamp(2.6rem,7vw,3.4rem);animation:12s infinite holo;position:relative;box-shadow:0 26px 60px -24px #8b7fc480,0 0 42px -10px #cfc6f08c,inset 0 1px #ffffffd9}@keyframes holo{0%{background-position:0 0,0%}50%{background-position:0 0,100%}to{background-position:0 0,0%}}.card-label{align-items:center;gap:.65rem;margin-bottom:1.5rem;display:flex}.label-icon{width:38px;height:38px;color:var(--lav-deep);background:#cfc6f073;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.label-icon svg{width:17px;height:17px}.label-text{letter-spacing:.22em;text-transform:uppercase;color:#9a8fc0;font-size:.82rem;font-weight:700}.line{text-wrap:pretty;margin:.2em 0;font-family:Lora,Georgia,serif;font-size:clamp(1.45rem,5.2vw,2rem);font-style:italic;font-weight:500;line-height:1.5}.word{white-space:nowrap;display:inline-block}.ltr{will-change:opacity;display:inline-block}.controls{justify-content:center;margin-top:2.2rem;display:flex}.btn-stack{flex-direction:column;gap:.85rem}.btn{color:#fff;cursor:pointer;background:linear-gradient(160deg,#6fae84,#4f9268);border:none;border-radius:999px;width:min(100%,320px);padding:1.02rem 2.3rem;font-family:Quicksand,system-ui,sans-serif;font-size:1.1rem;font-weight:600;transition:box-shadow .25s,filter .25s;box-shadow:0 12px 26px -10px #4f926899,inset 0 1px #ffffff40}.btn-stack .btn{width:100%}.btn:hover{filter:brightness(1.06);box-shadow:0 16px 34px -10px #4f9268a8,inset 0 1px #ffffff40}.btn-ghost{color:var(--lav-deep);box-shadow:none;background:#ffffff80;border:1.5px solid #beb2ebcc}.btn-ghost:hover{filter:none;box-shadow:none;background:#cfc6f059}.back{top:calc(max(1.6rem, env(safe-area-inset-top)) + 3.4rem);z-index:3;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.4rem .7rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:color .2s,background .2s;position:absolute;left:clamp(1rem,4vw,2rem)}.back:hover{color:var(--lav-deep);background:#ffffff80}.chibi-peek{z-index:3;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 10px 16px #7869aa47);width:clamp(96px,23vw,132px);height:auto;position:absolute}.pos-br{bottom:clamp(-44px,-6vw,-30px);right:9%}.pos-bl{bottom:clamp(-44px,-6vw,-30px);left:9%}.pos-bc{margin-inline:auto;bottom:clamp(-50px,-7vw,-36px);left:0;right:0}.pos-tr{top:clamp(-52px,-7vw,-38px);right:7%}.pos-tl{top:clamp(-52px,-7vw,-38px);left:7%}.redirect{justify-content:center;align-items:center;gap:.7rem;margin-top:1.8rem;display:flex}.redirect-text{color:var(--ink-soft);font-family:Quicksand,system-ui,sans-serif;font-size:.98rem;font-weight:500}.spinner{border:2.5px solid #beb2eb99;border-top-color:var(--lav-deep);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.foot-note{bottom:max(1.6rem, env(safe-area-inset-bottom));z-index:2;text-align:center;color:var(--ink-soft);pointer-events:none;font-size:.98rem;font-weight:500;position:absolute;left:0;right:0}.sound-wrap{right:clamp(1rem,3vw,1.6rem);bottom:max(1.2rem, env(safe-area-inset-bottom));z-index:5;align-items:center;gap:.6rem;display:flex;position:fixed}.sound-nudge{letter-spacing:.02em;color:var(--lav-deep);white-space:nowrap;background:#ffffff9e;border:1px solid #beb2ebb3;border-radius:999px;padding:.32rem .72rem;font-family:Quicksand,system-ui,sans-serif;font-size:.8rem;font-weight:600;box-shadow:0 6px 16px -10px #8b7fc473}.sound-btn{width:42px;height:42px;color:var(--lav-deep);cursor:pointer;background:#ffffff8c;border:1px solid #beb2ebb3;border-radius:50%;place-items:center;transition:color .25s,background .25s,box-shadow .25s,transform .2s;display:grid;box-shadow:0 6px 16px -10px #8b7fc473}.sound-btn svg{width:19px;height:19px}.sound-btn:hover{background:#ffffffd1;transform:translateY(-1px)}.sound-btn.on{color:#fff;background:linear-gradient(160deg,#6fae84,#4f9268);border-color:#0000;box-shadow:0 8px 20px -8px #4f926899}.sound-btn.nudging{animation:2.6s ease-in-out infinite soundpulse}@keyframes soundpulse{0%,to{box-shadow:0 6px 16px -10px #8b7fc473}50%{box-shadow:0 4px 24px -4px #a596e1b3}}.dialog-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#4e447857;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.dialog{text-align:center;border:1px solid var(--glass-border);background:#ffffffeb;border-radius:28px;width:min(92vw,360px);padding:2.1rem 1.6rem 1.7rem;box-shadow:0 28px 64px -26px #8b7fc48c,0 8px 20px -10px #443a5c33}.dialog-icon{width:52px;height:52px;color:var(--lav-deep);background:#cfc6f080;border-radius:50%;place-items:center;margin-bottom:1rem;display:inline-grid}.dialog-icon svg{width:24px;height:24px}.dialog-title{color:var(--lav-deep);margin-bottom:.45rem;font-family:Quicksand,system-ui,sans-serif;font-size:1.12rem;font-weight:700}.dialog-text{color:var(--ink-soft);font-family:Quicksand,system-ui,sans-serif;font-size:.95rem;font-weight:500;line-height:1.5}.dialog-actions{flex-direction:column;gap:.7rem;margin-top:1.5rem;display:flex}.dialog-actions .btn{width:100%}.celebrate{z-index:6;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti{will-change:transform, opacity;display:block;position:absolute;box-shadow:0 1px 2px #443a5c1f}.card-yes .card-inner{box-shadow:0 28px 72px -26px #a596e199,0 0 50px -8px #f0c8e699,inset 0 1px #ffffffe6}.card-yes .label-text{color:#b07ac0}.card-yes .label-icon{color:#b07ac0;background:#f0c8e699}.card-no .card-inner{box-shadow:0 24px 60px -26px #8278b473,0 0 36px -12px #b9c4f080,inset 0 1px #ffffffd1}.card.card-yes,.card.card-no{max-width:680px}.card-img{z-index:2;aspect-ratio:1264/848;filter:drop-shadow(0 22px 42px #7869aa59);background-position:50%;background-repeat:no-repeat;background-size:contain;justify-content:center;align-items:center;width:100%;padding:9% 13%;display:flex;position:relative}.card-text{text-align:center;max-width:82%}.line-script{color:#5b4a9e;text-shadow:0 1px 5px #ffffffd9,0 0 2px #ffffffe6;margin:.1em 0;font-family:Dancing Script,Lora,cursive;font-size:clamp(1.3rem,4.3vw,2.05rem);font-weight:600;line-height:1.22}.card-text .redirect{margin-top:1rem}.card-text .redirect-text{color:#6a5aa6}@media (prefers-reduced-motion:reduce){.blob,.sparkle,.card-inner,.sound-btn.nudging{animation:none}}
