:root{
  --void:#0A0705; --ember:#FF7A18; --flame:#C63A0F;
  --blaze:#FFC24A; --ash:#7A6B66; --bone:#FFFFFF;
  --rule:rgba(255,255,255,.12);
  --pad:clamp(1.5rem,6vw,6rem);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--void);color:var(--bone);
  font-family:'Archivo',system-ui,sans-serif;overflow-x:hidden;
  -webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
.cond{font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:-.02em;line-height:.9}
.wide{font-variation-settings:'wdth' 125,'wght' 800;text-transform:uppercase;letter-spacing:.02em}
.label{font-variation-settings:'wdth' 100,'wght' 600;font-size:.68rem;
  letter-spacing:.34em;text-transform:uppercase;color:var(--ash)}
.cta{display:inline-flex;align-items:center;gap:.7rem;background:var(--ember);color:#000;
  text-decoration:none;font-variation-settings:'wdth' 100,'wght' 800;text-transform:uppercase;
  font-size:.85rem;letter-spacing:.14em;padding:1.05rem 2.1rem;transition:background .25s,transform .25s}
.cta:hover,.cta:focus-visible{background:var(--blaze);transform:translateY(-2px)}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px}
section{padding:14vh var(--pad)}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  flex-wrap:wrap;border-bottom:1px solid var(--rule);padding-bottom:1rem;margin-bottom:3rem}
.sec-head h2{font-family:'Anton',sans-serif;text-transform:uppercase;
  font-size:clamp(1.8rem,5vw,3.4rem);overflow-wrap:anywhere}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#hero{position:relative;min-height:100svh;display:grid;place-items:center;
  padding:12vh var(--pad) 8vh;overflow:hidden;text-align:center}
.hero-art{position:absolute;inset:0;background:url('../assets/keyart-2400.webp') center 30%/cover no-repeat;transform:scale(1.1)}
.flame-layer{position:absolute;inset:0;width:100%;height:100%;
  background-position:center;background-size:cover;background-repeat:no-repeat;pointer-events:none}
.flame-layer.flame-1{background-image:url('../assets/flames/flame-1.webp');opacity:.55}
.flame-layer.flame-2{background-image:url('../assets/flames/flame-2.webp');opacity:.7}
.flame-layer.flame-3{background-image:url('../assets/flames/flame-3.webp');opacity:.85}
.hero-veil{position:absolute;inset:0;background:
  radial-gradient(120% 80% at 50% 42%, transparent 0%, rgba(10,7,5,.55) 55%, var(--void) 88%),
  linear-gradient(to bottom, rgba(10,7,5,.7) 0%, transparent 32%, transparent 58%, var(--void) 97%)}
#embers{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
@media (prefers-reduced-motion: reduce){ #embers,#j-embers{display:none} }
.hero-inner{position:relative;z-index:2;width:100%;max-width:1200px}
#presents{display:flex;flex-direction:column;align-items:center;gap:.7rem}
#presents img{width:min(230px,56vw);height:auto;opacity:.92}
#presents a:hover img,#presents a:focus-visible img{opacity:1}
.closer-presenter{display:flex;flex-direction:column;align-items:center;gap:.7rem;
  margin-top:3.5rem;text-decoration:none;opacity:.8;transition:opacity .25s}
.closer-presenter:hover,.closer-presenter:focus-visible{opacity:1}
.closer-presenter img{width:min(200px,52vw);height:auto}
.sec-head .label a{color:inherit}
.soc-row{display:flex;gap:1rem;margin-top:1.4rem}
.soc{display:grid;place-items:center;width:44px;height:44px;color:var(--bone);
  border:1px solid rgba(255,122,24,.5);transition:color .25s,border-color .25s,transform .25s}
.soc svg{width:22px;height:22px}
.soc:hover,.soc:focus-visible{color:var(--ember);border-color:var(--ember);transform:translateY(-2px)}
#logo-lockup{position:relative;margin:1.6rem auto 0;width:min(88vw,900px);color:var(--bone)}
#logo-lockup svg{width:100%;height:auto}
.logo-hot{position:absolute;inset:0;color:var(--blaze);
  --sweep:-40%; --glow:0;
  filter:drop-shadow(0 0 calc(var(--glow) * 26px) var(--ember));
  -webkit-mask-image:linear-gradient(66deg,
    transparent calc(var(--sweep) - 22%), #000 var(--sweep), transparent calc(var(--sweep) + 22%));
          mask-image:linear-gradient(66deg,
    transparent calc(var(--sweep) - 22%), #000 var(--sweep), transparent calc(var(--sweep) + 22%));
  -webkit-mask-size:100% 100%; mask-size:100% 100%;
  pointer-events:none}
.logo-hot path,.logo-hot polygon{fill:var(--blaze) !important}
@media (prefers-reduced-motion: reduce){ .logo-hot{display:none} }
#hero-facts{margin:2.6rem auto 0;display:flex;gap:clamp(1rem,4vw,3.5rem);justify-content:center;
  flex-wrap:wrap;border-top:1px solid var(--rule);padding-top:1.4rem;max-width:900px}
#hero-facts dd{font-size:clamp(.95rem,2vw,1.4rem);margin-top:.3rem}
#countdown{display:flex;gap:clamp(.8rem,2.5vw,2rem);justify-content:center;margin:.8rem 0 2rem;
  font-variant-numeric:tabular-nums}
#countdown span{display:flex;flex-direction:column;align-items:center}
#countdown b{font-family:'Anton',sans-serif;font-size:clamp(1.6rem,4.5vw,3rem);color:var(--ember);font-weight:400}
#countdown i{font-style:normal;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ash)}
#countdown-label{margin-top:2rem}
#stickybar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;
  align-items:center;justify-content:space-between;gap:1rem;
  padding:.7rem var(--pad);background:rgba(10,7,5,.86);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);
  transform:translateY(-100%)}
#stickybar[hidden]{display:none}
#stickybar .cta{padding:.6rem 1.2rem;font-size:.7rem}
#stickybar span{font-size:clamp(.75rem,1.6vw,1rem)}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
}
#event-photos{padding:5rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.ep-head{text-align:center;margin-bottom:1.6rem}
.ep-track-wrap{position:relative;overflow:hidden}
.ep-track-wrap::before,.ep-track-wrap::after{content:'';position:absolute;top:0;bottom:0;width:8vw;z-index:2;pointer-events:none}
.ep-track-wrap::before{left:0;background:linear-gradient(90deg,var(--void),transparent)}
.ep-track-wrap::after{right:0;background:linear-gradient(-90deg,var(--void),transparent)}
.ep-track{display:flex;gap:1rem;width:max-content;animation:ep-scroll 34s linear infinite}
.ep-track:hover{animation-play-state:paused}
.ep-track img{height:280px;width:auto;border-radius:2px;box-shadow:0 12px 30px rgba(0,0,0,.5)}
@keyframes ep-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (max-width:640px){.ep-track img{height:180px}}
#judging{position:relative;height:100svh;padding:0;overflow:hidden}
.j-stage{position:absolute;inset:0}
.j-pose{position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;object-position:center bottom;opacity:0}
.j-pose:not([data-pose]){display:none}
.j-glow{position:absolute;inset:0;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse 58% 52% at 50% 60%,
    rgba(255,122,24,.62) 0%, rgba(198,58,15,.34) 45%, transparent 78%)}
.j-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.j-veil{position:absolute;inset:0;
  background:linear-gradient(90deg,var(--void) 6%,rgba(10,7,5,.35) 48%,rgba(10,7,5,.85) 100%)}
#j-embers{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.j-copy{position:absolute;inset:0;display:grid;place-items:center;z-index:3}
.j-beat{position:absolute;left:var(--pad);max-width:min(560px,80vw);opacity:0;text-align:left}
.j-beat .label{margin-bottom:.6rem}
.j-amt,.j-total{font-size:clamp(2.6rem,7vw,6rem);line-height:.85;
  background:linear-gradient(180deg,var(--blaze),var(--flame));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-variant-numeric:tabular-nums}
.j-finale .j-total{font-size:clamp(3.4rem,10vw,9rem)}
.j-note{margin-top:.5rem;font-size:.75rem;color:var(--ember);letter-spacing:.1em;text-transform:uppercase}
.j-feeds{margin-top:1rem;color:#CFC4BF;max-width:38ch;line-height:1.6}
@media (max-width:820px){
  section{padding:9vh var(--pad)}
  #judging{height:auto;min-height:100svh}
  #hero-facts{gap:1.4rem}
  #stickybar span{display:none}
}
@media (prefers-reduced-motion: reduce){
  #judging{height:auto;overflow:visible;padding:10vh var(--pad);
    display:flex;flex-direction:column;gap:4rem}
  .j-stage,.j-copy{display:contents}
  .j-veil{display:none}
  .j-canvas{display:none}
  .j-glow{display:none}
  .j-pose[data-pose]{position:static;opacity:1;width:min(420px,80vw);height:auto;margin-inline:auto}
  .j-beat{position:static;opacity:1;left:auto;max-width:none}
  .j-pose[data-pose="male-1"]{order:1}   .j-beat[data-beat="0"]{order:2}
  .j-pose[data-pose="male-2"]{order:3}   .j-beat[data-beat="1"]{order:4}
  .j-pose[data-pose="female-1"]{order:5} .j-beat[data-beat="2"]{order:6}
  .j-pose[data-pose="female-2"]{order:7} .j-beat[data-beat="3"]{order:8}
  .j-pose[data-pose="finale"]{order:9}   .j-beat[data-beat="4"]{order:10}
}
/* Reduced-motion's stacked mobile layout gets a little extra breathing room
   on narrow screens. Scoped to the combo (not plain max-width:820px) so the
   non-reduced pinned timeline keeps owning .j-beat opacity/position on mobile
   — see Task 7 known-issue note. */
@media (max-width:820px) and (prefers-reduced-motion: reduce){
  .j-beat{padding:3rem 0}
}
.lu-list{list-style:none}
.lu-list li{display:flex;gap:1rem;align-items:baseline;padding:1rem .2rem;
  border-bottom:1px solid rgba(255,255,255,.08)}
.ro-list{max-width:640px}
.ro-list li{padding:.6rem .2rem}
.ro-meeting{margin:0 0 1.6rem;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:#CFC4BF}
.ro-meeting b{font-family:'Anton',sans-serif;font-weight:400;color:var(--blaze);font-size:1rem;letter-spacing:0}
.lu-list li.ro-break{display:flex;align-items:center;gap:1rem;border-bottom:none;
  padding:1.2rem .2rem;font-family:'Anton',sans-serif;text-transform:uppercase;
  letter-spacing:.12em;font-size:.95rem;color:var(--blaze)}
.ro-break::before,.ro-break::after{content:"";flex:1;height:2px;
  background:linear-gradient(90deg,transparent,var(--flame),transparent)}
.lu-list .n{font-family:'Anton',sans-serif;color:var(--flame);min-width:2rem;font-size:.9rem}
.lu-list .t{font-variation-settings:'wdth' 100,'wght' 600}
.lu-list .g{color:#CFC4BF;font-size:.78rem;margin-left:auto;text-align:right}
.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:4rem;align-items:center}
.calc-grid .label+h2{margin-top:1rem}
.calc-copy{color:#CFC4BF;margin-top:1rem;line-height:1.7;max-width:44ch}
.calc-box{border:1px solid rgba(255,122,24,.4);padding:2.4rem}
.calc-box input{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.25);
  color:var(--bone);font-family:'Anton',sans-serif;font-size:2.4rem;padding:.4rem 0}
.calc-box input:focus{outline:none;border-color:var(--ember)}
.calc-r{display:block;font-size:clamp(2rem,6vw,3.6rem);color:var(--ember);margin:.3rem 0 .6rem}
.timeline{list-style:none;border-left:1px solid var(--rule);margin-left:.5rem}
.timeline li{position:relative;padding:0 0 2.6rem 2rem}
.timeline li::before{content:'';position:absolute;left:-5px;top:.45rem;width:9px;height:9px;
  background:var(--ember);border-radius:50%}
.timeline .w{font-family:'Anton',sans-serif;font-size:1.2rem;text-transform:uppercase}
.timeline .tm{color:var(--ember);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin-top:.2rem}
.timeline .d{color:#CFC4BF;margin-top:.6rem;line-height:1.7;max-width:60ch}
.timeline li.past{opacity:.45}
.timeline li.past::before{background:var(--ash)}
.cost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:1px;background:var(--rule)}
.cost{background:var(--void);padding:2.2rem 1.4rem}
.cost .p{font-family:'Anton',sans-serif;font-size:2.4rem;color:var(--ember)}
.cost .l{margin-top:.4rem;font-variation-settings:'wdth' 100,'wght' 700}
.cost .nt{margin-top:.3rem;color:#CFC4BF;font-size:.8rem}
.partner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:2rem}
.partner{border:1px solid var(--rule);padding:2rem}
.partner h3{font-family:'Anton',sans-serif;font-size:1.8rem;text-transform:uppercase}
.partner .role{color:var(--ember);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;margin-top:.3rem}
.partner .contact{margin-top:.3rem;color:#CFC4BF;font-size:.85rem}
.partner table{width:100%;margin:1.4rem 0;border-collapse:collapse}
.partner td{padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:.9rem}
.partner td:last-child{text-align:right;font-family:'Anton',sans-serif;color:var(--ember)}
.partner ul{list-style:none}
.partner li{color:#CFC4BF;font-size:.82rem;line-height:1.7;padding-left:1rem;position:relative}
.partner li::before{content:'—';position:absolute;left:0;color:var(--flame)}
.social-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:2.5rem}
.social-body p{color:#CFC4BF;line-height:1.7}
.tags{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}
.tags span{border:1px solid rgba(255,122,24,.5);color:var(--ember);padding:.4rem .9rem;font-size:.75rem}
.winners{list-style:none;margin-top:1rem}
.winners li{display:flex;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
.winners b{font-family:'Anton',sans-serif;color:var(--ash);font-weight:400}

.sponsor-title{border:1px solid var(--ember);padding:3rem 2rem;text-align:center;margin-bottom:1px;
  background:linear-gradient(180deg,rgba(255,122,24,.12),transparent)}
.sponsor-title img{margin:1rem auto 0;max-height:90px;width:auto}
.sponsor-grid{background:var(--rule)}
.sp-marquee{overflow:hidden}
.sp-track{display:flex;width:max-content}
.sp-dup{display:contents}
.sp{background:var(--void);min-height:150px;display:grid;place-items:center;padding:1.6rem;position:relative}
.sp-track .sp{flex:0 0 190px;margin-right:1px}
.sp img{max-height:64px;width:auto;transition:opacity .3s}
.sp .colour{position:absolute;opacity:0}
.sp:hover .colour,.sp:focus-within .colour{opacity:1}
.sp:hover .white,.sp:focus-within .white{opacity:0}

@media (prefers-reduced-motion: reduce){
  .sp-marquee{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:1px;overflow:visible}
  .sp-track{display:contents}
  .sp-dup{display:none}
  .sp-track .sp{margin-right:0}
}
.sp.pending{border:1px dashed rgba(255,122,24,.5);color:var(--ember);
  font-family:'Anton',sans-serif;text-transform:uppercase;font-size:1.1rem;text-align:center}
.sp.pending small{display:block;color:var(--ash);font-family:'Archivo',sans-serif;
  font-size:.62rem;letter-spacing:.2em;margin-top:.5rem}

.venue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:2.5rem;align-items:start}
.venue-grid iframe{width:100%;aspect-ratio:4/3;border:1px solid var(--rule);filter:grayscale(1) invert(.92) hue-rotate(180deg)}
.venue-grid .addr{font-family:'Anton',sans-serif;font-size:1.4rem;text-transform:uppercase;line-height:1.3}
.venue-grid a{color:var(--ember);display:inline-block;padding:.55rem 0}
.faq-list details{border-bottom:1px solid var(--rule)}
.faq-list summary{cursor:pointer;padding:1.4rem 0;font-variation-settings:'wdth' 100,'wght' 700;
  font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';color:var(--ember);font-family:'Anton',sans-serif}
.faq-list details[open] summary::after{content:'–'}
.faq-list p{padding:0 0 1.6rem;color:#CFC4BF;line-height:1.7;max-width:70ch}
#closer{text-align:center;position:relative;overflow:hidden;padding:20vh var(--pad)}
#closer .glow{position:absolute;left:50%;top:58%;width:120vw;height:60vh;transform:translate(-50%,-50%);
  background:radial-gradient(50% 50% at 50% 50%,rgba(255,122,24,.28),transparent 70%);pointer-events:none}
#closer h2{font-size:clamp(2.2rem,9vw,7rem);position:relative;margin-bottom:2.5rem}
#foot{padding:4rem var(--pad);border-top:1px solid var(--rule);display:flex;justify-content:space-between;
  gap:2rem;flex-wrap:wrap;color:#CFC4BF;font-size:.8rem}
#foot a{color:#CFC4BF;display:inline-block;padding:.55rem 0}
#foot .credit{flex-basis:100%;color:var(--ash);font-size:.72rem}
#foot .credit a{color:var(--ash);text-decoration:underline}
label[for="height"],#calc-band{color:#CFC4BF}
