/* MyStake Casino — foglio di stile del sito */

@font-face {
  font-family: "Inter Roll";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/letterpress/inter-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Inter Roll";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/letterpress/inter-latin-400-italic.woff2") format("woff2");
}
@font-face {
  font-family: "Inter Roll";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/letterpress/inter-latin-500-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Inter Roll";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/letterpress/inter-latin-600-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Inter Roll";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/letterpress/inter-latin-700-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Montserrat Cut";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/letterpress/montserrat-latin-600-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Montserrat Cut";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/letterpress/montserrat-latin-700-normal.woff2") format("woff2");
}

:root {
  --hue-main: #7b30df;
  --hue-signal: #009ee8;
  --hue-accent-strong: #0095c5;
  --hue-back: #141516;
  --hue-raised: #1d1f21;
  --hue-fg: #ffffff;
  --hue-faint: #bfbfbf;
  --hue-divider: #2a2d30;
  --hue-stroke-heavy: #3a3e42;
  --hue-fade-top: #71daff;
  --hue-gradient-mid: #1bc3fd;
  --hue-age-band: #9f1239;

  --gap-2xs: 2px;
  --gap-xs: 6px;
  --gap-sm: 10px;
  --gap-md: 16px;
  --gap-lg: 48px;
  --gap-xl: 80px;
  --gap-2xl: 128px;
  --gap-3xl: 200px;

  --crn-2xs: 1px;
  --crn-xs: 2px;
  --crn-sm: 8px;
  --crn-md: 14px;
  --crn-lg: 22px;
  --crn-xl: 28px;
  --crn-2xl: 34px;
  --crn-3xl: 44px;
  --crn-pill: 9999px;
  --crn-circle: 50%;

  --typ-display: "Montserrat Cut", "Trebuchet MS", sans-serif;
  --typ-text: "Inter Roll", "Helvetica Neue", Arial, sans-serif;

  --ts-title: clamp(30px, 4.2vw, 52px);
  --ts-head: clamp(24px, 2.6vw, 32px);
  --ts-lg-2: clamp(20px, 1.9vw, 24px);
  --ts-md-2: 19px;
  --ts-sm-2: 16px;
  --ts-micro-head: 14px;
  --ts-body: 17px;
  --ts-small: 14px;
  --ts-xs: 12px;

  --ln-tight: 1.15;
  --ln-regular: 1.55;
  --ln-relaxed: 1.7;

  --wt-base: 400;
  --wt-half: 500;
  --wt-heavy: 700;

  --tr-close: 0;
  --tr-regular: 0;
  --tr-loose: 0.02em;

  --elev-2xs: 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  --elev-xs: 0 0 0 1px rgba(255, 255, 255, 0.06) inset;
  --elev-sm: 0 4px 12px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;
  --elev-md: 0 8px 24px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
  --elev-lg: 0 16px 48px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
  --elev-xl: 0 24px 64px rgba(0, 0, 0, 0.34), 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
  --elev-2xl: 0 32px 80px rgba(0, 0, 0, 0.38), 0 0 0 1px rgba(255, 255, 255, 0.14) inset;
  --elev-3xl: 0 40px 96px rgba(0, 0, 0, 0.42), 0 0 0 1px rgba(255, 255, 255, 0.14) inset;

  --spd-brisk: 192ms;
  --spd-mid: 390ms;
  --spd-long: 621ms;
  --bz-release: cubic-bezier(0.35, 0.56, 0.27, 0.95);
  --bz-smooth: cubic-bezier(0.58, 0.11, 0.56, 0.92);
  --bz-elastic: cubic-bezier(0.35, 1.7, 0.67, 1.05);

  --str-slim: 1px;
  --str-regular: 2px;
  --str-bold: 3px;

  --wrp-max: 1360px;
  --wrp-text: 1360px;
  --wrp-inset-desktop: 48px;
  --wrp-padding-tablet: 32px;
  --wrp-inset-mobile: 16px;

  --top-h-lg: 64px;
  --top-height-mobile: 56px;

  --dk-narrow: 460px;
  --dk-sec-y: 44px;
  --dk-rg: 34px;
}

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

html,
body {
  overflow-x: clip;
}

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

body {
  background: var(--hue-back);
  color: var(--hue-fg);
  display: flex;
  flex-direction: column;
  font-family: var(--typ-text);
  font-size: var(--ts-body);
  font-weight: var(--wt-base);
  line-height: var(--ln-regular);
  margin: 0;
  min-height: 100vh;
  padding: 0;
}

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

h1 {
  font-family: var(--typ-display);
  font-size: var(--ts-title);
  font-weight: var(--wt-heavy);
  letter-spacing: var(--tr-close);
  line-height: var(--ln-tight);
}

h2 {
  font-family: var(--typ-display);
  font-size: var(--ts-head);
  font-weight: var(--wt-heavy);
  line-height: var(--ln-tight);
}

h3 {
  font-family: var(--typ-text);
  font-size: var(--ts-lg-2);
  font-style: italic;
  font-weight: var(--wt-half);
  line-height: var(--ln-tight);
}

p {
  margin: 0;
}

img {
  max-width: 100%;
}

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

table {
  border-collapse: collapse;
}

/* ---------------------------------------------------------------- a11y */
.skip-hop {
  background: var(--hue-signal);
  border-radius: var(--crn-sm);
  color: var(--hue-back);
  font-weight: var(--wt-heavy);
  inset-inline-start: var(--gap-md);
  padding: var(--gap-sm) var(--gap-md);
  position: absolute;
  top: var(--gap-md);
  z-index: 90;
}

.skip-hop:not(:focus) {
  top: -200px !important;
}

.sr-only {
  clip: rect(0, 0, 0, 0);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

[data-emerge] {
  filter: blur(10px);
  opacity: 0;
  transform: translateY(10px);
  transition: filter var(--spd-mid) var(--bz-release), opacity var(--spd-mid) var(--bz-release), transform var(--spd-mid) var(--bz-release);
}

[data-emerge].is-in {
  filter: blur(0px);
  opacity: 1;
  transform: none;
}

/* ---------------------------------------------------------------- shared shell */
.arbor-body,
.armoire-body,
.credenza-body,
.gallery-body,
.kiosk-body,
.lectern-body,
.lozenge-body,
.medallion-body,
.nave-body,
.pillar-body,
.promenade-body,
.quayside-body,
.threshold-body,
.truss-body,
.vault-body {
  margin-inline: auto;
  max-width: calc(var(--wrp-max) + 2 * var(--wrp-inset-desktop));
  padding-inline: var(--wrp-inset-desktop);
  width: 100%;
}

.armoire,
.credenza,
.gallery,
.kiosk,
.lectern,
.medallion,
.pillar,
.promenade,
.quayside,
.threshold {
  padding-block: var(--dk-sec-y);
}

.shelf {
  display: block;
  flex: 1 0 auto;
}

/* ---------------------------------------------------------------- arbor (contact form) */
.arbor {
  padding-block: var(--dk-sec-y);
}

.arbor-area {
  min-height: 150px;
  resize: vertical;
}

.arbor-box {
  background: var(--hue-raised);
  border: var(--str-slim) solid var(--hue-divider);
  border-radius: var(--crn-md);
  color: var(--hue-fg);
  padding: var(--gap-lg);
}

.arbor-cap {
  color: var(--hue-faint);
  display: block;
  font-size: var(--ts-small);
  letter-spacing: var(--tr-loose);
  margin-block-end: var(--gap-xs);
}

.arbor-done {
  background: var(--hue-raised);
  border-inline-start: var(--str-bold) solid var(--hue-signal);
  color: var(--hue-fg);
  margin-block-start: var(--gap-md);
  padding: var(--gap-md);
}

.arbor-field {
  margin-block-end: var(--gap-md);
}

.arbor-form {
  display: block;
}

.arbor-input {
  background: var(--hue-back);
  border: var(--str-slim) solid var(--hue-stroke-heavy);
  border-radius: var(--crn-sm);
  color: var(--hue-fg);
  font-family: var(--typ-text);
  font-size: var(--ts-body);
  padding: var(--gap-sm) var(--gap-md);
  width: 100%;
}

.arbor-input:focus {
  border-color: var(--hue-signal);
  outline: var(--str-regular) solid var(--hue-signal);
}

.arbor-intro {
  color: var(--hue-faint);
  margin-block-end: var(--gap-lg);
}

.arbor-send {
  background: var(--hue-main);
  border: 0;
  border-radius: var(--crn-sm);
  color: var(--hue-fg);
  cursor: pointer;
  font-family: var(--typ-display);
  font-size: var(--ts-md-2);
  font-weight: var(--wt-heavy);
  height: 72px;
  letter-spacing: var(--tr-loose);
  text-transform: uppercase;
  width: 100%;
}

.arbor-send:hover {
  background: var(--hue-accent-strong);
  color: var(--hue-fg);
}

/* ---------------------------------------------------------------- armoire (author card) */
.armoire {
  background: linear-gradient(135deg, #2a1150, var(--hue-back));
  color: var(--hue-fg);
  padding-block-start: 96px;
}

.armoire-body {
  align-items: center;
  display: grid;
  gap: var(--gap-lg);
  grid-template-columns: 256px minmax(0, 1fr);
}

.armoire-caption {
  margin-block: var(--gap-sm);
}

.armoire-entry {
  color: var(--hue-faint);
  list-style: none;
  padding-block: var(--gap-xs);
  padding-inline-start: var(--gap-md);
  position: relative;
}

.armoire-entry::before {
  color: var(--hue-fade-top);
  content: "◆";
  font-size: var(--ts-xs);
  inset-inline-start: 0;
  position: absolute;
}

.armoire-eye {
  color: var(--hue-fade-top);
  display: block;
  font-size: var(--ts-small);
  letter-spacing: var(--tr-loose);
  text-transform: uppercase;
}

.armoire-media {
  border-radius: var(--crn-lg);
  box-shadow: var(--elev-lg);
  display: block;
  height: auto;
  width: 256px;
}

.armoire-note {
  color: var(--hue-fg);
  font-size: var(--ts-sm-2);
  line-height: var(--ln-regular);
  margin-block-end: var(--gap-md);
}

.armoire-roll {
  display: block;
}

.armoire-shot {
  overflow: hidden;
}

.armoire-stuff {
  display: block;
}

/* ---------------------------------------------------------------- bay (offer button) */
.bay-act {
  align-items: center;
  border: var(--str-slim) solid var(--hue-fade-top);
  border-radius: var(--crn-pill);
  display: inline-flex;
  font-size: var(--ts-small);
  font-weight: var(--wt-half);
  gap: 0.34em;
  justify-content: center;
  min-height: 44px;
  padding: 0 var(--gap-md);
}

.bay-act {
  animation: bay-ripple 2.01s var(--bz-smooth) infinite;
  background: #f59e0b;
  color: #141516;
  text-decoration: none;
  transition: background var(--spd-brisk) var(--bz-release), border-color var(--spd-brisk) var(--bz-release);
}

.bay-act.bay-act {
  color: #141516;
  text-decoration: none;
}

.bay-act:hover {
  animation: none;
  background: #b45309;
  color: #ffffff;
}

.bay-act.bay-act:hover {
  color: #ffffff;
  text-decoration: none;
}

.bay-act:active {
  background: #92400e;
  color: #ffffff;
}

.bay-act:focus-visible {
  outline: 3px solid #141516;
  outline-offset: 3px;
}

@keyframes bay-ripple {
  0% {
    transform: translateY(0);
  }
  13.93% {
    transform: translateY(-5px);
  }
  37.811%,
  100% {
    transform: translateY(0);
  }
}

.bay-belt {
  align-items: center;
  background: var(--hue-raised);
  border: var(--str-slim) solid var(--hue-stroke-heavy);
  border-radius: var(--crn-md);
  box-shadow: var(--elev-lg);
  color: var(--hue-fg);
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: var(--gap-md) 0;
  padding: var(--gap-sm);
  text-align: center;
}

.bay-sub.bay-sub {
  border: 0;
  color: var(--hue-fg);
  font-size: 0.9em;
  font-weight: 600;
  margin: 0;
  padding: 0;
}

.bay-warn.bay-warn {
  border: 0;
  color: var(--hue-faint);
  font-size: 0.9em;
  margin: 0;
  padding: 0;
}

.bay-tail {
  display: inline;
}

/* ---------------------------------------------------------------- beacon (18+ band) */
.beacon {
  background: var(--hue-raised);
  border-block-end: var(--str-slim) solid var(--hue-divider);
  color: var(--hue-fg);
  display: block;
  padding: var(--gap-xs) var(--gap-md);
  position: relative;
  text-align: center;
  z-index: 60;
}

.beacon-mark {
  align-items: center;
  background: var(--hue-age-band);
  border-radius: var(--crn-sm);
  color: #ffffff;
  display: inline-flex;
  font-size: var(--ts-xs);
  font-weight: var(--wt-heavy);
  justify-content: center;
  margin-inline-end: var(--gap-xs);
  min-height: 24px;
  min-width: 34px;
}

.beacon-note {
  color: var(--hue-fg);
  font-size: var(--ts-xs);
  line-height: var(--ln-regular);
}

.beacon-route {
  color: var(--hue-fade-top);
}

.beacon-route:hover {
  background: var(--hue-raised);
  color: var(--hue-fg);
}

/* ---------------------------------------------------------------- credenza (faq) */
.credenza {
  display: block;
}

.credenza-ask {
  align-items: start;
  cursor: pointer;
  display: grid;
  gap: var(--gap-md);
  grid-template-columns: 60px minmax(0, 1fr);
  list-style: none;
  padding-block: var(--gap-md);
}

.credenza-ask::-webkit-details-marker {
  display: none;
}

.credenza-body {
  display: block;
}

.credenza-caption {
  margin-block-end: var(--gap-md);
}

.credenza-entry {
  border-block-end: var(--str-slim) solid var(--hue-divider);
}

.credenza-num {
  color: var(--hue-fade-top);
  font-family: var(--typ-display);
  font-size: var(--ts-lg-2);
  font-weight: var(--wt-heavy);
}

.credenza-quest {
  display: flex;
  font-style: normal;
  gap: var(--gap-md);
  justify-content: space-between;
}

.credenza-roll {
  display: block;
}

.credenza-sign {
  color: var(--hue-fade-top);
  flex: 0 0 auto;
  font-family: var(--typ-display);
}

.credenza-stuff {
  color: var(--hue-faint);
  padding-block-end: var(--gap-md);
  padding-inline-start: calc(60px + var(--gap-md));
}

.credenza-entry[open] .credenza-sign {
  content: "";
  transform: rotate(45deg);
}

/* ---------------------------------------------------------------- desk (header) */
.desk {
  inset-inline: 0;
  position: absolute;
  top: var(--dk-rg);
  z-index: 40;
}

.desk-actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  gap: var(--gap-sm);
  margin-inline-start: auto;
}

.desk-cap {
  background: rgba(20, 21, 22, 0.6);
  border: var(--str-slim) solid var(--hue-stroke-heavy);
  border-radius: var(--crn-sm);
  color: var(--hue-fg);
  font-size: var(--ts-xs);
  letter-spacing: var(--tr-loose);
  padding: var(--gap-2xs) var(--gap-xs);
}

.desk-cell {
  background: var(--hue-fg);
  border-radius: var(--crn-2xs);
  display: block;
  height: 5px;
  width: 5px;
}

.desk-tail {
  display: inline;
}

.desk-goto {
  align-items: center;
  background: rgba(20, 21, 22, 0.72);
  gap: 0.34em;
  border: var(--str-slim) solid var(--hue-fade-top);
  border-radius: var(--crn-pill);
  color: var(--hue-fade-top);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: var(--ts-small);
  font-weight: var(--wt-half);
  min-height: 44px;
  padding-inline: var(--gap-md);
  text-decoration: none;
  white-space: nowrap;
}

.desk-goto:hover {
  background: var(--hue-fade-top);
  color: var(--hue-back);
}

.desk-index {
  flex: 0 1 auto;
  min-width: 0;
  overflow: visible;
}

.desk-line {
  align-items: center;
  display: flex;
  flex-wrap: nowrap;
  gap: var(--gap-md);
  margin-inline: auto;
  max-width: calc(var(--wrp-max) + 2 * var(--wrp-inset-desktop));
  min-height: 64px;
  padding-inline: 20px;
  position: relative;
}

.desk-media {
  display: block;
  height: 48px;
  width: auto;
}

.desk-menu-knob {
  align-items: center;
  background: rgba(20, 21, 22, 0.72);
  border: var(--str-slim) solid var(--hue-stroke-heavy);
  border-radius: var(--crn-sm);
  color: var(--hue-fg);
  cursor: pointer;
  display: none;
  flex: 0 0 auto;
  gap: 4px;
  grid-template-columns: repeat(2, auto);
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: var(--gap-sm);
}

.desk-more-knob {
  background: rgba(20, 21, 22, 0.6);
  border: var(--str-slim) solid var(--hue-stroke-heavy);
  border-radius: var(--crn-pill);
  color: var(--hue-fg);
  cursor: pointer;
  font-family: var(--typ-text);
  font-size: 16px;
  font-variant: small-caps;
  font-weight: 600;
  min-height: 44px;
  padding-inline: var(--gap-sm);
  white-space: nowrap;
}

.desk-more-knob:hover {
  background: var(--hue-raised);
  color: var(--hue-fade-top);
}

.desk-more-pane {
  background: var(--hue-raised);
  border: var(--str-slim) solid var(--hue-stroke-heavy);
  border-radius: var(--crn-md);
  box-shadow: var(--elev-md);
  display: none;
  inset-inline-end: 0;
  list-style: none;
  max-height: 70vh;
  min-width: 220px;
  overflow-y: auto;
  padding: var(--gap-sm);
  position: absolute;
  top: calc(100% + var(--gap-2xs));
  z-index: 50;
}

.desk-more-pane.is-open {
  display: block;
}

.desk-node {
  display: block;
  list-style: none;
}

.desk-node[hidden] {
  display: none;
}

.desk-node-more {
  list-style: none;
  position: relative;
}

.desk-node-more[hidden] {
  display: none;
}

.desk-pane {
  background: var(--hue-raised);
  border: var(--str-slim) solid var(--hue-stroke-heavy);
  border-radius: var(--crn-md);
  box-shadow: var(--elev-lg);
  display: none;
  inset-inline: var(--gap-sm);
  max-height: 74vh;
  overflow-y: auto;
  padding: var(--gap-sm);
  position: absolute;
  top: 100%;
  z-index: 55;
}

.desk-pane.is-open {
  display: block;
}

.desk-pane-index {
  display: block;
}

.desk-pane-node {
  display: block;
  list-style: none;
}

.desk-pane-roll {
  display: block;
  list-style: none;
}

.desk-pane-route {
  color: var(--hue-fg);
  display: block;
  font-size: var(--ts-sm-2);
  min-height: 44px;
  padding: var(--gap-sm) var(--gap-md);
  text-decoration: none;
}

.desk-pane-route:hover {
  background: var(--hue-back);
  color: var(--hue-fade-top);
}

.desk-pane-route[aria-current="page"] {
  color: var(--hue-fade-top);
  font-weight: var(--wt-heavy);
}

.desk-plate {
  align-items: center;
  background: rgba(20, 21, 22, 0.55);
  border-radius: var(--crn-md);
  color: var(--hue-fg);
  display: inline-flex;
  padding: var(--gap-xs) var(--gap-sm);
}

.desk-roll {
  align-items: center;
  display: flex;
  flex-wrap: nowrap;
  gap: var(--gap-sm);
  list-style: none;
}

.desk-route {
  color: var(--hue-fg);
  display: inline-flex;
  align-items: center;
  font-size: 16px;
  font-variant: small-caps;
  font-weight: 600;
  min-height: 44px;
  padding-inline: var(--gap-xs);
  text-decoration: none;
  white-space: nowrap;
}

.desk-route:hover {
  color: var(--hue-fade-top);
}

.desk-route[aria-current="page"] {
  color: var(--hue-fg);
  font-weight: var(--wt-heavy);
  text-shadow: 0 0 1px currentColor;
}

.desk-sign {
  display: inline-flex;
  flex-shrink: 0;
}

/* ---------------------------------------------------------------- gallery (inline cta) */
.gallery-body {
  text-align: center;
}

.gallery-caption {
  font-family: var(--typ-display);
  font-style: normal;
  margin-block-end: var(--gap-sm);
}

.gallery-mark {
  display: block;
  fill: currentColor;
  color: var(--hue-fade-top);
  height: 46px;
  margin-block-end: var(--gap-md);
  margin-inline: auto;
  width: 46px;
}

.gallery-note {
  color: var(--hue-faint);
  margin-block-end: var(--gap-md);
  margin-inline: auto;
  max-width: var(--dk-narrow);
}

/* ---------------------------------------------------------------- grove (footer) */
.grove {
  background: var(--hue-back);
  border-block-start: var(--str-slim) solid var(--hue-divider);
  color: var(--hue-fg);
  padding-block: var(--gap-xl);
}

.grove-body {
  display: flex;
  flex-direction: column;
  gap: var(--gap-lg);
  margin-inline: auto;
  max-width: calc(var(--wrp-max) + 2 * var(--wrp-inset-desktop));
  padding-inline: var(--wrp-inset-desktop);
  text-align: center;
  width: 100%;
}

.grove-index {
  display: block;
}

.grove-legal {
  color: var(--hue-faint);
  font-size: var(--ts-xs);
  letter-spacing: var(--tr-loose);
  text-transform: uppercase;
}

.grove-legal-route {
  color: var(--hue-faint);
  text-decoration: none;
}

.grove-legal-route:hover {
  background: var(--hue-back);
  color: var(--hue-fade-top);
}

.grove-media {
  display: block;
  height: 64px;
  margin-inline: auto;
  width: auto;
}

.grove-node {
  list-style: none;
}

.grove-note {
  color: var(--hue-faint);
  font-size: var(--ts-small);
  line-height: var(--ln-relaxed);
  margin-inline: auto;
  max-width: var(--dk-narrow);
}

.grove-roll {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap-md) var(--gap-lg);
  justify-content: center;
  list-style: none;
}

.grove-route {
  color: var(--hue-fg);
  font-family: var(--typ-display);
  font-size: var(--ts-body);
  font-weight: var(--wt-half);
  text-decoration: none;
}

.grove-route:hover {
  background: var(--hue-back);
  color: var(--hue-fade-top);
}

.grove-sign {
  display: block;
}

.grove-small {
  color: var(--hue-faint);
  font-size: var(--ts-xs);
}

/* ---------------------------------------------------------------- kiosk (prose) */
.kiosk-body {
  display: block;
}

.kiosk-caption {
  margin-block-end: var(--gap-md);
  margin-block-start: var(--gap-md);
}

.kiosk-figure {
  margin: var(--gap-md) 0;
}

.kiosk-figure-tall .kiosk-media {
  max-height: 56vh;
  object-fit: cover;
}

.kiosk-media {
  border-radius: var(--crn-md);
  display: block;
  height: auto;
  max-height: 46vh;
  object-fit: cover;
  width: 100%;
}

.kiosk-part {
  display: block;
  margin-block-end: var(--gap-lg);
}

.kiosk-part:last-child {
  margin-block-end: 0;
}

.kiosk-part p {
  border-inline-start: 4px dotted var(--hue-signal);
  color: var(--hue-fg);
  margin-block-end: var(--gap-md);
  padding-inline-start: var(--gap-md);
}

.kiosk-part:nth-child(even) p {
  border-inline-start-color: var(--hue-main);
}

.kiosk-part li {
  color: var(--hue-fg);
  margin-block-end: var(--gap-sm);
  padding-inline-start: var(--gap-sm);
}

.kiosk-push {
  border: 0 !important;
  padding-inline-start: 0 !important;
}

.kiosk-roll {
  list-style: none;
  margin-block: var(--gap-md);
  padding-inline-start: var(--gap-md);
}

.kiosk-roll li {
  position: relative;
  padding-inline-start: var(--gap-md);
}

.kiosk-roll li::before {
  color: var(--hue-fade-top);
  content: "◆";
  font-size: var(--ts-xs);
  inset-inline-start: 0;
  position: absolute;
}

.kiosk-route {
  color: var(--hue-fade-top);
}

.kiosk-route:hover {
  background: var(--hue-back);
  color: var(--hue-fg);
}

.kiosk-steps {
  counter-reset: kioskstep;
  list-style: none;
  margin-block: var(--gap-md);
  padding-inline-start: var(--gap-md);
}

.kiosk-steps li {
  counter-increment: kioskstep;
  padding-inline-start: calc(var(--gap-md) + var(--gap-sm));
  position: relative;
}

.kiosk-steps li::before {
  color: var(--hue-fade-top);
  content: counter(kioskstep) ".";
  font-family: var(--typ-display);
  font-weight: var(--wt-heavy);
  inset-inline-start: 0;
  position: absolute;
}

/* ---------------------------------------------------------------- lectern (404) */
.lectern-back {
  align-items: center;
  background: var(--hue-main);
  border-radius: var(--crn-pill);
  color: var(--hue-fg);
  display: inline-flex;
  font-weight: var(--wt-half);
  min-height: 44px;
  padding-inline: var(--gap-lg);
  text-decoration: none;
  width: fit-content;
}

.lectern-back:hover {
  background: var(--hue-accent-strong);
  color: var(--hue-fg);
}

.lectern-body {
  align-items: center;
  display: grid;
  gap: var(--gap-lg);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  overflow: hidden;
  padding-block-start: 96px;
}

.lectern-caption {
  margin-block-end: var(--gap-md);
}

.lectern-glyph {
  background: linear-gradient(135deg, var(--hue-fade-top), var(--hue-main));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-family: var(--typ-display);
  font-size: clamp(90px, 16vw, 240px);
  font-weight: var(--wt-heavy);
  line-height: var(--ln-tight);
}

.lectern-note {
  color: var(--hue-faint);
  margin-block-end: var(--gap-md);
}

.lectern-side {
  display: flex;
  flex-direction: column;
  gap: var(--gap-md);
}

/* ---------------------------------------------------------------- lozenge (byline) */
.lozenge {
  border-block-end: var(--str-slim) solid var(--hue-divider);
}

.lozenge-body {
  align-items: center;
  display: flex;
  gap: var(--gap-sm);
  padding-block: var(--gap-sm);
}

.lozenge-job {
  color: var(--hue-faint);
}

.lozenge-media {
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 50% 26%;
  transform: scale(1.5);
  width: 100%;
}

.lozenge-shot {
  border-radius: var(--crn-circle);
  display: block;
  flex: 0 0 auto;
  height: 34px;
  overflow: hidden;
  width: 34px;
}

.lozenge-sub {
  color: var(--hue-faint);
  font-size: var(--ts-small);
}

.lozenge-who {
  color: var(--hue-fade-top);
  text-decoration: none;
}

.lozenge-who:hover {
  background: var(--hue-back);
  color: var(--hue-fg);
  text-decoration: underline;
}

/* ---------------------------------------------------------------- medallion (reviews) */
.medallion-body {
  display: block;
}

.medallion-caption {
  margin-block-end: var(--gap-md);
}

.medallion-entry {
  border-block-end: var(--str-slim) solid var(--hue-divider);
  padding-block: var(--gap-md);
}

.medallion-line {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap-sm);
  margin-block-end: var(--gap-xs);
}

.medallion-note {
  color: var(--hue-fg);
  margin: 0;
}

.medallion-roll {
  display: block;
}

.medallion-score {
  color: var(--hue-fade-top);
  font-weight: var(--wt-heavy);
}

.medallion-stamp {
  color: var(--hue-faint);
  font-size: var(--ts-small);
  margin-inline-start: auto;
}

.medallion-who {
  color: var(--hue-fg);
  font-weight: var(--wt-heavy);
}

/* ---------------------------------------------------------------- nave (page header) */
.nave {
  display: block;
}

.nave-body {
  display: grid;
  gap: var(--gap-lg);
  grid-template-columns: 120px minmax(0, 1fr);
  padding-block-end: var(--dk-sec-y);
  padding-block-start: 96px;
}

.nave-caption {
  margin-block-start: var(--gap-xs);
}

.nave-eye {
  color: var(--hue-fade-top);
  font-size: var(--ts-small);
  letter-spacing: var(--tr-loose);
  text-transform: uppercase;
}

.nave-num {
  align-self: start;
  color: var(--hue-fade-top);
  font-family: var(--typ-display);
  font-size: clamp(42px, 5.9vw, 73px);
  font-weight: var(--wt-heavy);
  line-height: var(--ln-tight);
}

.nave-stuff {
  display: block;
}

/* ---------------------------------------------------------------- pillar (legal) */
.pillar-body {
  display: block;
}

.pillar-cap {
  color: var(--hue-fg);
  font-weight: var(--wt-heavy);
}

.pillar-def {
  color: var(--hue-faint);
  line-height: var(--ln-relaxed);
  margin-block-end: var(--gap-md);
  margin-inline-start: 0;
}

.pillar-def p {
  margin-block-end: var(--gap-sm);
}

.pillar-entry {
  color: var(--hue-faint);
  list-style: none;
  margin-block-end: var(--gap-sm);
  padding-inline-start: var(--gap-md);
  position: relative;
}

.pillar-entry::before {
  color: var(--hue-fade-top);
  content: "→";
  inset-inline-start: 0;
  position: absolute;
}

.pillar-intro {
  color: var(--hue-fg);
  margin-block-end: var(--gap-lg);
}

.pillar-note {
  background: var(--hue-raised);
  border-radius: var(--crn-md);
  color: var(--hue-faint);
  font-size: var(--ts-small);
  margin-block-start: var(--gap-lg);
  padding: var(--gap-md);
}

.pillar-roll {
  display: block;
  margin-block-start: var(--gap-md);
}

.pillar-stamp {
  color: var(--hue-faint);
  font-size: var(--ts-xs);
  margin-block-start: var(--gap-md);
}

.pillar-term {
  color: var(--hue-fg);
  font-family: var(--typ-display);
  font-size: var(--ts-md-2);
  font-weight: var(--wt-heavy);
  margin-block-end: var(--gap-xs);
  margin-block-start: var(--gap-lg);
  padding-block-start: var(--gap-sm);
  position: relative;
}

.pillar-term::before {
  background: var(--hue-fade-top);
  content: "";
  height: 2px;
  inset-block-start: 0;
  inset-inline-start: 0;
  position: absolute;
  width: 30px;
}

.pillar-terms {
  display: block;
  margin: 0;
}

/* ---------------------------------------------------------------- promenade (table) */
.promenade-body {
  display: block;
}

.promenade-cap {
  color: var(--hue-faint);
  font-family: var(--typ-display);
  font-size: var(--ts-md-2);
  font-style: italic;
  padding-block-end: var(--gap-md);
  position: relative;
  text-align: center;
}

.promenade-cap::before {
  background: var(--hue-fade-top);
  content: "";
  height: 2px;
  inset-block-start: -12px;
  inset-inline-start: 50%;
  margin-inline-start: -20px;
  position: absolute;
  width: 40px;
}

.promenade-grid {
  width: 100%;
}

.promenade-grid td {
  background: var(--hue-back);
  border-block-end: var(--str-slim) solid var(--hue-divider);
  color: var(--hue-faint);
  padding: var(--gap-md) var(--gap-sm);
  text-align: start;
}

.promenade-grid th {
  background: var(--hue-raised);
  border-block-end: var(--str-regular) solid var(--hue-fade-top);
  color: var(--hue-fg);
  font-family: var(--typ-display);
  font-size: var(--ts-small);
  letter-spacing: var(--tr-loose);
  padding: var(--gap-sm);
  text-align: start;
  text-transform: uppercase;
}

.promenade-scroll {
  overflow-x: auto;
}

/* ---------------------------------------------------------------- quayside (items grid) */
.quayside-badge {
  align-items: center;
  background: var(--hue-signal);
  border-radius: var(--crn-circle);
  color: var(--hue-back);
  display: inline-flex;
  font-family: var(--typ-display);
  font-size: var(--ts-md-2);
  font-weight: var(--wt-heavy);
  height: 56px;
  justify-content: center;
  margin-block-end: var(--gap-md);
  width: 56px;
}

.quayside-body {
  display: block;
}

.quayside-caption {
  margin-block-end: var(--gap-md);
}

.quayside-card {
  background: rgba(29, 31, 33, 0.72);
  backdrop-filter: blur(12px);
  border: var(--str-slim) solid var(--hue-divider);
  border-radius: var(--crn-md);
  box-shadow: var(--elev-sm);
  color: var(--hue-fg);
  padding: var(--gap-lg);
  transition: transform var(--spd-brisk) var(--bz-release);
}

.quayside-card:hover {
  transform: translateX(6px);
}

.quayside-card-caption {
  font-family: var(--typ-display);
  font-style: normal;
  font-weight: var(--wt-heavy);
  margin-block-end: var(--gap-sm);
}

.quayside-note {
  color: var(--hue-faint);
  line-height: var(--ln-regular);
}

.quayside-roll {
  align-items: start;
  display: grid;
  gap: var(--gap-md);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quayside-route {
  color: var(--hue-fade-top);
}

.quayside-route:hover {
  background: var(--hue-raised);
  color: var(--hue-fg);
}

/* ---------------------------------------------------------------- reel (cookie) */
.reel {
  margin-block: var(--gap-lg);
  margin-inline: auto;
  max-width: calc(var(--wrp-max) + 2 * var(--wrp-inset-desktop));
  opacity: 0;
  padding-inline: var(--wrp-inset-desktop);
  transition: opacity var(--spd-mid) var(--bz-release), clip-path var(--spd-mid) var(--bz-release);
  visibility: hidden;
  width: 100%;
}

.reel.is-in {
  clip-path: inset(0 0 0 0);
  opacity: 1;
  visibility: visible;
}

.reel.is-gone {
  opacity: 0;
  transform: translateX(120vw);
  visibility: hidden;
}

.reel-actions {
  display: flex;
  flex: 0 0 auto;
  gap: var(--gap-sm);
}

.reel-agree {
  background: var(--hue-signal);
  border: 0;
  border-radius: var(--crn-sm);
  color: var(--hue-back);
  cursor: pointer;
  font-family: var(--typ-text);
  font-size: var(--ts-small);
  font-weight: var(--wt-heavy);
  min-height: 44px;
  padding-inline: var(--gap-md);
  white-space: nowrap;
}

.reel-agree:hover {
  background: var(--hue-fade-top);
  color: var(--hue-back);
}

.reel-body {
  align-items: center;
  background: var(--hue-raised);
  border: var(--str-slim) solid rgba(255, 255, 255, 0.1);
  border-radius: var(--crn-md);
  color: var(--hue-fg);
  display: grid;
  gap: var(--gap-lg);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: var(--gap-lg);
}

.reel-copy {
  color: var(--hue-faint);
  font-size: var(--ts-small);
  line-height: var(--ln-regular);
}

.reel-dismiss {
  background: var(--hue-back);
  border: var(--str-slim) solid var(--hue-stroke-heavy);
  border-radius: var(--crn-sm);
  color: var(--hue-fg);
  cursor: pointer;
  font-family: var(--typ-text);
  font-size: var(--ts-small);
  min-height: 44px;
  padding-inline: var(--gap-md);
  white-space: nowrap;
}

.reel-dismiss:hover {
  background: var(--hue-stroke-heavy);
  color: var(--hue-fg);
}

.reel-mark {
  color: var(--hue-fade-top);
  fill: currentColor;
  float: inline-start;
  height: 22px;
  margin-inline-end: var(--gap-sm);
  width: 22px;
}

/* ---------------------------------------------------------------- threshold (cta block) */
.threshold-band {
  align-items: center;
  background: var(--hue-main);
  background-image: linear-gradient(135deg, var(--hue-signal), var(--hue-main));
  border-radius: var(--crn-md);
  color: var(--hue-fg);
  display: flex;
  justify-content: center;
  min-height: 400px;
  overflow: hidden;
}

.threshold-body {
  align-items: stretch;
  display: grid;
  gap: var(--gap-md);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.threshold-caption {
  margin-block-end: var(--gap-md);
}

.threshold-entry {
  align-items: center;
  color: var(--hue-faint);
  display: flex;
  gap: var(--gap-sm);
  list-style: none;
  margin-block-end: var(--gap-sm);
}

.threshold-glyph {
  color: var(--hue-fg);
  font-family: var(--typ-display);
  font-size: clamp(56px, 9vw, 120px);
  font-weight: var(--wt-heavy);
  line-height: var(--ln-tight);
}

.threshold-mark {
  color: var(--hue-fade-top);
  fill: currentColor;
  flex: 0 0 auto;
  height: 22px;
  width: 22px;
}

.threshold-note {
  color: var(--hue-faint);
  margin-block-end: var(--gap-md);
}

.threshold-roll {
  display: block;
  margin-block-end: var(--gap-lg);
}

.threshold-side {
  background: var(--hue-back);
  color: var(--hue-fg);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: var(--gap-lg);
  padding-inline-end: var(--gap-lg);
}

/* ---------------------------------------------------------------- truss (hero) */
.truss {
  display: block;
}

.truss-body {
  padding-block-end: var(--dk-sec-y);
  padding-block-start: 96px;
  text-align: center;
}

.truss-cap {
  color: var(--hue-faint);
  font-size: var(--ts-xs);
  font-style: italic;
  margin-inline: auto;
  max-width: var(--dk-narrow);
  padding-block-start: var(--gap-xs);
  text-align: center;
}

.truss-caption {
  margin-inline: auto;
  max-width: calc(var(--dk-narrow) * 1.85);
}

.truss-deck {
  color: var(--hue-faint);
  font-size: var(--ts-sm-2);
  font-style: italic;
  margin-block-start: var(--gap-md);
  margin-inline: auto;
  max-width: calc(var(--dk-narrow) * 1.3);
}

.truss-eye {
  color: var(--hue-fade-top);
  display: block;
  font-size: var(--ts-small);
  font-style: italic;
  margin-block-end: var(--gap-sm);
}

.truss-figure {
  margin: var(--gap-lg) 0 0;
}

.truss-figure-tall .truss-media {
  aspect-ratio: 16 / 9;
  max-height: 56vh;
}

.truss-media {
  aspect-ratio: 21 / 9;
  border-radius: var(--crn-md);
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.truss-sub {
  color: var(--hue-faint);
  font-size: var(--ts-xs);
  letter-spacing: var(--tr-loose);
  margin-block-start: var(--gap-md);
}

.truss-who {
  color: var(--hue-faint);
}

/* ---------------------------------------------------------------- vault (breadcrumbs) */
.vault + .nave .nave-body,
.vault + .truss .truss-body {
  padding-block-start: var(--dk-sec-y);
}

.vault {
  display: block;
}

.vault-body {
  padding-block: var(--gap-md);
  padding-block-start: 96px;
}

.vault-node {
  display: inline;
  list-style: none;
}

.vault-node + .vault-node::before {
  color: var(--hue-stroke-heavy);
  content: " / ";
}

.vault-now {
  color: var(--hue-fg);
  font-size: var(--ts-small);
}

.vault-roll {
  display: block;
  list-style: none;
}

.vault-route {
  color: var(--hue-faint);
  font-size: var(--ts-small);
  text-decoration: none;
}

.vault-route:hover {
  background: var(--hue-back);
  color: var(--hue-fade-top);
}

/* ---------------------------------------------------------------- viewport steps */
@media (max-width: 1136px) {
  .armoire-body,
  .lectern-body,
  .nave-body,
  .threshold-body {
    gap: var(--gap-md);
  }

  .arbor-body,
  .armoire-body,
  .credenza-body,
  .gallery-body,
  .kiosk-body,
  .lectern-body,
  .lozenge-body,
  .medallion-body,
  .nave-body,
  .pillar-body,
  .promenade-body,
  .quayside-body,
  .threshold-body,
  .truss-body,
  .vault-body,
  .grove-body {
    padding-inline: var(--wrp-padding-tablet);
  }

  .quayside-roll {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1000px) {
  .desk-index {
    display: none;
  }

  .desk-menu-knob {
    display: grid;
    margin-inline-start: 0;
    order: 4;
  }

  .desk-actions {
    order: 3;
  }

  .desk-line {
    gap: var(--gap-sm);
  }
}

@media (max-width: 832px) {
  .armoire-body,
  .lectern-body,
  .nave-body,
  .threshold-body {
    grid-template-columns: minmax(0, 1fr);
  }

  .armoire-media {
    width: 200px;
  }

  .lectern-glyph {
    font-size: clamp(80px, 26vw, 160px);
  }

  .nave-num {
    font-size: clamp(38px, 11vw, 56px);
  }

  .quayside-roll {
    grid-template-columns: minmax(0, 1fr);
  }

  .threshold-band {
    min-height: 200px;
  }

  .threshold-side {
    padding-inline-end: 0;
  }
}

@media (max-width: 720px) {
  .arbor-box {
    padding: var(--gap-md);
  }

  .arbor-body,
  .armoire-body,
  .credenza-body,
  .gallery-body,
  .kiosk-body,
  .lectern-body,
  .lozenge-body,
  .medallion-body,
  .nave-body,
  .pillar-body,
  .promenade-body,
  .quayside-body,
  .threshold-body,
  .truss-body,
  .vault-body,
  .grove-body {
    padding-inline: var(--wrp-inset-mobile);
  }

  .armoire,
  .lectern-body,
  .nave-body,
  .truss-body,
  .vault-body {
    padding-block-start: 84px;
  }

  .credenza-ask {
    gap: var(--gap-sm);
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .credenza-stuff {
    padding-inline-start: calc(34px + var(--gap-sm));
  }

  .desk-line {
    min-height: 56px;
    padding-inline: var(--gap-sm);
  }

  .desk-media {
    height: 34px;
  }

  .grove {
    padding-block: var(--gap-lg);
  }

  .grove-media {
    height: 48px;
  }

  .kiosk-media {
    max-height: 40vh;
  }

  .quayside-card {
    padding: var(--gap-md);
  }

  .reel,
  .reel-body {
    font-size: 13px !important;
    gap: 8px !important;
    line-height: 1.35 !important;
    padding: 12px 14px !important;
  }

  .reel {
    margin-block: var(--gap-md);
  }

  .reel-body {
    grid-template-columns: minmax(0, 1fr);
  }

  .reel-agree,
  .reel-dismiss {
    font-size: 12px !important;
    min-height: 36px !important;
    padding: 8px 14px !important;
    width: 100%;
  }
}

@media (max-width: 620px) {
  .promenade-grid {
    table-layout: fixed;
  }

  .promenade-grid td,
  .promenade-grid th {
    font-size: 13px;
    hyphens: auto;
    letter-spacing: 0;
    overflow-wrap: break-word;
    padding: var(--gap-sm) var(--gap-xs);
  }

  .promenade-grid td:first-child,
  .promenade-grid th:first-child {
    width: 30%;
  }

  .threshold-side {
    padding-block: var(--gap-md);
  }
}

@media (max-width: 480px) {
  .bay-tail,
  .desk-tail {
    display: none;
  }

  .desk-cap {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bay-act,
  .bay-act::after {
    animation: none !important;
    transition: none !important;
  }

  [data-emerge] {
    filter: none;
    opacity: 1;
    transform: none;
    transition: none;
  }

  .quayside-card,
  .reel {
    transition: none;
  }
}

@media (max-width: 519px) {
  .desk-index,
  .desk-roll,
  .desk-route { display: none !important; }
  .desk-more-knob { display: inline-block !important; }
}
