body.effect-locked{overflow:hidden}.effect-overlay{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 45%,#132b3b 0,#07131d 35%,#010407 78%);color:#fff;opacity:1;transition:opacity .8s ease}.effect-overlay[hidden]{display:none!important}.effect-overlay.leaving{opacity:0;pointer-events:none}.effect-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.effect-ui{position:relative;z-index:2;text-align:center;pointer-events:none;padding:24px}.effect-ui h2{margin:0 0 10px;font:400 clamp(28px,5vw,54px)/1.3 "Songti SC","STSong",serif;letter-spacing:.08em;text-shadow:0 0 24px #c8efff88}.effect-ui p{margin:0;color:#d8edf7cc;font-size:13px;letter-spacing:.14em}.effect-enter{pointer-events:auto;margin-top:min(38vh,320px);border:1px solid #dff6ff99;border-radius:30px;background:#dff7ff17;color:#fff;padding:13px 28px;backdrop-filter:blur(10px);box-shadow:0 0 30px #bdeeff33;opacity:0;transform:translateY(12px);transition:.5s;cursor:pointer}.effect-enter.visible{opacity:1;transform:none}.effect-enter:hover{background:#e8faff2b;box-shadow:0 0 42px #c7f1ff55}.effect-skip,.effect-close{position:absolute;z-index:4;top:max(18px,env(safe-area-inset-top));right:18px;border:1px solid #ffffff55;border-radius:24px;background:#0007;color:#fff;padding:10px 16px;backdrop-filter:blur(8px);cursor:pointer}.effect-skip:hover,.effect-close:hover{background:#ffffff1f}.cake-overlay{background:radial-gradient(circle at 50% 50%,#2a1124 0,#0c050c 46%,#020103 82%)}.cake-overlay .effect-ui h2{color:#fff3d6;text-shadow:0 0 18px #ffbf69,0 0 44px #ff5d8f}.cake-overlay .effect-ui p{color:#ffe5c4}.cake-hint{margin-top:min(42vh,350px)!important}.cake-overlay.ready .cake-hint{animation:hintPulse 1.4s ease-in-out infinite}@keyframes hintPulse{50%{opacity:.55;transform:scale(.97)}}
@media(max-width:640px){.effect-ui{padding:18px}.effect-ui h2{font-size:30px}.effect-enter{margin-top:42vh}.cake-hint{margin-top:46vh!important}.effect-skip,.effect-close{right:12px;top:max(12px,env(safe-area-inset-top));padding:9px 13px}}
@media(prefers-reduced-motion:reduce){.effect-overlay{transition:none}.effect-enter{transition:none}.cake-overlay.ready .cake-hint{animation:none}}
