@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap");

:root {
  --orange: #f5a000;
  --orange-dark: #d98200;
  --ink: #0a0a0a;
  --cream: #fff8ec;
  --paper: #f3efe7;
  --white: #fffdf8;
  --line: rgba(10, 10, 10, 0.18);
  --sans: "DM Sans", Arial, sans-serif;
  --display: "Space Grotesk", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.site-header {
  position: sticky; top: 0; z-index: 20; height: 76px; padding: 0 clamp(22px, 5vw, 72px);
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
  background: rgba(255, 248, 236, 0.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px);
}
.brand img { width: 150px; height: auto; }
.site-header nav { display: flex; gap: 30px; font-size: 14px; font-weight: 600; }
.site-header nav a:hover, .text-link:hover { color: var(--orange-dark); }
.site-nav-toggle { display: none; width: 44px; height: 44px; padding: 11px 10px; background: none; border: 1px solid var(--line); cursor: pointer; }
.site-nav-toggle span { display: block; height: 2px; background: var(--ink); }
.site-nav-toggle span + span { margin-top: 4px; }
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 26px; min-height: 52px;
  padding: 0 22px; background: var(--orange); border: 1px solid var(--ink); box-shadow: 4px 4px 0 var(--ink);
  font: 700 14px var(--sans); transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.button:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--ink); background: #ffad12; }
.button--small { min-height: 40px; padding: 0 16px; box-shadow: none; border: 0; gap: 12px; }
.button--cream { background: var(--cream); color: var(--ink); }
/* Secondary button for dark sections: the same shape, so it reads as a button,
   without competing with the orange one it sits beside. */
.button--ghost { background: transparent; color: var(--cream); }
.button--ghost:hover { background: rgba(245, 160, 0, .16); }

.hero {
  min-height: 720px; position: relative; overflow: hidden; display: grid; grid-template-columns: 1.05fr .95fr;
  align-items: center; gap: 4vw; padding: 88px clamp(22px, 6vw, 88px) 82px;
}
.hero-grid { position: absolute; inset: 0; opacity: .55; pointer-events: none; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to bottom, transparent, #000 18%, #000 82%, transparent); }
.hero-copy { position: relative; z-index: 1; }
.kicker { margin: 0 0 24px; display: flex; align-items: center; gap: 10px; font: 700 11px var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.kicker span { width: 8px; height: 8px; background: var(--orange); border: 1px solid var(--ink); border-radius: 50%; }
.hero h1 { max-width: 820px; margin: 0; font: 700 clamp(64px, 6.4vw, 116px)/.9 var(--display); letter-spacing: -.065em; }
.hero h1 em { display: block; color: var(--orange); font-style: normal; -webkit-text-stroke: 2px var(--ink); text-shadow: 5px 5px 0 var(--ink); }
.hero-lede { max-width: 680px; margin: 36px 0 0; font-size: clamp(18px, 1.6vw, 23px); line-height: 1.55; }
.hero-actions { margin-top: 38px; display: flex; align-items: center; gap: 34px; }
.text-link { font-size: 14px; font-weight: 700; border-bottom: 1px solid var(--ink); padding-bottom: 5px; }

.system-map { position: relative; z-index: 1; min-height: 520px; border: 1px solid var(--ink); background: var(--ink); box-shadow: 12px 12px 0 var(--orange); overflow: hidden; }
.system-map::before { content: ""; position: absolute; inset: 0; opacity: .25; background-image: linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px); background-size: 48px 48px; }
.system-caption { position: absolute; left: 18px; right: 18px; bottom: 16px; display: flex; justify-content: space-between; color: rgba(255,248,236,.55); font: 600 9px var(--sans); letter-spacing: .12em; }
.system-caption span:last-child { color: #b7ff5b; }
/* The Orva hero swaps the CSS-drawn map for artwork. The PNG is knocked out to
   transparency so the box's own grid runs behind the orbits at the same pitch as
   the hero's — a baked-in black ground would read as a lighter patch pasted over
   the section. Bottom padding leaves the caption its own air. */
.system-map--art { display: grid; place-items: center; padding: 38px 26px 58px; }
.system-map--art img { position: relative; display: block; width: 100%; height: auto; }

.build-map { position: relative; z-index: 1; min-height: 520px; display: flex; flex-direction: column; border: 1px solid var(--ink); background: var(--ink); box-shadow: 12px 12px 0 var(--orange); overflow: hidden; }
.build-map::before { content: ""; position: absolute; inset: 0; opacity: .25; background-image: linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px); background-size: 48px 48px; }
.build-map-bar { position: relative; min-height: 52px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid rgba(255,248,236,.18); color: rgba(255,248,236,.62); font: 700 9px var(--sans); letter-spacing: .12em; }
.build-map-bar i { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #b7ff5b; box-shadow: 0 0 12px #b7ff5b; }
.build-map-body { position: relative; flex: 1; padding: 24px 22px 46px; display: flex; flex-direction: column; justify-content: center; gap: 16px; }
.build-row > span { display: block; margin-bottom: 11px; color: var(--orange); font: 700 8px var(--sans); letter-spacing: .14em; }
.build-row > div { display: grid; gap: 7px; }
.build-row b { padding: 11px 13px; border: 1px solid rgba(245,160,0,.42); color: var(--cream); font: 600 12px var(--sans); }
.build-row--skills > div { grid-template-columns: 1fr 1fr; }
.build-row--skills b { padding: 10px 12px; font-size: 11px; }
.build-row--out b { border-color: var(--orange); background: rgba(245,160,0,.12); }
.build-core { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 14px; border: 1px solid var(--cream); background: var(--orange); color: var(--ink); }
.build-core strong { font: 700 34px var(--display); letter-spacing: -.06em; }
.build-core small { max-width: 200px; font: 700 8px var(--sans); letter-spacing: .13em; line-height: 1.55; }

.proof-strip { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--orange); border-block: 1px solid var(--ink); }
.proof-strip div { padding: 25px clamp(18px, 3vw, 46px); border-right: 1px solid var(--ink); display: flex; align-items: baseline; gap: 10px; }
.proof-strip div:last-child { border: 0; }.proof-strip strong { font: 700 28px var(--display); }.proof-strip span { font-size: 12px; font-weight: 600; }

.client-strip { padding: 54px clamp(22px, 6vw, 88px) 60px; background: var(--ink); color: var(--cream); border-bottom: 1px solid var(--orange); }
.client-strip-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 38px; }
.client-strip-heading p { margin: 0; color: var(--orange); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.client-strip-heading h2 { max-width: 630px; margin: 0; text-align: right; font: 600 clamp(22px, 2.5vw, 36px)/1.15 var(--display); letter-spacing: -.035em; }
.client-ticker { overflow: hidden; border-block: 1px solid rgba(255,248,236,.22); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.client-logo-track { width: max-content; display: flex; animation: client-ticker 34s linear infinite; will-change: transform; }
.client-ticker:hover .client-logo-track { animation-play-state: paused; }
.client-logo-set { flex: none; display: flex; }
.client-logo-set > div { width: clamp(155px, 14vw, 220px); height: 104px; padding: 18px 26px; display: grid; place-items: center; border-right: 1px solid rgba(255,248,236,.18); }
.client-logo-set img { width: 100%; max-width: 150px; max-height: 64px; object-fit: contain; }
@keyframes client-ticker { to { transform: translateX(-50%); } }

.section { padding: 112px clamp(22px, 6vw, 88px); }
.section-label { font: 700 10px var(--sans); letter-spacing: .18em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); padding-top: 3px; }
.manifesto { display: grid; grid-template-columns: 80px minmax(0, 1fr) 320px; gap: 4vw; border-bottom: 1px solid var(--line); }
.manifesto h2, .work-heading h2, .engagement h2, .closing h2 { margin: 0; font: 700 clamp(44px, 5.2vw, 80px)/.98 var(--display); letter-spacing: -.055em; }
.manifesto-copy p { max-width: 820px; margin: 28px 0 0; font-size: clamp(22px, 2.5vw, 36px); line-height: 1.3; color: rgba(10,10,10,.72); }
.manifesto-note { align-self: end; border-left: 3px solid var(--orange); padding-left: 20px; display: flex; flex-direction: column; gap: 9px; font: 700 11px var(--sans); letter-spacing: .08em; }

.orva-section { background: var(--ink); color: var(--cream); padding: 120px clamp(22px, 6vw, 88px); display: grid; grid-template-columns: .85fr 1.15fr; gap: 7vw; align-items: center; }
.kicker--light span { border-color: var(--cream); }.orva-intro .orva-logo { width: 205px; margin: 10px 0 32px; display: block; }
.orva-intro h2 { margin: 0; font: 700 clamp(42px, 4.6vw, 72px)/1 var(--display); letter-spacing: -.05em; }
.orva-intro > p:not(.kicker) { max-width: 650px; margin: 28px 0 34px; font-size: 18px; line-height: 1.65; color: rgba(255,248,236,.72); }
.orva-intro-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 30px; }
.orva-intro-actions > a:not(.button) { padding-bottom: 4px; border-bottom: 1px solid var(--orange); color: var(--orange); font-size: 13px; font-weight: 700; }
.conversation { background: #151515; border: 1px solid rgba(255,248,236,.32); box-shadow: 12px 12px 0 var(--orange); }
.conversation-bar { height: 54px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,248,236,.18); font-size: 11px; color: rgba(255,248,236,.55); }
.conversation-bar span:first-child { color: var(--cream); font-weight: 700; font-size: 13px; }.conversation-bar i { display: inline-block; width: 8px; height: 8px; background: #b7ff5b; border-radius: 50%; margin-right: 8px; }
.message { padding: 25px; display: grid; grid-template-columns: 42px 1fr; gap: 14px; border-bottom: 1px solid rgba(255,248,236,.13); }
.message:last-child { border: 0; }.avatar { width: 38px; height: 38px; display: grid; place-items: center; background: #383838; font: 700 11px var(--sans); }.avatar--orva { background: var(--orange); color: var(--ink); border-radius: 50%; }
.message strong { font-size: 14px; }.message time { font-size: 10px; color: rgba(255,248,236,.42); }.message p { margin: 8px 0 0; line-height: 1.55; color: rgba(255,248,236,.78); font-size: 14px; }
.message--orva { background: rgba(245,160,0,.035); }.result-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 18px; border: 1px solid rgba(245,160,0,.45); }
.result-grid div { padding: 15px; border-right: 1px solid rgba(245,160,0,.35); }.result-grid div:last-child { border: 0; }.result-grid span, .result-grid small { display: block; font-size: 8px; letter-spacing: .1em; color: rgba(255,248,236,.5); }.result-grid strong { display: block; margin: 7px 0 3px; color: var(--orange); font-size: 16px; }.action-line { margin-top: 14px; padding: 12px 14px; background: rgba(183,255,91,.08); font-size: 11px; color: rgba(255,248,236,.78); }.action-line span { color: #b7ff5b; margin-right: 8px; }

.capabilities { display: grid; grid-template-columns: 80px 1fr; gap: 4vw; }
.capability { min-height: 210px; display: grid; grid-template-columns: 70px 1fr 190px; gap: 30px; align-items: start; padding: 38px 0; border-top: 1px solid var(--ink); }
.capability:last-child { border-bottom: 1px solid var(--ink); }.capability-number { color: var(--orange-dark); font: 700 13px var(--display); }.capability h3 { margin: 0 0 14px; font: 700 clamp(30px, 3vw, 48px)/1.05 var(--display); letter-spacing: -.04em; }.capability p { max-width: 750px; margin: 0; font-size: 17px; line-height: 1.6; color: rgba(10,10,10,.68); }.capability-tag { justify-self: end; padding: 8px 10px; border: 1px solid var(--ink); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }


.work-section { background: var(--paper); border-top: 1px solid var(--ink); }
.work-heading { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 4vw; margin-bottom: 70px; }.work-heading h2 { max-width: 1100px; font-size: clamp(42px, 5vw, 76px); }
.work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.work-card { min-height: 570px; position: relative; overflow: hidden; padding: 30px; display: flex; flex-direction: column; border: 1px solid var(--ink); }
.work-grid > a { transition: transform .2s ease, box-shadow .2s ease; }.work-grid > a:hover { transform: translate(-4px,-4px); box-shadow: 9px 9px 0 var(--ink); }
.work-card > p { margin: 0; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; }.work-card h3 { margin: 9px 0 0; font: 700 clamp(39px, 4vw, 66px)/1 var(--display); letter-spacing: -.05em; }.work-card--orva { background: var(--orange); }.work-card--agents { background: var(--ink); color: var(--cream); }.work-card--flight { background: var(--cream); }
.work-visual { flex: 1; position: relative; min-height: 230px; margin: 28px 0; }
.work-card--orva .work-visual { display:grid; place-items:center; border:1px solid var(--ink); background:var(--cream); box-shadow:8px 8px 0 var(--ink); }.work-card--orva .work-visual img { width:min(72%,390px); height:auto; display:block; }
/* Both logos need a light panel: BrightAgent.png carries an opaque white background and the
   MatchStrike mark is transparent with black lettering, so neither reads on a dark card. */
.work-card--agents .work-visual, .work-card--matchstrike .work-visual { display: grid; place-items: center; padding: 26px; border: 1px solid var(--ink); background: #fff; box-shadow: 8px 8px 0 var(--orange); }
.work-card--agents .work-visual img, .work-card--matchstrike .work-visual img { max-width: min(100%, 360px); max-height: 190px; width: auto; height: auto; display: block; object-fit: contain; }
.work-card--agents .work-visual { padding: 16px; }.work-card--agents .work-visual img { max-height: 250px; }
/* The BrightShields mark carries an opaque white background, so it gets a white panel like the
   other logo cards instead of the old mission-grid decoration. */
.work-card--flight .work-visual { display: grid; place-items: center; padding: 26px; border: 1px solid var(--ink); background: #fff; box-shadow: 8px 8px 0 var(--ink); }
.work-card--flight .work-visual img { max-width: min(100%, 330px); max-height: 180px; width: auto; height: auto; display: block; object-fit: contain; }
.work-card--varys { background: #d5d3ce; }.work-card--varys .work-visual { border: 1px solid var(--ink); background: #e9e8e4; padding: 22px; display: grid; align-content: center; gap: 12px; }.work-card--varys .work-visual span { position: relative; display: block; height: 38px; border: 1px solid var(--ink); background: #f8f8f6; box-shadow: 5px 5px 0 rgba(10,10,10,.13); }.work-card--varys .work-visual span::before { content: "[ ]"; position: absolute; left: 10px; top: 10px; color: #1b7f77; font: 700 10px var(--sans); }.work-card--varys .work-visual span::after { content: ""; position: absolute; left: 48px; right: 14px; top: 13px; height: 9px; background: repeating-linear-gradient(to bottom, #0a0a0a 0 1px, transparent 1px 4px); opacity: .65; }.work-card--varys .work-visual span:nth-child(2) { margin-left: 9%; }.work-card--varys .work-visual span:nth-child(3) { margin-left: 18%; border-color: #e25c2c; }.work-card--varys .work-visual::after { content: "4 RISKS · REVIEW READY"; position: absolute; right: 12px; bottom: 12px; padding: 8px 10px; background: var(--ink); color: var(--cream); font: 700 8px var(--sans); letter-spacing: .11em; }
.work-copy { margin-top: auto; }.work-copy p { line-height: 1.55; font-size: 15px; }.work-copy small { display: block; padding-top: 16px; margin-top: 18px; border-top: 1px solid currentColor; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; opacity: .65; }

.integration-section { padding: 38px 0; background: var(--orange); border-block: 1px solid var(--ink); overflow: hidden; }.integration-section > p { margin: 0 0 26px; text-align: center; font: 700 10px var(--sans); letter-spacing: .16em; text-transform: uppercase; }.integration-track { display: flex; justify-content: center; flex-wrap: wrap; }.integration-track span { padding: 8px 24px; border-right: 1px solid var(--ink); font: 700 17px var(--display); }.integration-track span:last-child { border: 0; }
.orva-page .integration-section { background: var(--ink); color: var(--cream); border-block-color: var(--orange); }
.orva-page .integration-section > p { color: var(--orange); }
.orva-page .integration-track span { border-right-color: rgba(255,248,236,.3); }

.resources-section { background: var(--cream); }.resources-heading { display: grid; grid-template-columns: 80px 1fr; gap: 4vw; margin-bottom: 62px; }.resources-heading h2 { margin: 0; font: 700 clamp(48px, 5.4vw, 84px)/.95 var(--display); letter-spacing: -.06em; }.resources-heading p { max-width: 720px; margin: 26px 0 0; font-size: 19px; line-height: 1.6; color: rgba(10,10,10,.65); }.resource-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-left: calc(80px + 4vw); }.resource-card { min-height: 500px; padding: 34px; display: flex; flex-direction: column; border: 1px solid var(--ink); transition: transform .2s ease, box-shadow .2s ease; }.resource-card:hover { transform: translate(-4px,-4px); box-shadow: 9px 9px 0 var(--ink); }.resource-card--media { background: var(--orange); }.resource-card--library { background: var(--paper); }.resource-top { display: flex; justify-content: space-between; font: 700 10px var(--sans); letter-spacing: .12em; }.resource-top span:last-child { font-size: 20px; }.resource-card h3 { max-width: 650px; margin: 58px 0 20px; font: 700 clamp(36px, 4vw, 60px)/.98 var(--display); letter-spacing: -.05em; }.resource-card > p { max-width: 600px; margin: 0; font-size: 16px; line-height: 1.6; }.resource-card ul { margin: 34px 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }.resource-card li { padding: 12px 0; border-bottom: 1px solid rgba(10,10,10,.34); font-size: 12px; font-weight: 600; }.resource-card > strong { margin-top: auto; font: 700 12px var(--sans); text-transform: uppercase; letter-spacing: .1em; }

.engagement { display: grid; grid-template-columns: 1fr .9fr; gap: 9vw; }.engagement .section-label { writing-mode: initial; transform: none; margin-bottom: 24px; }.engagement h2 { max-width: 740px; }.engagement-copy > p { max-width: 660px; margin: 28px 0 0; font-size: 19px; line-height: 1.6; color: rgba(10,10,10,.68); }.engagement ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }.engagement li { display: grid; grid-template-columns: 52px 1fr; gap: 22px; padding: 26px 0; border-bottom: 1px solid var(--ink); }.engagement li > span { color: var(--orange-dark); font: 700 12px var(--display); }.engagement strong { font: 700 22px var(--display); }.engagement li p { margin: 8px 0 0; line-height: 1.5; color: rgba(10,10,10,.62); }

.closing { padding: 120px clamp(22px, 8vw, 120px); position: relative; overflow: hidden; background: var(--ink); color: var(--cream); text-align: center; }.closing-mark { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); font: 700 440px/.8 var(--display); letter-spacing: -.13em; color: rgba(245,160,0,.055); pointer-events: none; }.closing .kicker { position: relative; justify-content: center; }.closing h2 { position: relative; font-size: clamp(58px, 8vw, 124px); }.closing > p:not(.kicker) { position: relative; max-width: 780px; margin: 32px auto 40px; font-size: 19px; line-height: 1.6; color: rgba(255,248,236,.68); }.closing-actions { position: relative; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 36px; }.closing-actions > a:not(.button) { font-weight: 700; font-size: 14px; border-bottom: 1px solid var(--cream); padding-bottom: 4px; }
footer { padding: 36px clamp(22px, 6vw, 88px); display: grid; grid-template-columns: 180px 1fr auto; gap: 30px; align-items: center; background: var(--orange); border-top: 1px solid var(--ink); }.footer img, footer > img { width: 150px; } footer p { margin: 0; font-size: 12px; } footer div { display: flex; gap: 22px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }

.government-page { background: var(--cream); }.gov-hero { min-height: 700px; position: relative; overflow: hidden; display: grid; grid-template-columns: 1.15fr .85fr; gap: 7vw; align-items: center; padding: 100px clamp(22px, 7vw, 110px); background: var(--ink); color: var(--cream); }.gov-grid { position: absolute; inset: 0; opacity: .2; background-image: linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px); background-size: 68px 68px; }.gov-hero-copy, .gov-seal { position: relative; z-index: 1; }.gov-hero h1 { margin: 0; font: 700 clamp(70px, 8.8vw, 142px)/.82 var(--display); letter-spacing: -.075em; }.gov-hero h1 em { display: block; color: var(--orange); font-style: normal; }.gov-hero-copy > p:not(.kicker) { max-width: 740px; margin: 36px 0; font-size: 20px; line-height: 1.6; color: rgba(255,248,236,.72); }.gov-actions { display: flex; align-items: center; gap: 34px; }.gov-actions > a:last-child { font-size: 13px; font-weight: 700; border-bottom: 1px solid var(--cream); padding-bottom: 5px; }
.gov-seal { aspect-ratio: 1; max-width: 500px; display: flex; flex-direction: column; align-items: center; justify-content: center; justify-self: end; border: 1px solid var(--orange); border-radius: 50%; box-shadow: 0 0 0 18px rgba(245,160,0,.05), 0 0 0 36px rgba(245,160,0,.025); text-align: center; }.gov-seal::before, .gov-seal::after { content: ""; position: absolute; inset: 9%; border: 1px dashed rgba(245,160,0,.45); border-radius: 50%; }.gov-seal::after { inset: 18%; border-style: solid; }.gov-seal > span { color: var(--orange); font: 700 9px var(--sans); letter-spacing: .18em; }.gov-seal > strong { margin: 22px 0; font: 700 clamp(38px, 4.3vw, 68px)/.86 var(--display); letter-spacing: -.055em; }.gov-seal dl { position: relative; z-index: 1; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }.gov-seal dt { color: rgba(255,248,236,.46); font-size: 8px; letter-spacing: .12em; }.gov-seal dd { margin: 5px 0 0; font: 700 11px var(--display); }
.gov-competencies { padding: 24px clamp(22px, 6vw, 88px); display: flex; align-items: center; gap: 35px; background: var(--orange); border-block: 1px solid var(--ink); }.gov-competencies > p { white-space: nowrap; margin: 0; font: 700 9px var(--sans); letter-spacing: .15em; text-transform: uppercase; }.gov-competencies div { display: flex; flex-wrap: wrap; }.gov-competencies span { padding: 5px 16px; border-left: 1px solid var(--ink); font: 700 12px var(--display); }
.gov-section-heading { display: grid; grid-template-columns: 80px 1fr; gap: 4vw; margin-bottom: 64px; }.gov-section-heading h2 { max-width: 980px; margin: 0; font: 700 clamp(48px, 5.7vw, 88px)/.94 var(--display); letter-spacing: -.06em; }.award-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }.award-grid article { min-height: 460px; padding: 28px; display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--ink); }.award-index { align-self: flex-end; width: 44px; height: 44px; display: grid; place-items: center; background: var(--orange); border: 1px solid var(--ink); font: 700 12px var(--display); }.award-grid article > p:not(.award-copy) { margin: 50px 0 8px; color: var(--orange-dark); font: 700 11px var(--sans); text-transform: uppercase; letter-spacing: .1em; }.award-grid small { font-size: 9px; letter-spacing: .08em; }.award-grid h3 { margin: 18px 0 0; font: 700 clamp(28px, 2.6vw, 42px)/1.02 var(--display); letter-spacing: -.04em; }.award-line { margin: auto 0 18px; height: 1px; background: var(--ink); }.award-copy { margin: 0; font-size: 13px; line-height: 1.6; color: rgba(10,10,10,.65); }
.gov-partnerships { display: grid; grid-template-columns: .8fr 1.2fr; gap: 9vw; background: var(--ink); color: var(--cream); }.gov-partnerships h2 { margin: 0; font: 700 clamp(48px, 5vw, 78px)/.95 var(--display); letter-spacing: -.06em; }.gov-partnerships > div:first-child > p:last-child { max-width: 590px; font-size: 17px; line-height: 1.6; color: rgba(255,248,236,.65); }.partnership-list { border-top: 1px solid rgba(255,248,236,.36); }.partnership-list article { padding: 27px 0; border-bottom: 1px solid rgba(255,248,236,.36); }.partnership-list span { color: var(--orange); font: 700 9px var(--sans); letter-spacing: .13em; }.partnership-list h3 { margin: 9px 0; font: 700 24px var(--display); }.partnership-list p { margin: 0; font-size: 13px; line-height: 1.6; color: rgba(255,248,236,.62); }
.naics-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }.naics-grid div { min-height: 120px; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }.naics-grid strong { color: var(--orange-dark); font: 700 25px var(--display); }.naics-grid span { font-size: 12px; line-height: 1.4; }.gov-cta { padding: 110px clamp(22px, 9vw, 140px); background: var(--orange); text-align: center; }.gov-cta .kicker { justify-content: center; }.gov-cta h2 { max-width: 1100px; margin: 0 auto; font: 700 clamp(55px, 7vw, 108px)/.9 var(--display); letter-spacing: -.07em; }.gov-cta > p:not(.kicker) { max-width: 700px; margin: 30px auto; font-size: 18px; line-height: 1.6; }.gov-disclaimer { padding: 18px clamp(22px, 6vw, 88px); background: var(--paper); border-top: 1px solid var(--ink); font-size: 9px; line-height: 1.5; text-align: center; text-transform: uppercase; letter-spacing: .07em; color: rgba(10,10,10,.58); }

/* Library */
.library-page { background: var(--cream); }.library-hero { min-height: 670px; position: relative; overflow: hidden; padding: 95px clamp(22px, 7vw, 110px); display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: end; background: var(--ink); color: var(--cream); }.library-grid { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 68px 68px; mask-image: linear-gradient(to right, #000, transparent 82%); }.library-hero > div:not(.library-grid), .library-jumps { position: relative; z-index: 1; }.library-hero h1 { margin: 0; font: 700 clamp(75px, 9.2vw, 146px)/.82 var(--display); letter-spacing: -.075em; }.library-hero h1 em { color: var(--orange); font-style: normal; }.library-hero > div > p:last-child { max-width: 700px; margin: 38px 0 0; color: rgba(255,248,236,.68); font-size: 20px; line-height: 1.6; }.library-jumps { border-top: 1px solid rgba(255,248,236,.35); }.library-jumps a { padding: 23px 0; display: grid; grid-template-columns: 45px 1fr; gap: 18px; border-bottom: 1px solid rgba(255,248,236,.35); font: 700 18px var(--display); }.library-jumps a:hover { color: var(--orange); }.library-jumps span { color: var(--orange); font: 700 10px var(--sans); letter-spacing: .12em; }
.library-heading { display: grid; grid-template-columns: 80px 1fr; gap: 4vw; margin-bottom: 65px; }.library-heading h2 { max-width: 1080px; margin: 0; font: 700 clamp(48px, 5.7vw, 88px)/.94 var(--display); letter-spacing: -.06em; }.library-heading > div > p:last-child { max-width: 700px; margin: 25px 0 0; color: rgba(10,10,10,.62); font-size: 17px; line-height: 1.6; }
.library-paper-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }.library-paper-grid > a { min-height: 470px; padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--ink); background: var(--paper); transition: transform .2s ease, box-shadow .2s ease; }.library-paper-grid > a:first-child { background: var(--orange); }.library-paper-grid > a:hover { transform: translate(-4px,-4px); box-shadow: 9px 9px 0 var(--ink); }.library-paper-grid a > div { display: flex; justify-content: space-between; color: var(--orange-dark); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.library-paper-grid a:first-child > div { color: var(--ink); }.library-paper-grid h3 { margin: 70px 0 20px; font: 700 clamp(30px, 3vw, 47px)/1 var(--display); letter-spacing: -.045em; }.library-paper-grid p { margin: 0; color: rgba(10,10,10,.64); font-size: 14px; line-height: 1.6; }.library-paper-grid strong { margin-top: auto; padding-top: 22px; border-top: 1px solid var(--ink); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.library-articles { background: var(--ink); color: var(--cream); }.library-article-list { margin-left: calc(80px + 4vw); border-top: 1px solid rgba(255,248,236,.35); }.library-article-list a { position: relative; padding: 30px 60px 30px 0; display: grid; grid-template-columns: 170px 1fr 1fr; gap: 38px; align-items: start; border-bottom: 1px solid rgba(255,248,236,.35); }.library-article-list a:hover h3 { color: var(--orange); }.library-article-list span { color: var(--orange); font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }.library-article-list h3 { margin: 0; font: 700 clamp(24px, 2.5vw, 38px)/1.06 var(--display); }.library-article-list p { margin: 0; color: rgba(255,248,236,.6); font-size: 13px; line-height: 1.6; }.library-article-list b { position: absolute; right: 0; top: 28px; color: var(--orange); font-size: 22px; }
.library-videos { background: var(--paper); }.library-video-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }.library-video-grid article { min-width: 0; border: 1px solid var(--ink); background: var(--cream); }.library-video { aspect-ratio: 16 / 9; background: var(--ink); border-bottom: 1px solid var(--ink); }.library-video iframe { width: 100%; height: 100%; display: block; border: 0; }.library-video-grid article > div:last-child { min-height: 170px; padding: 23px; display: flex; flex-direction: column; }.library-video-grid span { color: var(--orange-dark); font-size: 8px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }.library-video-grid h3 { margin: 11px 0 22px; font: 700 clamp(21px, 2vw, 31px)/1.05 var(--display); letter-spacing: -.035em; }.library-video-grid a { margin-top: auto; align-self: flex-start; padding-bottom: 3px; border-bottom: 1px solid var(--ink); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 980px) { .library-hero { grid-template-columns: 1fr; }.library-paper-grid { margin-left: 0; grid-template-columns: 1fr; }.library-paper-grid > a { min-height: 360px; }.library-article-list, .library-video-grid { margin-left: 0; } }
@media (max-width: 680px) { .library-hero { min-height: auto; padding: 80px 20px; }.library-hero h1 { font-size: 76px; }.library-hero > div > p:last-child { font-size: 17px; }.library-jumps { margin-top: 35px; }.library-heading { grid-template-columns: 1fr; }.library-article-list a { padding-right: 38px; grid-template-columns: 1fr; gap: 12px; }.library-video-grid { grid-template-columns: 1fr; }.library-video-grid article > div:last-child { min-height: 145px; } }

/* BrightShields (internal class prefix stays .flight-*) */
.flight-page { background: var(--cream); }
/* brightshields-logo.png is black lettering on an opaque white background, so it needs its own
   light panel to read against the dark hero. */
.shields-logo { width: min(270px, 62%); height: auto; margin: 0 0 26px; padding: 14px 18px; display: block; background: #fff; border: 1px solid var(--ink); box-shadow: 6px 6px 0 var(--orange); }
.flight-hero { min-height: 760px; position: relative; overflow: hidden; padding: 100px clamp(22px, 6vw, 88px); display: grid; grid-template-columns: 1.08fr .92fr; gap: 7vw; align-items: center; background: var(--ink); color: var(--cream); }
.flight-grid { position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg, #000, transparent 90%); }
.flight-hero-copy, .flight-prompt-card { position: relative; z-index: 1; }
.flight-hero h1 { max-width: 900px; margin: 0; font: 700 clamp(60px, 6.7vw, 108px)/.88 var(--display); letter-spacing: -.07em; }.flight-hero h1 em { color: var(--orange); font-style: normal; }
.flight-hero-copy > p:not(.kicker) { max-width: 760px; margin: 34px 0; color: rgba(255,248,236,.72); font-size: 19px; line-height: 1.65; }
.flight-prompt-card { border: 1px solid var(--orange); background: #111; box-shadow: 12px 12px 0 var(--orange); }
.flight-prompt-bar { min-height: 54px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid rgba(255,248,236,.2); color: rgba(255,248,236,.55); font-size: 9px; font-weight: 700; letter-spacing: .12em; }.flight-prompt-bar span:first-child { color: var(--cream); }.flight-prompt-bar i { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #b7ff5b; box-shadow: 0 0 10px #b7ff5b; }
.flight-prompt-card blockquote { margin: 0; padding: 36px 30px; font: 600 clamp(22px, 2.2vw, 34px)/1.35 var(--display); letter-spacing: -.035em; }
.flight-prompt-processing { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255,248,236,.2); }.flight-prompt-processing span { padding: 15px 18px; border-right: 1px solid rgba(255,248,236,.14); border-bottom: 1px solid rgba(255,248,236,.14); color: rgba(255,248,236,.66); font-size: 10px; }.flight-prompt-processing span:nth-child(2n) { border-right: 0; }.flight-prompt-processing span:nth-last-child(-n+2) { border-bottom: 0; }

.flight-viewer-section { padding: 110px clamp(22px, 6vw, 88px); background: #101010; color: var(--cream); }
.flight-section-heading { display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: end; margin-bottom: 54px; }.flight-section-heading h2 { max-width: 920px; margin: 0; font: 700 clamp(48px, 5.8vw, 90px)/.94 var(--display); letter-spacing: -.06em; }.flight-section-heading > p { max-width: 620px; margin: 0; color: rgba(255,248,236,.62); font-size: 16px; line-height: 1.65; }
.flight-console { display: grid; grid-template-columns: minmax(0, 1fr) 310px; grid-template-rows: 52px minmax(560px, 65vh); border: 1px solid var(--orange); background: #0b0f0c; box-shadow: 12px 12px 0 var(--orange); }
.flight-console-bar { grid-column: 1 / -1; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,248,236,.18); color: rgba(255,248,236,.48); font-size: 9px; font-weight: 700; letter-spacing: .12em; }.flight-console-bar div:first-child { color: var(--cream); }.flight-console-bar i { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #b7ff5b; box-shadow: 0 0 12px #b7ff5b; }
.flight-visual-stack { min-width: 0; display: grid; grid-template-rows: minmax(390px, 1fr) 170px; border-right: 1px solid rgba(255,248,236,.18); }
.flight-map-wrap { min-width: 0; position: relative; overflow: hidden; border-bottom: 1px solid rgba(255,248,236,.18); }.flight-map-wrap canvas { width: 100%; height: 100%; display: block; }
.flight-map-label { position: absolute; z-index: 2; pointer-events: none; }.flight-map-label--place { top: 20px; left: 22px; display: flex; flex-direction: column; }.flight-map-label--place strong { font: 700 15px var(--display); letter-spacing: .08em; }.flight-map-label--place span { margin-top: 4px; color: var(--orange); font-size: 8px; font-weight: 700; letter-spacing: .12em; }.flight-map-label--north { top: 20px; right: 22px; font: 700 11px var(--display); }
.flight-legend { position: absolute; z-index: 2; left: 22px; bottom: 18px; display: flex; flex-wrap: wrap; gap: 15px; padding: 9px 12px; background: rgba(10,10,10,.76); border: 1px solid rgba(255,248,236,.18); font-size: 8px; font-weight: 700; letter-spacing: .08em; }.flight-legend span { display: flex; align-items: center; gap: 6px; }.flight-legend i, .flight-drone-list i { width: 8px; height: 8px; border-radius: 50%; background: var(--drone-color); box-shadow: 0 0 9px var(--drone-color); }
.flight-profile-wrap { min-width: 0; position: relative; overflow: hidden; background: #08100c; }.flight-profile-wrap canvas { width: 100%; height: 100%; display: block; }.flight-profile-label { position: absolute; z-index: 2; top: 12px; left: 17px; display: flex; flex-direction: column; pointer-events: none; }.flight-profile-label strong { color: var(--cream); font-size: 8px; letter-spacing: .12em; }.flight-profile-label span { margin-top: 3px; color: rgba(255,248,236,.48); font-size: 8px; }
.flight-telemetry { padding: 20px; display: flex; flex-direction: column; overflow: auto; }.flight-telemetry-heading { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 17px; border-bottom: 1px solid rgba(255,248,236,.2); }.flight-telemetry-heading span { color: var(--orange); font-size: 9px; font-weight: 700; letter-spacing: .12em; }.flight-telemetry-heading strong { font: 700 32px var(--display); }
.flight-telemetry dl { margin: 9px 0 16px; }.flight-telemetry dl div { padding: 10px 0; display: flex; justify-content: space-between; gap: 14px; border-bottom: 1px solid rgba(255,248,236,.11); }.flight-telemetry dt { color: rgba(255,248,236,.48); font-size: 10px; }.flight-telemetry dd { margin: 0; font-size: 10px; font-weight: 700; text-align: right; }
.flight-drone-list { margin-top: auto; border: 1px solid rgba(255,248,236,.18); }.flight-drone-list > div { padding: 9px 10px; display: grid; grid-template-columns: 10px 47px 1fr; gap: 8px; align-items: center; border-bottom: 1px solid rgba(255,248,236,.12); }.flight-drone-list > div:last-child { border-bottom: 0; }.flight-drone-list span { display: flex; flex-direction: column; gap: 3px; font-size: 8px; letter-spacing: .08em; }.flight-drone-list span b { color: #b7ff5b; font-size: 6px; letter-spacing: .08em; }.flight-drone-list small { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }.flight-drone-list em { display: flex; flex-direction: column; color: rgba(255,248,236,.42); font-size: 6px; font-style: normal; line-height: 1.2; text-transform: uppercase; }.flight-drone-list em strong { color: var(--cream); font-size: 9px; }
.flight-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }.flight-controls button { min-height: 38px; color: var(--cream); background: transparent; border: 1px solid rgba(255,248,236,.28); font: 700 9px var(--sans); text-transform: uppercase; letter-spacing: .08em; cursor: pointer; }.flight-controls button:hover { color: var(--ink); background: var(--orange); border-color: var(--orange); }
.flight-viewer-note { max-width: 1060px; margin: 30px 0 0; color: rgba(255,248,236,.43); font-size: 10px; line-height: 1.6; }
.flight-regulatory-note { max-width:1060px; margin:16px 0 0; padding:15px 18px; border-left:3px solid var(--orange); background:rgba(255,248,236,.06); color:rgba(255,248,236,.58); font-size:10px; line-height:1.65; }.flight-regulatory-note strong { color:var(--cream); letter-spacing:.06em; }.flight-regulatory-note a { color:var(--orange); font-weight:700; white-space:nowrap; }
.flight-return-section { padding:110px clamp(22px,7vw,110px); display:grid; grid-template-columns:.78fr 1.22fr; gap:7vw; background:var(--orange); border-block:1px solid var(--ink); }.flight-return-copy h2 { margin:16px 0 28px; font:700 clamp(50px,6vw,92px)/.9 var(--display); letter-spacing:-.065em; }.flight-return-copy h2 em { color:var(--cream); font-style:normal; text-shadow:3px 3px 0 var(--ink); -webkit-text-stroke:1px var(--ink); }.flight-return-copy>p:last-child { max-width:670px; font-size:17px; line-height:1.65; }.flight-return-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--ink); background:var(--cream); }.flight-return-grid article { min-height:380px; padding:25px; display:flex; flex-direction:column; border-right:1px solid var(--ink); }.flight-return-grid article:last-child { border:0; }.flight-return-grid span,.flight-return-grid b { font:700 8px var(--sans); letter-spacing:.11em; }.flight-return-grid h3 { margin:68px 0 16px; font:700 30px/1 var(--display); letter-spacing:-.045em; }.flight-return-grid p { color:rgba(10,10,10,.64); font-size:13px; line-height:1.6; }.flight-return-grid b { margin-top:auto; }.flight-return-callout { grid-column:1/-1; padding:24px 28px; display:grid; grid-template-columns:170px 1fr auto; align-items:center; gap:28px; background:var(--ink); color:var(--cream); box-shadow:8px 8px 0 var(--cream); }.flight-return-callout strong,.flight-return-callout span { font:700 9px var(--sans); letter-spacing:.11em; }.flight-return-callout strong { color:var(--orange); }.flight-return-callout p { margin:0; color:rgba(255,248,236,.67); line-height:1.55; }.flight-return-callout span { max-width:260px; padding-left:22px; border-left:1px solid var(--orange); }
@media (max-width:1050px) { .flight-return-section { grid-template-columns:1fr; }.flight-return-callout { grid-template-columns:140px 1fr; }.flight-return-callout span { grid-column:2; } }
@media (max-width:680px) { .flight-return-section { padding:80px 20px; }.flight-return-grid { grid-template-columns:1fr; }.flight-return-grid article { min-height:290px; border-right:0; border-bottom:1px solid var(--ink); }.flight-return-grid article:last-child { border-bottom:0; }.flight-return-callout { grid-template-columns:1fr; box-shadow:6px 6px 0 var(--cream); }.flight-return-callout span { grid-column:auto; padding:18px 0 0; border-left:0; border-top:1px solid var(--orange); } }

.flight-how { background: var(--cream); }.flight-section-heading--dark { color: var(--ink); }.flight-section-heading--dark > p { color: rgba(10,10,10,.62); }
.flight-step-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--ink); }.flight-step-grid article { min-height: 370px; padding: 28px; display: flex; flex-direction: column; border-right: 1px solid var(--ink); }.flight-step-grid article:last-child { border-right: 0; }.flight-step-grid span { color: var(--orange-dark); font: 700 11px var(--display); }.flight-step-grid h3 { margin: 70px 0 18px; font: 700 clamp(27px, 2.6vw, 40px)/1 var(--display); letter-spacing: -.045em; }.flight-step-grid p { margin: auto 0 0; color: rgba(10,10,10,.65); font-size: 14px; line-height: 1.6; }
.flight-output-section { background: var(--paper); border-top: 1px solid var(--ink); }.flight-output-heading { display: grid; grid-template-columns: 80px 1fr; gap: 4vw; margin-bottom: 60px; }.flight-output-heading h2 { max-width: 1050px; margin: 0; font: 700 clamp(48px, 5.8vw, 88px)/.94 var(--display); letter-spacing: -.06em; }
.flight-output-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--ink); }.flight-output-grid article { min-height: 380px; padding: 27px; display: flex; flex-direction: column; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--cream); }.flight-output-grid article:nth-child(3n) { border-right: 0; }.flight-output-grid article:nth-last-child(-n+3) { border-bottom: 0; }.flight-output-grid article:first-child { background: var(--orange); }.flight-output-grid span { color: var(--orange-dark); font-size: 9px; font-weight: 700; letter-spacing: .12em; }.flight-output-grid article:first-child span { color: var(--ink); }.flight-output-grid h3 { margin: 52px 0 18px; font: 700 clamp(27px, 2.6vw, 40px)/1 var(--display); letter-spacing: -.045em; }.flight-output-grid p { margin: 0; color: rgba(10,10,10,.65); font-size: 14px; line-height: 1.6; }.flight-output-grid strong { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--ink); font-size: 10px; letter-spacing: .1em; }
.flight-cta { padding: 120px clamp(22px, 8vw, 120px); background: var(--ink); color: var(--cream); text-align: center; }.flight-cta h2 { max-width: 1100px; margin: 0 auto; font: 700 clamp(55px, 7.5vw, 116px)/.9 var(--display); letter-spacing: -.065em; }.flight-cta > p:not(.kicker) { max-width: 760px; margin: 30px auto 38px; color: rgba(255,248,236,.65); font-size: 18px; line-height: 1.6; }.flight-cta .kicker { justify-content: center; }
footer > a img { width: 150px; }

@media (max-width: 1050px) { .flight-hero { grid-template-columns: 1fr; }.flight-console { grid-template-columns: 1fr; grid-template-rows: 52px 730px auto; }.flight-visual-stack { border-right: 0; }.flight-telemetry { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.flight-telemetry-heading, .flight-telemetry dl { grid-column: 1 / -1; }.flight-drone-list { margin-top: 0; }.flight-step-grid { grid-template-columns: 1fr 1fr; }.flight-step-grid article:nth-child(2) { border-right: 0; }.flight-step-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--ink); }.flight-output-grid { margin-left: 0; } }
@media (max-width: 680px) { .flight-hero { min-height: auto; padding: 80px 20px; }.flight-hero h1 { font-size: 60px; }.flight-prompt-card { box-shadow: 7px 7px 0 var(--orange); }.flight-prompt-card blockquote { padding: 27px 20px; font-size: 23px; }.flight-prompt-processing { grid-template-columns: 1fr; }.flight-prompt-processing span { border-right: 0; }.flight-prompt-processing span:nth-last-child(-n+2) { border-bottom: 1px solid rgba(255,248,236,.14); }.flight-prompt-processing span:last-child { border-bottom: 0; }.flight-viewer-section { padding: 80px 20px; }.flight-section-heading { grid-template-columns: 1fr; gap: 24px; }.flight-section-heading h2 { font-size: 50px; }.flight-console { grid-template-rows: auto 560px auto; box-shadow: 7px 7px 0 var(--orange); }.flight-visual-stack { grid-template-rows: 390px 170px; }.flight-console-bar { min-height: 58px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 5px; }.flight-map-label--place { left: 14px; }.flight-map-label--north { right: 14px; }.flight-legend { left: 12px; right: 12px; gap: 10px; }.flight-telemetry { display: flex; }.flight-step-grid { grid-template-columns: 1fr; }.flight-step-grid article { min-height: 300px; border-right: 0; border-bottom: 1px solid var(--ink); }.flight-step-grid article:last-child { border-bottom: 0; }.flight-output-heading { grid-template-columns: 1fr; }.flight-output-grid { grid-template-columns: 1fr; }.flight-output-grid article { min-height: 330px; border-right: 0; border-bottom: 1px solid var(--ink); }.flight-output-grid article:nth-last-child(-n+3) { border-bottom: 1px solid var(--ink); }.flight-output-grid article:last-child { border-bottom: 0; }.flight-cta { padding: 90px 20px; }.flight-cta h2 { font-size: 58px; } }

@media (max-width: 980px) {
  /* Below this breakpoint the nav collapses behind .site-nav-toggle, which
     site-nav.js injects into every .site-header. */
  .site-header { height: auto; min-height: 76px; flex-wrap: wrap; }
  .site-nav-toggle { display: block; }
  .site-header.is-open nav { order: 3; width: 100%; display: flex; flex-direction: column; gap: 0; max-height: 62vh; overflow-y: auto; }
  .site-header.is-open nav a { padding: 14px 0; border-top: 1px solid var(--line); font-size: 16px; }
  .site-header.is-open .button--small { order: 4; display: inline-flex; width: 100%; margin: 16px 0 20px; }
  .site-header nav { display: none; }.hero { grid-template-columns: 1fr; padding-top: 70px; }.system-map, .build-map { min-height: 470px; }.proof-strip { grid-template-columns: repeat(2, 1fr); }.proof-strip div:nth-child(2) { border-right: 0; }.proof-strip div:nth-child(-n+2) { border-bottom: 1px solid var(--ink); }
  .manifesto { grid-template-columns: 50px 1fr; }.manifesto-note { grid-column: 2; }.orva-section { grid-template-columns: 1fr; }.capabilities { grid-template-columns: 50px 1fr; }.capability { grid-template-columns: 50px 1fr; }.capability-tag { grid-column: 2; justify-self: start; }.work-grid { grid-template-columns: 1fr; }.work-card { min-height: 510px; }.resource-grid { margin-left: 0; }.engagement { grid-template-columns: 1fr; }.gov-hero { grid-template-columns: 1fr; }.gov-seal { justify-self: center; width: min(100%, 500px); }.award-grid { margin-left: 0; grid-template-columns: 1fr; }.award-grid article { min-height: 390px; }.gov-partnerships { grid-template-columns: 1fr; }.naics-grid { margin-left: 0; } footer { grid-template-columns: 150px 1fr; } footer div { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .site-header { min-height: 66px; }.brand img { width: 128px; }.button--small { display: none; }.hero { min-height: auto; padding: 64px 20px 70px; }.hero h1 { font-size: 61px; }.hero h1 em { -webkit-text-stroke: 1.5px var(--ink); text-shadow: 3px 3px 0 var(--ink); }.hero-lede { font-size: 18px; }.hero-actions { align-items: flex-start; flex-direction: column; }.system-map, .build-map { min-height: 390px; margin-top: 18px; box-shadow: 7px 7px 0 var(--orange); }.system-map--art { min-height: 300px; padding: 26px 16px 44px; }
  .proof-strip div { padding: 18px 14px; flex-direction: column; gap: 2px; }.proof-strip strong { font-size: 22px; }.proof-strip span { font-size: 10px; }.client-strip { padding: 44px 0; }.client-strip-heading { display: block; padding-inline: 20px; }.client-strip-heading h2 { margin-top: 14px; text-align: left; }.client-logo-set > div { width: 150px; height: 92px; padding: 16px 22px; }.section { padding: 80px 20px; }.section-label { writing-mode: initial; transform: none; }.manifesto, .capabilities, .work-heading, .resources-heading, .gov-section-heading { grid-template-columns: 1fr; }.manifesto-note { grid-column: 1; }.manifesto h2 { font-size: 48px; }.manifesto-copy p { font-size: 23px; }.orva-section { padding: 82px 20px; }.orva-intro h2 { font-size: 44px; }.conversation { box-shadow: 7px 7px 0 var(--orange); }.message { padding: 18px 14px; grid-template-columns: 34px 1fr; gap: 10px; }.avatar { width: 32px; height: 32px; }.result-grid { grid-template-columns: 1fr; }.result-grid div { border-right: 0; border-bottom: 1px solid rgba(245,160,0,.35); }.result-grid div:last-child { border-bottom: 0; }.capability { min-height: auto; grid-template-columns: 36px 1fr; gap: 12px; }.capability h3 { font-size: 32px; }.capability p { font-size: 15px; }.capability-tag { grid-column: 2; }.work-heading { margin-bottom: 42px; }.work-heading h2 { font-size: 43px; }.work-card { min-height: 500px; padding: 24px; }.integration-track span { padding: 7px 12px; font-size: 14px; }.resource-grid { grid-template-columns: 1fr; }.resource-card { min-height: 460px; padding: 25px; }.resource-card h3 { margin-top: 42px; font-size: 42px; }.engagement h2 { font-size: 48px; }.gov-hero { padding: 80px 20px; }.gov-hero h1 { font-size: 70px; }.gov-actions { align-items: flex-start; flex-direction: column; }.gov-seal { margin-top: 20px; }.gov-competencies { align-items: flex-start; flex-direction: column; }.gov-competencies span { border-left: 0; border-top: 1px solid var(--ink); padding: 9px 0; width: 100%; }.gov-section-heading { margin-bottom: 40px; }.gov-section-heading h2 { font-size: 47px; }.award-grid article { min-height: 420px; }.naics-grid { grid-template-columns: 1fr; }.gov-cta { padding: 82px 20px; }.gov-cta h2 { font-size: 58px; }.closing { padding: 90px 20px; }.closing h2 { font-size: 58px; }.closing-actions { flex-direction: column; }.closing-mark { font-size: 240px; } footer { grid-template-columns: 1fr; } footer div { grid-column: auto; flex-direction: column; gap: 6px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; }.client-logo-track { animation: none; transform: none; }.client-logo-set[aria-hidden="true"] { display: none; } }

/* Bright Agents product page */
.agents-page { --agent-blue: #66c7ff; --agent-lime: #b7ff5b; --agent-violet: #db96ff; background: var(--cream); }
.agents-hero { min-height: 760px; position: relative; overflow: hidden; padding: 95px clamp(22px, 7vw, 110px); display: grid; grid-template-columns: 1.05fr .95fr; gap: 7vw; align-items: center; background: var(--ink); color: var(--cream); }
.agents-hero::before { content: ""; position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px); background-size: 64px 64px; mask-image: radial-gradient(circle at 75% 50%, #000, transparent 68%); }
.agents-hero-copy, .agents-orbit { position: relative; z-index: 1; }.agents-hero h1 { margin: 0; font: 700 clamp(62px, 7.5vw, 120px)/.86 var(--display); letter-spacing: -.072em; }.agents-hero h1 em { display: block; color: var(--orange); font-style: normal; }.agents-hero-copy > p:not(.kicker) { max-width: 760px; margin: 34px 0 38px; color: rgba(255,248,236,.7); font-size: 19px; line-height: 1.65; }
.agents-orbit { width: min(100%, 570px); aspect-ratio: 1; justify-self: end; }.agents-orbit-ring { position: absolute; left: 50%; top: 50%; border: 1px solid rgba(245,160,0,.5); border-radius: 50%; transform: translate(-50%,-50%); }.agents-orbit-ring--outer { width: 95%; height: 95%; border-style: dashed; animation: agents-spin 38s linear infinite; }.agents-orbit-ring--inner { width: 58%; height: 58%; border-color: rgba(102,199,255,.45); animation: agents-spin 24s linear infinite reverse; }.agents-orbit-core { position: absolute; left: 50%; top: 50%; width: 155px; height: 155px; transform: translate(-50%,-50%); display: grid; place-items: center; align-content: center; border-radius: 50%; background: var(--orange); color: var(--ink); box-shadow: 0 0 0 12px rgba(245,160,0,.08), 0 0 55px rgba(245,160,0,.18); }.agents-orbit-core span { font: 700 50px/.8 var(--display); letter-spacing: -.09em; }.agents-orbit-core small { margin-top: 14px; font-size: 7px; font-weight: 700; letter-spacing: .15em; }
.agents-orbit-node { position: absolute; padding: 10px 13px; background: var(--ink); border: 1px solid var(--agent-color, var(--orange)); color: var(--cream); box-shadow: 0 0 18px color-mix(in srgb, var(--agent-color, var(--orange)) 25%, transparent); font-size: 8px; font-weight: 700; letter-spacing: .12em; }.agents-orbit-node::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: var(--agent-color, var(--orange)); box-shadow: 0 0 8px var(--agent-color, var(--orange)); }.agents-orbit-node--1 { --agent-color: var(--agent-blue); left: 2%; top: 19%; }.agents-orbit-node--2 { --agent-color: var(--agent-violet); right: 2%; top: 14%; }.agents-orbit-node--3 { --agent-color: var(--agent-lime); right: -1%; bottom: 22%; }.agents-orbit-node--4 { --agent-color: var(--orange); left: 4%; bottom: 15%; }.agents-orbit-node--5 { --agent-color: var(--cream); left: 50%; top: 1%; transform: translateX(-50%); }
@keyframes agents-spin { to { transform: translate(-50%,-50%) rotate(360deg); } }

.agents-room-section { padding: 112px clamp(22px, 6vw, 88px); background: #101511; color: var(--cream); }.agents-section-heading { margin-bottom: 48px; display: grid; grid-template-columns: 1.25fr .75fr; gap: 7vw; align-items: end; }.agents-section-heading h2 { max-width: 950px; margin: 0; font: 700 clamp(50px, 6vw, 92px)/.93 var(--display); letter-spacing: -.06em; }.agents-section-heading > p { margin: 0; color: rgba(255,248,236,.62); font-size: 16px; line-height: 1.65; }.agents-section-heading--dark { color: var(--ink); }.agents-section-heading--dark > p { color: rgba(10,10,10,.62); }
.agents-prompt { margin: 0 0 24px; padding: 22px 25px; display: grid; grid-template-columns: 105px 1fr auto; gap: 25px; align-items: center; border: 1px solid var(--orange); background: var(--cream); color: var(--ink); box-shadow: 7px 7px 0 var(--orange); }.agents-prompt span, .agents-prompt b { font-size: 8px; letter-spacing: .13em; }.agents-prompt span { color: var(--orange-dark); font-weight: 700; }.agents-prompt p { margin: 0; font: 600 clamp(15px, 1.5vw, 21px)/1.4 var(--display); }.agents-prompt b { padding: 8px 10px; border: 1px solid var(--ink); white-space: nowrap; }
.agents-console { display: grid; grid-template-columns: minmax(0, 1fr) 340px; grid-template-rows: 52px minmax(590px, 68vh); border: 1px solid var(--orange); background: #080c09; box-shadow: 12px 12px 0 var(--orange); }.agents-console-bar { grid-column: 1 / -1; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,248,236,.18); color: rgba(255,248,236,.48); font-size: 9px; font-weight: 700; letter-spacing: .12em; }.agents-console-bar div:first-child { color: var(--cream); }.agents-console-bar i { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--agent-lime); box-shadow: 0 0 12px var(--agent-lime); }
.agents-stage { min-width: 0; position: relative; overflow: hidden; border-right: 1px solid rgba(255,248,236,.18); }.agents-stage canvas { width: 100%; height: 100%; display: block; }.agents-stage-title { position: absolute; left: 23px; top: 21px; display: flex; flex-direction: column; pointer-events: none; }.agents-stage-title strong { color: var(--orange); font: 700 15px var(--display); letter-spacing: .1em; }.agents-stage-title span { margin-top: 5px; color: rgba(255,248,236,.48); font-size: 8px; }.agents-stage-count { position: absolute; right: 23px; top: 20px; display: flex; align-items: baseline; gap: 8px; pointer-events: none; }.agents-stage-count strong { font: 700 28px var(--display); }.agents-stage-count span { color: rgba(255,248,236,.4); font-size: 7px; letter-spacing: .11em; }
.agents-phase-track { position: absolute; left: 18px; right: 18px; bottom: 18px; display: grid; grid-template-columns: repeat(7, 1fr); border: 1px solid rgba(255,248,236,.18); background: rgba(8,12,9,.88); }.agents-phase-track span { min-width: 0; padding: 10px 4px; border-right: 1px solid rgba(255,248,236,.13); color: rgba(255,248,236,.36); text-align: center; font-size: 7px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }.agents-phase-track span:last-child { border: 0; }.agents-phase-track span.is-active { background: var(--orange); color: var(--ink); }
.agents-trace { min-width: 0; padding: 20px; display: flex; flex-direction: column; overflow: hidden; }.agents-trace-heading { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 16px; border-bottom: 1px solid rgba(255,248,236,.2); }.agents-trace-heading span { color: var(--orange); font-size: 9px; font-weight: 700; letter-spacing: .12em; }.agents-trace-heading strong { font: 700 30px var(--display); }.agents-trace-feed { min-height: 0; padding: 8px 0; flex: 1; overflow: hidden; }.agents-trace-item { padding: 10px 0; border-bottom: 1px solid rgba(255,248,236,.1); animation: agents-trace-in .35s ease both; }.agents-trace-item span { display: flex; justify-content: space-between; color: var(--trace-color, var(--orange)); font-size: 7px; font-weight: 700; letter-spacing: .1em; }.agents-trace-item p { margin: 5px 0 0; color: rgba(255,248,236,.66); font-size: 9px; line-height: 1.45; }.agents-trace-item--research { --trace-color: var(--agent-blue); }.agents-trace-item--critic { --trace-color: var(--agent-violet); }.agents-trace-item--operator { --trace-color: var(--agent-lime); }
@keyframes agents-trace-in { from { opacity: 0; transform: translateY(7px); } }
.agents-result { display: none; margin: 8px 0 14px; padding: 15px; border: 1px solid var(--agent-lime); background: rgba(183,255,91,.06); }.agents-result.is-visible { display: block; animation: agents-trace-in .4s ease both; }.agents-result > span { color: var(--agent-lime); font-size: 7px; font-weight: 700; letter-spacing: .12em; }.agents-result h3 { margin: 8px 0 5px; font: 700 19px var(--display); }.agents-result p { margin: 0; color: rgba(255,248,236,.55); font-size: 9px; line-height: 1.45; }.agents-result > div { margin-top: 12px; padding-top: 10px; display: flex; align-items: baseline; gap: 8px; border-top: 1px solid rgba(183,255,91,.28); }.agents-result > div strong { color: var(--agent-lime); font: 700 25px var(--display); }.agents-result > div small { font-size: 6px; letter-spacing: .11em; }
.agents-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }.agents-controls button { min-height: 38px; border: 1px solid var(--orange); background: var(--orange); color: var(--ink); font: 700 8px var(--sans); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }.agents-controls button:last-child { background: transparent; color: var(--cream); border-color: rgba(255,248,236,.3); }.agents-room-note { max-width: 900px; margin: 25px 0 0; color: rgba(255,248,236,.44); font-size: 10px; line-height: 1.55; }

.agents-outcome { background: var(--paper); border-bottom: 1px solid var(--ink); }.agents-outcome-heading { display: grid; grid-template-columns: 80px 1fr; gap: 4vw; margin-bottom: 60px; }.agents-outcome-heading h2 { max-width: 1050px; margin: 0; font: 700 clamp(48px, 5.8vw, 88px)/.94 var(--display); letter-spacing: -.06em; }.agents-plan { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--ink); }.agents-plan article { min-height: 400px; padding: 28px; display: flex; flex-direction: column; border-right: 1px solid var(--ink); background: var(--cream); }.agents-plan article:first-child { background: var(--orange); }.agents-plan article:last-child { border: 0; }.agents-plan article > span { font-size: 9px; font-weight: 700; letter-spacing: .12em; }.agents-plan h3 { margin: 64px 0 17px; font: 700 clamp(28px, 3vw, 44px)/1 var(--display); letter-spacing: -.05em; }.agents-plan p { margin: 0; color: rgba(10,10,10,.63); font-size: 14px; line-height: 1.6; }.agents-plan article > b { margin-top: auto; padding-top: 17px; border-top: 1px solid var(--ink); font-size: 10px; letter-spacing: .1em; }.agents-plan ol { margin: 0; padding: 0; list-style: none; }.agents-plan li { padding: 11px 0; border-bottom: 1px solid rgba(10,10,10,.2); font-size: 12px; }.agents-plan li i { display: inline-block; width: 54px; color: var(--orange-dark); font-style: normal; font-weight: 700; }
.agents-modes { background: var(--cream); }.agents-mode-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }.agents-mode-grid article { min-height: 340px; padding: 26px; display: flex; flex-direction: column; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }.agents-mode-grid article:nth-child(2), .agents-mode-grid article:nth-child(6) { background: var(--ink); color: var(--cream); }.agents-mode-grid article > span { color: var(--orange-dark); font: 700 11px var(--display); }.agents-mode-grid h3 { margin: 58px 0 16px; font: 700 clamp(29px, 3vw, 43px)/1 var(--display); letter-spacing: -.05em; }.agents-mode-grid p { margin: 0; color: rgba(10,10,10,.62); font-size: 13px; line-height: 1.6; }.agents-mode-grid article:nth-child(2) p, .agents-mode-grid article:nth-child(6) p { color: rgba(255,248,236,.58); }.agents-mode-grid b { margin-top: auto; padding-top: 18px; border-top: 1px solid currentColor; font-size: 8px; letter-spacing: .12em; }
.agents-architecture { padding: 120px clamp(22px, 7vw, 110px); display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; align-items: center; background: var(--ink); color: var(--cream); }.agents-architecture-copy h2 { margin: 0; font: 700 clamp(48px, 5.5vw, 86px)/.94 var(--display); letter-spacing: -.06em; }.agents-architecture-copy > p:not(.kicker) { max-width: 650px; margin: 28px 0 0; color: rgba(255,248,236,.62); font-size: 17px; line-height: 1.65; }.agents-stack { border: 1px solid var(--orange); box-shadow: 12px 12px 0 var(--orange); }.agents-stack div { min-height: 108px; padding: 22px; display: grid; grid-template-columns: 42px 1fr; align-content: center; column-gap: 12px; border-bottom: 1px solid rgba(255,248,236,.18); }.agents-stack div:last-child { border: 0; }.agents-stack span { grid-row: 1 / 3; color: var(--orange); font: 700 10px var(--display); }.agents-stack strong { font: 700 21px var(--display); }.agents-stack small { margin-top: 5px; color: rgba(255,248,236,.48); font-size: 9px; line-height: 1.4; }
.agents-cta { padding: 125px clamp(22px, 8vw, 120px); background: var(--orange); text-align: center; }.agents-cta .kicker { justify-content: center; }.agents-cta h2 { max-width: 1150px; margin: 0 auto; font: 700 clamp(58px, 8vw, 124px)/.88 var(--display); letter-spacing: -.07em; }.agents-cta > p:not(.kicker) { max-width: 760px; margin: 32px auto 40px; font-size: 18px; line-height: 1.6; }.agents-cta .button--cream { box-shadow: 5px 5px 0 var(--ink); }

@media (max-width: 1050px) { .agents-hero { grid-template-columns: 1fr; }.agents-orbit { width: min(100%, 500px); justify-self: center; }.agents-console { grid-template-columns: 1fr; grid-template-rows: 52px 610px auto; }.agents-stage { border-right: 0; border-bottom: 1px solid rgba(255,248,236,.18); }.agents-trace { min-height: 500px; }.agents-plan { margin-left: 0; }.agents-architecture { grid-template-columns: 1fr; }.agents-mode-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .agents-hero { min-height: auto; padding: 80px 20px; }.agents-hero h1 { font-size: 61px; }.agents-orbit { margin: 25px 0; }.agents-orbit-core { width: 120px; height: 120px; }.agents-orbit-core span { font-size: 40px; }.agents-room-section { padding: 80px 20px; }.agents-section-heading { grid-template-columns: 1fr; gap: 22px; }.agents-section-heading h2 { font-size: 49px; }.agents-prompt { grid-template-columns: 1fr; gap: 10px; }.agents-prompt b { justify-self: start; }.agents-console { grid-template-rows: auto 520px auto; box-shadow: 7px 7px 0 var(--orange); }.agents-console-bar { min-height: 58px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; }.agents-stage-count { display: none; }.agents-stage-title { left: 15px; right: 15px; }.agents-phase-track { left: 10px; right: 10px; overflow-x: auto; grid-template-columns: repeat(7, 74px); }.agents-trace { min-height: 480px; }.agents-outcome-heading { grid-template-columns: 1fr; }.agents-plan { grid-template-columns: 1fr; }.agents-plan article { min-height: 340px; border-right: 0; border-bottom: 1px solid var(--ink); }.agents-plan article:last-child { border-bottom: 0; }.agents-mode-grid { grid-template-columns: 1fr; }.agents-mode-grid article { min-height: 300px; }.agents-architecture { padding: 85px 20px; }.agents-architecture-copy h2 { font-size: 50px; }.agents-stack { box-shadow: 7px 7px 0 var(--orange); }.agents-cta { padding: 90px 20px; }.agents-cta h2 { font-size: 58px; } }

@media (prefers-reduced-motion: reduce) { .agents-orbit-ring { animation: none; } }

/* Orva product microsite */
.orva-page { --orva-green: #b7ff5b; background: var(--cream); }
.orva-page section[id] { scroll-margin-top: 96px; }
.orva-product-header { position: sticky; top: 0; z-index: 30; min-height: 78px; padding: 12px clamp(20px, 4vw, 64px); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 36px; color: var(--cream); background: rgba(10,10,10,.95); border-bottom: 1px solid rgba(245,160,0,.45); backdrop-filter: blur(16px); }
.orva-product-brand { width: 132px; display: block; }
.orva-product-brand img { width: 100%; height: auto; display: block; }
.orva-product-header .orva-product-brand { width: 148px; }
.orva-product-nav { display: flex; justify-content: center; gap: clamp(16px, 2.3vw, 34px); font-size: 12px; font-weight: 700; }.orva-product-nav a:hover, .orva-login-link:hover, .orva-parent-link:hover { color: var(--orange); }
.orva-product-actions { display: flex; align-items: center; gap: 18px; font-size: 11px; font-weight: 700; }.orva-parent-link { color: rgba(255,248,236,.48); }.orva-product-actions .button { min-height: 42px; box-shadow: none; border-color: var(--orange); white-space: nowrap; }
/* The portal handles sign-up behind the same auth URL as log in, so this is a
   chip rather than a fourth full-size CTA: obvious enough that new users see a
   way in, quiet enough that it doesn't compete with the demo buttons. */
.orva-signup-link { padding: 10px 14px; border: 1px solid var(--orange); color: var(--orange); white-space: nowrap; }
.orva-signup-link:hover { background: var(--orange); color: var(--ink); }
/* "Talk to us about Orva" is ~50px wider than the old CTA label, which crowds the six-link nav
   just above the 1050px collapse. Drop the BrightApps link in that band only — it stays in the
   footer, and the mobile menu below 1050px keeps it. */
.orva-nav-toggle { display: none; width: 40px; height: 40px; padding: 10px; background: none; border: 1px solid rgba(255,248,236,.3); }.orva-nav-toggle span { display: block; height: 1px; margin: 4px 0; background: var(--cream); }
.orva-product-hero { min-height: 760px; position: relative; overflow: hidden; padding: 90px clamp(22px, 6vw, 88px); display: grid; grid-template-columns: 1.05fr .95fr; gap: 6vw; align-items: center; background: var(--ink); color: var(--cream); }
.orva-product-grid { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 62px 62px; mask-image: linear-gradient(to right, #000, transparent 80%); }.orva-product-hero-copy { position: relative; z-index: 1; }
.orva-product-hero h1 { max-width: 900px; margin: 0; font: 700 clamp(53px, 5.9vw, 94px)/.98 var(--display); letter-spacing: -.02em; }.orva-product-hero h1 em { display: block; color: var(--orange); font-style: normal; }.orva-product-hero-copy > p:not(.kicker) { max-width: 790px; margin: 30px 0; color: rgba(255,248,236,.72); font-size: 19px; line-height: 1.65; }
.orva-product-hero-actions { display: flex; align-items: center; gap: 30px; }.orva-product-hero-actions > a:last-child { padding-bottom: 4px; border-bottom: 1px solid var(--cream); font-size: 12px; font-weight: 700; }
.orva-proof-list { margin: 38px 0 0; padding: 0; display: grid; gap: 10px; list-style: none; font-size: 12px; color: rgba(255,248,236,.68); }.orva-proof-list li::before { content: "✓"; color: var(--orva-green); margin-right: 10px; }
.orva-channels { background: var(--cream); }.orva-channel-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }.orva-channel-card { min-width: 0; min-height: 520px; padding: 32px; display: flex; flex-direction: column; border: 1px solid var(--ink); }.orva-channel-card--slack { background: var(--ink); color: var(--cream); box-shadow: 10px 10px 0 var(--orange); }.orva-channel-card--portal { background: var(--orange); box-shadow: 10px 10px 0 var(--ink); }.orva-channel-card-top { display: flex; justify-content: space-between; gap: 20px; font-size: 9px; font-weight: 700; letter-spacing: .13em; }.orva-channel-card--slack .orva-channel-card-top span { color: var(--orange); }.orva-channel-card-top b { font-size: 8px; }.orva-channel-card--slack .orva-channel-card-top b { color: var(--orva-green); }.orva-channel-card h3 { max-width: 590px; margin: 58px 0 18px; font: 700 clamp(34px, 3.3vw, 53px)/.98 var(--display); letter-spacing: -.05em; }.orva-channel-card > p { max-width: 610px; margin: 0 0 34px; font-size: 15px; line-height: 1.65; }.orva-channel-card--slack > p { color: rgba(255,248,236,.66); }.orva-channel-demo, .orva-portal-demo { margin-top: auto; border: 1px solid currentColor; }.orva-channel-demo > div, .orva-portal-demo > div { min-height: 42px; padding: 0 14px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid currentColor; font-size: 9px; }.orva-channel-demo i { width: 7px; height: 7px; border-radius: 50%; background: var(--orva-green); }.orva-channel-demo small, .orva-portal-demo small { margin-left: auto; font-size: 7px; letter-spacing: .11em; }.orva-channel-demo > p { margin: 0; padding: 18px; border-bottom: 1px solid rgba(255,248,236,.28); font-size: 12px; line-height: 1.5; }.orva-channel-demo > p b { margin-right: 10px; color: var(--orange); font-size: 8px; letter-spacing: .1em; }.orva-channel-demo > strong { display: block; padding: 16px 18px; color: var(--orva-green); font: 700 12px var(--display); }.orva-portal-demo { background: var(--cream); }.orva-portal-demo nav { padding: 12px 14px; display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--ink); }.orva-portal-demo nav span, .orva-portal-demo nav b { padding: 6px 9px; border: 1px solid var(--ink); font-size: 8px; letter-spacing: .08em; }.orva-portal-demo nav b { background: var(--ink); color: var(--cream); }.orva-portal-demo > p { margin: 0; padding: 22px 16px; font: 600 17px var(--display); }.orva-channel-card--portal > a { align-self: flex-start; margin-top: 24px; padding-bottom: 4px; border-bottom: 1px solid var(--ink); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.orva-watch { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; align-items: center; background: var(--ink); color: var(--cream); }.orva-watch-copy h2 { margin: 0; font: 700 clamp(48px, 5.3vw, 84px)/.94 var(--display); letter-spacing: -.06em; }.orva-watch-copy h2 em { color: var(--orange); font-style: normal; }.orva-watch-copy > p:not(.kicker) { max-width: 640px; margin: 28px 0 32px; color: rgba(255,248,236,.68); font-size: 17px; line-height: 1.65; }.orva-video-library { min-width: 0; }.orva-video-frame { min-width: 0; aspect-ratio: 16 / 9; border: 1px solid var(--orange); background: #141414; box-shadow: 12px 12px 0 var(--orange); }.orva-video-frame iframe, .orva-video-frame video { width: 100%; height: 100%; display: block; border: 0; object-fit: cover; }.orva-video-preview { height: 100%; padding: clamp(20px, 3.5vw, 46px); display: flex; flex-direction: column; background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: 42px 42px; }.orva-video-preview-top { display: flex; justify-content: space-between; gap: 20px; color: var(--orange); font-size: 8px; font-weight: 700; letter-spacing: .13em; }.orva-video-preview > p { margin: auto 0 20px; padding: 20px; background: var(--cream); color: var(--ink); font: 600 clamp(15px, 1.5vw, 23px)/1.45 var(--display); }.orva-video-preview > p b { margin-right: 10px; color: var(--orange-dark); font: 700 8px var(--sans); letter-spacing: .12em; }.orva-video-preview > div:nth-of-type(2) { display: flex; flex-wrap: wrap; gap: 6px; }.orva-video-preview > div:nth-of-type(2) span { padding: 7px 9px; border: 1px solid rgba(245,160,0,.5); font-size: 8px; letter-spacing: .1em; }.orva-video-preview > strong { margin: 22px 0; font: 700 clamp(17px, 1.7vw, 25px)/1.25 var(--display); }.orva-video-preview > a { align-self: flex-start; padding-bottom: 4px; border-bottom: 1px solid var(--cream); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.orva-video-controls { margin-top: 22px; display: flex; align-items: center; gap: 14px; }
.orva-video-controls p { flex: 1; min-width: 0; margin: 0; display: flex; align-items: baseline; gap: 8px; color: rgba(255,248,236,.5); font: 700 10px var(--sans); letter-spacing: .12em; }
.orva-video-controls p b { color: var(--orange); font-size: 13px; }
.orva-video-controls p span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--cream); font: 700 13px var(--display); letter-spacing: 0; text-transform: none; }
.orva-video-arrow { width: 40px; height: 40px; flex: none; display: grid; place-items: center; border: 1px solid rgba(255,248,236,.35); background: transparent; color: var(--cream); font-size: 15px; cursor: pointer; transition: background .18s ease, border-color .18s ease, color .18s ease; }
.orva-video-arrow:hover { border-color: var(--orange); background: var(--orange); color: var(--ink); }
.orva-video-selector { margin-top: 12px; display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.orva-video-selector button { flex: 0 0 clamp(168px, 30%, 230px); scroll-snap-align: start; min-height: 150px; padding: 16px; border: 1px solid rgba(255,248,236,.35); background: transparent; color: var(--cream); text-align: left; cursor: pointer; }.orva-video-selector button.is-active { border-color: var(--orange); background: rgba(245,160,0,.12); }.orva-video-selector span, .orva-video-selector strong, .orva-video-selector small { display: block; }.orva-video-selector span { color: var(--orange); font-size: 7px; letter-spacing: .12em; }.orva-video-selector strong { margin-top: 20px; font: 700 17px var(--display); }.orva-video-selector small { margin-top: 8px; color: rgba(255,248,236,.55); font-size: 9px; line-height: 1.45; }
.orva-try { background: var(--ink); color: var(--cream); border-top: 1px solid var(--orange); }.orva-try .orva-section-intro h2 { color: var(--cream); }.orva-try .orva-section-intro h2 em { color: var(--orange); font-style: normal; }.orva-try .orva-section-intro > div > p:last-child { color: rgba(255,248,236,.62); }.orva-try-console { margin-left: calc(80px + 4vw); border: 1px solid var(--orange); background: #111; box-shadow: 12px 12px 0 var(--orange); }.orva-try-bar { min-height: 48px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid rgba(255,248,236,.2); color: rgba(255,248,236,.65); font-size: 8px; font-weight: 700; letter-spacing: .13em; }.orva-try-bar i { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--orva-green); box-shadow: 0 0 12px rgba(183,255,91,.6); }.orva-try-bar span:last-child { color: var(--orva-green); }.orva-try-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); }.orva-try-scenarios { padding: 20px; border-right: 1px solid rgba(255,248,236,.2); }.orva-try-scenarios > span { display: block; margin-bottom: 14px; color: rgba(255,248,236,.4); font-size: 7px; letter-spacing: .13em; }.orva-try-scenarios button { width: 100%; padding: 16px 12px; display: grid; grid-template-columns: 26px 1fr; gap: 4px 8px; border: 1px solid rgba(255,248,236,.2); border-bottom: 0; background: transparent; color: var(--cream); text-align: left; cursor: pointer; }.orva-try-scenarios button:last-child { border-bottom: 1px solid rgba(255,248,236,.2); }.orva-try-scenarios button.is-active { background: var(--orange); color: var(--ink); border-color: var(--orange); }.orva-try-scenarios button b { grid-row: 1 / 3; color: var(--orange); font-size: 9px; }.orva-try-scenarios button.is-active b { color: var(--ink); }.orva-try-scenarios button strong { font: 700 14px var(--display); }.orva-try-scenarios button small { color: rgba(255,248,236,.48); font-size: 8px; }.orva-try-scenarios button.is-active small { color: rgba(10,10,10,.62); }.orva-try-workspace { min-width: 0; }.orva-try-prompt { padding: 24px; border-bottom: 1px solid rgba(255,248,236,.2); }.orva-try-prompt label { display: block; margin-bottom: 10px; color: var(--orange); font-size: 8px; font-weight: 700; letter-spacing: .14em; }.orva-try-prompt > div { display: grid; grid-template-columns: minmax(0,1fr) auto; }.orva-try-prompt input { min-width: 0; padding: 15px 16px; border: 1px solid rgba(255,248,236,.36); background: #1b1b1b; color: var(--cream); font: 600 14px var(--sans); }.orva-try-prompt button { padding: 0 20px; border: 1px solid var(--orange); background: var(--orange); color: var(--ink); cursor: pointer; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }.orva-try-prompt button:disabled { cursor: wait; opacity: .65; }.orva-try-prompt > small { display: block; margin-top: 10px; color: rgba(255,248,236,.38); font-size: 8px; letter-spacing: .06em; }.orva-try-sources { padding: 18px 24px; border-bottom: 1px solid rgba(255,248,236,.2); }.orva-try-sources > span { color: rgba(255,248,236,.42); font-size: 7px; letter-spacing: .13em; }.orva-try-sources > div { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 7px; }.orva-try-sources b { padding: 7px 9px; border: 1px solid rgba(245,160,0,.4); color: rgba(255,248,236,.65); font-size: 8px; font-weight: 600; }.orva-try-sources b.is-checking { border-color: var(--orange); color: var(--orange); }.orva-try-sources b.is-checked { border-color: var(--orva-green); color: var(--orva-green); }.orva-try-output { display: grid; grid-template-columns: 1.1fr .9fr; }.orva-try-output article { min-width: 0; padding: 24px; }.orva-try-output article + article { border-left: 1px solid rgba(255,248,236,.2); }.orva-try-output article > span { color: var(--orange); font-size: 7px; font-weight: 700; letter-spacing: .13em; }.orva-try-output h3 { margin: 18px 0 14px; font: 700 clamp(25px,2.6vw,39px)/1.03 var(--display); }.orva-try-output ul { margin: 0; padding-left: 18px; color: rgba(255,248,236,.65); }.orva-try-output li { padding: 6px 0; font-size: 11px; line-height: 1.5; }.orva-try-output article > div { margin-top: 18px; display: grid; gap: 8px; }.orva-try-output article button { width: 100%; padding: 12px; display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; border: 1px solid rgba(255,248,236,.27); background: #191919; color: var(--cream); text-align: left; cursor: pointer; }.orva-try-output article button b { font-size: 11px; }.orva-try-output article button small { color: rgba(255,248,236,.47); font-size: 8px; }.orva-try-output article button em { grid-column: 2; grid-row: 1 / 3; align-self: center; padding: 6px 8px; border: 1px solid var(--orange); color: var(--orange); font-size: 7px; font-style: normal; text-transform: uppercase; letter-spacing: .08em; }.orva-try-output article button.is-approved em { border-color: var(--orva-green); color: var(--orva-green); }.orva-try-note { margin: 0; padding: 13px 18px; border-top: 1px solid rgba(255,248,236,.2); color: rgba(255,248,236,.34); text-align: center; font-size: 7px; letter-spacing: .1em; }
.orva-setup { background: var(--paper); border-bottom: 1px solid var(--ink); }.orva-step-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }.orva-step-grid article { min-height: 280px; padding: 26px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }.orva-step-grid article > span { color: var(--orange-dark); font: 700 11px var(--display); }.orva-step-grid h3 { margin: 60px 0 14px; font: 700 28px/1.05 var(--display); }.orva-step-grid p { margin: 0; color: rgba(10,10,10,.62); font-size: 13px; line-height: 1.6; }
.orva-section-intro { display: grid; grid-template-columns: 80px 1fr; gap: 4vw; margin-bottom: 60px; }.orva-section-intro h2 { max-width: 1100px; margin: 0; font: 700 clamp(45px, 5.4vw, 84px)/.96 var(--display); letter-spacing: -.06em; }.orva-section-intro > div > p:last-child { max-width: 790px; font-size: 18px; line-height: 1.6; color: rgba(10,10,10,.65); }
.orva-problems { background: var(--ink); color: var(--cream); }.orva-problems .orva-section-intro h2 { color: var(--cream); }.orva-problem-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(255,248,236,.3); border-left: 1px solid rgba(255,248,236,.3); }.orva-problem-grid article { min-height: 240px; padding: 25px; border-right: 1px solid rgba(255,248,236,.3); border-bottom: 1px solid rgba(255,248,236,.3); }.orva-problem-grid article > span { color: var(--orange); font: 700 11px var(--display); }.orva-problem-grid h3 { margin: 44px 0 14px; font: 700 27px/1.05 var(--display); }.orva-problem-grid p { margin: 0; max-width: 620px; color: rgba(255,248,236,.6); font-size: 13px; line-height: 1.6; }
.orva-role-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }.orva-role-grid article { grid-column: span 2; min-height: 410px; padding: 25px; display: flex; flex-direction: column; border: 1px solid var(--ink); background: var(--paper); }.orva-role-grid article:nth-child(4), .orva-role-grid article:nth-child(5) { grid-column: span 3; }.orva-role-grid article > div { display: flex; justify-content: space-between; color: var(--orange-dark); font-size: 8px; font-weight: 700; letter-spacing: .12em; }.orva-role-grid h3 { margin: 44px 0 15px; font: 700 31px/1 var(--display); letter-spacing: -.04em; }.orva-role-grid p { font-size: 13px; line-height: 1.55; color: rgba(10,10,10,.64); }.orva-role-grid blockquote { margin: auto 0 24px; padding: 15px; background: var(--ink); color: var(--cream); font-size: 11px; line-height: 1.5; }.orva-role-grid a { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.orva-pillars { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8vw; background: var(--orange); border-block: 1px solid var(--ink); }.orva-pillars-lede h2 { margin: 0; font: 700 clamp(48px, 5.5vw, 86px)/.94 var(--display); letter-spacing: -.065em; }.orva-pillars-lede h2 em { color: var(--cream); font-style: normal; text-shadow: 3px 3px 0 var(--ink); -webkit-text-stroke: 1px var(--ink); }.orva-pillars-lede > p:not(.kicker) { max-width: 680px; font-size: 18px; line-height: 1.6; }.orva-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 42px; border: 1px solid var(--ink); }.orva-stats div { padding: 18px; border-right: 1px solid var(--ink); }.orva-stats div:last-child { border: 0; }.orva-stats strong, .orva-stats span { display: block; }.orva-stats strong { font: 700 34px var(--display); }.orva-stats span { font-size: 9px; text-transform: uppercase; }
.orva-pillar-list { border-top: 1px solid var(--ink); }.orva-pillar-list article { padding: 28px 0; display: grid; grid-template-columns: 52px 1fr; gap: 18px; border-bottom: 1px solid var(--ink); }.orva-pillar-list article > span { font: 700 11px var(--display); }.orva-pillar-list h3 { margin: 0; font: 700 27px var(--display); }.orva-pillar-list p { margin: 8px 0 0; font-size: 13px; line-height: 1.55; }
.orva-integration-grid { margin-left: calc(80px + 4vw); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }.orva-integration-grid article { min-width: 0; min-height: 150px; padding: 18px; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }.orva-integration-grid article > span { color: var(--orange-dark); font-size: 9px; font-weight: 700; }.orva-integration-grid h3 { margin: 0; overflow-wrap: anywhere; font: 700 18px var(--display); }.orva-integration-grid p { margin: 26px 0 0; font-size: 10px; line-height: 1.45; color: rgba(10,10,10,.58); }.orva-integration-note { margin: 28px 0 0 calc(80px + 4vw); padding-left: 15px; border-left: 3px solid var(--orange); font-size: 12px; font-weight: 600; }
.orva-compare { background: var(--ink); color: var(--cream); }.orva-comparison-list { margin-left: calc(80px + 4vw); border-top: 1px solid rgba(255,248,236,.34); }.orva-comparison-list article { padding: 27px 0; display: grid; grid-template-columns: .7fr 1fr 1.3fr; gap: 30px; border-bottom: 1px solid rgba(255,248,236,.34); }.orva-comparison-list h3 { margin: 0; color: var(--orange); font: 700 25px var(--display); }.orva-comparison-list span { font-size: 8px; letter-spacing: .13em; color: rgba(255,248,236,.42); }.orva-comparison-list p { margin: 8px 0 0; font-size: 13px; line-height: 1.55; }
.orva-faq-list { margin-left: calc(80px + 4vw); border-top: 1px solid var(--ink); }.orva-faq-list details { border-bottom: 1px solid var(--ink); }.orva-faq-list summary { padding: 24px 0; display: flex; justify-content: space-between; gap: 20px; cursor: pointer; list-style: none; font: 700 clamp(20px, 2vw, 29px) var(--display); }.orva-faq-list summary::-webkit-details-marker { display: none; }.orva-faq-list summary span { color: var(--orange-dark); }.orva-faq-list details[open] summary span { transform: rotate(45deg); }.orva-faq-list details p { max-width: 900px; margin: 0; padding: 0 0 27px; color: rgba(10,10,10,.65); line-height: 1.65; }
.orva-demo { padding: 110px clamp(22px, 7vw, 110px); display: grid; grid-template-columns: 1fr .85fr; gap: 8vw; background: var(--orange); border-top: 1px solid var(--ink); }.orva-demo h2 { margin: 0; font: 700 clamp(55px, 6.4vw, 100px)/.9 var(--display); letter-spacing: -.07em; }.orva-demo h2 em { color: var(--cream); font-style: normal; text-shadow: 3px 3px 0 var(--ink); -webkit-text-stroke: 1px var(--ink); }.orva-demo > div:first-child > p:not(.kicker) { max-width: 710px; margin: 30px 0; font-size: 18px; line-height: 1.6; }.orva-demo > div:first-child > a { border-bottom: 1px solid var(--ink); font-weight: 700; }
.orva-form-shell { padding: 32px; background: var(--cream); border: 1px solid var(--ink); box-shadow: 10px 10px 0 var(--ink); }.orva-form-shell > p { margin: 18px 0 0; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }.orva-form-fallback { padding: 18px; border: 1px solid var(--ink); font-size: 13px; }
/* Booking is the primary way out of this page, so its card is dark against the
   orange band and sits above the cream form — the form is the slower path for
   people who would rather write than pick a time. */
.orva-booking-column { display: grid; gap: 24px; align-content: start; }
/* The #book links land on this card, not on the section, so it carries its own
   clearance for the sticky header. */
.orva-booking-card { scroll-margin-top: 100px; padding: 32px; background: var(--ink); color: var(--cream); border: 1px solid var(--ink); box-shadow: 10px 10px 0 var(--cream); }
.orva-booking-card > span { display: block; color: var(--orange); font: 700 9px var(--sans); text-transform: uppercase; letter-spacing: .14em; }
.orva-booking-card h3 { margin: 14px 0 12px; font: 700 clamp(28px, 3vw, 40px)/1 var(--display); letter-spacing: -.05em; }
.orva-booking-card > p { margin: 0 0 26px; font-size: 14px; line-height: 1.65; color: rgba(255,248,236,.72); }
.orva-booking-card .button { box-shadow: 4px 4px 0 var(--cream); }
.orva-booking-card .button:hover { box-shadow: 2px 2px 0 var(--cream); }
.orva-booking-card > small { display: block; margin-top: 16px; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,248,236,.5); }
.orva-form-shell > .orva-form-lede { margin: 0 0 18px; font: 700 14px var(--sans); text-transform: none; letter-spacing: 0; }
/* The header carries the full nav plus two calls to action, which together need
   about 1440px. Tighten first — the parent link is duplicated in the footer, so
   it is the one thing here that can go — and collapse into the toggle menu once
   even that will not fit, rather than letting the CTAs overflow the row. */
@media (max-width: 1500px) {
  .orva-product-header { gap: 26px; }
  .orva-product-actions .orva-parent-link { display: none; }
  .orva-product-nav { gap: 24px; }
}
@media (min-width: 1051px) and (max-width: 1380px) {
  /* The section links go behind the toggle here, not the buttons: a visitor on a
     1280px laptop should still see both calls to action without opening a menu.
     The band ends at 1380 rather than 1300 because the Sign up chip widened the
     actions by ~87px — below that the six nav labels wrap to two lines. */
  .orva-product-nav { display: none; }
  .orva-nav-toggle { display: block; justify-self: end; }
  .orva-product-header.is-open { grid-template-rows: auto auto; }
  /* Both rows are placed explicitly: the nav spans the full width, and without a
     row of its own the actions would be pushed below it instead of staying up
     beside the toggle. */
  .orva-product-header.is-open .orva-product-nav { grid-row: 2; grid-column: 1 / -1; display: flex; justify-content: flex-start; flex-wrap: wrap; }
  .orva-product-header.is-open .orva-product-actions { grid-row: 1; grid-column: 3; }
}
.orva-footer { padding: 34px clamp(22px, 5vw, 72px); display: grid; grid-template-columns: auto 1fr auto; gap: 30px; align-items: center; background: var(--ink); color: var(--cream); border-top: 1px solid var(--orange); }.orva-footer > p { margin: 0; text-align: center; font-size: 10px; color: rgba(255,248,236,.55); }.orva-footer > div { display: flex; gap: 18px; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }

@media (max-width: 1050px) {
  .orva-product-header { grid-template-columns: auto auto; justify-content: space-between; }.orva-product-nav, .orva-product-actions { display: none; }.orva-nav-toggle { display: block; }.orva-product-header.is-open { grid-template-rows: auto auto auto; }.orva-product-header.is-open .orva-product-nav, .orva-product-header.is-open .orva-product-actions { grid-column: 1 / -1; display: flex; justify-content: flex-start; flex-wrap: wrap; }.orva-product-hero, .orva-watch { grid-template-columns: 1fr; }.orva-channel-grid { grid-template-columns: 1fr; }.orva-try-layout { grid-template-columns: 1fr; }.orva-try-scenarios { border-right: 0; border-bottom: 1px solid rgba(255,248,236,.2); }.orva-try-scenarios { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }.orva-try-scenarios > span { grid-column: 1 / -1; }.orva-try-scenarios button { border: 1px solid rgba(255,248,236,.2); }.orva-role-grid { grid-template-columns: 1fr 1fr; }.orva-role-grid article, .orva-role-grid article:nth-child(4), .orva-role-grid article:nth-child(5) { grid-column: auto; }.orva-role-grid article:last-child { grid-column: 1 / -1; }.orva-pillars, .orva-demo { grid-template-columns: 1fr; }.orva-integration-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.orva-footer { grid-template-columns: auto 1fr; }.orva-footer > div { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .orva-page section[id] { scroll-margin-top: 84px; }.orva-product-header { min-height: 68px; }.orva-product-header.is-open .orva-product-nav, .orva-product-header.is-open .orva-product-actions { flex-direction: column; align-items: flex-start; }.orva-parent-link, .orva-login-link { padding: 7px 0; }.orva-product-hero { min-height: auto; padding: 74px 20px; }.orva-product-hero h1 { font-size: 53px; }.orva-product-hero-actions { align-items: flex-start; flex-direction: column; }.orva-video-frame { box-shadow: 7px 7px 0 var(--orange); }.orva-section-intro { grid-template-columns: 1fr; }.orva-channel-grid, .orva-try-console, .orva-step-grid, .orva-problem-grid, .orva-role-grid, .orva-integration-grid, .orva-comparison-list, .orva-faq-list, .orva-integration-note { margin-left: 0; }.orva-channel-card { min-height: 480px; padding: 24px; box-shadow: 7px 7px 0 var(--ink); }.orva-channel-card--slack { box-shadow: 7px 7px 0 var(--orange); }.orva-channel-card-top { flex-direction: column; gap: 7px; }.orva-channel-card h3 { margin-top: 38px; }.orva-video-selector button { flex-basis: 78%; }.orva-try-console { box-shadow: 7px 7px 0 var(--orange); }.orva-try-bar { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 12px; }.orva-try-scenarios { grid-template-columns: 1fr; }.orva-try-scenarios > span { grid-column: auto; }.orva-try-prompt { padding: 18px; }.orva-try-prompt > div { grid-template-columns: 1fr; }.orva-try-prompt button { min-height: 48px; }.orva-try-output { grid-template-columns: 1fr; }.orva-try-output article + article { border-left: 0; border-top: 1px solid rgba(255,248,236,.2); }.orva-step-grid { grid-template-columns: 1fr; }.orva-video-preview > strong { margin: 14px 0; }.orva-addon-note { grid-template-columns: 1fr; gap: 14px; padding: 22px; }.orva-problem-grid { grid-template-columns: 1fr; }.orva-role-grid { grid-template-columns: 1fr; }.orva-role-grid article:last-child { grid-column: auto; }.orva-role-grid article { min-height: 360px; }.orva-integration-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.orva-comparison-list article { grid-template-columns: 1fr; gap: 12px; }.orva-demo { padding: 82px 20px; }.orva-demo h2 { font-size: 58px; }.orva-form-shell { padding: 24px; box-shadow: 7px 7px 0 var(--ink); }.orva-booking-card { padding: 24px; box-shadow: 7px 7px 0 var(--cream); }.orva-footer { grid-template-columns: 1fr; }.orva-footer > p { text-align: left; }.orva-footer > div { grid-column: auto; flex-direction: column; }
}

/* Varys */
.varys-page { --varys-mint:#d6f4ef; --varys-teal:#55d6c6; --varys-red:#ff7455; background:#f7f0e4; color:var(--ink); }
.varys-hero { min-height:780px; padding:clamp(90px,10vw,145px) clamp(24px,6vw,92px) 80px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr); align-items:center; gap:7vw; background:#111827; color:var(--cream); overflow:hidden; position:relative; }
.varys-hero::before { content:""; position:absolute; inset:0; opacity:.15; background-image:linear-gradient(rgba(214,244,239,.32) 1px,transparent 1px),linear-gradient(90deg,rgba(214,244,239,.32) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(to right,transparent,#000); }
.varys-hero-copy,.varys-hero-notebook { position:relative; z-index:1; }.varys-hero h1 { margin:22px 0 24px; max-width:790px; font:700 clamp(62px,7.5vw,116px)/.88 var(--display); letter-spacing:-.065em; }.varys-hero h1 em { color:var(--varys-teal); font-style:normal; }.varys-hero-copy>p:last-of-type { max-width:690px; color:#ccd5dc; font-size:clamp(18px,1.65vw,24px); line-height:1.55; }.varys-hero-actions { margin-top:24px; display:flex; align-items:center; flex-wrap:wrap; gap:26px; }.varys-hero-actions .button { margin-top:0; }.varys-github-link { padding-bottom:5px; border-bottom:1px solid var(--varys-teal); color:var(--varys-teal); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.varys-hero-notebook { border:1px solid rgba(214,244,239,.55); background:#f8f4eb; color:#111827; box-shadow:18px 18px 0 var(--varys-teal); transform:rotate(1.5deg); }.varys-window-bar { height:44px; padding:0 14px; display:flex; align-items:center; gap:7px; border-bottom:1px solid #9da6ac; background:#e5e7eb; }.varys-window-bar i { width:8px; height:8px; border-radius:50%; background:#111827; }.varys-window-bar span { margin-left:8px; font:700 10px var(--sans); letter-spacing:.08em; }.varys-mini-cell { margin:18px; min-height:82px; padding:18px 18px 14px 58px; position:relative; border:1px solid #bec5c9; background:#fff; }.varys-mini-cell>b { position:absolute; left:14px; color:#1b7f77; font:700 12px var(--sans); }.varys-mini-cell code { display:block; font-size:12px; white-space:nowrap; }.varys-mini-cell span { display:inline-block; margin-top:14px; padding:4px 7px; background:#dfeeea; font:700 8px var(--sans); letter-spacing:.09em; text-transform:uppercase; }.varys-mini-cell.is-warn { border:2px solid var(--varys-red); }.varys-mini-cell.is-warn span { background:var(--varys-red); color:#fff; }.varys-mini-verdict { padding:16px 18px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; background:#111827; color:#fff; }.varys-mini-verdict strong { color:var(--varys-teal); }.varys-mini-verdict span,.varys-mini-verdict b { font-size:9px; letter-spacing:.09em; }.varys-mini-verdict b { padding:7px; border:1px solid var(--varys-teal); }
.varys-demo-section { padding:100px clamp(20px,5vw,76px); background:#0c111b; color:#edf7f4; }.varys-section-heading { margin-bottom:38px; display:grid; grid-template-columns:1.2fr .8fr; gap:10vw; align-items:end; }.varys-section-heading h2 { margin:10px 0 0; font:700 clamp(44px,5.5vw,82px)/.95 var(--display); letter-spacing:-.05em; }.varys-section-heading>p { max-width:600px; color:#9eabb4; font-size:17px; line-height:1.65; }.varys-prompt { margin-bottom:18px; padding:18px 20px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:20px; border:1px solid #334152; background:#141c29; }.varys-prompt span,.varys-prompt b { font:700 9px var(--sans); letter-spacing:.13em; }.varys-prompt span { color:var(--varys-teal); }.varys-prompt p { margin:0; color:#e4ebef; }.varys-prompt b { padding:8px 10px; border:1px solid #566579; color:#aeb8c2; }
.varys-console { display:grid; grid-template-columns:minmax(0,1fr) 330px; grid-template-rows:45px minmax(570px,70vh); border:1px solid #344153; background:#0f1723; box-shadow:14px 14px 0 var(--varys-teal); }.varys-console-bar { grid-column:1/-1; padding:0 16px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #344153; font:700 9px var(--sans); letter-spacing:.12em; }.varys-console-bar i { display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:50%; background:var(--varys-teal); box-shadow:0 0 12px var(--varys-teal); }.varys-notebook-stage { min-width:0; position:relative; overflow:hidden; background-image:linear-gradient(rgba(85,214,198,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(85,214,198,.055) 1px,transparent 1px); background-size:32px 32px; }.varys-notebook-stage canvas { width:100%; height:100%; display:block; }.varys-demo-phase { position:absolute; z-index:2; left:24px; top:22px; }.varys-demo-phase strong { display:block; color:var(--varys-teal); font:700 15px var(--sans); letter-spacing:.14em; }.varys-demo-phase span { display:block; margin-top:5px; color:#9aa8b5; font-size:12px; }.varys-phase-track { position:absolute; z-index:2; left:20px; right:20px; bottom:18px; display:grid; grid-template-columns:repeat(6,1fr); background:#0b1019e8; border:1px solid #344153; }.varys-phase-track span { padding:10px 4px; color:#657383; border-right:1px solid #344153; text-align:center; text-transform:uppercase; font:700 8px var(--sans); letter-spacing:.1em; }.varys-phase-track span:last-child { border:0; }.varys-phase-track span.is-active { background:var(--varys-teal); color:#0b1019; }
.varys-inspector { padding:20px; border-left:1px solid #344153; display:flex; flex-direction:column; min-height:0; }.varys-inspector-heading { display:flex; justify-content:space-between; font:700 9px var(--sans); letter-spacing:.12em; color:#9aa8b5; }.varys-inspector-heading strong { color:var(--varys-teal); }.varys-inspector dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:20px 0 12px; }.varys-inspector dl div { padding:10px; border:1px solid #283547; }.varys-inspector dt { color:#7f8d9a; font-size:9px; text-transform:uppercase; }.varys-inspector dd { margin:5px 0 0; color:#fff; font:700 22px var(--display); }.varys-findings { flex:1; min-height:125px; overflow:hidden; }.varys-finding { margin-top:8px; padding:9px 10px; border-left:3px solid var(--varys-red); background:#171f2d; animation:varys-in .35s ease both; }.varys-finding strong { display:block; color:#fff; font-size:11px; }.varys-finding span { color:#8f9aa6; font-size:9px; }.varys-result { display:none; margin:10px 0; padding:14px; background:var(--varys-mint); color:#111827; }.varys-result.is-visible { display:block; animation:varys-in .4s ease both; }.varys-result span { font:700 8px var(--sans); letter-spacing:.12em; }.varys-result h3 { margin:5px 0; font:700 25px var(--display); }.varys-result p { margin:0; font-size:10px; line-height:1.45; }.varys-controls { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.varys-controls button { padding:10px; border:1px solid #657383; background:transparent; color:#dce5e9; cursor:pointer; font:700 9px var(--sans); text-transform:uppercase; letter-spacing:.08em; }.varys-controls button:first-child { background:var(--varys-teal); border-color:var(--varys-teal); color:#0b1019; }.varys-demo-note { max-width:1000px; margin:28px 0 0; color:#72808e; font-size:11px; line-height:1.6; }
@keyframes varys-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
.varys-outcomes { background:#f7f0e4; }.varys-outcome-heading { display:grid; grid-template-columns:170px 1fr; gap:4vw; }.varys-outcome-heading h2 { margin:10px 0 50px; max-width:900px; font:700 clamp(45px,6vw,88px)/.94 var(--display); letter-spacing:-.055em; }.varys-outcome-grid { margin-left:calc(170px + 4vw); display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); border-left:1px solid var(--ink); }.varys-outcome-grid article { min-height:390px; padding:28px; display:flex; flex-direction:column; border-right:1px solid var(--ink); border-bottom:1px solid var(--ink); }.varys-outcome-grid article:nth-child(2) { background:var(--varys-mint); }.varys-outcome-grid span,.varys-outcome-grid b { font:700 9px var(--sans); letter-spacing:.11em; }.varys-outcome-grid h3 { margin:80px 0 15px; font:700 36px var(--display); letter-spacing:-.04em; }.varys-outcome-grid p { line-height:1.6; }.varys-outcome-grid b { margin-top:auto; }
.varys-capabilities { background:var(--varys-mint); }.varys-section-heading--dark { color:var(--ink); }.varys-section-heading--dark>p { color:#43625e; }.varys-capability-grid { display:grid; grid-template-columns:repeat(3,1fr); border-left:1px solid var(--ink); border-top:1px solid var(--ink); }.varys-capability-grid article { min-height:280px; padding:28px; border-right:1px solid var(--ink); border-bottom:1px solid var(--ink); }.varys-capability-grid span { font:700 10px var(--sans); }.varys-capability-grid h3 { margin:55px 0 12px; font:700 30px var(--display); letter-spacing:-.04em; }.varys-capability-grid p { max-width:330px; line-height:1.55; }
.varys-governance { padding:110px clamp(24px,7vw,110px); display:grid; grid-template-columns:.85fr 1.15fr; gap:9vw; background:#17212c; color:var(--cream); }.varys-governance h2 { margin:15px 0 20px; font:700 clamp(46px,5.5vw,78px)/.94 var(--display); letter-spacing:-.055em; }.varys-governance>div>p:last-child { max-width:600px; color:#aeb9c1; font-size:17px; line-height:1.65; }.varys-governance ul { margin:0; padding:0; list-style:none; border-top:1px solid #506070; }.varys-governance li { padding:24px 0; display:grid; grid-template-columns:50px 1fr; border-bottom:1px solid #506070; }.varys-governance li span { color:var(--varys-teal); font:700 10px var(--sans); }.varys-governance li strong { font:700 23px var(--display); }.varys-governance li small { grid-column:2; margin-top:8px; color:#8f9eaa; line-height:1.5; }
.varys-license-note { max-width:620px; margin-top:30px; padding:18px; border:1px solid #506070; border-left:3px solid var(--varys-teal); background:#111923; }.varys-license-note>strong { color:var(--varys-teal); font:700 9px var(--sans); letter-spacing:.12em; }.varys-license-note p { margin:10px 0 14px; color:#94a3ad; font-size:11px; line-height:1.6; }.varys-license-note>div { display:flex; flex-wrap:wrap; gap:18px; }.varys-license-note a { color:var(--cream); font-size:9px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.varys-cta { padding:130px 24px; text-align:center; background:#1b7f77; color:var(--cream); }.varys-cta .kicker { justify-content:center; }.varys-cta h2 { margin:20px auto; max-width:950px; font:700 clamp(60px,8vw,118px)/.9 var(--display); letter-spacing:-.06em; }.varys-cta>p:not(.kicker) { max-width:680px; margin:0 auto 30px; font-size:18px; line-height:1.6; }

/* Orva legal */
.orva-legal-page { background:var(--cream); }.orva-legal-hero { padding:110px clamp(22px,8vw,120px) 80px; border-bottom:1px solid var(--ink); background:var(--orange); }.orva-legal-hero h1 { max-width:1050px; margin:18px 0 24px; font:700 clamp(58px,8vw,124px)/.88 var(--display); letter-spacing:-.07em; }.orva-legal-hero>p:last-child { max-width:760px; font-size:18px; line-height:1.65; }.orva-legal-article { width:min(920px,calc(100% - 44px)); margin:0 auto; padding:90px 0 120px; }.orva-legal-article h2 { margin:70px 0 22px; padding-top:22px; border-top:1px solid var(--ink); font:700 clamp(28px,3vw,43px)/1 var(--display); letter-spacing:-.04em; }.orva-legal-article h3 { margin:32px 0 10px; font:700 21px/1.2 var(--display); }.orva-legal-article p,.orva-legal-article li { color:rgba(10,10,10,.72); font-size:14px; line-height:1.75; }.orva-legal-article>p:first-child,.orva-legal-article>p:nth-child(2),.orva-legal-article>p:last-child { color:var(--ink); font-weight:700; }.orva-legal-article ul { padding-left:24px; }.orva-legal-article li { margin:7px 0; }.orva-legal-article a { color:var(--orange-dark); text-decoration:underline; }.orva-legal-article strong { color:var(--ink); }
@media (max-width:980px) { .varys-hero { min-height:auto; grid-template-columns:1fr; }.varys-hero-notebook { max-width:700px; }.varys-console { grid-template-columns:1fr; grid-template-rows:45px 570px auto; }.varys-inspector { border-left:0; border-top:1px solid #344153; }.varys-findings { min-height:120px; }.varys-outcome-grid { margin-left:0; grid-template-columns:1fr; }.varys-capability-grid { grid-template-columns:repeat(2,1fr); }.varys-governance { grid-template-columns:1fr; } }
@media (max-width:680px) { .varys-hero { padding-top:110px; }.varys-hero h1 { font-size:58px; }.varys-hero-actions { align-items:flex-start; flex-direction:column; }.varys-hero-notebook { box-shadow:8px 8px 0 var(--varys-teal); }.varys-mini-cell code { white-space:normal; }.varys-mini-verdict { grid-template-columns:1fr; }.varys-section-heading,.varys-outcome-heading { grid-template-columns:1fr; }.varys-prompt { grid-template-columns:1fr; }.varys-console { box-shadow:7px 7px 0 var(--varys-teal); grid-template-rows:45px 500px auto; }.varys-console-bar div:last-child { display:none; }.varys-phase-track { grid-template-columns:repeat(3,1fr); }.varys-phase-track span:nth-child(n+4) { display:none; }.varys-capability-grid { grid-template-columns:1fr; }.varys-outcome-heading h2 { margin-bottom:35px; }.varys-governance li { grid-template-columns:35px 1fr; } }

/* Pricing, company pages, and MatchStrike */
.work-card--matchstrike { background:#121e28; color:var(--cream); }
.work-card--fiveminds { background:#11131a; color:var(--cream); }
.work-card--fiveminds>p { color:#c7ff5f; }
.work-grid>a.work-card--fiveminds:hover { box-shadow:9px 9px 0 #c7ff5f; }
/* The Five Minds mark is transparent with black lettering, so it needs a light panel like the
   other logo cards — it replaces the old 5/5 consensus decoration. */
.work-card--fiveminds .work-visual { display:grid; place-items:center; padding:26px; border:1px solid var(--ink); background:#fff; box-shadow:8px 8px 0 #c7ff5f; }
.work-card--fiveminds .work-visual img { max-width:min(100%,330px); max-height:180px; width:auto; height:auto; display:block; object-fit:contain; }
.work-card--fiveminds .work-copy small { color:#c7ff5f; }

/* Five Minds */
.fm-page { --fm-lime:#c7ff5f; --fm-violet:#9c83ff; background:var(--cream); color:var(--ink); }
.fm-hero { min-height:820px; padding:110px clamp(24px,5vw,80px) 90px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); align-items:center; gap:7vw; position:relative; overflow:hidden; background:#11131a; color:var(--cream); }
.fm-hero-grid { position:absolute; inset:0; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(90deg,#000,transparent 85%); }
.fm-hero::after { content:""; position:absolute; width:480px; height:480px; right:-180px; bottom:-260px; border-radius:50%; background:var(--fm-violet); filter:blur(4px); opacity:.55; }
.fm-hero-copy,.fm-hero-orbit { position:relative; z-index:1; }
.fm-hero h1 { margin:24px 0; max-width:780px; font:700 clamp(68px,8vw,132px)/.84 var(--display); letter-spacing:-.075em; }
.fm-hero h1 em { color:var(--fm-lime); font-style:normal; }
.fm-hero-copy>p:not(.kicker) { max-width:690px; font-size:clamp(18px,1.55vw,24px); line-height:1.5; color:#d9d9dd; }
.fm-hero-actions { margin:38px 0 22px; display:flex; align-items:center; gap:25px; flex-wrap:wrap; }
.fm-hero-actions>a:last-child { color:var(--cream); font-size:13px; font-weight:700; letter-spacing:.04em; }
.fm-hero-copy>small { color:#999da7; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.fm-hero-orbit { justify-self:center; width:min(42vw,510px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(199,255,95,.14),transparent 62%); }
.fm-orbit { position:absolute; inset:8%; border:1px solid rgba(255,255,255,.28); border-radius:50%; }
.fm-orbit--inner { inset:25%; border-style:dashed; animation:fm-spin 24s linear infinite reverse; }
.fm-orbit--outer { animation:fm-spin 38s linear infinite; }
.fm-orbit-core { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:34%; aspect-ratio:1; border-radius:50%; display:grid; align-content:center; text-align:center; background:var(--fm-lime); color:var(--ink); box-shadow:0 0 70px rgba(199,255,95,.25); }
.fm-orbit-core strong { font:700 clamp(42px,5vw,74px)/.9 var(--display); letter-spacing:-.07em; }.fm-orbit-core span { margin-top:10px; font-size:8px; letter-spacing:.12em; font-weight:800; }
.fm-mind { position:absolute; width:56px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; border:1px solid var(--fm-lime); background:#191c25; color:var(--fm-lime); font:700 11px var(--sans); box-shadow:0 0 0 7px rgba(199,255,95,.06); }
.fm-mind--1 { top:2%; left:43%; }.fm-mind--2 { right:1%; top:34%; }.fm-mind--3 { right:17%; bottom:5%; }.fm-mind--4 { left:13%; bottom:9%; }.fm-mind--5 { left:0; top:30%; }
@keyframes fm-spin { to { transform:rotate(360deg); } }
.fm-lab { padding:110px clamp(24px,5vw,80px); background:#171923; color:var(--cream); }
.fm-section-heading { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr); gap:8vw; align-items:end; margin-bottom:50px; }
.fm-section-heading h2 { margin:16px 0 0; font:700 clamp(48px,6vw,90px)/.94 var(--display); letter-spacing:-.06em; }.fm-section-heading h2 em { color:var(--fm-lime); font-style:normal; }
.fm-section-heading>p { color:#aaaeb8; line-height:1.6; }
.fm-question-tabs { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #424550; border-bottom:0; }
.fm-question-tabs button { padding:17px 20px; min-height:68px; border:0; border-right:1px solid #424550; background:#20232e; color:#b7bac3; font:700 11px/1.35 var(--sans); text-align:left; cursor:pointer; }.fm-question-tabs button:last-child { border:0; }.fm-question-tabs button.is-active { background:var(--fm-lime); color:var(--ink); }
.fm-console { border:1px solid #424550; background:#0e1017; box-shadow:12px 12px 0 var(--fm-violet); }
.fm-console-bar { padding:13px 16px; display:flex; justify-content:space-between; border-bottom:1px solid #424550; font-size:9px; letter-spacing:.14em; }.fm-console-bar i { display:inline-block; width:7px; aspect-ratio:1; border-radius:50%; margin-right:8px; background:var(--fm-lime); box-shadow:0 0 12px var(--fm-lime); }.fm-console-bar strong { color:var(--fm-lime); }
.fm-question { padding:30px; border-bottom:1px solid #424550; }.fm-question span,.fm-question small { display:block; font-size:8px; letter-spacing:.14em; color:#8f939d; }.fm-question h3 { margin:10px 0 12px; max-width:1000px; font:600 clamp(24px,3vw,42px)/1.1 var(--display); letter-spacing:-.035em; }
.fm-model-grid { display:grid; grid-template-columns:repeat(5,1fr); border-bottom:1px solid #424550; }
.fm-model-grid article { min-height:220px; padding:22px 18px; border-right:1px solid #424550; opacity:1; transform:none; transition:.3s ease; transition-delay:var(--mind-delay); }.fm-model-grid article:last-child { border:0; }.fm-model-grid span { font-size:8px; letter-spacing:.14em; color:#777b87; }.fm-model-grid strong { display:block; margin:34px 0 14px; font:700 clamp(18px,2vw,27px)/1 var(--display); color:var(--fm-lime); }.fm-model-grid p { margin:0; color:#b7bac3; font-size:12px; line-height:1.5; }
.fm-lab.is-running .fm-model-grid article { opacity:.15; transform:translateY(10px); }.fm-lab.is-running #fm-run-status { color:var(--fm-violet); }
.fm-consensus-result { padding:30px; display:grid; grid-template-columns:110px 1fr 110px; gap:28px; align-items:center; background:#191c25; }
.fm-consensus-result>div:nth-child(2)>span { font-size:8px; letter-spacing:.15em; color:var(--fm-lime); font-weight:800; }.fm-consensus-result h3 { margin:9px 0; font:700 clamp(25px,3vw,40px)/1 var(--display); letter-spacing:-.04em; }.fm-consensus-result p { margin:0; max-width:820px; color:#b7bac3; font-size:13px; line-height:1.55; }.fm-consensus-result>strong { justify-self:end; font:700 clamp(42px,5vw,72px)/1 var(--display); color:var(--fm-lime); }
.fm-meter>span { display:block; height:92px; width:12px; margin:0 auto 10px; border:1px solid #575b66; position:relative; }.fm-meter i { position:absolute; bottom:0; width:100%; background:var(--fm-lime); transition:width .3s,height .45s; height:80%; }.fm-meter small { display:block; text-align:center; font-size:7px; letter-spacing:.1em; color:#777b87; }
.fm-lab-note { margin:30px 0 0; padding-left:18px; border-left:3px solid var(--fm-lime); max-width:900px; color:#9da1ab; font-size:12px; line-height:1.55; }
.fm-outcome-heading { display:grid; grid-template-columns:160px 1fr; gap:6vw; }.fm-outcome-heading h2 { margin:16px 0 48px; max-width:950px; font:700 clamp(48px,6vw,86px)/.94 var(--display); letter-spacing:-.06em; }
.fm-why-grid { margin-left:calc(160px + 6vw); display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--ink); }.fm-why-grid article { min-height:330px; padding:30px; display:flex; flex-direction:column; border-right:1px solid var(--ink); border-bottom:1px solid var(--ink); }.fm-why-grid article:nth-child(2n) { border-right:0; }.fm-why-grid article:nth-last-child(-n+2) { border-bottom:0; }.fm-why-grid span,.fm-why-grid b { font-size:8px; letter-spacing:.13em; }.fm-why-grid h3 { margin:45px 0 12px; font:700 32px/1 var(--display); letter-spacing:-.04em; }.fm-why-grid p { line-height:1.55; }.fm-why-grid b { margin-top:auto; }
.fm-reading { background:var(--fm-violet); display:grid; grid-template-columns:.85fr 1.15fr; gap:7vw; }.fm-reading-copy h2 { margin:18px 0; font:700 clamp(48px,5vw,76px)/.94 var(--display); letter-spacing:-.06em; }.fm-reading-copy>p:last-child { max-width:580px; line-height:1.6; }.fm-signal-list { border-top:1px solid var(--ink); }.fm-signal-list article { display:grid; grid-template-columns:50px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid var(--ink); }.fm-signal-list article>span { font:700 12px var(--sans); }.fm-signal-list h3 { margin:0 0 5px; font:700 25px var(--display); }.fm-signal-list p { margin:0; font-size:13px; }
.fm-built { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; }.fm-built h2 { margin:16px 0 20px; font:700 clamp(45px,5vw,76px)/.95 var(--display); letter-spacing:-.06em; }.fm-built>div:first-child>p:last-of-type { max-width:680px; line-height:1.6; }.fm-built>div:first-child>a { display:inline-block; margin-top:18px; color:var(--ink); font-weight:800; }
.fm-stack { border:1px solid var(--ink); box-shadow:10px 10px 0 var(--fm-lime); }.fm-stack div { display:grid; grid-template-columns:45px 1fr auto; gap:20px; align-items:center; padding:20px; border-bottom:1px solid var(--ink); }.fm-stack div:last-child { border:0; }.fm-stack span,.fm-stack small { font-size:8px; letter-spacing:.12em; }.fm-stack strong { font:700 22px var(--display); }.fm-stack small { text-align:right; }
.fm-boundary { margin:0 clamp(24px,5vw,80px); padding:25px 30px; display:grid; grid-template-columns:240px 1fr; gap:30px; border:1px solid var(--ink); background:#ece9df; }.fm-boundary strong { letter-spacing:.12em; font-size:11px; }.fm-boundary p { margin:0; line-height:1.55; font-size:13px; }
.fm-cta { margin-top:90px; min-height:620px; padding:110px clamp(24px,5vw,80px); background:#11131a; color:var(--cream); text-align:center; display:grid; justify-items:center; align-content:center; }.fm-cta h2 { margin:20px 0; font:700 clamp(70px,9vw,140px)/.82 var(--display); letter-spacing:-.075em; }.fm-cta p:not(.kicker) { color:#b9bdc7; font-size:18px; }.fm-cta .button { margin-top:20px; }
@media (max-width:900px) {
  .fm-hero { grid-template-columns:1fr; padding-top:90px; }.fm-hero-orbit { width:min(86vw,480px); }.fm-section-heading,.fm-reading,.fm-built { grid-template-columns:1fr; }.fm-question-tabs { grid-template-columns:1fr; }.fm-question-tabs button { border-right:0; border-bottom:1px solid #424550; }.fm-model-grid { grid-template-columns:1fr; }.fm-model-grid article { min-height:0; border-right:0; border-bottom:1px solid #424550; }.fm-model-grid strong { margin-top:15px; }.fm-consensus-result { grid-template-columns:70px 1fr; }.fm-consensus-result>strong { grid-column:2; justify-self:start; }.fm-outcome-heading { grid-template-columns:1fr; }.fm-why-grid { margin-left:0; grid-template-columns:1fr; }.fm-why-grid article { border-right:0; border-bottom:1px solid var(--ink) !important; }.fm-why-grid article:last-child { border-bottom:0 !important; }.fm-boundary { grid-template-columns:1fr; }
}
.orva-pricing { background:#f3ecdf; }.orva-pricing-grid { display:grid; grid-template-columns:repeat(5,1fr); border:1px solid var(--ink); }.orva-pricing-grid article { min-width:0; padding:26px 22px; border-right:1px solid var(--ink); display:flex; flex-direction:column; }.orva-pricing-grid article:last-child { border-right:0; }.orva-pricing-grid article.is-featured { background:var(--orange); }.orva-pricing-grid article>div { display:flex; justify-content:space-between; gap:12px; color:rgba(10,10,10,.55); font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.orva-pricing-grid h3 { margin:44px 0 9px; font:700 28px/1 var(--display); }.orva-plan-price { margin:0!important; color:var(--ink)!important; font:700 clamp(30px,3vw,44px)/1 var(--display)!important; letter-spacing:-.05em; }.orva-plan-price small { margin-left:4px; font:600 10px var(--sans); letter-spacing:0; }.orva-pricing-grid article>p:not(.orva-plan-price) { min-height:96px; color:rgba(10,10,10,.64); font-size:12px; line-height:1.55; }.orva-pricing-grid article>a { margin-top:auto; padding-top:18px; border-top:1px solid rgba(10,10,10,.35); color:var(--ink); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }.orva-addon-note { margin-top:28px; padding:26px 30px; display:grid; grid-template-columns:190px minmax(0,1fr); gap:28px; border:1px solid var(--ink); background:var(--cream); }
.orva-pricing-grid--three { grid-template-columns:repeat(3,1fr); }
.orva-addon-note strong { font:700 19px/1.15 var(--display); }
.orva-addon-note p { margin:0; max-width:820px; color:rgba(10,10,10,.66); font-size:13px; line-height:1.6; }
.orva-addon-note b { color:var(--ink); }
.orva-climate-note { margin-top:18px; padding:30px; display:grid; grid-template-columns:100px minmax(0,1fr) auto; gap:28px; align-items:center; border:1px solid var(--ink); background:#132920; color:var(--cream); }.orva-climate-note>span { color:#75d49b; font:700 68px/.8 var(--display); letter-spacing:-.07em; }.orva-climate-note p { margin:0; color:rgba(255,248,236,.68); font-size:12px; line-height:1.55; }.orva-climate-note strong { display:block; margin-bottom:4px; color:var(--cream); font-size:15px; }.orva-climate-note a { color:#75d49b; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.orva-cmmc { color:var(--cream); background:#12232b; }.orva-cmmc-heading { display:grid; grid-template-columns:80px 1fr; gap:4vw; }.orva-cmmc-heading h2 { max-width:1080px; margin:18px 0 22px; font:700 clamp(48px,6vw,92px)/.92 var(--display); letter-spacing:-.06em; }.orva-cmmc-heading>div:last-child>p:last-child { max-width:780px; color:rgba(255,248,236,.65); font-size:16px; line-height:1.65; }.orva-cmmc-grid { margin:60px 0 0 calc(80px + 4vw); display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(255,248,236,.32); }.orva-cmmc-grid article { min-height:300px; padding:28px; border-right:1px solid rgba(255,248,236,.32); }.orva-cmmc-grid article:last-child { border-right:0; }.orva-cmmc-grid span { color:var(--orange); font-size:10px; font-weight:700; }.orva-cmmc-grid h3 { margin:68px 0 13px; font:700 28px/1 var(--display); }.orva-cmmc-grid p { color:rgba(255,248,236,.6); font-size:13px; line-height:1.6; }.orva-cmmc-boundary { margin:24px 0 0 calc(80px + 4vw); padding:25px 28px; display:grid; grid-template-columns:230px minmax(0,1fr) auto; gap:28px; align-items:center; border:1px solid var(--orange); background:#0b171c; }.orva-cmmc-boundary strong { color:var(--orange); font:700 10px/1.5 var(--sans); letter-spacing:.1em; }.orva-cmmc-boundary p { margin:0; color:rgba(255,248,236,.68); font-size:12px; line-height:1.6; }.orva-cmmc-boundary a { color:var(--cream); font-size:10px; font-weight:700; text-transform:uppercase; white-space:nowrap; }
.gov-cmmc { position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:7vw; color:var(--cream); background:#12232b; }.gov-cmmc-copy h2 { max-width:800px; margin:18px 0 24px; font:700 clamp(52px,6vw,90px)/.92 var(--display); letter-spacing:-.06em; }.gov-cmmc-copy>p:not(.kicker) { max-width:680px; color:rgba(255,248,236,.68); font-size:16px; line-height:1.65; }.gov-cmmc-copy .button { margin-top:20px; }.gov-cmmc-workflow { border:1px solid var(--orange); box-shadow:10px 10px 0 var(--orange); }.gov-cmmc-workflow div { min-height:118px; padding:20px 24px; display:grid; grid-template-columns:1fr auto; align-content:center; gap:7px 18px; border-bottom:1px solid rgba(255,248,236,.22); }.gov-cmmc-workflow div:last-child { border-bottom:0; }.gov-cmmc-workflow span { color:var(--orange); font-size:9px; font-weight:700; letter-spacing:.1em; }.gov-cmmc-workflow strong { grid-row:1/3; grid-column:2; align-self:center; font:700 22px var(--display); }.gov-cmmc-workflow small { color:rgba(255,248,236,.56); font-size:11px; }.gov-cmmc aside { grid-column:1/-1; padding:20px 24px; display:grid; grid-template-columns:180px 1fr; gap:22px; border:1px solid rgba(255,248,236,.3); }.gov-cmmc aside strong { color:var(--orange); font-size:10px; text-transform:uppercase; letter-spacing:.1em; }.gov-cmmc aside p { margin:0; color:rgba(255,248,236,.62); font-size:11px; line-height:1.6; }
/* CMMC readiness landing page */
.cmmc-page { background:var(--cream); }
.cmmc-hero { min-height:760px; position:relative; overflow:hidden; display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:6vw; padding:100px clamp(22px,7vw,110px) 90px; color:var(--cream); background:#12232b; }
.cmmc-hero .hero-grid { opacity:.18; }
.cmmc-hero-copy,.cmmc-review-panel { position:relative; z-index:1; }
.cmmc-hero h1 { max-width:900px; margin:0; font:700 clamp(58px,6.4vw,105px)/.9 var(--display); letter-spacing:-.065em; }
.cmmc-hero h1 em { display:block; color:var(--orange); font-style:normal; }
.cmmc-hero-copy>p:not(.kicker) { max-width:760px; margin:34px 0 0; color:rgba(255,248,236,.74); font-size:clamp(18px,1.6vw,22px); line-height:1.55; }
.cmmc-hero .text-link { color:var(--cream); border-bottom-color:var(--orange); }
.cmmc-review-panel { border:1px solid var(--orange); background:#0b171c; box-shadow:12px 12px 0 var(--orange); }
.cmmc-review-bar { min-height:54px; padding:0 18px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-bottom:1px solid rgba(255,248,236,.18); color:rgba(255,248,236,.56); font:700 8px var(--sans); letter-spacing:.11em; }
.cmmc-review-bar i { display:inline-block; width:8px; height:8px; margin-right:8px; border-radius:50%; background:#b7ff5b; box-shadow:0 0 12px #b7ff5b; }
.cmmc-review-body { padding:26px; }
.cmmc-review-body>p:first-child { margin:0; color:var(--orange); font:700 9px var(--sans); letter-spacing:.12em; }
.cmmc-review-body h2 { margin:14px 0 24px; font:700 34px/1.05 var(--display); letter-spacing:-.04em; }
.cmmc-review-body>div { padding:17px 0; border-top:1px solid rgba(255,248,236,.18); }
.cmmc-review-body>div span,.cmmc-review-body>div strong { display:block; }
.cmmc-review-body>div span { margin-bottom:7px; color:var(--orange); font-size:8px; font-weight:700; letter-spacing:.12em; }
.cmmc-review-body>div strong { color:rgba(255,248,236,.78); font-size:13px; line-height:1.45; }
.cmmc-review-result { margin:20px 0 0; padding:16px; color:rgba(255,248,236,.68); background:rgba(245,160,0,.1); font-size:11px; line-height:1.55; }
.cmmc-review-result b { color:var(--orange); }
.cmmc-proof-strip { display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid var(--ink); background:var(--orange); }
.cmmc-proof-strip div { min-height:105px; padding:24px clamp(18px,3vw,44px); display:flex; align-items:baseline; gap:10px; border-right:1px solid var(--ink); }
.cmmc-proof-strip div:last-child { border-right:0; }
.cmmc-proof-strip strong { font:700 29px var(--display); }
.cmmc-proof-strip span { font-size:12px; font-weight:600; }
.cmmc-value { display:grid; grid-template-columns:80px 1fr; gap:4vw; }
.cmmc-value h2,.cmmc-level h2,.cmmc-boundary h2,.cmmc-faq h2 { max-width:1050px; margin:0; font:700 clamp(48px,5.5vw,86px)/.94 var(--display); letter-spacing:-.06em; }
.cmmc-value-lede { max-width:980px; margin:28px 0 60px; color:rgba(10,10,10,.68); font-size:20px; line-height:1.65; }
.cmmc-value-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--ink); }
.cmmc-value-grid article { min-height:350px; padding:28px; display:flex; flex-direction:column; border-right:1px solid var(--ink); }
.cmmc-value-grid article:last-child { border-right:0; }
.cmmc-value-grid span { color:var(--orange-dark); font:700 11px var(--display); }
.cmmc-value-grid h3 { margin:70px 0 18px; font:700 31px/1 var(--display); letter-spacing:-.045em; }
.cmmc-value-grid p { margin:auto 0 0; color:rgba(10,10,10,.66); font-size:14px; line-height:1.6; }
.cmmc-level { display:grid; grid-template-columns:.9fr 1.1fr; gap:8vw; color:var(--cream); background:#12232b; }
.cmmc-level>div:first-child>p:last-child { max-width:740px; margin:28px 0 0; color:rgba(255,248,236,.67); font-size:17px; line-height:1.65; }
.cmmc-level-list { border:1px solid var(--orange); }
.cmmc-level-list article { min-height:135px; padding:23px; display:grid; grid-template-columns:150px 1fr; align-items:center; gap:22px; border-bottom:1px solid rgba(255,248,236,.22); }
.cmmc-level-list article:last-child { border-bottom:0; }
.cmmc-level-list strong { color:var(--orange); font:700 22px var(--display); }
.cmmc-level-list p { margin:0; color:rgba(255,248,236,.68); font-size:13px; line-height:1.55; }
.cmmc-boundary { display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; background:var(--orange); border-block:1px solid var(--ink); }
.cmmc-boundary>div:last-child { padding:30px; border:1px solid var(--ink); background:var(--cream); box-shadow:9px 9px 0 var(--ink); }
.cmmc-boundary>div:last-child p { margin:0; color:rgba(10,10,10,.7); font-size:16px; line-height:1.7; }
.cmmc-boundary>div:last-child p+p { margin-top:20px; padding-top:20px; border-top:1px solid var(--ink); }
.cmmc-faq { display:grid; grid-template-columns:80px 1fr; gap:4vw; }
.cmmc-faq h2 { margin-bottom:54px; }
.cmmc-faq details { border-top:1px solid var(--ink); }
.cmmc-faq details:last-child { border-bottom:1px solid var(--ink); }
.cmmc-faq summary { padding:26px 48px 26px 0; position:relative; cursor:pointer; list-style:none; font:700 clamp(23px,2.5vw,34px) var(--display); letter-spacing:-.035em; }
.cmmc-faq summary::-webkit-details-marker { display:none; }
.cmmc-faq summary::after { content:"+"; position:absolute; right:8px; top:23px; color:var(--orange-dark); font-size:30px; }
.cmmc-faq details[open] summary::after { content:"−"; }
.cmmc-faq details p { max-width:950px; margin:0; padding:0 48px 28px 0; color:rgba(10,10,10,.68); font-size:16px; line-height:1.65; }
.cmmc-cta { padding:120px clamp(22px,8vw,120px); color:var(--cream); background:var(--ink); text-align:center; }
.cmmc-cta .kicker { justify-content:center; }
.cmmc-cta h2 { max-width:1150px; margin:0 auto; font:700 clamp(55px,7.2vw,112px)/.9 var(--display); letter-spacing:-.065em; }
.cmmc-cta>p:not(.kicker) { max-width:780px; margin:30px auto 38px; color:rgba(255,248,236,.67); font-size:18px; line-height:1.6; }
.company-page { background:var(--cream); }.company-page .site-header { position:relative; }.company-hero { min-height:650px; padding:120px clamp(22px,8vw,120px); display:flex; flex-direction:column; justify-content:center; background:var(--orange); border-bottom:1px solid var(--ink); }.company-hero h1 { max-width:1180px; margin:22px 0 32px; font:700 clamp(58px,8vw,126px)/.88 var(--display); letter-spacing:-.07em; }.company-hero h1 em { font-family:var(--serif); font-weight:400; }.company-hero>p:last-child { max-width:850px; margin:0; font-size:19px; line-height:1.65; }.company-facts { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--ink); }.company-facts div { min-height:140px; padding:26px; border-right:1px solid var(--ink); display:flex; flex-direction:column; justify-content:flex-end; }.company-facts div:last-child { border-right:0; }.company-facts strong { font:700 25px var(--display); }.company-facts span { margin-top:8px; color:rgba(10,10,10,.54); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }.company-story { display:grid; grid-template-columns:220px 1fr; gap:7vw; }.company-story>div:last-child { max-width:940px; }.company-story h2 { margin:0 0 32px; font:700 clamp(42px,5.5vw,82px)/.95 var(--display); letter-spacing:-.055em; }.company-story p { max-width:800px; color:rgba(10,10,10,.68); font-size:16px; line-height:1.7; }.company-story .button { margin-top:18px; }.company-security { display:grid; grid-template-columns:.78fr 1.22fr; gap:8vw; background:#111; color:var(--cream); }.company-security h2 { margin:20px 0; font:700 clamp(45px,5vw,76px)/.95 var(--display); letter-spacing:-.055em; }.company-security>div>p:last-child { color:rgba(255,248,236,.62); line-height:1.65; }.company-practice-grid { border-top:1px solid rgba(255,248,236,.2); }.company-practice-grid article { padding:22px 0; display:grid; grid-template-columns:48px 180px 1fr; gap:18px; border-bottom:1px solid rgba(255,248,236,.2); }.company-practice-grid article>span { color:var(--orange); font-size:10px; }.company-practice-grid h3,.company-practice-grid p { margin:0; }.company-practice-grid h3 { font:700 18px var(--display); }.company-practice-grid p { color:rgba(255,248,236,.58); font-size:12px; line-height:1.55; }.company-clients { border-top:0; }.company-cta { padding:130px 24px; text-align:center; color:var(--cream); background:var(--orange-dark); }.company-cta h2 { margin:20px auto 35px; font:700 clamp(60px,8vw,118px)/.9 var(--display); letter-spacing:-.065em; }.company-cta>p:not(.kicker) { max-width:660px; margin:0 auto 28px; color:rgba(255,248,236,.7); font-size:16px; line-height:1.6; }
/* About closes on the same bright orange as its hero, so CTA and footer read as one block */
.about-page .company-cta { color:var(--ink); background:var(--orange); border-top:1px solid var(--ink); }
.about-page .company-cta>p:not(.kicker) { color:rgba(10,10,10,.7); }
.about-page .company-cta .kicker span { background:var(--cream); border-color:var(--ink); }
.company-team { padding-top:100px; background:#e8e0d2; border-top:1px solid var(--ink); }
.company-team-heading { max-width:980px; margin-bottom:80px; }
.company-team-heading h2 { max-width:900px; margin:20px 0 24px; font:700 clamp(52px,7vw,102px)/.9 var(--display); letter-spacing:-.065em; }
.company-team-heading>p:last-child { max-width:690px; margin:0; color:rgba(10,10,10,.64); font-size:17px; line-height:1.65; }
.company-team-group { display:grid; grid-template-columns:180px 1fr; gap:4vw; padding:38px 0 70px; border-top:1px solid rgba(10,10,10,.35); }
.company-team-label { display:flex; align-items:flex-start; gap:14px; }
.company-team-label span { padding-top:4px; color:var(--orange-dark); font-size:9px; font-weight:700; letter-spacing:.1em; }
.company-team-label h3 { margin:0; font:700 17px var(--display); }
.company-leadership-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.company-innovation-grid,.company-business-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.team-card { min-width:0; }
.team-card img { width:100%; aspect-ratio:1; display:block; object-fit:cover; object-position:center top; border:1px solid var(--ink); background:#d6cbbb; filter:saturate(.88); transition:filter .2s ease,transform .2s ease; }
.team-card:hover img { filter:saturate(1); transform:translateY(-3px); }
.team-card--leadership { display:grid; grid-template-columns:minmax(150px,.78fr) 1.22fr; border:1px solid var(--ink); background:var(--cream); box-shadow:6px 6px 0 var(--orange); }
.team-card--leadership img { height:100%; border:0; border-right:1px solid var(--ink); }
.team-card--leadership>div { padding:24px; }
.team-card h4 { margin:7px 0 12px; font:700 25px/1 var(--display); letter-spacing:-.035em; }
.team-card>div>p:first-child { min-height:20px; margin:0; color:var(--orange-dark); font-size:9px; font-weight:800; line-height:1.35; letter-spacing:.09em; text-transform:uppercase; }
.team-card--leadership>div>p:nth-of-type(2) { margin:0 0 18px; color:rgba(10,10,10,.62); font-size:12px; line-height:1.55; }
.team-card a { color:var(--ink); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; }
.team-card a:hover { color:var(--orange-dark); }
.team-card--innovation,.team-card--business { min-height:150px; padding:18px; display:grid; grid-template-columns:112px minmax(0,1fr); gap:18px; align-items:center; border:1px solid var(--ink); background:var(--cream); }
.team-card--innovation img,.team-card--business img { width:112px; height:112px; margin:0; border-radius:50%; box-shadow:3px 3px 0 var(--orange); }
.team-card--innovation h4,.team-card--business h4 { margin-bottom:9px; font-size:20px; }
.ethics-hero { background:#dcebdd; }.ethics-principles { display:grid; grid-template-columns:220px 1fr; gap:7vw; }.ethics-list article { padding:34px 0; display:grid; grid-template-columns:70px 1fr; gap:20px; border-top:1px solid var(--ink); }.ethics-list article:last-child { border-bottom:1px solid var(--ink); }.ethics-list>article>span { color:var(--orange-dark); font-size:11px; font-weight:700; }.ethics-list h2 { margin:0 0 10px; font:700 clamp(28px,3vw,46px)/1 var(--display); letter-spacing:-.04em; }.ethics-list p { max-width:820px; margin:0; color:rgba(10,10,10,.66); line-height:1.7; }.climate-panel { padding:90px clamp(22px,8vw,120px); display:grid; grid-template-columns:.55fr 1.45fr; gap:8vw; align-items:center; color:var(--cream); background:#132920; }.climate-panel>span { color:#75d49b; font:700 clamp(110px,18vw,270px)/.75 var(--display); letter-spacing:-.09em; }.climate-panel h2 { max-width:850px; margin:20px 0; font:700 clamp(40px,5vw,74px)/.95 var(--display); letter-spacing:-.055em; }.climate-panel>div>p:last-child { max-width:720px; color:rgba(255,248,236,.62); line-height:1.65; }
/* Responsible AI runs one green scale: mint hero -> cream -> #132920 -> lighter CTA -> mint footer.
   The footer must stay light: brightapps-logo.svg is a black raster and has no white variant. */
.ethics-page .company-cta { background:#1c4034; border-top:1px solid rgba(117,212,155,.3); }
.ethics-page .company-cta .kicker span { background:#75d49b; }
.ethics-page footer { background:#dcebdd; }
.contact-hero { min-height:680px; padding:100px clamp(22px,8vw,120px); display:grid; grid-template-columns:1.15fr .85fr; gap:8vw; align-items:center; background:var(--orange); }.contact-hero h1 { max-width:900px; margin:22px 0 30px; font:700 clamp(62px,8vw,120px)/.88 var(--display); letter-spacing:-.07em; }.contact-hero h1 em { font-family:var(--serif); font-weight:400; }.contact-hero>div>p:last-child { max-width:690px; font-size:18px; line-height:1.65; }.contact-options { border:1px solid var(--ink); background:var(--cream); box-shadow:12px 12px 0 var(--ink); }.contact-options>a,.contact-options>div { min-height:130px; padding:24px; display:grid; grid-template-columns:1fr auto; align-content:center; gap:10px; border-bottom:1px solid var(--ink); color:var(--ink); }.contact-options>*:last-child { border-bottom:0; }.contact-options span { grid-column:1/-1; color:rgba(10,10,10,.5); font-size:9px; font-weight:700; letter-spacing:.1em; }.contact-options strong { font:700 clamp(17px,2vw,25px)/1.25 var(--display); overflow-wrap:anywhere; }.contact-options em { font-style:normal; }.contact-paths { display:grid; grid-template-columns:220px 1fr; gap:7vw; }.contact-paths h2 { max-width:950px; margin:0 0 48px; font:700 clamp(42px,5.5vw,80px)/.95 var(--display); letter-spacing:-.055em; }.contact-paths>div:last-child>div { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--ink); }.contact-paths article { min-height:300px; padding:26px; border-right:1px solid var(--ink); }.contact-paths article:last-child { border-right:0; }.contact-paths article>span { color:var(--orange-dark); font-size:10px; }.contact-paths h3 { margin:70px 0 12px; font:700 25px var(--display); }.contact-paths p { color:rgba(10,10,10,.62); font-size:13px; line-height:1.6; }.contact-paths a { color:var(--orange-dark); font-size:10px; font-weight:700; text-transform:uppercase; }
/* The booking tile leads the contact options, so it carries the orange rather
   than sitting as one more line of contact detail. */
.contact-option--book { background:var(--orange); }
.contact-option--book span { color:rgba(10,10,10,.62); }
.contact-option--book em { font-size:20px; }
/* HubSpot renders the form with its own styles, so the page only owns the frame
   around it: the same bordered cream card the contact options use. */
.contact-form { display:grid; grid-template-columns:220px 1fr; gap:7vw; }.contact-form h2 { max-width:950px; margin:0 0 16px; font:700 clamp(42px,5.5vw,80px)/.95 var(--display); letter-spacing:-.055em; }.contact-form>div:last-child>p { max-width:690px; margin:0 0 44px; color:rgba(10,10,10,.62); line-height:1.7; }.contact-form-embed { max-width:760px; padding:clamp(24px,3vw,40px); border:1px solid var(--ink); background:var(--cream); box-shadow:12px 12px 0 var(--ink); }
footer a { color:inherit; }
/* Social row inside each footer's link list. It is a <span>, not a <div>, so the
   `footer div` / `.orva-footer > div` rules that stack the link list into a
   column on narrow screens leave the icons as a single row. */
.footer-social { display:inline-flex; align-items:center; gap:14px; }.footer-social a { display:inline-flex; opacity:.7; transition:opacity .15s ease; }.footer-social a:hover,.footer-social a:focus-visible { opacity:1; }.footer-social svg { display:block; width:17px; height:17px; fill:currentColor; }
.orva-footer .footer-social a { opacity:.55; }.orva-footer .footer-social a:hover,.orva-footer .footer-social a:focus-visible { opacity:1; }
/* The footer's 3-column row (logo | tagline | links) runs out of room well before
   the 980px stack kicks in: the link list is a fixed-width run of text, so the
   tagline gets crushed into a tall narrow column and the footer grows ~70px.
   Adding the social icons widened that run, so drop the links to their own line
   as soon as they stop fitting. Bounded below 641px so it cannot override the
   single-column + stacked-links rules in the 640px query further up the file. */
@media (min-width:641px) and (max-width:1300px) { footer { grid-template-columns:150px 1fr; } footer div { grid-column:1 / -1; } }
@media (max-width:1100px) { .orva-pricing-grid { grid-template-columns:repeat(2,1fr); }.orva-pricing-grid article { border-bottom:1px solid var(--ink); }.orva-pricing-grid article:nth-child(2n) { border-right:0; }.orva-pricing-grid article:last-child { border-right:1px solid var(--ink); }.company-security { grid-template-columns:1fr; }.company-practice-grid article { grid-template-columns:48px 180px 1fr; }.company-team-group { grid-template-columns:1fr; }.company-leadership-grid { grid-template-columns:1fr; }.company-innovation-grid,.company-business-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:1100px) { .gov-cmmc { grid-template-columns:1fr; }.orva-cmmc-grid { grid-template-columns:1fr; }.orva-cmmc-grid article { min-height:auto; border-right:0; border-bottom:1px solid rgba(255,248,236,.32); }.orva-cmmc-grid article:last-child { border-bottom:0; }.orva-cmmc-grid h3 { margin-top:35px; }.orva-cmmc-boundary { grid-template-columns:1fr; } }
@media (max-width:1100px) { .cmmc-hero,.cmmc-level,.cmmc-boundary { grid-template-columns:1fr; }.cmmc-review-panel { max-width:760px; }.cmmc-value-grid { grid-template-columns:1fr; }.cmmc-value-grid article { min-height:260px; border-right:0; border-bottom:1px solid var(--ink); }.cmmc-value-grid article:last-child { border-bottom:0; }.cmmc-value-grid h3 { margin-top:42px; } }
@media (max-width:760px) { .orva-pricing-grid { grid-template-columns:1fr; }.orva-pricing-grid article,.orva-pricing-grid article:nth-child(2n),.orva-pricing-grid article:last-child { border-right:0; }.orva-pricing-grid article>p:not(.orva-plan-price) { min-height:0; }.orva-climate-note { grid-template-columns:1fr; }.orva-cmmc-heading { grid-template-columns:1fr; }.orva-cmmc-grid,.orva-cmmc-boundary { margin-left:0; }.orva-cmmc-boundary a { white-space:normal; }.gov-cmmc-workflow { box-shadow:7px 7px 0 var(--orange); }.gov-cmmc-workflow div { grid-template-columns:1fr; }.gov-cmmc-workflow strong { grid-row:auto; grid-column:auto; }.gov-cmmc aside { grid-template-columns:1fr; }.company-hero { min-height:auto; padding-top:90px; }.company-hero h1 { font-size:58px; }.company-facts { grid-template-columns:1fr 1fr; }.company-facts div:nth-child(2) { border-right:0; }.company-facts div:nth-child(-n+2) { border-bottom:1px solid var(--ink); }.company-story,.ethics-principles,.contact-paths,.contact-form { grid-template-columns:1fr; }.contact-form-embed { box-shadow:7px 7px 0 var(--ink); }.company-team { padding-top:75px; }.company-team-heading { margin-bottom:55px; }.company-innovation-grid,.company-business-grid { grid-template-columns:1fr; }.team-card--leadership { grid-template-columns:1fr; }.team-card--leadership img { height:auto; border-right:0; border-bottom:1px solid var(--ink); }.company-practice-grid article { grid-template-columns:35px 1fr; }.company-practice-grid article p { grid-column:2; }.climate-panel { grid-template-columns:1fr; }.climate-panel>span { font-size:130px; }.contact-hero { min-height:auto; padding-top:90px; grid-template-columns:1fr; }.contact-hero h1 { font-size:60px; }.contact-options { box-shadow:7px 7px 0 var(--ink); }.contact-paths>div:last-child>div { grid-template-columns:1fr; }.contact-paths article { min-height:auto; border-right:0; border-bottom:1px solid var(--ink); }.contact-paths article:last-child { border-bottom:0; }.contact-paths h3 { margin-top:35px; } }
@media (max-width:760px) { .cmmc-hero { min-height:auto; padding:78px 20px 70px; }.cmmc-hero h1 { font-size:58px; }.cmmc-review-panel { box-shadow:7px 7px 0 var(--orange); }.cmmc-review-bar { align-items:flex-start; flex-direction:column; justify-content:center; padding-block:14px; }.cmmc-proof-strip { grid-template-columns:1fr 1fr; }.cmmc-proof-strip div:nth-child(2) { border-right:0; }.cmmc-proof-strip div:nth-child(-n+2) { border-bottom:1px solid var(--ink); }.cmmc-value,.cmmc-faq { grid-template-columns:1fr; }.cmmc-value .section-label,.cmmc-faq .section-label { writing-mode:initial; transform:none; }.cmmc-level-list article { grid-template-columns:1fr; }.cmmc-boundary>div:last-child { box-shadow:6px 6px 0 var(--ink); }.cmmc-cta { padding:90px 20px; }.cmmc-cta h2 { font-size:58px; } }
@media (max-width:480px) { .company-innovation-grid,.company-business-grid { grid-template-columns:1fr; }.company-team-group { padding-bottom:48px; } }

/* Orva interactive demo (/orva/demo). Reuses the product page dark-console
   language (.orva-try-bar and friends) so the live demo and the marketing
   page read as one surface. */
/* The dark pages sit on a cream body, so overscroll (and any viewport
   taller than the document) flashes cream. base.html stamps the path on
   <body>, so anchor the dark background there rather than only on <main>. */
body[data-page-path="/orva/demo"] { background:var(--ink); }
.orva-demo-page { background:var(--ink); color:var(--cream); }
.orva-demo-intro { position:relative; padding:88px clamp(22px,8vw,120px) 54px; }
.orva-demo-intro > div { position:relative; z-index:1; max-width:900px; }
.orva-demo-intro h1 { margin:0 0 22px; font:700 clamp(46px,6vw,92px)/.92 var(--display); letter-spacing:-.065em; }
.orva-demo-intro h1 em { display:block; color:var(--orange); font-style:normal; }
.orva-demo-intro > div > p { max-width:760px; margin:0 0 30px; color:rgba(255,248,236,.68); font-size:17px; line-height:1.65; }
.orva-demo-facts { margin:0; padding:0; list-style:none; display:grid; gap:12px; max-width:820px; }
.orva-demo-facts li { padding-left:16px; border-left:2px solid var(--orange); color:rgba(255,248,236,.6); font-size:13px; line-height:1.6; }
.orva-demo-facts strong { color:var(--cream); }
.orva-demo-shell { padding:0 clamp(22px,8vw,120px) 96px; display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,.75fr); gap:clamp(24px,3vw,48px); align-items:start; }
.orva-demo-console { min-width:0; border:1px solid var(--orange); background:#111; box-shadow:12px 12px 0 var(--orange); }
.orva-demo-gate { padding:clamp(26px,4vw,54px); }
.orva-demo-gate h2 { margin:0 0 14px; font:700 clamp(28px,3.4vw,46px)/1.02 var(--display); letter-spacing:-.05em; }
.orva-demo-gate > p { max-width:620px; margin:0 0 28px; color:rgba(255,248,236,.62); font-size:14px; line-height:1.65; }
/* The gate is this page's own form now, so it takes the dark field styling
   directly. The cream card that used to sit here was for HubSpot's embed,
   which arrived with its own light styling. */
.orva-demo-gate > form label { display:block; margin-bottom:10px; color:var(--orange); font:700 8px var(--sans); letter-spacing:.14em; }
.orva-demo-gate > form > div { max-width:640px; display:grid; grid-template-columns:minmax(0,1fr) auto; }
.orva-demo-gate > form input { min-width:0; padding:16px; border:1px solid rgba(255,248,236,.36); background:#1b1b1b; color:var(--cream); font:600 15px var(--sans); }
.orva-demo-gate > form input:focus-visible { outline:2px solid var(--orange); outline-offset:-2px; }
.orva-demo-gate > form button { padding:0 24px; border:1px solid var(--orange); background:var(--orange); color:var(--ink); font:700 11px var(--sans); text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.orva-demo-gate > form button:disabled { cursor:wait; opacity:.6; }
.orva-demo-gate > form .orva-demo-optin { max-width:640px; margin:14px 0 0; display:flex; gap:10px; align-items:flex-start; color:rgba(255,248,236,.6); font:400 12px/1.55 var(--sans); letter-spacing:0; text-transform:none; }
.orva-demo-gate > form .orva-demo-optin input { flex:0 0 auto; width:16px; height:16px; margin-top:2px; padding:0; accent-color:var(--orange); }
/* The opt-in is required, so the label has to say so louder than the rest of
   the sentence. Specificity matched to `.orva-demo-gate > form label`, which
   would otherwise win on the properties it sets. */
.orva-demo-gate > form .orva-demo-optin { display:flex; gap:10px; align-items:flex-start; margin:14px 0 0; color:rgba(255,248,236,.6); font:400 12px/1.55 var(--sans); letter-spacing:0; text-transform:none; }
.orva-demo-gate > form .orva-demo-optin b { color:var(--orange); font-weight:700; }
/* The honeypot. Positioned off-screen rather than display:none — a script
   worth catching skips fields the browser reports as hidden. */
.orva-demo-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
/* Turnstile in interaction-only mode renders nothing at all for most
   visitors, so the margin has to go with it or the gate gains a gap. */
.orva-demo-turnstile:not(:empty) { margin:18px 0 0; }
.orva-demo-gate-status { margin:16px 0 0; color:var(--orange); font:700 10px var(--sans); text-transform:uppercase; letter-spacing:.1em; }
.orva-demo-gate > small { display:block; margin-top:14px; color:rgba(255,248,236,.4); font-size:11px; line-height:1.6; }
.orva-demo-gate > small a { color:rgba(255,248,236,.7); }
.orva-demo-transcript { min-height:340px; max-height:min(58vh,620px); padding:24px; overflow-y:auto; display:grid; align-content:start; gap:20px; }
.orva-demo-msg { display:grid; gap:8px; }
.orva-demo-who { color:var(--orange); font:700 7px var(--sans); letter-spacing:.14em; }
.orva-demo-msg--user .orva-demo-who { color:rgba(255,248,236,.45); }
.orva-demo-body { min-width:0; color:rgba(255,248,236,.82); font-size:14px; line-height:1.68; overflow-wrap:anywhere; }
.orva-demo-msg--user .orva-demo-body { padding:14px 16px; border-left:2px solid rgba(255,248,236,.28); background:#191919; }
.orva-demo-body p { margin:0 0 12px; }
.orva-demo-body p:last-child { margin-bottom:0; }
.orva-demo-body h3 { margin:18px 0 8px; color:var(--cream); font:700 15px var(--display); }
.orva-demo-body h3:first-child, .orva-demo-body h4:first-child { margin-top:0; }
.orva-demo-body h4 { margin:14px 0 6px; color:var(--cream); font:700 13px var(--sans); letter-spacing:-.01em; }
.orva-demo-body hr { margin:16px 0; border:0; border-top:1px solid rgba(255,248,236,.16); }
.orva-demo-body pre { margin:0 0 12px; padding:12px 14px; background:#222; overflow-x:auto; }
.orva-demo-body pre code { padding:0; background:none; white-space:pre; }
.orva-demo-body ul, .orva-demo-body ol { margin:0 0 12px; padding-left:20px; }
.orva-demo-body li { padding:3px 0; }
.orva-demo-body code { padding:2px 5px; background:#222; color:var(--orva-green); font-size:12px; }
/* The tool trace: one line per step while the turn runs, then folded away
   under the answer it produced. */
.orva-demo-trace { margin:0; padding:0; list-style:none; display:grid; gap:7px; }
.orva-demo-trace:not(:empty) { margin-bottom:12px; }
.orva-demo-trace li { position:relative; padding-left:18px; color:rgba(255,248,236,.5); font-size:12px; line-height:1.5; }
.orva-demo-trace li::before { content:""; position:absolute; left:0; top:6px; width:6px; height:6px; border-radius:50%; background:var(--orva-green); }
.is-thinking .orva-demo-trace li:last-child { color:rgba(255,248,236,.78); }
.is-thinking .orva-demo-trace li:last-child::before { background:var(--orange); }
.orva-demo-steps { margin:14px 0 0; }
.orva-demo-steps summary { color:rgba(255,248,236,.4); font:700 8px var(--sans); letter-spacing:.14em; text-transform:uppercase; cursor:pointer; }
.orva-demo-steps summary:hover { color:var(--orange); }
.orva-demo-steps[open] summary { margin-bottom:10px; }
.orva-demo-body a { color:var(--orange); text-decoration:underline; }
.orva-demo-msg.is-thinking .orva-demo-body { color:var(--orva-green); font-size:12px; letter-spacing:.04em; }
.orva-demo-msg.is-thinking i { animation:orvaDemoBlink 1.2s infinite; font-style:normal; }
.orva-demo-msg.is-thinking i:nth-child(2) { animation-delay:.2s; }
.orva-demo-msg.is-thinking i:nth-child(3) { animation-delay:.4s; }
@keyframes orvaDemoBlink { 0%,60%,100% { opacity:.25; } 30% { opacity:1; } }
.orva-demo-files { display:flex; flex-wrap:wrap; gap:8px; }
.orva-demo-files a { padding:8px 11px; border:1px solid rgba(245,160,0,.5); color:var(--orange); font-size:11px; font-weight:600; }
.orva-demo-suggestions { padding:0 24px 18px; display:grid; gap:8px; }
.orva-demo-suggestions button { padding:12px 14px; border:1px solid rgba(255,248,236,.22); background:transparent; color:rgba(255,248,236,.72); text-align:left; font:400 12px/1.5 var(--sans); cursor:pointer; }
.orva-demo-suggestions button:hover { border-color:var(--orange); color:var(--cream); }
.orva-demo-composer { padding:18px 24px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; align-items:end; border-top:1px solid rgba(255,248,236,.2); }
/* The attach control is a label wrapping a hidden input — the file picker's
   own button cannot be styled, and a label is the one thing that opens it
   without script. */
.orva-demo-attach { min-height:48px; display:flex; align-items:center; justify-content:center; width:48px; border:1px solid rgba(255,248,236,.36); background:#1b1b1b; color:rgba(255,248,236,.7); font-size:19px; cursor:pointer; }
.orva-demo-attach:hover { border-color:var(--orange); color:var(--orange); }
.orva-demo-attach input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.orva-demo-attach:focus-within { outline:2px solid var(--orange); outline-offset:-2px; }
.orva-demo-sent-file { margin:0 0 8px; color:var(--orange); font-size:12px; }
.orva-demo-attachment { margin:0; padding:10px 24px 0; display:flex; align-items:center; gap:10px; color:rgba(255,248,236,.62); font-size:12px; }
.orva-demo-attachment span { padding:5px 10px; border:1px solid rgba(255,248,236,.28); background:#191919; overflow-wrap:anywhere; }
.orva-demo-attachment button { padding:0 6px; border:0; background:none; color:rgba(255,248,236,.5); font-size:15px; line-height:1; cursor:pointer; }
.orva-demo-attachment button:hover { color:var(--orange); }
/* Drag anywhere over the console, not just the composer: the drop target a
   visitor aims at is the conversation. */
.orva-demo-console.is-dropping { outline:2px dashed var(--orange); outline-offset:-6px; }
.orva-demo-composer textarea { min-width:0; padding:14px; border:1px solid rgba(255,248,236,.36); background:#1b1b1b; color:var(--cream); font:400 14px/1.5 var(--sans); resize:none; }
.orva-demo-composer textarea:focus-visible { outline:2px solid var(--orange); outline-offset:-2px; }
.orva-demo-composer textarea:disabled { opacity:.5; }
.orva-demo-composer button { padding:0 20px; min-height:48px; border:1px solid var(--orange); background:var(--orange); color:var(--ink); font:700 11px var(--sans); text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.orva-demo-composer button:disabled { cursor:wait; opacity:.55; }
.orva-demo-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.orva-demo-error { margin:0; padding:12px 24px; color:#ffb4a2; background:rgba(255,80,60,.1); border-top:1px solid rgba(255,120,100,.35); font-size:12px; line-height:1.55; }
.orva-demo-foot { margin:0; padding:12px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid rgba(255,248,236,.2); color:rgba(255,248,236,.4); font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.orva-demo-foot button { padding:0; border:0; background:none; color:rgba(255,248,236,.45); font:700 9px var(--sans); letter-spacing:.1em; text-transform:uppercase; text-decoration:underline; cursor:pointer; }
.orva-demo-foot button:hover { color:var(--orange); }
.orva-demo-aside { padding:clamp(22px,2.5vw,34px); border:1px solid rgba(255,248,236,.22); background:#151515; }
.orva-demo-aside h2 { margin:0 0 14px; font:700 clamp(22px,2.2vw,30px)/1.08 var(--display); letter-spacing:-.04em; }
.orva-demo-aside > p { margin:0 0 22px; color:rgba(255,248,236,.62); font-size:13px; line-height:1.65; }
.orva-demo-aside dl { margin:26px 0 0; padding-top:20px; border-top:1px solid rgba(255,248,236,.2); }
.orva-demo-aside dt { margin-bottom:6px; color:var(--orange); font:700 11px var(--sans); }
.orva-demo-aside dd { margin:0 0 18px; color:rgba(255,248,236,.55); font-size:12px; line-height:1.6; }
.orva-demo-aside dd:last-child { margin-bottom:0; }
.orva-demo-offline { padding:clamp(30px,5vw,64px); border:1px solid var(--orange); background:#111; box-shadow:12px 12px 0 var(--orange); }
.orva-demo-offline h2 { margin:0 0 14px; font:700 clamp(28px,3.4vw,44px)/1.03 var(--display); letter-spacing:-.05em; }
.orva-demo-offline p { max-width:640px; color:rgba(255,248,236,.62); font-size:14px; line-height:1.65; }
.orva-demo-page .orva-footer { border-top:1px solid rgba(245,160,0,.45); }
.orva-try-cta { margin:26px 0 0; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.orva-try-cta small { color:rgba(255,248,236,.4); font-size:11px; }
@media (max-width:1050px) { .orva-demo-shell { grid-template-columns:1fr; }.orva-demo-aside { order:2; } }
@media (max-width:680px) { .orva-demo-intro { padding:70px 20px 40px; }.orva-demo-intro h1 { font-size:42px; }.orva-demo-shell { padding:0 20px 70px; }.orva-demo-console, .orva-demo-offline { box-shadow:7px 7px 0 var(--orange); }.orva-demo-gate > form > div { grid-template-columns:1fr; gap:10px; }.orva-demo-gate > form button { min-height:50px; }.orva-demo-transcript { padding:18px; max-height:none; }.orva-demo-suggestions { padding:0 18px 16px; }.orva-demo-composer { padding:16px 18px; grid-template-columns:auto minmax(0,1fr); }.orva-demo-composer button[data-demo-send] { grid-column:1 / -1; }.orva-demo-attachment { padding:10px 18px 0; }.orva-demo-foot { padding:12px 18px; flex-direction:column; align-items:flex-start; gap:8px; } }

/* Free tools hub (/free-tools) and the readiness scorecard beneath it.
   Both reuse the Library's furniture — .library-grid for the hero overlay,
   .library-heading and .library-paper-grid for the download cards — so the two
   resource areas of the site read as siblings rather than as two designs. */
.ft-page { background:var(--cream); }
.ft-hero { min-height:560px; position:relative; overflow:hidden; padding:95px clamp(22px,7vw,110px); display:grid; grid-template-columns:1.15fr .85fr; gap:8vw; align-items:end; background:var(--ink); color:var(--cream); }
.ft-hero>div:not(.library-grid),.ft-hero .library-jumps { position:relative; z-index:1; }
.ft-hero h1 { margin:0; font:700 clamp(60px,7.6vw,118px)/.86 var(--display); letter-spacing:-.075em; }
.ft-hero h1 em { color:var(--orange); font-style:normal; }
.ft-hero>div>p:last-child { max-width:660px; margin:34px 0 0; color:rgba(255,248,236,.68); font-size:19px; line-height:1.6; }

/* One row per tool: a fixed meta rail, the description, then the call to action
   pinned right. Rows rather than cards because the list has to stay readable as
   it grows — a fourth and fifth tool extend this without reflowing a grid or
   leaving an orphan in the last column. */
.ft-tool-list { margin-left:calc(80px + 4vw); border-top:1px solid var(--ink); }
.ft-tool { padding:34px 0; display:grid; grid-template-columns:180px minmax(0,1fr) 210px; gap:40px; align-items:start; border-bottom:1px solid var(--ink); transition:background .2s ease,padding .2s ease; }
.ft-tool:hover { background:var(--paper); padding-inline:22px; }
.ft-tool-meta { display:flex; flex-direction:column; gap:10px; }
.ft-tool-number { color:var(--orange-dark); font:700 27px var(--display); letter-spacing:-.04em; }
.ft-tool-kind { color:rgba(10,10,10,.6); font:700 9px var(--sans); letter-spacing:.12em; text-transform:uppercase; }
/* The access promise. Bordered so it reads as a label rather than more prose —
   someone deciding whether to click needs to see "email required" without
   having to read the paragraph first. */
.ft-tool-access { align-self:flex-start; padding:5px 9px; border:1px solid var(--ink); background:var(--orange); font:700 8px var(--sans); letter-spacing:.1em; text-transform:uppercase; }
.ft-tool-body h3 { margin:0 0 14px; font:700 clamp(28px,3.2vw,44px)/1 var(--display); letter-spacing:-.045em; }
.ft-tool:hover .ft-tool-body h3 { color:var(--orange-dark); }
.ft-tool-body>p { max-width:640px; margin:0 0 20px; color:rgba(10,10,10,.66); font-size:15px; line-height:1.65; }
.ft-tool-body ul { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.ft-tool-body li { padding:6px 11px; border:1px solid rgba(10,10,10,.28); font-size:11px; font-weight:600; }
.ft-tool-go { display:flex; align-items:center; justify-content:flex-end; gap:14px; padding-top:6px; }
.ft-tool-go strong { text-align:right; font:700 11px var(--sans); letter-spacing:.09em; text-transform:uppercase; }
.ft-tool-go span { color:var(--orange-dark); font-size:20px; transition:transform .2s ease; }
.ft-tool:hover .ft-tool-go span { transform:translateX(5px); }
.ft-downloads { background:var(--paper); border-top:1px solid var(--ink); }

/* ── the readiness scorecard (/free-tools/ai-readiness) ────────────────── */
.ar-hero { position:relative; overflow:hidden; padding:92px clamp(22px,7vw,110px) 80px; background:var(--ink); color:var(--cream); }
.ar-hero-copy { position:relative; z-index:1; max-width:1000px; }
.ar-hero .kicker a { border-bottom:1px solid var(--orange); }
.ar-hero h1 { margin:0; font:700 clamp(50px,6.4vw,104px)/.9 var(--display); letter-spacing:-.07em; }
.ar-hero h1 em { display:block; color:var(--orange); font-style:normal; }
.ar-hero-copy>p { max-width:820px; margin:32px 0 0; color:rgba(255,248,236,.7); font-size:18px; line-height:1.65; }
.ar-hero-facts { margin-top:44px; display:flex; flex-wrap:wrap; border:1px solid rgba(255,248,236,.3); }
.ar-hero-facts div { min-width:190px; padding:20px 26px; display:flex; align-items:baseline; gap:12px; border-right:1px solid rgba(255,248,236,.3); }
.ar-hero-facts div:last-child { border-right:0; }
.ar-hero-facts strong { color:var(--orange); font:700 34px var(--display); letter-spacing:-.05em; }
.ar-hero-facts span { color:rgba(255,248,236,.6); font:700 8px var(--sans); letter-spacing:.11em; }

.ar-what { padding:100px clamp(22px,6vw,88px) 20px; }
.ar-what-heading { display:grid; grid-template-columns:80px 1fr; gap:4vw; margin-bottom:52px; }
.ar-what-heading h2 { max-width:900px; margin:0; font:700 clamp(38px,4.6vw,70px)/.96 var(--display); letter-spacing:-.055em; }
.ar-what-heading>div>p:last-child { max-width:760px; margin:22px 0 0; color:rgba(10,10,10,.64); font-size:17px; line-height:1.65; }
.ar-category-grid { margin-left:calc(80px + 4vw); display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--ink); }
.ar-category-grid article { min-height:250px; padding:24px; display:flex; flex-direction:column; border-right:1px solid var(--ink); }
.ar-category-grid article:last-child { border-right:0; }
.ar-category-grid article>div { display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.ar-category-grid span { color:var(--orange-dark); font:700 25px var(--display); }
.ar-category-grid small { color:rgba(10,10,10,.5); font:700 8px var(--sans); letter-spacing:.11em; }
.ar-category-grid h3 { margin:52px 0 12px; font:700 22px/1.1 var(--display); letter-spacing:-.035em; }
.ar-category-grid p { margin:auto 0 0; color:rgba(10,10,10,.62); font-size:13px; line-height:1.55; }

/* The tool itself sits on the same dark console the Orva demo uses, for the
   same reason: it is the working surface of the page and needs to read as
   something you operate rather than something you scroll past. */
.ar-shell { padding:80px clamp(22px,6vw,88px) 96px; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr); gap:clamp(24px,3vw,44px); align-items:start; }
.ar-console { min-width:0; border:1px solid var(--ink); background:#111; color:var(--cream); box-shadow:12px 12px 0 var(--orange); }
.ar-gate { padding:clamp(26px,4vw,52px); }
.ar-gate h2 { margin:0 0 14px; font:700 clamp(28px,3.4vw,46px)/1.02 var(--display); letter-spacing:-.05em; }
.ar-gate-lede { max-width:640px; margin:0 0 30px; color:rgba(255,248,236,.66); font-size:15px; line-height:1.65; }
.ar-gate-lede strong { color:var(--cream); }
.ar-gate>form label { display:block; margin-bottom:10px; color:var(--orange); font:700 8px var(--sans); letter-spacing:.14em; }
.ar-gate>form>div { max-width:660px; display:grid; grid-template-columns:minmax(0,1fr) auto; }
.ar-gate>form input { min-width:0; padding:16px; border:1px solid rgba(255,248,236,.36); background:#1b1b1b; color:var(--cream); font:600 15px var(--sans); }
.ar-gate>form input:focus-visible { outline:2px solid var(--orange); outline-offset:-2px; }
.ar-gate>form button { padding:0 24px; border:1px solid var(--orange); background:var(--orange); color:var(--ink); font:700 11px var(--sans); text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.ar-gate>form button:disabled { opacity:.6; cursor:default; }
/* The consent sentence. Bordered and set on the orange wash rather than left as
   fine print: submitting the form is itself the opt-in, so this notice is doing
   that work and must not read as a footnote. */
.ar-consent { max-width:660px; margin:16px 0 0; padding:14px 16px; border-left:2px solid var(--orange); background:rgba(245,160,0,.09); color:rgba(255,248,236,.72); font-size:12px; line-height:1.6; }
.ar-gate-status { margin:18px 0 0; color:var(--orange); font-size:12px; font-weight:700; }
.ar-gate>small { display:block; margin-top:22px; color:rgba(255,248,236,.45); font-size:11px; line-height:1.6; }
.ar-gate>small a { border-bottom:1px solid rgba(255,248,236,.4); }
.ar-turnstile { margin-top:18px; }

.ar-quiz { padding:clamp(24px,3.4vw,44px); }
.ar-progress { margin-bottom:34px; }
.ar-progress-track { height:5px; background:rgba(255,248,236,.15); }
.ar-progress-track span { display:block; height:100%; background:var(--orange); transition:width .25s ease; }
.ar-progress p { margin:12px 0 0; color:rgba(255,248,236,.55); font:700 9px var(--sans); letter-spacing:.11em; text-transform:uppercase; }
.ar-page-head { display:grid; grid-template-columns:54px 1fr; gap:18px; align-items:start; padding-bottom:26px; margin-bottom:8px; border-bottom:1px solid rgba(255,248,236,.2); }
.ar-page-head>span { color:var(--orange); font:700 44px/.8 var(--display); letter-spacing:-.05em; }
.ar-page-head h2 { margin:0; font:700 clamp(24px,2.6vw,34px)/1.05 var(--display); letter-spacing:-.04em; }
.ar-page-head p { margin:8px 0 0; color:rgba(255,248,236,.55); font-size:13px; line-height:1.55; }
/* fieldset carries the grouping for assistive tech; all of its default chrome
   is stripped because the border below does the visual work. */
.ar-question { margin:0; padding:24px 0; border:0; border-bottom:1px solid rgba(255,248,236,.14); }
.ar-question legend { padding:0; display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:baseline; }
.ar-question legend span { color:var(--orange); font:700 12px var(--sans); }
.ar-question legend b { font:600 16px/1.5 var(--sans); }
.ar-choices { margin-top:16px; margin-left:40px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.ar-choice { position:relative; min-height:74px; padding:12px; display:flex; flex-direction:column; justify-content:space-between; gap:8px; border:1px solid rgba(255,248,236,.28); cursor:pointer; transition:background .15s ease,border-color .15s ease; }
.ar-choice:hover { background:rgba(245,160,0,.1); border-color:var(--orange); }
/* The radio is the accessible control and the label is the visible one, so the
   input is taken out of the layout without display:none — which would drop it
   from the tab order and from the arrow-key behaviour a radio group is
   expected to have. */
.ar-choice input { position:absolute; width:1px; height:1px; opacity:0; }
.ar-choice i { color:rgba(255,248,236,.4); font:700 11px var(--sans); font-style:normal; }
.ar-choice span { font:600 13px/1.3 var(--sans); }
.ar-choice:has(input:checked),.ar-choice.is-chosen { background:var(--orange); border-color:var(--orange); color:var(--ink); }
.ar-choice:has(input:checked) i,.ar-choice.is-chosen i { color:rgba(10,10,10,.55); }
.ar-choice:has(input:focus-visible) { outline:2px solid var(--cream); outline-offset:2px; }
.ar-quiz-nav { margin-top:30px; display:flex; align-items:center; gap:20px; }
.ar-quiz-nav .button { margin-left:auto; box-shadow:none; border-color:var(--orange); }
.ar-quiz-nav .button:disabled { opacity:.45; cursor:default; transform:none; }
.ar-back { padding:0; background:none; border:0; color:rgba(255,248,236,.6); font:700 11px var(--sans); letter-spacing:.06em; cursor:pointer; }
.ar-back:hover { color:var(--orange); }
.ar-quiz-hint { margin:0; color:rgba(255,248,236,.45); font-size:11px; }

.ar-results { padding:clamp(24px,3.4vw,48px); }
.ar-score-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; padding-bottom:30px; border-bottom:1px solid rgba(255,248,236,.2); }
.ar-score-head .kicker { margin:0; }
.ar-composite { display:flex; align-items:center; gap:16px; }
.ar-composite strong { color:var(--orange); font:700 clamp(64px,8vw,104px)/.8 var(--display); letter-spacing:-.07em; }
.ar-composite span { color:rgba(255,248,236,.5); font:700 9px/1.5 var(--sans); letter-spacing:.11em; }
.ar-axes { margin:32px 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.ar-axes article { padding:24px; border:1px solid rgba(255,248,236,.28); }
.ar-axes article>span { color:var(--orange); font:700 9px var(--sans); letter-spacing:.12em; }
.ar-axes strong { display:block; margin:10px 0 4px; font:700 46px/.9 var(--display); letter-spacing:-.05em; }
.ar-axes b { display:block; margin-bottom:16px; font:700 19px var(--display); letter-spacing:-.02em; }
.ar-axes p { margin:14px 0 0; color:rgba(255,248,236,.6); font-size:13px; line-height:1.6; }
.ar-meter { height:6px; background:rgba(255,248,236,.15); }
.ar-meter span { display:block; height:100%; background:var(--orange); }
.ar-breakdown,.ar-advice { padding-top:28px; border-top:1px solid rgba(255,248,236,.2); }
.ar-breakdown h3,.ar-advice h3 { margin:0 0 20px; font:700 20px var(--display); letter-spacing:-.03em; }
.ar-breakdown-row { padding:11px 0; display:grid; grid-template-columns:minmax(0,1fr) 130px 54px; gap:18px; align-items:center; }
.ar-breakdown-label { font-size:13px; font-weight:600; overflow-wrap:anywhere; }
.ar-breakdown-row b { color:rgba(255,248,236,.6); font:700 12px var(--sans); text-align:right; }
.ar-advice { margin-top:28px; }
.ar-advice-lede { max-width:700px; margin:0 0 24px; color:rgba(255,248,236,.62); font-size:14px; line-height:1.65; }
.ar-advice ol { margin:0; padding:0; list-style:none; counter-reset:advice; }
.ar-advice li { padding:20px 0 20px 46px; position:relative; counter-increment:advice; border-top:1px solid rgba(255,248,236,.14); }
.ar-advice li::before { content:counter(advice,decimal-leading-zero); position:absolute; left:0; top:20px; color:var(--orange); font:700 12px var(--sans); }
.ar-advice strong { display:block; font:600 15px/1.45 var(--sans); }
.ar-advice small { display:block; margin:6px 0 10px; color:var(--orange); font:700 8px var(--sans); letter-spacing:.1em; text-transform:uppercase; }
.ar-advice p { max-width:720px; margin:0; color:rgba(255,248,236,.62); font-size:13px; line-height:1.65; }
.ar-results-actions { margin-top:34px; padding-top:26px; display:flex; flex-wrap:wrap; align-items:center; gap:18px; border-top:1px solid rgba(255,248,236,.2); }
.ar-restart { padding:0; background:none; border:0; color:rgba(255,248,236,.55); font:700 11px var(--sans); letter-spacing:.06em; text-decoration:underline; cursor:pointer; }
.ar-restart:hover { color:var(--orange); }

.ar-aside { padding:clamp(24px,3vw,34px); border:1px solid var(--ink); background:var(--paper); }
.ar-aside h2 { margin:0 0 14px; font:700 24px var(--display); letter-spacing:-.035em; }
.ar-aside>p { margin:0 0 24px; color:rgba(10,10,10,.66); font-size:13px; line-height:1.65; }
.ar-aside dt { margin-top:18px; padding-top:16px; border-top:1px solid rgba(10,10,10,.22); font:700 13px var(--sans); }
.ar-aside dd { margin:7px 0 0; color:rgba(10,10,10,.62); font-size:12px; line-height:1.6; }

/* Printing is the "save my results" path — the page offers no PDF, because a
   generated file would need somewhere to be generated. Everything but the
   result itself goes, and the console flips to ink-on-white: a dark panel
   prints as a solid block of toner and swallows the numbers. */
@media print {
  .ar-page .site-header,.ar-hero,.ar-what,.ar-aside,.closing,.ar-page footer,.ar-gate,.ar-quiz,.ar-results-actions,.ar-page .orva-try-bar { display:none !important; }
  .ar-shell { padding:0; display:block; }
  .ar-console { border:0; box-shadow:none; background:#fff; color:#000; }
  .ar-results { padding:0; }
  .ar-composite strong,.ar-axes article>span,.ar-advice small,.ar-advice li::before { color:#000; }
  .ar-composite span,.ar-axes p,.ar-advice p,.ar-advice-lede,.ar-breakdown-row b { color:#333; }
  .ar-axes article,.ar-score-head,.ar-breakdown,.ar-advice,.ar-advice li { border-color:#999; }
  .ar-meter { background:#ddd; }
  .ar-meter span { background:#555; }
  .ar-axes,.ar-advice li { break-inside:avoid; }
}

@media (max-width:1100px) {
  .ar-shell { grid-template-columns:1fr; }
  .ar-console { box-shadow:8px 8px 0 var(--orange); }
  .ar-category-grid { grid-template-columns:repeat(2,1fr); }
  .ar-category-grid article:nth-child(2) { border-right:0; }
  .ar-category-grid article:nth-child(-n+2) { border-bottom:1px solid var(--ink); }
}
@media (max-width:980px) {
  .ft-hero { min-height:auto; padding:80px 20px; grid-template-columns:1fr; }
  .ft-hero .library-jumps { margin-top:34px; }
  .ft-tool-list { margin-left:0; }
  .ft-tool { grid-template-columns:1fr; gap:20px; }
  .ft-tool:hover { padding-inline:0; }
  .ft-tool-meta { flex-direction:row; align-items:center; gap:14px; }
  .ft-tool-go { justify-content:flex-start; }
  .ar-category-grid,.ar-what-heading { margin-left:0; }
  .ar-what-heading { grid-template-columns:1fr; }
  .ar-what-heading .section-label { writing-mode:initial; transform:none; }
}
@media (max-width:680px) {
  .ft-hero h1 { font-size:56px; }
  .ar-hero { padding:78px 20px 66px; }
  .ar-hero h1 { font-size:46px; }
  .ar-hero-facts div { min-width:0; flex:1 1 100%; border-right:0; border-bottom:1px solid rgba(255,248,236,.3); }
  .ar-hero-facts div:last-child { border-bottom:0; }
  .ar-what { padding:70px 20px 10px; }
  .ar-category-grid { grid-template-columns:1fr; }
  .ar-category-grid article { min-height:auto; border-right:0; border-bottom:1px solid var(--ink); }
  .ar-category-grid article:last-child { border-bottom:0; }
  .ar-category-grid h3 { margin-top:28px; }
  .ar-shell { padding:56px 20px 76px; }
  /* Two columns of choices rather than four: at four, "Paper or email" wraps to
     three lines and the row grows taller than the question it belongs to. */
  .ar-choices { margin-left:0; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ar-question legend { grid-template-columns:22px 1fr; }
  .ar-axes { grid-template-columns:1fr; }
  .ar-breakdown-row { grid-template-columns:1fr auto; gap:8px 14px; }
  .ar-breakdown-row .ar-meter { grid-column:1/-1; }
  .ar-gate>form>div { grid-template-columns:1fr; }
  .ar-gate>form button { padding:16px 24px; }
}

/* The free-tools banner in the home page's resources grid. Spans both columns
   and sits above the two cards rather than becoming a third one: the grid is
   two-up, and a third card would either orphan itself in the second row or
   force all three down to a third of the width, where their headlines stop
   fitting. Dark against the orange and paper cards below so the newest thing
   on the page reads as the first thing in the section. */
.resource-card--tools { grid-column:1/-1; min-height:auto; background:var(--ink); color:var(--cream); }
.resource-card--tools:hover { box-shadow:9px 9px 0 var(--orange); }
.resource-card--tools h3 { max-width:900px; margin:26px 0 14px; font-size:clamp(30px,3.4vw,48px); }
.resource-card--tools>p { max-width:800px; color:rgba(255,248,236,.68); }
.resource-card--tools ul { margin:26px 0 24px; display:flex; flex-wrap:wrap; gap:10px 30px; border-top-color:rgba(255,248,236,.32); padding-top:20px; }
.resource-card--tools li { padding:0; border-bottom:0; color:rgba(255,248,236,.82); }
@media (max-width:640px) { .resource-card--tools h3 { margin-top:22px; font-size:34px; } }

/* Public errors share Orva branding without signed-in portal context. */
.public-error { min-height: 65vh; padding: clamp(60px, 9vw, 130px) max(20px, 6vw); background: var(--ink); color: var(--cream); }
.public-error h1 { max-width: 950px; margin: 25px 0; font: 700 clamp(38px, 6vw, 82px)/1.02 var(--display); letter-spacing: -.04em; overflow-wrap: anywhere; }
.public-error > p:not(.kicker) { max-width: 650px; font-size: 18px; line-height: 1.6; }
.public-error-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 34px; }
