/* tokens.css */
/* Tokens — authoritative source. */

:root {
  --ty-duration-guide:max(0ms, calc(2200ms + var(--ty-motion-offset, 0ms)));
  --ty-duration-guide-pulse:1000ms;
  --ty-bg: #FFFFFF;
  --ty-surface: #FFFFFF;
  --ty-subtle: #F2F2F2;
  --ty-text: #0D0D0D;
  --ty-muted: #62666B;
  --ty-border: #E2E6E9;
  --ty-accent: #7B92A6;
  --ty-primary: #C5D0D9;
  --ty-primary-hover: #B5C4D0;
  --ty-on-primary: #0D0D0D;
  --ty-link: #405B73;
  --ty-selection: #F2F2F2;
  --ty-card-accent: #405B73;
  --ty-focus: #7B92A6;
  --ty-success: #217A37;
  --ty-success-surface: #E8F8ED;
  --ty-warning: #2199C9;
  --ty-warning-surface: #E9F6FC;
  --ty-danger: #B42318;
  --ty-font: "Red Hat Text", Arial, sans-serif;
  /* Add 300ms here to lengthen every transition by 0.3 seconds. */
  --ty-motion-offset: 0ms;
  --ty-duration-press: max(0ms, calc(100ms + var(--ty-motion-offset)));
  --ty-duration-dialog: max(0ms, calc(180ms + var(--ty-motion-offset)));
  --ty-duration-hover: max(0ms, calc(200ms + var(--ty-motion-offset)));
  --ty-duration-sheet: max(0ms, calc(220ms + var(--ty-motion-offset)));
  --ty-duration-page: max(0ms, calc(280ms + var(--ty-motion-offset)));
  --ty-duration-smooth: max(0ms, calc(300ms + var(--ty-motion-offset)));
  --ty-duration-fade-in: max(0ms, calc(380ms + var(--ty-motion-offset)));
  --ty-duration-layout: max(0ms, calc(400ms + var(--ty-motion-offset)));
  --ty-duration-move-in: max(0ms, calc(420ms + var(--ty-motion-offset)));
  --ty-duration-silverPass: max(0ms, calc(440ms + var(--ty-motion-offset)));
  --ty-duration-chatDock: max(0ms, calc(460ms + var(--ty-motion-offset)));
  --ty-duration-shine: max(0ms, calc(850ms + var(--ty-motion-offset)));
  --ty-duration-flow: max(0ms, calc(1100ms + var(--ty-motion-offset)));
  --ty-ease: cubic-bezier(.2,.8,.2,1);
  --ty-space-4: 4px;
  --ty-space-8: 8px;
  --ty-space-12: 12px;
  --ty-space-16: 16px;
  --ty-space-20: 20px;
  --ty-space-24: 24px;
  --ty-space-28: 28px;
  --ty-space-32: 32px;
  --ty-space-40: 40px;
  --ty-space-48: 48px;
  --ty-space-56: 56px;
  --ty-space-64: 64px;
  --ty-radius-control: 8px;
  --ty-radius-card: 12px;
  --ty-radius-dialog: 16px;
  --ty-radius-mobileSheet: 20px;
  --ty-radius-pill: 999px;
}

[data-theme="dark"] {
  --ty-bg: #000000;
  --ty-surface: #0D0D0D;
  --ty-subtle: #191919;
  --ty-text: #F2F2F2;
  --ty-muted: #A8ADB2;
  --ty-border: #292D31;
  --ty-accent: #7B92A6;
  --ty-primary: #C5D0D9;
  --ty-primary-hover: #D4DEE6;
  --ty-on-primary: #0D0D0D;
  --ty-link: #C5D0D9;
  --ty-selection: #202020;
  --ty-card-accent: #7B92A6;
  --ty-focus: #C5D0D9;
  --ty-success: #72DF8C;
  --ty-success-surface: #102C18;
  --ty-warning: #2199C9;
  --ty-warning-surface: #142C3B;
  --ty-danger: #FF8A80;
}

@font-face {
  font-family:"Red Hat Text";
  font-weight:400;
  font-style:normal;
  font-display:swap;
  src:url(assets/fonts/RedHatText-400.ttf) format("truetype");
}

@font-face {
  font-family:"Red Hat Text";
  font-weight:500;
  font-style:normal;
  font-display:swap;
  src:url(assets/fonts/RedHatText-500.ttf) format("truetype");
}

@font-face {
  font-family:"Red Hat Text";
  font-weight:600;
  font-style:normal;
  font-display:swap;
  src:url(assets/fonts/RedHatText-600.ttf) format("truetype");
}

@font-face {
  font-family:"Red Hat Text";
  font-weight:700;
  font-style:normal;
  font-display:swap;
  src:url(assets/fonts/RedHatText-700.ttf) format("truetype");
}

.segment {
  --thumb-color: var(--ty-bg);
}

body {
  --panel:rgba(255,255,255,.72);
  --panel-solid:#f7f9fa;
  --shadow:0 34px 65px -35px rgba(24,36,48,.38),0 3px 8px -5px rgba(24,36,48,.2);
}

[data-theme=dark] body {
  --panel:rgba(22,24,27,.8);
  --panel-solid:#191b1e;
  --shadow:0 35px 65px -25px #0009,0 1px 0 #ffffff0a inset;
}

@media(min-width:1051px) {
  .header {
    --dropdown-background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.55) 36%,rgba(242,242,242,.94) 100%);
    --dropdown-shadow:0 12px 24px -16px rgba(13,13,13,.12);
  }
}

@media(min-width:1051px) {
  [data-theme=dark] .header {
    --dropdown-background:linear-gradient(180deg,rgba(13,13,13,0) 0%,rgba(13,13,13,.55) 36%,rgba(0,0,0,.94) 100%);
    --dropdown-shadow:0 12px 24px -16px rgba(0,0,0,.25);
  }
}

body {
  --site-slate: #405B73;
  --site-accent: #2199C9;
  --site-guide: var(--site-accent);
  --site-action: var(--site-accent);
  --site-on-action: #FFFFFF;
  --site-accent-soft: #E9F6FC;
  --site-discovery: var(--site-accent);
  --content-max: 1440px;
  --ty-anchor-offset: 96px;
  --content-gutter: min(7vw,calc(var(--content-max) * .07));
  --content-inline-offset: max(var(--content-gutter),calc((100vw - var(--content-max))/2 + var(--content-gutter)));
}

[data-theme="dark"] body {
  --site-guide: #6BD4FF;
  --site-accent: #2199C9;
  --site-slate: #C5D0D9;
  --site-accent-soft: #142C3B;
}

@media(max-width:700px) {
  body {
    --content-gutter:var(--ty-space-28);
  }
}

@media(max-width:1050px) {
  body { --ty-anchor-offset:80px; }
}

/* base.css */
/* Base — authoritative source. */

* {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  background: var(--ty-bg);
}

html[data-theme="dark"] {
  color-scheme: dark;
}

body {
  margin: 0;
  min-height: 100svh;
  background: linear-gradient(155deg, #FFFFFF 0%, #F7F8F9 32%, #E9EDF0 68%, #DDE3E8 100%);
  background-attachment: fixed;
  color: var(--ty-text);
  font-family: var(--ty-font);
  -webkit-font-smoothing: antialiased;
}

[data-theme="dark"] body {
  background-image: radial-gradient(ellipse at 85% 65%, #252525 0%, transparent 65%), linear-gradient(155deg, #000000 0%, #101010 48%, #202020 100%);
}

button {
  -webkit-tap-highlight-color: transparent;
}

a {
  -webkit-tap-highlight-color: transparent;
}

button {
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

main {
  min-height: calc(100svh - 108px);
}

[data-section-heading] {
  scroll-margin-block-start:var(--ty-anchor-offset);
}

@media (max-width: 1050px) {
  main {
    min-height: calc(100svh - 88px);
  }
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at var(--light-x,78%) var(--light-y,44%), rgba(123,146,166,.24), transparent 65%);
}

[data-theme="dark"] body::before {
  background: radial-gradient(ellipse at var(--light-x,78%) var(--light-y,44%), rgba(123,146,166,.10), transparent 65%);
}

#canvas {
  position: relative;
  overflow: clip;
}

#canvas {
  padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px));
}

html {
  scroll-behavior:smooth;
  /* Heading targets own their offset; do not add it a second time here. */
  scroll-padding-top:0;
}

button {
  font:inherit;
}

button {
  color:inherit;
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
}

@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after {
    animation:none!important;
    transition:none!important;
  }
}

/* page-motion.css */
/* Shared document arrival. Keep the header and background steady, and never
   transform the main element: it contains sticky chapter navigation. */
@keyframes page-arrive {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes intro-arrive {
  from { transform: translateY(6px); }
  to { transform: translateY(0); }
}

@media (prefers-reduced-motion: no-preference) {
  #canvas {
    animation: page-arrive var(--ty-duration-page) var(--ty-ease) backwards;
  }

  #canvas > .page-intro,
  #canvas > .hero {
    animation: intro-arrive var(--ty-duration-page) var(--ty-ease) backwards;
  }
}

/* navigation.css */
/* Navigation — authoritative source. */

.header {
  background: transparent;
  position: relative;
  z-index: 5;
}

.header-inner {
  max-width: 1600px;
  min-height: 108px;
  margin: 0 auto;
  padding: 0 48px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.brand {
  display: flex;
  align-items: center;
  min-height: 48px;
  flex-shrink: 0;
  margin-right: auto;
}

.brand img {
  display: block;
  width: 140px;
  height: auto;
}

.brand .logo-dark {
  display: none;
}

[data-theme="dark"] .brand .logo-light {
  display: none;
}

[data-theme="dark"] .brand .logo-dark {
  display: block;
}

nav {
  display: flex;
  align-items: center;
  gap: 36px;
}

.nav-links {
  display: flex;
  align-items: center;
}

.nav-links a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 48px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -.15px;
}

.nav-links a::after {
  content: '';
  position: absolute;
  bottom: 6px;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--ty-link);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--ty-duration-hover) var(--ty-ease);
}

.nav-links a[aria-current="page"]::after {
  transform: scaleX(1);
}

.nav-utilities {
  display: flex;
  align-items: center;
  gap: 24px;
}

.segment {
  display: flex;
  padding: 2px;
  border-radius: 999px;
  background: var(--ty-subtle);
  position: relative;
  isolation: isolate;
}

.segment-thumb {
  position: absolute;
  z-index: -1;
  width: 28px;
  height: 28px;
  top: 2px;
  left: 2px;
  border-radius: 50%;
  background: var(--thumb-color);
  box-shadow: 0 1px 3px #0000000a;
  transition: transform var(--ty-duration-hover) var(--ty-ease);
}

.segment.is-second .segment-thumb {
  transform: translateX(28px);
}

.segment button {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ty-muted);
  display: grid;
  place-items: center;
  font-size: 10px;
  font-weight: 500;
}

.segment button[aria-pressed="true"] {
  color: var(--ty-text);
}

.menu-toggle {
  display: none;
}

@media (hover: hover) {
  .nav-links a:hover::after {
    transform: scaleX(1);
  }
}

@media (hover: hover) {
  .segment button:hover {
    color: var(--ty-text);
  }
}

@media (max-width: 1200px) {
  .header-inner {
    padding: 0 28px;
    gap: 16px;
  }
}

@media (max-width: 1200px) {
  nav {
    gap: 24px;
  }
}

@media (max-width: 1200px) {
  .nav-links {
    gap: 20px;
  }
}

@media (max-width: 1200px) {
  .nav-utilities {
    gap: 16px;
  }
}

@media (max-width: 1200px) {
  .brand img {
    width: 128px;
  }
}

@media (max-width: 1050px) {
  .header-inner {
    height: 88px;
    min-height: 88px;
    padding: 0 20px;
    justify-content: space-between;
  }
}

@media (max-width: 1050px) {
  .brand {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
  }
}

@media (max-width: 1050px) {
  .brand img {
    width: 124px;
  }
}

@media (max-width: 1050px) {
  .menu-toggle {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ty-text);
  }
}

@media (max-width: 1050px) {
  .menu-toggle__icon {
    position: relative;
    width: 24px;
    height: 24px;
    display: block;
  }
}

@media (max-width: 1050px) {
  .menu-toggle__icon span {
    position: absolute;
    left: 2px;
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(0deg);
    transition: top var(--ty-duration-dialog) var(--ty-ease), width var(--ty-duration-dialog) var(--ty-ease), left var(--ty-duration-dialog) var(--ty-ease), transform var(--ty-duration-dialog) var(--ty-ease);
  }
}

@media (max-width: 1050px) {
  .menu-toggle__icon span:nth-child(1) {
    top: 8px;
  }
}

@media (max-width: 1050px) {
  .menu-toggle__icon span:nth-child(2) {
    top: 14px;
  }
}

@media (max-width: 1050px) {
  .menu-toggle[aria-expanded="true"] .menu-toggle__icon span:nth-child(1) {
    top: 11px;
    transform: rotate(45deg);
  }
}

@media (max-width: 1050px) {
  .menu-toggle[aria-expanded="true"] .menu-toggle__icon span:nth-child(2) {
    top: 11px;
    transform: rotate(-45deg);
  }
}

@media (max-width: 1050px) {
  nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity var(--ty-duration-sheet) var(--ty-ease), transform var(--ty-duration-sheet) var(--ty-ease), visibility 0s var(--ty-duration-sheet) var(--ty-ease);
    position: absolute;
    top: 88px;
    left: 0;
    border-bottom: 1px solid var(--ty-border);
    max-height: calc(100svh - 88px);
    overflow-y: auto;
  }
}

@media (max-width: 1050px) {
  nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition-delay: 0s;
  }
}

@media (max-width: 1050px) {
  .nav-links {
    flex-direction: column;
    align-items: stretch;
  }
}

@media (max-width: 1050px) {
  .nav-links a {
    font-weight: 400;
    width: fit-content;
  }
}

@media (max-width: 1050px) {
  .nav-utilities {
    border-top: 1px solid var(--ty-border);
    padding-top: 24px;
    justify-content: space-between;
  }
}

@media (max-width: 360px) {
  .header-inner {
    padding: 0 12px;
  }
}

@media (max-width: 360px) {
  .brand img {
    width: 108px;
  }
}

.segment svg {
  width: 14px;
  height: 14px;
}

.preferences {
  position: relative;
  flex-shrink: 0;
}

.preferences-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 44px;
  min-width: 60px;
  padding: 0 8px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--ty-muted);
  transition: background var(--ty-duration-dialog) var(--ty-ease), color var(--ty-duration-dialog) var(--ty-ease);
}

.preferences-toggle {
  position: relative;
  isolation: isolate;
}

.preferences-toggle::before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  top: 50%;
  height: 32px;
  transform: translateY(-50%);
  border-radius: 999px;
  background: transparent;
  transition: background var(--ty-duration-dialog) var(--ty-ease);
}

.preferences-toggle:hover {
  color: var(--ty-text);
}

.preferences-toggle[aria-expanded="true"] {
  color: var(--ty-text);
}

.preferences-toggle:hover::before {
  background: var(--ty-subtle);
}

.preferences-toggle[aria-expanded="true"]::before {
  background: var(--ty-subtle);
}

.current-language {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .25px;
}

.preference-symbol {
  width: 20px;
  height: 20px;
  transition: transform var(--ty-duration-sheet) var(--ty-ease);
}

.half-disc {
  fill: currentColor;
  stroke: none;
}

.preferences-toggle {
  line-height: 20px;
}

.current-language {
  display: block;
  line-height: 20px;
}

@media (min-width: 1051px) {
  .nav-links a {
    line-height: 20px;
  }
}

@media (min-width: 1051px) {
  .preferences-toggle {
    height: 48px;
  }
}

@media (min-width: 1051px) {
  .preferences-toggle .preference-symbol {
    position: relative;
    top: 1px;
  }
}

@media (min-width: 1051px) {
  .preferences-toggle .current-language {
    position: relative;
    top: 1px;
  }
}

.preferences-toggle[aria-expanded="true"] .preference-symbol {
  transform: rotate(45deg);
}

.preferences-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 12px);
  width: 256px;
  padding: 6px 14px;
  border: 1px solid var(--ty-border);
  border-radius: 16px;
  background: var(--ty-bg);
  box-shadow: 0 12px 36px #0000000c;
  animation: preferences-in var(--ty-duration-dialog) var(--ty-ease) both;
}

.preferences-panel[hidden] {
  display: none;
}

.preference-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  min-height: 40px;
  font-size: 12px;
}

.preference-row + .preference-row {
  border-top: 1px solid var(--ty-border);
}

@keyframes preferences-in {
  from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .header nav {
    transition: none;
    transform: none;
  }

  .preferences-panel {
    animation: none;
  }
}

@media (max-width: 1050px) {
  nav {
    width: 50%;
    right: auto;
    padding: 20px 32px 24px;
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 36%, rgba(242,242,242,.94) 100%);
    border: 0;
    border-bottom-right-radius: 12px;
  }
}

@media (max-width: 1050px) {
  [data-theme="dark"] nav {
    background: linear-gradient(180deg, rgba(13,13,13,0) 0%, rgba(13,13,13,.55) 36%, rgba(0,0,0,.94) 100%);
  }
}

@media (max-width: 1050px) {
  .nav-links {
    gap: 4px;
  }
}

@media (max-width: 1050px) {
  .nav-links a {
    font-size: 16px;
    line-height: 1.4;
    min-height: 44px;
    max-width: 100%;
  }
}

@media (max-width: 1050px) {
  nav.is-open {
    gap: 24px;
  }
}

@media (max-width: 1050px) {
  nav .preferences {
    align-self: stretch;
  }
}

@media (max-width: 1050px) {
  nav .preferences-toggle {
    display: none;
  }
}

@media (max-width: 1050px) {
  nav .preferences-panel {
    position: static;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    width: auto;
    padding: 16px 0 0;
    border: 0;
    border-top: 1px solid var(--ty-border);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    animation: none;
  }
}

@media (max-width: 1050px) {
  nav .preference-row {
    min-height: 32px;
    border: 0;
  }
}

@media (max-width: 1050px) {
  nav .preference-row + .preference-row {
    border: 0;
  }
}

@media (max-width: 1050px) {
  nav .preference-row > span {
    display: none;
  }
}

@media (max-width: 360px) {
  nav {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (max-width: 360px) {
  nav .preferences-panel {
    gap: 6px;
  }
}

@media (max-width: 360px) {
  nav .segment button {
    width: 24px;
  }
}

@media (max-width: 360px) {
  nav .segment-thumb {
    width: 24px;
  }
}

@media (max-width: 360px) {
  nav .segment.is-second .segment-thumb {
    transform: translateX(24px);
  }
}

@media (min-width: 1051px) {
  .preferences-panel {
    border: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 36%, rgba(242,242,242,.94) 100%);
    box-shadow: 0 12px 24px -16px rgba(13,13,13,.12);
  }
}

@media (min-width: 1051px) {
  [data-theme="dark"] .preferences-panel {
    background: linear-gradient(180deg, rgba(13,13,13,0) 0%, rgba(13,13,13,.55) 36%, rgba(0,0,0,.94) 100%);
    box-shadow: 0 12px 24px -16px rgba(0,0,0,.25);
  }
}

@media (max-width:1050px) {
  .header:has(nav.is-open) + main .hero-copy {
    opacity: .08;
  }
}

@media (max-width:1050px) {
  nav {
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }
}

.nav-links {
  gap:20px;
}

.nav-family {
  position:relative;
  display:flex;
  align-items:center;
  gap:2px;
}

.nav-links .family-panel a {
  font-size:13px;
  min-height:38px;
  line-height:1.35;
}

.nav-links .family-panel a::after {
  bottom:3px;
}

.language-link {
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  font-size:10px;
  color:var(--ty-muted);
}

.language-link[aria-current] {
  color:var(--ty-text);
}

.preferences-panel {
  z-index:20;
  backdrop-filter:blur(20px);
}

.footer-intro .brand {
  margin:0;
  position:static;
  transform:none;
}

.language-home {
  padding:10vh 8%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:25px;
}

.language-home h1 {
  font-size:clamp(44px,7vw,90px);
  letter-spacing:-.05em;
  font-weight:500;
  margin:50px 0 0;
}

.language-home p {
  font-size:24px;
  color:var(--ty-muted);
  margin:0;
}

.language-home>div {
  display:flex;
  gap:15px;
  margin:25px 0;
}

.language-home>a {
  font-size:12px;
}

@media(min-width:1051px) {
  .header-inner {
    gap:16px;
  }
}

@media(min-width:1051px) {
  .header nav {
    gap:18px;
  }
}

@media(min-width:1051px) {
  .nav-links {
    gap:15px;
  }
}

@media(max-width:1050px) {
  .nav-family {
    flex-wrap:wrap;
    justify-content:space-between;
    gap:0;
  }
}

@media(max-width:1050px) {
  .nav-family>a {
    flex:1;
  }
}

@media(max-width:1050px) {
  .nav-family .family-toggle {
    width:24px;
  }
}

/* Keep a current category's adjacent disclosure affordance in sync with its blue underline. */
@media(max-width:1050px) {
  .nav-family:has(> a:is([aria-current="page"], [data-current-group])) > .family-toggle {
    color:var(--site-accent);
  }
}

@media(max-width:1050px) {
  .nav-links .family-panel a {
    font-size:12px;
    min-height:36px;
    line-height:1.5;
    border-radius:6px;
    transition:background-color var(--ty-duration-hover) var(--ty-ease), color var(--ty-duration-hover) var(--ty-ease), box-shadow var(--ty-duration-hover) var(--ty-ease);
  }
  .nav-links .family-panel a:is(:hover, :focus-visible, :active) {
    color:var(--site-accent);
    background:color-mix(in srgb,var(--site-accent) 12%,transparent);
    box-shadow:inset 3px 0 var(--site-accent);
  }
}

@media(max-width:1050px) {
  .nav-links .family-panel a::after {
    display:none;
  }
}

@media(max-width:1050px) {
  .header nav {
    backdrop-filter:blur(24px);
  }
}

.nav-links a[data-current-group]::after {
  transform:scaleX(1);
}

@media(min-width:1051px) {
  .header .family-panel {
    top:calc(100% + 12px);
    border:0;
    border-radius:16px;
    background:var(--dropdown-background);
    box-shadow:var(--dropdown-shadow);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    animation:preferences-in var(--ty-duration-dialog) var(--ty-ease) both;
  }
}

@media(min-width:1051px) {
  .header .preferences-panel {
    top:calc(100% + 12px);
    border:0;
    border-radius:16px;
    background:var(--dropdown-background);
    box-shadow:var(--dropdown-shadow);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    animation:preferences-in var(--ty-duration-dialog) var(--ty-ease) both;
  }
}

@media(max-width:700px) {
  .header nav {
    padding-right:20px;
  }
}

@media(max-width:700px) {
  .nav-family>a {
    font-size:14px;
  }
}

@media(max-width:700px) {
  .nav-family .family-toggle {
    width:20px;
  }
}

@media(max-width:700px) {
  .header nav .preferences-panel {
    gap:5px;
  }
}

@media(max-width:700px) {
  .header nav .segment button {
    width:24px;
    height:26px;
  }
}

@media(max-width:700px) {
  .header nav .language-link {
    width:24px;
    height:26px;
  }
}

@media(max-width:700px) {
  .header nav .segment-thumb {
    width:24px;
    height:26px;
  }
}

@media(max-width:700px) {
  .header nav .segment.is-second .segment-thumb {
    transform:translateX(24px);
  }
}

body .nav-links a::after {
  background:var(--site-accent);
}

body .nav-family:has(> .family-toggle[aria-expanded="true"]) > a::after {
  transform:scaleX(1);
  background:linear-gradient(100deg,var(--site-accent) 0%,var(--site-accent) 40%,#6BD4FF 47%,#D9F4FF 50%,#6BD4FF 53%,var(--site-accent) 60%,var(--site-accent) 100%);
  background-size:300% 100%;
  background-position:0% 50%;
  animation:nav-blue-shine var(--ty-duration-shine) var(--ty-ease) both;
}

@keyframes nav-blue-shine {
  0% { background-position:100% 50%; opacity:.65; }
  35% { opacity:1; }
  100% { background-position:0% 50%; opacity:1; }
}

@media(prefers-reduced-motion:reduce) {
  body .nav-family:has(> .family-toggle[aria-expanded="true"]) > a::after {
    animation:none;
    background:var(--site-accent);
  }
}


/* hero.css */
/* Hero — authoritative source. */

.hero {
  position: relative;
  min-height: max(820px, calc(115svh - 108px));
  margin: 0 auto;
}

.hero-copy {
  position: relative;
  z-index: 2;
  width: 51%;
  padding: clamp(130px, 16vh, 190px) 0 0 48px;
}

.hero h1 {
  margin: 0;
  font-weight: 500;
  letter-spacing: -.065em;
}

.hero-main {
  display: block;
  max-width: 8.2em;
  font-size: clamp(60px, 6.1vw, 96px);
  line-height: 1.06;
  text-wrap: balance;
}

.hero-secondary {
  display: block;
  margin-top: 28px;
  font-size: clamp(28px, 3vw, 44px);
  line-height: 1.2;
  letter-spacing: -.045em;
  font-weight: 400;
  color: var(--ty-muted);
}

.hero-product {
  position: absolute;
  left: 58%;
  top: 60px;
  width: 84%;
  margin: 0;
  transform: translateY(var(--product-lift,0px));
}

.product-frame {
  border-radius: 16px;
  background: #edf0f2;
  box-shadow: 0 2px 3px rgba(13,13,13,.15), 8px 14px 20px -10px rgba(13,13,13,.28), 28px 42px 48px -22px rgba(13,13,13,.32), 55px 80px 85px -32px rgba(13,13,13,.26);
}

.product-frame img {
  width: 100%;
  height: auto;
  border-radius: inherit;
}

.product-frame img {
  display: none;
}

[data-theme="dark"] .product-frame {
  background: #151719;
  box-shadow: 0 0 0 1px rgba(197,208,217,.09), 0 3px 6px rgba(0,0,0,.5), 15px 28px 35px -12px rgba(0,0,0,.65), 45px 65px 90px -25px rgba(0,0,0,.7);
}

html[lang="de"][data-theme="light"] .product-de-light {
  display: block;
}

html[lang="de"][data-theme="dark"] .product-de-dark {
  display: block;
}

html[lang="en"][data-theme="light"] .product-en-light {
  display: block;
}

html[lang="en"][data-theme="dark"] .product-en-dark {
  display: block;
}

.hero-product figcaption {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  letter-spacing: .02em;
  color: var(--ty-muted);
}

.caption-line {
  width: 24px;
  height: 1px;
  background: currentColor;
  opacity: .5;
}

@media (max-width:1200px) and (min-width:1051px) {
  .hero-copy {
    padding-left: 28px;
  }
}

@media (max-width:1050px) {
  .hero {
    min-height: 1000px;
  }
}

@media (max-width:1050px) {
  .hero-copy {
    padding: 70px 32px 0;
    width: 100%;
  }
}

@media (max-width:1050px) {
  .hero-main {
    font-size: clamp(52px,8vw,76px);
    max-width: 8.5em;
  }
}

@media (max-width:1050px) {
  .hero-secondary {
    font-size: clamp(27px,4.4vw,38px);
    margin-top: 20px;
  }
}

@media (max-width:1050px) {
  .product-frame {
    border-radius: 12px;
  }
}

@media (max-width:1050px) {
  .hero-product figcaption {
    margin-top: 26px;
  }
}

@media (max-width:1050px) {
  .hero-copy {
    transition: opacity var(--ty-duration-dialog) var(--ty-ease);
  }
}

@media (max-width:600px) {
  .hero-main {
    font-size: clamp(45px,12vw,66px);
  }
}

@media (max-width:600px) {
  .hero-secondary {
    font-size: 28px;
  }
}

@media (max-width:600px) {
  .hero-product {
    top: 345px;
    left: 10%;
    width: 180%;
  }
}

@media (max-width:600px) {
  .product-frame {
    border-radius: 7px;
  }
}

@media (max-width:360px) {
  .hero-copy {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (max-width:360px) {
  .hero-secondary {
    font-size: 25px;
  }
}

@media (min-width:1051px) {
  .hero-product {
    left: var(--product-left, 58%);
  }
}

.product-frame {
  position: relative;
}

.product-chat {
  position: relative;
  transition: opacity var(--ty-duration-smooth) var(--ty-ease);
}

.product-agents {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--ty-duration-smooth) var(--ty-ease);
}

.product-agents img {
  height: 100%;
}

.product-frame[data-view="agents"] .product-agents {
  opacity: 1;
}

.product-frame[data-view="agents"] .product-chat {
  opacity: 1;
}

.product-hotspots {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.product-hotspot {
  position: absolute;
  left: 1.6%;
  width: 15.5%;
  height: 6.3%;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  pointer-events: auto;
}

.hotspot-chat {
  top: 17.4%;
}

.hotspot-agents {
  top: 24.1%;
}

.product-hotspot:focus-visible {
  outline: 2px solid var(--ty-link);
  outline-offset: -2px;
  background: rgba(123,146,166,.08);
}

@media (max-width:1050px) {
  .hero-product {
    position: relative;
    top: auto;
    left: 8%;
    width: 144%;
    margin-top: 40px;
  }
}

@media (max-width:600px) {
  .hero {
    min-height: 760px;
  }
}

.product-brains {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--ty-duration-smooth) var(--ty-ease);
}

.product-brains img {
  height: 100%;
}

.product-frame[data-view="brains"] .product-brains {
  opacity: 1;
}

.hotspot-brains {
  top: 30.9%;
}

.product-requests {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--ty-duration-smooth) var(--ty-ease);
}

.product-requests img {
  height: 100%;
}

.product-frame[data-view="requests"] .product-requests {
  opacity: 1;
}

.hotspot-requests {
  top: 37.6%;
}

.product-hotspot:disabled {
  pointer-events: none;
}

.product-company {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--ty-duration-smooth) var(--ty-ease);
}

.product-company img {
  height: 100%;
}

.product-frame[data-view="company"] .product-company {
  opacity: 1;
}

.hotspot-company {
  top: 44.3%;
}

.product-discovery {
  margin-top: 24px;
}

.product-hint {
  margin: 0;
  color: var(--ty-muted);
  font-size: 12px;
  letter-spacing: .01em;
}

.product-mobile-controls {
  display: none;
}

.hero-product figcaption {
  margin-top: 12px;
}

@media (max-width:1050px) {
  .product-discovery {
    width: 58.3%;
  }
}

@media (max-width:1050px) {
  .product-mobile-controls {
    display: flex;
  }
}

@media (max-width:1050px) {
  .product-mobile-controls button {
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--ty-muted);
    transition: background var(--ty-duration-hover) var(--ty-ease), color var(--ty-duration-hover) var(--ty-ease);
  }
}

@media (max-width:1050px) {
  .product-mobile-controls button[aria-pressed="true"] {
    color: var(--ty-text);
    background: var(--ty-subtle);
    border-color: var(--ty-border);
  }
}

@media (max-width:1050px) {
  .product-mobile-controls button:disabled {
    opacity: .35;
    cursor: default;
  }
}

@media (max-width:1050px) {
  .product-mobile-controls {
    flex-wrap: nowrap;
    gap: 2px;
    margin-top: 6px;
  }
}

@media (max-width:1050px) {
  .product-mobile-controls button {
    min-height: 30px;
    padding: 0 7px;
    font-size: 11px;
    white-space: nowrap;
  }
}

@media (max-width:360px) {
  .product-mobile-controls button {
    padding: 0 5px;
    font-size: 10px;
  }
}

.product-window {
  overflow:hidden;
}

.product-window img {
  width:150%;
  max-width:none;
  height:auto;
  display:block;
}

@media(max-width:700px) {
  .product-window img {
    width:170%;
  }
}

body .hero-secondary {
  color:var(--site-slate);
}

body .product-hint {
  display:flex;
  align-items:center;
  gap:8px;
}

body .product-hint::before {
  content:'';
  width:5px;
  height:5px;
  flex:none;
  border-radius:50%;
  background:var(--site-accent);
}

body .product-hotspot {
  transition:box-shadow var(--ty-duration-sheet) var(--ty-ease),background var(--ty-duration-sheet) var(--ty-ease);
}

body .product-hotspot[aria-pressed="true"] {
  box-shadow:inset 3px 0 var(--site-accent);
}

body .product-hotspot:focus-visible {
  outline-color:var(--site-accent);
  background:color-mix(in srgb,var(--site-accent) 8%,transparent);
}

body .product-mobile-controls button[aria-pressed="true"] {
  color:var(--ty-text);
  border-color:var(--ty-accent);
  background:color-mix(in srgb,var(--site-slate) 10%,transparent);
}

@media (hover:hover) {
  body .product-hotspot:not(:disabled):hover {
    background:color-mix(in srgb,var(--site-accent) 7%,transparent);
  }
}

body .product-mobile-controls button {
  border-radius:var(--ty-radius-control);
}

.hero {
  max-width:var(--content-max);
}

.hero-copy {
  padding-left:var(--content-gutter);
}

@media(max-width:1050px) {
  .hero-copy {
    padding-right:var(--content-gutter);
  }
}

.hero-invitation {
  margin-top:30px;
  max-width:390px;
}

.hero-invitation p {
  margin:0;
  font-size:17px;
  line-height:1.65;
  color:var(--ty-muted);
  text-wrap:pretty;
}

@media(max-width:1050px) {
  .hero-invitation {
    max-width:420px;
  }
}

@media(max-width:600px) {
  .hero-copy {
    padding-top:40px;
  }
}

@media(max-width:600px) {
  .hero-invitation {
    margin-top:22px;
  }
}

@media(max-width:600px) {
  .hero-invitation p {
    font-size:15px;
    line-height:1.6;
  }
}

@media(max-width:600px) {
  .hero {
    padding-bottom:40px;
  }
}

@media(max-width:700px) {
  .hero-product {
    left:16%;
    width:118%;
    margin-top:48px;
  }
}

@media(max-width:700px) {
  .hero-product .product-discovery {
    width:calc(100vw - 56px);
    margin-left:calc(28px - 16vw);
  }
}

@media(max-width:700px) {
  .hero-product figcaption {
    margin-left:calc(28px - 16vw);
  }
}
/* Platform uses the same interactive hero product as the homepage. */
body[data-page=platform] .hero-main{font-size:clamp(48px,4.7vw,76px);max-width:9em}
body[data-page=platform] .hero-secondary{font-size:clamp(20px,2vw,28px);max-width:23em;line-height:1.45}
body[data-page=platform] .hero-invitation p:empty{display:none}
@media(max-width:1050px){body[data-page=platform] .hero-main{font-size:clamp(38px,7vw,60px)}body[data-page=platform] .hero-secondary{font-size:20px}}
@media(min-width:1051px){body[data-page=platform] .hero-copy{width:calc(var(--product-left,58%) - 24px)}body[data-page=platform] .hero-main,body[data-page=platform] .hero-secondary{max-width:100%}}
/* Brand hierarchy shared across language, theme and viewport. */
.brand-positioning { font-size:clamp(15px,1.4vw,20px); line-height:1.5; font-weight:400; letter-spacing:0; color:var(--ty-text); margin:0 0 24px; }
.hero-product-name { display:block; font-size:22px; font-weight:500; margin-bottom:8px; color:var(--ty-text); }
.hero .hero-invitation { max-width:490px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.hero-actions .action { margin:0; }
.page-positioning { margin-top:24px; }
@media(min-width:1051px){ .hero .hero-copy { width:calc(var(--product-left,58%) - 24px); } }
@media(max-width:600px){ .hero .brand-positioning { margin-bottom:22px; font-size:16px; } .hero-product-name{font-size:20px;} .hero-actions{gap:10px;} .hero-actions .action{font-size:13px;} }

/* editorial.css */
/* Editorial — authoritative source. */

.appearance {
  flex-shrink: 0;
}

.contact-page {
  position: relative;
  max-width: 1600px;
  margin: 0 auto;
  padding: 100px 48px;
}

.contact-page h1 {
  font-size: clamp(40px,6vw,80px);
  letter-spacing: -.05em;
  font-weight: 500;
}

@media(max-width:1050px) {
  .contact-page {
    padding: 60px 32px;
  }
}

.family-toggle {
  border:0;
  background:none;
  width:24px;
  height:40px;
  transition:transform var(--ty-duration-hover) var(--ty-ease);
}

.family-toggle[aria-expanded=true] {
  transform:rotate(180deg);
}

.family-panel {
  position:absolute;
  top:52px;
  right:0;
  width:265px;
  padding:20px 24px;
  background:var(--panel-solid);
  border:1px solid var(--ty-border);
  border-radius:8px;
  box-shadow:var(--shadow);
  animation:preferences-in var(--ty-duration-hover) both;
}

.family-panel>span {
  font-size:11px;
  color:var(--ty-muted);
  display:block;
  margin-bottom:10px;
}

.page-intro {
  min-height:calc(88svh - 108px);
  margin:auto;
  padding:55px 7% 80px;
  display:flex;
  align-items:flex-start;
  flex-direction:column;
  justify-content:center;
}

.breadcrumb {
  display:flex;
  gap:12px;
  font-size:12px;
  color:var(--ty-muted);
  margin-bottom:28px;
}

.breadcrumb a:hover {
  text-decoration:underline;
}

.draft-label {
  display:block;
  font-size:10px;
  color:var(--ty-muted);
  letter-spacing:.02em;
  margin-bottom:20px;
}

.page-intro h1 {
  font-size:clamp(48px,5.8vw,84px);
  font-weight:500;
  line-height:1.06;
  letter-spacing:-.055em;
  max-width:15ch;
  margin:0;
  text-wrap:balance;
}

.intro-deck {
  font-size:clamp(18px,1.65vw,23px);
  line-height:1.6;
  max-width:55ch;
  margin:30px 0 0;
  color:var(--ty-muted);
  text-wrap:pretty;
}

.intro-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:32px;
}

.home-context {
  margin:0 auto;
  padding:0 7% 80px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
}

.home-context p {
  font-size:18px;
  line-height:1.7;
  max-width:52ch;
  color:var(--ty-muted);
}

.story-section {
  margin:0 auto;
  min-height:90svh;
  padding:110px 7%;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  align-items:center;
  gap:8%;
  position:relative;
}

.section-copy h2 {
  font-size:clamp(36px,3.7vw,56px);
  line-height:1.12;
  font-weight:500;
  letter-spacing:-.045em;
  margin:0 0 26px;
  text-wrap:balance;
}

.next-section h2 {
  font-size:clamp(36px,3.7vw,56px);
  line-height:1.12;
  font-weight:500;
  letter-spacing:-.045em;
  margin:0 0 26px;
}

.section-copy p {
  font-size:17px;
  line-height:1.8;
  color:var(--ty-muted);
  margin:0;
  max-width:48ch;
  text-wrap:pretty;
}

.source-link {
  display:inline-block;
  font-size:12px;
  margin-top:24px;
  text-decoration:underline;
  text-underline-offset:4px;
}

.visual-panel {
  margin:0;
  min-width:0;
}

.visual-panel>div {
  background:var(--panel);
  border:1px solid var(--ty-border);
  border-radius:12px;
  box-shadow:var(--shadow);
}

.visual-panel>form {
  background:var(--panel);
  border:1px solid var(--ty-border);
  border-radius:12px;
  box-shadow:var(--shadow);
}

.visual-panel figcaption {
  font-size:10px;
  line-height:1.6;
  color:var(--ty-muted);
  padding:18px 2px 0;
  max-width:54ch;
}

.knowledge-map {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
  text-align:center;
  align-items:center;
}

.knowledge-map span {
  font-size:12px;
  padding:15px 0;
  border-bottom:1px solid var(--ty-border);
}

.knowledge-map strong {
  grid-column:1/-1;
  font-size:44px;
  font-weight:400;
  letter-spacing:-.04em;
  margin:10px;
}

.deployment-layers {
  display:flex;
  flex-direction:column;
  gap:8px;
}

.deployment-layers span {
  font-size:22px;
  font-weight:400;
  padding:18px;
  border:1px solid var(--ty-border);
  border-radius:5px;
}

.deployment-layers span:nth-child(2) {
  margin-left:20px;
}

.deployment-layers span:nth-child(3) {
  margin-left:40px;
}

.work-steps {
  display:flex;
  flex-direction:column;
  gap:12px;
}

.work-steps span {
  font-weight:400;
  padding:14px 16px;
  border-left:2px solid var(--ty-border);
  font-size:16px;
  transition:margin var(--ty-duration-layout) var(--ty-ease),background var(--ty-duration-layout) var(--ty-ease),border-color var(--ty-duration-layout) var(--ty-ease);
}

.work-steps strong {
  font-weight:400;
  padding:14px 16px;
  border-left:2px solid var(--ty-border);
  font-size:16px;
  transition:margin var(--ty-duration-layout) var(--ty-ease),background var(--ty-duration-layout) var(--ty-ease),border-color var(--ty-duration-layout) var(--ty-ease);
}

.work-steps strong {
  border-color:var(--ty-text);
}

.approval-document {
  padding:24px;
  border:1px solid var(--ty-border);
  border-radius:6px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.approval-document>span {
  font-size:11px;
  color:var(--ty-muted);
}

.approval-document strong {
  font-size:21px;
  font-weight:500;
}

.approval-document i {
  height:3px;
  background:var(--ty-border);
  width:100%;
}

.approval-document i:last-child {
  width:60%;
}

.approval-result {
  font-size:13px;
  color:var(--ty-muted);
  line-height:1.7;
  min-height:3.4em;
  margin:0;
}

.value-scene>span {
  font-size:12px;
  color:var(--ty-muted);
}

.value-equation {
  font-size:clamp(25px,2.6vw,38px);
  letter-spacing:-.04em;
}

.value-scene p {
  font-size:14px;
  line-height:1.7;
  color:var(--ty-muted);
}

form small {
  font-size:10px;
  line-height:1.7;
  display:block;
  color:var(--ty-muted);
}

.check-result {
  font-size:13px;
  line-height:1.65;
  margin-top:26px;
  min-height:5em;
  color:var(--ty-muted);
}

.editorial-links>a {
  display:block;
  border-bottom:1px solid var(--ty-border);
  padding:23px 0;
  transition:padding var(--ty-duration-hover) var(--ty-ease);
}

.editorial-links>a:hover {
  padding-left:8px;
}

.editorial-links h3 {
  font-size:21px;
  letter-spacing:-.02em;
  margin:0 0 10px;
  font-weight:500;
}

.editorial-links p {
  font-size:13px;
  line-height:1.7;
  color:var(--ty-muted);
  margin:0 0 10px;
}

.editorial-links>a>span {
  font-size:11px;
  color:var(--ty-link);
}

.only-dark {
  display:none!important;
}

[data-theme=dark] .only-light {
  display:none!important;
}

[data-theme=dark] .only-dark {
  display:block!important;
}

.people-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.portrait-frame {
  aspect-ratio:3/4;
  background:transparent;
  border-radius:5px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  padding:0;
}

.visual-panel > .portrait-frame { background:transparent; border:0; border-radius:0; box-shadow:none; }

.portrait-frame img { display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; }

/* Match the apparent head size of the two source portraits in every viewport. */
.portrait-frame[data-person="bjoern"] img {
  transform:scale(1.12);
  transform-origin:50% 40%;
}

.people-grid h3 {
  font-size:18px;
  font-weight:500;
  margin:18px 0 8px;
}

.people-grid>a>span {
  font-size:12px;
  color:var(--ty-muted);
}

.asset-frame {
  min-height:380px;
  padding:48px 36px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}

.asset-frame strong {
  font-size:32px;
  line-height:1.2;
  letter-spacing:-.03em;
  font-weight:400;
  max-width:12ch;
}

.asset-frame p {
  font-size:13px;
  line-height:1.8;
  color:var(--ty-muted);
  max-width:36ch;
  margin:25px 0 0;
}

.frame-corner {
  position:absolute;
  top:22px;
  right:22px;
  width:22px;
  height:22px;
  border-top:1px solid var(--ty-accent);
  border-right:1px solid var(--ty-accent);
}

.next-section {
  padding:110px 7% 140px;
  margin:auto;
}

.next-links {
  display:flex;
  flex-wrap:wrap;
  gap:20px 32px;
  margin:30px 0 40px;
}

.next-links a {
  font-size:15px;
  border-bottom:1px solid var(--ty-accent);
  padding-bottom:8px;
}

.review-page {
  max-width:1180px;
  margin:auto;
  padding:70px 30px;
}

.review-page h1 {
  font-size:64px;
  letter-spacing:-.04em;
  font-weight:500;
}

.review-page>p {
  line-height:1.7;
  color:var(--ty-muted);
}

.review-list article {
  display:grid;
  grid-template-columns:1fr 160px 70px 70px;
  gap:20px;
  align-items:center;
  border-bottom:1px solid var(--ty-border);
  padding:18px 0;
}

.review-list h2 {
  font-size:17px;
  font-weight:500;
  margin:0;
}

.review-list span {
  font-size:12px;
}

.review-list a {
  font-size:12px;
}

.review-list a {
  text-decoration:underline;
  text-underline-offset:4px;
}

.review-list span {
  color:var(--ty-muted);
}

@media(max-width:1050px) {
  .family-panel {
    position:static;
    flex-basis:100%;
    width:100%;
    padding:0 0 14px;
    background:none;
    border:0;
    box-shadow:none;
    animation:preferences-in var(--ty-duration-dialog);
  }
}

@media(max-width:1050px) {
  .family-panel>span {
    display:none;
  }
}

@media(max-width:1050px) {
  .page-intro {
    padding:55px 7% 70px;
    min-height:75svh;
  }
}

@media(max-width:1050px) {
  .story-section {
    gap:6%;
    padding:90px 7%;
    min-height:80svh;
  }
}

@media(max-width:1050px) {
  .home-context {
    flex-direction:column;
    align-items:flex-start;
  }
}

@media(max-width:700px) {
  .page-intro {
    min-height:calc(92svh - 88px);
    padding:38px 28px 64px;
  }
}

@media(max-width:700px) {
  .page-intro h1 {
    font-size:clamp(39px,11vw,56px);
  }
}

@media(max-width:700px) {
  .intro-deck {
    font-size:17px;
    line-height:1.65;
    margin-top:24px;
  }
}

@media(max-width:700px) {
  .breadcrumb {
    margin-bottom:24px;
    font-size:10px;
  }
}

@media(max-width:700px) {
  .draft-label {
    font-size:9px;
  }
}

@media(max-width:700px) {
  .intro-actions {
    gap:10px;
  }
}

@media(max-width:700px) {
  .story-section {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:34px;
    min-height:0;
    padding:80px 28px;
  }
}

@media(max-width:700px) {
  .section-copy h2 {
    font-size:36px;
    margin-bottom:20px;
  }
}

@media(max-width:700px) {
  .next-section h2 {
    font-size:36px;
    margin-bottom:20px;
  }
}

@media(max-width:700px) {
  .section-copy p {
    font-size:15px;
    line-height:1.8;
  }
}

@media(max-width:700px) {
  .tool-section {
    gap:28px;
  }
}

@media(max-width:700px) {
  .home-context {
    padding:28px 28px 70px;
    gap:16px;
  }
}

@media(max-width:700px) {
  .home-context p {
    font-size:16px;
    margin:0;
  }
}

@media(max-width:700px) {
  .next-section {
    padding:70px 28px 90px;
  }
}

@media(max-width:700px) {
  .next-links {
    flex-direction:column;
    align-items:flex-start;
    font-size:14px;
    gap:20px;
  }
}

@media(max-width:700px) {
  .asset-frame {
    min-height:290px;
    padding:36px 28px;
  }
}

@media(max-width:700px) {
  .asset-frame strong {
    font-size:30px;
  }
}

@media(max-width:700px) {
  .people-grid {
    gap:16px;
  }
}

@media(max-width:700px) {
  .people-grid h3 {
    font-size:16px;
  }
}

@media(max-width:700px) {
  .portrait-frame {
    padding:0;
  }
}

@media(max-width:700px) {
  .review-page h1 {
    font-size:44px;
  }
}

@media(max-width:700px) {
  .review-list article {
    grid-template-columns:1fr 1fr;
    gap:14px;
  }
}

@media(max-width:700px) {
  .review-list h2 {
    grid-column:1/-1;
  }
}

@media(max-width:700px) {
  .review-list span {
    grid-column:1/-1;
  }
}

@media(max-width:700px) {
  .review-page {
    padding:40px 28px;
  }
}

.family-toggle {
  position:relative;
  display:grid;
  place-items:center;
  padding:0;
  font-size:0;
  line-height:1;
  flex-shrink:0;
}

.family-toggle::before {
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:5px;
  height:5px;
  border-right:1px solid currentColor;
  border-bottom:1px solid currentColor;
  transform:translate(-50%,-70%) rotate(45deg);
}

.deployment-layers span {
  transition:transform var(--ty-duration-smooth) var(--ty-ease),color var(--ty-duration-smooth) var(--ty-ease),border-color var(--ty-duration-smooth) var(--ty-ease),background var(--ty-duration-smooth) var(--ty-ease);
}

@media(max-width:700px) {
  .page-intro h1 {
    hyphens:auto;
    overflow-wrap:anywhere;
    max-width:100%;
  }
}

@media(max-width:700px) {
  .section-copy h2 {
    hyphens:auto;
    overflow-wrap:anywhere;
    max-width:100%;
  }
}

@media(prefers-reduced-motion:reduce) {
  *::before {
    animation:none!important;
    transition:none!important;
  }
}

@media(prefers-reduced-motion:reduce) {
  *::after {
    animation:none!important;
    transition:none!important;
  }
}

body .section-copy h2 {
  color:var(--site-slate);
}

body .family-toggle[aria-expanded="true"] {
  color:var(--site-slate);
}

[data-theme="light"] body .family-toggle {
  color:var(--site-accent);
}

.page-intro {
  max-width:var(--content-max);
}

.home-context {
  max-width:var(--content-max);
}

.story-section {
  max-width:var(--content-max);
}

.next-section {
  max-width:var(--content-max);
}

.page-intro {
  padding-left:var(--content-gutter);
  padding-right:var(--content-gutter);
}

.home-context {
  padding-left:var(--content-gutter);
  padding-right:var(--content-gutter);
}

.story-section {
  padding-left:var(--content-gutter);
  padding-right:var(--content-gutter);
}

.next-section {
  padding-left:var(--content-gutter);
  padding-right:var(--content-gutter);
}

.next-section h2 {
  max-width:24ch;
  text-wrap:balance;
}

.closing-copy {
  max-width:62ch;
  font-size:18px;
  line-height:1.75;
  color:var(--ty-muted);
  margin:0 0 30px;
  text-wrap:pretty;
}

.closing-action {
  display:flex;
  align-items:flex-start;
  flex-direction:column;
  gap:12px;
}

.closing-note {
  font-size:13px;
  line-height:1.6;
  color:var(--ty-muted);
  margin:0;
}

.next-section .next-links {
  margin:40px 0 0;
}

@media(max-width:700px) {
  .closing-copy {
    font-size:16px;
    line-height:1.7;
    margin-bottom:24px;
  }
}

@media(max-width:700px) {
  .closing-note {
    font-size:12px;
  }
}

@media(max-width:700px) {
  .next-section .next-links {
    margin-top:32px;
    gap:16px;
  }
}

.statement-end {
  white-space:nowrap;
}

body .statement-dot {
  color:var(--site-discovery);
  text-shadow:none;
}

/* Provider information uses a single reading column without placeholder visuals. */
.legal-section { display:block; }
.legal-section .section-copy { max-width:850px; }

/* Continuous legal documents without marketing intro or closing portraits. */
.legal-intro,.legal-document { max-width:900px; margin-inline:auto; padding-inline:var(--content-gutter); }
.legal-intro { padding-top:clamp(40px,6vw,80px); }
.legal-intro h1 { font-family:var(--ty-font); font-weight:500; letter-spacing:-.045em; font-size:clamp(32px,4vw,52px); line-height:1.15; margin:28px 0 36px; }
.legal-document { padding-bottom:72px; }
.legal-block + .legal-block { margin-top:32px; }
.legal-block h2 { font-family:var(--ty-font); font-weight:500; letter-spacing:-.025em; font-size:clamp(20px,2vw,26px); line-height:1.35; margin:0 0 14px; }
.legal-block p { font-family:var(--ty-font); font-weight:400; font-size:17px; line-height:1.8; margin:0; overflow-wrap:anywhere; }

/* closing-portrait.css */
/* The asset contains the exact subject silhouette, without a background wash.
   Only the last strip of tabletop fades; the person is never opacity-masked. */
.next-section--portrait {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  align-items:center;
  column-gap:clamp(32px,4vw,72px);
}
.closing-message { min-width:0; }
.closing-portrait { position:relative; min-width:0; margin:0; }
.closing-portrait__image {
  display:block;
  width:100%;
  height:auto;
  mask-image:linear-gradient(to bottom,#000 97%,transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom,#000 97%,transparent 100%);
}
.closing-portrait__caption {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
  padding:0 8% 0 0;
  margin-top:-8px;
  color:var(--ty-muted);
  font-size:12px;
  line-height:1.5;
}
.closing-portrait__caption span:first-child { color:var(--ty-text); font-size:14px; }
.closing-portrait[data-person="duo"] .closing-portrait__image {
  mask-image:none;
  -webkit-mask-image:none;
}
.closing-portrait[data-person="duo"] .closing-portrait__caption {
  margin-top:12px;
  padding-right:0;
}
@media(max-width:800px) {
  .next-section--portrait {
    grid-template-columns:100px minmax(0,1fr);
    column-gap:12px;
    row-gap:16px;
    align-items:start;
    overflow:clip;
  }
  .closing-message { display:contents; }
  .closing-main { grid-column:1 / -1; }
  .next-section--portrait .next-links {
    grid-column:1;
    grid-row:2;
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
    margin:0;
    position:relative;
    z-index:1;
  }
  .closing-portrait {
    grid-column:2;
    grid-row:2;
    width:min(100%,340px);
    justify-self:end;
  }
  /* Align the opaque silhouette, not the PNG's transparent right margin. */
  .closing-portrait__frame { overflow:clip; }
  .closing-portrait__image {
    width:calc(100% / var(--portrait-subject-right,1));
    max-width:none;
  }
  .next-section--portrait .next-links a {
    max-width:100%;
    overflow-wrap:anywhere;
  }
  .closing-portrait__caption {
    padding:8px 0 0;
    margin:0;
    font-size:10px;
  }
  .closing-portrait__caption span:first-child { font-size:12px; }
  .closing-portrait[data-person="duo"] {
    grid-column:1 / -1;
    grid-row:3;
    width:100%;
    margin-top:8px;
  }
}

/* diagrams.css */
/* Diagrams — authoritative source. */

.diagram {
  padding:40px;
  min-height:330px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:24px;
}

.diagram-options {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:12px;
}

.diagram-options button {
  background:transparent;
  border:1px solid var(--ty-border);
  padding:8px 10px;
  font-size:11px;
  line-height:1.5;
}

.comparison-toggle button {
  background:transparent;
  border:1px solid var(--ty-border);
  padding:8px 10px;
  font-size:11px;
  line-height:1.5;
}

.diagram-options button[aria-pressed=true] {
  background:var(--ty-primary);
  color:#0d0d0d;
  border-color:var(--ty-primary);
}

.comparison-toggle button[aria-pressed=true] {
  background:var(--ty-primary);
  color:#0d0d0d;
  border-color:var(--ty-primary);
}

.diagram-answer {
  font-size:13px;
  line-height:1.65;
  color:var(--ty-muted);
  min-height:4.95em;
  margin:0;
}

.diagram-answer.is-changing {
  animation:answer-in var(--ty-duration-smooth) both;
}

@keyframes answer-in {
  from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:none}
}

.process-track {
  display:flex;
  flex-direction:column;
  gap:0;
}

.process-track>div {
  display:flex;
  gap:18px;
  align-items:center;
  min-height:62px;
  position:relative;
}

.process-track>div:not(:last-child)::after {
  content:'';
  width:1px;
  height:26px;
  position:absolute;
  top:43px;
  left:16px;
  background:var(--ty-border);
}

.process-track span {
  display:grid;
  place-items:center;
  width:33px;
  height:33px;
  border:1px solid var(--ty-border);
  border-radius:50%;
  font-size:11px;
  color:var(--ty-muted);
}

.process-track strong {
  font-weight:500;
  font-size:17px;
}

.system-row {
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.system-row span {
  font-size:12px;
  border-bottom:1px solid var(--ty-border);
  padding:10px 5px;
  text-align:center;
  flex:1;
}

.architecture {
  gap:0;
}

.connection-line {
  width:1px;
  height:28px;
  background:var(--ty-accent);
  margin:auto;
}

.gateway {
  text-align:center;
  border:1px solid var(--ty-border);
  padding:14px;
  font-size:12px;
  border-radius:5px;
}

.workspace-node {
  text-align:center;
  font-size:38px;
  letter-spacing:-.05em;
  padding:12px;
  color:var(--ty-text);
}

.architecture .diagram-options {
  margin-top:28px;
}

.architecture .diagram-answer {
  margin-top:16px;
}

.word-scene {
  font-size:clamp(35px,4vw,60px);
  line-height:1.05;
  letter-spacing:-.045em;
}

.word-scene span {
  color:var(--ty-accent);
}

.comparison-toggle {
  display:flex;
  gap:8px;
}

.comparison[data-assisted=true] .work-steps span {
  margin-left:24px;
  background:color-mix(in srgb,var(--ty-primary) 20%,transparent);
  border-color:var(--ty-accent);
}

.comparison-caption {
  font-size:12px;
  color:var(--ty-muted);
  line-height:1.7;
  min-height:3.4em;
  margin:0;
}

@media(max-width:1050px) {
  .diagram {
    padding:28px;
  }
}

@media(max-width:700px) {
  .diagram {
    padding:26px;
    min-height:280px;
    gap:20px;
  }
}

@media(max-width:700px) {
  .diagram-answer {
    min-height:4.95em;
    font-size:12px;
  }
}

@media(max-width:700px) {
  .diagram-options {
    gap:5px;
  }
}

@media(max-width:700px) {
  .diagram-options button {
    font-size:10px;
    padding:7px 8px;
  }
}

@media(max-width:700px) {
  .process-track strong {
    font-size:15px;
  }
}

@media(max-width:700px) {
  .word-scene {
    font-size:44px;
  }
}

.process-track>div {
  transition:transform var(--ty-duration-smooth) var(--ty-ease),color var(--ty-duration-smooth) var(--ty-ease),border-color var(--ty-duration-smooth) var(--ty-ease),background var(--ty-duration-smooth) var(--ty-ease);
}

.system-row {
  transition:transform var(--ty-duration-smooth) var(--ty-ease),color var(--ty-duration-smooth) var(--ty-ease),border-color var(--ty-duration-smooth) var(--ty-ease),background var(--ty-duration-smooth) var(--ty-ease);
}

.gateway {
  transition:transform var(--ty-duration-smooth) var(--ty-ease),color var(--ty-duration-smooth) var(--ty-ease),border-color var(--ty-duration-smooth) var(--ty-ease),background var(--ty-duration-smooth) var(--ty-ease);
}

.workspace-node {
  transition:transform var(--ty-duration-smooth) var(--ty-ease),color var(--ty-duration-smooth) var(--ty-ease),border-color var(--ty-duration-smooth) var(--ty-ease),background var(--ty-duration-smooth) var(--ty-ease);
}

.interactive-diagram[data-selected="0"] .process-track>div:nth-child(1) {
  color:var(--ty-link);
  transform:translateX(4px);
}

.interactive-diagram[data-selected="1"] .process-track>div:nth-child(2) {
  color:var(--ty-link);
  transform:translateX(4px);
}

.interactive-diagram[data-selected="2"] .process-track>div:nth-child(3) {
  color:var(--ty-link);
  transform:translateX(4px);
}

.interactive-diagram[data-selected="3"] .process-track>div:nth-child(4) {
  color:var(--ty-link);
  transform:translateX(4px);
}

.interactive-diagram[data-selected="0"] .deployment-layers span:nth-child(1) {
  border-color:var(--ty-accent);
  background:color-mix(in srgb,var(--ty-primary) 12%,transparent);
  transform:translateX(4px);
}

.interactive-diagram[data-selected="1"] .deployment-layers span:nth-child(2) {
  border-color:var(--ty-accent);
  background:color-mix(in srgb,var(--ty-primary) 12%,transparent);
  transform:translateX(4px);
}

.interactive-diagram[data-selected="2"] .deployment-layers span:nth-child(3) {
  border-color:var(--ty-accent);
  background:color-mix(in srgb,var(--ty-primary) 12%,transparent);
  transform:translateX(4px);
}

.architecture[data-selected="0"] .system-row {
  color:var(--ty-link);
  transform:translateY(-3px);
}

.architecture[data-selected="1"] .workspace-node {
  color:var(--ty-link);
  transform:translateY(-3px);
}

.architecture[data-selected="2"] .gateway {
  color:var(--ty-link);
  transform:translateY(-3px);
}

body .word-scene span {
  color:var(--site-slate);
}

body .diagram-options button[aria-pressed="true"] {
  color:var(--ty-text);
  border-color:var(--ty-accent);
  background:color-mix(in srgb,var(--site-slate) 10%,transparent);
}

body .architecture .connection-line {
  position:relative;
  overflow:hidden;
}

body .architecture .connection-line::after {
  content:'';
  position:absolute;
  inset:0;
  transform:translateY(-105%);
}

body .architecture:hover .connection-line::after {
  animation:site-flow var(--ty-duration-flow) var(--ty-ease) both;
}

body .architecture:focus-within .connection-line::after {
  animation:site-flow var(--ty-duration-flow) var(--ty-ease) both;
}

body .architecture[data-selected="0"] .system-row {
  color:var(--site-slate);
}

body .architecture[data-selected="1"] .workspace-node {
  color:var(--site-slate);
}

body .architecture[data-selected="2"] .gateway {
  color:var(--site-slate);
}

@keyframes site-flow {
  to { transform:translateY(105%); }
}

@media (prefers-reduced-motion:reduce) {
  body .architecture .connection-line::after {
    animation:none!important;
  }
}

.diagram-options button {
  border-radius:var(--ty-radius-control);
  transition:background var(--ty-duration-sheet) var(--ty-ease),color var(--ty-duration-sheet) var(--ty-ease),border-color var(--ty-duration-sheet) var(--ty-ease);
}

.comparison-toggle button {
  border-radius:var(--ty-radius-control);
  transition:background var(--ty-duration-sheet) var(--ty-ease),color var(--ty-duration-sheet) var(--ty-ease),border-color var(--ty-duration-sheet) var(--ty-ease);
}

.comparison-toggle button[aria-pressed="true"] {
  color:var(--ty-text);
  border-color:var(--ty-accent);
  background:color-mix(in srgb,var(--site-slate) 10%,transparent);
}

@media(hover:hover) {
  .diagram-options button:not([aria-pressed="true"]):hover {
    background:color-mix(in srgb,var(--site-slate) 6%,transparent);
    border-color:var(--ty-accent);
  }
}

@media(hover:hover) {
  .comparison-toggle button:not([aria-pressed="true"]):hover {
    background:color-mix(in srgb,var(--site-slate) 6%,transparent);
    border-color:var(--ty-accent);
  }
}

.diagram-options button:focus-visible {
  outline:2px solid var(--ty-focus);
  outline-offset:3px;
}

.comparison-toggle button:focus-visible {
  outline:2px solid var(--ty-focus);
  outline-offset:3px;
}

body .architecture .connection-line::after {
  background:var(--site-discovery);
}

/* forms.css */
/* Forms — authoritative source. */

input {
  font:inherit;
}

/* Google hosts the badge in an iframe, so it does not inherit site colours. */
.grecaptcha-badge {
  transform:scale(.57)!important;
  transform-origin:30% 100%!important;
}

[data-theme="dark"] .grecaptcha-badge {
  filter:invert(1) hue-rotate(180deg);
}

textarea {
  font:inherit;
}

input {
  color:var(--ty-text);
}

textarea {
  color:var(--ty-text);
}

.calculator {
  padding:32px;
}

.use-case-check {
  padding:32px;
}

.contact-brief {
  padding:32px;
}

.calc-inputs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px 16px;
}

.calculator label {
  display:flex;
  flex-direction:column;
  gap:10px;
  font-size:12px;
  line-height:1.5;
}

.contact-brief label {
  display:flex;
  flex-direction:column;
  gap:10px;
  font-size:12px;
  line-height:1.5;
}

.calculator input {
  background:var(--ty-bg);
  border:1px solid var(--ty-border);
  border-radius:5px;
  width:100%;
  padding:12px;
}

.contact-brief input {
  background:var(--ty-bg);
  border:1px solid var(--ty-border);
  border-radius:5px;
  width:100%;
  padding:12px;
  font-size:16px;
}

.contact-brief textarea {
  background:var(--ty-bg);
  border:1px solid var(--ty-border);
  border-radius:5px;
  width:100%;
  padding:12px;
  font-size:16px;
}

.review-page>input {
  background:var(--ty-bg);
  border:1px solid var(--ty-border);
  border-radius:5px;
  width:100%;
  padding:12px;
  font-size:16px;
}

.calculator input {
  font-size:21px;
}

.calc-result {
  margin-top:30px;
  padding-top:24px;
  border-top:1px solid var(--ty-border);
  display:flex;
  flex-direction:column;
  gap:8px;
}

.calc-result output {
  font-size:66px;
  line-height:1;
  font-weight:500;
  letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;
}

.calc-result>span {
  font-size:13px;
  color:var(--ty-muted);
}

.calc-formula {
  font-size:11px;
  line-height:1.6;
  margin:20px 0;
  color:var(--ty-muted);
}

.use-case-check>label {
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:17px 0;
  border-bottom:1px solid var(--ty-border);
  font-size:14px;
  line-height:1.6;
  cursor:pointer;
}

.use-case-check input {
  width:18px;
  height:18px;
  flex-shrink:0;
  accent-color:var(--ty-link);
  margin-top:3px;
}

.contact-brief {
  display:flex;
  flex-direction:column;
  gap:24px;
}

.contact-brief textarea {
  resize:vertical;
}

.form-status {
  font-size:12px;
  line-height:1.6;
  margin:0;
}

.review-page>input {
  max-width:420px;
  margin:25px 0;
}

@media(max-width:700px) {
  .calculator {
    padding:24px;
  }
}

@media(max-width:700px) {
  .use-case-check {
    padding:24px;
  }
}

@media(max-width:700px) {
  .contact-brief {
    padding:24px;
  }
}

@media(max-width:700px) {
  .calculator label {
    font-size:11px;
  }
}

@media(max-width:700px) {
  .calc-inputs {
    gap:18px 12px;
  }
}

@media(max-width:700px) {
  .calc-result output {
    font-size:56px;
  }
}

.calculator label {
  justify-content:space-between;
}

.calc-breakdown {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px 16px;
  font-size:11px;
  line-height:1.5;
  margin:24px 0 0;
  color:var(--ty-muted);
}

.calc-breakdown dt {
  margin:0;
}

.calc-breakdown dd {
  margin:0;
}

.calc-breakdown dd {
  text-align:right;
  font-variant-numeric:tabular-nums;
}

.calc-breakdown dt:last-of-type {
  color:var(--ty-text);
  font-weight:500;
}

.calc-breakdown dd:last-of-type {
  color:var(--ty-text);
  font-weight:500;
}
/* Contact: a direct conversation with the founders. */
.contact-page { max-width:1440px; margin:auto; padding:150px 64px 96px; }
.contact-page .breadcrumb { margin-bottom:48px; }
.contact-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px,6vw,96px); align-items:start; }
.contact-introduction h1 { font-size:clamp(44px,4.7vw,72px); line-height:1.08; letter-spacing:-.045em; font-weight:500; margin:0 0 28px; }
.contact-lead { font-size:20px; line-height:1.7; color:var(--ty-muted); max-width:32em; }
.contact-routes { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:30px; }
.contact-routes .action { flex-basis:auto; }
.contact-email { overflow-wrap:anywhere; }
.contact-copy { background:none; border:0; padding:8px 0; text-decoration:underline; color:var(--ty-muted); font:inherit; cursor:pointer; }
.contact-people { margin:32px 0 0; max-width:410px; }
.contact-people img { display:block; width:100%; height:auto; }
.contact-people figcaption { display:flex; flex-direction:column; gap:5px; padding-top:18px; font-size:14px; }
.contact-people figcaption strong { font-weight:500; }
.contact-people figcaption span { color:var(--ty-muted); }
.contact-message { border-top:1px solid var(--ty-border); padding-top:24px; scroll-margin-top:110px; }
.contact-message h2 { font-size:30px; letter-spacing:-.025em; font-weight:500; margin:0 0 12px; }
.contact-message > p, .contact-next p { color:var(--ty-muted); line-height:1.7; }
.contact-form { display:flex; flex-direction:column; gap:20px; margin-top:24px; }
.contact-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
.contact-form label { display:flex; flex-direction:column; gap:9px; font-size:14px; line-height:1.5; }
.contact-form label span { color:var(--ty-muted); }
.contact-form input, .contact-form textarea { width:100%; box-sizing:border-box; background:var(--ty-bg); color:var(--ty-text); border:1px solid var(--ty-border); border-radius:6px; padding:13px; font:inherit; font-size:16px; }
.contact-form textarea { resize:vertical; min-height:130px; }
.contact-form :is(input,textarea):focus-visible { outline:2px solid var(--ty-focus); outline-offset:3px; }
.contact-required, .contact-privacy, .contact-setup, .copy-status { font-size:13px; line-height:1.6; color:var(--ty-muted); margin:0; }
.contact-form .contact-consent { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:center; column-gap:10px; color:var(--ty-muted); cursor:pointer; }
.contact-form .contact-consent input { grid-column:1; width:18px; height:18px; margin:0; padding:0; accent-color:var(--site-accent); }
.contact-form .contact-consent span { grid-column:2; color:inherit; }
.contact-form .contact-consent a { color:var(--ty-text); text-decoration:underline; text-underline-offset:2px; }
.contact-setup { margin-top:12px; }
.contact-form .action { align-self:start; }
.contact-page button:disabled { opacity:.5; cursor:not-allowed; }
.contact-next { margin-top:32px; border-top:1px solid var(--ty-border); padding-top:24px; }
.contact-next h3 { font-size:18px; font-weight:500; margin:0; }
.contact-next p { font-size:15px; }
@media(max-width:800px) {
 .contact-page { padding:110px 24px 56px; }
 .contact-page .breadcrumb { margin-bottom:32px; }
 .contact-layout { grid-template-columns:minmax(0,1fr); gap:36px; }
 .contact-lead { font-size:18px; }
 .contact-people { display:flex; align-items:center; gap:16px; margin-top:24px; max-width:none; }
 .contact-people img { width:125px; }
 .contact-people figcaption { padding:0; font-size:13px; }
 .contact-fields { grid-template-columns:minmax(0,1fr); }
 .contact-form .action { width:100%; }
}
@media(max-width:360px) { .contact-people img { width:95px; } .contact-page { padding-inline:20px; } }
.contact-booking { padding-bottom:30px; margin-bottom:30px; border-bottom:1px solid var(--ty-border); scroll-margin-top:110px; }
.contact-booking > p { color:var(--ty-muted); line-height:1.65; }
.booking-calendar { margin:20px 0; }
.booking-calendar summary { cursor:pointer; font-size:16px; padding:14px 0; color:var(--ty-text); }
.booking-calendar summary:focus-visible { outline:2px solid var(--ty-focus); outline-offset:4px; }
.booking-calendar iframe { display:block; width:100%; height:740px; border:0; margin-top:16px; background:#fff; border-radius:8px; }
.booking-fallback { display:inline-block; padding:10px 0; font-size:14px; }
.booking-new-tab { font-size:12px; }
@media(max-width:800px) { .booking-calendar iframe { height:780px; } }

/* articles.css */
/* Articles — authoritative source. */

.article-byline {
  font-size:11px;
  color:var(--ty-muted);
  margin-top:22px;
}

.article-intro {
  min-height:72svh;
  padding-top:64px;
  padding-bottom:64px;
}

.article-intro h1 {
  font-size:clamp(38px,4.3vw,64px);
  max-width:23ch;
  line-height:1.12;
}

.article-intro .intro-deck {
  max-width:64ch;
}

.long-article {
  max-width:var(--content-max);
  margin:0 auto;
  padding:40px var(--content-gutter) 70px;
}

.article-chapter {
  max-width:740px;
  padding:38px 0 48px;
  scroll-margin-top:70px;
}

.article-chapter + .article-chapter {
  border-top:1px solid var(--ty-border);
}

.article-chapter h2 {
  color:var(--site-slate);
  font-size:clamp(28px,2.8vw,40px);
  font-weight:500;
  line-height:1.2;
  letter-spacing:-.035em;
  margin:0 0 30px;
  text-wrap:balance;
}

.article-chapter h3 {
  font-size:22px;
  font-weight:500;
  line-height:1.4;
  margin:36px 0 18px;
}

.article-chapter p {
  font-size:18px;
  line-height:1.85;
  color:var(--ty-text);
  overflow-wrap:anywhere;
}

.article-chapter li {
  font-size:18px;
  line-height:1.85;
  color:var(--ty-text);
  overflow-wrap:anywhere;
}

.article-chapter p {
  margin:0 0 24px;
}

.article-chapter ul {
  padding-left:23px;
  margin:24px 0 32px;
}

.article-chapter li {
  padding-left:8px;
  margin-bottom:12px;
}

.article-chapter li::marker {
  color:var(--ty-accent);
}

.article-chapter a {
  color:var(--ty-link);
  text-decoration:underline;
  text-underline-offset:4px;
}

.article-chapter .article-note-label {
  margin-top:36px;
  margin-bottom:12px;
  font-size:11px;
  letter-spacing:.08em;
  color:var(--ty-muted);
  text-transform:uppercase;
}

.article-note-label + p {
  padding:8px 0 8px 22px;
  border-left:2px solid var(--site-accent);
  color:var(--site-slate);
}

@media(max-width:700px) {
  .article-intro {
    min-height:0;
    padding-top:38px;
    padding-bottom:48px;
  }
}

@media(max-width:700px) {
  .article-intro h1 {
    font-size:38px;
  }
}

@media(max-width:700px) {
  .long-article {
    padding-top:12px;
  }
}

@media(max-width:700px) {
  .article-chapter {
    padding-top:32px;
    padding-bottom:32px;
  }
}

@media(max-width:700px) {
  .article-chapter p {
    font-size:16px;
    line-height:1.8;
  }
}

@media(max-width:700px) {
  .article-chapter li {
    font-size:16px;
    line-height:1.8;
  }
}

@media(max-width:700px) {
  .article-chapter h3 {
    font-size:20px;
  }
}

.article-reading-next {
  max-width:740px;
  padding:32px 0;
  border-top:1px solid var(--ty-border);
}

.article-reading-next>span {
  display:block;
  color:var(--ty-muted);
  font-size:11px;
  margin-bottom:16px;
}

.article-reading-next a {
  font-size:22px;
  line-height:1.5;
  color:var(--site-slate);
  text-decoration:underline;
  text-underline-offset:6px;
}

.article-note-label + p {
  border-left-color:var(--ty-accent);
}

/* footer.css */
/* Footer — authoritative source. */

.site-footer {
  --footer-columns:6;
  --footer-gap:clamp(20px,2.4vw,32px);
  border-top:1px solid var(--ty-border);
  margin:auto;
  padding:54px var(--content-gutter) 100px;
  max-width:var(--content-max);
}

.footer-intro {
  display:grid;
  grid-template-columns:repeat(var(--footer-columns),minmax(0,1fr));
  align-items:center;
  gap:var(--footer-gap);
  margin-bottom:40px;
}

.footer-intro .brand {
  grid-column:1 / span 2;
  min-height:24px;
}

.footer-brand-message {
  grid-column:4 / -1;
  display:grid;
  gap:8px;
  min-width:0;
  max-width:none;
}

.footer-brand-message p {
  margin:0;
  line-height:1.6;
}

.footer-intro p {
  font-size:14px;
  color:var(--ty-muted);
}

.footer-links {
  display:grid;
  grid-template-columns:repeat(var(--footer-columns),minmax(0,1fr));
  gap:var(--footer-gap);
}

.footer-links h2 {
  font-size:13px;
  font-weight:500;
  margin:0 0 18px;
}

.footer-links a {
  font-size:12px;
  line-height:1.5;
  color:var(--ty-muted);
  display:block;
  padding:6px 0;
}

.footer-links a:hover {
  color:var(--ty-text);
  text-decoration:underline;
  text-underline-offset:4px;
}

.footer-bottom {
  margin-top:55px;
  padding-top:22px;
  border-top:1px solid var(--ty-border);
  display:flex;
  flex-wrap:wrap;
  gap:15px 25px;
  font-size:10px;
  color:var(--ty-muted);
}

.footer-bottom>span:last-child {
  margin-left:auto;
}

@media(max-width:1050px) {
  .site-footer {
    --footer-columns:3;
  }

  .footer-intro .brand {
    grid-column:1;
  }

  .footer-brand-message {
    grid-column:2 / -1;
  }

  .footer-links {
    row-gap:40px;
  }
}

@media(max-width:700px) {
  .site-footer {
    --footer-columns:2;
    padding:42px var(--content-gutter) 100px;
  }
}

@media(max-width:700px) {
  .footer-intro {
    gap:20px;
    margin-bottom:36px;
  }

  .footer-intro .brand,
  .footer-brand-message {
    grid-column:1 / -1;
  }
}

@media(max-width:700px) {
  .footer-intro p {
    font-size:12px;
    line-height:1.6;
    margin:0;
  }
}

@media(max-width:700px) {
  .footer-links {
    gap:30px 22px;
  }
}

@media(max-width:700px) {
  .footer-links h2 {
    font-size:12px;
    margin-bottom:10px;
  }
}

@media(max-width:700px) {
  .footer-links a {
    font-size:11px;
    line-height:1.6;
  }
}

@media(max-width:700px) {
  .footer-bottom {
    gap:16px;
    font-size:9px;
  }
}

@media(max-width:700px) {
  .footer-bottom>span:last-child {
    margin:0;
    flex-basis:100%;
  }
}

.site-footer {
  max-width:var(--content-max);
}

.site-footer {
  padding-left:var(--content-gutter);
  padding-right:var(--content-gutter);
}

/* chapter-navigation.css */
/* Chapter Navigation — authoritative source. */

.chapter-origin {
  display:block;
  height:0;
  pointer-events:none;
}

body .chapter-menu {
  position:sticky;
  top:14px;
  z-index:20;
  width:240px;
  margin:0 var(--content-inline-offset) 0 auto;
  font-size:12px;
  border:1px solid var(--ty-border);
  border-radius:var(--ty-radius-control);
  background:var(--panel);
  backdrop-filter:blur(22px);
  box-shadow:0 3px 12px -8px rgba(24,36,48,.18);
  transition:opacity var(--ty-duration-smooth) var(--ty-ease), visibility 0s var(--ty-duration-smooth) var(--ty-ease);
}

body .chapter-menu.is-idle {
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

body .chapter-menu:not(.is-idle) {
  transition-delay:0s;
}

body .chapter-menu.is-closing>div {
  animation:none;
  opacity:0;
  transform:translateY(-6px);
  transition:opacity var(--ty-duration-hover) var(--ty-ease),transform var(--ty-duration-hover) var(--ty-ease);
  pointer-events:none;
}

@media(prefers-reduced-motion:reduce) {
  body .chapter-menu,
  body .chapter-menu>div {
    transition:none;
    animation:none!important;
  }
}

.chapter-menu summary {
  cursor:pointer;
  list-style:none;
  padding:12px 16px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.chapter-menu summary::-webkit-details-marker {
  display:none;
}

.chapter-menu summary span {
  transition:transform var(--ty-duration-hover) var(--ty-ease);
}

.chapter-menu[open] summary span {
  transform:rotate(45deg);
}

body .chapter-menu>div {
  position:absolute;
  top:100%;
  left:-1px;
  right:-1px;
  padding:0 16px 10px;
  background:color-mix(in srgb,var(--panel-solid) 97%,transparent);
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
  border:1px solid var(--ty-border);
  border-top:0;
  border-radius:0 0 var(--ty-radius-control) var(--ty-radius-control);
  max-height:min(60svh,var(--chapter-space,60svh));
  overflow-y:auto;
  overscroll-behavior:contain;
  box-shadow:0 14px 30px -12px rgba(24,36,48,.22),0 4px 10px -5px rgba(24,36,48,.12);
  animation:preferences-in var(--ty-duration-hover);
}

body .chapter-menu[open] {
  border-radius:8px 8px 0 0;
}

body .chapter-menu[data-direction="up"][open] {
  border-radius:0 0 8px 8px;
}

body .chapter-menu[data-direction="up"]>div {
  top:auto;
  bottom:100%;
  border-top:1px solid var(--ty-border);
  border-bottom:0;
  border-radius:8px 8px 0 0;
}

[data-theme="dark"] body .chapter-menu>div {
  box-shadow:0 14px 32px -12px rgba(0,0,0,.5),0 4px 10px -5px rgba(0,0,0,.3);
}

.chapter-menu a {
  display:block;
  padding:11px 0;
  color:var(--ty-muted);
  line-height:1.45;
  border-top:1px solid var(--ty-border);
}

.chapter-menu a:hover {
  color:var(--ty-text);
}

body .chapter-menu a[aria-current] {
  color:var(--site-slate);
}

body:has(.long-article) .chapter-menu {
  max-width:calc(100% - 56px);
}

@media(max-width:1050px) {
  body .chapter-menu {
    top:12px;
  }
}

@media(max-width:700px) {
  body .chapter-menu {
    width:215px;
    margin-right:var(--content-gutter);
    font-size:11px;
  }
}

/* buttons.css */
/* Buttons — authoritative source. */

@keyframes contact-shine {
  0% { left: -65%; opacity: 0; } 20% { opacity: 1; } 100% { left: 130%; opacity: 0; }
}

.action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:46px;
  padding:12px 22px;
  border:1px solid transparent;
  border-radius:var(--ty-radius-control);
  background:var(--site-action);
  color:var(--site-on-action);
  font-weight:500;
  font-size:13px;
  line-height:1.5;
  transition:background var(--ty-duration-hover) var(--ty-ease),transform var(--ty-duration-hover) var(--ty-ease),box-shadow var(--ty-duration-hover) var(--ty-ease);
}

.action:hover {
  background:var(--ty-primary-hover);
  transform:translateY(-2px);
  box-shadow:0 8px 18px -12px #0006;
}

.action.secondary {
  background:transparent;
  border-color:var(--ty-border);
  color:var(--ty-text);
}

@media(max-width:700px) {
  .action {
    font-size:12px;
    padding:11px 17px;
    min-height:44px;
  }
}

body .action:not(.secondary):hover {
  background:color-mix(in srgb,var(--site-action) 92%,#111315);
}

.action:not(.secondary) {
  position:relative;
  isolation:isolate;
  overflow:hidden;
}

.action:not(.secondary)::after {
  content:'';
  position:absolute;
  inset:-40% auto -40% -65%;
  width:40%;
  background:linear-gradient(105deg,transparent,#ffffff66,transparent);
  transform:skewX(-14deg);
  pointer-events:none;
  opacity:0;
}

@media(hover:hover) {
  .action:not(.secondary):hover::after {
    animation:contact-shine var(--ty-duration-silverPass) var(--ty-ease);
  }
}

.action:focus-visible {
  outline:2px solid var(--ty-focus);
  outline-offset:3px;
}

@media(prefers-reduced-motion:reduce) {
  .action::after {
    animation:none!important;
  }
}

.hero-invitation .action {
  margin-top:24px;
}

@media(max-width:600px) {
  .hero-invitation .action {
    margin-top:20px;
  }
}

@media(max-width:700px) {
  .closing-action .action {
    max-width:100%;
    white-space:normal;
    text-align:center;
  }
}

body .floating-contact {
  position:fixed;
  z-index:100;
  left:auto;
  right:var(--content-inline-offset);
  bottom:calc(32px + env(safe-area-inset-bottom,0px));
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:8px 18px;
  border:1px solid transparent;
  border-radius:var(--ty-radius-control);
  background:var(--site-action);
  color:var(--site-on-action);
  font-family:var(--ty-font);
  font-size:12px;
  font-weight:500;
  line-height:18px;
  white-space:nowrap;
  box-shadow:0 2px 4px #0000000d,0 8px 22px -6px #00000033;
  isolation:isolate;
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(0,10px);
  transition:opacity var(--ty-duration-sheet) var(--ty-ease),transform var(--ty-duration-smooth) var(--ty-ease),visibility 0s var(--ty-duration-smooth) var(--ty-ease),background var(--ty-duration-hover) var(--ty-ease),box-shadow var(--ty-duration-hover) var(--ty-ease);
}

body .floating-contact.is-visible {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(0,0);
  transition:opacity var(--ty-duration-fade-in) var(--ty-ease),transform var(--ty-duration-move-in) var(--ty-ease),visibility 0s var(--ty-ease),background var(--ty-duration-hover) var(--ty-ease),box-shadow var(--ty-duration-hover) var(--ty-ease);
}

body .floating-contact:hover {
  background:color-mix(in srgb,var(--site-action) 92%,#111315);
}

body .floating-contact.is-visible:active {
  transform:translate(0,0) scale(.98);
}

.floating-contact:focus-visible {
  outline:2px solid var(--ty-focus);
  outline-offset:3px;
}

.floating-contact::after {
  content:'';
  position:absolute;
  inset:-40% auto -40% -65%;
  width:40%;
  background:linear-gradient(105deg,transparent,#ffffff66,transparent);
  transform:skewX(-14deg);
  pointer-events:none;
  opacity:0;
}

[data-theme="dark"] .floating-contact {
  box-shadow:0 2px 5px #0006,0 12px 30px -4px #0009,0 25px 50px -12px #0008;
}

@media(hover:hover) {
  body .floating-contact.is-visible:hover {
    transform:translate(0,-2px);
  }
}

@media(hover:hover) and (pointer:fine) {
  .floating-contact:hover::after {
    animation:contact-shine var(--ty-duration-silverPass) var(--ty-ease);
  }
}

@media(max-width:1050px) {
  body .floating-contact {
    right:var(--ty-space-28);
    bottom:calc(20px + env(safe-area-inset-bottom,0px));
    overflow:visible;
  }

  body .floating-contact::before {
    content:'';
    position:absolute;
    inset:-4px 0;
  }

  body .floating-contact::after {
    display:none;
  }
}

@media(max-width:700px) {
  body .floating-contact {
    right:var(--content-gutter);
  }
}

@media(prefers-reduced-motion:reduce) {
  .floating-contact::after {
    animation:none!important;
  }
}

/* interaction-motion.css */
/* Shared motion contracts used by motion.js; timing always comes from tokens. */
.motion-disclosure {
  animation:none!important;
  transition:opacity var(--ty-duration-dialog) var(--ty-ease);
}

.motion-feedback {
  transition:opacity var(--ty-duration-hover) var(--ty-ease);
}

:where(.footer-links a, .breadcrumb a, .next-links a, .chapter-menu a, .language-link) {
  transition:color var(--ty-duration-hover) var(--ty-ease), background-color var(--ty-duration-hover) var(--ty-ease);
}

:where(input, textarea, select) {
  transition:border-color var(--ty-duration-hover) var(--ty-ease), background-color var(--ty-duration-hover) var(--ty-ease), box-shadow var(--ty-duration-hover) var(--ty-ease);
}

/* Focus outlines remain immediate: keyboard orientation is not decorative motion. */

/* Progressive enhancement for appearance changes; unsupported browsers keep
   their normal theme control and reduced-motion users get an immediate change. */
::view-transition-old(root),
::view-transition-new(root) {
  animation-duration:var(--ty-duration-page);
  animation-timing-function:var(--ty-ease);
}

/* accessibility.css */
/* Accessibility — authoritative source. */

:focus-visible {
  outline: 2px solid var(--ty-link);
  outline-offset: 5px;
  border-radius: 4px;
}

[hidden] {
  display:none!important;
}

.skip-link {
  position:fixed;
  top:-80px;
  left:20px;
  z-index:100;
  background:var(--ty-bg);
  padding:14px;
}

.skip-link:focus {
  top:10px;
}

@media(max-width:700px) {
  .review-list article[hidden] {
    display:none;
  }
}

/* redesign.css */
/* Shared refinements: concise navigation, balanced page rhythm and aligned UI. */

/* Category links and category buttons use the same responsive typography. */
.nav-links { --nav-label-size:14px; --nav-label-weight:500; }
body .nav-links > .nav-family > :is(a, .family-heading) {
  font-family:inherit;
  font-size:var(--nav-label-size);
  font-weight:var(--nav-label-weight);
  line-height:1.5;
  letter-spacing:-.15px;
}
@media(min-width:1051px) and (max-width:1800px) {
  .nav-links { --nav-label-size:clamp(11px,.82vw,14px); }
}
@media(max-width:1050px) {
  .nav-links { --nav-label-size:16px; --nav-label-weight:400; }
}
@media(max-width:700px) {
  .nav-links { --nav-label-size:14px; }
}

.brand-lockup {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  white-space: nowrap;
}

.brand .logo-light,
.footer-intro .brand .logo-light {
  display: inline-flex;
}

.brand .logo-dark,
.footer-intro .brand .logo-dark {
  display: none;
}

[data-theme="dark"] .brand .logo-light,
[data-theme="dark"] .footer-intro .brand .logo-light {
  display: none;
}

[data-theme="dark"] .brand .logo-dark,
[data-theme="dark"] .footer-intro .brand .logo-dark {
  display: inline-flex;
}

.language-home .logo-dark {
  display: none;
}

[data-theme="dark"] .language-home .logo-light {
  display: none;
}

[data-theme="dark"] .language-home .logo-dark {
  display: inline-flex;
}

.brand .brand-wordmark,
.footer-intro .brand .brand-wordmark {
  width: 140px;
  height: auto;
  object-fit: contain;
}

.header-inner {
  min-height: 88px;
  max-width: var(--content-max);
  box-sizing: border-box;
  padding-inline: var(--content-gutter);
}

.header-contact {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border: 1px solid var(--ty-border);
  border-radius: var(--ty-radius-control);
  color: var(--ty-text);
  font-size: 13px;
  white-space: nowrap;
  transition: background var(--ty-duration-hover) var(--ty-ease), border-color var(--ty-duration-hover) var(--ty-ease);
}

.header-contact:hover {
  background: var(--ty-subtle);
  border-color: var(--ty-accent);
}

.header-contact:focus-visible {
  outline: 2px solid var(--ty-focus);
  outline-offset: 3px;
}

.nav-family > a {
  white-space: nowrap;
}

.hero {
  min-height: clamp(620px, 77svh, 820px);
  padding-inline: var(--content-gutter);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(32px, 4vw, 64px);
  align-items: center;
}

.hero .hero-copy {
  position: relative;
  top: auto;
  transform: none;
  width: auto;
  box-sizing: border-box;
  padding: 0;
}

body[data-page="platform"] .hero .hero-copy {
  width: auto;
}

.hero-main {
  font-size: clamp(52px, 5.15vw, 78px);
  max-width: 9.2em;
}

.hero-secondary {
  font-size: clamp(23px, 2.25vw, 34px);
  max-width: 21em;
}

body[data-page="home"] .hero-main {
  font-size: clamp(58px, 6.2vw, 88px);
  max-width: 9em;
}

body[data-page="home"] .hero-secondary {
  max-width: 22em;
  margin-top: 18px;
  font-size: clamp(24px, 2.25vw, 32px);
  line-height: 1.28;
}

.hero-proof {
  display: grid;
  gap: 10px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.hero-proof li {
  position: relative;
  padding-left: 16px;
  color: var(--ty-muted);
  font-size: clamp(16px, 1.35vw, 20px);
  line-height: 1.45;
  letter-spacing: -.01em;
}

.hero-proof li::before {
  content: '';
  position: absolute;
  top: .62em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--site-discovery);
}

.hero .brand-positioning {
  color: var(--ty-muted);
  font-size: 15px;
  margin-bottom: 18px;
}

.hero-invitation {
  margin-top: 24px;
}

.hero-invitation p {
  font-size: 15px;
  line-height: 1.65;
}

.hero-product {
  position: relative;
  inset: auto;
  width: 100%;
  margin: 0;
  transform: translateY(var(--product-lift, 0px));
}

body[data-page="platform"] .hero-product {
  inset: auto;
  width: 100%;
}

.hero-product figcaption {
  margin-top: 12px;
}

.product-discovery {
  margin-top: 12px;
}

.home-context {
  padding-top: 24px;
  padding-bottom: 48px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(32px, 4vw, 64px);
  align-items: center;
}

.home-context > :last-child {
  justify-self: start;
}

.page-intro {
  min-height: clamp(430px, 54svh, 620px);
  padding-top: 38px;
  padding-bottom: 64px;
}

.page-intro .breadcrumb {
  margin-bottom: 20px;
}

.page-positioning {
  margin-top: 0;
  margin-bottom: 18px;
  color: var(--ty-muted);
}

.page-intro h1 {
  font-size: clamp(44px, 5vw, 72px);
  max-width: 18ch;
}

.intro-deck {
  margin-top: 22px;
  max-width: 62ch;
}

.intro-actions {
  margin-top: 26px;
}

.story-section {
  min-height: clamp(460px, 56svh, 680px);
  padding-top: clamp(64px, 7vw, 100px);
  padding-bottom: clamp(64px, 7vw, 100px);
  column-gap: clamp(32px, 4vw, 64px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.story-section.tool-section,
.story-section:has(.calculator),
.story-section:has(.people-grid) {
  min-height: 0;
}

.section-copy h2,
.next-section h2 {
  font-size: clamp(34px, 3.3vw, 50px);
  margin-bottom: 20px;
}

.section-copy p {
  font-size: 16px;
  line-height: 1.72;
}

.visual-panel > div,
.visual-panel > form {
  width: 100%;
  box-sizing: border-box;
}

.visual-panel img {
  display: block;
  max-width: 100%;
  height: auto;
}

.visual-panel figcaption {
  padding-top: 12px;
}

.asset-frame {
  min-height: 320px;
  padding: clamp(28px, 4vw, 52px);
}

.next-section {
  padding-top: clamp(64px, 7vw, 96px);
  padding-bottom: clamp(82px, 8vw, 116px);
}

.contact-page {
  padding: clamp(72px, 8vw, 112px) var(--content-gutter) 88px;
}

.contact-page .breadcrumb {
  margin-bottom: clamp(24px, 3vw, 40px);
}

.contact-layout {
  gap: clamp(36px, 5vw, 72px);
}

.contact-message {
  padding: 24px;
  border: 1px solid var(--ty-border);
  border-radius: var(--ty-radius-panel);
  background: var(--panel);
  box-shadow: var(--shadow);
}

.contact-form input,
.contact-form textarea {
  min-height: 50px;
  border-radius: var(--ty-radius-control);
}

.contact-form textarea {
  min-height: 132px;
}

@media (max-width: 1200px) and (min-width: 1051px) {
  .header-inner {
    gap: 12px;
  }

  .nav-links {
    gap: 10px;
  }

  .nav-links a {
    font-size: 12px;
  }

  .header-contact {
    padding-inline: 11px;
    font-size: 12px;
  }
}

@media (max-width: 1050px) {
  .header-inner {
    min-height: 76px;
    height: 76px;
  }

  .header .brand-lockup .brand-wordmark {
    width: 124px;
    height: auto;
  }

  .header nav {
    top: 76px;
    max-height: calc(100svh - 76px);
    width: min(440px, 100%);
    padding: 18px var(--content-gutter) 24px;
    background: var(--panel-solid);
    border-right: 1px solid var(--ty-border);
    border-bottom: 1px solid var(--ty-border);
    border-bottom-right-radius: 16px;
  }

  .header-contact {
    margin-left: auto;
  }

  .hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding-inline: 0;
    padding-bottom: 32px;
    row-gap: 0;
  }

  .hero .hero-copy {
    position: relative;
    top: auto;
    transform: none;
    width: auto;
    padding: 48px var(--content-gutter) 0;
  }

  .hero-main {
    max-width: 12ch;
    font-size: clamp(48px, 7vw, 72px);
  }

  .hero-secondary {
    max-width: 26ch;
    font-size: clamp(23px, 3.2vw, 32px);
  }

  body[data-page="home"] .hero-main {
    font-size: clamp(48px, 7vw, 72px);
  }

  body[data-page="home"] .hero-secondary {
    max-width: 26ch;
    font-size: clamp(23px, 3.2vw, 32px);
  }

  .hero-product {
    position: relative;
    top: auto;
    left: 0;
    width: min(100%, 1060px);
    margin: 28px auto 0;
    padding-inline: var(--content-gutter);
    box-sizing: border-box;
    transform: none;
  }

  .hero-product .product-discovery,
  .hero-product figcaption {
    width: 100%;
    margin-left: 0;
  }

  .page-intro {
    min-height: clamp(400px, 50svh, 560px);
    padding-top: 34px;
  }

  .story-section {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    padding-top: 64px;
    padding-bottom: 64px;
    gap: 34px;
  }

  .contact-page {
    padding-top: 72px;
  }

  .home-context {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 12px;
  }
}

@media (max-width: 700px) {
  .header-inner {
    padding-inline: 14px;
    gap: 8px;
  }

  .header .brand {
    left: 48%;
  }

  .header .brand-lockup .brand-wordmark {
    width: 108px;
    height: auto;
  }

  .header-contact {
    min-height: 36px;
    padding-inline: 9px;
    font-size: 11px;
  }

  .preferences-toggle {
    min-width: 44px;
    padding-inline: 4px;
  }

  .header nav {
    left: 0;
    width: min(340px, 100vw);
    padding: 14px 20px 22px;
  }

  .hero .hero-copy {
    padding: 34px var(--content-gutter) 0;
  }

  .hero-main {
    font-size: clamp(42px, 11vw, 58px);
    max-width: 11ch;
  }

  .hero-secondary {
    font-size: clamp(21px, 6vw, 28px);
    margin-top: 18px;
  }

  body[data-page="home"] .hero-main {
    font-size: clamp(44px, 11vw, 60px);
  }

  body[data-page="home"] .hero-secondary {
    font-size: clamp(20px, 5.8vw, 25px);
    line-height: 1.3;
  }

  .hero-proof {
    margin-top: 16px;
    gap: 8px;
  }

  .hero-proof li {
    font-size: 17px;
  }

  .hero .brand-positioning {
    font-size: 13px;
    margin-bottom: 14px;
  }

  .hero-invitation {
    margin-top: 18px;
  }

  .hero-invitation p {
    font-size: 14px;
  }

  .hero-actions {
    gap: 8px;
    margin-top: 18px;
  }

  .hero-actions .action {
    font-size: 12px;
    min-height: 42px;
  }

  .hero-product {
    margin-top: 26px;
  }

  .product-frame {
    border-radius: 10px;
  }

  .product-mobile-controls {
    overflow-x: auto;
  }

  .page-intro {
    min-height: 0;
    padding: 28px var(--content-gutter) 44px;
  }

  .page-intro h1 {
    font-size: clamp(38px, 10vw, 52px);
  }

  .intro-deck {
    font-size: 16px;
    line-height: 1.65;
    margin-top: 16px;
  }

  .intro-actions {
    margin-top: 20px;
  }

  .story-section {
    gap: 24px;
    padding: 48px var(--content-gutter);
  }

  .section-copy h2,
  .next-section h2 {
    font-size: clamp(30px, 8vw, 38px);
    margin-bottom: 16px;
  }

  .section-copy p {
    font-size: 15px;
    line-height: 1.7;
  }

  .visual-panel figcaption {
    padding-top: 10px;
  }

  .asset-frame {
    min-height: 260px;
    padding: 28px 24px;
  }

  .next-section {
    padding: 50px var(--content-gutter) 68px;
  }

  .contact-page {
    padding: 34px var(--content-gutter) 64px;
  }

  .contact-layout {
    gap: 28px;
  }

  .contact-introduction h1 {
    font-size: clamp(38px, 10vw, 52px);
    margin-bottom: 18px;
  }

  .contact-lead {
    font-size: 16px;
    line-height: 1.65;
  }

  .contact-routes {
    margin-top: 20px;
  }

  .contact-message {
    padding: 18px;
  }

  .contact-form {
    gap: 16px;
    margin-top: 18px;
  }

  .contact-form label {
    gap: 7px;
    font-size: 13px;
  }

  .contact-form input,
  .contact-form textarea {
    min-height: 48px;
  }

  .contact-people {
    margin-top: 20px;
  }

}

@media (max-width: 380px) {
  .menu-toggle {
    width: 40px;
  }

  .header .brand {
    left: 46%;
  }

  .header .brand-lockup .brand-wordmark {
    width: 98px;
    height: auto;
  }

  .header-contact {
    padding-inline: 7px;
    font-size: 10px;
  }
}

/* Keep the masthead on the page grid and compact the desktop row before it
   runs out of room (notably at reduced browser zoom). */
@media (max-width: 1800px) and (min-width: 1051px) {
  .header-inner {
    gap: clamp(8px, 1vw, 16px);
  }

  .header .brand-lockup .brand-wordmark {
    width: clamp(112px, 7.5vw, 136px);
  }

  .header nav {
    gap: clamp(8px, 1vw, 16px);
  }

  .nav-links {
    gap: clamp(8px, .9vw, 15px);
  }

  .nav-links > .nav-family > a {
    font-size: clamp(11px, .82vw, 14px);
  }

  .header-contact {
    padding-inline: clamp(9px, .9vw, 15px);
    font-size: clamp(11px, .78vw, 13px);
  }

}

/* Calculator hero shares the same two-column grid as its assumptions section. */
body[data-page=calculator] .page-intro { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(32px,4vw,64px); align-items:center; }
body[data-page=calculator] .calculator-intro-copy { min-width:0; }
body[data-page=calculator] .page-intro [data-calculator-watch] { min-width:0; width:100%; margin:70px 0 34px; }
@media(max-width:1050px) {
 body[data-page=calculator] .page-intro { grid-template-columns:minmax(0,1fr); }
 body[data-page=calculator] .page-intro [data-calculator-watch] { margin:70px 0 68px; }
}

/* Shared introductory hierarchy: explanation, three benefits, reassurance. */
.page-intro > .hero-proof, .calculator-intro-copy > .hero-proof { max-width:65ch; }
.page-intro .hero-reassurance, .contact-introduction > .hero-reassurance {
  max-width:65ch; margin:24px 0 0; font-size:15px; line-height:1.65; color:var(--ty-muted);
}
.contact-introduction > .hero-proof { margin-top:22px; }
.hero-proof li::before { background:var(--site-accent); }

/* reading-guide.css */
/* Shared guide. Geometry and solid exclusion boxes live in reading-guide.js. */
body[data-reading-guide] #canvas { isolation:isolate; }
body[data-reading-guide] #canvas > :not(.reading-guide) { position:relative; z-index:1; }
body[data-reading-guide] .statement-dot { color:var(--site-accent); }
body[data-reading-guide] .hero-product { transform:none; }
body[data-reading-guide] .reading-guide {
  position:absolute; inset:0; width:100%; height:100%; z-index:0;
  pointer-events:none; overflow:hidden; color:var(--site-guide);
  fill:none; stroke:none;
}
.reading-guide__path {
  fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke;
  opacity:.23; stroke-dasharray:1; stroke-dashoffset:1;
  transition:none;
}
.reading-guide__path.is-intro { transition:none; }
.reading-guide--tail .reading-guide__path { visibility:hidden; }
/* The Hero routes cross masked copy and the product frame. Show the active
   stroke while each draws, otherwise the handoff tail is easy to lose. */
.reading-guide--tail .reading-guide__path.is-hero-opening.is-drawing { visibility:visible; opacity:.38; }
.reading-guide__tail { opacity:.23; }
/* Text-led subpages place the thin trail in the darkest outer gutter. */
[data-theme=dark] .reading-guide__tail { opacity:.85; filter:drop-shadow(0 0 3px #6BD4FF55); }
[data-theme=dark] .reading-guide__tail path { stroke-width:2.2; }
[data-theme=dark] .reading-guide__start { filter:drop-shadow(0 0 5px #6BD4FF); }
.reading-guide__tail path {
  fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke;
}
[data-theme=light] .reading-guide__tail { opacity:.42; }
.reading-guide__start { fill:currentColor; stroke:none; opacity:.65; }
.reading-guide__start.is-pulsing { animation:guide-start-pulse var(--ty-duration-guide-pulse) ease-in-out infinite; }
@keyframes guide-start-pulse {
  0%,100% { opacity:.7; }
  50% { opacity:.95; }
}
[data-theme=light] .reading-guide__path { opacity:.42; }
@media(prefers-reduced-motion:reduce) {
  .reading-guide__path, .reading-guide__path.is-intro { transition:none; }
  .reading-guide__start.is-pulsing { animation:none; }
}

body[data-reading-guide] .hero-proof li::before { background:var(--site-accent); }
body[data-reading-guide] [data-guide-goal] .action.is-guide-arrived {
  box-shadow:0 0 0 1px color-mix(in srgb,var(--site-accent) 33%,transparent),0 0 22px 4px color-mix(in srgb,var(--site-accent) 19%,transparent);
}

/* commercial.css */
/* Commercial pages use the same grid, type and controls as the product pages. */
.phase-card,.pricing-panel { padding:clamp(22px,3vw,40px); }
.phase-card ul { padding-left:20px; margin:26px 0; }
.phase-card li { margin:12px 0; line-height:1.6; color:var(--ty-muted); }
.phase-number,.price-eyebrow { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--ty-muted); }
.phase-price { display:block; font-size:clamp(30px,3vw,46px); font-weight:500; letter-spacing:-.04em; line-height:1.2; }
.text-link { display:inline-block; padding:12px 0; text-decoration:underline; text-underline-offset:5px; }
.pricing-panel p { font-size:15px; line-height:1.65; color:var(--ty-muted); }
.pricing-panel h3 { font-size:20px; font-weight:500; }
.price-phases { list-style:none; padding:0; margin:0; }
.price-phases li { padding:22px 0; border-bottom:1px solid var(--ty-border); }
.price-phases li:first-child { padding-top:0; }
.price-phases li:last-child { border-bottom:0; padding-bottom:0; }
.price-phases a { display:block; min-height:36px; text-decoration:underline; text-underline-offset:5px; }
.price-phases strong { display:block; font-size:clamp(26px,2.6vw,40px); font-weight:500; letter-spacing:-.04em; }
.price-phases p { margin:8px 0 0; }
.price-row { display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:15px 0; border-bottom:1px solid var(--ty-border); }
.price-row strong { font-size:20px; font-weight:500; }
.pricing-panel details { border-bottom:1px solid var(--ty-border); padding:14px 0; }
.pricing-panel summary { cursor:pointer; padding:8px 0; font-size:16px; line-height:1.5; }
.pricing-panel .price-note { margin-top:24px; font-size:13px; }
.nav-blog { border-top:1px solid var(--ty-border); margin-top:8px; padding-top:8px; }
.nav-blog summary { display:flex; align-items:center; justify-content:space-between; gap:8px; cursor:pointer; padding:12px 0; min-height:44px; box-sizing:border-box; font-size:14px; }
.nav-blog summary::-webkit-details-marker { display:none; }
/* Match the chevron used by the primary navigation families. */
.nav-blog summary span { display:block; width:5px; height:5px; flex:0 0 auto; font-size:0; border-right:1px solid var(--site-accent); border-bottom:1px solid var(--site-accent); transform:rotate(225deg); margin:0 6px 0 0; transition:transform var(--ty-duration-smooth) var(--ty-ease); }
.nav-blog:not([open]) summary span { transform:rotate(45deg); margin-bottom:4px; }
.nav-blog>div { border-left:1px solid var(--ty-border); padding-left:12px; }
.footer-blog-label { display:block; font-size:12px; margin:14px 0 8px; color:var(--ty-muted); }
@media(min-width:1051px) { .header .family-panel { max-height:calc(100svh - 160px); overflow-y:auto; } }


.agent-investment { margin:28px 0; padding:24px 0; border-block:1px solid var(--ty-border); }
.agent-investment h3 { margin:0 0 12px; font-size:16px; font-weight:500; line-height:1.5; }
.agent-investment .agent-budget-values { color:var(--ty-text); font-weight:500; }
.pricing-agent-value .section-copy > p + p { margin-top:20px; }

.compute-plans { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.compute-plan { padding:20px 0; border-bottom:1px solid var(--ty-border); min-width:0; }
.compute-plan h3 { margin:0 0 12px; }
.compute-price { display:block; font-size:clamp(24px,2.5vw,34px); font-weight:500; letter-spacing:-.035em; }
.compute-plan > span { font-size:12px; color:var(--ty-muted); }
.compute-plan p { margin-bottom:0; }
@media(max-width:480px) { .compute-plans { grid-template-columns:1fr; gap:0; } }

/* calculator-slot.css */
/* Reserve the calculator footprint before loading its optional module. */
.home-efficiency-watch{margin:0;width:100%;min-width:0;text-align:center}
.home-efficiency-watch [data-calculator-watch]{position:relative;min-height:520px;margin:60px auto 0}
.home-efficiency-watch figcaption{max-width:450px;margin:16px auto;color:var(--ty-muted);font-size:12px;line-height:1.6}
.home-efficiency-watch>a{margin:0 auto}
@media(max-width:1050px){.home-efficiency-watch [data-calculator-watch]{min-height:263px;margin:60px auto 66px}}

body[data-page=calculator] .page-intro [data-calculator-watch]{min-height:452px}
@media(max-width:1050px){body[data-page=calculator] .page-intro [data-calculator-watch]{min-height:263px}}
