/* Free SW Wallpaper Pack (email-signup unlock). Works with and without the Halloween theme. */
.wall{position:relative;margin:2rem 0;padding:0 0 1.4rem;background:linear-gradient(180deg,#1d2023,#121416);border:1px solid var(--surface);border-top:3px solid var(--crimson);border-radius:var(--r);overflow:hidden}
.wall-banner{display:block;position:relative}.wall-banner img{display:block;width:100%;height:auto;aspect-ratio:16/5;object-fit:cover}
.wall-banner::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(to top,#1a1c1f,transparent)}
.wall-head{padding:1rem 1.2rem .4rem;text-align:center}
.wall-kicker{display:inline-block;margin:0 0 .4rem;padding:.15rem .7rem;font-family:var(--ui);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;background:var(--hazard);color:#121416;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}
.wall-head h2{margin:.2rem 0 .4rem;font-size:clamp(1.6rem,5vw,2.4rem)}
.wall-head p{margin:.2rem auto;max-width:38rem;color:var(--chalk)}
.wall-grid{list-style:none;margin:1rem 0 0;padding:0 1.2rem;display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.wall-card{position:relative;min-width:0;background:#0d0e10;border:1px solid var(--surface);border-radius:var(--r);overflow:hidden;transition:border-color .3s,box-shadow .3s}
.wall-card .pv{position:relative;aspect-ratio:16/9;overflow:hidden;background:#0b0c0d}
.wall-card .pv img{width:100%;height:100%;object-fit:cover;display:block;transition:filter .9s ease,transform .9s ease}
.wall-card h3{margin:0;padding:.6rem .75rem .2rem;font-size:1rem;color:var(--bone);font-family:var(--ui);font-weight:400;letter-spacing:.03em}
.wall-card .dl{display:flex;flex-wrap:wrap;gap:.4rem;padding:.45rem .75rem .8rem}
.wall-card .dl a{flex:1 1 auto;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:.35rem .5rem;border:1px solid var(--bone);border-radius:4px;color:var(--chalk);text-decoration:none;font-family:var(--ui);font-size:.82rem;letter-spacing:.04em;background:#16181b}
.wall-card .dl a:hover,.wall-card .dl a:focus-visible{background:var(--bone);color:#121416}
.wall-card .dl a small{margin-left:.3rem;opacity:.75;font-size:.72rem}
.wall-lock{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;color:var(--chalk);font-family:var(--ui);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(10,11,12,.45);text-shadow:0 1px 3px #000}
.wall-lock svg{width:30px;height:30px;fill:var(--chalk);filter:drop-shadow(0 0 6px rgba(0,0,0,.8))}
.wall.locked .wall-card .pv img{filter:blur(9px) brightness(.6) saturate(.7);transform:scale(1.08)}
.wall.locked .dl,.wall.locked .wall-unlocked-only{display:none}
.wall:not(.locked) .wall-lock,.wall:not(.locked) .wall-locked-only{display:none}
.wall-cta{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;justify-content:center;padding:1.1rem 1.2rem 0;text-align:center}
.wall-zips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.wall-msg{margin:.6rem 1.2rem 0;text-align:center;color:#5be37d;font-family:var(--ui)}
/* reveal animation */
.wall.revealing .wall-card{animation:wall-in .7s cubic-bezier(.2,.8,.2,1) both}
.wall.revealing .wall-card:nth-child(2){animation-delay:.12s}.wall.revealing .wall-card:nth-child(3){animation-delay:.24s}.wall.revealing .wall-card:nth-child(4){animation-delay:.36s}
.wall.revealing .wall-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);transform:translateX(-120%);animation:wall-shine 1.1s ease .3s both}
@keyframes wall-in{from{opacity:.2;transform:translateY(14px) scale(.97);box-shadow:none}60%{box-shadow:0 0 0 1px var(--hazard),0 0 26px rgba(245,183,0,.45)}to{opacity:1;transform:none}}
@keyframes wall-shine{to{transform:translateX(120%)}}
/* Home band */
.wall-band{position:relative;display:grid;margin:2rem 0;border:1px solid var(--surface);border-radius:var(--r);overflow:hidden;background:#0d0e10;text-decoration:none;color:var(--chalk)}
.wall-band img{display:block;width:100%;height:auto;aspect-ratio:16/5;object-fit:cover;transition:transform .6s}
.wall-band:hover img{transform:scale(1.03)}
.wall-band .txt{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;justify-content:space-between;padding:.9rem 1.1rem}
.wall-band .txt strong{font-family:var(--display);font-weight:400;font-size:clamp(1.2rem,3.6vw,1.6rem);color:var(--crimson);text-transform:uppercase;letter-spacing:.04em}
.wall-band .txt span{color:var(--chalk)}
.wall-page .wall{margin-top:1rem}
@media (prefers-reduced-motion:reduce){.wall.revealing .wall-card,.wall.revealing .wall-card::after{animation:none}.wall-card .pv img,.wall-band img{transition:none}}
@media (max-width:560px){.wall-grid{padding:0 .8rem;grid-template-columns:1fr}.wall-head{padding:.8rem .8rem .3rem}}
