/* ============================================================
   v3 "alive" TEAM / SOLUTION / OUTCOME family CSS, scoped under .v3-sol.
   Ground truth: product-teams.php (approved family exemplar) generalized
   into one shared sheet so each sibling page composes its own signature
   from the same grammar (brand-grammar-v3 Part 5, Application H).
   Cool ladder only, 2px corners, no shadows. Motion is one-shot only
   (orange underline sweeps, hero hot-word sweep, fade-up reveals), all
   gated behind html.motion; reduced motion renders fully settled.
   Class names dodge site.css / scroll-reveal.js globals: .v3-btn,
   .v3-reveal, .v3-eyebrow, .sw (not .wrap), .sol-crumbs (not .crumbs).
   No fabricated numbers anywhere in the family, so no evidence mark
   exists in this sheet; orange appears only as mechanism accent,
   sweep, and the dark-band CTA.
   ============================================================ */

.v3-sol{
  /* ---- light drafting grammar (cool ladder) ---- */
  --ink:#141519;
  --graphite:#2A2D31;
  --v3muted:#8A8D93;
  --frame:#868A90;
  --paper:#FFFFFF;
  --ground:#FCFDFD;
  --board:#F0F2F3;
  --board-2:#E9ECEE;
  --rule:#E6E9EB;
  --rule-2:#D7DBDE;
  --sec:#565A60;
  --skel:#EAEDEF;
  --skel-2:#DBDFE2;
  --orange:#FF4F00;
  --brand:#5F67BB;
  /* ---- dark band tokens (night register) ---- */
  --band:#0E0F13;
  --band-2:#15171C;
  --panel-2:#191C22;
  --d-fg:#F3F3F1;
  --d-sec:#A5A9AE;
  --d-muted:#767B81;
  --d-rule:rgba(255,255,255,.12);
  --d-rule-2:rgba(255,255,255,.20);
  --d-frame:rgba(255,255,255,.30);
  --grid:rgba(255,255,255,.030);

  display:block; background:var(--ground); color:var(--ink);
  font-size:16px; line-height:1.58; font-variant-numeric:tabular-nums;
}
.v3-sol b{ font-weight:600; }
.v3-sol h1,.v3-sol h2,.v3-sol h3,.v3-sol h4{ margin:0; letter-spacing:-0.03em; text-wrap:balance; font-weight:600; }
.v3-sol p{ margin:0; }
.v3-sol .sw{ max-width:1120px; margin:0 auto; padding:0 28px; }
.v3-sol section{ padding:88px 0; position:relative; }
.v3-sol .band-light + .band-light{ border-top:1px solid var(--rule); }
.v3-sol .soft{ color:var(--sec); }
.v3-sol .micro{ font-size:12px; color:var(--v3muted); }
.v3-sol .mlabel{ font:500 11px var(--mono); letter-spacing:.18em; text-transform:uppercase; color:var(--v3muted); }
.v3-sol code,.v3-sol .codeline{ font-family:var(--mono); font-size:12.5px; background:var(--board); border:1px solid var(--rule); padding:1px 6px; border-radius:2px; color:var(--ink); }

/* ---------- section header + sweep-in orange underline ---------- */
.v3-sol .head{ margin-bottom:36px; }
.v3-sol .kick{ display:block; font:500 11px var(--mono); letter-spacing:.2em; text-transform:uppercase; color:var(--v3muted); margin-bottom:14px; }
.v3-sol .head h2{ font-size:clamp(28px,3.3vw,37px); letter-spacing:-0.03em; line-height:1.1; color:var(--ink); max-width:28ch; }
.v3-sol .uline{ display:block; height:3px; width:58px; margin-top:16px; background:var(--orange); transform-origin:left center; border-radius:1px; }
html.motion .v3-sol .uline{ transform:scaleX(0); transition:transform .5s cubic-bezier(.2,.75,.2,1); }
html.motion .v3-sol .uline.in{ transform:scaleX(1); }
.v3-sol .v3-sub{ font-size:16px; max-width:62ch; margin-top:14px; color:var(--sec); line-height:1.6; }
.v3-sol .band-dark .v3-sub{ color:var(--d-sec); }

/* reveal (fade-up), one-shot, settled without JS / with reduced motion */
html.motion .v3-sol .v3-reveal{ opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s cubic-bezier(.2,.75,.2,1); }
html.motion .v3-sol .v3-reveal.in{ opacity:1; transform:none; }

/* ---------- the entity corner frame (drafting grammar) ---------- */
.v3-sol .fr{
  position:relative;
  --fc:var(--frame);
  --sig:var(--brand);
  --fl:16px; --ft:0.75px; --fts:calc(var(--ft) * 3);
  background-image:
    linear-gradient(var(--fc),var(--fc)), linear-gradient(var(--fc),var(--fc)),
    linear-gradient(var(--fc),var(--fc)), linear-gradient(var(--fc),var(--fc)),
    linear-gradient(var(--fc),var(--fc)), linear-gradient(var(--fc),var(--fc)),
    linear-gradient(var(--sig),var(--sig)), linear-gradient(var(--sig),var(--sig));
  background-repeat:no-repeat;
  background-position:top left,top left, top right,top right, bottom left,bottom left, bottom right,bottom right;
  background-size:
    var(--fl) var(--ft), var(--ft) var(--fl),
    var(--fl) var(--ft), var(--ft) var(--fl),
    var(--fl) var(--ft), var(--ft) var(--fl),
    var(--fl) var(--fts), var(--fts) var(--fl);
  transition:background-size .18s ease;
}
.v3-sol .fr:hover{ --fl:22px; }
.v3-sol .band-dark .fr{ --fc:var(--d-frame); --sig:var(--orange); }

/* ---------- buttons: INK fill on light, ORANGE only on the dark band ---------- */
.v3-sol .v3-btn{ display:inline-block; padding:12px 26px; border-radius:2px; font:600 15px var(--sans); text-decoration:none; border:1px solid var(--graphite); color:var(--ink); background:transparent; letter-spacing:-0.01em; transition:background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease; }
.v3-sol .v3-btn:hover{ background:rgba(20,21,25,.05); border-color:var(--ink); }
.v3-sol .v3-btn.primary{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.v3-sol .v3-btn.primary:hover{ background:#000; border-color:#000; }
.v3-sol .band-dark .v3-btn{ color:var(--d-fg); border-color:var(--d-rule-2); background:rgba(255,255,255,.015); }
.v3-sol .band-dark .v3-btn:hover{ background:rgba(255,255,255,.06); border-color:var(--d-fg); }
.v3-sol .band-dark .v3-btn.energy{ color:#fff; border-color:var(--orange); background:var(--orange); }
.v3-sol .band-dark .v3-btn.energy:hover{ filter:brightness(1.07); transform:translateY(-1px); }

/* ================= SOLUTION HERO (light) ================= */
.v3-sol .sol-hero{ padding:56px 0 88px; }
.v3-sol .sol-crumbs{ display:flex; align-items:center; gap:9px; font:500 11px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--v3muted); margin-bottom:24px; flex-wrap:wrap; }
.v3-sol .sol-crumbs a{ color:var(--v3muted); text-decoration:none; }
.v3-sol .sol-crumbs a:hover{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.v3-sol .sol-crumbs .sep{ color:var(--rule-2); }
.v3-sol .sol-crumbs .cur{ color:var(--graphite); }
.v3-sol .sol-grid{ display:grid; grid-template-columns:1.04fr .96fr; gap:60px; align-items:center; }
.v3-sol .v3-eyebrow{ display:inline-flex; align-items:center; gap:9px; font:500 11px var(--mono); letter-spacing:.2em; text-transform:uppercase; color:var(--v3muted); margin-bottom:18px; }
.v3-sol .v3-eyebrow .spark{ width:7px; height:7px; border-radius:50%; background:var(--orange); flex:none; }
.v3-sol .sol-copy h1{ font-size:clamp(38px,4.9vw,56px); line-height:1.03; letter-spacing:-0.035em; margin-bottom:18px; max-width:17ch; }
.v3-sol .sol-copy h1 .hot{ position:relative; white-space:nowrap; }
.v3-sol .sol-copy h1 .hot::after{ content:""; position:absolute; left:0; right:0; bottom:.02em; height:3px; background:var(--orange); transform-origin:left; border-radius:1px; }
html.motion .v3-sol .sol-copy h1 .hot::after{ transform:scaleX(0); transition:transform .5s cubic-bezier(.2,.75,.2,1) .3s; }
html.motion.armed .v3-sol .sol-copy h1 .hot::after{ transform:scaleX(1); }
.v3-sol .sol-diff{ font-size:18px; line-height:1.42; color:var(--ink); max-width:48ch; margin-bottom:16px; }
.v3-sol .sol-copy .lead{ font-size:16px; color:var(--sec); max-width:54ch; margin-bottom:28px; line-height:1.6; }
.v3-sol .sol-cta{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:14px; }
.v3-sol .sol-hero .micro{ max-width:52ch; }
/* stacked hero variant: signature object spans full width below the copy */
.v3-sol .sol-stack .sol-copy{ max-width:760px; }
.v3-sol .sol-stack .sol-obj{ margin-top:52px; }

/* ================= framed plate (generic entity chassis) ================= */
.v3-sol .plate{ background:var(--paper); padding:24px 26px 22px; display:flex; flex-direction:column; }
.v3-sol .plate-h{ display:flex; justify-content:space-between; gap:12px; font:600 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--v3muted); margin-bottom:6px; }
.v3-sol .plate-h .tag{ color:var(--graphite); }
.v3-sol .plate-src{ font:400 11.5px var(--mono); letter-spacing:.02em; color:var(--v3muted); margin-top:18px; padding-top:14px; border-top:1px solid var(--rule); line-height:1.55; }

/* outcomes ledger rows (arrow marks) */
.v3-sol .oc-list{ display:flex; flex-direction:column; }
.v3-sol .oc-row{ display:grid; grid-template-columns:20px 1fr; gap:14px; padding:15px 0; border-top:1px solid var(--rule); align-items:start; }
.v3-sol .oc-row:first-child{ border-top:1px solid var(--graphite); }
.v3-sol .oc-mark{ margin-top:3px; color:var(--frame); }
.v3-sol .oc-mark svg{ display:block; width:18px; height:11px; }
.v3-sol .oc-out{ font-size:16.5px; font-weight:600; letter-spacing:-0.015em; color:var(--ink); line-height:1.22; }
.v3-sol .oc-mech{ font-size:13.5px; color:var(--sec); line-height:1.5; margin-top:4px; max-width:44ch; }

/* ================= WHAT CHANGES strip (hairline columns) ================= */
.v3-sol .wc{ display:grid; grid-template-columns:repeat(4,1fr); }
.v3-sol .wc.cols-3{ grid-template-columns:repeat(3,1fr); }
.v3-sol .wc-col{ padding:22px 24px 6px 0; border-top:1px solid var(--graphite); margin-right:28px; }
.v3-sol .wc-col:last-child{ margin-right:0; }
.v3-sol .wc-ref{ font:600 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--v3muted); }
.v3-sol .wc-out{ font-size:17px; font-weight:600; letter-spacing:-0.015em; color:var(--ink); line-height:1.25; margin:10px 0 8px; }
.v3-sol .wc-mech{ font-size:13.5px; color:var(--sec); line-height:1.55; }

/* ================= PROBLEM: prose + framed note card ================= */
.v3-sol .pro{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:start; }
.v3-sol .pro-lead{ font-size:16px; color:var(--sec); line-height:1.62; max-width:54ch; }
.v3-sol .pro-lead b{ color:var(--ink); font-weight:600; }
.v3-sol .sol-note{ background:var(--paper); padding:22px 24px; display:flex; flex-direction:column; gap:13px; }
.v3-sol .note-ref{ font:600 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--v3muted); }
.v3-sol .note-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.v3-sol .note-list li{ font-size:14px; color:var(--ink); line-height:1.4; padding:11px 0 11px 18px; position:relative; border-top:1px solid var(--rule); }
.v3-sol .note-list li:first-child{ border-top:0; padding-top:2px; }
.v3-sol .note-list li::before{ content:""; position:absolute; left:0; top:18px; width:7px; height:1.5px; background:var(--graphite); }
.v3-sol .note-list li:first-child::before{ top:9px; }

/* ================= PROBLEM GRID: numbered hairline cells (no cards) ================= */
.v3-sol .pg{ display:grid; grid-template-columns:1fr 1fr; gap:0 56px; }
.v3-sol .pg-cell{ padding:24px 0 26px; border-top:1px solid var(--rule); }
.v3-sol .pg-cell:nth-child(-n+2){ border-top:1px solid var(--graphite); }
.v3-sol .pg-ref{ font:600 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--v3muted); }
.v3-sol .pg-t{ font-size:17px; font-weight:600; letter-spacing:-0.015em; color:var(--ink); margin:10px 0 8px; line-height:1.25; }
.v3-sol .pg-p{ font-size:14px; color:var(--sec); line-height:1.6; max-width:52ch; }

/* ================= NUMBERED LADDER (mechanism steps) ================= */
.v3-sol .lad{ list-style:none; margin:0; padding:0; max-width:860px; }
.v3-sol .lad-row{ display:grid; grid-template-columns:56px 1fr; gap:22px; padding:26px 0; border-top:1px solid var(--rule); align-items:start; }
.v3-sol .lad-row:first-child{ border-top:1px solid var(--graphite); }
.v3-sol .lad-n{ font:600 12px var(--mono); letter-spacing:.08em; color:var(--graphite); padding-top:4px; }
.v3-sol .lad-row h4{ font-size:18px; font-weight:600; letter-spacing:-0.015em; margin-bottom:8px; }
.v3-sol .lad-row p{ font-size:14.5px; color:var(--sec); line-height:1.6; max-width:62ch; }

/* ================= OUTCOMES IN THE WORK: alternating rows ================= */
.v3-sol .ow{ display:flex; flex-direction:column; }
.v3-sol .ow-row{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; padding:40px 0; border-top:1px solid var(--rule); }
.v3-sol .ow-row:first-child{ border-top:1px solid var(--graphite); }
.v3-sol .ow-txt{ min-width:0; }
.v3-sol .ow-ref{ font:600 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--v3muted); }
.v3-sol .ow-txt h3{ font-size:22px; font-weight:600; letter-spacing:-0.02em; line-height:1.14; color:var(--ink); margin:12px 0 10px; max-width:20ch; }
.v3-sol .ow-txt p{ font-size:15px; color:var(--sec); line-height:1.6; max-width:50ch; }
.v3-sol .ow-obj{ min-width:0; }
@media (min-width:981px){
  .v3-sol .ow-row.rev .ow-txt{ order:2; }
  .v3-sol .ow-row.rev .ow-obj{ order:1; }
}

/* ================= OBJECT: editor exchange (mono, honest-empty answer) ================= */
.v3-sol .term{ background:var(--paper); padding:18px 20px; display:flex; flex-direction:column; }
.v3-sol .term-q{ font:500 13px var(--mono); color:var(--ink); line-height:1.6; padding:12px 0 14px; }
.v3-sol .term-q .pr{ color:var(--orange); margin-right:8px; }
.v3-sol .term-a{ display:flex; flex-direction:column; gap:9px; padding-top:14px; border-top:1px solid var(--rule); }
.v3-sol .term-line{ height:9px; background:var(--skel); border-radius:1px; }
.v3-sol .term-line.short{ width:58%; }
.v3-sol .term-cites{ display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.v3-sol .term-cite{ font:500 9.5px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--graphite); border:1px solid var(--rule-2); padding:4px 8px; border-radius:2px; }

/* ================= OBJECT: dossier (label + skeleton value rows) ================= */
.v3-sol .dsr-row{ display:grid; grid-template-columns:104px 1fr; gap:14px; padding:12px 0; border-top:1px solid var(--rule); align-items:center; }
.v3-sol .dsr-row:first-of-type{ border-top:1px solid var(--graphite); }
.v3-sol .dsr-k{ font:500 10px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--graphite); }
.v3-sol .dsr-v{ height:8px; background:var(--skel); border-radius:1px; }
.v3-sol .dsr-v.w70{ width:70%; }
.v3-sol .dsr-v.w50{ width:50%; }
.v3-sol .dsr-lines{ display:flex; flex-direction:column; gap:7px; padding:2px 0; }
.v3-sol .dsr-lines span{ display:block; height:8px; background:var(--skel); border-radius:1px; }
.v3-sol .dsr-lines span:last-child{ width:62%; }

/* ================= OBJECT: early-warning timeline ================= */
.v3-sol .tl{ padding:2px 0; }
.v3-sol .tl-track{ position:relative; height:2px; background:var(--rule-2); margin:34px 6px 38px; }
.v3-sol .tl-fill{ position:absolute; left:0; top:0; height:2px; width:70%; background:var(--orange); }
.v3-sol .tl-mark{ position:absolute; top:50%; transform:translate(-50%,-50%); }
.v3-sol .tl-mark.sig{ left:0; width:11px; height:11px; background:var(--orange); }
.v3-sol .tl-mark.mid{ left:70%; width:9px; height:9px; background:var(--paper); border:1.5px solid var(--graphite); }
.v3-sol .tl-mark.ren{ left:100%; width:11px; height:11px; background:var(--paper); border:1.5px solid var(--frame); }
.v3-sol .tl-lbl{ position:absolute; top:16px; font:500 9.5px var(--mono); letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.v3-sol .tl-lbl.sig{ left:0; color:var(--graphite); }
.v3-sol .tl-lbl.mid{ left:70%; transform:translateX(-50%); color:var(--v3muted); }
.v3-sol .tl-lbl.ren{ right:0; text-align:right; color:var(--v3muted); }
.v3-sol .tl-cap{ font:500 10.5px var(--mono); letter-spacing:.05em; color:var(--v3muted); }

/* ================= OBJECT: causal chain (leverage node) ================= */
.v3-sol .chain{ display:flex; flex-direction:column; gap:0; }
.v3-sol .ch-row{ display:grid; grid-template-columns:26px 1fr; gap:16px; align-items:stretch; }
.v3-sol .ch-rail{ position:relative; }
.v3-sol .ch-dot{ position:absolute; left:50%; top:14px; transform:translateX(-50%); width:9px; height:9px; background:var(--paper); border:1.5px solid var(--frame); }
.v3-sol .ch-row.lever .ch-dot{ background:var(--orange); border-color:var(--orange); width:11px; height:11px; }
.v3-sol .ch-line{ position:absolute; left:50%; top:25px; bottom:-14px; width:1.5px; background:var(--rule-2); transform:translateX(-50%); }
.v3-sol .ch-row:last-child .ch-line{ display:none; }
.v3-sol .ch-body{ padding:8px 0 22px; }
.v3-sol .ch-k{ font:500 9.5px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--v3muted); }
.v3-sol .ch-row.lever .ch-k{ color:var(--orange); }
.v3-sol .ch-t{ font-size:14.5px; font-weight:600; letter-spacing:-0.01em; color:var(--ink); margin-top:4px; }
.v3-sol .ch-bar{ height:8px; background:var(--skel); border-radius:1px; margin-top:8px; }
.v3-sol .chain-cap{ font:500 10.5px var(--mono); letter-spacing:.05em; color:var(--v3muted); margin-top:2px; }

/* ================= OBJECT: ranked backlog ledger ================= */
.v3-sol .rank{ display:flex; flex-direction:column; }
.v3-sol .rank-row{ display:grid; grid-template-columns:34px 1fr auto; gap:14px; align-items:center; padding:13px 0; border-top:1px solid var(--rule); }
.v3-sol .rank-row:first-child{ border-top:1px solid var(--graphite); }
.v3-sol .rank-n{ font:600 11px var(--mono); letter-spacing:.08em; color:var(--graphite); }
.v3-sol .rank-bar{ height:9px; background:var(--skel); border-radius:1px; }
.v3-sol .rank-row.top .rank-bar{ background:var(--skel-2); }
.v3-sol .rank-tail{ font:500 9px var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--v3muted); white-space:nowrap; }
.v3-sol .rank-row.top .rank-tail{ color:var(--graphite); }

/* ================= OBJECT: loop strip (account moments) ================= */
.v3-sol .loop{ display:grid; grid-template-columns:repeat(4, 1fr); gap:0; }
.v3-sol .loop.n5{ grid-template-columns:repeat(5, 1fr); }
.v3-sol .loop-node{ position:relative; padding:20px 22px 20px 0; border-top:1px solid var(--graphite); margin-right:26px; }
.v3-sol .loop-node:last-child{ margin-right:0; }
.v3-sol .loop-node::before{ content:""; position:absolute; top:-5px; left:0; width:9px; height:9px; background:var(--paper); border:1.5px solid var(--graphite); }
.v3-sol .loop-node.fire::before{ background:var(--orange); border-color:var(--orange); }
.v3-sol .loop-k{ font:600 10px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--graphite); display:block; margin-bottom:8px; }
.v3-sol .loop-node.fire .loop-k{ color:var(--orange); }
.v3-sol .loop-p{ font-size:13px; color:var(--sec); line-height:1.5; }
.v3-sol .loop-cap{ grid-column:1 / -1; margin-top:18px; font:500 10.5px var(--mono); letter-spacing:.05em; color:var(--v3muted); }

/* ================= OBJECT: convergence diagram (six teams, one system) ================= */
.v3-sol .conv{ display:grid; grid-template-columns:1fr 44px 1.2fr; align-items:center; }
.v3-sol .conv-srcs{ display:flex; flex-direction:column; }
.v3-sol .conv-src{ position:relative; font:500 10px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--graphite); padding:9px 0; }
.v3-sol .conv-src::after{ content:""; position:absolute; right:-44px; top:50%; width:44px; height:1px; background:var(--rule-2); }
.v3-sol .conv-join{ position:relative; height:100%; min-height:100%; }
.v3-sol .conv-join::before{ content:""; position:absolute; right:0; top:14px; bottom:14px; width:1.5px; background:var(--rule-2); }
.v3-sol .conv-node{ background:var(--paper); padding:20px 22px; margin-left:24px; position:relative; }
.v3-sol .conv-node::before{ content:""; position:absolute; left:-24px; top:50%; width:24px; height:1.5px; background:var(--graphite); }
.v3-sol .conv-node .ck{ display:flex; align-items:center; gap:8px; font:600 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--v3muted); margin-bottom:8px; }
.v3-sol .conv-node .ck .spark{ width:7px; height:7px; border-radius:50%; background:var(--orange); flex:none; }
.v3-sol .conv-node .ct{ font-size:15.5px; font-weight:600; letter-spacing:-0.015em; line-height:1.3; color:var(--ink); }
.v3-sol .conv-node .cs{ font-size:12.5px; color:var(--sec); line-height:1.5; margin-top:6px; }
.v3-sol .conv-cap{ grid-column:1 / -1; margin-top:18px; font:500 10.5px var(--mono); letter-spacing:.05em; color:var(--v3muted); }

/* ================= OBJECT: board brief document ================= */
.v3-sol .brief-date{ display:flex; justify-content:space-between; gap:12px; padding:10px 0 12px; border-bottom:1px solid var(--graphite); font:500 10px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--graphite); }
.v3-sol .brief-date .fill{ color:var(--v3muted); }
.v3-sol .brief-row{ display:grid; grid-template-columns:26px 1fr; gap:12px; padding:13px 0; border-bottom:1px solid var(--rule); align-items:center; }
.v3-sol .brief-n{ font:600 11px var(--mono); color:var(--graphite); }
.v3-sol .brief-main{ min-width:0; }
.v3-sol .brief-bar{ height:9px; background:var(--skel); border-radius:1px; margin-bottom:7px; }
.v3-sol .brief-bar.w62{ width:62%; }
.v3-sol .brief-bar.w78{ width:78%; }
.v3-sol .brief-tags{ font:500 9px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--v3muted); }

/* ================= link cards (features / roles / editors) ================= */
.v3-sol .fcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.v3-sol .fcards.cols-2{ grid-template-columns:1fr 1fr; }
.v3-sol .fcard{ background:var(--paper); padding:22px 24px; display:flex; flex-direction:column; gap:9px; text-decoration:none; color:inherit; }
.v3-sol .fcard-k{ font:500 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--v3muted); }
.v3-sol .fcard-t{ font-size:18px; font-weight:600; letter-spacing:-0.015em; color:var(--ink); line-height:1.2; }
.v3-sol .fcard-p{ font-size:13.5px; color:var(--sec); line-height:1.6; flex:1; }
.v3-sol .fcard-a{ font:500 11px var(--mono); letter-spacing:.08em; color:var(--graphite); }
.v3-sol .fcard:hover .fcard-a{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }

/* ================= outcome index ledger (solutions hub) ================= */
.v3-sol .olist{ display:flex; flex-direction:column; max-width:860px; }
.v3-sol .olist a{ display:grid; grid-template-columns:20px 1fr auto; gap:16px; align-items:baseline; padding:17px 0; border-top:1px solid var(--rule); text-decoration:none; color:inherit; }
.v3-sol .olist a:first-child{ border-top:1px solid var(--graphite); }
.v3-sol .olist .oi-mark{ color:var(--frame); align-self:center; }
.v3-sol .olist .oi-mark svg{ display:block; width:18px; height:11px; }
.v3-sol .olist .oi-t{ font-size:16.5px; font-weight:600; letter-spacing:-0.015em; color:var(--ink); }
.v3-sol .olist .oi-s{ display:block; font-size:13.5px; font-weight:400; color:var(--sec); margin-top:3px; }
.v3-sol .olist .oi-k{ font:500 10px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--v3muted); white-space:nowrap; }
.v3-sol .olist a:hover .oi-t{ text-decoration:underline; text-underline-offset:3px; }

/* ================= mono chip rows (loop links, sources, clients) ================= */
.v3-sol .chips{ display:flex; flex-wrap:wrap; gap:10px; }
.v3-sol .chip{ display:inline-flex; align-items:center; gap:9px; font:500 11px var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--graphite); text-decoration:none; border:1px solid var(--rule-2); border-radius:2px; padding:8px 13px; transition:border-color .16s ease, color .16s ease; }
.v3-sol a.chip:hover{ border-color:var(--graphite); color:var(--ink); }
.v3-sol .chip img{ width:16px; height:16px; object-fit:contain; flex:none; }

/* ================= PROOF: honest-empty verification slots ================= */
.v3-sol .proof-sub{ font-size:15px; color:var(--sec); max-width:60ch; margin-bottom:28px; line-height:1.6; }
.v3-sol .proof-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.v3-sol .pending{ background:var(--paper); padding:18px 20px 20px; }
.v3-sol .p-head{ display:flex; justify-content:space-between; gap:12px; font:500 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--v3muted); margin-bottom:12px; }
.v3-sol .p-status{ color:var(--orange); }
.v3-sol .pending p{ font-size:14px; color:var(--sec); line-height:1.6; }
.v3-sol .p-spec{ display:flex; gap:10px; align-items:baseline; margin-top:14px; padding-top:12px; border-top:1px solid var(--rule); }
.v3-sol .ps-k{ flex:none; font:500 10px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--v3muted); }
.v3-sol .ps-v{ font-size:13px; color:var(--sec); line-height:1.5; }

/* ================= FAQ ================= */
.v3-sol .faq-list{ max-width:820px; }
.v3-sol .faq-item{ border-bottom:1px solid var(--rule); }
.v3-sol .faq-item:first-child{ border-top:1px solid var(--rule); }
.v3-sol .faq-item summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:18px; padding:18px 0; font-size:16px; font-weight:600; letter-spacing:-0.01em; color:var(--ink); }
.v3-sol .faq-item summary::-webkit-details-marker{ display:none; }
.v3-sol .faq-item summary::after{ content:"+"; font:400 18px var(--mono); color:var(--v3muted); flex:none; }
.v3-sol .faq-item[open] summary::after{ content:"\2212"; color:var(--orange); }
.v3-sol .faq-a{ font-size:14.5px; color:var(--sec); line-height:1.6; max-width:72ch; padding:0 0 18px; }
.v3-sol .faq-a b{ color:var(--ink); font-weight:600; }

/* ================= DARK BAND + night register ================= */
.v3-sol .band-dark{ background:var(--band); color:var(--d-fg); }
.v3-sol .band-dark .head h2{ color:var(--d-fg); }
.v3-sol .band-dark.night{
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size:34px 34px; background-position:center top;
  position:relative; overflow:hidden;
}
.v3-sol .band-dark.night::before{ content:""; position:absolute; top:8%; left:50%; transform:translateX(-50%);
  width:760px; max-width:120%; height:520px; pointer-events:none; z-index:0;
  background:radial-gradient(ellipse at center, rgba(255,79,0,.09), rgba(255,79,0,0) 62%); }
.v3-sol .band-dark.night > .sw{ position:relative; z-index:1; }

/* ================= CLOSING CTA (dark night band) ================= */
.v3-sol .final{ text-align:center; padding:104px 0 112px; }
.v3-sol .final h2{ font-size:clamp(30px,3.6vw,42px); margin-bottom:14px; color:var(--d-fg); max-width:26ch; margin-left:auto; margin-right:auto; }
.v3-sol .final .uline{ margin:0 auto 26px; }
.v3-sol .final .sol-cta{ justify-content:center; margin-bottom:0; }
.v3-sol .final .micro{ margin-top:16px; color:var(--d-muted); }

/* ================= reduced motion: fully static settled states ================= */
@media (prefers-reduced-motion:reduce){
  .v3-sol *,.v3-sol *::before,.v3-sol *::after{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
html.reduce .v3-sol *,html.reduce .v3-sol *::before,html.reduce .v3-sol *::after{ animation:none !important; transition:none !important; }

/* ================= responsive ================= */
@media (max-width:980px){
  .v3-sol section{ padding:64px 0; }
  .v3-sol .sol-hero{ padding:44px 0 64px; }
  .v3-sol .sol-grid{ grid-template-columns:1fr; gap:44px; }
  .v3-sol .sol-copy h1{ max-width:20ch; }
  .v3-sol .sol-stack .sol-obj{ margin-top:40px; }
  .v3-sol .wc,.v3-sol .wc.cols-3{ grid-template-columns:1fr; }
  .v3-sol .wc-col{ margin-right:0; padding-right:0; }
  .v3-sol .pro{ grid-template-columns:1fr; gap:28px; }
  .v3-sol .pg{ grid-template-columns:1fr; gap:0; }
  .v3-sol .pg-cell:nth-child(-n+2){ border-top:1px solid var(--rule); }
  .v3-sol .pg-cell:first-child{ border-top:1px solid var(--graphite); }
  .v3-sol .ow-row{ grid-template-columns:1fr; gap:28px; padding:32px 0; }
  .v3-sol .ow-txt h3{ max-width:24ch; }
  .v3-sol .fcards,.v3-sol .fcards.cols-2{ grid-template-columns:1fr; }
  .v3-sol .proof-grid{ grid-template-columns:1fr; gap:22px; }
  .v3-sol .loop,.v3-sol .loop.n5{ grid-template-columns:1fr; }
  .v3-sol .loop-node{ margin-right:0; padding-right:0; }
  .v3-sol .conv{ grid-template-columns:1fr; }
  .v3-sol .conv-src::after{ display:none; }
  .v3-sol .conv-join{ display:none; }
  .v3-sol .conv-node{ margin-left:0; margin-top:18px; }
  .v3-sol .conv-node::before{ display:none; }
  .v3-sol .olist a{ grid-template-columns:20px 1fr; }
  .v3-sol .olist .oi-k{ display:none; }
  .v3-sol .final{ padding:80px 0 96px; }
}
@media (max-width:600px){
  .v3-sol .sol-cta .v3-btn{ flex:1 1 100%; text-align:center; }
  .v3-sol .sol-copy h1{ font-size:clamp(32px,9vw,44px); }
  .v3-sol .dsr-row{ grid-template-columns:84px 1fr; }
  .v3-sol .rank-tail{ display:none; }
}

/* ---------- frame re-assert (2026-07-10 consistency pass) ----------
   The `background:` SHORTHANDS on entity classes above (.plate, .sol-note, .term,
   .conv-node, .fcard, .pending) reset background-image and erased the corner
   registration marks. Re-asserted LAST so source order inside this file can never
   kill the frame again (sister backstop lives in v3.css for inline-styled pages). */
.v3-sol .fr{
  background-image:
    linear-gradient(var(--fc),var(--fc)), linear-gradient(var(--fc),var(--fc)),
    linear-gradient(var(--fc),var(--fc)), linear-gradient(var(--fc),var(--fc)),
    linear-gradient(var(--fc),var(--fc)), linear-gradient(var(--fc),var(--fc)),
    linear-gradient(var(--sig),var(--sig)), linear-gradient(var(--sig),var(--sig));
  background-repeat:no-repeat;
  background-position:top left,top left, top right,top right, bottom left,bottom left, bottom right,bottom right;
  background-size:
    var(--fl) var(--ft), var(--ft) var(--fl),
    var(--fl) var(--ft), var(--ft) var(--fl),
    var(--fl) var(--ft), var(--ft) var(--fl),
    var(--fl) var(--fts), var(--fts) var(--fl);
}
