* { box-sizing: border-box; }

:root {
  --content-width: 1440px;
  --gutter: clamp(1.25rem, 5vw, 5rem);
}

html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; overflow-x: hidden; }
a { color: inherit; }
p { line-height: 1.6; }
button, input, select, textarea { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }

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

.skip-link {
  background: var(--rl-signal);
  color: var(--rl-obsidian);
  left: 1rem;
  padding: .75rem 1rem;
  position: fixed;
  top: -5rem;
  z-index: 99;
}
.skip-link:focus { top: 1rem; }

.site-header {
  align-items: center;
  backdrop-filter: blur(16px);
  background: rgba(11, 13, 16, .9);
  border-bottom: 1px solid var(--rl-line-dark);
  display: flex;
  justify-content: space-between;
  left: 0;
  min-height: 72px;
  padding: .85rem var(--gutter);
  position: sticky;
  right: 0;
  top: 0;
  z-index: 50;
}
.brand { display: block; line-height: 0; }
.brand img { display: block; height: 40px; width: auto; }
nav { align-items: center; display: flex; gap: clamp(1rem, 2.2vw, 2rem); }
nav a, .footer-links a {
  color: var(--rl-steel);
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  transition: color var(--rl-duration-fast) ease;
}
nav a:hover, nav a:focus-visible, .footer-links a:hover, .footer-links a:focus-visible { color: var(--rl-cloud); }
nav .nav-cta {
  border: 1px solid var(--rl-line-dark);
  border-radius: var(--rl-radius-sm);
  color: var(--rl-cloud);
  padding: .7rem .9rem;
}
nav .nav-cta:hover, nav .nav-cta:focus-visible { background: var(--rl-cloud); color: var(--rl-obsidian); }
.menu-toggle { background: transparent; border: 1px solid var(--rl-line-dark); color: var(--rl-cloud); display: none; padding: .65rem; }
.menu-toggle > span:not(.sr-only) { background: currentColor; display: block; height: 1px; margin: 4px 0; transition: transform var(--rl-duration-fast) ease; width: 20px; }
.menu-open .menu-toggle > span:nth-last-child(2) { transform: translateY(2.5px) rotate(45deg); }
.menu-open .menu-toggle > span:last-child { transform: translateY(-2.5px) rotate(-45deg); }

main, footer { margin: 0 auto; max-width: var(--content-width); padding-inline: var(--gutter); }
.rl-label { color: var(--rl-steel); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.section-index { color: var(--rl-steel); font-size: .7rem; font-weight: 800; letter-spacing: .12em; margin: 0 0 2.4rem; }
.section-intro { color: var(--rl-steel); font-size: 1.02rem; line-height: 1.7; margin: 2rem 0 0; max-width: 550px; }
.section-rule { border-top: 1px solid var(--rl-line-dark); padding-block: clamp(5rem, 9vw, 8rem); }

.hero { display: grid; gap: clamp(3rem, 6vw, 6rem); grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr); min-height: 760px; padding-block: clamp(5rem, 9vw, 9rem) 6rem; }
.hero-copy { align-self: center; max-width: 760px; }
.hero h1 { font-size: clamp(3.8rem, 7vw, 7.4rem); margin: 1.4rem 0 2rem; }
.hero h1 span { color: var(--rl-signal); }
.hero-lede { color: var(--rl-steel); font-size: clamp(1.12rem, 1.8vw, 1.4rem); max-width: 690px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.2rem; }
.hero-detail { align-items: flex-start; border-left: 1px solid var(--rl-signal); display: flex; gap: .85rem; margin-top: 3rem; max-width: 460px; padding-left: 1rem; }
.hero-detail p { color: var(--rl-steel); font-size: .82rem; margin: 0; }
.hero-detail strong { color: var(--rl-cloud); }
.detail-mark { color: var(--rl-signal); font-size: 1.15rem; line-height: 1.3; }

.rl-button-primary, .rl-button-secondary {
  align-items: center;
  border-radius: var(--rl-radius-sm);
  cursor: pointer;
  display: inline-flex;
  font-weight: 800;
  gap: .65rem;
  justify-content: center;
  min-height: 3rem;
  padding: .75rem 1.1rem;
  text-decoration: none;
  transition: background var(--rl-duration-fast) ease, color var(--rl-duration-fast) ease, transform var(--rl-duration-fast) ease;
}
.rl-button-primary { background: var(--rl-signal); border: 1px solid var(--rl-signal); color: var(--rl-obsidian); }
.rl-button-secondary { background: transparent; border: 1px solid var(--rl-line-dark); color: var(--rl-cloud); }
.rl-button-primary:hover, .rl-button-primary:focus-visible, .rl-button-secondary:hover, .rl-button-secondary:focus-visible { transform: translateY(-2px); }
.rl-button-primary:hover, .rl-button-primary:focus-visible { background: var(--rl-cloud); border-color: var(--rl-cloud); }
.rl-button-secondary:hover, .rl-button-secondary:focus-visible { border-color: var(--rl-signal); color: var(--rl-signal); }
.text-link, .dark-link, .contact-email { font-size: .8rem; font-weight: 800; text-decoration: none; }
.text-link { color: var(--rl-cloud); display: inline-flex; gap: .55rem; margin-top: 1.2rem; }
.text-link:hover, .text-link:focus-visible { color: var(--rl-signal); }
.dark-link { color: var(--rl-obsidian); display: inline-flex; gap: .55rem; margin-top: 1.5rem; }
.dark-link:hover, .dark-link:focus-visible { color: var(--rl-obsidian); text-decoration: underline; }

.logic-map { align-self: center; aspect-ratio: 1.18; background: var(--rl-graphite); border: 1px solid var(--rl-line-dark); border-radius: var(--rl-radius-md); min-height: 510px; overflow: hidden; position: relative; }
.grid-lines { background-image: linear-gradient(var(--rl-line-dark) 1px, transparent 1px), linear-gradient(90deg, var(--rl-line-dark) 1px, transparent 1px); background-size: 54px 54px; inset: 0; opacity: .48; position: absolute; }
.logic-map svg { inset: 9% 5% 7%; position: absolute; width: 90%; }
.logic-map path { fill: none; }
.legacy-path { stroke: var(--rl-steel); stroke-dasharray: 4 10; stroke-width: 2; }
.signal-path { stroke: var(--rl-signal); stroke-width: 4; }
.overhead-path { stroke: var(--rl-resolve); stroke-width: 3; }
.origin { fill: var(--rl-cloud); }
.signal-point { fill: var(--rl-signal); }
.map-label { color: var(--rl-steel); font-size: .63rem; font-weight: 800; letter-spacing: .12em; position: absolute; z-index: 2; }
.map-label.top { left: 1rem; top: 1rem; }
.map-label.left { bottom: 1rem; left: 1rem; }
.map-label.right { bottom: 1rem; right: 1rem; }
.map-key { align-items: center; background: rgba(11, 13, 16, .88); color: var(--rl-steel); display: flex; font-size: .68rem; gap: .5rem; padding: .35rem .5rem; position: absolute; right: 1rem; z-index: 3; }
.map-key i { display: inline-block; height: 2px; width: 24px; }
.key-capacity { top: 1rem; }
.key-capacity i { background: var(--rl-signal); }
.key-overhead { top: 2.8rem; }
.key-overhead i { background: var(--rl-resolve); }
.map-callout { background: var(--rl-signal); bottom: 24%; color: var(--rl-obsidian); font-family: var(--rl-font-display); font-size: .85rem; font-weight: 750; left: 16%; padding: .6rem .75rem; position: absolute; transform: rotate(-3deg); }

.manifesto { display: grid; gap: 3rem; grid-template-columns: 2fr 10fr; }
.manifesto > div { max-width: 960px; }
.manifesto h2 { font-size: clamp(2.5rem, 5vw, 5.2rem); margin: 0 0 2rem; }
.manifesto > div > p { color: var(--rl-steel); font-size: 1.2rem; max-width: 720px; }
.platform { display: grid; gap: 4rem; grid-template-columns: 4fr 8fr; }
.section-heading h2, .compact-heading h2 { font-size: clamp(2.2rem, 4.2vw, 4.4rem); margin: 0; }
.product-path { border-top: 1px solid var(--rl-line-dark); }
.product { align-items: start; border-bottom: 1px solid var(--rl-line-dark); display: grid; gap: 1.5rem; grid-template-columns: 56px 1fr auto; padding: 2.2rem 0; position: relative; }
.product::before { background: var(--product); content: ""; height: 100%; left: -1.5rem; opacity: 0; position: absolute; top: 0; transition: opacity var(--rl-duration-base) ease; width: 3px; }
.product:hover::before { opacity: 1; }
.understand { --product: var(--rl-understand); }
.assist { --product: var(--rl-assist); }
.resolve { --product: var(--rl-resolve); }
.product-number, .product-verb, .product-state { color: var(--product); font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.product-copy h3 { font-family: var(--rl-font-display); font-size: clamp(2rem, 3.5vw, 3.5rem); margin: 0; }
.product-copy p:not(.product-verb) { color: var(--rl-steel); margin-bottom: 0; max-width: 600px; }
.product-verb { margin: 0 0 .45rem; }
.product-state { border: 1px solid var(--rl-line-dark); border-radius: var(--rl-radius-sm); color: var(--rl-cloud); padding: .5rem .65rem; white-space: nowrap; }

.operating-model { display: grid; gap: 4rem; grid-template-columns: 4fr 8fr; }
.compact-heading { max-width: 550px; }
.model-steps { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); }
.model-step { border-top: 2px solid var(--rl-signal); padding: 1.3rem 0 0; }
.model-step:nth-child(2) { border-color: var(--rl-understand); }
.model-step:nth-child(3) { border-color: var(--rl-resolve); }
.model-step span { color: var(--rl-steel); font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.model-step h3 { font-family: var(--rl-font-display); font-size: 1.65rem; margin: 1.8rem 0 .7rem; }
.model-step p { color: var(--rl-steel); font-size: .9rem; margin: 0; }

.systems-layout, .about-layout { display: grid; gap: 6rem; grid-template-columns: 5fr 7fr; }
.systems h2, .about h2 { font-size: clamp(2.4rem, 4vw, 4rem); margin: 0; }
.systems-layout > div:first-child p, .about-copy, .telco-copy { color: var(--rl-steel); font-size: 1.08rem; }
.system-track { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; justify-content: end; }
.system-track span { border: 1px solid var(--rl-line-dark); border-radius: var(--rl-radius-sm); color: var(--rl-cloud); font-size: .72rem; font-weight: 750; padding: .8rem .9rem; }
.system-track i { background: var(--rl-signal); height: 1px; width: 22px; }

.security-feature { display: grid; gap: 5rem; grid-template-columns: 4fr 8fr; }
.security-lede { max-width: 560px; }
.security-lede h2 { font-size: clamp(2.5rem, 4.5vw, 4.7rem); margin: 0 0 1.8rem; }
.security-lede > p:not(.section-index) { color: var(--rl-steel); font-size: 1.08rem; }
.security-pillars { background: var(--rl-signal); border-radius: var(--rl-radius-md); color: var(--rl-obsidian); display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.security-pillars article { border-bottom: 1px solid rgba(11, 13, 16, .2); padding: 1.6rem; }
.security-pillars article:nth-child(odd) { border-right: 1px solid rgba(11, 13, 16, .2); }
.security-pillars article:nth-child(3), .security-pillars article:nth-child(4) { border-bottom: 0; }
.security-pillars span { font-size: .66rem; font-weight: 850; letter-spacing: .1em; }
.security-pillars h3 { font-family: var(--rl-font-display); font-size: 1.55rem; letter-spacing: -.02em; line-height: 1.05; margin: 2.2rem 0 .8rem; }
.security-pillars p { color: #3e484a; font-size: .86rem; margin: 0; }

.control { background: var(--rl-cloud); color: var(--rl-obsidian); display: grid; gap: 6rem; grid-template-columns: 6fr 6fr; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
.control h2 { font-size: clamp(2.6rem, 5vw, 5rem); margin: 0 0 2rem; }
.control h2 span { color: var(--rl-signal-dark); }
.control-copy > p:not(.section-index) { color: #50595f; font-size: 1.12rem; max-width: 650px; }
.control a:focus-visible { outline-color: var(--rl-obsidian); }
.control-gate { align-self: center; border: 1px solid var(--rl-line-light); }
.gate-row { align-items: center; border-bottom: 1px solid var(--rl-line-light); display: grid; gap: 1rem; grid-template-columns: 42px 1fr 1.5fr; min-height: 88px; padding: 1rem 1.5rem; }
.gate-row span { color: var(--rl-signal-dark); font-size: .7rem; font-weight: 800; }
.gate-row strong { font-family: var(--rl-font-display); font-size: 1.5rem; }
.gate-row em { color: #667078; font-size: .9rem; font-style: normal; }
.gate-row.final { background: var(--rl-obsidian); border-bottom: 0; color: var(--rl-cloud); }
.gate-row.final em { color: var(--rl-steel); }

.industry-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); }
.industry-card { background: var(--rl-graphite); border: 1px solid var(--rl-line-dark); border-radius: var(--rl-radius-md); display: flex; flex-direction: column; min-height: 325px; padding: 1.6rem; transition: border-color var(--rl-duration-base) ease, transform var(--rl-duration-base) ease; }
.industry-card:hover { border-color: var(--rl-steel); transform: translateY(-4px); }
.industry-card.featured { background: var(--rl-signal); border-color: var(--rl-signal); color: var(--rl-obsidian); }
.card-kicker { font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.industry-card:not(.featured) .card-kicker { color: var(--rl-signal); }
.industry-card h3 { font-family: var(--rl-font-display); font-size: 1.8rem; letter-spacing: -.025em; line-height: 1.05; margin: 2.8rem 0 1rem; }
.industry-card p { color: #a8b0b7; font-size: .92rem; margin: 0; }
.industry-card.featured p { color: #3c4548; }
.card-tag { border-top: 1px solid currentColor; font-size: .7rem; font-weight: 750; margin-top: auto; padding-top: .8rem; }

.proof-panel { background: var(--rl-graphite); border: 1px solid var(--rl-line-dark); border-radius: var(--rl-radius-md); display: grid; gap: 4rem; grid-template-columns: 1fr 1fr; padding: clamp(2rem, 5vw, 4rem); }
.proof-panel h2 { font-size: clamp(2.3rem, 4vw, 4rem); margin: 0; }
.proof-copy { color: var(--rl-steel); font-size: 1.05rem; }
.proof-list { border-top: 1px solid var(--rl-line-dark); display: grid; gap: .9rem; margin-top: 2rem; padding-top: 1.2rem; }
.proof-list span { color: var(--rl-cloud); display: flex; font-size: .85rem; gap: .8rem; }
.proof-list b { color: var(--rl-signal); font-size: .7rem; }

.about-copy { max-width: 680px; }
.about-copy p { margin: 0 0 1.4rem; }
.about-copy .text-link { margin-top: .6rem; }
.faq { display: grid; gap: 4rem; grid-template-columns: 4fr 8fr; }
.faq-list { border-top: 1px solid var(--rl-line-dark); }
.faq details { border-bottom: 1px solid var(--rl-line-dark); padding: 1.4rem 0; }
.faq summary { cursor: pointer; font-family: var(--rl-font-display); font-size: 1.4rem; font-weight: 650; list-style: none; padding-right: 2rem; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { color: var(--rl-signal); content: "+"; font-family: var(--rl-font-body); font-size: 1.6rem; position: absolute; right: 0; top: -.25rem; }
.faq details[open] summary::after { content: "−"; }
.faq details p { color: var(--rl-steel); font-size: .95rem; margin: 1rem 2rem 0 0; max-width: 650px; }

.contact { display: grid; gap: 6rem; grid-template-columns: 5fr 7fr; }
.contact-intro h2 { font-size: clamp(2.7rem, 5vw, 5.2rem); margin: 1.2rem 0 2rem; }
.contact-intro > p:not(.rl-label) { color: var(--rl-steel); max-width: 520px; }
.contact-intro a:not(.contact-email) { color: var(--rl-cloud); }
.contact-email { color: var(--rl-signal); display: inline-flex; gap: .6rem; margin-top: 1.2rem; }
.contact-email:hover, .contact-email:focus-visible { color: var(--rl-cloud); }
.contact-form { border-top: 1px solid var(--rl-line-dark); padding-top: 1.5rem; }
.form-grid { display: grid; gap: 1.1rem; grid-template-columns: 1fr 1fr; }
.contact-form label { color: var(--rl-steel); display: grid; font-size: .72rem; font-weight: 800; gap: .55rem; letter-spacing: .02em; margin-bottom: 1.1rem; }
.contact-form input, .contact-form select, .contact-form textarea { background: var(--rl-graphite); border: 1px solid var(--rl-line-dark); border-radius: var(--rl-radius-sm); color: var(--rl-cloud); min-height: 3rem; outline: none; padding: .75rem .85rem; resize: vertical; transition: border-color var(--rl-duration-fast) ease, box-shadow var(--rl-duration-fast) ease; }
.contact-form textarea { min-height: 8rem; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--rl-signal); box-shadow: 0 0 0 3px rgba(200, 255, 61, .15); }
.contact-form select:invalid { color: var(--rl-steel); }
.contact-form.has-errors input:invalid, .contact-form.has-errors select:invalid, .contact-form.has-errors textarea:invalid { border-color: var(--rl-resolve); }
.form-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.4rem; }
.form-actions .rl-button-primary { border: 0; }
.form-actions .rl-button-primary:disabled { cursor: wait; opacity: .65; transform: none; }
.form-note { color: var(--rl-steel); font-size: .72rem; margin: 0; max-width: 310px; }
.form-status { font-size: .8rem; margin: 1rem 0 0; min-height: 1.2em; }
.form-status.error { color: var(--rl-resolve); }
.form-status.success { color: var(--rl-signal); }
.form-trap { display: none; }

footer { align-items: start; border-top: 1px solid var(--rl-line-dark); color: var(--rl-steel); display: grid; font-size: .78rem; gap: 2rem; grid-template-columns: 2fr 1fr 1fr; padding-block: 2.3rem 3.5rem; }
.footer-brand img { display: block; height: 34px; width: auto; }
.footer-brand p { font-size: .8rem; margin: 1rem 0 0; }
.footer-links { display: grid; gap: .7rem; }
.footer-links a { font-size: .76rem; }
.footer-meta { text-align: right; }
.footer-meta a { color: var(--rl-cloud); font-size: .78rem; font-weight: 750; text-decoration: none; }
.footer-meta a:hover, .footer-meta a:focus-visible { color: var(--rl-signal); }
.footer-meta p { font-size: .7rem; margin: .8rem 0 0; }

a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--rl-signal); outline-offset: 4px; }

@media (max-width: 1100px) {
  nav a:not(.nav-cta) { display: none; }
  .hero { grid-template-columns: 1fr; }
  .logic-map { min-height: 460px; }
  .platform, .operating-model, .systems-layout, .security-feature, .control, .faq, .contact { gap: 3rem; grid-template-columns: 1fr; }
  .system-track { justify-content: start; }
  .industry-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .site-header { min-height: 62px; padding: .7rem 1rem; }
  .site-header.menu-open { background: var(--rl-obsidian); }
  .brand img { height: 34px; max-width: 190px; }
  .menu-toggle { display: block; }
  nav { align-items: stretch; background: var(--rl-obsidian); border-bottom: 1px solid var(--rl-line-dark); display: none; flex-direction: column; gap: 0; left: 0; padding: .5rem 1rem 1rem; position: absolute; right: 0; top: 61px; }
  nav.is-open { display: flex; }
  nav a, nav a:not(.nav-cta) { display: block; padding: .85rem 0; }
  nav .nav-cta { margin-top: .5rem; text-align: center; }
  .hero { gap: 2.5rem; min-height: 0; padding-block: 4rem; }
  .hero h1 { font-size: clamp(3.2rem, 15vw, 5rem); }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions a { width: 100%; }
  .hero-detail { margin-top: 2.4rem; }
  .logic-map { aspect-ratio: 1.05; min-height: 0; width: 100%; }
  .map-callout { bottom: 18%; font-size: .75rem; }
  .manifesto { grid-template-columns: 1fr; }
  .manifesto h2 { font-size: clamp(2.3rem, 10vw, 4rem); }
  .product { grid-template-columns: 42px 1fr; }
  .product-state { grid-column: 2; justify-self: start; }
  .model-steps, .industry-grid, .proof-panel, .security-pillars, .form-grid { grid-template-columns: 1fr; }
  .security-pillars article:nth-child(odd) { border-right: 0; }
  .security-pillars article:nth-child(3) { border-bottom: 1px solid rgba(11, 13, 16, .2); }
  .model-step h3 { margin-top: 1.2rem; }
  .system-track i { display: none; }
  .system-track { gap: .45rem; }
  .system-track span { padding: .65rem .7rem; }
  .gate-row { grid-template-columns: 32px 1fr; }
  .gate-row em { grid-column: 2; }
  .proof-panel { gap: 2rem; }
  footer { grid-template-columns: 1fr; }
  .footer-meta { text-align: left; }
}

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