/* ==========================================================
   Festival themes — switch on automatically by date (see festivals.js).
   Preview any theme with ?festival=diwali|navratri|holi|ramadan|eid|holidays|sankranti|ugadi|vaisakhi|rakhi|janmashtami|ganesh|onam|gurpurab|july4|indiaday
   and turn themes off for a visit with ?festival=off.
   ========================================================== */

html.fest-diwali {
  --fx-night: #1f0726; --fx-mid: #4a0f33; --fx-warm: #c2531a;
  --fx-glow: rgba(255, 190, 80, 0.34); --fx-glow2: rgba(224, 69, 123, 0.22);
  --fx-accent: #ffd36b; --fx-spark: #ffd36b;
  --fx-btn1: #f6a21a; --fx-btn2: #ffd36b; --fx-btn-text: #1f0726;
  --fx-line: linear-gradient(90deg, #e0457b 0%, #f6a21a 35%, #ffd36b 60%, #c2531a 100%);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='26' viewBox='0 0 72 26'%3E%3Cpath d='M0 2 Q36 16 72 2' fill='none' stroke='%23b8860b' stroke-width='1.6'/%3E%3Cpath d='M18 9.5 q-4 6 0 11 q4 -5 0 -11z' fill='%233f8f2f'/%3E%3Cpath d='M54 9.5 q-4 6 0 11 q4 -5 0 -11z' fill='%233f8f2f'/%3E%3Cg transform='translate(36 13)'%3E%3Ccircle r='7' fill='%23f28c0f'/%3E%3Ccircle r='5.2' fill='%23f6a21a'/%3E%3Ccircle r='3.2' fill='%23ffc23d'/%3E%3Ccircle r='1.4' fill='%23c2531a'/%3E%3C/g%3E%3Ccircle cx='9' cy='5.6' r='2.6' fill='%23e0457b'/%3E%3Ccircle cx='63' cy='5.6' r='2.6' fill='%23e0457b'/%3E%3C/svg%3E"); --fx-garland-size: 72px 26px; --fx-garland-h: 26px;
}
html.fest-navratri {
  --fx-night: #2a0610; --fx-mid: #8a1538; --fx-warm: #d9480f;
  --fx-glow: rgba(255, 200, 60, 0.32); --fx-glow2: rgba(233, 30, 99, 0.22);
  --fx-accent: #ffd166; --fx-spark: #ffd166;
  --fx-btn1: #ff8f1f; --fx-btn2: #ffd166; --fx-btn-text: #2a0610;
  --fx-line: linear-gradient(90deg, #d81b60, #ff8f1f 40%, #ffd166 70%, #8a1538);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='26' viewBox='0 0 72 26'%3E%3Cpath d='M0 2 Q36 16 72 2' fill='none' stroke='%23b8860b' stroke-width='1.6'/%3E%3Cpath d='M18 9.5 q-4 6 0 11 q4 -5 0 -11z' fill='%233f8f2f'/%3E%3Cpath d='M54 9.5 q-4 6 0 11 q4 -5 0 -11z' fill='%233f8f2f'/%3E%3Cg transform='translate(36 13)'%3E%3Ccircle r='7' fill='%23f28c0f'/%3E%3Ccircle r='5.2' fill='%23f6a21a'/%3E%3Ccircle r='3.2' fill='%23ffc23d'/%3E%3Ccircle r='1.4' fill='%23c2531a'/%3E%3C/g%3E%3Ccircle cx='9' cy='5.6' r='2.6' fill='%23e0457b'/%3E%3Ccircle cx='63' cy='5.6' r='2.6' fill='%23e0457b'/%3E%3C/svg%3E"); --fx-garland-size: 72px 26px; --fx-garland-h: 26px;
}
html.fest-holi {
  --fx-night: #2b1460; --fx-mid: #b0186a; --fx-warm: #ef6c00;
  --fx-glow: rgba(255, 235, 59, 0.3); --fx-glow2: rgba(0, 188, 212, 0.25);
  --fx-accent: #fff176; --fx-spark: #ffffff;
  --fx-btn1: #ffb300; --fx-btn2: #fff176; --fx-btn-text: #2b1460;
  --fx-line: linear-gradient(90deg, #e91e63, #ffc107 25%, #4caf50 50%, #2196f3 75%, #9c27b0);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='24' viewBox='0 0 96 24'%3E%3Cpath d='M0 2 Q48 9 96 2' fill='none' stroke='%23b8860b' stroke-width='1.4'/%3E%3Cpath d='M4 3.8 L22 5.2 L13 21 Z' fill='%23e91e63'/%3E%3Cpath d='M28 5.8 L46 5.5 L37 22 Z' fill='%23ffc107'/%3E%3Cpath d='M50 5.5 L68 5.8 L59 22 Z' fill='%232e9d48'/%3E%3Cpath d='M74 5.2 L92 3.8 L83 21 Z' fill='%231e88e5'/%3E%3C/svg%3E");
  --fx-garland-size: 96px 24px; --fx-garland-h: 24px;
}
html.fest-ramadan,
html.fest-eid {
  --fx-night: #06192e; --fx-mid: #0d3b4f; --fx-warm: #13685f;
  --fx-glow: rgba(244, 213, 141, 0.28); --fx-glow2: rgba(64, 196, 170, 0.18);
  --fx-accent: #f4d58d; --fx-spark: #fff6d8;
  --fx-btn1: #e2b553; --fx-btn2: #f4d58d; --fx-btn-text: #06192e;
  --fx-line: linear-gradient(90deg, #13685f, #f4d58d 50%, #13685f);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40' viewBox='0 0 120 40'%3E%3Cpath d='M0 2 Q60 9 120 2' fill='none' stroke='%23c9a24a' stroke-width='1.3'/%3E%3Cpath d='M30 5 V10 M90 5 V12' stroke='%23c9a24a' stroke-width='1'/%3E%3Crect x='26.5' y='10' width='7' height='2.4' rx='1' fill='%23c9a24a'/%3E%3Cpath d='M25 12.4 H35 L37.5 19 L35 28 H25 L22.5 19 Z' fill='%23f4d58d' stroke='%23c9a24a' stroke-width='.8'/%3E%3Cpath d='M28 15 H32 L33.2 19.5 L32 25 H28 L26.8 19.5 Z' fill='%23fff3c4'/%3E%3Crect x='27' y='28' width='6' height='2' rx='1' fill='%23c9a24a'/%3E%3Cpath d='M30 30 V35' stroke='%23c9a24a' stroke-width='1'/%3E%3Cpath d='M90 11.5 L91.6 15.2 L95.5 15.5 L92.5 18 L93.4 21.9 L90 19.8 L86.6 21.9 L87.5 18 L84.5 15.5 L88.4 15.2 Z' fill='%23f4d58d'/%3E%3C/svg%3E");
  --fx-garland-size: 108px 36px; --fx-garland-h: 36px;
}
html.fest-holidays {
  --fx-night: #062a1f; --fx-mid: #0f4a33; --fx-warm: #8b1e2d;
  --fx-glow: rgba(255, 232, 163, 0.26); --fx-glow2: rgba(255, 255, 255, 0.12);
  --fx-accent: #ffe8a3; --fx-spark: #ffffff;
  --fx-btn1: #f2c14e; --fx-btn2: #ffe8a3; --fx-btn-text: #062a1f;
  --fx-line: linear-gradient(90deg, #c62828, #f2c14e 50%, #2e7d32);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='22' viewBox='0 0 96 22'%3E%3Cpath d='M0 3 Q24 8 48 3 Q72 8 96 3' fill='none' stroke='%232f5d3a' stroke-width='1.4'/%3E%3Crect x='10.5' y='4.4' width='3' height='3' rx='.6' fill='%232f5d3a'/%3E%3Crect x='34.5' y='4.4' width='3' height='3' rx='.6' fill='%232f5d3a'/%3E%3Crect x='58.5' y='4.4' width='3' height='3' rx='.6' fill='%232f5d3a'/%3E%3Crect x='82.5' y='4.4' width='3' height='3' rx='.6' fill='%232f5d3a'/%3E%3Cellipse cx='12' cy='12' rx='3.2' ry='4.6' fill='%23e53935'/%3E%3Cellipse cx='36' cy='12' rx='3.2' ry='4.6' fill='%23ffd54f'/%3E%3Cellipse cx='60' cy='12' rx='3.2' ry='4.6' fill='%2343a047'/%3E%3Cellipse cx='84' cy='12' rx='3.2' ry='4.6' fill='%231e88e5'/%3E%3C/svg%3E");
  --fx-garland-size: 96px 22px; --fx-garland-h: 22px;
}

/* ---- More festivals (Oct 31 2026): Sankranti/Pongal/Lohri, Ugadi, Vaisakhi, Raksha Bandhan,
   Janmashtami, Ganesh Chaturthi, Onam, Gurpurab ---- */
html.fest-sankranti {
  --fx-night: #0b2f55; --fx-mid: #13609e; --fx-warm: #ef7d12;
  --fx-glow: rgba(255, 207, 58, 0.38); --fx-glow2: rgba(255, 255, 255, 0.14);
  --fx-accent: #ffd54f; --fx-spark: #fff3c4;
  --fx-btn1: #ffb300; --fx-btn2: #ffd54f; --fx-btn-text: #0b2f55;
  --fx-line: linear-gradient(90deg, #e53935, #fbc02d 33%, #1e88e5 66%, #43a047);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='28' viewBox='0 0 96 28'%3E%3Cpath d='M0 2 Q48 10 96 2' fill='none' stroke='%238d6e63' stroke-width='1.2'/%3E%3Cg%3E%3Cpath d='M14 4 L21 12 L14 22 L7 12 Z' fill='%23e53935'/%3E%3Cpath d='M14 4 V22 M7 12 H21' stroke='%23fff' stroke-width='.8' opacity='.7'/%3E%3C/g%3E%3Cg%3E%3Cpath d='M38 6 L45 14 L38 24 L31 14 Z' fill='%23fbc02d'/%3E%3Cpath d='M38 6 V24 M31 14 H45' stroke='%23fff' stroke-width='.8' opacity='.7'/%3E%3C/g%3E%3Cg%3E%3Cpath d='M58 6 L65 14 L58 24 L51 14 Z' fill='%231e88e5'/%3E%3Cpath d='M58 6 V24 M51 14 H65' stroke='%23fff' stroke-width='.8' opacity='.7'/%3E%3C/g%3E%3Cg%3E%3Cpath d='M82 4 L89 12 L82 22 L75 12 Z' fill='%2343a047'/%3E%3Cpath d='M82 4 V22 M75 12 H89' stroke='%23fff' stroke-width='.8' opacity='.7'/%3E%3C/g%3E%3C/svg%3E");
  --fx-garland-size: 96px 28px; --fx-garland-h: 28px;
}
html.fest-ugadi {
  --fx-night: #0c2e14; --fx-mid: #1f6b2c; --fx-warm: #c8960e;
  --fx-glow: rgba(255, 213, 79, 0.32); --fx-glow2: rgba(129, 199, 132, 0.22);
  --fx-accent: #ffe082; --fx-spark: #fff8d6;
  --fx-btn1: #f6b21a; --fx-btn2: #ffe082; --fx-btn-text: #0c2e14;
  --fx-line: linear-gradient(90deg, #2e7d32, #f6a21a 50%, #2e7d32);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='30' viewBox='0 0 64 30'%3E%3Cpath d='M0 2 Q32 7 64 2' fill='none' stroke='%238d6e63' stroke-width='1.2'/%3E%3Cpath d='M8 4 C3 12 5 22 8 28 C11 22 13 12 8 4Z' fill='%232e7d32'/%3E%3Cpath d='M8 6 V26' stroke='%23a5d6a7' stroke-width='.6'/%3E%3Cpath d='M24 5 C19 13 21 22 24 27 C27 22 29 13 24 5Z' fill='%2343a047'/%3E%3Cpath d='M24 7 V25' stroke='%23c8e6c9' stroke-width='.6'/%3E%3Ccircle cx='40' cy='9' r='5' fill='%23f6a21a'/%3E%3Ccircle cx='40' cy='9' r='3' fill='%23ffc23d'/%3E%3Cpath d='M56 4 C51 12 53 22 56 28 C59 22 61 12 56 4Z' fill='%232e7d32'/%3E%3Cpath d='M56 6 V26' stroke='%23a5d6a7' stroke-width='.6'/%3E%3C/svg%3E");
  --fx-garland-size: 64px 30px; --fx-garland-h: 30px;
}
html.fest-vaisakhi {
  --fx-night: #2b1a03; --fx-mid: #8a4b06; --fx-warm: #e0a106;
  --fx-glow: rgba(255, 213, 79, 0.36); --fx-glow2: rgba(21, 101, 192, 0.2);
  --fx-accent: #ffe082; --fx-spark: #ffe9a8;
  --fx-btn1: #ffa000; --fx-btn2: #ffe082; --fx-btn-text: #2b1a03;
  --fx-line: linear-gradient(90deg, #ff8f00, #fdd835 33%, #1565c0 66%, #2e7d32);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='24' viewBox='0 0 96 24'%3E%3Cpath d='M0 2 Q48 9 96 2' fill='none' stroke='%238d6e63' stroke-width='1.3'/%3E%3Cpath d='M4 3.8 L22 5.2 L13 21 Z' fill='%23ff8f00'/%3E%3Cpath d='M28 5.8 L46 5.5 L37 22 Z' fill='%23fdd835'/%3E%3Cpath d='M50 5.5 L68 5.8 L59 22 Z' fill='%231565c0'/%3E%3Cpath d='M74 5.2 L92 3.8 L83 21 Z' fill='%232e7d32'/%3E%3C/svg%3E");
  --fx-garland-size: 96px 24px; --fx-garland-h: 24px;
}
html.fest-rakhi {
  --fx-night: #2a0716; --fx-mid: #7d1238; --fx-warm: #d84a63;
  --fx-glow: rgba(255, 213, 79, 0.32); --fx-glow2: rgba(255, 128, 171, 0.22);
  --fx-accent: #ffd54f; --fx-spark: #ffe9a8;
  --fx-btn1: #ffb300; --fx-btn2: #ffd54f; --fx-btn-text: #2a0716;
  --fx-line: linear-gradient(90deg, #c62828, #ffd54f 50%, #c62828);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='26' viewBox='0 0 80 26'%3E%3Cpath d='M0 3 Q40 12 80 3' fill='none' stroke='%23c62828' stroke-width='2'/%3E%3Cpath d='M0 3 Q40 12 80 3' fill='none' stroke='%23ffd54f' stroke-width='.7' stroke-dasharray='2 3'/%3E%3Cg transform='translate(40 13)'%3E%3Ccircle r='8' fill='%23ffd54f'/%3E%3Cg fill='%23e53935'%3E%3Ccircle cx='0' cy='-5' r='2.6'/%3E%3Ccircle cx='5' cy='0' r='2.6'/%3E%3Ccircle cx='0' cy='5' r='2.6'/%3E%3Ccircle cx='-5' cy='0' r='2.6'/%3E%3C/g%3E%3Ccircle r='2.6' fill='%23fff59d'/%3E%3C/g%3E%3Ccircle cx='12' cy='6' r='2' fill='%23ffd54f'/%3E%3Ccircle cx='68' cy='6' r='2' fill='%23ffd54f'/%3E%3C/svg%3E");
  --fx-garland-size: 80px 26px; --fx-garland-h: 26px;
}
html.fest-janmashtami {
  --fx-night: #06143a; --fx-mid: #0f3f7a; --fx-warm: #00897b;
  --fx-glow: rgba(255, 213, 79, 0.28); --fx-glow2: rgba(0, 188, 212, 0.22);
  --fx-accent: #ffd54f; --fx-spark: #fff6d8;
  --fx-btn1: #ffc107; --fx-btn2: #ffe082; --fx-btn-text: #06143a;
  --fx-line: linear-gradient(90deg, #1565c0, #00897b 40%, #ffd54f 70%, #2e7d32);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='30' viewBox='0 0 72 30'%3E%3Cpath d='M0 2 Q36 9 72 2' fill='none' stroke='%23c9a24a' stroke-width='1.2'/%3E%3Cg transform='translate(18 6)'%3E%3Cpath d='M0 0 V22' stroke='%23c9a24a' stroke-width='.8'/%3E%3Cellipse cx='0' cy='16' rx='5' ry='8' fill='%232e7d32'/%3E%3Cellipse cx='0' cy='17' rx='3.4' ry='4.6' fill='%231565c0'/%3E%3Cellipse cx='0' cy='17.5' rx='2' ry='2.6' fill='%2300897b'/%3E%3Cellipse cx='0' cy='18' rx='1' ry='1.3' fill='%23ffd54f'/%3E%3C/g%3E%3Cg transform='translate(54 6)'%3E%3Cpath d='M0 0 V22' stroke='%23c9a24a' stroke-width='.8'/%3E%3Cellipse cx='0' cy='16' rx='5' ry='8' fill='%232e7d32'/%3E%3Cellipse cx='0' cy='17' rx='3.4' ry='4.6' fill='%231565c0'/%3E%3Cellipse cx='0' cy='17.5' rx='2' ry='2.6' fill='%2300897b'/%3E%3Cellipse cx='0' cy='18' rx='1' ry='1.3' fill='%23ffd54f'/%3E%3C/g%3E%3Ccircle cx='36' cy='7' r='2.4' fill='%23ffd54f'/%3E%3C/svg%3E");
  --fx-garland-size: 72px 30px; --fx-garland-h: 30px;
}
html.fest-ganesh {
  --fx-night: #2a0a03; --fx-mid: #9a2a07; --fx-warm: #f08a12;
  --fx-glow: rgba(255, 200, 60, 0.36); --fx-glow2: rgba(229, 57, 53, 0.22);
  --fx-accent: #ffd36b; --fx-spark: #ffd36b;
  --fx-btn1: #f6a21a; --fx-btn2: #ffd36b; --fx-btn-text: #2a0a03;
  --fx-line: linear-gradient(90deg, #c62828, #f6a21a 45%, #ffd36b 70%, #c2531a);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='26' viewBox='0 0 72 26'%3E%3Cpath d='M0 2 Q36 16 72 2' fill='none' stroke='%23b8860b' stroke-width='1.6'/%3E%3Cpath d='M18 9.5 q-4 6 0 11 q4 -5 0 -11z' fill='%233f8f2f'/%3E%3Cpath d='M54 9.5 q-4 6 0 11 q4 -5 0 -11z' fill='%233f8f2f'/%3E%3Cg transform='translate(36 13)'%3E%3Ccircle r='7' fill='%23f28c0f'/%3E%3Ccircle r='5.2' fill='%23f6a21a'/%3E%3Ccircle r='3.2' fill='%23ffc23d'/%3E%3Ccircle r='1.4' fill='%23c2531a'/%3E%3C/g%3E%3Ccircle cx='9' cy='5.6' r='2.6' fill='%23e0457b'/%3E%3Ccircle cx='63' cy='5.6' r='2.6' fill='%23e0457b'/%3E%3C/svg%3E");
  --fx-garland-size: 72px 26px; --fx-garland-h: 26px;
}
html.fest-onam {
  --fx-night: #10301a; --fx-mid: #2f6b2a; --fx-warm: #c99a12;
  --fx-glow: rgba(255, 236, 179, 0.34); --fx-glow2: rgba(255, 152, 0, 0.2);
  --fx-accent: #ffe9a8; --fx-spark: #fff8e1;
  --fx-btn1: #e8b21c; --fx-btn2: #ffe9a8; --fx-btn-text: #10301a;
  --fx-line: linear-gradient(90deg, #c99a12, #fff8e1 50%, #c99a12);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='26' viewBox='0 0 72 26'%3E%3Cpath d='M0 2 Q36 12 72 2' fill='none' stroke='%23558b2f' stroke-width='1.4'/%3E%3Cpath d='M6 4 q-6 8 2 16 q4 -8 -2 -16z' fill='%23558b2f'/%3E%3Ccircle cx='22' cy='9' r='5' fill='%23f6a21a'/%3E%3Ccircle cx='22' cy='9' r='2.2' fill='%23fff8e1'/%3E%3Ccircle cx='36' cy='11' r='5' fill='%23fdd835'/%3E%3Ccircle cx='36' cy='11' r='2.2' fill='%23e65100'/%3E%3Ccircle cx='50' cy='9' r='5' fill='%23fff8e1'/%3E%3Ccircle cx='50' cy='9' r='2.2' fill='%23f6a21a'/%3E%3Cpath d='M66 4 q6 8 -2 16 q-4 -8 2 -16z' fill='%23558b2f'/%3E%3C/svg%3E");
  --fx-garland-size: 72px 26px; --fx-garland-h: 26px;
}
html.fest-gurpurab {
  --fx-night: #0b1640; --fx-mid: #1d3a8a; --fx-warm: #e8891a;
  --fx-glow: rgba(255, 204, 51, 0.32); --fx-glow2: rgba(255, 152, 0, 0.18);
  --fx-accent: #ffcc33; --fx-spark: #ffe8a3;
  --fx-btn1: #f39c12; --fx-btn2: #ffcc33; --fx-btn-text: #0b1640;
  --fx-line: linear-gradient(90deg, #1d3a8a, #e8891a 50%, #1d3a8a);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='22' viewBox='0 0 48 22'%3E%3Cpath d='M0 2 Q24 9 48 2' fill='none' stroke='%235d4037' stroke-width='1'/%3E%3Cpath d='M12 5 V8 M36 5 V8' stroke='%235d4037' stroke-width='1'/%3E%3Cellipse cx='12' cy='12' rx='3.2' ry='4.4' fill='%23ffcc33'/%3E%3Cellipse cx='12' cy='12' rx='1.6' ry='2.4' fill='%23fff8d6'/%3E%3Cellipse cx='36' cy='12' rx='3.2' ry='4.4' fill='%23ffcc33'/%3E%3Cellipse cx='36' cy='12' rx='1.6' ry='2.4' fill='%23fff8d6'/%3E%3C/svg%3E");
  --fx-garland-size: 48px 22px; --fx-garland-h: 22px;
}

/* ---- Independence days (celebration only): July 4th, India Aug 15 ---- */
html.fest-july4 {
  --fx-night: #0b1a3f; --fx-mid: #1b2f6b; --fx-warm: #9e1b2f;
  --fx-glow: rgba(255, 255, 255, 0.2); --fx-glow2: rgba(239, 83, 80, 0.22);
  --fx-accent: #ffffff; --fx-spark: #ffffff;
  --fx-btn1: #ffffff; --fx-btn2: #e3ebff; --fx-btn-text: #0b1a3f;
  --fx-line: linear-gradient(90deg, #b22234, #ffffff 50%, #3c3b6e);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='24' viewBox='0 0 96 24'%3E%3Cpath d='M0 2 Q48 9 96 2' fill='none' stroke='%239e9e9e' stroke-width='1.2'/%3E%3Cpath d='M4 3.8 L22 5.2 L13 21 Z' fill='%23d32f2f'/%3E%3Cpath d='M28 5.8 L46 5.5 L37 22 Z' fill='%23ffffff'/%3E%3Cpath d='M50 5.5 L68 5.8 L59 22 Z' fill='%231e3a8a'/%3E%3Cpath d='M55.5 9 l1.1 2.3 2.5.3-1.8 1.7.5 2.5-2.3-1.2-2.3 1.2.5-2.5-1.8-1.7 2.5-.3z' fill='%23fff'/%3E%3Cpath d='M74 5.2 L92 3.8 L83 21 Z' fill='%23d32f2f'/%3E%3C/svg%3E");
  --fx-garland-size: 96px 24px; --fx-garland-h: 24px;
}
html.fest-indiaday {
  --fx-night: #0d1f4a; --fx-mid: #173a7a; --fx-warm: #0f6b3a;
  --fx-glow: rgba(255, 153, 51, 0.34); --fx-glow2: rgba(19, 136, 8, 0.24);
  --fx-accent: #ffb366; --fx-spark: #ffffff;
  --fx-btn1: #ff9933; --fx-btn2: #ffc58a; --fx-btn-text: #0d1f4a;
  --fx-line: linear-gradient(90deg, #ff9933, #ffffff 50%, #138808);
  --fx-garland: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='24' viewBox='0 0 72 24'%3E%3Cpath d='M0 2 Q36 9 72 2' fill='none' stroke='%239e9e9e' stroke-width='1.2'/%3E%3Cpath d='M4 3.6 L20 4.6 L12 20 Z' fill='%23ff9933'/%3E%3Cpath d='M28 5.2 L44 5.2 L36 21 Z' fill='%23ffffff'/%3E%3Cpath d='M52 4.6 L68 3.6 L60 20 Z' fill='%23138808'/%3E%3C/svg%3E");
  --fx-garland-size: 72px 24px; --fx-garland-h: 24px;
}

/* ---- Shared festival look ---- */
html.fest { --tricolor: var(--fx-line); }

html.fest .hero {
  background:
    radial-gradient(circle at 82% 26%, var(--fx-glow), transparent 36%),
    radial-gradient(circle at 8% 92%, var(--fx-glow2), transparent 40%),
    linear-gradient(112deg, var(--fx-night) 0%, var(--fx-mid) 52%, var(--fx-warm) 100%);
}
html.fest .page-hero {
  background:
    radial-gradient(circle at 86% 20%, var(--fx-glow), transparent 34%),
    radial-gradient(circle at 4% 96%, var(--fx-glow2), transparent 40%),
    linear-gradient(112deg, var(--fx-night) 0%, var(--fx-mid) 56%, var(--fx-warm) 100%);
  padding-top: calc(clamp(58px, 8vw, 112px) + 14px);
}
html.fest .hero > .hero-aurora,
html.fest .page-hero > .hero-aurora {
  background:
    radial-gradient(38% 42% at 78% 24%, var(--fx-glow), transparent 70%),
    radial-gradient(30% 36% at 12% 80%, var(--fx-glow2), transparent 70%);
}
html.fest .hero .eyebrow,
html.fest .page-hero .eyebrow { color: var(--fx-accent); }
html.fest .hero::after {
  background: var(--fx-line);
  background-size: 260px 100%;
}
html.fest .hero-content { padding-bottom: clamp(70px, 8vw, 96px); }

/* garland hanging under the header */
html.fest .site-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: var(--fx-garland-h);
  pointer-events: none;
  background-image: var(--fx-garland);
  background-repeat: repeat-x;
  background-size: var(--fx-garland-size);
  filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.16));
}

/* buttons & CTAs */
html.fest .site-nav .nav-cta {
  background: linear-gradient(135deg, var(--fx-mid), var(--fx-warm));
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}
html.fest .site-nav .nav-cta:hover,
html.fest .site-nav .nav-cta:focus-visible { background: var(--fx-night); }
html.fest .button.primary {
  color: var(--fx-btn-text);
  background: linear-gradient(135deg, var(--fx-btn1), var(--fx-btn2));
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18);
}
html.fest .cta-band {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 20%, var(--fx-glow), transparent 34%),
    linear-gradient(112deg, var(--fx-night), var(--fx-mid) 58%, var(--fx-warm));
}
html.fest-diwali .cta-band::before,
html.fest-navratri .cta-band::before,
html.fest-ganesh .cta-band::before,
html.fest-gurpurab .cta-band::before {
  content: "";
  position: absolute;
  right: -46px;
  bottom: -46px;
  width: 170px;
  height: 170px;
  opacity: 0.22;
  pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'%3E%3Cg fill='none' stroke='%23ffd36b' stroke-width='2'%3E%3Ccircle r='46'/%3E%3Ccircle r='12'/%3E%3C/g%3E%3Cg fill='%23ffd36b'%3E%3Cpath id='p' d='M0 -14 C8 -24 8 -34 0 -42 C-8 -34 -8 -24 0 -14z'/%3E%3Cuse href='%23p' transform='rotate(45)'/%3E%3Cuse href='%23p' transform='rotate(90)'/%3E%3Cuse href='%23p' transform='rotate(135)'/%3E%3Cuse href='%23p' transform='rotate(180)'/%3E%3Cuse href='%23p' transform='rotate(225)'/%3E%3Cuse href='%23p' transform='rotate(270)'/%3E%3Cuse href='%23p' transform='rotate(315)'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
  animation: fx-spin 60s linear infinite;
}
html.fest .cta-band > * { position: relative; z-index: 1; }

/* ---- Sky layer (sparks, colour puffs, stars, snow) ---- */
.fx-sky { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.page-hero > .fx-sky { position: absolute; z-index: 0; }
.page-hero > .fx-moon { position: absolute; }

.fx-spark {
  position: absolute;
  border-radius: 50%;
  background: var(--fx-spark);
  box-shadow: 0 0 8px 2px var(--fx-spark);
  opacity: 0;
  animation: fx-twinkle 3.6s ease-in-out infinite;
}
.fx-puff {
  position: absolute;
  border-radius: 50%;
  opacity: 0.32;
  filter: blur(6px);
  animation: fx-drift 14s ease-in-out infinite alternate;
}
.fx-snow {
  position: absolute;
  top: -12px;
  border-radius: 50%;
  background: #fff;
  opacity: 0.85;
  animation: fx-fall linear infinite;
}
.fx-moon {
  position: absolute;
  top: 22px;
  right: 4%;
  width: clamp(54px, 7vw, 86px);
  height: auto;
  z-index: 1;
  pointer-events: none;
  filter: drop-shadow(0 0 18px rgba(244, 213, 141, 0.55));
}

/* diyas along the bottom of the hero (Diwali, Navratri) */
.fx-diyas {
  position: absolute;
  left: clamp(22px, 5vw, 72px);
  bottom: 22px;
  z-index: 2;
  display: flex;
  gap: clamp(14px, 2.4vw, 26px);
  pointer-events: none;
}
.page-hero > .fx-diyas { position: absolute; left: auto; right: clamp(20px, 5vw, 72px); bottom: 16px; }
.fx-diya { width: 34px; height: 34px; overflow: visible; }
.fx-flame { transform-origin: 17px 17px; animation: fx-flicker 1.6s ease-in-out infinite; }
.fx-diya:nth-child(2n) .fx-flame { animation-delay: -0.5s; }
.fx-diya:nth-child(3n) .fx-flame { animation-delay: -1.1s; }

/* greeting chip on the home page */
.fx-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  padding: 6px 14px 6px 10px;
  border: 1px solid color-mix(in srgb, var(--fx-accent) 55%, transparent);
  border-radius: 999px;
  color: var(--fx-accent);
  background: rgba(0, 0, 0, 0.22);
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-decoration: none;
}
a.fx-chip:hover { background: rgba(0, 0, 0, 0.34); }
.fx-chip svg { width: 20px; height: 20px; flex: none; }

@keyframes fx-twinkle { 0%, 100% { opacity: 0; transform: scale(0.4); } 50% { opacity: 1; transform: scale(1); } }
@keyframes fx-flicker { 0%, 100% { transform: scale(1, 1) rotate(-2deg); } 30% { transform: scale(0.92, 1.08) rotate(2deg); } 60% { transform: scale(1.05, 0.95) rotate(-1deg); } }
@keyframes fx-spin { to { transform: rotate(360deg); } }
@keyframes fx-drift { from { transform: translate(0, 0) scale(1); } to { transform: translate(24px, -18px) scale(1.15); } }
@keyframes fx-fall { from { transform: translate(0, -12px); } to { transform: translate(var(--fx-sway, 20px), 110vh); } }

@media (max-width: 720px) {
  .fx-diya:nth-child(n + 4) { display: none; }
  html.fest .site-header::after { background-size: auto calc(var(--fx-garland-h) * 0.78); height: calc(var(--fx-garland-h) * 0.78); }
  .fx-moon { width: 46px; top: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .fx-spark, .fx-flame, .fx-puff, .fx-snow, html.fest .cta-band::before { animation: none; }
  .fx-spark { opacity: 0.7; }
  .fx-snow { display: none; }
}

/* kites (Sankranti), falling petals (Ganesh, Onam, Ugadi, Vaisakhi) */
.fx-kite {
  position: absolute;
  width: 34px;
  height: 46px;
  opacity: 0.9;
  filter: drop-shadow(0 6px 8px rgba(0, 0, 0, 0.25));
  animation: fx-kite 7s ease-in-out infinite alternate;
}
.fx-kite svg { width: 100%; height: 100%; overflow: visible; }
.fx-petal {
  position: absolute;
  top: -14px;
  border-radius: 60% 0 60% 0;
  opacity: 0.9;
  animation: fx-petal linear infinite;
}
/* big corner decoration: sun, peacock feather, pookalam, rakhi, wheat */
.fx-deco {
  position: absolute;
  top: 18px;
  right: 4%;
  width: clamp(64px, 8vw, 104px);
  height: auto;
  z-index: 1;
  pointer-events: none;
  filter: drop-shadow(0 0 16px var(--fx-glow));
}
.page-hero > .fx-deco { position: absolute; }
.fx-deco.fx-spin-slow { animation: fx-spin 50s linear infinite; }
.fx-deco.fx-sway { transform-origin: 50% 0; animation: fx-sway 5s ease-in-out infinite alternate; }
@keyframes fx-kite { from { transform: translate(0, 0) rotate(-8deg); } to { transform: translate(18px, -14px) rotate(9deg); } }
@keyframes fx-petal { from { transform: translate(0, -14px) rotate(0deg); } to { transform: translate(var(--fx-sway, 30px), 110vh) rotate(540deg); } }
@keyframes fx-sway { from { transform: rotate(-6deg); } to { transform: rotate(6deg); } }
@media (max-width: 720px) {
  .fx-deco { width: 54px; top: 12px; }
  .fx-kite { display: none; }
}
@media (max-width: 600px) {
  .hero > .fx-deco { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .fx-kite, .fx-deco.fx-spin-slow, .fx-deco.fx-sway { animation: none; }
  .fx-petal { display: none; }
}
