/* Seasonal versions of the site. Each season's rules are scoped to html.season-<id>
   (the class season.js sets while that season is switched on), so the main site is untouched.
   The interactive pieces near the end of the Halloween section (banner, poof, corner button,
   card, toast) are shared; other seasons restyle them in their own section.
   See SEASONS in assets/js/season.js for each season's dates, words and photos.

   ---- Halloween ---- */

html.season-halloween {
  --ink: #f6e7d2;          /* text */
  --ink-2: #d9c3a5;
  --muted: #a58c74;
  --paper: #120c0a;        /* night */
  --paper-2: #1d1310;
  --card: #1f1512;
  --line: #3e2a20;
  --brass: #ff8a1f;        /* jack-o'-lantern orange */
  --brass-2: #ffc15e;
  --sky: #21122b;          /* witching-hour purple */
  --shadow: 0 1px 1px rgba(0,0,0,.3), 0 14px 34px -12px rgba(255,110,20,.25);
  --spooky: "Creepster", "Chiller", "Papyrus", fantasy;
  color-scheme: dark;
}
html.season-halloween body {
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(120,40,140,.28), transparent 60%),
    radial-gradient(900px 500px at 0% 30%, rgba(255,110,20,.08), transparent 60%),
    var(--paper);
  background-attachment: fixed;
}
html.season-halloween ::selection { background: #ff8a1f; color: #120c0a; }

/* Type: a creepy display face for the big titles */
html.season-halloween h1, html.season-halloween h2 { font-family: var(--spooky); font-weight: 400; letter-spacing: .02em; color: #ffb054; text-shadow: 0 0 18px rgba(255,120,20,.45), 0 2px 0 #3a1406; }
html.season-halloween h1 em, html.season-halloween h2 em { font-style: normal; color: #ffe08a; text-shadow: 0 0 22px rgba(255,200,60,.7); }
html.season-halloween .eyebrow { color: #c58bff; }

/* Header */
html.season-halloween .site-header { background: rgba(14,9,8,.86); border-bottom-color: #4a2a18; box-shadow: 0 1px 0 rgba(255,120,20,.15); }
html.season-halloween .brand-logo, html.season-halloween .footer-logo, html.season-halloween .hero-logo { mix-blend-mode: normal; filter: drop-shadow(0 0 10px rgba(255,110,20,.35)); }
html.season-halloween .brand-logo { height: 70px; }
html.season-halloween .nav a { color: var(--ink-2); }
html.season-halloween .nav a:hover, html.season-halloween .nav a[aria-current="page"] { color: #ffb054; }
html.season-halloween .nav-toggle { color: var(--ink); }
html.season-halloween .season-btn { background: transparent; color: var(--muted); border-color: #4a3022; }
html.season-halloween .season-btn:hover { color: #ffd8a8; border-color: #ff8a1f; }
html.season-halloween .season-btn svg { color: #ff8a1f; }
@media (max-width: 960px) { html.season-halloween .nav { background: #140d0b; } }

.season-banner { position: relative; z-index: 4; text-align: center; padding: 10px var(--gutter); font-size: .8rem; letter-spacing: .06em; color: #1b0d05;
  background: repeating-linear-gradient(-45deg, #ff8a1f 0 18px, #ff9d3d 18px 36px); font-weight: 600; }

/* Hero: a misty, moonlit night */
html.season-halloween .hero { background: radial-gradient(70% 90% at 85% 15%, rgba(255,214,140,.16), transparent 45%), linear-gradient(180deg, #1a0f19 0%, #120c0a 100%); border-bottom-color: #3e2a20; }
html.season-halloween .hero::before { content: ""; position: absolute; top: 46px; right: 8%; width: 120px; height: 120px; border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #fff6d8, #f3d58a 60%, #d9a944); box-shadow: 0 0 60px 20px rgba(255,220,140,.25); opacity: .9; z-index: 0; }
html.season-halloween .hero::after { content: ""; position: absolute; left: -10%; right: -10%; bottom: -20px; height: 140px; pointer-events: none;
  background: radial-gradient(50% 60% at 30% 70%, rgba(220,210,230,.14), transparent 70%), radial-gradient(40% 60% at 75% 80%, rgba(220,210,230,.12), transparent 70%);
  filter: blur(6px); animation: season-fog 18s ease-in-out infinite alternate; }
html.season-halloween .hero .wrap { position: relative; z-index: 1; }
html.season-halloween .hero h1 { color: #ffb054; }
html.season-halloween .hero-logo { width: min(420px, 90%); margin-left: -14px; }
html.season-halloween .hero-photo::before { border-color: #ff8a1f; box-shadow: 0 0 24px rgba(255,120,20,.35); }
html.season-halloween .hero-photo img { box-shadow: 0 0 40px -6px rgba(255,120,20,.45); }
html.season-halloween .stat strong { color: #ffb054; font-family: var(--spooky); font-weight: 400; }
@keyframes season-fog { from { transform: translateX(-4%); } to { transform: translateX(4%); } }

/* Buttons */
html.season-halloween .btn-brass, html.season-halloween .hero .btn-brass { background: linear-gradient(180deg, #ff9a2e, #e5650f); color: #1a0b03; box-shadow: 0 0 22px -4px rgba(255,120,20,.7); }
html.season-halloween .btn-brass:hover, html.season-halloween .hero .btn-brass:hover { background: linear-gradient(180deg, #ffb04f, #f07416); }
html.season-halloween .btn-primary { background: #ff8a1f; color: #1a0b03; }
html.season-halloween .btn-primary:hover { background: #ffa347; }
html.season-halloween .hero .btn-ghost, html.season-halloween .btn-ghost { color: #ffd8a8; }

/* Sections and cards */
html.season-halloween .section-alt { background: linear-gradient(180deg, #1b110e, #160e0c); }
html.season-halloween .section-dark { background: radial-gradient(80% 120% at 50% 0%, #3a1a4a, #1c0f24); }
html.season-halloween blockquote { color: #f2e2ff; }
html.season-halloween blockquote::before { color: #ff8a1f; }
html.season-halloween .card, html.season-halloween .level { background: linear-gradient(180deg, #221713, #1a110e); border-color: var(--line); }
html.season-halloween a.card:hover { border-color: #ff8a1f; box-shadow: 0 0 0 1px rgba(255,138,31,.3), 0 18px 40px -16px rgba(255,110,20,.45); }
html.season-halloween .icon-dot { border-color: #5a3a24; background: radial-gradient(circle, rgba(255,138,31,.18), transparent 70%); }
html.season-halloween .staff, html.season-halloween .page-head::after, html.season-halloween .section-head::after { background: repeating-linear-gradient(to bottom, #4a2e1e 0 1px, transparent 1px 4px); }
html.season-halloween .page-head { background: radial-gradient(60% 100% at 90% 0%, rgba(150,60,180,.22), transparent 70%); }

/* Bookstore */
html.season-halloween .store-tools { background: rgba(18,12,10,.95); border-bottom-color: var(--line); }
html.season-halloween .search input, html.season-halloween select, html.season-halloween .form-row input { background: #1d1411; color: var(--ink); border-color: #4a3022; }
html.season-halloween .chip[aria-pressed="true"] { color: #ffb054; }
html.season-halloween .book .cover { box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 14px 26px -14px rgba(0,0,0,.8); }
html.season-halloween .book:hover .cover, html.season-halloween .book:focus-visible .cover { transform: translateY(-6px) rotate(-1.5deg); box-shadow: 0 0 0 1px rgba(255,138,31,.6), 0 0 30px rgba(255,120,20,.45), 0 26px 40px -18px rgba(0,0,0,.8); }
html.season-halloween .badge-audio, html.season-halloween .badge-video { background: rgba(20,12,10,.88); color: #ffc078; }
html.season-halloween .badge-pack { background: #ff8a1f; color: #1a0b03; }
html.season-halloween .pack-rail { background: linear-gradient(180deg, #1f1411, #170f0d); border-color: var(--line); }
html.season-halloween .pack-row:hover { background: rgba(255,138,31,.08); }
html.season-halloween .pack-cover { background: linear-gradient(160deg, #2a1a14, #160e0c); }
html.season-halloween .save { background: #2b3a12; color: #c8f07a; }
html.season-halloween dialog.book-dialog { background: #1a110e; color: var(--ink); box-shadow: 0 0 0 1px #4a2e1e, 0 40px 90px rgba(0,0,0,.6), 0 0 60px rgba(255,110,20,.15); }
html.season-halloween .dlg-cover { background: #22160f; }
html.season-halloween .dlg-close { background: #22160f; color: var(--ink); border-color: #4a2e1e; }
html.season-halloween .pack-books a:hover, html.season-halloween .tracks a:hover { background: rgba(255,138,31,.08); }
html.season-halloween .yt-play { background: #ff8a1f; }
html.season-halloween .yt-play::before { border-left-color: #1a0b03; }
@media (max-width: 960px) { html.season-halloween .pack-list li { background: #1d1310; } }

/* Footer */
html.season-halloween .site-footer { background: #0d0807; border-top-color: #3e2a20; }
html.season-halloween .footer-logo { width: 230px; }

/* ---- Interactive bits (added by season.js) ---- */
.season-fx { position: fixed; inset: 0; pointer-events: none; z-index: 60; overflow: hidden; }

/* Lantern light that follows the pointer */
.season-glow { position: absolute; inset: 0; background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 40%), rgba(255,150,50,.10), transparent 70%); mix-blend-mode: screen; }

/* Cobwebs in the top corners */
.season-web { position: absolute; z-index: 55; pointer-events: none; top: 88px; width: 150px; height: 150px; opacity: .35;
  background:
    repeating-radial-gradient(circle at 0 0, transparent 0 18px, rgba(255,240,220,.55) 18px 19px),
    conic-gradient(from 90deg at 0 0, transparent 0 4deg, rgba(255,240,220,.6) 4deg 5deg, transparent 5deg 22deg, rgba(255,240,220,.6) 22deg 23deg, transparent 23deg 44deg, rgba(255,240,220,.6) 44deg 45deg, transparent 45deg 66deg, rgba(255,240,220,.6) 66deg 67deg, transparent 67deg 85deg, rgba(255,240,220,.6) 85deg 86deg, transparent 86deg);
  -webkit-mask: radial-gradient(circle at 0 0, #000 40%, transparent 72%); mask: radial-gradient(circle at 0 0, #000 40%, transparent 72%); }
.season-web-l { left: 0; }
.season-web-r { right: 0; transform: scaleX(-1); }
@media (max-width: 700px) { .season-web { width: 90px; height: 90px; top: 72px; } }

/* Bats: click to catch */
.season-bat { position: absolute; top: var(--y); width: 54px; height: 28px; padding: 6px; border: 0; background: none; color: #0b0605; cursor: pointer; pointer-events: auto;
  filter: drop-shadow(0 0 7px rgba(255,140,40,.63)); animation: var(--dur) linear forwards; }
.season-bat svg { width: 100%; height: 100%; animation: season-flap .22s ease-in-out infinite alternate; transform-origin: 50% 40%; }
.season-bat.ltr { left: -70px; animation-name: season-fly-ltr; }
.season-bat.rtl { right: -70px; animation-name: season-fly-rtl; }
@keyframes season-flap { from { transform: scale(var(--s), 1) scaleY(1); } to { transform: scale(var(--s), 1) scaleY(.45); } }
@keyframes season-fly-ltr { 0% { transform: translate(0, 0); } 50% { transform: translate(55vw, calc(var(--dy) * -1)); } 100% { transform: translate(calc(100vw + 140px), var(--dy)); } }
@keyframes season-fly-rtl { 0% { transform: translate(0, 0); } 50% { transform: translate(-55vw, calc(var(--dy) * -1)); } 100% { transform: translate(calc(-100vw - 140px), var(--dy)); } }
.season-poof { position: absolute; transform: translate(-50%, -50%); font-family: var(--spooky); font-size: 1.5rem; color: #ffb054; text-shadow: 0 0 12px rgba(255,120,20,.8); animation: season-poof .9s ease-out forwards; }
@keyframes season-poof { from { opacity: 1; transform: translate(-50%, -50%) scale(.6); } to { opacity: 0; transform: translate(-50%, -160%) scale(1.3); } }

/* A shy ghost that peeks in from the left edge */
.season-ghost { position: absolute; left: -14px; bottom: 120px; width: 64px; height: 78px; border: 0; padding: 0; cursor: pointer; pointer-events: auto;
  background: radial-gradient(circle at 36% 38%, #120c0a 0 5px, transparent 6px), radial-gradient(circle at 62% 38%, #120c0a 0 5px, transparent 6px), radial-gradient(ellipse 9px 6px at 50% 58%, #120c0a 0 98%, transparent 100%), #f6efe6;
  border-radius: 32px 32px 10px 10px; box-shadow: 0 0 24px rgba(240,230,255,.5); transform: translateX(-40px) rotate(12deg); animation: season-peek 9s ease-in-out infinite; transition: transform .3s ease; }
.season-ghost::after { content: ""; position: absolute; left: 0; right: 0; bottom: -8px; height: 12px; background: radial-gradient(circle at 8px 0, #f6efe6 7px, transparent 8px) 0 0 / 16px 12px repeat-x; }
.season-ghost .boo { position: absolute; left: 70px; top: -10px; font-family: var(--spooky); font-size: 1.3rem; color: #f6efe6; opacity: 0; transition: opacity .2s ease; white-space: nowrap; text-shadow: 0 0 10px rgba(255,255,255,.6); }
.season-ghost:hover .boo, .season-ghost.spooked .boo { opacity: 1; }
.season-ghost.spooked { animation: season-flee .8s ease-in forwards; }
@keyframes season-peek { 0%, 55%, 100% { transform: translateX(-56px) rotate(12deg); } 65%, 90% { transform: translateX(10px) rotate(4deg); } }
@keyframes season-flee { to { transform: translate(-90px, -60px) rotate(-20deg); opacity: 0; } }

/* Trick-or-treat cauldron */
.cauldron-wrap { position: absolute; right: 18px; bottom: 64px; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; pointer-events: none; }
.cauldron { position: relative; pointer-events: auto; display: flex; align-items: center; gap: 10px; padding: 8px 16px 8px 10px; border-radius: 999px; border: 1px solid #6b4a2e; background: #1a110e; color: #ffd8a8; font: 600 .72rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; box-shadow: 0 10px 30px -8px rgba(0,0,0,.7), 0 0 20px rgba(120,255,90,.15); }
.cauldron:hover { border-color: #8bd24a; }
.cauldron-pot { position: relative; width: 34px; height: 28px; border-radius: 4px 4px 17px 17px; background: radial-gradient(circle at 35% 30%, #4a4a4a, #111 70%); }
.cauldron-pot::before { content: ""; position: absolute; left: -3px; right: -3px; top: -3px; height: 8px; border-radius: 50%; background: radial-gradient(ellipse at center, #b8ff6a, #4caf1f 70%); box-shadow: 0 0 12px #8bff4a; }
.cauldron-pot::after { content: ""; position: absolute; left: 10px; top: -12px; width: 8px; height: 8px; border-radius: 50%; background: #b8ff6a; opacity: 0; }
.cauldron.bubbling .cauldron-pot::after { animation: season-bubble .7s ease-out 2; }
@keyframes season-bubble { 0% { opacity: .9; transform: translateY(6px) scale(.5); } 100% { opacity: 0; transform: translateY(-14px) scale(1.2); } }
.cauldron-count { position: absolute; top: -6px; right: -6px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: #ff8a1f; color: #1a0b03; font-size: .7rem; display: grid; place-items: center; letter-spacing: 0; }
.cauldron-count[hidden] { display: none; }
.cauldron-card { pointer-events: auto; max-width: 290px; padding: 14px 16px; border-radius: 10px; background: #1f1512; border: 1px solid #6b4a2e; color: var(--ink); font-size: .92rem; line-height: 1.45; box-shadow: 0 16px 40px -12px rgba(0,0,0,.8); animation: season-pop .3s ease-out; }
.cauldron-card strong { font-family: var(--spooky); font-weight: 400; font-size: 1.25rem; color: #ffb054; letter-spacing: .03em; margin-right: 4px; }
.cauldron-card a { color: #ffc078; }
.cauldron-card[hidden] { display: none; }
@keyframes season-pop { from { opacity: 0; transform: translateY(8px) scale(.96); } to { opacity: 1; transform: none; } }

.season-toast { position: absolute; left: 50%; bottom: 90px; transform: translateX(-50%); padding: 12px 18px; border-radius: 999px; background: #ff8a1f; color: #1a0b03; font-weight: 600; font-size: .88rem; box-shadow: 0 10px 30px -8px rgba(0,0,0,.7); animation: season-pop .3s ease-out; white-space: nowrap; max-width: calc(100vw - 32px); overflow: hidden; text-overflow: ellipsis; }

/* Lights flicker when the season switches on */
html.season-flicker body { animation: season-flicker 1.1s steps(1) 1; }
@keyframes season-flicker { 0% { filter: brightness(.2); } 12% { filter: brightness(1); } 20% { filter: brightness(.3); } 30% { filter: brightness(1.1); } 38% { filter: brightness(.5); } 50%, 100% { filter: none; } }

@media (max-width: 600px) {
  .cauldron-label { display: none; }
  .cauldron { padding: 8px 10px; }
  .season-ghost { bottom: 90px; }
}
@media (prefers-reduced-motion: reduce) {
  .season-ghost { animation: none; transform: translateX(-30px) rotate(10deg); }
  html.season-halloween .hero::after { animation: none; }
}

/* Seasonal muted video over a photo (see SEASON.images in season.js) */
.season-video { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; object-fit: cover; border-radius: 2px; box-shadow: 0 0 40px -6px rgba(255,120,20,.45); }
html.season-halloween .split > img { box-shadow: 0 0 40px -6px rgba(255,120,20,.4); }

/* ---- Thanksgiving ----
   A bright harvest table: warm cream, pumpkin, cranberry and gold, in daylight (Jim liked it light). */
html.season-thanksgiving {
  --ink: #2c1d14;
  --ink-2: #5a4030;
  --muted: #8a6f58;
  --paper: #fffaf1;
  --paper-2: #f8ecd8;
  --card: #fffdf8;
  --line: #ecd9bc;
  --brass: #b4531f;        /* pumpkin */
  --brass-2: #e3a23b;      /* gold */
  --sky: #f5e6cc;          /* harvest band */
  --cranberry: #8f2235;
  --shadow: 0 1px 1px rgba(80,40,10,.05), 0 12px 30px -12px rgba(120,60,20,.28);
  --harvest: "Fraunces", "Iowan Old Style", Georgia, serif;
}
html.season-thanksgiving body {
  background:
    radial-gradient(900px 500px at 90% -10%, rgba(227,162,59,.16), transparent 60%),
    radial-gradient(800px 500px at 0% 40%, rgba(180,83,31,.06), transparent 60%),
    var(--paper);
}
html.season-thanksgiving ::selection { background: #f4d38f; }
html.season-thanksgiving h1, html.season-thanksgiving h2 { font-family: var(--harvest); font-weight: 600; letter-spacing: -.01em; color: #3a2416; }
html.season-thanksgiving h1 em, html.season-thanksgiving h2 em { font-style: italic; font-weight: 500; color: var(--brass); }
html.season-thanksgiving .eyebrow { color: var(--cranberry); }

html.season-thanksgiving .site-header { background: rgba(255,250,241,.92); border-bottom-color: var(--line); }
html.season-thanksgiving .nav a:hover, html.season-thanksgiving .nav a[aria-current="page"] { color: var(--brass); }
html.season-thanksgiving .season-btn { border-color: #e3b47a; color: var(--brass); }

html.season-thanksgiving .season-banner { color: #fffaf1; background: linear-gradient(90deg, #8f2235, #b4531f 50%, #c98a2b); font-weight: 500; }

/* Hero: late-afternoon light over the fields */
html.season-thanksgiving .hero { background: radial-gradient(70% 90% at 85% 10%, #fde7b8 0%, rgba(253,231,184,0) 60%), linear-gradient(180deg, #fffaf1 0%, #f8e9d0 100%); }
html.season-thanksgiving .hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 46px; pointer-events: none; opacity: .5;
  background: repeating-linear-gradient(100deg, transparent 0 9px, rgba(201,138,43,.35) 9px 11px, transparent 11px 22px); -webkit-mask: linear-gradient(transparent, #000); mask: linear-gradient(transparent, #000); }
html.season-thanksgiving .hero-photo::before { border-color: #e3a23b; }
html.season-thanksgiving .stat strong { color: var(--brass); font-family: var(--harvest); }

html.season-thanksgiving .btn-brass, html.season-thanksgiving .hero .btn-brass { background: var(--brass); color: #fffaf1; }
html.season-thanksgiving .btn-brass:hover, html.season-thanksgiving .hero .btn-brass:hover { background: #973f13; }
html.season-thanksgiving .btn-primary { background: var(--cranberry); color: #fffaf1; }
html.season-thanksgiving .btn-primary:hover { background: #6f1727; }

html.season-thanksgiving .section-alt { background: var(--paper-2); }
html.season-thanksgiving .section-dark { background: linear-gradient(180deg, #f7e2c2, #f2d6ad); }
html.season-thanksgiving blockquote::before { color: var(--brass); }
html.season-thanksgiving a.card:hover { border-color: #e3b47a; }
html.season-thanksgiving .icon-dot { color: var(--brass); border-color: #ecd0a8; background: #fff6e6; }
html.season-thanksgiving .staff, html.season-thanksgiving .page-head::after, html.season-thanksgiving .section-head::after { background: repeating-linear-gradient(to bottom, #e8cfa8 0 1px, transparent 1px 4px); }
html.season-thanksgiving .page-head { background: radial-gradient(60% 100% at 90% 0%, rgba(227,162,59,.18), transparent 70%); }
html.season-thanksgiving .store-tools { background: rgba(255,250,241,.96); }
html.season-thanksgiving .pack-rail { background: #fbf0dd; }
html.season-thanksgiving .book:hover .cover, html.season-thanksgiving .book:focus-visible .cover { transform: translateY(-5px) rotate(-1deg); box-shadow: 0 0 0 1px rgba(180,83,31,.35), 0 22px 36px -16px rgba(120,60,20,.5); }
html.season-thanksgiving .site-footer { background: #f6e5c9; }

/* Falling leaves: click to catch */
.season-leaf { position: absolute; top: -60px; left: var(--x); width: 42px; height: 42px; padding: 4px; border: 0; background: none; cursor: pointer; pointer-events: auto;
  filter: drop-shadow(0 2px 2px rgba(80,40,10,.25)); animation: season-fall var(--dur) linear forwards; }
.season-leaf svg { width: 100%; height: 100%; transform: scale(var(--s)); animation: season-sway 2.4s ease-in-out infinite alternate; }
@keyframes season-fall { to { transform: translate(var(--drift), calc(100vh + 120px)) rotate(var(--spin)); } }
@keyframes season-sway { from { transform: scale(var(--s)) rotate(-18deg) translateX(-6px); } to { transform: scale(var(--s)) rotate(18deg) translateX(6px); } }
html.season-thanksgiving .season-poof { font-family: var(--harvest); font-style: italic; color: var(--brass); text-shadow: 0 1px 0 #fffaf1, 0 0 10px rgba(255,250,241,.9); }

/* A turkey that struts along the bottom of the screen now and then; click it */
.season-turkey { position: absolute; bottom: 10px; left: -110px; width: 86px; height: 76px; border: 0; padding: 0; cursor: pointer; pointer-events: auto;
  background: none;
  animation: season-strut 26s linear 3s infinite; }
.season-turkey { animation: season-strut 26s linear 3s infinite; }
/* A pilgrim with a blunderbuss, chasing the turkey a step behind. He never catches it. */
.season-pilgrim { position: absolute; bottom: 8px; left: -110px; width: 74px; height: 82px; border: 0; padding: 0; cursor: pointer; pointer-events: auto;
  background: none;
  animation: season-strut 26s linear 4.4s infinite; }
.season-turkey .gobble, .season-pilgrim .shout { position: absolute; bottom: calc(100% + 4px); padding: 4px 10px; border-radius: 999px; background: #fffaf1; box-shadow: 0 4px 12px -4px rgba(80,40,10,.35);
  font-family: var(--harvest); font-weight: 600; font-style: italic; font-size: .95rem; color: var(--cranberry); opacity: 0; transition: opacity .15s ease; white-space: nowrap; pointer-events: none; }
.season-turkey .gobble { right: -10px; }
.season-pilgrim .shout { left: -10px; color: #3a2416; }
.season-turkey:hover .gobble, .season-turkey.talking .gobble, .season-pilgrim:hover .shout, .season-pilgrim.talking .shout { opacity: 1; }
/* The button walks; its drawing (::before) sways gently from the feet, so the sway never tips the path. */
.season-turkey::before, .season-pilgrim::before { content: ""; position: absolute; inset: 0; transform-origin: 50% 100%; animation: season-waddle .8s ease-in-out infinite alternate; }
.season-turkey::before { background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 86 76'><g transform='translate(36 40)'><ellipse rx='9' ry='30' fill='%238f2235' transform='rotate(-70)'/><ellipse rx='9' ry='30' fill='%23d9822b' transform='rotate(-35)'/><ellipse rx='9' ry='30' fill='%23e6b23a'/><ellipse rx='9' ry='30' fill='%23b4531f' transform='rotate(35)'/><ellipse rx='9' ry='30' fill='%237a8a2e' transform='rotate(70)'/></g><ellipse cx='42' cy='50' rx='19' ry='17' fill='%236b3f22'/><circle cx='58' cy='30' r='9' fill='%238a5530'/><circle cx='61' cy='28' r='2.2' fill='%23fff'/><circle cx='61.6' cy='28' r='1.1' fill='%23222'/><path d='M66 31l8 2-8 3z' fill='%23e6a13a'/><path d='M64 35c3 3 2 8-1 9-2-3-2-6 1-9z' fill='%23c0392b'/><path d='M38 66v8M48 66v8' stroke='%23d9822b' stroke-width='3' stroke-linecap='round'/></svg>") center / contain no-repeat; }
.season-pilgrim::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 100'%3E %3Cpath d='M34 76l-5 17M46 76l5 17' stroke='%232b2622' stroke-width='6' stroke-linecap='round'/%3E %3Cellipse cx='27' cy='94' rx='7' ry='4' fill='%231d1a17'/%3E%3Cellipse cx='53' cy='94' rx='7' ry='4' fill='%231d1a17'/%3E %3Crect x='24' y='91' width='5' height='4' fill='%23d9a62e'/%3E%3Crect x='51' y='91' width='5' height='4' fill='%23d9a62e'/%3E %3Cpath d='M27 40h26l5 37H22z' fill='%232b2622'/%3E %3Crect x='24' y='60' width='32' height='5' fill='%231a1714'/%3E%3Crect x='36' y='59' width='8' height='7' fill='none' stroke='%23d9a62e' stroke-width='2'/%3E %3Cpath d='M27 37h26l-5 9H32z' fill='%23f6f1e6'/%3E %3Ccircle cx='40' cy='27' r='10' fill='%23f1c9a5'/%3E%3Ccircle cx='44' cy='25' r='1.5' fill='%23222'/%3E%3Cpath d='M49 28l3 1.5-3 1' fill='%23e0ae86'/%3E %3Cpath d='M36 31q4 3 8 0' stroke='%239a5a3a' stroke-width='1.4' fill='none'/%3E %3Cpath d='M30 16h20l-2-15H32z' fill='%231d1a17'/%3E%3Crect x='24' y='15' width='32' height='5' rx='2' fill='%231d1a17'/%3E %3Crect x='34' y='8' width='12' height='7' fill='none' stroke='%23d9a62e' stroke-width='2'/%3E %3Cpath d='M40 46l13 6' stroke='%232b2622' stroke-width='7' stroke-linecap='round'/%3E %3Cpath d='M44 54l14-4' stroke='%237a4a22' stroke-width='6' stroke-linecap='round'/%3E %3Cpath d='M56 50l27-5' stroke='%234d4a46' stroke-width='3.5' stroke-linecap='round'/%3E %3Cpath d='M82 42l8-3v12l-8-3z' fill='%234d4a46'/%3E %3Ccircle cx='54' cy='52' r='3.6' fill='%23f1c9a5'/%3E %3C/svg%3E") center / contain no-repeat; animation-duration: .7s; }
@keyframes season-waddle { from { transform: rotate(-1.5deg); } to { transform: rotate(1.5deg); } }
@keyframes season-strut { 0% { transform: translateX(0); } 4% { transform: translateX(6vw); } 40% { transform: translateX(calc(100vw + 220px)); } 100% { transform: translateX(calc(100vw + 220px)); } }

/* Pass the pie (the corner button) */
.cauldron.pie { background: #fffaf1; color: var(--brass); border-color: #e3b47a; box-shadow: 0 10px 26px -10px rgba(120,60,20,.45); }
.cauldron.pie:hover { border-color: var(--brass); }
.pie-slice { position: relative; width: 32px; height: 32px; border-radius: 50%;
  background: radial-gradient(circle, #d8782a 0 52%, #c56a22 53% 56%, #ecc283 57% 72%, #c98a43 73%); box-shadow: inset 0 -2px 3px rgba(0,0,0,.15); }
.pie-slice::after { content: ""; position: absolute; left: 10px; top: 9px; width: 12px; height: 8px; border-radius: 50%; background: #fffdf6; box-shadow: 0 1px 1px rgba(0,0,0,.1); }
.cauldron.pie.bubbling .pie-slice { animation: season-pie .6s ease-out; }
@keyframes season-pie { 30% { transform: rotate(-14deg) scale(1.12); } 60% { transform: rotate(10deg); } }
html.season-thanksgiving .cauldron-card { background: #fffdf8; color: var(--ink); border-color: #e3b47a; box-shadow: 0 16px 36px -14px rgba(120,60,20,.45); }
html.season-thanksgiving .cauldron-card strong { font-family: var(--harvest); font-weight: 600; font-style: italic; font-size: 1.1rem; color: var(--brass); letter-spacing: 0; }
html.season-thanksgiving .cauldron-card a { color: var(--cranberry); }
html.season-thanksgiving .cauldron-count { background: var(--cranberry); color: #fffaf1; }
html.season-thanksgiving .season-toast { background: var(--brass); color: #fffaf1; }

@media (prefers-reduced-motion: reduce) { .season-turkey { animation: none; left: 96px; } .season-pilgrim { animation: none; left: 8px; } .season-turkey::before, .season-pilgrim::before { animation: none; } }

/* ---- Shared by every season that has a logo ---- */
html.season .brand-logo, html.season .footer-logo, html.season .hero-logo { mix-blend-mode: normal; }
html.season .brand-logo { height: 70px; }
html.season .hero-logo { width: min(440px, 92%); margin-left: -14px; }
html.season .footer-logo { width: 230px; }

/* ---- The bright holiday look (Christmas, Lunar New Year, Valentine's Day, St. Patrick's Day) ----
   Each season sets its colors and display font as tokens; these rules apply them. */
html.season-christmas, html.season-chinese-new-year, html.season-valentines, html.season-st-patricks, html.season-mothers-day, html.season-fathers-day, html.season-independence-day, html.season-summer, html.season-labor-day, html.season-columbus-day, html.season-veterans-day {
  --ink: #23201c; --ink-2: #4c443c; --muted: #857a6e;
  --shadow: 0 1px 1px rgba(40,20,10,.05), 0 12px 30px -12px rgba(60,30,10,.25);
}
html.season-christmas { --paper: #fffdf8; --paper-2: #f3f6f1; --card: #ffffff; --line: #e3e7df; --brass: #b3202c; --brass-2: #d4a64a; --sky: #eaf1ea;
  --deep: #1f4d36; --display: "Mountains of Christmas", Georgia, serif; --banner: linear-gradient(90deg, #1f4d36, #2c6b4a 45%, #b3202c); }
html.season-chinese-new-year { --paper: #fffaf3; --paper-2: #fbefe0; --card: #fffdf9; --line: #efd9bf; --brass: #c4161c; --brass-2: #e8b649; --sky: #fbe3cf;
  --deep: #8e0f14; --display: "Cinzel", Georgia, serif; --banner: linear-gradient(90deg, #8e0f14, #c4161c 50%, #d4892a); }
html.season-valentines { --paper: #fff8f9; --paper-2: #fdecef; --card: #ffffff; --line: #f6d5dc; --brass: #c8264e; --brass-2: #f3a0b4; --sky: #fde3ea;
  --deep: #7a1236; --display: "Dancing Script", "Playfair Display", Georgia, serif; --banner: linear-gradient(90deg, #a3123a, #e0245e 50%, #ff8fab); }
html.season-st-patricks { --paper: #fbfdf8; --paper-2: #eef6ec; --card: #ffffff; --line: #d9e9d5; --brass: #1f7a3a; --brass-2: #d9a62e; --sky: #e6f2e2;
  --deep: #135a2b; --display: "Uncial Antiqua", Georgia, serif; --banner: linear-gradient(90deg, #135a2b, #1f8a3b 55%, #d9a62e); }

:is(html.season-christmas, html.season-chinese-new-year, html.season-valentines, html.season-st-patricks, html.season-mothers-day, html.season-fathers-day, html.season-independence-day, html.season-summer, html.season-labor-day, html.season-columbus-day, html.season-veterans-day) {
  & body { background: radial-gradient(900px 500px at 90% -10%, color-mix(in srgb, var(--brass-2) 18%, transparent), transparent 60%), var(--paper); }
  & h1, & h2 { font-family: var(--display); color: var(--deep); letter-spacing: 0; }
  & h1 em, & h2 em { font-style: normal; color: var(--brass); }
  & .eyebrow { color: var(--brass); }
  & .site-header { background: color-mix(in srgb, var(--paper) 92%, transparent); }
  & .nav a:hover, & .nav a[aria-current="page"] { color: var(--brass); }
  & .season-btn { border-color: color-mix(in srgb, var(--brass) 40%, transparent); color: var(--brass); }
  & .season-banner { color: #fffdf8; background: var(--banner); font-weight: 500; }
  & .hero { background: radial-gradient(70% 90% at 85% 10%, color-mix(in srgb, var(--brass-2) 22%, var(--paper)) 0%, transparent 60%), linear-gradient(180deg, var(--paper), var(--paper-2)); }
  & .hero-photo::before { border-color: var(--brass-2); }
  & .stat strong { color: var(--brass); }
  & .btn-brass, & .hero .btn-brass { background: var(--brass); color: #fffdf8; }
  & .btn-brass:hover, & .hero .btn-brass:hover { background: var(--deep); }
  & .btn-primary { background: var(--deep); color: #fffdf8; }
  & .section-alt { background: var(--paper-2); }
  & .section-dark { background: var(--sky); }
  & blockquote::before { color: var(--brass); }
  & .icon-dot { color: var(--brass); }
  & .page-head { background: radial-gradient(60% 100% at 90% 0%, color-mix(in srgb, var(--brass-2) 16%, transparent), transparent 70%); }
  & .store-tools { background: color-mix(in srgb, var(--paper) 96%, transparent); }
  & .site-footer { background: var(--paper-2); }
  & .book:hover .cover, & .book:focus-visible .cover { transform: translateY(-5px) rotate(-1deg); box-shadow: 0 0 0 1px color-mix(in srgb, var(--brass) 40%, transparent), 0 22px 36px -16px rgba(60,30,10,.45); }
  & .season-poof { font-family: var(--display); color: var(--brass); text-shadow: 0 1px 0 #fff, 0 0 10px rgba(255,255,255,.9); }
  & .cauldron { background: #fffdf9; color: var(--brass); border-color: color-mix(in srgb, var(--brass) 35%, transparent); box-shadow: 0 10px 26px -10px rgba(60,30,10,.4); }
  & .cauldron-card { background: #fffdf9; color: var(--ink); border-color: color-mix(in srgb, var(--brass) 30%, transparent); box-shadow: 0 16px 36px -14px rgba(60,30,10,.4); }
  & .cauldron-card strong { font-family: var(--display); font-size: 1.15rem; color: var(--brass); letter-spacing: 0; }
  & .cauldron-card a { color: var(--deep); }
  & .cauldron-count { background: var(--deep); color: #fffdf8; }
  & .season-toast { background: var(--brass); color: #fffdf8; }
}
html.season-valentines h2, html.season-valentines .cauldron-card strong { font-family: "Playfair Display", Georgia, serif; font-style: italic; }
html.season-valentines h1 { font-size: clamp(3rem, 6vw, 5.2rem); }
html.season-christmas h1 { font-size: clamp(2.8rem, 5.6vw, 4.8rem); }
html.season-st-patricks .hero { overflow: hidden; }
/* A soft rainbow over the St. Patrick's hero */
html.season-st-patricks .hero::before { content: ""; position: absolute; right: -10%; top: -260px; width: 820px; height: 820px; border-radius: 50%; pointer-events: none; opacity: .22;
  background: radial-gradient(circle, transparent 54%, #e53935 54% 57%, #fb8c00 57% 60%, #fdd835 60% 63%, #43a047 63% 66%, #1e88e5 66% 69%, #5e35b1 69% 72%, transparent 72%); }
html.season-st-patricks .hero .wrap { position: relative; z-index: 1; }

/* ---- New Year's: midnight and champagne ---- */
html.season-new-years {
  --ink: #f4efe3; --ink-2: #d8d0bd; --muted: #a89f8c;
  --paper: #0c1428; --paper-2: #121c36; --card: #16213d; --line: #2a3658;
  --brass: #e6c06a; --brass-2: #f3d27a; --sky: #1a1640;
  --shadow: 0 1px 1px rgba(0,0,0,.3), 0 14px 34px -12px rgba(230,192,106,.25);
  color-scheme: dark;
}
html.season-new-years body { background: radial-gradient(1000px 600px at 80% -10%, rgba(201,166,255,.18), transparent 60%), radial-gradient(800px 500px at 0% 30%, rgba(230,192,106,.08), transparent 60%), var(--paper); background-attachment: fixed; }
html.season-new-years h1, html.season-new-years h2 { font-family: "Playfair Display", Georgia, serif; font-weight: 700; color: #f6e7bf; }
html.season-new-years h1 em, html.season-new-years h2 em { font-style: italic; font-weight: 600; color: var(--brass-2); text-shadow: 0 0 22px rgba(243,210,122,.45); }
html.season-new-years .eyebrow { color: #c9a6ff; }
html.season-new-years .site-header { background: rgba(10,16,32,.88); border-bottom-color: #2a3658; }
html.season-new-years .nav a { color: var(--ink-2); }
html.season-new-years .nav a:hover, html.season-new-years .nav a[aria-current="page"] { color: var(--brass-2); }
html.season-new-years .nav-toggle { color: var(--ink); }
html.season-new-years .season-btn { color: var(--ink-2); border-color: #3a4770; }
@media (max-width: 960px) { html.season-new-years .nav { background: #0c1428; } }
html.season-new-years .season-banner { color: #1a1406; background: linear-gradient(90deg, #c9a24a, #f3d27a 50%, #c9a24a); font-weight: 600; }
.ny-countdown { display: inline-block; margin-left: 8px; padding: 2px 10px; border-radius: 999px; background: #0c1428; color: #f3d27a; font-variant-numeric: tabular-nums; letter-spacing: .04em; }
html.season-new-years .hero { background: radial-gradient(60% 80% at 85% 10%, rgba(243,210,122,.14), transparent 50%), linear-gradient(180deg, #101a33, #0c1428); border-bottom-color: #2a3658; }
html.season-new-years .hero-photo::before { border-color: var(--brass); box-shadow: 0 0 24px rgba(243,210,122,.3); }
html.season-new-years .stat strong { color: var(--brass-2); }
html.season-new-years .btn-brass, html.season-new-years .hero .btn-brass { background: linear-gradient(180deg, #f3d27a, #c9a24a); color: #1a1406; }
html.season-new-years .btn-primary { background: var(--brass); color: #1a1406; }
html.season-new-years .hero .btn-ghost, html.season-new-years .btn-ghost { color: #f6e7bf; }
html.season-new-years .section-alt { background: #101a33; }
html.season-new-years .section-dark { background: radial-gradient(80% 120% at 50% 0%, #2a2160, #141634); }
html.season-new-years blockquote { color: #f4efe3; }
html.season-new-years .card, html.season-new-years .level { background: linear-gradient(180deg, #172242, #121b35); }
html.season-new-years a.card:hover { border-color: var(--brass); }
html.season-new-years .store-tools { background: rgba(12,20,40,.95); }
html.season-new-years .search input, html.season-new-years select, html.season-new-years .form-row input { background: #121c36; color: var(--ink); border-color: #2f3c62; }
html.season-new-years .badge-audio, html.season-new-years .badge-video { background: rgba(12,20,40,.88); color: #f3d27a; }
html.season-new-years .pack-rail { background: #121c36; }
html.season-new-years .pack-cover { background: linear-gradient(160deg, #1a2546, #0f1730); }
html.season-new-years dialog.book-dialog { background: #121c36; color: var(--ink); }
html.season-new-years .dlg-cover { background: #172242; }
html.season-new-years .dlg-close { background: #172242; color: var(--ink); border-color: #2f3c62; }
html.season-new-years .site-footer { background: #090f1f; }
html.season-new-years .staff, html.season-new-years .page-head::after, html.season-new-years .section-head::after { background: repeating-linear-gradient(to bottom, #2f3c62 0 1px, transparent 1px 4px); }
html.season-new-years .season-poof { font-family: "Playfair Display", Georgia, serif; font-style: italic; color: #f3d27a; }
html.season-new-years .cauldron { background: #121c36; color: #f3d27a; border-color: #3a4770; }
html.season-new-years .cauldron-card { background: #16213d; border-color: #3a4770; }
html.season-new-years .cauldron-card strong { font-family: "Playfair Display", Georgia, serif; font-style: italic; color: #f3d27a; letter-spacing: 0; }
html.season-new-years .cauldron-card a { color: #c9a6ff; }
html.season-new-years .season-toast { background: #f3d27a; color: #1a1406; }

/* ---- Things that drift down or float up, to catch (all the newer seasons) ---- */
.season-drift { position: absolute; left: var(--x); width: 40px; height: 40px; padding: 4px; border: 0; background: none; cursor: pointer; pointer-events: auto; animation: var(--dur) linear forwards; }
.season-drift svg { width: 100%; height: 100%; transform: scale(var(--s)); }
.season-drift.fall { top: -60px; animation-name: season-fall; filter: drop-shadow(0 2px 2px rgba(40,30,20,.25)); }
.season-drift.fall svg { animation: season-sway 2.6s ease-in-out infinite alternate; }
.season-drift.rise { bottom: -70px; animation-name: season-rise; }
.season-drift.rise svg { animation: season-bob 2.2s ease-in-out infinite alternate; }
@keyframes season-rise { to { transform: translate(var(--drift), calc(-100vh - 140px)) rotate(var(--spin)); } }
@keyframes season-bob { from { transform: scale(var(--s)) translateX(-5px); } to { transform: scale(var(--s)) translateX(5px); } }
html.season-christmas .season-drift { filter: drop-shadow(0 0 1px #6b8fae) drop-shadow(0 2px 3px rgba(60,90,120,.35)); }
.season-drift.lantern { width: 44px; height: 56px; filter: drop-shadow(0 0 10px rgba(255,120,40,.55)); }
.season-drift.twinkle svg { animation: season-twinkle 1.1s ease-in-out infinite alternate; }
@keyframes season-twinkle { from { transform: scale(calc(var(--s) * .7)); opacity: .6; } to { transform: scale(var(--s)); opacity: 1; } }
html.season-valentines .season-drift { filter: drop-shadow(0 2px 4px rgba(160,20,60,.3)); }

/* Christmas lights along the header */
.xmas-lights { position: absolute; left: 0; right: 0; bottom: -12px; height: 18px; display: flex; justify-content: space-between; padding: 0 8px; pointer-events: none;
  background: radial-gradient(ellipse 50% 100% at 50% 0, transparent 60%, #2d3b2f 61% 66%, transparent 67%) 0 -9px / 42px 18px repeat-x; }
.xmas-lights i { width: 8px; height: 13px; margin-top: 3px; border-radius: 50% 50% 45% 45%; background: #e53935; box-shadow: 0 0 10px 2px #e53935; animation: xmas-blink 1.8s ease-in-out infinite alternate; }
.xmas-lights i:nth-child(4n+2) { background: #43a047; box-shadow: 0 0 10px 2px #43a047; animation-delay: .45s; }
.xmas-lights i:nth-child(4n+3) { background: #fbc02d; box-shadow: 0 0 10px 2px #fbc02d; animation-delay: .9s; }
.xmas-lights i:nth-child(4n+4) { background: #1e88e5; box-shadow: 0 0 10px 2px #1e88e5; animation-delay: 1.35s; }
@keyframes xmas-blink { from { opacity: 1; } to { opacity: .35; box-shadow: none; } }
@media (max-width: 700px) { .xmas-lights i:nth-child(n+25) { display: none; } }

/* New Year's fireworks */
.firework { position: absolute; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: currentColor; box-shadow: 0 0 8px currentColor; animation: firework 1.2s ease-out forwards; }
@keyframes firework { 0% { transform: rotate(var(--a)) translateX(0); opacity: 1; } 70% { opacity: 1; } 100% { transform: rotate(var(--a)) translateX(var(--r)) translateY(24px); opacity: 0; } }

/* Valentine's heart trail */
.heart-trail { position: absolute; width: 14px; height: 14px; margin: -7px 0 0 -7px; pointer-events: none; animation: heart-trail .9s ease-out forwards; }
.heart-trail svg { width: 100%; height: 100%; }
@keyframes heart-trail { to { transform: translateY(-34px) scale(.4); opacity: 0; } }

/* Corner-button icons */
.gift-box { position: relative; width: 30px; height: 26px; margin-top: 6px; border-radius: 3px; background: linear-gradient(90deg, transparent 12px, #d4a64a 12px 18px, transparent 18px), #b3202c; }
.gift-box::before { content: ""; position: absolute; left: -2px; right: -2px; top: -6px; height: 8px; border-radius: 2px; background: linear-gradient(90deg, transparent 13px, #d4a64a 13px 19px, transparent 19px), #c62f3a; }
.gift-box::after { content: ""; position: absolute; left: 7px; top: -13px; width: 16px; height: 9px; border: 3px solid #d4a64a; border-bottom: 0; border-radius: 9px 9px 0 0; }
.cork-bottle { position: relative; width: 14px; height: 32px; margin: 0 8px; border-radius: 4px 4px 3px 3px; background: linear-gradient(180deg, #d4af37 0 30%, #1d4a2c 30%); }
.cork-bottle::before { content: ""; position: absolute; left: 3px; top: -5px; width: 8px; height: 6px; border-radius: 2px; background: #c9a06a; }
.cauldron.cork.bubbling .cork-bottle::before { animation: cork-pop .7s ease-out; }
@keyframes cork-pop { 30% { transform: translate(6px, -18px) rotate(40deg); } 100% { transform: none; } }
.red-envelope { position: relative; width: 24px; height: 32px; border-radius: 3px; background: #c4161c; box-shadow: inset 0 0 0 1px #8e0f14; }
.red-envelope::after { content: "福"; position: absolute; inset: 0; display: grid; place-items: center; color: #f3cf6e; font: 700 13px/1 serif; }
.love-letter { position: relative; width: 32px; height: 22px; border-radius: 3px; background: #fff; box-shadow: inset 0 0 0 1px #f3a0b4; overflow: hidden; }
.love-letter::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 22px; border-bottom: 1px solid #f3a0b4; transform: rotate(0); background: linear-gradient(135deg, transparent 49%, #f3a0b4 50%, transparent 51%), linear-gradient(225deg, transparent 49%, #f3a0b4 50%, transparent 51%); }
.love-letter::after { content: "♥"; position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%); color: #e0245e; font-size: 13px; }
.pot-gold { position: relative; width: 32px; height: 26px; margin-top: 6px; border-radius: 6px 6px 14px 14px; background: radial-gradient(circle at 35% 30%, #4a4a4a, #111 70%); }
.pot-gold::before { content: ""; position: absolute; left: -2px; right: -2px; top: -7px; height: 10px; border-radius: 50%; background: radial-gradient(circle at 30% 50%, #fbe08a 3px, transparent 4px), radial-gradient(circle at 60% 40%, #fbe08a 3px, transparent 4px), #e8b23a; box-shadow: 0 0 10px #e8b23a; }
:is(.cauldron.gift, .cauldron.envelope, .cauldron.letter, .cauldron.gold).bubbling > span:first-child { animation: season-pie .6s ease-out; }
html.season-chinese-new-year h1 { font-size: clamp(2.2rem, 4.4vw, 3.5rem); letter-spacing: .01em; }
html.season-chinese-new-year h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); }

/* ==== Holiday worlds (generated by tools/season_worlds.py; edit that script, not this block) ====
   A fixed layer behind the page: a softly drifting pattern and a scene along the bottom.
   Page sections are see-through in seasons, so the world shows behind the content. */
.season-world { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.world-photo { position: absolute; inset: -6%; background: center / cover no-repeat; filter: saturate(var(--world-sat, .85)); }
.world-veil { position: absolute; inset: 0; background: radial-gradient(120% 95% at 50% 42%, color-mix(in srgb, var(--paper) var(--veil-center), transparent) 0%, color-mix(in srgb, var(--paper) var(--veil-edge), transparent) 100%); }
.world-pattern { position: absolute; inset: -40px; background-repeat: repeat; animation: world-drift 140s linear infinite; }
.world-scene { position: absolute; left: 0; right: 0; bottom: 0; height: min(30vh, 260px); background: bottom center / cover no-repeat; }
@keyframes world-drift { from { background-position: 0 0; } to { background-position: var(--world-drift, 0 0); } }
@media (prefers-reduced-motion: reduce) { .world-pattern { animation: none; } }
html.season main, html.season .season-banner { position: relative; z-index: 1; }
html.season .site-footer { position: relative; z-index: 1; }
/* Let the world show through the page's own backgrounds, gently. */
html.season .hero, html.season .page-head { background-color: transparent; }
html.season .hero { background-image: linear-gradient(180deg, color-mix(in srgb, var(--paper) 35%, transparent), color-mix(in srgb, var(--paper-2) 55%, transparent)); }
html.season .section-alt { background: color-mix(in srgb, var(--paper-2) 72%, transparent); }
html.season .section-dark { background: color-mix(in srgb, var(--sky) 82%, transparent); }
html.season .card, html.season .level, html.season .pack-rail { background: color-mix(in srgb, var(--card) 94%, transparent); }
html.season-halloween .world-photo { background-image: url('../img/seasonal/halloween-world.jpg'); --world-sat: 1.15; }
html.season-halloween .world-veil { --veil-center: 62%; --veil-edge: 38%; }
html.season-thanksgiving .world-photo { background-image: radial-gradient(55% 45% at 100% 0%, rgba(201,138,43,.4), transparent 70%), radial-gradient(60% 50% at 0% 100%, rgba(143,34,53,.3), transparent 70%), url('../img/seasonal/thanksgiving-world.jpg'); --world-sat: 1.2; }
html.season-thanksgiving .world-veil { --veil-center: 68%; --veil-edge: 44%; }
html.season-christmas .world-photo { background-image: radial-gradient(60% 55% at 0% 100%, rgba(31,77,54,.55), transparent 70%), radial-gradient(55% 45% at 100% 0%, rgba(179,32,44,.45), transparent 70%), radial-gradient(40% 30% at 70% 55%, rgba(212,166,74,.3), transparent 70%), url('../img/seasonal/christmas-world.jpg'); --world-sat: 1.3; }
html.season-christmas .world-veil { --veil-center: 60%; --veil-edge: 34%; }
html.season-new-years .world-photo { background-image: url('../img/seasonal/new-years-world.jpg'); --world-sat: 1.15; }
html.season-new-years .world-veil { --veil-center: 60%; --veil-edge: 36%; }
html.season-chinese-new-year .world-photo { background-image: radial-gradient(55% 45% at 100% 0%, rgba(232,182,73,.4), transparent 70%), radial-gradient(60% 50% at 0% 100%, rgba(196,22,28,.35), transparent 70%), url('../img/seasonal/chinese-new-year-world.jpg'); --world-sat: 1.1; }
html.season-chinese-new-year .world-veil { --veil-center: 70%; --veil-edge: 46%; }
html.season-valentines .world-photo { background-image: url('../img/seasonal/valentines-world.jpg'); --world-sat: 1.15; }
html.season-valentines .world-veil { --veil-center: 70%; --veil-edge: 46%; }
html.season-st-patricks .world-photo { background-image: radial-gradient(70% 60% at 85% 10%, rgba(217,166,46,.55), transparent 60%), radial-gradient(80% 70% at 10% 90%, rgba(31,138,59,.6), transparent 65%), linear-gradient(160deg, #cfe8c9, #9fd19f 55%, #6fb47a); --world-sat: 1; }
html.season-st-patricks .world-veil { --veil-center: 66%; --veil-edge: 42%; }
html.season-halloween .world-pattern { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180' %3E%3Ccircle cx='20' cy='30' r='1.1' fill='%23fff'/%3E%3Ccircle cx='92' cy='12' r='0.8' fill='%23fff'/%3E%3Ccircle cx='150' cy='62' r='1.3' fill='%23fff'/%3E%3Ccircle cx='60' cy='112' r='0.7' fill='%23fff'/%3E%3Ccircle cx='132' cy='142' r='1' fill='%23fff'/%3E%3Ccircle cx='30' cy='164' r='0.6' fill='%23fff'/%3E%3Ccircle cx='170' cy='10' r='0.6' fill='%23fff'/%3E%3Ccircle cx='110' cy='80' r='0.5' fill='%23fff'/%3E%3C/svg%3E"); background-size: 180px; opacity: 0.55; mix-blend-mode: normal; --world-drift: 0 0; }
html.season-halloween .world-scene { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 260' preserveAspectRatio='xMidYMax slice'%3E%3Cg fill='%23000'%3E%3Cpath d='M0 260V170C160 132 300 150 450 165S720 176 880 150 1180 120 1340 140 1600 168 1600 168V260Z'/%3E%3Cpath d='M1240 150V40M1240 80l-40-34M1240 96l34-40M1240 62l-18-30M1220 66l-14 6M1262 72l16-6' stroke='%23000' stroke-width='9' fill='none' stroke-linecap='round'/%3E%3Cpath d='M240 160V70M240 104l-30-30M240 116l26-32' stroke='%23000' stroke-width='7' fill='none' stroke-linecap='round'/%3E%3Crect x='560' y='134' width='26' height='40' rx='13'/%3E%3Crect x='620' y='144' width='22' height='32' rx='11'/%3E%3Cpath d='M720 120h8v18h14v8h-14v32h-8v-32h-14v-8h14z'/%3E%3Crect x='980' y='128' width='28' height='42' rx='14'/%3E%3Cpath d='M1440 140h7v14h12v7h-12v26h-7v-26h-12v-7h12z'/%3E%3C/g%3E%3C/svg%3E"); opacity: 0.55; }
html.season-thanksgiving .world-pattern { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260' %3E%3Cg transform='translate(14 18) rotate(-20 20 20) scale(0.55)' fill='%23b4531f'%3E%3Cpath d='M20 2l3 7 6-3-1 8 7-1-4 6 6 3-8 3 2 6-7-2-1 9h-6l-1-9-7 2 2-6-8-3 6-3-4-6 7 1-1-8 6 3z'/%3E%3C/g%3E%3Cg transform='translate(128 6) rotate(30 20 20) scale(0.4)' fill='%23b4531f'%3E%3Cpath d='M20 2l3 7 6-3-1 8 7-1-4 6 6 3-8 3 2 6-7-2-1 9h-6l-1-9-7 2 2-6-8-3 6-3-4-6 7 1-1-8 6 3z'/%3E%3C/g%3E%3Cg transform='translate(196 92) rotate(10 20 20) scale(0.5)' fill='%23b4531f'%3E%3Cpath d='M20 2l3 7 6-3-1 8 7-1-4 6 6 3-8 3 2 6-7-2-1 9h-6l-1-9-7 2 2-6-8-3 6-3-4-6 7 1-1-8 6 3z'/%3E%3C/g%3E%3Cg transform='translate(70 120) rotate(-40 20 20) scale(0.35)' fill='%23b4531f'%3E%3Cpath d='M20 2l3 7 6-3-1 8 7-1-4 6 6 3-8 3 2 6-7-2-1 9h-6l-1-9-7 2 2-6-8-3 6-3-4-6 7 1-1-8 6 3z'/%3E%3C/g%3E%3Cg transform='translate(150 176) rotate(60 20 20) scale(0.45)' fill='%23b4531f'%3E%3Cpath d='M20 2l3 7 6-3-1 8 7-1-4 6 6 3-8 3 2 6-7-2-1 9h-6l-1-9-7 2 2-6-8-3 6-3-4-6 7 1-1-8 6 3z'/%3E%3C/g%3E%3Cg transform='translate(20 200) rotate(15 20 20) scale(0.3)' fill='%23b4531f'%3E%3Cpath d='M20 2l3 7 6-3-1 8 7-1-4 6 6 3-8 3 2 6-7-2-1 9h-6l-1-9-7 2 2-6-8-3 6-3-4-6 7 1-1-8 6 3z'/%3E%3C/g%3E%3Cg transform='translate(230 210) rotate(-10 20 20) scale(0.35)' fill='%23b4531f'%3E%3Cpath d='M20 2l3 7 6-3-1 8 7-1-4 6 6 3-8 3 2 6-7-2-1 9h-6l-1-9-7 2 2-6-8-3 6-3-4-6 7 1-1-8 6 3z'/%3E%3C/g%3E%3C/svg%3E"); background-size: 260px; opacity: 0.08; mix-blend-mode: multiply; --world-drift: -120px 520px; }
html.season-thanksgiving .world-scene { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 260' preserveAspectRatio='xMidYMax slice'%3E%3Cpath d='M0 260V215C300 200 600 222 900 208S1400 200 1600 214V260Z' fill='%23c98a43'/%3E%3Cpath d='M20 260C24 210 14 170 22 150' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='22' cy='146' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M66 260C70 210 60 170 68 152' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='68' cy='148' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M112 260C116 210 106 170 114 154' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='114' cy='150' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M158 260C162 210 152 170 160 156' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='160' cy='152' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M204 260C208 210 198 170 206 158' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='206' cy='154' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M250 260C254 210 244 170 252 160' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='252' cy='156' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M296 260C300 210 290 170 298 162' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='298' cy='158' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M342 260C346 210 336 170 344 164' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='344' cy='160' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M388 260C392 210 382 170 390 166' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='390' cy='162' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M434 260C438 210 428 170 436 168' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='436' cy='164' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M480 260C484 210 474 170 482 130' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='482' cy='126' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M526 260C530 210 520 170 528 132' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='528' cy='128' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M572 260C576 210 566 170 574 134' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='574' cy='130' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M618 260C622 210 612 170 620 136' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='620' cy='132' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M664 260C668 210 658 170 666 138' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='666' cy='134' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M710 260C714 210 704 170 712 140' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='712' cy='136' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M756 260C760 210 750 170 758 142' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='758' cy='138' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M802 260C806 210 796 170 804 144' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='804' cy='140' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M848 260C852 210 842 170 850 146' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='850' cy='142' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M894 260C898 210 888 170 896 148' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='896' cy='144' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M940 260C944 210 934 170 942 150' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='942' cy='146' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M986 260C990 210 980 170 988 152' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='988' cy='148' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1032 260C1036 210 1026 170 1034 154' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1034' cy='150' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1078 260C1082 210 1072 170 1080 156' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1080' cy='152' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1124 260C1128 210 1118 170 1126 158' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1126' cy='154' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1170 260C1174 210 1164 170 1172 160' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1172' cy='156' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1216 260C1220 210 1210 170 1218 162' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1218' cy='158' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1262 260C1266 210 1256 170 1264 164' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1264' cy='160' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1308 260C1312 210 1302 170 1310 166' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1310' cy='162' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1354 260C1358 210 1348 170 1356 168' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1356' cy='164' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1400 260C1404 210 1394 170 1402 130' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1402' cy='126' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1446 260C1450 210 1440 170 1448 132' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1448' cy='128' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1492 260C1496 210 1486 170 1494 134' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1494' cy='130' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1538 260C1542 210 1532 170 1540 136' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1540' cy='132' rx='5' ry='14' fill='%23b8732a'/%3E%3Cpath d='M1584 260C1588 210 1578 170 1586 138' stroke='%239c5a1e' stroke-width='3' fill='none'/%3E%3Cellipse cx='1586' cy='134' rx='5' ry='14' fill='%23b8732a'/%3E%3Cellipse cx='180' cy='238' rx='30' ry='22' fill='%23c0601f'/%3E%3Crect x='177' y='208' width='6' height='10' fill='%235a3a16'/%3E%3Cellipse cx='420' cy='238' rx='22' ry='16' fill='%23c0601f'/%3E%3Crect x='417' y='214' width='6' height='10' fill='%235a3a16'/%3E%3Cellipse cx='760' cy='238' rx='34' ry='26' fill='%23c0601f'/%3E%3Crect x='757' y='204' width='6' height='10' fill='%235a3a16'/%3E%3Cellipse cx='1110' cy='238' rx='26' ry='20' fill='%23c0601f'/%3E%3Crect x='1107' y='210' width='6' height='10' fill='%235a3a16'/%3E%3Cellipse cx='1420' cy='238' rx='30' ry='22' fill='%23c0601f'/%3E%3Crect x='1417' y='208' width='6' height='10' fill='%235a3a16'/%3E%3C/svg%3E"); opacity: 0.16; }
html.season-christmas .world-pattern { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220' %3E%3Cg transform='translate(14 18) rotate(-20 20 20) scale(0.55)' fill='none' stroke='%236f97bb' stroke-width='2.4'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M20 3v34M5.3 11.5l29.4 17M5.3 28.5l29.4-17'/%3E%3Cpath d='M15 6l5 4 5-4M15 34l5-4 5 4M5.5 17l6.2-1.3-2-6M34.5 23l-6.2 1.3 2 6M5.5 23l6.2 1.3-2 6M34.5 17l-6.2-1.3 2-6'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(128 6) rotate(30 20 20) scale(0.4)' fill='none' stroke='%236f97bb' stroke-width='2.4'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M20 3v34M5.3 11.5l29.4 17M5.3 28.5l29.4-17'/%3E%3Cpath d='M15 6l5 4 5-4M15 34l5-4 5 4M5.5 17l6.2-1.3-2-6M34.5 23l-6.2 1.3 2 6M5.5 23l6.2 1.3-2 6M34.5 17l-6.2-1.3 2-6'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(196 92) rotate(10 20 20) scale(0.5)' fill='none' stroke='%236f97bb' stroke-width='2.4'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M20 3v34M5.3 11.5l29.4 17M5.3 28.5l29.4-17'/%3E%3Cpath d='M15 6l5 4 5-4M15 34l5-4 5 4M5.5 17l6.2-1.3-2-6M34.5 23l-6.2 1.3 2 6M5.5 23l6.2 1.3-2 6M34.5 17l-6.2-1.3 2-6'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(70 120) rotate(-40 20 20) scale(0.35)' fill='none' stroke='%236f97bb' stroke-width='2.4'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M20 3v34M5.3 11.5l29.4 17M5.3 28.5l29.4-17'/%3E%3Cpath d='M15 6l5 4 5-4M15 34l5-4 5 4M5.5 17l6.2-1.3-2-6M34.5 23l-6.2 1.3 2 6M5.5 23l6.2 1.3-2 6M34.5 17l-6.2-1.3 2-6'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(150 176) rotate(60 20 20) scale(0.45)' fill='none' stroke='%236f97bb' stroke-width='2.4'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M20 3v34M5.3 11.5l29.4 17M5.3 28.5l29.4-17'/%3E%3Cpath d='M15 6l5 4 5-4M15 34l5-4 5 4M5.5 17l6.2-1.3-2-6M34.5 23l-6.2 1.3 2 6M5.5 23l6.2 1.3-2 6M34.5 17l-6.2-1.3 2-6'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(20 200) rotate(15 20 20) scale(0.3)' fill='none' stroke='%236f97bb' stroke-width='2.4'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M20 3v34M5.3 11.5l29.4 17M5.3 28.5l29.4-17'/%3E%3Cpath d='M15 6l5 4 5-4M15 34l5-4 5 4M5.5 17l6.2-1.3-2-6M34.5 23l-6.2 1.3 2 6M5.5 23l6.2 1.3-2 6M34.5 17l-6.2-1.3 2-6'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(230 210) rotate(-10 20 20) scale(0.35)' fill='none' stroke='%236f97bb' stroke-width='2.4'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M20 3v34M5.3 11.5l29.4 17M5.3 28.5l29.4-17'/%3E%3Cpath d='M15 6l5 4 5-4M15 34l5-4 5 4M5.5 17l6.2-1.3-2-6M34.5 23l-6.2 1.3 2 6M5.5 23l6.2 1.3-2 6M34.5 17l-6.2-1.3 2-6'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); background-size: 220px; opacity: 0.16; mix-blend-mode: multiply; --world-drift: -80px 660px; }
html.season-christmas .world-scene { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 260' preserveAspectRatio='xMidYMax slice'%3E%3Cpath d='M-20 186L-5 186L-20 140L-35 186Z' fill='%231f4d36'/%3E%3Cpath d='M-28 162L-20 140L-12 162Q-20 155 -28 162Z' fill='%23cfe0ec'/%3E%3Cpath d='M-20 215L1 215L-20 169L-41 215Z' fill='%231f4d36'/%3E%3Cpath d='M-32 191L-20 169L-8 191Q-20 184 -32 191Z' fill='%23cfe0ec'/%3E%3Cpath d='M-20 243L7 243L-20 197L-47 243Z' fill='%231f4d36'/%3E%3Cpath d='M-35 219L-20 197L-5 219Q-20 213 -35 219Z' fill='%23cfe0ec'/%3E%3Crect x='-25' y='248' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M44 165L64 165L44 103L24 165Z' fill='%231f4d36'/%3E%3Cpath d='M33 132L44 103L55 132Q44 124 33 132Z' fill='%23cfe0ec'/%3E%3Cpath d='M44 203L72 203L44 141L16 203Z' fill='%231f4d36'/%3E%3Cpath d='M28 171L44 141L60 171Q44 162 28 171Z' fill='%23cfe0ec'/%3E%3Cpath d='M44 241L80 241L44 179L8 241Z' fill='%231f4d36'/%3E%3Cpath d='M24 209L44 179L64 209Q44 200 24 209Z' fill='%23cfe0ec'/%3E%3Crect x='39' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M108 143L133 143L108 66L83 143Z' fill='%231f4d36'/%3E%3Cpath d='M94 103L108 66L122 103Q108 92 94 103Z' fill='%23cfe0ec'/%3E%3Cpath d='M108 191L143 191L108 114L73 191Z' fill='%231f4d36'/%3E%3Cpath d='M89 151L108 114L127 151Q108 140 89 151Z' fill='%23cfe0ec'/%3E%3Cpath d='M108 239L154 239L108 162L62 239Z' fill='%231f4d36'/%3E%3Cpath d='M83 198L108 162L133 198Q108 187 83 198Z' fill='%23cfe0ec'/%3E%3Crect x='103' y='246' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M172 180L189 180L172 129L155 180Z' fill='%231f4d36'/%3E%3Cpath d='M163 153L172 129L181 153Q172 146 163 153Z' fill='%23cfe0ec'/%3E%3Cpath d='M172 211L195 211L172 160L149 211Z' fill='%231f4d36'/%3E%3Cpath d='M159 185L172 160L185 185Q172 177 159 185Z' fill='%23cfe0ec'/%3E%3Cpath d='M172 243L202 243L172 192L142 243Z' fill='%231f4d36'/%3E%3Cpath d='M156 216L172 192L188 216Q172 209 156 216Z' fill='%23cfe0ec'/%3E%3Crect x='167' y='248' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M236 158L258 158L236 92L214 158Z' fill='%231f4d36'/%3E%3Cpath d='M224 124L236 92L248 124Q236 114 224 124Z' fill='%23cfe0ec'/%3E%3Cpath d='M236 199L266 199L236 133L206 199Z' fill='%231f4d36'/%3E%3Cpath d='M219 165L236 133L253 165Q236 155 219 165Z' fill='%23cfe0ec'/%3E%3Cpath d='M236 241L275 241L236 174L197 241Z' fill='%231f4d36'/%3E%3Cpath d='M214 206L236 174L258 206Q236 196 214 206Z' fill='%23cfe0ec'/%3E%3Crect x='231' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M300 137L327 137L300 55L273 137Z' fill='%231f4d36'/%3E%3Cpath d='M285 94L300 55L315 94Q300 82 285 94Z' fill='%23cfe0ec'/%3E%3Cpath d='M300 188L338 188L300 106L262 188Z' fill='%231f4d36'/%3E%3Cpath d='M279 145L300 106L321 145Q300 133 279 145Z' fill='%23cfe0ec'/%3E%3Cpath d='M300 238L348 238L300 156L252 238Z' fill='%231f4d36'/%3E%3Cpath d='M273 195L300 156L327 195Q300 184 273 195Z' fill='%23cfe0ec'/%3E%3Crect x='295' y='246' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M364 173L382 173L364 118L346 173Z' fill='%231f4d36'/%3E%3Cpath d='M354 144L364 118L374 144Q364 136 354 144Z' fill='%23cfe0ec'/%3E%3Cpath d='M364 208L389 208L364 152L339 208Z' fill='%231f4d36'/%3E%3Cpath d='M350 179L364 152L378 179Q364 171 350 179Z' fill='%23cfe0ec'/%3E%3Cpath d='M364 242L397 242L364 187L331 242Z' fill='%231f4d36'/%3E%3Cpath d='M346 213L364 187L382 213Q364 205 346 213Z' fill='%23cfe0ec'/%3E%3Crect x='359' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M428 152L451 152L428 81L405 152Z' fill='%231f4d36'/%3E%3Cpath d='M415 115L428 81L441 115Q428 105 415 115Z' fill='%23cfe0ec'/%3E%3Cpath d='M428 196L461 196L428 125L395 196Z' fill='%231f4d36'/%3E%3Cpath d='M410 159L428 125L446 159Q428 149 410 159Z' fill='%23cfe0ec'/%3E%3Cpath d='M428 240L470 240L428 169L386 240Z' fill='%231f4d36'/%3E%3Cpath d='M405 203L428 169L451 203Q428 193 405 203Z' fill='%23cfe0ec'/%3E%3Crect x='423' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M492 131L520 131L492 44L464 131Z' fill='%231f4d36'/%3E%3Cpath d='M476 85L492 44L508 85Q492 73 476 85Z' fill='%23cfe0ec'/%3E%3Cpath d='M492 184L532 184L492 98L452 184Z' fill='%231f4d36'/%3E%3Cpath d='M470 139L492 98L514 139Q492 126 470 139Z' fill='%23cfe0ec'/%3E%3Cpath d='M492 238L543 238L492 151L441 238Z' fill='%231f4d36'/%3E%3Cpath d='M464 192L492 151L520 192Q492 180 464 192Z' fill='%23cfe0ec'/%3E%3Crect x='487' y='246' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M556 167L576 167L556 107L536 167Z' fill='%231f4d36'/%3E%3Cpath d='M545 136L556 107L567 136Q556 127 545 136Z' fill='%23cfe0ec'/%3E%3Cpath d='M556 204L584 204L556 144L528 204Z' fill='%231f4d36'/%3E%3Cpath d='M541 173L556 144L571 173Q556 164 541 173Z' fill='%23cfe0ec'/%3E%3Cpath d='M556 241L591 241L556 181L521 241Z' fill='%231f4d36'/%3E%3Cpath d='M537 210L556 181L575 210Q556 201 537 210Z' fill='%23cfe0ec'/%3E%3Crect x='551' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M620 146L645 146L620 70L595 146Z' fill='%231f4d36'/%3E%3Cpath d='M606 106L620 70L634 106Q620 95 606 106Z' fill='%23cfe0ec'/%3E%3Cpath d='M620 192L655 192L620 117L585 192Z' fill='%231f4d36'/%3E%3Cpath d='M601 153L620 117L639 153Q620 142 601 153Z' fill='%23cfe0ec'/%3E%3Cpath d='M620 239L665 239L620 164L575 239Z' fill='%231f4d36'/%3E%3Cpath d='M595 200L620 164L645 200Q620 189 595 200Z' fill='%23cfe0ec'/%3E%3Crect x='615' y='246' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M684 182L700 182L684 133L668 182Z' fill='%231f4d36'/%3E%3Cpath d='M675 156L684 133L693 156Q684 149 675 156Z' fill='%23cfe0ec'/%3E%3Cpath d='M684 213L707 213L684 163L661 213Z' fill='%231f4d36'/%3E%3Cpath d='M672 187L684 163L696 187Q684 180 672 187Z' fill='%23cfe0ec'/%3E%3Cpath d='M684 243L713 243L684 194L655 243Z' fill='%231f4d36'/%3E%3Cpath d='M668 217L684 194L700 217Q684 210 668 217Z' fill='%23cfe0ec'/%3E%3Crect x='679' y='248' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M748 161L769 161L748 96L727 161Z' fill='%231f4d36'/%3E%3Cpath d='M736 127L748 96L760 127Q748 118 736 127Z' fill='%23cfe0ec'/%3E%3Cpath d='M748 201L778 201L748 136L718 201Z' fill='%231f4d36'/%3E%3Cpath d='M732 167L748 136L764 167Q748 158 732 167Z' fill='%23cfe0ec'/%3E%3Cpath d='M748 241L786 241L748 176L710 241Z' fill='%231f4d36'/%3E%3Cpath d='M727 207L748 176L769 207Q748 198 727 207Z' fill='%23cfe0ec'/%3E%3Crect x='743' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M812 139L838 139L812 59L786 139Z' fill='%231f4d36'/%3E%3Cpath d='M798 97L812 59L826 97Q812 86 798 97Z' fill='%23cfe0ec'/%3E%3Cpath d='M812 189L849 189L812 109L775 189Z' fill='%231f4d36'/%3E%3Cpath d='M792 147L812 109L832 147Q812 135 792 147Z' fill='%23cfe0ec'/%3E%3Cpath d='M812 239L859 239L812 158L765 239Z' fill='%231f4d36'/%3E%3Cpath d='M786 197L812 158L838 197Q812 185 786 197Z' fill='%23cfe0ec'/%3E%3Crect x='807' y='246' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M876 176L894 176L876 122L858 176Z' fill='%231f4d36'/%3E%3Cpath d='M866 148L876 122L886 148Q876 140 866 148Z' fill='%23cfe0ec'/%3E%3Cpath d='M876 209L901 209L876 155L851 209Z' fill='%231f4d36'/%3E%3Cpath d='M862 181L876 155L890 181Q876 173 862 181Z' fill='%23cfe0ec'/%3E%3Cpath d='M876 242L908 242L876 189L844 242Z' fill='%231f4d36'/%3E%3Cpath d='M859 214L876 189L893 214Q876 206 859 214Z' fill='%23cfe0ec'/%3E%3Crect x='871' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M940 154L963 154L940 85L917 154Z' fill='%231f4d36'/%3E%3Cpath d='M928 118L940 85L952 118Q940 108 928 118Z' fill='%23cfe0ec'/%3E%3Cpath d='M940 197L972 197L940 128L908 197Z' fill='%231f4d36'/%3E%3Cpath d='M923 161L940 128L957 161Q940 151 923 161Z' fill='%23cfe0ec'/%3E%3Cpath d='M940 240L981 240L940 171L899 240Z' fill='%231f4d36'/%3E%3Cpath d='M918 204L940 171L962 204Q940 194 918 204Z' fill='%23cfe0ec'/%3E%3Crect x='935' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1004 133L1032 133L1004 48L976 133Z' fill='%231f4d36'/%3E%3Cpath d='M989 88L1004 48L1019 88Q1004 76 989 88Z' fill='%23cfe0ec'/%3E%3Cpath d='M1004 185L1043 185L1004 101L965 185Z' fill='%231f4d36'/%3E%3Cpath d='M983 141L1004 101L1025 141Q1004 129 983 141Z' fill='%23cfe0ec'/%3E%3Cpath d='M1004 238L1054 238L1004 153L954 238Z' fill='%231f4d36'/%3E%3Cpath d='M977 193L1004 153L1031 193Q1004 181 977 193Z' fill='%23cfe0ec'/%3E%3Crect x='999' y='246' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1068 169L1087 169L1068 111L1049 169Z' fill='%231f4d36'/%3E%3Cpath d='M1057 139L1068 111L1079 139Q1068 130 1057 139Z' fill='%23cfe0ec'/%3E%3Cpath d='M1068 206L1095 206L1068 147L1041 206Z' fill='%231f4d36'/%3E%3Cpath d='M1053 175L1068 147L1083 175Q1068 167 1053 175Z' fill='%23cfe0ec'/%3E%3Cpath d='M1068 242L1102 242L1068 183L1034 242Z' fill='%231f4d36'/%3E%3Cpath d='M1049 211L1068 183L1087 211Q1068 203 1049 211Z' fill='%23cfe0ec'/%3E%3Crect x='1063' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1132 148L1156 148L1132 74L1108 148Z' fill='%231f4d36'/%3E%3Cpath d='M1119 109L1132 74L1145 109Q1132 99 1119 109Z' fill='%23cfe0ec'/%3E%3Cpath d='M1132 194L1166 194L1132 120L1098 194Z' fill='%231f4d36'/%3E%3Cpath d='M1113 155L1132 120L1151 155Q1132 144 1113 155Z' fill='%23cfe0ec'/%3E%3Cpath d='M1132 239L1176 239L1132 166L1088 239Z' fill='%231f4d36'/%3E%3Cpath d='M1108 201L1132 166L1156 201Q1132 190 1108 201Z' fill='%23cfe0ec'/%3E%3Crect x='1127' y='246' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1196 184L1212 184L1196 137L1180 184Z' fill='%231f4d36'/%3E%3Cpath d='M1187 160L1196 137L1205 160Q1196 153 1187 160Z' fill='%23cfe0ec'/%3E%3Cpath d='M1196 214L1218 214L1196 166L1174 214Z' fill='%231f4d36'/%3E%3Cpath d='M1184 189L1196 166L1208 189Q1196 182 1184 189Z' fill='%23cfe0ec'/%3E%3Cpath d='M1196 243L1224 243L1196 196L1168 243Z' fill='%231f4d36'/%3E%3Cpath d='M1181 218L1196 196L1211 218Q1196 212 1181 218Z' fill='%23cfe0ec'/%3E%3Crect x='1191' y='248' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1260 163L1281 163L1260 100L1239 163Z' fill='%231f4d36'/%3E%3Cpath d='M1249 130L1260 100L1271 130Q1260 121 1249 130Z' fill='%23cfe0ec'/%3E%3Cpath d='M1260 202L1289 202L1260 139L1231 202Z' fill='%231f4d36'/%3E%3Cpath d='M1244 169L1260 139L1276 169Q1260 160 1244 169Z' fill='%23cfe0ec'/%3E%3Cpath d='M1260 241L1297 241L1260 178L1223 241Z' fill='%231f4d36'/%3E%3Cpath d='M1240 208L1260 178L1280 208Q1260 199 1240 208Z' fill='%23cfe0ec'/%3E%3Crect x='1255' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1324 142L1350 142L1324 63L1298 142Z' fill='%231f4d36'/%3E%3Cpath d='M1310 100L1324 63L1338 100Q1324 89 1310 100Z' fill='%23cfe0ec'/%3E%3Cpath d='M1324 190L1360 190L1324 112L1288 190Z' fill='%231f4d36'/%3E%3Cpath d='M1304 149L1324 112L1344 149Q1324 138 1304 149Z' fill='%23cfe0ec'/%3E%3Cpath d='M1324 239L1370 239L1324 160L1278 239Z' fill='%231f4d36'/%3E%3Cpath d='M1299 198L1324 160L1349 198Q1324 186 1299 198Z' fill='%23cfe0ec'/%3E%3Crect x='1319' y='246' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1388 178L1405 178L1388 126L1371 178Z' fill='%231f4d36'/%3E%3Cpath d='M1379 151L1388 126L1397 151Q1388 143 1379 151Z' fill='%23cfe0ec'/%3E%3Cpath d='M1388 210L1412 210L1388 158L1364 210Z' fill='%231f4d36'/%3E%3Cpath d='M1375 183L1388 158L1401 183Q1388 176 1375 183Z' fill='%23cfe0ec'/%3E%3Cpath d='M1388 243L1419 243L1388 190L1357 243Z' fill='%231f4d36'/%3E%3Cpath d='M1371 215L1388 190L1405 215Q1388 208 1371 215Z' fill='%23cfe0ec'/%3E%3Crect x='1383' y='248' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1452 157L1474 157L1452 89L1430 157Z' fill='%231f4d36'/%3E%3Cpath d='M1440 121L1452 89L1464 121Q1452 112 1440 121Z' fill='%23cfe0ec'/%3E%3Cpath d='M1452 198L1483 198L1452 131L1421 198Z' fill='%231f4d36'/%3E%3Cpath d='M1435 163L1452 131L1469 163Q1452 153 1435 163Z' fill='%23cfe0ec'/%3E%3Cpath d='M1452 240L1492 240L1452 173L1412 240Z' fill='%231f4d36'/%3E%3Cpath d='M1430 205L1452 173L1474 205Q1452 195 1430 205Z' fill='%23cfe0ec'/%3E%3Crect x='1447' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1516 135L1543 135L1516 52L1489 135Z' fill='%231f4d36'/%3E%3Cpath d='M1501 92L1516 52L1531 92Q1516 80 1501 92Z' fill='%23cfe0ec'/%3E%3Cpath d='M1516 187L1554 187L1516 103L1478 187Z' fill='%231f4d36'/%3E%3Cpath d='M1495 143L1516 103L1537 143Q1516 131 1495 143Z' fill='%23cfe0ec'/%3E%3Cpath d='M1516 238L1565 238L1516 155L1467 238Z' fill='%231f4d36'/%3E%3Cpath d='M1489 195L1516 155L1543 195Q1516 183 1489 195Z' fill='%23cfe0ec'/%3E%3Crect x='1511' y='246' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M1580 172L1599 172L1580 115L1561 172Z' fill='%231f4d36'/%3E%3Cpath d='M1570 142L1580 115L1590 142Q1580 134 1570 142Z' fill='%23cfe0ec'/%3E%3Cpath d='M1580 207L1606 207L1580 150L1554 207Z' fill='%231f4d36'/%3E%3Cpath d='M1566 177L1580 150L1594 177Q1580 169 1566 177Z' fill='%23cfe0ec'/%3E%3Cpath d='M1580 242L1613 242L1580 185L1547 242Z' fill='%231f4d36'/%3E%3Cpath d='M1562 212L1580 185L1598 212Q1580 204 1562 212Z' fill='%23cfe0ec'/%3E%3Crect x='1575' y='247' width='10' height='14' fill='%233b2a1d'/%3E%3Cpath d='M0 260V240C300 228 600 248 900 234S1400 230 1600 238V260Z' fill='%23e3edf4'/%3E%3C/svg%3E"); opacity: 0.2; }
html.season-new-years .world-pattern { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220' %3E%3Cg transform='translate(14 18) rotate(-20 20 20) scale(0.55)' fill='%23f3d27a'%3E%3Cpath d='M20 2l3 15 15 3-15 3-3 15-3-15-15-3 15-3z'/%3E%3C/g%3E%3Cg transform='translate(128 6) rotate(30 20 20) scale(0.4)' fill='%23f3d27a'%3E%3Cpath d='M20 2l3 15 15 3-15 3-3 15-3-15-15-3 15-3z'/%3E%3C/g%3E%3Cg transform='translate(196 92) rotate(10 20 20) scale(0.5)' fill='%23f3d27a'%3E%3Cpath d='M20 2l3 15 15 3-15 3-3 15-3-15-15-3 15-3z'/%3E%3C/g%3E%3Cg transform='translate(70 120) rotate(-40 20 20) scale(0.35)' fill='%23f3d27a'%3E%3Cpath d='M20 2l3 15 15 3-15 3-3 15-3-15-15-3 15-3z'/%3E%3C/g%3E%3Cg transform='translate(150 176) rotate(60 20 20) scale(0.45)' fill='%23f3d27a'%3E%3Cpath d='M20 2l3 15 15 3-15 3-3 15-3-15-15-3 15-3z'/%3E%3C/g%3E%3Cg transform='translate(20 200) rotate(15 20 20) scale(0.3)' fill='%23f3d27a'%3E%3Cpath d='M20 2l3 15 15 3-15 3-3 15-3-15-15-3 15-3z'/%3E%3C/g%3E%3Cg transform='translate(230 210) rotate(-10 20 20) scale(0.35)' fill='%23f3d27a'%3E%3Cpath d='M20 2l3 15 15 3-15 3-3 15-3-15-15-3 15-3z'/%3E%3C/g%3E%3C/svg%3E"); background-size: 220px; opacity: 0.22; mix-blend-mode: normal; --world-drift: 60px -540px; }
html.season-new-years .world-scene { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 260' preserveAspectRatio='xMidYMax slice'%3E%3Crect x='0' y='152' width='91' height='108' fill='%23050913'/%3E%3Crect x='28' y='166' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='64' y='166' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='28' y='188' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='46' y='188' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='82' y='188' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='28' y='210' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='28' y='232' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='64' y='232' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='82' y='232' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='103' y='116' width='67' height='144' fill='%23050913'/%3E%3Crect x='149' y='152' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='131' y='174' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='149' y='174' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='177' y='128' width='73' height='132' fill='%23050913'/%3E%3Crect x='187' y='142' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='223' y='164' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='187' y='186' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='205' y='208' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='266' y='173' width='108' height='87' fill='%23050913'/%3E%3Crect x='348' y='187' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='312' y='231' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='348' y='231' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='379' y='175' width='113' height='85' fill='%23050913'/%3E%3Crect x='389' y='189' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='389' y='211' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='425' y='211' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='443' y='211' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='461' y='233' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='479' y='233' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='498' y='131' width='79' height='129' fill='%23050913'/%3E%3Crect x='508' y='145' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='544' y='145' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='508' y='167' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='508' y='189' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='588' y='175' width='101' height='85' fill='%23050913'/%3E%3Crect x='598' y='189' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='652' y='189' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='598' y='211' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='598' y='233' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='616' y='233' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='702' y='69' width='96' height='191' fill='%23050913'/%3E%3Crect x='712' y='83' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='712' y='105' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='730' y='105' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='766' y='105' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='712' y='127' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='730' y='127' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='784' y='127' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='730' y='149' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='730' y='171' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='766' y='171' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='766' y='193' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='712' y='237' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='766' y='237' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='784' y='237' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='806' y='124' width='110' height='136' fill='%23050913'/%3E%3Crect x='816' y='138' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='834' y='160' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='852' y='160' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='852' y='182' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='834' y='204' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='888' y='204' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='852' y='226' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='834' y='248' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='852' y='248' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='888' y='248' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='927' y='69' width='68' height='191' fill='%23050913'/%3E%3Crect x='937' y='105' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='955' y='105' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='937' y='171' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='955' y='171' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='937' y='193' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='973' y='193' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='955' y='215' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1007' y='62' width='103' height='198' fill='%23050913'/%3E%3Crect x='1017' y='76' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1035' y='76' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1053' y='98' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1071' y='98' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1017' y='120' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1035' y='120' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1053' y='142' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1071' y='142' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1089' y='142' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1017' y='164' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1053' y='164' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1089' y='164' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1071' y='186' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1089' y='186' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1071' y='208' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1089' y='230' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1121' y='84' width='67' height='176' fill='%23050913'/%3E%3Crect x='1131' y='98' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1167' y='98' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1131' y='120' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1149' y='120' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1167' y='142' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1167' y='164' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1167' y='186' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1167' y='230' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1198' y='87' width='115' height='173' fill='%23050913'/%3E%3Crect x='1226' y='101' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1280' y='101' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1226' y='123' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1298' y='123' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1262' y='145' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1280' y='145' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1298' y='145' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1226' y='167' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1244' y='167' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1208' y='189' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1226' y='189' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1298' y='189' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1208' y='211' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1262' y='211' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1226' y='233' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1262' y='233' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1322' y='84' width='120' height='176' fill='%23050913'/%3E%3Crect x='1350' y='98' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1368' y='98' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1404' y='98' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1422' y='98' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1332' y='120' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1350' y='120' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1368' y='120' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1368' y='142' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1404' y='142' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1422' y='142' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1332' y='164' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1386' y='164' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1332' y='186' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1386' y='230' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1404' y='230' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1422' y='230' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1457' y='80' width='82' height='180' fill='%23050913'/%3E%3Crect x='1467' y='94' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1485' y='94' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1503' y='116' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1485' y='138' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1521' y='138' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1521' y='160' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1521' y='182' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1521' y='204' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1485' y='226' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1503' y='226' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1521' y='226' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1485' y='248' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1503' y='248' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1546' y='55' width='60' height='205' fill='%23050913'/%3E%3Crect x='1574' y='69' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1574' y='135' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3Crect x='1556' y='223' width='6' height='8' fill='%23f3d27a' opacity='.55'/%3E%3C/svg%3E"); opacity: 0.5; }
html.season-chinese-new-year .world-pattern { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240' %3E%3Cg transform='translate(14 18) rotate(-20 20 20) scale(0.55)' fill='none' stroke='%23c4161c' stroke-width='0'%3E%3Cpath d='M6 26c0-6 5-10 10-9 1-6 8-9 13-6 4-5 13-3 14 4 6 0 9 6 6 11H8c-1 0-2 0-2 0z' fill='none' stroke-width='2.4'/%3E%3Cpath d='M18 22c2-4 7-4 8 0' fill='none' stroke-width='2'/%3E%3C/g%3E%3Cg transform='translate(128 6) rotate(30 20 20) scale(0.4)' fill='none' stroke='%23c4161c' stroke-width='0'%3E%3Cpath d='M6 26c0-6 5-10 10-9 1-6 8-9 13-6 4-5 13-3 14 4 6 0 9 6 6 11H8c-1 0-2 0-2 0z' fill='none' stroke-width='2.4'/%3E%3Cpath d='M18 22c2-4 7-4 8 0' fill='none' stroke-width='2'/%3E%3C/g%3E%3Cg transform='translate(196 92) rotate(10 20 20) scale(0.5)' fill='none' stroke='%23c4161c' stroke-width='0'%3E%3Cpath d='M6 26c0-6 5-10 10-9 1-6 8-9 13-6 4-5 13-3 14 4 6 0 9 6 6 11H8c-1 0-2 0-2 0z' fill='none' stroke-width='2.4'/%3E%3Cpath d='M18 22c2-4 7-4 8 0' fill='none' stroke-width='2'/%3E%3C/g%3E%3Cg transform='translate(70 120) rotate(-40 20 20) scale(0.35)' fill='none' stroke='%23c4161c' stroke-width='0'%3E%3Cpath d='M6 26c0-6 5-10 10-9 1-6 8-9 13-6 4-5 13-3 14 4 6 0 9 6 6 11H8c-1 0-2 0-2 0z' fill='none' stroke-width='2.4'/%3E%3Cpath d='M18 22c2-4 7-4 8 0' fill='none' stroke-width='2'/%3E%3C/g%3E%3Cg transform='translate(150 176) rotate(60 20 20) scale(0.45)' fill='none' stroke='%23c4161c' stroke-width='0'%3E%3Cpath d='M6 26c0-6 5-10 10-9 1-6 8-9 13-6 4-5 13-3 14 4 6 0 9 6 6 11H8c-1 0-2 0-2 0z' fill='none' stroke-width='2.4'/%3E%3Cpath d='M18 22c2-4 7-4 8 0' fill='none' stroke-width='2'/%3E%3C/g%3E%3Cg transform='translate(20 200) rotate(15 20 20) scale(0.3)' fill='none' stroke='%23c4161c' stroke-width='0'%3E%3Cpath d='M6 26c0-6 5-10 10-9 1-6 8-9 13-6 4-5 13-3 14 4 6 0 9 6 6 11H8c-1 0-2 0-2 0z' fill='none' stroke-width='2.4'/%3E%3Cpath d='M18 22c2-4 7-4 8 0' fill='none' stroke-width='2'/%3E%3C/g%3E%3Cg transform='translate(230 210) rotate(-10 20 20) scale(0.35)' fill='none' stroke='%23c4161c' stroke-width='0'%3E%3Cpath d='M6 26c0-6 5-10 10-9 1-6 8-9 13-6 4-5 13-3 14 4 6 0 9 6 6 11H8c-1 0-2 0-2 0z' fill='none' stroke-width='2.4'/%3E%3Cpath d='M18 22c2-4 7-4 8 0' fill='none' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E"); background-size: 240px; opacity: 0.12; mix-blend-mode: multiply; --world-drift: -260px 0; }
html.season-chinese-new-year .world-scene { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 260' preserveAspectRatio='xMidYMax slice'%3E%3Cpath d='M40 150Q190 118 340 150L310 162H70Z' fill='%238e0f14'/%3E%3Crect x='80' y='162' width='220' height='98' fill='%23a3141a'/%3E%3Ccircle cx='100' cy='188' r='10' fill='%23e8b649'/%3E%3Ccircle cx='280' cy='188' r='10' fill='%23e8b649'/%3E%3Cpath d='M420 190Q530 158 640 190L610 202H450Z' fill='%238e0f14'/%3E%3Crect x='460' y='202' width='140' height='58' fill='%23a3141a'/%3E%3Ccircle cx='480' cy='228' r='10' fill='%23e8b649'/%3E%3Ccircle cx='580' cy='228' r='10' fill='%23e8b649'/%3E%3Cpath d='M700 120Q880 88 1060 120L1030 132H730Z' fill='%238e0f14'/%3E%3Crect x='740' y='132' width='280' height='128' fill='%23a3141a'/%3E%3Ccircle cx='760' cy='158' r='10' fill='%23e8b649'/%3E%3Ccircle cx='1000' cy='158' r='10' fill='%23e8b649'/%3E%3Cpath d='M1120 180Q1240 148 1360 180L1330 192H1150Z' fill='%238e0f14'/%3E%3Crect x='1160' y='192' width='160' height='68' fill='%23a3141a'/%3E%3Ccircle cx='1180' cy='218' r='10' fill='%23e8b649'/%3E%3Ccircle cx='1300' cy='218' r='10' fill='%23e8b649'/%3E%3Cpath d='M1380 150Q1510 118 1640 150L1610 162H1410Z' fill='%238e0f14'/%3E%3Crect x='1420' y='162' width='180' height='98' fill='%23a3141a'/%3E%3Ccircle cx='1440' cy='188' r='10' fill='%23e8b649'/%3E%3Ccircle cx='1580' cy='188' r='10' fill='%23e8b649'/%3E%3C/svg%3E"); opacity: 0.11; }
html.season-valentines .world-pattern { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200' %3E%3Cg transform='translate(14 18) rotate(-20 20 20) scale(0.55)' fill='%23e0245e'%3E%3Cpath d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z'/%3E%3C/g%3E%3Cg transform='translate(128 6) rotate(30 20 20) scale(0.4)' fill='%23e0245e'%3E%3Cpath d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z'/%3E%3C/g%3E%3Cg transform='translate(196 92) rotate(10 20 20) scale(0.5)' fill='%23e0245e'%3E%3Cpath d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z'/%3E%3C/g%3E%3Cg transform='translate(70 120) rotate(-40 20 20) scale(0.35)' fill='%23e0245e'%3E%3Cpath d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z'/%3E%3C/g%3E%3Cg transform='translate(150 176) rotate(60 20 20) scale(0.45)' fill='%23e0245e'%3E%3Cpath d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z'/%3E%3C/g%3E%3Cg transform='translate(20 200) rotate(15 20 20) scale(0.3)' fill='%23e0245e'%3E%3Cpath d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z'/%3E%3C/g%3E%3C/svg%3E"); background-size: 200px; opacity: 0.08; mix-blend-mode: multiply; --world-drift: 40px -480px; }
html.season-valentines .world-scene { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 260' preserveAspectRatio='xMidYMax slice'%3E%3Cfilter id='b'%3E%3CfeGaussianBlur stdDeviation='18'/%3E%3C/filter%3E%3Cg filter='url(%23b)'%3E%3Ccircle cx='120' cy='200' r='90' fill='%23ff8fab' opacity='0.5'/%3E%3Ccircle cx='420' cy='240' r='60' fill='%23ff8fab' opacity='0.4'/%3E%3Ccircle cx='760' cy='190' r='110' fill='%23ff8fab' opacity='0.35'/%3E%3Ccircle cx='1100' cy='230' r='80' fill='%23ff8fab' opacity='0.45'/%3E%3Ccircle cx='1440' cy='200' r='100' fill='%23ff8fab' opacity='0.4'/%3E%3Ccircle cx='260' cy='120' r='40' fill='%23ff8fab' opacity='0.3'/%3E%3Ccircle cx='980' cy='110' r='50' fill='%23ff8fab' opacity='0.3'/%3E%3C/g%3E%3Cpath transform='translate(30 230) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(140 220) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(250 210) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(360 200) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(470 230) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(580 220) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(690 210) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(800 200) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(910 230) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(1020 220) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(1130 210) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(1240 200) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(1350 230) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(1460 220) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3Cpath transform='translate(1570 210) scale(.9)' d='M20 35S4 25 4 14a8 8 0 0 1 16-2 8 8 0 0 1 16 2c0 11-16 21-16 21z' fill='%23e0245e'/%3E%3C/svg%3E"); opacity: 0.22; }
html.season-st-patricks .world-pattern { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220' %3E%3Cg fill='%231f8a3b'%3E%3Cg transform='translate(14 18) rotate(-20 20 20) scale(0.55)' fill='%231f8a3b'%3E%3Ccircle cx='20' cy='11' r='7'/%3E%3Ccircle cx='12' cy='21' r='7'/%3E%3Ccircle cx='28' cy='21' r='7'/%3E%3Cpath d='M19 21h2.4c.3 6 2.3 10 5.6 14l-2 1.4c-3.6-4.3-5.7-9-6-15.4z'/%3E%3C/g%3E%3Cg transform='translate(128 6) rotate(30 20 20) scale(0.4)' fill='%231f8a3b'%3E%3Ccircle cx='20' cy='11' r='7'/%3E%3Ccircle cx='12' cy='21' r='7'/%3E%3Ccircle cx='28' cy='21' r='7'/%3E%3Cpath d='M19 21h2.4c.3 6 2.3 10 5.6 14l-2 1.4c-3.6-4.3-5.7-9-6-15.4z'/%3E%3C/g%3E%3Cg transform='translate(196 92) rotate(10 20 20) scale(0.5)' fill='%231f8a3b'%3E%3Ccircle cx='20' cy='11' r='7'/%3E%3Ccircle cx='12' cy='21' r='7'/%3E%3Ccircle cx='28' cy='21' r='7'/%3E%3Cpath d='M19 21h2.4c.3 6 2.3 10 5.6 14l-2 1.4c-3.6-4.3-5.7-9-6-15.4z'/%3E%3C/g%3E%3Cg transform='translate(70 120) rotate(-40 20 20) scale(0.35)' fill='%231f8a3b'%3E%3Ccircle cx='20' cy='11' r='7'/%3E%3Ccircle cx='12' cy='21' r='7'/%3E%3Ccircle cx='28' cy='21' r='7'/%3E%3Cpath d='M19 21h2.4c.3 6 2.3 10 5.6 14l-2 1.4c-3.6-4.3-5.7-9-6-15.4z'/%3E%3C/g%3E%3Cg transform='translate(150 176) rotate(60 20 20) scale(0.45)' fill='%231f8a3b'%3E%3Ccircle cx='20' cy='11' r='7'/%3E%3Ccircle cx='12' cy='21' r='7'/%3E%3Ccircle cx='28' cy='21' r='7'/%3E%3Cpath d='M19 21h2.4c.3 6 2.3 10 5.6 14l-2 1.4c-3.6-4.3-5.7-9-6-15.4z'/%3E%3C/g%3E%3Cg transform='translate(20 200) rotate(15 20 20) scale(0.3)' fill='%231f8a3b'%3E%3Ccircle cx='20' cy='11' r='7'/%3E%3Ccircle cx='12' cy='21' r='7'/%3E%3Ccircle cx='28' cy='21' r='7'/%3E%3Cpath d='M19 21h2.4c.3 6 2.3 10 5.6 14l-2 1.4c-3.6-4.3-5.7-9-6-15.4z'/%3E%3C/g%3E%3Cg transform='translate(230 210) rotate(-10 20 20) scale(0.35)' fill='%231f8a3b'%3E%3Ccircle cx='20' cy='11' r='7'/%3E%3Ccircle cx='12' cy='21' r='7'/%3E%3Ccircle cx='28' cy='21' r='7'/%3E%3Cpath d='M19 21h2.4c.3 6 2.3 10 5.6 14l-2 1.4c-3.6-4.3-5.7-9-6-15.4z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); background-size: 220px; opacity: 0.09; mix-blend-mode: multiply; --world-drift: -80px 620px; }
html.season-st-patricks .world-scene { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 260' preserveAspectRatio='xMidYMax slice'%3E%3Cpath d='M0 260V150C200 100 420 120 600 160S980 120 1180 110 1500 150 1600 140V260Z' fill='%234cbb63'/%3E%3Cpath d='M0 260V200C260 160 520 190 760 205S1220 170 1600 190V260Z' fill='%232fa84f'/%3E%3Cpath d='M0 260V236C400 218 800 244 1200 228S1600 236 1600 236V260Z' fill='%231f7a3a'/%3E%3C/svg%3E"); opacity: 0.16; }
/* ==== end holiday worlds ==== */

/* Additional seasonal editions, using the supplied photo sets. */
html.season-mothers-day { --paper:#fff9f7; --paper-2:#f8e9ed; --card:#fffdf9; --line:#f0d5df; --brass:#8b375d; --brass-2:#e7a7b9; --sky:#f8e9ed; --deep:#52354b; --display:"Playfair Display", Georgia, serif; --banner:linear-gradient(110deg,#52354b,#8b375d); }
html.season-mothers-day .world-photo { background-image:url('../img/seasonal/mothers-day-main.jpg'); filter:blur(20px) saturate(.55); opacity:.24; }
html.season-mothers-day .world-veil { --veil-center:92%; --veil-edge:75%; }
html.season-mothers-day .world-pattern { background-image:radial-gradient(#e7a7b9 1px,transparent 1.5px); background-size:38px 38px; opacity:.12; --world-drift:40px 120px; }
html.season-mothers-day .world-scene { background:linear-gradient(0deg,#f0d5df,transparent); opacity:.3; }
html.season-mothers-day .hero-photo img { object-position:center; }
html.season-fathers-day { --paper:#fffaf1; --paper-2:#edf1f1; --card:#fffdf9; --line:#d5e1e6; --brass:#315676; --brass-2:#d8aa57; --sky:#edf1f1; --deep:#203a55; --display:"Playfair Display", Georgia, serif; --banner:linear-gradient(110deg,#203a55,#315676); }
html.season-fathers-day .world-photo { background-image:url('../img/seasonal/fathers-day-main.jpg'); filter:blur(20px) saturate(.55); opacity:.24; }
html.season-fathers-day .world-veil { --veil-center:92%; --veil-edge:75%; }
html.season-fathers-day .world-pattern { background-image:radial-gradient(#d8aa57 1px,transparent 1.5px); background-size:38px 38px; opacity:.12; --world-drift:40px 120px; }
html.season-fathers-day .world-scene { background:linear-gradient(0deg,#d5e1e6,transparent); opacity:.3; }
html.season-fathers-day .hero-photo img { object-position:center; }
html.season-independence-day { --paper:#fffaf4; --paper-2:#edf1f7; --card:#fffdf9; --line:#d8dfe9; --brass:#a52e3d; --brass-2:#c8a66a; --sky:#edf1f7; --deep:#233d60; --display:"Playfair Display", Georgia, serif; --banner:linear-gradient(110deg,#233d60,#a52e3d); }
html.season-independence-day .world-photo { background-image:url('../img/seasonal/independence-day-main.jpg'); filter:blur(20px) saturate(.55); opacity:.24; }
html.season-independence-day .world-veil { --veil-center:92%; --veil-edge:75%; }
html.season-independence-day .world-pattern { background-image:radial-gradient(#c8a66a 1px,transparent 1.5px); background-size:38px 38px; opacity:.12; --world-drift:40px 120px; }
html.season-independence-day .world-scene { background:linear-gradient(0deg,#d8dfe9,transparent); opacity:.3; }
html.season-independence-day .hero-photo img { object-position:center; }
html.season-summer { --paper:#f8fcfa; --paper-2:#e7f2ef; --card:#fffdf9; --line:#cde2de; --brass:#176977; --brass-2:#d3a457; --sky:#e7f2ef; --deep:#164858; --display:"Playfair Display", Georgia, serif; --banner:linear-gradient(110deg,#164858,#176977); }
html.season-summer .world-photo { background-image:url('../img/seasonal/summer-main.jpg'); filter:blur(20px) saturate(.55); opacity:.24; }
html.season-summer .world-veil { --veil-center:92%; --veil-edge:75%; }
html.season-summer .world-pattern { background-image:radial-gradient(#d3a457 1px,transparent 1.5px); background-size:38px 38px; opacity:.12; --world-drift:40px 120px; }
html.season-summer .world-scene { background:linear-gradient(0deg,#cde2de,transparent); opacity:.3; }
html.season-summer .hero-photo img { object-position:center; }
html.season-labor-day { --paper:#fffaf0; --paper-2:#f3eadd; --card:#fffdf9; --line:#e4d5bf; --brass:#9a4a24; --brass-2:#c3984f; --sky:#f3eadd; --deep:#533d2d; --display:"Playfair Display", Georgia, serif; --banner:linear-gradient(110deg,#533d2d,#9a4a24); }
html.season-labor-day .world-photo { background-image:url('../img/seasonal/labor-day-main.jpg'); filter:blur(20px) saturate(.55); opacity:.24; }
html.season-labor-day .world-veil { --veil-center:92%; --veil-edge:75%; }
html.season-labor-day .world-pattern { background-image:radial-gradient(#c3984f 1px,transparent 1.5px); background-size:38px 38px; opacity:.12; --world-drift:40px 120px; }
html.season-labor-day .world-scene { background:linear-gradient(0deg,#e4d5bf,transparent); opacity:.3; }
html.season-labor-day .hero-photo img { object-position:center; }
html.season-columbus-day { --paper:#fff9ee; --paper-2:#eee8d9; --card:#fffdf9; --line:#d9dfd5; --brass:#28616b; --brass-2:#c29142; --sky:#eee8d9; --deep:#263f4b; --display:"Playfair Display", Georgia, serif; --banner:linear-gradient(110deg,#263f4b,#28616b); }
html.season-columbus-day .world-photo { background-image:url('../img/seasonal/columbus-day-main.jpg'); filter:blur(20px) saturate(.55); opacity:.24; }
html.season-columbus-day .world-veil { --veil-center:92%; --veil-edge:75%; }
html.season-columbus-day .world-pattern { background-image:radial-gradient(#c29142 1px,transparent 1.5px); background-size:38px 38px; opacity:.12; --world-drift:40px 120px; }
html.season-columbus-day .world-scene { background:linear-gradient(0deg,#d9dfd5,transparent); opacity:.3; }
html.season-columbus-day .hero-photo img { object-position:center; }
html.season-veterans-day { --paper:#fcf9f2; --paper-2:#edf0ec; --card:#fffdf9; --line:#d9ded6; --brass:#773b39; --brass-2:#c2a46b; --sky:#edf0ec; --deep:#283e51; --display:"Playfair Display", Georgia, serif; --banner:linear-gradient(110deg,#283e51,#773b39); }
html.season-veterans-day .world-photo { background-image:url('../img/seasonal/veterans-day-main.jpg'); filter:blur(20px) saturate(.55); opacity:.24; }
html.season-veterans-day .world-veil { --veil-center:92%; --veil-edge:75%; }
html.season-veterans-day .world-pattern { background-image:radial-gradient(#c2a46b 1px,transparent 1.5px); background-size:38px 38px; opacity:.12; --world-drift:40px 120px; }
html.season-veterans-day .world-scene { background:linear-gradient(0deg,#d9ded6,transparent); opacity:.3; }
html.season-veterans-day .hero-photo img { object-position:center; }

html.season-mothers-day h1 { font-style:italic; }
html.season-summer .hero-photo::before { border-radius:45% 45% 4px 4px; }
html.season-veterans-day .world-pattern { animation:none; }
.season-keepsake svg { width:34px; height:34px; }
.season-preview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.season-preview-card { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:var(--card); }
.season-preview-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.season-preview-card div { padding:22px; }
.season-preview-card h2 { font-size:1.6rem; margin:0 0 12px; }
.season-preview-card p { font-size:.9rem; }
.season-preview-card a { display:inline-block; margin:8px 14px 0 0; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:900px) { .season-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .season-preview-grid { grid-template-columns:1fr; } }
/* Illustrated holiday stages and interactive companions. */
html.season-immersive .world-photo { inset:0; filter:none; opacity:1; }
html.season-immersive .world-veil { --veil-center:30%; --veil-edge:0%; }
html.season-immersive .world-pattern { opacity:.07; }
html.season-immersive .world-scene { opacity:0; }
html.season-immersive .hero { background:none; padding-top:44px; }
html.season-immersive .hero > .wrap { padding:32px; border-radius:28px; background:color-mix(in srgb,var(--paper) 88%,transparent); border:1px solid color-mix(in srgb,var(--brass-2) 45%,transparent); box-shadow:0 24px 80px #13263630; backdrop-filter:blur(5px); }
html.season-immersive .hero-logo { width:min(320px,85%); margin:0 0 14px; filter:drop-shadow(0 6px 9px #33220020); }
html.season-immersive .hero-photo img { border:7px solid var(--paper); box-shadow:0 18px 45px #172f3a40; }
html.season-immersive main > section:not(.hero) { background:color-mix(in srgb,var(--paper) 90%,transparent); }
html.season-immersive .section-alt { border-block:1px solid var(--brass-2); }
html.season-mothers-day .world-photo { background-image:url('../img/seasonal/scenes/mothers-day.svg'); }
html.season-fathers-day .world-photo { background-image:url('../img/seasonal/scenes/fathers-day.svg'); }
html.season-independence-day .world-photo { background-image:url('../img/seasonal/scenes/independence-day.svg'); }
html.season-summer .world-photo { background-image:url('../img/seasonal/scenes/summer.svg'); }
html.season-labor-day .world-photo { background-image:url('../img/seasonal/scenes/labor-day.svg'); }
html.season-columbus-day .world-photo { background-image:url('../img/seasonal/scenes/columbus-day.svg'); }
html.season-veterans-day .world-photo { background-image:url('../img/seasonal/scenes/veterans-day.svg'); }
html.season-independence-day .world-veil,html.season-fathers-day .world-veil { opacity:0; }
html.season-mothers-day .hero-photo img { border-radius:48% 48% 12px 12px; }
html.season-fathers-day .hero-photo img { border-color:#694329; transform:rotate(2deg); }
html.season-labor-day .hero-photo img { border-color:#9c6a40; transform:rotate(-1deg); }
html.season-columbus-day .hero-photo img { border:9px double #b48b45; }
html.season-veterans-day .hero-photo img { border:7px solid #d4b978; }
.world-actor { position:absolute; left:24px; bottom:42px; width:150px; padding:0; background:none; border:0; cursor:pointer; pointer-events:auto; filter:drop-shadow(0 6px 5px #182b3930); transform-origin:50% 80%; }
.world-actor svg { display:block; width:100%; height:auto; overflow:visible; }
.world-actor:focus-visible,.world-motion:focus-visible { outline:3px solid #e0a031; outline-offset:6px; }
.world-actor:hover { filter:drop-shadow(0 0 10px #ffe4a2); }
.actor-speech { position:absolute; bottom:105%; left:0; width:210px; padding:13px 16px; border:1px solid #ddc997; border-radius:16px 16px 16px 2px; background:#fffdf4; color:#243544; font:600 14px/1.5 Georgia,serif; opacity:0; transform:translateY(8px); transition:.2s; pointer-events:none; box-shadow:0 6px 20px #0002; }
.talking .actor-speech { opacity:1; transform:none; }
.world-motion { position:absolute; left:26px; bottom:12px; padding:5px 12px; border-radius:20px; background:#fffdf4ed; border:1px solid #c5b58c; color:#263f4b; font:11px/1.4 sans-serif; pointer-events:auto; cursor:pointer; }
.garden-bee { animation:companion-float 4s ease-in-out infinite; }
.bee-wing { transform-box:fill-box; transform-origin:bottom center; animation:wing-flutter .13s ease-in-out infinite alternate; }
.record-dog { animation:dog-groove .8s ease-in-out infinite; }
.dog-head { transform-origin:100px 66px; animation:dog-groove .8s ease-in-out infinite reverse; }
.dog-tail { transform-box:fill-box; transform-origin:bottom left; animation:tail-wag .4s infinite alternate; }
.firework-rocket { animation:companion-float 2.5s ease-in-out infinite; }
.rocket-flame { transform-origin:100px 120px; animation:flame-flicker .18s infinite alternate; }
.firework-rocket.reacting > svg { animation:rocket-launch 1.3s ease-in-out; }
.lake-ducks { animation:lake-glide 14s ease-in-out infinite; }
.duck-main,.duck-baby { animation:duck-bob 2s ease-in-out infinite alternate; }
.duck-baby { animation-delay:-1s; }
.workshop-beaver { animation:dog-groove 2s ease-in-out infinite; }
.beaver-hammer { transform-origin:133px 88px; animation:hammer-work 1.2s ease-in-out infinite; }
.sailing-ship { width:180px; animation:lake-glide 22s ease-in-out infinite; }
.sailing-ship svg { animation:ship-rock 4s ease-in-out infinite; }
.peace-dove { animation:companion-float 6s ease-in-out infinite; }
.dove-wing { transform-origin:87px 95px; animation:dove-flap 3s ease-in-out infinite; }
.lucky-leprechaun { animation:lake-glide 18s ease-in-out infinite; }
.lucky-legs { transform-origin:90px 112px; animation:dog-groove .5s infinite; }
.lucky-coin { transform-box:fill-box; transform-origin:center; animation:coin-turn 2s linear infinite; }
.world-firework { position:absolute; width:1px; height:1px; }
.world-firework i { position:absolute; width:5px; height:5px; border-radius:50%; background:currentColor; box-shadow:0 0 8px currentColor; animation:firework-ray 1.8s ease-out both; }
.world-butterfly { position:absolute; top:25%; right:4%; width:48px; height:48px; animation:butterfly-path 18s ease-in-out infinite; }
.world-butterfly::before,.world-butterfly::after { content:''; position:absolute; width:24px; height:36px; border-radius:70% 20% 70% 30%; background:linear-gradient(45deg,#db7f36,#ffd68b); border:2px solid #8d4355; animation:wing-flutter .4s alternate infinite; }
.world-butterfly::after { left:24px; transform:scaleX(-1); animation-direction:alternate-reverse; }
.world-flag { position:absolute; right:20px; top:170px; width:100px; height:65px; border-left:4px solid #e1c78e; background:repeating-linear-gradient(#a43e4b 0 5px,#fff7e9 5px 10px); transform-origin:left; animation:flag-wave 4s ease-in-out infinite; box-shadow:0 4px 12px #0002; }
.world-flag::before { content:'✦ ✦ ✦\A ✦ ✦ ✦\A ✦ ✦ ✦'; white-space:pre; display:block; width:43px; height:35px; background:#283f67; color:#fff7e9; font:10px/11px serif; text-align:center; }
@keyframes companion-float { 50% { transform:translate(18px,-24px) rotate(4deg); } }
@keyframes wing-flutter { to { transform:scaleX(.45) rotate(15deg); } }
@keyframes dog-groove { 50% { transform:rotate(-5deg) translateY(-3px); } }
@keyframes tail-wag { to { transform:rotate(25deg); } }
@keyframes flame-flicker { to { transform:scaleY(.75); opacity:.6; } }
@keyframes rocket-launch { 30% { transform:translateY(15px); } 65% { transform:translateY(-70vh) rotate(10deg); opacity:0; } 66% { transform:translateY(30px); opacity:0; } }
@keyframes lake-glide { 50% { transform:translateX(90px); } }
@keyframes duck-bob { to { transform:translateY(5px); } }
@keyframes hammer-work { 20%,65% { transform:rotate(-35deg); } 40%,80% { transform:rotate(12deg); } }
@keyframes ship-rock { 50% { transform:rotate(7deg) translateY(-7px); } }
@keyframes dove-flap { 50% { transform:rotate(-17deg) scaleY(.7); } }
@keyframes coin-turn { 50% { transform:scaleX(.1); } }
@keyframes firework-ray { from { opacity:1; transform:rotate(var(--ray)) translateX(0) scale(1.7); } to { opacity:0; transform:rotate(var(--ray)) translateX(150px) scale(.3); } }
@keyframes butterfly-path { 50% { transform:translate(-50px,160px) rotate(-15deg); } }
@keyframes flag-wave { 50% { transform:skewY(5deg) scaleX(.92); } }
html.season-paused .season-fx *,html.season-paused .world-pattern { animation-play-state:paused!important; }
@media(max-width:700px) {
 html.season-immersive .hero > .wrap { padding:24px 20px; border-radius:18px; }
 html.season-immersive .hero { padding-top:25px; }
 html.season-immersive .hero-logo { width:230px; }
 .world-actor { width:95px; left:12px; bottom:40px; }
 .sailing-ship { width:115px; }
 .world-motion { left:12px; }
 .actor-speech { width:180px; font-size:12px; }
 .world-flag { top:150px; width:65px; height:45px; right:10px; }
 .world-butterfly { width:30px; right:10px; }
 @keyframes lake-glide { 50% { transform:translateX(30px); } }
}
@media(prefers-reduced-motion:reduce) { .world-actors * { animation:none!important; transition:none!important; } }
html.season-immersive .hero-logo { width:min(250px,80%); }
html.season-immersive .hero h1 { font-size:clamp(2.5rem,4.5vw,3.7rem); }
@media(max-width:700px) {
 html.season-immersive .hero > .wrap { width:calc(100% - 28px); margin-inline:14px; }
 .world-butterfly { right:24px; }
 .world-actor { width:70px; left:8px; bottom:46px; }
 .sailing-ship { width:90px; }
}

/* Short stories: entrance, motivation, payoff, exit, then a quiet interval. */
.world-actors { --story-duration:32s; }
.world-actors .world-actor { left:0; bottom:38px; animation:story-cross var(--story-duration) linear infinite; }
.world-actors .actor-speech { left:50%; transform:translateX(-50%); }
.world-actors .talking .actor-speech { transform:translateX(-50%); }
.story-prop { position:absolute; bottom:50px; left:0; width:70px; height:70px; pointer-events:none; animation:story-lead var(--story-duration) linear infinite; filter:drop-shadow(0 4px 3px #0003); }
.story-prop svg { width:100%; height:100%; overflow:visible; }
.story-fathers-day .story-prop svg { animation:record-roll 1s linear infinite; }
.story-fathers-day .world-actor svg { animation:dog-groove .35s infinite; }
.story-st-patricks .lucky-coin { display:none; }
.story-st-patricks .story-prop svg { animation:coin-turn .7s linear infinite; }
.story-st-patricks .story-prop { animation-name:story-bouncing-lead; }
.story-summer .duck-baby { display:none; }
.story-summer .world-actor { animation-name:story-duck-parent; }
.story-summer .story-prop { animation-name:story-duckling; width:58px; }
.story-mothers-day .world-butterfly { display:none; }
.story-mothers-day .world-actor { animation-name:story-bee; bottom:80px; }
.story-mothers-day .story-prop { width:90px; height:110px; left:52vw; animation-name:story-flower; }
.story-labor-day .world-actor { animation-name:story-builder; }
.story-labor-day .story-prop { left:53vw; width:120px; animation-name:story-workbench; }
.story-labor-day .beaver-hammer { animation:hammer-work 1s infinite; }
.story-columbus-day .world-actor { animation-name:story-voyage; }
.story-columbus-day .story-prop { left:65vw; width:100px; height:130px; animation-name:story-lighthouse; }
.story-veterans-day .world-flag { display:none; }
.story-veterans-day .world-actor { animation-name:story-delivery; bottom:90px; }
.story-veterans-day .story-prop { left:62vw; width:80px; height:110px; animation-name:story-tribute; }
.story-independence-day .world-actor { left:48vw; animation-name:story-rocket; }
.story-independence-day .story-prop { left:calc(50vw - 100px); bottom:65vh; width:200px; height:200px; animation-name:story-explosion; color:#ffe3a4; }
.story-independence-day .world-actor.reacting > svg { animation:none; }
@keyframes story-cross {
 0%,4% { transform:translateX(-220px); opacity:0; }
 5% { opacity:1; }
 22% { transform:translateX(38vw); }
 26% { transform:translateX(38vw) rotate(-8deg); }
 44% { transform:translateX(calc(100vw + 220px)); opacity:1; }
 45%,100% { transform:translateX(calc(100vw + 220px)); opacity:0; }
}
@keyframes story-lead {
 0%,2% { transform:translateX(-100px); opacity:0; }
 3% { opacity:1; }
 21%,24% { transform:translateX(55vw); }
 41% { transform:translateX(calc(100vw + 100px)); opacity:1; }
 42%,100% { transform:translateX(calc(100vw + 100px)); opacity:0; }
}
@keyframes story-bouncing-lead {
 0%,2% { transform:translate(-100px,0); opacity:0; }
 3% { opacity:1; }
 12% { transform:translate(20vw,-80px); }
 22% { transform:translate(52vw,0); }
 27% { transform:translate(60vw,-65px); }
 41% { transform:translate(calc(100vw + 100px),0); opacity:1; }
 42%,100% { opacity:0; transform:translateX(calc(100vw + 100px)); }
}
@keyframes story-duckling {
 0%,2% { transform:translateX(-90px); opacity:0; }
 3% { opacity:1; }
 16% { transform:translate(48vw,-10px); }
 23% { transform:translate(35vw,0) scaleX(-1); }
 26% { transform:translate(35vw,0); }
 44% { transform:translate(calc(100vw + 100px),-10px); opacity:1; }
 45%,100% { opacity:0; transform:translateX(calc(100vw + 100px)); }
}
@keyframes story-duck-parent {
 0%,6% { transform:translateX(-220px); opacity:0; }
 7% { opacity:1; }
 21%,27% { transform:translateX(18vw); }
 48% { transform:translateX(calc(100vw + 220px)); opacity:1; }
 49%,100% { opacity:0; transform:translateX(calc(100vw + 220px)); }
}
@keyframes story-bee {
 0%,4% { transform:translate(-200px,-150px); opacity:0; }
 5% { opacity:1; }
 18% { transform:translate(42vw,-80px) rotate(10deg); }
 24%,29% { transform:translate(46vw,-10px) rotate(25deg); }
 34% { transform:translate(50vw,-100px); }
 45% { transform:translate(calc(100vw + 200px),-200px); opacity:1; }
 46%,100% { transform:translateX(-200px); opacity:0; }
}
@keyframes story-flower { 0%,8% { opacity:0; transform:scale(.1); } 14%,31% { opacity:1; transform:scale(1); } 35% { opacity:1; transform:scale(1.2); filter:drop-shadow(0 0 15px #ffc469); } 47%,100% { opacity:0; transform:scale(.8); } }
@keyframes story-builder {
 0%,4% { transform:translateX(-200px); opacity:0; } 5% { opacity:1; }
 18%,34% { transform:translateX(43vw); }
 47% { transform:translateX(calc(100vw + 200px)); opacity:1; } 48%,100% { opacity:0; transform:translateX(calc(100vw + 200px)); }
}
@keyframes story-workbench { 0%,10% { opacity:0; transform:translateY(80px); } 16%,35% { opacity:1; transform:none; } 40% { opacity:1; transform:translateY(-8px); } 48%,100% { opacity:0; transform:translateY(80px); } }
@keyframes story-voyage {
 0%,4% { transform:translateX(-250px); opacity:0; } 5% { opacity:1; }
 28% { transform:translate(52vw,-8px); } 35% { transform:translate(62vw,0); }
 50% { transform:translateX(calc(100vw + 250px)); opacity:1; } 51%,100% { opacity:0; transform:translateX(calc(100vw + 250px)); }
}
@keyframes story-lighthouse { 0%,12% { opacity:0; } 18%,42% { opacity:1; } 50%,100% { opacity:0; } }
@keyframes story-delivery {
 0%,4% { transform:translate(-200px,-240px); opacity:0; } 5% { opacity:1; }
 24%,29% { transform:translate(54vw,-25px); } 36% { transform:translate(70vw,-160px); }
 46% { transform:translate(calc(100vw + 200px),-300px); opacity:1; } 47%,100% { opacity:0; transform:translateX(-200px); }
}
@keyframes story-tribute { 0%,12% { opacity:0; } 18%,45% { opacity:1; } 53%,100% { opacity:0; } }
@keyframes story-rocket {
 0%,4% { opacity:0; transform:translateY(220px); } 10%,17% { opacity:1; transform:none; }
 20% { transform:translateY(10px) rotate(-3deg); opacity:1; }
 28% { transform:translateY(-65vh) scale(.4); opacity:1; }
 29%,100% { transform:translateY(-80vh) scale(.1); opacity:0; }
}
@keyframes story-explosion { 0%,28% { opacity:0; transform:scale(0); } 29% { opacity:1; transform:scale(.3); } 33% { opacity:1; transform:scale(1.4); } 40%,100% { opacity:0; transform:scale(1.8); } }
@keyframes record-roll { to { transform:rotate(360deg); } }
html.season-paused .world-actor,html.season-paused .story-prop { visibility:hidden; }
@media(prefers-reduced-motion:reduce) { .world-actor,.story-prop,.world-butterfly,.world-flag { display:none; } }
/* Stable reading surfaces: text never relies on the illustration behind it. */
html.season main > .page-head { background:var(--paper); }
html.season main > .wrap { background:var(--paper); padding-inline:24px; border-radius:16px; }
html.season main > section:not(.hero) { background:var(--paper); }
html.season .site-footer { background:var(--paper); }
html.season:not(.season-halloween):not(.season-new-years) { --muted:#63574f; }
html.season :is(.card,.level,.pack-rail) { background:var(--card); }
/* Keep the Fourth of July navy; use ivory text and warm gold accents. */
html.season-independence-day main > .page-head,
html.season-independence-day #paths { background:#192a49; }
html.season-independence-day .page-head :is(h1,.lede),
html.season-independence-day .path aside :is(h2,blockquote) { color:#fff4dd; }
html.season-independence-day .page-head :is(.eyebrow,.chip),
html.season-independence-day .path aside .eyebrow { color:#ffda92; }
html.season-independence-day .page-head .chip:hover { color:#fff; border-color:#fff; }
html.season-independence-day .page-head::after { opacity:.25; }
.story-fathers-day .dog-tail { transform-origin:57px 100px; transform-box:view-box; animation:dog-natural-wag .55s ease-in-out infinite alternate; }
.story-fathers-day .dog-head { transform-origin:130px 100px; animation:dog-run-head .4s ease-in-out infinite alternate; }
.dog-front-legs { transform-origin:105px 111px; animation:dog-stride .4s ease-in-out infinite alternate; }
.dog-back-legs { transform-origin:80px 110px; animation:dog-stride .4s ease-in-out infinite alternate-reverse; }
@keyframes dog-natural-wag { to { transform:rotate(12deg); } }
@keyframes dog-run-head { to { transform:rotate(-4deg) translateY(-2px); } }
@keyframes dog-stride { from { transform:rotate(-12deg); } to { transform:rotate(14deg); } }

/* Launch from the margin; two rings of color and a lingering glitter finish. */
.story-independence-day .world-actor { left:8px; width:110px; }
.story-independence-day .story-prop { left:-117px; bottom:calc(65vh - 120px); width:360px; height:360px; filter:drop-shadow(0 0 5px #ffe3a4); }
.story-independence-day .story-prop svg { overflow:visible; }
.burst-inner { transform-origin:50px 50px; animation:burst-secondary 32s linear infinite; }
.burst-outer { animation:burst-glitter 32s linear infinite; }
.burst-flash { animation:burst-flash 32s linear infinite; }
@keyframes story-explosion {
 0%,28% { opacity:0; transform:scale(.03); }
 29% { opacity:1; transform:scale(.2); }
 32% { opacity:1; transform:scale(1); }
 36% { opacity:.95; transform:scale(1.15) translateY(5px); }
 42% { opacity:0; transform:scale(1.3) translateY(30px); }
 100% { opacity:0; transform:scale(1.3); }
}
@keyframes burst-secondary { 0%,30% { opacity:0; } 31%,37% { opacity:1; } 41%,100% { opacity:0; } }
@keyframes burst-glitter { 0%,34% { opacity:1; } 35% { opacity:.4; } 36% { opacity:1; } 37% { opacity:.3; } 38% { opacity:.8; } 40%,100% { opacity:0; } }
@keyframes burst-flash { 0%,28% { opacity:0; } 29% { opacity:1; } 31%,100% { opacity:0; } }
@media(max-width:700px) { .story-independence-day .world-actor { width:70px; left:4px; } .story-independence-day .story-prop { left:-111px; width:300px; height:300px; bottom:calc(65vh - 95px); } }

.season-preview-card .season-picture-link { display:block; margin:0; overflow:hidden; }
.season-picture-link img { display:block; transition:transform .3s; }
.season-picture-link:hover img { transform:scale(1.035); }
.season-picture-link:focus-visible { outline:4px solid #936b35; outline-offset:-4px; }
.season-doorway { text-align:center; padding:10px 0 16px; }
.season-doorway a { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; opacity:.65; }
.season-doorway a:hover,.season-doorway a:focus-visible { opacity:1; }
html.season .season-doorway { display:none; }
@media(prefers-reduced-motion:reduce) { .season-picture-link img { transition:none; } }
