/* ==========================================
   WAVECLUBMEDIA — styles.css
   Black + Cherry Red | Sora + Space Mono
   ========================================== */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
:root{
  --bg:   #000;
  --bg2:  #0a0a0a;
  --bg3:  #111;
  --bg4:  #161616;
  --red:  #b01030;
  --red2: #8b0020;
  --redg: rgba(176,16,48,.35);
  --reds: rgba(176,16,48,.12);
  --txt:  #fff;
  --sub:  #aaa;
  --dim:  #555;
  --brd:  #1e1e1e;
  --brd2: #2a2a2a;
  --r:    4px;
  --r2:   10px;
  --nav:  68px;
  --tr:   .3s cubic-bezier(.4,0,.2,1);
  --fd:   'Sora',sans-serif;
  --fm:   'Space Mono',monospace;
  --fb:   'Inter',sans-serif;
}
body{background:var(--bg);color:var(--txt);font-family:var(--fb);font-weight:400;line-height:1.6;overflow-x:hidden}
body.locked{overflow:hidden}
img{display:block;max-width:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--bg2)}
::-webkit-scrollbar-thumb{background:var(--brd2);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--red2)}

/* ── TYPOGRAPHY ── */
.stag{display:block;font-family:var(--fm);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
.stitle{font-family:var(--fd);font-size:clamp(2rem,5vw,4rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;color:var(--txt);margin-bottom:18px}
.ssub{font-family:var(--fm);font-size:.72rem;color:var(--sub);letter-spacing:.05em}
.sdesc{font-size:.94rem;color:var(--sub);line-height:1.75;margin-bottom:16px}
.sdesc strong{color:var(--txt)}
.sec-head{margin-bottom:52px}

/* ── LAYOUT ── */
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.section{padding:96px 0}
.bg-black{background:var(--bg)}
.bg-dark{background:var(--bg2);border-top:1px solid var(--brd);border-bottom:1px solid var(--brd)}

/* ── BUTTONS ── */
.btn-red{display:inline-flex;align-items:center;gap:7px;padding:13px 30px;background:var(--red);color:#fff;font-family:var(--fm);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border-radius:var(--r);transition:var(--tr);position:relative;overflow:hidden}
.btn-red::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);transform:translateX(-100%);transition:transform .5s}
.btn-red:hover::after{transform:translateX(100%)}
.btn-red:hover{background:var(--red2);transform:translateY(-2px);box-shadow:0 8px 28px var(--redg)}
.btn-red.btn-sm{padding:10px 20px;font-size:.65rem}
.btn-red.btn-full{width:100%;justify-content:center}

.btn-outline-sm{display:inline-flex;align-items:center;padding:12px 28px;border:1px solid var(--brd2);color:var(--sub);font-family:var(--fm);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;border-radius:var(--r);transition:var(--tr)}
.btn-outline-sm:hover{border-color:var(--red);color:var(--red)}
.btn-outline-lg{display:inline-flex;align-items:center;padding:13px 40px;border:1px solid var(--red);color:var(--red);font-family:var(--fm);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;border-radius:var(--r);transition:var(--tr)}
.btn-outline-lg:hover{background:var(--red);color:#fff}

.btn-ghost{display:inline-flex;align-items:center;padding:10px 20px;border:1px solid var(--brd2);color:var(--sub);font-family:var(--fm);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r);transition:var(--tr)}
.btn-ghost.btn-sm{padding:10px 20px}
.btn-ghost:hover{border-color:var(--red);color:var(--red)}

.btn-tg{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:1px solid rgba(255,255,255,.1);color:var(--sub);font-family:var(--fm);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r);transition:var(--tr);background:rgba(255,255,255,.03);text-decoration:none}
.btn-tg.btn-sm{padding:10px 18px;font-size:.63rem}
.btn-tg:hover{border-color:var(--red);color:var(--red);background:var(--reds)}

/* ── COOKIE ── */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:rgba(8,8,8,.97);border-top:1px solid var(--brd2);backdrop-filter:blur(20px);transform:translateY(100%);transition:transform .5s cubic-bezier(.4,0,.2,1)}
.cookie-banner.show{transform:translateY(0)}
.cookie-inner{max-width:1200px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.cookie-inner p{flex:1;min-width:240px;font-size:.82rem;color:var(--sub)}
.cookie-inner p strong{color:var(--txt)}
.cookie-inner a{color:var(--red);text-decoration:underline}
.cookie-btns{display:flex;gap:10px;flex-shrink:0}
.cbtn-ok{padding:9px 22px;background:var(--red);color:#fff;font-family:var(--fm);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r);transition:var(--tr)}
.cbtn-ok:hover{background:var(--red2)}
.cbtn-no{padding:9px 22px;border:1px solid var(--brd2);color:var(--sub);font-family:var(--fm);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r);transition:var(--tr)}
.cbtn-no:hover{border-color:var(--sub);color:var(--txt)}

/* ── NAVBAR ── */
.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;transition:background var(--tr),border-color var(--tr),backdrop-filter var(--tr);border-bottom:1px solid transparent}
.navbar.scrolled{background:rgba(0,0,0,.93);border-bottom-color:var(--brd);backdrop-filter:blur(24px);box-shadow:0 4px 30px rgba(0,0,0,.5)}
.nav-wrap{max-width:1200px;margin:0 auto;padding:0 24px;height:var(--nav);display:flex;align-items:center;gap:24px;justify-content:space-between}
.nav-logo{display:flex;align-items:center;flex-shrink:0}
.logo-wide{max-width:200px;width:100%;height:auto;max-height:19px;object-fit:contain}
.logo-sq{height:34px;width:34px;object-fit:contain;display:none}
.nav-links{display:flex;align-items:center;gap:2px;margin-left:auto}
.ndrop{position:relative}
.ndrop-btn{display:flex;align-items:center;gap:4px;padding:8px 12px;font-family:var(--fm);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sub);border-radius:var(--r);transition:var(--tr)}
.ndrop-btn:hover,.ndrop:hover .ndrop-btn{color:var(--txt);background:var(--bg3)}
.ndrop-btn span{font-size:.55rem;transition:transform .2s}
.ndrop:hover .ndrop-btn span{transform:rotate(180deg)}
.ndrop-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:200px;background:#0d0d0d;border:1px solid var(--brd2);border-radius:var(--r2);padding:6px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .22s ease;box-shadow:0 20px 60px rgba(0,0,0,.6);z-index:100}
.ndrop:hover .ndrop-menu{opacity:1;visibility:visible;transform:translateY(0)}
.ndrop-menu a{display:block;padding:8px 14px;font-family:var(--fm);font-size:.67rem;letter-spacing:.05em;color:var(--sub);border-radius:var(--r);transition:var(--tr)}
.ndrop-menu a:hover{color:var(--txt);background:var(--bg3);padding-left:18px}
.ndrop-menu a:first-child{color:var(--red)}
.nav-right{display:flex;align-items:center;gap:12px;margin-left:20px}
.live-badge{display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid rgba(176,16,48,.4);border-radius:20px;font-family:var(--fm);font-size:.6rem;letter-spacing:.12em;color:var(--red);cursor:pointer;transition:var(--tr)}
.live-badge:hover{background:var(--reds);border-color:var(--red)}
.dot-pulse{width:6px;height:6px;background:var(--red);border-radius:50%;animation:pulse 1.5s ease-in-out infinite;flex-shrink:0}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.btn-coop{padding:9px 20px;background:var(--red);color:#fff;font-family:var(--fm);font-size:.67rem;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r);transition:var(--tr)}
.btn-coop:hover{background:var(--red2);box-shadow:0 4px 18px var(--redg)}
.burger{display:none;flex-direction:column;justify-content:space-between;width:24px;height:16px;padding:0;flex-shrink:0}
.burger span{display:block;height:2px;background:var(--txt);border-radius:2px;transition:var(--tr);transform-origin:center}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Mobile Menu */
.mob-menu{display:none;position:absolute;top:var(--nav);left:0;right:0;background:rgba(5,5,5,.98);border-bottom:1px solid var(--brd);backdrop-filter:blur(24px);max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1)}
.mob-menu.open{max-height:90vh;overflow-y:auto}
.mob-menu-inner{padding:24px;display:flex;flex-direction:column;gap:20px}
.mob-group{display:flex;flex-direction:column;gap:2px}
.mob-label{font-family:var(--fm);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:6px;display:block}
.mob-link{display:block;padding:9px 12px;font-family:var(--fm);font-size:.73rem;color:var(--sub);border-radius:var(--r);transition:var(--tr)}
.mob-link:hover{color:var(--txt);background:var(--bg3)}
.mob-socials{display:flex;gap:12px}
.mob-soc{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--brd2);border-radius:50%;color:var(--sub);transition:var(--tr)}
.mob-soc:hover{border-color:var(--red);color:var(--red)}
.mob-coop-btn{padding:13px;background:var(--red);color:#fff;font-family:var(--fm);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r);text-align:center;transition:var(--tr)}
.mob-coop-btn:hover{background:var(--red2)}

/* ── HERO ── */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.05);animation:hzoom 14s ease-in-out infinite alternate}
@keyframes hzoom{from{transform:scale(1.05)}to{transform:scale(1.0)}}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(150deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.65) 55%,rgba(176,16,48,.06) 100%)}
.hero-content{position:relative;z-index:2;text-align:center;padding:0 20px;max-width:880px}
.hero-tag{display:inline-block;font-family:var(--fm);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--red);border:1px solid rgba(176,16,48,.35);padding:6px 16px;border-radius:20px;margin-bottom:28px}
.hero-logo-img{max-width:min(580px,84vw);height:auto;margin:0 auto 24px;filter:brightness(1.06)}
.hero-sub{font-family:var(--fm);font-size:clamp(.58rem,1.4vw,.78rem);letter-spacing:.14em;color:var(--sub);text-transform:uppercase;margin-bottom:36px}
.sep{color:var(--red);margin:0 5px}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:36px}
.hero-socs{display:flex;gap:14px;justify-content:center}
.hs{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--brd2);border-radius:50%;color:var(--sub);transition:var(--tr)}
.hs:hover{border-color:var(--red);color:var(--red);transform:translateY(-3px)}
.hero-scroll{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:2}
.hero-scroll span{font-family:var(--fm);font-size:.58rem;letter-spacing:.25em;text-transform:uppercase;color:var(--dim)}
.scroll-line{width:1px;height:44px;background:var(--brd2);overflow:hidden}
.scroll-dot{width:100%;height:50%;background:var(--red);animation:sdot 2s ease-in-out infinite}
@keyframes sdot{0%{transform:translateY(-100%)}100%{transform:translateY(200%)}}

/* ── TICKER ── */
.ticker{background:var(--red);padding:9px 0;overflow:hidden;white-space:nowrap;border-top:1px solid var(--red2);border-bottom:1px solid var(--red2)}
.ticker-track{display:inline-flex;animation:tick 32s linear infinite}
.ticker-track span{font-family:var(--fm);font-size:.67rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.9)}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── ABOUT ── */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.stats-row{display:flex;gap:36px;padding:24px 0;border-top:1px solid var(--brd);border-bottom:1px solid var(--brd);margin:28px 0}
.stat-item{display:flex;flex-direction:column}
.stat-n{font-family:var(--fd);font-size:2.6rem;font-weight:800;color:var(--red);line-height:1}
.stat-l{font-family:var(--fm);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:4px}
.about-right{position:relative}
.about-img-main{aspect-ratio:4/3;border-radius:var(--r2);overflow:hidden;border:1px solid var(--brd)}
.about-img-main img{width:100%;height:100%}
.about-img-float{position:absolute;bottom:-20px;left:-20px;width:42%;aspect-ratio:1;border-radius:var(--r2);overflow:hidden;border:3px solid var(--bg2);box-shadow:0 8px 36px rgba(0,0,0,.6)}
.about-img-float img{width:100%;height:100%}

/* ── STEPS ── */
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--brd);border-radius:var(--r2);overflow:hidden}
.step-card{padding:44px 32px;background:var(--bg2);position:relative;border-right:1px solid var(--brd);transition:var(--tr)}
.step-card:last-child{border-right:none}
.step-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:transparent;transition:background var(--tr)}
.step-card:hover::before{background:var(--red)}
.step-card:hover{background:var(--bg3)}
.step-num-bg{font-family:var(--fd);font-size:5rem;font-weight:800;color:var(--red);opacity:.12;line-height:1;position:absolute;top:20px;right:20px}
.step-type{font-family:var(--fm);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:10px}
.step-title{font-family:var(--fd);font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:var(--txt);margin-bottom:14px}
.step-desc{font-size:.86rem;color:var(--sub);line-height:1.7;margin-bottom:22px}
.step-link{font-family:var(--fm);font-size:.68rem;letter-spacing:.1em;color:var(--red);transition:var(--tr)}
.step-link:hover{letter-spacing:.18em}

/* ── GALLERY ── */
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:250px 250px;gap:10px}
.gal-item{position:relative;overflow:hidden;border-radius:var(--r);border:1px solid var(--brd);cursor:pointer}
.gal-item img{width:100%;height:100%;object-fit:cover;filter:brightness(.65);transition:transform .5s,filter .5s}
.gal-item:hover img{transform:scale(1.06);filter:brightness(.85)}
.gal-big{grid-column:span 2;grid-row:span 2}
.gal-wide{grid-column:span 2}
.gal-cap{position:absolute;bottom:0;left:0;right:0;padding:12px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);font-family:var(--fm);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--txt);opacity:0;transition:opacity .3s}
.gal-item:hover .gal-cap{opacity:1}

/* ── SERVICES ── */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.svc-card{background:var(--bg2);padding:36px 28px;border:1px solid var(--brd);position:relative;overflow:hidden;transition:var(--tr);display:flex;flex-direction:column}
.svc-card::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:transparent;transition:background var(--tr)}
.svc-card:hover::after{background:var(--red)}
.svc-card:hover{background:var(--bg3);transform:translateY(-2px);box-shadow:0 8px 36px rgba(0,0,0,.4)}
.svc-accent{background:#0d0005;border-color:rgba(176,16,48,.25)}
.svc-accent::after{background:var(--red)}
.svc-radio{background:#050008}
.svc-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}
.svc-type{font-family:var(--fm);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.svc-code{font-family:var(--fm);font-size:.6rem;color:var(--dim)}
.svc-name{font-family:var(--fd);font-size:1.3rem;font-weight:800;letter-spacing:-.02em;color:var(--txt);margin-bottom:8px}
.svc-price{font-family:var(--fm);font-size:.84rem;color:var(--sub);margin-bottom:4px}
.svc-price strong{color:var(--red);font-size:1.05rem}
.svc-unit{font-family:var(--fm);font-size:.6rem;color:var(--dim);letter-spacing:.1em;margin-bottom:14px}
.svc-desc{font-size:.83rem;color:var(--sub);line-height:1.65;flex:1;margin-bottom:20px}
.svc-btns{display:flex;gap:8px}

/* ── RELEASES ── */
.rel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.rel-item{display:flex;flex-direction:column;gap:8px}
.rel-cover{aspect-ratio:1;border-radius:var(--r);overflow:hidden;border:1px solid var(--brd);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--tr)}
.rel-cover:hover{transform:scale(1.03);box-shadow:0 8px 28px rgba(0,0,0,.5)}
.rel-cover span{font-family:var(--fd);font-size:1.8rem;font-weight:800;color:rgba(255,255,255,.1);user-select:none}
.rel-item p{font-family:var(--fm);font-size:.63rem;color:var(--sub);text-align:center;letter-spacing:.03em}
.rel-note{text-align:center;font-family:var(--fm);font-size:.7rem;color:var(--dim);margin-top:28px;letter-spacing:.14em}

/* ── RADIO ── */
.radio-bg{position:relative;overflow:hidden}
.radio-bg::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 65% 50%,rgba(176,16,48,.07) 0%,transparent 70%);pointer-events:none}
.radio-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.radio-facts{display:flex;flex-direction:column;gap:12px;margin:24px 0}
.rfact{display:flex;align-items:center;gap:12px;font-family:var(--fm);font-size:.75rem;color:var(--sub)}
.radio-cta-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* Radio Player — Liquid Glass */
.radio-player-wrap{}
.radio-player{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden;position:relative;backdrop-filter:blur(40px) saturate(160%);-webkit-backdrop-filter:blur(40px) saturate(160%);box-shadow:0 0 0 1px rgba(255,255,255,.055) inset,0 28px 70px rgba(0,0,0,.55),0 0 50px rgba(176,16,48,.07)}
.radio-player::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.18) 30%,rgba(176,16,48,.55) 50%,rgba(255,255,255,.18) 70%,transparent 100%);animation:rglow 3s ease-in-out infinite}
@keyframes rglow{0%,100%{opacity:.4}50%{opacity:1}}
.radio-player::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.045) 0%,transparent 45%,rgba(176,16,48,.03) 100%);pointer-events:none;border-radius:20px}
.rp-logo{display:flex;justify-content:center;position:relative;z-index:1}
.rp-logo img{border-radius:50%;border:2px solid rgba(176,16,48,.55);padding:4px;background:rgba(0,0,0,.5);box-shadow:0 0 18px rgba(176,16,48,.22)}
.rp-info{text-align:center;position:relative;z-index:1}
.rp-live{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;background:rgba(176,16,48,.14);border:1px solid rgba(176,16,48,.35);border-radius:12px;font-family:var(--fm);font-size:.58rem;letter-spacing:.16em;color:var(--red);margin-bottom:8px;backdrop-filter:blur(10px)}
.rp-name{font-family:var(--fd);font-size:1.15rem;font-weight:700;letter-spacing:-.01em;color:var(--txt);margin-bottom:4px}
.rp-track{font-family:var(--fm);font-size:.67rem;color:var(--dim);letter-spacing:.05em}
.rp-controls{display:flex;align-items:center;gap:18px;justify-content:center;position:relative;z-index:1}
.rp-play{width:54px;height:54px;background:linear-gradient(135deg,rgba(176,16,48,.9),rgba(140,10,30,1));border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;transition:var(--tr);flex-shrink:0;box-shadow:0 4px 22px rgba(176,16,48,.4),0 0 0 1px rgba(255,255,255,.07) inset}
.rp-play:hover{transform:scale(1.1);box-shadow:0 8px 30px rgba(176,16,48,.55)}
.rp-vol{display:flex;align-items:center;gap:8px;color:var(--dim)}
.vol-range{-webkit-appearance:none;width:80px;height:3px;background:var(--brd2);border-radius:2px;outline:none;cursor:pointer}
.vol-range::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;background:var(--red);border-radius:50%;cursor:pointer}
.rp-bars{display:flex;gap:3px;justify-content:center;align-items:flex-end;height:22px;position:relative;z-index:1}
.rp-bars span{width:3px;background:var(--red);border-radius:2px;opacity:.28;animation:vbar .8s ease-in-out infinite alternate}
.rp-bars.playing span{opacity:1}
.rp-bars span:nth-child(1){animation-delay:0s}
.rp-bars span:nth-child(2){animation-delay:.1s}
.rp-bars span:nth-child(3){animation-delay:.2s}
.rp-bars span:nth-child(4){animation-delay:.3s}
.rp-bars span:nth-child(5){animation-delay:.4s}
.rp-bars span:nth-child(6){animation-delay:.3s}
.rp-bars span:nth-child(7){animation-delay:.2s}
.rp-bars span:nth-child(8){animation-delay:.1s}
@keyframes vbar{from{height:4px}to{height:18px}}
/* inner padding kept here so glass border is visible */
.radio-player>*+*{margin-top:0}
.rp-logo,.rp-info,.rp-controls,.rp-bars{padding:0}
.radio-player-wrap .radio-player{padding:36px 32px;display:flex;flex-direction:column;gap:20px}

/* ── ARTICLES ── */
.art-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.art-card{background:var(--bg3);border:1px solid var(--brd);border-radius:var(--r);overflow:hidden;transition:var(--tr);display:flex;flex-direction:column}
.art-card:hover{border-color:var(--red);transform:translateY(-4px);box-shadow:0 12px 36px rgba(0,0,0,.4)}
.art-img{position:relative;aspect-ratio:16/9;overflow:hidden}
.art-img img{width:100%;height:100%;filter:brightness(.6);transition:transform .5s}
.art-card:hover .art-img img{transform:scale(1.05)}
.art-type{position:absolute;top:10px;left:10px;font-family:var(--fm);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--red);padding:3px 10px;border-radius:10px}
.art-body{padding:18px;flex:1;display:flex;flex-direction:column}
.art-date{font-family:var(--fm);font-size:.6rem;color:var(--dim);margin-bottom:7px;display:block}
.art-body h3{font-family:var(--fd);font-size:1.05rem;font-weight:700;letter-spacing:-.01em;color:var(--txt);margin-bottom:8px;line-height:1.25}
.art-body p{font-size:.8rem;color:var(--sub);line-height:1.6;flex:1;margin-bottom:14px}
.art-link{font-family:var(--fm);font-size:.65rem;letter-spacing:.1em;color:var(--red);transition:var(--tr);align-self:flex-start}
.art-link:hover{letter-spacing:.18em}

/* ── REVIEWS ── */
.rev-wrap{overflow:hidden;margin-bottom:28px}
.rev-track{display:flex;gap:20px;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.rev-card{background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r2);padding:32px 28px;flex-shrink:0;transition:var(--tr)}
.rev-card:hover{border-color:rgba(176,16,48,.3)}
.rev-q{font-family:var(--fd);font-size:3.5rem;font-weight:800;color:var(--red);opacity:.2;line-height:.8;margin-bottom:10px}
.rev-txt{font-size:.88rem;color:var(--sub);line-height:1.7;margin-bottom:20px;font-style:italic}
.rev-author{display:flex;align-items:center;gap:12px}
.rev-ava{width:38px;height:38px;background:var(--reds);border:1px solid rgba(176,16,48,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:1rem;font-weight:700;color:var(--red);flex-shrink:0}
.rev-author strong{display:block;font-size:.8rem;font-family:var(--fm);letter-spacing:.05em;color:var(--txt)}
.rev-author span{display:block;font-size:.68rem;color:var(--dim);font-family:var(--fm)}
.rev-controls{display:flex;align-items:center;justify-content:center;gap:18px}
.rev-arr{width:38px;height:38px;border:1px solid var(--brd2);border-radius:50%;color:var(--sub);font-size:.95rem;display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.rev-arr:hover{border-color:var(--red);color:var(--red)}
.rev-dots{display:flex;gap:6px}
.rdot{width:6px;height:6px;background:var(--brd2);border-radius:50%;cursor:pointer;transition:var(--tr);border:none}
.rdot.active{background:var(--red);width:18px;border-radius:3px}

/* ── FAQ ── */
.faq-list{max-width:780px}
.faq-item{border-bottom:1px solid var(--brd)}
.faq-q{width:100%;padding:22px 0;display:flex;justify-content:space-between;align-items:center;font-family:var(--fm);font-size:.82rem;letter-spacing:.03em;color:var(--txt);transition:var(--tr);text-align:left;gap:12px}
.faq-q:hover{color:var(--red)}
.faq-ico{width:26px;height:26px;border:1px solid var(--brd2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;color:var(--dim);flex-shrink:0;transition:var(--tr)}
.faq-item.open .faq-ico{border-color:var(--red);color:var(--red);transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease}
.faq-item.open .faq-a{max-height:180px;padding-bottom:18px}
.faq-a p{font-size:.86rem;color:var(--sub);line-height:1.7}
.faq-a a{color:var(--red)}

/* ── MAP ── */
.map-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:60px;align-items:start}
.map-addr{display:flex;align-items:flex-start;gap:12px;margin:20px 0;padding:18px;background:var(--bg3);border:1px solid var(--brd);border-radius:var(--r2)}
.map-icon{font-size:1.3rem;flex-shrink:0;margin-top:2px}
.map-line{font-size:.9rem;color:var(--sub);line-height:1.7}
.map-line strong{color:var(--txt)}
.map-details{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
.map-det{display:flex;align-items:center;gap:12px}
.map-det>span:first-child{font-size:1rem;width:26px;text-align:center;flex-shrink:0}
.map-det div{display:flex;flex-direction:column;gap:1px}
.map-det strong{font-family:var(--fm);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.map-det span,.map-det a{font-size:.85rem;color:var(--sub);text-decoration:none;transition:var(--tr)}
.map-det a:hover{color:var(--red)}
.map-frame-box{position:relative;border-radius:var(--r2);overflow:hidden;border:1px solid var(--brd2);aspect-ratio:4/3;box-shadow:0 20px 55px rgba(0,0,0,.5)}
.map-iframe{width:100%;height:100%;border:none;display:block;filter:invert(92%) hue-rotate(180deg) saturate(0.35) brightness(0.52) contrast(1.12)}
.map-badge{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:7px 16px;background:rgba(0,0,0,.88);border:1px solid rgba(176,16,48,.45);border-radius:20px;backdrop-filter:blur(12px);white-space:nowrap;box-shadow:0 4px 18px rgba(0,0,0,.6);pointer-events:none}
.map-badge img{border-radius:50%}
.map-badge span{font-family:var(--fm);font-size:.65rem;letter-spacing:.1em;color:#fff;text-transform:uppercase}

/* ── FOOTER ── */
.footer{background:var(--bg);border-top:1px solid var(--brd)}
.footer-top{padding:72px 0}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:44px}
.foot-logo{max-width:180px;height:auto;max-height:22px;object-fit:contain;margin-bottom:12px}
.foot-tagline{font-family:var(--fm);font-size:.67rem;color:var(--dim);line-height:1.6;letter-spacing:.05em;margin-bottom:20px}
.foot-socs{display:flex;gap:9px}
.foot-soc{width:34px;height:34px;border:1px solid var(--brd2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--dim);transition:var(--tr)}
.foot-soc:hover{border-color:var(--red);color:var(--red);transform:translateY(-2px)}
.foot-nav h4{font-family:var(--fm);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:18px}
.foot-nav a{display:block;font-size:.8rem;color:var(--sub);margin-bottom:8px;transition:var(--tr)}
.foot-nav a:hover{color:var(--txt);padding-left:4px}
.foot-contacts h4{font-family:var(--fm);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:18px}
.foot-contacts p{display:flex;flex-direction:column;gap:1px;margin-bottom:8px}
.foot-contacts p>span:first-child,.foot-contacts p>a:first-child+span{font-size:.65rem;font-family:var(--fm);color:var(--dim)}
.foot-contacts p span:not(:first-child){font-size:.8rem;color:var(--sub)}
.foot-contacts p a{font-size:.8rem;color:var(--sub);transition:var(--tr)}
.foot-contacts p a:hover{color:var(--red)}
.foot-contacts>p>span:first-child{font-family:var(--fm);font-size:.65rem;color:var(--dim)}
.foot-cta-btns{display:flex;gap:9px;margin-top:16px;flex-wrap:wrap}
.foot-qr{display:flex;align-items:center;gap:12px;margin-top:20px;padding:12px;background:var(--bg3);border:1px solid var(--brd2);border-radius:var(--r2);transition:var(--tr)}
.foot-qr:hover{border-color:rgba(176,16,48,.35)}
.foot-qr img{border-radius:6px;background:#0a0a0a;padding:3px;flex-shrink:0}
.foot-qr-txt{display:flex;flex-direction:column;gap:2px}
.foot-qr-txt strong{font-size:.78rem;font-family:var(--fm);color:var(--txt)}
.foot-qr-txt span{font-size:.7rem;color:var(--red)}
.foot-qr-txt small{font-size:.6rem;color:var(--dim)}
.foot-bar{border-top:1px solid var(--brd);padding:18px 0}
.foot-bar-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.foot-bar-inner>span{font-family:var(--fm);font-size:.63rem;color:var(--dim);letter-spacing:.06em}
.foot-legal{display:flex;gap:18px}
.foot-legal a{font-family:var(--fm);font-size:.63rem;color:var(--dim);transition:var(--tr)}
.foot-legal a:hover{color:var(--red)}

/* ── PRIVACY OVERLAY ── */
.priv-overlay{position:fixed;inset:0;background:var(--bg);z-index:10001;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .45s cubic-bezier(.4,0,.2,1)}
.priv-overlay.open{transform:translateY(0)}
.priv-head{display:flex;align-items:center;gap:14px;padding:18px 28px;border-bottom:1px solid var(--brd);background:var(--bg);position:sticky;top:0;z-index:1}
.priv-head span{font-family:var(--fm);font-size:.78rem;letter-spacing:.1em;color:var(--sub);flex:1}
.priv-head button{width:34px;height:34px;border:1px solid var(--brd2);border-radius:50%;color:var(--sub);font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.priv-head button:hover{border-color:var(--red);color:var(--red)}
.priv-body{flex:1;overflow-y:auto}
.priv-inner{max-width:740px;margin:0 auto;padding:44px 28px}
.priv-inner h1{font-family:var(--fd);font-size:2.4rem;font-weight:800;letter-spacing:-.02em;color:var(--txt);margin-bottom:6px}
.priv-date{font-family:var(--fm);font-size:.68rem;color:var(--dim);margin-bottom:36px}
.priv-inner h2{font-family:var(--fd);font-size:1.25rem;font-weight:700;color:var(--red);margin:28px 0 10px}
.priv-inner p{font-size:.88rem;color:var(--sub);line-height:1.75;margin-bottom:14px}
.priv-inner strong{color:var(--txt)}
.priv-inner a{color:var(--red);text-decoration:underline}

/* ── MODAL ── */
.modal{position:fixed;inset:0;z-index:10002;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .28s ease}
.modal.open{opacity:1;pointer-events:all}
.modal-bg{position:absolute;inset:0;background:rgba(0,0,0,.86);backdrop-filter:blur(8px)}
.modal-box{position:relative;z-index:1;background:var(--bg2);border:1px solid var(--brd2);border-radius:var(--r2);padding:44px 36px;width:min(480px,calc(100vw - 40px));max-height:90vh;overflow-y:auto;transform:translateY(24px) scale(.97);transition:transform .32s cubic-bezier(.4,0,.2,1);box-shadow:0 30px 90px rgba(0,0,0,.6)}
.modal.open .modal-box{transform:translateY(0) scale(1)}
.modal-box::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--red);border-radius:var(--r2) var(--r2) 0 0}
.modal-x{position:absolute;top:14px;right:14px;width:30px;height:30px;border:1px solid var(--brd2);border-radius:50%;color:var(--dim);font-size:.78rem;display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.modal-x:hover{border-color:var(--red);color:var(--red)}
.modal-title{font-family:var(--fd);font-size:1.7rem;font-weight:800;letter-spacing:-.02em;color:var(--txt);text-align:center;margin-bottom:6px}
.modal-sub{font-family:var(--fm);font-size:.68rem;color:var(--dim);text-align:center;letter-spacing:.05em;margin-bottom:24px}
.mform{display:flex;flex-direction:column;gap:11px}
.minput{width:100%;padding:12px 15px;background:var(--bg3);border:1px solid var(--brd2);border-radius:var(--r);color:var(--txt);font-family:var(--fb);font-size:.86rem;outline:none;transition:border-color .2s;-webkit-appearance:none}
.minput:focus{border-color:var(--red)}
.minput::placeholder{color:var(--dim)}
.mtextarea{resize:vertical;min-height:90px}
select.minput{cursor:pointer}
select.minput option{background:var(--bg2);color:var(--txt)}
.mprivacy{font-size:.7rem;color:var(--dim);line-height:1.5}
.mprivacy a{color:var(--red);text-decoration:underline}

/* ── TOAST ── */
.toast{position:fixed;bottom:28px;right:28px;background:#0d0d0d;border:1px solid var(--red);border-radius:var(--r2);padding:14px 22px;display:flex;align-items:center;gap:9px;font-family:var(--fm);font-size:.72rem;color:var(--txt);z-index:20000;transform:translateX(calc(100% + 50px));transition:transform .4s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 28px rgba(0,0,0,.5)}
.toast.show{transform:translateX(0)}
.toast svg{color:var(--red);flex-shrink:0}

/* ── SCROLL ANIMATIONS ── */
/* Safe: content is visible by default, JS adds the class to trigger animation */
.anim{opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease}
.anim.in{opacity:1;transform:translateY(0)}
.anim-fade{opacity:0;transition:opacity .65s ease}
.anim-fade.in{opacity:1}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:36px}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .gal-grid{grid-template-columns:repeat(3,1fr);grid-template-rows:auto}
  .gal-big{grid-column:span 2;grid-row:span 1}
  .gal-wide{grid-column:span 2}
}
@media(max-width:900px){
   .nav-right{margin-left:auto;}
  .nav-links{display:none}
  .burger{display:flex}
  .mob-menu{display:block}
  .live-badge{display:none}
  .about-grid{grid-template-columns:1fr;gap:36px}
  .about-img-float{display:none}
  .steps-grid{grid-template-columns:1fr}
  .step-card{border-right:none;border-bottom:1px solid var(--brd)}
  .step-card:last-child{border-bottom:none}
  .radio-grid{grid-template-columns:1fr;gap:40px}
  .art-grid{grid-template-columns:repeat(2,1fr)}
  .rel-grid{grid-template-columns:repeat(3,1fr)}
  .rev-card{min-width:calc((100% - 20px)/2)}
  .map-grid{grid-template-columns:1fr;gap:36px}
}
@media(max-width:680px){
  :root{--nav:62px}
  .section{padding:72px 0}
  .logo-wide{max-width:160px;max-height:16px}
  .btn-coop{display:none}
  .hero-cta{flex-direction:column;align-items:center}
  .hero-cta>*{width:100%;max-width:280px;justify-content:center}
  .svc-grid{grid-template-columns:1fr}
  .art-grid{grid-template-columns:1fr}
  .rel-grid{grid-template-columns:repeat(2,1fr)}
  .gal-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .gal-big{grid-column:span 2;aspect-ratio:16/9}
  .gal-wide{grid-column:span 2}
  .foot-grid{grid-template-columns:1fr;gap:28px}
  .foot-bar-inner{flex-direction:column;align-items:flex-start}
  .rev-card{min-width:100%}
  .cookie-inner{flex-direction:column;gap:14px}
  .cookie-btns{width:100%}
  .cbtn-ok,.cbtn-no{flex:1;text-align:center}
  .stats-row{gap:20px}
  .modal-box{padding:32px 22px}
  .radio-cta-row{flex-direction:column;align-items:flex-start}
  .map-frame-box{aspect-ratio:16/9}
}
@media(max-width:440px){
  .rel-grid{grid-template-columns:repeat(2,1fr)}
  .hero-sub{display:flex;flex-direction:column;align-items:center;gap:3px}
  .sep{display:none}
}

/* ── CUSTOM CURSOR ── */
* { cursor: none !important; }

.cursor-dot {
  position: fixed;
  width: 6px;
  height: 6px;
  background: #b01030;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99999;
  transform: translate(-50%, -50%);
  transition: transform 0.1s ease, width 0.2s ease, height 0.2s ease, background 0.2s ease;
}

.cursor-ring {
  position: fixed;
  width: 36px;
  height: 36px;
  border: 1.5px solid rgba(176, 16, 48, 0.6);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99998;
  transform: translate(-50%, -50%);
  transition: width 0.25s ease, height 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

/* Курсор увеличивается при наведении на кнопки и ссылки */
body:has(a:hover) .cursor-ring,
body:has(button:hover) .cursor-ring {
  width: 56px;
  height: 56px;
  border-color: rgba(176, 16, 48, 0.9);
  background: rgba(176, 16, 48, 0.06);
}

body:has(a:hover) .cursor-dot,
body:has(button:hover) .cursor-dot {
  width: 4px;
  height: 4px;
  background: #fff;
}

/* На мобильных скрываем — там нет курсора */
@media (pointer: coarse) {
  .cursor-dot, .cursor-ring { display: none; }
  * { cursor: auto !important; }
}

/* ── PRELOADER ── */
.preloader {
  position: fixed;
  inset: 0;
  background: #000;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

.preloader.hidden {
  opacity: 0;
  visibility: hidden;
}

.preloader-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}

.preloader-logo {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 2px solid rgba(176,16,48,0.4);
  padding: 8px;
  animation: preloader-pulse 1.5s ease-in-out infinite;
}

@keyframes preloader-pulse {
  0%, 100% { box-shadow: 0 0 20px rgba(176,16,48,0.2); }
  50%       { box-shadow: 0 0 50px rgba(176,16,48,0.6); }
}

.preloader-bar {
  width: 200px;
  height: 2px;
  background: rgba(255,255,255,0.08);
  border-radius: 2px;
  overflow: hidden;
}

.preloader-fill {
  height: 100%;
  width: 0%;
  background: #b01030;
  border-radius: 2px;
  transition: width 0.05s linear;
}

.preloader-label {
  font-family: 'Space Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  color: rgba(255,255,255,0.3);
}

/* ── PARALLAX ── */
.gal-item {
  overflow: hidden; /* уже должно быть, но на всякий случай */
}

.gal-item img {
  will-change: transform; /* подсказка браузеру для плавности */
  transition: filter 0.5s; /* оставляем hover эффект */
}

/* ── HORIZONTAL RELEASES SCROLL ── */
.rel-arrows {
  display: flex;
  gap: 8px;
}

.rel-arrow {
  width: 40px;
  height: 40px;
  border: 1px solid #2a2a2a;
  border-radius: 50%;
  background: transparent;
  color: #aaa;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.25s, color 0.25s, background 0.25s;
  flex-shrink: 0;
}

.rel-arrow:hover {
  border-color: #b01030;
  color: #b01030;
  background: rgba(176,16,48,0.06);
}

.rel-scroll-wrap {
  position: relative;
  overflow: hidden;
}

.rel-scroll-track {
  display: flex;
  gap: 16px;
  padding: 8px 40px 24px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none; /* Firefox — прячем скроллбар */
  -ms-overflow-style: none;
  cursor: grab;
  user-select: none;
}

/* Chrome — прячем скроллбар */
.rel-scroll-track::-webkit-scrollbar {
  display: none;
}

.rel-scroll-track.dragging {
  cursor: grabbing;
  scroll-behavior: auto;
}

.rel-scroll-item {
  flex: 0 0 200px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform 0.25s;
}

.rel-scroll-item:hover {
  transform: translateY(-4px);
}

.rel-scroll-item .rel-cover {
  width: 200px;
  height: 200px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #1e1e1e;
  background: #111;
  flex-shrink: 0;
  transition: box-shadow 0.3s;
}

.rel-scroll-item:hover .rel-cover {
  box-shadow: 0 12px 40px rgba(0,0,0,0.6);
  border-color: rgba(176,16,48,0.3);
}

.rel-scroll-item .rel-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}

.rel-scroll-item:hover .rel-cover img {
  transform: scale(1.05);
}

.rel-scroll-name {
  font-family: 'Space Mono', monospace;
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #b01030;
  margin-top: 4px;
}

.rel-scroll-title {
  font-family: 'Sora', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: #aaa;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Градиенты по краям */
.rel-fade-left,
.rel-fade-right {
  position: absolute;
  top: 0; bottom: 0;
  width: 80px;
  pointer-events: none;
  z-index: 2;
}

.rel-fade-left {
  left: 0;
  background: linear-gradient(to right, #0a0a0a, transparent);
}

.rel-fade-right {
  right: 0;
  background: linear-gradient(to left, #0a0a0a, transparent);
}

/* На телефоне — немного меньше карточки */
@media(max-width:680px){
  .rel-scroll-item { flex: 0 0 160px; }
  .rel-scroll-item .rel-cover { width: 160px; height: 160px; }
}

/* ── FLOATING BUTTON ── */
.float-btn {
  position: fixed;
  bottom: 32px;
  right: 32px;
  z-index: 9000;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 22px;
  background: #b01030;
  color: #fff;
  font-family: 'Space Mono', monospace;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: none;
  border-radius: 40px;
  cursor: pointer;
  box-shadow: 0 8px 32px rgba(176,16,48,0.45);
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px);
  transition: bottom 0.4s cubic-bezier(.4,0,.2,1),
              opacity 0.35s ease,
              visibility 0.35s ease,
              transform 0.35s ease,
              background 0.25s ease,
              box-shadow 0.25s ease;
}
.float-btn.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.float-btn.banner-up {
  bottom: 90px;
}
.float-btn:hover {
  background: #8b0020;
  box-shadow: 0 12px 40px rgba(176,16,48,0.6);
  transform: translateY(-2px);
}
.float-btn:active {
  transform: translateY(0);
}
@media(max-width:680px){
  .float-btn span { display: none; }
  .float-btn { padding: 14px; border-radius: 50%; bottom: 24px; right: 24px; }
  .float-btn.banner-up { bottom: 86px; }
}

/* ── PWA BANNER ── */
.pwa-banner{position:fixed;bottom:0;left:0;right:0;z-index:8999;background:rgba(8,8,8,.97);border-top:1px solid #1e1e1e;backdrop-filter:blur(20px);transform:translateY(100%);transition:transform .4s cubic-bezier(.4,0,.2,1)}
.pwa-banner.show{transform:translateY(0)}
.pwa-banner-inner{max-width:600px;margin:0 auto;padding:16px 20px;display:flex;align-items:center;gap:14px}
.pwa-banner-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pwa-banner-text strong{font-family:'Sora',sans-serif;font-size:.82rem;font-weight:700;color:#fff}
.pwa-banner-text span{font-family:'Space Mono',monospace;font-size:.6rem;color:#666;letter-spacing:.06em}
.pwa-banner-install{padding:9px 20px;background:#b01030;color:#fff;font-family:'Space Mono',monospace;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;border:none;border-radius:4px;cursor:pointer;transition:.2s;white-space:nowrap;flex-shrink:0}
.pwa-banner-install:hover{background:#8b0020}
.pwa-banner-close{width:28px;height:28px;background:transparent;border:1px solid #2a2a2a;border-radius:50%;color:#555;font-size:.7rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s;flex-shrink:0}
.pwa-banner-close:hover{border-color:#b01030;color:#b01030}
@media(max-width:480px){.pwa-banner-text span{display:none}.pwa-banner-inner{gap:10px;padding:14px 16px}}