/* ============================================================
   DYNASTYREIGN CHEER — arena-dark championship poster
   Tokens are the single brand-swap block. scene.js reads
   --gold-500 / --purple-500 / --ink at init.
   ============================================================ */

:root{
  /* brand — swap this block only */
  --ink:#0A0614;
  --ink-2:#120A24;
  --ink-3:#1A1032;
  --purple-900:#2A0E5C;
  --purple-700:#4C1D95;
  --purple-500:#6D28D9;
  --purple-400:#8B5CF6;
  --purple-300:#A78BFA;
  --gold-700:#8A6A1F;
  --gold-500:#D4AF37;
  --gold-300:#F2D57E;
  --text:#D9D3EA;
  --muted:#9B93B8;
  --white:#FFFFFF;

  /* derived */
  --glass:rgba(255,255,255,.045);
  --glass-2:rgba(255,255,255,.07);
  --line:rgba(217,211,234,.11);
  --line-2:rgba(217,211,234,.2);
  --gold-line:rgba(212,175,55,.38);

  /* system */
  --font-display:"Big Shoulders","Arial Narrow",Impact,sans-serif;
  --font-body:"Archivo",system-ui,-apple-system,sans-serif;
  --radius:18px;
  --radius-sm:10px;
  --maxw:1200px;

  /* z scale */
  --z-aurora:-2;
  --z-noise:-1;
  --z-stage:0;
  --z-content:1;
  --z-nav:50;
  --z-menu:60;
  --z-progress:70;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto}
html,body{overflow-x:clip}
body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:var(--font-body);
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit}
img,svg{max-width:100%;height:auto;display:block}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--gold-500);color:var(--ink)}
:focus-visible{outline:2px solid var(--gold-300);outline-offset:3px;border-radius:2px}

.skip{
  position:fixed;top:-100%;left:1rem;z-index:80;
  background:var(--gold-500);color:var(--ink);padding:.6rem 1.1rem;border-radius:8px;
  font-weight:700;text-decoration:none;transition:top .2s ease;
}
.skip:focus{top:1rem}

.wrap{width:min(100% - clamp(2.5rem,6vw,5rem),var(--maxw));margin-inline:auto}
.sec{position:relative;padding-block:clamp(4.5rem,9vw,8rem)}

.display{
  font-family:var(--font-display);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.012em;
  line-height:.92;
  color:var(--white);
}
.h2{font-size:clamp(2.4rem,5.4vw,4.4rem)}
.lede{max-width:62ch;color:var(--text)}
.small{font-size:.9rem;color:var(--muted)}

/* hollow display word — outline, not gradient text */
.hollow{
  color:transparent;
  -webkit-text-stroke:1.5px var(--gold-500);
}
@supports not (-webkit-text-stroke:1px black){
  .hollow{color:var(--gold-500)}
}

/* ---------- backdrop: aurora + noise ---------- */
.aurora{position:fixed;inset:0;z-index:var(--z-aurora);pointer-events:none;overflow:clip}
.aurora i{
  position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;
  will-change:transform;
}
.aurora i:nth-child(1){width:56vw;height:56vw;left:-14vw;top:-12vw;background:radial-gradient(circle,var(--purple-700),transparent 65%);animation:drift-a 44s ease-in-out infinite alternate}
.aurora i:nth-child(2){width:44vw;height:44vw;right:-12vw;top:26%;background:radial-gradient(circle,var(--purple-900),transparent 62%);animation:drift-b 56s ease-in-out infinite alternate}
.aurora i:nth-child(3){width:30vw;height:30vw;left:32%;bottom:-14vw;background:radial-gradient(circle,rgba(212,175,55,.16),transparent 60%);animation:drift-c 64s ease-in-out infinite alternate}
@keyframes drift-a{to{transform:translate3d(9vw,7vh,0) scale(1.12)}}
@keyframes drift-b{to{transform:translate3d(-7vw,-9vh,0) scale(1.08)}}
@keyframes drift-c{to{transform:translate3d(6vw,-6vh,0) scale(1.15)}}

.noise{
  position:fixed;inset:0;z-index:var(--z-noise);pointer-events:none;opacity:.05;
  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='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- progress ---------- */
#progress{
  position:fixed;top:0;left:0;right:0;height:2px;z-index:var(--z-progress);
  background:linear-gradient(90deg,var(--gold-700),var(--gold-300));
  transform:scaleX(0);transform-origin:0 50%;
}

/* ---------- nav ---------- */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);
  transition:background .35s ease,border-color .35s ease,backdrop-filter .35s ease;
  border-bottom:1px solid transparent;
}
#nav.scrolled{
  background:rgba(10,6,20,.74);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
}
.nav-in{
  display:flex;align-items:center;gap:1.75rem;
  padding-block:.85rem;
}
.brand{
  display:flex;align-items:center;gap:.6rem;text-decoration:none;
  font-family:var(--font-display);font-weight:800;font-size:1.35rem;
  letter-spacing:.05em;color:var(--white);text-transform:uppercase;
}
.brand svg{width:26px;height:26px;flex:none}
.brand b{color:var(--gold-500);font-weight:800}
.nav-links{display:flex;gap:1.6rem;margin-left:auto}
.nav-links a{
  text-decoration:none;font-weight:600;font-size:.92rem;color:var(--text);
  transition:color .2s ease;
}
.nav-links a:hover{color:var(--gold-300)}
.nav-cta{margin-left:.25rem}

.btn{
  display:inline-block;padding:.78rem 1.5rem;border-radius:999px;
  font-weight:700;font-size:.95rem;text-decoration:none;line-height:1.2;
  background:var(--gold-500);color:var(--ink);border:1px solid var(--gold-500);
  transition:transform .25s cubic-bezier(.22,1,.36,1),background .2s ease,box-shadow .25s ease;
}
.btn:hover{background:var(--gold-300);transform:translateY(-2px);box-shadow:0 10px 30px -12px rgba(212,175,55,.55)}
.btn:active{transform:translateY(0)}
.btn-ghost{
  background:transparent;color:var(--text);border:1px solid var(--line-2);
}
.btn-ghost:hover{background:var(--glass);border-color:var(--gold-line);color:var(--white);box-shadow:none}
.btn-big{padding:1rem 2.1rem;font-size:1.05rem}

/* hamburger */
#burger{display:none;margin-left:auto;width:44px;height:44px;position:relative;z-index:calc(var(--z-menu) + 1)}
#burger i,#burger i::before{
  content:"";position:absolute;left:10px;right:10px;height:2px;background:var(--white);
  transition:transform .3s cubic-bezier(.22,1,.36,1),top .3s ease;
}
#burger i{top:19px}
#burger i::before{top:7px;left:0;right:0}
html.menu-open #burger i{transform:rotate(45deg);top:22px}
html.menu-open #burger i::before{transform:rotate(-90deg);top:0}

/* mobile menu */
#menu{
  position:fixed;inset:0;z-index:var(--z-menu);
  background:rgba(10,6,20,.94);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  display:grid;align-content:center;justify-items:start;
  padding:clamp(2rem,8vw,4rem);gap:.4rem;
  visibility:hidden;opacity:0;transition:opacity .3s ease,visibility 0s .3s;
}
html.menu-open #menu{visibility:visible;opacity:1;transition:opacity .3s ease}
html.menu-open{overflow:hidden}
#menu a{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(2.2rem,9vw,3.6rem);line-height:1.06;text-decoration:none;color:var(--white);
  transform:translateY(14px);opacity:0;
  transition:transform .45s cubic-bezier(.22,1,.36,1) var(--d,0s),opacity .45s ease var(--d,0s),color .2s ease;
}
#menu a:hover{color:var(--gold-300)}
html.menu-open #menu a{transform:none;opacity:1}
#menu .btn{margin-top:1.4rem;transform:none;opacity:1;font-family:var(--font-body);text-transform:none}

/* ---------- hero ---------- */
#hero{position:relative;min-height:100svh}
.stage{position:absolute;inset:0;z-index:var(--z-stage);overflow:clip;pointer-events:none}
.stage canvas{position:absolute;inset:0;width:100%;height:100%}
.stage-glow{
  position:absolute;left:50%;top:42%;width:min(62vw,760px);aspect-ratio:1;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(212,175,55,.14) 0%,rgba(109,40,217,.12) 38%,transparent 68%);
  filter:blur(6px);
}
.crown-fallback{
  display:none;position:absolute;left:50%;top:40%;width:min(46vw,420px);
  transform:translate(-50%,-50%);
}
html.no-webgl .crown-fallback{display:block}
html.no-webgl .stage canvas{display:none}

.hero-in{
  position:relative;z-index:var(--z-content);
  display:grid;align-content:end;gap:1.4rem;
  min-height:100svh;padding-block:7.5rem 4.5rem;
}
.hero-kicker{
  font-weight:700;font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-300);
}
.hero-h1{
  font-size:clamp(3.2rem,9.2vw,6rem);
  max-width:12ch;
}
.hero-sub{max-width:52ch;color:var(--text);font-size:clamp(1rem,1.4vw,1.15rem)}
.hero-ctas{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:.6rem}

.hero-b{display:none}
html.js .hero-b{
  display:grid;place-content:center;text-align:center;gap:1rem;
  position:absolute;inset:0;z-index:var(--z-content);
  opacity:0;pointer-events:none;padding-inline:1.5rem;
}
.hero-b .display{font-size:clamp(2.6rem,7vw,5.2rem)}
.hero-b p{color:var(--muted);font-size:1.05rem}

.scroll-cue{
  position:absolute;left:50%;bottom:1.4rem;transform:translateX(-50%);
  z-index:var(--z-content);color:var(--muted);font-size:.78rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;display:grid;justify-items:center;gap:.5rem;
}
.scroll-cue::after{
  content:"";width:1px;height:34px;
  background:linear-gradient(var(--gold-500),transparent);
  animation:cue 2.2s cubic-bezier(.22,1,.36,1) infinite;
}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- marquee ---------- */
.mq{
  border-block:1px solid var(--line);
  padding-block:1.05rem;overflow:clip;position:relative;z-index:var(--z-content);
  background:rgba(10,6,20,.55);
}
.mq-track{display:flex;width:max-content;will-change:transform;animation:mq 34s linear infinite}
.mq.rev .mq-track{animation-direction:reverse}
.mq-seq{display:flex;align-items:center;flex:none}
.mq-seq span{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  font-size:1.35rem;letter-spacing:.06em;color:var(--muted);white-space:nowrap;
  padding-inline:1.5rem;
}
.mq-seq svg{width:14px;height:14px;flex:none;color:var(--gold-500)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- about ---------- */
#about{overflow:clip}
.wm{
  position:absolute;top:6%;left:-2%;z-index:0;pointer-events:none;user-select:none;
  font-family:var(--font-display);font-weight:900;text-transform:uppercase;
  font-size:clamp(7rem,24vw,19rem);line-height:1;white-space:nowrap;
  color:transparent;-webkit-text-stroke:1px rgba(167,139,250,.15);
}
@supports not (-webkit-text-stroke:1px black){.wm{color:rgba(167,139,250,.06)}}
.about-grid{
  position:relative;z-index:var(--z-content);
  display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:start;
}
.about-copy{display:grid;gap:1.2rem}
.about-copy .h2{max-width:14ch}
.proof{
  margin:0;padding:0;list-style:none;display:grid;
  border-top:1px solid var(--line-2);
}
.proof li{
  display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:baseline;
  padding-block:1.15rem;border-bottom:1px solid var(--line);
}
.proof svg{width:18px;height:18px;color:var(--gold-500);transform:translateY(2px)}
.proof b{display:block;color:var(--white);font-weight:700}
.proof p{color:var(--muted);font-size:.95rem}

/* ---------- programs ---------- */
.sec-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;
  border-bottom:2px solid var(--line-2);padding-bottom:1.1rem;margin-bottom:.5rem;
  flex-wrap:wrap;
}
.sec-head .h2 em{font-style:normal;color:var(--gold-500)}
.sec-head .small{max-width:34ch;text-align:right}

.prog{display:block;position:relative;z-index:var(--z-content)}
.prog-row{
  display:grid;grid-template-columns:minmax(0,6fr) minmax(0,4fr) auto;
  align-items:center;gap:1.5rem;
  padding-block:clamp(1.4rem,3vw,2.2rem);
  border-bottom:1px solid var(--line);
  text-decoration:none;position:relative;
  transition:background .3s ease,padding-left .35s cubic-bezier(.22,1,.36,1);
}
.prog-row:nth-child(2){padding-left:clamp(0rem,3vw,2.5rem)}
.prog-row:nth-child(3){padding-left:clamp(0rem,6vw,5rem)}
.prog-row:nth-child(4){padding-left:clamp(0rem,9vw,7.5rem)}
.prog-row h3{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.9rem,4.6vw,3.4rem);line-height:.95;color:var(--white);
  letter-spacing:.012em;transition:color .25s ease;
}
.prog-row p{color:var(--muted);font-size:.98rem;max-width:38ch}
.prog-tag{
  font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold-300);white-space:nowrap;
  display:grid;gap:.35rem;justify-items:end;
}
.prog-tag::after{
  content:"→";font-size:1.3rem;color:var(--gold-500);
  transition:transform .3s cubic-bezier(.22,1,.36,1);
}
.prog-row:hover{background:linear-gradient(90deg,transparent,rgba(109,40,217,.1) 45%,transparent)}
.prog-row:hover h3{color:var(--gold-300)}
.prog-row:hover .prog-tag::after{transform:translateX(6px)}

/* ---------- levels ---------- */
#levels{min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:clip}
.lv-head{display:flex;align-items:baseline;gap:1.5rem;justify-content:space-between;flex-wrap:wrap;margin-bottom:2.2rem}
.lv-tabs{display:flex;gap:.45rem}
.lv-tabs i{
  font-style:normal;font-family:var(--font-display);font-weight:800;font-size:1rem;
  width:2.2rem;height:2.2rem;display:grid;place-content:center;
  border:1px solid var(--line-2);border-radius:6px;color:var(--muted);
}
.lv-tabs i.on{background:var(--gold-500);border-color:var(--gold-500);color:var(--ink)}
.lv-view{position:relative}
.lv-track{
  display:flex;gap:clamp(1rem,2vw,1.6rem);align-items:stretch;
  will-change:transform;
}
.lv-card{
  flex:0 0 clamp(260px,26vw,340px);
  border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(160deg,var(--ink-2),rgba(18,10,36,.4));
  padding:1.6rem 1.5rem 1.5rem;display:grid;gap:.55rem;align-content:start;
  min-height:300px;position:relative;overflow:clip;
}
.lv-card::after{
  content:attr(data-n);position:absolute;right:.4rem;bottom:-1.9rem;
  font-family:var(--font-display);font-weight:900;font-size:8.5rem;line-height:1;
  color:transparent;-webkit-text-stroke:1px rgba(212,175,55,.2);
}
.lv-card h3{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:1.9rem;color:var(--white);
}
.lv-card h3 span{color:var(--gold-500)}
.lv-skill{font-weight:700;color:var(--purple-300);font-size:.95rem}
.lv-card p{color:var(--muted);font-size:.92rem;max-width:30ch}
.lv-rail{
  height:2px;background:var(--line);margin-top:2.2rem;position:relative;overflow:clip;border-radius:2px;
}
.lv-rail i{
  position:absolute;inset:0;background:linear-gradient(90deg,var(--gold-700),var(--gold-300));
  transform:scaleX(0);transform-origin:0 50%;
}

/* ---------- scoresheet + charts ---------- */
#sheet .grid{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(2rem,4.5vw,4rem);align-items:start;
}
.sheet{
  border:1px solid var(--line-2);border-radius:var(--radius);overflow:clip;
  background:var(--ink-2);
}
.sheet-head{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:.95rem 1.4rem;border-bottom:1px solid var(--line-2);
  background:rgba(109,40,217,.12);
}
.sheet-head b{
  font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text);
}
.sheet-head span{
  font-family:var(--font-display);font-weight:800;color:var(--gold-500);font-size:1rem;letter-spacing:.06em;
}
.sheet table{width:100%;border-collapse:collapse}
.sheet td{
  padding:1.05rem 1.4rem;border-bottom:1px solid var(--line);vertical-align:baseline;
}
.sheet tr:last-child td{border-bottom:0}
.sheet td:first-child{
  font-size:.85rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}
.sheet td:last-child{
  text-align:right;font-family:var(--font-display);font-weight:800;
  font-size:clamp(1.7rem,2.6vw,2.3rem);color:var(--white);
  font-variant-numeric:tabular-nums;line-height:1;
}
.sheet tr.zero td:last-child{color:var(--gold-500)}
.sheet-foot{padding:.85rem 1.4rem;border-top:1px dashed var(--line-2);color:var(--muted);font-size:.82rem}

.charts{display:grid;gap:clamp(1.6rem,3vw,2.4rem)}
.chart{
  border:1px solid var(--line);border-radius:var(--radius);
  padding:1.5rem 1.5rem 1.1rem;background:rgba(18,10,36,.35);
}
.chart h3{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:1.5rem;color:var(--white);margin-bottom:.2rem;
}
.chart .small{margin-bottom:1rem}
.chart svg{width:100%;height:auto}
.chart svg text{font-family:var(--font-body)}
.ax{stroke:var(--line-2);stroke-width:1}
.gridln{stroke:rgba(217,211,234,.07);stroke-width:1}
.chart-path{
  stroke:var(--gold-500);stroke-width:2.5;fill:none;
  stroke-linecap:round;stroke-linejoin:round;
}
.dot{fill:var(--purple-400);stroke:var(--ink);stroke-width:2}
.dot-lab{fill:var(--text);font-size:13px;font-weight:600}
.tick-lab{fill:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em}
.rm-track{stroke:var(--line-2);stroke-width:2}
.rm-fill{stroke:var(--gold-500);stroke-width:2;transform-origin:40px 0}
.rm-node{fill:var(--ink-2);stroke:var(--gold-500);stroke-width:2}
.rm-node.hot{fill:var(--gold-500)}
.rm-mo{fill:var(--gold-300);font-size:11px;font-weight:800;letter-spacing:.1em}
.rm-name{fill:var(--text);font-size:13px;font-weight:600}
.js .rm-step{opacity:0;transform:translateY(8px);transition:opacity .5s ease var(--d,0s),transform .5s cubic-bezier(.22,1,.36,1) var(--d,0s)}
.js .rm.in .rm-step{opacity:1;transform:none}
.rm-row{margin-top:clamp(1.6rem,3vw,2.4rem)}
.rm-list{
  display:none;list-style:none;margin:0;padding:0;gap:0;
}
.rm-list li{
  display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:.9rem;
  padding-block:.85rem;border-bottom:1px solid var(--line);
}
.rm-list li:last-child{border-bottom:0}
.rm-list i{
  width:11px;height:11px;border-radius:50%;border:2px solid var(--gold-500);
  background:var(--ink-2);transform:translateY(1px);
}
.rm-list li:first-child i{background:var(--gold-500)}
.rm-list b{
  font-size:.78rem;font-weight:800;letter-spacing:.1em;color:var(--gold-300);
  min-width:5.4rem;
}
.rm-list span{color:var(--text);font-weight:600;font-size:.98rem}
.chart .dot,.chart .rm-node{transition:r .2s ease}
.chart circle:hover{r:9}

/* ---------- tryouts drench ---------- */
#tryouts{
  background:linear-gradient(165deg,var(--purple-900),var(--purple-700) 55%,var(--purple-900));
  overflow:clip;position:relative;
  padding-block:clamp(5.5rem,11vw,10rem);
}
#tryouts .ring{
  position:absolute;left:-12%;top:-28%;width:56vw;min-width:420px;aspect-ratio:1;
  border-radius:50%;pointer-events:none;
  background:conic-gradient(from 0deg,transparent 62%,rgba(242,213,126,.5) 78%,transparent 92%);
  -webkit-mask:radial-gradient(closest-side,transparent calc(100% - 2.5px),#000 calc(100% - 1px));
          mask:radial-gradient(closest-side,transparent calc(100% - 2.5px),#000 calc(100% - 1px));
  animation:rot 26s linear infinite;
}
#tryouts .ring.r2{left:auto;right:-18%;top:auto;bottom:-42%;width:44vw;animation-duration:38s;animation-direction:reverse}
@keyframes rot{to{transform:rotate(1turn)}}
.try-grid{
  position:relative;z-index:var(--z-content);
  display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:clamp(2.5rem,5vw,4.5rem);align-items:center;
}
.try-copy{display:grid;gap:1.3rem;justify-items:start}
.try-copy .display{font-size:clamp(3rem,7.5vw,5.6rem)}
.try-copy .display em{font-style:normal;color:var(--gold-300)}
.try-copy p{color:#E6DFF7;max-width:46ch}
.try-copy .btn{background:var(--gold-300);border-color:var(--gold-300)}
.try-copy .btn:hover{background:var(--white);border-color:var(--white)}
.sched{
  border:1px solid rgba(255,255,255,.22);border-radius:var(--radius);
  background:rgba(10,6,20,.35);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  overflow:clip;
}
.sched header{
  padding:.9rem 1.3rem;border-bottom:1px solid rgba(255,255,255,.18);
  font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-300);
}
.sched table{width:100%;border-collapse:collapse;font-size:.95rem}
.sched td{padding:.8rem 1.3rem;border-bottom:1px solid rgba(255,255,255,.1)}
.sched tr:last-child td{border-bottom:0}
.sched td:first-child{font-weight:700;color:var(--white);white-space:nowrap}
.sched td:last-child{color:#D9D0F0}

/* ---------- contact ---------- */
.contact-grid{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(2rem,4.5vw,4rem);align-items:stretch;
}
.con-list{display:grid;gap:0;align-content:start;border-top:1px solid var(--line-2)}
.con-list>div{padding-block:1.1rem;border-bottom:1px solid var(--line);display:grid;gap:.2rem}
.con-list b{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.con-list a{color:var(--white);text-decoration:none;font-weight:600}
.con-list a:hover{color:var(--gold-300)}
.map{
  border:1px solid var(--line);border-radius:var(--radius);overflow:clip;
  background:var(--ink-2);position:relative;min-height:320px;
  display:grid;
}
.map svg{width:100%;height:100%;position:absolute;inset:0}
.map a{
  position:absolute;right:1.1rem;bottom:1rem;z-index:1;
  font-size:.88rem;font-weight:700;color:var(--gold-300);text-decoration:none;
  padding:.5rem .9rem;border:1px solid var(--gold-line);border-radius:999px;
  background:rgba(10,6,20,.6);
}
.map a:hover{background:rgba(212,175,55,.14)}
.pin-pulse{animation:pulse 2.6s ease-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes pulse{0%{opacity:.8;transform:scale(.4)}70%{opacity:0;transform:scale(1.6)}100%{opacity:0;transform:scale(1.6)}}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding-top:clamp(3rem,6vw,4.5rem);overflow:clip}
.foot-grid{display:flex;gap:2.5rem 4rem;flex-wrap:wrap;justify-content:space-between}
.foot-brand{display:grid;gap:.8rem;max-width:34ch}
.foot-brand .brand{font-size:1.2rem}
.foot-brand p{color:var(--muted);font-size:.92rem}
.foot-cols{display:flex;gap:3.5rem;flex-wrap:wrap}
.foot-cols nav{display:grid;gap:.55rem;align-content:start}
.foot-cols b{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}
.foot-cols a{text-decoration:none;color:var(--text);font-size:.95rem}
.foot-cols a:hover{color:var(--gold-300)}
.foot-cols span{color:var(--muted);font-size:.95rem}
.foot-mark{
  margin-top:clamp(2rem,5vw,3.5rem);
  font-family:var(--font-display);font-weight:900;text-transform:uppercase;
  font-size:clamp(4rem,15.5vw,13.5rem);line-height:.82;text-align:center;white-space:nowrap;
  color:transparent;-webkit-text-stroke:1px rgba(155,147,184,.22);
  pointer-events:none;user-select:none;transform:translateY(12%);
}
@supports not (-webkit-text-stroke:1px black){.foot-mark{color:rgba(155,147,184,.08)}}
.foot-fine{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding-block:1.2rem;border-top:1px solid var(--line);margin-top:-2px;
  color:var(--muted);font-size:.82rem;
}

/* ---------- reveals (enhance-only: gated on html.js) ---------- */
html.js .reveal{opacity:0;transform:translateY(20px)}
html.js .reveal.in{
  opacity:1;transform:none;
  transition:opacity .7s ease var(--d,0s),transform .7s cubic-bezier(.22,1,.36,1) var(--d,0s);
}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .about-grid,#sheet .grid,.try-grid,.contact-grid{grid-template-columns:1fr}
  .sec-head .small{text-align:left}
  .map{min-height:280px}
}
@media (max-width:899px){
  .nav-links,.nav-cta{display:none}
  #burger{display:block}
  #levels{min-height:0}
  .lv-view{overflow-x:auto;scrollbar-width:none;margin-inline:calc(50% - 50vw);padding-inline:clamp(1.25rem,3vw,2.5rem)}
  .lv-view::-webkit-scrollbar{display:none}
  .lv-track{scroll-snap-type:x mandatory;padding-bottom:.5rem}
  .lv-card{scroll-snap-align:start;flex-basis:min(78vw,300px)}
  .lv-rail{display:none}
}
@media (max-width:720px){
  .prog-row{grid-template-columns:1fr;gap:.5rem;padding-left:0!important}
  .prog-tag{justify-items:start;grid-auto-flow:column;gap:.8rem;align-items:center}
  .hero-in{padding-block:6.5rem 5.5rem}
  .mq-seq span{font-size:1.1rem;padding-inline:1.1rem}
  body{font-size:1rem}
}
@media (max-width:719px){
  .chart-a-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .chart-a-scroll::-webkit-scrollbar{display:none}
  .chart-a-scroll svg{min-width:560px}
  .rm svg{display:none}
  .rm-list{display:grid}
}

/* ---------- static QA + reduced motion ---------- */
html.static-qa *,html.static-qa *::before,html.static-qa *::after{
  animation:none!important;transition:none!important;
}
html.static-qa .reveal,html.static-qa .rm-step{opacity:1!important;transform:none!important}
html.static-qa .hero-b{display:none!important}
html.static-qa .lv-rail i{transform:scaleX(1)!important}
html.static-qa .mq-track{transform:none!important}
@media (min-width:900px){
  html.static-qa .lv-track{display:grid;grid-template-columns:repeat(3,1fr)}
  html.static-qa .lv-card{flex-basis:auto;min-height:260px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html.js .reveal,.js .rm-step{opacity:1;transform:none}
  .hero-b{display:none!important}
  .lv-rail i{transform:scaleX(1)}
  .scroll-cue::after{animation:none}
}
