/* SHAMON — live effects */
html{scroll-behavior:smooth}
::selection{background:rgba(214,59,81,.45);color:#fff}
/* scroll progress + cursor light + dust */
.fx-progress{position:fixed;left:0;top:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);z-index:1000;background:linear-gradient(90deg,#a61f32,#d63b51 35%,#9a72f5 70%,#d7b26d);box-shadow:0 0 12px rgba(214,59,81,.8);pointer-events:none}
.fx-cursor{position:fixed;left:0;top:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;pointer-events:none;z-index:6;mix-blend-mode:screen;opacity:0;transition:opacity .6s;background:radial-gradient(circle,rgba(154,114,245,.16) 0%,rgba(214,59,81,.08) 35%,transparent 65%)}
.fx-dust{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;mix-blend-mode:screen;opacity:.7}
/* hero */
.hero .hero-img{transform:scale(1.08);will-change:transform;transition:transform .2s linear}
.fx-hero-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;mix-blend-mode:screen}
.fx-breath{position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(38% 46% at 74% 30%,rgba(214,59,81,.28),transparent 70%),radial-gradient(30% 40% at 92% 20%,rgba(154,114,245,.24),transparent 70%);mix-blend-mode:screen;animation:fxBreath 5.5s ease-in-out infinite}
.fx-flash{position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(60% 50% at 80% 18%,rgba(190,160,255,.5),transparent 60%);mix-blend-mode:screen;opacity:0}
.fx-flash.on{animation:fxFlash .9s ease-out}
.hero .wrap>div:first-child>*{animation:fxRise 1s cubic-bezier(.2,.8,.2,1) both}
.hero .wrap>div:first-child>*:nth-child(2){animation-delay:.15s}
.hero .wrap>div:first-child>*:nth-child(3){animation-delay:.3s}
.hero .wrap>div:last-child{animation:fxRise 1s .45s cubic-bezier(.2,.8,.2,1) both}
.metal{background-size:100% 240%;animation:fxMetal 7s ease-in-out infinite}
#hero-title{position:relative}
.fx-glint{position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.55) 50%,transparent 60%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:fxGlint 6s ease-in-out infinite 1.2s}
/* section aurora */
.fx-aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.fx-aurora i{position:absolute;width:46vw;height:46vw;max-width:720px;max-height:720px;border-radius:50%;filter:blur(90px);opacity:.16;animation:fxDrift 22s ease-in-out infinite alternate}
.fx-aurora i:nth-child(1){left:-10%;top:-20%;background:#a61f32}
.fx-aurora i:nth-child(2){right:-12%;bottom:-25%;background:#7256c8;animation-duration:28s;animation-delay:-8s}
.fog{animation:fxFog 18s ease-in-out infinite alternate}
/* reveal */
.fx-reveal{opacity:0;transform:translateY(34px) scale(.985);filter:blur(6px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1),filter .9s}
.fx-reveal.fx-in{opacity:1;transform:none;filter:none}
.sec-h2.fx-reveal{transform:translateY(24px);letter-spacing:.2em}
.sec-h2.fx-reveal.fx-in{letter-spacing:.04em;transition:opacity 1s,transform 1s,filter 1s,letter-spacing 1.4s cubic-bezier(.2,.8,.2,1)}
/* interactive cards */
.fx-card{transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s;transform-style:preserve-3d;will-change:transform}
.fx-card:hover{box-shadow:0 24px 60px rgba(0,0,0,.55),0 0 38px var(--a-glow,rgba(214,59,81,.35))}
.fx-spot,.fx-edge{position:absolute;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .35s;z-index:4}
.fx-spot{inset:0;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),var(--a-glow,rgba(214,59,81,.3)),transparent 45%);mix-blend-mode:screen}
.fx-edge{inset:-1px;padding:1px;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),#fff,var(--a,#d63b51) 25%,transparent 60%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.fx-card:hover>.fx-spot,.fx-card:hover>.fx-edge{opacity:1}
.sh-boss .sh-art img,.sh-zone img,.sh-news .sh-art img{transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .6s}
.sh-boss:hover .sh-art img{transform:scale(1.09);filter:saturate(1.25) brightness(1.12)}
.sh-zone:hover img{transform:scale(1.07);filter:saturate(1.2) brightness(1.1)}
.sh-boss-name,.sh-news-title,.sh-feat-title,.sh-card-title{transition:color .3s,text-shadow .3s}
.sh-boss:hover .sh-boss-name,.sh-news:hover .sh-news-title,.sh-feat:hover .sh-feat-title,.sh-card:hover .sh-card-title{text-shadow:0 0 18px var(--a-glow,rgba(214,59,81,.6))}
.sh-feat:hover .sh-gem,.sh-show:hover .sh-gem,.sh-rate:hover .sh-rate-icon{filter:drop-shadow(0 0 10px var(--a,#d63b51)) brightness(1.3)}
.sh-gem,.sh-rate-icon{transition:filter .4s}
.sh-rate-value{display:inline-block}
.sh-rate:hover .sh-rate-value{animation:fxPop .5s ease}
.sh-boss-timer{animation:fxTick 1s steps(1) infinite}
.sh-status-dot{animation:fxDot 1.8s ease-out infinite}
.sh-table tbody tr{transition:background .3s,transform .3s}
.sh-table tbody tr:hover{background:linear-gradient(90deg,rgba(214,59,81,.18),rgba(154,114,245,.06) 60%,transparent);transform:translateX(6px)}
/* buttons */
.sh-btn{transition:transform .25s cubic-bezier(.2,.8,.2,1),filter .3s}
.sh-btn:hover{filter:brightness(1.15) drop-shadow(0 0 14px rgba(214,59,81,.45))}
.fx-shine{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}
.fx-shine::after{content:"";position:absolute;top:-50%;bottom:-50%;width:40%;left:-60%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent)}
.sh-btn:hover .fx-shine::after{animation:fxSweep .9s ease}
.fx-spark{position:fixed;width:5px;height:5px;border-radius:50%;pointer-events:none;z-index:1001}
.fx-ring{position:fixed;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;border:2px solid #d63b51;pointer-events:none;z-index:1001;animation:fxRing .6s ease-out forwards}
.sh-header.fx-scrolled{box-shadow:0 10px 40px rgba(0,0,0,.6);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
@keyframes fxBreath{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes fxFlash{0%{opacity:0}8%{opacity:.9}16%{opacity:.2}24%{opacity:.7}100%{opacity:0}}
@keyframes fxRise{from{opacity:0;transform:translateY(40px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes fxMetal{0%,100%{background-position:0 0}50%{background-position:0 100%}}
@keyframes fxGlint{0%,70%{background-position:150% 0}100%{background-position:-60% 0}}
@keyframes fxDrift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(8vw,6vh) scale(1.15)}100%{transform:translate(-4vw,10vh) scale(.95)}}
@keyframes fxFog{0%{transform:translateX(-40px)}100%{transform:translateX(60px)}}
@keyframes fxPop{0%{transform:scale(1)}40%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes fxTick{0%{opacity:1}50%{opacity:.75}}
@keyframes fxDot{0%{box-shadow:0 0 0 0 rgba(76,195,138,.7)}100%{box-shadow:0 0 0 10px rgba(76,195,138,0)}}
@keyframes fxSweep{from{left:-60%}to{left:130%}}
@keyframes fxRing{to{transform:scale(7);opacity:0}}
@media (prefers-reduced-motion: reduce){
  .fx-breath,.metal,.fx-glint,.fx-aurora i,.fog,.sh-boss-timer,.sh-status-dot,.hero .wrap>div>*{animation:none!important}
  .fx-reveal{opacity:1;transform:none;filter:none}
  .fx-dust,.fx-cursor,.fx-hero-canvas{display:none}
}

.fx-stage{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.fx-map{position:absolute}
.fx-map>*{position:absolute;transform:translate(-50%,-50%);pointer-events:none;mix-blend-mode:screen}
.fx-orb-core{border-radius:50%;background:radial-gradient(circle,rgba(255,235,240,.95) 0%,rgba(255,70,100,.85) 12%,rgba(214,40,70,.45) 32%,rgba(166,31,50,.18) 55%,transparent 72%);animation:fxOrb 2.8s ease-in-out infinite}
.fx-orb-halo{border-radius:50%;background:radial-gradient(circle,rgba(255,60,90,.35) 0%,rgba(166,31,50,.18) 40%,transparent 70%);animation:fxOrb 2.8s ease-in-out infinite .4s;filter:blur(6px)}
.fx-swirl{animation:fxSpin 9s linear infinite;opacity:.42;filter:blur(.6px) drop-shadow(0 0 6px rgba(255,60,90,.9))}
.fx-swirl.r2{animation-duration:14s;animation-direction:reverse}
.fx-swirl.r3{animation-duration:6s}
.fx-crystal{border-radius:50%;background:radial-gradient(closest-side,rgba(240,225,255,.9) 0%,rgba(170,120,255,.7) 25%,rgba(120,70,230,.3) 55%,transparent 100%);animation:fxCrystal 3.4s ease-in-out infinite}
.fx-crystal-aura{border-radius:50%;background:radial-gradient(closest-side,rgba(154,114,245,.45),transparent 100%);filter:blur(10px);animation:fxCrystal 3.4s ease-in-out infinite 1.1s}
.fx-eye{border-radius:50%;background:radial-gradient(circle,#fff 0%,#ff3b5a 30%,rgba(255,40,70,.4) 55%,transparent 72%);animation:fxEye 6s ease-in-out infinite}
.fx-eye.r{animation-delay:.08s}
.fx-eye::after{content:"";position:absolute;left:50%;top:50%;width:900%;height:16%;transform:translate(-50%,-50%) scaleX(0);background:linear-gradient(90deg,transparent,rgba(255,90,120,.9),transparent);animation:fxStreak 6s ease-in-out infinite}
.fx-unused-ecl-ring{border-radius:50%;box-shadow:0 0 0 2px rgba(255,90,110,.55),0 0 26px 8px rgba(214,59,81,.55),0 0 80px 24px rgba(166,31,50,.35),inset 0 0 30px rgba(255,80,100,.35);animation:fxCorona 4.5s ease-in-out infinite}
.fx-unused-ecl-rays{border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,80,110,.0) 0deg 6deg,rgba(255,80,110,.22) 7deg 8deg,rgba(255,80,110,0) 9deg 15deg);-webkit-mask:radial-gradient(circle,transparent 30%,#000 34%,transparent 70%);mask:radial-gradient(circle,transparent 30%,#000 34%,transparent 70%);animation:fxSpin 60s linear infinite}
.fx-window{opacity:.8;border-radius:50%;background:radial-gradient(circle,rgba(255,200,150,.95) 0%,rgba(255,80,60,.7) 30%,transparent 70%);animation:fxFlicker 2.3s steps(6) infinite}
.fx-rays{position:absolute;inset:-20%;pointer-events:none;z-index:1;mix-blend-mode:screen;opacity:.5;background:repeating-linear-gradient(115deg,transparent 0 60px,rgba(255,120,140,.06) 70px 90px,transparent 100px 170px);-webkit-mask:radial-gradient(60% 60% at 70% 10%,#000,transparent 70%);mask:radial-gradient(60% 60% at 70% 10%,#000,transparent 70%);animation:fxRays 16s ease-in-out infinite alternate}
.fx-fogband{position:absolute;left:-30%;width:160%;height:240px;pointer-events:none;z-index:1;border-radius:50%;filter:blur(40px);opacity:.55}
.fx-fogband.a{bottom:-60px;background:radial-gradient(50% 50% at 50% 50%,rgba(120,90,190,.55),transparent 70%);animation:fxFogMove 26s ease-in-out infinite alternate}
.fx-fogband.b{bottom:40px;height:180px;background:radial-gradient(50% 50% at 50% 50%,rgba(166,31,50,.45),transparent 70%);animation:fxFogMove 34s ease-in-out infinite alternate-reverse}
.fx-magic{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;mix-blend-mode:screen}
.fx-intro{position:fixed;inset:0;z-index:2000;pointer-events:none;background:#050508;animation:fxIntro 1.8s cubic-bezier(.7,0,.3,1) forwards}
.fx-intro::after{content:"";position:absolute;left:50%;top:45%;width:60vmax;height:60vmax;transform:translate(-50%,-50%) scale(.2);border-radius:50%;background:radial-gradient(circle,rgba(255,90,110,.55),rgba(154,114,245,.2) 40%,transparent 65%);animation:fxIntroFlash 1.4s ease-out forwards}
.fx-scrollcue{position:absolute;left:50%;bottom:28px;z-index:3;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font:700 10px/1 Manrope,sans-serif;letter-spacing:.3em;color:rgba(241,241,243,.6);pointer-events:none}
.fx-scrollcue i{display:block;width:1px;height:46px;background:linear-gradient(180deg,transparent,#d63b51);position:relative;overflow:hidden}
.fx-scrollcue i::after{content:"";position:absolute;left:-2px;top:-12px;width:5px;height:12px;border-radius:3px;background:#ff8597;box-shadow:0 0 10px #d63b51;animation:fxCue 1.8s ease-in-out infinite}
.fx-divider{position:absolute;left:50%;top:-1px;width:min(80%,980px);height:1px;transform:translateX(-50%);pointer-events:none;z-index:1;background:linear-gradient(90deg,transparent,rgba(215,178,109,.45),rgba(214,59,81,.6),rgba(215,178,109,.45),transparent);overflow:visible}
.fx-divider::before{content:"";position:absolute;top:-2px;height:5px;width:120px;border-radius:3px;background:radial-gradient(closest-side,#fff,rgba(255,110,130,.9),transparent);filter:blur(1px);animation:fxTravel 6s ease-in-out infinite}
.fx-divider::after{content:"";position:absolute;left:50%;top:-5px;width:9px;height:9px;transform:translateX(-50%) rotate(45deg);border:1px solid #d7b26d;background:#0b0c13;box-shadow:0 0 12px rgba(215,178,109,.7)}
@keyframes fxOrb{0%,100%{opacity:.75;transform:translate(-50%,-50%) scale(.92)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}}
@keyframes fxSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes fxCrystal{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.95)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.07)}55%{opacity:.8}}
@keyframes fxEye{0%,40%,100%{opacity:.55;transform:translate(-50%,-50%) scale(1)}46%{opacity:1;transform:translate(-50%,-50%) scale(1.8)}52%{opacity:.7;transform:translate(-50%,-50%) scale(1.1)}}
@keyframes fxStreak{0%,42%,60%,100%{transform:translate(-50%,-50%) scaleX(0);opacity:0}47%{transform:translate(-50%,-50%) scaleX(1);opacity:1}}
@keyframes fxCorona{0%,100%{opacity:.7}30%{opacity:1}35%{opacity:.6}40%{opacity:.95}}
@keyframes fxFlicker{0%{opacity:.9}17%{opacity:.5}33%{opacity:1}50%{opacity:.65}67%{opacity:.95}83%{opacity:.4}}
@keyframes fxRays{from{transform:translateX(-3%) rotate(-2deg)}to{transform:translateX(3%) rotate(2deg)}}
@keyframes fxFogMove{from{transform:translateX(-8%)}to{transform:translateX(10%)}}
@keyframes fxIntro{0%,30%{opacity:1}100%{opacity:0;visibility:hidden}}
@keyframes fxIntroFlash{0%{transform:translate(-50%,-50%) scale(.1);opacity:0}40%{opacity:1}100%{transform:translate(-50%,-50%) scale(1.6);opacity:0}}
@keyframes fxCue{0%{top:-12px}100%{top:46px}}
@keyframes fxTravel{0%{left:0%;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:calc(100% - 120px);opacity:0}}
@media (max-width:720px){.fx-scrollcue{display:none}}
@media (prefers-reduced-motion: reduce){.fx-map>*,.fx-rays,.fx-fogband,.fx-divider::before,.fx-scrollcue i::after{animation:none!important}.fx-intro,.fx-magic{display:none}}

/* mobile menu */
.sh-header.is-open .sh-nav{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;padding:8px 20px 16px;background:rgba(9,10,15,.97);border-bottom:1px solid var(--line);z-index:60;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.sh-header.is-open .sh-nav a{height:48px}
