/* ==========================================================
   Big Bull Awards 2026
   Palette: white / navy / gold      Type: Playfair + Poppins
   ========================================================== */

:root {
  --paper: #ffffff;
  --soft: #f5f3ee; /* warm off-white */
  --navy: #0b1b3d;
  --navy-d: #071431;
  --navy-l: #16305f;

  --gold: #a9803a; /* print gold, on light */
  --gold-l: #cfa257; /* gold on navy */

  --ink: #12182a;
  --ink-2: #565f75;
  --ink-3: #8b93a5;

  --rule: #e3ded3;
  --rule-d: rgba(255, 255, 255, 0.14);

  --serif: "Playfair Display", Georgia, serif;
  --sans: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --shell: 1200px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink-2);
  font-family: var(--sans);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.72;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
img {
  max-width: 100%;
  display: block;
}
a {
  color: inherit;
  text-decoration: none;
}
button {
  font: inherit;
  cursor: pointer;
  border: 0;
  background: none;
  color: inherit;
}
input,
select,
textarea {
  font: inherit;
  color: inherit;
}
ol,
ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.shell {
  width: min(100% - 40px, var(--shell));
  margin-inline: auto;
}
.skip {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--navy);
  color: #fff;
  padding: 10px 16px;
  z-index: 200;
}
.skip:focus {
  left: 10px;
  top: 10px;
}

/* ---------- type ---------- */
h1,
h2,
h3 {
  font-family: var(--serif);
  color: var(--ink);
  font-weight: 400;
  line-height: 1.1;
  margin: 0 0 0.5em;
  letter-spacing: -0.012em;
}
h1 {
  font-size: clamp(2.6rem, 5.1vw, 4.3rem);
  line-height: 1.04;
}
h2 {
  font-size: clamp(1.95rem, 3.5vw, 3rem);
}
h3 {
  font-size: clamp(1.15rem, 1.7vw, 1.4rem);
  line-height: 1.28;
}
h1 em,
h2 em {
  font-style: italic;
  color: var(--gold);
}
p {
  margin: 0 0 1.15em;
}
.lede {
  font-size: 1.09rem;
  color: var(--ink-2);
  font-weight: 300;
}
strong {
  font-weight: 500;
  color: var(--ink);
}

.kicker,
.idx {
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 1.5rem;
}
.idx--light {
  color: var(--gold-l);
}

/* ---------- buttons / links ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 30px;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  transition:
    background 0.3s var(--ease),
    color 0.3s var(--ease),
    border-color 0.3s var(--ease);
}
.btn--solid {
  background: var(--navy);
  color: #fff;
  border: 1px solid var(--navy);
}
.btn--solid:hover {
  background: var(--gold);
  border-color: var(--gold);
}
.btn--lg {
  padding: 17px 38px;
}
.btn--block {
  width: 100%;
}

.ulink {
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: var(--ink);
  border-bottom: 1px solid var(--gold);
  padding-bottom: 3px;
  transition: 0.3s var(--ease);
}
.ulink:hover {
  color: var(--gold);
}
.ulink--light {
  color: #fff;
  border-color: var(--gold-l);
}
.ulink--light:hover {
  color: var(--gold-l);
}

.pts li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 0.55rem;
  font-size: 0.95rem;
}
.pts li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 9px;
  height: 1px;
  background: var(--gold);
}

/* ---------- header ---------- */
.head {
  position: sticky;
  top: 0;
  z-index: 70;
  border-bottom: 1px solid var(--rule);
  transition: 0.3s var(--ease);
}
/* The blur lives on a pseudo-element: backdrop-filter on .head itself would make
   it the containing block for the fixed mobile drawer and shrink the drawer to 76px. */
.head::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(255, 255, 255, 0.93);
  backdrop-filter: blur(10px);
}
.head.is-stuck {
  box-shadow: 0 1px 20px rgba(11, 27, 61, 0.07);
}
.head__in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 76px;
}

.mark {
  display: flex;
  align-items: baseline;
  gap: 9px;
  line-height: 1;
}
.mark__name {
  font-family: var(--serif);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.mark__sub {
  font-size: 0.6rem;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold);
  padding-bottom: 2px;
}
.mark--light .mark__name {
  color: #fff;
}
.mark--light .mark__sub {
  color: var(--gold-l);
}

.nav {
  display: flex;
  align-items: center;
  gap: 32px;
}
.nav > a:not(.btn) {
  font-size: 0.84rem;
  font-weight: 400;
  color: var(--ink-2);
  position: relative;
  padding: 6px 0;
  transition: color 0.25s;
}
.nav > a:not(.btn)::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 2px;
  width: 0;
  height: 1px;
  background: var(--gold);
  transition: width 0.3s var(--ease);
}
.nav > a:not(.btn):hover,
.nav > a.is-active {
  color: var(--ink);
}
.nav > a:not(.btn):hover::after,
.nav > a.is-active::after {
  width: 100%;
}
.nav__cta {
  padding: 12px 24px;
}

.burger {
  display: none;
  flex-direction: column;
  gap: 6px;
  padding: 10px;
  margin-right: -10px;
  position: relative;
  z-index: 92;
}
.burger span {
  width: 22px;
  height: 1.5px;
  background: var(--ink);
  transition: 0.3s var(--ease);
}
.burger.is-open span:nth-child(1) {
  transform: translateY(3.7px) rotate(45deg);
}
.burger.is-open span:nth-child(2) {
  transform: translateY(-3.8px) rotate(-45deg);
}

/* ---------- press strip ---------- */
.press {
  background: var(--navy);
  color: #fff;
}
.press__in {
  display: flex;
  align-items: center;
  gap: 36px;
  flex-wrap: wrap;
  padding: 20px 0;
}
.press__lbl {
  margin: 0;
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-l);
  white-space: nowrap;
}
.press ul {
  display: flex;
  flex-wrap: wrap;
  gap: 34px;
}
.press li {
  font-family: var(--serif);
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.82);
  letter-spacing: 0.02em;
}

/* ---------- sections ---------- */
.sec {
  padding: clamp(66px, 8vw, 118px) 0;
}
.sec--paper {
  background: var(--paper);
}
.sec--soft {
  background: var(--soft);
}
.sec--navy {
  background: var(--navy);
  color: rgba(255, 255, 255, 0.72);
}
.sec--navy h2,
.sec--navy h3 {
  color: #fff;
}
.sec--navy h2 em {
  color: var(--gold-l);
}
.sec--navy .lede {
  color: rgba(255, 255, 255, 0.72);
}

.sec__head {
  max-width: 640px;
  margin-bottom: clamp(38px, 4.5vw, 62px);
}
.sec__head h2 {
  margin-bottom: 0.45em;
}

.split {
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: clamp(30px, 5vw, 80px);
  align-items: start;
}
.split--faq {
  grid-template-columns: 330px 1fr;
}
.split__aside .idx {
  margin-bottom: 0.9rem;
}
.split__aside h2 {
  margin-bottom: 0.5em;
}
.split__aside p {
  font-size: 0.92rem;
}
.split__aside a {
  color: var(--gold);
  border-bottom: 1px solid var(--rule);
}
.split__body {
  max-width: 62ch;
}
.split__body h2 {
  margin-bottom: 0.5em;
}
.split__body .pts {
  margin-top: 1.8rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--rule);
}

/* ---------- numbers ---------- */
.numbers {
  background: var(--soft);
  border-block: 1px solid var(--rule);
  padding: clamp(40px, 5vw, 62px) 0;
}
.numbers__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.numbers__grid > div {
  padding-inline: 26px;
  border-right: 1px solid var(--rule);
}
.numbers__grid > div:first-child {
  padding-left: 0;
}
.numbers__grid > div:last-child {
  border-right: 0;
}
.numbers b {
  display: block;
  font-family: var(--serif);
  font-size: clamp(2.3rem, 4vw, 3.3rem);
  font-weight: 400;
  color: var(--navy);
  line-height: 1;
}
.numbers span {
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-3);
}

/* ---------- categories ---------- */
.cat__tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--rule-d);
  margin-bottom: 6px;
}
#catSearch {
  flex: 1;
  min-width: 250px;
  max-width: 420px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--rule-d);
  color: #fff;
  padding: 10px 2px;
  font-size: 0.95rem;
  font-weight: 300;
  transition: border-color 0.3s;
}
#catSearch::placeholder {
  color: rgba(255, 255, 255, 0.38);
}
#catSearch:focus {
  outline: 0;
  border-bottom-color: var(--gold-l);
}
.cat__count {
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-l);
}

.cats {
  counter-reset: c;
  column-count: 3;
  column-gap: 48px;
}
.cats li {
  counter-increment: c;
  break-inside: avoid;
  display: flex;
  gap: 14px;
  align-items: baseline;
  padding: 13px 0;
  border-bottom: 1px solid var(--rule-d);
  font-size: 0.93rem;
  color: rgba(255, 255, 255, 0.76);
  transition: color 0.25s var(--ease);
}
.cats li::before {
  content: counter(c, decimal-leading-zero);
  font-family: var(--serif);
  font-size: 0.78rem;
  color: var(--gold-l);
  opacity: 0.72;
  flex: none;
}
.cats li:hover {
  color: #fff;
}
.cats__empty {
  margin-top: 28px;
  color: rgba(255, 255, 255, 0.6);
}
.cats__empty a {
  color: var(--gold-l);
  border-bottom: 1px solid var(--rule-d);
}
.cats__note {
  margin-top: 30px;
  font-size: 0.86rem;
  color: rgba(255, 255, 255, 0.45);
  font-style: italic;
}

/* ---------- tracks ---------- */
.tracks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--rule);
}
.track {
  padding: clamp(30px, 3.5vw, 46px) clamp(26px, 3vw, 46px)
    clamp(30px, 3.5vw, 46px) 0;
  border-right: 1px solid var(--rule);
}
.track:last-child {
  border-right: 0;
  padding-left: clamp(26px, 3vw, 46px);
  padding-right: 0;
}
.track__no {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1rem;
}
.track h3 {
  margin-bottom: 0.15em;
}
.track__yrs {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--ink-3);
  margin-bottom: 1.1rem;
}
.track .pts {
  margin-top: 1.4rem;
}
.rule-note {
  margin: clamp(36px, 4vw, 54px) 0 0;
  padding-top: 26px;
  border-top: 1px solid var(--rule);
  font-family: var(--serif);
  font-size: 1.15rem;
  font-style: italic;
  color: var(--ink);
  max-width: 60ch;
}

/* ---------- honours ---------- */
.honours {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 clamp(36px, 5vw, 76px);
  border-top: 1px solid var(--rule);
}
.honours li {
  display: flex;
  gap: 22px;
  padding: 30px 0;
  border-bottom: 1px solid var(--rule);
}
.honours b {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--gold);
  line-height: 1;
  flex: none;
  opacity: 0.85;
}
.honours h3 {
  margin-bottom: 0.3em;
}
.honours p {
  margin: 0;
  font-size: 0.94rem;
}

.band {
  margin-top: clamp(38px, 4vw, 56px);
  padding: clamp(28px, 3.4vw, 44px);
  background: var(--navy);
  color: rgba(255, 255, 255, 0.78);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  flex-wrap: wrap;
}
.band p {
  margin: 0;
  max-width: 62ch;
  font-size: 1.02rem;
}
.band .btn--solid {
  background: var(--gold);
  border-color: var(--gold);
  color: #fff;
}
.band .btn--solid:hover {
  background: #fff;
  border-color: #fff;
  color: var(--navy);
}

/* ---------- gallery ---------- */
.shots {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 168px;
  gap: 14px;
}
.shot {
  margin: 0;
  overflow: hidden;
  cursor: zoom-in;
  background: var(--navy-d);
}
.shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition:
    transform 0.9s var(--ease),
    opacity 0.4s;
}
.shot:hover img {
  transform: scale(1.045);
  opacity: 0.88;
}
.shot--a {
  grid-column: span 2;
  grid-row: span 2;
}
.shot--d {
  grid-column: span 2;
}

/* ---------- the playlist (YouTube, home page) ----------
   A player beside a scrolling list, the way a YouTube playlist embed looks.
   Nothing loads from YouTube until someone presses play: until then the stage
   is a still image and a link, which keeps the page fast and sets no YouTube
   cookies on arrival. The stage stays 16:9 so the layout never jumps when you
   switch between a short and a landscape video. */
.pl {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 20px;
  /* start, not stretch: with a handful of videos the panel hugs its contents
     instead of trailing empty space. The cap below takes over once the list
     is long enough to need it. */
  align-items: start;
}
.pl__stage {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: 6px;
  overflow: hidden;
}
.pl__facade {
  position: absolute;
  inset: 0;
  display: block;
  text-decoration: none;
}
.pl__facade[hidden] {
  display: none;
}
.pl__pic {
  position: absolute;
  inset: 0;
  background: #000 center / cover no-repeat;
}
/* the title strip across the top, as YouTube shows it before you press play */
.pl__head {
  position: absolute;
  z-index: 2;
  inset: 0 0 auto 0;
  padding: 16px 20px 34px;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.78), rgba(0, 0, 0, 0));
  pointer-events: none;
}
.pl__head-t {
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.pl__play {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 68px;
  height: 48px;
}
.pl__play svg {
  width: 100%;
  height: 100%;
  display: block;
}
.pl__play-bg {
  fill: #1f1f1f;
  fill-opacity: 0.81;
  transition: fill 0.2s, fill-opacity 0.2s;
}
.pl__facade:hover .pl__play-bg,
.pl__facade:focus-visible .pl__play-bg {
  fill: #f00;
  fill-opacity: 1;
}
.pl__frame {
  position: absolute;
  inset: 0;
}
.pl__frame[hidden] {
  display: none;
}
.pl__frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ---- the list beside it ---- */
.pl__side {
  display: flex;
  flex-direction: column;
  min-height: 0;
  /* Never taller than the player. The row is sized by whichever column is
     tallest, so a percentage here would be circular — script.js measures the
     stage and sets --pl-stage-h. 70vh is the sane answer before it does. */
  max-height: var(--pl-stage-h, 70vh);
  border: 1px solid var(--rule-d);
  border-radius: 6px;
  overflow: hidden;
}
.pl__list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  margin: 0;
  padding: 0;
  list-style: none;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
}
.pl__list::-webkit-scrollbar {
  width: 8px;
}
.pl__list::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.28);
  border-radius: 8px;
}
.pl__item {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  text-decoration: none;
  border-bottom: 1px solid var(--rule-d);
  transition: background 0.25s;
}
.pl__list li:last-child .pl__item {
  border-bottom: 0;
}
.pl__item:hover,
.pl__item:focus-visible {
  background: rgba(255, 255, 255, 0.06);
}
.pl__item.is-active {
  background: rgba(207, 162, 87, 0.14);
}
.pl__thumb {
  aspect-ratio: 16 / 9;
  border-radius: 3px;
  background: var(--navy-d) center / cover no-repeat;
}
.pl__t {
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 300;
  line-height: 1.45;
  color: #d7dcea;
}
.pl__item.is-active .pl__t {
  color: #fff;
}
/* a quiet "now playing" marker that does not depend on colour alone */
.pl__item.is-active .pl__t::before {
  content: "\25B8\00a0";
  color: var(--gold-l);
}
.pl__all {
  flex: none;
  padding: 13px 14px;
  border-top: 1px solid var(--rule-d);
  background: rgba(255, 255, 255, 0.04);
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  color: var(--gold-l);
  text-decoration: none;
  text-align: center;
}
.pl__all:hover {
  background: var(--gold-l);
  color: var(--navy-d);
}

/* ---------- pull quote ---------- */
.pull {
  background: var(--soft);
  border-block: 1px solid var(--rule);
  padding: clamp(56px, 7vw, 96px) 0;
}
.pull blockquote {
  margin: 0;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.pull p {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 3.1vw, 2.5rem);
  line-height: 1.32;
  color: var(--ink);
  margin-bottom: 1.3rem;
}
.pull p::before {
  content: "“";
}
.pull p::after {
  content: "”";
}
.pull cite {
  font-style: normal;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

/* ---------- nominate ---------- */
.nom__in {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(38px, 5vw, 84px);
  align-items: start;
}
.nom__copy h2 {
  margin-bottom: 0.45em;
}
.nom__fig {
  margin: 2.6rem 0 0;
  overflow: hidden;
}
.nom__fig img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.form {
  border: 1px solid var(--rule);
  padding: clamp(26px, 3vw, 40px);
  background: var(--paper);
}
.form h3 {
  margin-bottom: 1.3rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--rule);
}
.form label {
  display: block;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 18px;
}
.form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.form input,
.form select,
.form textarea {
  width: 100%;
  margin-top: 8px;
  padding: 11px 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--rule);
  font-size: 0.95rem;
  font-weight: 300;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  transition: border-color 0.3s;
}
.form textarea {
  resize: vertical;
}
.form input::placeholder,
.form textarea::placeholder {
  color: #b6bcc9;
}
.form select {
  appearance: none;
  color: var(--ink);
  background-image:
    linear-gradient(45deg, transparent 50%, var(--gold) 50%),
    linear-gradient(135deg, var(--gold) 50%, transparent 50%);
  background-position:
    calc(100% - 10px) 21px,
    calc(100% - 5px) 21px;
  background-size: 5px 5px;
  background-repeat: no-repeat;
}
.form input:focus,
.form select:focus,
.form textarea:focus {
  outline: 0;
  border-bottom-color: var(--gold);
}
.form .btn {
  margin-top: 8px;
}
.form__note {
  margin: 14px 0 0;
  font-size: 0.85rem;
  min-height: 1.3em;
  color: var(--gold);
}

/* ---------- faq ---------- */
.acc {
  border-top: 1px solid var(--rule);
}
.acc__item {
  border-bottom: 1px solid var(--rule);
}
.acc__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 21px 0;
  text-align: left;
  font-family: var(--serif);
  font-size: 1.13rem;
  color: var(--ink);
  transition: color 0.25s;
}
.acc__q::after {
  content: "+";
  font-family: var(--sans);
  font-weight: 300;
  font-size: 1.3rem;
  color: var(--gold);
  transition: transform 0.35s var(--ease);
}
.acc__item.is-open .acc__q {
  color: var(--gold);
}
.acc__item.is-open .acc__q::after {
  transform: rotate(45deg);
}
.acc__q:hover {
  color: var(--gold);
}
.acc__a {
  overflow: hidden;
  transition: max-height 0.4s var(--ease);
}
.js .acc__a {
  max-height: 0;
}
.acc__a p {
  margin: 0 0 22px;
  font-size: 0.95rem;
  max-width: 64ch;
}

/* ---------- contact ---------- */
.contact {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--rule);
}
.contact > div {
  padding: 34px 34px 34px 0;
  border-right: 1px solid var(--rule);
}
.contact > div:last-child {
  border-right: 0;
  padding-right: 0;
}
.contact > div + div {
  padding-left: 34px;
}
.contact h3 {
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.1rem;
}
.contact a {
  display: block;
  font-size: 1rem;
  color: var(--ink);
  transition: color 0.25s;
}
.contact a:hover {
  color: var(--gold);
}
.contact em {
  display: block;
  font-style: normal;
  font-size: 0.76rem;
  color: var(--ink-3);
  margin-bottom: 14px;
}
.contact p {
  margin: 0;
  font-size: 0.95rem;
}

/* ---------- footer ---------- */
.foot {
  background: var(--navy);
  color: rgba(255, 255, 255, 0.62);
  padding-top: clamp(52px, 6vw, 80px);
}
.foot__top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.1fr;
  gap: 40px;
  padding-bottom: 48px;
}
.foot__brand p {
  margin: 20px 0 0;
  font-size: 0.92rem;
  max-width: 40ch;
}
.foot__col h4 {
  font-family: var(--sans);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-l);
  margin: 0 0 16px;
}
.foot__col a {
  display: block;
  font-size: 0.92rem;
  padding: 5px 0;
  transition: color 0.25s;
}
.foot__col a:hover {
  color: #fff;
}
.foot__addr {
  font-size: 0.92rem;
  margin-bottom: 14px;
}
.foot__col .ulink {
  display: inline-block;
  padding: 0 0 3px;
}
.foot__bot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  border-top: 1px solid var(--rule-d);
  padding-block: 22px;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.45);
}
.foot__bot p {
  margin: 0;
}
.foot__bot nav {
  display: flex;
  gap: 24px;
}
.foot__bot a:hover {
  color: #fff;
}

/* ---------- misc ---------- */
.top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 60;
  padding: 11px 15px;
  background: var(--navy);
  color: #fff;
  font-size: 0.66rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: 0.35s var(--ease);
}
.top.is-on {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.top:hover {
  background: var(--gold);
}

.lb {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(7, 20, 49, 0.97);
  display: grid;
  place-items: center;
  padding: 56px 64px;
}
.lb[hidden] {
  display: none;
}
.lb img {
  max-width: 100%;
  max-height: 88vh;
  object-fit: contain;
}
.lb__x {
  position: absolute;
  top: 14px;
  right: 24px;
  font-size: 2.3rem;
  line-height: 1;
  color: var(--gold-l);
}
.lb__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 2.8rem;
  color: var(--gold-l);
  padding: 8px 16px;
}
.lb__nav:hover {
  color: #fff;
}
.lb__prev {
  left: 6px;
}
.lb__next {
  right: 6px;
}

/* reveal */
.rv {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.8s var(--ease),
    transform 0.8s var(--ease);
}
.rv.in {
  opacity: 1;
  transform: none;
}

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .cats {
    column-count: 2;
  }
  .shots {
    grid-template-columns: repeat(3, 1fr);
  }
  .foot__top {
    grid-template-columns: 1fr 1fr;
    gap: 34px;
  }
}
@media (max-width: 900px) {
  .burger {
    display: flex;
  }
  .nav {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(82vw, 320px);
    background: var(--paper);
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 96px 28px 40px;
    border-left: 1px solid var(--rule);
    transform: translateX(100%);
    transition:
      transform 0.4s var(--ease),
      box-shadow 0.4s var(--ease);
    z-index: 88;
  }
  .nav.is-open {
    transform: none;
    box-shadow: -20px 0 50px rgba(11, 27, 61, 0.1);
  }
  .nav > a:not(.btn) {
    width: 100%;
    padding: 15px 0;
    border-bottom: 1px solid var(--rule);
    font-size: 0.95rem;
  }
  .nav__cta {
    margin-top: 24px;
    width: 100%;
  }
  .nav > a:not(.btn)::after {
    display: none;
  }
  .nav > a[aria-current="page"]:not(.btn),
  .nav > a.is-active {
    color: var(--gold);
  }

  .hero {
    grid-template-columns: 1fr;
  }
  .hero__text {
    padding: 56px 20px 50px;
    max-width: var(--shell);
    margin-inline: auto;
    width: 100%;
  }
  .hero__fig {
    min-height: 52vh;
    order: -1;
  }
  .hero h1 {
    max-width: none;
  }

  .split,
  .split--faq {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .tracks {
    grid-template-columns: 1fr;
  }
  .track {
    border-right: 0;
    border-bottom: 1px solid var(--rule);
    padding: 30px 0;
  }
  .track:last-child {
    padding: 30px 0;
    border-bottom: 0;
  }
  .honours {
    grid-template-columns: 1fr;
  }
  .nom__in {
    grid-template-columns: 1fr;
  }
  .contact {
    grid-template-columns: 1fr;
  }
  .contact > div {
    border-right: 0;
    border-bottom: 1px solid var(--rule);
    padding: 26px 0;
  }
  .contact > div + div {
    padding-left: 0;
  }
  .contact > div:last-child {
    border-bottom: 0;
  }
}
@media (max-width: 640px) {
  body {
    font-size: 15.5px;
  }
  .shell {
    width: calc(100% - 34px);
  }
  .invite {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .invite > div {
    border-right: 0;
    padding-right: 0;
    margin-right: 0;
  }
  .hero__act {
    gap: 18px;
  }
  .hero__act .btn {
    width: 100%;
  }
  .press__in {
    gap: 14px;
    padding: 18px 0;
  }
  .press ul {
    gap: 8px 22px;
  }
  .press li {
    font-size: 0.95rem;
  }
  .cats {
    column-count: 1;
  }
  .numbers__grid {
    grid-template-columns: 1fr 1fr;
    gap: 26px 0;
  }
  .numbers__grid > div {
    border-right: 0;
    padding-inline: 0;
  }
  .numbers__grid > div:nth-child(odd) {
    border-right: 1px solid var(--rule);
    padding-right: 20px;
  }
  .numbers__grid > div:nth-child(even) {
    padding-left: 20px;
  }
  .shots {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 132px;
    gap: 8px;
  }
  .shot--a {
    grid-column: span 2;
    grid-row: span 2;
  }
  .shot--d,
  .shot--h {
    grid-column: span 2;
  }
  .form__row {
    grid-template-columns: 1fr;
  }
  .foot__top {
    grid-template-columns: 1fr;
  }
  .lb {
    padding: 56px 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  html {
    scroll-behavior: auto;
  }
  .rv {
    opacity: 1;
    transform: none;
  }
}

/* ==========================================================
   INNER PAGES — About + Nominate
   Uses the same tokens as the home page.
   ========================================================== */

/* current page in the nav */
.nav > a[aria-current="page"]:not(.btn) {
  color: var(--ink);
}
.nav > a[aria-current="page"]:not(.btn)::after {
  width: 100%;
}
@media (min-width: 901px) and (max-width: 1080px) {
  .nav {
    gap: 22px;
  }
}

/* home page: pointer to the full form */
.nom__more {
  margin: 1.8rem 0 0;
  font-size: 0.95rem;
}

/* ---------- shared section helpers ---------- */
.sec--tight {
  padding: clamp(40px, 5vw, 70px) 0;
}
.strip-sec {
  background: var(--paper);
  padding: 0 0 clamp(56px, 7vw, 100px);
}

/* ---------- about: hero variant ---------- */
.hero--page .hero__fig {
  min-height: min(66vh, 580px);
}
.hero--page .hero__text {
  padding-block: clamp(48px, 6vw, 88px);
}
.hero--page .hero__fig img {
  object-position: center 30%;
}

/* ---------- about: process (a real sequence, so numbered) ---------- */
.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--rule);
}
.steps li {
  padding: 32px 26px 6px;
  border-right: 1px solid var(--rule);
}
.steps li:first-child {
  padding-left: 0;
}
.steps li:last-child {
  padding-right: 0;
  border-right: 0;
}
.steps b {
  display: block;
  font-family: var(--serif);
  font-size: 1.7rem;
  font-weight: 400;
  line-height: 1;
  color: var(--gold);
  opacity: 0.85;
  margin-bottom: 16px;
}
.steps h3 {
  margin-bottom: 0.4em;
}
.steps p {
  margin: 0;
  font-size: 0.94rem;
}

/* ---------- about: judging criteria ---------- */
.crit {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--rule-d);
}
.crit > div {
  padding: 34px 32px 6px;
  border-right: 1px solid var(--rule-d);
}
.crit > div:first-child {
  padding-left: 0;
}
.crit > div:last-child {
  padding-right: 0;
  border-right: 0;
}
.crit h3 {
  margin-bottom: 0.3em;
}
.crit__q {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.08rem;
  color: var(--gold-l);
  margin-bottom: 1rem;
}
.crit p:last-child {
  margin: 0;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.72);
}

/* ---------- about: principles ---------- */
.princ {
  border-top: 1px solid var(--rule);
}
.princ > div {
  display: grid;
  grid-template-columns: minmax(200px, 320px) 1fr;
  gap: clamp(20px, 4vw, 64px);
  padding: 30px 0;
  border-bottom: 1px solid var(--rule);
}
.princ h3 {
  margin: 0;
}
.princ p {
  margin: 0;
  max-width: 62ch;
  font-size: 0.97rem;
}

/* ---------- about: photo strip ---------- */
.strip {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 14px;
  height: clamp(220px, 27vw, 340px);
}
.strip figure {
  margin: 0;
  overflow: hidden;
  background: var(--navy-d);
}
.strip img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ==========================================================
   NOMINATE PAGE
   ========================================================== */
.phead {
  background: var(--soft);
  border-bottom: 1px solid var(--rule);
  padding: clamp(48px, 6vw, 88px) 0 clamp(40px, 5vw, 64px);
}
.phead__in {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(30px, 5vw, 84px);
  align-items: end;
}
.phead .kicker {
  margin-bottom: 1.3rem;
}
.phead h1 {
  margin: 0;
}
.phead .lede {
  max-width: 54ch;
  margin-bottom: 1.8rem;
}
.phead .lede .ulink {
  font-size: inherit;
  letter-spacing: 0;
  color: var(--ink);
}
.phead .invite {
  width: fit-content;
  max-width: 100%;
  margin: 0;
}
.phead .invite a:hover {
  color: var(--gold);
}

.nf {
  background: var(--paper);
  padding: clamp(44px, 5vw, 72px) 0 clamp(66px, 8vw, 110px);
}
.nf [hidden] {
  display: none !important;
}
.nf__in {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: clamp(30px, 5vw, 84px);
  align-items: start;
}

/* side index */
.nf__rail {
  position: sticky;
  top: 100px;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  padding-bottom: 8px;
}
.nf__rail-t {
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 12px;
}
.rail {
  counter-reset: rl;
  border-top: 1px solid var(--rule);
}
.rail a {
  counter-increment: rl;
  display: flex;
  gap: 12px;
  align-items: baseline;
  padding: 9px 0;
  border-bottom: 1px solid var(--rule);
  font-size: 0.86rem;
  line-height: 1.4;
  color: var(--ink-2);
  transition: color 0.25s;
}
.rail a::before {
  content: counter(rl);
  flex: none;
  min-width: 1.3em;
  font-family: var(--serif);
  font-size: 0.85rem;
  color: var(--gold);
}
.rail a:hover,
.rail a.is-active {
  color: var(--ink);
}
.rail a.is-active {
  font-weight: 500;
}
.nf__draft {
  margin: 18px 0 0;
  font-size: 0.78rem;
  line-height: 1.55;
  color: var(--ink-3);
}
.nf__help {
  margin-top: 22px;
  padding: 18px 18px 6px;
  background: var(--soft);
}
.nf__help h3 {
  font-family: var(--sans);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.7rem;
}
.nf__help p {
  font-size: 0.86rem;
  line-height: 1.75;
  overflow-wrap: anywhere;
}
.nf__help a:hover {
  color: var(--gold);
}

/* form body */
.nf__main {
  max-width: 820px;
}
.nf__form {
  counter-reset: part;
}
.nf__req {
  margin: 0 0 clamp(28px, 3vw, 40px);
  font-size: 0.85rem;
  color: var(--ink-3);
}
.nf__priv {
  margin: -22px 0 clamp(28px, 3vw, 40px);
  max-width: 68ch;
  font-size: 0.78rem;
  line-height: 1.6;
  color: var(--ink-3);
  opacity: 0.82;
}
.nf__req i,
.f__l i,
.opt--consent i {
  font-style: normal;
  color: var(--gold);
  margin-left: 3px;
}
.nf__sec {
  counter-increment: part;
  scroll-margin-top: 100px;
  margin-bottom: clamp(38px, 4.5vw, 60px);
  padding-bottom: clamp(30px, 4vw, 52px);
  border-bottom: 1px solid var(--rule);
}
.nf__sec:last-of-type {
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}
.nf__sec > h2 {
  display: flex;
  align-items: baseline;
  gap: 16px;
  font-size: clamp(1.55rem, 2.5vw, 2.05rem);
  margin-bottom: 0.3em;
}
.nf__sec > h2::before {
  content: counter(part, decimal-leading-zero);
  flex: none;
  font-size: 0.62em;
  letter-spacing: 0.06em;
  color: var(--gold);
}
.nf__org {
  margin: 0 0 0.9rem;
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.nf__sub {
  margin: 0 0 1.8rem;
  font-size: 0.95rem;
  max-width: 60ch;
}
.nf__org + .nf__sub {
  margin-top: 0;
}
.nf__sec > h2 + .nf__grid,
.nf__sec > h2 + .f,
.nf__sec > h2 + .nf__grp,
.nf__sec > h2 + .facs {
  margin-top: 1.6rem;
}
.nf__org + .nf__grid,
.nf__org + .f,
.nf__org + .nf__grp,
.nf__org + .facs {
  margin-top: 1.4rem;
}

.nf__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 26px;
}
.nf__grid--3 {
  grid-template-columns: repeat(3, 1fr);
}
.nf__grid--4 {
  grid-template-columns: repeat(4, 1fr);
  gap: 0 20px;
}
.nf__grp {
  margin-top: 10px;
  padding-top: 26px;
  border-top: 1px solid var(--rule);
}
.nf__grp h3 {
  font-size: 1.08rem;
  margin-bottom: 1.1rem;
}

/* fields */
.f {
  display: block;
  margin-bottom: 26px;
  min-width: 0;
}
.f--wide {
  grid-column: 1 / -1;
}
.f__l {
  display: block;
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--ink);
}
.f__h {
  display: block;
  margin-top: 1px;
  font-size: 0.78rem;
  line-height: 1.5;
  color: var(--ink-3);
}
.f input[type="text"],
.f input[type="email"],
.f input[type="tel"],
.f input[type="url"],
.f input[type="number"],
.f input[type="date"],
.f select,
.fac__c {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 9px 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--rule);
  border-radius: 0;
  font-size: 0.97rem;
  font-weight: 300;
  color: var(--ink);
  transition:
    border-color 0.3s,
    box-shadow 0.3s;
}
.f textarea {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 12px 14px;
  background: transparent;
  border: 1px solid var(--rule);
  border-radius: 0;
  font-size: 0.97rem;
  font-weight: 300;
  line-height: 1.6;
  color: var(--ink);
  resize: vertical;
  min-height: 92px;
  transition:
    border-color 0.3s,
    box-shadow 0.3s;
}
.f input::placeholder,
.f textarea::placeholder,
.fac__c::placeholder {
  color: #b6bcc9;
}
.f select {
  appearance: none;
  padding-right: 26px;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--gold) 50%),
    linear-gradient(135deg, var(--gold) 50%, transparent 50%);
  background-position:
    calc(100% - 10px) 55%,
    calc(100% - 5px) 55%;
  background-size: 5px 5px;
  background-repeat: no-repeat;
}
.f input:focus,
.f select:focus,
.fac__c:focus {
  outline: 0;
  border-bottom-color: var(--gold);
  box-shadow: 0 1px 0 var(--gold);
}
.f textarea:focus {
  outline: 0;
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold);
}

/* option chips (radios + checkboxes) */
.opts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.opts--grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.opt {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 16px;
  border: 1px solid var(--rule);
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--ink-2);
  cursor: pointer;
  transition:
    border-color 0.25s,
    background 0.25s,
    color 0.25s;
}
.opt input {
  flex: none;
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--navy);
}
.opt:hover {
  border-color: var(--ink-3);
}
.opt:has(input:checked) {
  border-color: var(--navy);
  background: var(--soft);
  color: var(--ink);
}
.opt:has(input:focus-visible) {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.opt--consent {
  display: flex;
  align-items: flex-start;
  width: 100%;
  margin: 8px 0 30px;
  padding: 16px 18px;
  font-size: 0.92rem;
}
.opt--consent input {
  margin-top: 3px;
}

/* office facilities */
.facs {
  border-top: 1px solid var(--rule);
}
.fac {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) auto minmax(0, 1fr);
  gap: 10px 26px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid var(--rule);
}
.fac__n {
  font-size: 0.93rem;
  color: var(--ink);
}
.fac .opts {
  margin: 0;
  gap: 8px;
}
.fac .opt {
  padding: 6px 14px;
}
.fac__c {
  margin: 0;
}

/* declaration */
.nf__sec > h2 + .nf__notice {
  margin-top: 1.4rem;
}
.nf__notice {
  margin-bottom: 30px;
  padding: 16px 20px;
  background: var(--soft);
  border-left: 2px solid var(--gold);
  font-size: 0.93rem;
}
.nf__notice strong {
  display: block;
  margin-bottom: 2px;
}
.f input.file {
  display: block;
  width: 100%;
  margin-top: 10px;
  padding: 14px;
  background: var(--soft);
  border: 1px dashed var(--ink-3);
  font-size: 0.88rem;
  color: var(--ink-2);
}
.f input.file:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.f input.file::file-selector-button {
  margin-right: 14px;
  padding: 9px 18px;
  border: 0;
  background: var(--navy);
  color: #fff;
  font: inherit;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.3s var(--ease);
}
.f input.file::file-selector-button:hover {
  background: var(--gold);
}
.nf__submit {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px 28px;
}
.nf__submit .btn:disabled {
  opacity: 0.6;
  cursor: progress;
}
.nf__clear {
  cursor: pointer;
}
.nf__note {
  min-height: 1.5em;
  margin: 18px 0 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--gold);
}
.nf__note.is-error {
  color: #b3261e;
}

/* validation — only after the first attempt to send */
.was-validated .f input:invalid,
.was-validated .f select:invalid,
.was-validated .f textarea:invalid {
  border-color: #b3261e;
}
.was-validated .f[role="radiogroup"]:has(:invalid) .opt,
.was-validated .opt--consent:has(:invalid) {
  border-color: #b3261e;
}

/* confirmation */
.nf__done {
  padding: clamp(28px, 4vw, 48px);
  background: var(--soft);
  border-left: 2px solid var(--gold);
}
.nf__done:focus {
  outline: 0;
}
.nf__done h2 {
  margin-bottom: 0.4em;
}

/* ---------- responsive: inner pages ---------- */
@media (max-width: 1080px) {
  .steps {
    grid-template-columns: 1fr 1fr;
  }
  .steps li {
    padding: 30px 26px 10px;
    border-bottom: 1px solid var(--rule);
  }
  .steps li:nth-child(odd) {
    padding-left: 0;
  }
  .steps li:nth-child(even) {
    padding-right: 0;
    border-right: 0;
  }
  .steps li:nth-child(n + 3) {
    border-bottom: 0;
  }
  .nf__grid--4 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 900px) {
  .phead__in {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .hero--page .hero__fig {
    min-height: 44vh;
  }
  .crit {
    grid-template-columns: 1fr;
  }
  .crit > div,
  .crit > div:first-child,
  .crit > div:last-child {
    padding: 28px 0 8px;
    border-right: 0;
    border-bottom: 1px solid var(--rule-d);
  }
  .crit > div:last-child {
    border-bottom: 0;
  }
  .princ > div {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .nf__in {
    grid-template-columns: 1fr;
  }
  .nf__rail {
    position: static;
    max-height: none;
    order: 2;
  }
  .nf__rail-t,
  .rail {
    display: none;
  }
  .nf__draft {
    margin-top: 0;
  }
}
@media (max-width: 640px) {
  .steps {
    grid-template-columns: 1fr;
  }
  .steps li,
  .steps li:nth-child(odd),
  .steps li:nth-child(even) {
    padding: 26px 0 8px;
    border-right: 0;
    border-bottom: 1px solid var(--rule);
  }
  .steps li:last-child {
    border-bottom: 0;
  }
  .strip {
    grid-template-columns: 1fr 1fr;
    height: auto;
  }
  .strip figure {
    height: 180px;
  }
  .strip figure:first-child {
    grid-column: 1 / -1;
  }
  .nf__grid,
  .nf__grid--3 {
    grid-template-columns: 1fr;
  }
  .nf__grid--4 {
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
  }
  .opts--grid {
    grid-template-columns: 1fr;
  }
  .fac {
    grid-template-columns: 1fr;
  }
  .nf__submit .btn {
    width: 100%;
  }
  .phead .invite {
    width: 100%;
  }
}

/* ---------- print: a clean copy to sign and stamp ---------- */
@media print {
  .head,
  .foot,
  .top,
  .skip,
  .nf__rail,
  .nf__submit,
  .nf__note,
  .phead .lede,
  .phead .invite,
  .file,
  .opt input {
    display: none !important;
  }
  body {
    color: #000;
    font-size: 11pt;
  }
  .phead,
  .nf {
    padding: 0;
    background: #fff;
    border: 0;
  }
  .nf__in {
    display: block;
  }
  .nf__sec {
    break-inside: avoid-page;
  }
  .opt {
    border: 0;
    padding: 2px 10px 2px 0;
  }
  .opt:has(input:checked) {
    font-weight: 600;
    background: none;
  }
  .opt:has(input:checked)::before {
    content: "\2713  ";
  }
  .f input,
  .f select,
  .f textarea,
  .fac__c {
    border-color: #999 !important;
    color: #000;
  }
  .rv {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ==========================================================
   FAQ PAGE
   ========================================================== */
.faq__nav {
  position: sticky;
  top: 100px;
}
.rail--plain a::before {
  display: none;
}
.rail--plain a {
  padding-left: 0;
}
.faq__group {
  scroll-margin-top: 100px;
  margin-bottom: clamp(44px, 5vw, 72px);
}
.faq__group:last-child {
  margin-bottom: 0;
}
.faq__group > h2 {
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  margin-bottom: 0.7em;
}
.faq__body {
  max-width: 780px;
  min-width: 0;
}
.acc__q:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.acc__a p + p {
  margin-top: -10px;
}
.acc__a a {
  color: var(--ink);
  border-bottom: 1px solid var(--gold);
}
.acc__a a:hover {
  color: var(--gold);
}

/* button inside the contact grid keeps its own colours */
.contact a.btn {
  display: inline-flex;
  margin-top: 1.1rem;
  color: #fff;
  font-size: 0.78rem;
}
.contact a.btn:hover {
  color: #fff;
}

@media (max-width: 900px) {
  .faq__nav {
    display: none;
  }
}
.faq__nav .nf__rail-t {
  font-size: 0.66rem;
}

/* ==========================================================
   RECOGNITION TIERS / PACKAGES
   ========================================================== */
.pkgs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--rule);align-items:stretch;
}
.pkg{
  display:flex;flex-direction:column;
  padding:34px 32px 34px 0;border-right:1px solid var(--rule);
  position:relative;
}
.pkg+.pkg{padding-left:32px}
.pkg:last-child{border-right:0;padding-right:0}

.pkg--lead::before{
  content:"";position:absolute;top:-1px;left:0;right:32px;height:2px;background:var(--gold);
}
.pkg--lead+.pkg::before{content:none}

.pkg__tag{
  font-size:.62rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold);margin:0 0 .85rem;
}
.pkg h3{
  font-family:var(--serif);font-size:clamp(1.4rem,2vw,1.75rem);font-weight:400;
  color:var(--ink);margin:0 0 .12em;letter-spacing:-.012em;
}
.pkg__line{
  font-family:var(--serif);font-style:italic;font-size:1.02rem;
  color:var(--ink-3);margin:0 0 1.2rem;
}
.pkg__intro{font-size:.92rem;margin:0 0 1.1rem;color:var(--ink-2)}

.pkg ul{
  list-style:none;margin:0 0 1.5rem;padding:1.25rem 0 0;
  border-top:1px solid var(--rule);display:grid;gap:.6rem;
}
.pkg li{
  position:relative;padding-left:20px;font-size:.9rem;line-height:1.55;color:var(--ink-2);
}
.pkg li::before{
  content:"";position:absolute;left:0;top:.66em;width:9px;height:1px;background:var(--gold);
}
.pkg__not{
  margin:auto 0 0;padding-top:1.1rem;border-top:1px solid var(--rule);
  font-size:.82rem;font-style:italic;color:var(--ink-3);
}
.pkg__cta{margin:auto 0 0;align-self:flex-start}

.pkgs__note{
  margin:clamp(30px,3.4vw,44px) 0 0;padding-top:24px;border-top:1px solid var(--rule);
  font-family:var(--serif);font-size:1.1rem;font-style:italic;color:var(--ink);max-width:66ch;
}
.pkgs__note a{color:var(--gold);border-bottom:1px solid var(--rule);font-style:normal}
.pkgs__note a:hover{border-bottom-color:var(--gold)}

/* tighter nav so eight items still fit above the mobile breakpoint */
@media (min-width:901px) and (max-width:1180px){
  .nav{gap:22px}
  .nav>a:not(.btn){font-size:.79rem}
  .nav__cta{padding:12px 18px}
}
@media (min-width:901px) and (max-width:1040px){
  .nav{gap:16px}
  .nav>a:not(.btn){font-size:.75rem}
}

@media (max-width:900px){
  .pkgs{grid-template-columns:1fr}
  .pkg{border-right:0;border-bottom:1px solid var(--rule);padding:30px 0}
  .pkg+.pkg{padding-left:0}
  .pkg:last-child{border-bottom:0;padding-bottom:0}
  .pkg--lead::before{right:0}
  .pkg__cta,.pkg__not{margin-top:0}
}

/* ==========================================================
   MAGAZINE — flipbook page
   ========================================================== */
.sec__head--wide{max-width:760px}

.flip__stage{margin-top:8px}
.flip__book{margin:0 auto;touch-action:pan-y}
.flip__pg{background:var(--navy-d);overflow:hidden}
.flip__pg img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;user-select:none}

.flip__bar{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:clamp(22px,3vw,36px)}
.flip__btn{
  width:44px;height:44px;display:grid;place-items:center;
  border:1px solid var(--rule-d);color:var(--gold-l);
  font-size:1.6rem;line-height:1;transition:.3s var(--ease);
}
.flip__btn:hover:not(:disabled){background:rgba(207,162,87,.14);border-color:var(--gold-l)}
.flip__btn:disabled{opacity:.28;cursor:default}
.flip__count{
  margin:0;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.62);min-width:70px;text-align:center;
}
.flip__count i{font-style:normal;color:var(--gold-l);margin:0 4px}

.flip__fallback{margin-top:26px;color:rgba(255,255,255,.7)}
.flip__static{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:20px}
.flip__static img{width:100%}

.honours--one{grid-template-columns:1fr}

.print__pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,28px);margin-bottom:clamp(34px,4vw,52px)}
.print__pair figure{margin:0;overflow:hidden;background:var(--paper)}
.print__pair img{width:100%;height:100%;object-fit:cover;display:block}

/* press strip — real outlet logos */
.press__logos{
  display:grid;grid-template-columns:repeat(5,1fr);
  gap:clamp(20px,2.6vw,34px) clamp(14px,1.8vw,24px);
  list-style:none;margin:0;padding:0;align-items:center;
}
.press__logos li{display:flex;align-items:center;justify-content:center;min-width:0}
.press__logos img{
  height:22px;width:auto;display:block;
  opacity:.78;transition:opacity .3s var(--ease);
}
.press__logos li:hover img{opacity:1}
.press__names{
  display:flex;flex-wrap:wrap;gap:8px 26px;list-style:none;margin:0;padding:0;
}
.press__names li{
  font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.55);
}

@media (max-width:760px){
  .print__pair{grid-template-columns:1fr}
  .flip__static{grid-template-columns:1fr}
  .flip__bar{gap:18px}
  .press__logos{gap:18px 22px}
  .press__logos img{height:17px}
  .press__names{gap:6px 16px}
  .press__names li{font-size:.7rem}
}

/* ---------- gallery variants ---------- */
.shots--strip{grid-template-columns:repeat(4,1fr);grid-auto-rows:230px}
.shots--strip .shot{grid-column:auto;grid-row:auto}

.shots--page{grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;grid-auto-flow:dense}
.shots--page .shot{grid-column:auto;grid-row:auto}
.shots--page .shot--a{grid-column:span 2;grid-row:span 2}
.shots--page .shot--wide{grid-column:span 2}
.shots--page .shot--tall{grid-row:span 2}

.gal__more{margin:26px 0 0;text-align:right}

@media (max-width:900px){
  .shots--strip{grid-template-columns:repeat(2,1fr);grid-auto-rows:190px}
  .pl{grid-template-columns:minmax(0,1fr) 300px;gap:16px}
  .pl__item{grid-template-columns:96px minmax(0,1fr)}
  .shots--page{grid-template-columns:repeat(3,1fr);grid-auto-rows:180px}
}
@media (max-width:640px){
  .shots--strip{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
  /* stacked on a phone: player on top, the list scrolling underneath */
  .pl{grid-template-columns:1fr;gap:0}
  .pl__stage{border-radius:4px 4px 0 0}
  /* stacked, so the player's height no longer bounds the list */
  .pl__side{border-radius:0 0 4px 4px;border-top:0;max-height:none}
  .pl__list{max-height:280px}
  .pl__item{grid-template-columns:104px minmax(0,1fr);padding:9px 10px}
  .pl__head{padding:12px 14px 28px}
  .pl__head-t{font-size:0.86rem}
  .pl__play{width:56px;height:40px}
  .shots--page{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
  .shots--page .shot--a{grid-column:span 2;grid-row:span 2}
  .shots--page .shot--wide,.shots--page .shot--tall{grid-column:span 2;grid-row:auto}
  .gal__more{text-align:left}
}

/* ==========================================================
   MAGAZINE — cover grid + reader lightbox
   ========================================================== */
.mags{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,32px)}
.mag{
  display:block;text-align:left;padding:0;background:none;border:0;cursor:pointer;
  color:inherit;font:inherit;
}
.mag__cover{
  display:block;position:relative;overflow:hidden;background:var(--navy-d);
  box-shadow:0 18px 40px -18px rgba(0,0,0,.65);transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.mag__cover img{width:100%;aspect-ratio:1/1.414;object-fit:cover;display:block}
.mag__flip{
  position:absolute;inset:auto 0 0 0;padding:14px;text-align:center;
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:#fff;
  background:linear-gradient(transparent,rgba(7,20,49,.92));
  opacity:0;transform:translateY(6px);transition:.35s var(--ease);
}
.mag:hover .mag__cover,.mag:focus-visible .mag__cover{transform:translateY(-6px);box-shadow:0 26px 54px -20px rgba(0,0,0,.8)}
.mag:hover .mag__flip,.mag:focus-visible .mag__flip{opacity:1;transform:none}
.mag:focus-visible{outline:2px solid var(--gold-l);outline-offset:6px}
.mag__meta{display:block;padding-top:14px}
.mag__meta strong{display:block;font-family:var(--serif);font-size:1.05rem;font-weight:400;color:#fff}
.mag__meta em{
  display:block;font-style:normal;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.5);margin-top:3px;
}

body.is-locked{overflow:hidden}

.magbox{
  position:fixed;inset:0;z-index:220;background:rgba(5,12,28,.97);
  display:flex;flex-direction:column;
}
.magbox[hidden]{display:none}
.magbox__bar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px clamp(14px,3vw,30px);border-bottom:1px solid rgba(255,255,255,.1);flex:none;
}
.magbox__title{
  margin:0;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-l);
}
.magbox__x{font-size:2rem;line-height:1;color:#fff;padding:0 6px;transition:color .3s}
.magbox__x:hover{color:var(--gold-l)}
.magbox__stage{flex:1;display:flex;align-items:center;justify-content:center;padding:10px;min-height:0}
.magbox__book{margin:0 auto;touch-action:pan-y}
.magbox__pg{background:var(--navy-d);overflow:hidden}
.magbox__pg img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;user-select:none}
.magbox__nav{
  flex:none;display:flex;align-items:center;justify-content:center;gap:24px;
  padding:14px 16px calc(14px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(255,255,255,.1);
}

@media (max-width:1080px){ .mags{grid-template-columns:repeat(3,1fr)} }
@media (max-width:760px){
  .mags{grid-template-columns:repeat(2,1fr);gap:16px}
  .mag__flip{opacity:1;transform:none;font-size:.6rem;padding:10px}
  .magbox__nav{gap:18px}
}

/* ---------- press strip: per-logo sizing ---------- */
.press__logos .press__tall img{height:34px;opacity:.85}
.press__logos .press__badge img{height:36px;opacity:1}


/* ---------- hero: split layout (about page) + shared invite block ---------- */
.hero{
  display:grid;grid-template-columns:1.02fr .98fr;align-items:stretch;
  background:var(--paper);border-bottom:1px solid var(--rule);
}
.hero__text{
  padding:clamp(52px,6.5vw,104px) clamp(30px,4.5vw,72px) clamp(52px,6vw,90px)
          max(20px,calc((100vw - var(--shell))/2));
  display:flex;flex-direction:column;justify-content:center;
}
.hero h1{margin-bottom:.42em}
.hero__lede{
  font-size:clamp(1rem,1.25vw,1.1rem);max-width:46ch;
  color:var(--ink-2);margin-bottom:2.2rem;
}
.hero__fig{position:relative;margin:0;overflow:hidden;min-height:min(84vh,760px);background:var(--navy)}
.hero__fig img{width:100%;height:100%;object-fit:cover;object-position:center 34%}
.hero__fig figcaption{
  position:absolute;left:0;bottom:0;background:var(--navy);color:#fff;
  padding:18px 26px;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  display:flex;flex-direction:column;gap:4px;
}
.hero__fig figcaption span{
  font-family:var(--serif);font-size:1.15rem;letter-spacing:.02em;
  text-transform:none;color:var(--gold-l);
}

.invite{
  display:flex;flex-wrap:wrap;margin:0 0 2.3rem;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 0;
}
.invite>div{padding-right:34px;margin-right:34px;border-right:1px solid var(--rule)}
.invite>div:last-child{border-right:0;margin-right:0;padding-right:0}
.invite dt{
  font-size:.62rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin-bottom:5px;
}
.invite dd{margin:0;font-family:var(--serif);font-size:1.12rem;color:var(--ink)}

.hero__act{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-bottom:1.9rem}
.hero__count{margin:0;font-size:.82rem;color:var(--ink-3)}
.hero__count b{font-family:var(--serif);font-size:1.15rem;color:var(--gold);font-weight:500}

/* ==========================================================
   HERO — film fills the right-hand panel
   ========================================================== */
.hero__text{padding-block:clamp(40px,3.4vw,54px)}

/* keep Date / Venue / Entry on a single line in the hero */
.hero .invite{flex-wrap:nowrap;align-items:flex-start}
.hero .invite>div{padding-right:clamp(16px,1.7vw,24px);margin-right:clamp(16px,1.7vw,24px);flex:0 0 auto}
.hero .invite dd{font-size:clamp(.95rem,1.05vw,1.06rem);white-space:nowrap}
.hero .invite dt{white-space:nowrap}
.hero h1{font-size:clamp(2.2rem,4vw,3.3rem);margin-bottom:.36em}
.hero__lede{margin-bottom:1.6rem;max-width:44ch}
.hero .invite{padding:14px 0;margin-bottom:1.7rem}
.hero__act{margin-bottom:1.3rem}

.hero__fig{min-height:min(72vh,620px)}
.hero__fig--film{background:#060d1b}
.hero__fig--film .hero__video{
  position:absolute;top:0;bottom:0;left:-13%;width:126%;height:100%;
  display:block;object-fit:cover;object-position:50% 45%;
  pointer-events:none;
}
.hero__fig--film figcaption{z-index:2}

@media (max-width:900px){
  /* restated here: the base .hero rule above would otherwise win on source order */
  .hero{grid-template-columns:1fr}
  .hero__text{
    padding:44px 20px 40px;max-width:var(--shell);margin-inline:auto;width:100%;
  }
  .hero h1{max-width:none}
  .hero__fig{order:-1;min-height:46vh}
  .hero .invite{display:grid;grid-template-columns:1fr 1fr;gap:14px;flex-wrap:wrap}
  .hero .invite>div{border-right:0;padding-right:0;margin-right:0}
}
@media (max-width:640px){
  .hero__fig{min-height:42vh}
}
@media (prefers-reduced-motion:reduce){
  .hero__fig--film .hero__video{display:none}
  .hero__fig--film{background:#060d1b url("images/hero-film-poster.jpg") 50% 48%/cover}
}

/* ---------- mobile menu backdrop ---------- */
.nav-bd{
  /* below the header (z-index 70) so the burger and the panel stay tappable */
  position:fixed;inset:0;z-index:60;
  background:rgba(6,13,27,.55);backdrop-filter:blur(2px);
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s;
}
.nav-bd.is-on{opacity:1;visibility:visible}
@media (min-width:901px){ .nav-bd{display:none} }

/* ---------- press strip: stacked label + even grid ----------
   ".press ul" (0-1-1) outranks a bare ".press__logos" (0-1-0),
   so these are written as ".press ul.press__logos" to win cleanly. */
.press__in{display:block;padding:clamp(24px,3vw,34px) 0}
.press__lbl{margin:0 0 clamp(18px,2.2vw,26px);white-space:normal}

.press ul.press__logos{
  display:grid;grid-template-columns:repeat(5,1fr);
  gap:clamp(18px,2.2vw,26px) clamp(14px,1.8vw,24px);
  align-items:center;list-style:none;margin:0;padding:0;
}
.press ul.press__logos li{display:flex;align-items:center;justify-content:center;min-width:0}
.press ul.press__logos img{
  height:26px;width:auto;max-width:100%;display:block;
  opacity:.82;transition:opacity .3s var(--ease);
}
.press ul.press__logos li:hover img{opacity:1}
.press ul.press__logos .press__tall img{height:38px;opacity:.9}
.press ul.press__logos .press__badge img{height:33px;opacity:1;border-radius:7px}

@media (max-width:900px){
  .press__in{display:block}
  .press ul.press__logos{grid-template-columns:repeat(3,1fr);gap:22px 14px}
  .press ul.press__logos img{height:22px}
  .press ul.press__logos .press__tall img{height:31px}
  .press ul.press__logos .press__badge img{height:29px}
}
@media (max-width:560px){
  .press ul.press__logos{grid-template-columns:repeat(2,1fr);gap:20px 12px}
  .press ul.press__logos img{height:18px}
  .press ul.press__logos .press__tall img{height:28px}
  .press ul.press__logos .press__badge img{height:26px}
}

/* ==========================================================
   PHOTO SLIDER
   ========================================================== */
.slider-sec{padding-bottom:clamp(50px,6vw,84px)}
.sec__head--row{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  max-width:none;margin-bottom:clamp(28px,3.4vw,42px);
}
.sec__head--row h2{margin-bottom:0}
.slider__ctrl{display:flex;gap:10px;flex:none}
.slider__btn{
  width:46px;height:46px;display:grid;place-items:center;
  border:1px solid var(--rule-d);color:var(--gold-l);font-size:1.6rem;line-height:1;
  transition:.3s var(--ease);
}
.slider__btn:hover:not(:disabled){background:rgba(207,162,87,.14);border-color:var(--gold-l)}
.slider__btn:disabled{opacity:.28;cursor:default}

.slider{
  overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;
}
.slider::-webkit-scrollbar{display:none}
.slider.is-grabbing{cursor:grabbing;scroll-snap-type:none}
.slider__track{
  display:flex;gap:14px;
  padding-inline:max(20px,calc((100vw - var(--shell)) / 2));
}
.slide{
  flex:0 0 clamp(230px,25vw,340px);margin:0;scroll-snap-align:start;
  aspect-ratio:4/3;overflow:hidden;background:var(--navy-d);
}
.slide img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .8s var(--ease),opacity .4s;user-select:none;-webkit-user-drag:none;
}
.slide:hover img{transform:scale(1.04);opacity:.92}

@media (max-width:760px){
  .sec__head--row{flex-direction:column;align-items:flex-start;gap:18px}
  .slider__track{gap:10px;padding-inline:17px}
  .slide{flex:0 0 76vw;aspect-ratio:4/3}
}

/* ==========================================================
   MEDIA PARTNERS PAGE
   ========================================================== */
.partners-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:1px;
  background:var(--rule-d);border:1px solid var(--rule-d);
}
.partner-card{
  background:var(--navy);padding:26px 20px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  transition:background .35s var(--ease);
}
.partner-card:hover{background:var(--navy-l)}
.partner-card__mark{display:flex;align-items:center;justify-content:center;height:40px}
.partner-card__mark img{height:26px;width:auto;max-width:100%;opacity:.85}
.partner-card__mark.press__tall img{height:38px}
.partner-card__mark.press__badge img{height:34px;border-radius:7px;opacity:1}
.partner-card h3{
  font-family:var(--sans);font-size:.82rem;font-weight:500;letter-spacing:.04em;
  color:#fff;margin:0;
}
.partner-card p{margin:0;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45)}

/* the single magazine, shown large */
.mag-feature{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,72px);align-items:center}
.mag-feature__cover .mag{width:100%}
.mag-feature__cover .mag__cover{box-shadow:0 26px 60px -24px rgba(11,27,61,.55)}
.mag-feature__copy h2{margin-bottom:.4em}
.mag-feature__copy .invite{margin-top:1.6rem;margin-bottom:0}

/* gallery tabs */
.gtabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:clamp(22px,2.6vw,32px);border-bottom:1px solid var(--rule)}
.gtab{
  padding:12px 20px;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);border-bottom:2px solid transparent;margin-bottom:-1px;transition:.3s var(--ease);
}
.gtab:hover{color:var(--ink)}
.gtab.is-on{color:var(--gold);border-bottom-color:var(--gold)}
.gpanels{display:block}
.gpanel{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gpanel[hidden]{display:none}
.gpanel .shot{aspect-ratio:4/3;cursor:zoom-in;overflow:hidden;background:var(--navy-d)}
.gpanel .shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease)}
.gpanel .shot:hover img{transform:scale(1.05)}

@media (max-width:1080px){ .partners-grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width:860px){
  .mag-feature{grid-template-columns:1fr;gap:30px}
  .mag-feature__cover{max-width:320px}
  .gpanel{grid-template-columns:repeat(2,1fr);gap:10px}
}
@media (max-width:560px){
  .partners-grid{grid-template-columns:repeat(2,1fr)}
  .partner-card{padding:20px 12px}
  .gtab{padding:10px 13px;font-size:.68rem}
}

/* ==========================================================
   NOMINATE — download / offline entry
   ========================================================== */
.offline__in{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,72px);align-items:start}
.offline__copy h2{margin-bottom:.4em}
.offline__note{
  margin:0;padding-top:16px;border-top:1px solid var(--rule);
  font-size:.86rem;font-style:italic;color:var(--ink-3);
}
.offline__acts{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.offline__acts .btn{width:100%;justify-content:center}
.offline__send{display:flex;flex-wrap:wrap;gap:8px 26px}
.offline__to{display:grid;gap:16px;margin:6px 0 0;width:100%;
  padding-top:18px;border-top:1px solid var(--rule)}
.offline__to dt{
  font-size:.62rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin-bottom:5px;
}
.offline__to dd{margin:0;font-size:.93rem;line-height:1.7}
.offline__to a{color:var(--ink);border-bottom:1px solid var(--rule)}
.offline__to a:hover{color:var(--gold)}

@media (max-width:860px){
  .offline__in{grid-template-columns:1fr;gap:28px}
}

/* ---------- nomination form: roomier on small screens ---------- */
@media (max-width:760px){
  .nf{padding:clamp(30px,5vw,44px) 0 clamp(44px,7vw,66px)}
  .nf .shell{width:calc(100% - 28px)}
  .nf__in{gap:24px}
  /* hold the fields inside a card so they don't run to the screen edge */
  .nf__main{
    width:100%;max-width:32rem;margin-inline:auto;
    border:1px solid var(--rule);background:var(--paper);
    padding:22px 18px 26px;
  }
  .nf__sec{margin-bottom:30px;padding-bottom:24px}
  .nf__sec > h2{font-size:1.14rem}
  .nf__grid{gap:0 14px}
  .f__l{font-size:.67rem}
  .nf__form input,.nf__form select,.nf__form textarea{font-size:16px}
  .nf__req{margin-bottom:18px}
}
@media (max-width:420px){
  .nf .shell{width:calc(100% - 20px)}
  .nf__main{padding:18px 14px 22px}
}

/* ==========================================================
   BLOG
   ========================================================== */
.post__in{max-width:62ch}
.post h2{font-size:clamp(1.3rem,2.1vw,1.75rem);margin:2.2em 0 .5em}
.post h2:first-child{margin-top:0}
.post p{font-size:1.02rem;line-height:1.8}
.post .pts{margin:1.4rem 0 1.8rem}
.post__cta{
  margin-top:clamp(36px,4vw,54px);padding-top:28px;border-top:1px solid var(--rule);
  display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;
}
.post__cta p{margin:0;font-family:var(--serif);font-style:italic;font-size:1.08rem;color:var(--ink)}

.post-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.post-grid--lg{grid-template-columns:repeat(3,1fr)}
.post-card{
  display:flex;flex-direction:column;gap:8px;background:var(--paper);
  padding:clamp(22px,2.6vw,32px);transition:background .35s var(--ease);
}
.post-card:hover{background:var(--soft)}
.post-card__img{display:block;margin:-.6rem 0 1rem;overflow:hidden;background:var(--navy-d)}
.post-card__img img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .8s var(--ease)}
.post-card:hover .post-card__img img{transform:scale(1.045)}
.post-card__k{font-size:.64rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.post-card h3{font-size:clamp(1.15rem,1.6vw,1.4rem);margin:0 0 .2em;color:var(--ink)}
.post-card p{margin:0;font-size:.93rem;color:var(--ink-2)}
.post-card__m{margin-top:auto;padding-top:14px;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}

@media (max-width:900px){
  .post-grid,.post-grid--lg{grid-template-columns:1fr}
}

/* ==========================================================
   ROUND 3 — press line, tier cards, one hero height,
             the magazines section, blog table of contents
   ========================================================== */

/* ---------- press strip: label and names on a single line ---------- */
.press__in{
  display:flex;align-items:center;flex-wrap:nowrap;
  gap:clamp(20px,3.2vw,44px);padding:18px 0;
}
.press__lbl{margin:0;flex:none;white-space:nowrap}
.press ul{
  display:flex;flex-wrap:nowrap;align-items:center;list-style:none;
  gap:clamp(16px,2.4vw,34px);margin:0;padding:0;min-width:0;
}
.press li{white-space:nowrap;font-size:clamp(.86rem,1.02vw,1.05rem)}
@media (max-width:900px){
  .press__in{flex-wrap:wrap;gap:10px 22px;padding:16px 0}
  .press ul{flex-wrap:wrap;gap:8px 18px}
  .press li{font-size:.92rem}
}

/* ---------- tier cards: aligned columns + Know more ---------- */
.pkg{padding-bottom:30px}
.pkg__intro{min-height:3.2em}
.pkg ul{margin-bottom:1.1rem}
.pkg:not(.is-open) li:nth-child(n+7){display:none}
.pkg:not(.is-open) .pkg__not{display:none}
.pkg__not{margin:0 0 1.2rem}
.pkg__more{
  margin-top:auto;width:100%;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-top:14px;border-top:1px solid var(--rule);
  font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);text-align:left;transition:color .3s var(--ease);
}
.pkg__more::after{
  content:"";flex:none;width:7px;height:7px;
  border-right:1px solid currentColor;border-bottom:1px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease);
}
.pkg.is-open .pkg__more::after{transform:rotate(-135deg) translateY(-1px)}
.pkg__more:hover{color:var(--ink)}
@media (max-width:860px){
  .pkg__intro{min-height:0}
}

/* ---------- one hero height across every page ---------- */
:root{--hero-h:700px}
.hero{min-height:var(--hero-h)}
.hero__fig{min-height:var(--hero-h)}
.hero--page .hero__fig{min-height:var(--hero-h)}
.hero--page .hero__text{padding-block:clamp(40px,3.4vw,54px)}
@media (max-width:900px){
  .hero{min-height:0}
  .hero__fig,
  .hero--page .hero__fig{min-height:46vh}
}

/* ---------- the magazines ---------- */
.magz__hint{margin:1rem 0 0;font-size:.92rem;color:var(--ink-3)}
.magz .flip__stage{display:flex;flex-direction:column;align-items:center;margin-top:clamp(26px,3.4vw,44px)}
.magz .flip__book{margin:0 auto;touch-action:pan-y}
.magz .flip__book{transition:transform .45s var(--ease)}
.magz .flip__stage.is-first .flip__book{transform:translateX(-25%)}
.magz .flip__stage.is-last .flip__book{transform:translateX(25%)}
@media (max-width:859px){
  .magz .flip__stage.is-first .flip__book,
  .magz .flip__stage.is-last .flip__book{transform:none}
}
.magz .flip__pg{background:var(--soft);overflow:hidden}
.magz .flip__btn{border-color:var(--rule);color:var(--gold)}
.magz .flip__btn:hover:not(:disabled){background:rgba(169,128,58,.1);border-color:var(--gold)}
.magz .flip__count{color:var(--ink-3)}
.magz .flip__count i{color:var(--gold)}
.magz .flip__fallback{color:var(--ink-2)}
.flip__full{
  font-size:.64rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);border-bottom:1px solid var(--rule);padding-bottom:3px;
  transition:border-color .3s var(--ease);
}
.flip__full:hover{border-bottom-color:var(--gold)}
.magz__meta{
  max-width:640px;margin:clamp(30px,3.6vw,46px) auto 0;justify-content:center;
}
@media (max-width:560px){
  .magz .flip__bar{gap:14px}
  .magz__meta{display:grid;grid-template-columns:1fr;gap:12px}
  .magz__meta>div{border-right:0;padding-right:0;margin-right:0}
}

/* ---------- blog: table of contents ---------- */
.post__wrap{
  display:grid;grid-template-columns:210px minmax(0,62ch);
  gap:clamp(30px,5vw,74px);align-items:start;
}
.toc{position:sticky;top:104px}
.toc__lbl{
  margin:0 0 14px;font-size:.62rem;font-weight:500;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold);
}
.toc__list{list-style:none;margin:0;padding:0;border-left:1px solid var(--rule)}
.toc__list a{
  display:block;padding:8px 0 8px 16px;margin-left:-1px;
  border-left:1px solid transparent;
  font-size:.86rem;line-height:1.45;color:var(--ink-3);
  transition:color .3s var(--ease),border-color .3s var(--ease);
}
.toc__list a:hover{color:var(--ink)}
.toc__list a.is-on{color:var(--ink);border-left-color:var(--gold)}
@media (max-width:980px){
  .post__wrap{grid-template-columns:1fr}
  .toc{position:static;margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--rule)}
  .toc__list{display:flex;flex-wrap:wrap;gap:0 20px;border-left:0}
  .toc__list a{padding:5px 0;margin-left:0;border-left:0}
  .toc__list a.is-on{border-left:0;color:var(--gold)}
}

/* the hero image must fill its panel, never drive the hero's height */
.hero__fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (min-width:901px){
  .hero{height:var(--hero-h)}
  .hero__text{overflow:hidden}
}

/* ==========================================================
   ROUND 4 — trophies on the tiers, the turning trophy,
             the media partner logo slider
   ========================================================== */

/* ---------- a trophy at the head of each tier card ---------- */
.pkg__shot{
  width:min(100%,196px);aspect-ratio:4/5;
  margin:0 0 1.3rem;overflow:hidden;background:var(--navy-d);
}
.pkg__shot img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .9s var(--ease);
}
.pkg:hover .pkg__shot img{transform:scale(1.04)}
@media (max-width:860px){
  .pkg__shot{width:min(100%,170px)}
}


/* ---------- media partner logo slider ---------- */
.logos-sec{overflow:hidden}
.logos-sec--band{
  background:var(--navy-d);color:#fff;
  padding:clamp(34px,4.2vw,58px) 0 clamp(30px,3.8vw,50px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.logos-sec__head{
  display:flex;align-items:baseline;gap:clamp(14px,2.4vw,30px);flex-wrap:wrap;
  margin-bottom:clamp(24px,3vw,38px);
}
.logos-sec__head .idx{margin:0}
.logos-sec__head p{margin:0;font-size:.95rem;color:rgba(255,255,255,.66)}
.logos-sec__head .ulink{margin-left:auto}

.logos{
  position:relative;overflow:hidden;
  margin-top:clamp(20px,2.6vw,34px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.logos-sec--band .logos{margin-top:0}
.logos__track{
  display:flex;align-items:stretch;width:max-content;
  animation:logos-roll 56s linear infinite;
}
.logos:hover .logos__track,
.logos:focus-within .logos__track{animation-play-state:paused}
@keyframes logos-roll{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

.logos__cell{
  flex:0 0 clamp(150px,14vw,196px);
  display:flex;align-items:center;justify-content:center;
  padding:0 clamp(16px,1.8vw,26px);
  border-right:1px solid rgba(255,255,255,.1);
}
.logos__mark{display:flex;align-items:center;justify-content:center;height:52px}
.logos__mark img{height:26px;width:auto;max-width:100%;opacity:.85;transition:opacity .3s var(--ease)}
.logos__cell:hover .logos__mark img{opacity:1}
.logos__mark.press__tall img{height:38px}
.logos__mark.press__badge img{height:34px;border-radius:7px;opacity:1}

@media (max-width:640px){
  .logos__cell{flex:0 0 136px;padding:0 16px}
  .logos__mark{height:44px}
  .logos__mark img{height:22px}
  .logos__mark.press__tall img{height:32px}
  .logos__mark.press__badge img{height:29px}
  .logos-sec__head{gap:8px 18px}
  .logos-sec__head .ulink{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  .logos{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
  .logos__track{animation:none}
}

/* ---------- the logo slider, on a light ground ---------- */
.logos-sec--band{
  background:var(--paper);color:var(--ink);
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.logos-sec__head p{color:var(--ink-2)}
.logos__cell{border-right:1px solid var(--rule)}
.logos__mark img{
  opacity:.62;
  filter:grayscale(1) contrast(.92);
  transition:opacity .35s var(--ease),filter .35s var(--ease);
}
.logos__cell:hover .logos__mark img{opacity:1;filter:none}
.logos__mark.press__badge img{opacity:.62;filter:grayscale(1) contrast(.92)}
.logos__cell:hover .logos__mark.press__badge img{opacity:1;filter:none}

/* ---------- logo slider: soft ground, no dividers ---------- */
.logos-sec--band{background:var(--soft)}
.logos__cell{border-right:0}
.logos__cell{flex:0 0 clamp(168px,16vw,224px)}
@media (max-width:640px){ .logos__cell{flex:0 0 148px} }

/* squarer marks need more height than the wordmarks to read at the same weight */
.logos__mark.press__tall img{height:40px}
.logos__mark.press__badge img{height:40px;border-radius:0}
@media (max-width:640px){
  .logos__mark.press__tall img,
  .logos__mark.press__badge img{height:34px}
}

/* pale, light-toned marks need a darker resting state to hold their weight */
.logos__mark.press__light img{opacity:.85;filter:grayscale(1) brightness(.55) contrast(1.25)}
.logos__cell:hover .logos__mark.press__light img{opacity:1;filter:none}

/* ==========================================================
   CATEGORIES — compact tag field, collapsed by default
   ========================================================== */
.cats{
  counter-reset:none;column-count:initial;column-gap:normal;
  display:flex;flex-wrap:wrap;gap:8px;
  list-style:none;margin:22px 0 0;padding:0;
}
.cats li{
  counter-increment:none;break-inside:auto;
  display:inline-flex;align-items:center;gap:0;
  padding:9px 15px;border:1px solid var(--rule-d);border-bottom:1px solid var(--rule-d);
  font-size:.83rem;line-height:1.25;color:rgba(255,255,255,.76);
  transition:color .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease);
}
.cats li::before{content:none}
.cats li:hover{color:#fff;border-color:var(--gold-l);background:rgba(207,162,87,.09)}

/* only the first rows show until the reader asks for the rest */
.cats:not(.is-all) li:nth-child(n+15){display:none}

.cats__more{
  margin-top:22px;
  display:inline-flex;align-items:center;gap:10px;
  font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-l);padding-bottom:5px;border-bottom:1px solid var(--rule-d);
  transition:color .3s var(--ease),border-color .3s var(--ease);
}
.cats__more::after{
  content:"";width:7px;height:7px;flex:none;
  border-right:1px solid currentColor;border-bottom:1px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease);
}
.cats__more[aria-expanded="true"]::after{transform:rotate(-135deg) translateY(-1px)}
.cats__more:hover{color:#fff;border-color:var(--gold-l)}
.cats__more[hidden]{display:none}

.cat__tools{padding-bottom:16px;margin-bottom:0}
.cats__note{margin-top:26px}

@media (max-width:860px){
  .cats{gap:7px;margin-top:18px}
  .cats li{padding:8px 13px;font-size:.79rem}
  .cats:not(.is-all) li:nth-child(n+11){display:none}
  .cats__note{margin-top:22px;font-size:.82rem}
}

/* the desk numbers sit on their own line and never break mid-number */
.pkgs__tel{
  display:block;margin-top:.55rem;font-style:normal;
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.45em;
}
.pkgs__tel a{white-space:nowrap}
.pkgs__tel i{font-style:italic;color:var(--ink-3)}

/* ==========================================================
   NOMINATION FORM — mobile step-by-step
   (screen only: on paper the whole form has to print)
   ========================================================== */
@media screen and (max-width:860px){
  .nf__form.is-wizard > .nf__sec{display:none}
  .nf__form.is-wizard > .nf__sec.is-step{
    display:block;border-bottom:0;padding-bottom:0;margin-bottom:0;
  }
  .nf__form.is-wizard > .nf__sec[hidden]{display:none !important}

  .wz{
    position:sticky;top:var(--head-h,77px);z-index:30;
    background:var(--paper);padding:14px 0 12px;
    border-bottom:1px solid var(--rule);margin-bottom:26px;
  }
  .wz__top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
  .wz__count{
    margin:0;flex:none;font-size:.6rem;font-weight:500;letter-spacing:.2em;
    text-transform:uppercase;color:var(--gold);
  }
  .wz__name{
    margin:0;font-family:var(--serif);font-size:1.02rem;line-height:1.25;
    color:var(--ink);text-align:right;
  }
  .wz__rail{margin-top:11px;height:2px;background:var(--rule);overflow:hidden}
  .wz__rail i{display:block;height:100%;width:0;background:var(--gold);transition:width .4s var(--ease)}

  .wz__msg{
    margin:20px 0 0;font-size:.86rem;color:#b3261e;min-height:0;
  }
  .wz__msg:empty{display:none}

  .wz__nav{
    position:sticky;bottom:0;z-index:30;
    display:flex;align-items:center;gap:12px;
    margin-top:26px;padding:14px 0 calc(14px + env(safe-area-inset-bottom));
    background:var(--paper);border-top:1px solid var(--rule);
  }
  .wz__nav.is-last{position:static;margin-top:30px}
  .wz__back{
    flex:none;padding:14px 20px;border:1px solid var(--rule);
    font-size:.68rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink-2);transition:.25s var(--ease);
  }
  .wz__back:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}
  .wz__back:disabled{opacity:.3}
  .wz__next{flex:1;justify-content:center}

  /* the step number lives in the bar above, so the heading drops its counter */
  .nf__form.is-wizard > .nf__sec.is-step > h2{
    font-size:1.3rem;margin-bottom:.35em;padding-left:0;
  }
  .nf__form.is-wizard > .nf__sec.is-step > h2::before{content:none}
  .nf__form.is-wizard .nf__submit{flex-direction:column;align-items:stretch;gap:12px}
  .nf__form.is-wizard .nf__submit .btn{width:100%;justify-content:center}
}

/* ---------- partner logos in their own colours ---------- */
.logos__mark img,
.logos__mark.press__badge img,
.logos__mark.press__light img{
  opacity:1;filter:none;
}
.logos__cell{transition:opacity .3s var(--ease)}
.logos:hover .logos__cell{opacity:.45}
.logos:hover .logos__cell:hover{opacity:1}


/* the strip keeps rolling under the pointer — hovering only lifts one mark out */
.logos:hover .logos__track,
.logos:focus-within .logos__track{animation-play-state:running}

/* a rule where two soft sections meet on the media partners page */
#read + #gallery{border-top:1px solid var(--rule)}

/* ---------- mobile spacing ---------- */
@media (max-width:640px){
  .sec{padding:clamp(52px,12vw,72px) 0}
  .logos-sec--band{padding:46px 0 40px}
  .logos-sec__head{margin-bottom:28px;gap:6px 16px}
  .numbers{padding:44px 0}
  .press__in{padding:18px 0}
  .sec__head{margin-bottom:28px}
  .sec__head--row{gap:16px}
  .magz .flip__stage{margin-top:26px}
  .magz__meta{margin-top:30px}
  .post-grid{grid-template-columns:1fr}
  .pull{padding:52px 0}
  .nf{padding:40px 0 64px}
}

/* ==========================================================
   WHATSAPP BUTTON + FOOTER SOCIAL
   ========================================================== */
.wa{
  position:fixed;right:20px;bottom:20px;z-index:65;
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 16px;border-radius:4px;
  background:var(--navy);color:#fff;
  box-shadow:0 14px 30px -14px rgba(6,13,27,.7);
  transition:background .3s var(--ease),transform .3s var(--ease);
}
.wa svg{width:20px;height:20px;flex:none;display:block}
.wa span{
  font-size:.66rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  white-space:nowrap;
}
.wa:hover{background:#128c4a;transform:translateY(-2px)}
.wa:focus-visible{outline:2px solid var(--gold-l);outline-offset:3px}

/* the back-to-top pill stacks above it */
.top{bottom:80px}

@media (max-width:640px){
  .wa{right:14px;bottom:14px;padding:13px;gap:0}
  .wa span{display:none}
  .top{bottom:70px;right:14px}
}
/* the step wizard's sticky bar owns the bottom of the nomination page */
body.is-wizard-on .wa{bottom:84px}
body.is-wizard-on .top{display:none}

@media print{ .wa{display:none} }

/* ---------- footer: follow ---------- */
.foot__social{margin-top:clamp(22px,2.6vw,32px)}
.foot__social h4{
  font-family:var(--sans);font-size:.66rem;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-l);margin:0 0 12px;
}

/* ---------- footer: follow, as marks ---------- */
.soc{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.soc__l{
  display:grid;place-items:center;width:38px;height:38px;
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.7);
  transition:color .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease);
}
.soc__l::before{
  content:"";display:block;width:17px;height:17px;background:currentColor;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;
}
.soc__l:hover{color:#fff;background:var(--gold);border-color:var(--gold)}
.soc__l:focus-visible{outline:2px solid var(--gold-l);outline-offset:2px}
/* the name stays for screen readers and for anyone browsing without CSS masks */
.soc__l span{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.soc--ig::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20d=%22M12%200C8.74%200%208.333.015%207.053.072%205.775.132%204.905.333%204.14.63c-.789.306-1.459.717-2.126%201.384S.935%203.35.63%204.14C.333%204.905.131%205.775.072%207.053.012%208.333%200%208.74%200%2012s.015%203.667.072%204.947c.06%201.277.261%202.148.558%202.913.306.788.717%201.459%201.384%202.126.667.666%201.336%201.079%202.126%201.384.766.296%201.636.499%202.913.558C8.333%2023.988%208.74%2024%2012%2024s3.667-.015%204.947-.072c1.277-.06%202.148-.262%202.913-.558.788-.306%201.459-.718%202.126-1.384.666-.667%201.079-1.335%201.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319%201.347%2020.651.935%2019.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012%2015.26%200%2012%200zm0%202.16c3.203%200%203.585.016%204.85.071%201.17.055%201.805.249%202.227.415.562.217.96.477%201.382.896.419.42.679.819.896%201.381.164.422.36%201.057.413%202.227.057%201.266.07%201.646.07%204.85s-.015%203.585-.074%204.85c-.061%201.17-.256%201.805-.421%202.227-.224.562-.479.96-.899%201.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211%200-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844%200-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689%201.379-.898.42-.166%201.051-.361%202.221-.421%201.275-.045%201.65-.06%204.859-.06zm0%203.678a6.162%206.162%200%20100%2012.324%206.162%206.162%200%20000-12.324zM12%2016a4%204%200%20110-8%204%204%200%20010%208zm7.846-10.405a1.441%201.441%200%2001-2.88%200%201.44%201.44%200%20012.88%200z%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20d=%22M12%200C8.74%200%208.333.015%207.053.072%205.775.132%204.905.333%204.14.63c-.789.306-1.459.717-2.126%201.384S.935%203.35.63%204.14C.333%204.905.131%205.775.072%207.053.012%208.333%200%208.74%200%2012s.015%203.667.072%204.947c.06%201.277.261%202.148.558%202.913.306.788.717%201.459%201.384%202.126.667.666%201.336%201.079%202.126%201.384.766.296%201.636.499%202.913.558C8.333%2023.988%208.74%2024%2012%2024s3.667-.015%204.947-.072c1.277-.06%202.148-.262%202.913-.558.788-.306%201.459-.718%202.126-1.384.666-.667%201.079-1.335%201.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319%201.347%2020.651.935%2019.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012%2015.26%200%2012%200zm0%202.16c3.203%200%203.585.016%204.85.071%201.17.055%201.805.249%202.227.415.562.217.96.477%201.382.896.419.42.679.819.896%201.381.164.422.36%201.057.413%202.227.057%201.266.07%201.646.07%204.85s-.015%203.585-.074%204.85c-.061%201.17-.256%201.805-.421%202.227-.224.562-.479.96-.899%201.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211%200-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844%200-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689%201.379-.898.42-.166%201.051-.361%202.221-.421%201.275-.045%201.65-.06%204.859-.06zm0%203.678a6.162%206.162%200%20100%2012.324%206.162%206.162%200%20000-12.324zM12%2016a4%204%200%20110-8%204%204%200%20010%208zm7.846-10.405a1.441%201.441%200%2001-2.88%200%201.44%201.44%200%20012.88%200z%22/%3E%3C/svg%3E")}
.soc--fb::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20d=%22M24%2012.073C24%205.405%2018.627%200%2012%200S0%205.405%200%2012.073C0%2018.1%204.388%2023.094%2010.125%2024v-8.437H7.078v-3.49h3.047V9.43c0-3.007%201.792-4.669%204.533-4.669%201.312%200%202.686.235%202.686.235v2.953H15.83c-1.491%200-1.956.925-1.956%201.874v2.25h3.328l-.532%203.49h-2.796V24C19.612%2023.094%2024%2018.1%2024%2012.073z%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20d=%22M24%2012.073C24%205.405%2018.627%200%2012%200S0%205.405%200%2012.073C0%2018.1%204.388%2023.094%2010.125%2024v-8.437H7.078v-3.49h3.047V9.43c0-3.007%201.792-4.669%204.533-4.669%201.312%200%202.686.235%202.686.235v2.953H15.83c-1.491%200-1.956.925-1.956%201.874v2.25h3.328l-.532%203.49h-2.796V24C19.612%2023.094%2024%2018.1%2024%2012.073z%22/%3E%3C/svg%3E")}
.soc--yt::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20d=%22M23.498%206.186a3.016%203.016%200%200%200-2.122-2.136C19.505%203.545%2012%203.545%2012%203.545s-7.505%200-9.377.505A3.017%203.017%200%200%200%20.502%206.186C0%208.07%200%2012%200%2012s0%203.93.502%205.814a3.016%203.016%200%200%200%202.122%202.136c1.871.505%209.376.505%209.376.505s7.505%200%209.377-.505a3.015%203.015%200%200%200%202.122-2.136C24%2015.93%2024%2012%2024%2012s0-3.93-.502-5.814ZM9.545%2015.568V8.432L15.818%2012l-6.273%203.568Z%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20d=%22M23.498%206.186a3.016%203.016%200%200%200-2.122-2.136C19.505%203.545%2012%203.545%2012%203.545s-7.505%200-9.377.505A3.017%203.017%200%200%200%20.502%206.186C0%208.07%200%2012%200%2012s0%203.93.502%205.814a3.016%203.016%200%200%200%202.122%202.136c1.871.505%209.376.505%209.376.505s7.505%200%209.377-.505a3.015%203.015%200%200%200%202.122-2.136C24%2015.93%2024%2012%2024%2012s0-3.93-.502-5.814ZM9.545%2015.568V8.432L15.818%2012l-6.273%203.568Z%22/%3E%3C/svg%3E")}
.soc--li::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20d=%22M20.447%2020.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853%200-2.136%201.445-2.136%202.939v5.667H9.351V9h3.414v1.561h.046c.477-.9%201.637-1.85%203.37-1.85%203.601%200%204.267%202.37%204.267%205.455v6.286zM5.337%207.433a2.062%202.062%200%2001-2.063-2.065%202.064%202.064%200%20112.063%202.065zm1.782%2013.019H3.555V9h3.564v11.452zM22.225%200H1.771C.792%200%200%20.774%200%201.729v20.542C0%2023.227.792%2024%201.771%2024h20.451C23.2%2024%2024%2023.227%2024%2022.271V1.729C24%20.774%2023.2%200%2022.222%200h.003z%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%3E%3Cpath%20d=%22M20.447%2020.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853%200-2.136%201.445-2.136%202.939v5.667H9.351V9h3.414v1.561h.046c.477-.9%201.637-1.85%203.37-1.85%203.601%200%204.267%202.37%204.267%205.455v6.286zM5.337%207.433a2.062%202.062%200%2001-2.063-2.065%202.064%202.064%200%20112.063%202.065zm1.782%2013.019H3.555V9h3.564v11.452zM22.225%200H1.771C.792%200%200%20.774%200%201.729v20.542C0%2023.227.792%2024%201.771%2024h20.451C23.2%2024%2024%2023.227%2024%2022.271V1.729C24%20.774%2023.2%200%2022.222%200h.003z%22/%3E%3C/svg%3E")}

/* the marks sit on a true square and are sized for equal optical weight */
.soc li{display:flex}
.soc__l{box-sizing:border-box;line-height:0}
/* each mark is sized so the four read at the same weight, not the same box */
.soc--ig::before{width:18px;height:18px}
.soc--fb::before{width:16px;height:16px}
.soc--yt::before{width:18px;height:18px}
.soc--li::before{width:16px;height:16px}

/* ==========================================================
   HEADER LOCKUP — strapline under the name
   ========================================================== */
.mark--tag{flex-direction:column;align-items:flex-start;gap:6px}
.mark--tag .mark__row{display:flex;align-items:baseline;gap:9px;line-height:1}
.mark__tag{
  display:block;
  font-size:6px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);line-height:1.7;
}
.mark__tag i{display:block;font-style:normal;color:var(--gold)}
.mark:hover .mark__tag{color:var(--ink-2)}
@media (max-width:560px){
  .mark__tag{font-size:6px;letter-spacing:.11em;line-height:1.6}
  .mark--tag{gap:5px}
}

/* the new hero film is a squared-off frame — it fills the panel as it is */
.hero__fig--film .hero__video{
  position:absolute;inset:0;left:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 50%;
}

/* the hero film shows the whole frame — nothing of the artwork is cropped away */
.hero__fig--film{background:var(--navy)}
.hero__fig--film .hero__video{object-fit:contain;object-position:50% 50%}
@media (max-width:900px){
  /* on a phone the panel takes the film's own shape, so it fits edge to edge */
  .hero__fig--film{min-height:0;height:auto;aspect-ratio:960/992}
}

/* on a phone the date tag would sit over the film's own call to action —
   the same date and venue are in the list directly above it */
@media (max-width:900px){
  .hero__fig--film figcaption{display:none}
}

/* the tiers now follow the partner band — both sit on the soft ground */
.logos-sec--band + #packages{border-top:1px solid var(--rule)}
/* reduced motion: the still frame stands in for the film, on the same navy */
@media (prefers-reduced-motion:reduce){
  .hero__fig--film{
    background:var(--navy) url("images/hero-film-poster.jpg") 50% 50%/contain no-repeat;
  }
}

/* ==========================================================
   "NOMINATIONS ARE FREE" — one highlight, used site-wide
   ========================================================== */
.hl{
  font-weight:500;color:var(--gold);
  box-shadow:inset 0 -.34em 0 rgba(169,128,58,.14);
}
/* on the dark grounds the lighter gold holds up */
.sec--navy .hl,
.logos-sec--band .hl,
.foot .hl,
.hero__fig .hl{color:var(--gold-l);box-shadow:inset 0 -.34em 0 rgba(207,162,87,.16)}

.hero__count .hl{box-shadow:none}
.acc__a .hl,
.pts .hl{box-shadow:inset 0 -.3em 0 rgba(169,128,58,.13)}

.foot__free{
  margin:0 0 10px;font-size:.92rem;
}
.foot__free .hl{box-shadow:none;letter-spacing:.01em}

/* ==========================================================
   FORM DELIVERY — honeypot + note states
   ========================================================== */
.honey { display: none !important; }
.form__note.is-error { color: #b3261e; }
.form__note.is-ok { color: var(--gold); }

/* ==========================================================
   MEDIA PARTNERS — the magazine beside the blog, half and half
   ========================================================== */
.rw { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; position: relative; }
/* one rule down the middle, the full height of the block */
.rw::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: var(--rule); }
.rw__col--mag  { padding-right: clamp(26px,3vw,52px); }
.rw__col--blog { padding-left: clamp(26px,3vw,52px); }
.rw .sec__head { max-width: none; }
.rw .magz__meta { max-width: none; margin-left: 0; margin-right: 0; }
.rw__more { margin: 26px 0 0; }

/* the blog list reads as rows here, not as full cards */
.post-grid--stack {
  display: block; grid-template-columns: none; gap: 0;
  background: none; border: 0; border-top: 1px solid var(--rule);
  margin-top: clamp(20px,2.4vw,28px);
}
.post-grid--stack .post-card {
  display: grid; grid-template-columns: 132px minmax(0,1fr);
  column-gap: 20px; row-gap: 3px; align-items: start;
  padding: 20px 0; border-bottom: 1px solid var(--rule); background: none;
}
.post-grid--stack .post-card:hover { background: none; }
.post-grid--stack .post-card__img { grid-column: 1; grid-row: 1 / span 4; align-self: start; margin: 4px 0 0; }
.post-grid--stack .post-card__img img { aspect-ratio: 4/3; }
.post-grid--stack .post-card__k,
.post-grid--stack .post-card h3,
.post-grid--stack .post-card p,
.post-grid--stack .post-card__m { grid-column: 2; }
.post-grid--stack .post-card h3 { font-size: clamp(1.02rem,1.25vw,1.18rem); }
.post-grid--stack .post-card p { font-size: .88rem; }
.post-grid--stack .post-card__m { margin-top: 0; padding-top: 8px; }
.post-grid--stack .post-card:hover h3 { color: var(--gold); }

@media (max-width:980px){
  .rw { grid-template-columns: 1fr; }
  .rw::before { display: none; }
  .rw__col--mag { padding-right: 0; }
  .rw__col--blog {
    padding-left: 0; border-top: 1px solid var(--rule);
    margin-top: clamp(38px,5vw,56px); padding-top: clamp(34px,4.5vw,50px);
  }
}
@media (max-width:520px){
  .post-grid--stack .post-card { grid-template-columns: 96px minmax(0,1fr); column-gap: 14px; }
}
.magz .flip__stage.is-portrait.is-first .flip__book,
.magz .flip__stage.is-portrait.is-last .flip__book { transform: none; }

/* the flipbook may not grow past the width we reserved for it */
.magz .flip__book { max-width: var(--bookw, none) !important; }

/* ==========================================================
   PRINT — the whole form, on the whole page
   ========================================================== */
@media print {
  /* screen-only chrome that the wizard adds to the DOM */
  .wz, .wz__nav, .wz__msg, .hero, .offline, #download { display: none !important; }

  /* every answered section prints; the ones the entry type hides stay hidden */
  .nf__form.is-wizard > .nf__sec:not([hidden]) { display: block !important; }
  .nf__form.is-wizard .nf__req { display: block !important; }

  .nf__main { padding: 0 !important; border: 0 !important; background: #fff !important; }

  /* keep a field or an option group whole, but let a long section run on */
  .nf__sec { break-inside: auto; page-break-inside: auto; }
  .nf__sec > h2 { break-after: avoid; page-break-after: avoid; }
  .f, .opt, .nf__grp, .fac { break-inside: avoid; page-break-inside: avoid; }
}

/* the thank-you panel takes the whole width once the side index is gone */
.nf__in.is-done { grid-template-columns: minmax(0,1fr); }
.nf__in.is-done .nf__done { max-width: 720px; }
.nf__done { scroll-margin-top: 110px; }
.nf__req b { font-weight: 500; color: var(--ink); }
@media screen and (max-width:860px){
  .nf__form.is-wizard .nf__req { margin-bottom: 14px; }
}

/* ==========================================================
   HERO FILM — the whole frame links to the nomination page,
   with a real button sitting exactly where the film draws its
   own "Nominate Now" pill. script.js measures the film and
   sets --go-* so the two line up at every size.
   ========================================================== */
.hero__go {
  position: absolute; inset: 0; z-index: 3;
  display: block; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.hero__go-btn {
  position: absolute;
  left: var(--go-x, 29.4%);
  top: var(--go-y, 89.6%);
  width: var(--go-w, 42.4%);
  height: var(--go-h, 6.9%);
  min-height: 24px;
  display: grid; place-items: center;
  box-sizing: border-box;
  padding: 0 10px;
  border: 2px solid rgba(255, 255, 255, 0.88);
  border-radius: 999px;
  background: linear-gradient(180deg, #12100c 0%, #241c12 55%, #100d09 100%);
  box-shadow: 0 8px 22px -10px rgba(0, 0, 0, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.22);
  color: #fff;
  font-family: var(--serif);
  font-size: var(--go-fs, 1rem);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 1;
  transition: background 0.35s var(--ease), border-color 0.35s var(--ease),
              transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.hero__go:hover .hero__go-btn {
  background: linear-gradient(180deg, var(--gold-l), var(--gold));
  border-color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 26px -10px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.hero__go:focus-visible { outline: 0; }
.hero__go:focus-visible .hero__go-btn { outline: 3px solid var(--gold-l); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .hero__go-btn { transition: none; }
  .hero__go:hover .hero__go-btn { transform: none; }
}

/* ==========================================================
   NOMINATION FORM — "stuck? ask us on WhatsApp"
   Sits under the required-answer line, so it is at the top of
   the form on a desktop and on every step of the mobile wizard.
   ========================================================== */
.nf__sos {
  position: sticky;
  top: var(--sos-top, calc(var(--head-h, 77px) + 14px));
  z-index: 25;
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px;
  margin: -14px 0 clamp(22px,2.6vw,32px);
  padding: 12px 0;
  background: var(--paper);
  border-bottom: 1px solid var(--rule);
  font-size: 0.85rem; color: var(--ink-3);
}
.nf__sos-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  background: var(--navy); color: #fff;
  font-size: 0.68rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase;
  border-radius: 3px; white-space: nowrap;
  transition: background 0.3s var(--ease), transform 0.3s var(--ease);
}
.nf__sos-btn svg { width: 15px; height: 15px; display: block; flex: none; }
.nf__sos-btn:hover { background: #128c4a; transform: translateY(-1px); }
.nf__sos-btn:focus-visible { outline: 2px solid var(--gold-l); outline-offset: 2px; }

.nf__help-wa { margin: 0.55rem 0 0; }
.nf__help-wa a {
  font-size: 0.8rem; color: var(--ink);
  border-bottom: 1px solid var(--gold); padding-bottom: 1px;
}
.nf__help-wa a:hover { color: var(--gold); }

/* on a phone it sits directly under the sticky step bar — script.js
   measures that bar and sets --sos-top, so the two never overlap */
@media (max-width:860px){
  .nf__sos { padding: 10px 0; margin-bottom: 20px; }
}
@media (max-width:560px){
  .nf__sos { gap: 8px 10px; font-size: 0.78rem; padding: 9px 0; }
  .nf__sos-btn { flex: 1 1 auto; justify-content: center; padding: 8px 12px; font-size: 0.62rem; }
}
/* a phone held in landscape has no room for three sticky bars */
@media (max-height:520px){
  .nf__sos { position: static; }
}
@media print { .nf__sos, .nf__help-wa { display: none !important; } }
