.site-header {
  --header-height: 70px;
  --header-gutter: 20px;
  --header-ease: cubic-bezier(.16, 1, .3, 1);
  --header-halo: #30223999;
  position: fixed;
  z-index: 30;
  inset: 0 0 auto;
  background: transparent;
  color: var(--white);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
  transition: transform 150ms cubic-bezier(.4, 0, .2, 1);
}
.site-header.preview-tab-header {
  position: sticky;
  border: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.site-header.is-scrolled { --header-halo: #ffffffb3; color: var(--ink); }
.site-header:is(.has-background, .preview-tab-header) {
  --header-halo: transparent;
  background: var(--white);
  box-shadow: 0 1px var(--line);
}
.site-header.is-hidden:not(.menu-open):not(.search-open):not(:focus-within) { transform: translateY(-100%); }
.site-header :focus-visible { outline: 2px solid var(--lavender); outline-offset: 4px; }
.site-header.is-scrolled :focus-visible, .site-header :is(.mobile-nav, .search-panel) :focus-visible { outline-color: var(--plum); }

.site-header > .header-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: 1320px;
  height: var(--header-height);
  margin-inline: auto;
  padding-inline: var(--header-gutter);
}
.site-header .brand {
  display: inline-flex;
  align-items: center;
  flex: none;
  width: 132px;
  height: 64px;
  text-decoration: none;
}
.site-header .brand img {
  display: block;
  width: 132px;
  max-width: none;
  height: auto;
  filter: drop-shadow(0 1px 1px var(--header-halo));
  transform: translateX(-18px);
}
.site-header .brand .logo-dark,
.site-header.is-scrolled .brand .logo-light { display: none; }
.site-header.is-scrolled .brand .logo-dark { display: block; }

.site-header .primary-nav,
.site-header .header-inner > .header-cta,
.site-header > .search-panel { display: none; }
.site-header .round-button {
  display: grid;
  place-items: center;
  position: relative;
  flex: none;
  padding: 0;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: background-color 300ms ease-out, color 300ms ease-out;
}
.site-header .round-button > svg { width: 18px; height: 18px; }
.site-header .search-toggle { display: none; }
.site-header .round-button:hover { background: #ffffff24; }
.site-header.is-scrolled .round-button {
  border-color: color-mix(in srgb, var(--ink) 33%, transparent);
}
.site-header.is-scrolled .round-button:hover { background: var(--lavender); }
.site-header .menu-toggle { width: 44px; height: 44px; margin-left: auto; }
.site-header .menu-toggle .menu-close { display: none; }
.site-header:not(.is-scrolled) .menu-toggle {
  background: var(--white);
  color: var(--plum-deep);
  border-color: var(--white);
}
.site-header:not(.is-scrolled) .menu-toggle:hover { background: var(--lavender); }
.site-header .menu-toggle[aria-expanded="true"] > svg { visibility: hidden; }
.site-header .menu-toggle[aria-expanded="true"]::before,
.site-header .menu-toggle[aria-expanded="true"]::after {
  content: "";
  position: absolute;
  top: calc(50% - .5px);
  left: calc(50% - 6px);
  width: 12px;
  border-top: 1px solid;
  transform: rotate(45deg);
}
.site-header .menu-toggle[aria-expanded="true"]::after { transform: rotate(-45deg); }

body.preview-menu-lock { overflow: hidden; }
.site-header > .mobile-nav {
  position: fixed;
  inset: var(--header-height) 0 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: calc(100dvh - var(--header-height));
  padding: 0 0 40px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--white);
  color: var(--ink);
  transform: translateX(100%);
  transition: transform 500ms var(--header-ease);
}
.site-header.menu-open > .mobile-nav { transform: none; }
.site-header.menu-open { z-index: 130; }
.site-header [hidden] { display: none !important; }
.site-header .mobile-nav-links { display: flex; flex-direction: column; }
.site-header .mobile-nav-links a:not(.header-cta) {
  display: flex;
  align-items: center;
  min-height: 56px;
  padding: 16px var(--header-gutter);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.site-header .mobile-nav-links a:hover { color: var(--plum); }
.site-header .mobile-nav-links .header-cta { margin: 40px var(--header-gutter) 0; }
.site-header .mobile-nav-search { margin-inline: var(--header-gutter); }
.site-header .mobile-nav-search .site-search-form { position: relative; }
.site-header .mobile-nav-search .site-search { padding-right: 48px; }
.site-header .mobile-nav-search .search-submit {
  position: absolute;
  top: 5px;
  right: 5px;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 0;
  background: transparent;
}
.site-header :is(.mobile-nav-search, .search-panel) label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.site-header .site-search {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid color-mix(in srgb, var(--plum) 66%, var(--white));
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  font: inherit;
}
.site-header .site-search-list {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 12px 16px;
  list-style: none;
}
.site-header .site-search-list:not(:has(li:not([hidden]))) { display: none; }
.site-header .site-search-list a { display: block; padding: 6px 0; text-decoration: none; }
.site-header .site-search-list a:hover { text-decoration: underline; }

.site-header .header-cta {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: fit-content;
  min-height: 48px;
  padding: 11px 23px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: none;
  box-shadow: none;
  transition: background-color 300ms ease-out, color 300ms ease-out, opacity 300ms ease-out;
}
.site-header.is-scrolled .header-cta, .site-header .mobile-nav .header-cta {
  background: var(--lavender);
  color: var(--plum);
}
.site-header .header-cta:hover { background: var(--plum); color: var(--white); }
.site-header .button-icon {
  display: inline-grid;
  flex: none;
  place-items: center;
  width: 17px;
  height: 17px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 16px;
  line-height: 13px;
  transition: transform 300ms ease-out;
}
.site-header .header-cta:hover .button-icon { transform: translateX(2px); }
.site-header .button-text { display: grid; overflow: hidden; padding-right: 2px; margin-right: -2px; font-size: inherit; }
.site-header .button-text > span { grid-area: 1 / 1; transition: transform 300ms cubic-bezier(.76, 0, .24, 1); }
.site-header .button-text > span[aria-hidden] { transform: translateY(100%); font-style: italic; font-weight: 650; }
.site-header a:is(:hover, :focus-visible) .button-text > span:first-child { transform: translateY(-100%); }
.site-header a:is(:hover, :focus-visible) .button-text > span[aria-hidden] { transform: translateY(0); }

@media (min-width: 1024px) {
  .site-header { --header-height: 134px; }
  .site-header .brand { width: 148px; height: 90px; }
  .site-header .brand img { width: 152px; transform: translate(-21px, 6px); }
  .site-header .primary-nav {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 32px;
    margin-left: auto;
    transition: opacity 300ms ease-out;
  }
  .site-header .primary-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    min-width: 0;
    padding: 4px 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: 16px;
    font-weight: 400;
    text-shadow: 0 1px 2px var(--header-halo);
    white-space: nowrap;
    text-decoration: none;
  }
  .site-header .primary-nav a:hover { color: var(--lavender); }
  .site-header.is-scrolled .primary-nav a:hover { color: var(--plum); }
  .site-header .header-inner > .header-cta { display: inline-flex; margin-left: 12px; }
  .site-header .menu-toggle, .site-header > .mobile-nav { display: none; }
  .site-header .search-toggle { z-index: 1; display: grid; width: 48px; height: 48px; }
  .site-header.search-open .search-toggle { color: var(--ink); border-color: transparent; }
  .site-header.search-open .primary-nav, .site-header.search-open .header-inner > .header-cta {
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    transition: opacity 300ms ease-out, visibility 0ms 300ms;
  }
  .site-header > .search-panel {
    position: absolute;
    top: 43px;
    right: max(var(--header-gutter), calc((100% - 1320px) / 2 + var(--header-gutter)));
    display: block;
    width: 48px;
    min-height: 48px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--white);
    color: var(--ink);
    opacity: 0;
    transition: width 500ms var(--header-ease), opacity 300ms ease-out;
  }
  .site-header.search-open > .search-panel { width: min(576px, 60vw); opacity: 1; }
  .site-header .search-panel > .page-container { padding: 0; }
  .site-header .search-panel .site-search { min-height: 46px; padding-right: 48px; border: 0; }
  .site-header .search-panel .search-submit { display: none; }
  .site-header .search-panel .site-search-list {
    position: absolute;
    top: calc(100% + 8px);
    inset-inline: 0;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--white);
    box-shadow: 0 14px 30px #30223924;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header, .site-header * { transition-duration: .01ms !important; }
}


:root {
  color-scheme: light;
  --paper: #faf9f6;
  --white: #fff;
  --ink: #282332;
  --plum: #4c355f;
  --plum-deep: #302239;
  --lavender: #ede8f1;
  --line: #ded9e2;
  --control-border: color-mix(in srgb, var(--plum) 66%, var(--white));
  --hover-wash: #3022391a;
  --gap: 32px;
  --gutter: 20px;
  --expo: cubic-bezier(.16, 1, .3, 1);
  --quart: cubic-bezier(.76, 0, .24, 1);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-gutter: stable; }
body { margin: 0; color: var(--ink); background: var(--white); font-size: 16px; line-height: 1.5; }
body.hero-transition-lock { overflow: hidden; }
body, button, input, select, textarea { font-family: inherit; }
main { overflow-x: clip; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button { cursor: pointer; color: inherit; font-size: inherit; }
h1, h2, h3, p, figure, dl, dd, ul { margin: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--focus-color, var(--plum)); outline-offset: 4px; }
:is(.site-footer, .carousel-card, .coverage-detail) { --focus-color: var(--lavender); }
[id] { scroll-margin-block-start: 92px; }
.sr-only, .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.skip, .skip-link {
  position: fixed;
  z-index: 20;
  left: 16px;
  top: 16px;
  padding: 12px 16px;
  background: var(--white);
  color: var(--ink);
  transform: translateY(-150%);
}
.skip:focus, .skip-link:focus { transform: none; }

.page-container { width: 100%; max-width: 1320px; margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: 80px; }
h2 { font-size: 48px; font-weight: 400; line-height: 1.1; }
h2 strong { color: var(--plum); font-weight: 900; }
h3 { font-size: 18px; font-weight: 900; line-height: 1.3; }

.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: fit-content;
  min-height: 48px;
  gap: 8px;
  padding: 11px 23px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--lavender);
  color: var(--plum);
  text-decoration: none;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.35;
  cursor: pointer;
  transition: color 300ms ease-out, background-color 300ms ease-out, border-color 300ms ease-out;
}
.button:hover { color: var(--white); background: var(--plum); }
.button-outline { background: transparent; border-color: currentColor; }
.button-outline:hover { color: var(--plum); background: var(--hover-wash); }
.button-light { background: var(--white); color: var(--ink); }
.button-dark { background: var(--plum-deep); color: var(--white); }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.button-text { display: grid; overflow: hidden; padding-right: 2px; margin-right: -2px; }
.button-text > span { grid-area: 1 / 1; transition: transform 300ms var(--quart); }
.button-text > span[aria-hidden] { transform: translateY(100%); font-style: italic; font-weight: 650; }
:is(.button, .site-footer nav a):is(:hover, :focus-visible) .button-text > span:first-child { transform: translateY(-100%); }
:is(.button, .site-footer nav a):is(:hover, :focus-visible) .button-text > span[aria-hidden] { transform: translateY(0); }
.button-icon, .round-button { display: inline-grid; place-items: center; flex: none; }
.button-icon { width: 17px; height: 17px; border: 1px solid currentColor; border-radius: 50%; font-size: 16px; line-height: 13px; transition: transform 300ms ease-out; }
.button:hover .button-icon { transform: translateX(2px); }
.button-icon svg, .round-button svg { width: 100%; height: 100%; }
.round-button {
  width: 56px;
  height: 56px;
  padding: 15px;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
  font-size: 23px;
  line-height: 1;
  transition: background-color 300ms ease-out, color 300ms ease-out;
}
.round-button:hover { background-color: var(--hover-wash); }

.hero {
  --hero-duration: 0ms;
  --hero-ease: cubic-bezier(.42, 0, .58, 1);
  --hero-height: 100vh;
  --hero-clip-top: 49%;
  --hero-clip-side: 24px;
  --hero-clip-bottom: 50px;
  position: relative;
  min-height: 120vh;
  background: linear-gradient(180deg, var(--plum-deep), var(--plum));
  color: var(--white);
}
.hero-waves {
  position: absolute;
  inset: 19% 0 auto;
  width: 100%;
  height: 81%;
  color: var(--lavender);
  opacity: .17;
  pointer-events: none;
}
.hero-stage { position: sticky; top: 0; height: var(--hero-height); isolation: isolate; }
.hero-media {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  clip-path: inset(var(--hero-clip-top) var(--hero-clip-side) var(--hero-clip-bottom) round 0 80px);
  transition: clip-path var(--hero-duration) var(--hero-ease);
}
.hero-media img {
  position: absolute;
  width: max(1px, calc(100% - 2 * var(--hero-clip-side)));
  height: max(1px, calc(100% - var(--hero-clip-top) - var(--hero-clip-bottom)));
  max-width: none;
  top: var(--hero-clip-top);
  left: 50%;
  transform: translateX(-50%);
  object-fit: cover;
  transition: width var(--hero-duration) var(--hero-ease), height var(--hero-duration) var(--hero-ease), top var(--hero-duration) var(--hero-ease);
}
.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #0003;
  opacity: 0;
  transition: opacity var(--hero-duration) var(--hero-ease);
}
.hero-title {
  position: absolute;
  z-index: 2;
  inset: var(--hero-title-rest-top, 120px) var(--gutter) auto;
  margin-inline: auto;
  text-align: center;
  font-size: min(48px, 7.2vw);
  font-weight: 400;
  line-height: 1.1;
  transform: scale(var(--hero-rest-scale, 1));
  transform-origin: top center;
  transition: top var(--hero-duration) var(--hero-ease), transform var(--hero-duration) var(--hero-ease);
}
.hero-title strong { font-weight: 900; }
.hero.is-expanded .hero-media { clip-path: inset(0 round 0); }
.hero.is-moving { --hero-duration: 1200ms; }
.hero.is-expanded .hero-media img { width: 100%; height: 100%; top: 0; }
.hero.is-expanded .hero-media::after { opacity: 1; }
.hero.is-expanded .hero-title { top: var(--hero-title-full-top, 32.0833vh); transform: scale(1); }
.hero.is-collapsing .hero-title, .hero.is-collapsing .hero-media, .hero.is-collapsing .hero-media img,
.hero.is-collapsing .hero-media::after { transition-timing-function: var(--hero-ease); }

.split { display: grid; gap: 24px var(--gap); align-items: center; }
.section-copy { display: grid; gap: 16px; align-content: start; justify-items: start; }
.section-copy > p { font-size: 18px; line-height: 1.3; }
.section-copy .button-row { margin-top: 8px; }
.section-copy > .button { margin-top: 8px; }
.intro .section-copy { gap: 24px; }
.intro .section-copy .button-row { margin-top: 0; }

.numbers .page-container { display: grid; gap: 24px; }
.number-grid { display: flex; flex-wrap: wrap; justify-content: center; }
.number { display: grid; align-content: start; gap: 8px; width: 100%; padding: 32px 16px; border-bottom: 1px solid var(--line); text-align: center; }
.number:last-child { border-bottom: 0; }
.number strong { display: block; font-size: 48px; line-height: 1.1; font-weight: 400; }
.number p { max-width: 224px; margin-inline: auto; font-size: 18px; line-height: 1.3; }

.coverage { overflow-x: clip; }
.coverage .page-container { display: grid; gap: 24px; }

.carousel {
  --carousel-gap: 24px;
  --carousel-per-page: 1;
  position: relative;
  overflow-x: clip;
  isolation: isolate;
}
.carousel::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(to top, var(--lavender) 20%, transparent),
    linear-gradient(#4c355f10 1px, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(90deg, #4c355f10 1px, transparent 1px) 0 0 / 28px 28px,
    var(--lavender);
}
.carousel-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px 24px; }
.carousel-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.carousel-viewport { grid-column: 1 / -1; grid-row: 2; min-width: 0; overflow: hidden; border-radius: 12px; }
.carousel-track {
  display: flex;
  /* Every slide contributes to the shared height, including the longest copy. */
  align-items: stretch;
  gap: var(--carousel-gap);
  transform: translateX(calc(var(--carousel-offset, 0px) + var(--carousel-drag, 0px)));
  transition: transform 320ms var(--expo);
  touch-action: pan-y;
}
.carousel-track.is-dragging { transition: none; user-select: none; }
.carousel-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  flex: 0 0 100%;
  min-width: 0;
  min-height: 440px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--plum-deep);
  color: var(--white);
}
/* Preserve legacy links without letting their anchors create extra grid rows. */
.carousel-card > span[id][aria-hidden="true"] { position: absolute; inset: 0 auto auto 0; width: 0; height: 0; pointer-events: none; }
.carousel-detail {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  min-width: 0;
  padding: clamp(28px, 4vw, 48px);
}
.carousel-detail > h3 { font-size: clamp(26px, 3vw, 36px); font-weight: 600; line-height: 1.2; }
.carousel-title-link { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; }
.carousel-title-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.carousel-detail > p { font-size: 16px; line-height: 1.6; }
.carousel-detail > .button, .carousel-detail > .project-card-actions { margin-top: auto; }
.carousel-detail .project-card-actions { display: flex; flex-wrap: wrap; gap: 16px; padding-top: 8px; }
.carousel-detail .button { min-height: 44px; padding: 10px 18px; font-size: 14px; }
.carousel-detail .button-outline { color: var(--white); }
.carousel-detail .button-outline:hover { background: #ffffff26; }
.carousel-detail .button-icon { width: 14px; height: 14px; font-size: 13px; line-height: 10px; }
.carousel-image { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 0; padding: 32px; overflow: hidden; background: var(--white); }
.carousel-image img, .carousel-image svg { width: 100%; height: 300px; object-fit: contain; }
.carousel-controls { grid-column: 2; grid-row: 1; display: flex; align-items: center; gap: 12px; }
.carousel-progress:empty { display: none; }

.coverage .split { align-items: start; }
.coverage { scroll-margin-block-start: 134px; }
.coverage .section-copy { width: min(100%, 613px); }
.coverage-links { display: flex; flex-wrap: wrap; gap: 6px 24px; margin-block: 16px 24px; }
.coverage-links a { display: inline-flex; align-items: center; min-height: 44px; }
.coverage-panel { display: flex; flex-direction: column; gap: 16px; }
.coverage-explorer {
  flex: 1;
  min-height: 45vh;
  min-width: 0;
  padding: 24px;
  border-radius: 12px;
  background:
    linear-gradient(#4c355f14 1px, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(90deg, #4c355f14 1px, transparent 1px) 0 0 / 28px 28px,
    var(--lavender);
  color: var(--plum-deep);
}
.coverage-explorer label { display: block; margin-bottom: 7px; font-weight: 700; }
.coverage-search {
  width: min(100%, 340px);
  border: 1px solid var(--control-border);
  border-radius: 999px;
  padding: 10px 16px;
  background: var(--white);
  color: var(--ink);
  font: inherit;
}
.service-groups { display: grid; gap: 32px; margin-top: 28px; }
.service-group > h3 { margin-bottom: 14px; font-size: 20px; font-weight: 550; }
.service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.service-group[data-service-count="1"] .service-grid { grid-template-columns: 1fr; }
.service-card h4 { margin: 0; }
.service-card > p { margin-top: 14px; }
.services-enhanced .service-card h4 { height: 100%; }
.services-enhanced .service-card > p { display: none; }
.service-empty { margin-top: 24px; }
.service-select {
  width: 100%;
  min-height: 84px;
  height: 100%;
  padding: 10px 12px;
  border: 1px solid var(--control-border);
  border-radius: 8px;
  background: #ffffffe6;
  color: var(--plum-deep);
  font-size: 16px;
  font-weight: 700;
  transition: background-color 300ms ease-out, color 300ms ease-out;
}
.service-select:hover, .service-select[aria-expanded="true"] { background: var(--plum); color: var(--white); }
.service-select:disabled { min-height: 0; height: auto; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; cursor: default; text-align: left; }
.coverage-detail { position: relative; min-width: 0; padding: 24px; scroll-margin-block-start: 92px; border-radius: 12px; background: var(--plum); color: var(--white); }
.coverage-close { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; padding: 6px; }
.coverage-close:hover { background: #ffffff26; }
.coverage-detail:not([hidden]) { animation: detail-in 700ms cubic-bezier(.22, 1, .36, 1) both; }
.coverage-detail h3 { margin: 5px 39px 16px 0; }
.coverage-detail p { font-size: 18px; }
@keyframes detail-in {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

.site-footer { color: var(--white); background: linear-gradient(180deg, var(--plum-deep), var(--plum)); }
.site-footer .page-container { display: grid; gap: 64px; padding-block: 65px; }
.site-footer .brand { display: inline-flex; align-items: center; width: 160px; }
.site-footer .brand img { width: 152px; height: auto; transform: translateX(-21px); }
.footer-nav, .footer-main { display: grid; align-content: start; align-items: start; gap: 24px; }
.footer-nav nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.footer-nav nav a, .footer-bottom a { text-decoration: none; }
.footer-nav nav a:hover, .footer-bottom a:hover { text-decoration: underline; }
.footer-main h2 { font-size: 32px; line-height: 1.2; }
.footer-main h2 strong { color: inherit; }
.footer-main .contact-heading { color: var(--lavender); }
.footer-main p { font-size: 18px; line-height: 1.3; }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; font-size: 14px; }
.footer-main > .section-copy { order: -1; }
.footer-main .contact-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px 32px;
  width: 100%;
  margin-top: 8px;
}
.contact-form label { display: grid; gap: 8px; }
.contact-form input, .contact-form textarea {
  width: 100%;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid #ffffff70;
  border-radius: 0;
  background: transparent;
  color: var(--white);
  font: inherit;
}
.contact-form textarea { resize: vertical; }
.contact-form .button { justify-self: end; }

@media (max-width: 767px) {
  .carousel-heading { display: grid; justify-items: start; gap: 16px; }
  .carousel-heading h2 { font-size: 40px; }
  .carousel-controls { align-self: start; }
  .carousel-card { grid-template-columns: minmax(0, 1fr); grid-template-rows: 200px 1fr; }
  .carousel-image { padding: 20px; }
  .carousel-image img, .carousel-image svg { height: 160px; }
  .carousel-detail { padding: 28px; }
}

@media (max-width: 480px) {
  .carousel-inner { column-gap: 16px; }
  .carousel-heading h2 { font-size: 36px; }
  .carousel-heading .button { padding: 10px 16px; font-size: 14px; }
  .carousel-controls { gap: 8px; }
  .carousel-controls .round-button { width: 44px; height: 44px; padding: 10px; }
}

@media (min-width: 768px) {
  .number { width: calc(100% / 3); padding-block: 16px; border-bottom: 0; border-right: 1px solid var(--line); }
  .number:nth-child(3n), .number:last-child { border-right: 0; }
}

@media (min-width: 1024px) {
  .section { padding-block: 128px; }
  h2, .number strong { font-size: 56px; }
  h3 { font-size: 24px; }
  .carousel { --carousel-per-page: 2; }
  .carousel-card { flex-basis: calc((100% - var(--carousel-gap)) / 2); grid-template-columns: minmax(0, 1fr); grid-template-rows: 200px 1fr; }
  .carousel-image { padding: 24px; }
  .carousel-image img, .carousel-image svg { height: 152px; }
  .carousel-detail { padding: 32px; }
  .carousel-detail > h3 { font-size: 32px; }
  .hero { --hero-clip-top: 51.35%; --hero-clip-side: max(40px, calc((100% - 760px) / 2)); --hero-clip-bottom: 0px; }
  .hero-title {
    top: var(--hero-title-rest-top, 169px);
    inset-inline: var(--gutter);
    font-size: min(125px, 7.9vw);
    transform: scale(var(--hero-rest-scale, .668));
  }
  .hero.is-expanded .hero-title { transform: scale(1); }
  .split { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); }
  .section-copy > p, .number p, .footer-main p { font-size: 20px; }
  .intro .section-copy { gap: 32px; }
  .number { width: 25%; }
  .number:nth-child(3n):not(:last-child) { border-right: 1px solid var(--line); }
  .numbers .page-container, .coverage .page-container { gap: 48px; }
  .coverage h2::after {
    content: "";
    position: absolute;
    left: calc(100% + var(--gap));
    top: calc(50% - 13px);
    width: 50vw;
    height: 26px;
    color: var(--ink);
    background-image: radial-gradient(circle at center, currentColor 2.5px, transparent 2.6px);
    background-size: 19px 19px;
    pointer-events: none;
  }
  .coverage .split { display: grid; grid-template-columns: 1fr; gap: 48px; }
  .coverage h2 { position: relative; width: calc((100% - var(--gap)) / 2); }
  .coverage-panel { display: grid; min-height: min(70vh, 700px); grid-template-columns: minmax(0, 1fr) minmax(0, 0fr); gap: 0; transition: grid-template-columns 700ms cubic-bezier(.22, 1, .36, 1), gap 700ms cubic-bezier(.22, 1, .36, 1); }
  .coverage-panel:has(.coverage-detail:not([hidden])) { grid-template-columns: minmax(0, 1fr) minmax(0, .47fr); gap: 16px; }
  .coverage-explorer { padding: 32px; }
  .service-group[data-service-count="3"] .service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .service-select { min-height: 88px; }
  .coverage-detail { position: sticky; top: 112px; align-self: start; padding: 32px; }
  @keyframes detail-in {
    from { opacity: 0; transform: translateX(26px); }
    to { opacity: 1; transform: translateX(0); }
  }
  .site-footer .page-container { gap: 65px; padding-block: 130px; }
  .footer-main.split { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 65px; }
  .footer-main > .section-copy { order: 0; }
  .footer-main h2 { font-size: 48px; line-height: 1.1; }
  .footer-main .contact-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-form label:nth-of-type(n + 3), .contact-form .button { grid-column: 1 / -1; }
}

@media (max-width: 1023px) {
  .coverage-detail { display: none; }
  .service-group[data-service-count="3"] .service-grid,
  .service-group:has([aria-expanded="true"]) .service-grid { grid-template-columns: 1fr; }
  .services-enhanced .service-card h4 { height: auto; }
  .service-card:has([aria-expanded="true"]) { grid-column: 1 / -1; }
  .service-card:has([aria-expanded="true"]) > p { display: block; margin: 12px 0 0; padding: 20px; border-radius: 8px; background: var(--plum); color: var(--white); line-height: 1.6; }
}

@media (max-width: 359px) {
  .service-grid { grid-template-columns: 1fr; }
  .service-select { min-height: 64px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.hero-media::after { background: linear-gradient(#30223936, #302239a6 44%, #302239a6 64%, #30223925); }
.carousel-image.project-visual--logo img { padding: 12px; }
/* All projects remain available when the interaction script is unavailable. */
.carousel:not(.carousel-ready) .carousel-track { display: grid; grid-template-columns: minmax(0, 1fr); transform: none; }
.carousel:not(.carousel-ready) .carousel-controls { display: none; }
@media (min-width: 1024px) {
  .carousel:not(.carousel-ready) .carousel-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.retro .carousel:not(.carousel-ready) .carousel-track { grid-template-columns: minmax(0, 1fr); }

.closing-cta { background: var(--lavender); }
.closing-cta .split { align-items: center; }
.closing-cta .button { justify-self: start; }
.site-footer .footer-grid { display: grid; grid-template-columns: 1fr 1fr auto; align-items: start; gap: clamp(24px, 5vw, 66px); padding-bottom: 36px; }
.site-footer .footer-brand img { width: min(180px, 100%); height: auto; margin: -28px 0 -15px -23px; }
.site-footer .footer-brand p, .footer-registration, .footer-address { font-size: .875rem; line-height: 1.55; }
.site-footer .footer-contact > a { display: inline-block; margin-bottom: 14px; font-size: clamp(18px, 2.5vw, 30px); }
.footer-address { font-style: normal; margin-bottom: 12px; }
.footer-registration div { display: flex; flex-wrap: wrap; gap: 6px; }
.footer-registration dt { font-weight: 700; }
.site-footer .footer-links { display: flex; flex-direction: column; gap: 12px; }
.site-footer a { color: #fff; }
.site-footer a:hover { text-decoration: underline; }
.display-preferences { padding-block: 16px; border-top: 1px solid #ffffff46; }
.preference-actions, .privacy-footer-links { display: flex; flex-wrap: wrap; gap: 12px 18px; }
.preference-actions button { padding: 7px 12px; background: transparent; color: #fff; border: 1px solid #ffffff80; border-radius: 99px; }
.site-footer .footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; }
.retro .hero { min-height: 0; }
.retro .hero-stage { position: relative; height: auto; padding: 150px var(--gutter) 45px; }
.retro .hero-title { position: static; transform: none; font-size: min(64px, 7.2vw); }
.retro .hero-media, .retro .hero-waves { display: none; }
.retro .carousel-inner { display: block; }
.retro .carousel-viewport { min-height: 0; }
.retro .carousel-track { display: grid; width: 100%; height: auto; min-height: 0; transform: none; gap: 16px; }
.retro .carousel-card { display: block; height: auto; min-height: 0; margin: 0; transform: none; }
.retro .carousel-controls { display: none; }
.retro .carousel-card .carousel-detail, .retro .carousel-card .carousel-image { width: 100%; height: auto; }
.retro .carousel-card .carousel-image { height: 180px; }
.retro .carousel-card .carousel-image :is(img, svg) { width: 100%; height: 100%; max-height: 100%; object-fit: contain; }
.retro .carousel-card .carousel-detail a { pointer-events: auto; }
.retro *, .preview-motion-paused * { animation-duration: 0s !important; transition-duration: 0s !important; scroll-behavior: auto !important; }
@media (max-width: 640px) {
  .site-footer .footer-grid { grid-template-columns: 1fr; }
  .site-footer .footer-links { flex-direction: row; flex-wrap: wrap; }
}


:root {
--theme-surface: #fff;
--theme-surface-alt: #f1eeef;
--theme-accent: #4c355f;
--theme-border: #9f8aac;
--theme-error: #872d36;
--theme-success: #265c40;
}

.theme-toggle {
display: inline-grid;
place-items: center;
flex: none;
width: 44px;
height: 44px;
min-width: 44px;
min-height: 44px;
padding: 10px;
border: 1px solid currentColor;
border-radius: 50%;
background: transparent;
color: inherit;
cursor: pointer;
font: inherit;
}
.site-header .round-button.theme-toggle { display: grid; width: 44px; height: 44px; }
.site-header .round-button.theme-toggle > svg, .theme-toggle > svg { display: block; width: 20px; height: 20px; }
.theme-toggle:hover { background: color-mix(in srgb, currentColor 10%, transparent); }
.theme-sun { display: none; }
.theme-logo-filters { position: absolute; overflow: hidden; pointer-events: none; }
[data-theme="dark"] .theme-moon { display: none; }
[data-theme="dark"] .theme-sun { display: initial; }
.theme-select {
max-width: 100%;
min-height: 44px;
padding: 8px 12px;
border: 1px solid var(--theme-border);
border-radius: 8px;
background: var(--theme-surface);
color: var(--ink, #282332);
font: inherit;
font-size: .875rem;
cursor: pointer;
}
.theme-select option { background: var(--theme-surface); color: var(--ink, #282332); }
.theme-toggle:focus-visible, .theme-select:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.site-header.search-open .header-inner > .theme-toggle { visibility: hidden; pointer-events: none; opacity: 0; }
@media (max-width: 1023px) {
.site-header .header-inner > .theme-toggle { margin-left: auto; }
.site-header .header-inner > .theme-toggle ~ .menu-toggle { margin-left: 0; }
}

html[data-theme="dark"] {
color-scheme: dark;
--paper: #151219;
--ink: #f4eef8;
--muted: #b9afc3;
--line: #4b4054;
--lavender: #2b2333;
--theme-surface: #1e1825;
--theme-surface-alt: #27202f;
--theme-accent: #d9baf2;
--theme-border: #9984ab;
--theme-error: #ffadb4;
--theme-success: #a3d9b8;
--control-border: #9984ab;
--hover-wash: #ffffff14;
--focus-color: #e2c3fa;
}
html[data-theme="dark"] body:not(.gladio-site) { color: var(--ink); background: var(--paper); }
html[data-theme="dark"] body:not(.gladio-site) ::selection { background: #78548f; color: #fff; }
html[data-theme="dark"] body:not(.gladio-site) :focus-visible { outline-color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) :is(input, textarea, select) { accent-color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) :is(input, textarea)::placeholder { color: var(--muted); opacity: 1; }


html[data-theme="dark"] body:not(.gladio-site) .site-header:not(:has(.header-inner)),
html[data-theme="dark"] body:not(.gladio-site) .site-header:is(.has-background, .preview-tab-header) {
--header-halo: transparent;
background: var(--paper);
color: var(--ink);
border-color: var(--line);
}
html[data-theme="dark"] body:not(.gladio-site) .site-header.is-scrolled { --header-halo: #15121999; }
html[data-theme="dark"] body:not(.gladio-site) .header-logo,
html[data-theme="dark"] body:not(.gladio-site) .site-header .brand:not(:has(.logo-light)) .logo-dark { filter: brightness(0) invert(1); }
html[data-theme="dark"] body:not(.gladio-site) .site-header .brand .logo-light { display: block; }
html[data-theme="dark"] body:not(.gladio-site) .site-header .brand:has(.logo-light) .logo-dark { display: none; }
html[data-theme="dark"] body:not(.gladio-site) .primary-nav a { color: inherit; }
html[data-theme="dark"] body:not(.gladio-site) .primary-nav a:is(:hover, [aria-current="page"], [aria-current="location"]) {
color: var(--theme-accent);
background-color: var(--theme-surface-alt);
}
html[data-theme="dark"] body:not(.gladio-site) .site-header :is(.mobile-nav, .search-panel, .site-search-list, .site-search) {
background: var(--theme-surface);
color: var(--ink);
border-color: var(--theme-border);
}
html[data-theme="dark"] body:not(.gladio-site) .site-header .mobile-nav-links a:hover { color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) .site-header :is(.search-submit, .search-toggle) { color: inherit; }
html[data-theme="dark"] body:not(.gladio-site) .site-header.search-open .search-toggle { color: var(--ink); }
html[data-theme="dark"] body:not(.gladio-site) .site-header .header-cta {
background: var(--theme-surface-alt);
color: var(--ink);
border-color: var(--theme-border);
}
html[data-theme="dark"] body:not(.gladio-site) .site-header .header-cta:hover { background: var(--plum); color: #fff; }


html[data-theme="dark"] body:not(.gladio-site) :is(.section.alt, .hermetic-band, .closing-cta) { background: var(--theme-surface-alt); }
html[data-theme="dark"] body:not(.gladio-site) .brand-band {
background: radial-gradient(ellipse at 100% 0, #35283f, transparent 64%), var(--paper);
}
html[data-theme="dark"] body:not(.gladio-site) :is(.hermetic-media, .workspace-demo, .workspace-option, .legal-callout) { background: var(--theme-surface); border-color: var(--line); }
html[data-theme="dark"] body:not(.gladio-site) :is(.workspace-demo-board > div, .workspace-demo-board p, .account-flow, .taxi-teaser > div) { background: var(--theme-surface-alt); }
html[data-theme="dark"] body:not(.gladio-site) :is(.workspace-demo-bar, .workspace-demo-tabs, .taxi-teaser strong) { color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) .legal-page th { background: var(--theme-surface-alt); }
html[data-theme="dark"] body:not(.gladio-site) :is(.text-link, .contact-email, .role, .project-status, .product-copy .project-status, .project-breadcrumb a, .educator-screenshot-link) { color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) :is(.text-link, .contact-email):hover { color: #efdcff; }
html[data-theme="dark"] body:not(.gladio-site) :is(.button.secondary, .button.light, .button-outline) { color: var(--theme-accent); border-color: var(--theme-border); }
html[data-theme="dark"] body:not(.gladio-site) .button:not(.primary):not(.secondary):not(.light):not(.button-dark):not(.button-light):not(.button-outline):not(.header-cta) { background: var(--theme-surface-alt); color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) .button-light { background: #fff; color: #282332; }
html[data-theme="dark"] body:not(.gladio-site) .button:is(.secondary, .light, .button-outline):hover { color: #fff; background: var(--plum); }
html[data-theme="dark"] body:not(.gladio-site) .button-dark { border-color: var(--theme-border); }
html[data-theme="dark"] body:not(.gladio-site) :is(.person-initials, .portrait.placeholder) { background: var(--theme-surface-alt); color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) .people-list a:last-child .person-initials { background: #21382d; color: #b1d6bf; }
html[data-theme="dark"] body:not(.gladio-site) .ticker { background: var(--theme-surface); }
html[data-theme="dark"] body:not(.gladio-site) .ticker-track { color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) .ticker-track .gold { color: #dfbd76; }
html[data-theme="dark"] body:not(.gladio-site) .ticker-track .green { color: #a3cfb4; }
html[data-theme="dark"] body:not(.gladio-site) .zoom-sticky { background: var(--paper); }
html[data-theme="dark"] body:not(.gladio-site) .model-notebook { background: var(--theme-surface-alt); border-color: var(--line); box-shadow: none; }
html[data-theme="dark"] body:not(.gladio-site) .model-notebook :is(.notebook-heading, .notebook-equation, .notebook-note, figcaption),
html[data-theme="dark"] body:not(.gladio-site) .chart-legend { color: var(--muted); }
html[data-theme="dark"] body:not(.gladio-site) .notebook-title { color: var(--ink); }
html[data-theme="dark"] body:not(.gladio-site) .econ-grid .card { background: var(--theme-surface); }
html[data-theme="dark"] body:not(.gladio-site) .econ-svg { background: #faf9f6; color: #282332; border-radius: 6px; }
html[data-theme="dark"] body:not(.gladio-site) :is(.series-media, .statistics-media, .team-media) { background: #fff; }
html[data-theme="dark"] body:not(.gladio-site) :is(.project-visual--logo, .product-card .project-visual, .carousel-preview, .carousel-image, .hermetic-media) { background: var(--theme-surface-alt); }
html[data-theme="dark"] body:not(.gladio-site) :is(.project-visual--logo, .product-card .project-visual, .carousel-preview, .carousel-image, .hermetic-media) > img { filter: brightness(0) invert(1); }
html[data-theme="dark"] body:not(.gladio-site) .project-visual[data-project-art="arcana"] > img { filter: url(#vcesr-white-ink); }
html[data-theme="dark"] body:not(.gladio-site) .project-visual[data-project-art="gladio"] > img { filter: url(#vcesr-colour-ink); }
html[data-theme="dark"] body:not(.gladio-site) .project-visual:is([data-project-art="econcards"], [data-project-art="boom-and-bust"], [data-project-art="causal-capybara"]) > img { filter: none; }
html[data-theme="dark"] body:not(.gladio-site) .project-visual[data-project-art="causal-capybara"] > img { width: auto; height: auto; max-width: 100%; max-height: 100%; aspect-ratio: 1; padding: 0; border-radius: 21.5%; }
html[data-theme="dark"] body:not(.gladio-site) :is(.carousel-preview, .carousel-image)[data-project-art="causal-capybara"] { display: flex; align-items: center; justify-content: center; padding: 12px; }
html[data-theme="dark"] body:not(.gladio-site) .hero-cinema .hero-logo { filter: brightness(0) invert(1); }
html[data-theme="dark"] body:not(.gladio-site) .project-mark.educator-art,
html[data-theme="dark"] body:not(.gladio-site) #toolkit .project:last-child .project-mark { background: #ede8f1; color: #4c355f; }


html[data-theme="dark"] body:not(.gladio-site) .hero { --lavender: #ede8f1; }
html[data-theme="dark"] body:not(.gladio-site) h2 strong { color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) .coverage-explorer { background-color: var(--theme-surface-alt); color: var(--ink); }
html[data-theme="dark"] body:not(.gladio-site) .coverage-search { background: var(--theme-surface); color: var(--ink); }
html[data-theme="dark"] body:not(.gladio-site) .service-select { background: var(--theme-surface); color: var(--ink); border-color: var(--theme-border); }
html[data-theme="dark"] body:not(.gladio-site) .service-select:is(:hover, [aria-expanded="true"]) { background: var(--plum); color: #fff; }
html[data-theme="dark"] body:not(.gladio-site) .service-select:disabled { background: transparent; color: inherit; }
html[data-theme="dark"] body:not(.gladio-site) :is(.carousel-card, .coverage-detail, .site-footer) { --focus-color: #e2c3fa; }
html[data-theme="dark"] body:not(.gladio-site) .carousel-detail .button-outline { color: #fff; border-color: #d9baf2; }
html[data-theme="dark"] body:not(.gladio-site) .carousel-detail .button-outline:hover { background: #ffffff26; }
html[data-theme="dark"] body:not(.gladio-site) .site-footer { background: var(--theme-surface); color: var(--ink); }
html[data-theme="dark"] body:not(.gladio-site) .site-footer a { color: inherit; }
html[data-theme="dark"] body:not(.gladio-site) .site-footer :is(.contact-heading, h2 strong) { color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) .footer-brand > img { filter: brightness(0) invert(1); }
html[data-theme="dark"] body:not(.gladio-site) .preference-actions button { color: var(--ink); border-color: var(--theme-border); }
html[data-theme="dark"] body:not(.gladio-site) .preference-actions button:is(:hover, [aria-pressed="true"]) { background: var(--theme-surface-alt); }
html[data-theme="dark"] body:not(.gladio-site) .contact-form :is(input, textarea) { background: var(--theme-surface); color: var(--ink); border-color: var(--theme-border); }
html[data-theme="dark"] body:not(.gladio-site) .contact-form label { color: var(--ink); }
html[data-theme="dark"] body:not(.gladio-site) .contact-form-status[data-state="error"] { color: var(--theme-error); }
html[data-theme="dark"] body:not(.gladio-site) .contact-form-status[data-state="success"] { color: var(--theme-success); }


html[data-theme="dark"] body:not(.gladio-site) .educator-page { --educator-mist: #27202f; --educator-ink: #f4eef8; --educator-muted: #b9afc3; }
html[data-theme="dark"] body:not(.gladio-site) :is(.educator-learning, .educator-sweden, .educator-schools, .educator-faq) { background: var(--paper); }
html[data-theme="dark"] body:not(.gladio-site) :is(.educator-experiment, .educator-textbook, .educator-us, .educator-pricing) { background: var(--theme-surface-alt); }
html[data-theme="dark"] body:not(.gladio-site) :is(.educator-workspace, .educator-country-card, .educator-license, .educator-engine-model, .educator-textbook figure, .educator-us figure) { background: var(--theme-surface); color: var(--ink); border-color: var(--line); }
html[data-theme="dark"] body:not(.gladio-site) :is(.educator-gallery-controls, .educator-model-layer, .educator-opening-dates li, .educator-questions details[open]) { background: var(--theme-surface-alt); color: var(--ink); border-color: var(--line); }
html[data-theme="dark"] body:not(.gladio-site) .educator-gallery-controls button { color: var(--muted); }
html[data-theme="dark"] body:not(.gladio-site) .educator-gallery-controls button:is(:hover, [aria-pressed="true"]) { background: var(--plum); color: #fff; }
html[data-theme="dark"] body:not(.gladio-site) :is(.educator-intro-copy .project-lead, .educator-workspace figcaption, .educator-model-layer p, .educator-engine-model figcaption, .educator-controls-note, .educator-country-heading p, .educator-country-details dt, .educator-country-sources, .educator-calibration-note, .educator-payment-status, .educator-license-note, .educator-textbook figcaption, .educator-us figcaption, .educator-us-context) { color: var(--muted); }
html[data-theme="dark"] body:not(.gladio-site) :is(.educator-workspace [data-educator-caption], .educator-country-details dd, .educator-school-list li, .educator-inclusions, .educator-textbook-inclusions) { color: var(--ink); }
html[data-theme="dark"] body:not(.gladio-site) .educator-brand { padding: 16px; background: var(--theme-surface-alt); border-radius: 12px; }
html[data-theme="dark"] body:not(.gladio-site) .educator-brand img { filter: brightness(0) invert(1); }
html[data-theme="dark"] body:not(.gladio-site) :is(.educator-feature-icon, .educator-inclusions li::before, .educator-questions summary::after) { color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) .educator-steps li > span { color: var(--theme-accent); background: var(--theme-surface-alt); }
html[data-theme="dark"] body:not(.gladio-site) :is(.educator-questions details, .educator-control-grid article, .educator-country-details > div, .educator-calibration-note, .educator-steps li, .educator-school-list li, .educator-license-note, .educator-workspace figcaption, .educator-textbook figcaption, .educator-us figcaption) { border-color: var(--line); }
html[data-theme="dark"] body:not(.gladio-site) .educator-institution .educator-inclusions { color: #fff; }


html[data-theme="dark"] body:not(.gladio-site) .capy-page { --capy-soft: #1e1825; --capy-tint: #2b2333; --capy-line: #4b4054; }
html[data-theme="dark"] body:not(.gladio-site) :is(.capy-screen, .capy-catalogue-controls, .capy-empty, .capy-code-example) { background: var(--theme-surface); }
html[data-theme="dark"] body:not(.gladio-site) :is(.capy-code-panel--knowledge, .capy-learning, .capy-faq) { background: var(--theme-surface-alt); border-color: var(--line); }
html[data-theme="dark"] body:not(.gladio-site) .capy-catalogue-controls :is(input, select) { background: var(--theme-surface); color: var(--ink); border-color: var(--theme-border); }
html[data-theme="dark"] body:not(.gladio-site) :is(.capy-reset, .capy-catalogue-controls label, .capy-method-status, .capy-page .text-link, .capy-mcp-tools dt, .capy-method-group > summary::after) { color: var(--theme-accent); }
html[data-theme="dark"] body:not(.gladio-site) :is(.capy-code-example pre, .capy-hero-screen figcaption span:first-child) { color: var(--ink); }
html[data-theme="dark"] body:not(.gladio-site) :is(.capy-code-panel--knowledge .capy-code-copy p, .capy-questions p) { color: var(--muted); }
html[data-theme="dark"] body:not(.gladio-site) .capy-method-status--teaching { color: #ead6b8; background: #3b2f22; border-color: #806b50; }
html[data-theme="dark"] body:not(.gladio-site) .capy-questions details { border-color: var(--line); }
html[data-theme="dark"] body:not(.gladio-site) :is(.capy-closing, .educator-engine, .story-close) .text-link { color: #fff; }
html[data-theme="dark"] body:not(.gladio-site) .capy-closing .button.primary:hover { background: #ede8f1; }


html[data-theme="dark"] body:not(.gladio-site) #vcesr-privacy { color: var(--ink); }
html[data-theme="dark"] body:not(.gladio-site) #vcesr-privacy :is(button, .privacy-banner, .privacy-dialog) { background: var(--theme-surface); color: var(--ink); border-color: var(--theme-border); }
html[data-theme="dark"] body:not(.gladio-site) #vcesr-privacy button:hover { background: var(--theme-surface-alt); }
html[data-theme="dark"] body:not(.gladio-site) #vcesr-privacy .privacy-option { border-color: var(--line); }
html[data-theme="dark"] body:not(.gladio-site) #vcesr-privacy [data-signal] { background: var(--theme-surface-alt); }
html[data-theme="dark"] body:not(.gladio-site) #vcesr-privacy .privacy-dialog::backdrop { background: #09060dc7; }


body.gladio-site { color-scheme: dark; }
body.gladio-site .theme-toggle { background: var(--gladio-button, #c92334); color: #fff; border-color: var(--gladio-red, #e52c3d); }
body.gladio-site .theme-toggle:hover { background: var(--gladio-button-hover, #ad1b2b); }
body.gladio-site .theme-select { background: var(--gladio-surface, #13171d); color: var(--gladio-text, #f0f2f5); border-color: var(--gladio-red, #e52c3d); border-radius: 0; }
body.gladio-site .theme-select option { background: var(--gladio-surface, #13171d); color: var(--gladio-text, #f0f2f5); }
body.gladio-site :is(.theme-toggle, .theme-select):focus-visible { outline-color: #ff7c8a; }

@media (forced-colors: active) {
.theme-toggle, .theme-select { border: 1px solid ButtonText; }
.theme-toggle:focus-visible, .theme-select:focus-visible { outline-color: Highlight; }
}
@media print {
html[data-theme="dark"] { color-scheme: light; --paper: #fff; --ink: #222; --muted: #444; --line: #aaa; --lavender: #f2eef5; --theme-surface: #fff; --theme-surface-alt: #f6f4f7; --theme-accent: #4c355f; --theme-border: #aaa; }
html[data-theme="dark"] body:not(.gladio-site) :is(.footer-brand > img, .hero-cinema .hero-logo, .project-visual--logo > img, .product-card .project-visual > img, .hermetic-media > img, .educator-brand img) { filter: none; }
.theme-toggle, .theme-select { display: none !important; }
}
