@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,500&family=Courier+Prime:wght@400;700&display=swap');

:root{
  --bg:#050505;
  --panel:#0f0f0f;
  --line:rgba(255,255,255,0.16);
  --line-soft:rgba(255,255,255,0.08);
  --white:#f4f3ee;
  --grey:#a9a8a2;
  --grey-dim:#6f6e6a;
  --accent:#d8d7d0;
  --max:760px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--white);
  font-family:'Cormorant Garamond', serif;
  font-size:19px;
  line-height:1.6;
}

a{color:inherit;}
img,svg{max-width:100%;}

/* ---------- film strip divider ---------- */
.filmstrip{
  height:14px;
  background:
    repeating-linear-gradient(90deg,
      var(--line) 0, var(--line) 8px,
      transparent 8px, transparent 22px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

/* ---------- top nav ---------- */
.topnav{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:22px 6vw;
  border-bottom:1px solid var(--line);
}
.topnav .mark{
  font-family:'Bebas Neue', sans-serif;
  letter-spacing:0.08em;
  font-size:1.7rem;
  text-decoration:none;
  color:var(--white);
}
.topnav nav a{
  margin-left:28px;
  text-decoration:none;
  font-size:1rem;
  color:var(--grey);
  border-bottom:1px solid transparent;
  padding-bottom:2px;
}
.topnav nav a:hover, .topnav nav a[aria-current="page"]{
  border-bottom-color:var(--white);
  color:var(--white);
}

/* ---------- hero ---------- */
.hero{
  padding:50px 6vw 76px;
  text-align:center;
  max-width:920px;
  margin:0 auto;
}
.hero .emblem{width:340px;margin:0 auto 8px;}
.hero h1{
  font-family:'Bebas Neue', sans-serif;
  font-size:clamp(3.6rem,11vw,7rem);
  margin:0;
  font-weight:400;
  letter-spacing:0.06em;
  color:var(--white);
}
.hero .tagline{
  font-style:italic;
  color:var(--grey);
  font-size:1.4rem;
  margin:6px 0 4px;
}
.hero .dates{
  color:var(--grey-dim);
  font-family:'Courier Prime', monospace;
  font-size:0.95rem;
  margin-bottom:36px;
}
.hero .ctas{
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
}
.btn{
  display:inline-block;
  padding:13px 26px;
  border-radius:0;
  text-decoration:none;
  font-family:'Courier Prime', monospace;
  font-size:0.9rem;
  border:1px solid var(--white);
  transition:background 0.15s ease, color 0.15s ease;
}
.btn.solid{background:var(--white);color:#050505;}
.btn.solid:hover{background:var(--grey);}
.btn.ghost{color:var(--white);}
.btn.ghost:hover{background:rgba(255,255,255,0.1);}

/* ---------- sections on dark ---------- */
main.dark{max-width:var(--max);margin:0 auto;padding:0 6vw 90px;}
main.dark h2{
  font-family:'Bebas Neue', sans-serif;
  font-size:2.3rem;
  font-weight:400;
  letter-spacing:0.04em;
  color:var(--white);
  border-top:1px solid var(--line);
  padding-top:44px;
  margin-top:44px;
  margin-bottom:6px;
}
main.dark section:first-of-type h2{border-top:none;padding-top:0;margin-top:0;}
main.dark p{color:var(--grey);}
blockquote{
  font-style:italic;
  color:var(--white);
  border-left:2px solid var(--white);
  margin:20px 0;
  padding:4px 0 4px 20px;
}
blockquote cite{
  display:block;
  font-style:normal;
  font-family:'Courier Prime', monospace;
  font-size:0.85rem;
  color:var(--grey-dim);
  margin-top:8px;
}

.categories-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:14px;}
.categories-list li{
  border:1px solid var(--line);
  padding:16px 18px;
  color:var(--white);
}
.categories-list strong{color:var(--white);font-weight:600;}

.jury-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:20px;}
.jury-card h3{margin:0 0 2px;color:var(--white);font-weight:600;font-size:1.3rem;}
.jury-card .role{font-family:'Courier Prime',monospace;font-size:0.82rem;color:var(--grey);margin-bottom:8px;}
.jury-card p{margin:0;font-size:0.98rem;color:var(--grey);}

footer{
  text-align:center;
  padding:40px 6vw 60px;
  color:var(--grey-dim);
  font-family:'Courier Prime', monospace;
  font-size:0.78rem;
  border-top:1px solid var(--line);
}
footer a{color:var(--white);text-decoration:none;}

/* ---------- regulations pages (screenplay style) ---------- */
body.doc{background:var(--panel);color:var(--white);}
body.doc .topnav{border-bottom:1px solid var(--line);}
body.doc .topnav .mark{color:var(--white);}
body.doc .topnav nav a{color:var(--grey);}
body.doc .topnav nav a:hover, body.doc .topnav nav a[aria-current="page"]{color:var(--white);border-bottom-color:var(--white);}

.doc-wrap{max-width:var(--max);margin:0 auto;padding:20px 6vw 100px;position:relative;font-family:'Courier Prime', monospace;}
.doc-head{text-align:center;margin-bottom:10px;position:relative;}
.doc-head h1{font-family:'Bebas Neue', sans-serif;font-size:clamp(2.2rem,5vw,3rem);letter-spacing:0.04em;margin:8px 0 4px;font-weight:400;color:var(--white);}
.doc-head .part{font-family:'Courier Prime',monospace;font-size:0.85rem;letter-spacing:0.08em;color:var(--grey);}
.doc-head .subhead{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--grey);margin-bottom:0;}

.stamp{
  position:absolute;
  top:-6px;
  right:0;
  width:104px;
  height:104px;
  border:3px solid var(--white);
  border-radius:50%;
  transform:rotate(-14deg);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--white);
  font-family:'Courier Prime',monospace;
  font-size:0.62rem;
  letter-spacing:0.06em;
  line-height:1.25;
  opacity:0.85;
}

.preamble{
  font-size:0.92rem;
  color:var(--grey);
  border:1px dashed var(--line);
  padding:16px 18px;
  margin:28px 0 10px;
}

.article{
  padding:22px 0;
  border-top:1px solid var(--line-soft);
  font-family:'Cormorant Garamond', serif;
}
.article:last-child{border-bottom:1px solid var(--line-soft);}
.article .num{
  font-family:'Courier Prime',monospace;
  font-size:0.8rem;
  color:var(--grey);
  display:block;
  margin-bottom:4px;
}
.article h3{margin:0 0 6px;font-size:1.35rem;font-weight:600;color:var(--white);}
.article p{margin:0;color:var(--grey);font-size:1.05rem;}

.doc-nav{
  display:flex;
  justify-content:space-between;
  margin-top:40px;
  font-size:0.9rem;
}
.doc-nav a{text-decoration:none;color:var(--white);}
.doc-nav a:hover{text-decoration:underline;}

.signoff{
  margin-top:50px;
  padding-top:20px;
  border-top:1px dashed var(--line);
  font-size:0.82rem;
  color:var(--grey-dim);
}

@media (max-width:520px){
  .stamp{position:static;transform:rotate(-8deg);margin:14px auto 0;}
  .doc-head h1{margin-top:0;}
  .hero .emblem{width:260px;}
}
