:root {
  --black: #050505;
  --paper: #f4f0e8;
  --paper-2: #e8e0d2;
  --gold: #b89444;
  --red: #8a1f1f;
  --muted: #67645e;
  --line: #191919;
  --hairline: rgba(5, 5, 5, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, Arial, sans-serif;
  background: var(--paper);
  color: var(--black);
  line-height: 1.4;
  font-feature-settings: "ss01", "ss02", "cv11";
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { display: block; max-width: 100%; }
::selection { background: var(--black); color: var(--paper); }

.site-shell { min-height: 100vh; background: var(--paper); }
.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 28px;
  min-height: 74px;
  padding: 0 clamp(18px, 4vw, 54px);
  background: rgba(244, 240, 232, .92);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.brand, .nav-action {
  font-size: .82rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -.01em;
  text-decoration: none;
}
.nav-links { display: flex; gap: 22px; }
.nav-links a {
  font-size: .78rem;
  font-weight: 800;
  text-decoration: none;
  text-transform: uppercase;
}
.nav-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.nav-action {
  color: var(--paper);
  background: var(--black);
  padding: 12px 16px;
}

.case-hero {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr) 300px;
  gap: clamp(18px, 4vw, 58px);
  align-items: end;
  min-height: calc(100vh - 74px);
  padding: clamp(60px, 9vw, 130px) clamp(18px, 4vw, 54px) clamp(28px, 5vw, 72px);
  border-bottom: 1px solid var(--line);
}
.case-meta, .case-focus {
  font-size: .82rem;
  font-weight: 800;
  text-transform: uppercase;
}
.case-meta p {
  margin: 0 0 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}
.label,
.case-focus span {
  display: block;
  margin-bottom: 18px;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 900;
  text-transform: uppercase;
}
.case-title h1 {
  max-width: 1120px;
  margin: 0;
  font-size: clamp(3.5rem, 9vw, 9.5rem);
  font-weight: 800;
  line-height: .92;
  letter-spacing: -.035em;
}
.case-focus ul {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--line);
}
.case-focus li {
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}

.hero-media {
  position: relative;
  margin: 0;
  padding: clamp(18px, 4vw, 54px);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}
.hero-media img {
  width: 100%;
  min-height: 58vw;
  max-height: 860px;
  object-fit: cover;
  filter: contrast(1.04) saturate(.92);
}
.video-still {
  overflow: hidden;
  background: var(--black);
}
.video-still img {
  will-change: transform;
  animation: slowCinema 22s ease-in-out infinite alternate;
}
.media-caption {
  position: absolute;
  left: clamp(28px, 6vw, 82px);
  bottom: clamp(28px, 6vw, 82px);
  max-width: 480px;
  padding: 16px 20px;
  display: grid;
  gap: 8px;
  background: rgba(244, 240, 232, .94);
  color: var(--black);
  font-size: .98rem;
  line-height: 1.45;
  backdrop-filter: blur(8px);
}
.caption-counter {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}

.editorial-pair {
  background: var(--paper);
}
.editorial-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(22px, 4vw, 56px);
}
.editorial-grid figure {
  margin: 0;
  display: grid;
  gap: 14px;
}
.editorial-grid .video-still {
  height: clamp(360px, 46vw, 580px);
}
.editorial-grid .video-still img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.editorial-grid figcaption {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: baseline;
  font-size: .96rem;
  line-height: 1.45;
  color: var(--muted);
}
.editorial-grid figcaption span:first-child {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--black);
}

.section-grid {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: clamp(22px, 5vw, 74px);
  padding: clamp(58px, 9vw, 124px) clamp(18px, 4vw, 54px);
  border-bottom: 1px solid var(--line);
}
.section-grid.compact { padding-bottom: 46px; border-bottom: 0; }
.section-label {
  font-size: .88rem;
  font-weight: 900;
  text-transform: uppercase;
}
.section-main h2 {
  margin: 0;
  font-size: clamp(2.4rem, 5.6vw, 5.6rem);
  font-weight: 800;
  line-height: .98;
  letter-spacing: -.03em;
}
.section-main > p,
.split-copy p,
.two-up p,
.recognition-copy p,
.sponsor-jury p,
.nomination p,
.accolades p,
.lede {
  color: var(--muted);
  font-size: clamp(1.05rem, 1.4vw, 1.22rem);
  line-height: 1.55;
}
.lede {
  margin-top: 26px;
  max-width: 640px;
}
.pull-quote {
  margin-top: 28px;
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
  line-height: 1.35;
  color: var(--paper);
  max-width: 540px;
}
.split-copy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 56px);
  margin-top: 42px;
  max-width: 1040px;
}
.split-copy > div { display: grid; gap: 12px; }
.split-copy .label { margin-bottom: 0; }
.two-up {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, .62fr);
  gap: clamp(28px, 5vw, 70px);
}
.copy-stack { display: grid; gap: 18px; }
.inline-media {
  margin: 18px 0 0;
  border: 1px solid var(--line);
  display: grid;
  gap: 0;
}
.inline-media img {
  width: 100%;
  min-height: 320px;
  object-fit: cover;
}
.inline-media figcaption {
  padding: 14px 18px;
  border-top: 1px solid var(--line);
  font-size: .92rem;
  color: var(--muted);
  background: var(--paper);
}

.facts-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
}
.facts-row div {
  min-height: 220px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid var(--line);
}
.facts-row span,
.category-list span,
.process-list span {
  color: var(--red);
  font-size: .82rem;
  font-weight: 900;
}
.facts-row strong {
  display: block;
  font-size: clamp(1.5rem, 2.4vw, 2.6rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.025em;
}
.facts-row p { color: var(--muted); margin: 0; }

.categories { border-bottom: 1px solid var(--line); }
.category-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 0 clamp(18px, 4vw, 54px) clamp(58px, 8vw, 110px);
}
.category-list article {
  position: relative;
  min-height: 470px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border: 1px solid var(--line);
  border-right: 0;
  background: var(--paper);
  transition: background .35s ease;
}
.category-list article::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 1px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .35s cubic-bezier(.22,.61,.36,1);
}
.category-list article:last-child { border-right: 1px solid var(--line); }
.category-list article:hover { background: var(--paper-2); }
.category-list article:hover::before,
.category-list .featured::before { transform: scaleY(1); }
.category-list .featured { background: var(--paper-2); }
.category-list h3 {
  margin: 30px 0 12px;
  font-size: clamp(1.7rem, 2.6vw, 2.6rem);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -.025em;
}
.category-list p { color: var(--muted); }
.category-list details { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--hairline); }
.category-list summary {
  cursor: pointer;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.media-text {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
  gap: clamp(22px, 5vw, 70px);
  padding: clamp(22px, 5vw, 70px);
  border-bottom: 1px solid var(--line);
  background: var(--black);
  color: var(--paper);
}
.recognition-media { margin: 0; display: grid; gap: 14px; }
.recognition-media .video-still { height: clamp(420px, 52vw, 640px); }
.recognition-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.recognition-media figcaption {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: baseline;
  font-size: .94rem;
  color: rgba(244,240,232,.7);
}
.recognition-media figcaption span:first-child { color: var(--paper); }
.recognition-copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 18px 0;
}
.recognition-copy h2 {
  margin: 0;
  font-size: clamp(2.4rem, 4.4vw, 4.4rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.03em;
}
.recognition-copy .lede { color: rgba(244, 240, 232, .82); }

.process { background: var(--paper-2); }
.process-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 54px;
  border-top: 1px solid var(--line);
}
.process-media-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(18px, 4vw, 42px);
  margin-top: 44px;
}
.process-media-grid figure { margin: 0; display: grid; gap: 12px; }
.process-media-grid .video-still { height: clamp(320px, 40vw, 480px); }
.process-media-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.process-media-grid figcaption {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: baseline;
  font-size: .94rem;
  color: var(--muted);
}
.process-media-grid figcaption span:first-child {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--black);
}
.process-list div {
  min-height: 230px;
  padding: 24px;
  border-right: 1px solid var(--line);
}
.process-list strong {
  display: block;
  margin: 28px 0 10px;
  font-size: clamp(1.2rem, 1.8vw, 1.8rem);
  font-weight: 800;
  letter-spacing: -.02em;
}
.process-list p { color: var(--muted); margin: 0; }

.sponsor-jury {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
}
.sponsor-jury > div {
  min-height: 540px;
  padding: clamp(38px, 7vw, 90px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-right: 1px solid var(--line);
}
.sponsor-jury h2 {
  margin: 0;
  font-size: clamp(2rem, 3.6vw, 3.6rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.025em;
}
.sponsor-jury a {
  margin-top: 24px;
  align-self: flex-start;
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
  transition: color .2s ease, border-color .2s ease;
}
.sponsor-jury a:hover { color: var(--gold); border-color: var(--gold); }

.committee-strip {
  display: flex;
  align-items: center;
  margin: 26px 0 8px;
  isolation: isolate;
}
.committee-strip img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 50%;
  border: 2px solid var(--paper);
  background: var(--paper-2);
  filter: grayscale(1) contrast(1.08);
  box-shadow: 0 12px 28px rgba(16, 24, 32, .14);
  transition: transform .28s cubic-bezier(.22,.61,.36,1), filter .28s ease, z-index .28s ease;
}
.committee-strip img + img { margin-left: -13px; }
.committee-strip img:hover {
  transform: translateY(-6px) scale(1.05);
  filter: grayscale(.15) contrast(1.04);
  z-index: 2;
}

.accolades { background: var(--paper); }
.accolade-list {
  list-style: none;
  margin: 38px 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.accolade-list li {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr) minmax(0, 1.3fr);
  gap: 22px;
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.accolade-list span {
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
  color: var(--red);
}
.accolade-list strong {
  font-size: clamp(1.1rem, 1.6vw, 1.45rem);
  font-weight: 800;
  letter-spacing: -.02em;
}
.accolade-list em {
  font-style: normal;
  color: var(--muted);
  font-size: .98rem;
}
.accolade-disclosure {
  margin-top: 28px;
  padding: 18px 0;
  border-top: 1px solid var(--hairline);
}
.accolade-disclosure summary {
  cursor: pointer;
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.accolade-disclosure p { color: var(--muted); margin-top: 14px; max-width: 640px; }

.nomination { border-bottom: 1px solid var(--line); background: var(--paper-2); }
.form-shell {
  margin: 0 clamp(18px, 4vw, 54px) clamp(58px, 8vw, 110px) calc(190px + clamp(40px, 5vw, 74px));
  padding: clamp(24px, 4vw, 54px);
  background: var(--paper);
  color: var(--black);
  border: 1px solid var(--line);
}
.form-chapter {
  margin: 36px 0 20px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  color: var(--red);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.form-chapter:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.field { display: flex; flex-direction: column; gap: 8px; }
.field.full { grid-column: 1 / -1; }
label {
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
input, select, textarea {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--black);
  padding: 13px 0;
  font: inherit;
  transition: border-color .25s ease;
}
textarea { min-height: 170px; resize: vertical; }
select option { color: var(--black); background: var(--paper); }
input:focus, select:focus, textarea:focus {
  outline: none;
  border-bottom-color: var(--gold);
  border-bottom-width: 2px;
  padding-bottom: 12px;
}
.radio-row, .check-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
}
.radio-row input, .check-row input { width: auto; min-height: auto; }
.helper { color: var(--muted); margin: 0; font-size: .88rem; }
.error-list {
  display: none;
  padding: 14px 16px;
  margin: 0 0 18px;
  border: 1px solid var(--red);
  background: rgba(138, 31, 31, .08);
  color: var(--red);
}
.video-status { font-weight: 900; font-size: .88rem; }
.hidden-field { display: none; }
.form-submit-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  margin-top: 44px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.submit-btn {
  min-height: 58px;
  padding: 16px 28px;
  border: 1px solid var(--black);
  background: var(--black);
  color: var(--paper);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .25s ease, color .25s ease;
}
.submit-btn:hover { background: var(--gold); border-color: var(--gold); color: var(--black); }
.form-submit-row p { color: var(--muted); margin: 0; font-size: .92rem; }

.faq { background: var(--paper); }
.faq-list details {
  border-top: 1px solid var(--line);
  padding: 24px 0;
}
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary {
  cursor: pointer;
  font-size: clamp(1.1rem, 1.6vw, 1.5rem);
  font-weight: 700;
  letter-spacing: -.015em;
  list-style: none;
  position: relative;
  padding-right: 36px;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 0;
  font-weight: 400;
  transition: transform .25s ease;
}
.faq-list details[open] summary::after { transform: rotate(45deg); }
.faq-list p { color: var(--muted); margin-top: 14px; max-width: 720px; }

.next-up {
  border-bottom: 1px solid var(--line);
  padding: clamp(40px, 6vw, 80px) clamp(18px, 4vw, 54px);
  background: var(--paper);
}
.next-up .label { margin-bottom: 14px; }
.next-link {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 28px;
  align-items: baseline;
  text-decoration: none;
  padding: 18px 0;
  border-top: 1px solid var(--line);
}
.next-eyebrow {
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}
.next-title {
  font-size: clamp(2rem, 5vw, 4.4rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.03em;
  transition: color .25s ease;
}
.next-link:hover .next-title { color: var(--gold); }
.next-meta {
  font-size: .9rem;
  color: var(--muted);
  text-align: right;
}

.footer {
  padding: clamp(42px, 7vw, 88px) clamp(18px, 4vw, 54px) 28px;
  background: var(--black);
  color: var(--paper);
}
.footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
  padding-bottom: clamp(34px, 5vw, 62px);
  border-bottom: 1px solid rgba(244, 240, 232, .18);
}
.footer-label {
  display: block;
  margin-bottom: 14px;
  color: rgba(244, 240, 232, .58);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.footer h2 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(2.6rem, 6.4vw, 7rem);
  font-weight: 800;
  line-height: .9;
  letter-spacing: -.045em;
}
.footer-cta {
  display: inline-flex;
  align-items: center;
  min-height: 52px;
  padding: 15px 22px;
  background: var(--paper);
  color: var(--black);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .25s ease, color .25s ease;
  white-space: nowrap;
}
.footer-cta:hover { background: var(--gold); }
.footer p { color: rgba(244,240,232,.62); }

[data-reveal] {
  opacity: 0;
  transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1), filter .8s cubic-bezier(.22,.61,.36,1);
}
[data-reveal="rise"] { transform: translateY(48px); }
[data-reveal="left"] { transform: translateX(-48px); }
[data-reveal="right"] { transform: translateX(48px); }
[data-reveal="scale"] { transform: translateY(32px) scale(.97); filter: blur(4px); }
[data-reveal].is-visible { opacity: 1; transform: none; filter: none; }

.cat-tagline {
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: clamp(1rem, 1.3vw, 1.18rem);
  line-height: 1.4;
  color: var(--gold);
  margin: 14px 0 12px;
}
.category-list .featured .cat-tagline { color: var(--red); }
.cat-detail {
  margin: 14px 0 0;
  display: grid;
  gap: 10px;
}
.cat-detail dt {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--black);
  margin-top: 8px;
}
.cat-detail dd {
  margin: 0;
  font-size: .96rem;
  line-height: 1.5;
  color: var(--muted);
}

.deliverables-list {
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
  counter-reset: dlist;
}
.deliverables-list li {
  counter-increment: dlist;
  position: relative;
  padding: 18px 0 18px 56px;
  border-top: 1px solid rgba(244, 240, 232, .18);
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(244, 240, 232, .82);
}
.deliverables-list li:last-child { border-bottom: 1px solid rgba(244, 240, 232, .18); }
.deliverables-list li::before {
  content: counter(dlist, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 18px;
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .06em;
  color: var(--gold);
}
.deliverables-list strong { color: var(--paper); font-weight: 800; }
.deliverables-list code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .92em;
  color: var(--gold);
}

.jury-mini {
  list-style: none;
  margin: 22px 0 18px;
  padding: 0;
  display: grid;
  gap: 6px;
  font-size: .96rem;
  color: var(--black);
}
.jury-mini li {
  padding: 8px 0;
  border-top: 1px solid var(--hairline);
}
.jury-mini li:last-child { border-bottom: 1px solid var(--hairline); }
.jury-mini em { color: var(--muted); font-style: normal; }

.form-chapter-intro {
  max-width: 720px;
  margin: -10px 0 22px;
  font-size: .96rem;
  line-height: 1.55;
  color: var(--muted);
}

.organizer-mark {
  display: grid;
  grid-template-columns: 44px 1fr;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: inherit;
  transition: opacity .2s ease;
}
.organizer-mark:hover { opacity: .72; }
.organizer-mark img {
  width: 44px;
  height: 44px;
  display: block;
}
.organizer-mark span {
  display: grid;
  gap: 2px;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  line-height: 1.2;
}
.organizer-mark em { font-style: normal; color: var(--muted); font-weight: 700; }
.organizer-mark strong { font-weight: 900; }

.footer-brand {
  display: grid;
  grid-template-columns: 64px minmax(0, 560px);
  gap: 18px;
  align-items: center;
}
.footer-brand img { width: 64px; height: 64px; display: block; }
.footer-brand p {
  margin: 0;
  font-size: .96rem;
  line-height: 1.5;
  color: rgba(244, 240, 232, .82);
}
.footer-brand a {
  color: var(--paper);
  border-bottom: 1px solid rgba(244, 240, 232, .4);
  text-decoration: none;
  transition: border-color .2s ease, color .2s ease;
}
.footer-brand a:hover { color: var(--gold); border-bottom-color: var(--gold); }

.footer-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 56px);
  padding: clamp(34px, 5vw, 56px) 0;
  border-bottom: 1px solid rgba(244, 240, 232, .18);
}
.footer-cols ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.footer-cols a {
  color: var(--paper);
  text-decoration: none;
  font-size: .94rem;
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: border-color .2s ease, color .2s ease;
}
.footer-cols a:hover { border-bottom-color: var(--gold); color: var(--gold); }
.footer-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  padding-top: 24px;
  color: rgba(244, 240, 232, .54);
  font-size: .86rem;
}
.footer-bottom > p { margin: 0; text-align: right; }

/* Long-form prose layout used by bases.html, privacidad.html */
.longform { padding: clamp(40px, 6vw, 80px) clamp(18px, 4vw, 54px) clamp(60px, 8vw, 110px); }
.longform-head {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: clamp(22px, 5vw, 74px);
  padding-bottom: clamp(40px, 5vw, 70px);
  border-bottom: 1px solid var(--line);
  margin-bottom: clamp(40px, 5vw, 70px);
}
.longform-head .section-label { padding-top: 6px; }
.longform-head h1 {
  margin: 0 0 18px;
  font-size: clamp(2.4rem, 5.6vw, 4.6rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.03em;
}
.longform-head .lede { margin-top: 12px; max-width: 720px; }
.longform-body {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: clamp(22px, 5vw, 74px);
}
.longform-body section {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: clamp(22px, 5vw, 74px);
  padding: clamp(28px, 4vw, 48px) 0;
  border-top: 1px solid var(--line);
}
.longform-body section:first-child { border-top: 0; padding-top: 0; }
.longform-body h2 {
  margin: 0 0 14px;
  font-size: clamp(1.4rem, 2vw, 1.9rem);
  font-weight: 800;
  letter-spacing: -.02em;
}
.longform-body p,
.longform-body li {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--black);
}
.longform-body p { margin: 0 0 12px; max-width: 760px; }
.longform-body ul, .longform-body ol { margin: 0 0 12px; padding-left: 22px; max-width: 760px; }
.longform-body li { margin-bottom: 8px; }
.longform-body strong { font-weight: 800; }
.longform-body a { color: var(--red); border-bottom: 1px solid currentColor; text-decoration: none; }
.longform-body a:hover { color: var(--gold); }
.longform-body code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .92em;
  background: var(--paper-2);
  padding: 1px 6px;
}
.longform-meta {
  display: grid;
  gap: 6px;
  font-size: .82rem;
  color: var(--muted);
}
.longform-meta strong { color: var(--black); }

/* Jury page cards (jurado.html) */
.jury-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.jury-card {
  padding: clamp(22px, 3vw, 36px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
  display: grid;
  gap: 14px;
}
.jury-card.featured { background: var(--paper-2); }
.jury-photo {
  width: 116px;
  height: 116px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--paper-2);
  border: 1px solid var(--line);
  color: var(--gold);
  font-family: Georgia, serif;
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: -.02em;
  box-shadow: 0 18px 34px rgba(16, 24, 32, .12);
}
.jury-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  filter: grayscale(1) contrast(1.08);
  transition: transform .35s cubic-bezier(.22,.61,.36,1), filter .35s ease;
}
.jury-card:hover .jury-photo img {
  transform: scale(1.05);
  filter: grayscale(.18) contrast(1.04);
}
.jury-card h3 {
  margin: 0;
  font-size: clamp(1.3rem, 1.7vw, 1.6rem);
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.15;
}
.jury-card .jury-role {
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--red);
}
.jury-card .jury-meta {
  display: grid;
  gap: 4px;
  font-size: .9rem;
  color: var(--muted);
}
.jury-card .jury-meta strong { color: var(--black); font-weight: 700; }
.jury-card .jury-bio {
  font-size: .94rem;
  line-height: 1.5;
  color: var(--muted);
  margin: 0;
}
.jury-card .jury-lines {
  font-size: .82rem;
  font-style: italic;
  color: var(--black);
}
.jury-assignments {
  margin: 40px 0 0;
  padding: 28px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.jury-assignments h3 {
  margin: 0 0 18px;
  font-size: 1.1rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.jury-assignments ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.jury-assignments li {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 24px;
  padding: 12px 0;
  border-top: 1px solid var(--hairline);
  font-size: .96rem;
}
.jury-assignments li strong { font-weight: 800; }

/* Sponsors page */
.sponsor-tier-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  margin-top: 40px;
}
.sponsor-tier {
  padding: clamp(28px, 4vw, 48px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 12px;
  background: var(--paper);
}
.sponsor-tier.featured { background: var(--paper-2); }
.sponsor-tier h3 {
  margin: 0;
  font-size: clamp(1.6rem, 2.4vw, 2.2rem);
  font-weight: 800;
  letter-spacing: -.025em;
}
.sponsor-tier .tier-slots {
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--red);
}
.sponsor-tier ul { margin: 0; padding-left: 20px; color: var(--muted); font-size: .96rem; line-height: 1.55; }
.sponsor-tier li { margin-bottom: 6px; }

/* Gracias page */
.gracias-shell {
  min-height: calc(100vh - 74px);
  display: grid;
  align-items: center;
  padding: clamp(40px, 8vw, 120px) clamp(18px, 4vw, 54px);
}
.gracias-shell .longform-head { padding-bottom: 32px; margin-bottom: 32px; }
.next-steps {
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
  counter-reset: nstep;
}
.next-steps li {
  counter-increment: nstep;
  position: relative;
  padding: 18px 0 18px 56px;
  border-top: 1px solid var(--line);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--muted);
}
.next-steps li:last-child { border-bottom: 1px solid var(--line); }
.next-steps li::before {
  content: counter(nstep, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 18px;
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .06em;
  color: var(--red);
}
.next-steps strong { display: block; color: var(--black); font-weight: 800; margin-bottom: 4px; }
.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 38px;
}
.btn {
  display: inline-flex;
  align-items: center;
  padding: 15px 24px;
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid var(--black);
  background: var(--black);
  color: var(--paper);
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover { background: var(--gold); border-color: var(--gold); color: var(--black); }
.btn-secondary { background: transparent; color: var(--black); }
.btn-secondary:hover { background: var(--gold); border-color: var(--gold); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  [data-reveal] { opacity: 1; transform: none; filter: none; }
}

@keyframes slowCinema {
  from { transform: scale(1.02) translate3d(-.8%, 0, 0); }
  to { transform: scale(1.08) translate3d(.8%, -.6%, 0); }
}

@media (max-width: 1040px) {
  .nav-links { display: none; }
  .case-hero,
  .section-grid,
  .two-up,
  .media-text,
  .sponsor-jury,
  .process-media-grid,
  .editorial-grid,
  .split-copy,
  .longform-head,
  .longform-body section {
    grid-template-columns: 1fr;
  }
  .case-focus { max-width: 420px; }
  .facts-row,
  .category-list,
  .process-list,
  .footer-cols,
  .jury-grid,
  .sponsor-tier-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .form-shell { margin-left: clamp(18px, 4vw, 54px); }
  .accolade-list li { grid-template-columns: 50px 1fr; }
  .accolade-list em { grid-column: 2; color: var(--muted); }
  .next-link { grid-template-columns: 1fr; gap: 8px; }
  .next-meta { text-align: left; }
  .jury-assignments li { grid-template-columns: 1fr; gap: 4px; }
  .footer-top,
  .footer-bottom {
    grid-template-columns: 1fr;
  }
  .footer-bottom > p { text-align: left; }
}

@media (max-width: 680px) {
  .topbar { grid-template-columns: 1fr auto; min-height: 64px; }
  .nav-action { padding: 10px 12px; }
  .case-title h1 { font-size: clamp(3rem, 13vw, 5rem); letter-spacing: -.03em; }
  .facts-row,
  .category-list,
  .process-list,
  .form-grid,
  .footer-cols,
  .jury-grid,
  .sponsor-tier-grid,
  .footer-brand {
    grid-template-columns: 1fr;
  }
  .footer-brand img { width: 64px; height: 64px; }
  .category-list article { border-right: 1px solid var(--line); min-height: 320px; }
  .recognition-media .video-still,
  .editorial-grid .video-still,
  .process-media-grid .video-still { height: 320px; }
  .media-caption {
    position: static;
    max-width: none;
    margin-top: 1px;
  }
}
