:root {
  --ink: #eff7f5; --muted: #8ea29f; --bg: #07110f; --bg-soft: #0c1916; --panel: #10211d;
  --line: #244039; --accent: #72e2bf; --accent-soft: rgba(114,226,191,.12);
  --display: Arial, Helvetica, sans-serif; --body: Arial, Helvetica, sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace; --radius: 3px;
  --shadow: 0 30px 80px rgba(0,0,0,.24);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: #07110f; }
body { margin: 0; background: #07110f; color: #eff7f5; font-family: var(--body); }
a { color: inherit; text-decoration: none; }
button, summary { font: inherit; }

.site {
  min-height: 100vh; color: var(--ink);
  background: linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px), radial-gradient(circle at 82% 9%,var(--accent-soft),transparent 32rem), var(--bg);
  background-size: 64px 64px,64px 64px,auto,auto;
  transition: background-color .25s ease,color .25s ease;
}
.site[data-concept="bastion"] {
  --ink: #f1ede3; --muted: #a69e8e; --bg: #12110f; --bg-soft: #191713; --panel: #1f1c17;
  --line: #3d3528; --accent: #d3a86a; --accent-soft: rgba(211,168,106,.11);
  --display: Georgia,"Times New Roman",serif; --radius: 20px; --shadow: 0 30px 90px rgba(0,0,0,.42);
  background: radial-gradient(circle at 78% 0%,rgba(211,168,106,.14),transparent 34rem), linear-gradient(115deg,transparent 68%,rgba(211,168,106,.035) 68%), var(--bg);
}
.site[data-concept="signal"] {
  --ink: #eef6ff; --muted: #8392a5; --bg: #05070a; --bg-soft: #080d13; --panel: #0b121b;
  --line: #19334c; --accent: #63b3ff; --accent-soft: rgba(99,179,255,.11);
  --display: Arial,Helvetica,sans-serif; --radius: 0; --shadow: 18px 18px 0 rgba(99,179,255,.08);
  background: linear-gradient(90deg,rgba(99,179,255,.025) 1px,transparent 1px),var(--bg); background-size: 32px 100%,auto;
}

.shell { width: min(1180px,calc(100% - 48px)); margin-inline: auto; }
.masthead { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 92px; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 11px; width: max-content; font: 800 15px/1 var(--mono); letter-spacing: .16em; }
.brand-mark { display: grid; place-items: center; width: 30px; height: 30px; color: var(--bg); background: var(--accent); border-radius: var(--radius); font-family: var(--display); letter-spacing: 0; }
.masthead nav { display: flex; gap: 30px; color: var(--muted); font-size: 12px; }
.masthead nav a:hover,.masthead nav a:focus-visible { color: var(--ink); }
.header-contact { justify-self: end; color: var(--accent); font: 600 11px/1 var(--mono); text-transform: uppercase; letter-spacing: .08em; }

.hero { display: grid; grid-template-columns: 1.24fr .76fr; gap: clamp(42px,8vw,120px); align-items: center; min-height: 690px; padding-block: 88px; }
.eyebrow { display: flex; gap: 18px; align-items: center; margin: 0 0 34px; color: var(--accent); font: 600 10px/1.2 var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.eyebrow span+span::before { content: "/"; margin-right: 18px; color: var(--line); }
h1,h2,h3,p { text-wrap: pretty; }
h1 { max-width: 800px; margin: 0; font: 500 clamp(3.6rem,7.4vw,7.2rem)/.9 var(--display); letter-spacing: -.065em; }
.site[data-concept="bastion"] h1 { font-style: italic; letter-spacing: -.055em; }
.site[data-concept="signal"] h1 { max-width: 700px; font-size: clamp(3.2rem,6.4vw,6.2rem); text-transform: uppercase; }
.lead { max-width: 650px; margin: 34px 0 0; color: var(--muted); font-size: clamp(17px,2vw,22px); line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 30px; margin-top: 42px; }
.primary-action { display: inline-flex; align-items: center; gap: 42px; padding: 17px 19px; color: var(--bg); background: var(--accent); border: 1px solid var(--accent); border-radius: var(--radius); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.primary-action:hover,.primary-action:focus-visible { color: var(--accent); background: transparent; }
.text-action { color: var(--muted); font-size: 12px; }
.text-action:hover,.text-action:focus-visible { color: var(--ink); }

.hero-system { align-self: stretch; display: grid; grid-template-rows: auto 1fr auto; min-height: 470px; border: 1px solid var(--line); border-radius: var(--radius); background: color-mix(in srgb,var(--panel) 78%,transparent); box-shadow: var(--shadow); overflow: hidden; }
.system-head,.system-foot { display: flex; justify-content: space-between; padding: 18px 20px; color: var(--muted); font: 500 9px/1 var(--mono); letter-spacing: .1em; border-bottom: 1px solid var(--line); }
.system-foot { border-top: 1px solid var(--line); border-bottom: 0; }
.status { color: var(--accent); }
.status i { display: inline-block; width: 6px; height: 6px; margin-right: 7px; background: var(--accent); border-radius: 50%; box-shadow: 0 0 12px var(--accent); }
.system-core { position: relative; display: grid; place-items: center; min-height: 320px; overflow: hidden; background: radial-gradient(circle,var(--accent-soft),transparent 55%); }
.orbit { position: absolute; border: 1px solid var(--line); border-radius: 50%; }
.orbit-one { width: 62%; aspect-ratio: 1; }
.orbit-two { width: 88%; aspect-ratio: 1; border-style: dashed; animation: spin 34s linear infinite; }
.core-label { z-index: 1; display: grid; place-items: center; width: 116px; aspect-ratio: 1; color: var(--accent); font: 700 11px/1.6 var(--mono); text-align: center; letter-spacing: .13em; border: 1px solid var(--accent); border-radius: 50%; background: var(--bg); box-shadow: 0 0 44px var(--accent-soft); }
.site[data-concept="bastion"] .core-label,.site[data-concept="bastion"] .orbit { border-radius: 16%; transform: rotate(45deg); }
.site[data-concept="bastion"] .core-label br { display: none; }
.site[data-concept="signal"] .hero-system { transform: translate(14px,-14px); }
.site[data-concept="signal"] .system-core { background: repeating-linear-gradient(0deg,transparent 0 23px,var(--accent-soft) 24px); }
.site[data-concept="signal"] .orbit { border-radius: 0; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto!important; animation: none!important; transition: none!important; } }

.proof-strip { border-block: 1px solid var(--line); background: var(--bg-soft); }
.proof-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.proof-grid div { min-height: 134px; padding: 30px 26px; border-left: 1px solid var(--line); }
.proof-grid div:last-child { border-right: 1px solid var(--line); }
.proof-grid strong { display: block; margin-bottom: 10px; color: var(--accent); font: 500 24px/1 var(--display); }
.proof-grid span { color: var(--muted); font-size: 12px; line-height: 1.4; }

.section { padding-block: 130px; }
.section-intro { display: grid; grid-template-columns: .52fr 1.35fr .8fr; gap: 40px; align-items: start; margin-bottom: 62px; }
.section-code { margin: 0; color: var(--accent); font: 600 10px/1.2 var(--mono); letter-spacing: .13em; }
h2 { margin: 0; font: 500 clamp(2.5rem,4.6vw,4.8rem)/1 var(--display); letter-spacing: -.045em; }
.section-intro>p:last-child,.approach-copy>p:last-child { margin: 5px 0 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.services-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { min-height: 330px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: color-mix(in srgb,var(--panel) 42%,transparent); }
.service-card:hover { background: var(--panel); }
.card-index { color: var(--accent); font: 500 10px/1 var(--mono); }
.service-card h3 { margin: 54px 0 16px; font: 600 23px/1.1 var(--display); letter-spacing: -.025em; }
.service-card p { min-height: 100px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.62; }
.service-card ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 24px 0 0; padding: 0; list-style: none; }
.service-card li { padding: 7px 9px; color: var(--muted); font: 500 9px/1 var(--mono); text-transform: uppercase; border: 1px solid var(--line); border-radius: var(--radius); }
.site[data-concept="bastion"] .services-grid { gap: 16px; border: 0; }
.site[data-concept="bastion"] .service-card { border: 1px solid var(--line); border-radius: var(--radius); }

.approach { background: var(--bg-soft); border-block: 1px solid var(--line); }
.approach-inner { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(70px,10vw,150px); }
.approach-copy h2 { margin-top: 30px; }
.steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.steps li { display: grid; grid-template-columns: 58px 1fr; gap: 18px; padding: 29px 0; border-bottom: 1px solid var(--line); }
.steps li>span { color: var(--accent); font: 500 10px/1.4 var(--mono); }
.steps h3 { margin: 0 0 7px; font: 600 24px/1 var(--display); }
.steps p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }

.cta { padding-block: 140px; text-align: center; }
.cta h2 { max-width: 780px; margin: 28px auto 0; }
.cta>p:nth-of-type(2) { max-width: 630px; margin: 28px auto 40px; color: var(--muted); line-height: 1.6; }

footer { padding: 60px 0 28px; background: #030706; border-top: 1px solid var(--line); }
.footer-top { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 30px; align-items: start; padding-bottom: 54px; }
.footer-top p { margin: 0; color: #8d9997; font-size: 13px; line-height: 1.55; }
.footer-top>a:last-child { justify-self: end; color: var(--accent); font: 600 12px/1 var(--mono); }
.disclosures { border-top: 1px solid rgba(255,255,255,.12); }
.disclosures details { border-bottom: 1px solid rgba(255,255,255,.12); }
.disclosures summary { padding: 20px 0; color: #b1bcba; font: 600 11px/1 var(--mono); text-transform: uppercase; letter-spacing: .1em; cursor: pointer; }
.disclosure-copy { max-width: 860px; padding: 4px 0 30px; color: #8d9997; font-size: 12px; line-height: 1.7; }
.disclosure-copy a { color: var(--accent); }
.legal-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px 50px; max-width: none; }
.legal-grid p { margin: 0; }
.legal-grid strong { color: #c9d2d0; }
.compact-disclosures .privacy-brief { max-width: none; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.08); }
.privacy-brief p { max-width: 900px; }
.copyright { margin: 24px 0 0; color: #66706f; font: 500 9px/1 var(--mono); text-transform: uppercase; letter-spacing: .08em; }

@media (max-width: 900px) {
  .masthead { grid-template-columns: 1fr auto; }
  .masthead nav { display: none; }
  .header-contact { grid-column: 2; }
  .hero { grid-template-columns: 1fr; min-height: 0; padding-block: 70px; }
  .hero-system { min-height: 410px; }
  .proof-grid { grid-template-columns: repeat(2,1fr); }
  .section-intro { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: repeat(2,1fr); }
  .approach-inner { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .shell { width: min(100% - 30px,1180px); }
  .masthead { height: 76px; }
  .header-contact { font-size: 9px; }
  .hero { gap: 50px; padding-block: 58px; }
  .eyebrow { display: block; }
  .eyebrow span { display: block; margin-top: 8px; }
  .eyebrow span+span::before { display: none; }
  h1 { font-size: clamp(3.1rem,16vw,5rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-system { min-height: 360px; }
  .proof-grid { grid-template-columns: 1fr 1fr; }
  .proof-grid div { min-height: 110px; padding: 22px 18px; }
  .section { padding-block: 90px; }
  .services-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 0; }
  .service-card p { min-height: 0; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-top>a:last-child { justify-self: start; }
  .legal-grid { grid-template-columns: 1fr; }
}
