@import url("https://fonts.googleapis.com/css2?family=Creepster&display=swap");

/* IFL seasonal extras — loaded after the compiled Angular stylesheet. */
body.theme-halloween {
  --md-sys-color-background:#09070d;
  --md-sys-color-on-background:#f7efe8;
  --md-sys-color-surface:#120d18;
  --md-sys-color-on-surface:#f7efe8;
  --md-sys-color-surface-variant:#1d1327;
  --md-sys-color-on-surface-variant:#cbb8d8;
  --md-sys-color-outline:rgba(255,122,0,.24);
  --md-sys-color-primary:#ff7a00;
  --md-sys-color-on-primary:#160b00;
  --md-sys-color-primary-container:rgba(255,122,0,.17);
  --md-sys-color-on-primary-container:#ffe6ca;
  --md-sys-color-primary-rgb:255,122,0;
  --md-sys-color-secondary:#a855f7;
  --md-sys-color-on-secondary:#fff;
  --md-sys-color-secondary-container:rgba(168,85,247,.18);
  --md-sys-color-on-secondary-container:#f2e5ff;
  --md-sys-color-tertiary:#84cc16;
  --md-sys-color-on-tertiary:#101800;
  --md-sys-color-tertiary-container:rgba(132,204,22,.16);
  --md-sys-color-on-tertiary-container:#e8ffc2;
  --md-sys-color-on-surface-rgb:247,239,232;
  --md-sys-color-yellow:#facc15;
  --md-sys-color-orange:#ff7a00;
  --md-sys-color-blue:#a855f7;
  --md-sys-color-violet:#c084fc;
  --md-sys-color-bordeaux:#7e22ce;
  --md-sys-color-red:#ef4444;
  --md-sys-color-green:rgba(132,204,22,.18);
  --ifl-bg:#09070d;
  --ifl-bg-card:#120d18;
  --ifl-bg-elevated:#1d1327;
  --ifl-accent:#ff7a00;
  --ifl-accent-hover:#ff9a3c;
  --ifl-accent-glow:rgba(255,122,0,.18);
  --ifl-text-primary:#f7efe8;
  --ifl-text-secondary:#cbb8d8;
  --ifl-text-muted:#816f8f;
  --ifl-border:rgba(255,122,0,.14);
  --ifl-border-hover:rgba(168,85,247,.55);
  background-color:#09070d;
  background-image:
    radial-gradient(circle at 12% 18%,rgba(168,85,247,.14),transparent 28%),
    radial-gradient(circle at 88% 12%,rgba(255,122,0,.13),transparent 30%),
    linear-gradient(180deg,#09070d 0%,#100914 48%,#070509 100%);
}
body.theme-halloween h1,
body.theme-halloween h2,
body.theme-halloween .page-title,
body.theme-halloween .section-title,
body.theme-halloween .nb-theme-label {
  font-family:"Creepster","Impact","Arial Black",sans-serif!important;
  letter-spacing:.045em;
  text-shadow:0 0 12px rgba(255,122,0,.28),0 0 24px rgba(168,85,247,.16);
}
body.theme-halloween .navbar-container {
  background:linear-gradient(180deg,rgba(18,13,24,.98),rgba(9,7,13,.96))!important;
  border-bottom:1px solid rgba(255,122,0,.34)!important;
  box-shadow:0 3px 22px rgba(168,85,247,.14),0 2px 14px rgba(255,122,0,.10)!important;
}
body.theme-halloween .card,
body.theme-halloween .dropdown-menu,
body.theme-halloween .profile-dropdown {
  border-color:rgba(255,122,0,.18)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.34),0 0 22px rgba(168,85,247,.06)!important;
}
body.theme-halloween .card:hover {
  border-color:rgba(255,122,0,.52)!important;
  box-shadow:0 14px 38px rgba(0,0,0,.42),0 0 26px rgba(255,122,0,.12)!important;
}
body.theme-halloween .btn.btn-filled,
body.theme-halloween button.primary {
  background:linear-gradient(135deg,#ff7a00,#a855f7)!important;
  color:#fff!important;
  box-shadow:0 5px 20px rgba(255,122,0,.24),0 0 16px rgba(168,85,247,.14)!important;
}
body.theme-halloween input:focus,
body.theme-halloween select:focus,
body.theme-halloween textarea:focus {
  border-color:#ff7a00!important;
  box-shadow:0 0 0 3px rgba(168,85,247,.18)!important;
}
body.theme-halloween .xp-progress-fill,
body.theme-halloween .bp-progress-fill,
body.theme-halloween [class*=progress-fill] {
  background:linear-gradient(90deg,#ff7a00,#a855f7,#84cc16)!important;
  box-shadow:0 0 10px rgba(255,122,0,.35)!important;
}

/* Native-looking injected theme swatches. */
.ifl-extra-theme-swatch {
  position:relative;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
}
.ifl-extra-theme-swatch .swatch-name { white-space:nowrap; }
.ifl-extra-theme-swatch[data-ifl-extra-theme="theme-halloween"] .swatch-name {
  font-family:"Creepster","Impact","Arial Black",sans-serif!important;
  letter-spacing:.04em;
}

/* Halloween overlay: webs, hanging spiders, pumpkins, fog. */
.ifl-halloween-decor,
.ifl-anniversary-decor {
  position:fixed;
  inset:0;
  z-index:60;
  pointer-events:none;
  overflow:hidden;
}
.ifl-halloween-decor .ifl-web {
  position:absolute;
  width:min(260px,30vw);
  aspect-ratio:1;
  opacity:.20;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23d9c6e5' stroke-width='2'%3E%3Cpath d='M0 0h240M0 0v240M0 0l240 240M0 0l240 120M0 0l120 240'/%3E%3Cpath d='M22 0c0 22 0 22 0 22s22 0 22 0M48 0c0 48 0 48 0 48s48 0 48 0M78 0c0 78 0 78 0 78s78 0 78 0M112 0c0 112 0 112 0 112s112 0 112 0'/%3E%3C/g%3E%3C/svg%3E");
  filter:drop-shadow(0 0 7px rgba(168,85,247,.35));
}
.ifl-halloween-decor .web-tl{left:-12px;top:64px}
.ifl-halloween-decor .web-tr{right:-12px;top:64px;transform:scaleX(-1)}
.ifl-halloween-decor .ifl-spider {
  position:absolute;
  top:48px;
  transform-origin:50% -130px;
  font-size:clamp(24px,3vw,42px);
  filter:drop-shadow(0 0 8px rgba(255,122,0,.45));
  animation:iflSpiderSwing 3.8s ease-in-out infinite;
}
.ifl-halloween-decor .ifl-spider:before {
  content:"";
  position:absolute;
  left:50%;
  bottom:75%;
  width:1px;
  height:145px;
  background:linear-gradient(#bba9c7,rgba(187,169,199,.2));
}
.ifl-halloween-decor .spider-a{left:17%;animation-delay:-.7s}
.ifl-halloween-decor .spider-b{right:21%;top:92px;animation-delay:-2.1s;animation-duration:4.6s}
.ifl-halloween-decor .spider-c{left:72%;top:170px;font-size:28px;animation-delay:-1.2s;animation-duration:5.1s}
.ifl-halloween-decor .ifl-pumpkin {
  position:absolute;
  bottom:-5px;
  font-size:clamp(38px,5vw,72px);
  filter:drop-shadow(0 0 12px rgba(255,122,0,.45));
  animation:iflPumpkinGlow 2.7s ease-in-out infinite;
}
.ifl-halloween-decor .pumpkin-a{left:18px}
.ifl-halloween-decor .pumpkin-b{right:24px;animation-delay:-1.1s;transform:scale(.82)}
.ifl-halloween-decor .ifl-fog {
  position:absolute;
  left:-25%;
  width:150%;
  height:170px;
  bottom:-65px;
  background:radial-gradient(ellipse at center,rgba(180,150,205,.13),rgba(100,75,125,.06) 40%,transparent 72%);
  filter:blur(12px);
  animation:iflFogDrift 13s ease-in-out infinite alternate;
}
@keyframes iflSpiderSwing {
  0%,100%{transform:rotate(-8deg) translateY(0)}
  50%{transform:rotate(8deg) translateY(10px)}
}
@keyframes iflPumpkinGlow {
  0%,100%{filter:drop-shadow(0 0 8px rgba(255,122,0,.35));transform:translateY(0)}
  50%{filter:drop-shadow(0 0 22px rgba(255,122,0,.72));transform:translateY(-4px)}
}
@keyframes iflFogDrift {
  0%{transform:translateX(-4%) scaleX(1)}
  100%{transform:translateX(4%) scaleX(1.06)}
}

/* 2nd Anniversary — premium IFL red/gold celebration. */
body.theme-2nd-anniversary {
  --md-sys-color-background:#0b0809;
  --md-sys-color-on-background:#fff8ec;
  --md-sys-color-surface:#151011;
  --md-sys-color-on-surface:#fff8ec;
  --md-sys-color-surface-variant:#211719;
  --md-sys-color-on-surface-variant:#d6c8ba;
  --md-sys-color-outline:rgba(212,175,55,.22);
  --md-sys-color-primary:#d4af37;
  --md-sys-color-on-primary:#1b1400;
  --md-sys-color-primary-container:rgba(212,175,55,.16);
  --md-sys-color-on-primary-container:#fff2b7;
  --md-sys-color-primary-rgb:212,175,55;
  --md-sys-color-secondary:#b91c1c;
  --md-sys-color-on-secondary:#fff;
  --md-sys-color-secondary-container:rgba(185,28,28,.17);
  --md-sys-color-on-secondary-container:#ffe0e0;
  --md-sys-color-tertiary:#f5e6b3;
  --md-sys-color-on-tertiary:#171003;
  --md-sys-color-tertiary-container:rgba(245,230,179,.13);
  --md-sys-color-on-tertiary-container:#fff7d8;
  --md-sys-color-on-surface-rgb:255,248,236;
  --ifl-bg:#0b0809;
  --ifl-bg-card:#151011;
  --ifl-bg-elevated:#211719;
  --ifl-accent:#d4af37;
  --ifl-accent-hover:#f0cf64;
  --ifl-accent-glow:rgba(212,175,55,.18);
  --ifl-text-primary:#fff8ec;
  --ifl-text-secondary:#d6c8ba;
  --ifl-text-muted:#8e7e72;
  --ifl-border:rgba(212,175,55,.13);
  --ifl-border-hover:rgba(212,175,55,.48);
  background-color:#0b0809;
  background-image:
    radial-gradient(circle at 20% 0,rgba(185,28,28,.16),transparent 31%),
    radial-gradient(circle at 82% 8%,rgba(212,175,55,.14),transparent 28%),
    linear-gradient(180deg,#0b0809,#130d0f 52%,#090607);
}
body.theme-2nd-anniversary h1,
body.theme-2nd-anniversary h2,
body.theme-2nd-anniversary .page-title,
body.theme-2nd-anniversary .section-title {
  letter-spacing:.02em;
  text-shadow:0 0 16px rgba(212,175,55,.18);
}
body.theme-2nd-anniversary .navbar-container {
  background:linear-gradient(180deg,rgba(21,16,17,.98),rgba(11,8,9,.96))!important;
  border-bottom:1px solid rgba(212,175,55,.31)!important;
  box-shadow:0 3px 20px rgba(185,28,28,.10),0 2px 16px rgba(212,175,55,.10)!important;
}
body.theme-2nd-anniversary .card,
body.theme-2nd-anniversary .dropdown-menu,
body.theme-2nd-anniversary .profile-dropdown {
  border-color:rgba(212,175,55,.18)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.34),0 0 24px rgba(212,175,55,.05)!important;
}
body.theme-2nd-anniversary .card:hover {
  border-color:rgba(212,175,55,.48)!important;
  box-shadow:0 14px 38px rgba(0,0,0,.42),0 0 26px rgba(212,175,55,.11)!important;
}
body.theme-2nd-anniversary .btn.btn-filled,
body.theme-2nd-anniversary button.primary {
  background:linear-gradient(135deg,#b91c1c,#d4af37)!important;
  color:#fff!important;
  box-shadow:0 5px 20px rgba(185,28,28,.18),0 0 18px rgba(212,175,55,.12)!important;
}
body.theme-2nd-anniversary .xp-progress-fill,
body.theme-2nd-anniversary .bp-progress-fill,
body.theme-2nd-anniversary [class*=progress-fill] {
  background:linear-gradient(90deg,#b91c1c,#d4af37,#f5e6b3)!important;
  box-shadow:0 0 10px rgba(212,175,55,.32)!important;
}
.ifl-anniversary-decor {
  z-index:55;
  background:
    radial-gradient(circle at 50% -10%,rgba(212,175,55,.08),transparent 37%),
    radial-gradient(circle at 8% 74%,rgba(185,28,28,.055),transparent 26%);
}
.ifl-anniversary-decor .ifl-spark {
  position:absolute;
  left:var(--x);
  top:-16px;
  width:var(--size);
  height:calc(var(--size) * .42);
  border-radius:999px;
  background:linear-gradient(90deg,#d4af37,#fff2b7);
  opacity:.65;
  transform:rotate(var(--rot));
  animation:iflAnniversaryFall var(--dur) linear infinite;
  animation-delay:var(--delay);
  box-shadow:0 0 8px rgba(212,175,55,.22);
}
@keyframes iflAnniversaryFall {
  0%{transform:translate3d(0,-6vh,0) rotate(var(--rot));opacity:0}
  10%{opacity:.7}
  100%{transform:translate3d(var(--drift),108vh,0) rotate(calc(var(--rot) + 300deg));opacity:.15}
}

@media (max-width:700px) {
  .ifl-halloween-decor .web-tr{display:none}
  .ifl-halloween-decor .spider-c{display:none}
  .ifl-halloween-decor .ifl-web{width:180px}
  .ifl-halloween-decor .ifl-pumpkin{font-size:42px;opacity:.75}
}
/* Seasonal themes are intentionally animated. Keep motion lightweight instead of disabling it. */
@media (prefers-reduced-motion: reduce) {
  .ifl-halloween-decor .ifl-spider { animation-duration:7s!important; }
  .ifl-halloween-decor .ifl-pumpkin { animation-duration:5s!important; }
  .ifl-halloween-decor .ifl-fog { animation-duration:28s!important; opacity:.18!important; }
  .ifl-anniversary-decor .ifl-spark { animation-duration:14s!important; opacity:.35!important; }
}


/* ===== PUBLIC HOMEPAGE — HALLOWEEN ===== */
body.homepage-theme-halloween {
  --ifl-bg:#08060c; --ifl-bg-card:#120d18; --ifl-bg-elevated:#1b1025;
  --ifl-accent:#ff7a00; --ifl-accent-hover:#ff9a3c; --ifl-accent-glow:rgba(255,122,0,.20);
  --ifl-text-primary:#fff4e8; --ifl-text-secondary:#cdbbdd; --ifl-border:rgba(255,122,0,.18);
  --md-sys-color-background:#08060c; --md-sys-color-surface:#120d18; --md-sys-color-primary:#ff7a00;
  background:
    radial-gradient(circle at 12% 10%,rgba(168,85,247,.12),transparent 27%),
    radial-gradient(circle at 88% 16%,rgba(255,122,0,.11),transparent 30%),#08060c!important;
}
body.homepage-theme-halloween .public-navbar,
body.homepage-theme-halloween .navbar,
body.homepage-theme-halloween .public-footer {
  background:rgba(8,6,12,.93)!important;border-color:rgba(255,122,0,.22)!important;
  box-shadow:0 0 30px rgba(168,85,247,.08)!important;
}
body.homepage-theme-halloween h1,
body.homepage-theme-halloween h2,
body.homepage-theme-halloween .section-title,
body.homepage-theme-halloween .hero-title {
  font-family:"Creepster",Impact,fantasy!important;letter-spacing:.04em;
  color:#ff9a3c!important;text-shadow:0 0 10px rgba(255,122,0,.28),0 0 24px rgba(168,85,247,.18);
}
body.homepage-theme-halloween .card,
body.homepage-theme-halloween .event-card,
body.homepage-theme-halloween .news-card,
body.homepage-theme-halloween .team-member-card,
body.homepage-theme-halloween .supporter-card {
  background:linear-gradient(145deg,rgba(18,13,24,.97),rgba(27,16,37,.95))!important;
  border-color:rgba(255,122,0,.18)!important;
  box-shadow:0 10px 30px rgba(0,0,0,.34),0 0 22px rgba(168,85,247,.06)!important;
}
body.homepage-theme-halloween .card:hover,
body.homepage-theme-halloween .event-card:hover,
body.homepage-theme-halloween .news-card:hover {
  border-color:rgba(255,122,0,.52)!important;box-shadow:0 14px 34px rgba(0,0,0,.4),0 0 26px rgba(255,122,0,.13)!important;
}
body.homepage-theme-halloween .btn-filled,
body.homepage-theme-halloween .btn.btn-filled {
  background:linear-gradient(135deg,#ff7a00,#a855f7)!important;color:#fff!important;
  box-shadow:0 5px 22px rgba(255,122,0,.22)!important;
}
body.homepage-theme-halloween:before,
body.homepage-theme-halloween:after {
  content:"";position:fixed;z-index:9997;pointer-events:none;width:260px;height:260px;top:62px;opacity:.43;
  background:repeating-conic-gradient(from 0deg at 100% 0%,transparent 0 9deg,rgba(231,210,247,.35) 10deg 11deg,transparent 12deg 24deg);
  mask-image:radial-gradient(circle at 100% 0%,#000 0 61%,transparent 63%);
}
body.homepage-theme-halloween:before{left:-60px;transform:scaleX(-1)}
body.homepage-theme-halloween:after{right:-60px}

/* ===== PUBLIC HOMEPAGE — 2ND ANNIVERSARY ===== */
body.homepage-theme-anniversary {
  --ifl-bg:#0c0708; --ifl-bg-card:#171012; --ifl-bg-elevated:#211518;
  --ifl-accent:#d4af37; --ifl-accent-hover:#f2cf5b; --ifl-accent-glow:rgba(212,175,55,.18);
  --ifl-text-primary:#fff8e7; --ifl-text-secondary:#d8cdb8; --ifl-border:rgba(212,175,55,.20);
}
body.homepage-theme-anniversary .public-navbar,
body.homepage-theme-anniversary .navbar,
body.homepage-theme-anniversary .public-footer {background:rgba(12,7,8,.94)!important;border-color:rgba(212,175,55,.24)!important}
body.homepage-theme-anniversary h1,
body.homepage-theme-anniversary h2,
body.homepage-theme-anniversary .section-title {color:#f1d16b!important;text-shadow:0 0 18px rgba(212,175,55,.18)}
body.homepage-theme-anniversary .card,
body.homepage-theme-anniversary .event-card,
body.homepage-theme-anniversary .news-card,
body.homepage-theme-anniversary .team-member-card,
body.homepage-theme-anniversary .supporter-card {
  background:linear-gradient(145deg,#171012,#211518)!important;border-color:rgba(212,175,55,.18)!important;
  box-shadow:0 10px 30px rgba(0,0,0,.34),0 0 22px rgba(212,175,55,.05)!important;
}
body.homepage-theme-anniversary .btn-filled,
body.homepage-theme-anniversary .btn.btn-filled {background:linear-gradient(135deg,#a81818,#d4af37)!important;color:#fff!important}

/* ===== 2ND ANNIVERSARY REWORK — unmistakably celebratory ===== */
.ifl-anniversary-signature {
  position:fixed;
  top:86px;
  right:26px;
  width:min(390px,calc(100vw - 52px));
  padding:15px 18px 14px;
  border:1px solid rgba(244,201,72,.42);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(18,8,10,.92),rgba(52,14,17,.88));
  box-shadow:0 15px 42px rgba(0,0,0,.42),0 0 32px rgba(212,175,55,.16),inset 0 0 20px rgba(255,255,255,.02);
  backdrop-filter:blur(9px);
  overflow:hidden;
  animation:iflAnniversaryBadgePulse 3.4s ease-in-out infinite;
}
.ifl-anniversary-signature:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(115deg,transparent 0 36%,rgba(255,244,190,.14) 46%,transparent 56% 100%);
  transform:translateX(-130%);
  animation:iflAnniversaryShine 5.6s ease-in-out infinite;
}
.ifl-anniversary-signature:after {
  content:"2";
  position:absolute;
  right:-9px;
  bottom:-32px;
  font:900 112px/1 Arial Black,Impact,sans-serif;
  color:rgba(244,201,72,.075);
  text-shadow:0 0 22px rgba(212,175,55,.12);
}
.ifl-anniversary-kicker,
.ifl-anniversary-years,
.ifl-anniversary-signature strong {position:relative;z-index:1;display:block}
.ifl-anniversary-kicker {
  margin-bottom:3px;
  color:#d9bd62;
  font:700 10px/1.2 Arial,sans-serif;
  letter-spacing:.22em;
}
.ifl-anniversary-signature strong {
  color:#fff6cf;
  font:900 clamp(20px,2.2vw,30px)/1.05 Arial Black,Impact,sans-serif;
  letter-spacing:.035em;
  text-shadow:0 0 15px rgba(212,175,55,.25),0 2px 0 rgba(87,8,13,.45);
}
.ifl-anniversary-signature-number {
  display:inline-block;
  margin-right:2px;
  color:#f2c94c;
  font-size:1.35em;
  transform:translateY(2px);
  text-shadow:0 0 18px rgba(242,201,76,.32);
}
.ifl-anniversary-signature sup {font-size:.43em;color:#f2c94c;vertical-align:top;margin-right:7px;letter-spacing:0}
.ifl-anniversary-years {
  margin-top:6px;
  color:#d7cbbd;
  font:700 10px/1.3 Arial,sans-serif;
  letter-spacing:.085em;
}
.ifl-anniversary-years b {color:#f2c94c;margin:0 4px}

.ifl-anniversary-watermark {
  position:fixed;
  right:5vw;
  bottom:3vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:190px;
  color:rgba(242,201,76,.075);
  text-align:center;
  filter:drop-shadow(0 0 24px rgba(212,175,55,.10));
  animation:iflAnniversaryWatermarkFloat 5s ease-in-out infinite;
}
.ifl-anniversary-watermark span {font:900 clamp(150px,22vw,310px)/.72 Arial Black,Impact,sans-serif;letter-spacing:-.08em}
.ifl-anniversary-watermark small {font:900 clamp(21px,3.4vw,46px)/1 Arial Black,Impact,sans-serif;letter-spacing:.28em;margin-left:.28em}

.ifl-anniversary-ribbon {
  position:fixed;
  left:-46px;
  bottom:82px;
  padding:8px 52px;
  transform:rotate(45deg);
  color:#fff3c2;
  background:linear-gradient(90deg,#7f1016,#b91c1c 45%,#9a731a);
  border:1px solid rgba(242,201,76,.43);
  box-shadow:0 0 25px rgba(185,28,28,.22);
  font:800 10px/1 Arial,sans-serif;
  letter-spacing:.14em;
}

.ifl-anniversary-decor .ifl-spark-two {
  width:auto!important;
  height:auto!important;
  background:none!important;
  border-radius:0!important;
  color:#f2c94c;
  font:900 13px/1 Arial Black,Impact,sans-serif;
  text-shadow:0 0 8px rgba(242,201,76,.45);
  box-shadow:none!important;
}

body.theme-2nd-anniversary .navbar-container:after,
body.homepage-theme-anniversary .public-navbar:after,
body.homepage-theme-anniversary .navbar:after {
  content:"2ND ANNIVERSARY · 2024–2026";
  display:block;
  position:absolute;
  left:50%;
  bottom:-1px;
  transform:translate(-50%,100%);
  padding:4px 12px 5px;
  border-radius:0 0 10px 10px;
  background:linear-gradient(90deg,#7d0f14,#b91c1c 48%,#b18922);
  border:1px solid rgba(242,201,76,.28);
  border-top:0;
  color:#fff5cf;
  font:800 9px/1 Arial,sans-serif;
  letter-spacing:.12em;
  box-shadow:0 7px 18px rgba(0,0,0,.22);
  pointer-events:none;
}

body.theme-2nd-anniversary h1:after,
body.theme-2nd-anniversary .page-title:after,
body.homepage-theme-anniversary .hero-title:after {
  content:" · 2 YEARS";
  color:#d4af37;
  font-size:.42em;
  font-weight:800;
  letter-spacing:.12em;
  vertical-align:middle;
  white-space:nowrap;
}


/* ===== 2ND ANNIVERSARY READABILITY — ghost decorations on pointer hover ===== */
.ifl-anniversary-signature,
.ifl-anniversary-ribbon,
.ifl-anniversary-watermark {
  pointer-events:auto;
  transition:opacity .22s ease, background .22s ease, border-color .22s ease, box-shadow .22s ease, filter .22s ease;
}

@media (hover:hover) and (pointer:fine) {
  .ifl-anniversary-signature:hover {
    opacity:.38;
    background:linear-gradient(135deg,rgba(18,8,10,.28),rgba(52,14,17,.24));
    border-color:rgba(244,201,72,.14);
    box-shadow:0 6px 16px rgba(0,0,0,.12),0 0 8px rgba(212,175,55,.05)!important;
    filter:saturate(.72);
    animation-play-state:paused;
  }
  .ifl-anniversary-signature:hover:before { opacity:.18; }
  .ifl-anniversary-signature:hover:after { opacity:.34; }

  .ifl-anniversary-ribbon:hover {
    opacity:.28;
    border-color:rgba(242,201,76,.12);
    box-shadow:0 0 8px rgba(185,28,28,.06);
    filter:saturate(.65);
  }
  .ifl-anniversary-watermark:hover {
    opacity:.24;
    filter:drop-shadow(0 0 6px rgba(212,175,55,.04));
    animation-play-state:paused;
  }

  body.theme-2nd-anniversary .navbar-container:hover:after,
  body.homepage-theme-anniversary .public-navbar:hover:after,
  body.homepage-theme-anniversary .navbar:hover:after {
    opacity:.24;
    background:linear-gradient(90deg,rgba(125,15,20,.28),rgba(185,28,28,.24) 48%,rgba(177,137,34,.26));
    border-color:rgba(242,201,76,.10);
    box-shadow:0 3px 8px rgba(0,0,0,.08);
    transition:opacity .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
  }

  body.theme-2nd-anniversary h1:hover:after,
  body.theme-2nd-anniversary .page-title:hover:after,
  body.homepage-theme-anniversary .hero-title:hover:after {
    opacity:.28;
    transition:opacity .2s ease;
  }
}

@keyframes iflAnniversaryBadgePulse {
  0%,100%{box-shadow:0 15px 42px rgba(0,0,0,.42),0 0 25px rgba(212,175,55,.10)}
  50%{box-shadow:0 15px 42px rgba(0,0,0,.42),0 0 42px rgba(212,175,55,.25)}
}
@keyframes iflAnniversaryShine {
  0%,62%{transform:translateX(-130%)}
  82%,100%{transform:translateX(140%)}
}
@keyframes iflAnniversaryWatermarkFloat {
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-7px) scale(1.015)}
}

@media (max-width:800px) {
  .ifl-anniversary-signature {top:auto;right:12px;bottom:14px;width:min(330px,calc(100vw - 24px));padding:10px 13px;opacity:.94}
  .ifl-anniversary-signature strong{font-size:19px}
  .ifl-anniversary-years{font-size:9px}
  .ifl-anniversary-watermark{right:-8px;bottom:112px;opacity:.62}
  .ifl-anniversary-watermark span{font-size:150px}
  .ifl-anniversary-watermark small{font-size:21px}
  .ifl-anniversary-ribbon{display:none}
  body.theme-2nd-anniversary .navbar-container:after,
  body.homepage-theme-anniversary .public-navbar:after,
  body.homepage-theme-anniversary .navbar:after{font-size:8px;letter-spacing:.08em;max-width:85vw;white-space:nowrap}
}

/* Halloween 2026 — spectral cards, drawn cobwebs and drifting apparitions. */
body:is(.theme-halloween,.homepage-theme-halloween) {
  --ifl-bg:#08060d; --ifl-bg-card:#140e1d; --ifl-bg-elevated:#21152d;
  --ifl-accent:#ff8a32; --ifl-accent-hover:#ffac6a; --ifl-accent-glow:rgba(255,126,35,.18);
  --ifl-text-primary:#fff2e6; --ifl-text-secondary:#cfbbdf; --ifl-text-muted:#a38ab5;
  --ifl-border:rgba(200,127,255,.23); --ifl-border-hover:rgba(255,145,69,.68);
  --md-sys-color-background:#08060d; --md-sys-color-surface:#140e1d;
  --md-sys-color-surface-variant:#21152d; --md-sys-color-on-surface-variant:#cfbbdf;
  --md-sys-color-primary:#ff8a32; --md-sys-color-primary-rgb:255,138,50;
  --hw-card-web:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23d4b6e8' stroke-opacity='.22' stroke-width='.9'%3E%3Cpath d='M120 0H0M120 0V120M120 0L6 37M120 0L23 71M120 0L49 97M120 0L83 114M96 0A24 24 0 0 0 120 24M73 0A47 47 0 0 0 120 47M47 0A73 73 0 0 0 120 73M13 0A107 107 0 0 0 120 107'/%3E%3C/g%3E%3C/svg%3E");
  background-color:#08060d!important;
  background-image:radial-gradient(ellipse at 8% 4%,rgba(101,42,150,.21),transparent 38%),radial-gradient(ellipse at 94% 34%,rgba(188,65,19,.10),transparent 38%),linear-gradient(155deg,#08060d,#100914 65%,#08060d)!important;
  background-attachment:fixed;
}
/* Corner art is a background, so card controls keep their original anchors. */
body:is(.theme-halloween,.homepage-theme-halloween) :is(.card,.feature-card,.event-showcase-card,.event-card,.news-card,.team-member-card,.supporter-card,.stat-item,.ifl-bus-grid>section,.ifl-bus-hero>aside,.ifl-stage-row,.ifl-release,.ifl-bus-teaser) {
  background-color:#140e1d!important;
  background-image:var(--hw-card-web),radial-gradient(ellipse at 0 0,rgba(255,130,44,.085),transparent 58%),radial-gradient(ellipse at 100% 100%,rgba(155,73,219,.12),transparent 62%),linear-gradient(150deg,#181020,#100c17)!important;
  background-size:116px 116px,auto,auto,auto!important;
  background-position:top right,center,center,center!important;
  background-repeat:no-repeat!important;
  border:1px solid rgba(194,120,239,.27)!important;
  border-radius:18px;
  box-shadow:inset 0 1px 0 rgba(250,212,180,.065),inset 0 -1px 0 rgba(150,86,183,.06),0 16px 36px rgba(0,0,0,.32),0 0 18px rgba(121,44,170,.05)!important;
  transition:border-color .22s ease,box-shadow .22s ease!important;
}
body:is(.theme-halloween,.homepage-theme-halloween) :is(.card,.feature-card,.event-showcase-card,.news-card,.supporter-card):hover {
  border-color:rgba(255,146,64,.63)!important;
  box-shadow:inset 0 1px 0 rgba(255,196,143,.09),0 16px 38px rgba(0,0,0,.38),0 0 22px rgba(255,118,35,.10),0 0 35px rgba(137,58,207,.09)!important;
}
body:is(.theme-halloween,.homepage-theme-halloween) :is(.card-header,.card-metric) { border-color:rgba(193,121,232,.16)!important; }
body:is(.theme-halloween,.homepage-theme-halloween) :is(.card-title,.card-header h3,.card-metric-value,.stat-value,.stat-number) { color:#ffb075; }
body:is(.theme-halloween,.homepage-theme-halloween) :is(.feature-icon,.card-icon,.stat-icon) {
  color:#ffa66a!important;background:linear-gradient(135deg,rgba(255,134,39,.16),rgba(166,80,235,.14))!important;
  border:1px solid rgba(255,149,67,.20);box-shadow:0 0 20px rgba(185,80,230,.09);border-radius:12px;
}
body:is(.theme-halloween,.homepage-theme-halloween) :is(.navbar-container,.public-navbar,.navbar) {
  background:linear-gradient(100deg,rgba(15,9,22,.97),rgba(28,14,30,.97),rgba(15,9,22,.97))!important;
  border-bottom:1px solid rgba(255,132,57,.25)!important;
  box-shadow:0 6px 30px rgba(0,0,0,.32),0 1px 16px rgba(132,48,181,.12)!important;
}
body:is(.theme-halloween,.homepage-theme-halloween) :is(h1,.hero-title,.page-title,.section-title) {
  color:#ffab64!important;letter-spacing:.055em;
  text-shadow:0 2px 0 #3b1720,0 0 24px rgba(255,115,33,.20),0 0 44px rgba(148,54,223,.16);
}
body:is(.theme-halloween,.homepage-theme-halloween) :is(.btn-filled,.btn.btn-filled,button.primary) {
  background:linear-gradient(120deg,#e36d23,#9b43c5)!important;color:#fff6ef!important;
  border:1px solid rgba(255,178,100,.25)!important;box-shadow:0 6px 23px rgba(211,79,34,.20),inset 0 1px 0 rgba(255,255,255,.12)!important;
}
body:is(.theme-halloween,.homepage-theme-halloween) .ifl-mat {
  background:linear-gradient(135deg,rgba(255,140,63,.035),rgba(141,64,191,.08))!important;
  border-color:rgba(184,116,223,.20);border-radius:12px;
}
body:is(.theme-halloween,.homepage-theme-halloween) .ifl-mat:is(:hover,.inspected,:focus-visible) {
  border-color:rgba(255,150,75,.65)!important;
  background:linear-gradient(135deg,rgba(255,140,63,.10),rgba(141,64,191,.13))!important;
}
body:is(.theme-halloween,.homepage-theme-halloween) .ifl-bus-page { --bp:#ff9b50;--surf:#140e1d;--txt:#fff2e6;--mut:#cfbbdf; }
body:is(.theme-halloween,.homepage-theme-halloween) .ifl-bus-visual { border-color:rgba(193,121,232,.28);box-shadow:0 15px 40px rgba(0,0,0,.35),0 0 22px rgba(150,56,204,.08); }
/* One decoration layer; public pages previously drew a second set of webs. */
body.homepage-theme-halloween::before,body.homepage-theme-halloween::after { content:none!important;display:none!important; }
.ifl-halloween-decor,.ifl-halloween-decor * { pointer-events:none!important;user-select:none; }
.ifl-halloween-decor .ifl-web { width:clamp(150px,17vw,250px);background:none;opacity:.38;color:#dac1eb;filter:drop-shadow(0 0 4px rgba(166,104,215,.26)); }
.ifl-halloween-decor .web-tl { left:0;top:64px; }
.ifl-halloween-decor .web-tr { right:0;top:64px; }
.ifl-halloween-decor svg { display:block;width:100%;height:100%;overflow:visible; }
.ifl-halloween-decor .ifl-spider { width:42px;height:38px;color:#493353;opacity:.85;filter:drop-shadow(0 0 3px rgba(232,183,255,.40));animation:iflSpiderSwing 9s ease-in-out infinite; }
.ifl-halloween-decor .spider-a { left:7%;top:126px; }
.ifl-halloween-decor .spider-b { right:11%;top:156px;animation-delay:-3s;animation-duration:11s; }
.ifl-halloween-decor .spider-c { left:73%;top:83px;width:27px;height:25px;opacity:.55;animation-delay:-6s; }
.ifl-halloween-decor .ifl-spider::before { height:110px;bottom:84%;background:linear-gradient(transparent,rgba(217,190,231,.36)); }
.ifl-halloween-decor .ifl-pumpkin { width:clamp(48px,6vw,80px);height:72px;bottom:10px;opacity:.75;animation:none;filter:drop-shadow(0 0 13px rgba(230,104,30,.30)); }
.ifl-halloween-decor .pumpkin-a { left:15px; }
.ifl-halloween-decor .pumpkin-b { right:19px;transform:scale(.8);opacity:.6; }
.ifl-halloween-decor__moon {
  position:absolute;right:6%;top:12%;width:120px;height:120px;border-radius:50%;opacity:.15;
  background:radial-gradient(circle at 38% 32%,rgba(39,16,55,.35) 0 8%,transparent 9%),radial-gradient(circle at 68% 54%,rgba(39,16,55,.28) 0 14%,transparent 15%),radial-gradient(circle at 34% 74%,rgba(39,16,55,.30) 0 10%,transparent 11%),radial-gradient(circle at 30% 25%,#ecd6ef,#ae85bc 57%,#684275);
  box-shadow:0 0 45px rgba(177,101,207,.3),0 0 95px rgba(141,57,180,.2);
}
.ifl-halloween-decor__haze { position:absolute;inset:0;background:radial-gradient(ellipse at 4% 70%,rgba(119,62,145,.07),transparent 42%),radial-gradient(ellipse at 96% 20%,rgba(142,74,169,.06),transparent 36%); }
.ifl-halloween-decor .ifl-ghost {
  --ghost-scale:1;position:absolute;left:-180px;top:28%;width:110px;height:145px;
  color:#eadff5;opacity:0;will-change:transform,opacity;
  animation:iflGhostCross 34s linear infinite;animation-delay:-8s;
}
.ifl-ghost__shape { position:relative;z-index:1;filter:drop-shadow(0 0 10px rgba(194,151,235,.28)); }
.ifl-ghost__trail {
  position:absolute;right:65%;top:35%;width:185px;height:72px;opacity:.55;
  background:radial-gradient(ellipse at right,rgba(221,195,240,.28),transparent 68%);
  transform:rotate(-8deg);border-radius:50%;filter:blur(4px);
}
.ifl-halloween-decor .ghost-b { --ghost-scale:.73;top:69%;animation-duration:42s;animation-delay:-25s;animation-direction:reverse;color:#d9c8ec; }
.ifl-halloween-decor .ghost-c { --ghost-scale:.58;top:47%;animation-duration:49s;animation-delay:-38s;color:#f4e6dc; }
@keyframes iflGhostCross {
  0%{opacity:0;transform:translate3d(0,12px,0) rotate(-8deg) scale(var(--ghost-scale))}
  12%{opacity:.12}
  30%{opacity:.24;transform:translate3d(calc(30vw + 110px),-30px,0) rotate(7deg) scale(var(--ghost-scale))}
  58%{opacity:.18;transform:translate3d(calc(58vw + 185px),20px,0) rotate(-6deg) scale(var(--ghost-scale))}
  80%{opacity:.22}
  94%,100%{opacity:0;transform:translate3d(calc(100vw + 360px),-20px,0) rotate(8deg) scale(var(--ghost-scale))}
}
.ifl-halloween-decor .ifl-fog { bottom:-75px;height:210px;filter:none;opacity:.85;background:radial-gradient(ellipse at 36% 80%,rgba(132,86,158,.16),transparent 55%),radial-gradient(ellipse at 78% 84%,rgba(208,146,104,.07),transparent 48%);animation:iflFogDrift 30s ease-in-out infinite alternate; }
/* CSS motion changes do not mutate the page or trigger data reloads. */
@media(max-width:700px) {
  body:is(.theme-halloween,.homepage-theme-halloween) { background-attachment:scroll; }
  body:is(.theme-halloween,.homepage-theme-halloween) :is(.card,.feature-card,.news-card,.ifl-bus-grid>section,.ifl-stage-row,.ifl-release,.ifl-bus-hero>aside) { background-size:82px 82px,auto,auto,auto!important;border-radius:14px; }
  .ifl-halloween-decor .ifl-web { width:125px;opacity:.22; }
  .ifl-halloween-decor .web-tr { display:block; }
  .ifl-halloween-decor .spider-b,.ifl-halloween-decor .spider-c,.ifl-halloween-decor .ghost-c { display:none; }
  .ifl-halloween-decor .spider-a { left:8%;top:104px;width:29px;height:26px;opacity:.5; }
  .ifl-halloween-decor .ifl-ghost { width:78px;height:100px; }
  .ifl-halloween-decor__moon { width:82px;height:82px;opacity:.1; }
  .ifl-halloween-decor .ifl-pumpkin { width:48px;height:44px;opacity:.5; }
}
@media(prefers-reduced-motion:reduce) {
  .ifl-halloween-decor .ifl-ghost { animation:none!important;will-change:auto;opacity:.12; }
  .ifl-halloween-decor .ghost-a { left:auto;right:22%;top:25%;transform:rotate(8deg) scale(.8); }
  .ifl-halloween-decor .ghost-b { display:none!important; }
  .ifl-halloween-decor .ghost-c { left:18%;top:73%;transform:rotate(-8deg) scale(.58); }
  .ifl-halloween-decor .ifl-spider,.ifl-halloween-decor .ifl-pumpkin,.ifl-halloween-decor .ifl-fog { animation:none!important; }
  body:is(.theme-halloween,.homepage-theme-halloween) * { scroll-behavior:auto!important; }
}

/* Natale IFL. Reuse the native overlay when the Angular template has one. */
body:is(.theme-christmas, .homepage-theme-christmas) {
  --ifl-bg: #091820;
  --ifl-bg-card: #122833;
  --ifl-bg-elevated: #193641;
  --ifl-border: #73999047;
  --ifl-border-hover: #f4cb8075;
  --ifl-accent-glow: #eebc7130;
  --ifl-text-muted: #9ab3bd;
  --ifl-winter-gold: #f4cd8a;
  --ifl-winter-frost: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 16' preserveAspectRatio='none'%3E%3Cpath fill='%23b8d7df' fill-opacity='.52' d='M0 0h180v5c-15 0-19 5-33 5s-22-4-41-4-28 5-43 5S28 8 20 8 9 11 0 11z'/%3E%3Cpath fill='%23f4fdff' fill-opacity='.92' d='M0 0h180v4c-12 0-22 4-32 4s-22-4-42-4-28 5-43 5S28 6 20 6 8 9 0 9z'/%3E%3C/svg%3E");
}

body:is(.theme-christmas, .homepage-theme-christmas) .page-host {
  background:
    radial-gradient(ellipse at 12% 5%, #22574770, transparent 45%),
    radial-gradient(ellipse at 92% 7%, #c17c382b, transparent 33%),
    linear-gradient(155deg, #0e252c, #081820 65%, #102832);
}

body:is(.theme-christmas, .homepage-theme-christmas) :is(.navbar-container, .navbar, .navbar.scrolled) {
  background-color: #0d242c;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 16'%3E%3Cpath d='M0 3Q45 16 90 4t90 0' stroke='%23486c57' fill='none'/%3E%3Cg fill='%23ffcc7a'%3E%3Cellipse cx='18' cy='8' rx='2' ry='3'/%3E%3Cellipse cx='71' cy='9' rx='2' ry='3'/%3E%3Cellipse cx='137' cy='1.5' rx='2' ry='3'/%3E%3C/g%3E%3Cg fill='%23ed676e'%3E%3Cellipse cx='44' cy='11' rx='2' ry='3'/%3E%3Cellipse cx='106' cy='3' rx='2' ry='3'/%3E%3Cellipse cx='165' cy='4' rx='2' ry='3'/%3E%3C/g%3E%3C/svg%3E");
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 180px 15px;
  box-shadow: 0 4px 24px #080f1559, 0 1px #f4cd8a59;
}

body:is(.theme-christmas, .homepage-theme-christmas)
  :is(.card, .feature-card, .event-card, .ifl-rule-card, .ifl-rule-sections) {
  background-image: var(--ifl-winter-frost), linear-gradient(140deg, #2b534b30, transparent 64%);
  background-position: left top, center;
  background-repeat: repeat-x, no-repeat;
  background-size: 180px 12px, 100% 100%;
  border-color: #abc4af50;
  box-shadow: 0 16px 35px #06172059;
}

body:is(.theme-christmas, .homepage-theme-christmas)
  :is(.rp-page .rp-header h1, .ifl-rule-card > :first-child, .ifl-rule-index-title, .section-title) {
  color: var(--ifl-winter-gold);
}

body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay > .snow {
  display: none;
}

body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay {
  pointer-events: none;
  overflow: hidden;
}

:is(
  body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay,
  body:is(.theme-christmas, .homepage-theme-christmas):not(:has(.christmas-overlay))
)::before,
:is(
  body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay,
  body:is(.theme-christmas, .homepage-theme-christmas):not(:has(.christmas-overlay))
)::after {
  content: "";
  position: fixed;
  inset: calc(-1 * var(--ifl-snow-tile)) 0 0;
  background-size: var(--ifl-snow-tile) var(--ifl-snow-tile);
  pointer-events: none;
  z-index: 9999;
  animation: ifl-winter-flurries var(--ifl-snow-time) linear infinite;
}

:is(
  body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay,
  body:is(.theme-christmas, .homepage-theme-christmas):not(:has(.christmas-overlay))
)::before {
  --ifl-snow-tile: 360px;
  --ifl-snow-time: 28s;
  opacity: .44;
  background-image:
    radial-gradient(circle at 6% 19%, #e5f7ff 0 1px, transparent 1.7px),
    radial-gradient(circle at 31% 73%, #f8fcff 0 1px, transparent 1.8px),
    radial-gradient(circle at 74% 34%, #e5f7ff 0 1px, transparent 1.8px),
    radial-gradient(circle at 93% 82%, #f8fcff 0 .8px, transparent 1.6px);
}

:is(
  body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay,
  body:is(.theme-christmas, .homepage-theme-christmas):not(:has(.christmas-overlay))
)::after {
  --ifl-snow-tile: 500px;
  --ifl-snow-time: 20s;
  opacity: .58;
  background-image:
    radial-gradient(circle at 15% 48%, #fff 0 1.2px, transparent 2.2px),
    radial-gradient(circle at 48% 11%, #f9f2e9 0 1.2px, transparent 2.1px),
    radial-gradient(circle at 65% 89%, #f8fcff 0 1.5px, transparent 2.3px),
    radial-gradient(circle at 88% 31%, #fff 0 1.4px, transparent 2.2px);
}

@keyframes ifl-winter-flurries {
  to { transform: translate3d(0, var(--ifl-snow-tile), 0); }
}

@media (prefers-reduced-motion: reduce) {
  :is(
    body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay,
    body:is(.theme-christmas, .homepage-theme-christmas):not(:has(.christmas-overlay))
  )::before,
  :is(
    body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay,
    body:is(.theme-christmas, .homepage-theme-christmas):not(:has(.christmas-overlay))
  )::after {
    animation: none;
    opacity: .18;
  }
  body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay .santa-wrapper {
    animation: none;
  }
}

/* Village artwork is decorative and scoped to the two existing Christmas themes. */
.ifl-north-pole {
  position: fixed;
  inset: 0;
  z-index: 120;
  pointer-events: none;
  overflow: hidden;
}
.ifl-north-pole::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: clamp(60px, 11vh, 112px);
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20960%20124%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cg%20id%3D%22fir%22%3E%3Cpath%20d%3D%22M0%200-14%2023h7L-19%2038h10L-24%2053h48L9%2038h10L7%2023h7Z%22%20fill%3D%22%23285053%22%2F%3E%3Cpath%20d%3D%22M0%200-14%2023l14-4%2014%204Zm-8%2028-11%2010%2019-3%2019%203-10-10Zm-4%2017-12%208h48L12%2045l-12%204Z%22%20fill%3D%22%23b9d7df%22%2F%3E%3Cpath%20d%3D%22M-2%2052h4v9h-4Z%22%20fill%3D%22%23614142%22%2F%3E%3C%2Fg%3E%3Cg%20id%3D%22home%22%3E%3Cpath%20d%3D%22M-30%204h60v42h-60Z%22%20fill%3D%22%23784344%22%2F%3E%3Cpath%20d%3D%22M-36%208%200-23%2036%208Z%22%20fill%3D%22%234f2934%22%2F%3E%3Cpath%20d%3D%22M-38%205%200-25%2037%205%2031%2010%200-16-32%2011Z%22%20fill%3D%22%23e9f5f9%22%2F%3E%3Cpath%20d%3D%22M-8%2025H8v22H-8Z%22%20fill%3D%22%23331e30%22%2F%3E%3Cpath%20d%3D%22M-24%2017h12v14h-12Zm36%200h12v14H12Z%22%20fill%3D%22%23ffd37e%22%2F%3E%3Cpath%20d%3D%22M-18%2017v14m36-14v14%22%20stroke%3D%22%239f603b%22%2F%3E%3Cpath%20d%3D%22M22-25h8v16h-8Z%22%20fill%3D%22%2366404a%22%2F%3E%3Cpath%20d%3D%22M20-26h12v4H20Z%22%20fill%3D%22%23ecf7fa%22%2F%3E%3C%2Fg%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%233b626b%22%20d%3D%22M0%2080Q67%2046%20154%2074T320%2073Q379%2039%20458%2062T641%2070Q731%2038%20817%2066T960%2063v61H0Z%22%2F%3E%3Cpath%20fill%3D%22%23688f97%22%20d%3D%22M0%2093q89-24%20149-6t157-1q60-25%20135-3t144-3q70-20%20144%204t231-5v45H0Z%22%2F%3E%3Cg%20opacity%3D%22.86%22%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%2819%2048%29%20scale%28.75%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%2858%2058%29%20scale%28.65%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28188%2044%29%20scale%28.92%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28218%2062%29%20scale%28.72%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28354%2047%29%20scale%28.9%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28410%2060%29%20scale%28.64%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28566%2043%29%20scale%28.9%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28594%2054%29%20scale%28.8%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28732%2058%29%20scale%28.7%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28851%2040%29%20scale%281.02%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28912%2052%29%20scale%28.85%29%22%2F%3E%3Cuse%20href%3D%22%23fir%22%20transform%3D%22translate%28950%2059%29%20scale%28.66%29%22%2F%3E%3C%2Fg%3E%3Cuse%20href%3D%22%23home%22%20transform%3D%22translate%28125%2065%29%20scale%28.93%29%22%2F%3E%3Cuse%20href%3D%22%23home%22%20transform%3D%22translate%28284%2070%29%20scale%28.78%29%22%2F%3E%3Cuse%20href%3D%22%23home%22%20transform%3D%22translate%28484%2063%29%20scale%281.04%29%22%2F%3E%3Cuse%20href%3D%22%23home%22%20transform%3D%22translate%28655%2068%29%20scale%28.83%29%22%2F%3E%3Cuse%20href%3D%22%23home%22%20transform%3D%22translate%28790%2066%29%20scale%28.91%29%22%2F%3E%3Cpath%20d%3D%22M0%20105q66%2010%20125-3%2027-7%2088%204t151-2q63-13%20125%201t139-1q51-14%20116%201t216-5v24H0Z%22%20fill%3D%22%23dceff5%22%2F%3E%3Cpath%20d%3D%22M0%20116q82-8%20154%201t153-4q60-9%20151%204t176-4%20158%203%20168-5v13H0Z%22%20fill%3D%22%23eff9fc%22%2F%3E%3Cg%20fill%3D%22%23ffd481%22%3E%3Ccircle%20cx%3D%22467%22%20cy%3D%2290%22%20r%3D%221%22%2F%3E%3Ccircle%20cx%3D%22500%22%20cy%3D%2290%22%20r%3D%221%22%2F%3E%3Ccircle%20cx%3D%22628%22%20cy%3D%2288%22%20r%3D%221%22%2F%3E%3Ccircle%20cx%3D%22770%22%20cy%3D%2293%22%20r%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center bottom / max(640px, 100%) 100% repeat-x;
  opacity: .88;
}
.ifl-north-pole::after {
  content: "";
  position: absolute;
  width: clamp(164px, 27vw, 340px);
  aspect-ratio: 324 / 104;
  left: 0;
  top: clamp(88px, 16vh, 155px);
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20324%20104%22%3E%3Cdefs%3E%3Cg%20id%3D%22deer%22%3E%3Cpath%20d%3D%22M20%2047c6-8%2022-9%2031-2l7-17c2-5%209-7%2012-4l10%206-4%208-11-1-5%2023c-6%205-17%206-26%204l-9%2014h-6l8-19-8-8-6%206-6-3Z%22%20fill%3D%22%23a66a4c%22%20stroke%3D%22%23563345%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22m40%2061%2010%2016h7l-5-5-5-13m16-36-2-10-8-5m8%205%207-6m3%2016%203-10%207-6m-7%206-3-8%22%20fill%3D%22none%22%20stroke%3D%22%23d9bd94%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22m63%2036%201%2010-7-3%22%20fill%3D%22%23e6bf68%22%2F%3E%3Ccircle%20cx%3D%2273%22%20cy%3D%2229%22%20r%3D%221.8%22%20fill%3D%22%23191425%22%2F%3E%3C%2Fg%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M123%2062q35-4%2074-14t99-6%22%20fill%3D%22none%22%20stroke%3D%22%23f5cd82%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%2F%3E%3Cuse%20href%3D%22%23deer%22%20transform%3D%22translate%28160%204%29%20scale%28.8%29%22%2F%3E%3Cuse%20href%3D%22%23deer%22%20transform%3D%22translate%28238%201%29%20scale%28.89%29%22%2F%3E%3Ccircle%20cx%3D%22308%22%20cy%3D%2229%22%20r%3D%223%22%20fill%3D%22%23ff8272%22%2F%3E%3Cpath%20d%3D%22M44%2066q-8-18%208-26l24%205%2014%2023%22%20fill%3D%22%23a77a5f%22%20stroke%3D%22%235d3948%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22M77%2066%2083%2045q6-10%2021-6l14%2019%2011-5%203%206-15%2011-11-8-4%2014Z%22%20fill%3D%22%23b92f48%22%2F%3E%3Cpath%20d%3D%22M83%2053h17v6H81Z%22%20fill%3D%22%23452736%22%2F%3E%3Cpath%20d%3D%22M91%2054h6v5h-6Z%22%20fill%3D%22%23ffc976%22%2F%3E%3Ccircle%20cx%3D%2299%22%20cy%3D%2229%22%20r%3D%2212%22%20fill%3D%22%23efbd98%22%2F%3E%3Cpath%20d%3D%22M86%2031q9%202%2020-2l3%209q-6%2011-17%208l-6-5Z%22%20fill%3D%22%23f4f6f5%22%2F%3E%3Cpath%20d%3D%22M86%2026q-1-19%2014-17%2011%200%2012%2013l-7%202-4-9-13%2011Z%22%20fill%3D%22%23cf3850%22%2F%3E%3Cpath%20d%3D%22M85%2025q12-5%2024-4v5l-24%204Z%22%20fill%3D%22%23fff1dc%22%2F%3E%3Ccircle%20cx%3D%22111%22%20cy%3D%2220%22%20r%3D%224%22%20fill%3D%22%23fff1dc%22%2F%3E%3Ccircle%20cx%3D%22103%22%20cy%3D%2228%22%20r%3D%221.3%22%20fill%3D%22%23442335%22%2F%3E%3Cpath%20d%3D%22M34%2059q7%208%2026%209h56q12%200%2018-10-1%2025-25%2026H62Q39%2082%2034%2059Z%22%20fill%3D%22%23ad2946%22%20stroke%3D%22%23fad08b%22%20stroke-width%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M46%2081v9m62-7v7M33%2090q4%205%2012%205h74q16%200%2019-10%22%20fill%3D%22none%22%20stroke%3D%22%23edc47d%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%3Cg%20fill%3D%22%23fff1bb%22%3E%3Cpath%20d%3D%22m15%2058%202%204%205%202-5%202-2%205-2-5-5-2%205-2Z%22%2F%3E%3Cpath%20d%3D%22m8%2083%201%203%204%201-4%201-1%204-1-4-4-1%204-1Z%22%2F%3E%3Ccircle%20cx%3D%2223%22%20cy%3D%2280%22%20r%3D%221.5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / contain no-repeat;
  animation: ifl-santa-ride 27s linear -7s infinite;
}
@keyframes ifl-santa-ride {
  0% { transform: translate3d(-105%, 12px, 0); opacity: 0; }
  5%, 56% { opacity: 1; }
  28% { transform: translate3d(48vw, -28px, 0); }
  62%, 100% { transform: translate3d(104vw, -8px, 0); opacity: 0; }
}
body:is(.theme-christmas, .homepage-theme-christmas) .christmas-overlay .santa-wrapper {
  display: none;
}
body:is(.theme-christmas, .homepage-theme-christmas)
  :is(h1, .section-title, .ifl-rule-index-title, .ifl-rule-card > :first-child) {
  font-family: Georgia, "Palatino Linotype", serif;
  letter-spacing: .015em;
  text-shadow: 0 2px 12px #08172066;
}
body:is(.theme-christmas, .homepage-theme-christmas) :is(.card, .feature-card, .event-card, .ifl-rule-card) {
  border-color: #d8c58766;
}
@media (max-width: 600px) {
  .ifl-north-pole::before { height: 52px; opacity: .68; }
  .ifl-north-pole::after { top: 82px; }
}
@media (prefers-reduced-motion: reduce) {
  .ifl-north-pole::after {
    animation: none;
    left: auto;
    right: 8px;
    top: auto;
    bottom: 74px;
    width: clamp(118px, 15vw, 182px);
  }
}
