/**
 * [2026-10-24 omg669「节日主题」] 全站节日主题: 万圣节 / 感恩节 / 圣诞 / 新年。
 *
 * 怎么挂: 各页 <head> 里 nav.css 后面引用本文件 + /holiday.js; holiday.js 按访客本地日期给 <html> 挂 data-holiday=…,
 * 后台「系统设置 → 节日主题」关掉就不挂, 页面马上回原样。admin.html 不引用。
 *
 * 优先级: 配色变量写在 html:root[data-holiday=…] 上 (0,2,1), 压过 nav.css / index / gallery / account 各自的 :root (0,1,0)
 * 和暗色那套 :root:not([data-theme="light"]) (0,2,0) —— 访客系统是浅色还是暗色都按节日色走。各组件本来就按变量写, 换变量即换肤。
 *
 * 背景画在两层伪元素上, 都是 z-index:-1 + pointer-events:none, 在所有内容下面, 不挡点击:
 *   body::before  固定铺满屏幕: 夜空渐变 + 星星/雪花/彩纸平铺 + 底边一条地面和南瓜/落叶/小树 (滚动时不动)
 *   body::after   贴在页面顶部、跟内容一起滚走: 月亮/蝙蝠/落叶/雪花/彩带。放哪是按 11 种语言 × 8 个页面实测文字位置挑的:
 *                 宽屏(≥1240px)放内容栏右边的留白里; 平板/小笔记本(521–1239px)缩到右上角、导航上面只露一角;
 *                 手机(≤520px, 导航是两行)放第二行右边那块空位。阿拉伯语(rtl)整层左右镜像。
 * 图全是 CSS 渐变 + 内联 SVG data URI, 不加载外部图片。SVG 里 # 写 %23, 不出现裸 %。
 * 文字直接压在背景上的地方(标题/导语/静态页正文)加一层很淡的深色 text-shadow, 背景图在字后面也看得清。
 * 老内核: 不用 inset / min() / :is()。
 */

/* ================= 通用骨架: 只要挂了 data-holiday 就生效 ================= */
html:root[data-holiday] { color-scheme: dark; background: var(--bg); }
html[data-holiday] body,
html[data-holiday] body.page { background: transparent; }
html[data-holiday] body::before {
  content: ""; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: -1; pointer-events: none;
  background-repeat: no-repeat;
}
html[data-holiday] body::after {
  content: ""; position: absolute; top: 0; left: 0; right: 0; margin: 0 auto; max-width: 1240px; height: 440px;
  z-index: -1; pointer-events: none; background-repeat: no-repeat;
}
html[data-holiday][dir="rtl"] body::after { transform: scaleX(-1); }
html[data-holiday] .wrap { text-shadow: 0 1px 2px rgba(4, 2, 14, .55); }
html[data-holiday] .cta,
html[data-holiday] .btn:not(.ghost),
html[data-holiday] .page a.btn { box-shadow: 0 6px 20px color-mix(in srgb, var(--brand) 35%, transparent); }
html[data-holiday] .langcode { background: var(--card); }
html[data-holiday] .cta { border-color: var(--brand-deep); }   /* 首屏主按钮是 <button> 没清边框, 暗色下浏览器默认边框发白 */   /* 语言短码壳透明底, 背景图在后面时补一层底色 */
@media (prefers-reduced-motion: no-preference) {
  html[data-holiday] body::after { animation: hd-in .6s ease-out both; }
}
@keyframes hd-in { from { opacity: 0; } to { opacity: 1; } }

/* ================= 万圣节 10-01 – 11-01: 深紫夜空 + 月亮 + 南瓜灯 + 蝙蝠, 橙色按钮 ================= */
html:root[data-holiday="halloween"] {
  --bg: #170D2E; --card: #251843; --ink: #FBF7FF; --soft: #DCCFF2; --muted: #B2A3D4;
  --line: #3F2D68; --brand: #F26A10; --brand-deep: #D85A08; --mint: #5CD6A2; --alert: #FF8B7B;
  --chip: #34245C;
  --shadow: 0 1px 2px rgba(0,0,0,.35), 0 10px 30px rgba(0,0,0,.45);
  --hd-bat: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 18'><path fill='%230B0518' d='M20 6.5L18.6 3.6 18 7C15.6 5.6 12.5 2.8 6.5 2 8.3 4.6 6.6 7.6 0 8.6 4.2 9.6 6.2 11.8 6.4 15 9 12.2 12 12.6 14 15.6 15 13 16.8 11.8 18.6 12.6L20 16.5 21.4 12.6C23.2 11.8 25 13 26 15.6 28 12.6 31 12.2 33.6 15 33.8 11.8 35.8 9.6 40 8.6 33.4 7.6 31.7 4.6 33.5 2 27.5 2.8 24.4 5.6 22 7L21.4 3.6Z'/></svg>");
  --hd-moon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><defs><radialGradient id='h'><stop offset='.3' stop-color='%23FFE9A8' stop-opacity='.34'/><stop offset='1' stop-color='%23FFE9A8' stop-opacity='0'/></radialGradient><radialGradient id='m' cx='.4' cy='.36' r='.7'><stop offset='0' stop-color='%23FFF8DC'/><stop offset='1' stop-color='%23EFCF7E'/></radialGradient></defs><circle cx='100' cy='100' r='100' fill='url(%23h)'/><circle cx='100' cy='100' r='44' fill='url(%23m)'/><g fill='%23D9B465' opacity='.45'><circle cx='86' cy='88' r='8'/><circle cx='114' cy='80' r='4.5'/><circle cx='112' cy='116' r='10'/><circle cx='82' cy='118' r='4'/></g></svg>");
  --hd-pumpkin: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 100'><path d='M56 20C55 11 57 6 63 2L68 6C62 8 61 13 62 20Z' fill='%235B7A2E'/><path d='M63 13C70 6 79 7 84 13 77 12 70 14 64 18Z' fill='%23759A38'/><ellipse cx='34' cy='60' rx='28' ry='35' fill='%23C24E0A'/><ellipse cx='86' cy='60' rx='28' ry='35' fill='%23C24E0A'/><ellipse cx='48' cy='60' rx='24' ry='38' fill='%23E2640E'/><ellipse cx='72' cy='60' rx='24' ry='38' fill='%23E2640E'/><ellipse cx='60' cy='60' rx='19' ry='39' fill='%23F47B1E'/><ellipse cx='45' cy='40' rx='4' ry='11' fill='%23FFB46B' opacity='.35'/><g fill='%23FFD45C'><path d='M37 52H51L44 39Z'/><path d='M69 52H83L76 39Z'/><path d='M56 63H64L60 56Z'/><path d='M30 68Q60 92 90 68L85 70 81 76 75 71 69 80 63 73 57 80 51 73 45 79 40 71 35 73Z'/></g></svg>");
  --hd-pumpkin-m: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 100'><g opacity='.6'><path d='M56 20C55 11 57 6 63 2L68 6C62 8 61 13 62 20Z' fill='%235B7A2E'/><path d='M63 13C70 6 79 7 84 13 77 12 70 14 64 18Z' fill='%23759A38'/><ellipse cx='34' cy='60' rx='28' ry='35' fill='%23C24E0A'/><ellipse cx='86' cy='60' rx='28' ry='35' fill='%23C24E0A'/><ellipse cx='48' cy='60' rx='24' ry='38' fill='%23E2640E'/><ellipse cx='72' cy='60' rx='24' ry='38' fill='%23E2640E'/><ellipse cx='60' cy='60' rx='19' ry='39' fill='%23F47B1E'/><ellipse cx='45' cy='40' rx='4' ry='11' fill='%23FFB46B' opacity='.35'/><g fill='%23FFD45C'><path d='M37 52H51L44 39Z'/><path d='M69 52H83L76 39Z'/><path d='M56 63H64L60 56Z'/><path d='M30 68Q60 92 90 68L85 70 81 76 75 71 69 80 63 73 57 80 51 73 45 79 40 71 35 73Z'/></g></g></svg>");   /* 手机版: 没有左右留白, 正文会从南瓜上滚过, 调淡一点 */
  --hd-stars: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 260'><g fill='%23FFF4D6'><circle cx='20' cy='30' r='1.2' opacity='.9'/><circle cx='80' cy='12' r='.8' opacity='.6'/><circle cx='140' cy='62' r='1.4' opacity='.8'/><circle cx='212' cy='24' r='1' opacity='.7'/><circle cx='242' cy='112' r='.8' opacity='.5'/><circle cx='30' cy='142' r='1' opacity='.7'/><circle cx='110' cy='122' r='.7' opacity='.5'/><circle cx='182' cy='170' r='1.3' opacity='.85'/><circle cx='62' cy='222' r='.9' opacity='.6'/><circle cx='150' cy='236' r='1.1' opacity='.7'/><circle cx='232' cy='212' r='.7' opacity='.5'/><circle cx='100' cy='190' r='.6' opacity='.4'/></g></svg>");
  --hd-hill: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 80' preserveAspectRatio='none'><path d='M0 46C120 30 240 26 380 40S640 30 800 34 1080 52 1200 40V80H0Z' fill='%230D0720' opacity='.92'/></svg>");
}
html[data-holiday="halloween"] body::before {
  background-image: var(--hd-pumpkin), var(--hd-pumpkin), var(--hd-hill), var(--hd-stars),
    linear-gradient(180deg, #2C1758 0%, #1E1041 42%, #130A28 100%);
  background-position: left 3% bottom 10px, right 110px bottom 6px, left bottom, 0 0, 0 0;
  background-size: 96px auto, 66px auto, 100% 72px, 260px 260px, auto;
  background-repeat: no-repeat, no-repeat, no-repeat, repeat, no-repeat;
}
html[data-holiday="halloween"] body::after {
  background-image: var(--hd-bat), var(--hd-bat), var(--hd-bat), var(--hd-moon);
  background-position: right 122px top 84px, right 14px top 96px, right 40px top 252px, right 0 top 34px;   /* 月亮光晕整圈留在框内, 贴边会切出一道直线 */
  background-size: 28px auto, 20px auto, 40px auto, 230px 230px;
}
@media (max-width: 1239px) {
  html[data-holiday="halloween"] body::after {
    background-position: right 108px top 6px, right 156px top 2px, right 190px top 12px, right -40px top -88px;
    background-size: 24px auto, 16px auto, 14px auto, 160px 160px;
  }
}
@media (max-width: 520px) {
  html[data-holiday="halloween"] body::before {
    background-image: var(--hd-pumpkin-m), var(--hd-pumpkin-m), var(--hd-hill), var(--hd-stars),
      linear-gradient(180deg, #2C1758 0%, #1E1041 42%, #130A28 100%);
    background-position: left 8px bottom 4px, right 78px bottom 2px, left bottom, 0 0, 0 0;
    background-size: 58px auto, 40px auto, 100% 46px, 220px 220px, auto;
  }
  html[data-holiday="halloween"] body::after {
    background-position: right 80px top 60px, right 4px top 104px, right 62px top 100px, right -6px top 24px;
    background-size: 22px auto, 16px auto, 14px auto, 96px 96px;
  }
}

/* ================= 感恩节 11-02 – 11-27: 暖棕秋色 + 落叶 ================= */
html:root[data-holiday="thanksgiving"] {
  --bg: #2A1A10; --card: #3A2617; --ink: #FFF6EA; --soft: #EED8BF; --muted: #C9AA88;
  --line: #553821; --brand: #D2601A; --brand-deep: #B84F10; --mint: #7FCF94; --alert: #FF8F76;
  --chip: #4A311C;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 28px rgba(0,0,0,.4);
  --hd-leaf-r: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path transform='rotate(-18 20 20)' fill='%23C8442B' d='M20 2L23 10 29 7 27 15 35 14 30 20 36 24 27 25 28 32 21 28 20.6 38H19.4L19 28 12 32 13 25 4 24 10 20 5 14 13 15 11 7 17 10Z'/></svg>");
  --hd-leaf-o: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path transform='rotate(24 20 20)' fill='%23E07A22' d='M20 2L23 10 29 7 27 15 35 14 30 20 36 24 27 25 28 32 21 28 20.6 38H19.4L19 28 12 32 13 25 4 24 10 20 5 14 13 15 11 7 17 10Z'/></svg>");
  --hd-leaf-g: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path transform='rotate(62 20 20)' fill='%23E3A92B' d='M20 2L23 10 29 7 27 15 35 14 30 20 36 24 27 25 28 32 21 28 20.6 38H19.4L19 28 12 32 13 25 4 24 10 20 5 14 13 15 11 7 17 10Z'/></svg>");
  --hd-leaves: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300'><g opacity='.16'><ellipse cx='40' cy='50' rx='7' ry='3.5' transform='rotate(30 40 50)' fill='%23E07A22'/><ellipse cx='200' cy='30' rx='6' ry='3' transform='rotate(-40 200 30)' fill='%23E3A92B'/><ellipse cx='130' cy='150' rx='7' ry='3.5' transform='rotate(70 130 150)' fill='%23C8442B'/><ellipse cx='260' cy='190' rx='6' ry='3' transform='rotate(10 260 190)' fill='%23E07A22'/><ellipse cx='60' cy='250' rx='6' ry='3' transform='rotate(-20 60 250)' fill='%23E3A92B'/><ellipse cx='180' cy='270' rx='5' ry='2.5' transform='rotate(50 180 270)' fill='%23C8442B'/></g></svg>");
  --hd-ground: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 80' preserveAspectRatio='none'><path d='M0 50C160 36 300 40 460 48S760 36 940 42 1120 52 1200 46V80H0Z' fill='%23190E07' opacity='.85'/></svg>");
}
html[data-holiday="thanksgiving"] body::before {
  background-image: var(--hd-leaf-r), var(--hd-leaf-g), var(--hd-leaf-o), var(--hd-leaf-o), var(--hd-leaf-r), var(--hd-ground), var(--hd-leaves),
    radial-gradient(ellipse at 80% 0%, rgba(232,150,70,.22), rgba(232,150,70,0) 55%),
    linear-gradient(180deg, #3A2414 0%, #2A1A10 52%, #1D1209 100%);
  background-position: left 2% bottom 14px, left 70px bottom 6px, left 30px bottom 34px, right 120px bottom 10px, right 70px bottom 26px, left bottom, 0 0, 0 0, 0 0;
  background-size: 54px, 40px, 34px, 46px, 32px, 100% 64px, 300px 300px, auto, auto;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat, no-repeat, no-repeat;
}
html[data-holiday="thanksgiving"] body::after {
  background-image: var(--hd-leaf-o), var(--hd-leaf-r), var(--hd-leaf-g), var(--hd-leaf-o);
  background-position: right 24px top 70px, right 110px top 140px, right 40px top 230px, right 20px top 300px;
  background-size: 56px, 40px, 34px, 24px;
}
@media (max-width: 1239px) {
  html[data-holiday="thanksgiving"] body::after {
    background-position: right -16px top -26px, right 70px top 0, right 120px top 2px, right 170px top 6px;
    background-size: 54px, 26px, 20px, 16px;
  }
}
@media (max-width: 520px) {
  html[data-holiday="thanksgiving"] body::before {
    background-position: left 6px bottom 8px, left 50px bottom 4px, left 24px bottom 24px, right 80px bottom 6px, right 40px bottom 18px, left bottom, 0 0, 0 0, 0 0;
    background-size: 36px, 28px, 24px, 30px, 22px, 100% 42px, 240px 240px, auto, auto;
  }
  html[data-holiday="thanksgiving"] body::after {
    background-position: right -4px top 56px, right 50px top 66px, right 84px top 58px, right 6px top 100px;
    background-size: 34px, 22px, 18px, 12px;
  }
}

/* ================= 圣诞 11-28 – 12-26: 深蓝雪夜 + 雪花 + 小圣诞树 ================= */
html:root[data-holiday="christmas"] {
  --bg: #0B1730; --card: #142544; --ink: #F4F8FF; --soft: #CAD7EE; --muted: #96A9CA;
  --line: #24395F; --brand: #E5484D; --brand-deep: #C93338; --mint: #5CC49E; --alert: #FF8C8C;
  --chip: #1D3157;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 28px rgba(0,0,0,.42);
  --hd-flake: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><g stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' fill='none' opacity='.85'><path id='a' d='M20 3V37M20 9L16 5M20 9L24 5M20 31L16 35M20 31L24 35'/><use href='%23a' transform='rotate(60 20 20)'/><use href='%23a' transform='rotate(120 20 20)'/></g></svg>");
  --hd-snow: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 240'><g fill='%23FFFFFF'><circle cx='18' cy='26' r='1.8' opacity='.7'/><circle cx='70' cy='60' r='1.2' opacity='.5'/><circle cx='130' cy='18' r='2.2' opacity='.6'/><circle cx='200' cy='48' r='1.4' opacity='.55'/><circle cx='36' cy='120' r='2.4' opacity='.5'/><circle cx='104' cy='106' r='1' opacity='.45'/><circle cx='170' cy='132' r='1.8' opacity='.65'/><circle cx='226' cy='160' r='1.2' opacity='.5'/><circle cx='60' cy='196' r='1.6' opacity='.6'/><circle cx='140' cy='210' r='2' opacity='.5'/><circle cx='210' cy='226' r='1' opacity='.45'/></g></svg>");
  --hd-tree: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 84'><rect x='26' y='70' width='8' height='12' fill='%236B4426'/><path d='M30 10L48 38H12Z' fill='%232F8A55'/><path d='M30 24L52 56H8Z' fill='%23277548'/><path d='M30 40L56 74H4Z' fill='%231F643C'/><path d='M30 1L32.4 6.6 38.4 7.2 33.8 11 35.3 17 30 13.8 24.7 17 26.2 11 21.6 7.2 27.6 6.6Z' fill='%23FFD45C'/><g fill='%23E5484D'><circle cx='24' cy='34' r='2.2'/><circle cx='38' cy='50' r='2.2'/><circle cx='20' cy='64' r='2.2'/></g><g fill='%23FFD45C'><circle cx='36' cy='32' r='1.8'/><circle cx='24' cy='52' r='1.8'/><circle cx='42' cy='66' r='1.8'/></g></svg>");
  --hd-drift: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 80' preserveAspectRatio='none'><path d='M0 44C140 30 280 34 420 44S700 32 860 36 1100 50 1200 42V80H0Z' fill='%23C9D8EE' opacity='.2'/></svg>");
}
html[data-holiday="christmas"] body::before {
  background-image: var(--hd-tree), var(--hd-tree), var(--hd-tree), var(--hd-drift), var(--hd-snow),
    radial-gradient(ellipse at 50% 0%, rgba(120,160,230,.18), rgba(120,160,230,0) 60%),
    linear-gradient(180deg, #13254A 0%, #0D1B37 48%, #081226 100%);
  background-position: left 3% bottom 8px, left 92px bottom 4px, right 108px bottom 6px, left bottom, 0 0, 0 0, 0 0;
  background-size: 64px auto, 44px auto, 54px auto, 100% 64px, 240px 240px, auto, auto;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, repeat, no-repeat, no-repeat;
}
html[data-holiday="christmas"] body::after {
  background-image: var(--hd-flake), var(--hd-flake), var(--hd-flake), var(--hd-flake);
  background-position: right 24px top 70px, right 110px top 140px, right 40px top 230px, right 20px top 300px;
  background-size: 54px, 34px, 30px, 22px;
}
@media (max-width: 1239px) {
  html[data-holiday="christmas"] body::after {
    background-position: right -14px top -22px, right 70px top 0, right 120px top 2px, right 170px top 6px;
    background-size: 50px, 24px, 18px, 14px;
  }
}
@media (max-width: 520px) {
  html[data-holiday="christmas"] body::before {
    background-position: left 8px bottom 4px, left 58px bottom 2px, right 76px bottom 2px, left bottom, 0 0, 0 0, 0 0;
    background-size: 40px auto, 28px auto, 34px auto, 100% 42px, 200px 200px, auto, auto;
  }
  html[data-holiday="christmas"] body::after {
    background-position: right -2px top 56px, right 50px top 66px, right 84px top 58px, right 6px top 100px;
    background-size: 32px, 20px, 16px, 12px;
  }
}

/* ================= 新年 12-27 – 01-03: 深蓝夜空 + 金色彩带 ================= */
html:root[data-holiday="newyear"] {
  --bg: #0B1028; --card: #151D3E; --ink: #F7F5FF; --soft: #D2D4EE; --muted: #9EA4CE;
  --line: #262F5C; --brand: #C08008; --brand-deep: #A36B04; --mint: #5CC49E; --alert: #FF8C8C;
  --chip: #1F2851;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 28px rgba(0,0,0,.42);
  --hd-streamer: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 420'><g fill='none' stroke-linecap='round'><path d='M20 0C40 40 0 70 20 110S40 180 18 220 30 300 22 340' stroke='%23F2C14E' stroke-width='4'/><path d='M60 0C78 30 44 60 62 96S80 150 60 190' stroke='%23FFE08A' stroke-width='3'/><path d='M98 0C112 36 84 64 100 100S114 170 96 214 108 280 100 310' stroke='%23E8A93A' stroke-width='3.5'/></g><g fill='%23FFE08A'><circle cx='40' cy='250' r='3'/><circle cx='80' cy='230' r='2.2'/><rect x='70' y='280' width='7' height='3.5' transform='rotate(30 73 281)'/><rect x='34' y='370' width='7' height='3.5' transform='rotate(-25 37 371)'/><circle cx='104' cy='350' r='2.4'/></g></svg>");
  --hd-garland: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 30'><g fill='none' stroke-linecap='round'><path d='M0 4Q50 26 100 4T200 4' stroke='%23F2C14E' stroke-width='3'/><path d='M0 2Q50 18 100 2T200 2' stroke='%23FFE08A' stroke-width='1.6' opacity='.8'/></g><g fill='%23F2C14E'><path d='M46 14L50 24 54 14Z'/><path d='M146 14L150 24 154 14Z'/></g><g fill='%23FFE08A'><circle cx='0' cy='5' r='2.4'/><circle cx='100' cy='5' r='2.4'/><circle cx='200' cy='5' r='2.4'/></g></svg>");
  --hd-curl: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'><path d='M6 8C30 2 46 14 36 26S14 34 24 44 50 50 56 40' fill='none' stroke='%23F2C14E' stroke-width='3' stroke-linecap='round'/><g fill='%23FFE08A'><circle cx='50' cy='12' r='2.4'/><rect x='12' y='50' width='6' height='3' transform='rotate(25 15 51)'/><circle cx='8' cy='30' r='1.8'/></g></svg>");
  --hd-confetti: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 260'><g opacity='.5'><rect x='20' y='30' width='5' height='2.5' fill='%23F2C14E' transform='rotate(25 22 31)'/><rect x='150' y='20' width='5' height='2.5' fill='%23FFE08A' transform='rotate(-35 152 21)'/><circle cx='90' cy='90' r='1.6' fill='%23F2C14E'/><rect x='210' y='110' width='5' height='2.5' fill='%23E8A93A' transform='rotate(60 212 111)'/><circle cx='40' cy='170' r='1.4' fill='%23FFFFFF'/><rect x='120' y='180' width='5' height='2.5' fill='%23F2C14E' transform='rotate(-10 122 181)'/><circle cx='230' cy='230' r='1.6' fill='%23FFE08A'/><circle cx='180' cy='60' r='1' fill='%23FFFFFF'/><circle cx='70' cy='240' r='1' fill='%23FFFFFF'/></g></svg>");
  --hd-stars2: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 260'><g fill='%23FFFFFF'><circle cx='30' cy='20' r='1' opacity='.8'/><circle cx='120' cy='50' r='.8' opacity='.6'/><circle cx='200' cy='14' r='1.2' opacity='.7'/><circle cx='60' cy='130' r='.8' opacity='.5'/><circle cx='170' cy='150' r='1.1' opacity='.75'/><circle cx='240' cy='90' r='.7' opacity='.5'/><circle cx='100' cy='220' r='1' opacity='.6'/><circle cx='220' cy='240' r='.8' opacity='.5'/></g></svg>");
}
html[data-holiday="newyear"] body::before {
  background-image: var(--hd-confetti), var(--hd-stars2),
    radial-gradient(ellipse at 50% 0%, rgba(242,193,78,.14), rgba(242,193,78,0) 60%),
    linear-gradient(180deg, #17205A 0%, #0E1538 48%, #080C22 100%);
  background-position: 0 0, 0 0, 0 0, 0 0;
  background-size: 260px 260px, 260px 260px, auto, auto;
  background-repeat: repeat, repeat, no-repeat, no-repeat;
}
html[data-holiday="newyear"] body::after {
  background-image: var(--hd-streamer), var(--hd-streamer);
  background-position: right 8px top 0, left 8px top 0;
  background-size: 120px auto, 120px auto;
}
@media (max-width: 1239px) {
  html[data-holiday="newyear"] body::after {
    background-image: var(--hd-garland);
    background-position: left top; background-size: 134px 20px; background-repeat: repeat-x;
  }
}
@media (max-width: 520px) {
  html[data-holiday="newyear"] body::after {
    background-image: var(--hd-garland), var(--hd-curl);
    background-position: left top, right 4px top 50px; background-size: 100px 15px, 60px 60px; background-repeat: repeat-x, no-repeat;
  }
}
