/* Seasonal accents are etched into surfaces, not laid over photographs. */
.crux-season i{opacity:1;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--season-color),transparent 75%));max-width:none}
.season-atmosphere{opacity:.65}
.season-trim{opacity:.85;background:linear-gradient(115deg,color-mix(in srgb,var(--season-color),transparent 96%),transparent 32%,transparent 78%,color-mix(in srgb,var(--season-color),transparent 97%))}
.season-motion i{animation-duration:24s!important}
.season-dust{opacity:.12;width:2px;height:2px;box-shadow:none}
[data-season-parts~="cards"] :is(.program-card,.booster,.product-card,.story,.contact-card,.contact-grid>article){border-color:color-mix(in srgb,var(--season-color),transparent 55%)!important;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--season-color),transparent 48%),inset 0 -1px 0 #ffffff07,0 12px 28px #05091932}
[data-season-parts~="buttons"] :is(.button,.btn,.pill,.primary,nav a,.nav-actions button,.join button,a.cta){border-color:color-mix(in srgb,var(--season-color),transparent 75%)!important;box-shadow:inset 0 -1px color-mix(in srgb,var(--season-color),transparent 70%)}
[data-season-parts~="lights"] .gate-rim{stroke:#f2f8ff!important;filter:drop-shadow(0 0 10px #effaff)!important}
.season-page-hidden .crux-season *{animation-play-state:paused!important}
/* One response per interaction: subtle lift, then a short tactile press. */
@media(hover:hover) and (pointer:fine){
 .product-card{transition:transform .28s ease,box-shadow .28s ease}
 .product-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px #0003}
}
main :is(.pill,.rail-buttons button,.merch-controls button,.event-controls button):active{transform:translateY(1px) scale(.985);transition-duration:80ms}
.event-photo:active{filter:brightness(.94)}
.event-track,.merch-rail{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
button,a{touch-action:manipulation}
.particle-stage{touch-action:pan-y}
@media(hover:none),(pointer:coarse){
 header .nav-flip,header .nav-actions>[data-modal]:hover .action-flip,header .nav-actions>[data-modal]:focus-visible .action-flip{transform:none!important;transition:none}
 header nav a:active .nav-front,header .nav-actions button:active .nav-front{background:#374536}
 .product-card:hover{transform:none}
 .gate-metal-surface:after{animation:none;opacity:.3}
}
@media(max-width:760px){
 #home .academy-gate{width:min(98vw,570px)}
 html{scroll-padding-top:90px}
 .section-head{margin-bottom:28px}
 #programs .program-card{min-width:0}
 #programs .program-card p{font-size:14px;line-height:1.85}
 .season-atmosphere{display:none}
 .crux-season i{max-width:none;opacity:1;animation:none!important}
 .season-dust{animation:none!important}
 #modal,#pack-dialog{overscroll-behavior:contain;max-height:calc(100dvh - 24px);padding-bottom:max(24px,env(safe-area-inset-bottom))}
 #modal .close,#pack-dialog .close{min-width:44px;min-height:44px}
 .event-photo{flex-basis:88%}
 .crux-music{bottom:max(10px,env(safe-area-inset-bottom));box-shadow:0 4px 16px #0004;backdrop-filter:none}
 footer{padding-bottom:100px}
 header nav{max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}
}
@media(max-width:380px){
 header{padding-inline:10px}
 header .brand{width:82px;margin-right:0;padding-right:4px}
 header .nav-actions>[data-modal]{width:72px;min-height:44px}
 header .menu-toggle{min-width:40px;min-height:44px}
 header .nav-actions{gap:2px}
 .collector-card.holo-card{width:min(350px,82vw)}
 .reveal-scene{min-width:0}
 .crux-music .music-volume{display:none}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .product-card,main .pill{transition:none}
 .product-card:hover,main .pill:active{transform:none}
}
