/* High-tech polish layer: shared across all public pages */

/* Faint gold blueprint grid behind every page */
body{
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(255,196,46,0.07), transparent 70%),
    linear-gradient(rgba(255,196,46,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,196,46,0.035) 1px, transparent 1px);
  background-size:100% 100%, 64px 64px, 64px 64px;
  background-attachment:fixed;
}

/* Header: glass + animated gold scan line + scroll progress */
header{position:sticky;}
header::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,196,46,0.9), transparent);
  background-size:40% 100%;
  background-repeat:no-repeat;
  animation:scan-line 6s linear infinite;
  pointer-events:none;
}
@keyframes scan-line{
  0%{background-position:-40% 0;}
  100%{background-position:140% 0;}
}
.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  height:2px;
  width:100%;
  transform-origin:0 50%;
  transform:scaleX(var(--scroll, 0));
  background:linear-gradient(90deg, #8a6418, #FFC42E, #FFF1C2);
  box-shadow:0 0 10px rgba(255,196,46,0.7);
  z-index:100;
  pointer-events:none;
}

/* Eyebrows get a live status dot */
.eyebrow{color:var(--ruby);}
.section-head .eyebrow::before,
.page-banner .eyebrow::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-right:10px;
  vertical-align:middle;
  border-radius:50%;
  background:#FFC42E;
  box-shadow:0 0 8px #FFC42E;
  animation:pulse-dot 2.4s ease-in-out infinite;
}
@keyframes pulse-dot{
  0%,100%{opacity:1;transform:scale(1);}
  50%{opacity:0.35;transform:scale(0.7);}
}

/* Glowing gradient underline on headings */
.section-head h2::after,
.page-banner h1::after{
  height:2px;
  background:linear-gradient(90deg, #FFF1C2, #FFC42E 40%, transparent);
  box-shadow:0 0 12px rgba(255,196,46,0.6);
}
.section-head.center h2::after,
.page-banner h1::after{background:linear-gradient(90deg, transparent, #FFC42E, transparent);width:96px;}

/* Page banners: grid glow */
.page-banner{
  background:
    radial-gradient(ellipse 60% 70% at 50% 0%, rgba(255,196,46,0.12), transparent 70%),
    linear-gradient(rgba(255,196,46,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,196,46,0.05) 1px, transparent 1px),
    transparent;
  background-size:100% 100%, 32px 32px, 32px 32px;
  border-bottom:1px solid transparent;
  border-image:linear-gradient(90deg, transparent, rgba(255,196,46,0.6), transparent) 1;
}
.page-banner h1{text-shadow:0 0 30px rgba(255,196,46,0.25);}

/* Countdown: HUD cells with glowing digits */
.countdown{
  background:linear-gradient(90deg, rgba(255,196,46,0.05), rgba(255,196,46,0.4), rgba(255,196,46,0.05));
  border:none;
  padding:1px;
  gap:1px;
}
.countdown > div{
  position:relative;
  background:linear-gradient(180deg, #121212, #050505);
}
.countdown > div::before{
  content:"";
  position:absolute;
  top:0;
  left:20%;
  right:20%;
  height:1px;
  background:linear-gradient(90deg, transparent, #FFC42E, transparent);
}
.countdown .num{
  color:#FFE08A;
  text-shadow:0 0 14px rgba(255,196,46,0.55);
}
.countdown .lbl{color:rgba(255,196,46,0.65);}
.countdown .num.tick{animation:digit-tick .45s ease-out;}
@keyframes digit-tick{
  0%{opacity:0.25;transform:translateY(-4px);}
  100%{opacity:1;transform:none;}
}

/* Stats: metallic numbers */
.stats{
  position:relative;
  border-top:1px solid transparent;
  border-bottom:1px solid transparent;
  border-image:linear-gradient(90deg, transparent, rgba(255,196,46,0.5), transparent) 1;
  background:linear-gradient(180deg, rgba(255,196,46,0.04), transparent);
}
.stat .num{
  background:linear-gradient(180deg, #FFF1C2, #FFC42E 55%, #b37f1f);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 12px rgba(255,196,46,0.3));
}

/* Cards: HUD corner brackets + cursor spotlight + lift */
.track-card,
.cat-pill,
.rule-item,
.venue-facts,
.judge-feature-photo-frame,
.regchamp-cta,
.letter,
.table-wrap{
  position:relative;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.track-card::after,
.venue-facts::after,
.judge-feature-photo-frame::after,
.regchamp-cta::after,
.letter::after,
.table-wrap::after{
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  --c:#FFC42E;
  --l:16px;
  background:
    linear-gradient(var(--c), var(--c)) top left / var(--l) 2px,
    linear-gradient(var(--c), var(--c)) top left / 2px var(--l),
    linear-gradient(var(--c), var(--c)) top right / var(--l) 2px,
    linear-gradient(var(--c), var(--c)) top right / 2px var(--l),
    linear-gradient(var(--c), var(--c)) bottom left / var(--l) 2px,
    linear-gradient(var(--c), var(--c)) bottom left / 2px var(--l),
    linear-gradient(var(--c), var(--c)) bottom right / var(--l) 2px,
    linear-gradient(var(--c), var(--c)) bottom right / 2px var(--l);
  background-repeat:no-repeat;
  opacity:0.55;
  transition:opacity .3s ease;
}
.track-card:hover::after,
.venue-facts:hover::after,
.judge-feature-photo-frame:hover::after,
.regchamp-cta:hover::after,
.table-wrap:hover::after{opacity:1;}

.track-card,
.cat-pill,
.rule-item{
  background-image:radial-gradient(260px circle at var(--mx, -300px) var(--my, -300px), rgba(255,196,46,0.10), transparent 70%);
}
.track-card:hover,
.cat-pill:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 40px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,196,46,0.35), 0 0 30px rgba(255,196,46,0.08);
}
.cat-pill{background-color:rgba(14,14,14,0.85);}
.rule-item{background-color:#050505;}
.rule-item:hover{background-color:#0b0b0b;}
.rule-item .no{text-shadow:0 0 10px rgba(255,196,46,0.6);}

.judge-feature-photo-frame{
  background:linear-gradient(180deg, #121212, #070707);
}
.judge-feature-photo-frame:hover{box-shadow:0 0 40px rgba(255,196,46,0.12);}
.judge-feature-photo{transition:filter .5s ease;}
.judge-feature-photo-frame:hover .judge-feature-photo{filter:grayscale(1) contrast(1.12) brightness(1.06);}

/* Accordion: glowing active rail */
.accordion-item{
  position:relative;
  transition:background .3s ease;
  background-image:radial-gradient(400px circle at var(--mx, -400px) var(--my, -400px), rgba(255,196,46,0.07), transparent 70%);
}
.accordion-item::before{
  content:"";
  position:absolute;
  left:-14px;
  top:0;
  bottom:0;
  width:2px;
  background:linear-gradient(180deg, transparent, #FFC42E, transparent);
  box-shadow:0 0 10px rgba(255,196,46,0.7);
  opacity:0;
  transform:scaleY(0.3);
  transition:opacity .35s ease, transform .35s ease;
}
.accordion-item.open::before,
.accordion-item:hover::before{opacity:1;transform:scaleY(1);}
.accordion-trigger:hover{color:#FFE08A;}
.accordion-icon{transition:transform .25s ease, background .25s ease, box-shadow .25s ease;}
.accordion-item.open .accordion-icon{box-shadow:0 0 14px rgba(255,196,46,0.6);}

/* Buttons: light sweep */
.btn-primary,
.side-nav-register a,
.reg-form .submit-row button{
  position:relative;
  overflow:hidden;
}
.floating-register,
.floating-tickets{overflow:hidden;}
.btn-primary::after,
.floating-register::after,
.floating-tickets::after,
.side-nav-register a::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-60%;
  width:40%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,0.55), transparent);
  transform:skewX(-20deg);
  animation:btn-sweep 4.5s ease-in-out infinite;
  pointer-events:none;
}
.floating-tickets::after{background:linear-gradient(100deg, transparent, rgba(255,196,46,0.35), transparent);animation-delay:1.2s;}
@keyframes btn-sweep{
  0%,70%{left:-60%;}
  100%{left:130%;}
}
.btn-primary:hover,
.floating-register:hover{box-shadow:0 0 28px rgba(255,196,46,0.45);}

/* Footer: glowing top edge */
footer{
  position:relative;
  border-top:1px solid transparent;
  border-image:linear-gradient(90deg, transparent, rgba(255,196,46,0.6), transparent) 1;
  background:linear-gradient(180deg, rgba(255,196,46,0.035), #000 60%);
}
footer a{transition:color .2s ease, text-shadow .2s ease;}
footer a:hover{color:#FFC42E;text-shadow:0 0 10px rgba(255,196,46,0.5);}

/* Scroll reveal (only applied when JS runs) */
.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--d, 0s);
}
.reveal.in{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  header::after,
  .eyebrow::before,
  .btn-primary::after,
  .floating-register::after,
  .floating-tickets::after,
  .side-nav-register a::after{animation:none;}
  .reveal{opacity:1;transform:none;transition:none;}
}

@media (max-width:640px){
  .accordion-item::before{left:-8px;}
}

/* Breathing room between the last content block and the footer */
section.wrap:last-of-type{padding-bottom:80px;}
@media (max-width:640px){
  section.wrap:last-of-type{padding-bottom:56px;}
}
