/* Holiday and season skins. Driven by html[data-theme]. Classic leaves the teal page alone. */
html[data-theme="halloween"]{--th-bg:#12001f;--th-grid:#2a0845;--th-body:#f8fafc;--th-paper:#1a1028;--th-ink:#f8fafc;--th-link:#7dd3fc;--th-hot:#fde047;--th-edge:#fde047;--th-title:#fde047;--th-footer:#7dd3fc}
html[data-theme="thanksgiving"]{--th-bg:#4a250c;--th-grid:#6b3a12;--th-body:#f8fafc;--th-paper:#fff7e8;--th-ink:#111827;--th-link:#0b3d91;--th-hot:#9a3412;--th-edge:#9a3412;--th-title:#fde047;--th-footer:#fde047}
html[data-theme="christmas"]{--th-bg:#0d3b16;--th-grid:#062613;--th-body:#f8fafc;--th-paper:#fffaf0;--th-ink:#111827;--th-link:#0b3d91;--th-hot:#9f1239;--th-edge:#9f1239;--th-title:#fde047;--th-footer:#86efac}
html[data-theme="y2k"]{--th-bg:#070014;--th-grid:#2a0845;--th-body:#f8fafc;--th-paper:#140018;--th-ink:#f8fafc;--th-link:#7dd3fc;--th-hot:#fde047;--th-edge:#fde047;--th-title:#fde047;--th-footer:#7dd3fc}
html[data-theme="valentine"]{--th-bg:#4a0024;--th-grid:#6e0036;--th-body:#f8fafc;--th-paper:#fff0f6;--th-ink:#111827;--th-link:#9f1239;--th-hot:#9f1239;--th-edge:#9f1239;--th-title:#fde047;--th-footer:#fde047}
html[data-theme="patrick"]{--th-bg:#064018;--th-grid:#0b5d1e;--th-body:#f8fafc;--th-paper:#f3fff3;--th-ink:#111827;--th-link:#0b3d91;--th-hot:#166534;--th-edge:#166534;--th-title:#fde047;--th-footer:#fde047}
html[data-theme="july4"]{--th-bg:#0b1f4b;--th-grid:#16336e;--th-body:#f8fafc;--th-paper:#f7f9ff;--th-ink:#111827;--th-link:#0b3d91;--th-hot:#9f1239;--th-edge:#0b3d91;--th-title:#fde047;--th-footer:#fde047}
html[data-theme="spring"]{--th-bg:#e7fff4;--th-grid:#b7f0d0;--th-body:#111827;--th-paper:#fff8fd;--th-ink:#111827;--th-link:#0b3d91;--th-hot:#9d174d;--th-edge:#0b3d91;--th-title:#0b3d91;--th-footer:#0b3d91}
html[data-theme="summer"]{--th-bg:#dff7fb;--th-grid:#b7e7ef;--th-body:#111827;--th-paper:#fff8f4;--th-ink:#111827;--th-link:#0b3d91;--th-hot:#9a3412;--th-edge:#0b3d91;--th-title:#0b3d91;--th-footer:#0b3d91}
html[data-theme="earlyautumn"]{--th-bg:#f6e6c4;--th-grid:#e4c48a;--th-body:#111827;--th-paper:#fff8ee;--th-ink:#111827;--th-link:#0b3d91;--th-hot:#9a3412;--th-edge:#9a3412;--th-title:#111827;--th-footer:#0b3d91}
html[data-theme="winter"]{--th-bg:#e7f6ff;--th-grid:#b9e4f5;--th-body:#111827;--th-paper:#f7fdff;--th-ink:#111827;--th-link:#0b3d91;--th-hot:#0b3d91;--th-edge:#0b3d91;--th-title:#0b3d91;--th-footer:#0b3d91}

html[data-theme]:not([data-theme="classic"]) body{
 background-color:var(--th-bg);
 background-image:linear-gradient(var(--th-grid) 1px,transparent 1px),linear-gradient(90deg,var(--th-grid) 1px,transparent 1px);
 color:var(--th-body);
}
html[data-theme]:not([data-theme="classic"]) body:not(.chat-page):not(.board-page):not(.night) main.wrap{
 background:var(--th-paper);
 color:var(--th-ink);
 border:4px ridge var(--th-edge);
}
html[data-theme]:not([data-theme="classic"]) .era-top{background:var(--th-bg);color:var(--th-body);border-bottom:3px solid var(--th-edge);position:relative}
html[data-theme]:not([data-theme="classic"]) .wordart-row{background:var(--th-bg);border:3px ridge var(--th-edge)}
html[data-theme]:not([data-theme="classic"]) .wordart{color:var(--th-title);text-shadow:none;transform:none}
html[data-theme]:not([data-theme="classic"]) .site-header{border-bottom:3px solid var(--th-edge)}
html[data-theme]:not([data-theme="classic"]) .site-footer{background:var(--th-bg);color:var(--th-body)}
html[data-theme]:not([data-theme="classic"]) .site-footer a{color:var(--th-footer)}
html[data-theme]:not([data-theme="classic"]) .hero h1,
html[data-theme]:not([data-theme="classic"]) .hero p,
html[data-theme]:not([data-theme="classic"]) .empty,
html[data-theme]:not([data-theme="classic"]) .profile-head h1,
html[data-theme]:not([data-theme="classic"]) .mood{color:var(--th-ink);text-shadow:none}
html[data-theme]:not([data-theme="classic"]) .profile-head,
html[data-theme]:not([data-theme="classic"]) .sparkle,
html[data-theme]:not([data-theme="classic"]) .network{color:var(--th-ink)}
html[data-theme]:not([data-theme="classic"]) .sparkle{text-shadow:none}
html[data-theme]:not([data-theme="classic"]) .box,
html[data-theme]:not([data-theme="classic"]) .card{
 background:var(--th-paper);color:var(--th-ink);border-color:var(--th-edge);
}
html[data-theme]:not([data-theme="classic"]) .choice{
 background:var(--th-paper);color:var(--th-link);border-color:var(--th-edge);
}
html[data-theme]:not([data-theme="classic"]) .choice-title{color:var(--th-link)}
html[data-theme]:not([data-theme="classic"]) .choice-text,
html[data-theme]:not([data-theme="classic"]) .about-line,
html[data-theme]:not([data-theme="classic"]) .about-line b{color:var(--th-ink)}
html[data-theme]:not([data-theme="classic"]) .choice:hover{background:var(--th-bg);color:var(--th-body)}
html[data-theme]:not([data-theme="classic"]) .choice:hover .choice-text,
html[data-theme]:not([data-theme="classic"]) .choice:hover .choice-title{color:var(--th-body)}
html[data-theme]:not([data-theme="classic"]) .choices{background:var(--th-edge)}
html[data-theme]:not([data-theme="classic"]) .choice-locked,
html[data-theme]:not([data-theme="classic"]) .choice-locked:visited,
html[data-theme]:not([data-theme="classic"]) .choice-locked:hover{background:#000;color:#86efac}
html[data-theme]:not([data-theme="classic"]) .choice-locked .choice-title,
html[data-theme]:not([data-theme="classic"]) .choice-locked:hover .choice-title{color:#86efac}
html[data-theme]:not([data-theme="classic"]) .choice-locked .choice-text,
html[data-theme]:not([data-theme="classic"]) .choice-locked:hover .choice-text{color:#e2e8f0}
html[data-theme]:not([data-theme="classic"]) main a:not(.btn):not(.choice):not(.brand):not(.wiki-row):not(.topic):not(.guestbook){color:var(--th-link)}
html[data-theme]:not([data-theme="classic"]) main a:visited:not(.btn):not(.choice):not(.brand):not(.wiki-row):not(.topic):not(.guestbook){color:var(--th-link)}
html[data-theme]:not([data-theme="classic"]) .card h3{color:var(--th-ink)}
html[data-theme="retro"] input,
html[data-theme="retro"] textarea,
html[data-theme="retro"] select{background:#fff;color:#111827}
html[data-theme]:not([data-theme="classic"]) body.night{background:var(--th-bg);color:var(--th-body)}
html[data-theme]:not([data-theme="classic"]) body.night .night-main{border-color:var(--th-edge)}

html[data-theme="retro"] .theme-switch{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:#d4d0c8;color:#111827;font:700 12px -apple-system, BlinkMacSystemFont, "Segoe UI", Tahoma, Verdana, Roboto, Helvetica, Arial, sans-serif;border-top:2px solid #fff;border-left:2px solid #fff;border-right:2px solid #404040;border-bottom:2px solid #404040;padding:2px 6px}
html[data-theme="retro"] .theme-switch select{font:700 16px -apple-system, BlinkMacSystemFont, "Segoe UI", Tahoma, Verdana, Roboto, Helvetica, Arial, sans-serif;min-height:44px;max-width:min(100vw - 48px,280px);background:#fff;color:#111827;border:2px inset #808080;padding:4px 6px}

.era-top{position:relative}
.theme-sky{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.wordart-row,.era-toys{position:relative;z-index:2}
.theme-sprites{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.theme-sprites:empty{display:none}
html[data-theme]:not([data-theme="classic"]) .torch{display:none}
html[data-theme]:not([data-theme="classic"]) .wordart{flex:1 1 auto;min-width:0;overflow:hidden;transform:none;font-size:clamp(14px,3.6vw,28px)}
html[data-theme]:not([data-theme="classic"]) .wordart .scroll{display:inline-block;white-space:nowrap;padding-left:100%;animation:theme-marquee 14s linear infinite}

.px-pumpkin,.px-bat,.px-turkey,.px-heart,.px-clover,.px-leaf,.px-snow,.px-bloom,.px-wave,.px-fw-inline,.px-bat-fly{display:inline-block;position:relative;width:28px;height:28px;flex:0 0 auto}
.px-pumpkin::before,.px-bat::before,.px-turkey::before,.px-heart::before,.px-clover::before,.px-leaf::before,.px-snow::before,.px-bloom::before,.px-wave::before,.px-fw::before,.px-fw-inline::before,.px-bat-fly::before{content:"";position:absolute;left:2px;top:2px;width:4px;height:4px}
.px-pumpkin::before{box-shadow:4px 0 #33ff33,0 4px #ff6600,4px 4px #ff8800,8px 4px #ff6600,-4px 8px #ff6600,0 8px #111,4px 8px #ff6600,8px 8px #111,12px 8px #ff6600,-4px 12px #e65100,0 12px #ff6600,4px 12px #ff8800,8px 12px #ff6600,12px 12px #e65100,0 16px #ff6600,4px 16px #e65100,8px 16px #ff6600;animation:pump-flicker .2s steps(2) infinite}
.px-bat::before,.px-bat-fly::before{box-shadow:0 4px #111,4px 0 #1a0010,8px 4px #33ff33,12px 0 #1a0010,16px 4px #111,4px 8px #222,8px 8px #111,12px 8px #222}
.px-bat,.px-bat-b{animation:bat-bob 1.6s steps(2) infinite}
.px-bat-b{animation-duration:2.1s}
.px-leaf::before{box-shadow:4px 0 #d4a017,0 4px #e07a1f,4px 4px #d4a017,8px 4px #8b2500,4px 8px #e07a1f,8px 12px #6b3a12}
.px-leaf-b::before{box-shadow:4px 0 #c0392b,0 4px #e67e22,4px 4px #f1c40f,8px 4px #d35400,4px 8px #c0392b,8px 12px #6b3a12}
.px-turkey::before{box-shadow:8px 0 #5c3310,12px 0 #5c3310,4px 4px #8b4513,8px 4px #ff6600,12px 4px #8b4513,16px 4px #e07a1f,0 8px #d4a017,4px 8px #6b3a12,8px 8px #3b1d08,12px 8px #ffcc00,16px 8px #6b3a12,20px 8px #d4a017,4px 12px #6b3a12,8px 12px #8b4513,12px 12px #6b3a12,6px 16px #e07a1f,14px 16px #e07a1f}
.px-heart::before{box-shadow:0 0 #ff1493,4px 0 #ff69b4,12px 0 #c00040,16px 0 #ff1493,0 4px #ff1493,4px 4px #fff,8px 4px #ff1493,12px 4px #ff69b4,16px 4px #c00040,4px 8px #ff1493,8px 8px #c00040,12px 8px #ff1493,8px 12px #c00040}
.px-heart-b::before{box-shadow:0 0 #c00040,4px 0 #ff1493,12px 0 #ff69b4,16px 0 #c00040,0 4px #c00040,4px 4px #ff1493,8px 4px #fff,12px 4px #ff1493,16px 4px #c00040,4px 8px #ff1493,8px 8px #ff69b4,12px 8px #c00040,8px 12px #ff1493}
.px-clover::before{box-shadow:0 0 #00a000,4px 0 #18c018,12px 0 #ffd700,16px 0 #00a000,0 4px #008000,4px 4px #00c000,8px 4px #ffd700,12px 4px #00c000,16px 4px #008000,8px 8px #006400,8px 12px #228b22,8px 16px #064018}
.px-snow::before{background:#fff;box-shadow:8px 2px #e7f6ff,2px 8px #fff,10px 10px #dff}
.px-bloom::before{box-shadow:4px 0 #ff77cc,0 4px #fff,4px 4px #ffe14a,8px 4px #7af0ff,4px 8px #ff3eaa}
.px-bloom-b::before{box-shadow:4px 0 #7af0ff,0 4px #ff3eaa,4px 4px #fff,8px 4px #ffe14a,4px 8px #7af0ff}
.px-wave::before{box-shadow:0 8px #0aa0b4,4px 4px #7fe7f0,8px 8px #ff6f61,12px 4px #0aa0b4,16px 8px #7fe7f0,20px 4px #ff6f61}
.px-fw::before,.px-fw-inline::before{box-shadow:0 0 #fff,-8px -8px #ff2bd6,8px -8px #0ff,-12px 0 #ffd700,12px 0 #ff2bd6,-8px 8px #0ff,8px 8px #ffd700,0 -12px #fff,0 12px #fff;animation:fw-pop 1.4s steps(2) infinite}
.px-fw-inline{animation:fw-pop 1.4s steps(2) infinite}

.theme-sky .px-fw,.theme-sky .px-bat-fly,.theme-sky .px-fall,.theme-sky .px-snow-fall{position:absolute}
.theme-sky .px-fw:nth-child(1){left:8%;top:8px}
.theme-sky .px-fw:nth-child(2){left:22%;top:36px;animation-delay:.3s}
.theme-sky .px-fw:nth-child(3){left:40%;top:12px;animation-delay:.6s}
.theme-sky .px-fw:nth-child(4){left:58%;top:40px;animation-delay:.15s}
.theme-sky .px-fw:nth-child(5){left:74%;top:10px;animation-delay:.45s}
.theme-sky .px-fw:nth-child(6){left:88%;top:32px;animation-delay:.75s}
.theme-sky .px-bat-fly{top:14px;animation:bat-cross 8s linear infinite}
.theme-sky .px-bat-fly:nth-child(2){top:42px;animation-duration:11s;animation-delay:-4s}
.px-fall{animation:fall 7s linear infinite}
.px-snow-fall{width:4px;height:4px;background:#fff;animation:fall 9s linear infinite}
.theme-sky .px-fall:nth-child(1),.theme-sky .px-snow-fall:nth-child(1){left:6%}
.theme-sky .px-fall:nth-child(2),.theme-sky .px-snow-fall:nth-child(2){left:16%;animation-delay:-1s;animation-duration:8s}
.theme-sky .px-fall:nth-child(3),.theme-sky .px-snow-fall:nth-child(3){left:28%;animation-delay:-2s}
.theme-sky .px-fall:nth-child(4),.theme-sky .px-snow-fall:nth-child(4){left:38%;animation-delay:-3s;animation-duration:6.5s}
.theme-sky .px-fall:nth-child(5),.theme-sky .px-snow-fall:nth-child(5){left:50%;animation-delay:-1.5s}
.theme-sky .px-fall:nth-child(6),.theme-sky .px-snow-fall:nth-child(6){left:62%;animation-delay:-4s;animation-duration:8.5s}
.theme-sky .px-fall:nth-child(7),.theme-sky .px-snow-fall:nth-child(7){left:74%;animation-delay:-2.5s}
.theme-sky .px-fall:nth-child(8),.theme-sky .px-snow-fall:nth-child(8){left:84%;animation-delay:-.6s}
.theme-sky .px-snow-fall:nth-child(9){left:32%;animation-delay:-5s}
.theme-sky .px-snow-fall:nth-child(10){left:68%;animation-delay:-3.4s}
.theme-sky .px-snow-fall:nth-child(11){left:46%;animation-delay:-6s}
.theme-sky .px-snow-fall:nth-child(12){left:92%;animation-delay:-1.2s}

.xmas-lights{display:flex;justify-content:space-between;align-items:center;gap:4px;height:16px;margin:0 0 4px;padding:0 6px;background:#063b12;border-top:3px ridge #d4af37;border-bottom:2px solid #8b0000;position:relative;z-index:2}
.xmas-lights i{width:8px;height:8px;background:#ff1744;display:block;flex:0 0 8px;animation:bulb .7s steps(2) infinite}
.xmas-lights i:nth-child(4n+2){background:#ffd600;animation-delay:.2s}
.xmas-lights i:nth-child(4n+3){background:#00e676;animation-delay:.4s}
.xmas-lights i:nth-child(4n){background:#2979ff;animation-delay:.55s}
.y2k-banner{overflow:hidden;background:#000;color:#ffd700;border-top:3px solid #0ff;border-bottom:3px solid #ff2bd6;font:700 16px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;margin:0 0 4px;position:relative;z-index:2}
.y2k-banner span{display:inline-block;white-space:nowrap;padding-left:100%;animation:theme-marquee 12s linear infinite}

@keyframes theme-marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@keyframes pump-flicker{50%{opacity:.45}}
@keyframes bat-bob{50%{transform:translateY(-6px)}}
@keyframes bat-cross{from{left:-32px}to{left:100%}}
@keyframes fall{from{transform:translateY(-24px)}to{transform:translateY(220px)}}
@keyframes fw-pop{0%{opacity:1;transform:scale(.45)}50%{opacity:1;transform:scale(1)}100%{opacity:.2;transform:scale(1.15)}}
@keyframes bulb{50%{opacity:.2}}

@media(max-width:430px){
 .theme-switch{flex:1 1 100%}
 .theme-switch select{flex:1 1 auto;width:100%}
}
@media(prefers-reduced-motion:reduce){
 .wordart .scroll,.y2k-banner span,.px-bat,.px-bat-b,.px-bat-fly,.px-fall,.px-snow-fall,.px-fw::before,.px-fw-inline,.px-pumpkin::before,.xmas-lights i{animation:none}
 html[data-theme]:not([data-theme="classic"]) .wordart .scroll{padding-left:0;white-space:normal}
}
@media print{
 .theme-sky,.theme-sprites,.xmas-lights,.y2k-banner,.theme-switch{display:none!important}
}
