/* Halloween 2026: permanently distinct Collectors Limited identity. */
.collectors-limited-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;position:relative;isolation:isolate;max-width:100%;padding:8px 12px;border:1px solid #ffc661;border-radius:6px 16px;font-size:10px;font-weight:900;letter-spacing:1.3px;line-height:1.5;color:#fff4d9;background:linear-gradient(115deg,#401576,#872bb0,#a44712,#6a360c,#4a197d);background-size:250% 100%;box-shadow:0 0 16px #b25be13b,inset 0 0 12px #ffb32a26;animation:haunt-iridescence 7s ease-in-out infinite;overflow:hidden;text-align:center;white-space:normal}
.collectors-limited-badge:before{content:'✦';color:#ffdd81;animation:haunt-orbit 6s ease-in-out infinite}.collectors-limited-badge:after{content:'';position:absolute;inset:-50%;background:linear-gradient(105deg,transparent 40%,#fff6c554 50%,transparent 60%);transform:translateX(-90%) rotate(15deg);animation:haunt-shimmer 7s ease-in-out infinite;pointer-events:none}
.rarity-collectors-limited{--rarity:#ffba58;border-color:#b566d9!important;box-shadow:0 0 0 1px #ffb04438,0 12px 30px #240e3b38;background:linear-gradient(160deg,#261633,#0f211d)!important}.rarity-collectors-limited .shop-item-meta{flex-wrap:wrap;gap:8px}.rarity-collectors-limited .shop-item-meta .collectors-limited-badge{font-size:9px}.rarity-collectors-limited .tier-swatch{background:conic-gradient(#c088ff,#ff8a24,#ffda7a,#a268e4);box-shadow:0 0 18px #d094ff}
.halloween-panel{position:relative;isolation:isolate;overflow:hidden;border-color:#b566d9!important;background:radial-gradient(ellipse at 85% 10%,#753a5a70,transparent 55%),linear-gradient(120deg,#21132e,#102b22)!important}.halloween-panel h2{color:#ffda93;font-size:clamp(25px,4vw,38px)}.halloween-panel>p{max-width:70ch}.haunting-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:0;gap:8px;list-style:none}.haunting-days li{display:grid;place-items:center;padding:14px 3px;border:1px solid #6e4875;border-radius:14px;filter:grayscale(1);opacity:.5}.haunting-days li span{font-size:clamp(20px,5vw,40px)}.haunting-days li.lit{filter:none;opacity:1;background:radial-gradient(#ff97322e,#67379555);box-shadow:0 0 16px #ac5bec48}.haunting-days li.current{animation:haunt-flame 3s ease-in-out infinite}.haunting-rewards{display:flex;flex-wrap:wrap;gap:8px}.haunting-rewards button{font-size:12px}.haunted-set-indicator{display:block;color:#ffdc7c;text-shadow:0 0 12px #d28aff;font-size:11px;letter-spacing:1.3px;line-height:1.7}.haunted-legend-mode{--haunt-intensity:#ffcf72;box-shadow:0 0 22px #b66bff65,0 0 38px #ff8c2226!important}
.haunted-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 60% 5%,#b755b855,transparent 60%)}.haunted-moon{position:absolute;width:62px;height:62px;border-radius:50%;right:12%;top:5%;background:#ffb55b;box-shadow:0 0 35px #ee844c8c;animation:haunt-moon 9s ease-in-out infinite}.haunted-mansion{position:absolute;bottom:10%;right:0;font-size:100px;letter-spacing:-24px;color:#170e27;text-shadow:2px 0 #b36cdd,-1px 0 #af6527;transform:skewY(-5deg)}.haunted-fog{position:absolute;inset:20% -30% -10%;background:radial-gradient(ellipse,#aa81cf55,transparent 65%);animation:haunt-fog 10s ease-in-out infinite alternate}.haunted-bat,.haunted-ghost,.haunted-pumpkin,.haunted-spark{position:absolute;font-size:25px;filter:drop-shadow(0 0 6px #c973fb)}.haunted-bat{top:12%;left:8%;animation:haunt-flight 11s ease-in-out infinite}.haunted-ghost{top:50%;right:8%;animation:haunt-float 5s ease-in-out infinite}.haunted-pumpkin{bottom:3%;left:5%;animation:haunt-flame 3s ease-in-out infinite}.haunted-spark{top:5%;left:50%;color:#ffdb85;animation:haunt-orbit 8s ease-in-out infinite}
.skin-haunted-mansion{position:relative;isolation:isolate;background:linear-gradient(140deg,#251432,#4b1d48,#231b32)!important;border-color:#fcb750!important;color:#fff1db!important;box-shadow:0 0 18px #9d52ba6b}.skin-haunted-mansion .cells,.skin-haunted-mansion .card-head,.skin-haunted-mansion .mini-head,.skin-haunted-mansion .mini-cells{position:relative;z-index:1}.skin-haunted-mansion .cell{background:#291a35e8!important;color:#ffead6;border-color:#bf7fce5c!important}.skin-haunted-mansion .cell.marked,.skin-haunted-mansion .hit{background:#8e3b19!important;color:#fff3c7!important;box-shadow:inset 0 0 14px #ffcc5680}.skin-haunted-mansion .cell.free{color:#ffcd6d!important;background:#603a78!important}.border-phantom-crown{border:3px solid #f8b751!important;box-shadow:0 0 15px #c872ff,0 0 24px #ff86194d;animation:haunt-flame 4s ease-in-out infinite}.border-phantom-crown:before{content:'♛';position:absolute;top:-23%;left:22%;font-size:1.4em;color:#ffce7b;filter:drop-shadow(0 0 6px #cb7bff);z-index:2}.border-phantom-crown>i{color:#f9b657!important;animation:haunt-orbit 6s ease-in-out infinite}
.face-cursed-pumpkin .playing-card:not(.card-back),.deck-face-cursed-pumpkin .face,.mini-turn-card.deck-face-cursed-pumpkin{background:radial-gradient(ellipse at 50% 65%,#f5b75d,#d88035 60%,#632f52)!important;color:#37133c!important;border-color:#ffce76!important;box-shadow:0 0 18px #e16c2640,inset 0 0 20px #8f3ec754;animation:haunt-card-light 6s ease-in-out infinite}.face-cursed-pumpkin .playing-card:not(.card-back):after,.deck-face-cursed-pumpkin .face:after{content:'🎃';position:absolute;bottom:10%;right:6%;font-size:20px;opacity:.65;pointer-events:none;animation:haunt-float 6s ease-in-out infinite}.back-midnight-graveyard .card-back,.deck-back-midnight-graveyard .back,.mini-back.deck-back-midnight-graveyard{background:radial-gradient(circle at 65% 20%,#da9a5d 0 10%,transparent 11%),linear-gradient(150deg,#4e2a6a,#1a172f 55%,#345240)!important;border:2px solid #d98cbd!important;color:#ffd489!important;overflow:hidden}.back-midnight-graveyard .card-back:after,.deck-back-midnight-graveyard .back:after{content:'♜ 🪦 ♜';position:absolute;inset:40% -15% 0;font-size:28px;letter-spacing:5px;background:linear-gradient(transparent,#c08bdd40);animation:haunt-fog 7s ease-in-out infinite alternate;pointer-events:none}
.phantom-victory{position:relative;isolation:isolate;overflow:hidden;min-height:260px;width:100%;max-width:680px;margin:16px auto;border:3px double #ffca77;border-radius:35px 8px;background:linear-gradient(145deg,#39124d,#191d2a 60%,#431d36);box-shadow:0 0 32px #b558e061,inset 0 0 50px #140721;animation:phantom-entrance 1.7s cubic-bezier(.16,1,.3,1) both}.phantom-banner-copy{position:relative;z-index:3;display:grid;place-items:center;text-align:center;padding:40px 20px;gap:10px}.phantom-banner-copy small{font-size:11px;letter-spacing:4px;color:#eab5ff}.phantom-name{display:block;max-width:100%;overflow-wrap:anywhere;font-size:clamp(22px,5vw,36px);color:#ffdf99;text-shadow:0 0 25px #ff863b;animation:phantom-name-reveal 2s ease-out both}.phantom-bingo{font-size:clamp(40px,7vw,72px);line-height:1.1;color:#fff2cc;text-shadow:0 0 8px #ffb753,0 0 30px #a23ad4;animation:haunt-bingo 3s 2s ease-in-out 3}.phantom-flames{position:absolute;inset:auto -10% 0;text-align:center;font-size:70px;letter-spacing:15px;color:#da9aff;filter:blur(1px) drop-shadow(0 -15px 12px #ff7c1c);animation:haunt-flame 2.7s ease-in-out infinite}.spectral-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4}.spectral-confetti i{position:absolute;top:-12%;font-style:normal;color:#ffbf64;animation:haunt-confetti 6s ease-in-out 2 both}.spectral-confetti i:nth-child(3n){color:#d789ff;animation-delay:.5s}.spectral-confetti i:nth-child(3n+1){color:#9dedb4;animation-delay:1.2s}.spectral-confetti .confetti-0{left:5%}.spectral-confetti .confetti-1{left:18%}.spectral-confetti .confetti-2{left:31%}.spectral-confetti .confetti-3{left:44%}.spectral-confetti .confetti-4{left:57%}.spectral-confetti .confetti-5{left:70%}.spectral-confetti .confetti-6{left:83%}.spectral-confetti .confetti-7{left:96%}.spectral-confetti i:nth-child(n+9){animation-duration:7.2s;font-size:20px}.spectral-confetti i:nth-child(n+17){animation-duration:5.1s;font-size:12px}.phantom-backdrop{position:absolute;inset:0;animation:phantom-gather 2s ease-out both;background:radial-gradient(ellipse,#b04de75e,transparent 70%)}.phantom-victory.haunted-legend-mode .spectral-confetti{filter:drop-shadow(0 0 6px #ffd67c)}
@keyframes haunt-iridescence{50%{background-position:100% 50%}}@keyframes haunt-shimmer{35%,100%{transform:translateX(90%) rotate(15deg)}}@keyframes haunt-orbit{50%{transform:translate(5px,-4px) rotate(35deg)}}@keyframes haunt-float{50%{transform:translateY(-12px) rotate(8deg)}}@keyframes haunt-flight{50%{transform:translate(140px,15px) rotate(-10deg)}}@keyframes haunt-fog{to{transform:translateX(12%);opacity:.45}}@keyframes haunt-moon{50%{transform:scale(1.08)}}@keyframes haunt-flame{50%{filter:drop-shadow(0 -3px 8px #d484ff);transform:translateY(-3px)}}@keyframes haunt-card-light{50%{box-shadow:0 0 22px #a855dd55,inset 0 0 25px #ffa24566}}@keyframes haunt-bingo{50%{transform:scale(1.05)}}@keyframes haunt-confetti{0%{transform:translateY(-10px) rotate(0);opacity:0}15%{opacity:1}90%{opacity:1}100%{transform:translate(-35px,360px) rotate(270deg);opacity:0}}@keyframes phantom-entrance{0%{transform:perspective(600px) rotateX(40deg) scale(.65);filter:blur(8px);opacity:0}45%{opacity:1}100%{transform:perspective(600px) rotateX(0) scale(1);filter:none;opacity:1}}@keyframes phantom-name-reveal{0%,40%{opacity:0;transform:translateY(15px);letter-spacing:10px}100%{opacity:1;transform:none;letter-spacing:0}}@keyframes phantom-gather{0%{transform:scale(.15);opacity:0}65%{transform:scale(1.2);opacity:1}100%{transform:scale(1);opacity:.7}}
@media(max-width:600px){.haunting-days{gap:4px}.haunting-days li{padding:10px 0}.haunting-days li small{font-size:9px}.phantom-victory{min-height:220px}.phantom-banner-copy{padding:28px 12px}.halloween-panel .collectors-limited-badge{font-size:9px}.loadout-strip{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.collectors-limited-badge,.collectors-limited-badge:before,.collectors-limited-badge:after,.halloween-panel *,.haunted-scene *,.phantom-victory,.phantom-victory *,.border-phantom-crown,.border-phantom-crown:before,.border-phantom-crown>i,.face-cursed-pumpkin *,.deck-face-cursed-pumpkin *,.deck-back-midnight-graveyard *,.back-midnight-graveyard *{animation:none!important;transition:none!important}.spectral-confetti,.collectors-limited-badge:after{display:none}.phantom-name{opacity:1;transform:none}}
[data-haunt-visible="false"],[data-haunt-visible="false"] *,[data-haunt-visible="false"]:before,[data-haunt-visible="false"]:after{animation-play-state:paused!important}
.border-phantom-crown:before{inset:auto;top:-30%;left:20%;width:60%;height:auto;border:0;border-radius:0;opacity:1;text-align:center;pointer-events:none}.border-phantom-crown>i{display:block}.haunted-reward-chest{text-align:center;font-size:64px;animation:haunt-chest 1.5s cubic-bezier(.2,1.5,.4,1) both;filter:drop-shadow(0 0 22px #c77bef)}.haunted-reward-chest span{display:inline-block;color:#ffda7c;animation:haunt-orbit 5s ease-in-out infinite}.haunting-unlocked .haunting-rewards button{border-color:#e3a962;animation:phantom-name-reveal 1.7s ease-out both}.haunting-unlocked .haunting-rewards button:nth-child(2){animation-delay:.12s}.haunting-unlocked .haunting-rewards button:nth-child(3){animation-delay:.24s}.haunting-unlocked .haunting-rewards button:nth-child(4){animation-delay:.36s}.haunting-unlocked .haunting-rewards button:nth-child(5){animation-delay:.48s;border-color:#be8ee7}@keyframes haunt-chest{0%{transform:translateY(20px) scale(.6) rotate(-8deg);opacity:0}60%{transform:translateY(-10px) scale(1.1) rotate(5deg);opacity:1}100%{transform:none;opacity:1}}
body[data-animation="OFF"] .collectors-limited-badge,body[data-animation="OFF"] .collectors-limited-badge:before,body[data-animation="OFF"] .collectors-limited-badge:after,body[data-animation="OFF"] .deck-face-cursed-pumpkin *,body[data-animation="OFF"] .deck-back-midnight-graveyard *,body[data-animation="OFF"] .border-phantom-crown{animation:none!important}

.bingo-app[data-card-theme="haunted-mansion"]{--bingo-gold:#ffcb80;--bingo-glow:#b36fed;background:radial-gradient(ellipse at 85% 10%,#5c275852,transparent 60%),linear-gradient(135deg,#140d21,#0f201b)}

/* Illustrated collection: shared production artwork in the shop and both games. */
.collectors-limited-badge{border:2px solid #e6b35f;border-radius:50% 12px/8px 50%;font-family:Georgia,serif;letter-spacing:1.3px;background-image:linear-gradient(110deg,#1b0927,#5a157b,#8b3726,#2b104a);box-shadow:inset 0 0 0 2px #35133e,inset 0 0 0 3px #c5925c66,0 0 12px #b545e077,0 0 3px #ffab3b}
.collectors-limited-badge:before{content:'♜ ✦';font-size:14px}.haunted-landscape{position:absolute;inset:0;background:url('/halloween/haunted-landscape.webp') center top/cover no-repeat}.illustrated-haunt{background:#160b27}.haunted-spirit{position:absolute;width:12%;max-width:64px;filter:drop-shadow(0 0 8px #c899ff);animation:haunt-float 6s ease-in-out infinite}.spirit-left{left:0;top:38%}.spirit-right{right:0;top:68%;animation-delay:-3s}.haunted-flying-bat{position:absolute;top:13%;left:12%;width:13%;animation:haunt-flight 14s ease-in-out infinite}.haunted-fog{inset:65% -20% -10%;background:radial-gradient(ellipse at bottom,#a064db88,transparent 65%);animation:haunt-fog 12s ease-in-out infinite alternate}
.skin-haunted-mansion{border:3px double #f7c875!important;border-radius:22px 22px 12px 12px!important;padding:clamp(14px,3.5vw,25px)!important;padding-top:clamp(105px,22vw,150px)!important;overflow:hidden;position:relative;isolation:isolate;box-shadow:0 0 0 2px #4c1d6c,inset 0 0 18px #bd5dff,0 6px 20px #06020cbf!important;background:#130b25!important}.skin-haunted-mansion .haunted-landscape{background-position:center top;background-size:100% auto}.skin-haunted-mansion:after{content:'';position:absolute;inset:5px;border:1px solid #ffce77aa;border-radius:15px;pointer-events:none;z-index:3;box-shadow:inset 0 0 10px #a248db66}.skin-haunted-mansion .card-head,.skin-haunted-mansion .mini-head{font-family:Georgia,serif;font-weight:900;letter-spacing:5px;color:#ffe1a1;text-shadow:0 0 3px #ff9a35,0 0 10px #c251eb,2px 3px #361345;font-size:clamp(20px,4vw,32px)}
.skin-haunted-mansion .cell,.skin-haunted-mansion .mini-cells>span{border:1px solid #986aa4!important;border-radius:6px!important;background:linear-gradient(140deg,#392346ee,#0c0817f5 55%,#22112fe8)!important;color:#fff7ff!important;box-shadow:inset 1px 2px 2px #eac1ff33,inset -2px -3px 4px #020106,0 1px 3px #000;position:relative;font-weight:800}.skin-haunted-mansion .cell.called:not(.marked){border-color:#e49a60!important;box-shadow:inset 0 0 9px #c2764433,0 0 4px #ea9e4344}.skin-haunted-mansion .cell.marked,.skin-haunted-mansion .hit{background:linear-gradient(145deg,#e69c44,#8a351e 60%,#481934)!important;border-color:#ffdc8a!important;box-shadow:inset 0 0 8px #ffe39b,0 0 8px #ff972b}.skin-haunted-mansion .cell.free{background:linear-gradient(150deg,#5f277c,#24113f)!important;color:#ffe7ad!important}.bingo-app .skin-haunted-mansion .cells{gap:5px}.skin-haunted-mansion .near-one{box-shadow:0 0 15px #ffc975}.skin-haunted-mansion.tension-1{box-shadow:0 0 25px #e58935,0 0 30px #a15ef788!important}
.haunted-marker-svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 2px #0008) drop-shadow(0 0 3px #ba67f466)}.haunted-marker-svg .marker-eyes{animation:markerGlow 3.8s ease-in-out infinite}.art-ghost{animation:markerFloat 4s ease-in-out infinite}.art-hat{animation:markerSway 5s ease-in-out infinite}.art-candy{animation:markerCandy 7s linear infinite}.marker-fire{transform-origin:50% 85%;animation:markerFlame 2.8s ease-in-out infinite}.marker-star{transform-origin:32px 32px;animation:markerSpin 25s linear infinite}.marker-mist{animation:markerSway 7s ease-in-out infinite}.art-cat .marker-eyes{animation:markerBlink 8s infinite}.art-bat .marker-wings{transform-origin:32px 30px;animation:markerFlutter .4s ease-in-out 3}.art-spider .marker-legs{transform-origin:32px 32px;animation:markerFlutter .4s ease-in-out 3}.art-skull{filter:drop-shadow(0 0 5px #dd9eff)}
.haunted-pack-preview{padding:16px;background:radial-gradient(ellipse,#3c1d5277,#090713);border:1px solid #856794;border-radius:16px;max-width:390px;margin:auto}.haunted-pack-title{font-size:10px;letter-spacing:1.5px;color:#eebdff;text-align:center}.haunted-marker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.haunted-marker-grid>span,.haunted-marker-grid>button{display:grid;place-items:center;aspect-ratio:1;border:1px solid #a16eb7;border-radius:10px;background:radial-gradient(ellipse,#402251,#110b1b 70%);padding:8px;box-shadow:inset 0 0 8px #e3a1fa1c,0 2px 5px #0008}.haunted-marker-grid>button:hover{border-color:#ffd786}.haunted-marker-sample{position:relative;display:grid;place-items:center;grid-template-columns:1fr 1fr;margin:18px auto 0;max-width:230px;gap:10px}.haunted-marker-sample>span{background:#241330;border:1px solid #b575cb;border-radius:6px;width:52px;height:52px;text-align:left;padding:5px;font-size:18px;color:white;box-shadow:inset 0 0 8px #b96bff44}.haunted-marker-sample>svg{position:absolute;left:calc(25% - 8px);top:14px;width:36px;height:36px;animation:markerDrop .45s ease-out both}.haunted-marker-sample>small{font-size:10px;color:#d9bee7}.marker-tray button[data-drag-marker]{touch-action:none}.tanto:has(.haunted-marker-svg){font-size:0;width:34px;height:34px;background:none}.cell>.tanto:has(.haunted-marker-svg){inset:auto 2px 1px auto;width:49%;height:49%;margin:0;opacity:1}.cell:has(.tanto) .cell-number{opacity:1!important;position:relative;z-index:5;text-shadow:0 1px 3px #000}.cell:has(.haunted-marker-svg) .cell-number{align-self:start;justify-self:start;margin:3px;font-size:.8em}.cell.free:has(.haunted-marker-svg) .cell-number{font-size:.5em}.marker-tray:has(.haunted-marker-svg){padding:12px;background:linear-gradient(145deg,#23112f,#0d0b16);border:1px solid #80638c;border-radius:16px}.marker-tray .tanto:has(.haunted-marker-svg){width:42px;height:42px}.marker-tray button:has(.haunted-marker-svg){border-color:#725081;box-shadow:inset 0 0 8px #9864c522}.marker-tray button[aria-pressed=true]:has(.haunted-marker-svg){border-color:#ffc967;background:#4b254b;box-shadow:0 0 12px #bc62ef55}.marker-tray button:has(.haunted-marker-svg) span:last-child{max-width:75px;white-space:normal}
.border-phantom-crown{border:0!important;background:none!important;box-shadow:none!important;animation:none!important}.border-phantom-crown:before,.border-phantom-crown>i{display:none!important}.phantom-crown-art{position:absolute;inset:-24%;width:148%;height:148%;z-index:3;pointer-events:none;overflow:visible;filter:drop-shadow(0 0 3px #a76cdd)}.crown-spirits{animation:markerFloat 5s ease-in-out infinite}.arcade-avatar.border-phantom-crown{overflow:visible!important}.border-phantom-crown>img{position:relative;z-index:1}
.face-cursed-pumpkin .playing-card:not(.card-back),.deck-face-cursed-pumpkin .face,.mini-turn-card.deck-face-cursed-pumpkin{background:#180b2e url('/halloween/cursed-pumpkin.webp') center/cover no-repeat!important;border:1px solid #e9b663!important;color:#fff3ce!important;box-shadow:0 0 14px #b051da55!important}.face-cursed-pumpkin .playing-card:not(.card-back):after,.deck-face-cursed-pumpkin .face:after{content:none!important}.face-cursed-pumpkin .playing-card:not(.card-back)>strong,.face-cursed-pumpkin .playing-card:not(.card-back)>small,.deck-face-cursed-pumpkin .face .symbol,.deck-face-cursed-pumpkin .face .suitname,.deck-face-cursed-pumpkin .face .card-fx{visibility:hidden}.face-cursed-pumpkin .playing-card>b,.deck-face-cursed-pumpkin .face .rank{position:relative;z-index:3;color:#fff4d9!important;text-shadow:0 1px 4px #000,0 0 3px #000;background:#1a0b2390;border-radius:4px}.deck-face-cursed-pumpkin .face .rank{position:absolute}.back-midnight-graveyard .card-back,.deck-back-midnight-graveyard .back,.mini-back.deck-back-midnight-graveyard{background:#150b29 url('/halloween/midnight-graveyard.webp') center/cover no-repeat!important;border:1px solid #e5b56e!important;color:transparent!important}.back-midnight-graveyard .card-back:after,.deck-back-midnight-graveyard .back:after{content:none!important}.back-midnight-graveyard .card-back>*{visibility:hidden}.mini-back.deck-back-midnight-graveyard i{visibility:hidden}
.phantom-victory{border:3px double #f8c977;border-radius:20px;background:#150b27;box-shadow:0 0 0 2px #6b297c,0 0 30px #ac54dd66,inset 0 0 18px #ffd28255;min-height:310px}.phantom-victory .haunted-landscape{background-position:center 28%;filter:brightness(.75)}.phantom-banner-copy{padding:48px 20px 42px;gap:14px;background:linear-gradient(transparent,#13091e66,transparent)}.phantom-banner-copy small{color:#ffd58a}.phantom-bingo{order:-1;font-family:Georgia,serif;font-size:clamp(48px,8vw,92px);font-style:italic;color:#fff0b2;text-shadow:2px 3px #a93524,-1px -1px #ffdc8f,0 0 15px #ed7c2c,0 0 30px #b42be6;letter-spacing:5px;-webkit-text-stroke:1px #dd8c35}.phantom-name{font-family:Georgia,serif;padding:10px 32px;border:1px solid #d9a550;border-radius:50% 10px/8px 50%;background:linear-gradient(110deg,#2f123d,#180d2a,#4f1d4d);box-shadow:0 0 10px #bf6cef55,inset 0 0 0 3px #6c32745e}.phantom-flames{font-size:50px;opacity:.7}.phantom-victory .haunted-spirit{width:14%;max-width:80px}.phantom-victory .spirit-left{top:34%;left:1%}.phantom-victory .spirit-right{top:39%;right:1%}
@keyframes markerDrop{0%{transform:translateY(-16px) scale(.7);opacity:0}65%{transform:translateY(2px) scale(1.1);opacity:1}100%{transform:none;opacity:1}}@keyframes markerFloat{50%{transform:translateY(-4px)}}@keyframes markerSway{50%{transform:rotate(7deg)}}@keyframes markerCandy{50%{filter:hue-rotate(35deg) drop-shadow(0 0 4px #ffce77)}}@keyframes markerFlame{50%{transform:scale(.88,1.1);opacity:.85}}@keyframes markerGlow{50%{opacity:.65;filter:drop-shadow(0 0 3px #fff3ae)}}@keyframes markerSpin{to{transform:rotate(360deg)}}@keyframes markerBlink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.1);transform-origin:center}}@keyframes markerFlutter{50%{transform:scale(.8,1.12)}}
@media(prefers-reduced-motion:reduce){.haunted-marker-svg,.haunted-marker-svg *,.haunted-spirit,.haunted-flying-bat,.crown-spirits,.cell>.tanto:has(.haunted-marker-svg){animation:none!important;transform:none!important}.phantom-banner-copy *{animation:none!important;opacity:1!important}}body[data-animation="OFF"] .haunted-marker-svg,body[data-animation="OFF"] .haunted-marker-svg *,body[data-animation="OFF"] .phantom-crown-art *{animation:none!important}

.illustrated-crown{inset:-42%;width:184%;height:184%;background:url('/halloween/phantom-crown.webp') center/contain no-repeat;animation:crownLustre 7s ease-in-out infinite}.haunted-marker-grid button{cursor:pointer}@keyframes crownLustre{50%{filter:drop-shadow(0 0 5px #c176ff)}}@media(prefers-reduced-motion:reduce){.illustrated-crown{animation:none!important}}body.cosmetics-paused .haunted-marker-svg,body.cosmetics-paused .haunted-marker-svg *,body.cosmetics-paused .illustrated-crown{animation-play-state:paused!important}body[data-animation="OFF"] .illustrated-crown{animation:none!important}
/* Preserve the suit as well as rank on real cards. */
.face-cursed-pumpkin .playing-card:not(.card-back)>strong{visibility:visible;position:absolute;left:8px;top:30px;font-size:19px;color:#fff1cf;text-shadow:0 1px 4px #000}.deck-face-cursed-pumpkin .face .symbol{visibility:visible!important;position:absolute!important;left:8px!important;top:30px!important;width:20px!important;height:24px!important;font-size:20px!important;line-height:24px!important;transform:none!important;color:#fff1cf!important;text-shadow:0 1px 4px #000;background:#1a0b2380;border-radius:3px}.deck-face-cursed-pumpkin .face .symbol svg{width:20px;height:24px}.deck-face-cursed-pumpkin .face .suitname{visibility:visible!important;background:#1a0b23cc;color:#fff2cb!important;text-shadow:0 1px #000;font-size:8px;letter-spacing:1px;border-radius:3px}

/* Ornament remains at the edges; live numbers and physical markers stay separate. */
.collectors-limited-badge:before{display:none}.collector-crest{width:23px;height:25px;flex-shrink:0;filter:drop-shadow(0 0 4px #f9b454)}
.haunted-filigree{position:absolute;inset:3px;pointer-events:none}.haunt-corner{position:absolute;width:54px;height:54px;fill:none;stroke:#f7c577;stroke-width:1.5;filter:drop-shadow(0 0 3px #a23ee5)}.corner-0{top:0;left:0}.corner-1{top:0;right:0;transform:rotate(90deg)}.corner-2{bottom:0;right:0;transform:rotate(180deg)}.corner-3{bottom:0;left:0;transform:rotate(270deg)}
.skin-haunted-mansion .cells{gap:5px}.skin-haunted-mansion .cell .cell-number{position:relative;z-index:5}.cosmetic-sample.skin-haunted-mansion .cell{display:grid;place-items:center}.cosmetic-sample.skin-haunted-mansion .cell.free .cell-number{font-size:.55em}
.cell>.marker-placed:has(.haunted-marker-svg){animation:markerDrop .45s cubic-bezier(.2,1.4,.4,1) both}.cell>.marker-placed:after{content:'';position:absolute;inset:-20%;border-radius:50%;background:radial-gradient(circle at 10% 30%,#ffd386 0 3%,transparent 4%),radial-gradient(circle at 85% 18%,#e399ff 0 3%,transparent 4%),radial-gradient(circle at 80% 80%,#ffb363 0 3%,transparent 4%),radial-gradient(circle at 20% 90%,#dfaeff 0 2%,transparent 3%);animation:markerSpark .65s ease-out both;pointer-events:none}
.haunted-legend-mode .marker-placed:after{filter:drop-shadow(0 0 4px #ffc67b)}
@keyframes markerSpark{from{transform:scale(.5);opacity:1}to{transform:scale(1.7);opacity:0}}
@media(prefers-reduced-motion:reduce){.cell>.marker-placed,.cell>.marker-placed:after{animation:none!important}.cell>.marker-placed:after{display:none}}
body[data-animation="OFF"] .cell>.marker-placed,body[data-motion="off"] .cell>.marker-placed{animation:none!important}body[data-animation="OFF"] .cell>.marker-placed:after,body[data-motion="off"] .cell>.marker-placed:after{display:none}

.marker-glint{animation:markerGlow 4s ease-in-out infinite}.art-hat .marker-glint{transform-origin:32px 32px;animation:markerSpin 6s linear infinite}
.phantom-fireworks{position:absolute;inset:0;pointer-events:none;z-index:2}.phantom-fireworks i{position:absolute;top:25%;left:20%;width:5px;height:5px;border-radius:50%;color:#f9bd61;box-shadow:0 -36px,25px -25px,36px 0,25px 25px,0 36px,-25px 25px,-36px 0,-25px -25px;animation:phantomBurst 3s ease-out 3 both}.phantom-fireworks i:nth-child(2){left:78%;top:35%;color:#d59bff;animation-delay:.9s}.phantom-fireworks i:nth-child(3){left:50%;top:20%;color:#fff1b2;animation-delay:1.8s}.haunted-legend-mode .phantom-fireworks{filter:drop-shadow(0 0 6px #df9aff)}
@keyframes phantomBurst{0%{transform:scale(.1);opacity:0}20%{opacity:.9}80%,100%{transform:scale(1.6);opacity:0}}
body.decorations-off :is(.haunted-marker-svg,.haunted-marker-svg *,.haunted-scene *,.phantom-victory,.phantom-victory *,.illustrated-crown,.collectors-limited-badge),body.decorations-off .collectors-limited-badge:after{animation:none!important;transition:none!important}body.decorations-off :is(.marker-placed:after,.phantom-fireworks){display:none}
@media(prefers-reduced-motion:reduce){.phantom-fireworks{display:none}}

.halloween-voucher{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px;margin:24px 0;border:1px solid #d4a466;border-radius:18px;background:linear-gradient(125deg,#170c25e6,#50203b80);box-shadow:inset 0 0 30px #b663ec13}.halloween-voucher h3{font:26px Georgia,serif;color:#ffdb99;margin:6px 0}.halloween-voucher code{display:inline-block;font-size:clamp(17px,3vw,24px);letter-spacing:2px;color:#ffe4a5;padding:10px 14px;margin:8px 0;border:1px dashed #cfad74;border-radius:8px;background:#100b1e}.halloween-voucher .actions{display:flex;flex-direction:column;min-width:160px}.voucher-clock-label{color:#e5c5ef;font-size:12px}.voucher-clock-label strong{display:block;font-size:23px;font-variant-numeric:tabular-nums;color:#ffda92;margin-top:8px}.halloween-voucher p{margin:8px 0}.phantom-crown-aura{position:absolute;inset:-28%;border-radius:50%;pointer-events:none;z-index:0;background:conic-gradient(from 40deg,transparent,#ce77ff55,transparent,#ff9e3855,transparent,#a85bff55,transparent);filter:blur(5px);animation:crownAura 8s linear infinite}.phantom-crown-orbit{position:absolute;inset:-30%;z-index:4;border-radius:50%;pointer-events:none;animation:crownOrbit 18s linear infinite}.phantom-crown-orbit i{position:absolute;left:calc(50% + 47% * cos(var(--crown-step) * 45deg));top:calc(50% + 47% * sin(var(--crown-step) * 45deg));font-style:normal;font-size:8px;color:#ffe0a0;filter:drop-shadow(0 0 3px #b44fff);animation:crownSpark 2.5s ease-in-out infinite;animation-delay:calc(var(--crown-step) * -.3s)}
@keyframes crownAura{50%{transform:rotate(180deg) scale(1.08)}to{transform:rotate(360deg)}}@keyframes crownOrbit{to{transform:rotate(360deg)}}@keyframes crownSpark{50%{opacity:.35;transform:scale(.5)}}
body.cosmetics-paused :is(.phantom-crown-aura,.phantom-crown-orbit,.phantom-crown-orbit i){animation-play-state:paused!important}body[data-animation="OFF"] :is(.phantom-crown-aura,.phantom-crown-orbit,.phantom-crown-orbit i),body.decorations-off :is(.phantom-crown-aura,.phantom-crown-orbit,.phantom-crown-orbit i){animation:none!important}
@media(prefers-reduced-motion:reduce){.phantom-crown-aura,.phantom-crown-orbit,.phantom-crown-orbit i{animation:none!important}}
@media(max-width:600px){.halloween-voucher{flex-direction:column;align-items:stretch;padding:16px}.halloween-voucher .actions{flex-direction:row;flex-wrap:wrap}.halloween-voucher code{letter-spacing:1px;font-size:17px}}

.haunting-days li{min-width:0;gap:7px;text-align:center;padding:14px 7px}.haunting-days li strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere;color:#ffe3b6}.haunting-days li small{font-size:10px}.haunted-audio-preview{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;padding:34px 18px;min-height:180px;background:radial-gradient(ellipse,#573074,#140b23);border:1px solid #ba8bce;border-radius:16px;color:#ffd18a}.haunted-audio-preview>span{font:64px Georgia,serif;text-shadow:0 0 20px #d28aff}.haunted-audio-preview i{width:5px;height:35px;border-radius:8px;background:linear-gradient(#ffe0a0,#bb6af1);animation:hauntedEqualizer 1.8s ease-in-out infinite alternate}.haunted-audio-preview i:nth-child(3n){animation-delay:-.7s;height:55px}.haunted-audio-preview small{flex-basis:100%;font-size:10px;letter-spacing:2px;text-align:center}@keyframes hauntedEqualizer{to{transform:scaleY(.3);opacity:.5}}
@media(max-width:600px){.haunting-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.haunting-days li:last-child{grid-column:1/-1}.haunting-days li strong{font-size:13px}}@media(prefers-reduced-motion:reduce){.haunted-audio-preview i{animation:none!important}}

/* Collectors Limited: slow ember sweep on the face, drifting graveyard mist on the back,
   and hinged demon wings on the Phantom Crown portrait frame. */
.face-cursed-pumpkin .playing-card:not(.card-back),.deck-face-cursed-pumpkin .face,.mini-turn-card.deck-face-cursed-pumpkin{background-image:linear-gradient(180deg,#1a092325,#260d241a),url('/halloween/cursed-pumpkin.webp');background-size:100% 100%;background-position:center;animation:haunt-card-light 6s ease-in-out infinite}
.face-cursed-pumpkin .playing-card:not(.card-back):before,.deck-face-cursed-pumpkin .face:before{content:'';position:absolute;inset:-20% -70%;z-index:0;pointer-events:none;background:linear-gradient(108deg,transparent 43%,#ffeab137 49%,#fff1cc66 50%,transparent 57%);transform:translateX(-70%);animation:emberSweep 8s ease-in-out infinite}
.face-cursed-pumpkin .playing-card:not(.card-back)>:is(b,strong,small),.deck-face-cursed-pumpkin .face>*{position:relative;z-index:1}
.back-midnight-graveyard .card-back,.deck-back-midnight-graveyard .back,.mini-back.deck-back-midnight-graveyard{background-image:linear-gradient(180deg,#130c2550,#140d1859),url('/halloween/midnight-graveyard.webp')!important;background-size:100% 100%!important;background-position:center!important;animation:graveyardGlow 8s ease-in-out infinite alternate}
.back-midnight-graveyard .card-back:after,.deck-back-midnight-graveyard .back:after{inset:-10% -35% -5%;background:radial-gradient(ellipse at 50% 85%,#d3b5ff4a,transparent 58%);filter:blur(7px);animation:graveyardMist 9s ease-in-out infinite alternate}
.phantom-wings{position:absolute;inset:-48%;z-index:0;width:196%;height:196%;max-width:none;overflow:visible;pointer-events:none;filter:drop-shadow(0 0 4px #9b4dd6aa)}
.phantom-wing{transform-box:view-box;transform-origin:100px 108px;animation:phantomWingLeft 3.6s ease-in-out infinite;transform-style:preserve-3d}
.wing-right{animation-name:phantomWingRight;animation-delay:-1.8s}
.wing-membrane{stroke:#d89afa;stroke-width:1.3;stroke-linejoin:round;opacity:.93}
.wing-ribs{fill:none;stroke:#d495f3;stroke-width:1.4;stroke-linecap:round;opacity:.8}
.wing-bone{fill:none;stroke:#ffe1ff;stroke-width:2.2;stroke-linecap:round;opacity:.9}
.border-phantom-crown .phantom-crown-art{z-index:3}
@keyframes emberSweep{0%,16%{transform:translateX(-70%);opacity:0}38%,66%{opacity:.8}88%,100%{transform:translateX(70%);opacity:0}}
@keyframes graveyardGlow{from{filter:brightness(.88) saturate(.9)}to{filter:brightness(1.08) saturate(1.16)}}
@keyframes graveyardMist{from{transform:translate(-5%,2%);opacity:.42}to{transform:translate(5%,-2%);opacity:.85}}
@keyframes phantomWingLeft{0%,100%{transform:rotate(-5deg) scaleY(.91)}50%{transform:rotate(15deg) scaleY(1.04)}}
@keyframes phantomWingRight{0%,100%{transform:rotate(5deg) scaleY(.91)}50%{transform:rotate(-15deg) scaleY(1.04)}}
body[data-animation="OFF"] .phantom-wings,body.decorations-off .phantom-wings,body[data-animation="OFF"] .face-cursed-pumpkin *,body.decorations-off .face-cursed-pumpkin *,body[data-animation="OFF"] .back-midnight-graveyard *,body.decorations-off .back-midnight-graveyard *{animation:none!important}
body.cosmetics-paused :is(.phantom-wings,.face-cursed-pumpkin *, .back-midnight-graveyard *){animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.phantom-wings,.phantom-wing,.face-cursed-pumpkin *, .back-midnight-graveyard *{animation:none!important;transition:none!important}.phantom-wing{transform:none!important}}
