/* ===== LR9 by Lorenzo — Site principal ===== */

:root{
  --bg: #0B0B0B;
  --bg-2: rgba(9,9,9,.86);
  --bg-3: rgba(9,9,9,.7);
  --text: #F4F4F4;
  --text-soft: #C9C9C9;
  --text-dim: #A8A8A8;
  --text-mute: #8A8A8A;
  --text-faint: #7E7E7E;
  --text-ghost: #6E6E6E;

  --line: #1E1E1E;
  --line-soft: #1B1B1B;
  --line-mid: #2A2A2A;

  --accent: #F59A1E;
  --accent-hi: #FFB03F;

  --font-display: "Saira Condensed", Arial, sans-serif;
  --font-body: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;

  --gutter: 48px;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  background-color:var(--bg);
  background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.014) 0 2px, rgba(0,0,0,0) 2px 5px);
  font-family:var(--font-body);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{ color:var(--text); text-decoration:none; }
img{ max-width:100%; display:block; }
.mono{ font-family:var(--font-mono); }

@keyframes lr9-pulse{ 0%,100%{opacity:1; transform:scale(1);} 50%{opacity:.45; transform:scale(.82);} }
@keyframes lr9-rise{ from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;} }
@keyframes lr9-float{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-12px);} }
@keyframes lr9-marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
@keyframes lr9-halo{ 0%{box-shadow:0 0 0 0 rgba(245,154,30,.45);} 70%{box-shadow:0 0 0 18px rgba(245,154,30,0);} 100%{box-shadow:0 0 0 0 rgba(245,154,30,0);} }
@keyframes lr9-intro-out{ 0%,52%{opacity:1; visibility:visible;} 96%,100%{opacity:0; visibility:hidden;} }

/* ---------- 3D scroll intro (home) ---------- */
#lr9-launch-track{ position:relative; height:1150px; margin-top:-71px; }
#lr9-intro{
  position:sticky; top:0; height:100vh; z-index:30;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:44px;
  background-color:var(--bg);
  background-image:radial-gradient(110% 80% at 50% 42%, rgba(245,154,30,.20) 0%, rgba(11,11,11,0) 62%), repeating-linear-gradient(45deg, rgba(255,255,255,.014) 0 2px, rgba(0,0,0,0) 2px 5px);
  pointer-events:none;
}
.lr9-intro__logo{ height:46px; width:auto; display:block; opacity:.92; }
.lr9-intro__ball-wrap{ position:relative; flex:0 0 auto; width:min(380px,50vh); height:min(380px,50vh); }
.lr9-intro__glow{ position:absolute; left:-14%; top:-14%; width:128%; height:128%; border-radius:50%; background-image:radial-gradient(closest-side, rgba(245,154,30,.26) 0%, rgba(245,154,30,.06) 52%, rgba(245,154,30,0) 100%); }
.lr9-intro__shadow{ position:absolute; left:50%; bottom:-8%; width:62%; height:8%; margin-left:-31%; border-radius:50%; background-image:radial-gradient(closest-side, rgba(0,0,0,.72) 0%, rgba(0,0,0,.30) 54%, rgba(0,0,0,0) 100%); filter:blur(4px); }
.lr9-intro__ball{ position:absolute; inset:0; display:block; }
.lr9-intro__scroll{ display:flex; flex-direction:column; align-items:center; gap:14px; }
.lr9-intro__scroll span:first-child{ font:800 15px/1 var(--font-display); letter-spacing:.34em; text-transform:uppercase; color:var(--accent); }
.lr9-intro__line{ width:1px; height:52px; background:linear-gradient(var(--accent), rgba(245,154,30,0)); }

@supports (animation-timeline: scroll()){
  #lr9-intro{ animation:lr9-intro-out linear both; animation-timeline:scroll(nearest block); animation-range:0 1000px; }
}

@media (max-width:640px){
  #lr9-launch-track{ height:820px; }
  .lr9-intro__logo{ height:34px; }
}

.eyebrow{ font:700 11px/1 var(--font-display); letter-spacing:.34em; text-transform:uppercase; color:var(--accent); }
.lead{ margin:0; max-width:600px; font:400 16px/1.65 var(--font-body); color:var(--text-soft); }

/* ---------- buttons / links ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:0 26px; border-radius:99px;
  font:800 14px/1 var(--font-display); letter-spacing:.1em; text-transform:uppercase;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.btn--accent{ background:var(--accent); color:#0B0B0B; border:none; }
.btn--accent:hover{ background:var(--accent-hi); color:#0B0B0B; }
.btn--outline{ background:transparent; border:1px solid var(--line-mid); color:var(--text); font-weight:700; }
.btn--outline:hover{ border-color:var(--accent); color:var(--accent); }
.btn--lg{ min-height:52px; padding:0 30px; font-size:15px; }
.btn--halo{ animation:lr9-halo 3.4s ease-in-out infinite; }
.link-accent{ font:700 12px/1 var(--font-display); letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.link-accent:hover{ color:var(--accent-hi); }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:30;
  background:rgba(11,11,11,.88); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.site-header__inner{
  max-width:1440px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:16px var(--gutter); gap:24px;
}
.site-header__logo{ height:34px; width:auto; }
.site-nav{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.site-nav a{ padding-bottom:3px; border-bottom:2px solid transparent; font:700 13px/1 var(--font-display); letter-spacing:.16em; text-transform:uppercase; color:#D8D8D8; }
.site-nav a:hover{ color:var(--accent); }
.site-nav a.is-active{ color:var(--accent); border-bottom-color:var(--accent); }
.mobile-nav a.is-active{ color:var(--accent); }
.site-header__actions{ display:flex; align-items:center; gap:14px; flex:none; }

.burger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; background:transparent; border:1px solid var(--line-mid); border-radius:8px; cursor:pointer;
}
.burger span{ display:block; height:2px; margin:0 9px; background:var(--text); }
.mobile-nav{ display:flex; flex-direction:column; border-top:1px solid var(--line-soft); }
.mobile-nav a{
  padding:16px var(--gutter); border-bottom:1px solid var(--line-soft);
  font:700 14px/1 var(--font-display); letter-spacing:.12em; text-transform:uppercase; color:var(--text-dim);
}
.mobile-nav[hidden]{ display:none; }

/* ---------- hero ---------- */
.hero{
  position:relative; padding:96px var(--gutter) 72px; border-bottom:1px solid var(--line-soft);
  background-image:radial-gradient(120% 90% at 50% 0%, rgba(245,154,30,.14) 0%, rgba(11,11,11,0) 60%);
}
.hero__inner{ max-width:1440px; margin:0 auto; display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center; }
.hero__copy{ display:flex; flex-direction:column; gap:26px; animation:lr9-rise .55s cubic-bezier(.2,.7,.3,1) both; }
.hero__title{ margin:0; font:800 118px/.86 var(--font-display); font-style:italic; text-transform:uppercase; letter-spacing:-.01em; }
.hero__tags{ display:flex; align-items:center; gap:14px; font:700 15px/1 var(--font-display); letter-spacing:.28em; text-transform:uppercase; color:var(--text-dim); flex-wrap:wrap; }
.hero__tags .sep{ color:var(--accent); }
.hero__text{ margin:0; max-width:520px; font:400 16px/1.65 var(--font-body); color:var(--text-soft); }
.hero__ctas{ display:flex; gap:12px; flex-wrap:wrap; padding-top:4px; }
.hero__socials{ display:flex; gap:20px; padding-top:10px; flex-wrap:wrap; }
.hero__socials a{ font:700 11px/1 var(--font-display); letter-spacing:.2em; text-transform:uppercase; color:var(--text-mute); }
.hero__socials a:hover{ color:var(--accent); }
.hero__art{ position:relative; display:flex; justify-content:center; align-items:flex-end; }
.hero__loulou{ height:400px; width:auto; display:block; animation:lr9-float 6s ease-in-out .8s infinite; }
.hero__r9{ height:170px; width:auto; display:block; margin-left:-26px; margin-bottom:150px; filter:drop-shadow(0 22px 26px rgba(0,0,0,.55)); animation:lr9-float 5s ease-in-out infinite; }

/* ---------- marquee ---------- */
.marquee{ padding:0; border-bottom:1px solid var(--line-soft); overflow:hidden; background:var(--bg-3); }
.marquee__track{ display:flex; width:200%; animation:lr9-marquee 26s linear infinite; }
.marquee__group{ display:flex; align-items:center; gap:36px; width:50%; padding:16px 0; }
.marquee__item{
  display:flex; align-items:center; gap:36px;
  font:700 12px/1 var(--font-display); letter-spacing:.24em; text-transform:uppercase; color:var(--text-faint); white-space:nowrap;
}
.marquee__item .dot{ color:var(--accent); }

/* ---------- generic section ---------- */
.section{ padding:80px var(--gutter); border-bottom:1px solid var(--line-soft); max-width:1440px; margin:0 auto; }
.section--band{ max-width:none; background:var(--bg-3); }
.section__head{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:34px; flex-wrap:wrap; }
.section__title{ margin:0; font:800 60px/1 var(--font-display); font-style:italic; text-transform:uppercase; }
.section__title--tight{ font-size:54px; line-height:1.02; max-width:700px; }
.section__title--md{ font-size:44px; }
.section__title--center{ text-align:center; margin:0 0 22px; }
.section__note{ color:var(--text-mute); font-size:12px; }

/* ---------- ambassadors ---------- */
.ambassadors{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.ambassador-card{ height:560px; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:#101010; }
.ambassador-card img{ width:100%; height:100%; object-fit:contain; object-position:bottom center; }

/* ---------- donate ---------- */
.section--donate{ background-image:radial-gradient(90% 120% at 100% 50%, rgba(245,154,30,.10) 0%, rgba(11,11,11,0) 60%); }
.donate{ display:grid; grid-template-columns:1fr 320px; gap:56px; align-items:center; }
.donate__copy{ display:flex; flex-direction:column; gap:22px; }
.donate__qr{ display:flex; flex-direction:column; align-items:center; gap:14px; padding:22px; border:1px solid var(--line); border-radius:4px; background:var(--bg-2); }
.donate__qr img{ border-radius:2px; }
.donate__qr span{ color:var(--text-mute); text-align:center; font-size:11px; }

/* ---------- cards (projects / games) ---------- */
.cards{ display:grid; gap:20px; }
.cards--3{ grid-template-columns:repeat(3,1fr); }
.card{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--bg-2); transition:border-color .18s ease; }
.card:hover{ border-color:var(--accent); }
.card__mark{
  height:150px; display:flex; align-items:flex-end; padding:0 22px 16px; border-bottom:1px solid var(--line);
  background-color:var(--accent); background-image:repeating-linear-gradient(45deg, rgba(0,0,0,.06) 0 3px, rgba(0,0,0,0) 3px 7px);
  font:800 88px/.82 var(--font-display); font-style:italic; text-transform:uppercase; color:#0B0B0B;
}
.card__body{ display:flex; flex-direction:column; gap:8px; padding:22px; }
.card__tag{ font:700 10px/1 var(--font-display); letter-spacing:.22em; text-transform:uppercase; color:var(--accent); }
.card__title{ font:800 28px/1 var(--font-display); font-style:italic; text-transform:uppercase; }
.card__desc{ font:400 13px/1.6 var(--font-body); color:var(--text-dim); }

.game-card{ display:flex; flex-direction:column; gap:16px; padding:24px; border:1px solid var(--line); border-radius:4px; background:var(--bg-2); transition:border-color .18s ease; }
.game-card:hover{ border-color:var(--accent); }
.game-card__title{ font:800 36px/1 var(--font-display); font-style:italic; text-transform:uppercase; }

/* ---------- band (e-ligue) ---------- */
.band{ display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; padding:72px var(--gutter); max-width:1440px; margin:0 auto; }
.band__copy{ display:flex; flex-direction:column; gap:16px; }
.band__live{ display:flex; align-items:center; gap:12px; color:var(--text-dim); }
.dot-pulse{ width:8px; height:8px; border-radius:50%; background:var(--accent); animation:lr9-pulse 2.2s ease-in-out infinite; flex:none; }

/* ---------- team ---------- */
.team{ display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
.team-card{ display:flex; flex-direction:column; gap:10px; }
.team-card__photo{ height:200px; border:1px solid var(--line); border-radius:3px; overflow:hidden; background:#121212; }
.team-card__photo img{ width:100%; height:100%; object-fit:cover; object-position:top center; filter:grayscale(.4); }
.team-card__name{ font:700 15px/1.1 var(--font-display); text-transform:uppercase; }
.team-card__role{ font:400 11px/1.3 var(--font-mono); color:var(--text-mute); }

/* ---------- partners ---------- */
.partners{ display:grid; grid-template-columns:repeat(8,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); }
.partner-cell{
  display:flex; align-items:center; justify-content:center; height:76px; padding:0 8px; background:var(--bg);
  font:700 12px/1.2 var(--font-display); letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); text-align:center;
}
.partner-cell:hover{ color:var(--accent); }

/* ---------- shop ---------- */
.shop{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.shop__copy{ display:flex; flex-direction:column; gap:20px; }
.shop__art{ display:flex; align-items:center; justify-content:center; height:400px; border:1px solid var(--line); border-radius:4px; background:var(--bg-2); }
.shop__art img{ max-width:82%; max-height:82%; width:auto; height:auto; }

/* ---------- follow ---------- */
.section--follow{ padding:64px var(--gutter); text-align:center; background-image:radial-gradient(100% 140% at 50% 100%, rgba(245,154,30,.12) 0%, rgba(11,11,11,0) 60%); }
.follow{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
.follow a{
  display:inline-flex; align-items:center; min-height:44px; padding:0 22px; border:1px solid var(--line-mid); border-radius:99px;
  font:700 12px/1 var(--font-display); letter-spacing:.16em; text-transform:uppercase; color:#D8D8D8;
}
.follow a:hover{ border-color:var(--accent); color:var(--accent); }

/* ---------- generic page hero (inner pages) ---------- */
.page-hero{
  padding:80px var(--gutter) 56px; border-bottom:1px solid var(--line-soft); max-width:1440px; margin:0 auto;
  display:flex; flex-direction:column; gap:20px; align-items:flex-start;
  background-image:radial-gradient(120% 90% at 20% 0%, rgba(245,154,30,.13) 0%, rgba(11,11,11,0) 60%);
}
.page-hero--festival{ background-image:radial-gradient(120% 100% at 50% 0%, rgba(245,154,30,.18) 0%, rgba(11,11,11,0) 62%); }
.page-hero__title{ margin:0; font:800 88px/.9 var(--font-display); font-style:italic; text-transform:uppercase; animation:lr9-rise .5s cubic-bezier(.2,.7,.3,1) both; }
.page-hero__title--xl{ font-size:118px; line-height:.86; }
.page-hero__title--lg{ font-size:104px; line-height:.88; }
.page-hero__title--quote{ max-width:1000px; font-size:82px; line-height:.92; }
.page-hero__text{ margin:0; max-width:760px; font:400 17px/1.7 var(--font-body); color:var(--text-soft); }
.page-hero__text--sm{ max-width:640px; font-size:16px; }
.page-hero__place{ display:flex; align-items:center; gap:16px; font:700 14px/1 var(--font-display); letter-spacing:.22em; text-transform:uppercase; color:var(--text-dim); flex-wrap:wrap; }
.page-hero__place .sep{ color:var(--accent); }
.page-hero__signature{ font:700 14px/1 var(--font-display); letter-spacing:.24em; text-transform:uppercase; color:var(--text-dim); }

/* ---------- grid cells (missions / program / steps) ---------- */
.grid-cells{ display:grid; gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); }
.grid-cells--5{ grid-template-columns:repeat(5,1fr); }
.grid-cells--4{ grid-template-columns:repeat(4,1fr); }
.grid-cells--3{ grid-template-columns:repeat(3,1fr); }
.grid-cell{ display:flex; flex-direction:column; gap:14px; padding:26px 22px; background:var(--bg); min-height:180px; }
.grid-cell__n{ font:800 30px/1 var(--font-display); font-style:italic; color:var(--accent); }
.grid-cell__title{ font:800 22px/1 var(--font-display); text-transform:uppercase; }
.grid-cell__text{ font:400 14px/1.6 var(--font-body); color:#D8D8D8; }
.grid-cell__text--sm{ font-size:13px; color:var(--text-dim); }

/* ---------- two-col text (association) ---------- */
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
.two-col__block{ display:flex; flex-direction:column; gap:18px; }
.pill-row{ display:flex; flex-wrap:wrap; gap:10px; }
.pill{ display:inline-flex; align-items:center; min-height:40px; padding:0 18px; border:1px solid var(--line-mid); border-radius:99px; font:700 13px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase; color:#D8D8D8; }

/* ---------- bureau (association team) ---------- */
.bureau{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.bureau-card{ display:flex; gap:14px; padding:14px; border:1px solid var(--line); border-radius:4px; background:var(--bg-2); }
.bureau-card__photo{ width:88px; height:110px; flex:none; border-radius:3px; overflow:hidden; background:#121212; }
.bureau-card__photo img{ width:100%; height:100%; object-fit:cover; object-position:top center; }
.bureau-card__body{ display:flex; flex-direction:column; gap:8px; padding-top:6px; }
.bureau-card__name{ font:800 20px/1 var(--font-display); font-style:italic; text-transform:uppercase; }
.bureau-card__role{ font:400 11px/1.4 var(--font-mono); color:var(--accent); }

/* ---------- cta row (association bottom) ---------- */
.cta-row{ display:flex; align-items:center; gap:40px; text-align:left; }
.cta-row__mascot{ width:150px; height:auto; animation:lr9-float 6s ease-in-out infinite; flex:none; }
.cta-row__body{ display:flex; flex-direction:column; gap:14px; align-items:flex-start; }

/* ---------- projets list ---------- */
.project-list{ display:flex; flex-direction:column; gap:20px; }
.project-row{
  display:grid; grid-template-columns:200px 1fr auto; align-items:center; gap:32px;
  border:1px solid var(--line); border-radius:4px; background:var(--bg-2); overflow:hidden; transition:border-color .18s ease;
}
.project-row:hover{ border-color:var(--accent); }
.project-row__mark{
  display:flex; align-items:flex-end; height:170px; padding:0 20px 14px;
  background-color:var(--accent); background-image:repeating-linear-gradient(45deg, rgba(0,0,0,.06) 0 3px, rgba(0,0,0,0) 3px 7px);
  font:800 84px/.82 var(--font-display); font-style:italic; color:#0B0B0B;
}
.project-row__body{ display:flex; flex-direction:column; gap:10px; padding:22px 0; }
.project-row__title{ font:800 40px/1 var(--font-display); font-style:italic; text-transform:uppercase; }
.project-row__long{ max-width:620px; font:400 14px/1.65 var(--font-body); color:var(--text-dim); }
.project-row .link-accent{ padding-right:28px; }

.cards--2{ grid-template-columns:1fr 1fr; }
.event-card{ display:flex; flex-direction:column; gap:12px; padding:26px; border:1px solid var(--line); border-radius:4px; background:var(--bg); }
.event-card__date{ color:var(--accent); font-size:11px; }
.event-card__title{ font:800 34px/1 var(--font-display); font-style:italic; text-transform:uppercase; }

/* ---------- league ---------- */
.league-hero{ display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; width:100%; }
.league-hero__copy{ display:flex; flex-direction:column; gap:20px; align-items:flex-start; }
.league-hero__art{ width:180px; height:auto; animation:lr9-float 6s ease-in-out infinite; }

.disciplines{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.discipline-card{ display:flex; flex-direction:column; justify-content:space-between; gap:26px; padding:20px; border:1px solid var(--line); border-radius:4px; background:var(--bg); }
.discipline-card:hover{ border-color:var(--accent); }
.discipline-card__n{ color:var(--accent); font-size:11px; }
.discipline-card__name{ font:800 22px/1.05 var(--font-display); text-transform:uppercase; }

.live-note{ display:inline-flex; align-items:center; gap:10px; color:var(--text-dim); font-size:12px; }
.rounds{ display:flex; flex-direction:column; gap:12px; }
.round-row{ display:grid; grid-template-columns:180px 1fr auto; align-items:center; gap:24px; padding:20px 24px; border:1px solid var(--line); border-radius:4px; background:var(--bg-2); }
.round-row__date{ color:var(--accent); font-size:12px; }
.round-row__title{ font:800 26px/1 var(--font-display); font-style:italic; text-transform:uppercase; }

/* ---------- support ---------- */
.support-grid{ display:grid; grid-template-columns:1fr 340px; gap:56px; align-items:start; }
.support-grid__uses{ display:flex; flex-direction:column; gap:20px; }
.uses-list{ display:flex; flex-direction:column; gap:12px; }
.use-card{ display:flex; flex-direction:column; gap:8px; padding:20px 22px; border:1px solid var(--line); border-radius:4px; background:var(--bg-2); }
.use-card__top{ display:flex; align-items:baseline; justify-content:space-between; }
.use-card__label{ font:800 24px/1 var(--font-display); font-style:italic; text-transform:uppercase; }
.use-card__pct{ color:var(--accent); font-size:12px; }
.progress-track{ height:4px; background:#1A1A1A; border-radius:99px; overflow:hidden; }
.progress-fill{ height:4px; background:var(--accent); border-radius:99px; }
.btn--block{ width:100%; }

/* ---------- events ---------- */
.event-rows{ display:flex; flex-direction:column; gap:14px; }
.event-row{
  display:grid; grid-template-columns:190px 1fr auto; align-items:center; gap:28px; padding:24px 26px;
  border:1px solid var(--line); border-radius:4px; background:var(--bg-2); transition:border-color .18s ease;
}
.event-row:hover{ border-color:var(--accent); }
.event-row__date{ color:var(--accent); font-size:12px; }
.event-row__body{ display:flex; flex-direction:column; gap:8px; }
.event-row__title{ font:800 32px/1 var(--font-display); font-style:italic; text-transform:uppercase; }

/* ---------- footer ---------- */
.site-footer{ padding:56px var(--gutter) 34px; max-width:1440px; margin:0 auto; }
.site-footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid var(--line-soft); }
.footer-brand{ display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.footer-brand img{ height:40px; width:auto; }
.footer-brand span{ max-width:320px; font:800 22px/1.1 var(--font-display); font-style:italic; text-transform:uppercase; }
.footer-col{ display:flex; flex-direction:column; gap:12px; }
.footer-col__label{ font:700 10px/1 var(--font-display); letter-spacing:.22em; text-transform:uppercase; color:var(--accent); }
.footer-col a{ font:400 13px/1 var(--font-body); color:var(--text-dim); }
.footer-col a:hover{ color:var(--accent); }
.footer-col > div{ display:flex; flex-direction:column; gap:12px; }
.footer-col__muted{ font:400 13px/1.6 var(--font-body); color:var(--text-ghost); }
.site-footer__bottom{ display:flex; align-items:center; justify-content:space-between; padding-top:22px; flex-wrap:wrap; gap:8px; color:var(--text-ghost); font-size:11px; }

/* ================= responsive ================= */
@media (max-width:1180px){
  .hero__title{ font-size:92px; }
  .team{ grid-template-columns:repeat(4,1fr); }
  .partners{ grid-template-columns:repeat(6,1fr); }
  .page-hero__title--xl{ font-size:96px; }
  .page-hero__title--lg{ font-size:88px; }
  .grid-cells--5{ grid-template-columns:repeat(3,1fr); }
  .bureau{ grid-template-columns:repeat(3,1fr); }
  .disciplines{ grid-template-columns:repeat(4,1fr); }
}

@media (max-width:900px){
  .site-nav{ display:none; }
  .burger{ display:flex; }
  .hero__inner{ grid-template-columns:1fr; }
  .hero__art{ order:-1; }
  .hero__title{ font-size:76px; }
  .donate{ grid-template-columns:1fr; }
  .donate__qr{ max-width:320px; margin:0 auto; }
  .cards--3{ grid-template-columns:1fr 1fr; }
  .band{ grid-template-columns:1fr; text-align:left; }
  .team{ grid-template-columns:repeat(3,1fr); }
  .partners{ grid-template-columns:repeat(4,1fr); }
  .shop{ grid-template-columns:1fr; }
  .shop__art{ order:-1; height:280px; }
  .site-footer__grid{ grid-template-columns:1fr 1fr; gap:28px 20px; }

  .page-hero__title{ font-size:64px; }
  .page-hero__title--xl,.page-hero__title--lg,.page-hero__title--quote{ font-size:56px; }
  .two-col{ grid-template-columns:1fr; gap:36px; }
  .grid-cells--5,.grid-cells--4,.grid-cells--3{ grid-template-columns:repeat(2,1fr); }
  .bureau{ grid-template-columns:repeat(2,1fr); }
  .cta-row{ flex-direction:column; align-items:flex-start; text-align:left; gap:24px; }
  .project-row{ grid-template-columns:1fr; }
  .project-row__mark{ height:120px; }
  .project-row .link-accent{ padding:0 22px 22px; }
  .cards--2{ grid-template-columns:1fr; }
  .league-hero{ grid-template-columns:1fr; text-align:left; }
  .league-hero__art{ order:-1; }
  .disciplines{ grid-template-columns:repeat(3,1fr); }
  .round-row,.event-row{ grid-template-columns:1fr; text-align:left; gap:14px; }
  .support-grid{ grid-template-columns:1fr; }
  .support-grid .donate__qr{ max-width:340px; }
}

@media (max-width:640px){
  :root{ --gutter:22px; }
  .hero{ padding:64px var(--gutter) 48px; }
  .hero__title{ font-size:52px; }
  .hero__tags{ font-size:12px; gap:9px; }
  .ambassadors{ grid-template-columns:1fr; }
  .ambassador-card{ height:420px; }
  .cards--3{ grid-template-columns:1fr; }
  .section__title{ font-size:38px; }
  .team{ grid-template-columns:repeat(2,1fr); }
  .partners{ grid-template-columns:repeat(3,1fr); }
  .site-footer__grid{ grid-template-columns:1fr; }
  .site-header__actions .btn{ display:none; }

  .page-hero{ padding:56px var(--gutter) 40px; }
  .page-hero__title{ font-size:44px; }
  .page-hero__title--xl,.page-hero__title--lg,.page-hero__title--quote{ font-size:40px; }
  .grid-cells--5,.grid-cells--4,.grid-cells--3{ grid-template-columns:1fr; }
  .bureau{ grid-template-columns:1fr; }
  .disciplines{ grid-template-columns:repeat(2,1fr); }
  .section__title--md{ font-size:34px; }
}
