/* GmV Clan landing — base theme */
:root{
  --ink:#050607;
  --ink-2:#0b0d10;
  --bone:#ece6da;
  --bone-70:rgba(236,230,218,.7);
  --bone-45:rgba(236,230,218,.45);
  --bone-15:rgba(236,230,218,.15);
  --bone-08:rgba(236,230,218,.08);
  --violet:#8b5cf6;
  --cyan:#22d3ee;
  --live:#3ddc84;
  --down:#ff5c5c;
  --display:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;
  --body:'Barlow','Helvetica Neue',Arial,sans-serif;
  --gutter:clamp(20px,4vw,64px);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html{background:var(--ink);color:var(--bone);scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  margin:0;font-family:var(--body);font-size:17px;line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
code{font-family:var(--body);font-variant-numeric:tabular-nums}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--display);font-weight:600;font-size:1.15rem;letter-spacing:.02em;
  padding:.7em 1.5em;border:1px solid var(--bone-45);border-radius:2px;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.btn-primary:hover{background:#fff}
.btn-ghost:hover{border-color:var(--bone);background:var(--bone-08)}
.btn-small{font-size:1rem;padding:.5em 1.1em;border-color:var(--bone-45)}
.btn-small:hover{border-color:var(--bone);background:var(--bone-08)}
.btn.is-done,.btn.is-done:hover{background:var(--live);border-color:var(--live);color:var(--ink)}
.btn-small.is-done{font-variant-numeric:tabular-nums}

/* Nav */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--gutter);
  transition:background .4s,backdrop-filter .4s,padding .4s;
}
.nav.is-solid{
  background:rgba(5,6,7,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  padding-top:12px;padding-bottom:12px;border-bottom:1px solid var(--bone-08);
}
.nav-brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:700;font-size:1.5rem;letter-spacing:.04em}
.nav-brand img{width:36px;height:36px;filter:drop-shadow(0 0 10px rgba(139,92,246,.45))}
.nav-links{display:flex;align-items:center;gap:clamp(18px,3vw,36px)}
.nav-links a:not(.btn){font-family:var(--display);font-weight:600;font-size:1.1rem;letter-spacing:.04em;opacity:.8;transition:opacity .2s}
.nav-links a:not(.btn):hover{opacity:1}

/* Hero */
.hero{position:sticky;top:0;z-index:1;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.ticker,.page,.foot{position:relative;z-index:2;background:var(--ink)}
.hero-media{position:absolute;inset:0;z-index:-1;background:var(--ink)}
.hero-media video{
  width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.4s var(--ease);
  transform:scale(1.04);will-change:transform;
}
.hero-media video.is-ready{opacity:1}
.hero-media canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.4s var(--ease)}
.hero-media.has-gl video{opacity:0!important}
.hero-media.has-gl canvas.is-ready{opacity:1}
.hero-media #hero-fx{opacity:1;mix-blend-mode:screen;pointer-events:none}
.hero-shade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(5,6,7,.55) 0%,rgba(5,6,7,0) 30%,rgba(5,6,7,0) 55%,rgba(5,6,7,.92) 100%),
    radial-gradient(120% 80% at 50% 50%,rgba(5,6,7,0) 40%,rgba(5,6,7,.55) 100%);
}
.grain{
  position:absolute;inset:-100%;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(6) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}
  60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}
}

.hero-body{
  position:relative;width:100%;max-width:1400px;margin:0 auto;
  padding:0 var(--gutter) clamp(72px,12vh,140px);
}
.hero-title{
  margin:0 0 .35em -.03em;
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(64px,11vw,184px);line-height:.88;letter-spacing:-.015em;
}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.hero-title .word{display:inline-block;transform:translateY(110%);will-change:transform}
.hero-lede{
  max-width:38rem;margin:0 0 2rem;font-size:clamp(17px,1.35vw,21px);line-height:1.45;color:var(--bone-70);
  opacity:0;transform:translateY(14px);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;opacity:0;transform:translateY(14px)}

.hero-live{
  position:absolute;right:var(--gutter);bottom:clamp(72px,12vh,140px);
  display:flex;align-items:center;gap:12px;
  font-size:.95rem;line-height:1.3;opacity:0;
}
.hero-live strong{display:block;font-family:var(--display);font-weight:600;font-size:1.2rem;letter-spacing:.03em}
.hero-live span{color:var(--bone-45)}
.live-dot{width:10px;height:10px;border-radius:50%;background:var(--bone-45);flex:none;position:relative}
.live-dot[data-state="online"]{background:var(--live);box-shadow:0 0 0 0 rgba(61,220,132,.6);animation:pulse 2.4s infinite}
.live-dot[data-state="offline"]{background:var(--down)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(61,220,132,.6)}70%{box-shadow:0 0 0 10px rgba(61,220,132,0)}100%{box-shadow:0 0 0 0 rgba(61,220,132,0)}}

.sound{
  position:absolute;right:var(--gutter);bottom:24px;
  display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--bone-70);
  padding:6px 10px;border:1px solid var(--bone-15);border-radius:2px;opacity:0;
  transition:border-color .2s,color .2s;
}
.sound:hover{border-color:var(--bone-45);color:var(--bone)}
.sound svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sound .spk{fill:currentColor;stroke:none}
.sound[aria-pressed="true"] .mute{display:none}
.sound[aria-pressed="false"] .wave{display:none}

.scroll-cue{position:absolute;left:var(--gutter);bottom:24px;width:22px;height:36px;border:1px solid var(--bone-45);border-radius:11px;opacity:0}
.scroll-cue span{position:absolute;left:50%;top:6px;width:2px;height:6px;margin-left:-1px;border-radius:1px;background:var(--bone);animation:cue 1.8s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(14px);opacity:0}100%{transform:translateY(14px);opacity:0}}

/* Ticker */
.ticker{
  position:relative;overflow:hidden;border-top:1px solid var(--bone-08);border-bottom:1px solid var(--bone-08);
  background:var(--ink-2);padding:14px 0;
  font-family:var(--display);font-weight:600;font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bone-45);
}
.ticker-track{display:flex;width:max-content;gap:0;animation:ticker 40s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-track span{display:inline-flex;align-items:center;gap:0 28px;padding-right:28px;white-space:nowrap}
.ticker-track i{width:7px;height:7px;transform:rotate(45deg);background:linear-gradient(135deg,var(--violet),var(--cyan));display:inline-block}
.ticker-track em{font-style:normal;color:var(--bone)}
@keyframes ticker{to{transform:translateX(-50%)}}

/* Shared section pieces */
.section-title{margin:0;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(40px,5vw,72px);line-height:.95;letter-spacing:-.01em}

/* Numbers band */
.numbers{padding:clamp(56px,9vh,110px) var(--gutter) 0}
.numbers-row{
  max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--bone-15);border-bottom:1px solid var(--bone-15);
}
.num{padding:clamp(24px,3vw,40px) 0;display:flex;flex-direction:column;gap:.15em}
.num + .num{border-left:1px solid var(--bone-08);padding-left:clamp(20px,3vw,40px)}
.num strong{font-family:var(--display);font-weight:600;font-size:clamp(48px,6.5vw,104px);line-height:.95;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.num span{color:var(--bone-45);font-size:1rem}

/* Leaderboard */
.board{max-width:1400px;margin:0 auto;padding:clamp(72px,11vh,140px) var(--gutter) 0}
.board-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(28px,4vh,48px)}
.tabs{display:flex;border:1px solid var(--bone-15);border-radius:2px;padding:3px;gap:3px}
.tab{font-family:var(--display);font-weight:600;font-size:1.05rem;letter-spacing:.03em;padding:.45em 1.1em;border-radius:1px;color:var(--bone-70);transition:background .2s,color .2s}
.tab:hover{color:var(--bone)}
.tab.is-active{background:var(--bone);color:var(--ink)}

.podium{list-style:none;margin:0 0 4px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.podium li{
  position:relative;overflow:hidden;min-height:220px;padding:28px 28px 24px;
  background:var(--ink-2);border-top:2px solid var(--bone-15);
  display:flex;flex-direction:column;justify-content:flex-end;
}
.podium li:nth-child(1){border-top-color:#d9b45a}
.podium li:nth-child(2){border-top-color:#b9c0c8}
.podium li:nth-child(3){border-top-color:#b0743c}
.podium .place{
  position:absolute;right:16px;top:-6px;font-family:var(--display);font-weight:700;
  font-size:clamp(120px,12vw,200px);line-height:1;color:var(--bone-08);letter-spacing:-.04em;pointer-events:none;
}
.podium a{position:relative;font-family:var(--display);font-weight:700;font-size:clamp(28px,2.6vw,40px);line-height:1;letter-spacing:.01em;word-break:break-word}
.podium a:hover{color:var(--cyan)}
.podium .facts{position:relative;display:flex;gap:clamp(16px,2vw,32px);margin-top:18px;flex-wrap:wrap}
.podium .facts b{display:block;font-family:var(--display);font-weight:600;font-size:1.5rem;line-height:1;font-variant-numeric:tabular-nums}
.podium .facts i{font-style:normal;color:var(--bone-45);font-size:.85rem}

.ranks{list-style:none;margin:0;padding:0;counter-reset:rank 3}
.ranks li{
  counter-increment:rank;display:grid;grid-template-columns:2.2rem 1fr repeat(3,minmax(64px,110px));
  align-items:baseline;gap:12px;padding:16px 8px;border-bottom:1px solid var(--bone-08);
  font-variant-numeric:tabular-nums;
}
.ranks li::before{content:counter(rank);font-family:var(--display);font-weight:600;color:var(--bone-45)}
.ranks a{font-family:var(--display);font-weight:600;font-size:1.3rem;letter-spacing:.01em}
.ranks a:hover{color:var(--cyan)}
.ranks span{text-align:right;color:var(--bone-70)}
.ranks span small{display:block;color:var(--bone-45);font-size:.75rem}
.ranks .is-lead{color:var(--bone)}
.board-more{margin:28px 0 0;font-size:1rem}
.board-more a{color:var(--bone-70);border-bottom:1px solid var(--bone-15);transition:color .2s,border-color .2s}
.board-more a:hover{color:var(--bone);border-color:var(--bone)}
.board .is-empty{padding:32px 0;color:var(--bone-45)}

/* Maps strip */
.maps{padding:clamp(72px,11vh,140px) 0 0}
.maps-head{max-width:1400px;margin:0 auto clamp(28px,4vh,48px);padding:0 var(--gutter);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}
.maps-sub{margin:0;color:var(--bone-45)}
.maps-viewport{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab}
.maps-viewport::-webkit-scrollbar{display:none}
.maps-viewport.is-dragging{cursor:grabbing;user-select:none}
.maps-viewport.is-dragging .map img{transition:none}
.maps-track{display:flex;gap:4px;padding:0 var(--gutter);width:max-content;will-change:transform}
.map{
  position:relative;flex:none;width:clamp(300px,42vw,620px);aspect-ratio:4/3;overflow:hidden;
  background:var(--ink-2);display:flex;flex-direction:column;justify-content:flex-end;padding:22px;
}
.map img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.8);transition:transform 1.2s var(--ease),filter .6s}
.map:hover img{transform:scale(1.04);filter:saturate(1)}
.map::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,6,7,.05) 30%,rgba(5,6,7,.9) 100%)}
.map > *{position:relative}
.map h3{margin:0 0 6px;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(26px,2.6vw,40px);line-height:.95}
.map h3 a:hover{color:var(--cyan)}
.map p{margin:0 0 12px;color:var(--bone-70);font-size:.95rem}
.map .split{height:4px;display:flex;gap:2px;border-radius:2px;overflow:hidden}
.map .split i{display:block;height:100%}
.map .split .red{background:#d9563f}.map .split .blue{background:#3f8fd9}
.map .legend{display:flex;justify-content:space-between;margin-top:6px;font-size:.8rem;color:var(--bone-45);font-variant-numeric:tabular-nums}

/* Forum feed */
.forum{max-width:1400px;margin:0 auto;padding:clamp(72px,11vh,140px) var(--gutter) 0}
.forum-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(28px,4vh,48px)}
.forum-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:4px}
.forum-empty{margin:0;color:var(--bone-45)}
.topic{display:block;background:var(--ink-2);padding:22px 24px;transition:background .25s}
.topic:hover{background:#12151a}
.topic-cat{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--bone-45);margin-bottom:10px}
.topic-cat i{width:8px;height:8px;border-radius:1px;display:inline-block}
.topic h3{margin:0;font-family:var(--display);font-weight:600;font-size:1.35rem;line-height:1.1;letter-spacing:.01em}
.topic:hover h3{color:var(--cyan)}
.topic-meta{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:.85rem;color:var(--bone-45);font-variant-numeric:tabular-nums}
.topic-meta img{width:22px;height:22px;border-radius:50%;background:var(--bone-08)}
.topic-meta b{font-weight:500;color:var(--bone-70)}
.topic-feature{grid-row:span 5;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;min-height:420px;padding:28px}
.topic-feature img.cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:transform 1.2s var(--ease)}
.topic-feature:hover img.cover{transform:scale(1.04)}
.topic-feature::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,6,7,.1) 20%,rgba(5,6,7,.92) 100%)}
.topic-feature > *{position:relative}
.topic-feature h3{font-size:clamp(28px,3vw,44px);font-weight:700;text-transform:uppercase;line-height:.95}
.topic-feature .topic-cat{color:var(--bone-70)}

/* Join / live server */
.join{
  display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);min-height:80vh;
  max-width:1400px;margin:0 auto;padding:clamp(64px,10vh,120px) var(--gutter);gap:clamp(32px,5vw,80px);align-items:center;
}
.join-media{position:relative;aspect-ratio:10/7;overflow:hidden;border-radius:3px;background:var(--ink-2)}
.join-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.05);transform:scale(1.05);will-change:transform}
.join-media::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 120px rgba(5,6,7,.7)}
.join-kicker{margin:0 0 .5rem;color:var(--bone-45);font-size:1rem}
.join-title{margin:0 0 1.5rem;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(44px,5.5vw,84px);line-height:.92;letter-spacing:-.01em}
.join-facts{display:flex;gap:clamp(24px,4vw,48px);margin:0 0 1.75rem;padding:0}
.join-facts div{display:flex;flex-direction:column-reverse}
.join-facts dt{color:var(--bone-45);font-size:.9rem}
.join-facts dd{margin:0;font-family:var(--display);font-weight:600;font-size:2rem;line-height:1.1;font-variant-numeric:tabular-nums}
.join-how{color:var(--bone-70);max-width:30rem;margin:0 0 1.25rem}
.join-address{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.join-address code{font-family:var(--display);font-weight:600;font-size:1.6rem;letter-spacing:.03em;padding:.35em .7em;border:1px solid var(--bone-15);border-radius:2px}

.join-more{margin:14px 0 0;font-size:.95rem}
.join-more a{color:var(--bone-70);border-bottom:1px solid var(--bone-15);transition:color .2s,border-color .2s}
.join-more a:hover{color:var(--bone);border-color:var(--bone)}

/* Live popup */
.modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(5,6,7,.8);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal-box{
  position:relative;width:min(1040px,100%);max-height:min(86vh,900px);display:flex;flex-direction:column;
  background:var(--ink-2);border:1px solid var(--bone-15);border-radius:3px;box-shadow:0 30px 80px rgba(0,0,0,.6);
  transform:translateY(12px);opacity:0;transition:transform .35s var(--ease),opacity .35s var(--ease);
}
.modal.is-open .modal-box{transform:none;opacity:1}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 16px;border-bottom:1px solid var(--bone-08)}
.modal-head h3{margin:0;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:1.8rem;line-height:1}
.modal-head p{margin:6px 0 0;color:var(--bone-45);font-size:.9rem}
.modal-close{padding:6px;color:var(--bone-70);border-radius:2px}
.modal-close:hover{color:var(--bone);background:var(--bone-08)}
.modal-body{display:grid;grid-template-columns:1.25fr 1fr;gap:0;overflow:hidden;min-height:0;flex:1}
.modal-body h4{margin:0 0 10px;font-family:var(--display);font-weight:600;font-size:1.05rem;letter-spacing:.04em;color:var(--bone-70)}
.live-teams{padding:20px 24px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:20px;border-right:1px solid var(--bone-08)}
.team h4{padding-left:10px;border-left:3px solid}
.team-red h4{border-color:#d9563f}.team-blue h4{border-color:#3f8fd9}
.team ol{list-style:none;margin:0;padding:0}
.team li{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:7px 0;border-bottom:1px solid var(--bone-08);font-size:.95rem;font-variant-numeric:tabular-nums}
.team li span{color:var(--bone-45);font-size:.85rem}
.team .empty{color:var(--bone-45);font-size:.9rem;padding:6px 0}
.live-chat{padding:20px 24px;display:flex;flex-direction:column;min-height:0}
.chat-log{flex:1;overflow:auto;font-size:.95rem;line-height:1.45;min-height:220px}
.chat-log p{margin:0 0 6px}
.chat-log b{font-weight:500;color:var(--bone)}
.chat-log .t1 b{color:#f0836b}.chat-log .t2 b{color:#7fb5ec}
.chat-log .chat-empty{color:var(--bone-45)}
body.modal-open{overflow:hidden}
@media (max-width:820px){
  .modal-body{grid-template-columns:1fr;overflow:auto}
  .live-teams{border-right:0;border-bottom:1px solid var(--bone-08);overflow:visible}
  .chat-log{min-height:160px;max-height:40vh}
}

/* Back to top */
.to-top{
  position:fixed;right:20px;bottom:20px;z-index:60;width:46px;height:46px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(11,13,16,.8);color:var(--bone);border:1px solid var(--bone-15);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  opacity:0;transform:translateY(12px);transition:opacity .3s var(--ease),transform .3s var(--ease),border-color .2s,background .2s;
}
.to-top.is-shown{opacity:1;transform:none}
.to-top:hover{border-color:var(--bone-45);background:rgba(11,13,16,.95)}
.to-top[hidden]{display:flex}

/* Footer */
.foot{
  display:flex;justify-content:space-between;align-items:center;gap:24px 40px;flex-wrap:wrap;
  padding:48px var(--gutter);border-top:1px solid var(--bone-08);
  max-width:1400px;margin:0 auto;
}
.foot-brand{display:flex;align-items:center;gap:14px}
.foot-brand img{width:48px;height:48px}
.foot-brand strong{display:block;font-family:var(--display);font-size:1.4rem;font-weight:700;letter-spacing:.03em;line-height:1.1}
.foot-brand span{color:var(--bone-45);font-size:.95rem}
.foot-copy{margin:0;color:var(--bone-45);font-size:.95rem}

/* Preloader: letterbox bars open over the video, logo blurs in, flash, burn into the page */
.preloader{position:fixed;inset:0;z-index:100;pointer-events:none}
.preloader .bar{position:absolute;left:0;right:0;height:32%;background:#000;transition:height .5s cubic-bezier(.25,.46,.45,.94)}
.preloader .bar-top{top:0}.preloader .bar-bottom{bottom:0}
.preloader-text{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:0 var(--gutter);text-shadow:0 2px 30px rgba(0,0,0,.6);
}
.pre-small{
  font-family:var(--body);font-weight:400;font-size:clamp(15px,1.4vw,19px);letter-spacing:.32em;text-transform:uppercase;
  color:var(--bone-70);margin-bottom:.9em;opacity:0;transform:translateY(8px);filter:blur(6px);
  transition:opacity 1.1s cubic-bezier(.25,.1,.25,1),transform 1.1s cubic-bezier(.25,.1,.25,1),filter 1.1s cubic-bezier(.25,.1,.25,1);
}
.pre-big{
  font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  font-size:clamp(40px,7vw,104px);line-height:1;color:var(--bone);
}
.pre-big .w{display:inline-block;opacity:0;transform:translateY(14px);filter:blur(10px);
  transition:opacity 1.3s cubic-bezier(.25,.1,.25,1),transform 1.3s cubic-bezier(.25,.1,.25,1),filter 1.3s cubic-bezier(.25,.1,.25,1)}
.preloader-text.is-in .pre-small{opacity:1;transform:none;filter:blur(0)}
.preloader-text.is-in .w{opacity:1;transform:none;filter:blur(0)}
.preloader-text.is-in .w:nth-child(1){transition-delay:.25s}
.preloader-text.is-in .w:nth-child(2){transition-delay:.45s}
.preloader-text.is-in .w:nth-child(3){transition-delay:.65s}
.preloader-text.is-out .pre-small,.preloader-text.is-out .w{opacity:0;filter:blur(8px);transform:translateY(-6px);transition-duration:.6s;transition-delay:0s}
.preloader.is-done{display:none}
.hero-media{transform-origin:50% 50%;will-change:transform,filter}
html.is-locked,html.is-locked body{overflow:hidden;height:100%}
body.is-loading .hero-body,body.is-loading .hero-live,body.is-loading .sound,body.is-loading .scroll-cue{visibility:hidden}
@media (max-width:720px){.pre-big{font-size:clamp(34px,11vw,60px)}}

/* Loading state: keep page dark until the intro sequence runs */
body.is-loading .nav{opacity:0}

@media (max-width:720px){
  .nav-links a:not(.btn){display:none}
  .hero{align-items:flex-end}
  .hero-body{padding-bottom:150px}
  .hero-title{font-size:clamp(56px,15vw,96px)}
  .hero-live{left:var(--gutter);right:auto;bottom:74px}
  .scroll-cue{display:none}
  .numbers-row{grid-template-columns:1fr 1fr}
  .num{padding:18px 0}
  .num + .num{padding-left:0;border-left:0}
  .num:nth-child(even){padding-left:16px;border-left:1px solid var(--bone-08)}
  .num:nth-child(n+3){border-top:1px solid var(--bone-08)}
  .num strong{font-size:clamp(40px,12vw,64px)}
  .podium{grid-template-columns:1fr}
  .podium li{min-height:150px}
  .ranks li{grid-template-columns:2rem 1fr 72px 64px}
  .ranks li span:nth-of-type(3){display:none}
  .maps-viewport{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .map{width:78vw;scroll-snap-align:start}
  .forum-grid{grid-template-columns:1fr}
  .topic-feature{grid-row:auto;min-height:280px}
  .join{grid-template-columns:1fr;min-height:0}
  .foot{padding:28px var(--gutter) 32px;flex-wrap:nowrap;gap:12px}
  .foot-brand{gap:10px;min-width:0}
  .foot-brand img{width:32px;height:32px;flex:none}
  .foot-brand strong{font-size:1.15rem;white-space:nowrap}
  .foot-brand span{display:none}
  .foot-copy{font-size:.8rem;white-space:nowrap;flex:none}
}
/* Short viewports (phone in landscape): keep the headline clear of the nav */
@media (max-height:560px){
  .hero-body{padding-top:84px;padding-bottom:64px}
  .hero-title{font-size:clamp(40px,13vh,96px)}
  .hero-lede{font-size:15px;margin-bottom:1.1rem;max-width:32rem}
  .hero-live{bottom:20px;right:auto;left:var(--gutter)}
  .scroll-cue{display:none}
  .hero-actions .btn{font-size:1rem;padding:.55em 1.2em}
}
@media (prefers-reduced-motion:reduce){
  .grain,.ticker-track,.scroll-cue span,.live-dot{animation:none}
  .hero-title .word{transform:none}
  .hero-lede,.hero-actions,.hero-live,.sound,.scroll-cue,body.is-loading .nav{opacity:1;transform:none}
}
