/* The homepage (index.html), layered on home.css: the v3 rebuild, one control plane told as six
   capabilities (Discover, Understand, Control, Detect, Protect, Prove), each with an illustrative
   panel. Everything here is scoped to body.home so the shared components in home.css stay as the
   other pages use them. */
:root {
  --mint-line:#CDEFEB; --rose-wash:#FFF1F3; --rose-line:#FBCFD8;
  --amber-ink:#B45309; --amber-wash:#FFFBEB; --amber-line:#FDE68A;
  --dim-dark:#6F84A2;
}
.home h1, .home h2, .home h3 { text-wrap:balance; }
.home figure { margin:0; }
.home .wrap > *, .home .split > *, .home .hero-inner > *, .home .demo-inner > *, .home .case > * { min-width:0; }

/* hero */
.home .hero-inner { grid-template-columns:1fr; gap:44px; padding-block:64px 80px; }
@media (min-width:981px) { .home .hero-inner { grid-template-columns:1fr 1.02fr; gap:56px; padding-block:88px 100px; } }
.home .hero h1 { font-size:clamp(36px,4.4vw,56px); }
.home .hero .lede { max-width:36ch; }
.home .hero-meta { margin-top:26px; letter-spacing:.06em; }
.dcard { background:linear-gradient(180deg,#0D2346,#0A1C38); border:1px solid rgba(255,255,255,.12); border-radius:12px; box-shadow:0 40px 80px -30px rgba(0,0,0,.7), 0 0 0 1px rgba(20,228,208,.05); overflow:hidden; }
.dcard-head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line-dark); color:var(--on-dark-2); font-family:var(--mono); font-size:12.5px; letter-spacing:.06em; }
.dcard-head .t { display:flex; align-items:center; }
.dcard-head .dots { display:flex; gap:6px; margin-right:14px; }
.dcard-head .dots i { width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.14); }
.hv-wrap { padding:8px 10px 2px; overflow-x:auto; }
.hv-wrap svg { display:block; width:100%; height:auto; }
.hv text { font-family:var(--sans); }
.hv .mono { font-family:var(--mono); }
.dcard-foot { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:13px 18px; border-top:1px solid var(--line-dark); color:var(--dim-dark); font-family:var(--mono); font-size:11px; letter-spacing:.04em; }
.dcard-foot b { color:var(--teal); font-weight:500; }
.cap-dark { margin-top:12px; font-family:var(--mono); font-size:11px; color:#5E7391; letter-spacing:.06em; }

/* bands */
.home section.band { padding-block:clamp(76px,9vw,120px); position:relative; }
.home .band.dark { overflow:hidden; }
.home .grid-bg::before { content:""; position:absolute; inset:0; background-image:linear-gradient(var(--line-dark) 1px, transparent 1px), linear-gradient(90deg, var(--line-dark) 1px, transparent 1px); background-size:56px 56px; -webkit-mask-image:radial-gradient(ellipse at 78% 50%, #000, transparent 62%); mask-image:radial-gradient(ellipse at 78% 50%, #000, transparent 62%); pointer-events:none; }
.home .sec-head { max-width:780px; }
.home .sec-head h2 { margin:18px 0; }

/* problem */
.stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:60px; border-top:1px solid var(--line-2); }
.stat { padding:28px 26px 4px 0; }
.stat + .stat { padding-left:26px; border-left:1px solid var(--line-2); }
.stat .lab { font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--rose); }
.stat b { display:block; font-size:clamp(40px,4.4vw,56px); line-height:1; letter-spacing:-0.03em; font-weight:600; color:var(--ink); margin:16px 0 12px; font-variant-numeric:tabular-nums; }
.stat p { font-size:16px; }
.home sup { font-size:.68em; color:var(--muted); }
.home sup a { color:inherit; text-decoration:none; }
.notes-src { margin-top:28px; font-family:var(--mono); font-size:11.5px; line-height:1.7; color:var(--muted); letter-spacing:.02em; }
.notes-src a { color:var(--teal-deep); text-underline-offset:3px; }

/* platform map */
.est { margin-top:52px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:clamp(18px,3vw,34px); display:grid; gap:16px; box-shadow:0 24px 48px -36px rgba(11,30,63,.3); }
.est-row { display:grid; gap:12px; grid-template-columns:1fr; align-items:center; }
@media (min-width:900px) { .est-row { grid-template-columns:128px minmax(0,1fr); } }
.est-k { font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.est-items { display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
.est-item { display:grid; gap:4px; justify-items:center; align-content:start; text-align:center; padding:8px 4px; }
.est-item svg { width:26px; height:26px; color:var(--teal-deep); }
.est-item b { font-size:14px; font-weight:600; color:var(--ink); }
.est-item span { font-size:12.5px; color:var(--muted); }
.bracket { height:22px; border:1px solid var(--line-2); border-top:0; border-radius:0 0 14px 14px; margin:0 6%; position:relative; }
.bracket::after { content:""; position:absolute; left:50%; bottom:-6px; width:10px; height:10px; border-right:1px solid var(--line-2); border-bottom:1px solid var(--line-2); background:#fff; transform:translateX(-50%) rotate(45deg); }
@media (min-width:900px) { .bracket { margin-left:calc(128px + 6%); } }
.planes { display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.plane { border-radius:10px; padding:14px; background:var(--paper); border:1px solid var(--line); border-top:2px solid var(--teal-deep); display:grid; gap:4px; text-align:center; }
.plane b { font-size:17px; font-weight:600; color:var(--ink); }
.plane span { font-size:13px; color:var(--body); }
.plane small { font-family:var(--mono); font-size:11.5px; color:var(--teal-deep); margin-top:4px; }
.est-core { display:grid; gap:12px; grid-template-columns:1fr; align-items:end; margin-top:8px; }
@media (min-width:760px) { .est-core { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr); } }
.side { display:grid; gap:4px; font-size:13.5px; color:var(--body); padding-bottom:10px; }
.side b { font-size:15px; color:var(--ink); font-weight:600; }
.side.left { text-align:right; }
@media (max-width:759px) { .side.left { text-align:left; } }
.dome { aspect-ratio:2 / 1; border-radius:999px 999px 0 0; background:radial-gradient(110% 120% at 50% 100%, rgba(20,228,208,.45), rgba(20,228,208,.10) 52%, rgba(20,228,208,0) 72%), var(--navy); display:grid; align-content:end; justify-items:center; padding-bottom:14px; gap:2px; border-bottom:2px solid var(--teal); }
.dome span { font-family:var(--mono); font-size:clamp(11px,1.3vw,13px); letter-spacing:.16em; text-transform:uppercase; color:#fff; font-weight:500; }
.services { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:4px; }
.svc { border-top:2px solid var(--ink); padding-top:12px; display:grid; gap:2px; }
.svc b { font-size:15px; font-weight:600; color:var(--ink); }
.svc span { font-size:13px; color:var(--muted); }
.connects { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; align-items:center; font-size:13px; color:var(--muted); margin-top:6px; }
.connects .c { font-family:var(--mono); font-size:12px; color:var(--ink); border:1px solid var(--line-2); border-radius:999px; padding:4px 10px; background:#fff; }

/* feature split */
.split { display:grid; gap:44px; align-items:center; grid-template-columns:1fr; }
@media (min-width:981px) { .split { grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:64px; } .split.rev { grid-template-columns:minmax(0,7fr) minmax(0,5fr); } .split.rev > .copy { order:2; } }
.copy { display:grid; gap:18px; align-content:start; }
.copy h2 { font-size:clamp(28px,3.2vw,40px); line-height:1.1; }
.copy p { font-size:17.5px; line-height:1.6; max-width:52ch; }
.ticks { list-style:none; margin:4px 0 0; padding:0; display:grid; gap:12px; }
.ticks li { display:flex; gap:12px; font-size:16px; line-height:1.5; color:var(--body); }
.ticks li::before { content:""; flex:none; width:18px; height:18px; margin-top:2px; background:var(--teal-deep); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat; }
.home .panel { font-family:var(--sans); font-size:16px; }
.home .panel-head { flex-wrap:wrap; padding:13px 20px; font-family:var(--mono); font-size:12.5px; }
.home .panel-body { padding:18px 20px 20px; }
.home .st { font-family:var(--mono); white-space:nowrap; }
.fig-cap { margin-top:12px; font-family:var(--mono); font-size:11px; color:var(--muted); letter-spacing:.06em; }
.svgw { overflow-x:auto; }
.svgw svg { display:block; width:100%; height:auto; }
.kpis { display:grid; gap:8px; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:14px; }
.kpi { background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:10px 12px; display:grid; gap:2px; }
.kpi b { font-size:22px; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1.2; }
.kpi span { font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.kpi.warn b { color:var(--amber-ink); }
.kpi.ok b { color:var(--teal-deep); }
.sk text { font-family:var(--sans); }
.sk .h { font-family:var(--mono); }

/* understand */
.task { background:var(--mint); border:1px solid var(--mint-line); border-radius:8px; padding:10px 12px; display:grid; gap:2px; margin-bottom:12px; font-size:14px; color:var(--ink); }
.task small { font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-deep); }
.session { display:grid; gap:12px; grid-template-columns:1fr; }
@media (min-width:720px) { .session { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); } }
.trail { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.trail li { display:grid; grid-template-columns:20px minmax(0,1fr) auto; gap:10px; align-items:center; padding:8px 10px; border-radius:8px; border:1px solid var(--line); background:#fff; }
.trail .n { font-family:var(--mono); font-size:11px; color:var(--muted); text-align:center; }
.trail code { font-family:var(--mono); font-size:12px; color:var(--ink); overflow-wrap:anywhere; }
.trail li.off { background:var(--rose-wash); border-color:var(--rose-line); }
.chartbox { border:1px solid var(--line); border-radius:8px; padding:12px; display:grid; gap:6px; align-content:start; background:#fff; }
.chartbox b { font-size:13.5px; color:var(--ink); font-weight:600; }
.chartbox span { font-size:12.5px; color:var(--muted); }
.ch text { font-family:var(--mono); }

/* control */
.dec { display:grid; gap:8px; }
.dec-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:center; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.dec-row .what { font-family:var(--mono); font-size:12.5px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); }
.dec-row .what small { display:block; margin-top:3px; font-family:var(--sans); font-size:12.5px; font-weight:400; letter-spacing:0; text-transform:none; color:var(--muted); }
.vd { font-family:var(--mono); font-size:11.5px; font-weight:500; letter-spacing:.12em; padding:7px 12px; border-radius:6px; min-width:92px; text-align:center; border:1px solid transparent; }
.vd-block { color:var(--rose); background:var(--rose-wash); border-color:var(--rose-line); }
.vd-redact { color:var(--amber-ink); background:var(--amber-wash); border-color:var(--amber-line); }
.vd-ask { color:#fff; background:var(--navy); }
.vd-allow { color:var(--teal-deep); background:var(--mint); border-color:var(--mint-line); }
.layers { display:grid; gap:6px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.layer-head, .layer { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr); gap:6px; align-items:stretch; }
.layer-head div { font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.layer > div { background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:8px 11px; font-size:13.5px; color:var(--ink); }
.layer > div:first-child { background:transparent; border-color:transparent; padding-left:0; color:var(--body); }
.layer > .seen { background:var(--mint); border-color:var(--mint-line); color:var(--teal-deep); }
.layer > .none { background:#fff; border-style:dashed; border-color:var(--line-2); color:var(--muted); }
.layer > .stop { background:var(--rose-wash); border-color:var(--rose-line); color:var(--rose); font-weight:600; }

/* detect */
.bl text { font-family:var(--mono); }
.subhead { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:20px 0 10px; padding-top:16px; border-top:1px solid var(--line); font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.04em; color:var(--ink); }
.subhead span { color:var(--muted); font-weight:400; }
#hexmap { width:100%; height:250px; display:block; border-radius:8px; border:1px solid var(--line); background:var(--paper); }
.legend { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:12px; color:var(--muted); margin-top:10px; }
.legend i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; vertical-align:-1px; }

/* protect */
.red { display:grid; gap:12px; }
.red-pane { border-radius:8px; border:1px solid var(--line); background:var(--paper); padding:14px; display:grid; gap:8px; }
.red-pane.after { background:#fff; }
.red-pane .k { font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.red-pane p { font-family:var(--mono); font-size:13.5px; line-height:1.85; color:var(--ink); overflow-wrap:anywhere; }
.hit { background:#FEF3C7; border-bottom:1.5px solid var(--amber); padding:1px 2px; border-radius:3px; }
.hit.conf { background:#FFE4E8; border-bottom-color:var(--rose); }
.tok { background:var(--navy); color:#fff; padding:1px 6px; border-radius:4px; font-size:12.5px; font-weight:500; }
.tok.conf { background:var(--rose); }
.red-arrow { display:flex; align-items:center; gap:10px; font-family:var(--mono); font-size:12px; color:var(--teal-deep); padding-left:6px; }
.red-arrow::before { content:""; height:1px; width:36px; background:var(--teal-deep); }
.ents { display:flex; flex-wrap:wrap; gap:6px; }
.ents span { font-family:var(--mono); font-size:11px; border:1px solid var(--line-2); border-radius:999px; padding:3px 8px; color:var(--body); background:#fff; }

/* prove */
.ev { display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width:760px) { .ev { grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); } }
.entry { margin:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.entry div { display:grid; grid-template-columns:78px minmax(0,1fr); gap:12px; padding:9px 12px; border-top:1px solid var(--line); font-size:13px; }
.entry div:first-child { border-top:0; }
.entry dt { font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding-top:2px; }
.entry dd { margin:0; color:var(--ink); overflow-wrap:anywhere; }
.mini-k { font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.fw { display:grid; gap:6px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.fw span { display:flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:8px; padding:7px 10px; font-size:12.5px; color:var(--ink); background:#fff; }
.fw span::before { content:""; flex:none; width:10px; height:10px; border-radius:50%; border:2px solid var(--teal-deep); background:radial-gradient(circle, var(--teal-deep) 0 1.8px, transparent 2.3px); }
.siem { display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.siem span { font-family:var(--mono); font-size:11.5px; color:var(--ink); border:1px solid var(--line-2); border-radius:6px; padding:5px 9px; background:#fff; }

/* case study band */
.case { position:relative; display:grid; gap:44px; grid-template-columns:1fr; align-items:center; }
@media (min-width:981px) { .case { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:64px; } }
.case h2 { font-size:clamp(30px,3.6vw,44px); line-height:1.1; margin:18px 0; }
.case p { color:var(--on-dark-2); font-size:18px; max-width:46ch; }
.case .btn { margin-top:30px; }
.case-nums { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.14); }
.case-nums div { padding:24px 22px 20px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.case-nums div:nth-child(2n) { padding-left:22px; border-left:1px solid rgba(255,255,255,.14); }
.case-nums b { display:block; font-size:clamp(34px,3.6vw,46px); line-height:1; font-weight:600; letter-spacing:-0.02em; color:var(--teal); margin-bottom:10px; font-variant-numeric:tabular-nums; }
.case-nums span { font-size:15px; color:var(--on-dark-2); }

/* trust */
.home .trust { gap:40px 24px; }

/* company */
.people { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:44px; }
.person { background:#fff; border:1px solid var(--line); border-radius:12px; padding:32px; }
.person img { width:72px; height:72px; border-radius:50%; object-fit:cover; margin-bottom:20px; }
.person h3 { font-size:21px; margin-bottom:6px; }
.person .role { font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.person p { margin-top:14px; font-size:15.5px; }
.person .links { display:flex; gap:10px; margin-top:16px; }
.person a.ico { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid var(--line); border-radius:8px; color:var(--muted); transition:color .15s, border-color .15s; }
.person a.ico:hover { color:var(--teal-deep); border-color:var(--teal-deep); }
.person a.ico svg { width:18px; height:18px; }

/* resources */
.res { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:48px; }
.res-card { background:#fff; border:1px solid var(--line); border-radius:12px; padding:30px; display:grid; gap:10px; align-content:start; text-decoration:none; transition:border-color .15s, transform .15s; }
.res-card:hover { border-color:var(--teal-deep); transform:translateY(-1px); }
.res-card .n { font-family:var(--mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--teal-deep); }
.res-card h3 { font-size:21px; }
.res-card p { font-size:16px; }

@media (max-width:980px) {
  .stats { grid-template-columns:1fr 1fr; gap:0 28px; }
  .stat, .stat + .stat { padding:24px 0 8px; border-left:0; }
  .people, .res { grid-template-columns:1fr; }
}
@media (max-width:760px) { .services, .kpis { grid-template-columns:1fr 1fr; } }
@media (max-width:640px) {
  .hv-wrap svg { min-width:480px; }
  .svgw svg.sk { min-width:560px; }
  .svgw svg.bl { min-width:520px; }
}
@media (max-width:560px) {
  .stats { grid-template-columns:1fr; }
  .case-nums { grid-template-columns:1fr; }
  .case-nums div:nth-child(2n) { padding-left:0; border-left:0; }
  .person, .res-card { padding:24px; }
  .layer > div { font-size:12.5px; padding:7px 8px; }
}
@media (prefers-reduced-motion: reduce) { .home *, .home *::before { animation:none !important; transition:none !important; } }
.home .on-dark .eyebrow { color:var(--teal); }

/* NVIDIA Inception is a programme, not a customer: on one row it sits at the far end of the strip
   behind a rule; when the strip wraps it gets its own labelled row, the badge under the logos */
.home .customers .member { display:flex; align-items:center; margin-left:auto; padding-left:32px; border-left:1px solid var(--line); }
.home .customers .member .label { display:none; }
.home .customers .member img { height:44px; width:auto; }
@media (max-width:1160px) {
  .home .customers-inner { display:grid; grid-template-columns:max-content minmax(0,1fr); }
  .home .customers .member { display:contents; }
  .home .customers .member .label { display:block; }
  .home .customers .member img { justify-self:start; }
}
@media (max-width:560px) {
  .home .customers-inner { display:flex; flex-direction:column; align-items:flex-start; }
}
