/* ==========================================================================
   Flying Marmot — airfield.css  (owner: AIRFIELD) — alternative theme
   A 1940s airline travel poster: navy, cream, burnt orange, ochre, wing teal
   and brushed aluminium. Sunburst skies, an airline globe, livery cheatlines,
   rivets, dashed flight paths, flat poster clouds, a runway across an Alberta
   field, boarding-pass fares and an airmail envelope.
   Every selector is scoped under :root[data-theme="airfield"]. Decoration
   only: layout lives in base.css; --term-* tokens live in terminal.css and the
   estimator widget is skinned by estimator.css.
   ========================================================================== */

:root[data-theme="airfield"] {
  /* palette (own use) */
  --af-navy: #0C2C3C;
  --af-navy-2: #123A4E;
  --af-navy-deep: #08212E;
  --af-cream: #F3EAD6;
  --af-paper: #FBF6EA;
  --af-orange: #C4452A;
  --af-orange-deep: #A63A20;
  --af-ochre: #B6701B;
  --af-gold: #E8AE45;
  --af-teal: #2F6E8E;
  --af-teal-deep: #245A75;
  --af-sky: #A9CBD3;
  --af-sky-pale: #DDE8E7;
  --af-alu: linear-gradient(180deg, #F7F9FA 0%, #D6DCE0 38%, #B1BBC1 60%, #E3E7EA 100%);
  --af-alu-ring: conic-gradient(from 200deg, #F7F9FA, #9AA6AE 14%, #E9EDEF 28%, #7D8A92 42%, #F7F9FA 55%, #A6B1B8 70%, #EEF1F3 84%, #8C98A0 94%, #F7F9FA);
  --af-brushed: repeating-linear-gradient(90deg, rgba(255, 255, 255, .22) 0 1px, rgba(0, 0, 0, .035) 1px 2px, rgba(255, 255, 255, .07) 2px 4px);
  --af-plane: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M21.5 12c0-.8-.9-1.3-1.9-1.3h-4.8L10 3.2H8.2l2.5 7.5H5.9L4.1 8.2H2.6l1.1 3.8-1.1 3.8h1.5l1.8-2.5h4.8l-2.5 7.5H10l4.8-7.5h4.8c1 0 1.9-.5 1.9-1.3z'/%3E%3C/svg%3E");
  /* shared artwork (inline SVG) */
  --af-cloud: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 92'%3E%3Cg fill='%23CFE0E4'%3E%3Crect x='14' y='58' width='214' height='30' rx='15'/%3E%3Ccircle cx='56' cy='58' r='26'/%3E%3Ccircle cx='104' cy='44' r='36'/%3E%3Ccircle cx='154' cy='54' r='28'/%3E%3Ccircle cx='194' cy='64' r='20'/%3E%3Ccircle cx='32' cy='68' r='18'/%3E%3C/g%3E%3Cg fill='%23FFFCF4'%3E%3Crect x='14' y='52' width='214' height='28' rx='14'/%3E%3Ccircle cx='56' cy='52' r='26'/%3E%3Ccircle cx='104' cy='38' r='36'/%3E%3Ccircle cx='154' cy='48' r='28'/%3E%3Ccircle cx='194' cy='58' r='20'/%3E%3Ccircle cx='32' cy='62' r='18'/%3E%3C/g%3E%3C/svg%3E");
  --af-cloud-soft: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 92'%3E%3Cg fill='%23D2E2E4'%3E%3Crect x='14' y='58' width='214' height='30' rx='15'/%3E%3Ccircle cx='56' cy='58' r='26'/%3E%3Ccircle cx='104' cy='44' r='36'/%3E%3Ccircle cx='154' cy='54' r='28'/%3E%3Ccircle cx='194' cy='64' r='20'/%3E%3Ccircle cx='32' cy='68' r='18'/%3E%3C/g%3E%3Cg fill='%23F4F8F7'%3E%3Crect x='14' y='52' width='214' height='28' rx='14'/%3E%3Ccircle cx='56' cy='52' r='26'/%3E%3Ccircle cx='104' cy='38' r='36'/%3E%3Ccircle cx='154' cy='48' r='28'/%3E%3Ccircle cx='194' cy='58' r='20'/%3E%3Ccircle cx='32' cy='62' r='18'/%3E%3C/g%3E%3C/svg%3E");
  --af-cloud-teal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 92'%3E%3Cg fill='%23357393'%3E%3Crect x='14' y='58' width='214' height='30' rx='15'/%3E%3Ccircle cx='56' cy='58' r='26'/%3E%3Ccircle cx='104' cy='44' r='36'/%3E%3Ccircle cx='154' cy='54' r='28'/%3E%3Ccircle cx='194' cy='64' r='20'/%3E%3Ccircle cx='32' cy='68' r='18'/%3E%3C/g%3E%3Cg fill='%233E7E9C'%3E%3Crect x='14' y='52' width='214' height='28' rx='14'/%3E%3Ccircle cx='56' cy='52' r='26'/%3E%3Ccircle cx='104' cy='38' r='36'/%3E%3Ccircle cx='154' cy='48' r='28'/%3E%3Ccircle cx='194' cy='58' r='20'/%3E%3Ccircle cx='32' cy='62' r='18'/%3E%3C/g%3E%3C/svg%3E");
  --af-hangars-l: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 96'%3E%3Cg fill='%237C9AA5'%3E%3Crect x='30' y='30' width='16' height='66'/%3E%3Cpath d='M22 30h32l-4 -14H26z'/%3E%3Crect x='27' y='8' width='22' height='8' rx='1'/%3E%3Cpath d='M37 0v8' stroke='%237C9AA5' stroke-width='1.5'/%3E%3Cpath d='M70 96V70a58 40 0 0 1 116 0V96z'/%3E%3Crect x='186' y='80' width='70' height='16'/%3E%3Crect x='196' y='72' width='50' height='8'/%3E%3C/g%3E%3Cg fill='%23A9C2C9'%3E%3Crect x='26' y='19' width='24' height='6'/%3E%3Cpath d='M86 96V76h84v20z'/%3E%3C/g%3E%3Cg stroke='%237C9AA5' stroke-width='2'%3E%3Cpath d='M100 76v20M114 76v20M128 76v20M142 76v20M156 76v20'/%3E%3C/g%3E%3Cg fill='%23E8AE45'%3E%3Ccircle cx='37' cy='2' r='2.2'/%3E%3C/g%3E%3C/svg%3E");
  --af-hangars-r: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 96'%3E%3Cg fill='%237C9AA5'%3E%3Cpath d='M20 96V62l60 -22 60 22V96z'/%3E%3Crect x='150' y='76' width='60' height='20'/%3E%3Crect x='232' y='26' width='3' height='70'/%3E%3C/g%3E%3Cpath d='M36 96V70h88v26z' fill='%23A9C2C9'/%3E%3Cg stroke='%237C9AA5' stroke-width='2'%3E%3Cpath d='M58 70v26M80 70v26M102 70v26'/%3E%3C/g%3E%3Cpath d='M235 27l22 3v8l-22 3z' fill='%23C4452A'/%3E%3Cpath d='M242 28v12M249 29v10' stroke='%23F3EAD6' stroke-width='2.4'/%3E%3C/svg%3E");
  --af-plane-cream: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FBF6EA' d='M21.5 12c0-.8-.9-1.3-1.9-1.3h-4.8L10 3.2H8.2l2.5 7.5H5.9L4.1 8.2H2.6l1.1 3.8-1.1 3.8h1.5l1.8-2.5h4.8l-2.5 7.5H10l4.8-7.5h4.8c1 0 1.9-.5 1.9-1.3z'/%3E%3C/svg%3E");
  --af-rose-line: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-100 -100 200 200'%3E%3Ccircle r='97' stroke='%23A9CBD3' fill='none' stroke-width='.8'/%3E%3Ccircle r='90' stroke='%23A9CBD3' fill='none' stroke-width='6' stroke-dasharray='.5 3.427'/%3E%3Ccircle r='89' stroke='%23A9CBD3' fill='none' stroke-width='10' stroke-dasharray='.9 22.4'/%3E%3Ccircle r='83' stroke='%23A9CBD3' fill='none' stroke-width='.8'/%3E%3Ccircle r='60' stroke='%23A9CBD3' fill='none' stroke-width='.8' stroke-dasharray='2 4'/%3E%3Cg transform='rotate(45)'%3E%3Cpath d='M0 -54L6.5 -6.5L0 0L-6.5 -6.5Z' stroke='%23A9CBD3' fill='none' stroke-width='.8'/%3E%3C/g%3E%3Cg transform='rotate(135)'%3E%3Cpath d='M0 -54L6.5 -6.5L0 0L-6.5 -6.5Z' stroke='%23A9CBD3' fill='none' stroke-width='.8'/%3E%3C/g%3E%3Cg transform='rotate(225)'%3E%3Cpath d='M0 -54L6.5 -6.5L0 0L-6.5 -6.5Z' stroke='%23A9CBD3' fill='none' stroke-width='.8'/%3E%3C/g%3E%3Cg transform='rotate(315)'%3E%3Cpath d='M0 -54L6.5 -6.5L0 0L-6.5 -6.5Z' stroke='%23A9CBD3' fill='none' stroke-width='.8'/%3E%3C/g%3E%3Cg transform='rotate(0)'%3E%3Cpath d='M0 -82L10 -10L0 0L-10 -10Z M0 -82V0' stroke='%23A9CBD3' fill='none' stroke-width='.9'/%3E%3C/g%3E%3Cg transform='rotate(90)'%3E%3Cpath d='M0 -82L10 -10L0 0L-10 -10Z M0 -82V0' stroke='%23A9CBD3' fill='none' stroke-width='.9'/%3E%3C/g%3E%3Cg transform='rotate(180)'%3E%3Cpath d='M0 -82L10 -10L0 0L-10 -10Z M0 -82V0' stroke='%23A9CBD3' fill='none' stroke-width='.9'/%3E%3C/g%3E%3Cg transform='rotate(270)'%3E%3Cpath d='M0 -82L10 -10L0 0L-10 -10Z M0 -82V0' stroke='%23A9CBD3' fill='none' stroke-width='.9'/%3E%3C/g%3E%3Ccircle r='3' stroke='%23A9CBD3' fill='none' stroke-width='.9'/%3E%3Cpath d='M-4.5 -86.5V-93.5L4.5 -86.5V-93.5' stroke='%23A9CBD3' fill='none' stroke-width='1.3' transform='translate(0 -.2)'/%3E%3C/svg%3E");
  --af-route: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 200'%3E%3Cpath d='M4 190C120 170 190 70 330 58S520 70 560 34' fill='none' stroke='%230C2C3C' stroke-opacity='.35' stroke-width='2' stroke-dasharray='7 9' stroke-linecap='round'/%3E%3Cg transform='translate(574 24) rotate(-38) scale(1.25) translate(-12 -12)'%3E%3Cpath fill='%230C2C3C' fill-opacity='.55' d='M21.5 12c0-.8-.9-1.3-1.9-1.3h-4.8L10 3.2H8.2l2.5 7.5H5.9L4.1 8.2H2.6l1.1 3.8-1.1 3.8h1.5l1.8-2.5h4.8l-2.5 7.5H10l4.8-7.5h4.8c1 0 1.9-.5 1.9-1.3z'/%3E%3C/g%3E%3C/svg%3E");
  --af-waves: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 44'%3E%3Cg fill='none' stroke='%230C2C3C' stroke-opacity='.5' stroke-width='2'%3E%3Cpath d='M0 6q7.5 -6 15 0t15 0 15 0 15 0 15 0 15 0 15 0 15 0'/%3E%3Cpath d='M0 17q7.5 -6 15 0t15 0 15 0 15 0 15 0 15 0 15 0 15 0'/%3E%3Cpath d='M0 28q7.5 -6 15 0t15 0 15 0 15 0 15 0 15 0 15 0 15 0'/%3E%3Cpath d='M0 39q7.5 -6 15 0t15 0 15 0 15 0 15 0 15 0 15 0 15 0'/%3E%3C/g%3E%3C/svg%3E");
  --af-livery: linear-gradient(180deg, #0C2C3C 0 42%, transparent 42% 55%, #C4452A 55% 82%, transparent 82% 90%, #E8AE45 90%);

  /* tokens */
  --bg: #F3EAD6;
  --bg-alt: #DDE8E7;
  --surface: #FBF6EA;
  --surface-2: #EFE4CC;
  --ink: #0C2C3C;
  --ink-soft: #3A5260;
  --ink-inverse: #F6EFDD;
  --accent: #C4452A;
  --accent-ink: #FFF8EE;
  --accent-2: #2F6E8E;
  --accent-2-ink: #FFFFFF;
  --accent-3: #E8AE45;
  --line: rgba(12, 44, 60, .2);
  --shadow: 0 1px 0 rgba(12, 44, 60, .08), 0 14px 28px -18px rgba(12, 44, 60, .45);
  --shadow-lg: 0 2px 0 rgba(12, 44, 60, .08), 0 34px 60px -30px rgba(12, 44, 60, .55);
  --focus: #0C2C3C;
  --puff: #FFFFFF;
  --radius-sm: 4px;
  --radius: 8px;
  --radius-lg: 12px;
  --theme-color: #93BAC6;

  --title-color: #0C2C3C;
  --title-shadow: .045em .05em 0 rgba(47, 110, 142, .28);
  --kicker-font: var(--font-mono);
  --kicker-color: #A63A20;
  --kicker-size: clamp(.8125rem, .79rem + .12vw, .9375rem);
  --kicker-transform: uppercase;
  --kicker-tracking: .2em;
  --btn-radius: 4px;
  --header-bg: #FBF6EA;
  --hero-bg: #A9CBD3;
}

/* ---------- shared airfield bits ----------------------------------------- */
/* Kickers read like a route: origin dot, dashed path, label, dashed path, plane. */
:root[data-theme="airfield"] .kicker {
  display: inline-flex;
  align-items: center;
  gap: .8em;
  max-width: 100%;
}
:root[data-theme="airfield"] .kicker::before,
:root[data-theme="airfield"] .kicker::after {
  content: "";
  flex: none;
  width: 3.1em;
  height: 1.25em;
  background: currentColor;
}
:root[data-theme="airfield"] .kicker::before {
  -webkit-mask:
    radial-gradient(circle .26em at .3em 50%, #000 96%, transparent) no-repeat,
    repeating-linear-gradient(90deg, #000 0 .38em, transparent .38em .7em) right center / calc(100% - .85em) 2px no-repeat;
  mask:
    radial-gradient(circle .26em at .3em 50%, #000 96%, transparent) no-repeat,
    repeating-linear-gradient(90deg, #000 0 .38em, transparent .38em .7em) right center / calc(100% - .85em) 2px no-repeat;
}
:root[data-theme="airfield"] .kicker::after {
  -webkit-mask:
    var(--af-plane) right center / 1.25em 1.25em no-repeat,
    repeating-linear-gradient(90deg, #000 0 .38em, transparent .38em .7em) left center / calc(100% - 1.55em) 2px no-repeat;
  mask:
    var(--af-plane) right center / 1.25em 1.25em no-repeat,
    repeating-linear-gradient(90deg, #000 0 .38em, transparent .38em .7em) left center / calc(100% - 1.55em) 2px no-repeat;
}
@media (max-width: 23.4em) {
  :root[data-theme="airfield"] .kicker::before,
  :root[data-theme="airfield"] .kicker::after { width: 2.2em; }
}

:root[data-theme="airfield"] .section-title { letter-spacing: .012em; }
:root[data-theme="airfield"] .subhead { letter-spacing: .02em; }

/* Buttons: poster-print blocks with a hard offset shadow */
:root[data-theme="airfield"] .btn {
  --btn-shadow: #0C2C3C;
  --btn-lift: 4px;
  border-width: 2px;
  box-shadow: var(--btn-lift) var(--btn-lift) 0 var(--btn-shadow);
  transition: transform .16s var(--ease-out), box-shadow .16s var(--ease-out), background-color .16s, color .16s;
}
:root[data-theme="airfield"] .btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: calc(var(--btn-lift) + 2px) calc(var(--btn-lift) + 2px) 0 var(--btn-shadow);
}
:root[data-theme="airfield"] .btn:active {
  transform: translate(2px, 2px);
  box-shadow: calc(var(--btn-lift) - 2px) calc(var(--btn-lift) - 2px) 0 var(--btn-shadow);
}
:root[data-theme="airfield"] .btn:focus-visible { outline-offset: 7px; }
:root[data-theme="airfield"] .btn--sm { --btn-lift: 3px; }
:root[data-theme="airfield"] .btn--xl { --btn-lift: 5px; }
:root[data-theme="airfield"] .btn--primary { --btn-bg: #C4452A; --btn-ink: #FFF8EE; --btn-border: #0C2C3C; }
:root[data-theme="airfield"] .btn--primary:hover { --btn-bg: #CF4E31; }
:root[data-theme="airfield"] .btn--secondary { --btn-bg: #FBF6EA; --btn-ink: #0C2C3C; --btn-border: #0C2C3C; }
:root[data-theme="airfield"] .btn--secondary:hover { --btn-bg: #FFFFFF; }
:root[data-theme="airfield"] .btn--store {
  --btn-bg: #0C2C3C;
  --btn-ink: #F6EFDD;
  --btn-border: #0C2C3C;
  --btn-shadow: #C4452A;
  border-radius: 6px;
}

/* Chips: little luggage tags */
:root[data-theme="airfield"] .chip {
  gap: .5em;
  border: 1.5px solid rgba(12, 44, 60, .42);
  border-radius: 3px;
  background: #FBF6EA;
  letter-spacing: .04em;
}
:root[data-theme="airfield"] .chip::before {
  content: "";
  flex: none;
  width: .5em;
  height: .5em;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  opacity: .55;
}

/* ---------- section dividers: livery cheatline and tail chevrons --------- */
:root[data-theme="airfield"] .section-divider {
  z-index: 2;
  height: 1.625rem;
  border: 0;
  background:
    linear-gradient(180deg, #E8AE45 0 3px, transparent 3px calc(100% - 3px), #E8AE45 calc(100% - 3px)),
    conic-gradient(from -135deg at 11px 50%, #0C2C3C 90deg, transparent 0) 0 0 / 26px 100% repeat-x,
    conic-gradient(from -135deg at 21px 50%, #C4452A 90deg, transparent 0) 0 0 / 26px 100% repeat-x,
    #0C2C3C;
  box-shadow: 0 6px 12px -8px rgba(12, 44, 60, .5);
}
:root[data-theme="airfield"] .hero + .section-divider {
  height: 1.25rem;
  background: linear-gradient(180deg, #0C2C3C 0 45%, #F3EAD6 45% 55%, #C4452A 55% 80%, #F3EAD6 80% 86%, #E8AE45 86%);
  box-shadow: none;
}

/* ---------- header -------------------------------------------------------- */
:root[data-theme="airfield"] .brand__name {
  display: inline-block;
  color: #0C2C3C;
  letter-spacing: .06em;
  transform: skewX(-8deg);
}
:root[data-theme="airfield"] .site-nav__link::after {
  height: 0;
  border-top: 2px dashed #C4452A;
  background: none;
}
:root[data-theme="airfield"] .site-header.is-scrolled::after,
:root[data-theme="airfield"] .site-header.is-menu-open::after,
:root[data-theme="airfield"]:not(.js) .site-header::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 6px;
  background: linear-gradient(180deg, #C4452A 0 3px, #FBF6EA 3px 4px, #E8AE45 4px);
  pointer-events: none;
}
:root[data-theme="airfield"] .nav-toggle,
:root[data-theme="airfield"] .sound-toggle {
  border-radius: 4px;
  border-color: #0C2C3C;
  background: rgba(251, 246, 234, .78);
  color: #0C2C3C;
}

/* ---------- hero: a travel-poster sky over an Alberta airfield ------------ */
:root[data-theme="airfield"] .hero {
  background:
    radial-gradient(ellipse 70% 55% at 50% 44%, rgba(255, 243, 216, .9), rgba(255, 243, 216, 0) 70%),
    linear-gradient(180deg, #8FB8C6 0%, #AFCBD1 26%, #D6DFD6 54%, #EFDFBF 82%, #F2D6A6 100%);
}
/* flat poster clouds, a dashed route, and the tower + hangars on the horizon */
:root[data-theme="airfield"] .hero__backdrop {
  background:
    var(--af-hangars-l) left max(1.5vw, .5rem) bottom calc(var(--floor-h) - 1px) / clamp(8.5rem, 16vw, 23rem) auto no-repeat,
    var(--af-hangars-r) right max(2vw, .5rem) bottom calc(var(--floor-h) - 1px) / clamp(7.5rem, 13vw, 19rem) auto no-repeat,
    var(--af-cloud) left -2% top 17% / clamp(9rem, 19vw, 26rem) auto no-repeat,
    var(--af-cloud-soft) right 5% top 31% / clamp(7rem, 12vw, 17rem) auto no-repeat,
    var(--af-cloud-soft) left 11% top 56% / clamp(5rem, 8vw, 11rem) auto no-repeat,
    var(--af-cloud) right -3% top 60% / clamp(8rem, 17vw, 24rem) auto no-repeat,
    var(--af-route) left 2% top 7% / clamp(16rem, 34vw, 44rem) auto no-repeat;
}

@media (max-width: 40em) {
  :root[data-theme="airfield"] .hero__backdrop {
    background:
      var(--af-hangars-l) left .25rem bottom calc(var(--floor-h) - 1px) / 7.5rem auto no-repeat,
      var(--af-hangars-r) right .25rem bottom calc(var(--floor-h) - 1px) / 6.5rem auto no-repeat,
      var(--af-cloud) left -3.5rem top 19% / 9.5rem auto no-repeat,
      var(--af-cloud-soft) right -2.5rem top 43% / 7rem auto no-repeat,
      var(--af-route) left 30% top 6% / 17rem auto no-repeat;
  }
}

/* the runway across a ploughed prairie field, in perspective */
:root[data-theme="airfield"] .hero__floor {
  overflow: hidden;
  perspective: 15rem;
  perspective-origin: 50% 0;
  background: #C49A57;
}
:root[data-theme="airfield"] .hero__floor::before {
  content: "";
  position: absolute;
  left: -60%; right: -60%;
  top: 0;
  height: 340%;
  transform-origin: 50% 0;
  transform: rotateX(62deg);
  background:
    /* centre-line dashes */
    repeating-linear-gradient(180deg, #F6EFDD 0 1.5rem, transparent 1.5rem 3rem) 50% 0 / .55% 100% no-repeat,
    /* runway edge lights */
    radial-gradient(circle closest-side, #FFE2A0 0 55%, rgba(255, 210, 120, .5) 65%, transparent) calc(50% - 7.35%) 0 / .9rem 2.6rem repeat-y,
    radial-gradient(circle closest-side, #FFE2A0 0 55%, rgba(255, 210, 120, .5) 65%, transparent) calc(50% + 7.35%) 0 / .9rem 2.6rem repeat-y,
    /* tarmac with painted edge lines */
    linear-gradient(90deg, transparent 0 43.4%, #F3EAD6 43.4% 43.75%, #2A3A43 43.75% 56.25%, #F3EAD6 56.25% 56.6%, transparent 56.6%),
    /* grass verge */
    linear-gradient(90deg, transparent 0 41.2%, #A48B4E 41.2% 58.8%, transparent 58.8%),
    /* furrows */
    repeating-linear-gradient(90deg, #C99F5C 0 1.1%, #BB8D4A 1.1% 2.2%);
}
:root[data-theme="airfield"] .hero__floor::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  transform: translateZ(1px);
  background:
    linear-gradient(180deg, rgba(12, 44, 60, .38) 0 1px, rgba(242, 214, 166, .82) 1px, rgba(242, 214, 166, .25) 22%, rgba(242, 214, 166, 0) 48%),
    linear-gradient(0deg, rgba(12, 44, 60, .22), rgba(12, 44, 60, 0) 40%);
}

/* the sign: an airline globe in a riveted aluminium ring. The sunburst hangs off
   the stage (not the sign, which is a stacking context because of its transform)
   so the rays stay behind the badge, wordmark and buttons. */
:root[data-theme="airfield"] .hero__sign {
  top: 51%;
  width: 70%;
  background: none;
}
:root[data-theme="airfield"] .hero__sign::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cdefs%3E%3CradialGradient id='g' cx='36%25' cy='30%25' r='78%25'%3E%3Cstop offset='0' stop-color='%234A93B0'/%3E%3Cstop offset='.5' stop-color='%2322607D'/%3E%3Cstop offset='1' stop-color='%230C2C3C'/%3E%3C/radialGradient%3E%3ClinearGradient id='a' x1='0' y1='0' x2='.35' y2='1'%3E%3Cstop offset='0' stop-color='%23FAFBFC'/%3E%3Cstop offset='.42' stop-color='%23C3CCD1'/%3E%3Cstop offset='.56' stop-color='%2395A2AA'/%3E%3Cstop offset='.78' stop-color='%23D9DFE2'/%3E%3Cstop offset='1' stop-color='%23A9B4BA'/%3E%3C/linearGradient%3E%3CclipPath id='c'%3E%3Ccircle cx='100' cy='100' r='83'/%3E%3C/clipPath%3E%3C/defs%3E%3Ccircle cx='100' cy='100' r='99.5' fill='%230C2C3C'/%3E%3Ccircle cx='100' cy='100' r='97.6' fill='url(%23a)'/%3E%3Ccircle cx='100' cy='100' r='91' fill='none' stroke='%235F6D76' stroke-width='3' stroke-linecap='round' stroke-dasharray='0 14.296'/%3E%3Ccircle cx='100' cy='100' r='91' fill='none' stroke='%23FFFFFF' stroke-opacity='.8' stroke-width='1.2' stroke-linecap='round' stroke-dasharray='0 14.296' transform='translate(-.5 -.6)'/%3E%3Ccircle cx='100' cy='100' r='85' fill='%230C2C3C'/%3E%3Ccircle cx='100' cy='100' r='83' fill='url(%23g)'/%3E%3Cg clip-path='url(%23c)' fill='none' stroke='%23F3EAD6' stroke-opacity='.5' stroke-width='1.3'%3E%3Cellipse cx='100' cy='100' rx='27' ry='83'/%3E%3Cellipse cx='100' cy='100' rx='55' ry='83'/%3E%3Cellipse cx='100' cy='100' rx='76' ry='83'/%3E%3Cpath d='M100 17v166M0 58q100 14 200 0M0 142q100 -14 200 0M0 30q100 10 200 0M0 170q100 -10 200 0'/%3E%3C/g%3E%3Cpath d='M17 100h166' stroke='%23E8AE45' stroke-width='2.4' stroke-opacity='.9'/%3E%3Cpath d='M34 52a80 80 0 0 1 58 -34' fill='none' stroke='%23FFFFFF' stroke-opacity='.35' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  box-shadow: 0 22px 40px -16px rgba(12, 44, 60, .55);
}
/* a small cloud drifting in front of the globe (still behind the marmot) */
:root[data-theme="airfield"] .hero__sign::before {
  content: "";
  position: absolute;
  z-index: 1;
  right: -22%;
  bottom: 2%;
  width: 50%;
  aspect-ratio: 240 / 92;
  background: var(--af-cloud) center / contain no-repeat;
  pointer-events: none;
}
:root[data-theme="airfield"] .hero__stage::before,
:root[data-theme="airfield"] .hero__stage::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
/* sunburst rays + glow, centred on the globe */
:root[data-theme="airfield"] .hero__stage::before {
  z-index: -1;
  left: 50%;
  top: 51%;
  width: 245%;
  aspect-ratio: 1;
  border-radius: 50%;
  translate: -50% -50%;
  background:
    radial-gradient(closest-side, rgba(255, 246, 225, .95) 0 16%, rgba(255, 246, 225, 0) 44%),
    repeating-conic-gradient(from -2deg, rgba(255, 248, 232, .78) 0 4.5deg, rgba(255, 248, 232, 0) 4.5deg 10deg);
  -webkit-mask-image: radial-gradient(closest-side, #000 18%, rgba(0, 0, 0, .55) 42%, transparent 78%);
  mask-image: radial-gradient(closest-side, #000 18%, rgba(0, 0, 0, .55) 42%, transparent 78%);
}
/* speed lines trailing behind the marmot */
:root[data-theme="airfield"] .hero__stage::after {
  right: 83.5%;
  top: 44%;
  width: 46%;
  height: 15%;
  background:
    linear-gradient(90deg, rgba(196, 69, 42, 0), #C4452A 65%) right 0 / 100% 24% no-repeat,
    linear-gradient(90deg, rgba(232, 174, 69, 0), #E8AE45 65%) right 50% / 76% 24% no-repeat,
    linear-gradient(90deg, rgba(12, 44, 60, 0), #0C2C3C 65%) right 100% / 54% 24% no-repeat;
}
/* the speed lines only make sense once the marmot has landed */
:root[data-theme="airfield"].flight-pending .hero__stage::after { opacity: 0; }
:root[data-theme="airfield"].flight-done .hero__stage::after { transition: opacity .6s ease .2s; }

/* badge: a navy baggage tag with a plane */
:root[data-theme="airfield"] .hero__badge {
  gap: .7em;
  padding: .45em 1.1em .45em .5em;
  border: 0;
  border-radius: 4px;
  background: #0C2C3C;
  color: #F6EFDD;
  font-size: clamp(.75rem, .72rem + .2vw, .9375rem);
  flex-wrap: nowrap;
  text-align: left;
  letter-spacing: .16em;
  word-spacing: -.3em;
  box-shadow: 0 0 0 2px #F3EAD6, 0 0 0 3.5px #0C2C3C, 4px 5px 0 3.5px rgba(12, 44, 60, .22);
}
:root[data-theme="airfield"] .hero__badge > span { justify-content: flex-start; }
@media (max-width: 24em) {
  :root[data-theme="airfield"] .hero__badge { letter-spacing: .1em; }
}
:root[data-theme="airfield"] .hero__badge::before {
  content: "";
  flex: none;
  width: 1.9em;
  height: 1.9em;
  border-radius: 3px;
  background:
    var(--af-plane-cream) center / 1.25em no-repeat,
    #C4452A;
}

/* wordmark: italic "speed" lettering and a livery-striped subtitle */
:root[data-theme="airfield"] .wordmark__main {
  color: #0C2C3C;
  transform: skewX(-8deg);
  text-shadow: .03em .035em 0 #FBF3E0, .065em .075em 0 #C4452A, .1em .13em .1em rgba(12, 44, 60, .18);
}
:root[data-theme="airfield"] .wordmark__sub {
  display: flex;
  align-items: center;
  gap: .75em;
  margin-top: .5em;
  font-weight: 700;
  letter-spacing: .4em;
  color: #A63A20;
}
:root[data-theme="airfield"] .wordmark__sub::before,
:root[data-theme="airfield"] .wordmark__sub::after {
  content: "";
  flex: none;
  width: 2.4em;
  height: .5em;
  background: linear-gradient(180deg, #0C2C3C 0 32%, transparent 32% 58%, #C4452A 58%);
}
:root[data-theme="airfield"] .wordmark__sub::before { margin-right: .4em; }
:root[data-theme="airfield"] .hero__tagline { color: #0C2C3C; font-weight: 600; }
:root[data-theme="airfield"] .hero__sub { color: #22404E; }

/* contrails for the intro flight: little flat cumulus puffs */
:root[data-theme="airfield"] .flight-puff {
  border-radius: 0;
  background:
    radial-gradient(circle at 30% 62%, #FFFFFF 0 25%, rgba(255, 255, 255, 0) 27%),
    radial-gradient(circle at 54% 44%, #FFFFFF 0 31%, rgba(255, 255, 255, 0) 33%),
    radial-gradient(circle at 76% 62%, #FFFFFF 0 22%, rgba(255, 255, 255, 0) 24%),
    radial-gradient(ellipse 44% 16% at 53% 74%, #FFFFFF 0 88%, rgba(255, 255, 255, 0) 100%);
  filter: drop-shadow(0 2px 0 rgba(143, 184, 198, .75));
}
:root[data-theme="airfield"] span.flight-puff:nth-of-type(3n) { filter: drop-shadow(0 2px 0 rgba(143, 184, 198, .75)) brightness(.97) sepia(.12); }

/* ---------- work: the flight log ------------------------------------------ */
:root[data-theme="airfield"] .work {
  background:
    radial-gradient(ellipse 45% 35% at 88% 8%, rgba(169, 203, 211, .5), rgba(169, 203, 211, 0) 70%),
    linear-gradient(rgba(12, 44, 60, .05) 1px, transparent 1px) 0 0 / 2rem 2rem,
    linear-gradient(90deg, rgba(12, 44, 60, .05) 1px, transparent 1px) 0 0 / 2rem 2rem,
    #F3EAD6;
}
:root[data-theme="airfield"] .work__icon { border-radius: 22%; box-shadow: 0 0 0 3px #FBF6EA, 0 0 0 4.5px #0C2C3C, 4px 5px 0 4.5px rgba(12, 44, 60, .18); }
:root[data-theme="airfield"] .work__lede { color: #0C2C3C; }
:root[data-theme="airfield"] .work__plate {
  width: min(104%, 38rem);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-100 -100 200 200'%3E%3Ccircle r='99' fill='%23E9EFEE'/%3E%3Ccircle r='98' fill='none' stroke='%230C2C3C' stroke-opacity='.25' stroke-width='1'/%3E%3Ccircle r='91' fill='none' stroke='%230C2C3C' stroke-opacity='.5' stroke-width='6' stroke-dasharray='.55 3.42'/%3E%3Ccircle r='90' fill='none' stroke='%230C2C3C' stroke-opacity='.75' stroke-width='10' stroke-dasharray='1.1 22.46'/%3E%3Ccircle r='84' fill='none' stroke='%230C2C3C' stroke-opacity='.35' stroke-width='1'/%3E%3Ccircle r='62' fill='none' stroke='%232F6E8E' stroke-opacity='.4' stroke-width='1.2' stroke-dasharray='3 4'/%3E%3Cg transform='rotate(45)'%3E%3Cpath d='M0 0L0 -54L-6.5 -6.5Z' fill='%238FB6C4'/%3E%3Cpath d='M0 0L0 -54L6.5 -6.5Z' fill='%232F6E8E'/%3E%3C/g%3E%3Cg transform='rotate(135)'%3E%3Cpath d='M0 0L0 -54L-6.5 -6.5Z' fill='%238FB6C4'/%3E%3Cpath d='M0 0L0 -54L6.5 -6.5Z' fill='%232F6E8E'/%3E%3C/g%3E%3Cg transform='rotate(225)'%3E%3Cpath d='M0 0L0 -54L-6.5 -6.5Z' fill='%238FB6C4'/%3E%3Cpath d='M0 0L0 -54L6.5 -6.5Z' fill='%232F6E8E'/%3E%3C/g%3E%3Cg transform='rotate(315)'%3E%3Cpath d='M0 0L0 -54L-6.5 -6.5Z' fill='%238FB6C4'/%3E%3Cpath d='M0 0L0 -54L6.5 -6.5Z' fill='%232F6E8E'/%3E%3C/g%3E%3Cg transform='rotate(0)'%3E%3Cpath d='M0 0L0 -82L-10 -10Z' fill='%23C4452A'/%3E%3Cpath d='M0 0L0 -82L10 -10Z' fill='%23A63A20'/%3E%3C/g%3E%3Cg transform='rotate(90)'%3E%3Cpath d='M0 0L0 -82L-10 -10Z' fill='%23FBF6EA'/%3E%3Cpath d='M0 0L0 -82L10 -10Z' fill='%230C2C3C'/%3E%3C/g%3E%3Cg transform='rotate(180)'%3E%3Cpath d='M0 0L0 -82L-10 -10Z' fill='%23FBF6EA'/%3E%3Cpath d='M0 0L0 -82L10 -10Z' fill='%230C2C3C'/%3E%3C/g%3E%3Cg transform='rotate(270)'%3E%3Cpath d='M0 0L0 -82L-10 -10Z' fill='%23FBF6EA'/%3E%3Cpath d='M0 0L0 -82L10 -10Z' fill='%230C2C3C'/%3E%3C/g%3E%3Ccircle r='6' fill='%230C2C3C'/%3E%3Ccircle r='2.2' fill='%23FBF6EA'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  box-shadow: 0 0 0 6px rgba(251, 246, 234, .9), 0 0 0 7.5px rgba(12, 44, 60, .2), 0 40px 60px -36px rgba(12, 44, 60, .55);
}
:root[data-theme="airfield"] .phone::before { background: linear-gradient(90deg, #6d7a82, #cfd6da); }

:root[data-theme="airfield"] .gallery-nav__btn {
  border-radius: 4px;
  border-color: #0C2C3C;
  background: #FBF6EA;
  box-shadow: 3px 3px 0 #0C2C3C;
}
:root[data-theme="airfield"] .gallery-nav__btn:hover:not([aria-disabled="true"]) { background: #0C2C3C; color: #F6EFDD; }
:root[data-theme="airfield"] .gallery-nav__btn[aria-disabled="true"] { box-shadow: 3px 3px 0 rgba(12, 44, 60, .5); }
:root[data-theme="airfield"] .gallery__link {
  border: 5px solid #FBF6EA;
  border-radius: 6px;
  box-shadow: 0 0 0 1.5px rgba(12, 44, 60, .22), 7px 8px 0 rgba(12, 44, 60, .13);
}
:root[data-theme="airfield"] .gallery__link:hover { box-shadow: 0 0 0 1.5px rgba(12, 44, 60, .3), 10px 12px 0 rgba(12, 44, 60, .16); }
:root[data-theme="airfield"] .gallery__item--pair-start .gallery__link { border-right-width: 0; }
:root[data-theme="airfield"] .gallery__item--pair-end .gallery__link { border-left-width: 0; }

/* features: cards with a livery stripe and an instrument-dial icon */
:root[data-theme="airfield"] .feature {
  border: 1.5px solid rgba(12, 44, 60, .3);
  border-radius: 6px;
  background:
    linear-gradient(180deg, #0C2C3C 0 5px, #FBF6EA 5px 7px, #C4452A 7px 10px, transparent 10px) top / 100% 10px no-repeat,
    #FBF6EA;
  box-shadow: 5px 6px 0 rgba(12, 44, 60, .1);
}
:root[data-theme="airfield"] .feature__icon {
  border: 3px solid transparent;
  background:
    radial-gradient(circle at 50% 30%, #1D5068, #0C2C3C 72%) padding-box,
    var(--af-alu-ring) border-box;
  color: #E8AE45;
  box-shadow: 0 0 0 1px rgba(12, 44, 60, .45), 0 5px 8px -4px rgba(12, 44, 60, .55);
}
:root[data-theme="airfield"] .feature__title { color: #0C2C3C; }

/* "Under the hood": a riveted aluminium instrument panel */
:root[data-theme="airfield"] .hood {
  --focus: #E8AE45;
  --rivet: radial-gradient(circle at 50% 50%, #FFFFFF 0 .8px, #8E9AA2 1.4px 2.3px, #56636B 2.8px, rgba(86, 99, 107, 0) 3.3px);
  border: 11px solid transparent;
  border-radius: 12px;
  background:
    var(--rivet) 0 0 / 2.5rem 11px round no-repeat border-box,
    var(--rivet) 0 100% / 2.5rem 11px round no-repeat border-box,
    var(--rivet) 0 0 / 11px 2.5rem no-repeat round border-box,
    var(--rivet) 100% 0 / 11px 2.5rem no-repeat round border-box,
    radial-gradient(ellipse 70% 60% at 0% 0%, #1B4B62, rgba(27, 75, 98, 0) 70%) padding-box,
    radial-gradient(ellipse 60% 50% at 100% 100%, rgba(196, 69, 42, .22), rgba(196, 69, 42, 0) 70%) padding-box,
    linear-gradient(#0C2C3C, #09232F) padding-box,
    var(--af-brushed) border-box,
    var(--af-alu) border-box;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .45), 0 0 0 1px rgba(12, 44, 60, .35), 0 40px 70px -40px rgba(12, 44, 60, .8);
}
:root[data-theme="airfield"] .hood .subhead { color: #F6EFDD; text-shadow: .04em .05em 0 #C4452A; }
:root[data-theme="airfield"] .stats { border-radius: 6px; background: rgba(169, 203, 211, .22); border-color: rgba(169, 203, 211, .22); }
:root[data-theme="airfield"] .stat {
  background:
    linear-gradient(90deg, #E8AE45 0 1.6rem, transparent 1.6rem) 0 0 / 100% 3px no-repeat,
    rgba(7, 30, 41, .96);
}
:root[data-theme="airfield"] .stat__value { color: #E8AE45; }
:root[data-theme="airfield"] .stat__unit { font-family: var(--font-mono); font-size: var(--step--1); letter-spacing: .1em; color: #F6EFDD; }
:root[data-theme="airfield"] .hood__list h4 { color: #A9CBD3; }
:root[data-theme="airfield"] .chips--tech .chip { border-color: rgba(169, 203, 211, .42); background: rgba(169, 203, 211, .06); color: #F6EFDD; }

/* ---------- services: destinations ---------------------------------------- */
:root[data-theme="airfield"] .services {
  background:
    var(--af-cloud) left -5rem top 2.5rem / clamp(10rem, 20vw, 24rem) auto no-repeat,
    var(--af-cloud-soft) right -4rem bottom 3rem / clamp(9rem, 16vw, 19rem) auto no-repeat,
    linear-gradient(180deg, #CFE0E3 0%, #DEE8E6 45%, #E9ECE3 100%);
}
:root[data-theme="airfield"] .card {
  border: 2px solid #0C2C3C;
  border-radius: 8px;
  background:
    linear-gradient(180deg, #0C2C3C 0 6px, #FBF6EA 6px 8px, #C4452A 8px 11px, transparent 11px) top / 100% 11px no-repeat,
    #FBF6EA;
  box-shadow: 7px 8px 0 rgba(12, 44, 60, .13);
}
:root[data-theme="airfield"] .card__num {
  padding: .3em .6em .25em;
  border-radius: 3px;
  background: #0C2C3C;
  color: #F6EFDD;
  font-weight: 700;
}
:root[data-theme="airfield"] .card__icon {
  background: radial-gradient(circle closest-side, #0C2C3C 0 70%, #F6EFDD 71% 82%, #C4452A 83%);
  color: #F6EFDD;
  box-shadow: 0 6px 10px -6px rgba(12, 44, 60, .6);
}
:root[data-theme="airfield"] .card__title { color: #0C2C3C; }
:root[data-theme="airfield"] .card__tags { border-top: 2px dashed rgba(12, 44, 60, .3); color: #3A5260; }

/* the two audiences as departure boards */
:root[data-theme="airfield"] .audience {
  position: relative;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, 0) 40%),
    #0C2C3C;
  color: #F6EFDD;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), 7px 8px 0 rgba(12, 44, 60, .13);
}
:root[data-theme="airfield"] .audience--new { box-shadow: inset 0 5px 0 #C4452A, inset 0 0 0 1px rgba(255, 255, 255, .08), 7px 8px 0 rgba(12, 44, 60, .13); }
:root[data-theme="airfield"] .audience--existing { box-shadow: inset 0 5px 0 #E8AE45, inset 0 0 0 1px rgba(255, 255, 255, .08), 7px 8px 0 rgba(12, 44, 60, .13); }
:root[data-theme="airfield"] .audience__label {
  display: inline-block;
  padding: .35em .6em .3em;
  border-radius: 3px;
  background: linear-gradient(180deg, #1C4659 0 49%, #0A2331 49% 51%, #15394B 51%);
  color: #E8AE45;
  letter-spacing: .2em;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .08), inset 0 0 0 1px rgba(0, 0, 0, .3);
}
:root[data-theme="airfield"] .audience__title { color: #F6EFDD; }
:root[data-theme="airfield"] .audience p:not(.audience__label) { color: #CAD7DC; }
:root[data-theme="airfield"] .audiences__or span {
  width: 3.75rem; height: 3.75rem;
  border: 4px solid transparent;
  background:
    linear-gradient(#FBF6EA, #FBF6EA) padding-box,
    var(--af-alu-ring) border-box;
  color: #A63A20;
  font-family: var(--font-mono);
  font-size: .95rem;
  letter-spacing: .1em;
  box-shadow: 0 0 0 1px rgba(12, 44, 60, .35), 0 8px 14px -8px rgba(12, 44, 60, .6);
}

/* ---------- rates: boarding passes ---------------------------------------- */
:root[data-theme="airfield"] .rates {
  isolation: isolate;
  background:
    radial-gradient(ellipse 50% 42% at 50% 50%, rgba(255, 244, 220, .85), rgba(255, 244, 220, 0) 72%),
    #F3EAD6;
}
:root[data-theme="airfield"] .rates::before {
  content: "";
  position: absolute;
  left: 50%; top: 54%;
  z-index: -1;
  width: max(150vmax, 90rem);
  aspect-ratio: 1;
  translate: -50% -50%;
  background: repeating-conic-gradient(from 0deg, rgba(182, 112, 27, .065) 0 4.5deg, rgba(182, 112, 27, 0) 4.5deg 10deg);
  -webkit-mask-image: radial-gradient(closest-side, #000 8%, rgba(0, 0, 0, .5) 30%, transparent 62%);
  mask-image: radial-gradient(closest-side, #000 8%, rgba(0, 0, 0, .5) 30%, transparent 62%);
  pointer-events: none;
}
:root[data-theme="airfield"] .rate-board {
  padding: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
:root[data-theme="airfield"] .rate-board::before {
  content: "Fares · per hour" / "";
  display: block;
  width: fit-content;
  margin: 0 auto clamp(1.25rem, 1rem + 1.2vw, 2rem);
  padding: .5em 1.1em .45em;
  border-radius: 3px;
  background: #0C2C3C;
  color: #E8AE45;
  font-family: var(--font-mono);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  box-shadow: 0 3px 0 #C4452A;
}
:root[data-theme="airfield"] .rate-board__list {
  gap: clamp(1rem, .8rem + 1vw, 1.5rem);
  filter: drop-shadow(0 16px 16px rgba(12, 44, 60, .16)) drop-shadow(0 2px 1px rgba(12, 44, 60, .18));
}
:root[data-theme="airfield"] .rate {
  /* cqw, not cqi: the stub label below is vertical text, where cqi would follow its block axis */
  --stub: clamp(2.6rem, 1.9rem + 3.4cqw, 4.5rem);
  --pad: clamp(.95rem, .5rem + 2.6cqw, 2.1rem);
  --notch: .7rem;
  --stub-bg: #0C2C3C;
  padding: clamp(1rem, .7rem + 1.6cqw, 1.6rem) var(--pad) clamp(1.05rem, .75rem + 1.6cqw, 1.65rem) calc(var(--stub) + var(--pad));
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(12, 44, 60, .42) 0 55%, rgba(12, 44, 60, 0) 55%) var(--stub) 0 / 2px 10px repeat-y,
    linear-gradient(var(--stub-bg), var(--stub-bg)) 0 0 / var(--stub) 100% no-repeat,
    linear-gradient(90deg, rgba(12, 44, 60, 0) 60%, rgba(12, 44, 60, .035)),
    #FBF6EA;
  -webkit-mask:
    radial-gradient(circle var(--notch) at var(--stub) 0, transparent 97%, #000) top / 100% 51% no-repeat,
    radial-gradient(circle var(--notch) at var(--stub) 100%, transparent 97%, #000) bottom / 100% 51% no-repeat;
  mask:
    radial-gradient(circle var(--notch) at var(--stub) 0, transparent 97%, #000) top / 100% 51% no-repeat,
    radial-gradient(circle var(--notch) at var(--stub) 100%, transparent 97%, #000) bottom / 100% 51% no-repeat;
}
:root[data-theme="airfield"] .rate::before {
  content: "DEV" / "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: var(--stub);
  display: grid;
  place-items: center;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  color: #F6EFDD;
  font-family: var(--font-display);
  font-size: clamp(1.05rem, .75rem + 1.9cqw, 1.75rem);
  font-weight: 800;
  letter-spacing: .22em;
}
:root[data-theme="airfield"] .rate--vip { --stub-bg: #B23E22; }
:root[data-theme="airfield"] .rate--vip::before { content: "VIP" / ""; }
:root[data-theme="airfield"] .rate--maint { --stub-bg: #2F6E8E; }
:root[data-theme="airfield"] .rate--maint::before { content: "MNT" / ""; }
:root[data-theme="airfield"] .rate__name { color: #0C2C3C; }
:root[data-theme="airfield"] .rate__price { color: #0C2C3C; }
:root[data-theme="airfield"] .rate--vip .rate__amount { color: #A63A20; }
:root[data-theme="airfield"] .rate__leader {
  height: 1em;
  border-bottom: 0;
  opacity: 1;
  transform: translateY(-.12em);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%232F6E8E' d='M21.5 12c0-.8-.9-1.3-1.9-1.3h-4.8L10 3.2H8.2l2.5 7.5H5.9L4.1 8.2H2.6l1.1 3.8-1.1 3.8h1.5l1.8-2.5h4.8l-2.5 7.5H10l4.8-7.5h4.8c1 0 1.9-.5 1.9-1.3z'/%3E%3C/svg%3E") right center / 1em 1em no-repeat,
    repeating-linear-gradient(90deg, #2F6E8E 0 .4em, transparent .4em .75em) left center / calc(100% - 1.35em) 2px no-repeat;
}
:root[data-theme="airfield"] .rate__desc { color: #3A5260; }
:root[data-theme="airfield"] .rate__burst {
  padding: .5em .7em .45em;
  border-radius: 3px;
  background: transparent;
  color: #A63A20;
  font-family: var(--font-mono);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  box-shadow: inset 0 0 0 2px #A63A20, inset 0 0 0 4px #FBF6EA, inset 0 0 0 5px #A63A20;
  transform: rotate(-5deg);
}
:root[data-theme="airfield"] .rate-board__note { color: #3A5260; opacity: 1; }
/* the passes are narrower than the board, so the name drops above the fare earlier */
@container rateboard (max-width: 42rem) {
  :root[data-theme="airfield"] .rate__line { flex-wrap: wrap; row-gap: .35rem; }
  :root[data-theme="airfield"] .rate__name { flex: 1 0 100%; }
  :root[data-theme="airfield"] .rate--vip .rate__name { flex-basis: auto; flex-grow: 0; }
  :root[data-theme="airfield"] .rate--vip .rate__burst { order: 1; }
  :root[data-theme="airfield"] .rate--vip .rate__leader { order: 2; flex-basis: 30%; }
  :root[data-theme="airfield"] .rate--vip .rate__price { order: 3; }
  :root[data-theme="airfield"] .rate--vip .rate__line::after { content: ""; order: 1; flex: 1 0 100%; height: 0; margin-bottom: -.35rem; }
}
@container rateboard (max-width: 21rem) {
  :root[data-theme="airfield"] .rate--vip .rate__name { flex-basis: 100%; }
  :root[data-theme="airfield"] .rate--vip .rate__line::after { display: none; }
  :root[data-theme="airfield"] .rate__burst { font-size: .66rem; }
}

/* ---------- estimate: an aeronautical chart ------------------------------- */
:root[data-theme="airfield"] .estimate {
  background:
    var(--af-rose-line) right -7rem top -6rem / clamp(15rem, 30vw, 32rem) auto no-repeat,
    var(--af-rose-line) left -9rem bottom -9rem / clamp(14rem, 24vw, 26rem) auto no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 300'%3E%3Cpath d='M10 280C200 250 300 60 520 70S760 150 790 40' fill='none' stroke='%23E8AE45' stroke-opacity='.4' stroke-width='2' stroke-dasharray='8 10' stroke-linecap='round'/%3E%3C/svg%3E") center top clamp(13rem, 9rem + 8vw, 20rem) / min(120%, 100rem) auto no-repeat,
    linear-gradient(rgba(169, 203, 211, .075) 1px, transparent 1px) 0 0 / 4rem 4rem,
    linear-gradient(90deg, rgba(169, 203, 211, .075) 1px, transparent 1px) 0 0 / 4rem 4rem,
    radial-gradient(ellipse 70% 45% at 50% 0%, #1A4D66, rgba(26, 77, 102, 0) 70%),
    linear-gradient(180deg, #0E3345, #0A2634);
}
@media (max-width: 40em) {
  :root[data-theme="airfield"] .estimate {
    background-position: right -8.5rem top -8rem, left -9rem bottom -9rem, center top 16rem, 0 0, 0 0, 0 0, 0 0;
    background-size: 13rem auto, 14rem auto, 150% auto, 3rem 3rem, 3rem 3rem, auto, auto;
  }
}
:root[data-theme="airfield"] .estimate::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 10px;
  background: linear-gradient(180deg, #E8AE45 0 3px, #0C2C3C 3px 5px, #C4452A 5px);
}
:root[data-theme="airfield"] .estimate .section-title { color: #F6EFDD; text-shadow: .045em .05em 0 #C4452A; }
:root[data-theme="airfield"] .estimate .kicker { color: #E8AE45; }
:root[data-theme="airfield"] .estimate .section-lede { color: #C9D7DD; }
:root[data-theme="airfield"] .estimate__noscript { background: #FBF6EA; border-color: rgba(12, 44, 60, .3); color: #0C2C3C; }

/* ---------- process: the flight plan --------------------------------------- */
:root[data-theme="airfield"] .process {
  background:
    radial-gradient(ellipse 40% 50% at 100% 100%, rgba(169, 203, 211, .35), rgba(169, 203, 211, 0) 70%),
    #F3EAD6;
}
:root[data-theme="airfield"] .step__num {
  border: 3px solid #0C2C3C;
  background: #FBF6EA;
  color: #0C2C3C;
  outline: 2px dashed #C4452A;
  outline-offset: 4px;
  box-shadow: 4px 5px 0 rgba(12, 44, 60, .16);
}
:root[data-theme="airfield"] .step__title { color: #0C2C3C; }
@media (min-width: 62em) {
  :root[data-theme="airfield"] .steps::before {
    content: "";
    position: absolute;
    left: 1.875rem;
    right: calc((100% - 3 * clamp(1.25rem, 1rem + 1.5vw, 2.5rem)) / 4 - 11.5rem);
    top: calc(1.875rem - .8rem);
    height: 1.6rem;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23C4452A' d='M21.5 12c0-.8-.9-1.3-1.9-1.3h-4.8L10 3.2H8.2l2.5 7.5H5.9L4.1 8.2H2.6l1.1 3.8-1.1 3.8h1.5l1.8-2.5h4.8l-2.5 7.5H10l4.8-7.5h4.8c1 0 1.9-.5 1.9-1.3z'/%3E%3C/svg%3E") right center / 1.6rem 1.6rem no-repeat,
      repeating-linear-gradient(90deg, #C4452A 0 .7rem, transparent .7rem 1.2rem) left center / calc(100% - 2.2rem) 3px no-repeat;
  }
}

/* ---------- about: the logo as an airmail stamp ----------------------------- */
:root[data-theme="airfield"] .about {
  background:
    var(--af-cloud-soft) right -3rem top 3rem / clamp(9rem, 16vw, 18rem) auto no-repeat,
    linear-gradient(180deg, #DDE8E7, #E8ECE4);
}
:root[data-theme="airfield"] .about__art { filter: drop-shadow(0 22px 22px rgba(12, 44, 60, .22)) drop-shadow(0 2px 2px rgba(12, 44, 60, .2)); }
:root[data-theme="airfield"] .about__frame {
  --r: 7px;
  overflow: visible;
  border-radius: 0;
  box-shadow: none;
  transform: rotate(-2deg);
}
:root[data-theme="airfield"] .about__frame img {
  padding: calc(2.3 * var(--r));
  background:
    linear-gradient(rgba(12, 44, 60, .22), rgba(12, 44, 60, .22)) center / calc(100% - 4.6 * var(--r) + 3px) calc(100% - 4.6 * var(--r) + 3px) no-repeat,
    #FBF6EA;
  -webkit-mask:
    radial-gradient(var(--r), transparent 97%, #000) round calc(-1.5 * var(--r)) calc(-1.5 * var(--r)) / calc(3 * var(--r)) calc(3 * var(--r)),
    linear-gradient(#000 0 0) no-repeat 50% / calc(100% - 3 * var(--r)) calc(100% - 3 * var(--r));
  mask:
    radial-gradient(var(--r), transparent 97%, #000) round calc(-1.5 * var(--r)) calc(-1.5 * var(--r)) / calc(3 * var(--r)) calc(3 * var(--r)),
    linear-gradient(#000 0 0) no-repeat 50% / calc(100% - 3 * var(--r)) calc(100% - 3 * var(--r));
}
/* postmark + cancellation waves, overhanging the stamp's top-right corner */
:root[data-theme="airfield"] .about__frame::before {
  content: "";
  position: absolute;
  right: clamp(3.4rem, 2.6rem + 3vw, 5.4rem);
  top: .4rem;
  width: clamp(6rem, 4.5rem + 5vw, 9rem);
  aspect-ratio: 120 / 44;
  z-index: 1; /* the masked image is its own layer */
  background: var(--af-waves) center / contain no-repeat;
  transform: rotate(-10deg);
  opacity: .75;
  pointer-events: none;
}
:root[data-theme="airfield"] .about__frame::after {
  content: "Air mail\A Alberta\A Canada" / "";
  white-space: pre;
  position: absolute;
  right: -.6rem;
  top: -1.5rem;
  display: grid;
  place-items: center;
  width: clamp(5.25rem, 4.4rem + 3vw, 7rem);
  aspect-ratio: 1;
  border-radius: 50%;
  color: rgba(12, 44, 60, .72);
  font-family: var(--font-mono);
  font-size: clamp(.5625rem, .5rem + .25vw, .75rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .1em;
  text-align: center;
  text-transform: uppercase;
  box-shadow: inset 0 0 0 2px rgba(12, 44, 60, .6), inset 0 0 0 5px transparent, inset 0 0 0 6.5px rgba(12, 44, 60, .5);
  z-index: 1;
  transform: rotate(-12deg);
  pointer-events: none;
}
:root[data-theme="airfield"] .about__facts li { border-top-style: dashed; border-color: rgba(12, 44, 60, .25); }
:root[data-theme="airfield"] .about__fact-label { color: #A63A20; }

/* ---------- contact: send airmail ------------------------------------------- */
:root[data-theme="airfield"] .contact {
  isolation: isolate;
  background:
    var(--af-cloud-teal) left -4rem top 12% / clamp(10rem, 20vw, 24rem) auto no-repeat,
    var(--af-cloud-teal) right -5rem bottom 10% / clamp(11rem, 22vw, 26rem) auto no-repeat,
    radial-gradient(ellipse 55% 55% at 50% 50%, rgba(169, 203, 211, .3), rgba(169, 203, 211, 0) 72%),
    linear-gradient(180deg, #2F6E8E, #245A75 60%, #1D4C64);
}
:root[data-theme="airfield"] .contact::before {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  z-index: -1;
  width: max(150vmax, 90rem);
  aspect-ratio: 1;
  translate: -50% -50%;
  background: repeating-conic-gradient(from 0deg, rgba(255, 255, 255, .06) 0 4.5deg, rgba(255, 255, 255, 0) 4.5deg 10deg);
  -webkit-mask-image: radial-gradient(closest-side, #000 10%, transparent 60%);
  mask-image: radial-gradient(closest-side, #000 10%, transparent 60%);
  pointer-events: none;
}
:root[data-theme="airfield"] .contact__inner { filter: drop-shadow(0 26px 30px rgba(6, 24, 34, .5)); }
:root[data-theme="airfield"] .ticket {
  border: clamp(10px, .45rem + .5vw, 16px) solid transparent;
  border-radius: 6px;
  background:
    linear-gradient(#FBF6EA, #FBF6EA) padding-box,
    repeating-linear-gradient(-45deg, #C4452A 0 16px, #FBF6EA 16px 24px, #0C2C3C 24px 40px, #FBF6EA 40px 48px) border-box;
  box-shadow: none;
}
:root[data-theme="airfield"] .ticket__top {
  align-items: flex-start;
  border-bottom: 2px dashed rgba(12, 44, 60, .3);
  text-align: left;
}
/* The shared markup says "Guest check" / "come again!" (diner copy, aria-hidden):
   airfield shows its own airmail wording instead. */
:root[data-theme="airfield"] .ticket__brand,
:root[data-theme="airfield"] .ticket__no,
:root[data-theme="airfield"] .ticket__foot { font-size: 0; letter-spacing: 0; }
:root[data-theme="airfield"] .ticket__brand::before {
  content: "Par avion · By air mail";
  display: inline-block;
  padding: .55em .9em .5em;
  border-radius: 3px;
  background: #1F4F7A;
  color: #FFFFFF;
  font-size: var(--step--2);
  letter-spacing: .16em;
  box-shadow: inset 0 0 0 1.5px #FBF6EA, 0 0 0 1.5px #1F4F7A;
}
:root[data-theme="airfield"] .ticket__no {
  position: relative;
  flex: none;
  width: 3.6rem;
  height: 4.3rem;
  margin-left: auto;
  transform: rotate(4deg);
}
:root[data-theme="airfield"] .ticket__no::before {
  content: "";
  position: absolute;
  inset: 0;
  --r: 3.5px;
  background:
    var(--af-plane-cream) center 42% / 58% auto no-repeat,
    linear-gradient(180deg, transparent 0 74%, #E8AE45 74% 80%, transparent 80%) center / calc(100% - 14px) calc(100% - 14px) no-repeat,
    linear-gradient(#C4452A, #C4452A) center / calc(100% - 14px) calc(100% - 14px) no-repeat,
    #FFFDF7;
  -webkit-mask:
    radial-gradient(var(--r), transparent 97%, #000) round calc(-1.5 * var(--r)) calc(-1.5 * var(--r)) / calc(3 * var(--r)) calc(3 * var(--r)),
    linear-gradient(#000 0 0) no-repeat 50% / calc(100% - 3 * var(--r)) calc(100% - 3 * var(--r));
  mask:
    radial-gradient(var(--r), transparent 97%, #000) round calc(-1.5 * var(--r)) calc(-1.5 * var(--r)) / calc(3 * var(--r)) calc(3 * var(--r)),
    linear-gradient(#000 0 0) no-repeat 50% / calc(100% - 3 * var(--r)) calc(100% - 3 * var(--r));
  filter: drop-shadow(0 1px 1px rgba(12, 44, 60, .25));
}
:root[data-theme="airfield"] .ticket__no::after {
  content: "";
  position: absolute;
  right: 55%;
  top: 1.35rem;
  width: 8.5rem;
  height: 3.4rem;
  background:
    radial-gradient(circle closest-side, transparent 0 80%, rgba(12, 44, 60, .5) 82% 88%, transparent 90%) right center / 3.4rem 3.4rem no-repeat,
    radial-gradient(circle closest-side, transparent 0 62%, rgba(12, 44, 60, .4) 64% 69%, transparent 71%) right center / 3.4rem 3.4rem no-repeat,
    var(--af-waves) left center / 5.4rem auto no-repeat;
  transform: rotate(-6deg);
  opacity: .9;
}
:root[data-theme="airfield"] .ticket__title { color: #0C2C3C; }
:root[data-theme="airfield"] .ticket__text { color: #334C5A; }
:root[data-theme="airfield"] .ticket__foot { border-top: 2px dashed rgba(12, 44, 60, .3); }
:root[data-theme="airfield"] .ticket__foot::before {
  content: "Thank you for flying with us";
  font-size: var(--step--2);
  letter-spacing: .16em;
}

/* ---------- footer ------------------------------------------------------------ */
:root[data-theme="airfield"] .site-footer {
  --focus: #E8AE45;
  background:
    linear-gradient(180deg, #C4452A 0 5px, #F3EAD6 5px 6px, #E8AE45 6px 9px, transparent 9px) top / 100% 9px no-repeat,
    radial-gradient(ellipse 50% 60% at 100% 0%, rgba(47, 110, 142, .28), rgba(47, 110, 142, 0) 70%),
    #0C2C3C;
}
:root[data-theme="airfield"] .site-footer .brand__name { color: #F6EFDD; }
:root[data-theme="airfield"] .theme-picker__label { color: #A9CBD3; opacity: 1; }
:root[data-theme="airfield"] .theme-picker button { border-radius: 4px; border-color: rgba(169, 203, 211, .45); }
:root[data-theme="airfield"] .theme-picker button:hover { border-color: #F6EFDD; }
:root[data-theme="airfield"] .theme-picker button[aria-pressed="true"] {
  background: #E8AE45;
  border-color: #E8AE45;
  color: #0C2C3C;
  box-shadow: 3px 3px 0 #C4452A;
}

/* ---------- 404 --------------------------------------------------------------- */
:root[data-theme="airfield"] .lost__path { color: #C4452A; opacity: .6; }
:root[data-theme="airfield"] .lost .hero__stage::after,
:root[data-theme="airfield"] .lost .hero__sign::before { display: none; }
@media (max-width: 36em) {
  :root[data-theme="airfield"] .lost__kicker::before,
  :root[data-theme="airfield"] .lost__kicker::after { display: none; }
}
:root[data-theme="airfield"] .lost__title { text-shadow: var(--title-shadow); }

/* ---------- reduced motion: no hover hops ------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  :root[data-theme="airfield"] .btn:hover,
  :root[data-theme="airfield"] .btn:active {
    transform: none;
    box-shadow: var(--btn-lift) var(--btn-lift) 0 var(--btn-shadow);
  }
}
