/* ══════════════════════════════════════════
   DESIGN TOKENS — Neumorphism UI inspired
   Background: #e8edf5  |  Shadow dark: #c2ccd9  |  Shadow light: #ffffff
   ══════════════════════════════════════════ */
:root{
  --bg:#e8edf5;
  --light:#ffffff;
  --dark:#c2ccd9;
  --neu:8px 8px 16px var(--dark),-8px -8px 16px var(--light);
  --neu-lg:14px 14px 28px var(--dark),-14px -14px 28px var(--light);
  --neu-sm:4px 4px 10px var(--dark),-4px -4px 10px var(--light);
  --neu-in:inset 4px 4px 10px var(--dark),inset -4px -4px 10px var(--light);
  --neu-in-sm:inset 3px 3px 7px var(--dark),inset -3px -3px 7px var(--light);
  --grad:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#9c27b0,#ff0080,#ff4500,#ffdd00);
  --p1:#6c5ecf;
  --p2:#f55e84;
  --p3:#f4a261;
  --green:#00b894;
  --text:#2d3a5a;
  --muted:#8896b3;
  --card-radius:24px;
  --btn-radius:50px;
  --input-radius:14px;
}

/* ── RESET + BASE ── */
*{margin:0;padding:0;box-sizing:border-box;}
html,body{
  background:var(--bg);
  font-family:'Nunito',sans-serif;
  font-weight:600;
  color:var(--text);
  min-height:100vh;
  overflow-x:hidden;
  line-height:1.6;
}

/* ── AMBIENT BLOBS ── */
.blob{position:fixed;border-radius:50%;filter:blur(120px);opacity:.07;pointer-events:none;z-index:0;}
.blob1{width:600px;height:600px;top:-180px;left:-140px;background:var(--p1);animation:drift 18s ease-in-out infinite alternate;}
.blob2{width:420px;height:420px;bottom:-120px;right:-120px;background:var(--p2);animation:drift 22s ease-in-out infinite alternate-reverse;}
.blob3{width:320px;height:320px;top:38%;left:52%;background:var(--p3);animation:drift 14s ease-in-out infinite alternate;}
@keyframes drift{from{transform:translate(0,0)scale(1);}to{transform:translate(28px,20px)scale(1.08);}}

/* ── TRANSITIONS ── */
.overlay{position:fixed;inset:0;background:var(--bg);z-index:9998;opacity:0;pointer-events:none;transition:opacity .65s ease;}
.overlay.show{opacity:1;pointer-events:all;}
#screen-welcome,#screen-birthday{position:relative;z-index:1;min-height:100vh;}
#screen-birthday{display:none;}
#screen-welcome{display:flex;align-items:center;justify-content:center;padding:40px 20px;}

/* ── STARS ── */
.star{position:fixed;border-radius:50%;opacity:0;pointer-events:none;z-index:0;animation:twinkle ease-in-out infinite;}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.5);}50%{opacity:.18;transform:scale(1);}}

/* ════════════════════════════════
   WELCOME SCREEN
   ════════════════════════════════ */
.w-card{
  position:relative;z-index:1;
  background:var(--bg);
  border-radius:36px;
  box-shadow:var(--neu-lg);
  padding:52px 44px 48px;
  width:min(520px,92vw);
  display:flex;flex-direction:column;align-items:center;gap:28px;
  text-align:center;
  animation:cardIn .9s cubic-bezier(.16,1,.3,1) both;
}
@keyframes cardIn{from{opacity:0;transform:translateY(44px)scale(.93);}to{opacity:1;transform:none;}}

.w-ring-outer{width:110px;height:110px;border-radius:50%;background:var(--bg);box-shadow:var(--neu);display:flex;align-items:center;justify-content:center;animation:breathe 3.2s ease-in-out infinite;}
@keyframes breathe{0%,100%{box-shadow:var(--neu);}50%{box-shadow:var(--neu-lg);}}
.w-ring-inner{width:76px;height:76px;border-radius:50%;background:var(--bg);box-shadow:var(--neu-in);display:flex;align-items:center;justify-content:center;font-size:2.4rem;animation:spinR 10s linear infinite;}
.w-ring-inner span{display:inline-block;animation:spinR 10s linear infinite reverse;}
@keyframes spinR{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}

.w-badge{background:var(--bg);box-shadow:var(--neu-sm);border-radius:50px;padding:6px 20px;font-size:.65rem;letter-spacing:3.5px;text-transform:uppercase;color:var(--p1);font-weight:700;}
.w-headline-group{display:flex;flex-direction:column;gap:6px;}
.w-for{font-size:.7rem;letter-spacing:4px;text-transform:uppercase;color:var(--muted);font-weight:700;}
.w-name{font-size:clamp(2rem,6vw,3rem);font-weight:900;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#00b0ff,#9c27b0,#ff0080,#ff4500,#ffdd00);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:400% 400%;animation:fluidGrad 28s ease infinite;line-height:1.1;}
@keyframes shimmer{0%{background-position:0% center;}100%{background-position:200% center;}}
@keyframes fluidGrad{0%{background-position:0% 50%;}25%{background-position:50% 100%;}50%{background-position:100% 50%;}75%{background-position:50% 0%;}100%{background-position:0% 50%;}}
.w-surprise-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;}
.w-surprise-icon{width:36px;height:36px;border-radius:12px;background:var(--bg);box-shadow:var(--neu-sm);display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0;}
.w-surprise-text{font-size:clamp(1.1rem,3.5vw,1.4rem);font-weight:800;color:var(--text);}
.w-sub{font-size:.83rem;color:var(--muted);letter-spacing:.6px;}

.w-cd{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;width:100%;}
.w-cd-box{flex:1;min-width:70px;background:var(--bg);border-radius:18px;box-shadow:var(--neu);padding:16px 8px 12px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:box-shadow .2s;}
.w-cd-num{font-size:clamp(1.5rem,4vw,2.1rem);font-weight:900;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#00b0ff,#9c27b0,#ff0080);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:400% 400%;animation:fluidGrad 28s ease infinite;line-height:1;font-variant-numeric:tabular-nums;}
.w-cd-sep{font-size:1.5rem;font-weight:900;color:var(--muted);align-self:flex-start;margin-top:6px;opacity:.5;animation:blink 1s step-end infinite;}
@keyframes blink{0%,100%{opacity:.5;}50%{opacity:.1;}}
.w-cd-lbl{font-size:.58rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);font-weight:700;}
.w-bday-now{font-size:1.5rem;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

.w-pulse-row{display:flex;align-items:center;gap:8px;}
.w-dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,var(--p1),var(--p2));animation:ping 1.8s infinite;}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(108,94,207,.5);}70%{box-shadow:0 0 0 10px rgba(108,94,207,0);}100%{box-shadow:0 0 0 0 rgba(108,94,207,0);}}
.w-pulse-txt{font-size:.7rem;letter-spacing:3px;text-transform:uppercase;color:var(--muted);font-weight:700;}

.w-btn-wrap{width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;}
.w-cel-btn{width:100%;max-width:340px;background:var(--bg);border:none;border-radius:22px;box-shadow:var(--neu);padding:18px 28px;font-family:'Nunito',sans-serif;font-weight:900;font-size:1rem;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:box-shadow .25s,transform .2s;animation:btnPulse 3s ease-in-out infinite;position:relative;overflow:hidden;}
@keyframes btnPulse{0%,100%{box-shadow:var(--neu);}50%{box-shadow:var(--neu-lg),0 0 24px rgba(108,94,207,.12);}}
.w-cel-btn:hover{transform:translateY(-4px);box-shadow:var(--neu-lg),0 8px 24px rgba(108,94,207,.18);animation:none;}
.w-cel-btn:active{box-shadow:var(--neu-in);transform:scale(.97);animation:none;}
.btn-txt{background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#00b0ff,#9c27b0,#ff0080);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:400% 400%;animation:fluidGrad 28s ease infinite;}
.btn-ico{font-size:1.25rem;}
.w-hint{font-size:.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:600;}

/* ════════════════════════════════
   BIRTHDAY SCREEN LAYOUT
   ════════════════════════════════ */
.b-wrapper{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:32px 20px;}
.b-container{max-width:740px;width:100%;display:flex;flex-direction:column;gap:20px;}

.top-banner{background:var(--bg);border-radius:var(--card-radius);box-shadow:var(--neu-sm);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;}
.banner-left{display:flex;align-items:center;gap:10px;}
.ribbon{background:var(--bg);box-shadow:var(--neu-in-sm);border-radius:50px;padding:6px 16px;font-size:.65rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--p1);font-weight:700;}
.banner-emoji{font-size:1.3rem;}
.live-dot{display:flex;align-items:center;gap:6px;font-size:.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);}
.b-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:ping2 1.5s infinite;}
@keyframes ping2{0%{box-shadow:0 0 0 0 rgba(0,184,148,.5);}70%{box-shadow:0 0 0 8px rgba(0,184,148,0);}100%{box-shadow:0 0 0 0 rgba(0,184,148,0);}}

/* ── HERO ── */
.hero{background:var(--bg);border-radius:var(--card-radius);box-shadow:var(--neu);padding:44px 32px 40px;text-align:center;position:relative;overflow:hidden;}
.hero-inner-ring{position:absolute;inset:12px;border-radius:18px;box-shadow:var(--neu-in);pointer-events:none;opacity:.35;}
.hb-row{display:flex;justify-content:center;flex-wrap:wrap;margin-bottom:6px;}
.hb-letter{display:inline-block;font-size:clamp(2rem,6.5vw,3.3rem);font-weight:900;line-height:1.1;letter-spacing:-.5px;background:linear-gradient(135deg,#ff0000,#ff6600,#cc8800);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fluidGrad 8s ease infinite,letterJump 1.2s ease-in-out infinite;}
@keyframes letterJump{0%,100%{transform:translateY(0);}40%{transform:translateY(-10px);}60%{transform:translateY(-6px);}}
.hb-letter.space{width:.45em;}
@keyframes letterDance{0%,100%{transform:translateY(0)rotate(-3deg)scale(1);}25%{transform:translateY(-10px)rotate(4deg)scale(1.12);}50%{transform:translateY(-4px)rotate(-2deg)scale(1.06);}75%{transform:translateY(-14px)rotate(3deg)scale(1.15);}}
.hero-name{font-size:clamp(2rem,6.5vw,3.3rem);font-weight:900;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#9c27b0,#ff0080,#ff4500,#ffdd00);background-size:400% 400%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fluidGrad 28s ease infinite;line-height:1.1;margin-bottom:8px;letter-spacing:-.5px;}
.hero-date{display:inline-block;background:var(--bg);box-shadow:var(--neu-in-sm);border-radius:50px;padding:7px 22px;font-size:.82rem;letter-spacing:3px;text-transform:uppercase;color:var(--p1);margin-bottom:8px;margin-top:4px;}
.hero-tagline{font-size:.95rem;color:var(--muted);font-weight:600;letter-spacing:.4px;}

/* SVG Cake */
.cake-svg-wrap{display:flex;flex-direction:column;align-items:center;margin:18px 0 10px;cursor:pointer;}
.cake-svg-wrap svg{filter:drop-shadow(0 6px 18px rgba(108,94,207,.18));transition:transform .15s;}
.cake-svg-wrap:hover svg{transform:scale(1.04);}
.blow-hint{font-size:.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:6px;animation:pulse2 1.6s ease-in-out infinite;}
@keyframes pulse2{0%,100%{opacity:.4;}50%{opacity:1;}}
.blow-hint.done{color:var(--p1);animation:none;opacity:1;}
.flame{transform-origin:bottom center;animation:flicker .4s ease-in-out infinite alternate;}
@keyframes flicker{0%{transform:scaleX(1)scaleY(1)rotate(-2deg);}100%{transform:scaleX(.85)scaleY(1.15)rotate(3deg);}}
.flame.out{display:none;}
.smoke{opacity:0;}
.smoke.show{animation:smokeRise 1.8s ease-out forwards;}
@keyframes smokeRise{0%{opacity:.7;transform:translateY(0)scaleX(1);}100%{opacity:0;transform:translateY(-22px)scaleX(2.5);}}

/* ── HOME PAGE CSS CAKE ── */
.hc-cake-scene{position:relative;width:160px;height:210px;margin:0 auto 8px;animation:cakeFloat 3s ease-in-out infinite;}
@keyframes cakeFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
.hc-cake-scene::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:150px;height:14px;border-radius:50%;background:radial-gradient(ellipse,rgba(108,94,207,.2) 0%,transparent 70%);}
.hc-t1,.hc-t2,.hc-t3{position:absolute;left:50%;transform:translateX(-50%);border-radius:18px;overflow:visible;}
.hc-t1{width:150px;height:52px;bottom:20px;background:linear-gradient(160deg,#ffb7c5 0%,#ff6b9d 100%);box-shadow:0 8px 20px rgba(255,107,157,.45),inset 0 2px 6px rgba(255,255,255,.6);}
.hc-t2{width:112px;height:46px;bottom:68px;background:linear-gradient(160deg,#c3aff7 0%,#7b5ea7 100%);box-shadow:0 8px 20px rgba(123,94,167,.45),inset 0 2px 6px rgba(255,255,255,.5);}
.hc-t3{width:76px;height:38px;bottom:110px;background:linear-gradient(160deg,#ffe8a3 0%,#f4a261 100%);box-shadow:0 6px 16px rgba(244,162,97,.45),inset 0 2px 5px rgba(255,255,255,.6);}
.hc-t1::before,.hc-t2::before,.hc-t3::before{content:'';position:absolute;top:-10px;left:0;right:0;height:20px;background:white;border-radius:50% 50% 0 0/100% 100% 0 0;opacity:.92;}
.hc-t1::after{content:'🌸 🌸';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.85rem;letter-spacing:8px;white-space:nowrap;}
.hc-t2::after{content:'✦ ✦';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.8rem;letter-spacing:6px;color:rgba(255,255,255,.85);}
.hc-t3::after{content:'♥';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.9rem;color:rgba(255,255,255,.9);}
.hc-candles{position:absolute;bottom:144px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:10;}
.hc-candle{width:8px;border-radius:4px;position:relative;}
.hc-candle:nth-child(1){height:28px;background:linear-gradient(180deg,#9b59b6,#6c3483);}
.hc-candle:nth-child(2){height:34px;background:linear-gradient(180deg,#e74c3c,#922b21);margin-top:-6px;}
.hc-candle:nth-child(3){height:28px;background:linear-gradient(180deg,#e67e22,#a04000);}
.hc-candle::before{content:'';position:absolute;inset:0;border-radius:4px;background:repeating-linear-gradient(180deg,transparent,transparent 4px,rgba(255,255,255,.2) 4px,rgba(255,255,255,.2) 6px);}
.hc-candle::after{content:'';position:absolute;top:-14px;left:50%;transform:translateX(-50%);width:10px;height:16px;background:radial-gradient(ellipse at 50% 80%,#fff9c4 0%,#ffb300 50%,rgba(255,80,0,0) 100%);border-radius:50% 50% 40% 40%;animation:hcFlame .35s ease-in-out infinite alternate;filter:blur(.5px);}
.hc-candle:nth-child(2)::after{animation-delay:.1s;}
.hc-candle:nth-child(3)::after{animation-delay:.2s;}
@keyframes hcFlame{0%{transform:translateX(-50%)scaleX(1)scaleY(1)rotate(-2deg);}100%{transform:translateX(-50%)scaleX(.82)scaleY(1.18)rotate(3deg);}}
.hc-topper{position:absolute;bottom:175px;left:50%;transform:translateX(-50%);font-size:1.3rem;animation:hcTopperSpin 4s linear infinite;z-index:11;}
@keyframes hcTopperSpin{0%,100%{transform:translateX(-50%)rotate(-8deg);}50%{transform:translateX(-50%)rotate(8deg);}}
.hc-sparks{position:absolute;inset:0;pointer-events:none;}
.hc-spark{position:absolute;font-size:.75rem;animation:twinkle ease-in-out infinite;}

/* ── STATS ROW ── */
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;background:none;box-shadow:none;padding:0;}
.stat-card{background:var(--bg);border-radius:var(--card-radius);box-shadow:var(--neu);padding:22px 12px;text-align:center;transition:box-shadow .3s,transform .3s;cursor:default;}
.stat-card:hover{box-shadow:var(--neu-in);transform:scale(.97);}
.stat-icon{width:46px;height:46px;border-radius:50%;background:var(--bg);box-shadow:var(--neu-sm);margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;}
.stat-val{font-size:1.1rem;font-weight:800;color:var(--text);}
.stat-lbl{font-size:.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:2px;}

/* ── SECTION BASE CARD ── */
.wish-scroll,.qualities-wrap,.countdown-wrap,.age-counter-wrap,.roast-wrap,
.fortune-wrap,.horo-wrap,.ball-wrap,.mood-wrap,.achiev-wrap,.quiz-wrap,.facts-wrap,
.secret-wrap,.alter-wrap,.trailer-wrap,.polaroid-wrap,.wishes-wrap,.playlist-wrap,
.dance-party-wrap,.cakecust-wrap,.wheel-wrap,.msgwall-wrap,.irritate-wrap,
.telegram-wrap,.moodring-wrap,.prophecy-wrap,.starwish-wrap,.tod-wrap,.loveletter-wrap,
.doodle-wrap{background:var(--bg);border-radius:var(--card-radius);box-shadow:var(--neu);padding:28px 24px;text-align:center;}

/* ── SECTION HEADER ── */
.section-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.sec-icon{width:40px;height:40px;border-radius:12px;background:var(--bg);box-shadow:var(--neu-sm);display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0;}
.sec-title{font-size:.68rem;letter-spacing:3px;text-transform:uppercase;color:var(--p1);font-weight:800;}
.sec-line{flex:1;height:2px;background:var(--bg);box-shadow:var(--neu-in-sm);border-radius:2px;}

/* ── WISH SCROLL ── */
.wish-scroll{text-align:left;}
.wish-text{font-size:1.05rem;line-height:2;color:var(--text);font-weight:600;}
.wish-highlight{color:var(--p1);font-weight:800;}

/* ── QUALITIES ── */
.qualities-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px;}
.chip{background:var(--bg);border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:9px 17px;font-size:.83rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:7px;cursor:default;transition:all .25s;}
.chip:hover{box-shadow:var(--neu-in);transform:translateY(2px);}
.chip em{font-style:normal;font-size:.95rem;}

/* ── COUNTDOWN ── */
.cd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px;}
.cd-cell{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:16px 8px;}
.cd-val{font-size:1.8rem;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;}
.cd-unit{font-size:.6rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:4px;}
.bday-now{font-size:1.5rem;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;padding:10px 0;}

/* ── ACTION BUTTONS ── */
.action-row{display:flex;gap:14px;flex-wrap:wrap;}
.btn{flex:1;min-width:120px;background:var(--bg);border:none;border-radius:18px;box-shadow:var(--neu);padding:16px 12px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.85rem;letter-spacing:.8px;color:var(--text);cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:6px;}
.btn:hover{transform:translateY(-3px);box-shadow:var(--neu-lg);}
.btn:active{box-shadow:var(--neu-in);transform:scale(.97);}
.btn-icon{font-size:1.5rem;}
.btn.accent{color:var(--p1);}
.b-footer{text-align:center;font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);padding-bottom:10px;}
.b-footer b{color:var(--p1);font-weight:800;}
.back-btn{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:7px 18px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:all .2s;align-self:flex-start;display:flex;align-items:center;gap:6px;}
.back-btn:hover{box-shadow:var(--neu-in);transform:scale(.97);}

/* ── PARTICLES ── */
.floater{position:fixed;pointer-events:none;z-index:9999;font-size:1.4rem;animation:flyUp 1.6s ease-out forwards;}
.fw-particle{position:fixed;pointer-events:none;z-index:10000;border-radius:50%;animation:fwFly ease-out forwards;}
@keyframes fwFly{0%{transform:translate(0,0)scale(1);opacity:1;}100%{transform:translate(var(--dx),var(--dy))scale(0);opacity:0;}}
@keyframes flyUp{0%{opacity:1;transform:translateY(0)scale(1)rotate(0deg);}100%{opacity:0;transform:translateY(-180px)scale(1.5)rotate(22deg);}}
.confetti-p{position:fixed;pointer-events:none;z-index:9999;border-radius:3px;animation:cfFall linear forwards;}
@keyframes cfFall{0%{transform:translateY(-20px)rotate(0deg);opacity:1;}100%{transform:translateY(105vh)rotate(540deg);opacity:0;}}
.b-wrapper.entering .b-container>*{opacity:0;transform:translateY(30px);animation:slideUp .6s cubic-bezier(.16,1,.3,1) forwards;}
@keyframes slideUp{to{opacity:1;transform:translateY(0);}}

/* ── AGE COUNTER ── */
.age-display{margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:10px;}
.age-number{font-size:clamp(3rem,10vw,5rem);font-weight:900;line-height:1;display:inline-block;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#9c27b0,#ff0080,#ff4500,#ffdd00);background-size:400% 400%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fluidGrad 28s ease infinite;}
.age-number.bump{animation:ageBump .25s ease;}
@keyframes ageBump{0%{transform:scale(1);}50%{transform:scale(1.3);}100%{transform:scale(1);}}
.age-label{font-size:.68rem;letter-spacing:3px;text-transform:uppercase;color:var(--muted);font-weight:700;}
.age-reaction{font-size:.95rem;font-weight:700;color:var(--p1);min-height:1.4em;}
.age-btn-row{display:flex;gap:10px;justify-content:center;margin-top:12px;flex-wrap:wrap;}
.age-btn{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:10px 20px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.8rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--text);cursor:pointer;transition:all .2s;}
.age-btn:hover{box-shadow:var(--neu-in);transform:scale(.97);}
.age-btn.red{color:var(--p2);}

/* ── ROAST ── */
.roast-bubble{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:20px 22px;margin:14px 0;min-height:60px;display:flex;align-items:center;justify-content:center;font-size:.95rem;line-height:1.7;color:var(--text);font-weight:700;font-style:italic;}
.roast-bubble.pop{animation:roastPop .4s cubic-bezier(.16,1,.3,1);}
@keyframes roastPop{0%{transform:scale(.9);opacity:.5;}100%{transform:scale(1);opacity:1;}}
.roast-btn{width:100%;max-width:300px;background:var(--bg);border:none;border-radius:18px;box-shadow:var(--neu);padding:15px 22px;font-family:'Nunito',sans-serif;font-weight:900;font-size:.92rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--p2);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto;}
.roast-btn:hover{transform:translateY(-3px);box-shadow:var(--neu-lg);}
.roast-count{font-size:.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:8px;}

/* ── FORTUNE COOKIE ── */
.cookie-btn{width:90px;height:90px;border-radius:50%;background:var(--bg);box-shadow:var(--neu);border:none;font-size:2.6rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;margin:16px auto;animation:cookieBob 3s ease-in-out infinite;}
@keyframes cookieBob{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
.cookie-btn.crack{animation:cookieCrack .5s ease forwards!important;}
@keyframes cookieCrack{0%{transform:scale(1)rotate(0);}30%{transform:scale(1.3)rotate(-10deg);}60%{transform:scale(.8)rotate(15deg);}100%{transform:scale(1)rotate(0);}}
.fortune-paper{background:var(--bg);border-radius:16px;box-shadow:var(--neu-in);padding:16px 20px;margin:10px 0;font-size:.95rem;line-height:1.7;color:var(--text);font-weight:700;min-height:56px;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(10px);transition:all .4s cubic-bezier(.16,1,.3,1);}
.fortune-paper.show{opacity:1;transform:translateY(0);}
.fortune-paper em{color:var(--p1);font-style:normal;font-weight:900;}
.fortune-sub{font-size:.65rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);}

/* ── HOROSCOPE ── */
.horo-symbol{font-size:3.5rem;animation:horoFloat 3s ease-in-out infinite;display:inline-block;}
@keyframes horoFloat{0%,100%{transform:translateY(0)rotate(-5deg);}50%{transform:translateY(-12px)rotate(5deg);}}
.horo-card{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:20px 18px;margin:12px 0;text-align:left;}
.horo-section{margin-bottom:12px;}
.horo-label{font-size:.62rem;letter-spacing:3px;text-transform:uppercase;color:var(--p1);font-weight:700;margin-bottom:4px;}
.horo-text{font-size:.92rem;font-weight:700;color:var(--text);line-height:1.7;}
.horo-text em{color:var(--p2);font-style:normal;font-weight:900;}
.horo-stars{display:flex;gap:4px;margin-top:4px;}
.horo-star{font-size:1.05rem;}
.horo-btn{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:10px 24px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.8rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--p1);cursor:pointer;transition:all .2s;margin-top:6px;}
.horo-btn:hover{box-shadow:var(--neu-in);}

/* ── MAGIC 8 BALL ── */
.ball-outer{width:140px;height:140px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#5a2d9e,#1a0533);box-shadow:var(--neu),inset -6px -6px 18px rgba(0,0,0,.5),inset 4px 4px 12px rgba(255,255,255,.08);margin:0 auto 16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s;}
.ball-outer:hover{transform:scale(1.06);}
.ball-outer:active{transform:scale(.94);}
.ball-outer.shake{animation:ballShake .5s ease;}
@keyframes ballShake{0%,100%{transform:rotate(0)}20%{transform:rotate(-12deg)scale(1.08)}40%{transform:rotate(12deg)scale(1.12)}60%{transform:rotate(-8deg)}80%{transform:rotate(6deg)}}
.ball-window{width:62px;height:62px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#1e3a5f,#0a1628);display:flex;align-items:center;justify-content:center;}
.ball-num{font-size:1.6rem;font-weight:900;color:#4fc3f7;text-shadow:0 0 10px #4fc3f7;}
.ball-answer{background:var(--bg);border-radius:16px;box-shadow:var(--neu-in);padding:16px 18px;margin:10px 0;font-size:.95rem;font-weight:700;color:var(--text);min-height:52px;display:flex;align-items:center;justify-content:center;line-height:1.6;opacity:0;transition:all .4s cubic-bezier(.16,1,.3,1);}
.ball-answer.show{opacity:1;}
.ball-sub{font-size:.65rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);}

/* ── MOOD ── */
.mood-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:14px 0;}
.mood-pill{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:9px 17px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.85rem;cursor:pointer;transition:all .2s;color:var(--text);}
.mood-pill:hover{transform:translateY(-3px);box-shadow:var(--neu);}
.mood-pill.active{box-shadow:var(--neu-in);}
.mood-result{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:18px;margin-top:10px;min-height:70px;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;transition:all .4s cubic-bezier(.16,1,.3,1);}
.mood-result.show{opacity:1;}
.mood-emoji-big{font-size:2.4rem;animation:moodBounce .6s ease-in-out infinite alternate;}
@keyframes moodBounce{from{transform:translateY(0);}to{transform:translateY(-8px);}}
.mood-text{font-size:.92rem;font-weight:700;color:var(--text);line-height:1.6;}

/* ── ACHIEVEMENTS ── */
.achiev-grid{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:16px;}
.badge{background:var(--bg);border-radius:16px;box-shadow:var(--neu-sm);padding:12px 14px;display:flex;flex-direction:column;align-items:center;gap:6px;width:96px;opacity:.35;filter:grayscale(1);transition:all .5s cubic-bezier(.16,1,.3,1);cursor:default;}
.badge.unlocked{opacity:1;filter:none;box-shadow:var(--neu),0 0 0 2px var(--p1);}
.badge.unlocked.pop{animation:badgePop .5s cubic-bezier(.16,1,.3,1);}
@keyframes badgePop{0%{transform:scale(.6)rotate(-10deg);}60%{transform:scale(1.2)rotate(4deg);}100%{transform:scale(1)rotate(0);}}
.badge-icon{font-size:1.7rem;}
.badge-name{font-size:.58rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:700;text-align:center;line-height:1.3;}
.badge.unlocked .badge-name{color:var(--p1);}
.achiev-toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--bg);border-radius:50px;box-shadow:var(--neu);padding:11px 26px;font-size:.82rem;font-weight:800;color:var(--p1);display:flex;align-items:center;gap:8px;z-index:9997;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s;opacity:0;}
.achiev-toast.show{transform:translateX(-50%) translateY(0);opacity:1;}

/* ── QUIZ ── */
.quiz-progress{display:flex;gap:6px;justify-content:center;margin-bottom:14px;}
.quiz-dot{width:9px;height:9px;border-radius:50%;background:var(--bg);box-shadow:var(--neu-in);transition:all .3s;}
.quiz-dot.done{background:var(--p1);box-shadow:none;}
.quiz-dot.current{background:var(--p3);box-shadow:none;animation:ping .8s infinite;}
.quiz-q{background:var(--bg);border-radius:16px;box-shadow:var(--neu-in);padding:16px 18px;font-size:.95rem;font-weight:700;color:var(--text);line-height:1.6;margin-bottom:12px;}
.quiz-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.quiz-opt{background:var(--bg);border:none;border-radius:14px;box-shadow:var(--neu-sm);padding:11px 10px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.83rem;color:var(--text);cursor:pointer;transition:all .2s;line-height:1.4;}
.quiz-opt:hover{transform:translateY(-2px);box-shadow:var(--neu);}
.quiz-opt.correct{background:linear-gradient(135deg,var(--green),#00cec9);color:#fff;box-shadow:none;}
.quiz-opt.wrong{background:linear-gradient(135deg,var(--p2),#e74c3c);color:#fff;box-shadow:none;}
.quiz-opt:disabled{cursor:default;transform:none;}
.quiz-feedback{font-size:.88rem;font-weight:700;min-height:24px;margin-top:8px;}
.quiz-score{font-size:1.4rem;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:10px 0;}
.quiz-restart{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:10px 24px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.8rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--p1);cursor:pointer;transition:all .2s;}

/* ── FACTS ── */
.fact-card{background:var(--bg);border-radius:16px;box-shadow:var(--neu-in);padding:14px 16px;margin:10px 0;font-size:.92rem;font-weight:700;color:var(--text);line-height:1.7;text-align:left;display:flex;gap:12px;align-items:flex-start;}
.fact-num{min-width:30px;height:30px;border-radius:50%;background:var(--bg);box-shadow:var(--neu-sm);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:900;color:var(--p1);flex-shrink:0;margin-top:2px;}
.fact-card em{color:var(--p1);font-style:normal;font-weight:900;}

/* ── SECRET ── */
.secret-tape{background:linear-gradient(135deg,var(--p1),var(--p2));border-radius:8px;padding:6px 20px;font-size:.65rem;letter-spacing:3px;text-transform:uppercase;color:#fff;font-weight:700;display:inline-block;margin-bottom:14px;}
.secret-envelope{width:120px;height:90px;background:var(--bg);border-radius:12px;box-shadow:var(--neu);margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-size:3rem;cursor:pointer;transition:all .3s;}
.secret-envelope:hover{transform:translateY(-4px)rotate(-2deg);}
.secret-envelope.open{animation:envelopeOpen .4s ease forwards;}
@keyframes envelopeOpen{0%{transform:scale(1)rotate(0);}50%{transform:scale(1.15)rotate(-5deg);}100%{transform:scale(1)rotate(0);}}
.secret-msg{background:var(--bg);border-radius:16px;box-shadow:var(--neu-in);padding:18px;margin-top:10px;font-size:.95rem;font-weight:700;color:var(--text);line-height:1.8;opacity:0;transform:translateY(14px);transition:all .5s cubic-bezier(.16,1,.3,1);display:none;}
.secret-msg.show{opacity:1;transform:translateY(0);display:block;}
.secret-msg em{color:var(--p1);font-style:normal;font-weight:900;}
.profile-envelopes{display:none;margin-top:26px;}
.profile-envelopes.show{display:block;animation:slideUp .5s cubic-bezier(.16,1,.3,1);}
.env-row{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.env-item{display:flex;flex-direction:column;align-items:center;gap:10px;}
.env-icon{width:80px;height:80px;border-radius:20px;background:var(--bg);box-shadow:var(--neu);display:flex;align-items:center;justify-content:center;font-size:2.5rem;cursor:pointer;transition:all .2s;flex-shrink:0;}
.env-icon:hover{transform:translateY(-4px);box-shadow:var(--neu-lg);}
.env-icon.opened{box-shadow:var(--neu-in);transform:scale(.95);}
.env-icon.pop{animation:envPop .5s cubic-bezier(.16,1,.3,1);}
@keyframes envPop{0%{transform:scale(1)rotate(0);}30%{transform:scale(1.3)rotate(-8deg);}60%{transform:scale(.9)rotate(5deg);}100%{transform:scale(.95)rotate(0);}}
.neu-profile-card{background:var(--bg);border-radius:var(--card-radius);box-shadow:var(--neu);padding:0 0 18px;width:210px;text-align:center;display:none;position:relative;overflow:hidden;animation:slideUp .4s cubic-bezier(.16,1,.3,1);}
.neu-profile-card.show{display:block;}
.neu-card-header{background:var(--bg);box-shadow:var(--neu-in);padding:12px 12px 10px;margin-bottom:0;}
.neu-avatar-img{width:100%;aspect-ratio:1/1;border-radius:16px;object-fit:cover;display:block;box-shadow:var(--neu-sm);}
.neu-avatar-placeholder{width:100%;aspect-ratio:1/1;border-radius:16px;background:var(--bg);box-shadow:var(--neu-in);display:flex;align-items:center;justify-content:center;font-size:3rem;}
.neu-card-body{padding:10px 12px 4px;}
.neu-name{font-size:.9rem;font-weight:900;color:var(--text);margin-bottom:3px;}
.neu-role{font-size:.58rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:8px;display:block;}
.neu-bio{font-size:.7rem;color:var(--text);font-weight:600;line-height:1.55;margin-bottom:10px;text-align:left;}
.neu-socials{display:flex;justify-content:center;gap:8px;margin-top:4px;}
.neu-social{width:28px;height:28px;border-radius:50%;background:var(--bg);box-shadow:var(--neu-sm);display:flex;align-items:center;justify-content:center;font-size:.7rem;cursor:pointer;transition:all .2s;text-decoration:none;color:var(--p1);font-weight:700;}
.neu-social:hover{box-shadow:var(--neu-in);}
.secret-hint{font-size:.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);}

/* ── ALTER EGO ── */
.alter-card{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:20px;margin:12px 0;opacity:0;transform:scale(.9);transition:all .4s cubic-bezier(.16,1,.3,1);}
.alter-card.show{opacity:1;transform:scale(1);}
.alter-title{font-size:1.45rem;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:200% auto;animation:shimmer 4s linear infinite;margin-bottom:6px;}
.alter-desc{font-size:.85rem;color:var(--muted);font-weight:600;line-height:1.6;}
.alter-power{display:inline-block;margin-top:8px;background:var(--bg);box-shadow:var(--neu-sm);border-radius:var(--btn-radius);padding:5px 14px;font-size:.72rem;font-weight:700;color:var(--p1);}
.alter-btn{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:11px 26px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.85rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--p2);cursor:pointer;transition:all .2s;}
.alter-btn:hover{box-shadow:var(--neu-in);}

/* ── MOVIE TRAILER ── */
.trailer-screen{background:#0a0a0f;border-radius:16px;padding:26px 18px;margin:14px 0;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative;overflow:hidden;}
.trailer-screen::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.02) 2px,rgba(255,255,255,.02) 4px);pointer-events:none;}
.trailer-line{font-size:clamp(.8rem,2.5vw,1rem);font-weight:900;letter-spacing:3px;text-transform:uppercase;opacity:0;transform:scale(1.3);transition:all .5s cubic-bezier(.16,1,.3,1);color:#fff;}
.trailer-line.show{opacity:1;transform:scale(1);}
.trailer-line.gold{color:#f39c12;font-size:clamp(1.1rem,3.5vw,1.5rem);}
.trailer-line.big{color:#fff;font-size:clamp(1.4rem,5vw,2.2rem);text-shadow:0 0 20px rgba(108,94,207,.8);}
.trailer-btn{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:11px 26px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.85rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--p2);cursor:pointer;transition:all .2s;margin-top:6px;}
.trailer-btn:hover{box-shadow:var(--neu-in);}
.trailer-btn:disabled{opacity:.4;cursor:default;}

/* ── POLAROID ── */
.polaroid-grid{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:16px;}
.polaroid{background:#fff;border-radius:4px;padding:10px 10px 28px;box-shadow:4px 4px 16px rgba(180,192,210,.5),-2px -2px 8px rgba(255,255,255,.9);width:140px;transform:rotate(var(--rot));transition:transform .3s,box-shadow .3s;cursor:pointer;}
.polaroid:hover{transform:rotate(0deg)scale(1.08);z-index:2;}
.polaroid-img{width:100%;aspect-ratio:1;border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:2.8rem;margin-bottom:8px;}
.polaroid-caption{font-size:.63rem;font-weight:700;color:#555;text-align:center;letter-spacing:.5px;line-height:1.4;}
@keyframes heartbeat{0%,100%{transform:scale(1);}14%{transform:scale(1.3);}28%{transform:scale(1);}42%{transform:scale(1.2);}70%{transform:scale(1);}}
.polaroid-caption .hb{display:inline-block;animation:heartbeat 1.2s ease-in-out infinite;}

/* ── WISHES COUNTER ── */
.wish-count-num{font-size:clamp(4rem,12vw,6rem);font-weight:900;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#9c27b0,#ff0080,#ff4500,#ffdd00);background-size:400% 400%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fluidGrad 28s ease infinite;line-height:1;font-variant-numeric:tabular-nums;}
.wish-count-num.pop{animation:ageBump .2s ease;}
.wish-send-btn{width:100%;max-width:320px;background:var(--bg);border:none;border-radius:22px;box-shadow:var(--neu);padding:18px 26px;font-family:'Nunito',sans-serif;font-weight:900;font-size:.95rem;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;margin:14px auto 0;transition:all .2s;animation:btnPulse 3s ease-in-out infinite;color:var(--p1);}
.wish-send-btn:hover{transform:translateY(-3px);animation:none;box-shadow:var(--neu-lg);}
.wish-msgs{font-size:.83rem;color:var(--muted);font-weight:600;margin-top:8px;min-height:1.4em;}

/* ── PLAYLIST ── */
.playlist-moods{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:12px 0;}
.pl-pill{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:9px 17px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.83rem;cursor:pointer;color:var(--text);transition:all .2s;}
.pl-pill:hover{transform:translateY(-2px);box-shadow:var(--neu);}
.pl-pill.active{box-shadow:var(--neu-in);}
.playlist-card{background:var(--bg);border-radius:16px;box-shadow:var(--neu-in);padding:18px;margin-top:12px;display:none;}
.playlist-card.show{display:block;animation:slideUp .4s cubic-bezier(.16,1,.3,1);}
.pl-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.pl-cover{width:50px;height:50px;border-radius:12px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;}
.pl-title{font-size:.95rem;font-weight:800;color:var(--text);}
.pl-sub{font-size:.7rem;color:var(--muted);letter-spacing:1px;}
.pl-track{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid rgba(180,192,210,.25);}
.pl-track:last-child{border-bottom:none;}
.pl-track-num{font-size:.68rem;color:var(--muted);width:15px;text-align:center;font-weight:700;}
.pl-track-info{flex:1;}
.pl-track-name{font-size:.85rem;font-weight:700;color:var(--text);}
.pl-track-artist{font-size:.7rem;color:var(--muted);}
.pl-track-dur{font-size:.7rem;color:var(--muted);font-weight:600;}

/* ── DANCE PARTY ── */
.basanti-video-container{position:relative;border-radius:18px;overflow:hidden;margin:18px 0;background:#0a0a0f;display:none;}
.basanti-video-container.show{display:block;animation:slideUp .4s cubic-bezier(.16,1,.3,1);}
.basanti-video-container video{width:100%;aspect-ratio:9/16;max-height:70vh;object-fit:cover;display:block;border-radius:18px;}
.basanti-btn{width:100%;max-width:340px;background:var(--bg);border:none;border-radius:22px;box-shadow:var(--neu);padding:18px 26px;font-family:'Nunito',sans-serif;font-weight:900;font-size:1.05rem;letter-spacing:2px;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:14px;margin:14px auto 0;transition:all .25s;position:relative;overflow:hidden;animation:btnPulse 3s ease-in-out infinite;}
.basanti-btn:hover{transform:translateY(-4px);box-shadow:var(--neu-lg),0 8px 24px rgba(108,94,207,.2);animation:none;}
.basanti-btn:active{box-shadow:var(--neu-in);transform:scale(.97);animation:none;}
.basanti-btn-txt{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:200% auto;animation:shimmer 3s linear infinite;}
body.party-mode{animation:none;}

/* ── CAKE CUSTOMIZER ── */
.cakecust-options{display:flex;flex-direction:column;gap:14px;margin:14px 0;}
.cakecust-row{text-align:left;}
.cakecust-label{font-size:.63rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--p1);font-weight:700;margin-bottom:8px;}
.cakecust-choices{display:flex;flex-wrap:wrap;gap:8px;}
.cc-btn{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:7px 15px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.8rem;cursor:pointer;color:var(--text);transition:all .2s;}
.cc-btn:hover{transform:translateY(-2px);}
.cc-btn.selected{box-shadow:var(--neu-in);color:var(--p1);}
.cakecust-preview{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:18px;margin-top:8px;}
.cakecust-result{font-size:.95rem;font-weight:700;color:var(--text);line-height:1.8;}
.cakecust-emoji-row{font-size:2rem;letter-spacing:4px;margin:8px 0;}

/* ── SPIN WHEEL ── */
.wheel-container{position:relative;width:260px;height:260px;margin:14px auto;}
.wheel-canvas{border-radius:50%;box-shadow:var(--neu);display:block;}
.wheel-pointer{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:1.8rem;z-index:3;}
.wheel-slice-overlay{
  position:absolute;top:-10px;left:-10px;
  width:260px;height:260px;
  pointer-events:none;
  opacity:0;
  transform-origin:120px 120px; /* canvas center at 120,120 but offset by -10 */
  will-change:transform,opacity,filter;
}
.spin-btn{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:13px 30px;font-family:'Nunito',sans-serif;font-weight:900;font-size:.92rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--p1);cursor:pointer;transition:all .2s;margin-top:14px;}
.spin-btn:hover{box-shadow:var(--neu-in);}
.spin-btn:disabled{opacity:.4;cursor:default;}
.spin-result{
  background:var(--bg);border-radius:16px;box-shadow:var(--neu-in);
  padding:14px 18px;margin-top:12px;
  font-size:.95rem;font-weight:700;color:var(--text);line-height:1.6;display:none;
}
.spin-result.show{display:block;animation:sliceResultIn .5s cubic-bezier(.34,1.56,.64,1);}
@keyframes sliceResultIn{
  0%{opacity:0;transform:scale(.7) translateY(12px);}
  100%{opacity:1;transform:scale(1) translateY(0);}
}
.spin-slice-popup{
  display:none;
  margin:10px auto 0;
  max-width:280px;
  border-radius:18px;
  padding:16px 20px;
  font-size:1rem;font-weight:800;color:#fff;text-align:center;line-height:1.5;
  background:var(--pop-color,var(--p1));
  box-shadow:0 8px 28px rgba(0,0,0,.2);
}
.spin-slice-popup.show{
  display:block;
  animation:slicePopupIn .55s cubic-bezier(.34,1.56,.64,1);
}
@keyframes slicePopupIn{
  0%{opacity:0;transform:scale(.4) translateY(-20px);}
  60%{transform:scale(1.08) translateY(2px);}
  100%{opacity:1;transform:scale(1) translateY(0);}
}
.spin-board{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:16px 14px;margin-top:14px;display:none;}
.spin-board.show{display:block;}
.spin-board-title{font-size:.62rem;letter-spacing:3px;text-transform:uppercase;color:var(--p1);font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.spin-board-list{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto;}
.spin-board-row{display:flex;align-items:center;gap:10px;background:var(--bg);border-radius:12px;box-shadow:var(--neu-sm);padding:9px 12px;animation:slideUp .35s cubic-bezier(.16,1,.3,1);}
.spin-board-num{width:22px;height:22px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:900;color:#fff;flex-shrink:0;}
.spin-board-label{flex:1;font-size:.85rem;font-weight:700;color:var(--text);}
.spin-board-clear{background:none;border:none;font-size:.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);cursor:pointer;font-family:'Nunito',sans-serif;font-weight:700;margin-left:auto;}
.spin-board-clear:hover{color:var(--p2);}

/* ── MESSAGE WALL ── */
.msgwall-wrap{text-align:left;}
.msgwall-input-row{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap;}
.msgwall-input{flex:1;min-width:180px;background:var(--bg);border:none;border-radius:var(--input-radius);box-shadow:inset 3px 3px 7px var(--dark),inset -3px -3px 7px var(--light);padding:13px 16px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.88rem;color:var(--text);outline:none;transition:box-shadow .2s;}
.msgwall-input::placeholder{color:#9facc0;font-weight:600;}
.msgwall-input:focus{box-shadow:inset 4px 4px 9px var(--dark),inset -4px -4px 9px var(--light),0 0 0 2px rgba(108,94,207,.2);}
.msgwall-post-btn{background:var(--bg);border:none;border-radius:var(--input-radius);box-shadow:var(--neu-sm);padding:13px 20px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.83rem;color:var(--p1);cursor:pointer;transition:all .2s;white-space:nowrap;}
.msgwall-post-btn:hover{box-shadow:var(--neu-in);}
.msgwall-notes{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;}
.sticky-note{border-radius:12px;padding:13px 15px;font-size:.83rem;font-weight:700;color:#3d3550;line-height:1.6;box-shadow:3px 3px 12px rgba(180,192,210,.55);min-width:120px;max-width:180px;word-break:break-word;animation:noteIn .4s cubic-bezier(.16,1,.3,1);position:relative;transform:rotate(var(--nrot));}
@keyframes noteIn{from{opacity:0;transform:scale(.7)rotate(var(--nrot));}to{opacity:1;transform:scale(1)rotate(var(--nrot));}}
.sticky-del{position:absolute;top:5px;right:7px;background:none;border:none;cursor:pointer;font-size:.78rem;opacity:.4;transition:opacity .2s;}
.sticky-del:hover{opacity:1;}

/* ── DOODLE BOARD ── */
.doodle-wrap{text-align:left;}
.doodle-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;justify-content:center;}
.doodle-colors{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;}
.doodle-color-dot{width:24px;height:24px;border-radius:50%;cursor:pointer;transition:all .2s;box-shadow:2px 2px 6px rgba(0,0,0,.12);border:2px solid transparent;}
.doodle-color-dot.active{border-color:var(--text);transform:scale(1.2);}
.doodle-sizes{display:flex;gap:6px;}
.doodle-size-btn{background:var(--bg);border:none;border-radius:50px;box-shadow:var(--neu-sm);width:30px;height:30px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.72rem;cursor:pointer;color:var(--muted);transition:all .2s;}
.doodle-size-btn.active,.doodle-size-btn:hover{box-shadow:var(--neu-in);color:var(--p1);}
.doodle-tool-btn{background:var(--bg);border:none;border-radius:50px;box-shadow:var(--neu-sm);padding:6px 13px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.7rem;cursor:pointer;color:var(--muted);transition:all .2s;}
.doodle-tool-btn:hover,.doodle-tool-btn.active{box-shadow:var(--neu-in);color:var(--p1);}
.doodle-canvas{width:100%;height:260px;border-radius:16px;box-shadow:var(--neu-in);cursor:crosshair;display:block;touch-action:none;}
.doodle-hint{font-size:.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);text-align:center;margin-top:10px;font-weight:700;}

/* ── LOVE LETTER ── */
.loveletter-options{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;}
.ll-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ll-label{font-size:.6rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--p1);font-weight:700;min-width:34px;}
.ll-chips{display:flex;gap:8px;flex-wrap:wrap;}
.ll-chip{background:var(--bg);border:none;border-radius:50px;box-shadow:var(--neu-sm);padding:7px 15px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.76rem;cursor:pointer;color:var(--text);transition:all .2s;}
.ll-chip.active{box-shadow:var(--neu-in);color:var(--p1);}
.ll-gen-btn{background:var(--bg);border:none;border-radius:18px;box-shadow:var(--neu);padding:14px 30px;font-family:'Nunito',sans-serif;font-weight:900;font-size:.92rem;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;color:var(--p1);transition:all .2s;animation:btnPulse 3s ease-in-out infinite;}
.ll-gen-btn:hover{transform:translateY(-3px);animation:none;}
.ll-output{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:20px 18px;margin-top:14px;font-size:.88rem;font-weight:700;color:var(--text);line-height:1.9;text-align:left;display:none;}
.ll-output.show{display:block;animation:slideUp .4s cubic-bezier(.16,1,.3,1);}
.ll-output em{color:var(--p1);font-style:normal;font-weight:900;}

/* ── SHOOTING STAR WISH ── */
.starwish-sky{background:linear-gradient(180deg,#0a0520 0%,#1a0a4e 60%,#2d1b69 100%);border-radius:18px;padding:26px 18px;position:relative;overflow:hidden;min-height:200px;display:flex;align-items:center;justify-content:center;margin:0 0 12px;}
.starwish-moon{position:absolute;top:16px;right:22px;font-size:2rem;opacity:.85;animation:horoFloat 4s ease-in-out infinite;}
.star-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.starwish-prompt{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px;}
.starwish-text{font-size:.85rem;font-weight:700;color:rgba(255,255,255,.85);letter-spacing:.4px;line-height:1.6;}
.starwish-btn{background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.25);border-radius:50px;padding:11px 26px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.85rem;letter-spacing:1.5px;text-transform:uppercase;color:#fff;cursor:pointer;transition:all .3s;backdrop-filter:blur(4px);}
.starwish-btn:hover{background:rgba(255,255,255,.2);transform:translateY(-3px);}
.starwish-result{background:var(--bg);border-radius:16px;box-shadow:var(--neu-in);padding:14px 18px;font-size:.92rem;font-weight:700;color:var(--text);line-height:1.7;display:none;text-align:left;}
.starwish-result.show{display:block;animation:slideUp .4s cubic-bezier(.16,1,.3,1);}
.starwish-result em{color:var(--p1);font-style:normal;font-weight:900;}

/* ── TRUTH OR DARE ── */
.tod-btns{display:flex;gap:14px;justify-content:center;margin-bottom:14px;}
.tod-btn{flex:1;max-width:160px;border:none;border-radius:16px;box-shadow:var(--neu);padding:17px 12px;font-family:'Nunito',sans-serif;font-weight:900;font-size:.95rem;letter-spacing:1px;cursor:pointer;transition:all .2s;background:var(--bg);}
.tod-btn.truth{color:#4a90d9;}
.tod-btn.dare{color:var(--p2);}
.tod-btn:hover{transform:translateY(-4px);box-shadow:var(--neu-lg);}
.tod-btn:active{box-shadow:var(--neu-in);transform:scale(.97);}
.tod-card{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:20px 18px;font-size:.95rem;font-weight:700;color:var(--text);line-height:1.7;min-height:60px;display:none;}
.tod-card.show{display:block;animation:roastPop .4s cubic-bezier(.16,1,.3,1);}
.tod-card em{color:var(--p1);font-style:normal;font-weight:900;}

/* ── GIFT UNWRAPPER ── */
.gift-wrap{background:var(--bg);border-radius:var(--card-radius);box-shadow:var(--neu);padding:28px 24px;text-align:center;}
.gift-boxes{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:14px 0;}
.gift-box{width:78px;height:78px;border-radius:17px;background:var(--bg);box-shadow:var(--neu);display:flex;align-items:center;justify-content:center;font-size:2.1rem;cursor:pointer;transition:all .3s;position:relative;}
.gift-box:hover{transform:translateY(-5px)rotate(3deg);box-shadow:var(--neu-lg);}
.gift-box.opened{box-shadow:var(--neu-in);transform:scale(.95);}
.gift-box.shake{animation:giftShake .4s ease;}
@keyframes giftShake{0%,100%{transform:rotate(0);}25%{transform:rotate(-10deg)scale(1.1);}75%{transform:rotate(10deg)scale(1.1);}}
.gift-reveal{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:18px;margin-top:8px;font-size:.92rem;font-weight:700;color:var(--text);line-height:1.7;display:none;animation:slideUp .4s cubic-bezier(.16,1,.3,1);}
.gift-reveal.show{display:block;}
.gift-reveal em{color:var(--p1);font-style:normal;font-weight:900;}
.gift-tag{font-size:.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:6px;font-weight:700;}

/* ── MOOD RING ── */
.moodring-ring{width:130px;height:130px;border-radius:50%;margin:14px auto;position:relative;cursor:pointer;transition:all .4s;box-shadow:var(--neu);}
.moodring-ring::before{content:'';position:absolute;inset:14px;border-radius:50%;background:var(--bg);box-shadow:var(--neu-in);}
.moodring-ring::after{content:'💍';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:2.3rem;}
.moodring-ring:hover{transform:scale(1.06);}
.moodring-color{font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:8px;}
.moodring-result{background:var(--bg);border-radius:18px;box-shadow:var(--neu-in);padding:16px;margin-top:10px;display:none;animation:slideUp .4s cubic-bezier(.16,1,.3,1);}
.moodring-result.show{display:block;}
.moodring-emoji{font-size:2.4rem;margin-bottom:8px;}
.moodring-mood{font-size:1.05rem;font-weight:900;color:var(--p1);margin-bottom:4px;}
.moodring-desc{font-size:.83rem;font-weight:700;color:var(--text);line-height:1.6;}

/* ── PROPHECY SCROLL ── */
.scroll-container{position:relative;margin:14px auto;max-width:380px;}
.scroll-top,.scroll-bottom{height:20px;background:linear-gradient(90deg,#c8a96e,#f0d090,#c8a96e);border-radius:50px;box-shadow:0 4px 12px rgba(200,169,110,.35);}
.scroll-body{background:#f7f7ef;padding:20px 22px;min-height:80px;display:flex;align-items:center;justify-content:center;border-left:3px solid #e8d08a;border-right:3px solid #e8d08a;}
.scroll-text{font-size:.92rem;font-weight:700;color:#5c4a1e;line-height:1.8;font-style:italic;opacity:0;transition:all .6s cubic-bezier(.16,1,.3,1);}
.scroll-text.show{opacity:1;}
.scroll-text em{color:#9b3d00;font-weight:900;font-style:normal;}
.prophecy-btn{background:var(--bg);border:none;border-radius:var(--btn-radius);box-shadow:var(--neu-sm);padding:11px 26px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.83rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--p1);cursor:pointer;transition:all .2s;margin-top:14px;}
.prophecy-btn:hover{box-shadow:var(--neu-in);}

/* ── BIRTHDAY TELEGRAM ── */
.telegram-paper{background:linear-gradient(180deg,#fffef5,#fffde0);border-radius:12px;border:2px dashed #d4c87a;padding:22px 18px;margin:14px 0;position:relative;display:none;}
.telegram-paper.show{display:block;animation:slideUp .5s cubic-bezier(.16,1,.3,1);}
.telegram-header{font-size:.58rem;letter-spacing:4px;text-transform:uppercase;color:#8b7536;font-weight:700;border-bottom:1px solid #d4c87a;padding-bottom:8px;margin-bottom:12px;}
.telegram-body{font-size:.92rem;font-weight:700;color:#3d3000;line-height:2;text-align:left;font-family:monospace;}
.telegram-body em{color:#9b3d00;font-style:normal;font-weight:900;}
.telegram-footer{font-size:.58rem;letter-spacing:3px;text-transform:uppercase;color:#8b7536;border-top:1px solid #d4c87a;padding-top:8px;margin-top:12px;}
.telegram-from-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:10px 0;}
.telegram-from-btn{background:var(--bg);border:none;border-radius:50px;box-shadow:var(--neu-sm);padding:8px 15px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.76rem;cursor:pointer;color:var(--text);transition:all .2s;}
.telegram-from-btn.active{box-shadow:var(--neu-in);color:var(--p1);}
.telegram-gen-btn{background:var(--bg);border:none;border-radius:16px;box-shadow:var(--neu);padding:13px 26px;font-family:'Nunito',sans-serif;font-weight:900;font-size:.88rem;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;color:var(--p1);transition:all .2s;}
.telegram-gen-btn:hover{transform:translateY(-3px);box-shadow:var(--neu-lg);}

/* ── IRRITATE ── */
.irritate-intro{font-size:.76rem;color:var(--muted);font-weight:700;letter-spacing:.4px;margin-bottom:18px;line-height:1.7;}
.irritate-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:4px;}
.irritate-item{display:flex;flex-direction:column;align-items:center;gap:8px;}
.scratch-wrap{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;box-shadow:var(--neu);}
.scratch-wrap canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none;}
.irritate-caption{font-size:.65rem;font-weight:700;color:var(--muted);letter-spacing:.3px;line-height:1.5;text-align:center;}
.irritate-reset-btn{background:var(--bg);border:none;border-radius:50px;box-shadow:var(--neu-sm);padding:10px 26px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.73rem;letter-spacing:2px;text-transform:uppercase;color:var(--p2);cursor:pointer;margin-top:18px;transition:all .2s;}
.irritate-reset-btn:hover{box-shadow:var(--neu-in);}

/* ════════════════════════════════
   PASSWORD POPUP
   ════════════════════════════════ */
.pwd-overlay{position:fixed;inset:0;background:rgba(20,28,46,.65);backdrop-filter:blur(8px);z-index:99999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;}
.pwd-overlay.show{opacity:1;pointer-events:all;}
.pwd-box{background:var(--bg);border-radius:28px;box-shadow:var(--neu-lg),0 20px 60px rgba(0,0,0,.18);padding:38px 30px;text-align:center;max-width:340px;width:92%;animation:popIn .4s cubic-bezier(.34,1.56,.64,1);}
@keyframes popIn{from{transform:scale(.7);opacity:0;}to{transform:scale(1);opacity:1;}}
.pwd-icon{font-size:2.8rem;margin-bottom:8px;}
.pwd-title{font-size:1.08rem;font-weight:900;color:var(--text);margin-bottom:4px;}
.pwd-sub{font-size:.73rem;color:var(--muted);font-weight:600;margin-bottom:18px;}
.pwd-input{width:100%;background:var(--bg);border:none;border-radius:var(--input-radius);box-shadow:inset 3px 3px 7px var(--dark),inset -3px -3px 7px var(--light);padding:13px 16px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.95rem;color:var(--text);outline:none;text-align:center;letter-spacing:3px;box-sizing:border-box;transition:box-shadow .2s;}
.pwd-input::placeholder{letter-spacing:1px;font-size:.82rem;color:#9facc0;font-weight:600;}
.pwd-input:focus{box-shadow:inset 4px 4px 9px var(--dark),inset -4px -4px 9px var(--light),0 0 0 2px rgba(108,94,207,.2);}
.pwd-error{font-size:.7rem;color:var(--p2);font-weight:700;margin-top:8px;min-height:18px;transition:all .2s;}
.pwd-btn{background:var(--bg);border:none;border-radius:var(--input-radius);box-shadow:var(--neu-sm);padding:12px 32px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.83rem;color:var(--p1);cursor:pointer;margin-top:12px;transition:all .2s;letter-spacing:1px;}
.pwd-btn:hover{box-shadow:var(--neu-in);}
.pwd-shake{animation:shake .4s ease;}
@keyframes shake{0%,100%{transform:translateX(0);}20%,60%{transform:translateX(-8px);}40%,80%{transform:translateX(8px);}}

/* ════════════════════════════════
   DB ALERT
   ════════════════════════════════ */
.db-alert{position:fixed;top:24px;left:50%;transform:translateX(-50%) translateY(-120px);z-index:999999;min-width:280px;max-width:90vw;border-radius:18px;padding:14px 20px;display:flex;align-items:center;gap:12px;font-family:'Nunito',sans-serif;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .4s;background:var(--bg);box-shadow:var(--neu),0 6px 24px rgba(0,0,0,.08);}
.db-alert.show{transform:translateX(-50%) translateY(0);}
.db-alert.success{border-left:4px solid var(--green);}
.db-alert.error{border-left:4px solid var(--p2);}
.db-alert-icon{font-size:1.4rem;flex-shrink:0;}
.db-alert-body{flex:1;}
.db-alert-title{font-weight:900;font-size:.85rem;margin-bottom:2px;}
.db-alert.success .db-alert-title{color:#00875a;}
.db-alert.error .db-alert-title{color:#c0392b;}
.db-alert-msg{font-size:.72rem;font-weight:600;opacity:.75;}
.db-alert.success .db-alert-msg{color:#006644;}
.db-alert.error .db-alert-msg{color:#7b241c;}

/* ════════════════════════════════
   THANK YOU BHAI MODAL
   ════════════════════════════════ */
.ty-btn-wrap{text-align:center;margin:28px 0 14px;}
.ty-btn{border:none;border-radius:14px;padding:15px 34px;font-family:'Nunito',sans-serif;font-weight:900;font-size:.95rem;letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#9c27b0,#ff0080);background-size:300% 300%;animation:fluidGrad 6s ease infinite;color:#fff;box-shadow:0 6px 24px rgba(108,94,207,.35);transition:transform .2s,box-shadow .2s;}
.ty-btn:hover{transform:scale(1.05);}
.ty-overlay{position:fixed;inset:0;background:rgba(20,28,46,.7);backdrop-filter:blur(10px);z-index:99999;display:none;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s;overflow:hidden;padding:16px;box-sizing:border-box;}
.ty-overlay.show{display:flex;opacity:1;pointer-events:all;}
.ty-modal{border-radius:32px;padding:4px;max-width:380px;width:92%;text-align:center;position:relative;margin-top:70px;flex-shrink:0;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#9c27b0,#ff0080);background-size:300% 300%;animation:popIn .45s cubic-bezier(.34,1.56,.64,1),fluidGrad 4s ease infinite;box-shadow:0 24px 80px rgba(255,0,128,.22);}
.ty-modal-inner{background:var(--bg);border-radius:29px;padding:90px 0 26px;overflow:visible;position:relative;}
.ty-modal-body{padding:0 24px 18px;overflow-y:auto;max-height:55vh;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--dark) transparent;}
.ty-close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:1.4rem;cursor:pointer;color:#fff;line-height:1;z-index:5;}
.ty-img-wrap{position:absolute;top:-84px;left:50%;transform:translateX(-50%);width:168px;height:168px;border-radius:20px;overflow:visible;z-index:10;padding:4px;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#9c27b0,#ff0080);background-size:300% 300%;animation:fluidGrad 4s ease infinite;box-shadow:0 8px 32px rgba(255,0,128,.3);}
.ty-img{width:100%;height:100%;border-radius:16px;object-fit:cover;object-position:top center;display:block;}
.ty-badge{position:absolute;bottom:-6px;right:-6px;font-size:1.4rem;background:var(--bg);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.2);z-index:3;}
.ty-name{font-size:1.2rem;font-weight:900;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#9c27b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:2px;display:inline-block;}
.ty-role{font-size:.68rem;font-weight:700;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:14px;}
.ty-reply-wrap{margin-top:10px;text-align:left;}
.ty-send-row{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:10px;}
.ty-send-label{font-size:.72rem;font-weight:700;color:var(--muted);letter-spacing:.4px;}
.ty-send-input{flex:1;border:none;outline:none;border-radius:var(--input-radius);padding:10px 13px;font-family:'Nunito',sans-serif;font-size:.8rem;font-weight:700;color:var(--text);background:var(--bg);box-shadow:inset 3px 3px 7px var(--dark),inset -3px -3px 7px var(--light);transition:box-shadow .2s;min-width:0;}
.ty-send-input::placeholder{color:#9facc0;font-weight:600;}
.ty-send-input:focus{box-shadow:inset 4px 4px 9px var(--dark),inset -4px -4px 9px var(--light),0 0 0 2px rgba(108,94,207,.2);}
.ty-send-input:disabled{opacity:.55;cursor:not-allowed;}
@keyframes tyInputShake{0%,100%{transform:translateX(0);}20%,60%{transform:translateX(-6px);}40%,80%{transform:translateX(6px);}}
.ty-input-shake{animation:tyInputShake .45s ease;}
.ty-send-btn{border:none;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#ff0080,#9c27b0);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(255,0,128,.3);transition:transform .2s;flex-shrink:0;}
.ty-send-btn:hover{transform:scale(1.08);}
.ty-send-btn:disabled{opacity:.5;cursor:default;transform:none;}
.ty-bubble-payal{display:inline-block;background:linear-gradient(135deg,#ffe0ef,#fde8ff);border-radius:18px 4px 18px 18px;padding:12px 15px;font-size:.76rem;font-weight:600;color:#2d3436;line-height:1.75;max-width:90%;text-align:left;box-shadow:0 2px 10px rgba(255,0,128,.08);}
.ty-reply-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;object-position:top;border:2px solid var(--green);flex-shrink:0;}
.ty-reply-name-grad{font-size:.76rem;font-weight:900;background:linear-gradient(135deg,#ff0080,#ff4500,#ffdd00,#00e676,#9c27b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:300% 300%;animation:fluidGrad 4s ease infinite;display:inline-block;}
.ty-chat-bubble{background:linear-gradient(135deg,#e8f5e9,#f1f8e9);border-radius:4px 18px 18px 18px;padding:13px 15px;font-size:.78rem;font-weight:600;color:#2d3436;line-height:1.75;box-shadow:0 2px 12px rgba(0,0,0,.07);border-left:4px solid var(--green);}
.ty-typing-dots{display:flex;gap:5px;align-items:center;}
.ty-typing-dots span{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;animation:typingDot 1.2s ease-in-out infinite;}
.ty-typing-dots span:nth-child(2){animation-delay:.2s;}
.ty-typing-dots span:nth-child(3){animation-delay:.4s;}
@keyframes typingDot{0%,80%,100%{transform:scale(.8);opacity:.5;}40%{transform:scale(1.2);opacity:1;}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-20px);}to{opacity:1;transform:translateX(0);}}
@keyframes slideInRight{from{opacity:0;transform:translateX(20px);}to{opacity:1;transform:translateX(0);}}
.slide-in-left{animation:slideInLeft .4s ease;}
.slide-in-right{animation:slideInRight .4s ease;}

/* ════════════════════════════════
   POLAROID LIGHTBOX MODAL
   ════════════════════════════════ */
.plb-overlay{
  position:fixed;inset:0;
  background:rgba(10,10,25,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  z-index:99997;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  opacity:0;pointer-events:none;
  transition:opacity .35s ease;
}
.plb-overlay.show{opacity:1;pointer-events:all;}

.plb-modal{
  position:relative;
  display:flex;flex-direction:column;align-items:center;
  max-width:min(520px,92vw);
  width:100%;
  animation:plbPop .4s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes plbPop{from{transform:scale(.7) translateY(30px);opacity:0;}to{transform:scale(1) translateY(0);opacity:1;}}
.plb-modal.closing{animation:plbPopOut .28s ease both;}
@keyframes plbPopOut{from{transform:scale(1);opacity:1;}to{transform:scale(.8) translateY(20px);opacity:0;}}

/* Polaroid frame */
.plb-img-wrap{
  position:relative;
  background:#fafaf8;
  border-radius:4px;
  padding:18px 18px 56px;
  width:100%;
  box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08);
  transform:rotate(0deg);
  transition:transform .3s ease;
}

/* Tape pieces */
.plb-tape{
  position:absolute;
  width:64px;height:22px;
  background:rgba(255,255,180,.72);
  border-radius:3px;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
  z-index:2;
}
.plb-tape-tl{top:-10px;left:30px;transform:rotate(-6deg);}
.plb-tape-tr{top:-10px;right:30px;transform:rotate(5deg);}

.plb-photo-area{
  width:100%;
  aspect-ratio:4/3;
  background:#e0e0e0;
  border-radius:2px;
  overflow:hidden;
  position:relative;
}
.plb-img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  border-radius:2px;
  transition:transform .4s ease;
}
.plb-img:hover{transform:scale(1.03);}

.plb-caption-area{
  display:flex;align-items:flex-start;justify-content:space-between;gap:8px;
  margin-top:10px;
}
.plb-caption{
  flex:1;
  font-family:'Nunito',sans-serif;
  font-size:.88rem;
  font-weight:700;
  color:#2d3a5a;
  line-height:1.5;
}
.plb-counter{
  font-family:'Nunito',sans-serif;
  font-size:.65rem;
  font-weight:800;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#aaa;
  white-space:nowrap;
  align-self:flex-end;
  padding-bottom:2px;
}

/* Navigation buttons */
.plb-nav{
  position:fixed;
  top:50%;transform:translateY(-50%);
  background:var(--bg);
  border:none;border-radius:50%;
  width:50px;height:50px;
  font-size:1.8rem;line-height:1;
  cursor:pointer;
  box-shadow:var(--neu);
  color:var(--p1);
  display:flex;align-items:center;justify-content:center;
  transition:box-shadow .2s,transform .2s;
  z-index:3;
  font-weight:900;
}
.plb-nav:hover{box-shadow:var(--neu-in);transform:translateY(-50%) scale(1.1);}
.plb-prev{left:clamp(6px,3vw,28px);}
.plb-next{right:clamp(6px,3vw,28px);}
.plb-nav:disabled{opacity:.35;cursor:default;transform:translateY(-50%);}

/* Close button */
.plb-close{
  position:absolute;top:-16px;right:-16px;
  background:var(--bg);
  border:none;border-radius:50%;
  width:40px;height:40px;
  font-size:1rem;
  cursor:pointer;
  box-shadow:var(--neu-sm),0 4px 16px rgba(0,0,0,.18);
  color:var(--text);
  display:flex;align-items:center;justify-content:center;
  transition:box-shadow .2s,transform .2s;
  z-index:10;font-weight:900;
}
.plb-close:hover{box-shadow:var(--neu-in);transform:scale(1.12) rotate(90deg);}

/* Dot indicators */
.plb-dots{
  display:flex;gap:7px;margin-top:18px;flex-wrap:wrap;justify-content:center;max-width:240px;
}
.plb-dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,.25);
  cursor:pointer;
  transition:background .2s,transform .2s;
  border:none;padding:0;flex-shrink:0;
}
.plb-dot.active{background:#fff;transform:scale(1.35);}
.plb-dot:hover{background:rgba(255,255,255,.6);}

/* Slide animation */
.plb-photo-area.slide-out-left{animation:plbSlideOutL .22s ease both;}
.plb-photo-area.slide-in-right{animation:plbSlideInR .22s ease both;}
.plb-photo-area.slide-out-right{animation:plbSlideOutR .22s ease both;}
.plb-photo-area.slide-in-left{animation:plbSlideInL .22s ease both;}
@keyframes plbSlideOutL{to{opacity:0;transform:translateX(-40px);}}
@keyframes plbSlideInR{from{opacity:0;transform:translateX(40px);}to{opacity:1;transform:translateX(0);}}
@keyframes plbSlideOutR{to{opacity:0;transform:translateX(40px);}}
@keyframes plbSlideInL{from{opacity:0;transform:translateX(-40px);}to{opacity:1;transform:translateX(0);}}

/* Make polaroid cards clickable */
.polaroid{cursor:pointer;}
.polaroid:hover{transform:scale(1.06) rotate(var(--rot))!important;z-index:5;}

/* ════════════════════════════════
   RESPONSIVE
   ════════════════════════════════ */
@media(max-width:520px){
  .stats-row{grid-template-columns:1fr 1fr;}
  .cd-grid{grid-template-columns:repeat(2,1fr);}
  .hero{padding:34px 18px 28px;}
  .top-banner{justify-content:center;}
  .w-card{padding:42px 24px 38px;}
  .age-btn-row{flex-direction:column;align-items:center;}
  .quiz-opts{grid-template-columns:1fr;}
  .achiev-grid{gap:8px;}
  .badge{width:86px;}
  .b-wrapper{padding:24px 14px;}
}

/* ── STANDALONE BUTTON CENTERING ── */
.horo-btn,.alter-btn,.trailer-btn,.spin-btn,.quiz-restart,
.prophecy-btn,.telegram-gen-btn,.irritate-reset-btn,
.starwish-btn,.ll-gen-btn,.wish-send-btn{
  display:block;
  margin-left:auto;
  margin-right:auto;
  width:fit-content;
}
