:root {
  --k-primary: #1a1049;
  --k-beacon: #f3a026;
  --k-spot-deep: #ea970b;
  --k-base-plane: #110c39;
  --k-bg-elevated: #1b1449;
  --k-body: #FFFFFF;
  --k-soft-text: #c2c1c1;
  --k-hairline: #2c2364;
  --k-edge-hard: #453a92;
  --k-fade-top: #FFFFFF;
  --k-blend-b: #382e8e;
  --k-rg-banner: #a51d1d;

  --g-step-0: 6px;
  --g-step-1: 14px;
  --g-step-2: 20px;
  --g-step-3: 32px;
  --g-step-4: 48px;
  --g-step-5: 72px;
  --g-step-6: 112px;
  --g-step-7: 160px;

  --r-lozenge: 9999px;
  --r-circle: 50%;
  --r-step-0: 2px;
  --r-step-1: 4px;
  --r-step-2: 10px;
  --r-step-3: 16px;
  --r-step-4: 28px;
  --r-step-5: 36px;
  --r-step-6: 44px;
  --r-step-7: 56px;

  --f-display: 'Atma', 'Trebuchet MS', sans-serif;
  --f-base: 'Outfit', 'Helvetica Neue', Arial, sans-serif;

  --z-display-1: 72px;
  --z-display-2: 44px;
  --z-sub: 28px;
  --z-sub-2: 20px;
  --z-h5: 16px;
  --z-h6: 14px;
  --z-body: 18px;
  --z-sm: 15px;
  --z-micro: 12px;

  --l-compact: 1.08;
  --l-regular: 1.5;
  --l-relaxed: 1.7;

  --w-plain: 400;
  --w-mid: 600;
  --w-heavy: 800;

  --e-packed: -0.03em;
  --e-normal: 0;
  --e-spread: 0.05em;

  --d-step-0: 0 1px 2px rgba(6, 3, 24, 0.28);
  --d-step-1: 0 2px 4px rgba(6, 3, 24, 0.32);
  --d-step-2: 0 4px 10px rgba(6, 3, 24, 0.36);
  --d-step-3: 0 10px 28px rgba(6, 3, 24, 0.42);
  --d-step-4: 0 20px 48px rgba(6, 3, 24, 0.46);
  --d-step-5: 0 26px 62px rgba(6, 3, 24, 0.5);
  --d-step-6: 0 32px 78px rgba(6, 3, 24, 0.54);
  --d-step-7: 0 40px 96px rgba(6, 3, 24, 0.58);

  --t-quick: 167ms;
  --t-normal: 350ms;
  --t-long: 670ms;

  --x-out: cubic-bezier(0.1, 0.67, 0.35, 0.97);
  --x-enter: cubic-bezier(0.97, 0.35, 0.67, 0.1);
  --x-even: cubic-bezier(0.36, 0.04, 0.5, 0.91);
  --x-spring: cubic-bezier(0.41, 1.45, 0.52, 1.1);

  --v-max: 1240px;
  --v-narrow: 640px;
  --v-edge-wide: 48px;
  --v-padding-tablet: 32px;
  --v-pad-sm: 16px;

  --b-hair: 1px;
  --b-medium: 2px;
  --b-thick: 3px;

  --h-height-desktop: 58px;
  --h-short: 52px;
  --h-shell: 58px;
  --h-rg: 34px;

  --y-sec: 48px;
  --y-shelf: calc(var(--v-max) + 2 * var(--v-edge-wide));
}

@font-face {
  font-display: swap;
  font-family: 'Atma';
  font-style: normal;
  font-weight: 600;
  src: url('/typeface/atma-latin-600-normal.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'Atma';
  font-style: normal;
  font-weight: 700 800;
  src: url('/typeface/atma-latin-700-normal.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  src: url('/typeface/outfit-latin-400-normal.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 600;
  src: url('/typeface/outfit-latin-600-normal.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  src: url('/typeface/outfit-latin-700-normal.woff2') format('woff2');
}

@media (max-width: 832px) {
  :root {
    --z-display-1: 40px;
    --z-display-2: 30px;
    --z-sub: 22px;
    --z-sub-2: 18px;
    --z-h5: 14px;
    --z-h6: 12px;
    --z-body: 17px;
    --z-sm: 14px;
    --z-micro: 11px;
    --v-edge-wide: 16px;
    --y-sec: 40px;
  }
}

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

html {
  overflow-x: clip;
  scroll-behavior: smooth;
}

body {
  background: var(--k-base-plane);
  color: var(--k-body);
  display: flex;
  flex-direction: column;
  font-family: var(--f-base);
  font-size: var(--z-body);
  font-weight: var(--w-plain);
  line-height: var(--l-regular);
  margin: 0;
  min-height: 100vh;
  overflow-x: clip;
  padding-block-end: var(--h-rg);
}

main {
  display: block;
  flex: 1 0 auto;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  overflow-wrap: anywhere;
}

h1 {
  color: var(--k-body);
  font-family: var(--f-display);
  font-size: clamp(30px, 6vw, var(--z-display-1));
  font-weight: var(--w-heavy);
  letter-spacing: var(--e-packed);
  line-height: var(--l-compact);
}

h2 {
  color: var(--k-body);
  font-family: var(--f-display);
  font-size: clamp(26px, 4vw, var(--z-display-2));
  font-weight: var(--w-mid);
  letter-spacing: var(--e-packed);
  line-height: var(--l-compact);
}

h3 {
  color: var(--k-body);
  font-family: var(--f-base);
  font-size: var(--z-sub-2);
  font-weight: var(--w-mid);
  line-height: var(--l-regular);
}

p { margin: 0 0 var(--g-step-2); }

a {
  color: var(--k-beacon);
  transition: color var(--t-quick) var(--x-out);
}

a:hover,
a:focus-visible { color: var(--k-spot-deep); }

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

ul, ol { margin: 0; }

:focus-visible {
  outline: var(--b-medium) solid var(--k-beacon);
  outline-offset: 3px;
}

.skipLane {
  background: var(--k-beacon);
  border-radius: 0 0 var(--r-step-2) 0;
  color: var(--k-primary);
  font-weight: var(--w-mid);
  left: 0;
  padding: var(--g-step-1) var(--g-step-2);
  position: fixed;
  text-decoration: none;
  z-index: 300;
}

.skipLane:not(:focus) { top: -200px !important; }
.skipLane:focus { top: 0; }

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

[data-enter] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--t-long) var(--x-out), transform var(--t-long) var(--x-out);
}

[data-enter].on-screen {
  opacity: 1;
  transform: translateY(0);
}

@media (min-width: 1360px) {
  [data-enter] { transform: translateX(20px); }
  [data-enter].on-screen { transform: translateX(0); }
}

/* ── shell ─────────────────────────────────────────────── */

.barrow-shell,
.nave-guts,
.armoire-guts,
.grotto-guts,
.credenza-guts,
.mosaic-guts,
.promenade-guts,
.dormer-guts,
.arabesque-guts,
.cornice-guts,
.trefoil-guts,
.cloister-guts,
.bureau-guts,
.keystone-guts {
  margin-inline: auto;
  max-width: var(--y-shelf);
  padding-inline: var(--v-edge-wide);
  width: 100%;
}

/* ── header: HEAD-MIRROR ───────────────────────────────── */

.barrow {
  background: var(--k-primary);
  box-shadow: var(--d-step-2);
  height: 58px;
  position: sticky;
  top: 0;
  transition: height var(--t-normal) var(--x-out);
  z-index: 120;
}

.barrow.is-shrunk { height: 48px; }

.barrow-shell {
  align-items: center;
  display: flex;
  gap: var(--g-step-2);
  height: 100%;
  padding-inline: var(--v-pad-sm);
}

.barrow-toggle {
  align-items: center;
  background: transparent;
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-2);
  color: var(--k-body);
  cursor: pointer;
  display: none;
  flex-direction: column;
  gap: 4px;
  height: 40px;
  justify-content: center;
  order: 1;
  width: 44px;
}

.barrow-lines {
  background: var(--k-body);
  border-radius: var(--r-step-0);
  display: block;
  height: 2px;
  width: 20px;
}

.barrow-menu {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  order: 2;
  overflow: visible;
}

.barrow-roll {
  align-items: center;
  display: flex;
  gap: var(--g-step-2);
  list-style: none;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.barrow-node {
  display: flex;
  flex: 0 0 auto;
  position: relative;
}

.barrow-node + .barrow-node::before {
  background: var(--k-edge-hard);
  content: '';
  height: 14px;
  margin-inline-end: var(--g-step-2);
  width: 1px;
}

.barrow-step {
  align-items: center;
  color: var(--k-body);
  display: inline-flex;
  font-family: var(--f-base);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: var(--e-spread);
  min-height: 44px;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform var(--t-quick) var(--x-out), color var(--t-quick) var(--x-out);
  white-space: nowrap;
}

.barrow-step:hover,
.barrow-step:focus-visible {
  color: var(--k-beacon);
  transform: translateY(-2px);
}

.barrow-step[aria-current='page'] { color: var(--k-beacon); }

.barrow-step[aria-current='page']::after {
  background: var(--k-beacon);
  border-radius: var(--r-circle);
  bottom: 8px;
  content: '';
  height: 5px;
  left: 50%;
  margin-inline-start: -2px;
  position: absolute;
  width: 5px;
}

.barrow-more { display: none; }
.barrow-more.is-live { display: flex; }

.barrow-more-toggle {
  align-items: center;
  background: transparent;
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-lozenge);
  color: var(--k-body);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--f-base);
  font-size: 13px;
  letter-spacing: var(--e-spread);
  min-height: 34px;
  padding-inline: var(--g-step-1);
  text-transform: uppercase;
}

.barrow-more-toggle:hover { color: var(--k-beacon); }

.barrow-more-menu {
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-2);
  box-shadow: var(--d-step-3);
  display: none;
  inset-block-start: calc(100% + 6px);
  inset-inline-end: 0;
  max-height: 60vh;
  min-width: 200px;
  overflow-y: auto;
  padding: var(--g-step-0);
  position: absolute;
  z-index: 140;
}

.barrow-more-menu.is-open { display: block; }

.barrow-more-roll {
  display: flex;
  flex-direction: column;
  list-style: none;
  margin: 0;
  padding: 0;
}

.barrow-more-roll .barrow-node { display: block; }
.barrow-more-roll .barrow-node::before { display: none; }

.barrow-more-roll .barrow-step {
  display: flex;
  min-height: 40px;
  padding-inline: var(--g-step-1);
  width: 100%;
}

.barrow-brand {
  align-items: center;
  display: inline-flex;
  flex-shrink: 0;
  margin-inline-start: auto;
  order: 3;
  text-decoration: none;
}

.barrow-plate {
  align-items: center;
  background: var(--k-fade-top);
  border-radius: var(--r-step-2);
  color: var(--k-primary);
  display: inline-flex;
  padding: 5px 10px;
}

.barrow-pic {
  height: 32px;
  transition: height var(--t-normal) var(--x-out);
  width: auto;
}

.barrow.is-shrunk .barrow-pic { height: 24px; }

.barrow-flyout {
  background: var(--k-primary);
  border-block-start: var(--b-hair) solid var(--k-edge-hard);
  box-shadow: var(--d-step-4);
  display: none;
  inset-block-start: 100%;
  inset-inline: 0;
  max-height: calc(100vh - var(--h-shell));
  overflow-y: auto;
  padding: var(--g-step-2) var(--v-pad-sm) var(--g-step-3);
  position: absolute;
  z-index: 130;
}

.barrow-flyout.is-open { display: block; }

.barrow-flyMenu { display: block; }

.barrow-flyRoll {
  display: flex;
  flex-direction: column;
  gap: var(--g-step-0);
  list-style: none;
  margin: 0;
  padding: 0;
}

.barrow-flyNode { display: block; }

.barrow-flyStep {
  color: var(--k-body);
  display: flex;
  font-size: var(--z-h5);
  letter-spacing: var(--e-spread);
  min-height: 46px;
  align-items: center;
  text-decoration: none;
  text-transform: uppercase;
}

.barrow-flyStep:hover,
.barrow-flyStep[aria-current='page'] { color: var(--k-beacon); }

@media (max-width: 900px) {
  .barrow { position: relative; }
  .barrow-toggle { display: flex; }
  .barrow-menu { display: none; }
}

/* ── breadcrumbs: BREAD-05 ─────────────────────────────── */

.bureau {
  display: block;
  padding-block: var(--g-step-3) 0;
}

.bureau-roll {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bureau-node {
  align-items: center;
  display: flex;
}

.bureau-node + .bureau-node::before {
  color: var(--k-beacon);
  content: '/';
  font-family: var(--f-display);
  font-size: var(--z-h5);
  font-weight: var(--w-heavy);
  margin-inline: var(--g-step-1);
}

.bureau-step,
.bureau-now {
  font-family: var(--f-display);
  font-size: var(--z-h5);
  font-weight: var(--w-heavy);
  letter-spacing: var(--e-packed);
  text-transform: uppercase;
}

.bureau-step {
  color: var(--k-soft-text);
  text-decoration: none;
}

.bureau-step:hover { color: var(--k-body); }
.bureau-now { color: var(--k-body); }

/* ── hero: HERO-09 ─────────────────────────────────────── */

.nave {
  background-color: var(--k-primary);
  background-image: linear-gradient(105deg, rgba(17, 12, 57, 0.97) 0%, rgba(26, 16, 73, 0.86) 48%, rgba(56, 46, 142, 0.6) 100%), url('/panel/headline.webp');
  background-position: center right;
  background-size: cover;
  display: block;
}

.nave-guts {
  align-items: center;
  display: grid;
  gap: var(--g-step-4);
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  padding-block: 56px var(--y-sec);
}

.nave-content { display: block; }

.nave-eyebrow {
  color: var(--k-beacon);
  display: inline-block;
  font-family: var(--f-base);
  font-size: var(--z-micro);
  font-weight: var(--w-mid);
  letter-spacing: var(--e-spread);
  margin-block-end: var(--g-step-1);
  text-transform: uppercase;
}

.nave-kicker {
  color: var(--k-soft-text);
  font-size: var(--z-sub-2);
  line-height: var(--l-relaxed);
  margin-block: var(--g-step-2) var(--g-step-3);
  max-width: var(--v-narrow);
}

.nave-fine {
  color: var(--k-soft-text);
  display: block;
  font-size: var(--z-micro);
  margin-block-start: var(--g-step-1);
  max-width: var(--v-narrow);
}

.nave-feats {
  display: flex;
  flex-direction: column;
  gap: var(--g-step-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.nave-feat {
  align-items: center;
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-3);
  color: var(--k-body);
  display: flex;
  gap: var(--g-step-2);
  padding: var(--g-step-2);
}

.nave-num {
  color: var(--k-beacon);
  flex-shrink: 0;
  font-family: var(--f-display);
  font-size: var(--z-sub);
  font-weight: var(--w-heavy);
  line-height: 1;
}

.nave-tag {
  color: var(--k-body);
  font-size: var(--z-h5);
  font-weight: var(--w-mid);
  line-height: var(--l-compact);
}

@media (max-width: 1024px) {
  .nave-guts { grid-template-columns: minmax(0, 1fr); }
}

/* ── page header: PHEAD-10 ─────────────────────────────── */

.armoire {
  background: var(--k-base-plane);
  display: block;
}

.armoire-guts {
  padding-block: 56px var(--y-sec);
  text-align: center;
}

.armoire-top {
  font-size: clamp(30px, 7vw, 80px);
  line-height: var(--l-compact);
}

.armoire-dot {
  color: var(--k-beacon);
  display: block;
  font-family: var(--f-display);
  font-size: var(--z-display-2);
  line-height: 1;
  margin-block: var(--g-step-1);
}

.armoire-lede {
  color: var(--k-soft-text);
  font-size: var(--z-sub-2);
  font-style: italic;
  line-height: var(--l-relaxed);
  margin-inline: auto;
  max-width: var(--v-narrow);
}

/* ── items grid: GRID-11 ───────────────────────────────── */

.grotto { display: block; }
.grotto-guts { padding-block: var(--y-sec); }

.grotto-hdr { margin-block-end: var(--g-step-3); }

.grotto-roll {
  display: grid;
  gap: var(--g-step-2);
  grid-auto-flow: dense;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.grotto-node {
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-4);
  color: var(--k-body);
  display: flex;
  flex-direction: column;
  gap: var(--g-step-1);
  padding: var(--g-step-3);
  transition: border-color var(--t-normal) var(--x-out);
}

.grotto-node:hover { border-color: var(--k-beacon); }

.grotto-nodeBig {
  grid-column: span 2;
  grid-row: span 2;
  justify-content: center;
}

.grotto-nodeWide {
  grid-column: span 2;
  justify-content: center;
}

.grotto-nodeBig .grotto-body,
.grotto-nodeWide .grotto-body {
  font-size: var(--z-body);
  line-height: var(--l-relaxed);
}

.grotto-nodeWide .grotto-top { font-size: var(--z-sub); }

.grotto-nodeBig .grotto-mark,
.grotto-nodeWide .grotto-mark {
  height: 58px;
  width: 58px;
}

.grotto-nodeBig .grotto-mark svg,
.grotto-nodeWide .grotto-mark svg {
  height: 32px;
  width: 32px;
}

.grotto-mark {
  align-items: center;
  background: var(--k-primary);
  border-radius: var(--r-step-3);
  color: var(--k-beacon);
  display: inline-flex;
  height: 46px;
  justify-content: center;
  width: 46px;
}

.grotto-mark svg {
  fill: currentColor;
  height: 26px;
  width: 26px;
}

.grotto-top { color: var(--k-body); }
.grotto-nodeBig .grotto-top { font-size: clamp(24px, 3vw, var(--z-display-2)); }

.grotto-body {
  color: var(--k-soft-text);
  font-size: var(--z-sm);
  line-height: var(--l-regular);
  margin: 0;
}

@media (max-width: 1136px) {
  .grotto-roll { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grotto-nodeBig { grid-row: span 1; }
}

@media (max-width: 832px) {
  .grotto-roll { grid-template-columns: minmax(0, 1fr); }
  .grotto-nodeBig,
  .grotto-nodeWide { grid-column: span 1; }
}

/* ── prose: PROSE-12 ───────────────────────────────────── */

.credenza { display: block; }

.credenza-guts {
  counter-reset: credenzaPart;
  padding-block: var(--y-sec);
}

.credenza-part {
  counter-increment: credenzaPart;
  display: block;
  margin-block-end: var(--g-step-3);
}

.credenza-top {
  align-items: center;
  display: flex;
  gap: var(--g-step-2);
  margin-block-end: var(--g-step-2);
}

.credenza-top::before {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: var(--k-beacon);
  border-radius: var(--r-circle);
  color: var(--k-primary);
  content: counter(credenzaPart, decimal-leading-zero);
  display: inline-flex;
  flex-shrink: 0;
  font-family: var(--f-display);
  font-size: 0.52em;
  font-weight: var(--w-heavy);
  height: 1.9em;
  justify-content: center;
  line-height: 1;
}

.credenza-body {
  color: var(--k-soft-text);
  line-height: var(--l-relaxed);
  margin: 0 0 var(--g-step-2);
}

.credenza-body strong { color: var(--k-body); }

.credenza-roll {
  color: var(--k-soft-text);
  display: flex;
  flex-direction: column;
  gap: var(--g-step-0);
  line-height: var(--l-relaxed);
  margin: 0 0 var(--g-step-2);
  padding-inline-start: var(--g-step-2);
}

.credenza-node { padding-inline-start: var(--g-step-0); }
.credenza-node::marker { color: var(--k-beacon); }

.credenza-plug {
  align-items: center;
  background: var(--k-primary);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-4);
  color: var(--k-body);
  display: flex;
  flex-wrap: wrap;
  gap: var(--g-step-2);
  justify-content: space-between;
  margin-block: var(--g-step-3);
  padding: var(--g-step-3);
}

.credenza-pitch {
  color: var(--k-body);
  font-family: var(--f-display);
  font-size: var(--z-sub-2);
  font-weight: var(--w-mid);
  max-width: 34ch;
}

.credenza-fig {
  display: block;
  margin: var(--g-step-3) auto;
  width: 100%;
}

.credenza-figWide { max-width: 690px; }
.credenza-figSquare { max-width: 460px; }
.credenza-figTall { max-width: 310px; }

.credenza-pic {
  border-radius: var(--r-step-3);
  display: block;
  height: auto;
  width: 100%;
}

.credenza-cap {
  color: var(--k-soft-text);
  font-size: var(--z-micro);
  margin: var(--g-step-0) 0 0;
  text-align: center;
}

/* ── data table: TABLE-04 ──────────────────────────────── */

.mosaic { display: block; }
.mosaic-guts { padding-block: var(--y-sec); }
.mosaic-hdr { margin-block-end: var(--g-step-3); }

.mosaic-scroll {
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-3);
  overflow-x: auto;
  width: 100%;
}

.mosaic-grid {
  border-collapse: collapse;
  min-width: 560px;
  width: 100%;
}

.mosaic-grid thead th {
  background: var(--k-primary);
  color: var(--k-body);
  font-family: var(--f-base);
  font-size: var(--z-sm);
  font-weight: var(--w-mid);
  letter-spacing: var(--e-spread);
  padding: var(--g-step-2);
  text-align: start;
  text-transform: uppercase;
}

.mosaic-grid thead th + th { background: #150e40; }

.mosaic-grid td {
  border-block-start: var(--b-hair) solid var(--k-hairline);
  color: var(--k-soft-text);
  font-size: var(--z-sm);
  padding: var(--g-step-2);
  vertical-align: top;
}

@media (max-width: 560px) {
  .mosaic-grid { min-width: 470px; }

  .mosaic-grid td,
  .mosaic-grid thead th {
    font-size: var(--z-micro);
    padding: var(--g-step-1);
  }
}

.mosaic-grid td:first-child {
  background: var(--k-primary);
  border-inline-end: 4px solid var(--k-beacon);
  color: var(--k-body);
  font-weight: var(--w-mid);
}

/* ── faq: FAQ-06 ───────────────────────────────────────── */

.promenade { display: block; }
.promenade-guts { padding-block: var(--y-sec); }
.promenade-hdr { margin-block-end: var(--g-step-3); }

.promenade-toc {
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-hairline);
  border-radius: var(--r-step-3);
  display: block;
  margin-block-end: var(--g-step-4);
  padding: var(--g-step-3);
}

.promenade-roll {
  color: var(--k-beacon);
  display: flex;
  flex-direction: column;
  gap: var(--g-step-0);
  margin: 0;
  padding-inline-start: var(--g-step-2);
}

.promenade-node { padding-inline-start: var(--g-step-0); }

.promenade-step {
  color: var(--k-soft-text);
  text-decoration: none;
}

.promenade-step:hover,
.promenade-step:focus-visible {
  color: var(--k-body);
  text-decoration: underline;
}

.promenade-set {
  display: flex;
  flex-direction: column;
  gap: var(--g-step-2);
}

.promenade-fold {
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-3);
  color: var(--k-body);
  padding: var(--g-step-2) var(--g-step-3);
  scroll-margin-block-start: calc(var(--h-shell) + 18px);
}

.promenade-head {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: var(--g-step-2);
  justify-content: space-between;
  list-style: none;
  min-height: 44px;
}

.promenade-head::-webkit-details-marker { display: none; }

.promenade-head::after {
  color: var(--k-beacon);
  content: '+';
  flex-shrink: 0;
  font-family: var(--f-display);
  font-size: var(--z-sub);
  line-height: 1;
  transition: transform var(--t-normal) var(--x-even);
}

.promenade-fold[open] .promenade-head::after { transform: rotate(45deg); }

.promenade-top {
  color: var(--k-body);
  font-size: var(--z-sub-2);
  font-weight: var(--w-mid);
}

.promenade-wrap {
  display: grid;
  grid-template-rows: 1fr;
  overflow: hidden;
  transition: grid-template-rows var(--t-normal) var(--x-even);
}

.promenade-body {
  color: var(--k-soft-text);
  line-height: var(--l-relaxed);
  margin: var(--g-step-1) 0 0;
  min-height: 0;
}

/* ── cta block: CTA-02 ─────────────────────────────────── */

.dormer { display: block; }
.dormer-guts { padding-block: var(--y-sec); }

.dormer-box {
  background: var(--k-primary);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-4);
  color: var(--k-body);
  margin-inline: auto;
  max-width: var(--v-narrow);
  padding: var(--g-step-4) var(--g-step-3);
  text-align: center;
}

.dormer-top { color: var(--k-body); }

.dormer-body {
  color: var(--k-soft-text);
  line-height: var(--l-relaxed);
  margin-block: var(--g-step-2) var(--g-step-3);
}

.dormer-fine {
  color: var(--k-soft-text);
  display: block;
  font-size: var(--z-micro);
  margin-block-start: var(--g-step-1);
}

/* ── legal: LEGAL-05 ───────────────────────────────────── */

.arabesque { display: block; }
.arabesque-guts { padding-block: var(--y-sec); }

.arabesque-lede {
  color: var(--k-soft-text);
  font-size: var(--z-sub-2);
  line-height: var(--l-relaxed);
  margin-block-end: var(--g-step-3);
}

.arabesque-roll { display: block; }

.arabesque-term {
  color: var(--k-body);
  font-family: var(--f-display);
  font-size: var(--z-sub-2);
  font-weight: var(--w-heavy);
  margin-block: var(--g-step-4) var(--g-step-1);
}

.arabesque-term::before {
  background: var(--k-beacon);
  content: '';
  display: block;
  height: 2px;
  margin-block-end: var(--g-step-1);
  width: 30px;
}

.arabesque-def {
  color: var(--k-soft-text);
  line-height: var(--l-relaxed);
  margin-block-end: var(--g-step-3);
  margin-inline-start: 0;
}

.arabesque-help {
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-hairline);
  border-radius: var(--r-step-3);
  color: var(--k-soft-text);
  display: flex;
  flex-direction: column;
  gap: var(--g-step-0);
  list-style: none;
  margin-block: var(--g-step-3);
  padding: var(--g-step-3);
}

.arabesque-note {
  color: var(--k-soft-text);
  font-size: var(--z-sm);
  line-height: var(--l-relaxed);
  margin-block-start: var(--g-step-3);
}

/* ── contact form: FORM-01 ─────────────────────────────── */

.cornice { display: block; }
.cornice-guts { padding-block: var(--y-sec); }

.cornice-lede {
  color: var(--k-soft-text);
  line-height: var(--l-relaxed);
  margin-block-end: var(--g-step-4);
}

.cornice-done {
  background: #143a24;
  border: var(--b-hair) solid #2d7a4a;
  border-radius: var(--r-step-3);
  color: var(--k-body);
  display: none;
  padding: var(--g-step-3);
}

.cornice-done.is-live { display: block; }

.cornice-form {
  background: var(--k-bg-elevated);
  border-radius: var(--r-step-3);
  box-shadow: var(--d-step-2);
  display: flex;
  flex-direction: column;
  gap: var(--g-step-3);
  padding: var(--g-step-4);
}

.cornice-entry {
  display: flex;
  flex-direction: column;
  gap: var(--g-step-1);
}

.cornice-badge {
  color: var(--k-body);
  font-size: var(--z-sm);
  font-weight: var(--w-mid);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
}

.cornice-input,
.cornice-area {
  background: var(--k-base-plane);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-3);
  color: var(--k-body);
  font-family: var(--f-base);
  font-size: var(--z-body);
  padding: var(--g-step-2);
  width: 100%;
}

.cornice-input { height: 48px; }

.cornice-area {
  min-height: 140px;
  resize: vertical;
}

.cornice-input:focus,
.cornice-area:focus { border-color: var(--k-beacon); }

.cornice-send {
  align-self: flex-start;
  background: var(--k-beacon);
  border: 0;
  border-radius: var(--r-step-3);
  color: var(--k-primary);
  cursor: pointer;
  font-family: var(--f-display);
  font-size: var(--z-h5);
  font-weight: var(--w-heavy);
  letter-spacing: var(--e-spread);
  min-height: 48px;
  padding-inline: var(--g-step-5);
  text-transform: uppercase;
  transition: background var(--t-quick) var(--x-out), transform var(--t-quick) var(--x-out);
}

.cornice-send:hover {
  background: var(--k-spot-deep);
  color: var(--k-primary);
  transform: translateY(2px);
}

/* ── author card: AUTH-02 ──────────────────────────────── */

.trefoil { display: block; }

.trefoil-guts {
  padding-block: var(--y-sec);
  text-align: center;
}

.trefoil-photo {
  border: var(--b-medium) solid var(--k-beacon);
  border-radius: var(--r-circle);
  height: 140px;
  margin: 0 auto var(--g-step-3);
  object-fit: cover;
  object-position: 58% 18%;
  width: 140px;
}

.trefoil-job {
  color: var(--k-beacon);
  display: block;
  font-size: var(--z-sm);
  font-weight: var(--w-mid);
  letter-spacing: var(--e-spread);
  margin-block-end: var(--g-step-1);
  text-transform: uppercase;
}

.trefoil-bio {
  color: var(--k-soft-text);
  line-height: var(--l-relaxed);
  margin: var(--g-step-2) auto;
  max-width: var(--v-narrow);
}

.trefoil-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--g-step-0);
  justify-content: center;
  list-style: none;
  margin: 0 auto;
  max-width: var(--v-narrow);
  padding: 0;
}

.trefoil-tag {
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-lozenge);
  color: var(--k-soft-text);
  font-size: var(--z-micro);
  padding: 8px var(--g-step-1);
}

.trefoil-posts {
  display: block;
  margin-block-start: var(--g-step-4);
  text-align: start;
}

.trefoil-postHdr { margin-block-end: var(--g-step-3); }

.trefoil-postRoll {
  display: grid;
  gap: var(--g-step-2);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.trefoil-postNode {
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-3);
  color: var(--k-soft-text);
  padding: var(--g-step-3);
}

.trefoil-postStep {
  display: block;
  font-family: var(--f-display);
  font-size: var(--z-sub-2);
  font-weight: var(--w-mid);
  margin-block-end: var(--g-step-0);
  text-decoration: none;
}

.trefoil-postSum {
  color: var(--k-soft-text);
  font-size: var(--z-sm);
  line-height: var(--l-regular);
  margin: 0;
}

/* ── byline: BYLINE-02 ─────────────────────────────────── */

.column {
  display: block;
  padding-block: var(--g-step-4);
}

.column-panel {
  align-items: flex-start;
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-3);
  color: var(--k-body);
  display: flex;
  gap: var(--g-step-2);
  margin-inline: auto;
  max-width: var(--v-narrow);
  padding: var(--g-step-3);
}

.column-photo {
  display: block;
  flex-shrink: 0;
}

.column-face {
  border-radius: var(--r-circle);
  height: 64px;
  object-fit: cover;
  object-position: 58% 18%;
  width: 64px;
}

.column-side { display: block; }

.column-badge {
  color: var(--k-soft-text);
  display: block;
  font-size: var(--z-micro);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
}

.column-person {
  font-family: var(--f-display);
  font-size: var(--z-sub-2);
  font-weight: var(--w-heavy);
  margin-block: 2px;
}

.column-person a {
  color: var(--k-body);
  text-decoration: none;
}

.column-person a:hover { color: var(--k-beacon); }

.column-job {
  color: var(--k-soft-text);
  font-size: var(--z-sm);
  margin: 0;
}

.column-bio {
  color: var(--k-soft-text);
  line-height: var(--l-regular);
  margin: var(--g-step-0) 0;
}

.column-step {
  color: var(--k-beacon);
  font-size: var(--z-sm);
  letter-spacing: var(--e-spread);
  text-decoration: none;
  text-transform: uppercase;
}

@media (max-width: 832px) {
  .column-panel { flex-direction: column; }
}

/* ── error block: ERR-08 ───────────────────────────────── */

.cloister { display: block; }

.cloister-guts {
  padding-block: var(--g-step-5);
  text-align: center;
}

.cloister-top {
  margin-inline: auto;
  max-width: var(--v-narrow);
}

.cloister-body {
  color: var(--k-soft-text);
  line-height: var(--l-relaxed);
  margin: var(--g-step-2) auto var(--g-step-3);
  max-width: var(--v-narrow);
}

.cloister-home {
  align-items: center;
  background: var(--k-beacon);
  border-radius: var(--r-step-3);
  color: var(--k-primary);
  display: inline-flex;
  font-family: var(--f-display);
  font-size: var(--z-h5);
  font-weight: var(--w-heavy);
  letter-spacing: var(--e-spread);
  min-height: 48px;
  padding-inline: var(--g-step-4);
  text-decoration: none;
  text-transform: uppercase;
}

.cloister-home:hover {
  background: var(--k-spot-deep);
  color: var(--k-primary);
}

.cloister-hints {
  background: var(--k-bg-elevated);
  border-radius: var(--r-step-3);
  display: block;
  margin-block-start: var(--g-step-4);
  padding: var(--g-step-4);
}

.cloister-hdr {
  font-size: var(--z-sub);
  margin-block-end: var(--g-step-2);
}

.cloister-roll {
  display: flex;
  flex-wrap: wrap;
  gap: var(--g-step-2);
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cloister-node { display: block; }

.cloister-step {
  color: var(--k-beacon);
  text-decoration: none;
}

.cloister-step:hover { text-decoration: underline; }

/* ── footer: FOOT-09 ───────────────────────────────────── */

.keystone {
  background: var(--k-primary);
  color: var(--k-body);
  display: block;
}

.keystone-guts {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--g-step-2) var(--g-step-3);
  justify-content: space-between;
  padding-block: var(--g-step-3);
}

.keystone-brand {
  align-items: center;
  display: inline-flex;
  flex-shrink: 0;
}

.keystone-plate {
  align-items: center;
  background: var(--k-fade-top);
  border-radius: var(--r-step-2);
  color: var(--k-primary);
  display: inline-flex;
  padding: 5px 10px;
}

.keystone-pic {
  height: 26px;
  width: auto;
}

.keystone-menu { display: block; }

.keystone-roll {
  display: flex;
  flex-wrap: wrap;
  gap: var(--g-step-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

.keystone-node { display: block; }

.keystone-step {
  color: var(--k-body);
  font-size: var(--z-sm);
  letter-spacing: var(--e-spread);
  text-decoration: none;
}

.keystone-step:hover { color: var(--k-beacon); }

.keystone-rules { display: block; }

.keystone-ruleRoll {
  display: flex;
  flex-wrap: wrap;
  gap: var(--g-step-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.keystone-ruleNode { display: block; }

.keystone-ruleStep {
  color: var(--k-soft-text);
  font-size: var(--z-micro);
  text-decoration: none;
}

.keystone-ruleStep:hover { color: var(--k-beacon); }

.keystone-note {
  color: var(--k-soft-text);
  display: block;
  flex-basis: 100%;
  font-size: var(--z-micro);
  line-height: var(--l-regular);
}

/* ── cookie banner: COOK-06 ────────────────────────────── */

.chevron {
  display: none;
  inset-block-end: calc(var(--h-rg) + 10px);
  inset-inline: 0;
  padding-inline: var(--v-pad-sm);
  position: fixed;
  z-index: 200;
}

.chevron.is-live { display: block; }

.chevron-slab {
  background: var(--k-bg-elevated);
  border: var(--b-hair) solid var(--k-edge-hard);
  border-radius: var(--r-step-3);
  box-shadow: var(--d-step-4);
  color: var(--k-body);
  display: flex;
  flex-wrap: wrap;
  gap: var(--g-step-2);
  align-items: center;
  justify-content: space-between;
  margin-inline: auto;
  max-width: var(--y-shelf);
  padding: var(--g-step-2) var(--g-step-3);
}

.chevron-notice {
  color: var(--k-soft-text);
  flex: 1 1 320px;
  font-size: var(--z-sm);
  line-height: var(--l-regular);
  margin: 0;
}

.chevron-deck {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--g-step-1);
}

.chevron-agree,
.chevron-refuse {
  border-radius: var(--r-step-3);
  cursor: pointer;
  font-family: var(--f-base);
  font-size: var(--z-sm);
  font-weight: var(--w-mid);
  min-height: 44px;
  padding-inline: var(--g-step-3);
}

.chevron-agree {
  background: var(--k-beacon);
  border: var(--b-hair) solid var(--k-beacon);
  color: var(--k-primary);
}

.chevron-agree:hover {
  background: var(--k-spot-deep);
  color: var(--k-primary);
}

.chevron-refuse {
  background: var(--k-primary);
  border: var(--b-hair) solid var(--k-edge-hard);
  color: var(--k-body);
}

.chevron-refuse:hover {
  background: var(--k-base-plane);
  color: var(--k-body);
}

.chevron-prefs {
  align-items: center;
  color: var(--k-beacon);
  display: inline-flex;
  font-size: var(--z-sm);
  min-height: 44px;
  padding-inline: var(--g-step-0);
  text-decoration: underline;
}

@media (max-width: 720px) {
  .chevron-prefs { min-height: 40px; }

  .chevron-slab {
    font-size: 13px;
    gap: 8px;
    line-height: 1.35;
    padding: 12px 14px;
  }

  .chevron-notice { font-size: 13px; }

  .chevron-agree,
  .chevron-refuse {
    font-size: 13px;
    min-height: 40px;
    padding-inline: var(--g-step-2);
  }
}

/* ── responsible gaming strip: RG-06 ───────────────────── */

.rg-banner {
  background: var(--k-rg-banner);
  color: var(--k-fade-top);
  display: block;
  font-size: var(--z-micro);
  inset-block-end: 0;
  inset-inline: 0;
  line-height: var(--l-regular);
  padding: 8px var(--v-pad-sm);
  pointer-events: none;
  position: fixed;
  text-align: center;
  z-index: 210;
}

.rg-mark {
  align-items: center;
  background: var(--k-fade-top);
  border-radius: var(--r-step-0);
  color: var(--k-rg-banner);
  display: inline-flex;
  font-weight: var(--w-mid);
  margin-inline-end: 6px;
  padding: 1px 5px;
}

.rg-step {
  color: var(--k-fade-top);
  pointer-events: auto;
  text-decoration: underline;
}

.rg-step:hover { color: var(--k-fade-top); }

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }

  [data-enter] {
    opacity: 1;
    transform: none;
  }
}

/* ── offer buttons ─────────────────────────────────────── */

.nave-press,
.dormer-press {
  align-self: flex-start;
  margin-block-start: var(--g-step-1);
}

.dormer-box .dormer-press,
.credenza-plug .dormer-press {
  box-shadow: 0 0 0 3px rgba(101, 163, 13, 0.22);
}

.panel-jump{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--g-step-4);min-height:48px;border-radius:var(--r-step-3);font-size:var(--z-h5);font-weight:var(--w-heavy);letter-spacing:var(--e-spread)}
.panel-jump{position:relative;
  background:#65A30D;color:#110C39;text-decoration:none;text-transform:uppercase;
  transition:background 0.14s linear,box-shadow 0.14s linear;}
.panel-jump.panel-jump{color:#110C39;text-decoration:none;}
.panel-jump:hover{background:#4D7C0F;color:#FFFFFF;animation:none}
.panel-jump.panel-jump:hover{color:#FFFFFF;text-decoration:none}
.panel-jump:hover::after{animation:none}
.panel-jump:active{background:#3F6212;color:#FFFFFF}
.panel-jump:focus-visible{outline:3px solid #110C39;outline-offset:3px}
@keyframes panel-flare{0%,100%{transform:scaleX(0)}40%,60%{transform:scaleX(1)}}
.panel-jump::after{content:"";position:absolute;left:12%;right:12%;bottom:6px;height:4px;background:currentColor;opacity:.5;transform-origin:left;animation:panel-flare 1.5s ease-out infinite}
@media (prefers-reduced-motion:reduce){.panel-jump,.panel-jump::after{animation:none!important;transition:none!important}}

