/* Sonic Shaman 2026 Background — fade in/out neon rings */
.ss26-bg-wrap{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-3;overflow:hidden;background:#000;pointer-events:none;transform:translate3d(0,0,0)}
/* SVG 交錯中心 = viewBox 正中央；用 top 把該中心錨到視窗 y = --ss26-y（預設 33%），再以該點為原點縮放 */
.ss26-bg-wrap .ss-bg{position:absolute;left:0;width:100%;height:100%;display:block;top:calc(var(--ss26-y,73%) - 50%);transform:scale(var(--ss26-scale,1.5));transform-origin:50% 50%;filter:blur(var(--ss26-blur,1px))}
/* 毛玻璃顆粒層：SVG feTurbulence 噪點，疊在光帶上 */
.ss26-bg-wrap .ss26-grain{position:absolute;inset:0;pointer-events:none;opacity:var(--ss26-grain,.65);mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:400px 400px}
.ss26-bg-wrap .ring{fill:none;stroke-width:255.12px;stroke-miterlimit:10;will-change:opacity;opacity:0}
.ss26-bg-wrap .r1{animation:ss26-fade1 calc(14s / var(--ss26-speed,1)) ease-in-out calc(0s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade1{0%,100%{opacity:0}50%{opacity:1}}
.ss26-bg-wrap .r2{animation:ss26-fade2 calc(18s / var(--ss26-speed,1)) ease-in-out calc(-6s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade2{0%,100%{opacity:0}50%{opacity:1}}
.ss26-bg-wrap .r3{animation:ss26-fade3 calc(11s / var(--ss26-speed,1)) ease-in-out calc(-3s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade3{0%,100%{opacity:0}50%{opacity:1}}
.ss26-bg-wrap .r4{animation:ss26-fade4 calc(16s / var(--ss26-speed,1)) ease-in-out calc(-9s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade4{0%,100%{opacity:0}50%{opacity:1}}
.ss26-bg-wrap .r5{animation:ss26-fade5 calc(13s / var(--ss26-speed,1)) ease-in-out calc(-11s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade5{0%,100%{opacity:0}50%{opacity:1}}
.ss26-bg-wrap .r6{animation:ss26-fade6 calc(17s / var(--ss26-speed,1)) ease-in-out calc(-2s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade6{0%,100%{opacity:0}50%{opacity:1}}
.ss26-bg-wrap .r7{animation:ss26-fade7 calc(12s / var(--ss26-speed,1)) ease-in-out calc(-8s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade7{0%,100%{opacity:0}50%{opacity:1}}
.ss26-bg-wrap .r8{animation:ss26-fade8 calc(15s / var(--ss26-speed,1)) ease-in-out calc(-5s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade8{0%,100%{opacity:0}50%{opacity:1}}
.ss26-bg-wrap .r9{animation:ss26-fade9 calc(19s / var(--ss26-speed,1)) ease-in-out calc(-12s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade9{0%,100%{opacity:0}50%{opacity:1}}
.ss26-bg-wrap .r10{animation:ss26-fade10 calc(10s / var(--ss26-speed,1)) ease-in-out calc(-4s / var(--ss26-speed,1)) infinite}
@keyframes ss26-fade10{0%,100%{opacity:0}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.ss26-bg-wrap .ring{animation:none!important;opacity:1}}
