/* Project 1111 weekly surprises — isolated responsive layer */
.weekly-pakulo-stage{position:relative;z-index:30}
.pakulo-toast{position:fixed;z-index:10005;top:18px;left:50%;transform:translate(-50%,-20px);opacity:0;pointer-events:none;display:grid;gap:5px;width:min(90vw,360px);padding:18px 22px;text-align:center;color:#fff;background:#17152bea;border:1px solid #e8a9d477;border-radius:20px;box-shadow:0 16px 45px #0008;transition:opacity .3s,transform .3s}
.pakulo-toast.show{opacity:1;transform:translate(-50%,0)}
.bam-birthday-badge{position:fixed;z-index:9990;right:16px;bottom:24px;display:flex;gap:7px;align-items:center;border:1px solid #ffbce1a6;border-radius:100px;padding:10px 15px;background:#24152eea;color:#fff;box-shadow:0 6px 24px #0006;cursor:pointer;font-size:15px}
.bam-birthday-badge small{font-size:12px;letter-spacing:.12em}
.bam-birthday-card{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:18px;background:#060818dc;backdrop-filter:blur(8px);overflow-y:auto;box-sizing:border-box}
.bam-birthday-card.show{display:flex}
.bam-birthday-card-inner{position:relative;box-sizing:border-box;width:min(100%,480px);max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior:contain;padding:36px 24px 28px;border-radius:24px;border:1px solid #f2b9db8c;background:radial-gradient(ellipse at 80% 5%,#673353 0%,transparent 52%),linear-gradient(155deg,#121c35,#20142e 75%,#341c37);color:#fff;text-align:center;box-shadow:0 24px 70px #000b;font-family:inherit}
.bam-birthday-card-inner *{box-sizing:border-box}
.bam-birthday-close{position:absolute;right:13px;top:12px;width:34px;height:34px;border:1px solid #ffffff55;border-radius:50%;background:#ffffff15;color:white;font-size:23px;cursor:pointer}
.bam-birthday-seal{display:inline-block;font-size:42px;cursor:pointer;user-select:none;position:relative;line-height:1.2}
.bam-birthday-seal i{font-size:18px;font-style:normal;position:absolute;top:-4px;right:-12px}
.bam-birthday-seal.tap{animation:bamTap .3s ease}
@keyframes bamTap{50%{transform:scale(1.17) rotate(-8deg)}}
.bam-birthday-kicker{display:block;margin:12px 0 8px;color:#f5b9d8;font-size:12px;letter-spacing:.35em}
.bam-birthday-card h2{margin:0 0 18px;color:#ffe0f1;font-family:Georgia,serif;font-weight:normal;font-size:clamp(28px,7vw,42px);line-height:1.15}
.bam-birthday-card h2 span{color:#f7b0d4}
.bam-birthday-card p{font-size:clamp(14px,3.7vw,16px);line-height:1.7;margin:13px 0;color:#f8f0fa;overflow-wrap:break-word}
.bam-birthday-card strong{color:#ffe0f0}
.bam-birthday-pair{font-size:23px;margin:16px 0}
.bam-birthday-pair b{font-weight:normal;color:#ffc2e0}
.bam-bloom-btn{display:block;width:100%;padding:12px 14px;border:1px solid #ffcfeb;border-radius:50px;background:#f5c5e0;color:#24132c;font-size:14px;font-weight:600;cursor:pointer}
.bam-bloom-count{display:block;margin-top:10px;color:#efc6e1;font-size:12px}
.bam-eight-secret{display:none;margin-top:18px;padding:15px 10px;border:1px solid #eab7d966;border-radius:16px;background:#ffffff10;color:#ffe2f2;font-size:14px;line-height:1.8}
.bam-eight-secret.show{display:block}
.bam-birthday-blooms,.pakulo-sky{position:fixed;inset:0;pointer-events:none;z-index:10010;overflow:hidden}
.bam-birthday-blooms span,.pakulo-sky span{position:absolute;left:var(--x);bottom:-8%;font-size:24px;animation:bamFloat 4s var(--d) ease-out forwards}
@keyframes bamFloat{to{transform:translateY(-110vh) rotate(var(--r,25deg));opacity:0}}
.pakulo-visitor{position:fixed;z-index:9000;bottom:20%;border:0;background:#19162bd9;border-radius:22px;padding:10px;color:white;cursor:pointer;opacity:0;transition:transform .5s,opacity .5s}
.pakulo-visitor span{font-size:32px}.pakulo-visitor small{display:block}.pakulo-visitor.from-left{left:0;transform:translateX(-100%)}.pakulo-visitor.from-right{right:0;transform:translateX(100%)}.pakulo-visitor.peek{opacity:1;transform:translateX(0)}.pakulo-visitor.caught{opacity:0;transform:scale(.6)}
.bloom-token{position:absolute;z-index:40;background:#18142dcc;border:1px solid #fff5;border-radius:50%;width:38px;height:38px;font-size:20px;cursor:pointer}.bloom-token.found{opacity:0;transform:scale(1.5);transition:.4s}
.archive-glitch{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:#050510e8;color:#9ffff2;font:18px monospace}.archive-glitch.show{display:flex}.archive-glitch>div{display:grid;gap:12px;padding:25px}.archive-glitch strong{display:none;color:#f8c2e6}.archive-glitch.answer strong{display:block}
@media(max-width:480px){.bam-birthday-card{padding:12px}.bam-birthday-card-inner{padding:32px 19px 22px;max-height:calc(100dvh - 24px)}.bam-birthday-badge{right:12px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.bam-birthday-blooms span,.pakulo-sky span{animation:none}}

/* v7.9: keep the birthday trigger above the soundtrack and inside viewport. */
.bam-birthday-badge{
  position:fixed !important;
  top:auto !important;
  left:auto !important;
  right:max(16px, env(safe-area-inset-right)) !important;
  bottom:max(24px, env(safe-area-inset-bottom)) !important;
  z-index:10020 !important;
  transform:none !important;
  visibility:visible;
  isolation:isolate;
}
@media (max-width:480px) and (orientation:portrait){
  .bam-birthday-badge{right:max(12px, env(safe-area-inset-right)) !important;bottom:max(16px, env(safe-area-inset-bottom)) !important;}
}
@media (orientation:landscape) and (max-height:550px){
  .bam-birthday-badge{right:max(12px, env(safe-area-inset-right)) !important;bottom:max(12px, env(safe-area-inset-bottom)) !important;padding:8px 12px;}
}

/* Keep the badge below the open modal and avoid soundtrack overlap. */
.bam-birthday-badge{z-index:9990 !important;}
.bam-birthday-card{z-index:10030 !important;}
.bam-birthday-blooms{z-index:10040 !important;}
