.hw-only{display:none!important}
body.halloween .hw-only{display:revert!important}
.sale-tag{position:absolute;top:12px;left:12px;z-index:2;padding:6px 12px;background:var(--accent);color:#fff;font-weight:900;font-style:italic;font-size:16px;letter-spacing:.04em;transform:skewX(-10deg);box-shadow:0 8px 20px -8px rgba(0,0,0,.8)}
.sale-pill{padding:2px 10px;background:var(--accent);font-weight:900;font-style:italic;font-size:14px;transform:skewX(-10deg)}
.card.on-sale .price{color:#fff}
.card.on-sale .was{font-size:16px}

body.halloween{
  --accent:#ff6a00;
  --accent-dark:#9a3a00;
  --purple:#8b3dff;
  --bracket:rgba(255,236,214,.92);
  --ghost:rgba(255,170,90,.22);
  --bg:#07050a;
}
body.halloween .g1{background:radial-gradient(circle,rgba(255,106,0,.5),transparent 65%)}
body.halloween .g2{background:radial-gradient(circle,rgba(139,61,255,.45),transparent 65%)}
body.halloween .grid-lines{background-image:linear-gradient(rgba(255,140,40,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,140,40,.045) 1px,transparent 1px)}
body.halloween .btn{box-shadow:0 8px 24px -10px rgba(255,106,0,.85)}
body.halloween .btn:hover{box-shadow:0 14px 30px -10px rgba(255,106,0,1)}
body.halloween .titleblock h2::after{background:linear-gradient(90deg,var(--accent),var(--purple));box-shadow:0 0 16px rgba(255,106,0,.6)}
body.halloween .card::before{background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(255,106,0,.24),transparent 70%)}
body.halloween .card:hover{box-shadow:0 24px 50px -24px rgba(0,0,0,.9),0 0 0 1px rgba(255,106,0,.3),0 0 40px -10px rgba(139,61,255,.4)}
body.halloween button.shot,body.halloween .shotbox{background:linear-gradient(135deg,#2a1206,#0d0912 70%)}
body.halloween .ticker{background:linear-gradient(90deg,rgba(255,106,0,.16),rgba(139,61,255,.1) 50%,rgba(255,106,0,.16))}
body.halloween .ticker i{background:none;width:auto;height:auto;transform:none;font-style:normal;font-size:20px}
body.halloween .ticker i::before{content:"🎃"}
body.halloween .ticker i:nth-of-type(3n)::before{content:"🦇"}
body.halloween .ticker i:nth-of-type(3n+1)::before{content:"👻"}
body.halloween .hero-logo img{width:92%;filter:drop-shadow(0 30px 60px rgba(0,0,0,.6));animation:float 6s ease-in-out infinite,flare 3.2s ease-in-out infinite alternate}
@keyframes flare{from{filter:drop-shadow(0 30px 60px rgba(0,0,0,.6)) brightness(.95)}to{filter:drop-shadow(0 30px 60px rgba(0,0,0,.6)) brightness(1.12)}}
body.halloween .ring.r1{border-top-color:var(--accent);border-right-color:rgba(139,61,255,.6)}
body.halloween h1 em{background:linear-gradient(90deg,#ff6a00,#ffb347,#ff6a00);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:candle 3s linear infinite}
@keyframes candle{to{background-position:-200% 0}}
body.halloween .dot{background:var(--accent);box-shadow:0 0 12px var(--accent)}
body.halloween .chip.on{box-shadow:0 6px 18px -8px rgba(255,106,0,.9)}

.hw-banner{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:9px 16px;background:linear-gradient(90deg,#3a0408,#e5202a 30%,#ff4a3d 50%,#e5202a 70%,#3a0408);background-size:200% 100%;animation:bannerflow 8s linear infinite;color:#fff;font-weight:800;font-style:italic;font-size:14px;letter-spacing:.1em;text-transform:uppercase;text-align:center;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.hw-banner:hover{filter:brightness(1.1)}
body.halloween .hw-banner{background-image:linear-gradient(90deg,#3a1300,#ff6a00 30%,#ff8c1a 50%,#ff6a00 70%,#2a0a3d)}
.hw-pump{display:inline-block;font-style:normal;animation:wobble 1.6s ease-in-out infinite}
.hw-count{padding:3px 10px;background:rgba(0,0,0,.45);font-variant-numeric:tabular-nums;letter-spacing:.06em}
.hw-count:empty{display:none}
@keyframes bannerflow{to{background-position:-200% 0}}
@keyframes wobble{25%{transform:rotate(-12deg) scale(1.1)}75%{transform:rotate(12deg) scale(1.1)}}

.hw-layer{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden}
.bat{position:absolute;left:-80px;width:var(--w,46px);height:auto;color:#120a18;filter:drop-shadow(0 0 6px rgba(255,106,0,.35));animation:fly var(--t,14s) linear infinite;animation-delay:var(--dl,0s);opacity:.9}
.bat svg{width:100%;height:auto;animation:flap .28s ease-in-out infinite alternate;transform-origin:center}
@keyframes flap{to{transform:scaleY(.35)}}
@keyframes fly{
  0%{transform:translate(0,0)}
  25%{transform:translate(28vw,-6vh)}
  50%{transform:translate(55vw,4vh)}
  75%{transform:translate(82vw,-8vh)}
  100%{transform:translate(calc(100vw + 160px),2vh)}
}
.fog{position:absolute;left:-50%;bottom:-8vh;width:200%;height:32vh;background:radial-gradient(ellipse at 20% 60%,rgba(200,180,255,.09),transparent 55%),radial-gradient(ellipse at 60% 70%,rgba(255,200,160,.07),transparent 55%),radial-gradient(ellipse at 85% 50%,rgba(200,180,255,.08),transparent 55%);filter:blur(10px);animation:fogmove 40s linear infinite}
.fog.f2{animation-duration:65s;animation-direction:reverse;bottom:-12vh;opacity:.8}
@keyframes fogmove{to{transform:translateX(25%)}}
.spider{position:absolute;top:0;right:7vw;width:2px;height:var(--h,120px);background:linear-gradient(rgba(255,255,255,.35),rgba(255,255,255,.12));transform-origin:top;animation:dangle 5s ease-in-out infinite}
.spider::after{content:"🕷️";position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:24px;filter:drop-shadow(0 0 6px rgba(0,0,0,.8))}
.spider.s2{right:auto;left:4vw;--h:70px;animation-duration:6.5s;animation-delay:-2s}
@keyframes dangle{0%,100%{transform:rotate(4deg) scaleY(1)}50%{transform:rotate(-4deg) scaleY(1.25)}}
.boo{position:absolute;font-size:38px;opacity:0;animation:boo 9s ease-in-out infinite;filter:drop-shadow(0 0 12px rgba(200,180,255,.6))}
@keyframes boo{0%{opacity:0;transform:translateY(20px) scale(.8)}15%,60%{opacity:.75}35%{transform:translateY(-30px) translateX(20px) scale(1)}80%,100%{opacity:0;transform:translateY(-70px) translateX(-10px) scale(.9)}}
.web{position:absolute;width:150px;height:150px;opacity:.28}
.web.tl{top:68px;left:0}
.web.br{bottom:0;right:0;transform:rotate(180deg)}

.pk{display:block;width:100%;height:auto;overflow:visible}
.pk-flame{animation:flicker 2.6s infinite steps(1)}
.pk-glow{opacity:.9;animation:glow 1.9s ease-in-out infinite alternate}
.pk-floor{animation:glow 2.3s ease-in-out infinite alternate}
@keyframes flicker{0%{opacity:1}7%{opacity:.82}12%{opacity:1}31%{opacity:.9}36%{opacity:.7}40%{opacity:1}63%{opacity:.88}68%{opacity:1}84%{opacity:.76}88%{opacity:.95}}
@keyframes glow{from{opacity:.55}to{opacity:1}}
.pk-wrap{position:relative;filter:drop-shadow(0 18px 24px rgba(0,0,0,.65))}
.pk-wrap::before{content:"";position:absolute;left:10%;right:10%;top:35%;bottom:5%;background:radial-gradient(ellipse,rgba(255,140,30,.45),transparent 70%);filter:blur(24px);animation:glow 2.1s ease-in-out infinite alternate;z-index:-1}
body.halloween .bg{z-index:-2}
.hw-ground{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.patch{position:absolute;bottom:-14px;display:flex;align-items:flex-end}
.patch.left{left:-20px}
.patch.right{right:-20px}
.patch .big{width:clamp(130px,15vw,280px)}
.patch .small{width:clamp(80px,8.5vw,160px);margin:0 -22px}
.patch.left .big{transform:rotate(-4deg)}
.patch.right .big{transform:rotate(5deg)}
.patch .small{transform:translateY(6px)}
.patch .pk-wrap{animation:settle 6s ease-in-out infinite}
.patch.right .pk-wrap{animation-delay:-3s}
@keyframes settle{50%{translate:0 -3px}}
.hero-pumpkins{position:absolute;left:-6%;bottom:-6%;display:flex;align-items:flex-end;gap:0;z-index:2;pointer-events:none}
.hero-pumpkins .pk-wrap{width:clamp(110px,13vw,200px)}
.hero-pumpkins .tiny{width:clamp(70px,7vw,110px);margin-left:-26px}
.run-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}
.run-stage{position:relative;padding:0;overflow:hidden}
.run-stage::after{z-index:3}
#run-canvas{display:block;width:100%;height:auto;aspect-ratio:960/400;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.run-overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:20px;background:radial-gradient(ellipse at center,rgba(7,5,10,.55),rgba(7,5,10,.85));animation:fade .3s}
.run-title{font-size:clamp(34px,5vw,58px);font-weight:900;font-style:italic;text-transform:uppercase;line-height:1;background:linear-gradient(90deg,var(--accent),#ffffff,var(--accent));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:candle 3s linear infinite}
body.halloween .run-title{background-image:linear-gradient(90deg,#ff6a00,#ffd27a,#ff6a00)}
.run-score{font-size:clamp(46px,7vw,80px);font-weight:900;font-style:italic;line-height:1;text-shadow:0 0 30px rgba(229,32,42,.6)}
body.halloween .run-score{text-shadow:0 0 30px rgba(255,106,0,.6)}
.run-sub{color:var(--dim);font-size:15px}
.run-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:10px}
.run-save{color:var(--dim);font-size:14px;min-height:20px}
.board{padding:20px;display:flex;flex-direction:column;gap:14px}
.board-head{display:flex;justify-content:space-between;align-items:flex-end}
.board-head h3{font-size:24px}
.board-count{color:var(--faint);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.board-list{list-style:none;display:flex;flex-direction:column;gap:6px;min-height:200px}
.board-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;background:rgba(255,255,255,.03);border:1px solid var(--line);animation:nin .3s both}
.board-list li:nth-child(1){border-color:rgba(255,213,74,.6);background:linear-gradient(90deg,rgba(255,213,74,.16),rgba(255,255,255,.02))}
.board-list li:nth-child(2){border-color:rgba(220,220,230,.45)}
.board-list li:nth-child(3){border-color:rgba(205,127,50,.55)}
.board-list li.me{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.board-list .rk{width:22px;font-weight:900;font-style:italic;color:var(--accent);text-align:center}
.board-list li:nth-child(1) .rk{color:#ffd54a}
.board-list .av{width:26px;height:26px;border-radius:50%;background:#1c1424;overflow:hidden;flex:none}
.board-list .av img{width:100%;height:100%;object-fit:cover}
.board-list .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.board-list .sc{font-weight:900;font-style:italic;font-variant-numeric:tabular-nums}
.board-list .empty-row{justify-content:center;color:var(--dim);background:none;border-style:dashed}
.board-me{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--dim)}
.board-me strong{color:#fff}
.board-me .btn{white-space:nowrap;flex:none}

@media (max-width:980px){
  .run-wrap{grid-template-columns:1fr}
}
@media (max-width:640px){
  .run-overlay{padding:10px;gap:4px}
  .run-sub{font-size:13px}
  .run-actions .btn{padding:10px 16px;font-size:12px}
  .hw-banner{font-size:12px;gap:8px}
  .web{width:90px;height:90px}
  body.halloween .links a.hw-only{display:none!important}
  .patch .big{width:96px}
  .patch .small{width:60px;margin:0 -12px}
  .hero-pumpkins{left:-14%;bottom:-10%}
  .hero-pumpkins .pk-wrap{width:90px}
  .hero-pumpkins .tiny{width:56px;margin-left:-14px}
}
@media (prefers-reduced-motion:reduce){
  .hw-layer .bat,.hw-layer .boo,.hw-layer .fog{display:none}
}
