/* Quota Zero Media House — self-contained site styles */

@font-face { font-family: "QZ Poppins"; src: url("fonts/poppins-300-latin.woff2") format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "QZ Poppins"; src: url("fonts/poppins-400-latin.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "QZ Poppins"; src: url("fonts/poppins-500-latin.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "QZ Poppins"; src: url("fonts/poppins-600-latin.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "QZ Hand"; src: url("fonts/TrashHand.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "QZ Poppins"; src: url("fonts/poppins-300-latin-ext.woff2") format("woff2"); font-weight: 300; font-display: swap; unicode-range: U+0100-024F, U+1E00-1EFF; }
@font-face { font-family: "QZ Poppins"; src: url("fonts/poppins-400-latin-ext.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0100-024F, U+1E00-1EFF; }
@font-face { font-family: "QZ Poppins"; src: url("fonts/poppins-500-latin-ext.woff2") format("woff2"); font-weight: 500; font-display: swap; unicode-range: U+0100-024F, U+1E00-1EFF; }

:root {
  --basalt: #15140f;
  --basalt-2: #1c1b15;
  --basalt-3: #26241d;
  --bone: #f1eee6;
  --bone-2: #e8e3d7;
  --sand: #d9d2c0;
  --stone: #8a8272;
  --stone-light: #b3ac9c;
  --ink-soft: #4a473d;
  --alpenglow: #b96a4c;
  --alpenglow-light: #d4886a;
  --line-dark: rgba(241, 238, 230, 0.12);
  --line-light: rgba(21, 20, 15, 0.14);
  --font: "QZ Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;
  --wrap: 1240px;
  --gutter: clamp(18px, 4.5vw, 56px);
  --header-h: 76px;
  --ease: cubic-bezier(0.2, 0.7, 0.1, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 12px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--basalt);
  color: var(--bone);
  font-family: var(--font);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

/* Film grain */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 90;
  pointer-events: none;
  opacity: 0.06;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
em { font-style: normal; color: var(--alpenglow-light); }

:focus-visible { outline: 2px solid var(--alpenglow-light); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--alpenglow); color: var(--bone); }

.qz-defs { position: absolute; }

.qz-skip {
  position: absolute; top: -100px; left: 16px; z-index: 200;
  padding: 10px 16px; background: var(--bone); color: var(--basalt);
}
.qz-skip:focus { top: 16px; }

.qz-wrap {
  width: 100%;
  max-width: calc(var(--wrap) + var(--gutter) * 2);
  margin: 0 auto;
  padding-right: max(var(--gutter), env(safe-area-inset-right, 0px));
  padding-left: max(var(--gutter), env(safe-area-inset-left, 0px));
}

/* ------------------------------------------------------------ Mark */

.qz-mark__zero { fill: currentColor; }
.qz-mark__dim { fill: var(--alpenglow); }

/* ------------------------------------------------------------ Eyebrow: the dimension line */

.qz-eyebrow {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 20px;
  color: var(--stone-light);
  font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase;
}

.qz-dim { position: relative; flex: none; width: 40px; height: 9px; }
.qz-dim::before, .qz-dim::after { content: ""; position: absolute; background: var(--alpenglow); }
.qz-dim::before { top: 4px; right: 0; left: 0; height: 1px; }
.qz-dim::after { top: 0; left: 0; width: 1px; height: 9px; box-shadow: 39px 0 0 var(--alpenglow); }

/* ------------------------------------------------------------ Buttons & links */

.qz-button {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 50px; padding: 0 26px;
  border: 1px solid var(--alpenglow); border-radius: 999px;
  background: var(--alpenglow); color: var(--bone);
  font: 500 0.92rem/1 var(--font);
  text-decoration: none; cursor: pointer; overflow: hidden; isolation: isolate;
  transition: color 0.35s var(--ease), border-color 0.35s var(--ease);
}
.qz-button::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--bone);
  transform: translateY(101%);
  transition: transform 0.45s var(--ease);
}
.qz-button:hover { color: var(--basalt); border-color: var(--bone); }
.qz-button:hover::before { transform: none; }

.qz-button--ghost { border-color: rgba(241, 238, 230, 0.35); background: transparent; }
.qz-button--light { border-color: var(--bone); background: var(--bone); color: var(--basalt); }
.qz-button--light::before { background: var(--basalt); }
.qz-button--light:hover { color: var(--bone); border-color: var(--basalt); }
.qz-button--small { min-height: 40px; padding: 0 20px; font-size: 0.85rem; }

.qz-link {
  position: relative;
  display: inline-flex; align-items: center; gap: 10px;
  padding-bottom: 4px;
  font-weight: 500; text-decoration: none;
}
.qz-link::before {
  content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 1px;
  background: var(--alpenglow); transform-origin: left; transition: transform 0.4s var(--ease);
}
.qz-link:hover::before { transform: scaleX(0.35); }
.qz-link::after { content: "→"; transition: transform 0.3s var(--ease); }
.qz-link:hover::after { transform: translateX(5px); }

/* ------------------------------------------------------------ Announcement, progress, altimeter */

.qz-announce {
  position: relative; z-index: 60;
  background: var(--alpenglow); color: var(--bone);
  font-size: 0.85rem; text-align: center;
}
.qz-announce[hidden] { display: none; }
.qz-announce p { padding-top: 9px; padding-bottom: 9px; }
.qz-announce a { font-weight: 500; text-underline-offset: 3px; }

.qz-progress { position: fixed; top: 0; right: 0; left: 0; z-index: 70; height: 2px; pointer-events: none; }
.qz-progress span {
  display: block; height: 100%;
  background: var(--alpenglow);
  transform: scaleX(var(--qz-progress, 0)); transform-origin: left;
}

.qz-altimeter {
  position: fixed; right: 22px; bottom: 28px; z-index: 40;
  display: grid; justify-items: end; gap: 4px;
  color: var(--stone-light);
  font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase;
  mix-blend-mode: difference;
  opacity: 0; transition: opacity 0.4s ease;
}
.qz-altimeter.is-visible { opacity: 1; }
.qz-altimeter__value { color: var(--bone); font-size: 0.82rem; letter-spacing: 0.02em; }
.qz-altimeter__value b { font-weight: 500; font-variant-numeric: tabular-nums; }
.qz-altimeter__scale {
  position: relative; width: 10px; height: 110px; margin-top: 6px;
  background: repeating-linear-gradient(to top, var(--stone) 0 1px, transparent 1px 11px);
}
.qz-altimeter__scale::before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 1px; background: var(--stone); }
.qz-altimeter__scale i {
  position: absolute; right: -2px; bottom: calc(var(--qz-progress, 0) * 100%);
  width: 16px; height: 2px; background: var(--alpenglow);
}

/* ------------------------------------------------------------ Header */

.qz-header {
  position: sticky; top: 0; z-index: 60;
  margin-bottom: calc(var(--header-h) * -1);
  border-bottom: 1px solid transparent;
  transition: background-color 0.4s ease, border-color 0.4s ease, transform 0.45s var(--ease);
}
.qz-header.is-scrolled {
  border-bottom-color: var(--line-dark);
  background: rgba(21, 20, 15, 0.86);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  backdrop-filter: blur(16px) saturate(1.2);
}
.qz-header.is-hidden { transform: translateY(-100%); }
body.qz-menu-open .qz-header { transform: none; }

.qz-header__inner { display: flex; align-items: center; gap: 36px; height: var(--header-h); }

.qz-logo { position: relative; z-index: 2; display: flex; flex: none; align-items: center; gap: 12px; color: var(--bone); text-decoration: none; }
.qz-logo__mark { width: 48px; height: 36px; transition: transform 0.5s var(--ease); }
.qz-logo:hover .qz-logo__mark { transform: rotate(-8deg); }
.qz-logo__type b, .qz-logo__type small { display: block; line-height: 1; }
.qz-logo__type b { font-size: 0.95rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; }
.qz-logo__type small {
  margin-top: 6px; color: var(--alpenglow-light);
  font-family: var(--mono); font-size: 0.58rem; letter-spacing: 0.46em; text-transform: uppercase;
}

.qz-nav { display: none; }
.qz-nav a {
  position: relative; padding: 6px 0;
  color: rgba(241, 238, 230, 0.75);
  font-size: 0.88rem; font-weight: 400; text-decoration: none;
  transition: color 0.25s ease;
}
.qz-nav a::after {
  content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 1px;
  background: var(--alpenglow); transform: scaleX(0); transform-origin: right;
  transition: transform 0.4s var(--ease);
}
.qz-nav a:hover, .qz-nav a[aria-current="page"] { color: var(--bone); }
.qz-nav a:hover::after, .qz-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }

.qz-menu {
  position: relative; z-index: 2;
  display: inline-flex; align-items: center; gap: 12px;
  height: 44px; margin-left: auto; padding: 0 4px 0 14px;
  border: 0; background: transparent; color: var(--bone);
  font: 500 0.78rem/1 var(--mono); letter-spacing: 0.12em; text-transform: uppercase;
  cursor: pointer;
}
.qz-menu__icon { position: relative; width: 30px; height: 30px; border: 1px solid var(--line-dark); border-radius: 50%; transition: border-color 0.3s ease; }
.qz-menu:hover .qz-menu__icon { border-color: var(--alpenglow-light); }
.qz-menu__icon i {
  position: absolute; left: 8px; width: 12px; height: 1.5px; background: var(--bone);
  transition: transform 0.35s var(--ease), top 0.35s var(--ease);
}
.qz-menu__icon i:first-child { top: 11px; }
.qz-menu__icon i:last-child { top: 16px; }
body.qz-menu-open .qz-menu__icon i:first-child { top: 13.5px; transform: rotate(45deg); }
body.qz-menu-open .qz-menu__icon i:last-child { top: 13.5px; transform: rotate(-45deg); }

/* ------------------------------------------------------------ Full-screen menu */

.qz-overlay {
  position: fixed; inset: 0; z-index: 55;
  display: flex; align-items: flex-end;
  padding: calc(var(--header-h) + 24px) 0 calc(36px + env(safe-area-inset-bottom, 0px));
  background: var(--basalt);
  clip-path: inset(0 0 100% 0);
  transition: clip-path 0.7s var(--ease), visibility 0s linear 0.7s;
  visibility: hidden;
}
.qz-overlay[hidden] { display: flex; }
body.qz-menu-open .qz-overlay { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path 0.7s var(--ease); }
body.qz-menu-open { overflow: hidden; }
body.qz-menu-open .qz-header { transform: none; background: transparent; border-bottom-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }

.qz-overlay__inner { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 40px; align-items: end; }
.qz-overlay__list { padding: 0; list-style: none; }
.qz-overlay__list li { overflow: hidden; border-top: 1px solid var(--line-dark); }
.qz-overlay__list a {
  display: flex; align-items: baseline; gap: 22px;
  padding: 10px 0;
  text-decoration: none;
  transform: translateY(100%);
  transition: transform 0.7s var(--ease), color 0.3s ease;
}
body.qz-menu-open .qz-overlay__list a { transform: none; }
body.qz-menu-open .qz-overlay__list li:nth-child(2) a { transition-delay: 0.05s; }
body.qz-menu-open .qz-overlay__list li:nth-child(3) a { transition-delay: 0.1s; }
body.qz-menu-open .qz-overlay__list li:nth-child(4) a { transition-delay: 0.15s; }
body.qz-menu-open .qz-overlay__list li:nth-child(5) a { transition-delay: 0.2s; }
.qz-overlay__num { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.75rem; }
.qz-overlay__label { font-size: clamp(2.2rem, 7vw, 4.6rem); font-weight: 500; line-height: 1.1; letter-spacing: -0.03em; transition: transform 0.5s var(--ease); }
.qz-overlay__list a:hover .qz-overlay__label { transform: translateX(14px); }
.qz-overlay__list a:hover .qz-overlay__label, .qz-overlay__list a[aria-current="page"] .qz-overlay__label { color: var(--alpenglow-light); }
.qz-overlay__aside { display: grid; gap: 8px; padding-bottom: 14px; color: var(--stone-light); }
.qz-overlay__aside a { color: var(--bone); text-decoration: none; overflow-wrap: anywhere; }
.qz-overlay__aside a:hover { color: var(--alpenglow-light); }
.qz-overlay__kicker, .qz-overlay__coords { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }
.qz-overlay__coords { margin-top: 18px; }

/* ------------------------------------------------------------ Hero (home) */

.qz-hero { position: relative; }
.qz-hero__stage {
  position: relative;
  display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 100vh; min-height: 100svh;
  padding: calc(var(--header-h) + 40px) 0 clamp(72px, 12vh, 140px);
  overflow: hidden; isolation: isolate;
  background: var(--basalt);
}
.qz-hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.qz-hero__media img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%;
  transform: scale(1.06) translateY(var(--qz-parallax, 0px));
  animation: qz-hero-in 2.4s var(--ease) both;
}
@keyframes qz-hero-in { from { opacity: 0; transform: scale(1.18); filter: brightness(0.3); } }
.qz-hero__stage::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(21, 20, 15, 0.55) 0%, rgba(21, 20, 15, 0) 24%),
    linear-gradient(0deg, var(--basalt) 0%, rgba(21, 20, 15, 0.6) 30%, rgba(21, 20, 15, 0.05) 70%);
}

.qz-hero__title {
  font-weight: 500; line-height: 1; letter-spacing: -0.02em;
}
.qz-hero__pre {
  position: relative;
  z-index: 1;
  margin-left: -0.04em;
  color: var(--bone);
  font-size: clamp(2.2rem, 6.2vw, 6rem);
  font-weight: 300;
  line-height: 0.92;
  letter-spacing: -0.03em;
}
/* QUOTA ZERO is laid over the sentence above it */
.qz-hero__big {
  position: relative;
  z-index: 2;
  margin-top: -0.32em;
  padding: 0.04em 0 0.22em;
  font-size: clamp(5.2rem, 17vw, 17rem);
  line-height: 0.82;
}
.qz-hero__title .qz-line.qz-hero__big { overflow: visible; }
.qz-hero__title .qz-line.qz-hero__big > span { animation: qz-hand-in 1.2s var(--ease) 0.95s both; }
@keyframes qz-hand-in { from { opacity: 0; transform: translateY(0.25em) scale(0.96); } }
.qz-hero__big .qz-hand { font-size: 1em; transform: rotate(-3deg); text-shadow: 0 0.04em 0.18em rgba(21, 20, 15, 0.35); }
.qz-hero__big .qz-hand::after { bottom: -0.04em; height: 0.09em; }
.qz-hand {
  position: relative;
  display: inline-block;
  padding: 0 0.04em;
  color: var(--alpenglow-light);
  font-family: "QZ Hand", var(--font);
  font-size: 1.12em;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 0.8;
  transform: rotate(-2.5deg);
}
/* The brand's dimension line, drawn under the handwritten words */
.qz-hand::after {
  content: "";
  position: absolute;
  right: 0; bottom: -0.12em; left: 0;
  height: 0.16em;
  background:
    linear-gradient(var(--alpenglow), var(--alpenglow)) left center / 100% 2px no-repeat,
    linear-gradient(var(--alpenglow), var(--alpenglow)) left center / 2px 100% no-repeat,
    linear-gradient(var(--alpenglow), var(--alpenglow)) right center / 2px 100% no-repeat;
  transform-origin: left;
  animation: qz-rule 1.1s var(--ease) 1.6s both;
}
.qz-line { display: block; overflow: hidden; padding-bottom: 0.08em; }
.qz-line > span { display: inline-block; animation: qz-line-in 1.3s var(--ease) both; }
.qz-line:nth-child(1) > span { animation-delay: 0.7s; }
.qz-line:nth-child(2) > span { animation-delay: 0.84s; }
@keyframes qz-line-in { from { transform: translateY(105%); } }
@keyframes qz-fade-up { from { opacity: 0; transform: translateY(16px); } }

.qz-hero__scroll {
  position: absolute; bottom: 26px; left: 50%;
  display: grid; justify-items: center; gap: 10px;
  color: var(--stone-light); text-decoration: none;
  font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase;
  transform: translateX(-50%);
  animation: qz-fade-up 1s var(--ease) 1.8s both;
}
.qz-hero__scroll-line { position: relative; width: 1px; height: 40px; overflow: hidden; background: var(--line-dark); }
.qz-hero__scroll-line i { position: absolute; top: 0; left: 0; width: 1px; height: 16px; background: var(--alpenglow); animation: qz-scroll 1.8s var(--ease) infinite; }
@keyframes qz-scroll { from { transform: translateY(-16px); } to { transform: translateY(40px); } }

/* ------------------------------------------------------------ Custom cursor (fine pointers only) */

.qz-cursor {
  position: fixed; top: 0; left: 0; z-index: 95;
  display: grid; place-items: center;
  width: 44px; height: 44px; margin: -22px 0 0 -22px;
  border: 1px solid rgba(241, 238, 230, 0.55); border-radius: 50%;
  color: var(--basalt);
  font: 500 0.7rem/1 var(--mono); letter-spacing: 0.1em; text-transform: uppercase;
  pointer-events: none;
  transform: translate3d(var(--qz-cx, -100px), var(--qz-cy, -100px), 0) scale(var(--qz-cs, 1));
  transition: width 0.35s var(--ease), height 0.35s var(--ease), margin 0.35s var(--ease), background-color 0.3s ease, border-color 0.3s ease, opacity 0.3s ease;
}
.qz-cursor::before, .qz-cursor::after { content: ""; position: absolute; top: 50%; background: var(--alpenglow-light); transition: opacity 0.2s ease; }
.qz-cursor::before { left: 50%; width: 4px; height: 4px; margin: -2px 0 0 -2px; border-radius: 50%; }
.qz-cursor::after { left: -10px; right: -10px; height: 1px; opacity: 0.6; }
.qz-cursor span { opacity: 0; transition: opacity 0.2s ease; }
.qz-cursor.is-link { width: 64px; height: 64px; margin: -32px 0 0 -32px; border-color: var(--alpenglow-light); }
.qz-cursor.is-view { width: 96px; height: 96px; margin: -48px 0 0 -48px; border-color: var(--bone); background: var(--bone); }
.qz-cursor.is-view::before, .qz-cursor.is-view::after { opacity: 0; }
.qz-cursor.is-view span { opacity: 1; }
.qz-cursor.is-hidden { opacity: 0; }
@media (hover: none), (pointer: coarse) { .qz-cursor { display: none; } }

/* Manifesto words light up as you read */
.qz-js .qz-manifesto__title .qz-word { opacity: 0.13; transition: opacity 0.3s ease, color 0.3s ease; }
.qz-js .qz-manifesto__title .qz-word.is-lit { opacity: 1; }
.qz-js .qz-manifesto__title em .qz-word { color: var(--basalt); }
.qz-js .qz-manifesto__title em .qz-word.is-lit { color: var(--alpenglow); }

/* ------------------------------------------------------------ Page hero (inner pages) */

.qz-pagehero { padding: calc(var(--header-h) + clamp(64px, 12vw, 150px)) 0 0; }
.qz-pagehero .qz-eyebrow { animation: qz-fade-up 0.9s var(--ease) 0.15s both; }
.qz-pagehero__title {
  max-width: 14ch;
  font-size: clamp(2.8rem, 8vw, 7rem); font-weight: 500; line-height: 0.98; letter-spacing: -0.045em;
  text-wrap: balance;
  animation: qz-fade-up 1.1s var(--ease) 0.25s both;
}
.qz-pagehero__lead {
  max-width: 640px; margin-top: 28px;
  color: var(--stone-light); font-size: clamp(1.02rem, 1.5vw, 1.18rem);
  animation: qz-fade-up 1.1s var(--ease) 0.4s both;
}
.qz-pagehero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; animation: qz-fade-up 1.1s var(--ease) 0.5s both; }
.qz-pagehero__rule { margin-top: clamp(56px, 8vw, 96px); }
.qz-pagehero__rule span {
  position: relative; display: block; height: 9px;
  animation: qz-rule 1.4s var(--ease) 0.6s both; transform-origin: left;
}
.qz-pagehero__rule span::before { content: ""; position: absolute; top: 4px; right: 0; left: 0; height: 1px; background: var(--line-dark); }
.qz-pagehero__rule span::after { content: ""; position: absolute; top: 0; left: 0; width: 1px; height: 9px; background: var(--alpenglow); box-shadow: 0 0 0 0 transparent; }
@keyframes qz-rule { from { transform: scaleX(0); } }

.qz-closed-note { max-width: 560px; margin-top: 28px; padding: 16px 20px; border-left: 2px solid var(--alpenglow); background: var(--basalt-2); color: var(--sand); }
.qz-closed-note[hidden] { display: none; }

/* ------------------------------------------------------------ Sections & type */

.qz-section { padding: clamp(80px, 12vw, 160px) 0; }
.qz-h2 { font-size: clamp(2.2rem, 5.4vw, 4.2rem); font-weight: 500; line-height: 1.02; letter-spacing: -0.035em; text-wrap: balance; }
.qz-h3 { margin-bottom: 12px; font-size: 1.2rem; font-weight: 500; line-height: 1.3; }

.qz-split-head {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 48px;
  margin-bottom: clamp(40px, 6vw, 72px);
}
.qz-split-head .qz-eyebrow { margin-bottom: 16px; }
.qz-split-head__text { max-width: 420px; color: var(--stone-light); }

/* Manifesto (light) */
.qz-manifesto { background: var(--bone); color: var(--basalt); }
.qz-manifesto .qz-eyebrow { color: var(--stone); }
.qz-manifesto__title { max-width: 18ch; font-size: clamp(2.2rem, 5.6vw, 4.8rem); font-weight: 500; line-height: 1.04; letter-spacing: -0.04em; text-wrap: balance; }
.qz-manifesto__title em { color: var(--alpenglow); }
.qz-manifesto__grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 5vw, 72px);
  max-width: 880px; margin: clamp(40px, 6vw, 72px) 0 0 auto;
  color: var(--ink-soft); font-size: 1.05rem;
}

/* Marquee */
.qz-marquee { overflow: hidden; padding: 26px 0; border-bottom: 1px solid var(--line-dark); background: var(--basalt); }
.qz-marquee__track { display: flex; width: max-content; animation: qz-marquee 38s linear infinite; }
.qz-marquee span {
  display: inline-flex; align-items: center; gap: 40px; padding-right: 40px;
  color: transparent; -webkit-text-stroke: 1px rgba(241, 238, 230, 0.4);
  font-size: clamp(2.6rem, 6vw, 4.8rem); font-weight: 600; line-height: 1; letter-spacing: -0.02em; text-transform: uppercase;
}
.qz-marquee span::after { content: ""; width: 14px; height: 14px; border-radius: 50%; background: var(--alpenglow); }
@keyframes qz-marquee { to { transform: translateX(-50%); } }

/* Chapters (home) */
.qz-chapters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.5vw, 32px); }
.qz-chapter { position: relative; display: grid; gap: 22px; color: inherit; text-decoration: none; }
.qz-chapter__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 4px; background: var(--basalt-2); }
.qz-chapter__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 65%; transition: transform 1.2s var(--ease), filter 0.6s ease; filter: saturate(0.85); }
.qz-chapter__media .qz-poster { height: 100%; aspect-ratio: auto; transition: transform 1.2s var(--ease); }
.qz-chapter:hover .qz-chapter__media img, .qz-chapter:hover .qz-poster { transform: scale(1.05); filter: none; }
.qz-chapter__index { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-chapter h3 { margin-top: 6px; font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 500; line-height: 1.1; letter-spacing: -0.02em; }
.qz-chapter__specs { margin-top: 6px; color: var(--stone-light); font-family: var(--mono); font-size: 0.8rem; }
.qz-chapter__arrow {
  position: absolute; top: 18px; right: 18px;
  display: grid; place-items: center; width: 48px; height: 48px;
  border-radius: 50%; background: var(--bone); color: var(--basalt); font-size: 1.1rem;
  transform: scale(0.6); opacity: 0; transition: transform 0.45s var(--ease), opacity 0.3s ease;
}
.qz-chapter:hover .qz-chapter__arrow, .qz-chapter:focus-visible .qz-chapter__arrow { transform: none; opacity: 1; }

/* Project cards (home + projects page)
   Editorial grid: the first project is a full-width cinematic feature with the
   title over the image; the rest sit on a staggered two-column grid. */
.qz-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(48px, 6vw, 96px) clamp(16px, 3vw, 40px); align-items: start; }
.qz-cards--loading { opacity: 0.4; }
.qz-card { position: relative; display: grid; align-content: start; gap: 22px; color: inherit; text-decoration: none; }
.qz-card[hidden] { display: none; }
.qz-card__media {
  position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 4px; background: var(--basalt-2);
  container-type: size;
}
.qz-card__media > img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 65%; filter: saturate(0.85); transition: transform 1.4s var(--ease), filter 0.6s ease; }
.qz-card__media > .qz-poster { height: 100%; aspect-ratio: auto; transition: transform 1.4s var(--ease); }
.qz-card:hover .qz-card__media > img, .qz-card:hover .qz-card__media > .qz-poster { transform: scale(1.05); filter: none; }

.qz-card__preview {
  position: absolute; top: 50%; left: 50%;
  width: max(100cqw, calc(100cqh * 16 / 9)); height: max(100cqh, calc(100cqw * 9 / 16));
  transform: translate(-50%, -50%) scale(1.02);
  opacity: 0; pointer-events: none;
  transition: opacity 0.8s ease;
}
.qz-card__preview iframe { width: 100%; height: 100%; border: 0; }
.qz-card__preview { position: absolute; }
.qz-card.is-previewing .qz-card__preview { opacity: 1; }
.qz-card__media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(0deg, rgba(21, 20, 15, 0.55), transparent 45%);
}

.qz-card__num {
  position: absolute; top: 18px; left: 20px; z-index: 2;
  color: var(--bone); font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.1em;
  mix-blend-mode: difference;
}
.qz-card__meta { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-card__title { margin-top: 8px; font-size: clamp(1.7rem, 3.2vw, 2.6rem); font-weight: 500; line-height: 1.04; letter-spacing: -0.03em; text-wrap: balance; }
.qz-card__summary { max-width: 52ch; margin-top: 12px; color: var(--stone-light); }
.qz-card__status { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; color: var(--sand); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; }
.qz-card__status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--alpenglow); }
.qz-card.is-previewing .qz-card__status::before { animation: qz-blink 1.2s ease-in-out infinite; }
@keyframes qz-blink { 50% { opacity: 0.2; } }
.qz-card__status:empty { display: none; }
.qz-card__arrow {
  position: absolute; top: 18px; right: 18px; z-index: 2;
  display: grid; place-items: center; width: 52px; height: 52px;
  border-radius: 50%; background: var(--bone); color: var(--basalt); font-size: 1.15rem;
  transform: scale(0.6) rotate(-45deg); opacity: 0; transition: transform 0.5s var(--ease), opacity 0.3s ease;
}
.qz-card:hover .qz-card__arrow, .qz-card:focus-visible .qz-card__arrow { transform: none; opacity: 1; }

/* Staggered column on wide screens */
@media (min-width: 821px) {
  .qz-cards > .qz-card:nth-child(odd):not(:first-child) { margin-top: clamp(80px, 10vw, 160px); }
}

/* Feature: first card, or both cards when there are exactly two */
.qz-cards > .qz-card:first-child,
.qz-cards:has(> .qz-card:nth-child(2):last-child) > .qz-card { grid-column: 1 / -1; margin-top: 0; }
.qz-cards > .qz-card:first-child .qz-card__media,
.qz-cards:has(> .qz-card:nth-child(2):last-child) > .qz-card .qz-card__media { aspect-ratio: 21 / 9; }
@media (min-width: 821px) {
  .qz-cards > .qz-card:first-child,
  .qz-cards:has(> .qz-card:nth-child(2):last-child) > .qz-card { gap: 0; }
  .qz-cards > .qz-card:first-child .qz-card__media::after,
  .qz-cards:has(> .qz-card:nth-child(2):last-child) > .qz-card .qz-card__media::after {
    background: linear-gradient(0deg, rgba(21, 20, 15, 0.92) 0%, rgba(21, 20, 15, 0.35) 40%, transparent 70%), linear-gradient(90deg, rgba(21, 20, 15, 0.5), transparent 60%);
  }
  .qz-cards > .qz-card:first-child .qz-card__body,
  .qz-cards:has(> .qz-card:nth-child(2):last-child) > .qz-card .qz-card__body {
    position: absolute; right: 0; bottom: 0; left: 0; z-index: 2;
    max-width: 760px; padding: clamp(24px, 4vw, 56px);
  }
  .qz-cards > .qz-card:first-child .qz-card__title,
  .qz-cards:has(> .qz-card:nth-child(2):last-child) > .qz-card .qz-card__title { font-size: clamp(2.4rem, 5vw, 4.6rem); }
  .qz-cards:has(> .qz-card:nth-child(2):last-child) > .qz-card:nth-child(2) .qz-card__body { right: 0; left: auto; text-align: right; }
  .qz-cards:has(> .qz-card:nth-child(2):last-child) > .qz-card:nth-child(2) .qz-card__summary { margin-left: auto; }
  .qz-cards:has(> .qz-card:nth-child(2):last-child) > .qz-card:nth-child(2) .qz-card__media::after {
    background: linear-gradient(0deg, rgba(21, 20, 15, 0.92) 0%, rgba(21, 20, 15, 0.35) 40%, transparent 70%), linear-gradient(270deg, rgba(21, 20, 15, 0.5), transparent 60%);
  }
}

.qz-projects-page { padding-top: clamp(40px, 6vw, 72px); }

.qz-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: clamp(32px, 5vw, 56px); }
.qz-filters[hidden] { display: none; }
.qz-filters button {
  min-height: 40px; padding: 0 18px;
  border: 1px solid var(--line-dark); border-radius: 999px; background: transparent; color: var(--bone);
  font: 400 0.88rem/1 var(--font); cursor: pointer;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.qz-filters button:hover { border-color: rgba(241, 238, 230, 0.4); }
.qz-filters button[aria-pressed="true"] { border-color: var(--bone); background: var(--bone); color: var(--basalt); font-weight: 500; }
.qz-filters button span { margin-left: 6px; color: var(--stone); font-family: var(--mono); font-size: 0.72rem; }
.qz-filters button[aria-pressed="true"] span { color: var(--alpenglow); }
.qz-empty { color: var(--stone-light); }
.qz-empty[hidden] { display: none; }

/* Project detail */
.qz-pagehero .qz-eyebrow a { color: inherit; text-decoration: none; }
.qz-pagehero .qz-eyebrow a:hover { color: var(--bone); }
.qz-project__body { padding-top: clamp(40px, 6vw, 72px); }
.qz-project__media:empty { display: none; }
.qz-project__media .qz-poster, .qz-project__media img { width: 100%; aspect-ratio: 16 / 9; border-radius: 4px; object-fit: cover; }
.qz-project__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); margin-bottom: 56px; }
.qz-project__text { display: grid; gap: 18px; color: var(--stone-light); font-size: 1.05rem; }
.qz-project__text .qz-link { justify-self: start; color: var(--bone); }
.qz-specs:empty, .qz-credits:empty { display: none; }
.qz-credits { display: grid; align-content: start; }
.qz-credits div { padding: 14px 0; border-top: 1px solid var(--line-dark); }
.qz-credits div:last-child { border-bottom: 1px solid var(--line-dark); }
.qz-credits dt { color: var(--stone); font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; }
.qz-credits dd { margin-top: 2px; }
.qz-project-missing { padding-top: calc(var(--header-h) + 120px); }
.qz-project-missing .qz-button { margin-top: 28px; }
.qz-project-missing[hidden], .qz-project[hidden] { display: none; }

/* Open calls */
.qz-jobs-section { padding-top: clamp(40px, 6vw, 72px); }
.qz-jobs { display: grid; gap: 20px; }
.qz-job {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(24px, 5vw, 72px);
  padding: clamp(28px, 4vw, 48px); border: 1px solid var(--line-dark); border-radius: 6px; background: var(--basalt-2);
  scroll-margin-top: calc(var(--header-h) + 24px);
}
.qz-job.is-closed { opacity: 0.55; }
.qz-job__badge { display: inline-flex; align-items: center; gap: 8px; color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-job__badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--alpenglow); animation: qz-blink 1.4s ease-in-out infinite; }
.qz-job.is-closed .qz-job__badge { color: var(--stone); }
.qz-job.is-closed .qz-job__badge::before { background: var(--stone); animation: none; }
.qz-job__title { margin: 12px 0 24px; font-size: clamp(1.8rem, 3.4vw, 2.8rem); font-weight: 500; line-height: 1.05; letter-spacing: -0.03em; }
.qz-job__meta { display: grid; }
.qz-job__meta div { padding: 10px 0; border-top: 1px solid var(--line-dark); }
.qz-job__meta dt { color: var(--stone); font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; }
.qz-job__meta dd { margin-top: 2px; }
.qz-job__body { display: grid; align-content: start; gap: 16px; color: var(--stone-light); }
.qz-job__summary { color: var(--bone); font-size: 1.12rem; }
.qz-job__label { margin-top: 8px; color: var(--bone); font-size: 0.95rem; font-weight: 500; }
.qz-job__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 12px; padding-top: 20px; border-top: 1px solid var(--line-dark); }
.qz-job__title a { text-decoration: none; }
.qz-job__title a:hover { color: var(--alpenglow-light); }
.qz-job__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-left: auto; }
.qz-job__deadline { color: var(--sand); font-family: var(--mono); font-size: 0.76rem; letter-spacing: 0.04em; }
.qz-jobs-none { display: grid; justify-items: start; gap: 14px; max-width: 560px; color: var(--stone-light); }
.qz-jobs-none[hidden] { display: none; }

.qz-jobs-teaser { padding-bottom: clamp(56px, 8vw, 100px); }
.qz-jobs-teaser[hidden] { display: none; }
.qz-jobs-teaser__link {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 12px 28px;
  padding: 26px 30px; border: 1px solid var(--alpenglow); border-radius: 999px;
  text-decoration: none; transition: background-color 0.35s ease;
}
.qz-jobs-teaser__link:hover { background: rgba(185, 106, 76, 0.12); }
.qz-jobs-teaser__badge { display: inline-flex; align-items: center; gap: 10px; color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }
.qz-jobs-teaser__badge i { width: 8px; height: 8px; border-radius: 50%; background: var(--alpenglow); animation: qz-blink 1.4s ease-in-out infinite; }
.qz-jobs-teaser__title { font-size: clamp(1.2rem, 2.4vw, 1.8rem); font-weight: 500; letter-spacing: -0.02em; }
.qz-jobs-teaser__meta { color: var(--stone-light); font-size: 0.88rem; }
.qz-jobs-teaser__arrow { color: var(--alpenglow-light); font-size: 1.4rem; transition: transform 0.3s var(--ease); }
.qz-jobs-teaser__link:hover .qz-jobs-teaser__arrow { transform: translateX(6px); }
@media (max-width: 820px) {
  .qz-job { grid-template-columns: minmax(0, 1fr); }
  .qz-jobs-teaser__link { grid-template-columns: minmax(0, 1fr) auto; border-radius: 18px; }
  .qz-jobs-teaser__badge, .qz-jobs-teaser__meta { grid-column: 1 / -1; }
  .qz-jobs-teaser__arrow { grid-column: 2; grid-row: 2; }
}

/* Index list (home services) */
.qz-index-list { padding: 0; list-style: none; border-bottom: 1px solid var(--line-dark); }
.qz-index-list li { border-top: 1px solid var(--line-dark); }
.qz-index-list a {
  position: relative; display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; align-items: baseline; gap: 20px;
  padding: clamp(20px, 3vw, 34px) 0;
  text-decoration: none; overflow: hidden;
}
.qz-index-list a::after {
  content: "→"; position: absolute; right: 0; top: 50%;
  color: var(--alpenglow-light); font-size: 1.4rem;
  transform: translate(-20px, -50%); opacity: 0; transition: transform 0.4s var(--ease), opacity 0.3s ease;
}
.qz-index-list span { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.78rem; }
.qz-index-list b { font-size: clamp(1.5rem, 3.6vw, 2.8rem); font-weight: 500; line-height: 1.1; letter-spacing: -0.03em; transition: transform 0.5s var(--ease), color 0.3s ease; }
.qz-index-list em { padding-right: 48px; color: var(--stone-light); font-size: 0.92rem; text-align: right; transition: opacity 0.3s ease; }
.qz-index-list a:hover b { transform: translateX(14px); color: var(--bone); }
.qz-index-list a:hover::after { transform: translate(0, -50%); opacity: 1; }
.qz-index-list a:hover em { opacity: 0.4; }

/* Numbers */
.qz-numbers { padding-top: 0; }
.qz-numbers--flush { padding-bottom: 0; }
.qz-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.qz-stats > div { padding: 32px 28px 32px 0; }
.qz-stats > div + div { padding-left: 28px; border-left: 1px solid var(--line-dark); }
.qz-stats dt { color: var(--stone); font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }
.qz-stats dd { margin: 10px 0 6px; font-size: clamp(2.6rem, 5.4vw, 4.4rem); font-weight: 500; line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.qz-stats p { color: var(--stone-light); font-size: 0.86rem; }

/* CTA band */
.qz-cta { position: relative; overflow: hidden; background: var(--alpenglow); color: var(--bone); }
.qz-cta__inner { position: relative; display: grid; justify-items: start; gap: 22px; padding-top: clamp(80px, 11vw, 140px); padding-bottom: clamp(80px, 11vw, 140px); }
.qz-cta__mark { position: absolute; right: -6%; top: 50%; width: min(60vw, 720px); height: min(45vw, 540px); color: rgba(21, 20, 15, 0.12); transform: translateY(-50%); pointer-events: none; }
.qz-cta__mark .qz-mark__dim { fill: rgba(241, 238, 230, 0.16); }
.qz-cta__title { position: relative; max-width: 15ch; font-size: clamp(2.2rem, 5.4vw, 4.4rem); font-weight: 500; line-height: 1.02; letter-spacing: -0.035em; text-wrap: balance; }
.qz-cta__text { position: relative; max-width: 520px; color: rgba(241, 238, 230, 0.88); font-size: 1.05rem; }
.qz-cta .qz-button { margin-top: 8px; }

/* ------------------------------------------------------------ Going Ultra page */

.qz-episode-section { padding-bottom: clamp(56px, 8vw, 100px); }
.qz-episode-section--next { border-top: 1px solid var(--line-dark); }
.qz-episode { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.qz-episode__body { display: grid; gap: 20px; color: var(--stone-light); }
.qz-episode__index { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-split-head .qz-episode__index { margin-bottom: 14px; }
.qz-episode__title { color: var(--bone); font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 500; line-height: 1.04; letter-spacing: -0.03em; }
.qz-episode__body .qz-link { justify-self: start; color: var(--bone); }

.qz-specs { display: flex; flex-wrap: wrap; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.qz-specs > div { flex: 1 1 0; min-width: 110px; padding: 14px 18px 14px 0; }
.qz-specs > div + div { padding-left: 18px; border-left: 1px solid var(--line-dark); }
.qz-specs dt { color: var(--stone); font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; }
.qz-specs dd { margin-top: 3px; color: var(--bone); font-size: 1.05rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.qz-specs--wide { margin: 40px 0 56px; }
.qz-specs--wide dd { font-size: 1.2rem; }

.qz-video { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 4px; background: var(--basalt-2); }
.qz-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.qz-video__play {
  position: absolute; inset: 0;
  display: grid; place-content: center; justify-items: center; gap: 8px;
  width: 100%; padding: 0; border: 0;
  background:
    var(--qz-poster, linear-gradient(transparent, transparent)) center 70% / cover no-repeat,
    repeating-radial-gradient(ellipse 140% 90% at 85% 120%, transparent 0 22px, rgba(241, 238, 230, 0.07) 22px 23px),
    radial-gradient(80% 70% at 15% 0%, rgba(185, 106, 76, 0.3), transparent 70%),
    linear-gradient(200deg, #262419, #100f0b 70%);
  color: var(--bone); font: inherit; cursor: pointer;
  transition: transform 1.2s var(--ease);
}
.qz-video__play::before { content: ""; position: absolute; inset: 0; background: rgba(21, 20, 15, 0.5); transition: background-color 0.4s ease; }
.qz-video__play:hover::before { background: rgba(21, 20, 15, 0.3); }
.qz-video__play > * { position: relative; }
.qz-video__icon {
  display: grid; place-items: center; width: 84px; height: 84px; border-radius: 50%;
  background: var(--alpenglow);
  box-shadow: 0 0 0 0 rgba(185, 106, 76, 0.5);
  animation: qz-pulse 2.6s ease-out infinite;
  transition: transform 0.4s var(--ease);
}
.qz-video__icon::after { content: ""; margin-left: 6px; border-top: 12px solid transparent; border-bottom: 12px solid transparent; border-left: 20px solid var(--bone); }
.qz-video__play:hover .qz-video__icon { transform: scale(1.08); }
@keyframes qz-pulse { 70% { box-shadow: 0 0 0 22px rgba(185, 106, 76, 0); } 100% { box-shadow: 0 0 0 0 rgba(185, 106, 76, 0); } }
.qz-video__label { margin-top: 8px; font-weight: 500; }
.qz-video__note { color: rgba(241, 238, 230, 0.7); font-family: var(--mono); font-size: 0.66rem; }

.qz-poster {
  position: relative; display: flex; flex-direction: column; justify-content: flex-end;
  aspect-ratio: 16 / 9; padding: 7%; overflow: hidden; border-radius: 4px;
  background:
    repeating-radial-gradient(ellipse 140% 90% at 85% 120%, transparent 0 22px, rgba(241, 238, 230, 0.07) 22px 23px),
    radial-gradient(80% 70% at 15% 0%, rgba(185, 106, 76, 0.28), transparent 70%),
    linear-gradient(200deg, #262419, #100f0b 70%);
  color: var(--bone);
  container-type: inline-size;
}
.qz-poster__mark { position: absolute; top: 7%; right: 7%; width: 14cqi; height: 10.5cqi; }
.qz-poster__kicker, .qz-poster__date { font-family: var(--mono); font-size: max(0.62rem, 2.2cqi); letter-spacing: 0.08em; text-transform: uppercase; }
.qz-poster__kicker { color: var(--sand); }
.qz-poster__title { margin: 2.5cqi 0 3cqi; font-size: 11cqi; font-weight: 600; line-height: 0.92; letter-spacing: -0.03em; text-transform: uppercase; }
.qz-poster__date { color: var(--alpenglow-light); }

.qz-countdown { display: grid; justify-items: end; gap: 6px; text-align: right; }
.qz-countdown[hidden] { display: none; }
.qz-countdown__value { font-size: clamp(2.6rem, 6vw, 4.6rem); font-weight: 500; line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.qz-countdown__label { color: var(--stone-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }

.qz-statement { max-width: 22ch; margin-bottom: clamp(40px, 6vw, 72px); font-size: clamp(1.8rem, 4.2vw, 3.4rem); font-weight: 400; line-height: 1.12; letter-spacing: -0.03em; text-wrap: balance; }

.qz-profile { position: relative; }
.qz-profile__svg { display: block; width: 100%; height: clamp(180px, 26vw, 300px); }
.qz-profile__night { fill: rgba(241, 238, 230, 0.03); }
.qz-profile__area { fill: url(#qz-profile-fill); opacity: 0; transition: opacity 1.2s ease 0.9s; }
.qz-profile__line { fill: none; stroke: var(--alpenglow-light); stroke-width: 2; stroke-linejoin: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.4s var(--ease) 0.2s; }
.qz-profile__split { stroke: var(--bone); stroke-width: 1; stroke-dasharray: 4 6; vector-effect: non-scaling-stroke; opacity: 0.5; }
.qz-profile.is-visible .qz-profile__line { stroke-dashoffset: 0; }
.qz-profile.is-visible .qz-profile__area { opacity: 1; }
.qz-profile__labels { position: absolute; top: 12px; right: 0; left: 0; display: flex; justify-content: space-between; gap: 12px; pointer-events: none; }
.qz-profile__labels span, .qz-profile__axis span { font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.06em; text-transform: uppercase; }
.qz-profile__act { padding-left: 12px; color: var(--sand); }
.qz-profile__act--day { padding-right: 12px; padding-left: 0; }
.qz-profile__mid { position: absolute; top: 0; left: 52.7%; padding-left: 10px; color: var(--alpenglow-light); }
.qz-profile__axis { display: flex; justify-content: space-between; padding-top: 12px; border-top: 1px solid var(--line-dark); color: var(--stone-light); }
.qz-profile figcaption { margin-top: 10px; color: var(--stone); font-size: 0.8rem; }

.qz-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px); color: var(--stone-light); }
.qz-columns--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.qz-coprod { margin-top: clamp(48px, 7vw, 80px); padding-top: 28px; border-top: 1px solid var(--line-dark); color: var(--stone-light); font-family: var(--mono); font-size: 0.8rem; letter-spacing: 0.04em; }
.qz-coprod strong { color: var(--bone); font-family: var(--font); font-size: 0.95rem; font-weight: 500; letter-spacing: 0; }

/* ------------------------------------------------------------ Services page */

.qz-services-page { padding-top: clamp(40px, 6vw, 72px); }
.qz-service-row {
  display: grid; grid-template-columns: 90px minmax(0, 1fr) minmax(0, 1fr); gap: clamp(20px, 4vw, 56px); align-items: start;
  padding: clamp(32px, 5vw, 56px) 0; border-top: 1px solid var(--line-dark);
}
.qz-service-row:last-child { border-bottom: 1px solid var(--line-dark); }
.qz-service-row__num { padding-top: 10px; color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.8rem; }
.qz-service-row__title { font-size: clamp(1.8rem, 3.6vw, 2.8rem); font-weight: 500; line-height: 1.06; letter-spacing: -0.03em; }
.qz-service-row__body { display: grid; gap: 20px; color: var(--stone-light); }

.qz-ticks { display: grid; gap: 10px; padding: 0; list-style: none; }
.qz-ticks li { position: relative; padding-left: 22px; }
.qz-ticks li::before { content: ""; position: absolute; top: 0.8em; left: 0; width: 10px; height: 1px; background: var(--alpenglow); }
.qz-ticks li::after { content: ""; position: absolute; top: calc(0.8em - 3px); left: 0; width: 1px; height: 7px; background: var(--alpenglow); }

.qz-process { background: var(--basalt-2); }
.qz-process .qz-h2 { margin-bottom: clamp(40px, 6vw, 72px); }
.qz-steps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin-bottom: 56px; padding: 0; list-style: none; }
.qz-steps li { position: relative; display: grid; align-content: start; gap: 10px; padding: 0 24px 0 0; }
.qz-steps li:nth-child(1) { padding-top: 120px; }
.qz-steps li:nth-child(2) { padding-top: 80px; }
.qz-steps li:nth-child(3) { padding-top: 40px; }
.qz-steps__q { display: inline-flex; align-items: center; gap: 10px; color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; }
.qz-steps__q::before { content: ""; width: 9px; height: 9px; border: 1px solid var(--alpenglow); border-radius: 50%; }
.qz-steps h3 { font-size: 1.4rem; font-weight: 500; }
.qz-steps p { color: var(--stone-light); font-size: 0.94rem; }

/* ------------------------------------------------------------ Partners page */

.qz-packages-section { padding-bottom: clamp(56px, 8vw, 100px); }
.qz-packages { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.qz-package {
  display: grid; align-content: start; gap: 14px; padding: 28px 24px;
  border: 1px solid var(--line-dark); border-radius: 6px; background: var(--basalt-2);
  color: var(--stone-light); font-size: 0.92rem;
  transition: transform 0.5s var(--ease), border-color 0.3s ease;
}
.qz-package:hover { transform: translateY(-6px); border-color: rgba(241, 238, 230, 0.3); }
.qz-package h3 { color: var(--bone); font-size: 1.4rem; font-weight: 500; line-height: 1.15; }
.qz-package__seats { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; }
.qz-package--featured { border-color: var(--bone); background: var(--bone); color: var(--ink-soft); }
.qz-package--featured h3 { color: var(--basalt); }
.qz-package--featured .qz-package__seats { color: var(--alpenglow); }

.qz-categories { padding-top: 0; }
.qz-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; list-style: none; }
.qz-chips li { padding: 7px 14px; border: 1px solid var(--line-dark); border-radius: 999px; color: var(--sand); font-size: 0.86rem; transition: border-color 0.3s ease, background-color 0.3s ease; }
.qz-chips li:hover { border-color: var(--alpenglow); background: rgba(185, 106, 76, 0.12); }

/* ------------------------------------------------------------ Contact page */

.qz-contact-section { padding-top: clamp(40px, 6vw, 72px); }
.qz-contact { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 110px); align-items: start; }
.qz-form { display: grid; gap: 28px; }
.qz-form__group { margin: 0; padding: 0; border: 0; }
.qz-form__group legend { margin-bottom: 14px; color: var(--stone-light); font-size: 0.9rem; }
.qz-choice { display: flex; flex-wrap: wrap; gap: 8px; }
.qz-choice label { position: relative; cursor: pointer; }
.qz-choice input { position: absolute; opacity: 0; pointer-events: none; }
.qz-choice span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1px solid var(--line-dark); border-radius: 999px; font-size: 0.9rem; transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease; }
.qz-choice label:hover span { border-color: rgba(241, 238, 230, 0.4); }
.qz-choice input:checked + span { border-color: var(--bone); background: var(--bone); color: var(--basalt); font-weight: 500; }
.qz-choice input:focus-visible + span { outline: 2px solid var(--alpenglow-light); outline-offset: 3px; }
.qz-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.qz-field { display: grid; gap: 4px; }
.qz-field > span { color: var(--stone-light); font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }
.qz-field small { color: var(--stone); text-transform: none; letter-spacing: 0; }
.qz-field input, .qz-field textarea {
  width: 100%; padding: 12px 0;
  border: 0; border-bottom: 1px solid var(--line-dark); border-radius: 0;
  background: transparent; color: var(--bone);
  font: 300 1.15rem/1.5 var(--font);
  transition: border-color 0.3s ease;
}
.qz-field textarea { resize: vertical; min-height: 140px; }
.qz-field input::placeholder, .qz-field textarea::placeholder { color: var(--stone); }
.qz-field input:focus, .qz-field textarea:focus { outline: 0; border-bottom-color: var(--alpenglow-light); }
.qz-field.is-invalid input, .qz-field.is-invalid textarea { border-bottom-color: #e07a6a; }
.qz-form__error { color: #f0a090; font-size: 0.9rem; }
.qz-form__error[hidden] { display: none; }
.qz-form__footer { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.qz-form__note { max-width: 320px; color: var(--stone); font-size: 0.82rem; }

.qz-contact__aside { display: grid; gap: 28px; }
.qz-contact__list { display: grid; padding: 0; list-style: none; }
.qz-contact__list li { display: grid; gap: 2px; padding: 16px 0; border-top: 1px solid var(--line-dark); }
.qz-contact__list li:last-child { border-bottom: 1px solid var(--line-dark); }
.qz-contact__list span { color: var(--stone); font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; }
.qz-contact__list a, .qz-contact__list p { overflow-wrap: anywhere; font-size: 1.05rem; font-weight: 400; text-decoration: none; }
.qz-contact__list a:hover { color: var(--alpenglow-light); }
.qz-contact__card {
  display: grid; gap: 4px; padding: 28px; border-radius: 6px;
  background: var(--bone); color: var(--basalt);
  font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase;
}
.qz-contact__mark { width: 72px; height: 54px; margin-bottom: 18px; color: var(--basalt); }

/* ------------------------------------------------------------ Legal */

.qz-legal { padding-top: clamp(40px, 6vw, 72px); }
.qz-legal__body { max-width: calc(760px + var(--gutter) * 2); margin-left: 0; color: var(--stone-light); }
.qz-legal__body h2 { margin: 36px 0 10px; color: var(--bone); font-size: 1.2rem; font-weight: 500; }
.qz-legal__body h2:first-child { margin-top: 0; }
.qz-legal__body a { color: var(--bone); }
.qz-legal__updated { margin-top: 40px; color: var(--stone); font-family: var(--mono); font-size: 0.75rem; }

/* ------------------------------------------------------------ Footer */

.qz-footer { padding: clamp(56px, 8vw, 96px) 0 calc(28px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line-dark); color: var(--stone-light); font-size: 0.88rem; }
.qz-footer a { text-decoration: none; transition: color 0.25s ease; }
.qz-footer a:hover { color: var(--bone); }
.qz-footer__top { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 40px; padding-bottom: 56px; }
.qz-footer__nav, .qz-footer__contact { display: grid; align-content: start; gap: 8px; }
.qz-footer__contact a { overflow-wrap: anywhere; }
.qz-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-top: 24px; border-top: 1px solid var(--line-dark); color: var(--stone); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.04em; }
.qz-footer__legal { display: flex; flex-wrap: wrap; gap: 20px; }

/* ------------------------------------------------------------ Reveal */

.qz-js [data-qz-reveal] { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.qz-js [data-qz-reveal].is-visible { opacity: 1; transform: none; }
.qz-js .qz-stats [data-qz-reveal]:nth-child(2), .qz-js .qz-packages [data-qz-reveal]:nth-child(2), .qz-js .qz-steps [data-qz-reveal]:nth-child(2), .qz-js .qz-chapters [data-qz-reveal]:nth-child(2), .qz-js .qz-cards [data-qz-reveal]:nth-child(even) { transition-delay: 0.1s; }
.qz-js .qz-stats [data-qz-reveal]:nth-child(3), .qz-js .qz-packages [data-qz-reveal]:nth-child(3), .qz-js .qz-steps [data-qz-reveal]:nth-child(3) { transition-delay: 0.2s; }
.qz-js .qz-packages [data-qz-reveal]:nth-child(4), .qz-js .qz-steps [data-qz-reveal]:nth-child(4) { transition-delay: 0.3s; }

[data-qz-partner-only][hidden] { display: none !important; }

/* ------------------------------------------------------------ Responsive */

@media (max-width: 1080px) {
  .qz-packages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qz-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
  .qz-steps li:nth-child(n) { padding-top: 0; }
  .qz-columns { grid-template-columns: minmax(0, 1fr); }
  .qz-altimeter { display: none; }
}


@media (max-width: 820px) {
  :root { --header-h: 66px; }
  .qz-overlay__inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .qz-manifesto__grid, .qz-chapters, .qz-cards, .qz-project__grid, .qz-episode, .qz-contact, .qz-form__row, .qz-columns--two { grid-template-columns: minmax(0, 1fr); }
  .qz-stats { grid-template-columns: minmax(0, 1fr); }
  .qz-stats > div + div { padding-left: 0; border-top: 1px solid var(--line-dark); border-left: 0; }
  .qz-service-row { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .qz-service-row__num { padding-top: 0; }
  .qz-index-list a { grid-template-columns: 44px minmax(0, 1fr); }
  .qz-index-list em { display: none; }
  .qz-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .qz-footer__top .qz-logo { grid-column: 1 / -1; }
  .qz-countdown { justify-items: start; text-align: left; }
  .qz-profile__mid { display: none; }
}

@media (max-width: 560px) {
  .qz-packages, .qz-steps { grid-template-columns: minmax(0, 1fr); }
  .qz-hero__actions { width: 100%; }
  .qz-hero__actions .qz-button { flex: 1 1 100%; }
  .qz-hero__readout div + div { padding-left: 14px; }
  .qz-hero__readout dd { font-size: 0.9rem; }
  .qz-logo__type small { letter-spacing: 0.3em; }
  .qz-menu__text { display: none; }
  .qz-specs > div { min-width: 46%; }
  .qz-specs > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .qz-footer__top { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; transition-delay: 0s !important; }
  .qz-marquee__track { animation: none; }
}

/* ------------------------------------------------------------ Film page (project detail) */

.qz-film__hero {
  position: relative;
  display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 100vh; min-height: 100svh;
  padding: calc(var(--header-h) + 40px) 0 clamp(48px, 9vh, 110px);
  overflow: hidden; isolation: isolate;
  background: #0d0c09;
}
.qz-film__bg { position: absolute; inset: 0; z-index: -2; overflow: hidden; container-type: size; }
.qz-film__poster, .qz-film__player { position: absolute; inset: 0; }
.qz-film__poster > * { width: 100%; height: 100%; object-fit: cover; }
.qz-film__poster .qz-poster { aspect-ratio: auto; border-radius: 0; padding: 0; }
.qz-film__poster .qz-poster > :not(.qz-poster__mark) { display: none; }
.qz-film__player {
  top: 50%; left: 50%; right: auto; bottom: auto;
  width: max(100cqw, calc(100cqh * 16 / 9)); height: max(100cqh, calc(100cqw * 9 / 16));
  transform: translate(-50%, -50%) scale(1.04);
  opacity: 0; pointer-events: none;
  transition: opacity 1.2s ease;
}
.qz-film__player iframe { width: 100%; height: 100%; border: 0; }
.qz-film.is-rolling .qz-film__player { opacity: 1; }
/* Arriving from a trailer: black until the same film fades back in */
.qz-film.is-handoff .qz-film__poster { opacity: 0; transition: opacity 1.2s ease; }
.qz-film.is-handoff.is-rolling .qz-film__poster { opacity: 1; }
/* Static film pages carry their cover in the markup: hidden from the first paint when arriving */
.qz-handoff .qz-film:not(.is-rolling):not(.is-fallback) .qz-film__poster { opacity: 0; }
/* ...or, for a clip, the same frame carries straight on with no fade */
.qz-film.is-handoff-clip .qz-film__player { transform: translate(-50%, -50%); transition: none; }
.qz-film__hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(13, 12, 9, 0.7) 0%, rgba(13, 12, 9, 0) 22%),
    linear-gradient(0deg, #0d0c09 0%, rgba(13, 12, 9, 0.75) 28%, rgba(13, 12, 9, 0) 65%),
    linear-gradient(90deg, rgba(13, 12, 9, 0.55), rgba(13, 12, 9, 0) 55%);
}

.qz-film__crumb {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 18px;
  color: var(--sand); font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase;
  animation: qz-fade-up 0.9s var(--ease) 0.2s both;
}
.qz-film__crumb a { color: var(--stone-light); text-decoration: none; }
.qz-film__crumb a:hover { color: var(--bone); }
.qz-film__crumb span[aria-hidden] { color: var(--alpenglow-light); }
.qz-film__title {
  max-width: 16ch;
  font-size: clamp(3rem, 9vw, 9rem); font-weight: 500; line-height: 0.92; letter-spacing: -0.045em;
  text-wrap: balance;
  animation: qz-fade-up 1.1s var(--ease) 0.3s both;
}
.qz-film__row {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px;
  margin-top: clamp(24px, 4vh, 44px); padding-top: 22px;
  border-top: 1px solid rgba(241, 238, 230, 0.16);
  animation: qz-fade-up 1.1s var(--ease) 0.5s both;
}
.qz-film__meta { color: var(--sand); font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; }
.qz-film__play {
  display: inline-flex; align-items: center; gap: 16px;
  padding: 0; border: 0; background: none; color: var(--bone);
  font: 500 1.05rem/1 var(--font); cursor: pointer;
}
.qz-film__play[hidden] { display: none; }
.qz-film__play-icon {
  position: relative; display: grid; place-items: center;
  width: 64px; height: 64px; border-radius: 50%;
  background: var(--alpenglow);
  transition: transform 0.4s var(--ease), background-color 0.3s ease;
}
.qz-film__play-icon::after { content: ""; margin-left: 5px; border-top: 10px solid transparent; border-bottom: 10px solid transparent; border-left: 16px solid var(--bone); }
.qz-film__play:hover .qz-film__play-icon { transform: scale(1.08); background: var(--alpenglow-light); }

.qz-film__logline { padding: clamp(80px, 12vw, 160px) 0 clamp(40px, 6vw, 72px); }
.qz-film__logline p {
  max-width: 24ch;
  font-size: clamp(1.8rem, 4.2vw, 3.6rem); font-weight: 300; line-height: 1.15; letter-spacing: -0.03em;
  text-wrap: balance;
}
.qz-film__logline p:empty { display: none; }

.qz-film__specs { display: flex; flex-wrap: wrap; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.qz-film__specs:empty { display: none; }
.qz-film__specs > div { flex: 1 1 0; min-width: 150px; padding: 20px 24px 20px 0; }
.qz-film__specs > div + div { padding-left: 24px; border-left: 1px solid var(--line-dark); }
.qz-film__specs dt { color: var(--stone); font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-film__specs dd { margin-top: 4px; font-size: clamp(1.1rem, 1.8vw, 1.5rem); font-weight: 500; letter-spacing: -0.01em; }

.qz-film__story { padding: clamp(80px, 11vw, 150px) 0; }
.qz-film__story[hidden] { display: none; }
.qz-film__story-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(24px, 5vw, 80px); }
.qz-film__text { display: grid; gap: 22px; max-width: 62ch; color: #d8d3c8; font-size: clamp(1.02rem, 1.3vw, 1.15rem); line-height: 1.75; }
.qz-film__text p:first-child::first-letter {
  float: left; margin: 0.06em 0.12em 0 0;
  color: var(--alpenglow-light); font-family: "QZ Hand", var(--font); font-size: 3.6em; line-height: 0.8;
}

.qz-film__route { padding: clamp(40px, 6vw, 80px) 0 clamp(80px, 11vw, 150px); }
.qz-film__story:not([hidden]) + .qz-film__route { padding-top: 0; }
.qz-film__route[hidden] { display: none; }
.qz-film__route .qz-eyebrow { margin-bottom: clamp(24px, 4vw, 48px); }
.qz-film__credits { padding: clamp(72px, 10vw, 130px) 0; background: #0d0c09; text-align: center; }
.qz-film__credits[hidden] { display: none; }
.qz-film__credits-kicker { margin-bottom: clamp(36px, 5vw, 56px); color: var(--alpenglow-light); font-family: "QZ Hand", var(--font); font-size: clamp(2.2rem, 4vw, 3.2rem); line-height: 1; }
.qz-film__credits-list { display: grid; gap: clamp(22px, 3vw, 32px); max-width: 720px; margin: 0 auto; }
.qz-film__credits-list dt { color: var(--stone); font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; }
.qz-film__credits-list dd { margin-top: 6px; font-size: clamp(1.05rem, 1.8vw, 1.35rem); font-weight: 400; line-height: 1.4; }

.qz-film__next {
  position: relative; display: block; overflow: hidden; isolation: isolate;
  min-height: clamp(260px, 42vh, 460px);
  color: var(--bone); text-decoration: none;
  border-top: 1px solid var(--line-dark);
}
.qz-film__next[hidden] { display: none; }
.qz-film__next-media { position: absolute; inset: 0; z-index: -2; }
.qz-film__next-media > * { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease), filter 0.6s ease; filter: brightness(0.45) saturate(0.8); }
.qz-film__next-media .qz-poster { aspect-ratio: auto; border-radius: 0; }
.qz-film__next-media .qz-poster > :not(.qz-poster__mark) { display: none; }
.qz-film__next:hover .qz-film__next-media > * { transform: scale(1.04); filter: brightness(0.6) saturate(1); }
.qz-film__next-body {
  position: absolute; right: 0; bottom: 0; left: 0;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px 24px;
  margin: 0 auto; padding-bottom: clamp(32px, 6vh, 64px);
}
.qz-film__next-kicker { grid-column: 1 / -1; color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; }
.qz-film__next-title { font-size: clamp(2.2rem, 6vw, 5.6rem); font-weight: 500; line-height: 0.95; letter-spacing: -0.04em; }
.qz-film__next-arrow { font-size: clamp(2rem, 4vw, 3.4rem); transition: transform 0.4s var(--ease); }
.qz-film__next:hover .qz-film__next-arrow { transform: translateX(10px); }

/* Theater: the full film on black */
.qz-theater {
  position: fixed; inset: 0; z-index: 120;
  display: grid; place-items: center;
  padding: clamp(16px, 4vw, 56px);
  background: rgba(5, 5, 4, 0.97);
  opacity: 0; transition: opacity 0.4s ease;
}
.qz-theater[hidden] { display: none; }
.qz-theater.is-open { opacity: 1; }
.qz-theater__frame { width: min(100%, calc((100vh - 120px) * 16 / 9)); aspect-ratio: 16 / 9; background: #000; }
.qz-theater__frame iframe { width: 100%; height: 100%; border: 0; }
.qz-theater__close {
  position: absolute; top: 20px; right: 20px;
  width: 48px; height: 48px; padding: 0;
  border: 1px solid rgba(241, 238, 230, 0.3); border-radius: 50%;
  background: transparent; cursor: pointer;
}
.qz-theater__close span, .qz-theater__close span::after {
  position: absolute; top: 50%; left: 50%; width: 18px; height: 1.5px; background: var(--bone);
}
.qz-theater__close span { transform: translate(-50%, -50%) rotate(45deg); }
.qz-theater__close span::after { content: ""; top: 0; left: 0; transform: rotate(90deg); }
.qz-theater__close:hover { border-color: var(--alpenglow-light); }
body.qz-theater-open { overflow: hidden; }

@media (max-width: 820px) {
  .qz-film__story-grid { grid-template-columns: minmax(0, 1fr); }
  .qz-film__specs > div { min-width: 46%; }
  .qz-film__specs > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .qz-film__play-icon { width: 54px; height: 54px; }
}

/* Montage layers: two stacked players cross-fading between random segments */
.qz-montage__layer { position: absolute; inset: 0; opacity: 0; transition: opacity 0.9s ease; }
.qz-montage__layer.is-live { opacity: 1; }
/* A stalled or paused shot vanishes at once: YouTube draws its interface over it */
.qz-montage__layer.is-stalled { opacity: 0 !important; transition: none; }
.qz-montage__layer { overflow: hidden; }
/* Oversized so YouTube's title bar and corner overlays fall outside the frame */
.qz-montage__layer > *, .qz-montage__layer iframe { width: 100%; height: 100%; border: 0; transform: scale(1.32); pointer-events: none; }

/* Projects page: a reel of full-width cinemascope frames */
.qz-cards--reel { grid-template-columns: minmax(0, 1fr); gap: clamp(16px, 2.4vw, 32px); }
.qz-cards--reel > .qz-card { grid-column: 1 / -1; gap: 0; margin-top: 0 !important; }
.qz-cards--reel > .qz-card .qz-card__media { aspect-ratio: 21 / 9; border-radius: 6px; }
.qz-cards--reel > .qz-card .qz-card__media::after {
  background:
    linear-gradient(0deg, rgba(13, 12, 9, 0.92) 0%, rgba(13, 12, 9, 0.3) 45%, transparent 75%),
    linear-gradient(90deg, rgba(13, 12, 9, 0.55), transparent 60%);
}
.qz-cards--reel > .qz-card:nth-child(even) .qz-card__media::after {
  background:
    linear-gradient(0deg, rgba(13, 12, 9, 0.92) 0%, rgba(13, 12, 9, 0.3) 45%, transparent 75%),
    linear-gradient(270deg, rgba(13, 12, 9, 0.55), transparent 60%);
}
.qz-cards--reel > .qz-card .qz-card__body {
  position: absolute; bottom: 0; left: 0; z-index: 2;
  max-width: 780px; padding: clamp(22px, 4vw, 56px);
}
.qz-cards--reel > .qz-card:nth-child(even) .qz-card__body { right: 0; left: auto; text-align: right; }
.qz-cards--reel > .qz-card:nth-child(even) .qz-card__summary { margin-left: auto; }
.qz-cards--reel > .qz-card .qz-card__title { font-size: clamp(2rem, 5vw, 4.6rem); }
.qz-cards--reel > .qz-card .qz-card__num { top: auto; bottom: clamp(22px, 4vw, 56px); left: auto; right: clamp(22px, 4vw, 56px); font-size: clamp(2.4rem, 6vw, 5.4rem); font-family: var(--font); font-weight: 500; letter-spacing: -0.04em; color: transparent; -webkit-text-stroke: 1px rgba(241, 238, 230, 0.45); mix-blend-mode: normal; }
.qz-cards--reel > .qz-card:nth-child(even) .qz-card__num { right: auto; left: clamp(22px, 4vw, 56px); }
.qz-cards--reel > .qz-card .qz-card__arrow { top: clamp(18px, 3vw, 32px); right: clamp(18px, 3vw, 32px); }
@media (max-width: 820px) {
  .qz-cards--reel > .qz-card:nth-child(n) .qz-card__media { aspect-ratio: 4 / 5; }
  .qz-cards--reel > .qz-card .qz-card__summary { display: none; }
  .qz-cards--reel > .qz-card:nth-child(even) .qz-card__body { right: auto; left: 0; text-align: left; }
  .qz-cards--reel > .qz-card .qz-card__num { top: 18px; bottom: auto; left: 20px !important; right: auto; font-size: 2.6rem; }
}

/* Inside cards the title lives in the card body: posters keep only the mark */
.qz-card__media > .qz-poster > :not(.qz-poster__mark) { display: none; }
.qz-card__media > .qz-poster .qz-poster__mark { top: 50%; right: 50%; width: 18cqi; height: 13.5cqi; transform: translate(50%, -50%); opacity: 0.9; }

/* ------------------------------------------------------------ Home: manifesto v2 */

.qz-hand-inline {
  display: inline-block;
  color: var(--alpenglow);
  font-family: "QZ Hand", var(--font);
  font-size: 1.12em;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 0.9;
  transform: rotate(-2deg);
}

.qz-manifesto { padding: 0 0 clamp(80px, 11vw, 150px); background: var(--bone); color: var(--basalt); }
/* Pinned like the about page's 01 statement: the stage holds still while the words light up,
   then the sea-level line is drawn and the creed scrolls in. */
.qz-manifesto__pin { position: relative; height: 240vh; }
.qz-manifesto__stage { position: sticky; top: 0; display: grid; align-content: center; min-height: 100vh; min-height: 100svh; padding-top: 72px; }
.qz-js .qz-manifesto__pin .qz-sealevel { opacity: 0; transform: translateY(12px); transition: opacity 0.6s ease, transform 0.6s var(--ease); }
.qz-js .qz-manifesto__pin.is-done .qz-sealevel { opacity: 1; transform: none; }
@media (max-width: 820px) { .qz-manifesto__pin { height: 200vh; } }
@media (prefers-reduced-motion: reduce) {
  .qz-manifesto__pin { height: auto; }
  .qz-manifesto__stage { position: static; min-height: 0; padding: clamp(96px, 13vw, 180px) 0 0; }
  .qz-js .qz-manifesto__pin .qz-sealevel { opacity: 1; transform: none; }
}
.qz-manifesto__top { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: clamp(28px, 4vw, 48px); }
.qz-manifesto__top .qz-eyebrow { margin: 0; color: var(--stone); }
.qz-manifesto__coords { color: var(--stone); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; }
.qz-manifesto .qz-manifesto__title {
  max-width: 15ch;
  font-size: clamp(2.8rem, 8vw, 7.6rem); font-weight: 500; line-height: 0.98; letter-spacing: -0.045em;
}
.qz-manifesto .qz-manifesto__title em { color: var(--alpenglow); }

.qz-sealevel { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; margin: clamp(48px, 7vw, 96px) 0 clamp(48px, 6vw, 80px); }
.qz-sealevel__label { color: var(--ink-soft); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; }
.qz-sealevel__label--end { color: var(--alpenglow); }
.qz-sealevel__line { position: relative; height: 22px; }
.qz-sealevel__line::before, .qz-sealevel__line::after { content: ""; position: absolute; top: 0; width: 2px; height: 22px; background: var(--alpenglow); }
.qz-sealevel__line::before { left: 0; }
.qz-sealevel__line::after { right: 0; }
.qz-sealevel__line i { position: absolute; top: 10px; right: 0; left: 0; height: 2px; background: var(--alpenglow); transform: scaleX(0); transform-origin: left; transition: transform 1.6s var(--ease) 0.2s; }
.qz-sealevel.is-visible .qz-sealevel__line i { transform: none; }
.qz-js .qz-sealevel[data-qz-reveal] { transform: none; }

.qz-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-light); }
.qz-principles li { display: grid; align-content: start; gap: 12px; padding: 28px 28px 8px 0; }
.qz-principles li + li { padding-left: 28px; border-left: 1px solid var(--line-light); }
.qz-principles__num { color: var(--alpenglow); font-family: var(--mono); font-size: 0.78rem; }
.qz-principles h3 { font-size: clamp(1.3rem, 2.2vw, 1.8rem); font-weight: 500; letter-spacing: -0.02em; }
.qz-principles p { color: var(--ink-soft); font-size: 1rem; }

/* ------------------------------------------------------------ Home: next film */

.qz-next { position: relative; display: flex; align-items: flex-end; min-height: 100vh; min-height: 100svh; padding: clamp(96px, 12vw, 160px) 0 clamp(56px, 8vw, 110px); overflow: hidden; isolation: isolate; background: #0d0c09; }
.qz-next__bg { position: absolute; inset: 0; z-index: -2; overflow: hidden; container-type: size; }
.qz-next__bg > img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.55) saturate(0.8); }
.qz-next__player {
  position: absolute; top: 50%; left: 50%;
  width: max(100cqw, calc(100cqh * 16 / 9)); height: max(100cqh, calc(100cqw * 9 / 16));
  transform: translate(-50%, -50%);
  opacity: 0; pointer-events: none; transition: opacity 1.2s ease;
}
.qz-next.is-rolling .qz-next__player { opacity: 1; }
.qz-next::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(0deg, #0d0c09 0%, rgba(13, 12, 9, 0.75) 35%, rgba(13, 12, 9, 0.25) 70%, rgba(13, 12, 9, 0.6) 100%),
    linear-gradient(90deg, rgba(13, 12, 9, 0.6), rgba(13, 12, 9, 0) 60%);
}
.qz-next__inner { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: end; }
.qz-next .qz-eyebrow { color: var(--sand); }
.qz-next__title { font-size: clamp(3rem, 9vw, 8.6rem); font-weight: 500; line-height: 0.92; letter-spacing: -0.045em; text-transform: uppercase; }
.qz-next__statement { max-width: 30ch; margin-top: 22px; color: rgba(241, 238, 230, 0.85); font-size: clamp(1.1rem, 1.8vw, 1.5rem); font-weight: 300; line-height: 1.35; }
.qz-next__statement .qz-hand-inline { color: var(--alpenglow-light); font-size: 1.3em; }
.qz-next__side { display: grid; gap: 24px; justify-items: start; }
.qz-next__countdown { justify-items: start; text-align: left; }
.qz-next__countdown .qz-countdown__value { font-size: clamp(3rem, 7vw, 6rem); }
.qz-next__specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; border-top: 1px solid rgba(241, 238, 230, 0.16); }
.qz-next__specs div { padding: 12px 0; border-bottom: 1px solid rgba(241, 238, 230, 0.16); }
.qz-next__specs dt { color: var(--stone-light); font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-next__specs dd { margin-top: 2px; font-weight: 500; }
.qz-next .qz-link { color: var(--bone); }

/* ------------------------------------------------------------ Home: where we've worked */

.qz-places__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.qz-places__globe { position: relative; width: 100%; max-width: 560px; aspect-ratio: 1; margin: 0 auto; }
.qz-places__globe::after { content: ""; position: absolute; inset: 8%; border-radius: 50%; box-shadow: 0 0 120px rgba(185, 106, 76, 0.16); pointer-events: none; }
.qz-places__globe canvas { display: block; width: 100%; height: 100%; }
.qz-places .qz-h2 { margin-bottom: clamp(28px, 4vw, 44px); }
.qz-places__list { display: grid; margin-bottom: 32px; padding: 0; list-style: none; }
.qz-places__list li { display: grid; gap: 4px; padding: 16px 0; border-top: 1px solid var(--line-dark); }
.qz-places__list li:last-child { border-bottom: 1px solid var(--line-dark); }
.qz-places__list span { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-places__list b { font-size: clamp(1rem, 1.5vw, 1.2rem); font-weight: 400; }

/* ------------------------------------------------------------ Home: founder quote */


@media (max-width: 820px) {
  .qz-principles { grid-template-columns: minmax(0, 1fr); }
  .qz-principles li + li { padding-left: 0; border-top: 1px solid var(--line-light); border-left: 0; }
  .qz-sealevel { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .qz-sealevel__label--end { text-align: right; }
  .qz-next__inner, .qz-places__grid { grid-template-columns: minmax(0, 1fr); }
  .qz-places__globe { max-width: 380px; }
  .qz-manifesto__coords { display: none; }
}

/* Manifesto creed: three statements, one per line */
.qz-creed { padding: 0; list-style: none; counter-reset: none; }
.qz-creed li {
  display: grid; grid-template-columns: clamp(48px, 7vw, 110px) minmax(0, 1fr); align-items: baseline; gap: 16px;
  padding: clamp(18px, 2.6vw, 30px) 0;
  border-top: 1px solid var(--line-light);
}
.qz-creed li:last-child { border-bottom: 1px solid var(--line-light); }
.qz-creed__num { color: var(--alpenglow); font-family: var(--mono); font-size: 0.8rem; letter-spacing: 0.06em; }
.qz-creed p { font-size: clamp(1.5rem, 3.6vw, 3.2rem); font-weight: 300; line-height: 1.12; letter-spacing: -0.03em; transition: transform 0.6s var(--ease); }
.qz-creed em { color: var(--stone); font-style: normal; transition: color 0.4s ease; }
.qz-creed li:hover p { transform: translateX(12px); }
.qz-creed li:hover em { color: var(--alpenglow); }

/* ------------------------------------------------------------ Services: sticky footage + scrolling list */

.qz-svc { padding: clamp(40px, 6vw, 80px) 0 clamp(80px, 10vw, 140px); }
.qz-svc__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.qz-svc__stage { position: sticky; top: calc(var(--header-h) + 24px); }
.qz-svc__frame { position: relative; aspect-ratio: 4 / 5; max-height: calc(100vh - var(--header-h) - 64px); overflow: hidden; border-radius: 6px; background: #0d0c09; container-type: size; }
.qz-svc__layer { position: absolute; inset: 0; opacity: 0; transition: opacity 0.9s ease; }
.qz-svc__layer.is-active { opacity: 1; }
.qz-svc__layer > img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.5) saturate(0.7); }
.qz-svc__player {
  position: absolute; top: 50%; left: 50%;
  width: max(100cqw, calc(100cqh * 16 / 9)); height: max(100cqh, calc(100cqw * 9 / 16));
  transform: translate(-50%, -50%); opacity: 0; transition: opacity 1s ease; pointer-events: none;
}
.qz-svc__layer.is-rolling .qz-svc__player { opacity: 1; }
.qz-svc__frame::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgba(13, 12, 9, 0.6), transparent 35%); }
.qz-svc__caption { position: absolute; right: 20px; bottom: 16px; z-index: 2; color: var(--bone); font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.12em; }
.qz-svc__caption span { color: var(--alpenglow-light); }

.qz-svc__list { padding: 0; list-style: none; }
.qz-svc__item {
  display: grid; align-content: start; gap: 18px;
  min-height: 72vh; padding: clamp(24px, 4vh, 48px) 0 clamp(48px, 10vh, 120px);
  border-top: 1px solid var(--line-dark);
  opacity: 0.32; transition: opacity 0.6s ease;
  scroll-margin-top: calc(var(--header-h) + 24px);
}
.qz-svc__item:last-child { min-height: 60vh; }
.qz-svc__item.is-active { opacity: 1; }
.qz-svc__num { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.8rem; }
.qz-svc__title { font-size: clamp(2.2rem, 4.6vw, 4rem); font-weight: 500; line-height: 1; letter-spacing: -0.04em; }
.qz-svc__text { max-width: 44ch; color: var(--stone-light); font-size: clamp(1.02rem, 1.4vw, 1.15rem); }
.qz-svc__example {
  display: inline-flex; align-items: center; gap: 10px; justify-self: start;
  margin-top: 8px; padding: 12px 18px; border: 1px solid var(--line-dark); border-radius: 999px;
  color: var(--bone); font-weight: 500; text-decoration: none;
  transition: border-color 0.3s ease, background-color 0.3s ease;
}
.qz-svc__example span { color: var(--stone-light); font-weight: 400; }
.qz-svc__example i { font-style: normal; color: var(--alpenglow-light); transition: transform 0.3s var(--ease); }
.qz-svc__example:hover { border-color: var(--alpenglow); background: rgba(185, 106, 76, 0.1); }
.qz-svc__example:hover i { transform: translateX(4px); }

/* ------------------------------------------------------------ Services: method as an ascent */

.qz-climb { background: var(--basalt-2); }
.qz-climb__route { position: relative; }
.qz-js .qz-climb__route[data-qz-reveal] { transform: none; }
.qz-climb__line { position: absolute; inset: 0 0 auto; width: 100%; height: 300px; }
.qz-climb__ground { fill: none; stroke: var(--line-dark); stroke-width: 1; stroke-dasharray: 4 6; vector-effect: non-scaling-stroke; }
.qz-climb__path { fill: none; stroke: var(--alpenglow-light); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s var(--ease) 0.2s; }
.qz-climb__route.is-visible .qz-climb__path { stroke-dashoffset: 0; }
.qz-climb__steps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0; list-style: none; }
.qz-climb__steps li { position: relative; display: grid; align-content: start; gap: 10px; padding-right: 24px; opacity: 0; transform: translateY(16px); transition: opacity 0.8s ease, transform 0.8s var(--ease); }
.qz-climb__route.is-visible .qz-climb__steps li { opacity: 1; transform: none; }
.qz-climb__steps li:nth-child(1) { padding-top: 262px; transition-delay: 0.3s; }
.qz-climb__steps li:nth-child(2) { padding-top: 190px; transition-delay: 0.7s; }
.qz-climb__steps li:nth-child(3) { padding-top: 118px; transition-delay: 1.1s; }
.qz-climb__steps li:nth-child(4) { padding-top: 46px; transition-delay: 1.5s; }
.qz-climb__steps li::before {
  content: ""; position: absolute; left: calc(50% - 7px); width: 14px; height: 14px; border-radius: 50%;
  background: var(--basalt-2); border: 2px solid var(--alpenglow-light);
  margin-top: -7px;
}
.qz-climb__steps li:nth-child(1)::before { top: 262px; }
.qz-climb__steps li:nth-child(2)::before { top: 190px; }
.qz-climb__steps li:nth-child(3)::before { top: 118px; }
.qz-climb__steps li:nth-child(4)::before { top: 46px; background: var(--alpenglow); }
.qz-climb__steps li > * { padding-top: 22px; }
.qz-climb__steps li > * ~ * { padding-top: 0; }
.qz-climb__alt { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }
.qz-climb__steps h3 { font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 500; letter-spacing: -0.02em; }
.qz-climb__steps p { color: var(--stone-light); font-size: 0.95rem; }

@media (max-width: 860px) {
  .qz-svc__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .qz-svc__stage { top: var(--header-h); z-index: 3; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter) 16px; background: linear-gradient(var(--basalt) 85%, transparent); }
  .qz-svc__frame { aspect-ratio: 16 / 9; }
  .qz-svc__item { min-height: 60vh; }
  .qz-climb__line { display: none; }
  .qz-climb__steps { grid-template-columns: minmax(0, 1fr); gap: 0; border-left: 2px solid var(--alpenglow-light); margin-left: 7px; }
  .qz-climb__steps li { padding: 0 0 32px 28px !important; }
  .qz-climb__steps li::before { top: 4px !important; left: -8px; }
  .qz-climb__steps li > * { padding-top: 0; }
}

/* Interactive globe */
.qz-places__globe canvas { cursor: grab; }
.qz-places__globe canvas:active { cursor: grabbing; }
.qz-globe__zoom { position: absolute; top: 8px; right: 8px; z-index: 2; display: grid; gap: 6px; }
.qz-globe__zoom button {
  width: 40px; height: 40px; padding: 0;
  border: 1px solid var(--line-dark); border-radius: 50%;
  background: rgba(21, 20, 15, 0.7); color: var(--bone);
  font: 400 1.3rem/1 var(--font); cursor: pointer;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  transition: border-color 0.3s ease, color 0.3s ease;
}
.qz-globe__zoom button:hover { border-color: var(--alpenglow-light); color: var(--alpenglow-light); }
.qz-globe__hint {
  position: absolute; right: 0; bottom: -4px; left: 0; text-align: center;
  color: var(--stone); font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase;
  transition: opacity 0.6s ease; pointer-events: none;
}
.qz-globe__hint.is-hidden { opacity: 0; }
.qz-globe__card {
  position: absolute; bottom: 8%; left: 50%; z-index: 3;
  width: min(92%, 340px); padding: 18px 20px 14px;
  border: 1px solid rgba(212, 136, 106, 0.45); border-radius: 10px;
  background: rgba(21, 20, 15, 0.88); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
  opacity: 0; transform: translate(-50%, 12px); transition: opacity 0.3s ease, transform 0.4s var(--ease);
}
.qz-globe__card[hidden] { display: none; }
.qz-globe__card.is-open { opacity: 1; transform: translate(-50%, 0); }
.qz-globe__card-close { position: absolute; top: 6px; right: 8px; width: 32px; height: 32px; padding: 0; border: 0; background: none; color: var(--stone-light); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.qz-globe__card-close:hover { color: var(--bone); }
.qz-globe__card-place { margin-bottom: 10px; padding-right: 28px; color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-globe__card-list { display: grid; padding: 0; list-style: none; }
.qz-globe__card-list li + li { border-top: 1px solid var(--line-dark); }
.qz-globe__card-list a { display: grid; gap: 2px; padding: 10px 0; text-decoration: none; }
.qz-globe__card-list b { font-size: 1.05rem; font-weight: 500; transition: color 0.2s ease; }
.qz-globe__card-list b::after { content: " →"; color: var(--alpenglow-light); }
.qz-globe__card-list span { color: var(--stone-light); font-size: 0.82rem; }
.qz-globe__card-list a:hover b { color: var(--alpenglow-light); }

.qz-places__list button {
  display: grid; gap: 4px; width: 100%; padding: 16px 0;
  border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer;
  transition: padding 0.3s var(--ease);
}
.qz-places__list li { padding: 0; }
.qz-places__list button:hover, .qz-places__list button[aria-pressed="true"] { padding-left: 12px; }
.qz-places__list button[aria-pressed="true"] b { color: var(--alpenglow-light); }
.qz-places__list button span { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-places__list button b { font-size: clamp(1rem, 1.5vw, 1.2rem); font-weight: 400; transition: color 0.3s ease; }

/* Globe blends into the page: no frame, edges fade into the background */
.qz-places__globe::after { display: none; }
.qz-places__globe canvas {
  -webkit-mask-image: radial-gradient(closest-side, #000 86%, transparent 100%);
  mask-image: radial-gradient(closest-side, #000 86%, transparent 100%);
}

/* Place detail: replaces the list in the copy column */
.qz-place-detail { margin-bottom: 32px; animation: qz-fade-up 0.6s var(--ease) both; }
.qz-place-detail[hidden] { display: none; }
.qz-place-detail__back {
  margin-bottom: 22px; padding: 0; border: 0; background: none;
  color: var(--stone-light); font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer;
  transition: color 0.3s ease;
}
.qz-place-detail__back:hover { color: var(--bone); }
.qz-place-detail__place { margin-bottom: 8px; color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; }
.qz-place-detail__list { display: grid; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); }
.qz-place-detail__list li { border-bottom: 1px solid var(--line-dark); }
.qz-place-detail__list a { display: grid; gap: 4px; padding: 20px 0; text-decoration: none; transition: padding 0.3s var(--ease); }
.qz-place-detail__list a:hover { padding-left: 12px; }
.qz-place-detail__list b { font-size: clamp(1.4rem, 2.6vw, 2.2rem); font-weight: 500; line-height: 1.1; letter-spacing: -0.02em; transition: color 0.3s ease; }
.qz-place-detail__list b::after { content: " →"; color: var(--alpenglow-light); }
.qz-place-detail__list a:hover b { color: var(--alpenglow-light); }
.qz-place-detail__list span { color: var(--stone-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }

/* List and place detail share the same slot so the page never jumps */
.qz-places__copy { display: grid; grid-template-columns: minmax(0, 1fr); }
.qz-places__copy > .qz-places__list, .qz-places__copy > .qz-place-detail { grid-row: 3; grid-column: 1; align-self: start; }
.qz-places__copy > .qz-link { grid-row: 4; justify-self: start; }
.qz-places__list { transition: opacity 0.35s ease, visibility 0.35s; }
.qz-places__list.is-away { opacity: 0; visibility: hidden; }

/* ------------------------------------------------------------ 404: off route */
.qz-404 { position: relative; display: flex; align-items: center; min-height: 100vh; min-height: 100svh; padding: calc(var(--header-h) + 40px) 0 220px; overflow: hidden; }
.qz-404__alt { margin-bottom: 22px; color: var(--stone-light); font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; }
.qz-404__alt b { color: var(--alpenglow-light); font-weight: 500; }
.qz-404__title { font-size: clamp(3rem, 9vw, 8.4rem); font-weight: 500; line-height: 0.95; letter-spacing: -0.045em; }
.qz-404__title span { display: block; }
.qz-404__title .qz-hand-inline { color: var(--alpenglow-light); font-size: 1.15em; }
.qz-404__lead { max-width: 40ch; margin-top: 26px; color: var(--stone-light); font-size: clamp(1.05rem, 1.6vw, 1.25rem); }
.qz-404__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.qz-404__ridge { position: absolute; right: 0; bottom: 0; left: 0; height: 220px; pointer-events: none; }
.qz-404__ridge svg { width: 100%; height: 100%; }
.qz-404__ridge path { fill: var(--basalt-2); }
.qz-404__ridge .qz-404__trail { fill: none; stroke: var(--alpenglow-light); stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: 1; vector-effect: non-scaling-stroke; animation: qz-trail 2.4s var(--ease) 0.4s forwards; }
@keyframes qz-trail { to { stroke-dashoffset: 0.42; } }

/* ------------------------------------------------------------ Page transitions */
/* Entry: the page is uncovered by a basalt curtain sliding up (pure CSS, no flash). */
body.qz-page::before {
  content: ""; position: fixed; inset: 0; z-index: 150; pointer-events: none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 475 356'%3E%3Cpath fill='%23F1EEE6' fill-rule='evenodd' d='M102 178a135 177 0 1 0 270 0a135 177 0 1 0-270 0ZM165 178a72 115 0 1 0 144 0a72 115 0 1 0-144 0Z'/%3E%3Cpath fill='%23B96A4C' d='M0 136h16v35h443v-35h16v84h-16v-34H16v34H0Z'/%3E%3C/svg%3E") center / min(150px, 30vw) auto no-repeat,
    var(--basalt);
  animation: qz-curtain-out 0.8s var(--ease) 0.15s forwards;
}
@keyframes qz-curtain-out { to { transform: translateY(-100%); } }
/* Arriving from a trailer on the Projects page: the page is already full screen, no curtain. */
.qz-handoff body.qz-page::before { display: none; }

/* Exit: created by qz.js when an internal link is followed. */
.qz-curtain {
  position: fixed; inset: 0; z-index: 150; pointer-events: none;
  display: grid; place-items: center;
  background: var(--basalt);
  transform: translateY(100%);
  transition: transform 0.55s cubic-bezier(0.7, 0, 0.3, 1);
}
.qz-curtain.is-in { transform: none; }
.qz-curtain__mark { width: min(150px, 30vw); height: auto; overflow: visible; }
.qz-curtain__mark .qz-curtain__zero { fill: var(--bone); opacity: 0; transform: scale(0.82); transform-origin: 237px 178px; transition: opacity 0.3s ease 0.2s, transform 0.5s var(--ease) 0.2s; }
.qz-curtain__mark .qz-curtain__dim { fill: var(--alpenglow); clip-path: inset(0 100% 0 0); transition: clip-path 0.4s var(--ease) 0.32s; }
.qz-curtain.is-in .qz-curtain__zero { opacity: 1; transform: none; }
.qz-curtain.is-in .qz-curtain__dim { clip-path: inset(0 0 0 0); }

@media (prefers-reduced-motion: reduce) {
  body.qz-page::before { display: none; }
  .qz-curtain { display: none; }
}

/* Chapter blocks (series pages) */
.qz-chapter-block { padding: clamp(80px, 11vw, 150px) 0; border-top: 1px solid var(--line-dark); }
.qz-chapter-block--next { background: #0d0c09; }
.qz-chapter-block__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; margin-bottom: clamp(40px, 6vw, 72px); }
.qz-chapter-block__head { display: grid; justify-items: start; gap: 22px; }
.qz-chapter-block__index { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.76rem; letter-spacing: 0.12em; text-transform: uppercase; }
.qz-chapter-block__title { font-size: clamp(2.6rem, 6.4vw, 6rem); font-weight: 500; line-height: 0.95; letter-spacing: -0.045em; }
.qz-chapter-block__body { display: grid; gap: 28px; }
.qz-chapter-block__statement { font-size: clamp(1.5rem, 3vw, 2.6rem); font-weight: 300; line-height: 1.15; letter-spacing: -0.025em; }
.qz-chapter-block__statement .qz-hand-inline, .qz-film__logline .qz-hand-inline { color: var(--alpenglow-light); }
.qz-chapter-block .qz-countdown { justify-items: start; text-align: left; }
.qz-chapter-block__columns { margin-top: clamp(48px, 7vw, 88px); }
@media (max-width: 820px) {
  .qz-chapter-block__grid { grid-template-columns: minmax(0, 1fr); }
}

/* Self-hosted preview clips */
.qz-clip { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* While a montage is paused, its frames are hidden so YouTube's pause overlay never shows */
.qz-montage--hold > .qz-montage__layer { opacity: 0 !important; transition: opacity 0.4s ease; }
/* Safety net: once the page is ready the entry curtain is removed even if the animation never ran */
body.qz-page.qz-ready::before { display: none; }

/* YouTube covers often carry their own title: keep them subdued behind ours, gone once footage rolls */
.qz-film__poster img { filter: brightness(0.42) saturate(0.75) blur(1px); transform: scale(1.03); }
.qz-film__poster { transition: opacity 1s ease; }
.qz-film.is-rolling .qz-film__poster { opacity: 0; }

/* Contact form: honeypot, sent state */
.qz-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.qz-form[hidden] { display: none; }
.qz-form__note a { color: var(--stone-light); }
.qz-form .qz-button:disabled { opacity: 0.6; cursor: progress; }
.qz-form-sent { display: grid; justify-items: start; gap: 18px; padding: clamp(28px, 5vw, 48px); border: 1px solid var(--line-dark); border-radius: 8px; background: var(--basalt-2); outline: none; }
.qz-form-sent[hidden] { display: none; }
.qz-form-sent__mark { width: 72px; height: 54px; color: var(--bone); }
.qz-form-sent__title { font-size: clamp(2rem, 4.6vw, 3.4rem); font-weight: 500; line-height: 1; letter-spacing: -0.035em; }
.qz-form-sent p { max-width: 42ch; color: var(--stone-light); font-size: 1.05rem; }
.qz-form-sent .qz-link { padding: 0 0 4px; border: 0; background: none; color: var(--bone); font: 500 1rem var(--font); cursor: pointer; }

/* Open call: event logo and cover */
.qz-job { position: relative; overflow: hidden; }
.qz-job.has-cover { padding-top: 0; }
.qz-job__cover { grid-column: 1 / -1; height: clamp(160px, 26vw, 300px); margin: 0 calc(clamp(28px, 4vw, 48px) * -1); overflow: hidden; }
.qz-job__cover img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.8); }
.qz-job__logo { display: block; max-width: 180px; max-height: 56px; margin-bottom: 18px; object-fit: contain; object-position: left center; }

/* Footer: link to the photography site + back office */
.qz-footer__discover a { color: var(--stone-light); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(185, 106, 76, 0.6); }
.qz-footer__discover a:hover { color: var(--bone); }
.qz-footer__legal { align-items: center; }
.qz-footer__admin { display: inline-grid; place-items: center; width: 26px; height: 26px; color: var(--stone); opacity: 0.6; transition: opacity 0.3s ease, color 0.3s ease; }
.qz-footer__admin svg { width: 15px; height: 15px; }
.qz-footer__admin:hover { opacity: 1; color: var(--bone); }

/* ------------------------------------------------------------ Press kit (editorial, same language as the film pages) */
.qz-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.qz-press-about { padding-top: clamp(56px, 8vw, 100px); }
.qz-press-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line-dark); }
.qz-press-row .qz-eyebrow { margin: 0; }
.qz-press-copy {
  padding: 0 0 2px; border: 0; border-bottom: 1px solid var(--alpenglow); background: none;
  color: var(--bone); font: 500 0.82rem/1.4 var(--font); cursor: pointer; transition: color 0.3s ease;
}
.qz-press-copy:hover, .qz-press-copy.is-copied { color: var(--alpenglow-light); }
.qz-press-short {
  max-width: 28ch; margin: clamp(28px, 4vw, 48px) 0 clamp(72px, 10vw, 130px);
  font-size: clamp(1.7rem, 3.8vw, 3.2rem); font-weight: 300; line-height: 1.16; letter-spacing: -0.03em; text-wrap: balance;
}
.qz-press-long { margin-top: clamp(28px, 4vw, 48px); }
.qz-press-facts { display: grid; align-content: start; }
.qz-press-facts div { padding: 14px 0; border-top: 1px solid var(--line-dark); }
.qz-press-facts div:last-child { border-bottom: 1px solid var(--line-dark); }
.qz-press-facts dt { color: var(--stone); font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-press-facts dd { margin-top: 3px; font-size: 1.05rem; font-weight: 500; }

.qz-press-featured { min-height: 90vh; min-height: 90svh; }

/* Logo contact sheet: edge-to-edge tiles, no frames */
.qz-sheet { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 0 clamp(12px, 2vw, 24px); }
.qz-sheet__item { margin: 0; }
.qz-sheet__art { display: grid; place-items: center; aspect-ratio: 4 / 3; padding: 14%; }
.qz-sheet__item:first-child .qz-sheet__art { aspect-ratio: auto; height: 100%; min-height: 100%; }
.qz-sheet__item--dark .qz-sheet__art { background: #0d0c09; }
.qz-sheet__item--light .qz-sheet__art { background: var(--bone); }
.qz-sheet__art img { max-width: 100%; max-height: 100%; object-fit: contain; transition: transform 0.6s var(--ease); }
.qz-sheet__item:hover .qz-sheet__art img { transform: scale(1.04); }
.qz-sheet__item { display: grid; grid-template-rows: 1fr auto; }
.qz-sheet figcaption, .qz-shot figcaption {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  padding: 14px 0; border-bottom: 1px solid var(--line-dark);
}
.qz-sheet figcaption span { color: var(--stone-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-sheet a, .qz-shot a {
  color: var(--bone); font-weight: 500; font-size: 0.88rem; text-decoration: none;
  border-bottom: 1px solid var(--alpenglow); padding-bottom: 2px; transition: color 0.3s ease;
}
.qz-sheet a:hover, .qz-shot a:hover { color: var(--alpenglow-light); }

/* Colour bands: full width, click to copy */
.qz-bands { display: grid; margin-top: clamp(48px, 7vw, 88px); }
.qz-band {
  position: relative; display: flex; align-items: baseline; gap: 18px;
  width: 100%; min-height: clamp(64px, 9vw, 104px);
  padding: 0 max(var(--gutter), calc((100vw - var(--wrap)) / 2));
  border: 0; background: var(--c); color: var(--ink);
  font: inherit; text-align: left; cursor: pointer;
  align-items: center;
  transition: min-height 0.5s var(--ease);
}
.qz-band:hover { min-height: clamp(84px, 11vw, 132px); }
.qz-band b { font-size: clamp(1.4rem, 3vw, 2.4rem); font-weight: 500; letter-spacing: -0.03em; }
.qz-band__hex { font-family: var(--mono); font-size: 0.82rem; letter-spacing: 0.08em; opacity: 0.75; }
.qz-band__hint { margin-left: auto; font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0; transition: opacity 0.3s ease; }
.qz-band:hover .qz-band__hint, .qz-band:focus-visible .qz-band__hint { opacity: 0.8; }
.qz-band.is-copied .qz-band__hint { opacity: 1; }
.qz-band.is-copied .qz-band__hint::after { content: " ✓"; }

/* Photos & stills: frames like the project reel */
.qz-shots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 48px) clamp(16px, 3vw, 32px); }
.qz-shot { margin: 0; }
.qz-shot:first-child { grid-column: 1 / -1; }
.qz-shot img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 4px; filter: saturate(0.9); transition: filter 0.6s ease; }
.qz-shot:first-child img { aspect-ratio: 21 / 9; }
.qz-shot:hover img { filter: none; }
.qz-shot__meta { display: grid; gap: 2px; }
.qz-shot__meta b { font-weight: 500; }
.qz-shot__meta span { color: var(--stone); font-size: 0.82rem; }

@media (max-width: 820px) {
  .qz-sheet { grid-template-columns: minmax(0, 1fr); }
  .qz-sheet__item:first-child .qz-sheet__art { aspect-ratio: 4 / 3; height: auto; }
  .qz-shots { grid-template-columns: minmax(0, 1fr); }
  .qz-shot:first-child img { aspect-ratio: 3 / 2; }
  .qz-band__hint { display: none; }
}

/* Footer: link to the photography site + back office */
.qz-footer__discover a { color: var(--stone-light); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(185, 106, 76, 0.6); }
.qz-footer__discover a:hover { color: var(--bone); }
.qz-footer__legal { align-items: center; }
.qz-footer__admin { display: inline-grid; place-items: center; width: 26px; height: 26px; color: var(--stone); opacity: 0.6; transition: opacity 0.3s ease, color 0.3s ease; }
.qz-footer__admin svg { width: 15px; height: 15px; }
.qz-footer__admin:hover { opacity: 1; color: var(--bone); }

/* ------------------------------------------------------------ Press kit */
.qz-press__grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.6fr); gap: clamp(28px, 6vw, 96px); align-items: start; }
.qz-press__note { margin-top: 10px; color: var(--stone); font-size: 0.88rem; }
.qz-press__texts { display: grid; gap: 18px; }
.qz-press-text { padding: 22px 24px; border: 1px solid var(--line-dark); border-radius: 8px; background: var(--basalt-2); }
.qz-press-text header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.qz-press-text header span { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-press-text p { color: #d8d3c8; font-size: 1.02rem; line-height: 1.7; }
.qz-press-copy {
  min-height: 32px; padding: 0 14px; border: 1px solid var(--line-dark); border-radius: 999px;
  background: transparent; color: var(--bone); font: 500 0.78rem/1 var(--font); cursor: pointer;
  transition: border-color 0.3s ease, background-color 0.3s ease;
}
.qz-press-copy:hover, .qz-press-copy.is-copied { border-color: var(--alpenglow); background: rgba(185, 106, 76, 0.12); }
.qz-press__facts { margin-top: 6px; }
.qz-press-featured { background: #0d0c09; }
.qz-press-featured__lead { font-size: clamp(1.2rem, 2.2vw, 1.6rem); font-weight: 300; line-height: 1.45; }
.qz-press-featured__lead .qz-hand-inline { color: var(--alpenglow-light); }

.qz-logos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 32px; }
.qz-logo-card { display: grid; grid-template-rows: 200px auto; overflow: hidden; border: 1px solid var(--line-dark); border-radius: 8px; }
.qz-logo-card img { width: 100%; height: 100%; padding: 40px; object-fit: contain; }
.qz-logo-card--dark img { background: var(--basalt); }
.qz-logo-card--light img { background: var(--bone); }
.qz-logo-card figcaption, .qz-press-photo figcaption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; padding: 14px 16px; background: var(--basalt-2); }
.qz-logo-card figcaption b, .qz-press-photo figcaption b { font-weight: 500; }
.qz-logo-card a, .qz-press-photo a { color: var(--alpenglow-light); font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.06em; text-decoration: none; text-transform: uppercase; }
.qz-logo-card a:hover, .qz-press-photo a:hover { color: var(--bone); }

.qz-swatches { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.qz-swatch { display: grid; gap: 4px; padding: 0 0 12px; border: 1px solid var(--line-dark); border-radius: 8px; background: var(--basalt-2); color: var(--bone); font: inherit; text-align: left; cursor: pointer; overflow: hidden; }
.qz-swatch__chip { height: 72px; margin-bottom: 8px; background: var(--c); border-bottom: 1px solid var(--line-dark); }
.qz-swatch b, .qz-swatch span:last-child { padding: 0 12px; }
.qz-swatch b { font-weight: 500; font-size: 0.92rem; }
.qz-swatch span:last-child { color: var(--stone-light); font-family: var(--mono); font-size: 0.74rem; }
.qz-swatch.is-copied span:last-child { color: var(--alpenglow-light); }

.qz-press-photos .qz-h2 { margin-bottom: clamp(28px, 4vw, 48px); }
.qz-press-photos__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.qz-press-photo { overflow: hidden; border: 1px solid var(--line-dark); border-radius: 8px; }
.qz-press-photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.qz-press-photo figcaption span { width: 100%; order: 3; color: var(--stone); font-size: 0.8rem; }

@media (max-width: 820px) {
  .qz-press__grid, .qz-logos, .qz-press-photos__grid { grid-template-columns: minmax(0, 1fr); }
  .qz-swatches { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ------------------------------------------------------------ Race route (real GPX) */
.qz-route { margin: 0; }
.qz-route[hidden] { display: none; }
.qz-route__map { position: relative; }
.qz-route__svg { display: block; width: 100%; height: auto; overflow: visible; }
.qz-route__sea { position: absolute; left: 6%; bottom: 10%; color: #57524a; font-family: "QZ Hand", var(--font); font-size: clamp(1.2rem, 2.4vw, 1.8rem); }
.qz-route__glow { fill: none; stroke: var(--alpenglow); stroke-opacity: 0.16; stroke-width: 10; stroke-linecap: round; stroke-linejoin: round; }
.qz-route__line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.4s cubic-bezier(0.3, 0.6, 0.2, 1); }
.qz-route__line--night { stroke: var(--alpenglow-light); }
.qz-route__line--day { stroke: var(--sand); transition-delay: 1.6s; }
.qz-route.is-drawn .qz-route__line { stroke-dashoffset: 0; }
.qz-route__pt { fill: var(--alpenglow); stroke: #100f0b; stroke-width: 3; }
.qz-route__pt--end { fill: var(--bone); }
.qz-route__pt--split { fill: #100f0b; stroke: var(--sand); stroke-width: 2.5; }
.qz-route__label { fill: var(--bone); font-family: ui-monospace, Menlo, monospace; font-size: 15px; font-weight: 500; letter-spacing: 0.12em; }
.qz-route__km { fill: #6b675e; }
.qz-route__kmlabel { fill: #6b675e; font-family: ui-monospace, Menlo, monospace; font-size: 12px; }
.qz-route__cursor { fill: var(--bone); stroke: var(--alpenglow); stroke-width: 3; pointer-events: none; }

.qz-route__profile { position: relative; padding: 18px 0 6px; cursor: crosshair; touch-action: pan-y; }
.qz-route__profile .qz-route__svg { height: clamp(120px, 16vw, 200px); }
.qz-route__nightband { fill: rgba(241, 238, 230, 0.03); }
.qz-route__grid { stroke: #34322a; stroke-dasharray: 3 5; vector-effect: non-scaling-stroke; }
.qz-route__area { fill: rgba(185, 106, 76, 0.16); }
.qz-route__pline { fill: none; stroke: var(--alpenglow-light); stroke-width: 1.6; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.4s cubic-bezier(0.3, 0.6, 0.2, 1) 0.3s; }
.qz-route.is-drawn .qz-route__pline { stroke-dashoffset: 0; }
.qz-route__pcursor { stroke: var(--bone); stroke-width: 1; vector-effect: non-scaling-stroke; }
.qz-route__axis { position: absolute; inset: 18px 0 6px; pointer-events: none; }
.qz-route__axis > span { position: absolute; left: 0; transform: translateY(50%); color: #6b675e; font-family: var(--mono); font-size: 0.66rem; }
.qz-route__acts { position: absolute; inset: 0; }
.qz-route__acts b { position: absolute; top: 6px; color: var(--stone-light); font-family: var(--mono); font-size: 0.66rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; }
.qz-route__tip { position: absolute; top: 0; transform: translateX(-50%); padding: 4px 8px; border-radius: 4px; background: var(--bone); color: var(--basalt); font-family: var(--mono); font-size: 0.7rem; white-space: nowrap; pointer-events: none; }
.qz-route__tip[hidden] { display: none; }
.qz-route__stats { display: flex; flex-wrap: wrap; gap: 8px 32px; padding: 18px 0 14px; }
.qz-route__stats dt { color: var(--stone); font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; }
.qz-route__stats dd { margin-top: 2px; font-size: 1.15rem; font-weight: 500; }
.qz-route figcaption { padding: 0; color: var(--stone); font-size: 0.8rem; }
@media (prefers-reduced-motion: reduce) { .qz-route__line, .qz-route__pline { stroke-dashoffset: 0; transition: none; } }
.qz-route__map .qz-route__svg { max-height: min(68vh, 640px); margin: 0 auto; }
.qz-route__wptick { stroke: rgba(241, 238, 230, 0.18); stroke-dasharray: 2 4; vector-effect: non-scaling-stroke; }
.qz-route__kmlabel { fill: var(--stone-light); font-size: 13px; letter-spacing: 0.04em; }
.qz-route__km { fill: var(--stone-light); }
/* Map with geographic context: the sea is the page, land fades out at the edges. */
.qz-route__map.has-context { -webkit-mask-image: radial-gradient(ellipse 72% 70% at 50% 50%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 72% 70% at 50% 50%, #000 55%, transparent 100%); }
.qz-route__map.has-context .qz-route__sea { display: none; }
.qz-route__map.has-context .qz-route__svg { max-height: none; overflow: hidden; }
.qz-route__land { fill: #1f1d17; stroke: #3a372e; stroke-width: 1; stroke-linejoin: round; }
.qz-route__land--si { fill: #25221b; }
.qz-route__land--hr { fill: #22201a; }
.qz-route__town { fill: #57524a; }
.qz-route__place { fill: #6b675e; font-family: ui-monospace, Menlo, monospace; font-size: 12px; letter-spacing: 0.06em; }
.qz-route__place--country { fill: #4a463d; font-size: 15px; letter-spacing: 0.4em; text-anchor: middle; }
.qz-route__place--sea, .qz-route__place--region { fill: #4a463d; font-family: "QZ Hand", var(--font); font-size: 26px; letter-spacing: 0; text-anchor: middle; }
.qz-route__map.has-context .qz-route__label, .qz-route__map.has-context .qz-route__kmlabel { paint-order: stroke; stroke: #15140f; stroke-width: 5px; stroke-linejoin: round; }

/* Event logos on project cards and film pages */
.qz-card__logo { display: block; width: auto; max-width: min(180px, 40%); height: clamp(28px, 3.4vw, 44px); margin-bottom: 18px; object-fit: contain; object-position: left center; }
.qz-cards--reel > .qz-card:nth-child(even) .qz-card__logo { margin-left: auto; object-position: right center; }
@media (max-width: 820px) { .qz-cards--reel > .qz-card:nth-child(even) .qz-card__logo { margin-left: 0; object-position: left center; } }
.qz-film__logo { display: block; width: auto; max-width: 240px; height: clamp(40px, 5vw, 64px); margin-bottom: 22px; object-fit: contain; object-position: left center; animation: qz-fade-up 0.9s var(--ease) 0.25s both; }

/* ------------------------------------------------------------ Home: clients strip */
.qz-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.qz-clients { position: relative; padding: clamp(56px, 8vw, 110px) 0 clamp(48px, 7vw, 96px); border-top: 1px solid var(--line-dark); background: var(--basalt); overflow: hidden; }
.qz-clients[hidden] { display: none; }
.qz-clients__head { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 2.2rem; margin-bottom: clamp(32px, 4.5vw, 60px); }
.qz-clients__kicker { color: var(--stone-light); font-family: var(--mono); font-size: 0.74rem; font-weight: 400; letter-spacing: 0.16em; text-transform: uppercase; }
.qz-clients__kicker::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 12px; border-radius: 50%; background: var(--alpenglow); vertical-align: 1px; }
.qz-clients__name { min-height: 1.4em; color: var(--alpenglow-light); font-family: "QZ Hand", var(--font); font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1; opacity: 0; transform: translateY(8px); transition: opacity 0.4s ease, transform 0.5s var(--ease); }
.qz-clients.is-naming .qz-clients__name { opacity: 1; transform: none; }
.qz-clients__marquee { -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.qz-clients__track { display: flex; align-items: center; width: max-content; animation: qz-marquee var(--qz-clients-speed, 50s) linear infinite; }
.qz-clients__marquee:hover .qz-clients__track { animation-play-state: paused; }
.qz-clients__item { --qz-logo-base: clamp(78px, 10vw, 140px); display: flex; align-items: center; gap: clamp(48px, 7vw, 110px); padding-right: clamp(48px, 7vw, 110px); }
.qz-clients__item::after { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--alpenglow); opacity: 0.7; }
.qz-clients__item img { display: block; width: auto; height: calc(var(--qz-logo-base) * var(--qz-logo-h, 0.8)); max-width: none; opacity: 0.5; filter: drop-shadow(0 0 0 transparent); transition: opacity 0.5s ease, transform 0.6s var(--ease), filter 0.6s ease; }
.qz-clients__marquee:hover .qz-clients__item img { opacity: 0.18; }
.qz-clients__marquee .qz-clients__item:hover img { opacity: 1; transform: scale(1.06); filter: drop-shadow(0 0 28px rgba(185, 106, 76, 0.35)); }
@media (prefers-reduced-motion: reduce) { .qz-clients__track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; } }
@media (hover: none) { .qz-clients__item img { opacity: 0.6; } }

/* ------------------------------------------------------------ Home: founder quote v2 */
.qz-founder { position: relative; display: grid; align-items: center; min-height: min(100vh, 980px); padding: clamp(96px, 14vw, 200px) 0; overflow: hidden; background: var(--basalt); }
.qz-founder__photo { position: absolute; inset: 0 0 0 auto; width: min(58%, 820px); aspect-ratio: auto; border-radius: 0; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.55) 35%, #000 75%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.55) 35%, #000 75%); }
.qz-founder__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, var(--basalt) 0%, rgba(21, 20, 15, 0) 30%, rgba(21, 20, 15, 0) 75%, var(--basalt) 100%); }
.qz-founder__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; filter: grayscale(1) contrast(1.1) brightness(0.55); transform: scale(1.08); transition: filter 1.6s ease, transform 2.4s var(--ease); }
.qz-founder:has(.is-lit) .qz-founder__photo img { filter: grayscale(0.6) contrast(1.05) brightness(0.7); transform: none; }
.qz-founder__quote { position: relative; z-index: 1; margin: 0 auto; }
.qz-founder__text { max-width: 19ch; margin: 22px 0 0; font-size: clamp(2.1rem, 5vw, 4.9rem); font-weight: 300; line-height: 1.08; letter-spacing: -0.035em; text-wrap: pretty; }
.qz-founder__text .qz-word { color: rgba(241, 238, 230, 0.16); transition: color 0.5s ease; }
.qz-founder__text .qz-word.is-on, .is-lit .qz-founder__text .qz-word { color: var(--bone); }
.qz-founder__text em { display: block; margin-top: 0.18em; font-family: "QZ Hand", var(--font); font-size: 1.32em; font-style: normal; line-height: 0.95; letter-spacing: 0; }
.qz-founder__text em .qz-word { color: rgba(185, 106, 76, 0.2); }
.qz-founder__text em .qz-word.is-on, .is-lit .qz-founder__text em .qz-word { color: var(--alpenglow-light); }
.qz-founder__sign { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 18px; margin-top: clamp(32px, 4vw, 56px); opacity: 0; transform: translateY(12px); transition: opacity 0.8s ease, transform 0.9s var(--ease); }
.is-lit .qz-founder__sign { opacity: 1; transform: none; }
.qz-founder__sign b { font-size: 1.15rem; font-weight: 500; }
.qz-founder__sign b::before { content: ""; display: inline-block; width: 40px; height: 1px; margin-right: 14px; background: var(--alpenglow); vertical-align: 0.35em; }
.qz-founder__sign span { color: var(--stone-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
@media (max-width: 820px) {
  .qz-founder { min-height: 0; padding-top: 0; }
  .qz-founder__photo { position: relative; inset: auto; width: 100%; height: 62vw; max-width: none; -webkit-mask-image: linear-gradient(180deg, #000 40%, transparent); mask-image: linear-gradient(180deg, #000 40%, transparent); }
  .qz-founder__quote { margin-top: -10vw; }
}

/* ------------------------------------------------------------ Contact: the letter */
.qz-letter { padding-top: clamp(40px, 6vw, 80px); }
.qz-letter__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 340px); gap: clamp(48px, 8vw, 140px); align-items: start; }
.qz-letter__form { display: grid; gap: clamp(26px, 3.4vw, 44px); }
.qz-letter__line, .qz-letter .qz-letter__lead { margin: 0; color: var(--stone-light); font-family: var(--font); font-size: clamp(1.4rem, 2.8vw, 2.4rem); text-transform: none; font-weight: 300; line-height: 1.45; letter-spacing: -0.025em; }
.qz-letter__topics { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.1em 0.55em; margin: 0; padding: 0; border: 0; }
.qz-letter__topics legend { float: left; margin-right: 0.3em; padding: 0; }
.qz-inline { display: inline; }
.qz-inline input, .qz-letter__message textarea {
  min-width: 4ch; max-width: 100%; padding: 0 0 2px; border: 0; border-bottom: 1px dashed rgba(241, 238, 230, 0.28); border-radius: 0;
  background: transparent; color: var(--bone); font: inherit; font-weight: 400; letter-spacing: inherit;
  transition: border-color 0.3s ease, color 0.3s ease;
}
.qz-inline input::placeholder, .qz-letter__message textarea::placeholder { color: rgba(241, 238, 230, 0.26); }
.qz-inline input:focus, .qz-letter__message textarea:focus { outline: none; border-bottom: 1px solid var(--alpenglow); }
.qz-inline input:focus::placeholder, .qz-letter__message textarea:focus::placeholder { color: rgba(241, 238, 230, 0.14); }
.qz-field.is-invalid input, .qz-field.is-invalid textarea { border-bottom: 1px solid #f0a090; }
.qz-field.is-invalid input::placeholder, .qz-field.is-invalid textarea::placeholder { color: rgba(240, 160, 144, 0.6); }
.qz-letter__soft { color: var(--stone); }
.qz-topic { position: relative; cursor: pointer; }
.qz-topic input { position: absolute; opacity: 0; pointer-events: none; }
.qz-topic span { position: relative; color: rgba(241, 238, 230, 0.3); transition: color 0.3s ease; }
.qz-topic:hover span { color: var(--stone-light); }
.qz-topic input:checked + span { color: var(--alpenglow-light); }
.qz-topic input:checked + span::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0.02em; height: 0.09em; border-radius: 1em; background: var(--alpenglow); transform-origin: left; animation: qz-underline 0.5s var(--ease) both; }
.qz-topic input:focus-visible + span { outline: 2px solid var(--alpenglow); outline-offset: 4px; border-radius: 4px; }
@keyframes qz-underline { from { transform: scaleX(0); } }
.qz-letter__message { display: grid; gap: 6px; }
.qz-letter__message textarea { width: 100%; min-height: 1.6em; resize: none; overflow: hidden; font-size: clamp(1.4rem, 2.8vw, 2.4rem); font-weight: 300; line-height: 1.45; letter-spacing: -0.025em; }
.qz-letter__send { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 32px; margin-top: 8px; }
.qz-letter__button {
  display: inline-flex; align-items: center; gap: 16px; padding: 18px 30px 18px 32px; border: 0; border-radius: 999px;
  background: var(--alpenglow); color: var(--bone); font: 500 1.05rem var(--font); cursor: pointer;
  transition: background 0.3s ease, transform 0.4s var(--ease);
}
.qz-letter__button::after { content: "↗"; display: grid; place-items: center; width: 34px; height: 34px; margin-right: -14px; border-radius: 50%; background: var(--bone); color: var(--basalt); transition: transform 0.4s var(--ease); }
.qz-letter__button:hover { background: var(--alpenglow-light); }
.qz-letter__button:hover::after { transform: rotate(45deg); }
.qz-letter__button:disabled { opacity: 0.6; cursor: wait; }
.qz-letter__sent { border: 0; padding: 0; background: none; }
.qz-letter__aside { position: sticky; top: calc(var(--header-h) + 32px); display: grid; gap: 34px; padding-top: 14px; }
.qz-letter__aside-title { color: var(--stone-light); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; }
.qz-letter__direct { display: grid; gap: 0; margin: -18px 0 0; padding: 0; list-style: none; }
.qz-letter__direct li { display: grid; gap: 4px; padding: 18px 0; border-bottom: 1px solid var(--line-dark); }
.qz-letter__direct span { color: var(--stone); font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.12em; text-transform: uppercase; }
.qz-letter__direct a { color: var(--bone); font-size: 1.05rem; text-decoration: none; overflow-wrap: anywhere; transition: color 0.3s ease; }
.qz-letter__direct a:hover { color: var(--alpenglow-light); }
.qz-letter__base { display: flex; align-items: center; gap: 16px; }
.qz-letter__mark { flex: none; width: 54px; height: 40px; color: var(--alpenglow); }
.qz-letter__base p { display: grid; gap: 2px; }
.qz-letter__base b { font-weight: 500; }
.qz-letter__base span { color: var(--stone); font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.08em; }
@media (max-width: 900px) {
  .qz-letter__grid { grid-template-columns: minmax(0, 1fr); }
  .qz-letter__aside { position: static; }
}
.qz-nowrap { white-space: nowrap; }
.qz-nowrap .qz-inline input { max-width: calc(100vw - 60px); }

/* Services v2: the frame reads like a film */
.qz-svc__caption { display: none; }
.qz-svc__frame::after { background: linear-gradient(0deg, rgba(13, 12, 9, 0.85) 0%, rgba(13, 12, 9, 0.2) 40%, transparent 60%), linear-gradient(180deg, rgba(13, 12, 9, 0.5), transparent 22%); }
.qz-svc__bars { position: absolute; top: 18px; left: 20px; right: 20px; z-index: 2; display: flex; gap: 6px; }
.qz-svc__bars i { flex: 1; height: 2px; border-radius: 2px; background: rgba(241, 238, 230, 0.22); overflow: hidden; }
.qz-svc__bars i::after { content: ""; display: block; height: 100%; background: var(--alpenglow-light); transform: scaleX(0); transform-origin: left; transition: transform 0.7s var(--ease); }
.qz-svc__bars i.is-on::after { transform: none; }
.qz-svc__film { position: absolute; left: clamp(20px, 3vw, 32px); bottom: clamp(20px, 3vw, 30px); z-index: 2; display: grid; gap: 6px; max-width: 60%; }
.qz-svc__film span { color: var(--stone-light); font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; }
.qz-svc__film span::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: var(--alpenglow); vertical-align: 1px; animation: qz-blink 1.2s ease-in-out infinite; }
.qz-svc__film b { color: var(--bone); font-size: clamp(1.05rem, 1.8vw, 1.4rem); font-weight: 500; letter-spacing: -0.02em; }
.qz-svc__big { position: absolute; right: clamp(16px, 2.6vw, 30px); bottom: clamp(6px, 1.4vw, 16px); z-index: 2; margin: 0; color: transparent; -webkit-text-stroke: 1px rgba(241, 238, 230, 0.5); font-size: clamp(3.4rem, 9vw, 8rem); font-weight: 500; line-height: 1; letter-spacing: -0.05em; }
.qz-svc__item { opacity: 0.28; transition: opacity 0.6s ease; }
.qz-svc__item.is-active { opacity: 1; }
.qz-svc ~ .qz-clients { border-top: 1px solid var(--line-dark); }
@media (max-width: 820px) {
  .qz-svc__big { font-size: 3rem; }
  .qz-svc__film b { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .qz-svc__film span::before { animation: none; } }

/* Open calls v2: each call opens on a cinematic frame */
.qz-jobs { gap: clamp(72px, 10vw, 140px); }
.qz-jobs .qz-job { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(28px, 4vw, 48px); padding: 0; border: 0; border-radius: 0; background: none; overflow: visible; }
.qz-job__hero { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; min-height: clamp(320px, 42vw, 560px); padding: clamp(22px, 4vw, 56px); overflow: hidden; border-radius: 6px; background: var(--basalt-2); }
.qz-job__hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(0deg, rgba(13, 12, 9, 0.92) 0%, rgba(13, 12, 9, 0.35) 45%, transparent 75%), linear-gradient(90deg, rgba(13, 12, 9, 0.6), transparent 60%); }
.qz-jobs .qz-job__cover { position: absolute; inset: 0; height: auto; margin: 0; }
.qz-jobs .qz-job__cover img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.85); transform: scale(1.04); transition: transform 1.6s var(--ease); }
.qz-job:hover .qz-job__cover img { transform: none; }
.qz-jobs .qz-job__head { position: relative; z-index: 2; max-width: 760px; }
.qz-jobs .qz-job__logo { max-width: 200px; max-height: 64px; margin-bottom: 22px; }
.qz-jobs .qz-job__title { margin: 12px 0 0; font-size: clamp(2.2rem, 5.4vw, 5rem); line-height: 0.98; letter-spacing: -0.045em; text-wrap: balance; }
.qz-job__count { position: relative; z-index: 2; order: 2; display: grid; justify-items: end; gap: 4px; margin: 0; text-align: right; }
.qz-job__count b { color: transparent; -webkit-text-stroke: 1px rgba(241, 238, 230, 0.6); font-size: clamp(3.6rem, 9vw, 8.4rem); font-weight: 500; line-height: 0.9; letter-spacing: -0.05em; }
.qz-job__count span { color: var(--sand); font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; }
.qz-job__details { display: grid; grid-template-columns: minmax(200px, 0.6fr) minmax(0, 1.4fr); gap: clamp(28px, 6vw, 96px); align-items: start; }
.qz-job__details .qz-job__meta { position: sticky; top: calc(var(--header-h) + 24px); }
.qz-job__details .qz-job__meta div:last-child { border-bottom: 1px solid var(--line-dark); }
.qz-job__details .qz-job__summary { font-size: clamp(1.25rem, 2.2vw, 1.7rem); font-weight: 300; line-height: 1.35; letter-spacing: -0.02em; }
.qz-job__details .qz-job__label { margin-top: 18px; color: var(--stone-light); font-family: var(--mono); font-size: 0.7rem; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; }
.qz-job.is-closed .qz-job__hero { filter: grayscale(1); }
@media (max-width: 820px) {
  .qz-job__hero { flex-direction: column; align-items: flex-start; justify-content: flex-end; min-height: 440px; }
  .qz-job__count { position: absolute; top: 20px; right: 20px; }
  .qz-job__count b { font-size: 3.2rem; }
  .qz-job__details { grid-template-columns: minmax(0, 1fr); }
  .qz-job__details .qz-job__meta { position: static; }
}

/* Words that light up on scroll, outside the founder quote too */
[data-qz-words] .qz-word { color: rgba(241, 238, 230, 0.16); transition: color 0.5s ease; }
[data-qz-words] .qz-word.is-on, [data-qz-words].is-lit .qz-word { color: var(--bone); }
/* WebP images wrapped in <picture> */
.qz-founder__photo picture, .qz-card__media > picture { display: block; width: 100%; height: 100%; }
.qz-card__media > picture img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 65%; filter: saturate(0.85); }

/* ------------------------------------------------------------ Projects: the results sheet */

.qz-results {
  /* As big as the screen allows, leaving room for the title under it */
  --win-w: min(64vw, calc(56vh * 16 / 9), 1180px);
  --win-h: calc(var(--win-w) * 9 / 16);
  --row: 46px;
  --qz-step: 32vh;
  position: relative;
  height: calc(100vh + (var(--qz-rows, 2) - 1) * var(--qz-step));
  background: #0d0c09;
}
.qz-results__stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }

.qz-results__top { position: absolute; top: calc(var(--header-h) + 18px); right: 0; left: 0; display: flex; justify-content: space-between; gap: 24px; }
.qz-results__heading, .qz-results__info { margin: 0; color: var(--stone-light); font-family: var(--mono); font-size: 0.82rem; font-weight: 400; letter-spacing: 0.16em; text-transform: uppercase; }
.qz-results__heading { color: var(--bone); }
.qz-results__heading::before { content: ""; display: inline-block; width: 28px; height: 7px; margin-right: 12px; border: solid var(--alpenglow); border-width: 0 2px; background: linear-gradient(var(--alpenglow), var(--alpenglow)) center / 100% 2px no-repeat; vertical-align: 1px; }
.qz-results__info { display: flex; gap: 22px; }
.qz-results__info b { color: var(--bone); font-weight: 500; }

/* The window where the row on the line plays */
.qz-results__window { position: absolute; top: 50%; left: 50%; z-index: 1; width: var(--win-w); height: var(--win-h); overflow: hidden; transform: translate(-50%, -50%); background: #15140f; }
.qz-results__screen { position: absolute; inset: 0; overflow: hidden; container-type: size; opacity: 0; transition: opacity 0.35s ease; }
.qz-results__screen.is-active { opacity: 1; }
.qz-results__screen > img, .qz-results__screen > picture, .qz-results__screen > picture img, .qz-results__screen > .qz-poster { display: block; width: 100%; height: 100%; object-fit: cover; }
.qz-results__screen > .qz-poster { aspect-ratio: auto; }
.qz-results__preview {
  position: absolute; top: 50%; left: 50%;
  width: max(100cqw, calc(100cqh * 16 / 9)); height: max(100cqh, calc(100cqw * 9 / 16));
  transform: translate(-50%, -50%);
  opacity: 0; pointer-events: none; transition: opacity 0.9s ease;
}
.qz-results__preview iframe { width: 100%; height: 100%; border: 0; }
/* Clips are ready frames, so they come in without the slow fade YouTube needs. */
.qz-results__preview:has(.qz-clip) { transition-duration: 0.2s; }
.qz-results__screen.is-active.is-live .qz-results__preview { opacity: 1; }

.qz-results__feature { position: absolute; top: calc(50% + var(--win-h) / 2 + 20px); right: var(--gutter); left: var(--gutter); z-index: 1; text-align: center; }
.qz-results__feature-meta { color: var(--stone-light); font-family: var(--mono); font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; }
.qz-results__feature-title { margin-top: 8px; font-size: clamp(2rem, 4vw, 3.8rem); font-weight: 500; letter-spacing: -0.035em; line-height: 1.02; text-wrap: balance; }

/* The sheet: text runs across the window, inverted where it crosses the film */
.qz-results__table { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 2; mix-blend-mode: difference; pointer-events: none; }
.qz-results__head, .qz-results__link {
  display: grid; grid-template-columns: 48px minmax(0, 2.5fr) minmax(0, 1.5fr) minmax(0, 0.8fr) minmax(0, 0.8fr) minmax(0, 1.7fr) minmax(0, 0.8fr);
  gap: 0 24px; align-items: center;
}
.qz-results__head { position: absolute; top: calc(50% - var(--win-h) / 2 - 44px); right: var(--gutter); left: var(--gutter); margin: 0; color: #8a8272; font-family: var(--mono); font-size: 0.76rem; letter-spacing: 0.16em; text-transform: uppercase; }
.qz-results__head > span:nth-child(4), .qz-results__head > span:nth-child(5) { text-align: right; }
.qz-results__viewport {
  position: absolute; top: calc(50% - var(--win-h) / 2); right: var(--gutter); left: var(--gutter); height: var(--win-h); overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
  mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
}
.qz-results__rows {
  margin: 0; padding: 0; list-style: none;
  transform: translateY(calc(var(--qz-mid, calc(var(--win-h) / 2)) - (var(--qz-active, 0) + 0.5) * var(--row)));
  transition: transform 0.55s var(--ease);
}
.qz-results__row { height: var(--row); }
.qz-results__link {
  height: 100%; color: #f1eee6; text-decoration: none; pointer-events: auto;
  font-size: 1.05rem; letter-spacing: 0.04em; text-transform: uppercase;
  opacity: 0.4; transition: opacity 0.4s ease;
}
.qz-results__link > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qz-results__bib, .qz-results__num, .qz-results__year { font-family: var(--mono); font-size: 0.92rem; }
.qz-results__num { text-align: right; }
.qz-results__name { font-weight: 500; }
.qz-results__row.is-active .qz-results__link, .qz-results__link:hover, .qz-results__link:focus-visible { opacity: 1; }
.qz-results__row.is-active .qz-results__bib::before { content: "\25B8\00A0"; }
.qz-results__link:focus-visible { outline: 1px solid #f1eee6; outline-offset: 2px; }

/* Over the window only the row on the line takes clicks, so clicking the trailer opens that film */
@media (min-width: 641px) {
  .qz-results__row:not(.is-active) .qz-results__link { pointer-events: none; }
}
.qz-results__window { cursor: pointer; }
.qz-results.is-opening .qz-results__window, .qz-results.is-returning .qz-results__window { z-index: 120; }
.qz-results__window::after { content: ""; position: absolute; inset: 0; z-index: 3; background: #0d0c09; opacity: 0; pointer-events: none; transition: opacity 0.35s ease; }
.qz-results__window.is-blackout::after { opacity: 1; }
.qz-results.is-opening .qz-results__table, .qz-results.is-opening .qz-results__feature, .qz-results.is-opening .qz-results__top, .qz-results.is-opening .qz-results__hint { opacity: 0; transition: opacity 0.4s ease; }
/* Coming back: the sheet fades in behind the film as it shrinks into place */
.qz-returning body > * { opacity: 0; }
.qz-results__screen.has-clip > img, .qz-results__screen.has-clip > picture, .qz-results__screen.has-clip > .qz-poster { visibility: hidden; }
.qz-results.is-returning .qz-results__screen > img, .qz-results.is-returning .qz-results__screen > picture { opacity: 0; }
.qz-results.is-opening.is-returning .qz-results__table, .qz-results.is-opening.is-returning .qz-results__feature, .qz-results.is-opening.is-returning .qz-results__top, .qz-results.is-opening.is-returning .qz-results__hint { transition: none; }
.qz-results.is-returning .qz-results__table, .qz-results.is-returning .qz-results__feature, .qz-results.is-returning .qz-results__top, .qz-results.is-returning .qz-results__hint { transition: opacity 0.6s ease 0.35s; }

.qz-results__hint { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); color: var(--stone); font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.2em; text-transform: uppercase; }
.qz-results__hint::after { content: ""; display: block; width: 1px; height: 26px; margin: 10px auto 0; background: linear-gradient(var(--alpenglow), transparent); }
/* On shorter screens the title needs that room */
@media (max-height: 980px) { .qz-results__hint { display: none; } }

@media (max-width: 900px) {
  .qz-results__head, .qz-results__link { grid-template-columns: 34px minmax(0, 2.4fr) minmax(0, 1.4fr) minmax(0, 0.9fr) minmax(0, 0.7fr); }
  .qz-results__head > span:nth-child(5), .qz-results__head > span:nth-child(6),
  .qz-results__link > span:nth-child(5), .qz-results__link > span:nth-child(6) { display: none; }
}

@media (max-width: 640px) {
  .qz-results { --win-w: calc(100vw - var(--gutter) * 2); --win-h: min(calc(var(--win-w) * 3 / 4), 38vh); --row: 50px; --qz-step: 26vh; }
  .qz-results__window { top: calc(var(--header-h) + 56px); transform: translateX(-50%); }
  .qz-results__feature { top: calc(var(--header-h) + 56px + var(--win-h) + 18px); text-align: left; }
  .qz-results__feature-title { font-size: 2rem; }
  .qz-results__table { mix-blend-mode: normal; }
  .qz-results__head { display: none; }
  .qz-results__viewport { top: calc(var(--header-h) + 56px + var(--win-h) + 110px); bottom: 24px; height: auto; }
  .qz-results__head, .qz-results__link { grid-template-columns: 46px minmax(0, 1fr) auto; gap: 0 10px; }
  .qz-results__bib, .qz-results__year { font-size: 0.82rem; }
  .qz-results__link > span:nth-child(3), .qz-results__link > span:nth-child(4) { display: none; }
  .qz-results__link { border-bottom: 1px solid rgba(241, 238, 230, 0.08); font-size: 0.95rem; }
  .qz-results__hint { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .qz-results__rows, .qz-results__screen, .qz-results__link { transition: none; }
}

/* ------------------------------------------------------------ Film page: moments from the course */
.qz-moments { padding: clamp(72px, 10vw, 140px) 0; background: #0d0c09; }
.qz-moments__title { margin-bottom: clamp(24px, 3vw, 40px); color: var(--stone-light); font-family: var(--mono); font-size: 0.76rem; font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase; }
.qz-moments__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(8px, 1.2vw, 16px); }
.qz-moments__item { position: relative; margin: 0; aspect-ratio: 16 / 9; overflow: hidden; background: #000; }
.qz-moments__item:first-child, .qz-moments__item:last-child { grid-column: 1 / -1; aspect-ratio: 21 / 9; }
.qz-moments__item video { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 1.2s var(--ease); }
.qz-moments__item video.is-playing { transform: none; }
@media (max-width: 820px) {
  .qz-moments__item:first-child, .qz-moments__item:last-child { aspect-ratio: 16 / 9; }
}
@media (prefers-reduced-motion: reduce) { .qz-moments__item video { transform: none; transition: none; } }
