:root {
  --brg-950: #001d18;
  --brg-900: #002820;
  --brg-850: #003128;
  --brg-800: #003b2f;
  --brg-700: #075644;
  --orange: #ff6b1a;
  --orange-2: #ff8a3d;
  --cream: #f4f1e9;
  --paper: #fbfaf6;
  --ink: #10231e;
  --muted: #62706b;
  --line: rgba(16, 35, 30, 0.12);
  --line-dark: rgba(255, 255, 255, 0.12);
  --white: #ffffff;
  --shadow: 0 28px 80px rgba(0,0,0,0.18);
  --radius: 22px;
  --shell: min(1180px, calc(100vw - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
button, input { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 999; background: var(--orange); color: #111; padding: 10px 14px; border-radius: 8px; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 max(24px, calc((100vw - 1180px)/2));
  border-bottom: 1px solid transparent;
  transition: .25s ease;
  color: white;
}
.site-header.scrolled { background: rgba(0,29,24,.92); backdrop-filter: blur(14px); border-color: var(--line-dark); }
.brand { display:flex; align-items:center; gap: 12px; }
.brand-mark { width: 39px; height: 39px; border: 1px solid rgba(255,255,255,.35); display:grid; place-items:center; font-family: Georgia, serif; font-weight:700; letter-spacing:-.03em; }
.brand-copy { display:flex; flex-direction:column; line-height:1.05; }
.brand-copy strong { text-transform:uppercase; letter-spacing:.12em; font-size:.78rem; }
.brand-copy small { color: rgba(255,255,255,.55); margin-top:5px; font-size:.67rem; letter-spacing:.08em; text-transform:uppercase; }
.main-nav { display:flex; align-items:center; gap: 24px; font-size:.86rem; }
.main-nav a { color:rgba(255,255,255,.76); transition:.2s; }
.main-nav a:hover { color:white; }
.nav-cta { background:var(--orange); color:#1a130e !important; padding:10px 16px; border-radius: 8px; font-weight:800; }
.nav-toggle { display:none; width:44px; height:44px; border:0; background:transparent; padding:10px; }
.nav-toggle span:not(.sr-only) { display:block; height:2px; margin:5px 0; background:white; }

.hero { position:relative; min-height: 850px; background: radial-gradient(circle at 70% 10%, #07513e 0, var(--brg-900) 34%, var(--brg-950) 78%); color:white; overflow:hidden; padding-top:78px; }
.hero-grid { position:absolute; inset:0; opacity:.14; background-image: linear-gradient(rgba(255,255,255,.17) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.17) 1px, transparent 1px); background-size: 52px 52px; mask-image: linear-gradient(to bottom, black 0, transparent 76%); }
.hero::after { content:""; position:absolute; inset:0; background: linear-gradient(115deg, rgba(0,29,24,.25), transparent 55%); pointer-events:none; }
.hero-glow { position:absolute; border-radius:50%; filter: blur(35px); opacity:.2; }
.hero-glow-a { width:300px; height:300px; background:var(--orange); right:15%; top:28%; }
.hero-glow-b { width:420px; height:420px; background:#1fd08c; left:-160px; bottom:40px; }
.hero-inner { position:relative; z-index:2; display:grid; grid-template-columns: minmax(0,1.08fr) minmax(420px,.92fr); align-items:center; gap:64px; min-height:700px; padding:70px 0 120px; }
.hero-copy { position:relative; z-index:4; min-width:0; }
.eyebrow { margin:0 0 18px; color:var(--orange-2); font-size:.72rem; letter-spacing:.2em; font-weight:800; text-transform:uppercase; }
.eyebrow.dark { color:#a14514; }
.hero h1, .section h2, .contact-section h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 600; letter-spacing:-.035em; }
.hero h1 { font-size:clamp(3.15rem, 5.35vw, 5.7rem); line-height:.96; margin:0; max-width:760px; text-wrap:balance; }
.hero h1 span { color:#eef5ef; }
.hero-lead { font-size:clamp(1.15rem, 1.8vw, 1.5rem); line-height:1.5; max-width:650px; color:#e1ebe6; margin:30px 0 0; }
.hero-sub { max-width:580px; color:rgba(255,255,255,.64); line-height:1.75; font-size:1rem; }
.hero-actions { display:flex; gap:12px; margin-top:32px; flex-wrap:wrap; }
.button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:12px 18px; border-radius:8px; border:1px solid transparent; font-weight:800; font-size:.88rem; transition:.2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--orange); color:#20150e; box-shadow:0 10px 30px rgba(255,107,26,.2); }
.button-primary:hover { background:var(--orange-2); }
.button-ghost { color:white; border-color:rgba(255,255,255,.28); background:rgba(255,255,255,.03); }
.button-ghost:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.5); }
.hero-meta { display:flex; flex-wrap:wrap; gap:18px 28px; margin-top:34px; color:rgba(255,255,255,.52); font-size:.78rem; }
.status-dot { width:7px; height:7px; display:inline-block; border-radius:50%; background:#5be3a3; box-shadow:0 0 0 5px rgba(91,227,163,.1); margin-right:9px; }

.network-panel { position:relative; z-index:1; min-height:590px; border:0; border-radius:28px; background:linear-gradient(180deg, rgba(9,71,54,.16), rgba(0,23,19,.24)); box-shadow:none; overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.62) 12%, #000 24%, #000 100%); mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.62) 12%, #000 24%, #000 100%); }
.network-panel::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size:36px 36px; }
.panel-kicker { position:absolute; top:24px; left:26px; z-index:3; font-size:.66rem; letter-spacing:.17em; color:rgba(255,255,255,.5); }
.network-map { position:relative; z-index:2; width:100%; height:540px; margin-top:34px; }
.map-outline { fill:rgba(5,84,62,.08); stroke:rgba(106,214,169,.25); stroke-width:1.6; stroke-dasharray:5 7; }
.network-lines line { stroke:rgba(255,107,26,.45); stroke-width:1.5; }
.map-node circle { fill:#74e5b3; filter:url(#glow); }
.map-node-hot circle, .map-node .pulse { fill:var(--orange); }
.map-node .pulse { opacity:.16; animation:pulse 2.8s infinite; }
.map-node text { fill:white; font-size:13px; font-weight:700; }
.map-node .node-sub { fill:rgba(255,255,255,.5); font-size:9px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; }
@keyframes pulse { 0%,100%{ transform:scale(.7); opacity:.08} 50%{transform:scale(1.25); opacity:.22} }
.panel-footer { position:absolute; inset:auto 22px 18px; z-index:3; display:flex; justify-content:space-between; font-size:.58rem; letter-spacing:.17em; color:rgba(255,255,255,.38); }
.hero-strip { position:absolute; inset:auto 0 0; z-index:4; border-top:1px solid rgba(255,255,255,.11); background:rgba(0,20,16,.5); backdrop-filter: blur(10px); }
.strip-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.strip-grid div { min-height:88px; display:flex; align-items:center; gap:13px; padding:0 20px; border-right:1px solid rgba(255,255,255,.1); }
.strip-grid div:first-child { padding-left:0; }
.strip-grid span { color:var(--orange); font-size:.66rem; font-weight:800; }
.strip-grid strong { font-size:.82rem; letter-spacing:.02em; }

.section { padding:112px 0; }
.section-light { background:var(--paper); }
.section-dark { color:white; background:linear-gradient(180deg, var(--brg-950), #00241d); }
.split-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:110px; }
.section-heading h2, .section-top h2, .ai-copy h2 { font-size:clamp(2.4rem, 4vw, 4.5rem); line-height:1.02; margin:0; }
.body-copy { font-size:1.05rem; line-height:1.9; color:#45544f; max-width:700px; }
.body-copy p:first-child { color:var(--ink); font-size:1.2rem; }
.text-link { display:inline-flex; margin-top:20px; gap:10px; color:#8d3c11; font-weight:800; }
.section-top { display:grid; grid-template-columns:1fr .8fr; gap:90px; align-items:end; margin-bottom:46px; }
.section-top > p { color:rgba(255,255,255,.58); line-height:1.7; max-width:520px; justify-self:end; }
.section-top-dark > p { color:var(--muted); }
.expertise-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line-dark); border-left:1px solid var(--line-dark); }
.expertise-card { min-height:265px; padding:30px; border-right:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); background:rgba(255,255,255,.018); transition:.25s; }
.expertise-card:hover { background:rgba(255,255,255,.05); transform:translateY(-3px); }
.expertise-card > span { color:var(--orange); font-size:.7rem; font-weight:800; letter-spacing:.14em; }
.expertise-card h3 { margin:50px 0 12px; font-size:1.2rem; }
.expertise-card p { color:rgba(255,255,255,.55); line-height:1.7; font-size:.92rem; }

.section-cases { background:#eeece6; }
.case-grid { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:16px; }
.case-card { position:relative; overflow:hidden; background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:20px; padding:28px; min-height:390px; display:flex; flex-direction:column; box-shadow:0 12px 30px rgba(22,37,31,.05); }
.case-card::after { content:""; position:absolute; inset:auto -20px -30px auto; width:130px; height:130px; border:1px solid rgba(0,59,47,.08); border-radius:50%; box-shadow:0 0 0 22px rgba(0,59,47,.025), 0 0 0 42px rgba(0,59,47,.02); }
.case-featured { background:var(--brg-800); color:white; }
.case-featured::after { border-color:rgba(255,255,255,.08); box-shadow:0 0 0 22px rgba(255,255,255,.025), 0 0 0 42px rgba(255,255,255,.02); }
.case-label { font-size:.66rem; text-transform:uppercase; letter-spacing:.14em; color:#9b4a1c; font-weight:800; }
.case-featured .case-label { color:var(--orange-2); }
.case-card h3 { font-family:Georgia,serif; font-size:2rem; line-height:1.05; margin:26px 0 18px; }
.case-card p { color:#586660; line-height:1.7; }
.case-featured p { color:rgba(255,255,255,.68); }
.case-result { margin-top:auto; padding-top:22px; border-top:1px solid rgba(0,0,0,.08); font-size:.9rem; line-height:1.65; color:#243c33; }
.case-featured .case-result { border-color:rgba(255,255,255,.12); color:#dce7e2; }
.case-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; position:relative; z-index:2; }
.case-tags span { font-size:.68rem; padding:6px 9px; border-radius:999px; border:1px solid rgba(0,0,0,.11); color:#496158; }
.case-featured .case-tags span { border-color:rgba(255,255,255,.16); color:#d7e5de; }

.section-ai { background:linear-gradient(135deg, #001e19, #003a2e 70%, #052a23); color:white; overflow:hidden; }
.ai-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; align-items:center; }
.ai-visual { min-height:430px; position:relative; display:grid; place-items:center; }
.ai-core { position:relative; z-index:4; width:150px; height:150px; border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; border:1px solid rgba(255,255,255,.22); background:rgba(0,25,20,.6); box-shadow:0 0 70px rgba(255,107,26,.22); }
.ai-core span { font-family:Georgia,serif; font-size:3.6rem; color:var(--orange); }
.ai-core small { color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.15em; }
.orb { position:absolute; border-radius:50%; border:1px solid rgba(111,225,178,.22); }
.orb-1 { width:240px; height:240px; }
.orb-2 { width:340px; height:340px; border-style:dashed; animation:spin 24s linear infinite; }
.orb-3 { width:420px; height:420px; opacity:.55; }
.ai-line { position:absolute; height:1px; background:linear-gradient(90deg, transparent, var(--orange), transparent); width:390px; opacity:.4; }
.l1 { transform:rotate(10deg); }.l2{transform:rotate(70deg)}.l3{transform:rotate(130deg)}
@keyframes spin { to{ transform:rotate(360deg) } }
.ai-copy p { color:rgba(255,255,255,.65); line-height:1.8; }
.ai-copy h2 { margin-bottom:28px; }

.timeline { margin-top:30px; }
.timeline-item { display:grid; grid-template-columns:150px 34px 1fr; gap:20px; min-height:180px; }
.timeline-date { color:#68766f; font-size:.75rem; letter-spacing:.08em; padding-top:5px; }
.timeline-dot { position:relative; width:12px; height:12px; background:var(--orange); border-radius:50%; margin-top:5px; box-shadow:0 0 0 6px rgba(255,107,26,.12); }
.timeline-dot::after { content:""; position:absolute; width:1px; background:#cad0cc; top:19px; bottom:-164px; left:5.5px; }
.timeline-item:last-child .timeline-dot::after { display:none; }
.timeline-content { padding-bottom:52px; border-bottom:1px solid var(--line); }
.timeline-content h3 { margin:0; font-family:Georgia,serif; font-size:1.7rem; }
.timeline-content h4 { margin:8px 0 14px; color:#305548; font-size:.94rem; }
.timeline-content p { color:#66736e; line-height:1.7; max-width:800px; }

.section-ecosystem { background:#001f19; color:white; }
.ecosystem-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; align-items:center; }
.section-ecosystem h2 { font-size:clamp(2.4rem,4vw,4rem); margin:0 0 22px; }
.section-ecosystem .section-heading > p:last-child { color:rgba(255,255,255,.58); line-height:1.8; }
.vendor-cloud { display:grid; grid-template-columns:repeat(3,1fr); border-left:1px solid var(--line-dark); border-top:1px solid var(--line-dark); }
.vendor-cloud span { min-height:92px; display:grid; place-items:center; text-align:center; padding:16px; border-right:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); color:rgba(255,255,255,.74); font-weight:700; transition:.2s; }
.vendor-cloud span:hover { background:rgba(255,255,255,.04); color:white; }

.compact-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.info-card { border:1px solid var(--line); border-radius:16px; padding:26px; background:white; }
.info-card h3 { margin:6px 0 10px; font-family:Georgia,serif; font-size:1.45rem; }
.info-card p { color:#62706b; line-height:1.5; }
.info-card small { color:#7c8983; }

.contact-section { background:var(--orange); color:#1f160f; padding:90px 0; }
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.contact-section .eyebrow { color:#59301a; }
.contact-section h2 { font-size:clamp(2.8rem,5vw,5rem); margin:0 0 16px; }
.contact-section p { max-width:620px; line-height:1.7; }
.contact-actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.contact-section .button-primary { background:#10251f; color:white; box-shadow:none; }
.contact-section .button-ghost { color:#20150e; border-color:rgba(32,21,14,.25); background:rgba(255,255,255,.1); }

.site-footer { background:#00120f; color:rgba(255,255,255,.52); padding:26px 0; font-size:.75rem; }
.footer-inner { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.footer-inner a { color:white; }
.cv-notice { position:fixed; z-index:300; left:50%; bottom:20px; transform:translateX(-50%); max-width:720px; width:calc(100% - 32px); background:#fff; color:#1b2b26; box-shadow:0 20px 70px rgba(0,0,0,.25); padding:18px; border-radius:14px; border-left:5px solid var(--orange); display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; }
.cv-notice span { font-size:.84rem; color:#69756f; }
.cv-notice button { border:0; background:#eceeea; border-radius:8px; padding:8px 12px; cursor:pointer; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 980px) {
  .site-header { padding-inline:20px; }
  .nav-toggle { display:block; position:relative; z-index:3; }
  .main-nav { position:fixed; inset:0; padding:110px 28px 30px; flex-direction:column; align-items:flex-start; gap:18px; background:#001d18; transform:translateX(100%); transition:.25s; font-size:1.25rem; }
  .main-nav.open { transform:none; }
  .hero-inner, .split-layout, .ai-layout, .ecosystem-layout, .contact-layout { grid-template-columns:1fr; }
  .hero-inner { gap:30px; padding-top:55px; }
  .network-panel { min-height:500px; }
  .network-map { height:470px; }
  .hero { min-height: 1260px; }
  .strip-grid { grid-template-columns:repeat(2,1fr); }
  .strip-grid div:nth-child(2) { border-right:0; }
  .section-top { grid-template-columns:1fr; gap:20px; }
  .section-top > p { justify-self:start; }
  .expertise-grid { grid-template-columns:repeat(2,1fr); }
  .case-grid { grid-template-columns:1fr; }
  .ai-layout { gap:40px; }
  .vendor-cloud { grid-template-columns:repeat(2,1fr); }
  .compact-grid { grid-template-columns:1fr; }
  .contact-actions { justify-content:flex-start; }
}

@media (max-width: 640px) {
  :root { --shell: min(100% - 28px, 1180px); }
  .brand-copy small { display:none; }
  .hero h1 { font-size:clamp(2.8rem, 14vw, 4.4rem); }
  .hero-inner { padding-top:44px; padding-bottom:120px; }
  .hero { min-height: 1200px; }
  .network-panel { min-height:430px; border-radius:18px; }
  .network-map { height:420px; transform:scale(.92); }
  .panel-footer { gap:8px; font-size:.5rem; }
  .strip-grid div { min-height:72px; padding:0 10px; }
  .strip-grid div:first-child { padding-left:10px; }
  .strip-grid strong { font-size:.72rem; }
  .section { padding:82px 0; }
  .split-layout, .section-top, .ai-layout, .ecosystem-layout { gap:34px; }
  .expertise-grid { grid-template-columns:1fr; }
  .expertise-card { min-height:220px; }
  .expertise-card h3 { margin-top:36px; }
  .timeline-item { grid-template-columns:1fr; gap:7px; border-left:1px solid #ccd2ce; padding-left:20px; margin-left:6px; }
  .timeline-dot { display:none; }
  .timeline-content { padding-bottom:34px; }
  .vendor-cloud { grid-template-columns:1fr 1fr; }
  .contact-section { padding:70px 0; }
  .contact-actions { flex-direction:column; align-items:stretch; }
  .footer-inner { flex-direction:column; align-items:flex-start; }
  .cv-notice { grid-template-columns:1fr; }
}

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

/* --- V2 additions --- */
.about-heading { max-width:1040px; margin-bottom:48px; }
.about-heading h2 { max-width:1000px; }
.about-layout { display:grid; grid-template-columns:.86fr 1.14fr; gap:90px; align-items:start; }
.about-profile { position:sticky; top:112px; }
.portrait-card { margin:0; position:relative; border-radius:24px; overflow:hidden; background:var(--brg-900); box-shadow:0 24px 60px rgba(0,38,30,.16); }
.portrait-card img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 25%; }
.portrait-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,29,24,.78), transparent 48%); pointer-events:none; }
.portrait-card figcaption { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; color:white; display:flex; flex-direction:column; gap:5px; }
.portrait-card figcaption strong { font-family:Georgia,serif; font-size:1.4rem; }
.portrait-card figcaption span { color:rgba(255,255,255,.72); font-size:.78rem; line-height:1.45; }
.about-copy strong { color:var(--brg-800); }

.expertise-grid { grid-template-columns:repeat(4,1fr); }
.expertise-card { min-height:285px; }
.expertise-card h3 { margin-top:42px; min-height:3.15em; display:flex; align-items:flex-end; }

.case-grid { align-items:stretch; }
.case-card { min-height:570px; }
.case-card p + p { margin-top:0; }
.case-disclaimer { margin:28px 0 0; padding:20px 22px; border:1px solid rgba(0,59,47,.12); border-radius:14px; background:rgba(255,255,255,.55); color:#65726d; line-height:1.7; }
.case-disclaimer strong { color:var(--brg-800); }

.timeline { position:relative; }
.timeline::before { content:""; position:absolute; left:175.5px; top:8px; bottom:70px; width:1px; background:#cad0cc; }
.timeline-dot::after { display:none; }
.timeline-item { min-height:0; }
.timeline-content { padding-bottom:64px; }
.timeline-content p { max-width:850px; }
.timeline-content p + p { margin-top:10px; }

.role-pills { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.role-pills span { border:1px solid rgba(255,255,255,.18); color:#d6e5df; padding:7px 10px; border-radius:999px; font-size:.72rem; font-weight:800; letter-spacing:.03em; }

.section-community { color:white; background:radial-gradient(circle at 15% 25%, #07513e 0, #003229 34%, #001d18 80%); overflow:hidden; }
.community-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:70px; align-items:start; }
.community-lead h2 { font-family:Georgia,serif; font-size:clamp(2.5rem,4.5vw,4.7rem); line-height:1.02; letter-spacing:-.035em; margin:0 0 24px; }
.community-lead > p:last-child { color:rgba(255,255,255,.62); line-height:1.8; max-width:480px; }
.community-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.community-card { min-height:410px; border:1px solid rgba(255,255,255,.12); border-radius:20px; padding:28px; background:rgba(255,255,255,.025); position:relative; overflow:hidden; }
.community-card::after { content:""; position:absolute; width:180px; height:180px; border-radius:50%; border:1px solid rgba(255,255,255,.06); right:-65px; bottom:-70px; box-shadow:0 0 0 26px rgba(255,255,255,.018),0 0 0 54px rgba(255,255,255,.01); }
.community-card-accent { background:linear-gradient(145deg, rgba(255,107,26,.12), rgba(255,255,255,.02)); border-color:rgba(255,107,26,.27); }
.community-number { color:var(--orange); font-weight:800; font-size:.7rem; letter-spacing:.15em; }
.community-card h3 { font-family:Georgia,serif; font-size:1.85rem; line-height:1.1; margin:42px 0 18px; }
.community-card p { color:rgba(255,255,255,.64); line-height:1.75; }
.community-card strong { position:absolute; z-index:2; left:28px; right:28px; bottom:26px; color:#dbe8e3; font-size:.72rem; line-height:1.5; letter-spacing:.04em; }

@media (max-width: 980px) {
  .about-layout, .community-layout { grid-template-columns:1fr; }
  .about-profile { position:static; }
  .portrait-card { max-width:580px; }
  .expertise-grid { grid-template-columns:repeat(2,1fr); }
  .community-cards { grid-template-columns:1fr 1fr; }
}

@media (max-width: 640px) {
  .expertise-grid, .community-cards { grid-template-columns:1fr; }
  .portrait-card { margin-top:28px; }
  .case-card { min-height:0; }
  .timeline::before { display:none; }
  .community-card { min-height:390px; }
}

/* v2.1: hero clarity, full-width about heading, expertise copy alignment */

/* Mobile horizontal overflow fix */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}

@supports not (overflow: clip) {
    html,
    body {
        overflow-x: hidden;
    }
}

/* Prevent grid/flex children from forcing viewport wider */
.hero-inner > *,
.split-layout > *,
.section-top > *,
.ai-layout > *,
.ecosystem-layout > *,
.about-layout > *,
.community-layout > *,
.contact-layout > * {
    min-width: 0;
}

@media (max-width: 980px) {
    .main-nav {
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 640px) {
    .shell {
        max-width: calc(100% - 28px);
    }

    .network-panel,
    .network-map,
    .hero,
    .section,
    .site-header {
        max-width: 100%;
    }
}

/* mobile header fix */
@media (max-width: 640px) {
    .hero-copy {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .hero h1 {
        font-size: clamp(2rem, 9vw, 2.75rem);
        line-height: 1.02;
        max-width: 100%;
        letter-spacing: -0.04em;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .hero .eyebrow {
        font-size: 0.66rem;
        line-height: 1.45;
        letter-spacing: 0.14em;
        max-width: 100%;
    }

    .hero-lead {
        font-size: 1.05rem;
        line-height: 1.45;
        max-width: 100%;
    }

    .hero-sub {
        font-size: 0.92rem;
        line-height: 1.6;
        max-width: 100%;
    }
}

@media (max-width: 640px) {
    .about h2,
    .section h2 {
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: auto;
        max-width: 100%;
    }
}
