/* Sanatan Bliss — festival greeting band (Patch 29) */
.sbg-slot { position: relative; overflow: hidden; max-height: 0; transition: max-height .5s ease; }
.sbg-slot.is-ready { max-height: 220px; }
.sbg-slot.is-closing { max-height: 0; }
.sbg { display: none; position: relative; align-items: center; gap: 18px; padding: 12px max(16px, calc((100% - 1200px) / 2));
  background: linear-gradient(110deg, var(--c1), var(--c2)); color: #fff; min-height: 76px; isolation: isolate; }
.sbg.is-on { display: flex; animation: sbgIn .6s ease both; }
.sbg-glow { position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 140% at 12% 50%, color-mix(in srgb, var(--acc) 35%, transparent), transparent 70%); }
.sbg-art { width: 112px; height: 64px; object-fit: cover; object-position: right center; border-radius: 12px; flex: 0 0 auto;
  border: 1px solid rgba(255,255,255,.25); box-shadow: 0 6px 18px rgba(0,0,0,.3); }
.sbg-text { flex: 1; min-width: 0; }
.sbg-hi { font-family: var(--font-hindi, 'Noto Sans Devanagari', serif); font-size: 1.22rem; font-weight: 700; color: var(--acc); line-height: 1.35; text-shadow: 0 1px 8px rgba(0,0,0,.35); }
.sbg-en { font-size: .86rem; color: rgba(255,255,255,.86); margin-top: 2px; line-height: 1.45; }
.sbg-actions { display: flex; gap: 8px; flex: 0 0 auto; }
.sbg-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 999px; font-size: .82rem; font-weight: 600; text-decoration: none; white-space: nowrap; transition: transform .2s, box-shadow .2s; }
.sbg-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,.25); }
.sbg-wa { background: #25d366; color: #0b2a16; }
.sbg-wa::before { content: ''; width: 14px; height: 14px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm5.3 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7a11.6 11.6 0 0 1-4.6-4.1 5.2 5.2 0 0 1-1.1-2.8 3 3 0 0 1 1-2.3 1 1 0 0 1 .7-.3h.5c.2 0 .4 0 .6.5l.9 2.1c.1.2.1.4 0 .6l-.4.6-.4.4c-.1.1-.3.3-.1.6a8.6 8.6 0 0 0 1.6 2 7.8 7.8 0 0 0 2.3 1.4c.3.1.5.1.6-.1l.9-1.1c.2-.3.4-.2.6-.1l2 1c.3.1.5.2.5.3a2.6 2.6 0 0 1-.1 1.3z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm5.3 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .2-3.3-.7a11.6 11.6 0 0 1-4.6-4.1 5.2 5.2 0 0 1-1.1-2.8 3 3 0 0 1 1-2.3 1 1 0 0 1 .7-.3h.5c.2 0 .4 0 .6.5l.9 2.1c.1.2.1.4 0 .6l-.4.6-.4.4c-.1.1-.3.3-.1.6a8.6 8.6 0 0 0 1.6 2 7.8 7.8 0 0 0 2.3 1.4c.3.1.5.1.6-.1l.9-1.1c.2-.3.4-.2.6-.1l2 1c.3.1.5.2.5.3a2.6 2.6 0 0 1-.1 1.3z'/%3E%3C/svg%3E") center/contain no-repeat; }
.sbg-go { background: rgba(255,255,255,.14); color: #fff; border: 1px solid rgba(255,255,255,.3); }
.sbg-short { display: none; }
.sbg-x { position: absolute; top: 6px; right: 8px; width: 26px; height: 26px; border: 0; border-radius: 50%; background: rgba(0,0,0,.2); color: #fff; font-size: 17px; line-height: 26px; cursor: pointer; padding: 0; }
.sbg-x:hover { background: rgba(0,0,0,.4); }
.sbg-soon { min-height: 56px; padding-top: 8px; padding-bottom: 8px; }
.sbg-soon .sbg-art { width: 72px; height: 44px; }
.sbg-soon .sbg-hi { font-size: 1.02rem; }
.sbg-dots { position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; z-index: 2; }
.sbg-dots b { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.4); cursor: pointer; }
.sbg-dots b.on { background: #fff; }
/* sparkles drifting up */
.sbg-sparks { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.sbg-sparks i { position: absolute; bottom: -6px; width: 4px; height: 4px; border-radius: 50%; background: var(--acc); opacity: 0; box-shadow: 0 0 8px var(--acc); }
.sbg-sparks i:nth-child(1) { left: 6%; } .sbg-sparks i:nth-child(2) { left: 14%; animation-delay: -1.2s !important; } .sbg-sparks i:nth-child(3) { left: 22%; animation-delay: -2.6s !important; }
.sbg-sparks i:nth-child(4) { left: 31%; animation-delay: -.6s !important; } .sbg-sparks i:nth-child(5) { left: 40%; animation-delay: -3.1s !important; } .sbg-sparks i:nth-child(6) { left: 49%; animation-delay: -1.8s !important; }
.sbg-sparks i:nth-child(7) { left: 58%; animation-delay: -4s !important; } .sbg-sparks i:nth-child(8) { left: 66%; animation-delay: -2.2s !important; } .sbg-sparks i:nth-child(9) { left: 74%; animation-delay: -.3s !important; }
.sbg-sparks i:nth-child(10) { left: 82%; animation-delay: -3.6s !important; } .sbg-sparks i:nth-child(11) { left: 90%; animation-delay: -1.4s !important; } .sbg-sparks i:nth-child(12) { left: 96%; animation-delay: -2.9s !important; }
@media (prefers-reduced-motion: no-preference) {
  .sbg-sparks i { animation: sbgSpark 4.6s linear infinite; }
  .sbg-day .sbg-art { animation: sbgFloat 5s ease-in-out infinite alternate; }
}
@keyframes sbgSpark { 0% { transform: translateY(0) scale(.6); opacity: 0; } 15% { opacity: .9; } 100% { transform: translateY(-90px) scale(1.1); opacity: 0; } }
@keyframes sbgFloat { from { transform: translateY(0) rotate(-1deg); } to { transform: translateY(-3px) rotate(1deg); } }
@keyframes sbgIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
/* home page: a little grander */
.sbg-home .sbg-day { min-height: 110px; }
.sbg-home .sbg-day .sbg-art { width: 168px; height: 96px; }
.sbg-home .sbg-day .sbg-hi { font-size: 1.55rem; }
@media (max-width: 760px) {
  .sbg { gap: 12px; padding: 10px 40px 12px 12px; flex-wrap: wrap; }
  .sbg-art, .sbg-home .sbg-day .sbg-art { width: 64px; height: 48px; border-radius: 10px; }
  .sbg-soon .sbg-art { width: 48px; height: 36px; }
  .sbg-text { flex: 1 1 calc(100% - 80px); }
  .sbg-hi, .sbg-home .sbg-day .sbg-hi { font-size: 1.02rem; }
  .sbg-en { font-size: .76rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .sbg-actions { width: 100%; padding-left: 76px; }
  .sbg-soon .sbg-actions { padding-left: 60px; }
  .sbg-btn { padding: 6px 12px; font-size: .76rem; }
  .sbg-full { display: none; } .sbg-short { display: inline; }
  .sbg-home .sbg-day { min-height: 0; }
}
/* light festival skies: dark text */
.sbg-light { color: #2a0a1e; }
.sbg-light .sbg-hi { color: var(--acc2); text-shadow: 0 1px 0 rgba(255,255,255,.6); }
.sbg-light .sbg-en { color: rgba(42,10,30,.82); }
.sbg-light .sbg-go { background: rgba(255,255,255,.7); color: #2a0a1e; border-color: rgba(42,10,30,.2); }
.sbg-light .sbg-x { background: rgba(42,10,30,.15); color: #2a0a1e; }
.sbg-light .sbg-dots b { background: rgba(42,10,30,.25); } .sbg-light .sbg-dots b.on { background: #2a0a1e; }
.sbg-light .sbg-sparks i { background: var(--acc2); box-shadow: 0 0 8px var(--acc2); }
@media print { .sbg-slot { display: none !important; } }
