/* ============================================================
   TELESTO 2026 — Landing page
   ============================================================ */

/* generic section rhythm (single source of truth for vertical pad) */
.section{padding:clamp(5rem,4rem + 6vw,9rem) 0;position:relative}
.center-head{text-align:center;margin-inline:auto}
.force-in .hero{min-height:560px}   /* dev: capture full page in one shot */
.section-head{max-width:60ch;margin-bottom:clamp(2.2rem,4vw,3.6rem)}
.section-head .eyebrow{margin-bottom:1.1rem}
.section-head p{margin-top:1.1rem;color:var(--ink-dim);font-size:1.02rem}

/* ================= HERO ================= */
.hero{
  position:relative;min-height:100svh;
  display:grid;place-items:center;
  padding:6rem var(--edge) 3rem;
  text-align:center;overflow:hidden;
}
.hero-eclipse{
  position:absolute;top:48%;left:50%;
  width:min(86vmin,760px);aspect-ratio:1;
  /* --px/--py: pointer parallax · --sy: scroll drift (set from JS) */
  transform:translate(calc(-50% + var(--px,0px)),calc(-50% + var(--py,0px) + var(--sy,0px)));
  z-index:0;pointer-events:none;
}
.hero-eclipse .eclipse-img{
  width:100%;height:100%;object-fit:contain;
  opacity:0;transform:scale(.86);
  mix-blend-mode:screen;             /* drop the black frame, keep the corona */
  -webkit-mask-image:radial-gradient(closest-side,#000 60%,transparent 82%);
  mask-image:radial-gradient(closest-side,#000 60%,transparent 82%);
  transition:opacity 2.2s var(--ease),transform 2.4s var(--ease);
}
.loaded .hero-eclipse .eclipse-img{opacity:1;transform:scale(1)}

/* animated orbit rings around the eclipse */
.orbit{
  position:absolute;top:50%;left:50%;border-radius:50%;
  border:1px solid var(--hairline);
  transform:translate(-50%,-50%);
  opacity:0;transition:opacity 1.8s var(--ease);
}
.loaded .orbit-1{opacity:1;transition-delay:.5s}
.loaded .orbit-2{opacity:1;transition-delay:.9s}
.loaded .orbit-3{opacity:1;transition-delay:1.3s}
.force-in .orbit{opacity:1;transition:none}
@media (prefers-reduced-motion:reduce){.orbit{opacity:1;transition:none}}
.orbit-1{width:112%;height:112%;border-color:rgba(179,141,227,.16)}
.orbit-2{width:132%;height:132%;border-color:rgba(190,115,5,.12);
  border-style:dashed}
.orbit-3{width:158%;height:158%;border-color:rgba(179,141,227,.08)}
.orbit .node{
  position:absolute;width:6px;height:6px;border-radius:50%;
  background:var(--gold-light);top:-3px;left:50%;
  box-shadow:0 0 12px 2px rgba(230,187,126,.7);
}
.orbit-2 .node{background:var(--lavender);box-shadow:0 0 12px 2px rgba(179,141,227,.7)}
@media (prefers-reduced-motion:no-preference){
  .loaded .orbit-1{animation:spin 46s linear infinite}
  .loaded .orbit-2{animation:spin 72s linear infinite reverse}
  .loaded .orbit-3{animation:spin 120s linear infinite}
}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

.hero-copy{position:relative;z-index:2;max-width:min(92vw,960px);
  display:flex;flex-direction:column;align-items:center}
/* legibility scrim behind copy */
.hero-copy::before{
  content:"";position:absolute;inset:-8% -18%;z-index:-1;
  background:radial-gradient(60% 52% at 50% 50%,rgba(8,5,13,.72),transparent 72%);
}
.hero .eyebrow{margin-bottom:1.6rem;opacity:0;animation:rise .9s .3s var(--ease) forwards}
.hero-title{
  font-family:var(--f-display);color:var(--white);
  font-size:clamp(2.35rem,1rem + 9.6vw,8.4rem);
  line-height:.9;letter-spacing:.04em;text-transform:uppercase;
  display:flex;align-items:baseline;flex-wrap:wrap;justify-content:center;
  gap:clamp(.4rem,1.6vw,1.4rem);
  text-shadow:0 0 50px rgba(11,7,16,.9);
  opacity:0;animation:rise 1s .42s var(--ease) forwards;
}
.hero-title .yr{
  font-size:.42em;color:var(--gold-light);letter-spacing:.14em;
  -webkit-text-stroke:0;
}
.hero-sub{
  margin-top:1.5rem;font-family:var(--f-display);
  font-size:clamp(.72rem,.5rem + 1.1vw,1.15rem);
  letter-spacing:clamp(.3em,1.2vw,.62em);text-transform:uppercase;
  color:var(--lavender);
  opacity:0;animation:rise 1s .6s var(--ease) forwards;
}
.hero-tag{
  margin-top:1.8rem;font-family:var(--f-cere);font-style:italic;
  font-size:clamp(1rem,.85rem + .7vw,1.42rem);line-height:1.55;
  color:var(--gold-light);max-width:34ch;
  opacity:0;animation:rise 1s .74s var(--ease) forwards;
}
.hero-meta{
  margin-top:1.9rem;font-family:var(--f-mono);
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);
  display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;justify-content:center;
  opacity:0;animation:rise 1s .86s var(--ease) forwards;
}
.hero-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--violet-muted)}
.countdown{
  margin-top:2.1rem;display:flex;align-items:flex-start;gap:clamp(.5rem,1.6vw,1.1rem);
  opacity:0;animation:rise 1s .92s var(--ease) forwards;
}
.cd-cell{display:flex;flex-direction:column;align-items:center;gap:.4rem;min-width:3.2ch}
.cd-n{
  font-family:var(--f-mono);font-size:clamp(1.4rem,1rem + 2vw,2.2rem);
  color:var(--white);line-height:1;font-variant-numeric:tabular-nums;
  text-shadow:0 0 24px rgba(179,141,227,.45);
}
.cd-l{font-family:var(--f-cere);font-size:.58rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--ink-faint);font-weight:600}
.cd-sep{font-family:var(--f-mono);font-size:clamp(1.2rem,1rem + 1.6vw,1.9rem);
  color:var(--gold);line-height:1.1}
.countdown.live-now{
  font-family:var(--f-cere);color:var(--gold-light);font-size:1.05rem;
  letter-spacing:.3em;text-transform:uppercase;
}
.countdown.live-now a{color:inherit;text-decoration:underline}
.hero-cta{
  margin-top:2.6rem;display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;
  opacity:0;animation:rise 1s .98s var(--ease) forwards;
}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

.hero-scroll{
  position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);
  z-index:2;display:flex;flex-direction:column;align-items:center;gap:.6rem;
  font-family:var(--f-mono);font-size:.62rem;letter-spacing:.34em;
  text-transform:uppercase;color:var(--ink-faint);
}
.hero-scroll .bar{width:1px;height:44px;background:linear-gradient(var(--gold-light),transparent);
  animation:drop 2.4s var(--ease) infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}
  50%{transform:scaleY(1);transform-origin:top}
  50.1%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
/* Show hero copy instantly: reduced motion, and the ?static capture hook.
   Targeted list — a bare `.hero *` would strip the orbits' centering transform. */
/* short viewports (phone landscape, small laptops) — compress hero rhythm */
@media (max-height:740px){
  .hero{padding-top:4.6rem}
  .hero .eyebrow{margin-bottom:.9rem}
  .hero-sub{margin-top:.9rem}
  .hero-meta{margin-top:1.1rem}
  .countdown{margin-top:1.2rem}
  .hero-cta{margin-top:1.5rem}
  .hero-scroll{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero .eyebrow,.hero-title,.hero-sub,.hero-tag,.hero-meta,.countdown,.hero-cta{
    animation:none!important;opacity:1!important;transform:none!important}
  .hero-scroll .bar,.hero .livedot{animation:none!important}
}
.force-in .hero .eyebrow,.force-in .hero-title,.force-in .hero-sub,.force-in .hero-tag,
.force-in .hero-meta,.force-in .countdown,.force-in .hero-cta{
  animation:none!important;opacity:1!important;transform:none!important}

/* ============ ECLIPSE-PHASE SPINE (signature) ============ */
.spine{
  position:fixed;top:50%;left:22px;transform:translateY(-50%);
  z-index:40;display:flex;flex-direction:column;gap:20px;align-items:center;
}
.spine::before{
  content:"";position:absolute;top:-14px;bottom:-14px;left:50%;width:1px;
  transform:translateX(-50%);
  background:linear-gradient(var(--hairline),var(--hairline-2),var(--hairline));
}
.spine .ph{
  width:15px;height:15px;position:relative;opacity:.4;
  transition:opacity .4s var(--ease),transform .4s var(--ease);
  background:none;border:0;cursor:pointer;padding:0;
}
.spine .ph svg{width:100%;height:100%;display:block}
.spine .ph .disc{fill:#241832;stroke:var(--hairline-2);stroke-width:1}
.spine .ph .lit{fill:var(--gold-light)}
.spine .ph.active{opacity:1;transform:scale(1.4)}
.spine .ph.active svg{filter:drop-shadow(0 0 6px rgba(230,187,126,.85))}
.spine .ph.passed{opacity:.72}
.spine .ph .tip{
  position:absolute;left:26px;top:50%;transform:translateY(-50%);
  white-space:nowrap;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-dim);opacity:0;pointer-events:none;
  transition:opacity .3s;background:rgba(14,9,22,.9);padding:.3em .6em;
  border:1px solid var(--hairline);border-radius:2px;
}
.spine .ph:hover .tip,.spine .ph.active .tip{opacity:1}
@media (max-width:1080px){.spine{display:none}}

/* ================= ABOUT / SINGULARITY ================= */
.about{position:relative;overflow:hidden}
.about-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);
  align-items:center;
}
.about-visual{position:relative;aspect-ratio:1;border-radius:50%;
  overflow:hidden;box-shadow:var(--violet-glow);border:1px solid var(--hairline)}
.about-visual img{width:100%;height:100%;object-fit:cover;
  transform:scale(1.05);transition:transform 1.4s var(--ease)}
.about-visual:hover img{transform:scale(1.12)}
.about-visual .ring{position:absolute;inset:-2px;border-radius:50%;
  border:1px solid var(--gold-hairline);pointer-events:none}
.about-lead{
  font-family:var(--f-cere);font-size:clamp(1.5rem,1.1rem + 2vw,2.6rem);
  line-height:1.28;color:var(--white);margin-bottom:1.6rem;
}
.about-lead em{font-style:italic;color:var(--gold-light)}
.about p{color:var(--ink-dim);font-size:1.03rem;margin-bottom:1.1rem;max-width:52ch}
.about-stats{display:flex;gap:2.4rem;margin-top:2.2rem;flex-wrap:wrap}
.about-stats .st .n{font-family:var(--f-display);font-size:clamp(1.6rem,3vw,2.3rem);
  color:var(--gold-light);line-height:1}
.about-stats .st .l{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-dim);margin-top:.5rem}
@media (max-width:820px){
  .about-grid{grid-template-columns:1fr;gap:2.6rem}
  .about-visual{max-width:420px;margin:0 auto;order:-1}
}

/* ================= EVENTS ================= */
.events-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;
}
.ev-list{list-style:none;margin:.9rem 0 0;padding:0}
.ev-list li{
  font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;color:var(--lavender);
  padding:.34em 0;border-bottom:1px dashed var(--hairline);display:flex;gap:.6em;align-items:center;
}
.ev-list li::before{content:"◦";color:var(--gold-light)}
.ev-list li:last-child{border-bottom:0}
.contingent{
  margin-top:1.2rem;display:flex;align-items:center;justify-content:space-between;
  gap:1.6rem;flex-wrap:wrap;
  padding:1.3rem 1.6rem;border:1px solid var(--gold-hairline);border-radius:4px;
  background:linear-gradient(90deg,rgba(190,115,5,.08),transparent 65%);
}
.cg-tag{
  font-family:var(--f-cere);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--gold-light);font-weight:600;display:block;margin-bottom:.35rem;
}
.cg-copy{max-width:56ch}
.cg-copy p{color:var(--ink-dim);font-size:.95rem}
.cg-copy b{color:var(--ink);font-weight:500}
.ev{
  position:relative;padding:1.9rem 1.5rem 1.7rem;
  background:linear-gradient(180deg,var(--surface),rgba(14,9,22,.4));
  border:1px solid var(--hairline);border-radius:4px;overflow:hidden;
  transition:transform .5s var(--ease),border-color .5s var(--ease),
             box-shadow .5s var(--ease);
  display:flex;flex-direction:column;min-height:280px;
}
.ev::after{ /* corner orbit arc */
  content:"";position:absolute;width:150px;height:150px;right:-70px;top:-70px;
  border-radius:50%;border:1px solid var(--hairline);
  transition:border-color .5s var(--ease),transform .6s var(--ease);
}
.ev.tilting{transition:border-color .5s var(--ease),box-shadow .5s var(--ease)}
.ev:hover{transform:translateY(-6px);border-color:var(--hairline-2);
  box-shadow:0 24px 60px -30px rgba(81,50,120,.8)}
.ev:hover::after{border-color:var(--gold-hairline);transform:scale(1.15)}
.ev .tag{
  font-family:var(--f-cere);font-size:.66rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold-light);font-weight:600;
}
.ev .glyph{margin:.5rem 0 1.1rem;width:34px;height:34px;color:var(--lavender)}
.ev h3{
  font-family:var(--f-display);text-transform:uppercase;color:var(--white);
  font-size:1.02rem;letter-spacing:.02em;line-height:1.15;margin:0 0 .7rem;
}
.ev p{color:var(--ink-dim);font-size:.86rem;line-height:1.6}
.ev .ev-meta{
  margin-top:auto;padding-top:1.2rem;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-faint);
  display:flex;gap:.5rem;align-items:center;
}
/* tablets: BMT card (with its domain list) full-width, Case + Quiz side by side */
@media (max-width:900px) and (min-width:561px){
  .events-grid{grid-template-columns:1fr 1fr}
  .ev:first-child{grid-column:1 / -1;min-height:0}
}
@media (max-width:560px){.events-grid{grid-template-columns:1fr}.ev{min-height:0}}

/* ================= PRIZES & FEES ================= */
.prizes{border-top:1px solid var(--hairline);
  background:linear-gradient(180deg,rgba(20,13,32,.35),transparent)}
.prize-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.prize-grid > *{min-width:0}   /* let columns shrink; .fee-scroll handles table overflow */
.prize-hero .eyebrow{margin-bottom:1.4rem}
.prize-num{
  font-family:var(--f-display);color:var(--white);line-height:.9;
  font-size:clamp(4rem,3rem + 7vw,8.5rem);letter-spacing:.01em;
  background:var(--corona);-webkit-background-clip:text;background-clip:text;color:transparent;
  display:flex;align-items:baseline;gap:.12em;
  filter:drop-shadow(0 0 34px rgba(190,115,5,.35));
}
.prize-num .cur{font-size:.42em}
.prize-num .unit{font-family:var(--f-cere);font-size:.22em;letter-spacing:.3em;
  text-transform:uppercase;background:none;-webkit-background-clip:border-box;
  background-clip:border-box;color:var(--gold-light)}
.prize-sub{margin-top:1.3rem;color:var(--ink-dim);max-width:38ch;font-size:1rem}
.fees-title{
  font-family:var(--f-cere);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-light);font-weight:600;margin-bottom:1rem;
}
.fee-scroll{overflow-x:auto;border-radius:6px;-webkit-overflow-scrolling:touch}
.fee-table{width:100%;min-width:430px;border-collapse:collapse;
  border:1px solid var(--hairline);border-radius:6px;overflow:hidden;
  background:rgba(11,7,16,.5)}
.fee-table th,.fee-table td{padding:.85rem 1.1rem;text-align:left;
  border-bottom:1px solid var(--hairline);font-weight:400}
.fee-table thead th{
  font-family:var(--f-mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-faint);background:rgba(26,17,48,.5)}
.fee-table thead small{display:block;letter-spacing:.1em;opacity:.7;text-transform:none}
.fee-table tbody th{font-family:var(--f-body);font-size:.92rem;color:var(--ink);font-weight:500}
.fee-table tbody th small{display:block;font-family:var(--f-mono);font-size:.62rem;
  letter-spacing:.14em;color:var(--ink-faint);margin-top:.2rem;text-transform:uppercase}
.fee-table td{font-family:var(--f-mono);font-size:.95rem;color:var(--gold-light);
  font-variant-numeric:tabular-nums}
.fee-table tr:last-child th,.fee-table tr:last-child td{border-bottom:0}
.fee-table tr.bundle{background:linear-gradient(90deg,rgba(190,115,5,.09),transparent 70%)}
.fees-note{margin-top:.8rem;font-family:var(--f-mono);font-size:.66rem;
  letter-spacing:.08em;color:var(--ink-faint)}
@media (max-width:860px){
  .prize-grid{grid-template-columns:1fr;gap:2.4rem}
  .fee-table th,.fee-table td{padding:.7rem .7rem}
}

/* ================= TIMELINE ================= */
.timeline{max-width:820px;margin:0 auto;position:relative}
.tl-day{
  font-family:var(--f-display);text-transform:uppercase;color:var(--white);
  font-size:1.15rem;letter-spacing:.14em;margin:2.6rem 0 1.4rem;
  display:flex;align-items:center;gap:1rem;
}
.tl-day:first-child{margin-top:0}
.tl-day .d{font-family:var(--f-mono);font-size:.72rem;color:var(--gold-light);
  letter-spacing:.2em;border:1px solid var(--gold-hairline);padding:.35em .8em;border-radius:2px}
.tl-row{
  display:grid;grid-template-columns:88px 30px 1fr;gap:1.1rem;
  align-items:start;padding:1.1rem 0;position:relative;
}
.tl-row + .tl-row{border-top:1px solid var(--hairline)}
.tl-time{font-family:var(--f-mono);font-size:.82rem;color:var(--lavender);padding-top:.15rem}
.tl-mark{position:relative;display:flex;justify-content:center}
.tl-mark svg{width:20px;height:20px;margin-top:.1rem}
.tl-mark .disc{fill:#241832;stroke:var(--hairline-2);stroke-width:1}
.tl-mark .lit{fill:var(--gold-light)}
.tl-mark::before{content:"";position:absolute;top:24px;bottom:-1.1rem;left:50%;
  width:1px;transform:translateX(-50%);background:var(--hairline)}
.tl-row:last-child .tl-mark::before{display:none}
.tl-body h4{font-family:var(--f-body);font-weight:500;color:var(--white);
  font-size:1rem;margin-bottom:.25rem}
.tl-body p{color:var(--ink-dim);font-size:.86rem}
@media (max-width:560px){
  .tl-row{grid-template-columns:66px 24px 1fr;gap:.7rem}
  .tl-time{font-size:.74rem}
}

/* ================= RANKINGS TEASER ================= */
.teaser{position:relative;overflow:hidden;
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  background:linear-gradient(120deg,rgba(26,17,48,.7),rgba(11,7,16,.4))}
.teaser-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.teaser .eyebrow{margin-bottom:1.2rem}
.teaser h2{font-family:var(--f-display);text-transform:uppercase;color:var(--white);
  font-size:clamp(1.6rem,1rem + 3vw,3rem);line-height:1.04;margin-bottom:1.2rem}
.teaser p{color:var(--ink-dim);max-width:44ch;margin-bottom:2rem}
/* mini illustrative board */
.mini{display:flex;flex-direction:column;gap:.7rem;
  padding:1.6rem;background:rgba(11,7,16,.55);border:1px solid var(--hairline);border-radius:6px}
.mini-row{display:grid;grid-template-columns:20px 1fr auto;gap:.8rem;align-items:center}
.mini-row .r{font-family:var(--f-mono);font-size:.72rem;color:var(--ink-faint)}
.mini-row .track{height:9px;border-radius:5px;background:rgba(179,141,227,.1);overflow:hidden}
.mini-row .fill{height:100%;border-radius:5px;background:var(--corona);
  width:var(--w);transform-origin:left;animation:grow 1.2s var(--ease) both}
.mini-row.lead .fill{box-shadow:0 0 16px rgba(230,187,126,.6)}
.mini-row:nth-child(1) .fill{--w:96%}
.mini-row:nth-child(2) .fill{--w:88%}
.mini-row:nth-child(3) .fill{--w:74%}
.mini-row:nth-child(4) .fill{--w:61%}
.mini-row:nth-child(5) .fill{--w:52%}
.mini-row .s{font-family:var(--f-mono);font-size:.74rem;color:var(--ink);min-width:3ch;text-align:right}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (max-width:820px){.teaser-grid{grid-template-columns:1fr;gap:2.2rem}}

/* ================= SPONSORS ================= */
.sponsors{background:linear-gradient(180deg,transparent,rgba(20,13,32,.4))}
.spon-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1px;
  background:var(--hairline);border:1px solid var(--hairline);border-radius:6px;overflow:hidden;
}
.spon-cell{
  background:var(--bg);aspect-ratio:16/9;display:grid;place-items:center;padding:1.4rem;
  transition:background .4s var(--ease);
}
.spon-cell:hover{background:var(--surface)}
.spon-cell img{max-height:46px;max-width:100%;width:auto;object-fit:contain;
  filter:grayscale(1) brightness(1.7) opacity(.6);
  transition:filter .4s var(--ease),transform .4s var(--ease)}
.spon-cell:hover img{filter:none;transform:scale(1.06)}
.spon-note{text-align:center;margin-top:1.6rem;font-family:var(--f-mono);
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}

/* ================= CTA STRIP ================= */
.final{text-align:center;position:relative;overflow:hidden}
.final-eclipse{position:absolute;top:50%;left:50%;width:min(70vmin,540px);
  aspect-ratio:1;transform:translate(-50%,-50%);opacity:.5;z-index:0;pointer-events:none}
.final-eclipse img{width:100%;height:100%;object-fit:contain;mix-blend-mode:screen}
.final .inner{position:relative;z-index:1}
.final h2{font-family:var(--f-display);text-transform:uppercase;color:var(--white);
  font-size:clamp(2rem,1.2rem + 4vw,4rem);line-height:1;margin-bottom:1.4rem}
.final p{color:var(--gold-light);font-family:var(--f-cere);font-style:italic;
  font-size:1.2rem;margin-bottom:2.2rem}

/* register block */
.reg-grid{
  display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:1.2rem;
  text-align:left;margin-top:1.4rem;
}
.reg-col{
  padding:1.6rem 1.5rem;border:1px solid var(--hairline);border-radius:6px;
  background:rgba(11,7,16,.62);backdrop-filter:blur(4px);
}
.reg-h{
  font-family:var(--f-cere);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--gold-light);font-weight:600;margin-bottom:1.1rem;
}
.reg-steps{margin:0;padding:0;list-style:none;counter-reset:step}
.reg-steps li{
  counter-increment:step;position:relative;padding:.65rem 0 .65rem 2.4rem;
  color:var(--ink-dim);font-size:.9rem;line-height:1.55;
  border-bottom:1px dashed var(--hairline);font-style:normal;
}
.reg-steps li:last-child{border-bottom:0}
.reg-steps li b{color:var(--ink);font-weight:500}
.reg-steps li::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;left:0;top:.75rem;
  font-family:var(--f-mono);font-size:.72rem;color:var(--gold-light);
}
.qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.qr{margin:0;text-align:center}
.qr img{width:100%;max-width:150px;margin:0 auto;border-radius:6px;
  border:1px solid var(--gold-hairline);
  box-shadow:0 0 24px -8px rgba(230,187,126,.35)}
.qr figcaption{
  margin-top:.5rem;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-dim);font-style:normal;
}
.contacts{margin:0;padding:0;list-style:none}
.contacts li{padding:.6rem 0;border-bottom:1px dashed var(--hairline);
  display:flex;flex-direction:column;gap:.15rem;font-style:normal}
.contacts li:last-child{border-bottom:0}
.contacts b{color:var(--ink);font-weight:500;font-size:.92rem}
.contacts span{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-faint)}
.contacts a{font-family:var(--f-mono);font-size:.8rem;color:var(--lavender)}
.contacts a:hover{color:var(--gold-light)}
.ground-rules{
  margin:1.6rem 0 0;padding:1rem 1.4rem;list-style:none;
  display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:center;
  border:1px solid var(--hairline);border-radius:6px;
  background:rgba(11,7,16,.5);
}
.ground-rules li{
  font-size:.78rem;color:var(--ink-dim);display:flex;align-items:center;gap:.55em;
}
.ground-rules li::before{content:"◐";color:var(--gold-light);font-size:.7em}
.ground-rules b{color:var(--ink);font-weight:500}
@media (max-width:960px){
  .reg-grid{grid-template-columns:1fr}
  .qr-grid{max-width:360px;margin:0 auto}
  .ground-rules{flex-direction:column;align-items:flex-start;gap:.55rem}
}


/* ================= MOTION LAYER (v6) ================= */
.cd-n.tick{animation:cdtick .45s var(--ease)}
@keyframes cdtick{from{opacity:.15;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cd-n.tick{animation:none}}

/* active spine glyph gets a slow orbiting dashed ring */
@media (prefers-reduced-motion:no-preference){
  .spine .ph.active .ring-o{stroke-dasharray:3 5;transform-box:fill-box;
    transform-origin:center;animation:ringspin 9s linear infinite}
}
@keyframes ringspin{to{transform:rotate(360deg)}}

/* sponsor cells ripple in after the grid reveals */
.spon-grid.reveal .spon-cell{opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--ease),transform .7s var(--ease),background .4s var(--ease)}
.spon-grid.reveal.in .spon-cell{opacity:1;transform:none}
.spon-grid.reveal.in .spon-cell:nth-child(2){transition-delay:.05s}
.spon-grid.reveal.in .spon-cell:nth-child(3){transition-delay:.1s}
.spon-grid.reveal.in .spon-cell:nth-child(4){transition-delay:.15s}
.spon-grid.reveal.in .spon-cell:nth-child(5){transition-delay:.2s}
.spon-grid.reveal.in .spon-cell:nth-child(6){transition-delay:.25s}
.spon-grid.reveal.in .spon-cell:nth-child(7){transition-delay:.3s}
.spon-grid.reveal.in .spon-cell:nth-child(8){transition-delay:.35s}
.spon-grid.reveal.in .spon-cell:nth-child(9){transition-delay:.4s}
.spon-grid.reveal.in .spon-cell:nth-child(10){transition-delay:.45s}
.spon-grid.reveal.in .spon-cell:nth-child(11){transition-delay:.5s}
.spon-grid.reveal.in .spon-cell:nth-child(12){transition-delay:.55s}
.spon-grid.reveal.in .spon-cell:nth-child(13){transition-delay:.6s}
.force-in .spon-cell{opacity:1!important;transform:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){
  .spon-grid.reveal .spon-cell{opacity:1;transform:none;transition:background .4s}
}

/* living sheen on the teaser's leading bar */
.mini-row .fill{position:relative;overflow:hidden}
@media (prefers-reduced-motion:no-preference){
  .mini-row.lead .fill::after{content:"";position:absolute;inset:0;
    background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.4) 50%,transparent 65%);
    background-size:250% 100%;animation:sheen 3.2s var(--ease) infinite}
}
@keyframes sheen{from{background-position:140% 0}to{background-position:-40% 0}}
