*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:17px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 clamp(20px,5vw,64px);}

.eyebrow{
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.14em;
  text-transform:uppercase; font-weight:500; opacity:.85;
}

/* ===== HERO ===== */
.hero{
  position:relative; background:
    radial-gradient(circle at 18% 20%, rgba(248,193,25,.10), transparent 45%),
    linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%);
  color:#fff; padding:clamp(64px,10vw,120px) 0 clamp(56px,8vw,96px);
  overflow:hidden;
}
.hero::before{
  content:''; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:
    linear-gradient(60deg, rgba(255,255,255,.035) 25%, transparent 25.5%, transparent 74.5%, rgba(255,255,255,.035) 75%),
    linear-gradient(-60deg, rgba(255,255,255,.035) 25%, transparent 25.5%, transparent 74.5%, rgba(255,255,255,.035) 75%);
  background-size: 84px 146px;
}
.hero-top{
  position:relative; display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap; margin-bottom:clamp(28px,5vw,48px);
}
.hero-social{display:flex; gap:10px;}
.hero-social a{
  width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); color:#fff;
  transition:background .2s ease, color .2s ease;
}
.hero-social svg{width:18px; height:18px;}
.hero-social a:hover{background:var(--gold); color:var(--navy-deep); border-color:var(--gold);}
.hero-social a:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.hero-inner{position:relative; display:flex; align-items:center; gap:clamp(28px,5vw,64px); flex-wrap:wrap;}
.hero-logo{width:clamp(150px,18vw,220px); height:auto; flex:none; filter:drop-shadow(0 18px 40px rgba(0,0,0,.35));}
.hero-text{flex:1; min-width:280px;}
.hero-eyebrow{color:var(--gold);}
.hero h1{
  font-family:var(--font-display); font-weight:700; text-transform:uppercase;
  font-size:clamp(2.6rem,7vw,5.2rem); line-height:.94; margin:0 0 6px; letter-spacing:.005em;
  text-wrap:balance;
}
.hero h1 span{color:var(--gold);}
.hero .tagline{
  font-family:var(--font-display); font-weight:400; font-style:italic;
  font-size:clamp(1.1rem,2.2vw,1.5rem); color:#DCE6F5; margin:6px 0 22px;
  text-transform:none;
}
.hero-meta{
  display:flex; gap:22px; flex-wrap:wrap; font-family:var(--font-mono);
  font-size:.86rem; color:#BFD0EC;
}
.hero-meta strong{color:#fff; font-weight:500;}
.hero-scroll{
  position:absolute; bottom:22px; left:50%; transform:translateX(-50%);
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.18em;
  color:rgba(255,255,255,.55); text-transform:uppercase;
}

/* ===== INTRO ===== */
.intro{padding:clamp(52px,8vw,84px) 0 clamp(20px,4vw,40px);}
.intro .wrap{max-width:760px;}
.intro p{font-size:clamp(1.05rem,1.6vw,1.28rem); line-height:1.65; color:#2b3a52;}
.intro p b{color:var(--navy);}

/* ===== CHAPTERS ===== */
.chapters{padding-top:clamp(24px,5vw,48px); padding-bottom:clamp(40px,7vw,80px);}
.chapter{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px);
  align-items:center; padding:clamp(40px,6vw,72px) 0;
  border-top:1px solid #E7ECF4;
  opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;
}
.chapter.is-visible{opacity:1; transform:translateY(0);}
.chapter:nth-child(even) .chapter-media{order:2;}
.chapter-tag{
  display:inline-flex; align-items:center; justify-content:center;
  width:104px; height:90px; flex:none;
  clip-path:polygon(25% 3%, 75% 3%, 100% 50%, 75% 97%, 25% 97%, 0% 50%);
  color:#fff; font-family:var(--font-mono); font-size:.72rem; text-align:center;
  line-height:1.35; letter-spacing:.03em; padding:4px 8px;
}
.chapter-head{display:flex; align-items:center; gap:16px; margin-bottom:16px;}
.chapter h2{
  font-family:var(--font-display); text-transform:uppercase; font-weight:700;
  font-size:clamp(1.8rem,3.4vw,2.6rem); margin:0; line-height:1.02; color:var(--navy);
  text-wrap:balance;
}
.chapter .day{font-family:var(--font-mono); font-size:.78rem; letter-spacing:.1em; opacity:.6; text-transform:uppercase; margin-bottom:4px; display:block;}
.chapter p.recap{color:#2b3a52; font-size:1rem; line-height:1.6; margin:0 0 16px;}
.chapter blockquote{
  margin:0 0 18px; font-style:italic; color:#3c4a63; font-size:1.02rem;
  padding-left:16px; border-left:3px solid var(--tag-color, var(--gold));
}
.chapter .winner{
  display:inline-flex; align-items:baseline; gap:8px; font-family:var(--font-mono);
  font-size:.86rem; background:#F3F6FB; border:1px solid #E1E8F2; border-radius:3px;
  padding:8px 12px; color:var(--navy); margin-bottom:18px;
}
.chapter .winner b{font-size:1rem; letter-spacing:.01em;}
.chapter-gallery{display:grid; grid-template-columns:repeat(3, 1fr); gap:8px;}
.chapter-gallery a{aspect-ratio:1; overflow:hidden; border-radius:2px; display:block;}
.chapter-gallery img{width:100%; height:100%; object-fit:cover; transition:transform .3s ease;}
.chapter-gallery a:hover img{transform:scale(1.08);}
.chapter-gallery a:focus-visible{outline:2px solid var(--navy); outline-offset:2px;}
.chapter-media{position:relative; display:flex; justify-content:center; flex-direction:column; gap:12px;}
.chapter-media .frame{position:relative; width:100%; max-width:340px; margin:0 auto;}
.chapter-media .frame::before{
  content:''; position:absolute; inset:14px -14px -14px 14px;
  border:2px solid var(--tag-color, var(--gold)); border-radius:2px; z-index:0;
}
.chapter-media .frame img{
  position:relative; z-index:1; width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:2px;
  box-shadow:0 20px 45px -18px rgba(20,35,57,.35); display:block;
}
.chapter-media .frame a{display:block; max-width:340px; margin:0 auto;}
.chapter-media .cap{
  font-family:var(--font-mono); font-size:.68rem;
  color:#8195b3; text-align:center; letter-spacing:.03em;
}

/* ===== SPONSORS ===== */
.sponsors{background:#F5F7FB; padding:clamp(56px,8vw,96px) 0;}
.sponsors-head{text-align:center; max-width:640px; margin:0 auto 48px;}
.sponsors-head .eyebrow{justify-content:center; display:flex; color:var(--navy);}
.sponsors-head h2{
  font-family:var(--font-display); text-transform:uppercase; font-weight:700;
  font-size:clamp(1.8rem,3.4vw,2.4rem); color:var(--navy); margin:10px 0 12px;
  text-wrap:balance;
}
.sponsors-head p{color:#51617c; margin:0;}
.sponsors-note{
  text-align:center; max-width:520px; margin:36px auto 0; color:#7387a6;
  font-size:.9rem; line-height:1.6;
}

.sponsor-band{
  position:relative; max-width:1100px; margin:0 auto; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.sponsor-track{
  display:flex; align-items:stretch; gap:clamp(14px,2vw,20px); width:max-content;
  animation:scroll-band 42s linear infinite;
}
.sponsor-band:hover .sponsor-track{animation-play-state:paused;}
.sponsor-track a{
  display:flex; align-items:center; justify-content:center;
  width:172px; height:96px; flex:none; background:#fff; border:1px solid #E7ECF4; border-radius:2px;
  padding:18px;
}
.sponsor-track img{
  max-height:100%; max-width:100%; width:auto; height:auto; object-fit:contain;
  filter:grayscale(1) opacity(.6); transition:filter .25s ease, transform .25s ease;
}
.sponsor-track a:hover img{filter:grayscale(0) opacity(1); transform:scale(1.06);}
.sponsor-track a:focus-visible{outline:2px solid var(--navy); outline-offset:2px;}
@keyframes scroll-band{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ===== THANKS ===== */
.thanks{background:var(--navy-deep); color:#fff; padding:clamp(48px,7vw,76px) 0;}
.thanks .wrap{max-width:720px; text-align:center;}
.thanks .eyebrow{color:var(--gold); justify-content:center; display:flex; margin-bottom:14px;}
.thanks h2{
  font-family:var(--font-display); text-transform:uppercase; font-weight:700;
  font-size:clamp(1.6rem,3vw,2.1rem); margin:0 0 16px; text-wrap:balance;
}
.thanks p{color:#C9D6EC; font-size:1.05rem; line-height:1.7; margin:0;}

/* ===== LIGHTBOX ===== */
.lightbox{
  position:fixed; inset:0; background:rgba(10,18,32,.94); z-index:100;
  display:flex; align-items:center; justify-content:center; padding:56px 16px;
}
.lightbox[hidden]{display:none;}
.lightbox-img{max-width:min(88vw,900px); max-height:80vh; object-fit:contain; border-radius:2px; box-shadow:0 30px 70px -20px rgba(0,0,0,.6);}
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25);
  color:#fff; width:44px; height:44px; border-radius:50%; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; line-height:1;
  transition:background .2s ease;
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{background:rgba(255,255,255,.18);}
.lightbox-close:focus-visible, .lightbox-prev:focus-visible, .lightbox-next:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.lightbox-close{top:20px; right:20px;}
.lightbox-prev{left:20px; top:50%; transform:translateY(-50%);}
.lightbox-next{right:20px; top:50%; transform:translateY(-50%);}
.lightbox-caption{
  position:absolute; bottom:20px; left:0; right:0; text-align:center;
  font-family:var(--font-mono); font-size:.8rem; color:rgba(255,255,255,.7);
}
@media (max-width:640px){
  .lightbox-prev{left:8px;} .lightbox-next{right:8px;}
}

/* ===== FOOTER ===== */
footer{background:var(--navy-deep); color:#B9C9E4; padding:44px 0 28px; font-size:.9rem;}
footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px;}
footer a{text-decoration:none; opacity:.85;}
footer a:hover{opacity:1; text-decoration:underline;}
footer .legal{display:flex; gap:18px; font-family:var(--font-mono); font-size:.78rem;}
.footer-credit{
  margin-top:20px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12);
  font-family:var(--font-mono); font-size:.72rem; color:#7C90B5;
}
.footer-credit a{color:#7C90B5;}
.footer-credit a:hover{color:#B9C9E4;}

@media (max-width:760px){
  .chapter{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion: reduce){
  .chapter{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
  .sponsor-track{animation:none; flex-wrap:wrap; justify-content:center;}
  .sponsor-band{-webkit-mask-image:none; mask-image:none;}
}
