/* ===== v3 upgrade layer (loads after style.css) ===== */
:root{--glow:0 0 0 1px #4fd8d055,0 12px 40px -12px #4fd8d055}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--gold);color:#1a1200;padding:10px 16px;border-radius:10px;font-weight:600;text-decoration:none}
.skip:focus{top:10px}
#prog{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--pri),var(--pink));z-index:80;pointer-events:none}
#toTop{position:fixed;right:18px;bottom:18px;z-index:35;width:46px;height:46px;border-radius:14px;padding:0;opacity:0;visibility:hidden;transform:translateY(12px);background:var(--bg2);transition:.2s}
#toTop.show{opacity:1;visibility:visible;transform:none}
nav{background:rgba(1,17,26,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:box-shadow .2s}
nav.scrolled{box-shadow:0 8px 30px #0008}
.links a{position:relative;padding:6px 0}
.links a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--pri);transform:scaleX(0);transition:.2s}
.links a:hover:after,.links a.act{transform:none}
.links a.act{color:var(--pri2)}

/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 50% at 82% 30%,#4fd8d02e,transparent 70%),radial-gradient(45% 45% at 8% 90%,#ff6fc01f,transparent 70%)}
#fx{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.pill{display:inline-flex;align-items:center;gap:10px;padding:6px 16px;border-radius:99px;background:#4fd8d01a;border:1px solid #4fd8d055;color:var(--pri2);font-weight:600;font-size:.95rem;margin-bottom:18px}
.pill i{width:8px;height:8px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 0 #3ddc8488;animation:pu 2s infinite}
@keyframes pu{70%{box-shadow:0 0 0 9px #3ddc8400}100%{box-shadow:0 0 0 0 #3ddc8400}}
.hero h1 b{background:linear-gradient(120deg,#ff9bd6,var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero h1 em{background:linear-gradient(120deg,var(--pri2),var(--pri));-webkit-background-clip:text;background-clip:text;color:transparent}
.bigcat{animation:fl 6s ease-in-out infinite}
@keyframes fl{50%{transform:translateY(-14px)}}
.srv{backdrop-filter:blur(8px);box-shadow:var(--glow)}
.mc.g{box-shadow:0 8px 24px -10px var(--pri)}
.mc.g:hover{box-shadow:0 12px 30px -8px var(--pri)}

/* stat strip */
.strip{padding:0;margin-top:-46px;z-index:2;content-visibility:visible}
.strip .w{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat{padding:20px 22px;background:linear-gradient(160deg,#0b2c3b,var(--card));border:1px solid var(--line);border-radius:var(--r);box-shadow:0 14px 30px -18px #000}
.stat b{display:block;font:600 1.9rem Fredoka,sans-serif;color:var(--pri2);line-height:1.1}
.stat span{color:var(--mu);font-size:.95rem}
@media(max-width:860px){.strip .w{grid-template-columns:1fr 1fr}.strip{margin-top:-30px}}

/* cards */
.feat .item,.step,.sh .panel{transition:.2s}
.feat .item{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.feat .item:hover,.sh .panel:hover{border-color:var(--pri);transform:translateY(-3px);box-shadow:var(--glow)}
.feat{gap:16px}
.t{background:linear-gradient(90deg,#fff,#bfeff0);-webkit-background-clip:text;background-clip:text;color:transparent}

/* spotlight rows */
.spot{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;margin-top:64px}
.spot.flip .pic{order:2}
.pic{margin:0;border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 24px 50px -24px #000,var(--glow);position:relative}
.pic img{display:block;width:100%;height:auto;transition:transform .6s}
.pic:hover img{transform:scale(1.04)}
.spot h3{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:10px}
.spot p{color:var(--mu);margin:0 0 18px}
.spot ul{list-style:none;margin:0 0 20px;padding:0;color:#d4e1e8}
.spot li{padding:4px 0 4px 28px;position:relative}
.spot li:before{content:"";position:absolute;left:4px;top:.72em;width:10px;height:10px;border-radius:3px;background:var(--pri)}
@media(max-width:860px){.spot{grid-template-columns:1fr;gap:22px;margin-top:44px}.spot.flip .pic{order:0}}

/* updates timeline */
.log{position:relative}
.log div{padding-left:22px;position:relative}
.log div:before{content:"";position:absolute;left:0;top:19px;width:9px;height:9px;border-radius:50%;background:var(--pri);box-shadow:0 0 0 4px #4fd8d022}
.log div:first-child:before{background:var(--pink);box-shadow:0 0 0 4px #ff6fc033}
.trust{display:flex;gap:10px 22px;justify-content:center;flex-wrap:wrap;color:var(--mu);font-size:.92rem;margin:-10px 0 28px}
.trust span:before{content:"✓";color:#3ddc84;font-weight:700;margin-right:7px}

/* vote tracker */
.votebar{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;padding:16px 22px;margin-bottom:18px}
.votebar b{color:var(--gold);font:600 1.4rem Fredoka,sans-serif}
.votebar .bar{flex:1 1 200px;height:10px;border-radius:99px;background:#031722;overflow:hidden}
.votebar .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--pri),var(--gold));transition:width .4s}
.vote .vs{display:block;font-style:normal;font-size:.82rem;margin-top:3px;color:#3ddc84}
.vote.done{opacity:.7}.vote.done .vs{color:var(--mu)}
.vote.done .mc.g{background:transparent;color:var(--mu);border-color:var(--line)}

/* rules tools */
.rtool{position:sticky;top:72px;z-index:5;background:rgba(1,17,26,.92);backdrop-filter:blur(10px);padding:12px 0;margin:0 0 10px;display:flex;gap:10px 14px;flex-wrap:wrap;align-items:center}
.rtool input{flex:1 1 220px}
.rtool a{padding:7px 14px;border-radius:99px;border:1px solid var(--line);text-decoration:none;color:#fff;font-weight:600;font-size:.92rem}
.rtool a:hover{border-color:var(--pri);color:var(--pri2)}
.rules h3{scroll-margin-top:150px}
.rules li mark{background:#ffc23333;color:#fff;border-radius:3px}
.rules li[hidden],.rules h3[hidden],.rules ul[hidden]{display:none}

/* gallery */
.gfilt{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.gfilt .mc{padding:7px 18px}
.shot{transition:.2s}.shot:hover{transform:translateY(-3px);box-shadow:var(--glow)}
#lbCount{margin-top:4px;color:var(--mu);font-size:.9rem}
#lightbox{backdrop-filter:blur(6px)}
@media(max-width:700px){.lbtn{top:auto;bottom:18px;transform:none}}
.ft{position:relative}.ft:before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--pri),transparent)}

/* Discord CTA gets its own background so it differs from "How to join" */
.cta{background:radial-gradient(60% 80% at 90% 50%,#4fd8d022,transparent 70%),linear-gradient(135deg,#03202e,#01111a);padding:90px 0}
.cta2{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center}
.cta2 .sub{margin-inline:0}
@media(max-width:860px){.cta2{grid-template-columns:1fr;gap:28px}}

.tb-mark{display:inline-flex;align-items:center;gap:10px}.tb-mark img{width:34px;height:34px;display:block}
.tb-mark img{width:auto;height:34px}
.ft-tebex{border-top:5px solid #3b1a78}

/* How to join gets its own background (Discord section uses the crew photo card) */
.art{background:linear-gradient(rgba(1,17,26,.72),rgba(1,17,26,.82)),url(../assets/gallery/arena-aerial-2.webp) center/cover}
