:root{--bg1: #ffd6e0;--bg2: #e4d9ff;--ink: #3b2a33;--accent: #e8577e;--soft: #ffd9e3;--gold: #f4b740;font-family:Quicksand,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}button,input,label{touch-action:manipulation}:root{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}html,body{margin:0;min-height:100dvh;overflow-x:hidden}body{display:grid;place-items:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom));background:linear-gradient(160deg,var(--bg1),#fbe3ef 45%,var(--bg2))}.sky{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.sky:before,.sky:after{content:"";position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(40px);opacity:.55;animation:drift 18s ease-in-out infinite alternate}.sky:before{background:#ffb8cc;top:-20vmax;left:-15vmax}.sky:after{background:#cdbcff;bottom:-25vmax;right:-20vmax;animation-delay:-9s}.petal{position:absolute;top:-8%;width:var(--s, 18px);height:var(--s, 18px);opacity:.8;animation:fall var(--d, 14s) linear infinite;animation-delay:var(--delay, 0s)}@keyframes drift{to{transform:translate(8vmax,6vmax) scale(1.1)}}@keyframes fall{to{transform:translate(var(--x, 30px),115vh) rotate(360deg)}}.card{position:relative;z-index:1;width:min(100%,440px);display:grid;justify-items:center;gap:16px;text-align:center;padding:28px 22px 26px;border-radius:28px;background:#ffffff8c;border:1px solid rgb(255 255 255 / .8);box-shadow:0 20px 50px #7c466e2e;backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);animation:rise .7s cubic-bezier(.2,.8,.2,1) both}@keyframes rise{0%{opacity:0;transform:translateY(18px) scale(.98)}}.mascot-slot .mascot{width:min(44vw,170px)}.script{font-family:Dancing Script,cursive;font-weight:700;font-size:clamp(2.4rem,11vw,3.2rem);line-height:1.1;margin:0;color:var(--accent)}.lead{margin:0;line-height:1.6;font-weight:500;color:#6b4a58}.lead strong{color:var(--accent);font-weight:700}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.bubble{position:relative;margin:6px 0 0;padding:18px 18px 12px;border-radius:20px;background:linear-gradient(180deg,#fff,#fff6f9);border:1px solid #ffe1ea;box-shadow:0 8px 20px #e8577e1f;line-height:1.55;color:#4a3540}.bubble:after{content:"Bé Bông";position:absolute;top:-10px;left:14px;padding:1px 9px;border-radius:999px;font-size:.7rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#f58aa8,var(--accent));box-shadow:0 3px 8px #e8577e40}.date-pill{display:inline-flex;align-items:center;gap:8px;margin:0 0 -6px;padding:5px 14px;border-radius:999px;background:#ffffffbf;border:1px solid #ffd3df;color:var(--accent);font-weight:700;font-size:.9rem;letter-spacing:.12em}.date-pill .icon{width:12px;height:12px}.from{margin:0;font-family:Dancing Script,cursive;font-weight:600;font-size:1.15rem;color:#b04a6c}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:100%}.unit{position:relative;display:grid;gap:4px;padding:14px 4px 10px;border-radius:20px;background:linear-gradient(180deg,#fff,#fff3f7);border:1px solid #ffe1ea;box-shadow:0 8px 18px #e8577e1f}.unit:before{content:"";position:absolute;left:12%;right:12%;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgb(232 87 126 / .12),transparent)}.num{font-size:clamp(1.7rem,9vw,2.5rem);font-weight:700;background:linear-gradient(180deg,#f6789a,#d63f6b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums;color:var(--accent);line-height:1}.num.tick{animation:flip .35s ease}.label{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#a07888}.countdown.urgent .num{animation:pulse 1s ease-in-out infinite}@keyframes flip{0%{transform:rotateX(80deg);opacity:.2}to{transform:none;opacity:1}}@keyframes pulse{50%{transform:scale(1.12)}}.tease{font-weight:600;min-height:1.5em}.gate-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%;padding:5px;border-radius:999px;background:#fff9;border:1px solid #ffe1ea}.gate-tab{min-height:44px;border:0;border-radius:999px;background:none;font:inherit;font-weight:700;font-size:.92rem;color:#a07888;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}.gate-tab[aria-checked=true]{background:linear-gradient(135deg,#f58aa8,var(--accent));color:#fff;box-shadow:0 4px 12px #e8577e4d}.gate-tab:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.gate-question.swap{animation:rise .35s both}.badge{padding:6px 14px;border-radius:999px;background:var(--ink);color:#fff;font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.gate-form{display:grid;gap:10px;width:100%;text-align:left}.gate-question{font-weight:700;font-size:1.05rem;line-height:1.45;min-height:3em}.gate-form input{width:100%;min-height:50px;padding:12px 16px;font:inherit;font-size:1.05rem;border:2px solid var(--soft);border-radius:14px;background:#fff;color:var(--ink)}.gate-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #e8577e26}.gate-form input.shake{animation:shake .4s}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.btn{min-height:50px;border:0;border-radius:999px;font:inherit;font-weight:700;cursor:pointer;background:linear-gradient(135deg,#f06a8f,var(--accent));color:#fff;box-shadow:0 8px 20px #e8577e59}.btn:disabled{opacity:.55;cursor:wait}.btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.hints{list-style:none;margin:0;padding:0;display:grid;gap:8px;width:100%}.hints li{padding:10px 14px;border-radius:14px;background:#fff8e6;border:1px dashed var(--gold);text-align:left;animation:rise .4s both}.hints li{display:flex;gap:8px;align-items:baseline}.hints li .icon{color:#e2a21b;transform:translateY(2px)}.card.is-unlocked{animation:unlock .8s ease forwards}.gate-form[hidden],.gate-tabs[hidden]{display:none}.gate-reply.is-success{font-weight:800;color:var(--accent)}.gate-more{display:block;margin-top:6px;line-height:1.6;font-weight:500;color:#4a3540;animation:rise .5s .25s both}.gate-enter{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;animation:rise .5s .5s both}.gate-enter .icon{width:18px;height:18px}@keyframes unlock{60%{transform:scale(1.04)}to{transform:scale(.96);opacity:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}.petal{display:none}}@media (max-width: 480px){body{padding-top:calc(64px + env(safe-area-inset-top))}}:root[data-theme=dark]{--ink: #f5e6ee;--accent: #ff7ea6;--soft: #4a2c40;--gold: #f7c25c}:root[data-theme=dark] body{background:linear-gradient(160deg,#2a1428,#1b1220 50%,#1d1533)}:root[data-theme=dark] .sky:before{background:#7a2f55;opacity:.45}:root[data-theme=dark] .sky:after{background:#4b3a8f;opacity:.45}:root[data-theme=dark] .card{background:#24172ab8;border-color:#ffffff1a;box-shadow:0 20px 50px #00000080}:root[data-theme=dark] .script{color:#ff8fb1}:root[data-theme=dark] .lead{color:#e6c9d6}:root[data-theme=dark] .lead strong{color:#ff9dbb}:root[data-theme=dark] .date-pill{background:#2a1b2fcc;border-color:#6b3d57;color:#ff9dbb}:root[data-theme=dark] .from{color:#ffb3c9}:root[data-theme=dark] .unit{background:linear-gradient(180deg,#2f1f34,#271a2b);border-color:#4a3045;box-shadow:0 8px 18px #00000059}:root[data-theme=dark] .unit:before{background:linear-gradient(90deg,transparent,rgb(255 126 166 / .2),transparent)}:root[data-theme=dark] .num{background:linear-gradient(180deg,#ffb3c9,#ff6f9a);-webkit-background-clip:text;background-clip:text}:root[data-theme=dark] .label{color:#c7a9b8}:root[data-theme=dark] .bubble{color:#f5e6ee;background:linear-gradient(180deg,#2f1f34,#281a2c);border-color:#4a3045;box-shadow:0 8px 20px #00000059}:root[data-theme=dark] .bubble:after{color:#2a0f1c;background:linear-gradient(135deg,#ffb3c9,var(--accent))}:root[data-theme=dark] .badge{background:#f5e6ee;color:#2a1b2f}:root[data-theme=dark] .gate-tabs{background:#2a1b2fb3;border-color:#4a3045}:root[data-theme=dark] .gate-tab{color:#c7a9b8}:root[data-theme=dark] .gate-tab[aria-checked=true]{color:#2a0f1c;background:linear-gradient(135deg,#ffb3c9,var(--accent))}:root[data-theme=dark] .gate-form input{background:#2a1b2f;border-color:#4a3045;color:var(--ink)}:root[data-theme=dark] .gate-form input::placeholder{color:#a98a99}:root[data-theme=dark] .btn{color:#2a0f1c;background:linear-gradient(135deg,#ffb3c9,var(--accent));box-shadow:0 8px 20px #0006}:root[data-theme=dark] .hints li{background:#3a2c1c;border-color:#b58a2e;color:#f5e6ee}:root[data-theme=dark] .hints li .icon{color:var(--gold)}:root[data-theme=dark] .gate-more{color:#f0dce6}:root[data-theme=dark] .btn:disabled{opacity:1;background:#34222f;color:#8f7383;box-shadow:none}.mascot{--bong-ink: #3b2a33;--bong-accent: #e8577e}.mascot-slot{display:grid;justify-items:center}.mascot{width:min(42vw,180px);aspect-ratio:200 / 220}.mascot[hidden]{display:none}.mascot svg{width:100%;height:100%;overflow:visible}.mascot .shadow{fill:#000;opacity:.08}.mascot .fluff,.mascot .arm ellipse{fill:#fff;stroke:#f0c7d3;stroke-width:3}.mascot .eyes ellipse,.mascot .eyes circle{fill:var(--bong-ink)}.mascot .eyes .sparkle,.mascot .eyes .white{fill:#fff}.mascot .eyes path,.mascot .brows path,.mascot .mouth--smile,.mascot .mouth--flat,.mascot .mini-letter path{fill:none;stroke:var(--bong-ink);stroke-width:3.5;stroke-linecap:round}.mascot .mouth--open,.mascot .mouth--o{fill:#b8405f}.mascot .cheek{fill:#ff9fb6;opacity:.8}.mascot .bag path{fill:var(--bong-accent)}.mascot .bag-letter{fill:#fff;font:700 26px system-ui,sans-serif}.mascot .mini-letter rect{fill:#fffaf0;stroke:var(--gold, #f4b740);stroke-width:2.5}.mascot .mini-letter path{stroke:var(--gold, #f4b740);stroke-width:2.5}.mascot .eyes,.mascot .mouth,.mascot .brows,.mascot .mini-letter{display:none}.mascot--greet .eyes--normal,.mascot--greet .mouth--smile,.mascot--talk .eyes--normal,.mascot--talk .mouth--open,.mascot--serious .eyes--normal,.mascot--serious .brows,.mascot--serious .mouth--flat,.mascot--panic .eyes--wide,.mascot--panic .mouth--o,.mascot--celebrate .eyes--happy,.mascot--celebrate .mouth--open,.mascot--read .eyes--happy,.mascot--read .mouth--smile,.mascot--read .mini-letter{display:inline}.mascot .body{transform-origin:100px 200px;transform-box:view-box}.mascot .arm--right{transform-origin:150px 120px;transform-box:view-box}.mascot .eyes{transform-origin:100px 96px;transform-box:view-box;transition:transform .08s ease}.mascot--greet .body{animation:bob 2.4s ease-in-out infinite}.mascot--greet .arm--right{animation:wave 1.2s ease-in-out infinite}.mascot--talk .body{animation:bob 1.2s ease-in-out infinite}.mascot--serious .body{transform:rotate(-6deg)}.mascot--panic .body{animation:shake .25s linear infinite}.mascot--celebrate .body{animation:hop .6s ease-in-out infinite}.mascot--read .body{transform:rotate(4deg)}@keyframes bob{0%,to{transform:translateY(0) scale(1.02,.98)}50%{transform:translateY(-7px) scale(.98,1.03)}}@keyframes hop{0%,to{transform:translateY(0) scale(1.06,.92)}20%{transform:translateY(-4px) scale(.94,1.08)}50%{transform:translateY(-18px) rotate(3deg) scale(.97,1.04)}80%{transform:translateY(-2px) scale(1.03,.97)}}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes wave{50%{transform:rotate(-20deg)}}@keyframes blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}.mascot .eyes--sleep path{fill:none;stroke:var(--bong-ink);stroke-width:3.5;stroke-linecap:round}.mascot .mouth--small{fill:#b8405f}.mascot .zzz{display:none;fill:#8a7bd1;font:700 18px system-ui,sans-serif}.mascot--sleep .eyes--sleep,.mascot--sleep .mouth--small,.mascot--sleep .zzz{display:inline}.mascot--sleep .body{animation:breathe 3.2s ease-in-out infinite}.mascot .zzz text{animation:zfloat 2.4s ease-in-out infinite;opacity:0}.mascot .zzz text:nth-child(2){animation-delay:.8s}.mascot .zzz text:nth-child(3){animation-delay:1.6s}@keyframes breathe{50%{transform:scale(1.03,.97)}}@keyframes zfloat{0%{opacity:0;transform:translateY(6px)}40%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@media (prefers-reduced-motion: reduce){.mascot *{animation:none!important}.mascot .zzz text{opacity:1}}.mascot .eyes--heart path{fill:var(--bong-accent)}.mascot .eyes--wink path,.mascot .mouth--hmm,.mascot .mouth--wobble{fill:none;stroke:var(--bong-ink);stroke-width:3.5;stroke-linecap:round}.mascot .blush-lines path{fill:none;stroke:#f48aa8;stroke-width:2.5;stroke-linecap:round}.mascot .tears path{fill:#8fd3ff}.mascot .think-mark{fill:#8a7bd1;font:800 28px system-ui,sans-serif}.mascot .love-hearts path{fill:var(--bong-accent)}.mascot .blush-lines,.mascot .tears,.mascot .think-mark,.mascot .love-hearts{display:none}.mascot--love .eyes--heart,.mascot--love .mouth--open,.mascot--love .love-hearts,.mascot--shy .eyes--happy,.mascot--shy .mouth--small,.mascot--shy .blush-lines,.mascot--wink .eyes--wink,.mascot--wink .mouth--smile,.mascot--think .eyes--up,.mascot--think .mouth--hmm,.mascot--think .think-mark,.mascot--touched .eyes--happy,.mascot--touched .mouth--wobble,.mascot--touched .tears{display:inline}.mascot--love .body{animation:bob 1.4s ease-in-out infinite}.mascot .love-hearts path{transform-box:fill-box;animation:zfloat 2s ease-in-out infinite}.mascot .love-hearts path:nth-child(2){animation-delay:.9s}.mascot--shy .body{transform:rotate(-5deg)}.mascot--shy .cheek{transform-box:fill-box;transform-origin:center;transform:scale(1.35)}.mascot--wink .body{transform:rotate(5deg)}.mascot--think .body{transform:rotate(-3deg)}.mascot .think-mark{animation:zfloat 2.4s ease-in-out infinite}.mascot--touched .body{animation:breathe 2.4s ease-in-out infinite}.mascot .tears path{animation:drip 1.6s ease-in infinite}.mascot .tears path:nth-child(2){animation-delay:.5s}@keyframes drip{0%{transform:translateY(0);opacity:1}to{transform:translateY(12px);opacity:0}}@media (prefers-reduced-motion: reduce){.mascot .love-hearts path,.mascot .think-mark{opacity:1}.mascot .tears path{opacity:1}}.mascot .eyes--dizzy path,.mascot .eyes--pout path,.mascot .brows--pout path{fill:none;stroke:var(--bong-ink);stroke-width:3;stroke-linecap:round}.mascot .eyes--dizzy path{stroke-width:2.4}.mascot .eyes--pout ellipse{fill:var(--bong-ink)}.mascot .mouth--grin,.mascot .mouth--pout,.mascot .yawn-mouth{fill:#b8405f}.mascot .hug-heart{fill:var(--bong-accent);stroke:#fff;stroke-width:2.5}.mascot .giggle-text,.mascot .pout-text{font:800 22px Quicksand,system-ui,sans-serif;stroke:#fff;stroke-width:4px;paint-order:stroke;stroke-linejoin:round}.mascot .giggle-text{fill:var(--bong-accent)}.mascot .pout-text{fill:#d0533f}.mascot .dizzy-stars path,.mascot .clap-sparks path{fill:#f4b740}.mascot .yawn-mouth,.mascot .hug-heart,.mascot .giggle-text,.mascot .pout-text,.mascot .dizzy-stars,.mascot .clap-sparks{display:none}.mascot--giggle .eyes--happy,.mascot--giggle .mouth--grin,.mascot--giggle .giggle-text,.mascot--pout .eyes--pout,.mascot--pout .brows--pout,.mascot--pout .mouth--pout,.mascot--pout .pout-text,.mascot--dizzy .eyes--dizzy,.mascot--dizzy .mouth--wobble,.mascot--dizzy .dizzy-stars,.mascot--clap .eyes--happy,.mascot--clap .mouth--grin,.mascot--clap .clap-sparks,.mascot--hug .eyes--happy,.mascot--hug .mouth--smile,.mascot--hug .hug-heart{display:inline}.mascot .arm--left{transform-origin:50px 120px;transform-box:view-box}.mascot--giggle .body{animation:giggle .18s ease-in-out infinite}.mascot .giggle-text,.mascot .pout-text{transform-box:fill-box;animation:pop-float 1.1s ease-out infinite}@keyframes pop-float{0%{opacity:0;transform:translateY(6px) scale(.7)}25%{opacity:1;transform:translateY(0) scale(1.05)}75%{opacity:1}to{opacity:0;transform:translateY(-8px)}}.mascot--pout .body{transform:rotate(9deg) translate(4px)}.mascot--pout .cheek{transform-box:fill-box;transform-origin:center;transform:scale(1.6)}.mascot--pout .fluff{transform-box:fill-box;transform-origin:center;transform:scaleX(1.04)}.mascot--dizzy .body{animation:dizzy 1.4s ease-in-out infinite}.mascot--dizzy .eyes--dizzy path{transform-box:fill-box;transform-origin:center;animation:spin 1s linear infinite}.mascot .dizzy-stars{transform-origin:100px 40px;transform-box:view-box}.mascot--dizzy .dizzy-stars{animation:spin 1.6s linear infinite}.mascot--clap .body{animation:bob .5s ease-in-out infinite}.mascot--clap .arm--left{animation:clap-left .32s ease-in-out infinite}.mascot--clap .arm--right{animation:clap-right .32s ease-in-out infinite}.mascot--clap .clap-sparks path{transform-box:fill-box;transform-origin:center;animation:twinkle-b .6s ease-in-out infinite}.mascot--clap .clap-sparks path:nth-child(2){animation-delay:.2s}.mascot--clap .clap-sparks path:nth-child(3){animation-delay:.4s}.mascot--hug .arm--left{transform:translate(34px,14px) rotate(-25deg)}.mascot--hug .arm--right{transform:translate(-34px,14px) rotate(25deg)}.mascot--hug .body{animation:breathe 2.4s ease-in-out infinite}.mascot--hug .hug-heart{transform-box:fill-box;transform-origin:center;animation:heart-beat 1.2s ease-in-out infinite}.mascot .arm--left,.mascot .arm--right{transition:transform .35s cubic-bezier(.3,1.4,.5,1)}@keyframes giggle{0%,to{transform:rotate(-2.5deg) scale(1.01,.99)}50%{transform:rotate(2.5deg) scale(.99,1.01)}}@keyframes dizzy{0%,to{transform:rotate(-7deg)}50%{transform:rotate(7deg) translate(3px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes clap-left{50%{transform:translate(38px,-6px) rotate(-30deg)}}@keyframes clap-right{50%{transform:translate(-38px,-6px) rotate(30deg)}}@keyframes twinkle-b{50%{transform:scale(.4);opacity:.4}}@keyframes heart-beat{0%,60%,to{transform:scale(1)}30%{transform:scale(1.15)}}.mascot .pose{transform-origin:100px 200px;transform-box:view-box;transition:transform .45s cubic-bezier(.3,1.4,.5,1)}.mascot .mouth{transition:opacity .2s ease}.mascot.is-switching .eyes{transform:scaleY(.12)}.mascot.is-switching .pose{animation:switch-pop .2s ease-out}@keyframes switch-pop{50%{transform:scale(1.03,.97)}}.mascot .face{transform:translate(var(--lx, 0px),var(--ly, 0px));transition:transform .3s ease-out}.mascot.act-blink .eyes{animation:blink-once .24s ease}.mascot.act-blink2 .eyes{animation:blink-once .24s ease 2}.mascot.act-look-left .face{transform:translate(-9px,var(--ly, 0px))}.mascot.act-look-right .face{transform:translate(9px,var(--ly, 0px))}.mascot.act-tilt .pose{transform:rotate(-7deg)}.mascot.act-yawn .pose{transform:scale(.98,1.05)}.mascot.act-yawn .eyes{transform:scaleY(.2)}.mascot.act-yawn .mouth{opacity:0}.mascot.act-yawn .yawn-mouth{display:inline;transform-box:fill-box;transform-origin:center;animation:yawn 1.9s ease-in-out}.mascot.act-scratch .arm--left{animation:scratch 1.6s ease-in-out}.mascot.act-scratch .pose{transform:rotate(-4deg)}.mascot.act-wave .arm--right{animation:wave .5s ease-in-out 3}@keyframes blink-once{50%{transform:scaleY(.1)}}@keyframes yawn{0%{transform:scale(.3)}30%,70%{transform:scale(1.1,1.2)}to{transform:scale(.3)}}@keyframes scratch{0%,to{transform:none}20%,80%{transform:translate(22px,-58px) rotate(150deg)}35%,65%{transform:translate(24px,-62px) rotate(140deg)}50%{transform:translate(20px,-56px) rotate(155deg)}}.mascot.is-listening .pose{animation:sway 1.6s ease-in-out infinite}@keyframes sway{25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.mascot.is-interactive{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion: reduce){.mascot .face,.mascot .pose,.mascot .arm--left,.mascot .arm--right{transition:none}.mascot .giggle-text,.mascot .pout-text,.mascot .dizzy-stars path,.mascot .clap-sparks path{opacity:1}}.icon{display:inline-block;flex:none;width:1em;height:1em;vertical-align:-.15em}.icon svg{display:block;width:100%;height:100%}.theme-toggle{position:fixed;z-index:40;top:calc(12px + env(safe-area-inset-top));right:calc(64px + env(safe-area-inset-right));width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid rgb(255 255 255 / .9);border-radius:50%;background:#ffffffb3;color:#8a6ad1;cursor:pointer;box-shadow:0 6px 18px #7c466e2e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:transform .2s ease}.theme-toggle:active{transform:scale(.92)}.theme-toggle .icon{width:21px;height:21px}.theme-toggle .when-dark{display:none}.theme-toggle:focus-visible{outline:3px solid var(--gold, #f4b740);outline-offset:3px}:root[data-theme=dark] .theme-toggle{background:#2a1b2fc7;border-color:#ffffff1f;color:#f7c25c;box-shadow:0 6px 18px #0006}:root[data-theme=dark] .theme-toggle .when-light{display:none}:root[data-theme=dark] .theme-toggle .when-dark{display:grid}.welcome-hide{display:flex;align-items:center;gap:8px;min-height:44px;font-size:.9rem;color:#7a6470;cursor:pointer}.welcome-hide input{width:20px;height:20px;margin:0;accent-color:var(--accent)}.welcome-reopen{position:fixed;z-index:40;top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid rgb(255 255 255 / .9);border-radius:50%;background:#ffffffb3;color:var(--accent);cursor:pointer;box-shadow:0 6px 18px #7c466e2e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.welcome-reopen .icon{width:22px;height:22px}.welcome-reopen:focus-visible{outline:3px solid var(--gold);outline-offset:3px}:root[data-theme=dark] .welcome-hide{color:#c7a9b8}:root[data-theme=dark] .welcome-reopen{background:#2a1b2fc7;border-color:#ffffff1f;box-shadow:0 6px 18px #0006}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#3b2a3373;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fade-in .25s ease both}.modal{width:min(100%,380px);max-height:calc(100dvh - 32px);overflow-y:auto;display:grid;gap:14px;justify-items:center;text-align:center;padding:24px 20px 20px;border-radius:28px;line-height:1.55;font-family:Quicksand,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:500;color:#4a3540;background:radial-gradient(120% 60% at 50% 0%,#ffe8ef,transparent 70%),#fff;border:1px solid #ffe1ea;box-shadow:0 20px 50px #3b2a334d;animation:pop-in .45s cubic-bezier(.3,1.4,.5,1) both}.modal p{margin:0}.modal-title{margin:0;font-size:1.25rem;font-weight:700;line-height:1.35;color:var(--accent)}.modal-question{font-weight:700;font-size:1.1rem;line-height:1.45}.modal-note{position:relative;width:100%;padding:14px 16px;border-radius:18px;text-align:left;background:repeating-linear-gradient(180deg,transparent 0 25px,rgb(232 87 126 / .08) 25px 26px),#fff8fa;border:1.5px dashed #ffbfd0;color:#5a3f4b;rotate:-1deg;box-shadow:0 6px 14px #e8577e1a}.modal-note p{margin:0}.modal-note-label{display:inline-flex;align-items:center;gap:6px;margin-bottom:6px!important;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.modal-note-label .icon{width:15px;height:15px}.modal-mascot{position:relative}.modal-hearts .mh{position:absolute;color:#f48fab;animation:modal-float 2.4s ease-in-out infinite}.modal-hearts .mh1{top:8%;left:-18%;width:18px;height:18px}.modal-hearts .mh2{top:26%;right:-16%;width:14px;height:14px;animation-delay:.7s}.modal-hearts .mh3{top:-4%;right:-4%;width:16px;height:16px;color:var(--gold);animation-delay:1.3s}.modal-choices{display:grid;gap:10px;width:100%}.modal-choices--row{grid-template-columns:1.4fr 1fr}.modal .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.modal .btn .icon{width:18px;height:18px}.btn--ghost{background:#fff!important;color:var(--accent)!important;border:2px solid #ffc9d8!important;box-shadow:none!important}.btn--messenger{background:linear-gradient(135deg,#00b2ff,#8a5cff 55%,#ff5c9a)!important;color:#fff!important;box-shadow:0 8px 20px #8a5cff4d!important;text-decoration:none}.btn-text{min-height:44px;padding:8px 16px;border:0;background:none;font:inherit;font-weight:600;color:#a07888;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.btn-text:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:8px}@keyframes modal-float{50%{transform:translateY(-6px) scale(1.1);opacity:.7}}.modal-mascot .mascot{width:110px}.modal .btn{width:100%}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}}:root[data-theme=dark] .modal-overlay{background:#0a040c99}:root[data-theme=dark] .modal{color:#f5e6ee;border-color:#4a3045;background:radial-gradient(120% 60% at 50% 0%,#3d2140,transparent 70%),#24172a;box-shadow:0 20px 50px #0000008c}:root[data-theme=dark] .modal-text{color:#e6c9d6}:root[data-theme=dark] .modal-note{color:#f0dce6;border-color:#7a4566;background:repeating-linear-gradient(180deg,transparent 0 25px,rgb(255 126 166 / .1) 25px 26px),#2e1c31;box-shadow:0 6px 14px #0000004d}:root[data-theme=dark] .btn--ghost{background:transparent!important;color:#ff9dbb!important;border-color:#7a4566!important}:root[data-theme=dark] .btn-text{color:#c7a9b8}
