/* NEO APPLET — Home (page layout only; tokens and components live in style.css) */

/* What we do — editorial split with an engineering image as the anchor */
.what__grid{ grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); }
.what__copy > * + *{ margin-top:var(--s-5); }
.what__copy .link{ margin-top:var(--s-6); }
.what__fig .media{ aspect-ratio:5/4; }
@media (max-width:900px){ .what__grid{ grid-template-columns:1fr; } .what__fig .media{ aspect-ratio:4/3; } }

/* Engineered as one — dark, media + information */
.one__grid{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:var(--gap-lg); align-items:center; }
.one__media{ aspect-ratio:6/5; }
.one__copy > * + *{ margin-top:var(--s-5); }
.pillars{ margin-top:var(--s-6) !important; border-top:1px solid var(--line); }
.pillars li{
  padding:16px 0; border-bottom:1px solid var(--line);
  font-family:var(--font-display); font-size:clamp(1.25rem, 1.05rem + .8vw, 1.7rem); font-weight:480; line-height:1.15;
}
@media (max-width:900px){ .one__grid{ grid-template-columns:1fr; } .one__media{ aspect-ratio:16/10; } }

/* Core systems — three grouped columns + approvals as the cross-cutting row */
.groups{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--gap-md); }
.group__media{ display:block; aspect-ratio:16/10; }
.group__media img{ transition:transform 1.2s var(--ease); }
.group:hover .group__media img{ transform:scale(1.04); }
.group__head{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--s-4); margin:var(--s-5) 0 var(--s-3); }
.group__head h3{ font-size:clamp(1.35rem, 1.1rem + .8vw, 1.75rem); }
.group__head .mono{ color:var(--ink-faint); white-space:nowrap; }
.group__list{ border-top:1px solid var(--line); }
.group__list a{
  display:flex; align-items:baseline; gap:var(--s-4); padding:13px 0; border-bottom:1px solid var(--line);
  font-size:.98rem; font-weight:500; color:var(--ink); transition:color var(--dur-fast) var(--ease), padding var(--dur) var(--ease);
}
.group__list a:hover{ color:var(--accent-text); padding-left:6px; }
.idx{ font-family:var(--font-mono); font-size:var(--t-mono); letter-spacing:.06em; color:var(--accent-text); min-width:1.9em; }
.approvals{
  display:grid; grid-template-columns:auto minmax(0,.9fr) minmax(0,1.6fr) 24px; gap:var(--s-5); align-items:baseline;
  margin-top:var(--gap-md); padding:var(--s-5) var(--s-3); border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong);
  transition:background var(--dur-fast) var(--ease);
}
.approvals:hover{ background:color-mix(in srgb, var(--brass) 8%, transparent); }
.approvals__name{ font-family:var(--font-display); font-size:clamp(1.2rem, 1.05rem + .6vw, 1.55rem); font-weight:500; }
.approvals__line{ color:var(--ink-soft); font-size:.95rem; }
.approvals svg{ width:18px; height:18px; color:var(--accent-text); align-self:center; transition:transform var(--dur) var(--ease); }
.approvals:hover svg{ transform:translateX(4px); }
.systems__foot{ margin-top:var(--s-5); display:flex; align-items:center; gap:var(--s-4); flex-wrap:wrap; }
.systems__foot .mono{ color:var(--ink-faint); }
@media (max-width:900px){
  .groups{ grid-template-columns:1fr; gap:var(--gap-md); }
  .group{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); column-gap:var(--gap-sm); align-items:start; }
  .group__media{ grid-row:1 / span 2; }
  .group__head{ margin-top:0; }
  .approvals{ grid-template-columns:auto 1fr 24px; }
  .approvals__line{ grid-column:2 / 3; grid-row:2; }
  .approvals svg{ grid-column:3; grid-row:1; }
}
@media (max-width:560px){
  .group{ grid-template-columns:1fr; }
  .group__media{ grid-row:auto; }
  .group__head{ margin-top:var(--s-5); }
}

/* Delivery path — hairline with five nodes; vertical on small screens */
.path{ position:relative; display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:var(--gap-sm); }
.path__line{ position:absolute; left:0; right:0; top:5px; height:1px; background:var(--line-strong); }
.path li{ position:relative; padding-top:var(--s-6); }
.path li::before{ content:""; position:absolute; top:0; left:0; width:11px; height:11px; background:var(--bg-alt); border:1px solid var(--brass); }
.path li:last-child::before{ background:var(--cyan); border-color:var(--cyan); }
.path .mono{ color:var(--accent-text); }
.path h3{ margin:var(--s-2) 0 var(--s-3); }
.path p{ font-size:.93rem; color:var(--ink-soft); max-width:30ch; }
@media (max-width:900px){
  .path{ grid-template-columns:1fr; gap:var(--gap-md); padding-left:var(--s-6); }
  .path__line{ left:5px; right:auto; top:0; bottom:0; width:1px; height:auto; transform-origin:top !important; }
  .js .path__line[data-rv="line"]{ transform:scaleY(0); }
  .js .path__line[data-rv="line"].is-in{ transform:scaleY(1); }
  .path li{ padding-top:0; }
  .path li::before{ left:calc(-1 * var(--s-6)); top:7px; }
}

/* Proof — featured record + dense supporting register */
.proof__feature{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:var(--gap-lg); align-items:center; }
.proof__media{ display:block; aspect-ratio:4/3; }
.proof__body > * + *{ margin-top:var(--s-4); }
.proof__label{ display:block; color:var(--ink-faint); }
.proof__code{ display:block; font-family:var(--font-mono); font-size:clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); line-height:1.1; color:var(--accent-text); margin-top:var(--s-2) !important; }
.proof__body .spec{ margin-block:var(--s-5) var(--s-5); }
.proof__reg{ margin-top:var(--gap-lg); }
.proof__foot{ margin-top:var(--s-6); }
@media (max-width:900px){ .proof__feature{ grid-template-columns:1fr; gap:var(--gap-md); } }

/* Accountability — statement left, bordered rows right */
.acct__grid{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:var(--gap-lg); align-items:start; }
.acct__lead{ position:sticky; top:calc(var(--header-h) + var(--s-6)); }
.acct__lead > * + *{ margin-top:var(--s-4); }
.acct__lead .link{ margin-top:var(--s-6); }
.acct__list{ border-top:1px solid var(--line-strong); }
.acct__list li{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:var(--gap-sm); padding:var(--s-5) 0; border-bottom:1px solid var(--line); }
.acct__list h3{ font-size:clamp(1.2rem, 1.05rem + .5vw, 1.5rem); }
.acct__list p{ color:var(--ink-soft); font-size:.97rem; }
@media (max-width:900px){ .acct__grid{ grid-template-columns:1fr; gap:var(--gap-md); } .acct__lead{ position:static; } }
@media (max-width:560px){ .acct__list li{ grid-template-columns:1fr; gap:var(--s-2); } }
