/* Seasonal only; shared style.css stays untouched. */
body[data-theme="halloween"]{color-scheme:dark}
body[data-theme="halloween"] .site-header{background:rgba(20,14,32,.96);border-bottom-color:var(--line)}
body[data-theme="halloween"] .nav{background:var(--bg)}
body[data-theme="halloween"] :is(input,textarea,select){color:var(--ink);background:var(--surface);border-color:var(--line)}
body[data-theme="halloween"] :is(.btn-primary,.badge){color:var(--accent-ink)}
body[data-theme="halloween"] .btn-dark{background:#48304F;color:#FFF4E6}
body[data-theme="halloween"] :is(.hero,.page-hero){background:radial-gradient(ellipse at 80% 10%,#38213D 0,transparent 60%),var(--bg)}
body[data-theme="halloween"] .media{box-shadow:0 0 0 1px #594265,0 14px 45px #0004}
body[data-theme="halloween"] .seasonal-banner{position:relative;isolation:isolate;background:#1A1226 url('../img/halloween-night.webp') center 58%/cover;border-bottom:1px solid #594265}
.seasonal-banner::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,9,21,.92),rgba(14,9,21,.60) 55%,rgba(14,9,21,.22));z-index:-1}
.seasonal-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-block:34px;min-height:270px}
.seasonal-copy{max-width:580px;color:#FFF4E6}
.seasonal-kicker{font-size:.76rem;letter-spacing:.15em;color:#FFD2AA;font-weight:700;margin:0 0 10px}
.seasonal-title{font-size:clamp(1.65rem,3.6vw,2.8rem);font-weight:800;line-height:1.2;margin:0 0 12px}
.seasonal-copy>.btn{margin-top:14px;background:#FFAA57;color:#241224}
.seasonal-controls{display:grid;gap:8px;width:220px;flex-shrink:0;padding:16px;border:1px solid #887093;background:rgba(20,14,32,.85);border-radius:18px}
.seasonal-controls small{font-size:.72rem;color:#D5C5DD}
.seasonal-button{min-height:44px;padding:9px 12px;border:1px solid #887093;border-radius:10px;color:#FFF4E6;background:#32223E;font:inherit;font-size:.82rem;text-align:left;cursor:pointer}
.seasonal-button[aria-pressed="true"]{border-color:#FFAA57}
.seasonal-button:focus-visible{outline:3px solid #FFAA57;outline-offset:3px}
.seasonal-status{font-size:.75rem;color:#FFD2AA;min-height:1em}
.seasonal-effects{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:2;contain:strict}
.seasonal-fog{position:absolute;bottom:-70px;left:-15%;width:130%;height:220px;background:radial-gradient(ellipse,rgba(188,156,204,.13),transparent 65%);animation:seasonal-fog 28s ease-in-out infinite alternate}
.seasonal-fog.second{bottom:10%;opacity:.35;animation-duration:37s;animation-direction:alternate-reverse}
.seasonal-bat{position:absolute;width:38px;height:18px;top:calc(8% + var(--i)*11%);left:calc(2% + var(--i)*43%);fill:#B69DC8;opacity:.20;animation:seasonal-bat 19s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-5s)}
.seasonal-ember{position:absolute;bottom:-20px;left:calc(1% + var(--i)*24%);width:4px;height:4px;border-radius:50%;background:#FFAA57;box-shadow:0 0 10px #FFAA57;opacity:.35;animation:seasonal-rise 21s linear infinite;animation-delay:calc(var(--i)*-4s)}
@keyframes seasonal-fog{to{transform:translate(8%,15px)}}
@keyframes seasonal-bat{to{transform:translate(30px,45px) rotate(12deg)}}
@keyframes seasonal-rise{to{transform:translate(12px,-85vh);opacity:0}}
body[data-seasonal-motion="off"] .seasonal-effects{display:none}
.seasonal-pumpkin{position:fixed;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(104px + env(safe-area-inset-bottom,0px));z-index:90;width:76px;height:82px;padding:0;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 5px 9px #0009);touch-action:manipulation;transition:transform .2s,filter .2s}
.seasonal-pumpkin svg{display:block;width:100%;height:100%}
body:has(.install-bar.show) .seasonal-pumpkin{bottom:calc(176px + env(safe-area-inset-bottom,0px))}
.pumpkin-face{color:#ffe998;fill:currentColor;filter:drop-shadow(0 0 4px #ffce52)}
.pumpkin-mouth-closed{display:none}
.seasonal-pumpkin[aria-pressed="false"] .pumpkin-face{color:#442018;filter:none}
.seasonal-pumpkin[aria-pressed="false"] .pumpkin-mouth-open{display:none}
.seasonal-pumpkin[aria-pressed="false"] .pumpkin-mouth-closed{display:block}
.seasonal-pumpkin[aria-pressed="true"]{filter:drop-shadow(0 0 10px #ff9d3b88) drop-shadow(0 5px 9px #0009)}
.seasonal-pumpkin:hover{transform:rotate(-8deg) scale(1.08)}
.seasonal-pumpkin:active{transform:scale(.92)}
.seasonal-pumpkin:focus-visible{outline:3px solid #ffe998;outline-offset:4px;border-radius:45%}
.pumpkin-state{position:absolute;bottom:0;left:50%;transform:translateX(-50%);padding:1px 7px;border-radius:12px;background:#241224;color:#ffdc9c;border:1px solid #a86632;font:700 10px/1.5 system-ui;letter-spacing:.1em}
.seasonal-pumpkin .pumpkin-state{bottom:4px;left:auto;right:calc(100% + 10px);transform:none;min-width:102px;padding:6px 9px;white-space:nowrap;letter-spacing:.04em;font-size:11px;text-align:center;box-shadow:0 4px 14px #0008;pointer-events:none}
.pumpkin-state>span{display:block}.pumpkin-state>span:first-child{color:#ffa950;font-size:12px;font-weight:800}
.seasonal-pumpkin[aria-pressed="false"]{animation:pumpkin-invite 4.2s ease-in-out infinite;transform-origin:50% 80%}
.seasonal-pumpkin[aria-pressed="false"] .pumpkin-face{color:#ffd085;filter:drop-shadow(0 0 3px #ffae52)}
@keyframes pumpkin-invite{0%,65%,100%{transform:translateY(0) rotate(0);filter:drop-shadow(0 5px 9px #0009)}72%{transform:translateY(-5px) rotate(-8deg);filter:drop-shadow(0 0 12px #ff9d3b99)}80%{transform:translateY(-3px) rotate(8deg)}88%{transform:translateY(-5px) rotate(-5deg)}}
@media(prefers-reduced-motion:reduce){.seasonal-pumpkin[aria-pressed="false"]{animation:none}}
.seasonal-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:640px){.seasonal-pumpkin{width:62px;height:68px;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(100px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){.seasonal-pumpkin{transition:none}.seasonal-pumpkin:hover{transform:none}}
/* 3.11.2: no promotional banner; compact controls stay in the page flow. */
.seasonal-toolbar{background:rgba(20,14,32,.8);border-bottom:1px solid var(--line)}
.seasonal-toolbar .seasonal-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:auto;margin:0;padding:10px 0;border:0;border-radius:0;background:none}
.seasonal-toolbar .seasonal-button{flex:0 1 auto}
.seasonal-toolbar .seasonal-volume{flex:0 1 180px;margin:0}
.seasonal-toolbar .seasonal-status:empty{display:none}
@media(prefers-reduced-motion:reduce){.seasonal-effects{display:none!important}}
@media(max-width:640px){.seasonal-inner{display:block;padding-block:28px;min-height:0}.seasonal-controls{margin-top:24px;width:100%;grid-template-columns:1fr 1fr}.seasonal-controls :is(small,.seasonal-status){grid-column:1/-1}.seasonal-button{font-size:.75rem}.seasonal-banner::before{background:rgba(14,9,21,.76)}.seasonal-effects .seasonal-bat{width:25px}.seasonal-fog.second{display:none}}

/* 3.11.1 Hell Angel: a repeating full-page backdrop, not just a banner. */
body[data-theme="halloween"]{background:#140E20 url('../img/angel-pattern-v1.webp') repeat;background-size:520px}
body[data-theme="halloween"] main{background:linear-gradient(90deg,#140e20a8,#140e20c9 45%,#140e20a8)}
body[data-theme="halloween"] :is(.hero,.page-hero){background:linear-gradient(105deg,#140e2080,#38213d86)}
body[data-theme="halloween"] .section{background:transparent}
body[data-theme="halloween"] :is(.card,.panel,.buy-box){background:rgba(35,24,47,.93)}
body[data-theme="halloween"] .buy-box{padding:24px;border:1px solid var(--line);border-radius:20px}
body[data-theme="halloween"] .site-footer{background:linear-gradient(#0e0915b9,#0e0915db),url('../img/angel-pattern-v1.webp') repeat;background-size:auto,520px}
.seasonal-volume{display:grid;grid-template-columns:1fr auto;gap:5px;color:#FFD2AA;font-size:.8rem}
.seasonal-volume input{grid-column:1/-1;width:100%;height:30px;accent-color:#FFAA57;padding:0}
.seasonal-controls{width:250px;border-color:#C47858;box-shadow:0 0 35px #f7632228}
.seasonal-title{text-shadow:0 0 30px #ff713050}
.seasonal-wing{position:absolute;top:22%;width:210px;height:320px;color:#FFBE85;opacity:.36;filter:drop-shadow(0 0 14px #f76322);animation:angel-wing 7s ease-in-out infinite alternate}
.seasonal-wing.wing-0{left:-50px}
.seasonal-wing.wing-1{right:-50px;transform:scaleX(-1);animation-name:angel-wing-right}
.seasonal-flame{position:absolute;bottom:-70px;width:230px;height:400px;background:radial-gradient(ellipse at 50% 95%,#ffcc7080 0,#ff72214d 23%,#ba351b26 45%,transparent 67%);filter:blur(6px);animation:angel-fire 4s ease-in-out infinite alternate;transform-origin:bottom}
.seasonal-flame.left{left:-100px}.seasonal-flame.right{right:-100px;animation-delay:-2s}
.seasonal-bat{width:48px;height:23px;top:calc(6% + var(--i)*9%);left:calc(3% + var(--i)*17%);fill:#E1B6D7;opacity:.40;animation-duration:11s}
.seasonal-ember{left:var(--x);width:5px;height:8px;opacity:.68;box-shadow:0 0 9px #ff802d,0 0 24px #ff802d;animation-duration:var(--duration);animation-delay:var(--delay)}
.seasonal-fog{height:280px;background:radial-gradient(ellipse,#bd8fbe33,transparent 65%);animation-duration:17s}
.seasonal-burst{position:fixed;width:24px;height:24px;margin:-12px;left:var(--x);top:var(--y);border:2px solid #FFD59C;border-radius:50%;box-shadow:0 0 20px #ff802d;animation:angel-burst .8s ease-out forwards}
@keyframes angel-fire{to{transform:scale(1.25,1.13) translateY(-12px);opacity:.72}}
@keyframes angel-wing{to{transform:translateY(-18px) rotate(-5deg);opacity:.48}}
@keyframes angel-wing-right{to{transform:scaleX(-1) translateY(-18px) rotate(-5deg);opacity:.48}}
@keyframes angel-burst{to{transform:scale(4);opacity:0}}
body[data-seasonal-music="on"][data-seasonal-motion="on"] .seasonal-controls{animation:angel-aura 3s ease-in-out infinite alternate}
@keyframes angel-aura{to{box-shadow:0 0 50px #ff76204a}}
@media(prefers-reduced-motion:reduce){.seasonal-controls{animation:none!important}}
@media(max-width:640px){.seasonal-controls{width:100%}.seasonal-controls .seasonal-volume{grid-column:1/-1}.seasonal-banner::before{background:rgba(14,9,21,.65)}.seasonal-effects .seasonal-bat{width:30px}.seasonal-wing{width:115px;height:180px;opacity:.28}.seasonal-wing.wing-0{left:-35px}.seasonal-wing.wing-1{right:-35px}.seasonal-ember:nth-of-type(n+13){display:none}.seasonal-flame{width:160px;height:270px}.seasonal-flame.right{display:none}body[data-theme="halloween"] .buy-box{padding:18px}}
