
  :root {
    --bg:#101110; --bg-2:#191b17; --bg-3:#22241f;
    --fg:#f3f4f0; --fg-70:rgba(243,244,240,0.72); --fg-55:rgba(243,244,240,0.55);
    --glass:rgba(22,24,20,0.45); --glass-strong:rgba(18,20,16,0.62);
    --line:rgba(243,244,240,0.2); --line-soft:rgba(243,244,240,0.1);
    --rim:inset 0 1.5px 0 rgba(255,255,255,0.28);
    --accent:#6abf4b; --accent-hot:#8fdd6e; --accent-text:#8fdd6e; --on-accent:#0b2003;
    --grad-green:linear-gradient(160deg,#8fdd6e 0%,#6abf4b 48%,#519e35 100%);
    --grad-green-deep:linear-gradient(160deg,#6abf4b 0%,#4f9c33 55%,#37711f 100%);
    --grad-tint:linear-gradient(165deg,rgba(143,221,110,0.16),rgba(79,156,51,0.05));
    --shadow-card:0 8px 24px rgba(0,0,0,0.32);
    --r-canvas:1.6rem; --r-panel:1.3rem; --r-puck:1.1rem; --r-plate:0.9rem; --r-control:0.8rem;
    --ease:cubic-bezier(0.16,1,0.3,1); --dur-1:150ms; --dur-2:250ms;
  }
  [data-theme="light"] {
    --bg:#f1f1ed; --bg-2:#ffffff; --bg-3:#e7e8e2;
    --fg:#161710; --fg-70:rgba(22,23,16,0.74); --fg-55:rgba(22,23,16,0.55);
    --glass:rgba(255,255,255,0.55); --glass-strong:rgba(255,255,255,0.8);
    --line:rgba(22,23,16,0.16); --line-soft:rgba(22,23,16,0.08);
    --rim:inset 0 1.5px 0 rgba(255,255,255,0.9);
    --accent-text:#2f6519; --accent-hot:#58a83c;
    --grad-green:linear-gradient(160deg,#7ecf5c 0%,#63b845 48%,#4c9a31 100%);
    --grad-green-deep:linear-gradient(160deg,#5cae3d 0%,#458c2a 55%,#2f6519 100%);
    --grad-tint:linear-gradient(165deg,rgba(106,191,75,0.14),rgba(47,101,25,0.04));
    --shadow-card:0 8px 24px rgba(22,23,16,0.12);
  }
  * { margin:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { background:var(--bg); color:var(--fg); font-family:Barlow,sans-serif; }
  .caps { font-family:'Barlow Condensed',sans-serif; font-weight:800; text-transform:uppercase; line-height:0.92; }
  .label { font-weight:600; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.18em; }
  .glass { background:var(--glass); backdrop-filter:blur(20px); border:1px solid var(--line); box-shadow:var(--rim), var(--shadow-card); }
  .glass-strong { background:var(--glass-strong); backdrop-filter:blur(20px); border:1px solid var(--line); box-shadow:var(--rim), var(--shadow-card); }
  .wrap { max-width:84rem; margin:0 auto; padding:0 2.5rem; }
  .btn { display:inline-flex; align-items:center; gap:0.6rem; padding:1rem 1.7rem; text-decoration:none; font-weight:600; font-size:0.8rem; letter-spacing:0.18em; text-transform:uppercase; border-radius:var(--r-control); border:none; cursor:pointer; font-family:Barlow,sans-serif; color:var(--fg); transition:transform var(--dur-1) var(--ease), background-position var(--dur-2) var(--ease); }
  .btn-primary { background:var(--grad-green); background-size:150% 100%; color:var(--on-accent); box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.5), 0 6px 18px rgba(0,0,0,0.3); }
  .btn-primary:hover { background-position:90% 0; transform:translateY(-1px); }
  .btn-ghost { background:transparent; border:1px solid var(--line); }
  .btn-sm { padding:0.65rem 1.1rem; font-size:0.72rem; }

  header.lib { padding:3.5rem 0 1.5rem; border-bottom:1px solid var(--line); }
  header.lib h1 { font-size:clamp(2.6rem,5vw,4.5rem); }
  header.lib h1 .g { color:var(--accent-text); }
  header.lib p { margin-top:0.8rem; max-width:64ch; line-height:1.6; color:var(--fg-70); }
  nav.toc { display:flex; flex-wrap:wrap; gap:0.5rem; padding:1.1rem 0; position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--bg) 90%, transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); align-items:center; }
  nav.toc a { color:var(--fg-70); text-decoration:none; padding:0.45rem 0.8rem; border-radius:var(--r-control); }
  nav.toc a:hover { color:var(--accent-text); }
  #themeToggle { margin-left:auto; }
  .sec { padding:4rem 0; border-bottom:1px solid var(--line); }
  .sec > .wrap > .label.secname { color:var(--fg-55); }
  .sec h2 { font-size:2.8rem; margin-top:0.4rem; scroll-margin-top:5rem; }
  .sec p.lede { margin-top:0.8rem; max-width:60ch; color:var(--fg-70); line-height:1.6; }

  /* ---- MAP ---- */
  .maplay { display:grid; grid-template-columns:1fr 1fr; gap:3rem; margin-top:2.5rem; align-items:center; }
  .mapbox { position:relative; }
  .mapbox svg { width:100%; height:auto; display:block; }
  .state { fill:var(--bg-2); stroke:var(--line); stroke-width:1; }
  .pin { cursor:pointer; }
  .pin circle.halo { fill:var(--accent); opacity:0.22; }
  .pin circle.core { fill:var(--accent); stroke:var(--bg); stroke-width:1.4; }
  .pin text { font-family:Barlow,sans-serif; font-weight:600; font-size:4.2px; fill:var(--fg); letter-spacing:0.06em; text-transform:uppercase; }
  .cities { display:flex; flex-direction:column; gap:0.7rem; }
  .cityrow { display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:baseline; padding:0.9rem 1.2rem; border-radius:var(--r-plate); border:1px solid var(--line-soft); transition:border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease); }
  .cityrow:hover, .cityrow.on { border-color:var(--accent); background:var(--grad-tint); }
  .cityrow b { font-size:1.25rem; }
  .cityrow .label { color:var(--accent-text); }
  .mapnote { margin-top:1rem; color:var(--fg-55); font-size:0.85rem; }

  /* ---- PROCESS ---- */
  .phases { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
  .phase { border-radius:var(--r-panel); padding:1.8rem; position:relative; overflow:hidden; background:var(--bg-2); border:1px solid var(--line); }
  .phase::before { content:''; position:absolute; inset:0 0 auto 0; height:3px; background:var(--grad-green); }
  .phase .label.ph { color:var(--accent-text); }
  .phase h3 { font-size:1.9rem; margin-top:0.6rem; }
  .phase ul { margin:1rem 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:0.55rem; color:var(--fg-70); }
  .phase li { display:flex; gap:0.6rem; align-items:flex-start; line-height:1.5; }
  .phase li::before { content:''; width:0.45rem; height:0.45rem; border-radius:50%; background:var(--accent); margin-top:0.5rem; flex:none; }
  .phase .hand { margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--line-soft); color:var(--fg-55); font-size:0.9rem; }

  /* ---- ROUTER ---- */
  .router { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
  .route { border-radius:var(--r-panel); overflow:hidden; text-decoration:none; color:#f3f4f0; position:relative; min-height:19rem; display:flex; align-items:flex-end; border:1px solid var(--line); }
  .route img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 0.5s var(--ease); }
  .route:hover img { transform:scale(1.04); }
  .route::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 30%, rgba(10,11,10,0.85)); }
  .route .in { position:relative; z-index:2; padding:1.5rem; }
  .route h3 { font-size:1.9rem; }
  .route p { margin-top:0.4rem; color:rgba(243,244,240,0.85); line-height:1.5; font-size:0.95rem; }
  .route .label { color:var(--accent-hot); display:inline-block; margin-top:0.8rem; }

  /* ---- CASE STUDY ---- */
  .case { margin-top:2.5rem; border-radius:var(--r-canvas); overflow:hidden; border:1px solid var(--line); }
  .case .hero { position:relative; min-height:24rem; display:flex; align-items:flex-end; }
  .case .hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .case .hero::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,11,10,0.3), transparent 40%, rgba(10,11,10,0.85)); }
  .case .hero .in { position:relative; z-index:2; padding:2rem 2.5rem; color:#f3f4f0; }
  .case .hero h3 { font-size:clamp(2.2rem,4vw,3.6rem); }
  .case .hero .label { color:var(--accent-hot); }
  .case .body { background:var(--bg-2); padding:2.5rem; display:grid; grid-template-columns:2fr 1fr; gap:2.5rem; }
  .case .body h4 { font-size:1.4rem; color:var(--accent-text); font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase; }
  .case .body p { margin-top:0.6rem; line-height:1.65; color:var(--fg-70); }
  .case .body p + h4 { margin-top:1.6rem; }
  .case .facts { display:flex; flex-direction:column; gap:1rem; }
  .case .fact { border-radius:var(--r-puck); padding:1.2rem 1.4rem; position:relative; overflow:hidden; background:var(--bg-3); border:1px solid var(--line-soft); }
  .case .fact::before { content:''; position:absolute; inset:0 0 auto 0; height:3px; background:var(--grad-green); }
  .case .fact .caps { font-size:2rem; color:var(--accent-text); }
  .case .fact p { color:var(--fg-70); font-size:0.9rem; margin-top:0.2rem; }
  .case .quotebar { grid-column:1 / -1; border-top:1px solid var(--line-soft); padding-top:1.8rem; }
  .case .quotebar blockquote { font-size:1.3rem; line-height:1.6; font-weight:500; max-width:60ch; }
  .case .quotebar .label { color:var(--accent-text); margin-top:0.8rem; display:block; }

  /* ---- FACT SHEET + SUBNAV ---- */
  .subnav { display:flex; gap:0.3rem; align-items:center; padding:0.5rem; border-radius:var(--r-puck); width:max-content; margin-top:2.5rem; position:sticky; top:4.4rem; z-index:30; }
  .subnav a { padding:0.6rem 1.1rem; border-radius:var(--r-control); color:var(--fg-70); text-decoration:none; }
  .subnav a.on { background:var(--grad-tint); color:var(--accent-text); font-weight:600; border:1px solid var(--line); }
  .factsheet { margin-top:1.8rem; display:grid; grid-template-columns:1.2fr 1fr; gap:2.5rem; align-items:start; }
  dl.deflist { display:grid; grid-template-columns:11rem 1fr; gap:0; border:1px solid var(--line); border-radius:var(--r-panel); overflow:hidden; }
  dl.deflist dt { padding:1rem 1.3rem; background:var(--line-soft); border-bottom:1px solid var(--line-soft); color:var(--fg-55); }
  dl.deflist dd { padding:1rem 1.3rem; border-bottom:1px solid var(--line-soft); font-weight:500; }
  dl.deflist dt:last-of-type, dl.deflist dd:last-of-type { border-bottom:none; }
  .factimg { border-radius:var(--r-panel); overflow:hidden; border:1px solid var(--line); }
  .factimg img { width:100%; display:block; aspect-ratio:4/3; object-fit:cover; }
  .prevnext { display:flex; justify-content:space-between; gap:1rem; margin-top:1.8rem; }
  .pn { flex:1; max-width:20rem; display:flex; flex-direction:column; gap:0.3rem; border:1px solid var(--line); border-radius:var(--r-plate); padding:1rem 1.3rem; text-decoration:none; color:var(--fg); transition:border-color var(--dur-1) var(--ease); }
  .pn:hover { border-color:var(--accent); }
  .pn.next { text-align:right; margin-left:auto; }
  .pn .label { color:var(--fg-55); }

  /* ---- VIDEO ---- */
  .videosec { margin-top:2.5rem; border-radius:var(--r-canvas); overflow:hidden; position:relative; border:1px solid var(--line); }
  .videosec video { width:100%; display:block; aspect-ratio:16/8; object-fit:cover; }
  .videosec .plate { position:absolute; left:1.4rem; bottom:1.4rem; border-radius:var(--r-plate); padding:0.9rem 1.3rem; color:#f3f4f0; }

  /* ---- NEWSLETTER + banner ---- */
  .announce { display:flex; justify-content:center; gap:0.8rem; align-items:center; padding:0.7rem 1rem; background:var(--grad-green); color:var(--on-accent); font-weight:600; }
  .newsband { display:flex; justify-content:space-between; align-items:center; gap:1.6rem; padding:2.2rem 2.5rem; border-radius:var(--r-panel); flex-wrap:wrap; margin-top:2.5rem; }
  .newsband form { display:flex; gap:0.7rem; flex-wrap:wrap; }
  .input { background:var(--bg-2); border:1px solid var(--line); border-radius:var(--r-control); color:var(--fg); padding:0.9rem 1rem; font-family:Barlow,sans-serif; font-size:1rem; min-width:16rem; }
  .input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
  /* ---- variant catalog chrome ---- */
  .vgroup { padding:4rem 0 1rem; }
  .vgroup > h2 { font-size:2.8rem; scroll-margin-top:5rem; }
  .vgroup > p.lede { margin-top:0.6rem; max-width:62ch; color:var(--fg-70); line-height:1.6; }
  .variant { border:1px dashed var(--line); border-radius:var(--r-panel); overflow:hidden; margin-top:1.8rem; }
  .vlabel { display:flex; justify-content:space-between; padding:0.6rem 1.2rem; background:var(--line-soft); color:var(--fg-55); }
  .vbody { position:relative; }

  /* headers */
  .hdr { display:flex; align-items:center; justify-content:space-between; padding:0.8rem 2rem; }
  .hdr img { height:32px; }
  .hdr nav { display:flex; gap:1.5rem; align-items:center; }
  .hdr a { color:var(--fg); text-decoration:none; }
  .hdr a.on { color:var(--accent-text); }
  .hdr-solid { background:var(--bg-2); border-bottom:3px solid; border-image:var(--grad-green) 1; }
  .hdr-min { display:grid; grid-template-columns:1fr auto 1fr; }
  .hdr-min nav:last-child { justify-content:flex-end; }
  .photoground { background:url('https://res.cloudinary.com/db63jz2w7/image/fetch/w_1200,h_1200,c_limit,q_80/f_webp/https://dash.ironmenproperties.com/assets/83b2d98b-632e-40c6-a7e3-859d4f4b97c0.webp') center/cover; padding:1rem; }
  .hdr-pill { border-radius:var(--r-puck); }

  /* heroes */
  .vhero { position:relative; min-height:26rem; display:grid; place-items:end center; padding:1rem; }
  .vhero .canvas { position:absolute; inset:1rem; border-radius:var(--r-canvas); overflow:hidden; }
  .vhero .canvas img { width:100%; height:100%; object-fit:cover; }
  .vhero .canvas::after { content:''; position:absolute; inset:0; background:radial-gradient(90% 62% at 50% 88%, rgba(10,11,10,0.8), transparent 72%); }
  .vhero .in { position:relative; z-index:2; text-align:center; max-width:46rem; padding-bottom:2.5rem; color:#f3f4f0; }
  .vhero h3 { font-size:clamp(2.2rem,4.5vw,3.8rem); text-shadow:0 2px 24px rgba(10,11,10,0.6); }
  .vhero h3 .g { color:var(--accent-hot); }
  .vhero p { margin-top:0.8rem; color:rgba(243,244,240,0.9); }
  .vhero .acts { display:flex; gap:0.9rem; justify-content:center; margin-top:1.3rem; }
  .vhero-split { display:grid; grid-template-columns:1fr 1fr; min-height:24rem; }
  .vhero-split .copy { padding:2.5rem; display:flex; flex-direction:column; justify-content:center; background:var(--bg-2); }
  .vhero-split .copy h3 { font-size:clamp(2rem,4vw,3.4rem); }
  .vhero-split .copy h3 .g { color:var(--accent-text); }
  .vhero-split .copy p { margin-top:0.8rem; color:var(--fg-70); line-height:1.6; max-width:40ch; }
  .vhero-split .copy .acts { display:flex; gap:0.9rem; margin-top:1.4rem; }
  .vhero-split .ph { position:relative; }
  .vhero-split .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .vhero-slab { position:relative; min-height:28rem; }
  .vhero-slab > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .vhero-slab::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,11,10,0.45), transparent 40%, rgba(10,11,10,0.7)); }
  .vhero-slab .in { position:absolute; left:2rem; bottom:5.5rem; z-index:2; color:#f3f4f0; max-width:36rem; }
  .vhero-slab .in h3 { font-size:clamp(2rem,4vw,3.2rem); text-shadow:0 2px 20px rgba(10,11,10,0.6); }
  .vhero-slab .pucks { position:absolute; left:2rem; right:2rem; bottom:-1.6rem; z-index:3; display:grid; grid-template-columns:repeat(4,1fr); gap:0.9rem; }
  .vpuck { border-radius:var(--r-puck); padding:1.1rem 1.3rem; position:relative; overflow:hidden; }
  .vpuck::before { content:''; position:absolute; inset:0 0 auto 0; height:3px; background:var(--grad-green); }
  .vpuck .caps { font-size:1.9rem; color:var(--accent-text); }
  .vpuck p { font-size:0.82rem; color:var(--fg-70); margin-top:0.15rem; }
  .padpucks { padding:2.6rem 2rem 2rem; }

  /* proof band B: ledger strip */
  .proofstrip { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .proofstrip .c { padding:1.6rem 2rem; border-left:1px solid var(--line-soft); }
  .proofstrip .c:first-child { border-left:none; }
  .proofstrip .caps { font-size:2.2rem; color:var(--accent-text); }
  .proofstrip p { color:var(--fg-70); font-size:0.9rem; margin-top:0.2rem; }

  /* features */
  .ftiles { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; padding:2rem; }
  .ftile { border-radius:var(--r-panel); padding:1.5rem; background:var(--bg-2); border:1px solid var(--line); position:relative; overflow:hidden; }
  .ftile::before { content:''; position:absolute; inset:0 0 auto 0; height:3px; background:var(--grad-green); }
  .ftile h4 { font-size:1.4rem; margin-top:0.8rem; }
  .ftile p { margin-top:0.4rem; color:var(--fg-70); font-size:0.93rem; line-height:1.55; }
  .frows { padding:1rem 2rem 2rem; }
  .frow { display:grid; grid-template-columns:3.2rem 15rem 1fr; gap:1.3rem; align-items:start; padding:1.3rem 0; border-top:1px solid var(--line-soft); }
  .frow h4 { font-size:1.4rem; }
  .frow p { color:var(--fg-70); line-height:1.55; max-width:52ch; }
  .fsplit { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
  .fsplit .tx { padding:2.5rem; }
  .fsplit .tx h4 { font-size:2rem; }
  .fsplit .tx ul { margin:1rem 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:0.5rem; color:var(--fg-70); }
  .fsplit .tx li { display:flex; gap:0.6rem; } .fsplit .tx li::before { content:''; width:0.45rem; height:0.45rem; border-radius:50%; background:var(--accent); margin-top:0.5rem; flex:none; }
  .fsplit .ph { position:relative; min-height:20rem; } .fsplit .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

  /* portfolio */
  .pstrip { display:flex; gap:1rem; overflow-x:auto; padding:2rem; scroll-snap-type:x mandatory; }
  .pstrip a { flex:0 0 20rem; scroll-snap-align:start; position:relative; border-radius:var(--r-panel); overflow:hidden; border:1px solid var(--line); }
  .pstrip img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
  .pstrip .cap { position:absolute; left:0.7rem; right:0.7rem; bottom:0.7rem; border-radius:var(--r-plate); padding:0.6rem 0.9rem; display:flex; justify-content:space-between; align-items:baseline; color:#f3f4f0; }
  .pmosaic { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:8rem; gap:0.9rem; padding:2rem; }
  .pmosaic a { position:relative; border-radius:var(--r-plate); overflow:hidden; }
  .pmosaic img { width:100%; height:100%; object-fit:cover; display:block; }
  .pmosaic .big { grid-column:span 2; grid-row:span 2; }
  .pmosaic .cap { position:absolute; left:0; right:0; bottom:0; padding:1.4rem 0.9rem 0.6rem; background:linear-gradient(transparent, rgba(10,11,10,0.8)); color:#f3f4f0; }
  .prows { padding:1rem 2rem 2rem; }
  .prow2 { display:grid; grid-template-columns:16rem 1fr auto; gap:1.5rem; align-items:center; padding:1.1rem 0; border-top:1px solid var(--line-soft); }
  .prow2 img { width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:var(--r-plate); }
  .prow2 h4 { font-size:1.6rem; } .prow2 .meta { color:var(--fg-55); margin-top:0.2rem; }

  /* testimonials */
  .tsingle { padding:3rem 2rem; text-align:center; }
  .tsingle blockquote { font-size:1.5rem; line-height:1.6; font-weight:500; max-width:52ch; margin:0 auto; }
  .tsingle .label { color:var(--accent-text); margin-top:1.2rem; display:block; }
  .tsplit { display:grid; grid-template-columns:1fr 1.4fr; align-items:stretch; }
  .tsplit .ph { position:relative; min-height:18rem; } .tsplit .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .tsplit .tx { padding:2.5rem; display:flex; flex-direction:column; justify-content:center; background:var(--bg-2); }
  .tsplit blockquote { font-size:1.25rem; line-height:1.6; font-weight:500; }
  .tsplit .dots { display:flex; gap:0.4rem; margin-top:1.4rem; }
  .tsplit .dots i { width:0.55rem; height:0.55rem; border-radius:50%; background:var(--line); } .tsplit .dots i.on { background:var(--accent); }

  /* team */
  .tgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; padding:2rem; }
  .tcard { border-radius:var(--r-panel); overflow:hidden; background:var(--bg-2); border:1px solid var(--line); }
  .tcard img { width:100%; aspect-ratio:1; object-fit:cover; display:block; }
  .tcard .m { padding:0.9rem 1rem; } .tcard .m .label { color:var(--accent-text); margin-top:0.2rem; display:block; }
  .tspot { display:grid; grid-template-columns:14rem 1fr; gap:2rem; padding:2.5rem 2rem; align-items:center; }
  .tspot img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:var(--r-panel); }
  .tspot h4 { font-size:2rem; } .tspot .label { color:var(--accent-text); }
  .tspot p { margin-top:0.7rem; color:var(--fg-70); line-height:1.6; max-width:56ch; }

  /* CTA */
  .ctagrad { background:var(--grad-green-deep); color:#fff; padding:2.6rem 2rem; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; }
  .ctagrad h3 { font-size:2.4rem; }
  .ctagrad .btn { background:#101110; color:#f3f4f0; }
  .ctaphoto { position:relative; min-height:16rem; display:grid; place-items:center; }
  .ctaphoto img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .ctaphoto::before { content:''; position:absolute; inset:0; background:rgba(10,11,10,0.55); }
  .ctaphoto .in { position:relative; z-index:2; text-align:center; color:#f3f4f0; }
  .ctaphoto h3 { font-size:2.4rem; text-shadow:0 2px 18px rgba(10,11,10,0.7); }

  /* FAQ */
  .faq1 { padding:2rem; max-width:46rem; }
  details.acc { border:1px solid var(--line); border-radius:var(--r-plate); overflow:hidden; background:var(--bg-2); }
  details.acc + details.acc { margin-top:0.7rem; }
  details.acc summary { list-style:none; cursor:pointer; padding:1rem 1.2rem; display:flex; justify-content:space-between; font-weight:500; }
  details.acc summary::after { content:'+'; color:var(--accent-text); }
  details.acc[open] summary::after { content:'–'; }
  details.acc .body { padding:0 1.2rem 1rem; color:var(--fg-70); line-height:1.6; }
  .faq2 { display:grid; grid-template-columns:1fr 1.6fr; gap:2.5rem; padding:2rem; }
  .faq2 .side h4 { font-size:1.8rem; } .faq2 .side p { color:var(--fg-70); margin-top:0.6rem; line-height:1.6; }

  /* contact */
  .csplit { display:grid; grid-template-columns:1.4fr 1fr; }
  .csplit .form { padding:2.5rem 2rem; display:grid; gap:1rem; }
  .csplit .form .two { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  .csplit .info { background:var(--bg-2); padding:2.5rem 2rem; border-left:1px solid var(--line); display:flex; flex-direction:column; gap:1.1rem; }
  .csplit .info .item { display:flex; gap:0.8rem; align-items:center; color:var(--fg-70); }
  .ccard { padding:2.5rem 2rem; display:grid; place-items:center; }
  .ccard .inner { border-radius:var(--r-panel); padding:2rem; width:100%; max-width:30rem; display:grid; gap:1rem; }

  /* news */
  .nrows { padding:1.4rem 2rem 2rem; }
  .nrow { display:grid; grid-template-columns:9rem 1fr auto; gap:1.3rem; align-items:center; padding:1rem 0.8rem; border-radius:var(--r-plate); color:var(--fg); text-decoration:none; border:1px solid transparent; }
  .nrow:hover { background:var(--line-soft); border-color:var(--line); }
  .nrow time { color:var(--fg-55); } .nrow .go { color:var(--accent-text); }
  .ncards { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; padding:2rem; }
  .ncard { border-radius:var(--r-panel); overflow:hidden; background:var(--bg-2); border:1px solid var(--line); text-decoration:none; color:var(--fg); display:block; }
  .ncard img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
  .ncard .b { padding:1.1rem 1.2rem 1.3rem; }
  .ncard time { color:var(--fg-55); font-size:0.85rem; }
  .ncard h4 { font-size:1.25rem; line-height:1.25; margin-top:0.4rem; }

  /* footers */
  .fmega { background:var(--bg-2); padding:2.5rem 2rem 0; }
  .fmega .cols { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:2rem; }
  .fmega a { display:block; color:var(--fg-70); text-decoration:none; margin-top:0.5rem; }
  .fmega a:hover { color:var(--accent-text); }
  .fmega .base { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; border-top:1px solid var(--line-soft); margin-top:2rem; padding:1.2rem 0; color:var(--fg-55); }
  .fslim { background:var(--bg-2); padding:1.4rem 2rem; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; }
  .fslim nav { display:flex; gap:1.4rem; }
  .fslim a { color:var(--fg-70); text-decoration:none; }
  .fcta { background:var(--grad-green-deep); }
  .fcta .top { padding:2.4rem 2rem; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; color:#fff; }
  .fcta .top h3 { font-size:2.2rem; }
  .fcta .top .btn { background:#101110; color:#f3f4f0; }
  .fcta .base { background:rgba(10,17,5,0.55); padding:1.2rem 2rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:rgba(255,255,255,0.75); }

  @media (max-width:960px){ .vhero-split,.fsplit,.tsplit,.faq2,.csplit{grid-template-columns:1fr;} .ftiles,.tgrid,.ncards{grid-template-columns:1fr;} .pmosaic{grid-template-columns:1fr 1fr;} .vhero-slab .pucks{grid-template-columns:1fr 1fr;} .fmega .cols{grid-template-columns:1fr;}
 .maplay,.phases,.router,.case .body,.factsheet{grid-template-columns:1fr;} .subnav{position:static;} }

/* ---- brand-color surfaces (tier 2) ---- */
:root { --accent-soft:#1d2b13; --accent-soft-2:#243517; --on-soft:#dff0d3; --on-deep:#f2fae9; }
[data-theme="light"] { --accent-soft:#e6f2dc; --accent-soft-2:#d7e9c8; --on-soft:#1c330e; --on-deep:#f6fbf0; }
.surf-tint { background:var(--accent-soft); color:var(--on-soft); }
.surf-tint .label, .surf-tint .go { color:var(--accent-hot); }
[data-theme="light"] .surf-tint .label { color:#2f6519; }
.surf-deep { background:var(--grad-green-deep); color:var(--on-deep); }
.surf-deep .label { color:#d7f5c2; }
.hdr-deep { background:var(--grad-green-deep); }
.hdr-deep a { color:#f2fae9; } .hdr-deep a.on { color:#d7f5c2; }
.hdr-deep .btn-primary { background:#101110; color:#f3f4f0; box-shadow:none; }
.vhero-drench { display:grid; grid-template-columns:1.1fr 1fr; min-height:24rem; }
.vhero-drench .copy { padding:2.5rem; display:flex; flex-direction:column; justify-content:center; }
.vhero-drench .copy h3 { font-size:clamp(2rem,4vw,3.4rem); }
.vhero-drench .copy p { margin-top:0.8rem; line-height:1.6; max-width:40ch; opacity:0.92; }
.vhero-drench .ph { position:relative; } .vhero-drench .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vhero-tintwash { position:relative; min-height:22rem; display:grid; place-items:center; text-align:center; padding:2.5rem; }
.vhero-tintwash h3 { font-size:clamp(2.2rem,4.5vw,3.6rem); max-width:20ch; }
.vhero-tintwash p { margin-top:0.8rem; max-width:52ch; opacity:0.9; line-height:1.6; }
.statdeep { display:grid; grid-template-columns:repeat(4,1fr); }
.statdeep .c { padding:2rem; border-left:1px solid rgba(255,255,255,0.22); }
.statdeep .c:first-child { border-left:none; }
.statdeep .caps { font-size:2.4rem; color:#fff; }
.statdeep p { opacity:0.85; font-size:0.92rem; margin-top:0.2rem; }
.ftile-deep { border-radius:var(--r-panel); padding:1.5rem; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.25); box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.25); }
.ftile-deep h4 { font-size:1.4rem; } .ftile-deep p { margin-top:0.4rem; opacity:0.9; font-size:0.93rem; line-height:1.55; }
.pl-green { background:var(--grad-green) !important; color:var(--on-accent) !important; border:none !important; }
.pl-green .label { color:#0b2003 !important; }
.tquote-drench { padding:3.5rem 2rem; text-align:center; }
.tquote-drench blockquote { font-size:1.7rem; line-height:1.55; font-weight:500; max-width:46ch; margin:0 auto; }
.tquote-drench .label { margin-top:1.3rem; display:block; }
.newsfeat { display:grid; grid-template-columns:1.2fr 1fr; }
.newsfeat .tx { padding:2.5rem; display:flex; flex-direction:column; justify-content:center; }
.newsfeat .tx h4 { font-size:1.9rem; line-height:1.1; margin-top:0.5rem; }
.newsfeat .ph { position:relative; min-height:16rem; } .newsfeat .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
@media (max-width:960px){ .vhero-drench,.newsfeat{grid-template-columns:1fr;} .statdeep{grid-template-columns:1fr 1fr;} }

.only-light { display:none; } [data-theme="light"] .only-light { display:inline-block; } [data-theme="light"] .only-dark { display:none; }

/* ---- 21st-grounded tier ---- */
.megapanel { margin:0.6rem 2rem 1.4rem; border-radius:var(--r-panel); padding:1rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.megapanel a { display:block; border-radius:var(--r-plate); overflow:hidden; position:relative; color:#f3f4f0; text-decoration:none; }
.megapanel img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.megapanel .cap { position:absolute; left:0; right:0; bottom:0; padding:1.2rem 0.8rem 0.5rem; background:linear-gradient(transparent, rgba(10,11,10,0.85)); }
.herocar { position:relative; min-height:24rem; }
.herocar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.herocar::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,11,10,0.35), transparent 40%, rgba(10,11,10,0.75)); }
.herocar .in { position:absolute; left:2rem; bottom:2rem; color:#f3f4f0; z-index:2; max-width:34rem; }
.herocar .dots { position:absolute; right:2rem; bottom:2.2rem; display:flex; gap:0.45rem; z-index:2; }
.herocar .dots i { width:0.55rem; height:0.55rem; border-radius:50%; background:rgba(243,244,240,0.4); }
.herocar .dots i.on { background:var(--accent); }
.ticker { display:flex; align-items:center; justify-content:space-around; gap:1rem; padding:1.4rem 2rem; flex-wrap:wrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ticker .t { display:flex; gap:0.7rem; align-items:baseline; }
.ticker .caps { font-size:1.8rem; color:var(--accent-text); }
.ticker .label { color:var(--fg-55); }
.tabfeat { padding:2rem; }
.tabfeat .tabs { display:inline-flex; gap:0.4rem; padding:0.4rem; border-radius:var(--r-puck); border:1px solid var(--line); }
.tabfeat .tab { padding:0.6rem 1.1rem; border-radius:var(--r-control); color:var(--fg-70); border:1px solid transparent; background:none; font-family:Barlow,sans-serif; cursor:pointer; }
.tabfeat .tab[aria-selected="true"] { background:var(--grad-tint); color:var(--accent-text); border-color:var(--line); font-weight:600; }
.tabfeat .panel { margin-top:1rem; border:1px solid var(--line); border-radius:var(--r-panel); display:grid; grid-template-columns:1.2fr 1fr; overflow:hidden; }
.tabfeat .panel .tx { padding:1.8rem; }
.tabfeat .panel .tx p { color:var(--fg-70); margin-top:0.6rem; line-height:1.6; }
.tabfeat .panel .ph { position:relative; min-height:14rem; }
.tabfeat .panel .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.featrail { display:grid; grid-template-columns:1.6fr 1fr; gap:1.2rem; padding:2rem; }
.featrail .feat { position:relative; border-radius:var(--r-panel); overflow:hidden; min-height:22rem; border:1px solid var(--line); }
.featrail .feat img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.featrail .feat .cap { position:absolute; left:1rem; right:1rem; bottom:1rem; border-radius:var(--r-plate); padding:0.9rem 1.2rem; color:#f3f4f0; }
.featrail .rail { display:flex; flex-direction:column; gap:0.8rem; }
.featrail .rail a { display:grid; grid-template-columns:5.5rem 1fr; gap:0.9rem; align-items:center; border:1px solid var(--line-soft); border-radius:var(--r-plate); padding:0.6rem; color:var(--fg); text-decoration:none; transition:border-color var(--dur-1) var(--ease); }
.featrail .rail a:hover { border-color:var(--accent); }
.featrail .rail img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:0.5rem; }
.quotewall { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; padding:2rem; }
.qcell { border:1px solid var(--line); border-radius:var(--r-plate); padding:1.3rem; background:var(--bg-2); }
.qcell p { font-weight:500; line-height:1.5; }
.qcell .label { color:var(--accent-text); margin-top:0.8rem; display:block; }
.roster { padding:1.4rem 2rem 2rem; }
.rrow { display:grid; grid-template-columns:3.2rem 1fr auto; gap:1rem; align-items:center; padding:0.7rem 0.6rem; border-top:1px solid var(--line-soft); }
.rrow img { width:2.6rem; height:2.6rem; border-radius:50%; object-fit:cover; }
.rrow .label { color:var(--fg-55); }
.ctasplit { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; }
.ctasplit .tx { padding:2.2rem 2rem; }
.ctasplit form { padding:2.2rem 2rem; display:flex; gap:0.7rem; flex-wrap:wrap; align-items:center; }
.faqgrid { display:grid; grid-template-columns:1fr 1fr; gap:1.6rem 2.4rem; padding:2rem; }
.faqgrid .qa h4 { font-size:1.25rem; }
.faqgrid .qa p { color:var(--fg-70); margin-top:0.4rem; line-height:1.6; }
.contactmap { display:grid; grid-template-columns:1fr 1fr; }
.contactmap .mapside { background:repeating-linear-gradient(45deg, var(--bg-2) 0 14px, var(--bg-3) 14px 28px); display:grid; place-items:center; min-height:18rem; border-left:1px solid var(--line); }
.tlrow { display:grid; grid-template-columns:6rem 1fr; gap:1.4rem; align-items:baseline; padding:1rem 2rem; border-top:1px solid var(--line-soft); }
.tlrow .yr { font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:1.6rem; color:var(--accent-text); }
.tlrow p { color:var(--fg-70); margin-top:0.2rem; }
.footnews .nrowtop { display:flex; justify-content:space-between; align-items:center; gap:1.4rem; padding:1.6rem 2rem; border-bottom:1px solid var(--line-soft); flex-wrap:wrap; }
.footnews .nrowtop form { display:flex; gap:0.7rem; flex-wrap:wrap; }
@media (max-width:960px){ .megapanel,.quotewall{grid-template-columns:1fr;} .tabfeat .panel,.featrail,.ctasplit,.faqgrid,.contactmap{grid-template-columns:1fr;} }

/* ---- content / prose patterns ---- */
.prose { max-width:68ch; font-size:1.1rem; line-height:1.7; color:var(--fg-70); }
.prose h2, .prose h3 { font-family:'Barlow Condensed',sans-serif; font-weight:800; text-transform:uppercase; color:var(--fg); line-height:0.95; }
.prose h2 { font-size:2.1rem; margin:1.8em 0 0.5em; } .prose h3 { font-size:1.5rem; margin:1.6em 0 0.4em; }
.prose > h2:first-child { margin-top:0; }
.prose p + p { margin-top:1em; }
.prose a { color:var(--accent-text); font-weight:500; text-decoration:underline; text-underline-offset:3px; }
.prose ul { margin:1em 0 0 1.2em; } .prose li + li { margin-top:0.4em; } .prose li::marker { color:var(--accent); }
.prose blockquote { margin:1.6em 0; padding:1.2rem 1.5rem; border-radius:var(--r-plate); background:var(--grad-tint); border:1px solid color-mix(in srgb, var(--accent) 35%, transparent); color:var(--fg); font-weight:500; font-size:1.2rem; line-height:1.55; }
.prose blockquote footer { margin-top:0.7rem; font-weight:600; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.18em; color:var(--accent-text); }
.prose figure { margin:1.8em 0; }
.prose figure img { width:100%; border-radius:var(--r-panel); display:block; }
.prose figcaption { margin-top:0.6rem; font-size:0.85rem; color:var(--fg-55); }
.callout { border-radius:var(--r-plate); border:1px solid var(--line); background:var(--bg-2); padding:1.2rem 1.4rem; margin:1.6em 0; display:grid; grid-template-columns:auto 1fr; gap:0.9rem; align-items:start; }
.callout .dotbar { width:3px; align-self:stretch; border-radius:2px; background:var(--grad-green); }
.callout b { color:var(--fg); }
.artmeta { display:flex; gap:1.4rem; flex-wrap:wrap; align-items:baseline; color:var(--fg-55); }
.artmeta .label { color:var(--accent-text); }
.article-c { padding:2.5rem 2rem; display:grid; justify-content:center; }
.article-rail { display:grid; grid-template-columns:1fr 16rem; gap:3rem; padding:2.5rem 2rem; }
.railbox { position:sticky; top:1.5rem; align-self:start; display:flex; flex-direction:column; gap:1rem; }
.railbox .box { border:1px solid var(--line); border-radius:var(--r-plate); padding:1.1rem 1.2rem; background:var(--bg-2); }
.railbox .box a { display:block; color:var(--fg-70); text-decoration:none; margin-top:0.5rem; }
.railbox .box a:hover { color:var(--accent-text); }
.storyflow { display:grid; gap:2rem; padding:2.5rem 2rem; justify-items:center; }
.storyflow .full { width:100%; border-radius:var(--r-panel); overflow:hidden; border:1px solid var(--line); }
.storyflow .full img { width:100%; aspect-ratio:21/9; object-fit:cover; display:block; }
.pressrel { padding:2.5rem 2rem; max-width:72ch; }
.pressrel .prhead { border-bottom:2px solid var(--fg); padding-bottom:1rem; margin-bottom:1.4rem; display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap; }
.pressrel .boiler { margin-top:1.8em; padding-top:1.2em; border-top:1px solid var(--line-soft); font-size:0.92rem; color:var(--fg-55); line-height:1.6; }
@media (max-width:960px){ .article-rail{grid-template-columns:1fr;} .railbox{position:static;} }
