/* SPOTLIGHT THEMES (22 Oct 2026), ported from the homepage: candle glow, autumn leaves, Christmas
   snow and New Year fireworks over the spotlight, plus the calendar page's month strip in the
   frame's darkest shade so it turns with the occasion. Switched off with reduced motion. */
.spot-overlay{overflow:visible}
.spot-flame{position:absolute;aspect-ratio:1/1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,214,120,.95) 0%,rgba(255,170,60,.55) 32%,rgba(255,140,40,0) 68%);
  mix-blend-mode:screen;animation:spotFlicker 2.3s ease-in-out infinite}
@keyframes spotFlicker{0%{opacity:.55;transform:translate(-50%,-50%) scale(.92)}12%{opacity:.9;transform:translate(-50%,-52%) scale(1.04)}
  21%{opacity:.6;transform:translate(-51%,-50%) scale(.95)}34%{opacity:1;transform:translate(-50%,-53%) scale(1.1)}
  47%{opacity:.7;transform:translate(-49%,-50%) scale(.98)}58%{opacity:.95;transform:translate(-50%,-52%) scale(1.06)}
  69%{opacity:.5;transform:translate(-50%,-50%) scale(.9)}83%{opacity:.9;transform:translate(-51%,-52%) scale(1.05)}100%{opacity:.55;transform:translate(-50%,-50%) scale(.92)}}
.spot-leaf{position:absolute;top:-32px;font-size:22px;line-height:1;pointer-events:none;z-index:2;opacity:.95;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));animation:spotLeafFall 5s linear infinite}
@keyframes spotLeafFall{0%{transform:translate(0,0) rotate(0)}25%{transform:translate(14px,80px) rotate(90deg)}
  50%{transform:translate(-10px,160px) rotate(200deg)}75%{transform:translate(12px,240px) rotate(290deg)}100%{transform:translate(0,340px) rotate(380deg)}}
.spot-snow{position:absolute;top:-12px;border-radius:50%;background:#fff;pointer-events:none;z-index:2;
  box-shadow:0 0 6px 1px rgba(255,255,255,.75);animation:spotSnowFall 7s linear infinite}
@keyframes spotSnowFall{0%{transform:translate(0,0)}25%{transform:translate(8px,88px)}50%{transform:translate(-6px,176px)}75%{transform:translate(7px,264px)}100%{transform:translate(0,352px)}}
.spot-fw{position:absolute;width:6px;height:6px;border-radius:50%;pointer-events:none;z-index:2;opacity:0;--fw:#FFD76A;background:var(--fw);
  box-shadow:0 -34px 0 var(--fw),24px -24px 0 var(--fw),34px 0 0 var(--fw),24px 24px 0 var(--fw),0 34px 0 var(--fw),-24px 24px 0 var(--fw),-34px 0 0 var(--fw),-24px -24px 0 var(--fw),
    0 -18px 0 -1px #fff,13px -13px 0 -1px #fff,18px 0 0 -1px #fff,13px 13px 0 -1px #fff,0 18px 0 -1px #fff,-13px 13px 0 -1px #fff,-18px 0 0 -1px #fff,-13px -13px 0 -1px #fff;
  filter:drop-shadow(0 0 4px var(--fw));animation:spotFwBurst 2.6s ease-out infinite}
@keyframes spotFwBurst{0%{transform:scale(.05);opacity:0}8%{opacity:1}55%{transform:scale(1);opacity:1}100%{transform:scale(1.25) translateY(10px);opacity:0}}
.spot-cal{transform:rotate(-6deg)}
.spot-cal-m{background:var(--f-b,var(--clay))}
@media (prefers-reduced-motion:reduce){.spot-flame{animation:none;opacity:.6}.spot-leaf,.spot-snow,.spot-fw{display:none}}
.spot-code[hidden]{display:none}   /* the code chip only shows on event days; without this the empty dashed box showed on season fill-ins */


/* Keep the artwork in its overlay stacking layer during scrolling. */
.spot-overlay img{position:relative}
