@charset "utf-8";

:root {
  --fv-canvas: #ffffff;
  --fv-tint: #fafafa;
  --fv-tint-deep: #f4f4f4;
  --fv-ink: #0b0b0b;
  --fv-ink-mid: #3f3f46;
  --fv-ink-soft: #5a5a5a;
  --fv-ink-faint: #6b7280;
  --fv-rule: #e4e4e7;
  --fv-rule-firm: #c9c9ce;
  --fv-accent: #7c3aed;
  --fv-accent-deep: #6428d6;
  --fv-on-accent: #ffffff;

  --fv-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --fv-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;

  --fv-caption: 12px;
  --fv-body-sm: 14px;
  --fv-body-md: 16px;
  --fv-body-lg: 18px;
  --fv-sub: 21px;
  --fv-h-sm: 28px;
  --fv-h: 32px;
  --fv-h-lg: 42px;
  --fv-display-size: 56px;

  --fv-w-light: 360;
  --fv-w-base: 400;
  --fv-w-mid: 420;
  --fv-w-firm: 480;
  --fv-w-loud: 530;

  --fv-4: 4px;
  --fv-8: 8px;
  --fv-12: 12px;
  --fv-16: 16px;
  --fv-20: 20px;
  --fv-24: 24px;
  --fv-32: 32px;
  --fv-40: 40px;
  --fv-56: 56px;
  --fv-72: 72px;
  --fv-112: 112px;

  --fv-shell-max: 1200px;
  --fv-band-gap: 56px;
  --fv-slab-pad: 24px;
  --fv-r-default: 4px;
  --fv-r-slab: 12px;
  --fv-r-pill: 32px;
  --fv-r-nav: 40px;
  --fv-masthead-h: 64px;
}

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

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--fv-canvas);
  color: var(--fv-ink);
  font-family: var(--fv-body);
  font-size: var(--fv-body-md);
  font-weight: var(--fv-w-base);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--fv-accent);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

h1,
h2,
h3,
h4 {
  font-family: var(--fv-display);
  font-weight: var(--fv-w-firm);
  color: var(--fv-ink);
  margin: 0;
}

p {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
}

:focus-visible {
  outline: 2px solid var(--fv-accent);
  outline-offset: 3px;
  border-radius: var(--fv-r-default);
}

.fv-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999;
  background: var(--fv-ink);
  color: var(--fv-canvas);
  padding: var(--fv-12) var(--fv-20);
  border-radius: 0 0 var(--fv-r-slab) 0;
}

.fv-skip:focus {
  left: 0;
}

.fv-outofsight {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Shell + bands */
.fv-shell {
  width: 100%;
  max-width: var(--fv-shell-max);
  margin-inline: auto;
  padding-inline: var(--fv-20);
}

.fv-band {
  padding-block: var(--fv-band-gap);
  scroll-margin-top: calc(var(--fv-masthead-h) + 12px);
}

.fv-band--tint {
  background: var(--fv-tint);
  border-block: 1px solid var(--fv-rule);
}

.fv-band__head {
  width: 100%;
  margin-bottom: var(--fv-32);
}

.fv-eyebrow {
  display: flex;
  align-items: center;
  gap: var(--fv-8);
  font-family: var(--fv-body);
  font-size: var(--fv-caption);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fv-accent);
  margin-bottom: var(--fv-12);
}

.fv-eyebrow::before {
  content: "";
  width: 22px;
  height: 1px;
  background: var(--fv-accent);
  flex: none;
}

.fv-headline {
  font-size: var(--fv-h-sm);
  line-height: 1.2;
  letter-spacing: 0.015em;
}

.fv-headline--tall {
  font-size: var(--fv-h);
  line-height: 1.15;
}

.fv-lede {
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-lg);
  line-height: 1.5;
  max-width: 62ch;
  margin-top: var(--fv-16);
}

.fv-note {
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-sm);
  line-height: 1.6;
  max-width: 78ch;
}

.fv-accent-word {
  color: var(--fv-accent);
}

/* Controls */
.fv-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--fv-8);
  font-family: var(--fv-body);
  font-size: var(--fv-body-md);
  font-weight: var(--fv-w-firm);
  line-height: 1;
  padding: 15px var(--fv-24);
  border-radius: var(--fv-r-pill);
  border: 1px solid var(--fv-accent);
  background: var(--fv-accent);
  color: var(--fv-on-accent);
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.fv-action:hover {
  background: var(--fv-accent-deep);
  border-color: var(--fv-accent-deep);
  color: var(--fv-on-accent);
  text-decoration: none;
}

.fv-action--hollow {
  background: transparent;
  color: var(--fv-ink);
  border-color: var(--fv-rule-firm);
}

.fv-action--hollow:hover {
  background: transparent;
  color: var(--fv-accent);
  border-color: var(--fv-accent);
}

.fv-action--small {
  font-size: var(--fv-body-sm);
  padding: 11px var(--fv-20);
}

.fv-textlink {
  color: var(--fv-accent);
  font-weight: var(--fv-w-firm);
  border-bottom: 1px solid var(--fv-accent);
  padding-bottom: 1px;
}

.fv-textlink:hover {
  text-decoration: none;
  color: var(--fv-accent-deep);
  border-bottom-color: var(--fv-accent-deep);
}

.fv-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fv-caption);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.02em;
  color: var(--fv-ink-mid);
  border: 1px solid var(--fv-rule);
  background: var(--fv-canvas);
  border-radius: var(--fv-r-nav);
  padding: 5px 12px;
  white-space: nowrap;
}

.fv-tag--marked {
  color: var(--fv-accent);
  border-color: var(--fv-accent);
}

.fv-tag__glyph {
  width: 13px;
  height: 13px;
  flex: none;
}

/* Stars */
.fv-stars {
  position: relative;
  display: inline-block;
  line-height: 0;
  vertical-align: middle;
}

.fv-stars__row {
  display: flex;
  gap: 2px;
}

.fv-stars__row svg {
  width: 15px;
  height: 15px;
  flex: none;
}

.fv-stars__base {
  color: var(--fv-rule-firm);
}

.fv-stars__fill {
  position: absolute;
  inset: 0;
  overflow: hidden;
  color: var(--fv-accent);
}

.fv-stars__fill .fv-stars__row {
  width: 89px;
}

.fv-stars__fill--92 {
  width: 92%;
}

.fv-stars__fill--94 {
  width: 94%;
}

.fv-stars__fill--80 {
  width: 80%;
}

.fv-stars__fill--100 {
  width: 100%;
}

/* Masthead */
.fv-masthead {
  position: sticky;
  top: 0;
  z-index: 60;
  background: var(--fv-canvas);
  border-bottom: 1px solid var(--fv-rule);
}

.fv-masthead__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--fv-16);
  min-height: var(--fv-masthead-h);
}

.fv-mark {
  font-family: var(--fv-display);
  font-size: var(--fv-sub);
  font-weight: var(--fv-w-loud);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--fv-ink);
  text-decoration: none;
  white-space: nowrap;
}

.fv-mark:hover {
  text-decoration: none;
}

.fv-mark__tail {
  color: var(--fv-accent);
}

.fv-masthead__pilot {
  display: flex;
  align-items: center;
  gap: var(--fv-12);
}

.fv-compass {
  display: flex;
  align-items: center;
  gap: var(--fv-4);
  list-style: none;
}

.fv-compass__link {
  display: inline-block;
  font-size: var(--fv-body-sm);
  font-weight: var(--fv-w-mid);
  letter-spacing: 0.005em;
  color: var(--fv-ink-mid);
  padding: 9px var(--fv-16);
  border-radius: var(--fv-r-nav);
  text-decoration: none;
}

.fv-compass__link:hover,
.fv-compass__link:focus-visible {
  color: var(--fv-ink);
  background: var(--fv-tint-deep);
  text-decoration: none;
}

.fv-burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-nav);
  background: var(--fv-canvas);
  color: var(--fv-ink);
  cursor: pointer;
}

.fv-burger svg {
  width: 18px;
  height: 18px;
}

.fv-burger__shut {
  display: none;
}

.fv-burger[aria-expanded="true"] .fv-burger__open {
  display: none;
}

.fv-burger[aria-expanded="true"] .fv-burger__shut {
  display: block;
}

/* Beacon (hero) */
.fv-beacon {
  padding-block: var(--fv-40) var(--fv-56);
}

.fv-beacon__grid {
  display: grid;
  gap: var(--fv-32);
  align-items: start;
}

.fv-beacon__title {
  font-size: 38px;
  line-height: 1.1;
  letter-spacing: 0.01em;
  font-weight: var(--fv-w-loud);
}

.fv-beacon__lede {
  margin-top: var(--fv-20);
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-lg);
  line-height: 1.5;
  max-width: 54ch;
}

.fv-beacon__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--fv-12);
  margin-top: var(--fv-32);
}

.fv-beacon__facts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fv-24);
  margin-top: var(--fv-32);
  padding-top: var(--fv-24);
  border-top: 1px solid var(--fv-rule);
  list-style: none;
}

.fv-beacon__fact {
  min-width: 120px;
}

.fv-beacon__fact b {
  display: block;
  font-family: var(--fv-display);
  font-size: var(--fv-h-sm);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.01em;
  line-height: 1.1;
}

.fv-beacon__fact span {
  display: block;
  margin-top: 6px;
  font-size: var(--fv-caption);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fv-ink-faint);
}

.fv-showcase {
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  background: var(--fv-canvas);
  overflow: hidden;
}

.fv-showcase__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--fv-12);
  padding: var(--fv-12) var(--fv-16);
  border-bottom: 1px solid var(--fv-rule);
  font-size: var(--fv-caption);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fv-ink-faint);
}

.fv-showcase__seal {
  color: var(--fv-accent);
}

.fv-showcase__art {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--fv-tint-deep);
}

.fv-showcase__art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fv-showcase__body {
  padding: var(--fv-16);
}

.fv-showcase__name {
  font-size: var(--fv-body-lg);
  letter-spacing: 0.01em;
  line-height: 1.25;
}

.fv-showcase__dev {
  margin-top: 4px;
  font-size: var(--fv-body-sm);
  color: var(--fv-ink-faint);
}

.fv-showcase__score {
  display: flex;
  align-items: center;
  gap: var(--fv-8);
  margin-top: var(--fv-12);
  padding-top: var(--fv-12);
  border-top: 1px solid var(--fv-rule);
  font-size: var(--fv-body-sm);
  color: var(--fv-ink-soft);
}

.fv-showcase__score b {
  font-family: var(--fv-display);
  font-size: var(--fv-sub);
  font-weight: var(--fv-w-firm);
  color: var(--fv-ink);
  line-height: 1;
}

.fv-icontrail {
  display: flex;
  align-items: center;
  gap: var(--fv-8);
  padding: var(--fv-12) var(--fv-16);
  border-top: 1px solid var(--fv-rule);
  background: var(--fv-tint);
  list-style: none;
  flex-wrap: wrap;
}

.fv-icontrail li {
  line-height: 0;
}

.fv-icontrail img {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  border: 1px solid var(--fv-rule);
}

.fv-icontrail__label {
  font-size: var(--fv-caption);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fv-ink-faint);
  line-height: 1.4;
}

/* Rubric (verdict criteria) */
.fv-rubric__set {
  display: grid;
  gap: var(--fv-16);
  list-style: none;
  width: 100%;
}

.fv-gauge {
  position: relative;
  background: var(--fv-canvas);
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  padding: var(--fv-24);
}

.fv-gauge__crown {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--fv-12);
  margin-bottom: var(--fv-16);
}

.fv-gauge__glyph {
  width: 26px;
  height: 26px;
  color: var(--fv-accent);
  flex: none;
}

.fv-gauge__num {
  font-family: var(--fv-display);
  font-size: var(--fv-body-sm);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.12em;
  color: var(--fv-rule-firm);
}

.fv-gauge__name {
  font-size: var(--fv-sub);
  letter-spacing: 0.015em;
  line-height: 1.25;
}

.fv-gauge__text {
  margin-top: var(--fv-8);
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-sm);
  line-height: 1.6;
}

.fv-rubric__key {
  width: 100%;
  margin-top: var(--fv-24);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--fv-12);
  padding: var(--fv-16) var(--fv-20);
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  background: var(--fv-canvas);
}

.fv-rubric__key p {
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-sm);
  line-height: 1.6;
  flex: 1 1 320px;
}

/* Docket (catalog) */
.fv-docket__list {
  display: grid;
  gap: var(--fv-20);
  list-style: none;
  width: 100%;
}

.fv-entry {
  display: grid;
  gap: var(--fv-16);
  background: var(--fv-canvas);
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  padding: var(--fv-20);
}

.fv-entry__shot {
  order: -1;
  aspect-ratio: 5 / 4;
  overflow: hidden;
  border-radius: var(--fv-r-slab);
  border: 1px solid var(--fv-rule);
  background: var(--fv-tint-deep);
}

.fv-entry__shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fv-entry__body {
  display: flex;
  flex-direction: column;
  gap: var(--fv-12);
  min-width: 0;
}

.fv-entry__crown {
  display: flex;
  align-items: flex-start;
  gap: var(--fv-12);
}

.fv-entry__index {
  font-family: var(--fv-display);
  font-size: var(--fv-body-sm);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.1em;
  color: var(--fv-accent);
  padding-top: 5px;
  flex: none;
}

.fv-entry__badge {
  width: 44px;
  height: 44px;
  border-radius: 11px;
  border: 1px solid var(--fv-rule);
  flex: none;
}

.fv-entry__name {
  font-size: var(--fv-h-sm);
  line-height: 1.15;
  letter-spacing: 0.01em;
}

.fv-entry__maker {
  margin-top: 4px;
  font-size: var(--fv-body-sm);
  color: var(--fv-ink-faint);
}

.fv-entry__maker b {
  font-weight: var(--fv-w-firm);
  color: var(--fv-ink-mid);
}

.fv-entry__text {
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-md);
  line-height: 1.6;
}

.fv-entry__meter {
  display: flex;
  align-items: center;
  gap: var(--fv-16);
  padding-block: var(--fv-12);
  border-top: 1px solid var(--fv-rule);
  border-bottom: 1px solid var(--fv-rule);
  flex-wrap: wrap;
}

.fv-entry__score {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-family: var(--fv-display);
  font-size: var(--fv-h-sm);
  font-weight: var(--fv-w-firm);
  line-height: 1;
  letter-spacing: 0.01em;
}

.fv-entry__score span {
  font-family: var(--fv-body);
  font-size: var(--fv-caption);
  font-weight: var(--fv-w-base);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fv-ink-faint);
}

.fv-entry__votes {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: var(--fv-body-sm);
  color: var(--fv-ink-soft);
}

.fv-entry__marks {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fv-8);
}

.fv-entry__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--fv-12);
}

.fv-entry__cut {
  font-size: var(--fv-body-sm);
  color: var(--fv-ink-faint);
}

/* Workings (how we work) */
.fv-workings__grid {
  display: grid;
  gap: var(--fv-20);
  width: 100%;
}

.fv-workings__step {
  background: var(--fv-canvas);
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  padding: var(--fv-24);
}

.fv-workings__step h3 {
  font-size: var(--fv-sub);
  letter-spacing: 0.015em;
  margin-bottom: var(--fv-8);
}

.fv-workings__step p {
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-sm);
  line-height: 1.65;
}

.fv-workings__rule {
  display: block;
  width: 32px;
  height: 2px;
  background: var(--fv-accent);
  margin-bottom: var(--fv-16);
}

.fv-workings__ledger {
  width: 100%;
  margin-top: var(--fv-20);
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  background: var(--fv-canvas);
  padding: var(--fv-24);
}

.fv-workings__ledger p + p {
  margin-top: var(--fv-12);
}

/* Standing (membership) */
.fv-standing__set {
  display: grid;
  gap: var(--fv-20);
  list-style: none;
  width: 100%;
}

.fv-seat {
  display: flex;
  flex-direction: column;
  gap: var(--fv-16);
  height: 100%;
  background: var(--fv-canvas);
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  padding: var(--fv-24);
}

.fv-seat--lead {
  border-color: var(--fv-accent);
}

.fv-seat__crown {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--fv-12);
}

.fv-seat__name {
  font-size: var(--fv-sub);
  letter-spacing: 0.015em;
  line-height: 1.25;
}

.fv-seat__rate {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--fv-8);
  padding-top: var(--fv-16);
  border-top: 1px solid var(--fv-rule);
}

.fv-seat__rate b {
  font-family: var(--fv-display);
  font-size: var(--fv-h);
  font-weight: var(--fv-w-firm);
  line-height: 1;
  letter-spacing: 0.01em;
}

.fv-seat__rate span {
  font-size: var(--fv-caption);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fv-ink-faint);
}

.fv-seat__rate em {
  flex-basis: 100%;
  font-style: normal;
  font-size: var(--fv-body-sm);
  color: var(--fv-ink-soft);
}

.fv-seat__list {
  display: flex;
  flex-direction: column;
  gap: var(--fv-12);
  list-style: none;
}

.fv-seat__list li {
  display: flex;
  align-items: flex-start;
  gap: var(--fv-12);
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-sm);
  line-height: 1.6;
}

.fv-seat__list svg {
  width: 17px;
  height: 17px;
  flex: none;
  margin-top: 3px;
  color: var(--fv-accent);
}

.fv-seat__base {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--fv-16);
  margin-top: auto;
  padding-top: var(--fv-16);
  border-top: 1px solid var(--fv-rule);
}

.fv-seat__fine {
  font-size: var(--fv-caption);
  line-height: 1.6;
  color: var(--fv-ink-faint);
}

.fv-standing__terms {
  width: 100%;
  margin-top: var(--fv-20);
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  background: var(--fv-canvas);
  padding: var(--fv-20);
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-sm);
  line-height: 1.65;
}

/* Dispatch (subscribe) */
.fv-dispatch__panel {
  width: 100%;
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  background: var(--fv-canvas);
  padding: var(--fv-24);
}

.fv-dispatch__panel .fv-headline {
  margin-bottom: var(--fv-12);
}

.fv-dispatch__form {
  width: 100%;
  margin-top: var(--fv-24);
  scroll-margin-top: calc(var(--fv-masthead-h) + 12px);
}

.fv-dispatch__fields {
  display: grid;
  gap: var(--fv-16);
}

.fv-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}

.fv-field__label {
  font-size: var(--fv-caption);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fv-ink-faint);
}

.fv-field__input {
  width: 100%;
  font-family: var(--fv-body);
  font-size: var(--fv-body-md);
  color: var(--fv-ink);
  background: var(--fv-canvas);
  border: 1px solid var(--fv-rule-firm);
  border-radius: var(--fv-r-pill);
  padding: 14px var(--fv-20);
}

.fv-field__input:focus {
  outline: 2px solid var(--fv-accent);
  outline-offset: 1px;
  border-color: var(--fv-accent);
}

.fv-consent-line {
  display: flex;
  align-items: flex-start;
  gap: var(--fv-12);
  margin-top: var(--fv-16);
  font-size: var(--fv-body-sm);
  line-height: 1.6;
  color: var(--fv-ink-soft);
}

.fv-consent-line input {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: var(--fv-accent);
  flex: none;
}

.fv-dispatch__send {
  margin-top: var(--fv-20);
}

.fv-dispatch__done {
  display: none;
  align-items: flex-start;
  gap: var(--fv-12);
  margin-top: var(--fv-20);
  padding: var(--fv-16);
  border: 1px solid var(--fv-accent);
  border-radius: var(--fv-r-slab);
  color: var(--fv-ink);
  font-size: var(--fv-body-sm);
  line-height: 1.6;
}

.fv-dispatch__done.is-shown {
  display: flex;
}

.fv-dispatch__done svg {
  width: 20px;
  height: 20px;
  color: var(--fv-accent);
  flex: none;
}

.fv-dispatch__fine {
  margin-top: var(--fv-16);
  font-size: var(--fv-caption);
  line-height: 1.6;
  color: var(--fv-ink-faint);
}

/* Queries (FAQ) */
.fv-queries__stack {
  width: 100%;
  border-top: 1px solid var(--fv-rule);
}

.fv-quest {
  border-bottom: 1px solid var(--fv-rule);
  width: 100%;
}

.fv-quest__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--fv-16);
  width: 100%;
  padding: var(--fv-20) 0;
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--fv-display);
  font-size: var(--fv-body-lg);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.01em;
  line-height: 1.3;
  color: var(--fv-ink);
}

.fv-quest__trigger:hover {
  color: var(--fv-accent);
}

.fv-quest__sign {
  position: relative;
  width: 22px;
  height: 22px;
  flex: none;
  border: 1px solid var(--fv-rule-firm);
  border-radius: 50%;
  color: var(--fv-accent);
}

.fv-quest__sign::before,
.fv-quest__sign::after {
  content: "";
  position: absolute;
  background: currentColor;
  left: 50%;
  top: 50%;
}

.fv-quest__sign::before {
  width: 10px;
  height: 1.5px;
  transform: translate(-50%, -50%);
}

.fv-quest__sign::after {
  width: 1.5px;
  height: 10px;
  transform: translate(-50%, -50%);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.fv-quest__trigger[aria-expanded="true"] .fv-quest__sign::after {
  transform: translate(-50%, -50%) scaleY(0);
  opacity: 0;
}

.fv-quest__panel {
  display: none;
  padding: 0 0 var(--fv-20);
}

.fv-quest__panel.is-open {
  display: block;
}

.fv-quest__panel p {
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-md);
  line-height: 1.65;
  max-width: 84ch;
}

.fv-quest__panel p + p {
  margin-top: var(--fv-12);
}

/* Voices (player reviews) */
.fv-voices__set {
  display: grid;
  gap: var(--fv-20);
  list-style: none;
  width: 100%;
}

.fv-voice {
  display: flex;
  flex-direction: column;
  gap: var(--fv-16);
  height: 100%;
  background: var(--fv-canvas);
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  padding: var(--fv-24);
}

.fv-voice__quote {
  margin: 0;
  color: var(--fv-ink);
  font-size: var(--fv-body-md);
  line-height: 1.6;
}

.fv-voice__quote p::before {
  content: "\201C";
  color: var(--fv-accent);
}

.fv-voice__quote p::after {
  content: "\201D";
  color: var(--fv-accent);
}

.fv-voice__by {
  display: flex;
  align-items: center;
  gap: var(--fv-12);
  margin-top: auto;
  padding-top: var(--fv-16);
  border-top: 1px solid var(--fv-rule);
}

.fv-voice__initials {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 11px;
  border: 1px solid var(--fv-accent);
  color: var(--fv-accent);
  font-family: var(--fv-display);
  font-size: var(--fv-body-sm);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.04em;
}

.fv-voice__who {
  font-size: var(--fv-body-sm);
  line-height: 1.45;
  min-width: 0;
}

.fv-voice__who b {
  display: block;
  font-weight: var(--fv-w-firm);
  color: var(--fv-ink);
}

.fv-voice__who span {
  color: var(--fv-ink-faint);
  font-size: var(--fv-caption);
}

.fv-voice__stars {
  display: flex;
  align-items: center;
  gap: var(--fv-8);
  font-size: var(--fv-caption);
  color: var(--fv-ink-faint);
}

/* Colophon (about) */
.fv-colophon__grid {
  display: grid;
  gap: var(--fv-32);
  width: 100%;
}

.fv-colophon__text p + p {
  margin-top: var(--fv-16);
}

.fv-colophon__text p {
  color: var(--fv-ink-soft);
  line-height: 1.7;
  max-width: 70ch;
}

.fv-colophon__desk {
  border: 1px solid var(--fv-rule);
  border-radius: var(--fv-r-slab);
  padding: var(--fv-24);
  background: var(--fv-canvas);
  align-self: start;
}

.fv-colophon__desk h3 {
  font-size: var(--fv-sub);
  letter-spacing: 0.015em;
  margin-bottom: var(--fv-8);
}

.fv-colophon__desk p {
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-sm);
  line-height: 1.6;
}

.fv-colophon__desk p + p {
  margin-top: var(--fv-12);
}

/* Baseboard (footer) */
.fv-baseboard {
  background: var(--fv-tint);
  border-top: 1px solid var(--fv-rule);
  padding-block: var(--fv-40) var(--fv-24);
}

.fv-baseboard__grid {
  display: grid;
  gap: var(--fv-32);
}

.fv-baseboard__blurb {
  margin-top: var(--fv-12);
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-sm);
  line-height: 1.6;
  max-width: 42ch;
}

.fv-baseboard__title {
  font-family: var(--fv-body);
  font-size: var(--fv-caption);
  font-weight: var(--fv-w-firm);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fv-ink-faint);
  margin-bottom: var(--fv-12);
}

.fv-baseboard__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--fv-8);
}

.fv-baseboard__list a {
  color: var(--fv-ink-mid);
  font-size: var(--fv-body-sm);
  text-decoration: none;
}

.fv-baseboard__list a:hover {
  color: var(--fv-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.fv-baseboard__mail {
  font-size: var(--fv-body-sm);
  color: var(--fv-ink-mid);
  line-height: 1.6;
}

.fv-baseboard__mail a {
  color: var(--fv-accent);
}

.fv-baseboard__foot {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fv-12);
  align-items: center;
  justify-content: space-between;
  margin-top: var(--fv-32);
  padding-top: var(--fv-20);
  border-top: 1px solid var(--fv-rule);
  font-size: var(--fv-caption);
  color: var(--fv-ink-faint);
  line-height: 1.6;
}

/* Consent bar */
.fv-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 80;
  display: none;
  background: var(--fv-canvas);
  border-top: 1px solid var(--fv-rule-firm);
  padding-block: var(--fv-16);
}

.fv-consent.is-shown {
  display: block;
}

.fv-consent__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--fv-16);
}

.fv-consent__text {
  font-size: var(--fv-body-sm);
  line-height: 1.6;
  color: var(--fv-ink-soft);
  flex: 1 1 320px;
}

.fv-consent__acts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fv-8);
}

/* Ascend button */
.fv-ascend {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 70;
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--fv-rule-firm);
  border-radius: 50%;
  background: var(--fv-canvas);
  color: var(--fv-ink);
  cursor: pointer;
}

.fv-ascend.is-shown {
  display: flex;
}

.fv-ascend:hover {
  border-color: var(--fv-accent);
  color: var(--fv-accent);
}

.fv-ascend svg {
  width: 18px;
  height: 18px;
}

/* Legal pages */
.fv-paper {
  padding-block: var(--fv-40) var(--fv-56);
}

.fv-paper__head {
  border-bottom: 1px solid var(--fv-rule);
  padding-bottom: var(--fv-24);
  margin-bottom: var(--fv-32);
}

.fv-paper__title {
  font-size: var(--fv-h);
  line-height: 1.15;
  letter-spacing: 0.015em;
}

.fv-paper__stamp {
  margin-top: var(--fv-12);
  font-size: var(--fv-body-sm);
  color: var(--fv-ink-faint);
}

.fv-paper__back {
  margin-top: var(--fv-20);
}

.fv-paper__body {
  width: 100%;
}

.fv-paper__body h2 {
  font-size: var(--fv-sub);
  letter-spacing: 0.015em;
  margin-top: var(--fv-32);
  margin-bottom: var(--fv-12);
}

.fv-paper__body h3 {
  font-size: var(--fv-body-lg);
  letter-spacing: 0.01em;
  margin-top: var(--fv-20);
  margin-bottom: var(--fv-8);
}

.fv-paper__body p,
.fv-paper__body li {
  color: var(--fv-ink-soft);
  font-size: var(--fv-body-md);
  line-height: 1.7;
  max-width: 82ch;
}

.fv-paper__body p + p {
  margin-top: var(--fv-12);
}

.fv-paper__body ul {
  list-style: none;
  margin-top: var(--fv-12);
  display: flex;
  flex-direction: column;
  gap: var(--fv-8);
}

.fv-paper__body ul li {
  position: relative;
  padding-left: var(--fv-20);
}

.fv-paper__body ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 7px;
  height: 1px;
  background: var(--fv-accent);
}

.fv-paper__table {
  width: 100%;
  overflow-x: auto;
  margin-top: var(--fv-16);
}

.fv-paper__table + p,
.fv-paper__body ul + p {
  margin-top: var(--fv-16);
}

.fv-paper__table table {
  width: 100%;
  border-collapse: collapse;
  min-width: 520px;
}

.fv-paper__table th,
.fv-paper__table td {
  text-align: left;
  vertical-align: top;
  padding: var(--fv-12);
  border: 1px solid var(--fv-rule);
  font-size: var(--fv-body-sm);
  line-height: 1.6;
  color: var(--fv-ink-soft);
}

.fv-paper__table th {
  font-family: var(--fv-body);
  font-weight: var(--fv-w-firm);
  color: var(--fv-ink);
  background: var(--fv-tint);
}

/* Breakpoints */
@media (min-width: 600px) {
  :root {
    --fv-shell-pad: var(--fv-24);
  }

  .fv-shell {
    padding-inline: var(--fv-24);
  }

  .fv-beacon__title {
    font-size: var(--fv-h-lg);
  }

  .fv-rubric__set {
    grid-template-columns: repeat(2, 1fr);
  }

  .fv-workings__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .fv-voices__set {
    grid-template-columns: repeat(2, 1fr);
  }

  .fv-standing__set {
    grid-template-columns: repeat(2, 1fr);
  }

  .fv-dispatch__fields {
    grid-template-columns: repeat(2, 1fr);
  }

  .fv-dispatch__panel,
  .fv-workings__ledger,
  .fv-colophon__desk,
  .fv-entry,
  .fv-seat,
  .fv-gauge {
    padding: var(--fv-32);
  }

  .fv-standing__terms {
    padding: var(--fv-24);
  }
}

@media (min-width: 768px) {
  :root {
    --fv-band-gap: var(--fv-72);
    --fv-masthead-h: 72px;
  }

  .fv-entry {
    grid-template-columns: minmax(0, 1fr) 300px;
    align-items: center;
    gap: var(--fv-32);
  }

  .fv-entry__shot {
    order: 0;
  }

  .fv-baseboard__grid {
    grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  }

  .fv-colophon__grid {
    grid-template-columns: 1.5fr 1fr;
  }
}

@media (min-width: 1024px) {
  .fv-shell {
    padding-inline: var(--fv-32);
  }

  .fv-burger {
    display: none;
  }

  .fv-beacon {
    padding-block: var(--fv-56) var(--fv-72);
  }

  .fv-beacon__grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: var(--fv-56);
    align-items: center;
  }

  .fv-beacon__title {
    font-size: 50px;
  }

  .fv-rubric__set {
    grid-template-columns: repeat(4, 1fr);
  }

  .fv-workings__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .fv-voices__set {
    grid-template-columns: repeat(4, 1fr);
  }

  .fv-entry {
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: var(--fv-40);
  }

  .fv-headline {
    font-size: var(--fv-h);
  }

  .fv-headline--tall {
    font-size: var(--fv-h-lg);
    letter-spacing: 0.01em;
  }

  .fv-paper__title {
    font-size: var(--fv-h-lg);
  }
}

@media (min-width: 1024px) and (max-width: 1199px) {
  .fv-compass {
    gap: 0;
  }

  .fv-compass__link {
    padding-inline: var(--fv-8);
  }
}

@media (min-width: 1280px) {
  .fv-beacon__title {
    font-size: var(--fv-display-size);
  }
}

@media (max-width: 1023px) {
  .fv-burger {
    display: inline-flex;
  }

  .fv-masthead__pilot .fv-action {
    display: none;
  }

  .fv-compass {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--fv-canvas);
    border-top: 1px solid var(--fv-rule);
    border-bottom: 1px solid var(--fv-rule);
    padding: var(--fv-12) var(--fv-20) var(--fv-20);
  }

  .fv-compass.is-open {
    display: flex;
  }

  .fv-compass__link {
    display: block;
    padding: 13px var(--fv-12);
    font-size: var(--fv-body-md);
    border-radius: var(--fv-r-default);
    border-bottom: 1px solid var(--fv-rule);
  }

  .fv-compass li:last-child .fv-compass__link {
    border-bottom: 0;
  }

  .fv-masthead__bar {
    position: relative;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

@media print {
  .fv-masthead,
  .fv-consent,
  .fv-ascend {
    display: none;
  }
}
