* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: #08121b; }
body, h1, h2, h3, p, dl, dd, ol { margin: 0; }
body { overflow-x: hidden; background: #f4f2ed; color: #0a1721; font-family: "Avenir Next", "Helvetica Neue", Arial, sans-serif; line-height: 1.5; -webkit-font-smoothing: antialiased; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
:root { --ink:#08121b; --navy:#0b1c29; --blue:#0b5270; --accent:#9cc5d2; --copper:#b68155; --paper:#f4f2ed; --white:#fff; --line:#cbd0cf; --serif:"Iowan Old Style", Baskerville, "Times New Roman", serif; --sans:"Avenir Next", "Helvetica Neue", Arial, sans-serif; --pad:clamp(1.4rem,5vw,5.5rem); }
::selection { color:#fff; background:var(--blue); }
:focus-visible { outline:2px solid #55b9d6; outline-offset:5px; }
h1, h2, h3 { font-family:var(--serif); font-weight:400; letter-spacing:-.04em; line-height:.98; }
h1 { font-size:clamp(4.5rem,8.8vw,9.4rem); }
h2 { font-size:clamp(3.6rem,6.6vw,7rem); }
h3 { font-size:clamp(1.65rem,2.3vw,2.55rem); }
h1 em, h2 em { color:var(--accent); font-weight:400; }
.section { position:relative; padding:clamp(7rem,12vw,12rem) var(--pad); }
.eyebrow { font-size:.62rem; font-weight:700; letter-spacing:.2em; line-height:1.2; text-transform:uppercase; }
.eyebrow.dark { color:var(--blue); }
.section-label { position:absolute; left:var(--pad); top:3.5rem; color:#65727a; font-size:.55rem; font-weight:700; letter-spacing:.18em; }
.section-label.light { color:rgba(255,255,255,.5); }
.skip-link { position:fixed; z-index:1000; left:1rem; top:-5rem; padding:.8rem 1rem; color:var(--ink); background:#fff; }
.skip-link:focus { top:1rem; }

.site-header { position:fixed; z-index:90; inset:0 0 auto; height:84px; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:2rem; padding:0 var(--pad); color:#fff; border-bottom:1px solid rgba(255,255,255,.22); background:linear-gradient(180deg,rgba(4,11,17,.72),transparent); transition:height .35s ease,background .35s ease; }
.site-header.scrolled { height:66px; background:rgba(8,18,27,.95); backdrop-filter:blur(14px); }
.brand { display:block; width:max-content; }
.brand-logo { width:auto; height:64px; transition:height .35s ease; }
.site-header.scrolled .brand-logo { height:54px; }
.site-header nav { justify-self:end; display:flex; gap:clamp(1.4rem,3vw,3.2rem); }
.site-header nav a { color:rgba(255,255,255,.7); font-size:.56rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; transition:color .2s ease; }
.site-header nav a:hover { color:#fff; }
.mobile-contact { display:none; justify-self:end; color:rgba(255,255,255,.7); font-size:.56rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; transition:color .2s ease; }
.mobile-contact:hover { color:#fff; }

.hero { position:relative; min-height:calc(100svh + 72px); display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; color:#fff; }
.hero>img { position:absolute; z-index:-3; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.45) contrast(1.08); }
.hero-overlay { position:absolute; z-index:-2; inset:0; background:linear-gradient(90deg,rgba(4,11,17,.86),rgba(4,11,17,.22) 70%),linear-gradient(180deg,rgba(4,11,17,.05),rgba(4,11,17,.83)); }
.hero-copy { width:min(1180px,86vw); padding:0 var(--pad) 9vh; }
.hero-copy h1 { max-width:1120px; margin:1.25rem 0 2rem; }
.hero-copy h1 em { display:block; margin-left:10vw; }
.hero-copy>p:last-of-type { width:min(560px,80vw); margin-left:41vw; color:rgba(255,255,255,.73); font-size:1.05rem; }
.button { display:inline-flex; align-items:center; justify-content:center; min-width:210px; padding:1rem 1.2rem; border:1px solid currentColor; font-size:.57rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; transition:background .22s ease,color .22s ease; }

.facts { min-height:210px; display:grid; grid-template-columns:repeat(4,1fr); color:#fff; background:var(--blue); }
.facts>div { min-width:0; display:flex; gap:1.3rem; align-items:center; padding:2.3rem clamp(1.2rem,2.8vw,3rem); border-right:1px solid rgba(255,255,255,.22); }
.facts>div:last-child { border-right:0; }
.facts strong { white-space:nowrap; font-family:var(--serif); font-size:clamp(2.5rem,3.4vw,4.2rem); font-weight:400; line-height:.8; }
.facts span { font-size:.51rem; letter-spacing:.13em; color:rgba(255,255,255,.65); }

.firm { min-height:900px; display:grid; grid-template-columns:1.4fr .7fr; gap:9vw; align-items:center; background:var(--paper); }
.firm-statement h2 { margin-top:1.4rem; }
.firm-statement h2 em { color:var(--blue); }
.firm-copy { align-self:end; padding-bottom:1.3rem; }
.firm-copy .lead { margin-bottom:2rem; font-family:var(--serif); font-size:clamp(1.5rem,2.3vw,2.3rem); line-height:1.25; }
.firm-copy>p:last-child { color:#4e5c64; }

.principles { display:grid; grid-template-columns:repeat(4,1fr); color:var(--ink); background:#e8e7e2; border-block:1px solid var(--line); }
.principles article { min-height:340px; display:flex; flex-direction:column; justify-content:center; padding:2.5rem; border-right:1px solid var(--line); }
.principles article:last-child { border-right:0; }
.principles h3 { margin-bottom:1.2rem; }
.principles p { color:#56636a; font-size:.88rem; }

.security.dark-section { min-height:920px; display:grid; grid-template-columns:1.2fr .7fr; grid-template-rows:auto auto; gap:5rem 9vw; align-content:center; overflow:hidden; isolation:isolate; background:var(--navy); border-bottom:1px solid rgba(255,255,255,.16); }
.security.dark-section::before { content:""; position:absolute; z-index:-2; inset:0; background:url("assets/energy-security-background.webp?v=20260820-green") center/cover no-repeat; filter:saturate(.72) contrast(1.08); }
.security.dark-section::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(4,13,21,.92) 0%,rgba(5,20,31,.76) 52%,rgba(5,19,29,.58) 100%),linear-gradient(180deg,rgba(4,12,19,.18),rgba(4,12,19,.68)); }
.security-heading h2 { margin-top:1.4rem; }
.security-copy { align-self:end; color:rgba(255,255,255,.64); }
.security-copy .lead { margin-bottom:1.8rem; color:#fff; font-family:var(--serif); font-size:clamp(1.45rem,2.2vw,2.2rem); line-height:1.28; }
.security-themes { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); margin-top:2rem; border-block:1px solid rgba(255,255,255,.24); background:rgba(6,20,30,.34); backdrop-filter:blur(3px); }
.security-themes span { padding:1.3rem; border-right:1px solid rgba(255,255,255,.24); color:rgba(255,255,255,.58); font-size:.52rem; letter-spacing:.15em; text-align:center; }
.security-themes span:last-child { border-right:0; }

.dark-section { color:#fff; background:var(--ink); }
.platform { min-height:1250px; display:grid; grid-template-columns:1.3fr .7fr; grid-template-rows:auto auto; gap:3rem 8vw; align-content:center; }
.platform-heading h2 { margin-top:1.3rem; }
.platform-intro { align-self:end; max-width:430px; color:rgba(255,255,255,.64); }
.phase-table { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); margin-top:5rem; border-block:1px solid rgba(255,255,255,.24); }
.phase-table article { min-height:500px; display:flex; flex-direction:column; padding:2rem; border-right:1px solid rgba(255,255,255,.24); }
.phase-table article:last-child { border-right:0; }
.phase-table h3 { margin:2.5rem 0 1.5rem; font-size:clamp(1.7rem,2.4vw,2.75rem); }
.phase-table p { color:rgba(255,255,255,.58); }
.phase-table dl { margin-top:auto; padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.2); }
.phase-table dt { margin-bottom:.35rem; color:rgba(255,255,255,.4); font-size:.48rem; letter-spacing:.13em; text-transform:uppercase; }
.phase-table dd { font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.disclaimer { grid-column:1/-1; color:rgba(255,255,255,.35); font-size:.45rem; letter-spacing:.09em; text-transform:uppercase; }

.campus { position:relative; min-height:950px; display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; color:#fff; }
.campus-overlay { position:absolute; z-index:-2; inset:0; background:linear-gradient(180deg,rgba(6,16,24,.05),rgba(6,16,24,.92)),linear-gradient(90deg,rgba(6,16,24,.55),transparent); }
.campus-background { position:absolute; z-index:-3; inset:0; display:block; width:100%; height:100%; }
.campus-background img { width:100%; height:100%; object-fit:cover; object-position:58% center; filter:saturate(.62) contrast(1.06); }
.campus-copy { width:100%; padding:0 var(--pad) 6rem; }
.campus-copy h2 { margin:1.3rem 0 3rem; }
.campus-features { display:grid; grid-template-columns:repeat(4,1fr); width:min(1080px,100%); border-block:1px solid rgba(255,255,255,.42); }
.campus-features span { padding:1.2rem; border-right:1px solid rgba(255,255,255,.32); font-size:.54rem; letter-spacing:.12em; text-transform:uppercase; }
.campus-features span:last-child { border-right:0; }

.operating-system { min-height:920px; display:grid; grid-template-columns:.8fr 1.2fr; gap:6rem 10vw; align-content:center; background:#e8e7e2; }
.system-heading h2 { margin:1.4rem 0 2rem; }.system-heading h2 em { color:var(--blue); }
.system-heading>p:last-child { max-width:430px; color:#56636a; }
.system-flow { align-self:center; display:grid; grid-template-columns:repeat(4,1fr); grid-column:1/-1; list-style:none; padding:0; border-block:1px solid var(--line); }
.system-flow li { position:relative; min-width:0; min-height:250px; display:flex; flex-direction:column; justify-content:flex-end; padding:1.5rem; border-right:1px solid var(--line); }
.system-flow li:last-child { border-right:0; }
.system-flow li::before { content:""; position:absolute; left:1.5rem; right:1.5rem; top:4.5rem; height:1px; background:var(--blue); }
.system-flow li::after { content:""; position:absolute; right:1.2rem; top:4.25rem; width:7px; height:7px; border-radius:50%; background:var(--copper); }
.system-flow li:last-child::after { background:var(--blue); box-shadow:0 0 0 8px rgba(11,82,112,.12); }
.system-flow strong { font-family:var(--serif); font-size:clamp(1.5rem,2.2vw,2.4rem); font-weight:400; letter-spacing:-.03em; }
.system-flow small { margin-top:.5rem; color:#647077; font-size:.5rem; letter-spacing:.1em; text-transform:uppercase; }

.approach { min-height:1200px; display:grid; grid-template-columns:1.25fr .6fr; gap:4rem 9vw; align-content:center; background:var(--paper); }
.approach-heading h2 { margin-top:1.4rem; }.approach-heading h2 em { color:var(--blue); }
.approach-copy { align-self:end; color:#4e5c64; }
.value-steps { grid-column:1/-1; list-style:none; margin-top:4rem; padding:0; border-top:1px solid var(--line); }
.value-steps li { display:grid; grid-template-columns:1fr; align-items:start; padding:2rem 0; border-bottom:1px solid var(--line); }
.value-steps li>div { display:grid; grid-template-columns:.7fr 1fr; gap:5vw; }
.value-steps h3 { font-size:clamp(1.8rem,2.8vw,3rem); }
.value-steps p { color:#536067; }

.market-panel { position:relative; min-height:950px; display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; padding:8rem var(--pad); overflow:hidden; isolation:isolate; color:#fff; background:var(--blue); }
.market-panel::before { content:""; position:absolute; z-index:0; inset:0; background:url("assets/market-demand-background.webp") center/cover no-repeat; filter:saturate(.75) contrast(1.06); }
.market-panel::after { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(3,15,24,.88) 0%,rgba(4,29,42,.68) 48%,rgba(3,24,36,.74) 100%),linear-gradient(180deg,rgba(2,12,19,.12),rgba(2,12,19,.68)); }
.market-copy { position:relative; z-index:2; }
.market-copy h2 { margin:1.4rem 0 2rem; font-size:clamp(3.7rem,6vw,6.8rem); }
.market-copy>p { max-width:560px; color:rgba(255,255,255,.68); }
.market-data { position:relative; z-index:2; }
.market-data>div { display:grid; grid-template-columns:1.25fr .75fr; align-items:baseline; gap:1.5rem; padding:1.25rem 0; border-top:1px solid rgba(255,255,255,.36); }
.market-data strong { white-space:nowrap; font-family:var(--serif); font-size:clamp(2.6rem,4.5vw,4.9rem); font-weight:400; letter-spacing:-.04em; line-height:.85; }
.market-data span { font-size:.53rem; letter-spacing:.14em; }
.market-source { position:absolute; z-index:2; left:var(--pad); bottom:2rem; color:rgba(255,255,255,.52); font-size:.44rem; letter-spacing:.1em; text-transform:uppercase; }
.market-regions { position:relative; z-index:2; grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); margin-top:2rem; border-block:1px solid rgba(255,255,255,.28); background:rgba(4,39,55,.28); backdrop-filter:blur(3px); }
.market-regions span { padding:1.1rem; border-right:1px solid rgba(255,255,255,.24); color:rgba(255,255,255,.56); font-size:.5rem; letter-spacing:.11em; text-transform:uppercase; }
.market-regions span:last-child { border-right:0; }
.market-regions b { display:block; margin-bottom:.35rem; color:#fff; font-size:.54rem; }

.leadership { min-height:1050px; display:grid; grid-template-columns:1.2fr .65fr; grid-template-rows:auto auto auto; gap:3rem 8vw; align-content:center; }
.leadership-heading h2 { margin-top:1.3rem; }
.leadership-copy { align-self:end; color:rgba(255,255,255,.6); }
.credentials { grid-column:1/-1; min-width:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:4rem; border-block:1px solid rgba(255,255,255,.24); }
.credentials>div { min-width:0; min-height:220px; display:grid; grid-template-rows:auto auto; align-content:center; justify-items:center; gap:1rem; padding:1.75rem; border-right:1px solid rgba(255,255,255,.24); text-align:center; }
.credentials>div:last-child { border-right:0; }
.credentials strong { max-width:100%; white-space:nowrap; font-family:var(--serif); color:var(--accent); font-size:clamp(2.4rem,3.7vw,4.4rem); font-weight:400; line-height:.9; }
.credentials span { max-width:240px; color:rgba(255,255,255,.5); font-size:.5rem; line-height:1.45; letter-spacing:.13em; overflow-wrap:anywhere; }
.leadership-note { grid-column:1/-1; display:flex; justify-content:space-between; color:rgba(255,255,255,.38); font-size:.48rem; letter-spacing:.13em; }

.contact { min-height:1050px; display:grid; grid-template-columns:.8fr 1.2fr; gap:6rem 10vw; align-items:center; background:var(--paper); }
.contact-copy h2 { margin:1.4rem 0 2rem; }.contact-copy h2 em { color:var(--blue); }
.contact-copy>p { max-width:650px; color:#4d5a62; font-family:var(--serif); font-size:1.35rem; }
.form-embed-shell { align-self:center; padding:2.5rem; background:#fff; border:1px solid var(--line); box-shadow:0 24px 70px rgba(8,18,27,.08); }
.form-embed-frame { display:block; width:100%; height:720px; border:0; background:#fff; }
.form-embed-note { margin-top:1.2rem; color:#7b8589; font-size:.55rem; line-height:1.5; letter-spacing:.06em; text-transform:uppercase; }

footer { min-height:360px; display:grid; grid-template-columns:1.3fr repeat(3,1fr); grid-template-rows:1fr auto; gap:3rem; padding:5rem var(--pad) 2rem; color:rgba(255,255,255,.45); background:#03090e; font-size:.52rem; letter-spacing:.08em; text-transform:uppercase; }
.footer-brand { display:block; width:max-content; }
.footer-brand img { width:160px; height:auto; }
footer>div { display:flex; flex-direction:column; gap:.7rem; }
footer>div span { margin-bottom:.4rem; color:rgba(255,255,255,.75); }
footer>div a:hover { color:#fff; }
footer>p { padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.13); }
footer>p:nth-last-child(2) { grid-column:1/4; } footer>p:last-child { text-align:right; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal.visible { opacity:1; transform:none; }

@media (max-width:980px) {
  .site-header { grid-template-columns:1fr auto; }.site-header nav { display:none; }.mobile-contact { display:block; }
  .hero-copy>p:last-of-type { margin-left:25vw; }
  .facts { grid-template-columns:repeat(2,1fr); }.facts>div:nth-child(2) { border-right:0; }.facts>div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.22); }
  .firm,.security.dark-section,.platform,.operating-system,.approach,.leadership,.contact { grid-template-columns:1fr; }
  .firm-copy,.security-copy,.platform-intro,.approach-copy,.leadership-copy,.contact-copy { max-width:620px; }
  .phase-table { grid-template-columns:1fr; }.phase-table article { min-height:390px; border-right:0; border-bottom:1px solid rgba(255,255,255,.24); }.phase-table article:last-child { border-bottom:0; }
  .principles { grid-template-columns:repeat(2,1fr); }.principles article:nth-child(2) { border-right:0; }.principles article:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .market-panel { grid-template-columns:1fr; }
  .credentials { grid-template-columns:1fr; }.credentials>div { border-right:0; border-bottom:1px solid rgba(255,255,255,.24); }.credentials>div:last-child { border-bottom:0; }
  .system-flow { grid-template-columns:repeat(4,1fr); }
}

@media (max-width:620px) {
  :root { --pad:1.3rem; }.site-header { height:68px;padding-inline:1.15rem; }.brand-logo { height:50px; }.site-header.scrolled .brand-logo { height:46px; }.mobile-contact { font-size:.48rem; }
  .hero { min-height:980px; }.hero>img { object-position:55% center; }.hero-copy { width:100%;padding-bottom:7rem; }.hero-copy h1 { font-size:18vw; }.hero-copy h1 em { margin-left:0; }.hero-copy>p:last-of-type { width:90%;margin-left:0;font-size:.9rem; }
  .facts { grid-template-columns:1fr; }.facts>div { min-height:160px;border-right:0;border-bottom:1px solid rgba(255,255,255,.22)!important; }.facts>div:last-child { border-bottom:0!important; }
  .firm-statement h2,.security-heading h2,.platform-heading h2,.system-heading h2,.approach-heading h2,.leadership-heading h2,.contact-copy h2 { font-size:14vw; }
  .principles { grid-template-columns:1fr; }.principles article { min-height:280px;border-right:0;border-bottom:1px solid var(--line)!important; }.principles article:last-child { border-bottom:0!important; }
  .security.dark-section { min-height:auto;gap:3rem; }.security.dark-section::before { background-image:url("assets/energy-security-background-mobile.webp?v=20260820-green"); background-position:center 58%; }.security.dark-section::after { background:linear-gradient(180deg,rgba(4,13,21,.84),rgba(4,15,23,.72) 46%,rgba(4,12,19,.84)); }.security-themes { grid-template-columns:1fr; }.security-themes span { border-right:0;border-bottom:1px solid rgba(255,255,255,.24); }.security-themes span:last-child { border-bottom:0; }
  .platform { min-height:auto;gap:2.5rem; }.phase-table { margin-top:2rem; }.phase-table article { min-height:370px;padding:1.5rem; }.phase-table h3 { margin-top:2rem; }
  .campus { min-height:760px; }.campus-background img { object-position:center 62%; }.campus-copy { padding-bottom:3rem; }.campus-copy h2 { font-size:14vw; }.campus-features { grid-template-columns:repeat(2,1fr); }.campus-features span:nth-child(2) { border-right:0; }.campus-features span:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.32); }
  .operating-system { min-height:auto;gap:3rem; }.system-flow { grid-template-columns:1fr; }.system-flow li { min-height:170px;border-right:0;border-bottom:1px solid var(--line); }.system-flow li:last-child { border-bottom:0; }
  .approach { min-height:auto;gap:3rem; }.value-steps { margin-top:1rem; }.value-steps li { grid-template-columns:1fr; }.value-steps li>div { grid-template-columns:1fr;gap:1rem; }
  .market-panel { min-height:950px;padding-block:7rem; }.market-panel::before { background-image:url("assets/market-demand-background-mobile.webp"); background-position:center; }.market-panel::after { background:linear-gradient(180deg,rgba(3,15,24,.82),rgba(4,29,42,.72) 50%,rgba(3,18,28,.88)); }.market-copy h2 { font-size:14vw; }.market-data>div { grid-template-columns:1fr;gap:.65rem; }.market-data strong { font-size:clamp(2.5rem,11.5vw,3.25rem); }.market-source { max-width:80%;line-height:1.5; }
  .market-regions { grid-template-columns:1fr; }.market-regions span { border-right:0;border-bottom:1px solid rgba(255,255,255,.24); }.market-regions span:last-child { border-bottom:0; }
  .leadership { min-height:auto;gap:2.5rem; }.credentials { margin-top:1rem; }.credentials>div { min-height:160px;padding:1.3rem; }.leadership-note { flex-wrap:wrap;gap:1rem 2rem; }
  .contact { min-height:auto;gap:3rem; }.contact-copy>p { font-size:1.1rem; }.form-embed-shell { padding:1.35rem; }.form-embed-frame { height:900px; }
  footer { grid-template-columns:1fr;grid-template-rows:auto;min-height:620px; }.footer-brand { margin-bottom:1rem; }footer>p:nth-last-child(2),footer>p:last-child { grid-column:1;text-align:left; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.reveal { opacity:1;transform:none;transition:none; } }
