/* Halloween theme: active only when <html class="hw"> (Halloween pack + before Nov 3). Pure CSS/SVG, no images. */
@font-face{font-family:Creepster;src:url(/assets/fonts/creepster.woff2) format("woff2");font-display:swap}
.hw body{background:radial-gradient(ellipse at 50% -10%,#4a1d6e 0,#1a0b29 45%,#07030c 100%) fixed;color:#f6ecff}
.hw .card{background:linear-gradient(180deg,#22113a,#170b26);color:#f6ecff;border:1px solid #ff7a1a55;box-shadow:0 0 0 1px #000,0 18px 44px #000a,inset 0 0 40px #ff7a1a14;position:relative;overflow:hidden}
.hw .card::before,.hw .card::after{content:"";position:absolute;width:74px;height:74px;pointer-events:none;opacity:.55;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80' fill='none' stroke='%23e9dcff' stroke-width='1'%3E%3Cpath d='M0 0L80 80M0 0L40 80M0 0L80 40M0 0L0 80M0 0L80 0'/%3E%3Cpath d='M0 18Q9 9 18 0M0 36Q18 18 36 0M0 54Q27 27 54 0M0 72Q36 36 72 0'/%3E%3C/svg%3E") no-repeat}
.hw .card::before{top:0;left:0}.hw .card::after{top:0;right:0;transform:scaleX(-1)}
.hw h1,.hw h2,.hw .hwt{font-family:Creepster,ui-rounded,system-ui,sans-serif;font-weight:400;letter-spacing:1px;color:#ff8a1f;text-shadow:0 0 12px #ff6a0066,0 2px 0 #000}
.hw h1{font-size:36px}.hw h2{font-size:25px}
.hw .muted{color:#c9b3e6}.hw .bub{background:#2f1a48;color:#ffe9c9;border:1px solid #ff8a1f44}
.hw .jubi .av{background:radial-gradient(circle at 50% 60%,#ffb347,#e8590c);position:relative;box-shadow:0 0 16px #ff7a1a88;overflow:visible}
.hw .jubi .av::before{content:"";position:absolute;left:-6px;top:-22px;width:58px;height:34px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 34'%3E%3Cpath d='M30 1C27 9 22 16 18 26L40 26C37 16 34 6 30 1Z' fill='%23281238'/%3E%3Cpath d='M30 1Q38 3 41 9' stroke='%23281238' stroke-width='3' fill='none'/%3E%3Cellipse cx='29' cy='27' rx='28' ry='6' fill='%23281238'/%3E%3Crect x='19' y='20' width='21' height='4' fill='%23ff8a1f'/%3E%3C/svg%3E") no-repeat;transform:rotate(-8deg);z-index:2}
.hw .q{color:#fff}.hw .o button,.hw .lv button{background:#2a173f;border-color:#4d2d6e;color:#fff}.hw .lv button small{color:#d6c2ef}.hw .lv button.on{border-color:#ff8a1f;background:#3b1f58;box-shadow:0 0 14px #ff7a1a55}
.hw .o button:hover{border-color:#ff8a1f}.hw .o button.ok{background:#0f4a33;border-color:#3ddc97}.hw .o button.no{background:#5a1424;border-color:#ff4d6d}.hw .o button.gone{opacity:.25;text-decoration:line-through}
.hw .btn{background:linear-gradient(135deg,#ff8a1f,#d9480f);color:#1a0b29;box-shadow:0 6px 20px #ff6a0044}.hw .btn.alt{background:transparent;color:#ffcf99;border:2px solid #ff8a1f88;box-shadow:none}.hw .btn.gold{background:linear-gradient(135deg,#a855f7,#6d28d9);color:#fff}
.hw input[type=text],.hw input[type=email],.hw select{background:#1d0f2d;color:#fff;border-color:#4d2d6e}.hw .ck a,.hw .card a{color:#ffb066}
.hw .optbox{background:#2a173f}.hw .fact{background:#2d1a10;color:#ffd9a8;border:1px solid #ff8a1f44}.hw .st div{background:#2a173f;color:#d6c2ef}.hw .st b,.hw .hud,.hw .big{color:#ff9d3b}
.hw .big{text-shadow:0 0 18px #ff6a0099}.hw .pill{background:#3b1f58;color:#ffe1bd}.hw .tabs button{background:#2a173f;color:#ffcf99;border-color:#4d2d6e}.hw .tabs button.on{background:#ff8a1f;color:#1a0b29;border-color:#ff8a1f}
.hw .lb li{border-color:#3b2357}.hw .lb li.me{background:#3b1f10}.hw .lb .r{color:#ff9d3b}.hw .tm{background:#2a173f}.hw .tm i{background:linear-gradient(90deg,#7c3aed,#ff8a1f,#ff3b3b)}
.hw .sk{color:#d6c2ef}.hw .sk b{background:#2a173f}.hw .sk b.on{background:radial-gradient(circle,#ffb347,#e8590c);border-radius:50% 50% 45% 45%}
.hw .cta{background:linear-gradient(135deg,#3b0f5c,#7a2e0e);border:1px solid #ff8a1f66}.hw .err{color:#ff8fa3}.hw .ft{color:#c9b3e6}
/* scene */
#hwfx{display:none}.hw #hwfx{display:block;position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.hw .w{position:relative;z-index:1}
#hwfx .moon{position:absolute;top:58px;right:6%;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff8e1,#f6d98b 60%,#d9b45a);box-shadow:0 0 50px 12px #f6d98b44}
#hwfx .moon::after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#d9b45a88;top:42px;left:22px;box-shadow:24px -18px 0 -3px #d9b45a66}
#hwfx .bat{position:absolute;width:44px;height:20px;top:18%;left:-60px;animation:batfly 17s linear infinite}
#hwfx .bat svg{width:100%;height:100%;animation:flap .26s ease-in-out infinite alternate;transform-origin:50% 60%}
#hwfx .b2{top:30%;animation-duration:23s;animation-delay:-8s;transform:scale(.7)}#hwfx .b3{top:9%;animation-duration:29s;animation-delay:-15s}
@keyframes batfly{0%{transform:translate(0,0)}25%{transform:translate(30vw,-30px)}50%{transform:translate(60vw,25px)}75%{transform:translate(85vw,-15px)}100%{transform:translate(115vw,10px)}}
@keyframes flap{from{transform:scaleY(1)}to{transform:scaleY(.35)}}
#hwfx .ghost{position:absolute;width:46px;height:58px;opacity:.5;animation:boo 9s ease-in-out infinite}
#hwfx .g1{left:4%;top:46%}#hwfx .g2{right:5%;top:64%;animation-delay:-4s;opacity:.35}
@keyframes boo{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-26px) rotate(4deg)}}
#hwfx .fog{position:absolute;left:-20%;bottom:-40px;width:140%;height:180px;background:radial-gradient(ellipse at 30% 60%,#c9b3e633,transparent 60%),radial-gradient(ellipse at 75% 70%,#c9b3e626,transparent 55%);filter:blur(8px);animation:fog 26s ease-in-out infinite alternate}
@keyframes fog{to{transform:translateX(12%)}}
#hwfx .pk{position:absolute;bottom:8px;width:52px;height:44px}#hwfx .p1{left:3%}#hwfx .p2{right:4%;width:40px;height:34px}
#hwfx .pk .face{animation:flick 2.4s infinite steps(1)}#hwfx .p2 .face{animation-delay:-1.1s}
@keyframes flick{0%,100%{opacity:1}7%{opacity:.55}9%{opacity:1}52%{opacity:.75}55%{opacity:1}}
.hwbadge{display:inline-block;background:linear-gradient(135deg,#ff8a1f,#a855f7);color:#140820;font-weight:900;border-radius:999px;padding:4px 11px;margin:3px;font-size:13px}
.hwtag{display:inline-block;font-family:Creepster,system-ui;color:#1a0b29;background:#ff8a1f;padding:2px 10px;border-radius:8px;font-size:15px;letter-spacing:1px}
@media (max-width:420px){#hwfx .moon{width:58px;height:58px;top:62px}#hwfx .g2{display:none}}
@media (prefers-reduced-motion:reduce){#hwfx *{animation:none!important}#hwfx .bat{left:62%;top:14%}#hwfx .b2,#hwfx .b3{display:none}}
.hw select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#ff8a1f 50%),linear-gradient(135deg,#ff8a1f 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}.hw .card::before,.hw .card::after{opacity:.35}
.hw .card>.muted+.jubi,.hw .card>.muted+div>.jubi{margin-top:30px}
