@font-face {
  font-family: "IBM Plex Sans";
  src: url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Sans";
  src: url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Sans";
  src: url("../fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Serif";
  src: url("../fonts/ibm-plex-serif-latin-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Serif";
  src: url("../fonts/ibm-plex-serif-latin-500-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

/* ============================================================
   METAMINT — DEFINED CAPACITY / TECHNICAL ARCHIVE
   Identity direction 02 · July 2026

   A final, deliberately separate layer over the original site.
   The system replaces digital-mint/SaaS cues with the visual
   language of measured capacity, commercial registers and
   controlled industrial records. The system is paper-led rather
   than dark-default, with cobalt used as a registration colour.
   ============================================================ */

:root {
  --ink-950: #101821;
  --ink-900: #151F2A;
  --ink-800: #1B2835;
  --ink-700: #2B3A48;
  --ink-600: #435462;

  --mist-50: #F4F3EE;
  --mist-100: #E9E8E2;
  --mist-200: #D4D6D2;

  --text-dark: #172028;
  --text-mid: #53606B;
  --text-light: #F7F6F1;
  --text-dim: #66737E;

  /* Cobalt is a registration / confirmation colour, not a tech glow. */
  --mint: #3658B5;
  --mint-deep: #29478F;
  --azure: #6E84AD;
  --violet: #6B688A;
  --amber: #D5B64B;
  --rose: #A75B62;

  --grad-brand: linear-gradient(90deg, #3658B5 0%, #3658B5 100%);
  --grad-soft: linear-gradient(90deg, rgba(54,88,181,.11), rgba(54,88,181,.03));
  --grad-hero: none;

  --glass-bg: rgba(250,250,247,.94);
  --glass-stroke: rgba(23,32,40,.16);
  --glass-bg-light: rgba(252,252,249,.92);
  --glass-stroke-light: rgba(23,32,40,.16);

  --radius-lg: 3px;
  --radius-md: 2px;
  --radius-sm: 1px;
  --shadow-deep: 0 30px 70px -48px rgba(0,0,0,.94);
  --shadow-soft: 0 22px 50px -38px rgba(17,27,42,.28);

  --font-display: "IBM Plex Serif", Georgia, serif;
  --font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
}

html { background: var(--mist-50); }

body {
  background: var(--mist-50);
  color: var(--text-dark);
  font-family: var(--font-body);
  letter-spacing: 0;
}

::selection { background: rgba(54,88,181,.24); color: var(--text-dark); }

:focus-visible {
  outline: 2px solid var(--mint);
  outline-offset: 4px;
}

h1,
h2,
.statement-h,
.sc-h {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -.034em;
}

h3,
h4 {
  font-family: var(--font-body);
  font-weight: 500;
  letter-spacing: -.018em;
  line-height: 1.12;
}

.display-xl { font-size: clamp(2.8rem, 5vw, 4.45rem); }
.display-lg { font-size: clamp(2.15rem, 3.7vw, 3.2rem); }
.display-md { font-size: clamp(1.55rem, 2.5vw, 2.1rem); }

.grad-text {
  background: none !important;
  color: var(--mint) !important;
  -webkit-text-fill-color: currentColor !important;
}

.section.light .grad-text,
.section.light .eyebrow { color: var(--mint-deep) !important; }

/* --- Primary MetaMint lock-up --- */

.logo {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  line-height: 0;
}

.logo-image {
  display: block;
  width: 166px;
  max-width: none;
  height: auto;
}

/* --- Navigation and controls --- */

.nav,
.nav.scrolled {
  background: rgba(16,18,16,.96);
  border-bottom-color: rgba(224,218,205,.15);
  box-shadow: none;
  backdrop-filter: blur(14px);
}

.nav-inner { height: 72px; }

.nav-links {
  color: #B8B8B0;
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .035em;
}

.nav-links a.active,
.nav-links a:hover { color: #F4F0E8; }

.nav-links a.active::after {
  height: 2px;
  background: var(--mint);
}

.btn {
  min-height: 44px;
  border-radius: 2px;
  font-family: var(--font-body);
  font-size: .86rem;
  font-weight: 500;
}

.btn-primary {
  border: 1px solid #5673C4;
  background: var(--mint);
  color: #17120F;
  box-shadow: none;
}

.btn-primary:hover {
  border-color: #29478F;
  background: #29478F;
  box-shadow: none;
  transform: translateY(-1px);
}

.btn-ghost {
  border-color: rgba(224,218,205,.24);
  border-radius: 2px;
}

.btn-ghost:hover {
  border-color: rgba(224,218,205,.48);
  background: rgba(240,237,230,.045);
}

.page-hero .btn-ghost { background: rgba(16,18,16,.94); }

.nav-member-login::before {
  border-color: var(--mint);
  background: rgba(54,88,181,.17);
  box-shadow: none;
}

/* --- Tags and register labels --- */

.eyebrow,
.mono-tag,
.panel-title,
.sc-kicker,
.mi-num {
  font-family: var(--font-mono);
  font-size: .66rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.eyebrow,
.mono-tag { color: #5572C2; }

.eyebrow::before {
  width: 32px;
  height: 1px;
  background: var(--mint);
}

.mono-tag {
  border-color: rgba(54,88,181,.47);
  border-radius: 1px;
  background: rgba(54,88,181,.045);
}

/* --- Compositional field --- */

.orb,
.aurora,
.jb-glow,
#journey-canvas { display: none !important; }

.page-hero {
  min-height: 680px;
  overflow: hidden;
  border-bottom: 1px solid rgba(224,218,205,.13);
  background: var(--ink-950);
}

.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .56;
  background:
    linear-gradient(90deg, transparent 0 50%, rgba(224,218,205,.035) 50% 50.08%, transparent 50.08%),
    linear-gradient(180deg, transparent 0 75%, rgba(224,218,205,.045) 75% 75.1%, transparent 75.1%);
}

.page-hero::after {
  content: "CAPACITY REGISTER  /  DEFINED INTERVAL";
  position: absolute;
  z-index: 0;
  top: 145px;
  right: max(32px, calc((100vw - var(--container)) / 2));
  width: min(38vw, 470px);
  height: 390px;
  box-sizing: border-box;
  border: 1px solid rgba(224,218,205,.12);
  background:
    linear-gradient(180deg, transparent 0 46%, rgba(54,88,181,.78) 46% 47%, transparent 47%),
    repeating-linear-gradient(90deg, transparent 0 46px, rgba(224,218,205,.075) 46px 47px),
    repeating-linear-gradient(180deg, transparent 0 46px, rgba(224,218,205,.055) 46px 47px);
  color: rgba(224,218,205,.42);
  font-family: var(--font-mono);
  font-size: .52rem;
  letter-spacing: .15em;
  padding: 12px;
  pointer-events: none;
}

/* A readable Time Slot instrument replaces the former abstract grid block. */
.page-hero::after { display: none; }

.hero-register {
  position: absolute;
  z-index: 1;
  top: 145px;
  right: max(32px, calc((100vw - var(--container)) / 2));
  width: min(38vw, 470px);
  overflow: hidden;
  border: 1px solid rgba(23,32,40,.2);
  background:
    linear-gradient(rgba(23,32,40,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23,32,40,.025) 1px, transparent 1px),
    #FAFAF7;
  background-size: 32px 32px;
  color: var(--text-dark);
  box-shadow: 18px 18px 0 rgba(17,27,42,.045);
  font-family: var(--font-mono);
}

.hero-register span {
  font-size: .56rem;
  font-weight: 500;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.hero-register strong {
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 500;
}

.hr-head,
.hr-supplier,
.hr-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 48px;
  padding: .75rem 1rem;
}

.hr-head {
  border-bottom: 2px solid var(--mint);
  background: #EEF1F8;
  color: var(--text-dark);
}

.hr-head span { color: #5F6C78; }
.hr-head strong { color: var(--mint-deep); }

.hr-supplier {
  border-bottom: 1px solid rgba(23,32,40,.14);
}

.hr-supplier span,
.hr-status > span { color: #66737E; }

.hr-window {
  display: grid;
  grid-template-columns: 1fr 1.18fr 1fr;
  border-bottom: 1px solid rgba(23,32,40,.14);
}

.hr-window > div {
  display: flex;
  min-height: 98px;
  padding: .9rem .75rem;
  flex-direction: column;
  justify-content: center;
  gap: .42rem;
  border-right: 1px solid rgba(23,32,40,.12);
  text-align: center;
}

.hr-window > div:last-child { border-right: 0; }
.hr-window span { color: #66737E; }

.hr-window .hr-hours {
  background: #E8ECF7;
  color: var(--mint-deep);
}

.hr-window .hr-hours strong {
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1;
}

.hr-window .hr-hours span { color: var(--mint-deep); }

.hr-track {
  position: relative;
  height: 52px;
  border-bottom: 1px solid rgba(23,32,40,.14);
}

.hr-track::before,
.hr-track::after {
  content: "";
  position: absolute;
  top: 25px;
  height: 2px;
}

.hr-track::before {
  left: 24px;
  right: 24px;
  background: rgba(23,32,40,.2);
}

.hr-track::after {
  left: 24px;
  right: 24px;
  background: var(--mint);
}

.hr-track i,
.hr-track b {
  position: absolute;
  z-index: 1;
  top: 19px;
  width: 12px;
  height: 12px;
  border: 2px solid var(--mint);
  background: #FAFAF7;
}

.hr-track i { left: 18px; }
.hr-track b { right: 18px; }

.hr-status {
  border-bottom: 1px solid rgba(23,32,40,.14);
}

.hr-status strong {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--mint-deep);
}

.hr-status strong i {
  width: 7px;
  height: 7px;
  background: var(--mint);
}

.hr-records {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(23,32,40,.12);
}

.hr-records span {
  padding: .72rem .55rem;
  background: #F4F5F3;
  color: #53606B;
  text-align: center;
}

.page-hero > .container,
.page-hero .hero-inner { position: relative; z-index: 1; }

.page-hero.hero-centered > .container[style*="text-align:center"] {
  width: min(920px, calc(100% - 64px));
  max-width: 920px !important;
  margin-inline: auto !important;
  text-align: center !important;
}

.page-hero.hero-centered > .container[style*="text-align:center"] h1,
.page-hero.hero-centered > .container[style*="text-align:center"] .lead {
  margin-inline: auto;
}

.page-hero.hero-centered > .container[style*="text-align:center"] .eyebrow,
.page-hero.hero-centered > .container[style*="text-align:center"] .btn-row {
  justify-content: center !important;
}

.page-hero > .container[style*="text-align:center"] { max-width: var(--container) !important; }
.page-hero > .container[style*="text-align:center"] h1 { max-width: 13ch; }
.page-hero > .container[style*="text-align:center"] .lead { max-width: 47ch; }

.hero-grid-lines {
  opacity: .22 !important;
  background-size: 48px 48px !important;
}

.journey-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .36;
  background:
    repeating-linear-gradient(90deg, transparent 0 79px, rgba(224,218,205,.026) 79px 80px),
    repeating-linear-gradient(180deg, transparent 0 79px, rgba(224,218,205,.021) 79px 80px);
}

.journey-line { background: rgba(224,218,205,.12); }
.journey-line i { background: var(--mint); }

.scene-pin { text-align: left; align-items: flex-start; }
.scene-pin > * { margin-inline: auto; }
.s1 .scene-pin { text-align: center; align-items: center; }

.sc-h { max-width: 22ch; }
.sc-sub { color: #B1B0A8; }

/* --- Panels, cards and documents --- */

.glass,
.float-panel,
.cal,
.res-card,
.invoice-mock,
.code-panel,
.viz-frame {
  border-radius: 2px;
}

.glass,
.float-panel,
.cal,
.res-card,
.code-panel {
  border-color: rgba(224,218,205,.17);
  background-color: rgba(24,28,24,.94);
  box-shadow: none;
}

.card {
  border-radius: 2px;
  box-shadow: none;
}

.card::after {
  width: 72px;
  height: 2px;
  background: var(--mint);
}

.card.glass:hover {
  border-color: rgba(54,88,181,.42);
  box-shadow: none;
  transform: translateY(-2px);
}

.card-icon {
  border-color: rgba(54,88,181,.43);
  border-radius: 1px;
}

.card-icon svg,
ul.checks svg { stroke: var(--mint); }

.section.light {
  border-block: 1px solid rgba(25,28,25,.14);
  background: var(--mist-50);
  color: var(--text-dark);
}

.section.light .card-light,
.card-light {
  border-color: rgba(25,28,25,.16);
  border-radius: 2px;
  background: rgba(248,246,239,.88);
  box-shadow: none;
}

.section.light .card::after { background: var(--mint-deep); }

.panel-title .dot,
.pill .dot { border-radius: 0; }

.pill,
.aud-tab,
.cal-head button,
.cal-day .slot {
  border-radius: 1px;
}

.aud-tab.active {
  border-color: var(--mint);
  background: var(--mint);
  color: #17120F;
}

/* --- Capacity objects and state language --- */

.ucell,
.slot-pill,
.cap-face,
.slot-layer {
  border-radius: 1px !important;
}

.ucell.full {
  border-color: #3658B5;
  background: var(--mint);
  box-shadow: none;
}

.cap-meter b,
.stat .num,
.step::before {
  color: var(--mint);
  background: none;
  -webkit-text-fill-color: currentColor;
}

.slot-pill {
  border-color: rgba(224,218,205,.17) !important;
  background: rgba(24,28,24,.91) !important;
  box-shadow: none !important;
}

.slot-pill.hot {
  border-color: var(--mint) !important;
  background: rgba(54,88,181,.1) !important;
}

.slot-pill .sp-s,
.slot-pill.hot .sp-s { color: #5572C2 !important; }

.doc-chip {
  border-color: rgba(112,135,147,.48);
  border-radius: 1px;
  background: rgba(112,135,147,.1);
  color: #BAC8CE;
}

.doc-chip::before { content: "REF"; font-family: var(--font-mono); font-size: .52rem; }

#rail-draw { stroke: var(--mint) !important; }
.settle-stage circle.audit-bead { fill: var(--mint) !important; }

.cap-face.lit {
  border-color: rgba(54,88,181,.74);
  background: rgba(54,88,181,.11);
  box-shadow: none;
}

.cap-core {
  border-radius: 1px;
  background: rgba(54,88,181,.8);
  filter: none;
}

.cap-shadow { background: rgba(54,88,181,.12); }
.cap-p { border-radius: 0; background: var(--mint); box-shadow: none; }
.cap-p.az { background: var(--azure); box-shadow: none; }
.cap-p.vi { background: var(--violet); box-shadow: none; }

.cap-ticks i { border-radius: 0; }
.cap-ticks i.on { background: var(--mint); box-shadow: none; }

.page-time-slots .slot-layer.core-l {
  border-color: rgba(41,71,143,.5);
  background: #E4E8F4;
}

.page-time-slots .slot-layer.core-l .sl-label { color: #29478F; }

.capacity-register {
  width: min(520px, 100%);
  margin-inline: auto;
  border: 1px solid rgba(25,28,25,.2);
  background: #E8E3D9;
  color: #252925;
  font-family: var(--font-mono);
  box-shadow: 18px 18px 0 rgba(25,28,25,.06);
}

.register-head,
.register-row,
.register-foot {
  display: grid;
  align-items: center;
  border-bottom: 1px solid rgba(25,28,25,.18);
}

.register-head {
  grid-template-columns: 1fr auto;
  padding: .85rem 1rem;
  background: #252925;
  color: #E9E4DB;
  font-size: .58rem;
  letter-spacing: .15em;
}

.register-row {
  grid-template-columns: 88px 1fr auto;
  min-height: 62px;
  padding: .7rem 1rem;
  gap: 1rem;
}

.register-row > span {
  color: #6A6F68;
  font-size: .55rem;
  letter-spacing: .12em;
}

.register-row strong {
  font-family: var(--font-body);
  font-size: .84rem;
  font-weight: 500;
}

.register-row i {
  min-width: 76px;
  padding: .28rem .4rem;
  border: 1px solid rgba(41,71,143,.45);
  background: rgba(54,88,181,.09);
  color: #29478F;
  font-size: .48rem;
  font-style: normal;
  letter-spacing: .1em;
  text-align: center;
}

.register-foot {
  display: block;
  padding: .8rem 1rem;
  border-bottom: 0;
  color: #6A6F68;
  font-size: .55rem;
  letter-spacing: .08em;
}

.tl-bar.open,
.slot-open,
.pill-open { color: #29478F; background: rgba(54,88,181,.14); border-color: rgba(54,88,181,.42); }
.tl-bar.held,
.slot-held,
.pill-held { color: #D5B476; background: rgba(194,154,89,.13); border-color: rgba(194,154,89,.4); }
.tl-bar.booked,
.slot-booked,
.pill-booked { color: #AFC0C8; background: rgba(112,135,147,.15); border-color: rgba(112,135,147,.42); }
.pill-done { color: #B9B1BA; background: rgba(130,119,129,.14); }

/* Normalise legacy digital-blue / mint SVG accents. */
[fill="#2EE6A8"],
[fill="#67D6AE"] { fill: var(--mint) !important; }
[stroke="#2EE6A8"],
[stroke="#67D6AE"] { stroke: var(--mint) !important; }
[fill="#4D8DFF"],
[fill="#7898D8"] { fill: var(--azure) !important; }
[stroke="#4D8DFF"],
[stroke="#7898D8"] { stroke: var(--azure) !important; }
[fill="#8B6CF6"],
[fill="#8A80B4"] { fill: var(--violet) !important; }
[stroke="#8B6CF6"],
[stroke="#8A80B4"] { stroke: var(--violet) !important; }

/* --- Indexes, CTA and footer --- */

.mi-row { border-bottom-color: rgba(224,218,205,.16); }
.mi-row h3 { font-family: var(--font-display); font-weight: 400; }
.mi-row:hover h3 { color: var(--mint); }

.mi-arrow {
  border-radius: 1px;
  border-color: rgba(224,218,205,.24);
}

.mi-row:hover .mi-arrow { background: var(--mint); color: #17120F; }

.cta-band {
  border-color: rgba(224,218,205,.18);
  border-radius: 2px;
  background: #191D19;
}

.cta-band::before {
  background:
    linear-gradient(90deg, rgba(54,88,181,.12), transparent 32%),
    repeating-linear-gradient(90deg, transparent 0 47px, rgba(224,218,205,.035) 47px 48px);
}

.footer {
  border-top-color: rgba(224,218,205,.15);
  background: #0D0F0D;
}

.footer h5 { color: #AFC0F2; }

/* --- Forms and login --- */

.form-field input,
.form-field select,
.form-field textarea {
  border-color: rgba(224,218,205,.2);
  border-radius: 1px;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color: var(--mint);
  box-shadow: 0 0 0 2px rgba(54,88,181,.12);
}

.login-panel,
.recovery-dialog { border-radius: 2px; }

@media (max-width: 1020px) {
  .hero-register { right: 32px; width: 36vw; }
}

@media (max-width: 768px) {
  .display-xl { font-size: clamp(2.55rem, 11vw, 3.35rem); }

  .page-hero {
    min-height: 650px;
    padding-bottom: 5rem;
  }

  .page-hero.with-register {
    min-height: auto;
    padding-bottom: 2.5rem;
  }

  .hero-register {
    position: relative;
    top: auto;
    right: auto;
    width: auto;
    margin: 2.5rem 16px 0;
    box-shadow: 10px 10px 0 rgba(17,27,42,.04);
  }

  .page-hero > .container[style*="text-align:center"] h1,
  .hero-copy h1 { max-width: 14ch; }

  .nav-inner { height: 66px; }
  .scene-pin { text-align: center; align-items: center; }
}

@media (max-width: 560px) {
  .logo-image { width: 146px; }
  .page-hero { padding-top: 7.8rem; }
  .mono-tag { max-width: 100%; }
  .register-row { grid-template-columns: 68px 1fr; gap: .6rem; }
  .register-row i { grid-column: 2; justify-self: start; }
}

/* ============================================================
   LIGHT TECHNICAL ARCHIVE
   Mineral paper, blue-black type and institutional cobalt.
   Deep navy is reserved for bounded contrast fields only.
   ============================================================ */

body,
.journey {
  background: var(--mist-50);
  color: var(--text-dark);
}

p,
.lead,
.sc-sub,
.mi-desc,
.cap-meter span,
.cap-dim p { color: var(--text-mid); }

.nav,
.nav.scrolled {
  background: rgba(247,246,241,.95);
  border-bottom-color: rgba(23,32,40,.16);
  box-shadow: 0 8px 28px -26px rgba(17,27,42,.7);
}

.nav-links { color: #5C6872; }
.nav-links a.active,
.nav-links a:hover { color: var(--text-dark); }

.nav-member-login {
  color: var(--text-dark);
  border-color: rgba(23,32,40,.24);
}

.nav-member-login:hover,
.nav-member-login.active {
  color: var(--mint-deep);
  border-color: rgba(54,88,181,.42);
  background: rgba(54,88,181,.06);
}

.nav-member-login::before {
  border-color: var(--mint);
  background: rgba(54,88,181,.12);
}

.nav-burger span { background: var(--text-dark); }

.mobile-menu {
  background: rgba(247,246,241,.99);
  color: var(--text-dark);
  border-bottom-color: rgba(23,32,40,.14);
}

.mobile-menu a { border-bottom-color: rgba(23,32,40,.1); }

.btn-primary {
  border-color: var(--mint);
  background: var(--mint);
  color: #FFFFFF;
}

.btn-primary:hover {
  border-color: #29478F;
  background: #29478F;
}

.btn-ghost {
  border-color: rgba(23,32,40,.24);
  color: var(--text-dark);
  background: rgba(255,255,255,.26);
}

.btn-ghost:hover {
  border-color: rgba(54,88,181,.48);
  color: var(--mint-deep);
  background: rgba(54,88,181,.055);
}

.page-hero .btn-ghost {
  background: rgba(252,252,249,.74);
}

.eyebrow,
.mono-tag { color: var(--mint-deep); }

.mono-tag {
  border-color: rgba(54,88,181,.36);
  background: rgba(54,88,181,.045);
}

.page-hero {
  border-bottom-color: rgba(23,32,40,.14);
  background: var(--mist-50);
  color: var(--text-dark);
}

.page-hero::before {
  opacity: 1;
  background:
    linear-gradient(90deg, transparent 0 50%, rgba(23,32,40,.05) 50% 50.08%, transparent 50.08%),
    linear-gradient(180deg, transparent 0 75%, rgba(23,32,40,.055) 75% 75.1%, transparent 75.1%),
    linear-gradient(105deg, rgba(54,88,181,.035), transparent 42%);
}

.page-hero::after {
  border-color: rgba(23,32,40,.14);
  background:
    linear-gradient(180deg, transparent 0 46%, rgba(54,88,181,.82) 46% 47%, transparent 47%),
    repeating-linear-gradient(90deg, transparent 0 46px, rgba(23,32,40,.075) 46px 47px),
    repeating-linear-gradient(180deg, transparent 0 46px, rgba(23,32,40,.06) 46px 47px);
  color: rgba(23,32,40,.5);
}

.hero-grid-lines {
  opacity: .52 !important;
  background-image:
    linear-gradient(rgba(23,32,40,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23,32,40,.045) 1px, transparent 1px) !important;
}

.journey-bg::before {
  opacity: 1;
  background:
    repeating-linear-gradient(90deg, transparent 0 79px, rgba(23,32,40,.025) 79px 80px),
    repeating-linear-gradient(180deg, transparent 0 79px, rgba(23,32,40,.021) 79px 80px);
}

.journey-line { background: rgba(23,32,40,.1); }
.sc-sub { color: var(--text-mid); }
.scroll-hint { color: #68747D; }
.scroll-hint::after { background: rgba(23,32,40,.42); }

.ucell-row,
.slot-row,
.settle-stage {
  border-color: rgba(23,32,40,.16);
  background: rgba(250,250,247,.82);
}

.ucell {
  border-color: rgba(23,32,40,.2);
  background:
    linear-gradient(to bottom, transparent 72%, rgba(23,32,40,.06) 72%),
    #F8F8F4;
}

.ucell::before,
.ucell::after { color: #65717B; }
.ucell.full { border-color: var(--mint); background: var(--mint); }
.ucell.full::before,
.ucell.full::after { color: #FFFFFF; }
.cap-meter { border-top-color: rgba(23,32,40,.13); }

.slot-pill {
  border-color: rgba(23,32,40,.14) !important;
  background: rgba(252,252,249,.92) !important;
  color: var(--text-dark);
}

.slot-pill::before { background: rgba(23,32,40,.14); }
.slot-pill.hot {
  border-color: rgba(54,88,181,.44) !important;
  background: rgba(54,88,181,.075) !important;
}
.slot-pill .sp-s,
.slot-pill.hot .sp-s { color: var(--mint-deep) !important; }

.doc-chip {
  border-color: rgba(54,88,181,.32);
  background: #EDF0F8;
  color: #293B6D;
}

.settle-stage::before,
.layer-map::before { color: #66737E; }

.layer-map {
  border-color: rgba(23,32,40,.15);
  background-color: rgba(250,250,247,.44);
  background-image:
    linear-gradient(rgba(23,32,40,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23,32,40,.035) 1px, transparent 1px);
}

.layer-map ellipse:first-of-type { stroke: rgba(54,88,181,.48); }
.layer-map ellipse { stroke: rgba(23,32,40,.2); }

.cap-face {
  border-color: rgba(23,32,40,.2);
  background:
    linear-gradient(90deg, rgba(54,88,181,.055), transparent 28%),
    rgba(249,249,245,.96);
  box-shadow: inset 0 1px rgba(255,255,255,.9), 0 28px 60px -46px rgba(17,27,42,.56);
}

.cap-face::before { color: #64717C; }
.cap-face::after {
  background: rgba(23,32,40,.13);
  box-shadow: 0 6px rgba(23,32,40,.05), 0 12px rgba(23,32,40,.05);
}
.cap-face h4 { color: var(--mint-deep); }
.cap-face small { color: #4E5C67; }
.cap-face.lit {
  border-color: rgba(54,88,181,.7);
  background:
    linear-gradient(90deg, rgba(54,88,181,.14), transparent 36%),
    #F6F7FA;
}
.cap-core { background: var(--mint); }
.cap-shadow { background: radial-gradient(ellipse, rgba(54,88,181,.13), transparent 72%); }
.cap-ticks i { background: rgba(23,32,40,.15); }

.glass,
.float-panel,
.cal,
.res-card,
.code-panel,
.viz-frame {
  border-color: rgba(23,32,40,.16);
  background-color: rgba(252,252,249,.9);
  color: var(--text-dark);
}

.card p,
.glass p,
.float-panel p,
.res-card p,
.code-panel p { color: var(--text-mid); }

.card.glass:hover {
  border-color: rgba(54,88,181,.42);
  box-shadow: 0 20px 42px -38px rgba(24,48,116,.52);
}

.card-icon {
  border-color: rgba(54,88,181,.38);
  background: rgba(54,88,181,.045);
}

.section.light,
.section:not(.deep),
.module-section {
  border-color: rgba(23,32,40,.13);
  background: var(--mist-50);
  color: var(--text-dark);
}

.section.light:nth-of-type(even) { background: #ECEDE9; }

.section.light .card-light,
.card-light,
.invoice-mock,
.capacity-register {
  border-color: rgba(23,32,40,.17);
  background: #FAFAF7;
  color: var(--text-dark);
}

.section.deep {
  border-color: rgba(255,255,255,.1);
  background: var(--ink-900);
  color: var(--text-light);
}

.section.deep h1,
.section.deep h2,
.section.deep h3,
.section.deep h4 { color: var(--text-light); }

.section.deep p,
.section.deep .lead,
.section.deep .card p,
.section.deep ul.checks li { color: #B9C3CC; }

.section.deep .eyebrow,
.section.deep .mono-tag { color: #A9BAEE; }

.section.deep .mono-tag {
  border-color: rgba(149,170,229,.36);
  background: rgba(149,170,229,.07);
}

.section.deep .glass,
.section.deep .card.glass,
.section.deep .code-panel,
.section.deep .viz-frame {
  border-color: rgba(231,237,243,.16);
  background: rgba(24,36,49,.92);
  color: var(--text-light);
}

.section.deep .cal,
.section.deep .res-card {
  border-color: rgba(225,231,236,.22);
  background: #F8F8F4;
  color: var(--text-dark);
}

.section.deep .res-card h4 { color: var(--text-dark); }
.section.deep .res-meta span { color: #5C6872; }
.section.deep .res-meta svg { stroke: #687783; }
.section.deep .res-links { border-top-color: rgba(23,32,40,.12); }
.section.deep .res-links a,
.section.deep .res-links span { color: var(--mint-deep); }

.section.deep > .container > .grid-2 .pill-open {
  color: #C7D4FA;
  background: rgba(54,88,181,.25);
  border-color: rgba(141,163,224,.42);
}
.section.deep > .container > .grid-2 .pill-held {
  color: #F0D87B;
  background: rgba(213,182,75,.14);
  border-color: rgba(213,182,75,.34);
}
.section.deep > .container > .grid-2 .pill-booked {
  color: #D3DCF4;
  background: rgba(110,132,173,.24);
  border-color: rgba(150,169,207,.34);
}
.section.deep > .container > .grid-2 .pill-done {
  color: #D8D4E8;
  background: rgba(107,104,138,.23);
  border-color: rgba(154,151,186,.3);
}

.section.deep .res-card .pill-open {
  color: #29478F;
  background: rgba(54,88,181,.1);
  border-color: rgba(54,88,181,.34);
}
.section.deep .res-card .pill-held {
  color: #66530A;
  background: rgba(213,182,75,.19);
  border-color: rgba(171,139,28,.38);
}
.section.deep .res-card .pill-booked {
  color: #405879;
  background: rgba(110,132,173,.16);
  border-color: rgba(81,106,151,.35);
}
.section.deep .res-card .pill-done {
  color: #595776;
  background: rgba(107,104,138,.13);
  border-color: rgba(107,104,138,.28);
}

.section.deep .card-icon {
  border-color: rgba(149,170,229,.34);
  background: rgba(149,170,229,.07);
}

.capacity-register {
  box-shadow: 18px 18px 0 rgba(17,27,42,.055);
}

.register-head {
  border-bottom: 2px solid var(--mint);
  background: #EEF1F8;
  color: var(--text-dark);
}

.register-row,
.register-head { border-bottom-color: rgba(23,32,40,.16); }
.register-row > span,
.register-foot { color: #68747D; }
.register-row i {
  border-color: rgba(54,88,181,.38);
  background: rgba(54,88,181,.075);
  color: var(--mint-deep);
}

.page-time-slots .slot-layer.core-l {
  border-color: rgba(54,88,181,.44);
  background: #E4E8F4;
}
.page-time-slots .slot-layer.core-l .sl-label { color: #29478F; }

.tl-bar.open,
.slot-open,
.pill-open {
  color: #29478F;
  background: rgba(54,88,181,.1);
  border-color: rgba(54,88,181,.36);
}
.tl-bar.held,
.slot-held,
.pill-held {
  color: #66530A;
  background: rgba(213,182,75,.18);
  border-color: rgba(171,139,28,.38);
}
.tl-bar.booked,
.slot-booked,
.pill-booked {
  color: #405879;
  background: rgba(110,132,173,.14);
  border-color: rgba(81,106,151,.35);
}
.pill-done {
  color: #595776;
  background: rgba(107,104,138,.12);
}

.mi-row {
  border-bottom-color: rgba(23,32,40,.15);
  color: var(--text-dark);
}
.mi-row h3 { color: var(--text-dark); }
.mi-num { color: var(--mint-deep); }
.mi-desc { color: var(--text-mid); }
.mi-arrow { border-color: rgba(23,32,40,.24); }
.mi-row:hover .mi-arrow { background: var(--mint); color: #FFFFFF; }

.epilogue {
  border-block-color: rgba(23,32,40,.13);
  background: #E9EBE8;
  color: var(--text-dark);
}

.cta-band {
  border-color: rgba(23,32,40,.17);
  background: #FAFAF7;
  color: var(--text-dark);
}
.cta-band p { color: var(--text-mid); }
.cta-band::before {
  background:
    linear-gradient(90deg, rgba(54,88,181,.08), transparent 32%),
    repeating-linear-gradient(90deg, transparent 0 47px, rgba(23,32,40,.035) 47px 48px);
}

.footer {
  border-top-color: rgba(255,255,255,.12);
  background: var(--ink-950);
  color: var(--text-light);
}
.footer .logo-image { width: 178px; }
.footer-brand p,
.footer-col a,
.footer-bottom { color: #AEB9C2; }
.footer h5 { color: #AFC0F2; }
.footer-col a:hover { color: #FFFFFF; }
.footer-bottom { border-top-color: rgba(255,255,255,.11); }

.form-field label { color: #4E5B65; }
.form-field input,
.form-field select,
.form-field textarea {
  border-color: rgba(23,32,40,.2);
  background: #FCFCF9;
  color: var(--text-dark);
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color: var(--mint);
  box-shadow: 0 0 0 2px rgba(54,88,181,.12);
}
.form-field select option { background: #FCFCF9; color: var(--text-dark); }

.login-panel,
.recovery-dialog {
  border-color: rgba(23,32,40,.17);
  background: #FAFAF7;
  color: var(--text-dark);
}

@media (max-width: 768px) {
  .page-hero.with-register { display: block; }
  .page-hero.with-register > .container { width: auto; }
  .page-hero.hero-centered > .container[style*="text-align:center"] {
    width: auto;
    max-width: none !important;
    margin-inline: 0 !important;
  }
  .slot-pill { border-bottom-color: rgba(23,32,40,.12) !important; }
}

/* Final alignment discipline: centred proposition pages and journey copy. */
.page-hero.hero-centered > .container[style*="text-align:center"] h1 {
  max-width: 16ch !important;
  margin-inline: auto !important;
  text-align: center !important;
}

.page-hero.hero-centered > .container[style*="text-align:center"] .lead {
  max-width: 68ch !important;
  margin-inline: auto !important;
  text-align: center !important;
}

.journey .scene-pin {
  align-items: center !important;
  text-align: center !important;
}

.journey .scene-pin > * {
  margin-inline: auto;
}

.journey .sc-h {
  max-width: 28ch;
  text-align: center;
}

.journey .sc-sub {
  max-width: 68ch;
  margin-inline: auto;
  text-align: center;
}

/* Contact and member access: light technical panels. */
.page-contact .page-hero .glass,
.page-contact .page-hero > .container > .glass {
  border-color: rgba(23,32,40,.18);
  background: #FAFAF7;
  color: var(--text-dark);
  box-shadow: 14px 14px 0 rgba(17,27,42,.035);
}

.page-contact .page-hero .hero-copy > div .glass::after {
  background: var(--mint);
}

.page-contact .page-hero .glass .card-icon {
  border-color: rgba(54,88,181,.32);
  background: #EEF1F8;
}

.page-contact .page-hero .glass a,
.page-contact .page-hero .glass span { color: var(--text-mid) !important; }

.page-contact .page-hero .glass h3,
.page-contact .page-hero .glass [style*="font-weight:600"] { color: var(--text-dark); }

.page-contact .page-hero > .container > .glass {
  border-top: 2px solid var(--mint);
}

.page-login,
.login-shell {
  background: var(--mist-50);
  color: var(--text-dark);
}

.login-shell {
  border-bottom: 1px solid rgba(23,32,40,.14);
  background:
    linear-gradient(112deg, rgba(54,88,181,.045), transparent 42%),
    var(--mist-50);
}

.login-shell::before {
  opacity: 1;
  background-image:
    linear-gradient(rgba(23,32,40,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23,32,40,.028) 1px, transparent 1px);
  mask-image: none;
  -webkit-mask-image: none;
}

.login-copy h1 { color: var(--text-dark); }
.login-copy .lead { color: var(--text-mid); }
.login-access-line { color: #66737E; }

.login-panel {
  border: 1px solid rgba(23,32,40,.2);
  border-top: 2px solid var(--mint);
  background: #FAFAF7;
  color: var(--text-dark);
  box-shadow: 18px 18px 0 rgba(17,27,42,.045);
}

.login-panel::before {
  border-bottom-color: rgba(23,32,40,.12);
  color: #66737E;
}

.login-panel h2 { color: var(--text-dark); }
.login-panel-intro { color: var(--text-mid); }
.login-form .form-field label { color: #4E5B65; }

.login-recovery { color: #68747D; }
.login-recovery span {
  color: var(--mint-deep);
  border-bottom-color: rgba(54,88,181,.35);
}

.login-error {
  border-color: rgba(167,91,98,.42);
  background: rgba(167,91,98,.07);
  color: #833E47;
}

.login-error::before { border-color: rgba(167,91,98,.58); }

.recovery-backdrop {
  background: rgba(17,27,42,.42);
}

.recovery-dialog {
  border-color: rgba(23,32,40,.2);
  border-top: 2px solid var(--mint);
  background: #FAFAF7;
  color: var(--text-dark);
  box-shadow: 0 34px 90px -48px rgba(17,27,42,.75);
}

.recovery-close {
  border-color: rgba(23,32,40,.16);
  color: #66737E;
}

.recovery-close:hover {
  border-color: rgba(54,88,181,.4);
  color: var(--mint-deep);
}

.recovery-dialog p,
.recovery-success p { color: var(--text-mid); }
.recovery-success small { color: #68747D; }
.recovery-success-mark {
  border-color: rgba(54,88,181,.5);
  background: rgba(54,88,181,.07);
  color: var(--mint-deep);
}
