/* Theme tokens. Change colours here and every text and surface role follows. */
:root {
  --color-slate: #171f26;
  --color-charcoal: #2f383d;
  --color-lime: #a6ce39;
  --color-lime-hover: #96bb33;
  --color-sage: #dde6d8;
  --color-stone: #d6d8d7;
  --color-surface: #f7f6f2;
  --color-cream: #f0eee7;
  --color-text: var(--color-charcoal);
  --color-text-muted: #5c6568;
  --color-text-accent: #a6ce39;
  --color-text-on-dark: var(--color-surface);
  --color-text-on-dark-muted: #8e9496;
  --color-lime-on-dark: var(--color-lime);
  --color-focus: var(--color-slate);
  --color-focus-on-dark: var(--color-lime);

  --deep-slate: var(--color-slate);
  --charcoal: var(--color-charcoal);
  --lime: var(--color-lime);
  --lime-hover: var(--color-lime-hover);
  --pale-sage: var(--color-sage);
  --cool-stone: var(--color-stone);
  --warm-off-white: var(--color-surface);
  --warm-cream: var(--color-cream);
  --text-on-light: var(--color-text);
  --text-on-light-muted: var(--color-text-muted);
  --text-on-dark: var(--color-text-on-dark);
  --text-on-dark-muted: var(--color-text-on-dark-muted);

  --font-sans:
    "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-serif: var(--font-sans);

  --sage: #7b9463;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-6: 24px;
  --s-8: 32px;
  --s-12: 48px;
  --s-16: 64px;
  --s-24: 96px;
  --s-32: 128px;
  --s-40: 160px;
  --container-wide: 1440px;
  --container-prose: 760px;
  --measure: 720px;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-inout: cubic-bezier(0.4, 0, 0.2, 1);
  --motion-micro: 150ms;
  --motion-standard: 400ms;
  --motion-large: 700ms;
  --motion-linger: 1200ms;
  --shadow-sm: 0 1px 3px rgba(23, 31, 38, 0.06);
  --shadow-md: 0 6px 20px rgba(23, 31, 38, 0.08);
  --shadow-lg: 0 20px 60px rgba(23, 31, 38, 0.12);

  --touch-target: 44px;
  --space-gutter: 1rem;
  --footer-tagline-padding: 4rem;
  --footer-tagline-margin: 2rem;
  --nav-panel-width: 100%;
  --site-header-border: 1px;
  --site-header-height: calc(
    var(--touch-target) + 1.5rem + var(--site-header-border)
  );
  --nav-toggle-bar: 2px;
  --nav-toggle-gap: 5px;
  --drawer-duration: 320ms;
  --drawer-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --matrix-min-width: 36rem;
  --container: 1360px;
}

.is-filtered-out,
.is-not-loaded {
  display: none;
}

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

input,
textarea,
button {
  font-family: inherit;
}

.skip-link {
  position: absolute;
  left: var(--space-gutter);
  top: 0;
  z-index: 200;
  transform: translateY(-120%);
  background: var(--color-slate);
  color: var(--color-text-on-dark);
  padding: 0.75rem 1rem;
  border-radius: 0 0 8px 8px;
  font-family: var(--font-sans);
  font-weight: 600;
  text-decoration: none;
}

.skip-link:focus {
  transform: none;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 3px;
}

.section--dark :focus-visible,
.proof :focus-visible,
.closing :focus-visible,
.pkg-panel-dark :focus-visible,
.site-header :focus-visible {
  outline-color: var(--color-focus-on-dark);
}

body {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-sans);
}

.accent,
.accent-italic,
.u,
.footer-tagline em,
.section-header h2 em,
.built-for h2 em,
.cta-inner h2 em,
.hero-content h1 em,
.sector-clients,
.footer-signal-eyebrow,
.receipt-figure,
.award-item-icon,
.faq-item[open] .faq-q,
.pkg-compare-link,
.pkg-price-big--lime,
.pkg-total-lime,
.matrix-toggle::after {
  color: var(--color-text-accent);
}

.pkg-compare-link {
  border-bottom-color: var(--color-text-accent);
}

.section--dark em,
.section--dark .accent,
.section--dark .accent-italic,
.final-cta .accent,
.final-cta .accent-italic,
.proof em,
.proof .accent,
.proof-stat strong,
.closing em,
.closing .u,
.hero-kicker,
.pkg-panel-dark .pkg-h2-lime,
.pkg-panel-dark .pkg-plans-from strong,
.eyebrow--dark {
  color: var(--color-lime-on-dark);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
}

.site-header .nav {
  position: relative;
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  border-bottom: var(--site-header-border) solid
    color-mix(in srgb, var(--color-charcoal) 8%, transparent);
}

html.nav-is-open body {
  position: fixed;
  top: var(--nav-scroll-lock, 0);
  left: 0;
  right: 0;
  width: 100%;
}

html.nav-is-open .site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}

.site-header .nav-inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0.75rem 1.5rem;
  min-height: var(--touch-target);
}

.site-header .nav-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--color-text);
  text-decoration: none;
  min-height: var(--touch-target);
}

.site-header .nav-logo svg {
  width: 32px;
  height: 32px;
  color: var(--color-lime);
}

.site-header .nav-brand-reveal {
  display: inline-flex;
  align-items: baseline;
  gap: 0.28em;
  /* overflow: hidden; */
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 0.9375rem;
  line-height: 1;
  letter-spacing: -0.005em;
  color: var(--color-text);
  transition: gap 1000ms var(--ease-out, ease);
}

.site-header .rl-part {
  display: inline-flex;
  align-items: baseline;
}

.site-header .rl-primary {
  font-weight: 500;
  transition:
    letter-spacing 1000ms var(--ease-out, ease),
    font-weight 1000ms var(--ease-out, ease);
}

.site-header .rl-secondary {
  display: inline-block;
  max-width: 20ch;
  opacity: 1;
  white-space: nowrap;
  transition:
    max-width 1100ms var(--ease-out, ease),
    opacity 550ms var(--ease-out, ease) 100ms;
}

.site-header .nav-brand-reveal.is-condensed {
  gap: 0.02em;
}

.site-header .nav-brand-reveal.is-condensed .rl-primary {
  letter-spacing: 0.14em;
  font-weight: 700;
  font-size: 1rem;
}

.site-header .nav-brand-reveal.is-condensed .rl-secondary {
  max-width: 0;
  opacity: 0;
  transition-delay: 0ms;
}

.site-header .nav-toggle {
  display: none;
  width: var(--touch-target);
  height: var(--touch-target);
  border: 0;
  background: transparent;
  padding: 10px;
  flex-direction: column;
  justify-content: center;
  gap: var(--nav-toggle-gap);
  cursor: pointer;
}

.site-header .nav-toggle-bar {
  display: block;
  height: var(--nav-toggle-bar);
  width: 100%;
  background: var(--color-slate);
  transform-origin: center;
  transition:
    transform var(--drawer-duration) var(--drawer-ease),
    opacity var(--drawer-duration) var(--drawer-ease);
}

.site-header .nav-links {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}

.site-header .nav-links a:not(.btn) {
  display: inline-flex;
  align-items: center;
  min-height: var(--touch-target);
  color: var(--color-text);
  font-weight: 500;
  font-size: 0.9375rem;
  text-decoration: none;
}

.site-header .nav-links a[aria-current="page"] {
  color: var(--color-text-accent);
  font-weight: 700;
}

.site-header .nav-links a:not(.btn):hover {
  color: var(--color-text-accent);
}

.site-header .nav-item--menu {
  position: relative;
}

.site-header .nav-item--menu > a:not(.btn)::after {
  content: "";
  width: 0.35em;
  height: 0.35em;
  margin-left: 0.4em;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-0.1em) rotate(45deg);
}

.site-header .nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  white-space: normal;
}

a.btn,
button.btn,
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: var(--touch-target);
  padding: 0.65rem 1.1rem;
  border-radius: 8px;
  border: 1px solid transparent;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

a.btn.btn--primary,
button.btn.btn--primary,
.btn.btn--primary,
a.btn.btn--lime,
.btn.btn--lime {
  background: var(--color-lime);
  color: var(--color-slate);
  border-color: var(--color-lime);
}

a.btn.btn--primary:hover,
button.btn.btn--primary:hover,
.btn.btn--primary:hover,
a.btn.btn--lime:hover,
.btn.btn--lime:hover {
  background: var(--color-lime-hover);
  border-color: var(--color-lime-hover);
  color: var(--color-slate);
}

a.btn.btn--ghost,
a.btn.btn--secondary,
.btn.btn--ghost,
.btn.btn--secondary {
  background: transparent;
  color: var(--color-text);
  border-color: var(--color-charcoal);
}

a.btn.btn--ghost-light,
a.btn.btn--ghost-dark,
.btn.btn--ghost-light,
.btn.btn--ghost-dark {
  background: var(--deep-slate);
  color: var(--color-text-on-dark);
  border-color: color-mix(in srgb, var(--color-text-on-dark) 45%, transparent);
}

.footer p.footer-heading {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text);
  line-height: 1.3;
  margin: 0 0 1rem;
}

@media (min-width: 901px) {
  .site-header .nav {
    backdrop-filter: blur(14px);
  }

  .site-header .nav-inner,
  .site-header .nav-links {
    align-items: stretch;
  }

  .site-header .nav-links > li {
    display: flex;
    align-items: center;
  }

  .site-header .nav-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 2;
    min-width: 16rem;
    max-width: 20rem;
    padding: var(--s-2);
    background: var(--color-surface);
    border: 1px solid color-mix(in srgb, var(--color-charcoal) 8%, transparent);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
  }

  .site-header .nav-item--menu:hover > .nav-menu,
  .site-header .nav-item--menu:focus-within > .nav-menu {
    display: block;
  }

  .site-header .nav-menu a:not(.btn) {
    align-items: flex-start;
    padding: var(--s-2) var(--s-3);
    border-radius: var(--radius-sm);
  }
}

@media (max-width: 900px) {
  .site-header .nav-brand-reveal,
  .site-header .nav-brand-reveal.is-condensed {
    gap: 0.02em;
  }

  .site-header .nav-brand-reveal .rl-primary {
    letter-spacing: 0.14em;
    font-weight: 700;
  }

  .site-header .nav-brand-reveal .rl-secondary {
    max-width: 0;
    opacity: 0;
  }

  .site-header .nav-toggle {
    display: inline-flex;
  }

  .site-header .nav-links {
    display: flex;
    position: fixed;
    top: calc(var(--site-header-height) - var(--site-header-border));
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    width: auto;
    padding: var(--space-gutter);
    background: var(--color-surface);
    overflow-y: auto;
    transform: translateX(100%);
    visibility: hidden;
    transition:
      transform var(--drawer-duration) var(--drawer-ease),
      visibility 0s linear var(--drawer-duration);
  }

  .site-header .nav.is-open {
    background: var(--color-surface);
    border-bottom-color: var(--color-surface);
  }

  .site-header .nav.is-open .nav-links {
    transform: translateX(0);
    visibility: visible;
    transition:
      transform var(--drawer-duration) var(--drawer-ease),
      visibility 0s linear 0s;
  }

  .site-header .nav.is-open .nav-toggle-bar:nth-child(2) {
    transform: translateY(calc(var(--nav-toggle-gap) + var(--nav-toggle-bar)))
      rotate(45deg);
  }

  .site-header .nav.is-open .nav-toggle-bar:nth-child(3) {
    opacity: 0;
  }

  .site-header .nav.is-open .nav-toggle-bar:nth-child(4) {
    transform: translateY(
        calc((var(--nav-toggle-gap) + var(--nav-toggle-bar)) * -1)
      )
      rotate(-45deg);
  }

  .site-header .nav-links a:not(.btn) {
    width: 100%;
    font-size: 1.25rem;
    border-bottom: 1px solid
      color-mix(in srgb, var(--color-charcoal) 10%, transparent);
  }

  .site-header .nav-links a.btn {
    width: 100%;
    margin-top: 1.5rem;
  }

  .site-header .nav-menu {
    display: block;
    position: static;
    min-width: 0;
    max-width: none;
    padding: 0 0 0 var(--s-4);
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  body h1,
  body .hero h1,
  body .hero-copy h1,
  body .hero-content h1,
  body .hero-h1 {
    font-size: clamp(2rem, 9vw, 2.6rem);
  }

  body .nb {
    white-space: normal;
  }

  body .service-grid,
  body .halo-grid,
  body .showcase-grid,
  body .proof-grid,
  body .faq-grid,
  body .footer-grid,
  body .footer-signals {
    grid-template-columns: 1fr;
  }
}

body .packages-frame {
  grid-template-columns: 5fr 8fr;
}

body .pkg-panel-dark,
body .pkg-panel-light {
  margin: 0;
  min-width: 0;
}

body .config-stepper button {
  width: var(--touch-target);
  height: var(--touch-target);
}

body .config-sector-select,
body .config-row,
body .config-stepper {
  max-width: 100%;
}

body .config-row {
  flex-wrap: wrap;
}

body .matrix {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}

@media (max-width: 1024px) {
  body .packages-frame,
  body .pkg-cards-grid,
  body .faq-quote-grid {
    grid-template-columns: 1fr;
  }

  body .pkg-panel-dark,
  body .pkg-panel-light {
    padding: 2.5rem var(--space-gutter);
  }

  body .pkg-vert-hairline {
    width: 100%;
    height: 1px;
    min-height: 0;
  }

  body .matrix-table {
    min-width: var(--matrix-min-width);
  }

  body .matrix .matrix-table thead::before {
    content: "Swipe sideways to compare plans";
    display: block;
    margin-bottom: 0.75rem;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
  }
}

@media (min-width: 1025px) {
  body .pkg-panel-dark {
    padding-left: max(
      var(--space-gutter),
      calc((100% - var(--container)) / 2 + var(--space-gutter))
    );
  }

  body .pkg-panel-light {
    padding-right: max(
      var(--space-gutter),
      calc((100% - var(--container)) / 2 + var(--space-gutter))
    );
  }
}

.wrap {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--s-8, 32px);
}

.wrap-narrow {
  width: 100%;
  max-width: var(--measure, 720px);
  margin-inline: auto;
  padding-inline: var(--s-8, 32px);
}

.sprite-defs {
  position: absolute;
  width: 0;
  height: 0;
}

.article {
  padding-block: var(--s-16);
}

.article-kicker {
  margin: 0 0 var(--s-4);
  color: var(--color-text-muted);
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
}

.article img {
  display: block;
  width: 100%;
  height: auto;
  margin-block: var(--s-6);
}

.article .video-frame {
  margin-block: var(--s-8);
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--deep-slate);
}

.article .video-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.article h1 {
  margin: 0 0 var(--s-6);
  font-size: clamp(2.25rem, 4vw, 3.5rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.article h2 {
  margin: var(--s-12) 0 var(--s-4);
  letter-spacing: -0.02em;
}

.article p,
.article ul,
.article ol {
  margin: 0 0 var(--s-4);
}

.article p,
.article li {
  font-size: 1.0625rem;
  line-height: 1.6;
}

.article a {
  color: var(--color-charcoal);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.article-pdf {
  margin: var(--s-8) 0 0;
}

.article a.btn {
  text-decoration: none;
}

.animate-in,
.animate-scale {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 700ms var(--ease-out, ease),
    transform 700ms var(--ease-out, ease);
}

.animate-scale {
  transform: scale(0.98);
}

.animate-in.is-visible,
.animate-scale.is-visible {
  opacity: 1;
  transform: none;
}

.animate-in.delay-1 {
  transition-delay: 100ms;
}
.animate-in.delay-2 {
  transition-delay: 200ms;
}
.animate-in.delay-3 {
  transition-delay: 300ms;
}
.animate-in.delay-4 {
  transition-delay: 400ms;
}

.footer {
  background: var(--color-surface);
  color: var(--color-text);
  padding: var(--s-8, 96px) 0 var(--s-8, 32px);
}

.footer.footer--dark {
  background: var(--color-slate);
  color: var(--color-text-on-dark);

  p.footer-heading {
    color: white;
  }

  li,
  li a {
    color: var(--color-text-on-dark);
  }
}

.footer-tagline-section {
  padding-bottom: var(--footer-tagline-padding);
  margin-bottom: var(--footer-tagline-margin);
  border-bottom: 1px solid
    color-mix(in srgb, var(--color-charcoal) 10%, transparent);
}

.footer--dark .footer-tagline-section,
.footer--dark .footer-bottom,
.footer--dark .footer-signals {
  border-color: color-mix(in srgb, var(--color-text-on-dark) 16%, transparent);
}

.footer-tagline {
  max-width: 52rem;
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--color-slate);

  /* .accent-italic {
    font-family: var(--font-serif);
  } */
}

.footer--dark .footer-tagline {
  color: var(--color-text-on-dark);
}

.footer-tagline em,
.footer--dark .footer-tagline em {
  font-family: var(--font-serif);
  font-style: normal;
  font-weight: 500;
}

.footer--dark .footer-tagline em {
  color: var(--color-lime-on-dark);
}

.footer-signals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-12, 48px);
  padding-bottom: var(--s-8, 32px);
  margin-bottom: var(--s-8, 32px);
  border-bottom: 1px solid
    color-mix(in srgb, var(--color-charcoal) 10%, transparent);
}

.footer-signal {
  display: flex;
  align-items: center;
  gap: var(--s-6, 24px);
}

.footer-signal + .footer-signal {
  padding-left: var(--s-12, 48px);
  border-left: 1px solid
    color-mix(in srgb, var(--color-charcoal) 10%, transparent);
}

.footer-signal-mark {
  width: 88px;
  height: 88px;
  object-fit: contain;
  flex-shrink: 0;
}

.footer-signal-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.footer-signal-headline {
  font-size: 1.0625rem;
  line-height: 1.3;
  font-weight: 600;
  color: var(--color-text);
}

.footer-signal-detail {
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--color-text-muted);
}

.footer-grid {
  display: grid;
  grid-template-columns: minmax(16rem, 1.6fr) repeat(
      auto-fit,
      minmax(9rem, 1fr)
    );
  gap: var(--s-8, 32px);
  margin-bottom: var(--s-12, 48px);
}

.footer-brand-mark {
  display: flex;
  align-items: center;
  gap: var(--s-3, 12px);
  margin-bottom: var(--s-4, 16px);
}

.footer-brand-mark svg {
  width: 32px;
  height: 32px;
  color: var(--color-lime);
}

.footer-brand-mark-word,
.footer-brand-mark span {
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--color-text);
}

.footer--dark .footer-brand-mark-word,
.footer--dark .footer-brand-mark span {
  color: var(--color-text-on-dark);
}

.footer-brand p {
  max-width: 22rem;
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--color-text-muted);
}

.footer--dark .footer-brand p,
.footer--dark .footer li a,
.footer--dark .footer-bottom,
.footer--dark .footer-bottom a,
.footer--dark .footer-signal-detail {
  color: var(--color-text-on-dark-muted);
}

.footer--dark .footer-signal-headline {
  color: var(--color-text-on-dark);
}

.footer--dark .footer-signal-eyebrow {
  color: var(--color-lime-on-dark);
}

.footer--dark .footer-signal + .footer-signal {
  border-left-color: color-mix(
    in srgb,
    var(--color-text-on-dark) 16%,
    transparent
  );
}

.footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-2, 8px);
}

.footer li,
.footer li a {
  color: var(--color-text-muted);
  font-size: 0.9375rem;
  text-decoration: none;
}

.footer li a:hover,
.footer-bottom a:hover,
.footer-socials a:hover {
  color: var(--color-text-accent);
}

.footer--dark li a:hover,
.footer--dark .footer-bottom a:hover {
  color: var(--color-lime-on-dark);
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-4, 16px);
  padding-top: var(--s-6, 24px);
  border-top: 1px solid
    color-mix(in srgb, var(--color-charcoal) 10%, transparent);
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.footer-bottom p {
  margin: 0;
}

.footer-socials {
  display: flex;
  gap: var(--s-4, 16px);
}

@media (max-width: 1024px) {
  .footer-grid,
  .footer-signals {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  .wrap {
    padding-inline: var(--space-gutter);
  }

  .footer-grid,
  .footer-signals {
    grid-template-columns: 1fr;
  }

  .footer-signal + .footer-signal {
    padding-left: 0;
    padding-top: var(--s-6, 24px);
    border-left: 0;
    border-top: 1px solid
      color-mix(in srgb, var(--color-charcoal) 10%, transparent);
  }

  .footer--dark .footer-signal + .footer-signal {
    border-top-color: color-mix(
      in srgb,
      var(--color-text-on-dark) 16%,
      transparent
    );
  }
}

.demo-modal {
  --demo-embed-min-width: 20rem;
  --demo-embed-height: 700px;
  --demo-modal-max-width: 43rem;
  width: min(var(--demo-modal-max-width), calc(100vw - var(--s-8)));
  max-height: calc(100dvh - var(--s-8));
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--shadow-lg);
  flex-direction: column;
  overflow: hidden;
}

.demo-modal[open] {
  display: flex;
}

.demo-modal::backdrop {
  background: color-mix(in srgb, var(--color-slate) 62%, transparent);
}

.demo-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  gap: var(--s-4);
  padding: var(--s-4) var(--s-6);
  background: var(--color-surface);
  border-bottom: 1px solid
    color-mix(in srgb, var(--color-charcoal) 8%, transparent);
}

.demo-modal-title {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 1.75rem;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.demo-modal-close {
  appearance: none;
  flex: 0 0 auto;
  min-height: var(--touch-target);
  padding: 0 var(--s-4);
  border: 1px solid color-mix(in srgb, var(--color-charcoal) 16%, transparent);
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-text);
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
}

.demo-modal-close:hover {
  background: var(--color-cream);
}

.demo-modal-embed {
  flex: 1 1 auto;
  min-width: var(--demo-embed-min-width);
  min-height: 0;
  height: var(--demo-embed-height);
  max-height: var(--demo-embed-height);
  overflow: hidden;
  line-height: 0;
}

.demo-modal-embed iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 760px) {
  .demo-modal {
    width: calc(100vw - var(--s-4));
    max-height: calc(100dvh - var(--s-4));
  }

  .demo-modal-header {
    padding: var(--s-3) var(--s-4);
  }

  .demo-modal-title {
    font-size: 1.375rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .site-header .nav-links,
  .site-header .nav-menu,
  .site-header .nav-toggle-bar,
  .site-header .nav-brand-reveal,
  .site-header .rl-primary,
  .site-header .rl-secondary,
  .animate-in,
  .animate-scale {
    transition: none;
  }

  .animate-in,
  .animate-scale {
    opacity: 1;
    transform: none;
  }
}
