/* ============================================================
   TECHNOVA 2K26 — design tokens
   ============================================================ */
:root{
  --bg:#030508;
  --bg-2:#070A11;
  --blue:#00A8FF;
  --deep:#0066FF;
  --red:#FF2D2D;
  --gold:#F5B942;
  --white:#F5F7FA;
  --muted:#A8B0BD;
  --line:rgba(168,176,189,.16);
  --line-strong:rgba(168,176,189,.32);
  --display:"Chakra Petch",ui-sans-serif,"Segoe UI",system-ui,sans-serif;
  --body:"Barlow","Segoe UI",system-ui,-apple-system,sans-serif;
  --nav-h:74px;
  --tick-h:36px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--tick-h) + 12px);-webkit-text-size-adjust:100%}
html{background:var(--bg)}
body{
  margin:0;background:transparent;color:var(--white);font-family:var(--body);
  font-size:17px;line-height:1.65;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body.locked{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}
::selection{background:rgba(0,168,255,.32)}

/* scrollbar */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#05070c}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--deep),var(--red));border-radius:20px}

.wrap{width:min(1240px,92vw);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:.01em;margin:0;line-height:1.08}
.h-sec{font-size:clamp(2rem,5.2vw,3.4rem);font-weight:700;letter-spacing:.02em}
.h-sec .thin{font-weight:400;color:var(--muted)}
.lead{color:var(--muted);font-size:clamp(1rem,1.9vw,1.15rem);max-width:64ch}
.eyebrow{
  font-family:var(--display);font-size:.72rem;font-weight:600;letter-spacing:.42em;
  color:var(--muted);text-transform:uppercase;display:flex;align-items:center;gap:.9rem;
}
.eyebrow::before{content:"";width:34px;height:1px;background:linear-gradient(90deg,var(--blue),transparent)}
.eyebrow.red::before{background:linear-gradient(90deg,var(--red),transparent)}

section{position:relative;padding:clamp(74px,10vw,140px) 0}
.rule{height:1px;background:linear-gradient(90deg,transparent,var(--line-strong),transparent)}

/* ============================================================
   FIXED BACKDROP — the artwork stays put while the page scrolls
   ============================================================ */
#bgfix{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
#bgfix img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
#bgfix::after{content:"";position:absolute;inset:0;
  background:
    radial-gradient(90% 60% at 50% 14%,rgba(3,5,8,.10),rgba(3,5,8,.42) 72%),
    linear-gradient(180deg,rgba(3,5,8,.24),rgba(3,5,8,.38))}

/* content sits on a scrim so the artwork reads as atmosphere, not noise */
#rest,#page{background:rgba(3,5,8,.56)}
#rest .h-sec,#rest .lead,#rest .eyebrow,#rest .about-copy p,#page .h-sec,#page h1{
  text-shadow:0 2px 22px rgba(0,0,0,.65)}
#siteFoot{background:linear-gradient(180deg,rgba(4,6,11,.86),rgba(2,4,7,.94))}

/* ============================================================
   LOADER
   ============================================================ */
#loader{
  position:fixed;inset:0;z-index:999;background:#000;
  display:grid;place-items:center;transition:opacity .7s var(--ease),visibility .7s;
}
#loader.done{opacity:0;visibility:hidden}
.loader-inner{width:min(760px,88vw);text-align:center}
.loader-bar{margin-top:2.6rem;height:2px;background:rgba(255,255,255,.1);position:relative;overflow:hidden}
.loader-bar i{position:absolute;inset:0 auto 0 0;width:0%;background:linear-gradient(90deg,var(--deep),var(--blue) 45%,var(--red));transition:width .18s linear}
.loader-meta{display:flex;justify-content:space-between;margin-top:.85rem;font-family:var(--display);
  font-size:.68rem;letter-spacing:.34em;color:var(--muted);text-transform:uppercase}
#flash{position:fixed;inset:0;z-index:1000;background:#fff;opacity:0;pointer-events:none}
#flash.go{animation:flash .62s ease-out forwards}
@keyframes flash{0%{opacity:0}12%{opacity:.82}100%{opacity:0}}

/* ============================================================
   SIGNATURE WORDMARK — laser ignition
   ============================================================ */
.wordmark{
  position:relative;display:inline-flex;align-items:baseline;gap:.14em;
  font-family:var(--display);font-weight:700;font-style:italic;
  letter-spacing:.005em;line-height:.92;
  transform:skewX(-3deg);overflow:hidden;padding:.1em .04em;
}
.wm{position:relative;display:inline-block}
.wm .base,.wm .lit{
  display:block;background:transparent;
  -webkit-text-stroke:1.6px rgba(200,212,228,.55);
  color:transparent;
}
.wm .lit{
  position:absolute;inset:0;opacity:0;transition:opacity .9s var(--ease);
  -webkit-text-stroke:1.6px rgba(255,255,255,.9);
}
.wm-tech .lit{
  color:transparent;
  background:linear-gradient(180deg,#ffffff 4%,#bfe6ff 38%,var(--blue) 72%,#0055c8 100%);
  -webkit-background-clip:text;background-clip:text;
  filter:drop-shadow(0 0 18px rgba(0,168,255,.55)) drop-shadow(0 0 46px rgba(0,102,255,.35));
}
.wm-26 .lit{
  color:transparent;
  background:linear-gradient(180deg,#fff2f2 4%,#ff8a8a 40%,var(--red) 78%,#a30d0d 100%);
  -webkit-background-clip:text;background-clip:text;
  filter:drop-shadow(0 0 18px rgba(255,45,45,.6)) drop-shadow(0 0 52px rgba(255,45,45,.3));
}
.wordmark.lit .lit{opacity:1}
.wordmark.lit .wm-26 .lit{animation:ignite 1.5s var(--ease)}
@keyframes ignite{0%{opacity:0}18%{opacity:1}100%{opacity:1}}
/* laser sweeps */
.laser{
  position:absolute;top:-12%;bottom:-12%;left:0;width:16%;pointer-events:none;z-index:3;opacity:0;
  will-change:transform,opacity;
}
.laser.blue{background:linear-gradient(90deg,transparent,rgba(0,168,255,.12) 30%,rgba(150,225,255,.92) 50%,rgba(0,168,255,.12) 70%,transparent)}
.laser.red{background:linear-gradient(90deg,transparent,rgba(255,45,45,.12) 30%,rgba(255,165,165,.92) 50%,rgba(255,45,45,.12) 70%,transparent)}
.wordmark.scan .laser.blue{animation:sweepR 1.35s var(--ease) forwards}
.wordmark.scan .laser.red{animation:sweepL 1.35s var(--ease) forwards}
@keyframes sweepR{
  0%{opacity:0;transform:translateX(-140%)}
  10%{opacity:1}
  70%{opacity:1;transform:translateX(330%)}
  100%{opacity:0;transform:translateX(330%)}
}
@keyframes sweepL{
  0%{opacity:0;transform:translateX(660%)}
  10%{opacity:1}
  70%{opacity:1;transform:translateX(200%)}
  100%{opacity:0;transform:translateX(200%)}
}

/* ============================================================
   TICKER
   ============================================================ */
#ticker{
  position:fixed;top:0;left:0;right:0;height:var(--tick-h);z-index:60;
  background:linear-gradient(90deg,#080b12,#05070c);
  border-bottom:1px solid rgba(255,45,45,.18);display:flex;align-items:center;overflow:hidden;
}
.tick-badge{
  flex:none;display:flex;align-items:center;gap:.5rem;height:100%;padding:0 clamp(.7rem,2vw,1.2rem);
  background:linear-gradient(120deg,var(--red),#8d0f0f);font-family:var(--display);font-weight:600;
  font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;
  clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%);
}
.dot{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
.tick-view{flex:1;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 94%,transparent)}
.tick-track{display:inline-flex;white-space:nowrap;will-change:transform;animation:marquee 42s linear infinite}
#ticker:hover .tick-track,#ticker:focus-within .tick-track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tick-item{
  font-family:var(--display);font-size:.72rem;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;color:#cfd6e2;padding:0 1.4rem;display:inline-flex;align-items:center;gap:1.4rem;
}
.tick-item::after{content:"";width:5px;height:5px;transform:rotate(45deg);background:var(--blue)}
.tick-item:nth-child(even)::after{background:var(--red)}

/* ============================================================
   NAV
   ============================================================ */
#nav{
  position:fixed;top:var(--tick-h);left:0;right:0;height:var(--nav-h);z-index:55;
  display:flex;align-items:center;transition:background .4s,border-color .4s,backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
#nav.solid{background:rgba(3,5,8,.78);backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.nav-in{width:min(1240px,94vw);margin-inline:auto;display:flex;align-items:center;gap:1.2rem}
.brand{display:flex;align-items:center;gap:.8rem;flex:none}
.brand img{height:46px;width:auto;max-width:170px;object-fit:contain}
/* the college crest, round, on its white ground */
#srcCsi,img[data-img="csi"]{border-radius:50%;
  box-shadow:0 0 0 1px rgba(255,255,255,.22),0 10px 34px -14px rgba(0,0,0,.9)}
.core-link img{border-radius:0;box-shadow:none;background:none}
.brand-txt{display:none;line-height:1.15}
.brand-txt b{font-family:var(--display);font-size:.82rem;font-weight:600;letter-spacing:.11em;display:block}
.brand-txt span{font-size:.66rem;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}
@media(min-width:900px){.brand-txt{display:block}}
.nav-links{display:none;margin-left:auto;align-items:center;gap:.2rem}
@media(min-width:1180px){.nav-links{display:flex}}
.nav-links a{
  position:relative;font-family:var(--display);font-size:.73rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);padding:.7rem .8rem;transition:color .3s;
}
.nav-links a::after{
  content:"";position:absolute;left:.8rem;right:.8rem;bottom:.35rem;height:1px;
  background:linear-gradient(90deg,var(--blue),var(--red));transform:scaleX(0);transform-origin:left;
  transition:transform .38s var(--ease);
}
.nav-links a:hover,.nav-links a.active{color:var(--white)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-cta{margin-left:auto}
.burger{
  margin-left:.55rem;width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:2px;background:rgba(255,255,255,.02);
}
@media(min-width:1180px){.burger{display:none}.nav-cta{margin-left:1rem}}
@media(max-width:640px){
  :root{--nav-h:64px;--tick-h:32px}
  .brand img{height:38px}
  .nav-cta{padding:.62rem .85rem;font-size:.62rem;letter-spacing:.12em}
  .burger{width:42px;height:42px}
  .tick-item{font-size:.66rem;letter-spacing:.16em;padding:0 1rem}
}
@media(max-width:360px){.nav-cta{display:none}}
.burger span{display:block;width:20px;height:1.5px;background:var(--white);transition:transform .35s var(--ease),opacity .2s}
.burger span+span{margin-top:5px}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* buttons */
.btn{
  --c:var(--blue);
  position:relative;display:inline-flex;align-items:center;gap:.7rem;justify-content:center;
  font-family:var(--display);font-size:.76rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;
  padding:.95rem 1.6rem;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);
  color:var(--white);background:color-mix(in srgb,var(--c) 9%,transparent);
  clip-path:polygon(11px 0,100% 0,100% calc(100% - 11px),calc(100% - 11px) 100%,0 100%,0 11px);
  transition:background .35s,box-shadow .35s,transform .35s var(--ease),border-color .35s;
}
.btn:hover{background:color-mix(in srgb,var(--c) 20%,transparent);box-shadow:0 0 28px -6px var(--c);transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn.red{--c:var(--red)}
.btn.ghost{--c:var(--muted);background:transparent}
.btn.ghost:hover{--c:var(--white);background:rgba(255,255,255,.05)}
.btn.sm{padding:.7rem 1.15rem;font-size:.68rem;letter-spacing:.16em}
.btn .ar{transition:transform .35s var(--ease)}
.btn:hover .ar{transform:translateX(5px)}

/* mobile menu */
#menu{
  position:fixed;inset:0;z-index:70;background:rgba(3,5,8,.97);backdrop-filter:blur(8px);
  display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav-h) + var(--tick-h)) 8vw 8vh;
  transform:translateY(-100%);transition:transform .55s var(--ease);visibility:hidden;
}
#menu.open{transform:translateY(0);visibility:visible}
#menu a.m-link{
  display:flex;align-items:baseline;gap:1rem;font-family:var(--display);font-weight:600;
  font-size:clamp(1.5rem,7vw,2.3rem);letter-spacing:.04em;text-transform:uppercase;
  padding:.5rem 0;border-bottom:1px solid var(--line);color:#e7ebf2;
  opacity:0;transform:translateY(18px);
}
#menu.open a.m-link{animation:mIn .5s var(--ease) forwards}
@keyframes mIn{to{opacity:1;transform:none}}
#menu a.m-link i{font-style:normal;font-size:.7rem;letter-spacing:.2em;color:var(--blue);opacity:.75}
.m-foot{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}

/* ============================================================
   HERO
   ============================================================ */
#home{padding:0;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 22%;transform:scale(1.06)}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 78% at 50% 32%,rgba(3,5,8,.16),rgba(3,5,8,.8) 64%,rgba(3,5,8,.92) 96%),
    linear-gradient(180deg,rgba(3,5,8,.9),rgba(3,5,8,.3) 34%,rgba(3,5,8,.82) 88%,rgba(3,5,8,.9));
}
/* a still light bloom, painted once — no canvas, nothing to accumulate */
.hero-veil{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(38% 26% at 22% 30%,rgba(0,168,255,.16),transparent 70%),
    radial-gradient(34% 24% at 80% 36%,rgba(255,45,45,.14),transparent 70%)}
.hero-in{position:relative;z-index:2;width:min(1240px,92vw);margin-inline:auto;
  padding:calc(var(--nav-h) + var(--tick-h) + 4vh) 0 6vh;text-align:center}
.hero-org{display:flex;flex-direction:column;align-items:center;gap:.85rem}
.marks{display:flex;align-items:center;gap:clamp(1rem,3vw,1.8rem)}
.marks img{height:clamp(54px,9vw,80px);width:auto;max-width:min(48vw,260px);object-fit:contain}
.mark-plate{background:rgba(245,247,250,.94);border-radius:50%;padding:5px;display:grid;place-items:center;
  box-shadow:0 0 0 1px rgba(255,255,255,.2),0 0 30px -8px rgba(0,168,255,.5)}
.iste-link{transition:transform .4s var(--ease),box-shadow .4s}
.iste-link:hover,.iste-link:focus-visible{transform:translateY(-2px);
  box-shadow:0 0 0 1px rgba(255,255,255,.35),0 0 34px -6px rgba(0,168,255,.85)}
.mark-plate img{height:clamp(46px,7.4vw,66px);border-radius:50%}
.marks .sep{width:1px;height:clamp(34px,6vw,52px);background:var(--line-strong)}
.hero-org p{margin:0;font-family:var(--display);font-size:clamp(.68rem,1.7vw,.82rem);
  letter-spacing:.24em;text-transform:uppercase;color:#c6cedb}
.hero-org p.sub{color:var(--muted);letter-spacing:.3em;font-size:clamp(.6rem,1.5vw,.7rem)}
.presents{display:flex;align-items:center;justify-content:center;gap:1rem;margin:clamp(1.6rem,4vw,2.6rem) 0 .9rem}
.presents span{font-family:var(--display);font-style:italic;font-size:.9rem;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.presents i{height:1px;width:clamp(30px,9vw,90px);background:linear-gradient(90deg,transparent,var(--gold))}
.presents i:last-child{background:linear-gradient(90deg,var(--gold),transparent)}
.national{
  display:inline-block;font-family:var(--display);font-weight:600;color:var(--gold);
  font-size:clamp(.72rem,2.2vw,1rem);letter-spacing:clamp(.3em,1.2vw,.6em);text-transform:uppercase;
  border:1px solid rgba(245,185,66,.42);padding:.5rem 1.2rem .5rem calc(1.2rem + .5em);
  clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%);background:rgba(245,185,66,.05);
}
.symposium{margin:.9rem 0 .2rem;font-family:var(--display);font-weight:600;
  font-size:clamp(1rem,3.6vw,1.85rem);letter-spacing:clamp(.12em,.8vw,.26em);text-transform:uppercase;color:#dbe3ee}
.hero-wordmark{display:flex;flex-wrap:wrap;justify-content:center;width:100%;
  font-size:clamp(2.55rem,11.4vw,9.6rem);margin:clamp(.2rem,1vw,.6rem) 0;row-gap:.04em}
.hero-date{
  display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem 1.1rem;
  font-family:var(--display);font-weight:500;letter-spacing:.24em;text-transform:uppercase;
  font-size:clamp(.72rem,2.1vw,.95rem);color:var(--white);
  border-block:1px solid var(--line);padding:.7rem 0;margin:.4rem 0 1.1rem;
}
.hero-date b{color:var(--blue);font-weight:600}
.hero-date .venue{color:var(--muted);font-weight:400;letter-spacing:.14em;text-transform:none;font-family:var(--body)}
.tagline{font-family:var(--display);font-style:italic;font-size:clamp(1rem,3vw,1.5rem);
  letter-spacing:.06em;color:#e8edf5;margin:0 0 2rem}
.tagline .b{color:var(--blue)}.tagline .r{color:var(--red)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center}
.scroll-hint{
  position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);z-index:2;
  font-family:var(--display);font-size:.6rem;letter-spacing:.34em;color:var(--muted);text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
}
.scroll-hint i{display:block;width:1px;height:44px;background:linear-gradient(180deg,var(--blue),transparent);animation:drop 2.4s infinite}
@keyframes drop{0%{transform:scaleY(.2);transform-origin:top;opacity:0}40%{opacity:1}100%{transform:scaleY(1);transform-origin:top;opacity:0}}
@media(max-width:640px){.scroll-hint{display:none}}

/* ============================================================
   COUNTDOWN
   ============================================================ */
#count{padding:clamp(48px,7vw,74px) 0;border-block:1px solid var(--line);background:
  linear-gradient(180deg,rgba(0,102,255,.06),transparent 60%),rgba(7,10,17,.62)}
.count-head{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:end;margin-bottom:2rem}
.clock{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.5rem,2vw,1.5rem)}
.unit{position:relative;text-align:center;padding:clamp(.9rem,2.6vw,1.6rem) .4rem;
  border:1px solid var(--line);background:rgba(255,255,255,.015);
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.unit::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--blue),transparent);opacity:.55}
.unit:nth-child(even)::before{background:linear-gradient(90deg,transparent,var(--red),transparent)}
.unit b{display:block;font-family:var(--display);font-weight:700;font-size:clamp(1.9rem,7.6vw,4rem);
  line-height:1;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.unit b.tick{animation:tickIn .45s var(--ease)}
@keyframes tickIn{0%{opacity:0;transform:translateY(-38%);filter:blur(5px)}100%{opacity:1;transform:none;filter:none}}
.unit span{display:block;margin-top:.55rem;font-family:var(--display);font-size:.6rem;
  letter-spacing:.3em;color:var(--muted);text-transform:uppercase}
.count-live{font-family:var(--display);font-size:.68rem;letter-spacing:.28em;color:var(--muted);text-transform:uppercase}

/* ============================================================
   ABOUT
   ============================================================ */
.about-grid{display:grid;gap:clamp(2rem,5vw,4.5rem);grid-template-columns:1fr}
@media(min-width:960px){.about-grid{grid-template-columns:1.05fr .95fr;align-items:center}}
.about-copy p{color:var(--muted);max-width:56ch}
.about-copy p strong{color:var(--white);font-weight:500}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:2.4rem}
.fact{background:rgba(3,5,8,.62);padding:1.3rem 1.2rem}
.fact b{display:block;font-family:var(--display);font-size:1.5rem;font-weight:700;letter-spacing:.02em}
.fact span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-family:var(--display)}
.fact:nth-child(1) b{color:var(--blue)}.fact:nth-child(4) b{color:var(--red)}
.about-vis{position:relative;aspect-ratio:1/1;display:grid;place-items:center}
.bats{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.bats .bat use{fill:#05070c}
.bats .bat{animation:fly1 13s linear infinite;
  filter:drop-shadow(0 0 5px rgba(150,200,255,.75)) drop-shadow(0 0 14px rgba(0,168,255,.35))}
.bats .b3,.bats .b5{filter:drop-shadow(0 0 5px rgba(255,160,160,.65)) drop-shadow(0 0 14px rgba(255,45,45,.3))}
.bats .b2{animation:fly2 16s linear infinite;animation-delay:-3s}
.bats .b3{animation:fly3 18s linear infinite;animation-delay:-7s}
.bats .b4{animation:fly4 15s linear infinite;animation-delay:-11s}
.bats .b5{animation:fly5 20s linear infinite;animation-delay:-5s}
.bats .wing{animation:flap .34s ease-in-out infinite alternate;transform-origin:center;transform-box:fill-box}
.bats .b2 .wing{animation-duration:.28s}
.bats .b3 .wing{animation-duration:.4s}
.bats .b4 .wing{animation-duration:.31s}
.bats .b5 .wing{animation-duration:.37s}
@keyframes flap{from{transform:scaleY(.4)}to{transform:scaleY(1)}}
@keyframes fly1{
  0%{transform:translate(-40px,330px) scale(1.4) rotate(-6deg);opacity:0}
  8%{opacity:1} 50%{transform:translate(190px,150px) scale(2) rotate(4deg)} 92%{opacity:1}
  100%{transform:translate(440px,-20px) scale(1.1) rotate(-4deg);opacity:0}
}
@keyframes fly2{
  0%{transform:translate(430px,270px) scale(1.1) rotate(6deg);opacity:0}
  10%{opacity:1} 55%{transform:translate(210px,215px) scale(1.7) rotate(-5deg)} 90%{opacity:1}
  100%{transform:translate(-50px,90px) scale(.9) rotate(3deg);opacity:0}
}
@keyframes fly3{
  0%{transform:translate(-40px,90px) scale(.9) rotate(4deg);opacity:0}
  12%{opacity:1} 48%{transform:translate(170px,300px) scale(1.5) rotate(-6deg)} 88%{opacity:1}
  100%{transform:translate(440px,330px) scale(1.2) rotate(5deg);opacity:0}
}
@keyframes fly4{
  0%{transform:translate(120px,-40px) scale(1) rotate(-3deg);opacity:0}
  14%{opacity:1} 52%{transform:translate(285px,190px) scale(1.6) rotate(6deg)} 86%{opacity:1}
  100%{transform:translate(70px,430px) scale(1.1) rotate(-5deg);opacity:0}
}
@keyframes fly5{
  0%{transform:translate(430px,40px) scale(.8) rotate(5deg);opacity:0}
  12%{opacity:1} 50%{transform:translate(120px,120px) scale(1.3) rotate(-4deg)} 88%{opacity:1}
  100%{transform:translate(-60px,260px) scale(1) rotate(4deg);opacity:0}
}
.about-vis .core{position:relative;width:44%;display:grid;place-items:center}
.about-vis .core img{width:100%;height:auto;filter:drop-shadow(0 0 34px rgba(0,168,255,.28));transition:transform .6s var(--ease),filter .5s}
.core-link .visit{display:none}
.core-link{display:block;width:100%;position:relative;border-radius:50%}
.core-link:hover img,.core-link:focus-visible img{transform:scale(1.05);
  filter:drop-shadow(0 0 44px rgba(0,168,255,.5)) drop-shadow(0 0 90px rgba(255,45,45,.16))}
.core-link .visit{
  position:absolute;left:50%;bottom:-3.1rem;transform:translate(-50%,8px);white-space:nowrap;
  font-family:var(--display);font-size:.66rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:var(--blue);opacity:0;transition:opacity .35s,transform .35s var(--ease);pointer-events:none;
}
.core-link .visit b{font-weight:600}
.core-link:hover .visit,.core-link:focus-visible .visit{opacity:1;transform:translate(-50%,0)}
@media(max-width:620px){.core-link .visit{opacity:1;transform:translate(-50%,0);bottom:-2.4rem}}

/* ============================================================
   ARENA / CATEGORY
   ============================================================ */
.cats{display:grid;gap:1.4rem;grid-template-columns:1fr;margin-top:3rem}
@media(min-width:860px){.cats{grid-template-columns:1fr 1fr}}
.cat{
  --c:var(--blue);position:relative;min-height:clamp(300px,42vw,430px);overflow:hidden;
  border:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(1.4rem,3vw,2.4rem);text-align:left;transition:border-color .45s,transform .5s var(--ease);
}
.cat.red{--c:var(--red)}
.cat:hover{border-color:color-mix(in srgb,var(--c) 60%,transparent);transform:translateY(-4px)}
.cat>.cat-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.cat-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.1s var(--ease);filter:saturate(1.05)}
.cat-bg .banner{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 34%}
.cat:hover .cat-bg img{transform:scale(1.12)}
.cat-bg::after{content:"";position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(3,5,8,.12),rgba(3,5,8,.5) 56%,rgba(3,5,8,.92)),
  radial-gradient(80% 60% at 50% 40%,color-mix(in srgb,var(--c) 10%,transparent),transparent 70%)}
.cat>*{position:relative;z-index:1}
.cat h3{font-size:clamp(1.7rem,4.4vw,2.5rem);font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.cat>.n{font-family:var(--display);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--c);margin-bottom:.7rem}
.cat p{color:var(--muted);margin:.7rem 0 1.3rem;max-width:44ch;font-size:.95rem}
.cat .go{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--display);font-size:.74rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--white)}
.cat .go i{width:34px;height:1px;background:var(--c);transition:width .4s var(--ease)}
.cat:hover .go i{width:56px}
.cat::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(120deg,transparent 40%,color-mix(in srgb,var(--c) 22%,transparent) 50%,transparent 60%);
  opacity:0;transition:opacity .5s}
.cat:hover::before{opacity:1}

/* the site stays sealed behind the hero until Explore events is used */
#rest{display:none}
#rest.open{display:block;animation:unseal .95s var(--ease)}
#siteFoot{display:none}
#siteFoot.open{display:block}
@keyframes unseal{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
body:not(.unsealed) .scroll-hint{display:none}
body:not(.unsealed) .hero-cta .btn:first-child{animation:cue 3.6s ease-in-out infinite}
@keyframes cue{0%,100%{box-shadow:0 0 0 0 rgba(0,168,255,0)}50%{box-shadow:0 0 30px -4px rgba(0,168,255,.5)}}

/* photographs sit over the generated artwork; if one fails the art stays */
.ev-img .art,.ev-img .photo,.cat-bg .art,.cat-bg .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ev-img .photo,.cat-bg .photo{z-index:1;filter:saturate(.92) contrast(1.05) brightness(.9);transition:transform 1s var(--ease)}
.ev-img::before{content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,color-mix(in srgb,var(--c) 18%,transparent),transparent 62%)}
.ev-img::after{z-index:2}
.ev-no{z-index:3}
.ev:hover .ev-img .photo,.cat:hover .cat-bg .photo{transform:scale(1.09)}

/* locked tracks — revealed by the Explore buttons */
.track{display:none}
.track.open{display:block;animation:trackIn .85s var(--ease)}
@keyframes trackIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.cats-hint{margin:1.6rem 0 0;font-family:var(--display);font-size:.7rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:.7rem}
.cats-hint::before{content:"";width:26px;height:1px;background:var(--line-strong)}
.cat.opened{border-color:color-mix(in srgb,var(--c) 55%,transparent)}
.cat.opened .go i{width:56px}

/* ============================================================
   COLLEGE
   ============================================================ */
#college{background:linear-gradient(180deg,transparent,rgba(0,102,255,.06) 46%,transparent)}
.campus-strip{display:grid;gap:1rem;grid-template-columns:1fr;margin:2.8rem 0 0}
@media(min-width:760px){.campus-strip{grid-template-columns:repeat(3,1fr)}}
.campus-strip figure{margin:0;position:relative;overflow:hidden;border:1px solid var(--line);
  aspect-ratio:3/2;transition:border-color .45s,transform .5s var(--ease)}
.campus-strip .art,.campus-strip .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.campus-strip .photo{z-index:1}
.campus-strip figcaption{z-index:2}
.campus-strip figure:hover{border-color:rgba(0,168,255,.45);transform:translateY(-4px)}
.campus-strip img{width:100%;object-fit:cover;transition:transform .9s var(--ease)}
.campus-strip figure:hover img{transform:scale(1.07)}
.campus-strip figcaption{position:absolute;left:0;right:0;bottom:0;padding:.9rem 1rem;
  background:linear-gradient(transparent,rgba(3,5,8,.92));font-family:var(--display);font-size:.64rem;
  font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:#cfd7e3}
.college-grid{display:grid;gap:clamp(2rem,5vw,3.4rem);grid-template-columns:1fr;margin-top:clamp(2.4rem,5vw,3.6rem)}
@media(min-width:960px){.college-grid{grid-template-columns:1.05fr .95fr;align-items:start}
  .college-grid.single{grid-template-columns:1fr;max-width:760px}}
.rating{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;margin-bottom:1.4rem}
.rating b{font-family:var(--display);font-weight:700;font-size:2.4rem;line-height:1}
.rating .stars{color:var(--gold);letter-spacing:.18em;font-size:1.05rem}
.rating span{font-family:var(--display);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.map-card{position:relative;display:block;overflow:hidden;border:1px solid var(--line-strong);background:#05080e;
  aspect-ratio:16/12;min-height:300px;transition:border-color .45s}
.map-card:hover{border-color:rgba(0,168,255,.5)}
.map-card .tiles{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
  filter:grayscale(.32) brightness(.6) contrast(1.14) saturate(.85);opacity:0;transition:opacity .8s var(--ease)}
.map-card .tiles.on{opacity:1}
.map-coords{position:absolute;left:1rem;bottom:4.6rem;z-index:3;font-family:var(--display);
  font-size:.6rem;letter-spacing:.16em;color:#bcd6ef;background:rgba(3,5,8,.62);
  border:1px solid rgba(0,168,255,.35);padding:.32rem .55rem}
.map-note{display:flex;flex-wrap:wrap;gap:.4rem 1rem;justify-content:space-between;align-items:baseline;
  margin-top:.9rem;font-family:var(--display);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.map-grid{position:absolute;inset:0;z-index:0;background:
  linear-gradient(rgba(0,168,255,.085) 1px,transparent 1px) 0 0/46px 46px,
  linear-gradient(90deg,rgba(0,168,255,.085) 1px,transparent 1px) 0 0/46px 46px,
  radial-gradient(62% 62% at 50% 44%,rgba(0,102,255,.24),transparent 72%)}
.map-card::before{content:"";position:absolute;z-index:0;left:-12%;right:-12%;top:60%;height:2px;
  background:linear-gradient(90deg,transparent,rgba(245,185,66,.55),transparent);transform:rotate(-7deg)}
.map-card::after{content:"";position:absolute;z-index:0;top:-12%;bottom:-12%;left:36%;width:2px;
  background:linear-gradient(180deg,transparent,rgba(0,168,255,.5),transparent);transform:rotate(9deg)}
.map-pin{position:absolute;left:50%;top:46%;transform:translate(-50%,-100%);color:var(--red);z-index:3}
.map-pin svg{filter:drop-shadow(0 0 14px rgba(255,45,45,.65))}
.map-pin em{position:absolute;left:50%;top:100%;width:72px;height:72px;margin:-36px 0 0 -36px;
  border:1px solid rgba(255,45,45,.55);border-radius:50%;animation:ping 2.8s ease-out infinite}
@keyframes ping{0%{transform:scale(.35);opacity:.9}80%{transform:scale(1.5);opacity:0}100%{opacity:0}}
.map-foot{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:1.1rem 1.2rem;
  background:linear-gradient(transparent,rgba(3,5,8,.94))}
.map-foot b{display:block;font-family:var(--display);font-size:.92rem;letter-spacing:.05em}
.map-foot span{font-size:.86rem;color:var(--muted)}
.map-open{position:absolute;top:1rem;right:1rem;z-index:3;font-family:var(--display);font-size:.62rem;
  font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);
  border:1px solid rgba(0,168,255,.42);padding:.34rem .6rem;background:rgba(3,5,8,.6)}

/* section banners for the two tracks */
.track-banner{--c:var(--blue);position:relative;margin:0 0 clamp(1.8rem,4vw,2.8rem);
  overflow:hidden;border:1px solid var(--line);background:#04060b}
#nontechnical .track-banner{--c:var(--red)}
.track-banner img{width:100%;height:100%;object-fit:cover;object-position:center 30%;
  display:block;transition:transform 1.4s var(--ease)}
.track-banner:hover img{transform:scale(1.03)}
.track-banner{aspect-ratio:16/9}
@media(min-width:700px){.track-banner{aspect-ratio:2.2/1}}
.track-banner::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:2;
  background:linear-gradient(90deg,transparent,var(--c),transparent)}
.track-banner::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  box-shadow:inset 0 0 120px -26px rgba(3,5,8,.95);
  background:linear-gradient(180deg,rgba(3,5,8,.28),transparent 32%,transparent 68%,rgba(3,5,8,.5))}
.track-banner i{position:absolute;z-index:2;width:22px;height:22px;border:1px solid var(--c);opacity:.8}
.track-banner i:nth-of-type(1){top:8px;left:8px;border-right:0;border-bottom:0}
.track-banner i:nth-of-type(2){bottom:8px;right:8px;border-left:0;border-top:0}

/* ============================================================
   EVENT CARDS
   ============================================================ */
.track-head{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:flex-end;justify-content:space-between}
.grid-ev{display:grid;gap:1.2rem;grid-template-columns:1fr;margin-top:2.6rem}
@media(min-width:620px){.grid-ev{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1080px){.grid-ev{grid-template-columns:repeat(4,1fr)}}
.ev{
  --c:var(--blue);position:relative;display:flex;flex-direction:column;text-align:left;
  border:1px solid var(--line);background:rgba(7,10,17,.72);overflow:hidden;
  transition:border-color .45s,transform .5s var(--ease),box-shadow .5s;
}
.ev.red{--c:var(--red)}
.ev:hover{border-color:color-mix(in srgb,var(--c) 55%,transparent);transform:translateY(-6px);
  box-shadow:0 24px 60px -34px color-mix(in srgb,var(--c) 75%,transparent)}
.ev-img{position:relative;aspect-ratio:16/11;overflow:hidden}
.ev-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .6s}
.ev:hover .ev-img img{transform:scale(1.09)}
.ev-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(7,10,17,.94))}
.ev-no{position:absolute;top:.85rem;left:.95rem;z-index:2;font-family:var(--display);font-weight:700;
  font-size:.78rem;letter-spacing:.14em;color:var(--c);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);
  padding:.18rem .5rem;background:rgba(3,5,8,.55)}
.ev-body{padding:1.15rem 1.2rem 1.4rem;display:flex;flex-direction:column;flex:1}
.ev-body h4{font-size:1.22rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.ev-sub{display:block;margin-top:.3rem;font-size:.7rem;font-weight:500;letter-spacing:.18em;color:var(--c)}
.h1-sub{display:block;margin-top:.5rem;font-family:var(--display);font-weight:500;
  font-size:clamp(.8rem,2.4vw,1.15rem);letter-spacing:.2em;color:var(--muted);text-transform:uppercase}
.ev-body p{color:var(--muted);font-size:.9rem;margin:.55rem 0 1.2rem;flex:1;line-height:1.55}
.ev-go{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--display);font-size:.68rem;
  font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--c)}
.ev-go .ar{transition:transform .4s var(--ease)}
.ev:hover .ev-go .ar{transform:translateX(6px)}
.ev::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--c),transparent);transition:transform .55s var(--ease)}
.ev:hover::after{transform:scaleX(1)}

/* ============================================================
   POSTER
   ============================================================ */
.poster-grid{display:grid;gap:clamp(2rem,5vw,4rem);grid-template-columns:1fr;align-items:center}
@media(min-width:960px){.poster-grid{grid-template-columns:.85fr 1.15fr}}
.poster-frame{position:relative;justify-self:center;max-width:520px;width:100%;cursor:zoom-in;
  border:1px solid var(--line-strong);padding:10px;background:linear-gradient(160deg,rgba(0,168,255,.07),rgba(255,45,45,.07))}
.poster-frame img{width:100%;height:auto}
.poster-frame::after{content:"";position:absolute;inset:10px;pointer-events:none;
  box-shadow:inset 0 0 60px -20px rgba(0,168,255,.4);transition:box-shadow .5s}
.poster-frame:hover::after{box-shadow:inset 0 0 70px -14px rgba(255,45,45,.45)}
.corner{position:absolute;width:20px;height:20px;border:1px solid var(--blue)}
.corner.tl{top:-1px;left:-1px;border-right:0;border-bottom:0}
.corner.tr{top:-1px;right:-1px;border-left:0;border-bottom:0;border-color:var(--red)}
.corner.bl{bottom:-1px;left:-1px;border-right:0;border-top:0;border-color:var(--red)}
.corner.br{bottom:-1px;right:-1px;border-left:0;border-top:0}
.poster-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.detail-list{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid var(--line)}
.detail-list li{display:flex;flex-wrap:wrap;gap:.3rem 1.4rem;justify-content:space-between;
  padding:.85rem 0;border-bottom:1px solid var(--line)}
.detail-list dt,.detail-list .k{font-family:var(--display);font-size:.68rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--muted)}
.detail-list .v{font-size:.98rem;color:var(--white);text-align:right}

/* lightbox */
#lightbox{position:fixed;inset:0;z-index:120;background:rgba(2,3,6,.97);display:none;flex-direction:column}
#lightbox.open{display:flex}
.lb-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem clamp(.8rem,3vw,1.6rem);
  border-bottom:1px solid var(--line)}
.lb-title{font-family:var(--display);font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.lb-tools{display:flex;gap:.5rem}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);
  background:rgba(255,255,255,.03);transition:background .3s,border-color .3s}
.icon-btn:hover{background:rgba(255,255,255,.09);border-color:var(--line-strong)}
.lb-stage{flex:1;overflow:auto;display:block;text-align:center;padding:1rem;touch-action:pinch-zoom;-webkit-overflow-scrolling:touch}
.lb-stage img{display:inline-block;width:min(96vw,760px);height:auto;transition:width .28s var(--ease)}

/* ============================================================
   REGISTER / QR
   ============================================================ */
#register{background:
  radial-gradient(70% 60% at 78% 40%,rgba(255,45,45,.12),transparent 62%),
  radial-gradient(60% 60% at 18% 60%,rgba(0,102,255,.12),transparent 62%),rgba(3,5,8,.35)}
.reg-grid{display:grid;gap:clamp(2.2rem,5vw,4rem);grid-template-columns:1fr;align-items:center}
@media(min-width:900px){.reg-grid{grid-template-columns:1.1fr .9fr}}
.qr-wrap{position:relative;justify-self:center;width:min(320px,78vw);aspect-ratio:1/1;display:grid;place-items:center;padding:26px}
.qr-wrap img{position:relative;z-index:2;width:100%;background:#fff;padding:8px;border-radius:4px}
.qr-frame{position:absolute;inset:0;pointer-events:none}
.qr-frame i{position:absolute;width:34px;height:34px;border:2px solid var(--blue)}
.qr-frame i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0}
.qr-frame i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-color:var(--red)}
.qr-frame i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;border-color:var(--red)}
.qr-frame i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0}
.qr-scan{position:absolute;left:4px;right:4px;height:2px;top:26px;z-index:1;
  background:linear-gradient(90deg,transparent,var(--blue),transparent);
  box-shadow:0 0 18px 3px rgba(0,168,255,.5);animation:scanY 3.4s ease-in-out infinite;pointer-events:none}
@keyframes scanY{0%,100%{transform:translateY(0);opacity:0}10%{opacity:1}50%{transform:translateY(calc(min(320px,78vw) - 56px));opacity:1}90%{opacity:1}}
.qr-cap{text-align:center;margin-top:1.1rem;font-family:var(--display);font-size:.7rem;
  letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}

/* modal */
#modal{position:fixed;inset:0;z-index:130;display:none;place-items:center;background:rgba(2,3,6,.86);backdrop-filter:blur(6px);padding:1.2rem}
#modal.open{display:grid}
.modal-card{width:min(520px,100%);border:1px solid var(--line-strong);background:linear-gradient(160deg,#080b12,#04060b);
  padding:clamp(1.6rem,4vw,2.4rem);position:relative;
  clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px)}
.modal-card h3{font-size:1.4rem;letter-spacing:.06em;text-transform:uppercase}
.modal-card p{color:var(--muted);font-size:.96rem}
.modal-card .mrow{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}

/* ============================================================
   CONTACT + LEADERSHIP
   ============================================================ */
.contact-grid{display:grid;gap:1.2rem;grid-template-columns:1fr;margin-top:2.6rem}
@media(min-width:840px){.contact-grid{grid-template-columns:1fr 1fr}}
.cbox{--c:var(--blue);border:1px solid var(--line);background:rgba(7,10,17,.72);padding:clamp(1.3rem,3vw,2rem)}
.cbox.red{--c:var(--red)}
.cbox h3{font-size:1.05rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c);font-weight:600}
.cbox ul{list-style:none;margin:1.4rem 0 0;padding:0}
.cbox li+li{border-top:1px solid var(--line)}
.cbox a.person{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem .2rem;
  transition:padding-left .35s var(--ease),background .35s}
.cbox a.person:hover{padding-left:.7rem;background:color-mix(in srgb,var(--c) 7%,transparent)}
.cbox .nm{font-family:var(--display);font-weight:500;letter-spacing:.05em;font-size:1rem}
.cbox .ph{display:inline-flex;align-items:center;gap:.5rem;font-variant-numeric:tabular-nums;
  color:var(--muted);font-size:.95rem;white-space:nowrap;transition:color .3s}
.cbox a.person:hover .ph{color:var(--c)}
.lead-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);
  grid-template-columns:1fr;margin-top:2.6rem}
@media(min-width:640px){.lead-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1020px){.lead-grid{grid-template-columns:repeat(4,1fr)}}
.ldr{background:rgba(3,5,8,.68);padding:1.5rem 1.3rem;position:relative}
.ldr b{display:block;font-family:var(--display);font-weight:600;font-size:1.02rem;letter-spacing:.03em;line-height:1.35}
.ldr span{display:block;margin-top:.5rem;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);font-family:var(--display)}
.ldr::before{content:"";position:absolute;top:0;left:0;width:26px;height:2px;background:var(--gold);opacity:.7}

/* ============================================================
   FOOTER
   ============================================================ */
footer{border-top:1px solid var(--line);padding:clamp(3rem,6vw,4.5rem) 0 2rem}
.f-grid{display:grid;gap:2.4rem;grid-template-columns:1fr}
@media(min-width:860px){.f-grid{grid-template-columns:1.3fr .8fr 1fr}}
.f-brand{display:flex;gap:1.1rem;align-items:flex-start}
.f-brand img{height:78px;width:auto;max-width:210px;object-fit:contain}
.f-brand b{font-family:var(--display);font-size:1rem;letter-spacing:.08em;display:block}
.f-brand p{margin:.5rem 0 0;color:var(--muted);font-size:.92rem;line-height:1.6}
.f-title{font-family:var(--display);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:1.1rem}
.f-links{display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1rem}
.f-links a{font-family:var(--display);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:#c3cad6;transition:color .3s}
.f-links a:hover{color:var(--blue)}
.f-iste{display:flex;gap:1rem;align-items:center}
.f-iste .mark-plate img{height:54px}
.f-iste p{margin:0;color:var(--muted);font-size:.9rem}
.f-word{font-size:clamp(1.6rem,5vw,2.4rem);margin:2.6rem 0 1.4rem}
.f-bot{display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;justify-content:space-between;align-items:center;
  border-top:1px solid var(--line);padding-top:1.4rem;color:var(--muted);font-size:.8rem}
.f-bot a{color:var(--blue)}

/* ============================================================
   EVENT DETAIL PAGE
   ============================================================ */
#page{display:none;padding-top:calc(var(--nav-h) + var(--tick-h))}
body.on-page #page{display:block}
body.on-page #site{display:none}
.ev-hero{position:relative;min-height:clamp(340px,48vw,520px);display:flex;align-items:flex-end;overflow:hidden;
  border-bottom:1px solid var(--line)}
.ev-hero img.bgi{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ev-hero img.bgi.photo{z-index:1;filter:saturate(.92) brightness(.88)}
.ev-hero::after{z-index:2}
.ev-hero .wrap{z-index:3}
.ev-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,5,8,.55),rgba(3,5,8,.9) 74%,rgba(3,5,8,.94))}
.ev-hero .wrap{position:relative;z-index:1;padding-block:clamp(2rem,6vw,4rem)}
.ev-hero h1{font-size:clamp(2.2rem,8vw,4.6rem);font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin:.6rem 0 .8rem}
.badge{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--display);font-size:.68rem;
  letter-spacing:.24em;text-transform:uppercase;border:1px solid;padding:.32rem .8rem}
.pg-grid{display:grid;gap:clamp(2rem,5vw,3.6rem);grid-template-columns:1fr;padding-block:clamp(2.6rem,6vw,4.4rem)}
@media(min-width:940px){.pg-grid{grid-template-columns:1.25fr .75fr}}
.pg-body h2{font-size:1.5rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.9rem}
.pg-body p{color:var(--muted)}
.rules{margin:1.2rem 0 0;padding:0;list-style:none;counter-reset:r}
.rules li{position:relative;counter-increment:r;padding:.7rem 0 .7rem 2.6rem;
  border-bottom:1px solid var(--line);color:var(--muted);font-size:.97rem;line-height:1.55}
.rules li:last-child{border-bottom:0}
.rules li::before{content:counter(r,decimal-leading-zero);position:absolute;left:0;top:.72rem;
  font-family:var(--display);font-size:.72rem;font-weight:600;letter-spacing:.1em;color:var(--blue)}
#page .ev-hero+.wrap .rules li::before{color:inherit}
.pg-body .rules li::before{color:var(--rc,var(--blue))}
.notice{border:1px solid var(--line);border-left:2px solid var(--gold);background:rgba(245,185,66,.05);
  padding:1.1rem 1.3rem;color:#e2e7ef;font-size:.96rem;margin:1.6rem 0}
.side-card{border:1px solid var(--line);background:rgba(7,10,17,.74);padding:1.5rem}
.side-card .detail-list{margin-top:0;border-top:0}
.side-card .detail-list li:last-child{border-bottom:0}
.pg-nav{display:flex;flex-wrap:wrap;gap:.8rem;padding-bottom:clamp(3rem,7vw,5rem)}

/* reveal */
img[data-img]:not([src]){visibility:hidden}
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .rv{opacity:1;transform:none}
  .hero-veil{display:none}
}
