/* Local webfonts — self-hosted from assets/fonts; no Google Fonts request. */
@font-face {
  font-family: "Archivo";
  src: url("assets/fonts/archivo/archivo-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
}

@font-face {
  font-family: "Chakra Petch";
  src: url("assets/fonts/chakra-petch/chakra-petch-500.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Chakra Petch";
  src: url("assets/fonts/chakra-petch/chakra-petch-600.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Chakra Petch";
  src: url("assets/fonts/chakra-petch/chakra-petch-700.woff2") format("woff2");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("assets/fonts/jetbrains-mono/jetbrains-mono-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
}

:root {
  --bg: #0a0d11;
  --bg-soft: #10141a;
  --panel: rgba(20, 25, 32, 0.76);
  --panel-solid: #141920;
  --line: rgba(236, 241, 247, 0.12);
  --line-strong: rgba(236, 241, 247, 0.22);
  --text: #f3f5f7;
  --muted: #9da7b5;
  --dim: #6d7785;
  --accent: #f4f6f8;
  --green: #89f0c0;
  --amber: #f1cf87;
  --red: #ff8f91;
  --radius: 24px;
  --shadow: 0 28px 80px rgba(0, 0, 0, 0.34);
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --sans: "Archivo", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 75% 6%, rgba(100, 113, 131, 0.12), transparent 32rem),
    radial-gradient(circle at 18% 36%, rgba(64, 76, 92, 0.08), transparent 38rem),
    var(--bg);
  color: var(--text);
  font-family: var(--sans);
  overflow-x: clip;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent 0, rgba(255,255,255,.018) 50%, transparent 100%);
  opacity: .55;
  z-index: -1;
}
::selection { background: rgba(244,246,248,.92); color: #0a0d11; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
img { max-width: 100%; display: block; }

#mesh-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -2;
  opacity: .85;
}
.noise {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .024;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
}

.section-shell { width: min(1240px, calc(100% - 48px)); margin: 0 auto; }
.section { padding: 136px 0; position: relative; }
.kicker, .eyebrow, .feature-number, .app-top, .stack-label, .maturity-head, .status-badge, .timeline-step small {
  font-family: var(--mono);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.kicker { color: var(--muted); font-size: .74rem; display: inline-block; margin-bottom: 28px; }

.site-header {
  position: fixed;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  width: min(1240px, calc(100% - 32px));
  height: 68px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 12px 0 18px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  background: rgba(10,13,17,.76);
  backdrop-filter: blur(18px) saturate(130%);
  z-index: 20;
  transition: .3s ease;
  box-shadow: 0 14px 50px rgba(0,0,0,.22);
}
.site-header.scrolled { top: 10px; background: rgba(10,13,17,.9); }
.brand { width: 224px; height: 50px; display: flex; align-items: center; gap: 12px; overflow: visible; }
.brand-mark { width: 46px; height: 46px; object-fit: contain; flex: 0 0 auto; }
.brand-wordmark { width: 158px; height: 46px; object-fit: contain; flex: 0 0 auto; }
.site-header nav { display: flex; gap: 34px; font-size: .83rem; color: #bbc2cb; }
.site-header nav a { transition: color .2s ease; }
.site-header nav a:hover { color: white; }
.site-header > .button { justify-self: end; }
.nav-toggle { display: none; background: none; border: 0; width: 44px; height: 44px; padding: 11px; }
.nav-toggle span { display: block; height: 1px; background: white; margin: 7px 0; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 52px;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: 12px;
  cursor: pointer;
  font-weight: 700;
  font-size: .9rem;
  transition: transform .2s ease, border-color .2s ease, background .2s ease, color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button-primary { background: #f4f6f8; color: #0b0e12; box-shadow: 0 12px 30px rgba(255,255,255,.12); }
.button-primary:hover { background: white; }
.button-ghost { border-color: var(--line-strong); background: rgba(255,255,255,.025); color: #e8ecf1; }
.button-ghost:hover { border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.06); }
.button-small { min-height: 42px; padding: 0 17px; border-radius: 10px; font-size: .78rem; }
.button-text { padding: 0 4px; min-height: 44px; color: #c7ced7; border-bottom: 1px solid rgba(255,255,255,.18); border-radius: 0; }
.button-text:hover { color: white; }

.hero {
  min-height: 940px;
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  gap: 78px;
  align-items: center;
  padding-top: 130px;
  position: relative;
}
.hero::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 44px;
  width: 1px;
  height: 110px;
  background: linear-gradient(transparent, rgba(255,255,255,.38), transparent);
}
.hero-copy { position: relative; z-index: 2; padding: 40px 0; }
.eyebrow { display: flex; align-items: center; gap: 10px; color: #aeb6c0; font-size: .7rem; margin-bottom: 30px; }
.status-dot { width: 7px; height: 7px; background: var(--green); border-radius: 50%; box-shadow: 0 0 0 6px rgba(137,240,192,.09), 0 0 20px rgba(137,240,192,.45); }
.hero h1 { margin: 0; font-size: clamp(4rem, 6.2vw, 6.7rem); line-height: .94; letter-spacing: -.065em; max-width: 760px; }
.hero h1 span { color: #9ca6b3; font-weight: 500; }
.hero-lede { margin: 34px 0 0; max-width: 650px; color: #aeb7c2; font-size: 1.22rem; line-height: 1.72; }
.hero-lede strong { color: #f6f8fa; }
.hero-actions { display: flex; gap: 24px; align-items: center; margin-top: 42px; }
.hero-proof { margin-top: 70px; padding-top: 28px; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3,1fr); gap: 25px; }
.hero-proof div { display: grid; gap: 7px; }
.hero-proof strong { font-size: .86rem; }
.hero-proof span { color: var(--dim); font-size: .72rem; line-height: 1.45; }

.hero-visual { min-width: 0; position: relative; padding: 38px 0 0; }
.visual-frame {
  position: relative;
  border: 1px solid rgba(255,255,255,.13);
  background: linear-gradient(145deg, rgba(27,33,41,.88), rgba(10,13,17,.88));
  border-radius: 30px;
  padding: 22px;
  box-shadow: var(--shadow), inset 0 1px rgba(255,255,255,.07);
  overflow: hidden;
}
.visual-frame::before { content:""; position:absolute; width:340px; height:340px; right:-110px; top:-150px; border-radius:50%; background:rgba(255,255,255,.06); filter:blur(70px); }
.visual-topline { height: 44px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); font: 500 .66rem/1 var(--mono); color: #c7cdd5; letter-spacing: .12em; }
.signal { display: flex; gap: 4px; align-items: end; height: 14px; }
.signal i { width: 2px; background: #b9c1ca; border-radius: 2px; animation: signal 1.2s ease-in-out infinite alternate; }
.signal i:nth-child(1){height:4px}.signal i:nth-child(2){height:7px;animation-delay:.15s}.signal i:nth-child(3){height:10px;animation-delay:.3s}.signal i:nth-child(4){height:13px;animation-delay:.45s}
@keyframes signal { from{opacity:.28} to{opacity:1} }
#hero-mesh { width: 100%; height: auto; display: block; }
.mesh-grid path { stroke: rgba(255,255,255,.035); stroke-width: 1; }
.mesh-edges line { stroke: url(#edgeFade); stroke-width: 1.4; }
.break-edge { animation: edgeFail 9s infinite; }
@keyframes edgeFail { 0%,28%,82%,100%{opacity:.72;stroke-dasharray:0} 35%,75%{opacity:.15;stroke-dasharray:5 9} }
.reroute-path path { fill:none; stroke:#d8dfe7; stroke-width:2; stroke-dasharray:7 9; opacity:0; animation: reroute 9s infinite; filter:url(#glow); }
@keyframes reroute { 0%,35%{opacity:0;stroke-dashoffset:100} 43%,76%{opacity:.9;stroke-dashoffset:0} 83%,100%{opacity:0} }
.mesh-packets circle { fill:#f8fafc; filter:url(#glow); }
/* Packet visibility is synchronized with the 8-second link-failure cycle.
   No packet uses the alternate path before that path is visible. */
.direct-packet { animation: directPacketVisibility 9s infinite; }
.reroute-packet { opacity:0; animation: reroutePacketVisibility 9s infinite; }
.reroute-packet-delay { animation-delay:.18s; }
@keyframes directPacketVisibility {
  0%,28% { opacity:1; }
  35%,80% { opacity:0; }
  86%,100% { opacity:1; }
}
@keyframes reroutePacketVisibility {
  0%,43% { opacity:0; }
  47%,74% { opacity:1; }
  80%,100% { opacity:0; }
}
.mesh-nodes .node-ring { fill:#11161c; stroke:#727e8d; stroke-width:1.2; }
.mesh-nodes .node-core { fill:#f7f9fb; filter:url(#glow); }
.node-primary .node-ring { stroke:#f7f9fb; stroke-width:1.5; }
.node-primary::after { content:""; }
.node-failing { animation: nodeFail 9s infinite; transform-box:fill-box; transform-origin:center; }
.node-failing path { stroke:#ff8f91; stroke-width:2; opacity:0; }
@keyframes nodeFail { 0%,28%,83%,100%{opacity:1} 35%,75%{opacity:.23} }
.node-failing path { animation: crossFail 9s infinite; }
@keyframes crossFail { 0%,30%,81%,100%{opacity:0} 38%,75%{opacity:1} }
.mesh-labels text { fill:#6f7b89; font:500 10px var(--mono); letter-spacing:.08em; }
.fault-label { fill:#ff8f91!important; opacity:0; animation: labelFail 9s infinite; }
.route-label { fill:#cdd5df!important; opacity:0; animation: routeLabel 9s infinite; }
@keyframes labelFail { 0%,30%,81%,100%{opacity:0} 38%,75%{opacity:1} }
@keyframes routeLabel { 0%,41%,80%,100%{opacity:0} 48%,74%{opacity:1} }
.visual-status { border-top: 1px solid var(--line); padding-top: 18px; display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.visual-status div { display: grid; gap: 7px; }
.visual-status span { font: 500 .56rem var(--mono); letter-spacing:.1em; color:#65717f; }
.visual-status strong { font: 600 .64rem var(--mono); letter-spacing:.08em; color:#c9d0d8; }
.visual-status .online { color:var(--green); }


.trust-strip { height: 76px; display:flex; align-items:center; justify-content:space-between; color:#6f7986; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font:500 .62rem var(--mono); letter-spacing:.12em; }
.trust-strip i { width:3px; height:3px; background:#4f5966; border-radius:50%; }

.section-heading { display:grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items:end; margin-bottom:70px; }
.section-heading.compact { margin-bottom:52px; }
.section-heading h2, .architecture-copy h2, .sovereignty-copy h2, .contact-copy h2 { margin:0; font-size:clamp(2.7rem,4.5vw,5rem); line-height:1.02; letter-spacing:-.055em; }
.section-heading p, .architecture-copy > p, .sovereignty-copy > p { margin:0; color:#9fa9b5; font-size:1.05rem; line-height:1.78; max-width:590px; }

.capability-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.feature-card { min-height:420px; position:relative; border:1px solid var(--line); border-radius:var(--radius); padding:34px; background:linear-gradient(145deg, rgba(22,27,34,.86), rgba(13,17,22,.72)); overflow:hidden; transition:.35s ease; }
.feature-card:hover { border-color:rgba(255,255,255,.25); transform:translateY(-4px); box-shadow:0 26px 70px rgba(0,0,0,.22); }
.feature-card::before { content:""; position:absolute; inset:0; background:linear-gradient(120deg,transparent 50%,rgba(255,255,255,.035)); pointer-events:none; }
.feature-card-large { min-height:480px; }
.feature-number { color:#626d7a; font-size:.66rem; }
.feature-card h3 { margin:124px 0 14px; font-size:1.72rem; letter-spacing:-.035em; }
.feature-card p { margin:0; max-width:540px; color:#98a3af; line-height:1.72; font-size:.95rem; }
.feature-meta { position:absolute; left:34px; right:34px; bottom:30px; padding-top:18px; border-top:1px solid var(--line); display:flex; justify-content:space-between; color:#6d7785; font:500 .61rem var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.feature-icon { position:absolute; top:38px; right:30px; width:190px; height:132px; }
.feature-diagram svg { width:100%;height:100%;display:block;overflow:visible; }
.feature-diagram path,.feature-diagram circle,.feature-diagram rect { vector-effect:non-scaling-stroke; }
.feature-diagram .mini-edges path { fill:none;stroke:rgba(213,221,230,.23);stroke-width:1.1; }
.feature-diagram .mini-nodes circle,.secure-node circle:first-child { fill:#11161c;stroke:#84909e;stroke-width:1.1; }
.feature-diagram .mini-nodes circle:nth-child(3),.secure-node circle:last-child,.bearer-core circle:last-child { fill:#f7f9fb;filter:drop-shadow(0 0 7px rgba(255,255,255,.5)); }
.mini-failed-link { fill:none;stroke:rgba(255,143,145,.38);stroke-width:1.2;stroke-dasharray:4 5; }
.mini-fault path,.reject-cross { fill:none;stroke:var(--red);stroke-width:1.6;stroke-linecap:round; }
.mini-reroute { fill:none;stroke:#e3e9ef;stroke-width:1.45;stroke-dasharray:5 6;animation:miniDash 7s linear infinite; }
.mini-packet,.identity-packet,.bearer-packet,.secure-packet { fill:#fff;filter:drop-shadow(0 0 6px rgba(255,255,255,.7)); }
@keyframes miniDash { to{stroke-dashoffset:-80} }
.identity-badge path,.identity-badge circle { fill:none;stroke:rgba(231,237,243,.62);stroke-width:1.2; }
.identity-link { fill:none;stroke:#dfe6ed;stroke-width:1.2;stroke-dasharray:4 5; }
.gps-disabled > path:first-child,.gps-disabled circle { fill:none;stroke:rgba(145,156,168,.42);stroke-width:1.1; }
.gps-disabled .gps-slash { fill:none;stroke:rgba(255,143,145,.72);stroke-width:1.6;stroke-linecap:round; }
.hash-marks path { fill:none;stroke:rgba(255,255,255,.26);stroke-width:1; }
.bearer-lines path { fill:none;stroke:rgba(213,222,231,.3);stroke-width:1.1;stroke-dasharray:4 5; }
.bearer-core circle:first-child { fill:rgba(255,255,255,.025);stroke:rgba(239,244,249,.72);stroke-width:1.2; }
.bearer-endpoint rect { fill:#10151b;stroke:rgba(216,224,232,.38);stroke-width:1; }
.bearer-endpoint text { fill:#aeb8c3;font:600 8px var(--mono);text-anchor:middle;letter-spacing:.04em; }
.bearer-sdr rect { stroke:rgba(255,255,255,.75); }
.secure-link path { fill:none;stroke:rgba(223,230,237,.4);stroke-width:1.2;stroke-dasharray:5 5; }
.mini-lock rect,.mini-lock path,.mini-lock circle { fill:#11161c;stroke:#e2e8ee;stroke-width:1.2; }
.rekey-ring { transform-origin:95px 64px;animation:rekeyRotate 8s linear infinite; }
.rekey-ring path { fill:none;stroke:rgba(188,199,211,.43);stroke-width:1;stroke-linecap:round;stroke-linejoin:round; }
@keyframes rekeyRotate { to{transform:rotate(360deg)} }
.rejected-path > path:first-child { fill:none;stroke:rgba(255,255,255,.18);stroke-width:1;stroke-dasharray:3 5; }
.rejected-path circle { fill:rgba(255,143,145,.7); }

.architecture-section { display:grid; grid-template-columns:.86fr 1.14fr; gap:100px; align-items:center; }
.architecture-copy h2 { margin-bottom:26px; }
.check-list { list-style:none; padding:0; margin:44px 0 0; border-top:1px solid var(--line); }
.check-list li { display:grid; grid-template-columns:45px 1fr; gap:18px; padding:20px 0; border-bottom:1px solid var(--line); }
.check-list li > span { font:500 .62rem var(--mono); color:#66717e; padding-top:4px; }
.check-list div { display:grid;gap:5px; }
.check-list strong { font-size:.92rem; }
.check-list small { color:#7f8a97; font-size:.8rem; line-height:1.5; }
.stack-diagram { border:1px solid var(--line); border-radius:30px; padding:28px; background:rgba(13,17,22,.72); box-shadow:var(--shadow); }
.stack-label { font-size:.59rem;color:#687381;margin:4px 0 24px; }
.stack-layer { min-height:100px;border:1px solid var(--line);border-radius:16px;padding:22px;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:16px;background:rgba(255,255,255,.015); }
.stack-layer strong { display:block;font:600 .75rem var(--mono);letter-spacing:.08em; }
.stack-layer small { color:#6f7a87;display:block;margin-top:8px;font-size:.72rem; }
.layer-index { font:500 .63rem var(--mono);color:#606b78; }
.layer-pills { display:flex;gap:6px; }
.layer-pills i { font:500 .55rem var(--mono);font-style:normal;padding:7px;border:1px solid var(--line);border-radius:6px;color:#8e99a6; }
.core-layer { border-color:rgba(255,255,255,.3);box-shadow:inset 0 0 45px rgba(255,255,255,.025); }
.core-pulse { display:flex;gap:6px; }
.core-pulse span { width:7px;height:7px;border-radius:50%;background:#f7f9fb;animation:pulseDots 1.4s infinite ease-in-out; }
.core-pulse span:nth-child(2){animation-delay:.18s}.core-pulse span:nth-child(3){animation-delay:.36s}
@keyframes pulseDots { 0%,100%{opacity:.2;transform:scale(.75)}50%{opacity:1;transform:scale(1)} }
.stack-connector { height:38px;display:flex;justify-content:center;gap:74px; }
.stack-connector i { width:1px;background:linear-gradient(rgba(255,255,255,.32),rgba(255,255,255,.06)); }
.bearer-row { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:13px; }
.bearer-row div { min-height:78px;border:1px solid var(--line);border-radius:12px;padding:15px;display:flex;flex-direction:column;justify-content:center;gap:6px;background:#0e1217; }
.bearer-row span { font:600 .64rem var(--mono);letter-spacing:.07em; }
.bearer-row small { color:#66717e;font-size:.63rem; }
.bearer-row .accent-bearer { border-color:rgba(255,255,255,.34);background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.01)); }
.stack-foot { display:flex;justify-content:space-between;color:#58636f;font:500 .56rem var(--mono);text-transform:uppercase;letter-spacing:.08em;padding:22px 3px 0; }

.applications-section { background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,0)); border-top:1px solid rgba(255,255,255,.04); }
.application-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:18px; }
.application-card { min-height:535px;border:1px solid var(--line);border-radius:var(--radius);padding:30px;background:rgba(15,19,25,.82);position:relative;overflow:hidden;transition:.35s ease; }
.application-card:hover { border-color:rgba(255,255,255,.24);transform:translateY(-4px);box-shadow:0 26px 70px rgba(0,0,0,.22); }
.app-top { display:flex;justify-content:space-between;color:#687380;font-size:.6rem; }
.app-visual { height:250px;margin:18px -5px 4px; }
.app-visual svg { width:100%;height:100%;display:block; }
.app-system-visual { position:relative;border:1px solid rgba(255,255,255,.075);border-radius:17px;overflow:hidden;background:radial-gradient(circle at 70% 25%,rgba(255,255,255,.055),transparent 35%),linear-gradient(145deg,rgba(255,255,255,.018),rgba(0,0,0,.11)); }
.app-system-visual::after { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.022),transparent 70%); }
.app-grid-lines path { fill:none;stroke:rgba(255,255,255,.034);stroke-width:1; }
.app-link path,.app-link { fill:none;stroke:#dce3ea;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round; }
.app-link-primary { stroke-dasharray:7 8;animation:dash 11s linear infinite; }
.app-link-secondary { stroke:rgba(190,201,213,.42);stroke-dasharray:4 8;animation:dash 14s linear infinite reverse; }
.app-system-visual .terrain { fill:rgba(255,255,255,.026);stroke:rgba(255,255,255,.1); }
.app-system-visual .app-node > circle:first-child,.data-packet { fill:#f7f9fb;filter:drop-shadow(0 0 7px rgba(255,255,255,.72)); }
.app-system-visual .pulse-ring { fill:none!important;stroke:rgba(238,243,248,.36);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:appPulse 2.8s ease-out infinite; }
.app-system-visual .pulse-ring.delay { animation-delay:1.25s; }
@keyframes appPulse { 0%{transform:scale(.45);opacity:.9}100%{transform:scale(1.85);opacity:0} }
.app-system-visual .dim-packet { opacity:.55; }
.app-system-visual .ground-control path,.app-system-visual .ground-control rect,.app-system-visual .drone path,.app-system-visual .drone circle,.app-system-visual .ugv path,.app-system-visual .ugv rect,.app-system-visual .unit-person path,.app-system-visual .unit-person circle,.app-system-visual .command-unit path,.app-system-visual .command-unit circle:first-of-type,.app-system-visual .vehicle path,.app-system-visual .vehicle circle,.app-system-visual .site path,.app-system-visual .site rect,.app-system-visual .site circle:first-of-type,.app-system-visual .portable-relay path,.app-system-visual .portable-relay rect,.app-system-visual .responder path,.app-system-visual .responder circle:first-of-type,.app-system-visual .disabled-tower > path:first-child { fill:rgba(10,13,17,.78);stroke:#d8e0e8;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round; }
.app-system-visual .floating-unit { transform-box:fill-box;transform-origin:center;animation:floatUnit 4.5s ease-in-out infinite; }
@keyframes floatUnit { 0%,100%{translate:0 0}50%{translate:0 -7px} }
.app-system-visual .contours path,.app-system-visual .response-map path { fill:none;stroke:rgba(255,255,255,.06);stroke-width:1; }
.app-system-visual .tactical-links path,.app-system-visual .response-links path { fill:none;stroke:rgba(220,228,236,.58);stroke-width:1.25;stroke-dasharray:5 7;animation:dash 12s linear infinite; }
.app-system-visual .primary-backbone { fill:none;stroke:rgba(255,255,255,.16);stroke-width:2;stroke-dasharray:10 7; }
.app-system-visual .fault-cross path,.app-system-visual .disabled-tower .fault-cross { fill:none;stroke:var(--red);stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 5px rgba(255,143,145,.35)); }
.app-system-visual .app-caption text { fill:#778391;font:500 9px var(--mono);letter-spacing:.09em; }
.app-system-visual .app-caption .fault-copy { fill:#c98286; }
.infrastructure-system .app-link-primary { stroke:rgba(220,228,236,.75); }
.response-system .disabled-tower { opacity:.58; }
.terrain { fill:rgba(255,255,255,.035);stroke:rgba(255,255,255,.12); }
.route-line { fill:none;stroke:#e5eaf0;stroke-width:1.5;stroke-dasharray:7 8;animation:dash 11s linear infinite; }
@keyframes dash { to{stroke-dashoffset:-120} }
.app-visual circle { fill:#f7f9fb; }
.drone path,.drone circle { fill:none;stroke:#e8edf2;stroke-width:1.5; }
.application-card h3 { margin:28px 0 12px;font-size:1.68rem;letter-spacing:-.035em; }
.application-card p { margin:0;color:#929da9;line-height:1.68;font-size:.92rem;max-width:540px; }
.application-card ul { list-style:none;padding:22px 0 0;margin:24px 0 0;border-top:1px solid var(--line);display:flex;gap:18px;flex-wrap:wrap; }
.application-card li { color:#67727f;font:500 .57rem var(--mono);text-transform:uppercase;letter-spacing:.08em; }
.app-mini-graphic { height:200px;margin-top:20px;position:relative;border-bottom:1px solid var(--line); }
.tactical-graphic i { position:absolute;width:12px;height:12px;border:1px solid #aeb7c1;border-radius:50%; }
.tactical-graphic i:nth-child(1){left:16%;top:50%}.tactical-graphic i:nth-child(2){left:36%;top:25%}.tactical-graphic i:nth-child(3){left:67%;top:36%}.tactical-graphic i:nth-child(4){left:82%;top:65%}
.tactical-graphic::before,.tactical-graphic::after { content:"";position:absolute;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.65),rgba(255,255,255,.05));transform-origin:left; }
.tactical-graphic::before{width:58%;left:17%;top:52%;transform:rotate(-14deg)}.tactical-graphic::after{width:48%;left:37%;top:29%;transform:rotate(21deg)}
.tactical-graphic span { position:absolute;left:55%;top:56%;width:8px;height:8px;background:white;border-radius:50%;box-shadow:0 0 18px rgba(255,255,255,.5); }
.infra-graphic i { position:absolute;bottom:25px;width:62px;border:1px solid rgba(255,255,255,.25);border-bottom:0; }
.infra-graphic i:nth-child(1){left:12%;height:94px}.infra-graphic i:nth-child(2){left:41%;height:145px}.infra-graphic i:nth-child(3){right:10%;height:70px}
.infra-graphic::before { content:"";position:absolute;left:15%;right:13%;top:45px;height:1px;background:rgba(255,255,255,.18);box-shadow:0 38px rgba(255,255,255,.1),0 76px rgba(255,255,255,.08); }
.infra-graphic span { position:absolute;width:8px;height:8px;border-radius:50%;background:white;left:49%;top:35px;box-shadow:0 0 20px rgba(255,255,255,.45); }
.response-graphic i { position:absolute;width:10px;height:10px;border-radius:50%;border:1px solid #aeb7c1; }
.response-graphic i:nth-child(1){left:15%;top:65%}.response-graphic i:nth-child(2){left:32%;top:28%}.response-graphic i:nth-child(3){right:34%;top:45%}.response-graphic i:nth-child(4){right:11%;top:22%}
.response-graphic::before { content:"";position:absolute;left:17%;right:14%;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:rotate(-11deg); }
.response-graphic span { position:absolute;left:48%;top:44%;width:26px;height:26px;border:1px solid rgba(255,255,255,.35);border-radius:50%;box-shadow:0 0 0 12px rgba(255,255,255,.025); }

.maturity-board { border:1px solid var(--line);border-radius:22px;overflow:hidden;background:rgba(13,17,22,.7); }
.maturity-row { display:grid;grid-template-columns:1.1fr .55fr 1.4fr;align-items:center;gap:22px;min-height:82px;padding:0 28px;border-bottom:1px solid var(--line); }
.maturity-row:last-child { border-bottom:0; }
.maturity-row strong { font-size:.92rem; }
.maturity-row p { color:#7d8895;margin:0;font-size:.82rem;line-height:1.5; }
.maturity-head { min-height:48px;color:#5e6976;font-size:.58rem;background:rgba(255,255,255,.018); }
.status-badge { justify-self:start;font-size:.55rem;padding:8px 10px;border-radius:7px;border:1px solid;white-space:nowrap; }
.status-live { color:var(--green);border-color:rgba(137,240,192,.26);background:rgba(137,240,192,.055); }
.status-test { color:var(--amber);border-color:rgba(241,207,135,.25);background:rgba(241,207,135,.05); }
.status-roadmap { color:#9da8b5;border-color:rgba(157,168,181,.24);background:rgba(157,168,181,.045); }
.metric-ribbon { margin-top:18px;border:1px solid var(--line);border-radius:22px;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.014); }
.metric-ribbon div { padding:28px;border-right:1px solid var(--line);display:grid;gap:9px; }
.metric-ribbon div:last-child { border-right:0; }
.metric-number { font:500 2.2rem var(--mono);letter-spacing:-.08em; }
.metric-ribbon div > span:last-child { color:#707b88;font-size:.7rem;line-height:1.5; }

.sovereignty-section { overflow:hidden;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);background:linear-gradient(90deg,rgba(255,255,255,.018),transparent 58%); }
.sovereignty-layout { display:grid;grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);gap:54px;align-items:center; }
.sovereignty-map { position:relative;min-width:0;margin-left:-6%;margin-right:-2%; }
.sovereignty-map::before { content:"";position:absolute;inset:12% 7%;border-radius:50%;background:rgba(255,255,255,.026);filter:blur(58px);pointer-events:none; }
.sovereignty-map img { position:relative;width:108%;max-width:none;height:auto;display:block;transform:translateX(-2%);filter:drop-shadow(0 28px 48px rgba(0,0,0,.22)); }
.sovereignty-copy h2 { margin-bottom:26px; }
.ownership-development { margin-top:20px!important;padding:17px 19px;border-left:1px solid rgba(255,255,255,.28);background:linear-gradient(90deg,rgba(255,255,255,.035),transparent);color:#d4dae1!important;font-size:.9rem!important;line-height:1.65!important; }
.sovereignty-points { margin-top:40px;display:grid;gap:14px; }
.sovereignty-points div { display:grid;grid-template-columns:38px 1fr;column-gap:16px;row-gap:4px;padding:18px 0;border-top:1px solid var(--line); }
.sovereignty-points div > span { grid-row:1 / 3;color:#5c6774;font:500 .6rem var(--mono);padding-top:3px; }
.sovereignty-points strong { font-size:.9rem; }
.sovereignty-points small { color:#74808d;font-size:.75rem;line-height:1.5; }

.timeline { position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding-top:42px; }
.timeline::before { content:"";position:absolute;left:0;right:0;top:50px;height:1px;background:linear-gradient(90deg,#e7ecf2 0 7%,rgba(255,255,255,.15) 28% 100%); }
.timeline-step { position:relative;padding:44px 32px 0 0;min-height:260px; }
.step-dot { position:absolute;top:2px;left:0;width:17px;height:17px;border:4px solid var(--bg);border-radius:50%;background:#56616e;box-shadow:0 0 0 1px rgba(255,255,255,.2); }
.timeline-step.is-current .step-dot { background:white;box-shadow:0 0 0 1px white,0 0 24px rgba(255,255,255,.35); }
.timeline-step small { color:#66717e;font-size:.57rem; }
.timeline-step h3 { font-size:1.2rem;margin:17px 0 11px;letter-spacing:-.025em; }
.timeline-step p { color:#778390;font-size:.8rem;line-height:1.62;margin:0;max-width:250px; }

.contact-section { padding-top:80px; }
.contact-card { min-height:390px;border:1px solid rgba(255,255,255,.18);border-radius:32px;padding:46px;display:grid;grid-template-columns:130px 1fr 310px;align-items:center;gap:46px;background:linear-gradient(135deg,rgba(35,42,51,.92),rgba(13,17,22,.95));box-shadow:var(--shadow);overflow:hidden;position:relative; }
.contact-card::after { content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.05);border-radius:50%;right:-220px;top:-240px;box-shadow:0 0 0 80px rgba(255,255,255,.012),0 0 0 160px rgba(255,255,255,.009); }
.contact-card > img { width:94px;height:132px;object-fit:contain;justify-self:center;position:relative;z-index:1;filter:drop-shadow(0 12px 26px rgba(0,0,0,.28)); }
.contact-copy { position:relative;z-index:1; }
.contact-copy h2 { font-size:clamp(2.4rem,3.7vw,4.4rem);max-width:690px; }
.contact-copy p { color:#9da7b3;line-height:1.7;max-width:680px;margin:22px 0 0; }
.contact-actions { position:relative;z-index:1;display:grid;gap:12px; }
.contact-actions small { color:#616d7a;font-size:.65rem;line-height:1.45;margin-top:5px; }
.contact-actions code { font-family:var(--mono); }

.site-footer { padding:72px 0 46px;display:grid;grid-template-columns:1.1fr .8fr .8fr;gap:80px;align-items:end; }
.footer-lockup { display:flex;align-items:center;gap:12px;width:232px;height:58px; }
.footer-lockup .footer-mark { width:50px;height:50px;object-fit:contain; }
.footer-lockup .footer-wordmark { width:166px;height:50px;object-fit:contain; }
.footer-brand p { color:#65707d;font-size:.76rem;max-width:360px;line-height:1.6;margin:14px 0 0; }
.footer-links { display:grid;grid-template-columns:repeat(2,1fr);gap:12px;color:#929ca8;font-size:.78rem; }
.footer-links a:hover { color:white; }
.footer-meta { display:grid;justify-items:end;gap:9px;color:#5d6875;font:500 .58rem var(--mono);text-transform:uppercase;letter-spacing:.08em; }
.toast { position:fixed;left:50%;bottom:28px;transform:translate(-50%,24px);opacity:0;background:#f4f6f8;color:#0b0e12;padding:13px 18px;border-radius:10px;font-weight:700;font-size:.8rem;z-index:50;transition:.3s ease;pointer-events:none; }
.toast.show { transform:translate(-50%,0);opacity:1; }

@media (max-width: 1080px) {
  .site-header { grid-template-columns:1fr auto; }
  .site-header nav,.site-header > .button { display:none; }
  .nav-toggle { display:block;justify-self:end; }
  .site-header.open { height:auto;min-height:68px;grid-template-rows:68px auto auto;padding-bottom:15px; }
  .site-header.open nav { display:grid;grid-column:1 / -1;width:100%;gap:0;border-top:1px solid var(--line); }
  .site-header.open nav a { padding:15px 0;border-bottom:1px solid var(--line); }
  .site-header.open > .button { display:inline-flex;grid-column:1 / -1;margin-top:14px;justify-self:start; }
  .hero { grid-template-columns:1fr;gap:20px;padding-top:150px;min-height:auto; }
  .hero-copy { max-width:850px; }
  .hero h1 { font-size:clamp(4rem,9vw,7rem); }
  .hero-visual { max-width:760px;margin:0 auto;width:100%; }
  .trust-strip { margin-top:80px;overflow:hidden;gap:30px;justify-content:flex-start;white-space:nowrap; }
  .architecture-section,.sovereignty-layout { grid-template-columns:1fr; }
  .sovereignty-map { margin:0 auto;max-width:850px;width:100%; }
  .sovereignty-map img { width:100%;transform:none; }
  .architecture-copy { max-width:760px; }
  .stack-diagram { max-width:850px;width:100%; }
  .contact-card { grid-template-columns:100px 1fr; }
  .contact-card > img { width:76px;height:108px; }
  .contact-actions { grid-column:2;max-width:400px; }
}

@media (max-width: 760px) {
  .section-shell { width:min(100% - 28px, 1240px); }
  .section { padding:92px 0; }
  .site-header { width:calc(100% - 20px);top:10px; }
  .brand { width:192px;gap:9px; }
  .brand-mark { width:42px;height:42px; }
  .brand-wordmark { width:140px;height:42px; }
  .hero { padding-top:120px; }
  .hero h1 { font-size:clamp(3.35rem,16vw,5.2rem);line-height:.96; }
  .hero-lede { font-size:1.02rem;line-height:1.65; }
  .hero-actions { align-items:flex-start;flex-direction:column;gap:10px; }
  .hero-proof { grid-template-columns:1fr;gap:18px;margin-top:48px; }
  .hero-proof div { grid-template-columns:1.1fr 1fr; }
  .visual-frame { padding:14px;border-radius:22px; }
  .visual-status { grid-template-columns:1fr 1fr; }
  .visual-status div:last-child { display:none; }
  .trust-strip { height:64px;font-size:.55rem; }
  .section-heading { grid-template-columns:1fr;gap:24px;margin-bottom:48px; }
  .section-heading h2,.architecture-copy h2,.sovereignty-copy h2,.contact-copy h2 { font-size:clamp(2.65rem,13vw,4.3rem); }
  .capability-grid,.application-grid { grid-template-columns:1fr; }
  .feature-card,.feature-card-large { min-height:430px;padding:26px; }
  .feature-card h3 { margin-top:140px;font-size:1.5rem; }
  .feature-icon { top:38px;right:14px;width:178px;height:124px; }
  .feature-meta { left:26px;right:26px; }
  .architecture-section { gap:60px; }
  .stack-diagram { padding:16px; }
  .stack-layer { grid-template-columns:35px 1fr;min-height:108px;padding:16px; }
  .layer-pills,.core-pulse { grid-column:2; }
  .bearer-row { grid-template-columns:repeat(2,1fr); }
  .stack-foot { gap:16px; }
  .application-card { min-height:510px;padding:24px; }
  .app-visual { height:220px;margin-left:-8px;margin-right:-8px; }
  .maturity-board { overflow-x:auto; }
  .maturity-row { min-width:760px; }
  .metric-ribbon { grid-template-columns:repeat(2,1fr); }
  .metric-ribbon div:nth-child(2) { border-right:0; }
  .metric-ribbon div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .timeline { grid-template-columns:1fr;padding-left:18px; }
  .timeline::before { left:25px;right:auto;top:0;bottom:0;width:1px;height:auto;background:linear-gradient(#e7ecf2 0 3%,rgba(255,255,255,.15) 20% 100%); }
  .timeline-step { padding:0 0 46px 52px;min-height:0; }
  .step-dot { top:2px;left:0; }
  .contact-card { grid-template-columns:1fr;gap:28px;padding:30px; }
  .contact-card > img { width:68px;height:96px;justify-self:start; }
  .contact-actions { grid-column:1; }
  .site-footer { grid-template-columns:1fr;gap:38px;padding-top:50px; }
  .footer-meta { justify-items:start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
  #mesh-canvas { display:none; }
}


/* v5: customer-facing applications, ownership and briefing form */

.app-visual { position:relative; }
.scenario-chip { position:absolute;z-index:3;top:10px;right:10px;padding:7px 9px;border:1px solid rgba(255,255,255,.11);border-radius:7px;background:rgba(9,12,16,.72);backdrop-filter:blur(8px);color:#73808d;font:500 .49rem var(--mono);letter-spacing:.09em; }
.app-link-degraded { fill:none;stroke:var(--red);stroke-width:1.3;stroke-dasharray:5 8;opacity:.45; }
.app-fault path { stroke:var(--red);stroke-width:2;fill:none; }
.route-copy { fill:#cbd3dc!important; }

.contact-section { padding:112px 0 90px; }
.contact-layout { display:grid;grid-template-columns:.86fr 1.14fr;gap:22px;align-items:stretch; }
.contact-intro,.briefing-form { position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.15);border-radius:30px;background:linear-gradient(145deg,rgba(29,35,43,.9),rgba(12,16,21,.94));box-shadow:var(--shadow); }
.contact-intro { padding:48px;display:flex;flex-direction:column;align-items:flex-start; }
.contact-intro::after { content:"";position:absolute;width:390px;height:390px;right:-220px;bottom:-250px;border-radius:50%;border:1px solid rgba(255,255,255,.05);box-shadow:0 0 0 64px rgba(255,255,255,.012),0 0 0 128px rgba(255,255,255,.007); }
.contact-lockup { position:relative;z-index:1;display:flex;align-items:center;gap:16px;width:min(330px,100%);height:76px;margin-bottom:34px; }
.contact-lockup .contact-mark { width:68px;height:68px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 12px 26px rgba(0,0,0,.28)); }
.contact-lockup .contact-wordmark { width:222px;height:68px;object-fit:contain;object-position:left center; }
.contact-intro h2 { margin:0;font-size:clamp(2.6rem,4.2vw,4.8rem);line-height:1;letter-spacing:-.06em; }
.contact-intro p { color:#9ba5b1;line-height:1.7;margin:26px 0 34px;max-width:560px; }
.contact-audiences { margin-top:auto;display:flex;flex-wrap:wrap;gap:8px; }
.contact-audiences span { padding:8px 10px;border:1px solid var(--line);border-radius:7px;color:#697583;font:500 .53rem var(--mono);letter-spacing:.08em; }
.briefing-form { padding:42px;display:grid;gap:22px; }
.form-honeypot { position:absolute!important;left:-9999px!important; }
.form-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px; }
.briefing-form label { display:grid;gap:9px; }
.briefing-form label > span:first-child,.form-message > span { color:#909aa6;font:500 .63rem var(--mono);letter-spacing:.08em;text-transform:uppercase; }
.briefing-form input,.briefing-form select,.briefing-form textarea { width:100%;color:#edf1f5;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.13);border-radius:11px;outline:none;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.briefing-form input,.briefing-form select { height:51px;padding:0 15px; }
.briefing-form textarea { resize:vertical;min-height:132px;padding:14px 15px;line-height:1.5; }
.briefing-form select { color:#b6bec8; }
.briefing-form option { color:#11161c;background:#eef1f4; }
.briefing-form input:focus,.briefing-form select:focus,.briefing-form textarea:focus { border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.055);box-shadow:0 0 0 3px rgba(255,255,255,.045); }
.consent-row { display:grid!important;grid-template-columns:18px 1fr;align-items:start;gap:12px!important;color:#717d89;font-size:.7rem;line-height:1.55; }
.consent-row input { width:16px;height:16px;margin:2px 0 0;accent-color:#f4f6f8; }
.consent-row a { color:#cbd2da;border-bottom:1px solid rgba(255,255,255,.2); }
.form-submit-row { display:flex;align-items:center;gap:20px;padding-top:4px; }
.form-submit-row p { margin:0;color:#616d79;font-size:.65rem;line-height:1.45;max-width:270px; }
.briefing-form.preview-submitted { border-color:rgba(137,240,192,.36); }

.legal-body { min-height:100vh; }
.legal-main { width:min(900px,calc(100% - 40px));margin:0 auto;padding:150px 0 100px; }
.legal-main h1 { margin:0 0 22px;font-size:clamp(3rem,7vw,5.7rem);letter-spacing:-.06em;line-height:.95; }
.legal-main .legal-lede { color:#9ca7b4;font-size:1.05rem;line-height:1.7;margin-bottom:52px; }
.legal-panel { border:1px solid var(--line);border-radius:24px;background:rgba(20,25,32,.72);padding:34px;margin:20px 0; }
.legal-panel h2 { margin:0 0 16px;font-size:1.35rem; }
.legal-panel p,.legal-panel li { color:#8995a2;line-height:1.7;font-size:.88rem; }
.legal-panel strong { color:#e8edf2; }
.legal-draft-note { border-color:rgba(241,207,135,.28);background:rgba(241,207,135,.04); }
.legal-draft-note strong { color:var(--amber); }
.legal-back { display:inline-flex;margin-top:34px; }

@media (max-width:1080px) {
  .contact-layout { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .scenario-chip { top:7px;right:7px;font-size:.42rem;padding:6px 7px; }
  .contact-section { padding-top:82px; }
  .contact-intro,.briefing-form { border-radius:22px;padding:28px; }
  .contact-lockup { gap:12px;height:60px;margin-bottom:30px; }
  .contact-lockup .contact-mark { width:56px;height:56px; }
  .contact-lockup .contact-wordmark { width:184px;height:56px; }
  .form-grid { grid-template-columns:1fr; }
  .form-submit-row { align-items:flex-start;flex-direction:column; }
  .legal-main { padding-top:120px; }
  .legal-panel { padding:25px; }
}


/* v10: simpler fail-closed diagram. Authenticated traffic passes; invalid state is stopped. */
.security-gate .gate-shield { fill:#11161c;stroke:#e2e8ee;stroke-width:1.25;stroke-linejoin:round; }
.security-gate .gate-check { fill:none;stroke:#f7f9fb;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round; }
.blocked-path { fill:none;stroke:rgba(255,255,255,.18);stroke-width:1;stroke-dasharray:4 5; }
.blocked-packet { fill:rgba(255,143,145,.78);filter:drop-shadow(0 0 5px rgba(255,143,145,.38)); }
.block-bar { fill:none;stroke:rgba(255,143,145,.62);stroke-width:1.5;stroke-linecap:round; }


/* Pitch-deck typography and accent system.
   Chakra Petch = display headings / card titles.
   Archivo = readable prose, navigation and actions.
   JetBrains Mono = section labels, numbering, metadata and technical microcopy. */
:root {
  --brand-accent: #ff6378;
  --display: "Chakra Petch", "Arial Narrow", sans-serif;
  --sans: "Archivo", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
::selection { background:var(--brand-accent);color:#0a0d11; }
.hero h1,
.section-heading h2,
.architecture-copy h2,
.sovereignty-copy h2,
.contact-copy h2,
.feature-card h3,
.application-card h3,
.timeline-step h3 {
  font-family:var(--display);
  font-weight:700;
}
.hero h1 { letter-spacing:-.035em;line-height:.92; }
.section-heading h2,.architecture-copy h2,.sovereignty-copy h2,.contact-copy h2 { letter-spacing:-.02em; }
.feature-card h3,.application-card h3,.timeline-step h3 { letter-spacing:-.005em; }
.stack-layer strong,.bearer-row span,.check-list strong,.sovereignty-points strong {
  font-family:var(--display);
  font-weight:700;
  letter-spacing:.015em;
}
.stack-layer strong { font-size:.9rem; }
.bearer-row span { font-size:.76rem; }
.kicker { color:var(--brand-accent); }
.feature-number,
.app-top span:first-child,
.check-list li > span,
.layer-index,
.sovereignty-points div > span { color:var(--brand-accent); }
.feature-card,.application-card { border-top-color:var(--line); }
.core-layer { border-color:rgba(255,99,120,.62);box-shadow:inset 0 0 45px rgba(255,99,120,.035); }
.bearer-row .accent-bearer { border-color:rgba(255,99,120,.48);background:linear-gradient(145deg,rgba(255,99,120,.075),rgba(255,255,255,.01)); }
.ownership-development { border-left-color:var(--brand-accent);background:linear-gradient(90deg,rgba(255,99,120,.06),transparent); }
.site-header nav a:hover,.footer-links a:hover { color:var(--brand-accent); }
.button-ghost:hover { border-color:rgba(255,99,120,.58); }
.scenario-chip { color:#b7a0a6;border-color:rgba(255,99,120,.18); }
.briefing-form label > span:first-child,.form-message > span { color:#909aa6; }
.briefing-form input:focus,.briefing-form select:focus,.briefing-form textarea:focus { border-color:rgba(255,255,255,.42);box-shadow:0 0 0 3px rgba(255,255,255,.045); }
.security-gate .gate-check { stroke:var(--brand-accent); }
.blocked-packet { fill:var(--brand-accent);filter:drop-shadow(0 0 5px rgba(255,99,120,.42)); }
.block-bar,.reject-cross { stroke:var(--brand-accent); }


/* v11: contact typography follows the pitch-deck system, while coral stays on the left-side briefing label only. */
.contact-intro h2 {
  font-family:var(--display);
  font-weight:700;
  letter-spacing:-.02em;
}
.contact-intro p,
.briefing-form input,
.briefing-form select,
.briefing-form textarea,
.consent-row,
.form-submit-row,
.briefing-form button {
  font-family:var(--sans);
}
.contact-audiences span,
.briefing-form label > span:first-child,
.form-message > span,
#form-status {
  font-family:var(--mono);
}
.contact-intro > .kicker { color:var(--brand-accent); }
.briefing-form label > span:first-child,
.form-message > span,
#form-status { color:#909aa6; }

/* v12: direct-contact conversion path and explicit hardware note. */
.architecture-hardware-note {
  margin: 18px 0 0;
  max-width: 650px;
  color: #a9b2bc;
  font-size: .9rem;
  line-height: 1.7;
}

.direct-contact {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 30px;
  background: linear-gradient(145deg,rgba(29,35,43,.9),rgba(12,16,21,.94));
  box-shadow: var(--shadow);
  padding: 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.direct-contact::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -240px;
  top: -250px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.05);
  box-shadow: 0 0 0 70px rgba(255,255,255,.011), 0 0 0 140px rgba(255,255,255,.007);
  pointer-events: none;
}
.direct-contact-label {
  position: relative;
  z-index: 1;
  color: #727d89;
  font: 500 .62rem var(--mono);
  text-transform: uppercase;
  letter-spacing: .11em;
  margin-bottom: 24px;
}
.direct-contact-email {
  position: relative;
  z-index: 1;
  display: inline-block;
  max-width: 100%;
  color: #f4f6f8;
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(2.25rem, 4.25vw, 5rem);
  line-height: .98;
  letter-spacing: -.035em;
  word-break: break-word;
  border-bottom: 1px solid rgba(255,255,255,.22);
  padding-bottom: 10px;
  transition: color .2s ease, border-color .2s ease;
}
.direct-contact-email:hover { color: white; border-color: rgba(255,255,255,.55); }
.direct-contact p {
  position: relative;
  z-index: 1;
  margin: 24px 0 0;
  color: #6f7a86;
  font: 500 .7rem var(--mono);
  letter-spacing: .04em;
  text-transform: uppercase;
}

.site-footer-minimal {
  padding: 42px 0 34px;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 28px;
  align-items: center;
}
.footer-minimal-company { display:flex;align-items:baseline;gap:14px;min-width:0; }
.footer-minimal-company strong { font-family:var(--display);font-size:.95rem;letter-spacing:.01em; }
.footer-minimal-company span,
.footer-minimal-legal,
.footer-minimal-email { color:#65717d;font:500 .58rem var(--mono);text-transform:uppercase;letter-spacing:.08em; }
.footer-minimal-email { color:#98a2ad;text-transform:none;letter-spacing:.02em; }
.footer-minimal-email:hover,.footer-minimal-legal a:hover { color:white; }
.footer-minimal-legal { display:flex;gap:14px;align-items:center;white-space:nowrap; }

@media (max-width: 760px) {
  .direct-contact { min-height: 320px; border-radius:22px; padding:28px; }
  .direct-contact-email { font-size: clamp(2rem, 10vw, 3.4rem); }
  .site-footer-minimal { grid-template-columns:1fr;gap:15px;align-items:start; }
  .footer-minimal-company { flex-direction:column;gap:5px;align-items:flex-start; }
}

/* v12.1: the right side of the contact section is intentionally email-only. */
.direct-contact { align-items:center; text-align:center; }
.direct-contact-email { margin:auto; }

/* v13: instrument redesign. The page reads as a Kairos terminal:
   flat panels with corner registration ticks, a full-width command bar,
   a live status line, and one color rule — coral marks the route that
   survives; failures are desaturated. */

:root { --radius: 10px; --fail: #a06066; }

body {
  background:
    radial-gradient(1100px 600px at 82% -8%, rgba(255,99,120,.055), transparent 60%),
    radial-gradient(circle at 18% 36%, rgba(64,76,92,.08), transparent 38rem),
    repeating-linear-gradient(90deg, rgba(255,255,255,.013) 0 1px, transparent 1px 130px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.01) 0 1px, transparent 1px 130px),
    var(--bg);
  padding-bottom: 34px;
}
body::before {
  background: repeating-linear-gradient(0deg, rgba(255,255,255,.016) 0 1px, transparent 1px 4px);
  opacity: .4;
}

/* command bar */
.site-header {
  top: 0; left: 0; transform: none;
  width: 100%; height: 60px;
  border: 0; border-bottom: 1px solid var(--line);
  border-radius: 0; box-shadow: none;
  background: rgba(10,13,17,.86);
  padding: 0 22px;
}
.site-header.scrolled { top: 0; background: rgba(8,10,14,.94); }
.site-header nav { counter-reset: chan; gap: 28px; }
.site-header nav a {
  font: 500 .66rem var(--mono);
  letter-spacing: .14em; text-transform: uppercase; color: #96a0ac;
}
.site-header nav a::before {
  counter-increment: chan;
  content: "0" counter(chan) " ";
  color: var(--brand-accent);
}

/* controls */
.button { border-radius: 8px; font-weight: 600; }
.button-small { border-radius: 6px; }
.button-primary { background: var(--brand-accent); color: #140609; box-shadow: 0 0 26px rgba(255,99,120,.26); }
.button-primary:hover { background: #ff7a8c; }
.toast { border-radius: 8px; }

/* hero */
.hero h1 span { color: var(--brand-accent); }
.visual-frame {
  border-radius: 12px;
  background: rgba(11,14,19,.72);
  box-shadow: none;
  padding: 18px 22px 20px;
}

/* flat instrument panels + corner registration ticks */
.feature-card, .application-card { border-radius: var(--radius); background: #0d1117; }
.feature-card:hover, .application-card:hover {
  transform: none;
  border-color: rgba(255,99,120,.4);
  box-shadow: 0 0 0 1px rgba(255,99,120,.12), 0 18px 50px rgba(0,0,0,.3);
}
.stack-diagram, .contact-intro, .direct-contact { border-radius: 12px; background: #0d1117; box-shadow: none; }
.stack-layer { border-radius: 8px; }
.bearer-row div { border-radius: 8px; }
.layer-pills i { border-radius: 4px; }
.app-system-visual { border-radius: 8px; background: #0b0f14; }
.app-system-visual::after { background: none; }
.contact-audiences span { border-radius: 4px; }
.scenario-chip { border-radius: 4px; }
.legal-panel { border-radius: 12px; }

.feature-card::before, .application-card::before, .stack-diagram::before,
.visual-frame::before, .contact-intro::before, .direct-contact::before {
  content: ""; position: absolute; inset: auto;
  top: 10px; left: 10px; width: 15px; height: 15px;
  border: 0; border-top: 1px solid rgba(255,99,120,.5); border-left: 1px solid rgba(255,99,120,.5);
  border-radius: 0; background: none; filter: none; box-shadow: none; pointer-events: none;
}
.feature-card::after, .application-card::after, .stack-diagram::after,
.visual-frame::after, .contact-intro::after, .direct-contact::after {
  content: ""; position: absolute; inset: auto;
  bottom: 10px; right: 10px; width: 15px; height: 15px;
  border: 0; border-bottom: 1px solid rgba(255,99,120,.5); border-right: 1px solid rgba(255,99,120,.5);
  border-radius: 0; background: none; filter: none; box-shadow: none; pointer-events: none;
}

/* labels */
.kicker::before { content: "// "; opacity: .75; }
.trust-strip { color: #7d8794; }
.trust-strip i { background: var(--brand-accent); opacity: .65; }

/* one color rule — coral is the route that survives */
.reroute-path path { stroke: var(--brand-accent); }
.reroute-packet { fill: var(--brand-accent); }
.route-label { fill: var(--brand-accent) !important; }
.node-primary .node-ring { stroke: var(--brand-accent); }
.mini-reroute { stroke: var(--brand-accent); }
.mini-packet, .identity-packet, .bearer-packet, .secure-packet {
  fill: var(--brand-accent);
  filter: drop-shadow(0 0 6px rgba(255,99,120,.65));
}
.core-pulse span { background: var(--brand-accent); }
.app-link-primary { stroke: var(--brand-accent); }
.infrastructure-system .app-link-primary { stroke: rgba(255,99,120,.85); }
.data-packet { fill: var(--brand-accent); filter: drop-shadow(0 0 6px rgba(255,99,120,.6)); }
.app-system-visual .app-node > circle:first-child { fill: #f7f9fb; }
.direct-contact-email:hover { color: var(--brand-accent); border-color: rgba(255,99,120,.6); }
.footer-minimal-email:hover, .footer-minimal-legal a:hover { color: var(--brand-accent); }

/* failures are desaturated — broken things do not get the brand color */
.app-link-degraded { stroke: var(--fail); opacity: .4; }
.app-fault path, .app-system-visual .fault-cross path, .app-system-visual .disabled-tower .fault-cross,
.fault-cross path { stroke: var(--fail); filter: none; }
.mini-fault path { stroke: var(--fail); }
.mini-failed-link { stroke: rgba(160,96,102,.42); }
.fault-label { fill: var(--fail) !important; }
.app-system-visual .app-caption .fault-copy { fill: #93666b; }
.blocked-packet { fill: var(--fail); filter: none; }
.block-bar, .reject-cross { stroke: var(--fail); }
.gps-disabled .gps-slash { stroke: rgba(160,96,102,.85); }
.node-failing path { stroke: var(--fail); }

/* status line */
.statusline {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
  height: 34px;
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 0 20px;
  background: rgba(8,11,15,.9);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--line);
  color: #69747f;
  font: 500 .56rem var(--mono);
  letter-spacing: .12em; text-transform: uppercase;
  white-space: nowrap;
}
.statusline b { color: var(--brand-accent); font-weight: 500; }
.statusline .sl-dot {
  width: 6px; height: 6px; border-radius: 50%; display: inline-block;
  margin-right: 9px; background: var(--green);
  box-shadow: 0 0 10px rgba(137,240,192,.5);
}
@media (max-width: 1080px) { .statusline .sl-mid { display: none; } }
@media (max-width: 760px) {
  .statusline { display: none; }
  body { padding-bottom: 0; }
  .site-header { width: 100%; top: 0; }
}

/* v14: industrial poster. Stacked display blocks with hard offset shadows,
   stencil stamps, ghost section numerals, spec-plate cards, and abstract
   node diagrams. Coral still marks the route that survives. */

.section { overflow: clip; }
:where(.section > *) { position: relative; z-index: 1; }

/* poster headline blocks */
.poster-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.pb {
  display: inline-block;
  font-family: var(--display);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -.01em;
  line-height: 1.04;
  padding: .1em .32em .13em;
  font-size: clamp(1.9rem, 3vw, 3.3rem);
}
.hero .pb { font-size: clamp(2.15rem, 4.1vw, 4.4rem); }
.contact-intro .pb { font-size: clamp(1.5rem, 2.5vw, 2.5rem); }
.poster-stack .pb-bone { background: #f3f5f7; color: #0c0f13; box-shadow: 8px 8px 0 rgba(255,99,120,.85); }
.poster-stack .pb-coral { background: var(--brand-accent); color: #140609; box-shadow: 8px 8px 0 rgba(243,245,247,.2); }

/* stencil stamps */
.kicker {
  border: 1px solid rgba(255,99,120,.5);
  background: rgba(255,99,120,.07);
  padding: 9px 12px;
  border-radius: 3px;
}
.kicker::before { content: none; }

/* ghost section numerals */
#platform::after, #architecture::after, #applications::after, #ownership::after {
  position: absolute; top: 30px; right: -12px; z-index: 0; pointer-events: none;
  font: 800 clamp(11rem, 22vw, 22rem)/1 var(--display);
  letter-spacing: -.04em;
  color: rgba(243,245,247,.028);
  -webkit-text-stroke: 1px rgba(243,245,247,.06);
}
#platform::after { content: "01"; }
#architecture::after { content: "02"; }
#applications::after { content: "03"; }
#ownership::after { content: "04"; }

/* spec-plate cards */
.feature-card::before, .feature-card::after,
.application-card::before, .application-card::after,
.stack-diagram::before, .stack-diagram::after,
.visual-frame::before, .visual-frame::after,
.contact-intro::before, .contact-intro::after,
.direct-contact::before, .direct-contact::after { content: none; }

.feature-card, .application-card {
  border: 1px solid rgba(243,245,247,.16);
  border-radius: 6px;
  background: #0c1015;
  box-shadow: 10px 10px 0 rgba(255,99,120,.1);
}
.feature-card:hover, .application-card:hover {
  border-color: rgba(255,99,120,.55);
  box-shadow: 10px 10px 0 rgba(255,99,120,.4);
  transform: none;
}
.stack-diagram, .contact-intro, .direct-contact {
  border: 1px solid rgba(243,245,247,.16);
  border-radius: 6px;
  box-shadow: 10px 10px 0 rgba(255,99,120,.1);
}
.visual-frame { border-radius: 6px; border-color: rgba(243,245,247,.18); box-shadow: 12px 12px 0 rgba(255,99,120,.12); }
.app-system-visual { border-radius: 4px; }
.stack-layer { border-radius: 4px; }
.bearer-row div { border-radius: 4px; }
.layer-pills i { border-radius: 2px; }
.legal-panel { border-radius: 6px; }

.feature-number { font: 800 2rem var(--display); color: var(--brand-accent); letter-spacing: 0; }
.app-top { align-items: baseline; }
.app-top span:first-child { font: 800 1.7rem var(--display); color: var(--brand-accent); }
.feature-card h3, .application-card h3 {
  text-transform: uppercase; font-weight: 800; letter-spacing: .01em; font-size: 1.4rem;
}
.feature-card h3 { margin-top: 112px; }

/* poster controls */
.button {
  border-radius: 3px;
  font-family: var(--display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.button:hover { transform: translate(-2px, -2px); }
.button:active { transform: translate(1px, 1px); box-shadow: none; }
.button-primary { box-shadow: 5px 5px 0 rgba(243,245,247,.28); }
.button-primary:hover { box-shadow: 7px 7px 0 rgba(243,245,247,.32); background: var(--brand-accent); }
.button-ghost { border: 1px solid rgba(243,245,247,.4); }

/* hazard strip */
.trust-strip { color: #c7ced7; font-size: .66rem; font-weight: 600; gap: 22px; }
.trust-strip::before, .trust-strip::after {
  content: ""; flex: 0 0 60px; height: 12px;
  background: repeating-linear-gradient(135deg, var(--brand-accent) 0 7px, transparent 7px 14px);
  opacity: .7;
}

/* bolder diagrams */
.mesh-edges line { stroke-width: 2; }
.mesh-nodes .node-ring { stroke-width: 1.8; }
.reroute-path path { stroke-width: 2.6; }
.mini-edges path { stroke-width: 1.6; }
.feature-diagram .mini-nodes circle { stroke-width: 1.6; }
.app-link path, .app-link { stroke-width: 2.2; }
.app-system-visual .tactical-links path, .app-system-visual .response-links path { stroke-width: 1.8; stroke: rgba(220,228,236,.5); }
.app-system-visual .pulse-ring { stroke-width: 1.4; }
.app-system-visual .app-caption text { font: 600 10px var(--mono); fill: #8d99a6; letter-spacing: .1em; }

/* contact block */
.direct-contact-email {
  background: #f3f5f7; color: #0c0f13;
  font-weight: 800; letter-spacing: -.02em;
  padding: .12em .3em .16em;
  border-bottom: none;
  box-shadow: 9px 9px 0 rgba(255,99,120,.85);
}
.direct-contact-email:hover {
  color: #140609; background: var(--brand-accent);
  border-color: transparent;
  box-shadow: 9px 9px 0 rgba(243,245,247,.25);
}

.site-header { border-bottom-color: rgba(243,245,247,.14); }
.statusline { border-top-color: rgba(255,99,120,.4); }

@media (max-width: 760px) {
  .pb { font-size: clamp(1.5rem, 7.4vw, 2.4rem); }
  .hero .pb { font-size: clamp(1.7rem, 8.6vw, 2.9rem); }
  .poster-stack { gap: 9px; }
  .trust-strip::before, .trust-strip::after { display: none; }
  #platform::after, #architecture::after, #applications::after, #ownership::after { font-size: 9rem; top: 14px; }
}

/* v15: poster-weight diagrams. One shared language everywhere:
   thick round-cap strokes, solid filled nodes, bold mono labels.
   No hairlines, no wisps. */

/* hero mesh */
.mesh-grid { display: none; }
.mesh-edges line { stroke: rgba(243,245,247,.34); stroke-width: 3; stroke-linecap: round; }
.mesh-nodes .node-ring { r: 13px; fill: #0c1015; stroke: #f3f5f7; stroke-width: 2.4; }
.mesh-nodes .node-core { r: 5px; }
.node-primary .node-ring { r: 18px; stroke: var(--brand-accent); stroke-width: 3; }
.node-primary .node-core { r: 7px; fill: var(--brand-accent); }
.reroute-path path { stroke-width: 3.5; }
.mesh-packets circle { r: 4.5px; }
.mesh-labels text { font: 700 11px var(--mono); fill: #b6c0cc; letter-spacing: .1em; }

/* capability mini-diagrams */
.feature-diagram .mini-edges path { stroke: rgba(243,245,247,.3); stroke-width: 2.4; stroke-linecap: round; }
.feature-diagram .mini-nodes circle { r: 7px; stroke: #cfd7df; stroke-width: 2.2; }
.feature-diagram .mini-nodes circle:nth-child(3) { fill: var(--brand-accent); stroke: #f3f5f7; filter: none; }
.mini-failed-link { stroke-width: 2.2; }
.mini-fault path { stroke-width: 2.6; }
.mini-reroute { stroke-width: 3; }
.mini-packet { r: 4px; }
.identity-badge path, .identity-badge circle { stroke: rgba(243,245,247,.75); stroke-width: 2.2; }
.identity-link { stroke-width: 2.2; }
.identity-packet { r: 4px; }
.gps-disabled > path:first-child, .gps-disabled circle { stroke-width: 2; }
.gps-disabled .gps-slash { stroke-width: 2.6; }
.hash-marks path { stroke: rgba(243,245,247,.4); stroke-width: 1.6; }
.bearer-lines path { stroke-width: 2.2; }
.bearer-core circle:first-child { stroke-width: 2.4; }
.bearer-core circle:last-child { fill: var(--brand-accent); filter: none; }
.bearer-endpoint rect { stroke-width: 2; }
.bearer-endpoint text { font: 700 9px var(--mono); fill: #cfd7df; }
.bearer-packet { r: 4px; }
.secure-link path { stroke-width: 2.2; }
.secure-node circle:first-child { r: 10px; stroke-width: 2.2; }
.secure-node circle:last-child { fill: var(--brand-accent); filter: none; }
.security-gate .gate-shield { stroke-width: 2.4; }
.security-gate .gate-check { stroke-width: 2.8; }
.secure-packet { r: 4px; }
.blocked-path { stroke-width: 1.8; }
.blocked-packet { r: 4px; }
.block-bar, .reject-cross { stroke-width: 2.6; }

/* application scenes */
.app-grid-lines { display: none; }
.app-system-visual .terrain { stroke: rgba(243,245,247,.14); stroke-width: 2; fill: rgba(243,245,247,.03); }
.app-system-visual .contours path, .app-system-visual .response-map path { stroke: rgba(243,245,247,.09); stroke-width: 1.8; }
.app-link path, .app-link { stroke-width: 3; }
.app-link-secondary { stroke-width: 2.4; }
.app-system-visual .tactical-links path, .app-system-visual .response-links path { stroke: rgba(230,237,244,.55); stroke-width: 2.6; }
.app-system-visual .primary-backbone { stroke-width: 3; }
.app-system-visual .app-node > circle:first-child { r: 8px; }
.app-system-visual .pulse-ring { stroke-width: 2; }
.data-packet { r: 4.5px; }
.app-link-degraded { stroke-width: 2.4; }
.app-fault path, .app-system-visual .fault-cross path, .fault-cross path { stroke-width: 3; }
.app-system-visual .app-caption text { font: 700 10.5px var(--mono); fill: #aab5c2; letter-spacing: .09em; }
.app-system-visual .app-caption .route-copy { fill: var(--brand-accent) !important; }

/* v16: solid/hollow display type, louder atmosphere, clean plates.
   The outline numeral is the signature motif: ghost section numbers,
   hollow heading lines, hollow card indices. No block backgrounds,
   no offset shadows. */

/* headings: solid bone line + hollow coral line */
.poster-stack { gap: 4px; }
.pb, .hero .pb, .contact-intro .pb {
  background: none; box-shadow: none; padding: 0;
  line-height: 1.02; letter-spacing: -.02em;
}
.pb { font-size: clamp(2.3rem, 3.8vw, 4.2rem); }
.hero .pb { font-size: clamp(2.9rem, 5vw, 5.4rem); }
.contact-intro .pb { font-size: clamp(1.8rem, 2.8vw, 3rem); }
.poster-stack .pb-bone { background: none; box-shadow: none; color: #f3f5f7; }
.poster-stack .pb-coral {
  background: none; box-shadow: none;
  color: transparent;
  -webkit-text-stroke: 1.6px var(--brand-accent);
}
@supports not (-webkit-text-stroke: 1px #000) {
  .poster-stack .pb-coral { color: var(--brand-accent); }
}

/* atmosphere forward */
#mesh-canvas { opacity: 1; }
body {
  background:
    radial-gradient(1100px 600px at 82% -8%, rgba(255,99,120,.07), transparent 60%),
    radial-gradient(circle at 18% 36%, rgba(64,76,92,.1), transparent 38rem),
    repeating-linear-gradient(90deg, rgba(255,255,255,.028) 0 1px, transparent 1px 130px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.022) 0 1px, transparent 1px 130px),
    var(--bg);
}
#platform::after, #architecture::after, #applications::after, #ownership::after {
  color: rgba(255,99,120,.035);
  -webkit-text-stroke: 1.5px rgba(255,99,120,.22);
}

/* clean plates: no offset shadows, no small drawings */
.feature-card, .application-card, .stack-diagram, .contact-intro, .direct-contact {
  box-shadow: none; border-radius: 4px;
}
.visual-frame { box-shadow: none; border-radius: 4px; }
.feature-card:hover, .application-card:hover { box-shadow: none; border-color: rgba(255,99,120,.5); }
.feature-icon { display: none; }
.feature-card, .feature-card-large { min-height: 320px; padding-bottom: 84px; }
.feature-card h3 { margin-top: 96px; }
.feature-number {
  position: absolute; top: 20px; right: 24px;
  font: 800 4.4rem/1 var(--display); letter-spacing: -.03em;
  color: transparent; -webkit-text-stroke: 1.4px rgba(255,99,120,.6);
}
.app-top span:first-child {
  font: 800 2.6rem/1 var(--display);
  color: transparent; -webkit-text-stroke: 1.2px rgba(255,99,120,.6);
}
@supports not (-webkit-text-stroke: 1px #000) {
  .feature-number, .app-top span:first-child { color: rgba(255,99,120,.55); }
}

/* controls and contact follow */
.button-primary { box-shadow: none; }
.button-primary:hover { box-shadow: none; }
.direct-contact-email {
  background: none; box-shadow: none; padding: 0 0 12px;
  color: #f3f5f7; border-bottom: 4px solid var(--brand-accent);
}
.direct-contact-email:hover { background: none; color: var(--brand-accent); box-shadow: none; }

/* v17: living terrain, spectrum divider, persistent encryption, flow.
   Display face: Chakra Petch — engineered, angular, matches the mesh.
   No background grid. Hierarchy follows a strict scale. */

:root { --display: "Chakra Petch", "Arial Narrow", sans-serif; }

body {
  background:
    radial-gradient(1100px 600px at 82% -8%, rgba(255,99,120,.07), transparent 60%),
    radial-gradient(circle at 18% 36%, rgba(88,72,110,.12), transparent 38rem),
    var(--bg);
}

/* type scale: one system for everything */
.pb { font-size: clamp(2rem, 3.2vw, 3.5rem); letter-spacing: 0; }
.hero .pb { font-size: clamp(2.4rem, 4.1vw, 4.4rem); }
.contact-intro .pb { font-size: clamp(1.6rem, 2.4vw, 2.6rem); }
.poster-stack .pb-coral { -webkit-text-stroke: 1.8px var(--brand-accent); }
.poster-stack { gap: 6px; }
.hero-lede { font-size: 1.12rem; line-height: 1.7; max-width: 60ch; }
.section-heading p, .architecture-copy > p, .sovereignty-copy > p { font-size: .98rem; max-width: 58ch; }
.feature-card p, .application-card p { max-width: 60ch; }
.feature-card h3, .application-card h3 { font-size: 1.15rem; letter-spacing: .02em; }
.feature-number { font-size: 3.4rem; }
.app-top span:first-child { font-size: 2.1rem; }

/* terrain hero */
#terrain-mesh { width: 100%; aspect-ratio: 1.04; display: block; cursor: crosshair; }
.mesh-hint {
  position: absolute; left: 34px; bottom: 92px; z-index: 3;
  font: 600 .56rem var(--mono); letter-spacing: .14em; color: #d7dde4;
  padding: 8px 10px; border: 1px solid rgba(255,99,120,.4); border-radius: 3px;
  background: rgba(9,12,16,.78); pointer-events: none;
  animation: hintPulse 2.6s ease-in-out infinite;
}
@keyframes hintPulse { 0%,100% { opacity: .6; } 50% { opacity: 1; } }

/* spectrum divider */
.spectrum-strip {
  position: relative; height: 130px;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  overflow: hidden;
}
.spectrum-strip canvas { width: 100%; height: 100%; display: block; opacity: .9; }
.spectrum-label {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  font: 600 .58rem var(--mono); letter-spacing: .16em; color: #c9d0d8;
  padding: 9px 13px; border: 1px solid rgba(255,99,120,.35); border-radius: 3px;
  background: rgba(9,12,16,.82);
}

/* flow: sections drift in as you reach them */
.rv { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.6,.2,1); }
.rv.in { opacity: 1; transform: none; }

/* encrypted-at-rest headings */
.scr-idle { opacity: .5; transition: opacity .45s ease; }

@media (prefers-reduced-motion: reduce) {
  .rv { opacity: 1; transform: none; }
  .scr-idle { opacity: 1; }
  .mesh-hint { animation: none; }
}

/* v18: quieter numerals, pure-texture spectrum, no layer tags. */

/* stack diagram: drop L1/L2/L3 tags */
.layer-index { display: none; }
.stack-layer { grid-template-columns: 1fr auto; }

/* card indices: ghost bone, not coral */
.feature-number {
  font-size: 2.9rem;
  -webkit-text-stroke: 1.2px rgba(243,245,247,.32);
}
.app-top span:first-child {
  font-size: 1.8rem;
  -webkit-text-stroke: 1px rgba(243,245,247,.32);
}
@supports not (-webkit-text-stroke: 1px #000) {
  .feature-number, .app-top span:first-child { color: rgba(243,245,247,.3); }
}

/* section numerals: keep big, drop the coral */
#platform::after, #architecture::after, #applications::after, #ownership::after {
  color: rgba(243,245,247,.02);
  -webkit-text-stroke: 1.5px rgba(243,245,247,.085);
}

/* spectrum: background texture, no caption */
.spectrum-label { display: none; }
.spectrum-strip { height: 92px; border-top-color: rgba(255,255,255,.07); border-bottom-color: rgba(255,255,255,.07); }
.spectrum-strip canvas { opacity: .75; }

@media (max-width: 760px) {
  .stack-layer { grid-template-columns: 1fr; }
}

/* v19: distinct scenario grammars + spacing fixes. */

.hero-proof { padding-top: 36px; }

/* A: side profile — altitude stem */
.stem-line { fill: none; stroke: rgba(216,224,232,.35); stroke-width: 1; stroke-dasharray: 2,5; }

/* B: top-down topo map */
.topo path { fill: none; stroke: rgba(255,255,255,.1); stroke-width: 1.2; }
.compass path { fill: none; stroke: #8d99a6; stroke-width: 1.4; stroke-linecap: round; }

/* C: schematic one-line diagram */
.schem rect { fill: #0c1015; stroke: #d8e0e8; stroke-width: 1.6; }
.schem-dot circle { fill: #f3f5f7; }
.schem-dot .hot { fill: #ff6378; }

/* D: radial coverage */
.cover circle { fill: none; stroke: rgba(243,245,247,.17); stroke-width: 1; stroke-dasharray: 3,6; }
.dead-zone > circle { fill: none; stroke: rgba(160,96,102,.4); stroke-width: 1.2; stroke-dasharray: 2,4; }

/* v20: layout consistency. */

/* contact: two equal plates */
.contact-layout { grid-template-columns: 1fr 1fr; }
.direct-contact-email { font-size: clamp(1.7rem, 3vw, 3.2rem); }

/* card letters carry the accent */
.feature-number { -webkit-text-stroke: 1.4px rgba(255,99,120,.65); }
.app-top span:first-child { -webkit-text-stroke: 1.2px rgba(255,99,120,.65); }
@supports not (-webkit-text-stroke: 1px #000) {
  .feature-number, .app-top span:first-child { color: rgba(255,99,120,.6); }
}

/* contact: all four audience chips on one row */
.contact-audiences { flex-wrap: nowrap; }
.contact-audiences span { padding: 7px 8px; font-size: .5rem; letter-spacing: .06em; white-space: nowrap; }
@media (max-width: 1080px) {
  .contact-audiences { flex-wrap: wrap; }
}

/* ghost numerals: one shared right edge, aligned to the content shell.
   Ownership's copy sits on the right, so its numeral goes left, behind
   the map's empty sky. */
#platform::after, #architecture::after { right: 0; }
#applications::after { right: calc((100% - min(1240px, 100% - 48px)) / 2); }
#ownership::after { right: auto; left: calc((100% - min(1240px, 100% - 48px)) / 2); }

/* hero terrain: one opaque ground color so the canvas never seams
   against its frame */
.visual-frame { background: #0a0d11; }

/* v21: rhythm — each section aims to fit one viewport. */

.hero::after { content: none; }
.section { padding: 96px 0; }
.section-heading { margin-bottom: 44px; }
.section-heading.compact { margin-bottom: 40px; }

/* platform: four cards in one row on wide screens */
.capability-grid { grid-template-columns: repeat(4, 1fr); gap: 14px; }
.feature-card, .feature-card-large { min-height: 270px; padding: 24px 24px 72px; }
.feature-card h3 { margin-top: 62px; font-size: 1.02rem; }
.feature-card p { font-size: .87rem; line-height: 1.6; }
.feature-number { font-size: 2.2rem; top: 16px; right: 18px; }
.feature-meta { left: 24px; right: 24px; bottom: 22px; }
@media (max-width: 1180px) {
  .capability-grid { grid-template-columns: repeat(2, 1fr); }
  .feature-card, .feature-card-large { min-height: 240px; }
}

/* applications: tighter cards */
.app-visual { height: 205px; }
.application-card { min-height: 0; }

/* ownership: map clears the numeral */
.sovereignty-map { margin-top: 84px; }

/* spectrum: the footer sits on the band, and the band runs on beneath
   the status bar */
body { padding-bottom: 0; overflow-anchor: none; }
.applications-section { background: none; border-top: 0; }

/* each section is one full page: anchors land under the fixed header,
   short sections stretch to fill the viewport */
.section { scroll-margin-top: 60px; }
#platform, #contact {
  min-height: calc(100vh - 60px);
  min-height: calc(100svh - 60px);
  display: flex; flex-direction: column; justify-content: center;
}
#architecture {
  min-height: calc(100vh - 60px);
  min-height: calc(100svh - 60px);
  align-content: center;
}
#ownership {
  min-height: calc(100vh - 60px);
  min-height: calc(100svh - 60px);
  display: flex; flex-direction: column; justify-content: center;
}
.site-footer-minimal { position: relative; z-index: 1; padding: 30px 0 20px; }
.spectrum-strip {
  position: relative; z-index: 0;
  height: 118px; margin-top: -76px;
  border-top: none; border-bottom: none;
}
.spectrum-strip canvas { opacity: .22; }
.statusline { background: rgba(8, 11, 15, .66); }

/* architecture: compact stack so the section fits one viewport */
.kicker { margin-bottom: 20px; }
#architecture { padding: 82px 0; }
.architecture-section { gap: 70px; }
.architecture-copy h2 { margin-bottom: 18px; }
.architecture-hardware-note { margin-top: 12px; }
.stack-diagram { padding: 20px; }
.stack-layer { min-height: 76px; padding: 14px 20px; }
.stack-connector { height: 22px; }
.stack-foot { padding-top: 14px; }
.bearer-row div { min-height: 62px; padding: 12px; }
.check-list { margin-top: 28px; }
.check-list li { padding: 12px 0; }

/* ownership: compact points */
.sovereignty-copy h2 { margin-bottom: 20px; }
.ownership-development { margin-top: 16px !important; padding: 13px 16px; }
.sovereignty-points { margin-top: 24px; }
.sovereignty-points div { padding: 11px 0; }

@media (max-width: 760px) {
  .section { padding: 72px 0; }
  .sovereignty-map { margin-top: 24px; }
  .capability-grid { grid-template-columns: 1fr; }
}

/* merge pass 01 — keep the co-founder terminal/poster system, but soften
   the overall page background toward the earlier FarOp treatment. */
body {
  background:
    radial-gradient(1050px 650px at 82% -8%, rgba(255,99,120,.022), transparent 62%),
    radial-gradient(circle at 76% 7%, rgba(108,122,141,.105), transparent 33rem),
    radial-gradient(circle at 18% 38%, rgba(72,84,101,.075), transparent 40rem),
    repeating-linear-gradient(90deg, rgba(255,255,255,.009) 0 1px, transparent 1px 130px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.007) 0 1px, transparent 1px 130px),
    var(--bg);
}

/* Keep the full-width command-bar header, but use clean text-only zones. */
.site-header nav { counter-reset: none; }
.site-header nav a {
  font-size: .79rem; /* ~2 px larger than the prior .66rem */
  letter-spacing: .12em;
}
.site-header nav a::before {
  content: none !important;
  counter-increment: none;
}

/* Explicit high-resolution brand rendering. */
.brand-mark,
.brand-wordmark,
.contact-mark,
.contact-wordmark {
  image-rendering: auto;
  image-rendering: -webkit-optimize-contrast;
}

/* merge pass 02 — hero/pre-platform refinements.
   Keep the co-founder hero exactly as-is except for a white-filled coral-outline
   second headline line, and remove the hazard-stripe end caps from the trust strip. */
.poster-stack .pb-coral {
  color: #f3f5f7;
  -webkit-text-fill-color: #f3f5f7;
  -webkit-text-stroke: 1.8px var(--brand-accent);
}
@supports not (-webkit-text-stroke: 1px #000) {
  .poster-stack .pb-coral {
    color: #f3f5f7;
    text-shadow:
      -1px -1px 0 var(--brand-accent),
       1px -1px 0 var(--brand-accent),
      -1px  1px 0 var(--brand-accent),
       1px  1px 0 var(--brand-accent);
  }
}

.trust-strip::before,
.trust-strip::after {
  content: none !important;
  display: none !important;
}


/* merge pass 03 — Platform section refinement.
   Keep the large ghost 01, remove the duplicate number from the section stamp,
   enlarge landing-page section stamps by ~2 px, and retain the white-filled
   coral-outline poster treatment established in pass 02. */
main .section .kicker {
  font-size: .87rem;
}


/* merge pass 05 — Applications follows the same numbered-section rhythm as
   Platform and Architecture. Keep the oversized ghost numeral, but place it
   on the same outer right edge as 01/02 so it no longer sits under the cards.
   Section stamp and heading spacing are normalized across 01–03. */
#platform::after,
#architecture::after,
#applications::after {
  top: 30px;
  right: 0;
}

#platform .kicker,
#architecture .kicker,
#applications .kicker {
  margin-bottom: 20px;
}

#platform .poster-stack,
#architecture .poster-stack,
#applications .poster-stack {
  gap: 6px;
}

/* Match the Platform heading/content break instead of using the tighter
   Applications-specific compact spacing. */
#applications .section-heading.compact {
  margin-bottom: 44px;
}

/* Keep the section-number/title hierarchy readable on narrower layouts. */
@media (max-width: 1080px) {
  #platform::after,
  #architecture::after,
  #applications::after {
    right: 0;
  }
}


/* merge pass 06 — European Ownership follows the same vertical section hierarchy
   as 01–03. Keep the map on the left and copy on the right, but align both
   columns from the top rather than using opposing horizontal offsets. */
#ownership::after {
  top: 30px;
  right: auto;
  left: calc((100% - min(1240px, 100% - 48px)) / 2);
}

#ownership .kicker {
  margin-bottom: 20px;
}

#ownership .poster-stack {
  gap: 6px;
}

#ownership .sovereignty-layout {
  align-items: start;
}

#ownership .sovereignty-copy {
  align-self: start;
}

#ownership .sovereignty-map {
  margin-top: 0;
  align-self: start;
}

@media (max-width: 1080px) {
  #ownership::after {
    left: calc((100% - min(1240px, 100% - 48px)) / 2);
  }
}

/* merge pass 07 — Contact polish only.
   Use the exact same clean logo + wordmark assets as the header, avoid forced
   raster sharpening, and explicitly keep the coral headline white-filled. */
.brand-mark,
.brand-wordmark,
.contact-mark,
.contact-wordmark {
  image-rendering: auto;
}

#contact .poster-stack .pb-coral {
  color: #f3f5f7;
  -webkit-text-fill-color: #f3f5f7;
  -webkit-text-stroke: 1.8px var(--brand-accent);
}
@supports not (-webkit-text-stroke: 1px #000) {
  #contact .poster-stack .pb-coral {
    color: #f3f5f7;
    text-shadow:
      -1px -1px 0 var(--brand-accent),
       1px -1px 0 var(--brand-accent),
      -1px  1px 0 var(--brand-accent),
       1px  1px 0 var(--brand-accent);
  }
}

/* merge pass 08 — normalize the numbered-section vertical hierarchy.
   The ghost numeral occupies a dedicated top band, then the section stamp,
   headline and content begin at the same vertical anchor in every section.
   01/02/03 remain right-aligned to the content shell; 04 remains on the left. */
:root {
  --numbered-section-content-top: 208px;
  --numbered-section-ghost-top: 30px;
  --section-shell-gutter: max(24px, calc((100% - min(1240px, 100% - 48px)) / 2));
}

#platform,
#architecture,
#applications,
#ownership {
  position: relative;
}

#platform::after,
#architecture::after,
#applications::after,
#ownership::after {
  top: var(--numbered-section-ghost-top);
}

/* Use Platform's successful vertical rhythm as the reference for all four. */
#platform {
  justify-content: flex-start;
  padding-top: var(--numbered-section-content-top);
}

#architecture {
  align-content: start;
  padding-top: var(--numbered-section-content-top);
}

#applications {
  padding-top: var(--numbered-section-content-top);
}

#ownership {
  justify-content: flex-start;
  padding-top: var(--numbered-section-content-top);
}

/* 01/02 are already content-shell sections. 03 is full-width, so explicitly
   inset it by the shell gutter instead of pinning it to the viewport edge. */
#platform::after,
#architecture::after {
  right: 0;
  left: auto;
}

#applications::after {
  right: var(--section-shell-gutter);
  left: auto;
}

/* Keep 04 on the left as requested, but in the same top numeral band so it
   sits above the map/text content instead of colliding with the map. */
#ownership::after {
  left: var(--section-shell-gutter);
  right: auto;
}

/* Ownership's two columns keep their left/right arrangement; only the shared
   vertical start is normalized. */
#ownership .sovereignty-layout,
#ownership .sovereignty-map,
#ownership .sovereignty-copy {
  align-self: start;
}
#ownership .sovereignty-layout { align-items: start; }
#ownership .sovereignty-map { margin-top: 0; }

@media (max-width: 1080px) {
  :root {
    --numbered-section-content-top: 176px;
    --numbered-section-ghost-top: 24px;
  }

  #applications::after { right: var(--section-shell-gutter); }
  #ownership::after { left: var(--section-shell-gutter); }
}

@media (max-width: 760px) {
  :root {
    --numbered-section-content-top: 142px;
    --numbered-section-ghost-top: 18px;
  }
}


/* merge pass 09 — restore visitor-controlled Kairos hero interaction and
   use solid coral display lines. The example mesh now changes state only
   when the visitor clicks a link; the instruction chip remains visible. */
.poster-stack .pb-coral,
#contact .poster-stack .pb-coral {
  color: var(--brand-accent) !important;
  -webkit-text-fill-color: var(--brand-accent) !important;
  -webkit-text-stroke: 0 transparent !important;
  text-shadow: none !important;
}

.mesh-hint {
  display: block !important;
  z-index: 8;
  opacity: 1;
}


/* merge pass 10 — correction pass.
   Restore the co-founder section layouts and map treatment, then position the
   ghost numerals vertically from each section's actual kicker. Horizontal
   ghost placement is intentionally left unchanged from pass 09. */

/* The full-width command bar remains, but its outer controls align exactly
   with the same 1240px content shell used by the page below. */
:root { --header-content-gutter: max(24px, calc((100vw - 1240px) / 2)); }
.site-header {
  padding-left: var(--header-content-gutter);
  padding-right: var(--header-content-gutter);
}

/* Use the clean transparent standalone FarOp mark from the pre-merge site.
   Keep the high-resolution wordmark and give both a little more visual weight. */
.brand { width: 238px; height: 54px; gap: 12px; }
.brand-mark { width: 38px; height: 52px; object-fit: contain; }
.brand-wordmark { width: 176px; height: 52px; object-fit: contain; }
.contact-lockup { width: min(350px,100%); height: 80px; gap: 16px; }
.contact-lockup .contact-mark { width: 52px; height: 76px; object-fit: contain; }
.contact-lockup .contact-wordmark { width: 240px; height: 76px; object-fit: contain; object-position:left center; }

/* Undo the pass-08 content displacement. The section content itself goes back
   to the co-founder's rhythm; only the ghost numerals move. */
#platform {
  padding-top: 96px;
  padding-bottom: 96px;
  justify-content: center;
}
#architecture {
  padding-top: 82px;
  padding-bottom: 82px;
  align-content: center;
}
#applications {
  padding-top: 96px;
  padding-bottom: 96px;
}
#ownership {
  padding-top: 96px;
  padding-bottom: 96px;
  justify-content: center;
}

/* Restore the ownership graphic/layout treatment that existed before the
   merge alignment experiments. The SVG artwork itself is untouched. */
#ownership .sovereignty-layout { align-items: center; }
#ownership .sovereignty-map {
  margin-top: 84px;
  align-self: auto;
}
#ownership .sovereignty-copy { align-self: auto; }

/* JS computes --ghost-top from the real kicker position so the bottom of each
   large numeral sits just above its coral section stamp at every viewport.
   Right/left placement is not changed here. */
#platform::after,
#architecture::after,
#applications::after,
#ownership::after {
  top: var(--ghost-top, -90px);
}

/* Keep the visitor instruction visible even while the ambient demo fallback
   is allowed to trigger. */
.mesh-hint {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

@media (max-width: 760px) {
  :root { --header-content-gutter: 14px; }
  #platform, #applications, #ownership { padding-top: 72px; padding-bottom: 72px; }
  #architecture { padding-top: 72px; padding-bottom: 72px; }
  .brand { width: 206px; gap: 10px; }
  .brand-mark { width: 32px; height: 46px; }
  .brand-wordmark { width: 154px; height: 46px; }
  .contact-lockup .contact-mark { width: 42px; height: 62px; }
  .contact-lockup .contact-wordmark { width: 202px; height: 62px; }
}


/* merge pass 11 — fix the numbered-section spacing without touching horizontal
   placement. Each ghost numeral now lives fully inside the TOP of its own
   section. This prevents the preceding section from clipping/covering it and
   gives every numbered section the same vertical sequence:
   previous section ends -> ghost numeral -> coral section stamp -> content. */
:root {
  --numbered-ghost-top: 42px;
  --numbered-content-top: 360px;
}

/* 10% smaller header lockup than pass 10. The header's outer alignment stays
   on the same page-content grid. */
.brand { width: 214px; height: 49px; gap: 11px; }
.brand-mark { width: 34px; height: 47px; }
.brand-wordmark { width: 158px; height: 47px; }

/* Ghosts remain on the exact same horizontal side/edge as before. Only their
   vertical position and the space reserved above section content are changed. */
#platform::after,
#architecture::after,
#applications::after,
#ownership::after {
  top: var(--numbered-ghost-top) !important;
}

#platform {
  padding-top: var(--numbered-content-top);
  padding-bottom: 96px;
  justify-content: flex-start;
}
#architecture {
  padding-top: var(--numbered-content-top);
  padding-bottom: 82px;
  align-content: start;
}
#applications {
  padding-top: var(--numbered-content-top);
  padding-bottom: 96px;
}
#ownership {
  padding-top: var(--numbered-content-top);
  padding-bottom: 96px;
  justify-content: flex-start;
}

@media (max-width: 1080px) {
  :root {
    --numbered-ghost-top: 34px;
    --numbered-content-top: 300px;
  }
}

@media (max-width: 760px) {
  :root {
    --numbered-ghost-top: 24px;
    --numbered-content-top: 220px;
  }
  .brand { width: 185px; height: 44px; gap: 9px; }
  .brand-mark { width: 29px; height: 41px; }
  .brand-wordmark { width: 139px; height: 41px; }
}


/* merge pass 12 — use the co-founder's original Europe map verbatim and
   normalize the END of every numbered section. The large ghost numerals keep
   their pass-11 positions. Removing the viewport minimums means a short
   section can no longer create a larger blank tail than a tall section; every
   numbered section now ends the same fixed distance after its final content. */
:root {
  --numbered-section-end-space: 120px;
}

#platform,
#architecture,
#applications,
#ownership {
  min-height: 0 !important;
  padding-bottom: var(--numbered-section-end-space) !important;
}

/* Preserve the existing top hierarchy from pass 11. These declarations only
   prevent old viewport-centering rules from reintroducing variable empty space. */
#platform,
#ownership {
  justify-content: flex-start !important;
}
#architecture {
  align-content: start !important;
}

@media (max-width: 760px) {
  :root { --numbered-section-end-space: 88px; }
}

/* merge pass 18 — experimental display-coral softening.
   Keep the FarOp coral hue for the large poster lines, but reduce their visual
   mass only: 84% fill intensity, one weight lighter, and ~5% smaller than the
   white line. Small coral UI accents, routes, stamps, and controls stay at the
   original full-strength brand color. */
:root { --display-coral-soft: rgba(255, 99, 120, .84); }

.poster-stack .pb-coral,
#contact .poster-stack .pb-coral {
  color: var(--display-coral-soft) !important;
  -webkit-text-fill-color: var(--display-coral-soft) !important;
  -webkit-text-stroke: 0 transparent !important;
  text-shadow: none !important;
  font-weight: 700;
  font-size: clamp(1.9rem, 3.04vw, 3.325rem);
}

.hero .poster-stack .pb-coral {
  font-size: clamp(2.28rem, 3.895vw, 4.18rem);
}

.contact-intro .poster-stack .pb-coral,
#contact .poster-stack .pb-coral {
  font-size: clamp(1.52rem, 2.28vw, 2.47rem);
}
