/* AI at TruU — technical whitepaper. Prose left, one architecture figure right, per section. */

body.ai-page { background: var(--bg); }

.ai-page .navlinks a.active { color: var(--text); }

.ai-main { padding-top: 74px; padding-bottom: 100px; }

/* The paper — site margins */
.wp { max-width: var(--maxw); margin: 0 auto; padding: 72px 40px 0; }

/* ---------- Masthead ---------- */
.wp-title {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(32px, 4.6vw, 54px); line-height: 1.06; letter-spacing: -.018em;
  color: var(--text); margin: 0 0 26px; max-width: 900px;
}
.wp-authors { display: flex; flex-wrap: wrap; gap: 14px 60px; }
.wp-author { display: flex; flex-direction: column; gap: 4px; }
.wp-author-name { font-family: var(--font-display); font-size: 18px; color: var(--text); letter-spacing: -.005em; }
.wp-author-role { font-family: "IBM Plex Mono", monospace; font-size: 11.5px; color: var(--text-3); letter-spacing: .01em; }
.wp-meta { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 48px; flex-wrap: wrap; }
.wp-date { font-family: "IBM Plex Mono", monospace; font-size: 12px; color: var(--text-3); letter-spacing: .05em; white-space: nowrap; }
.wp-rule { height: 1px; background: var(--border); border: 0; margin: 30px 0; }

/* ---------- Abstract ---------- */
.wp-abstract { display: grid; grid-template-columns: 124px minmax(0, 1fr); gap: 32px; align-items: start; }
.wp-abstract-label { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--text-3); padding-top: 5px; }
.wp-abstract-body { font-family: var(--font-display); font-size: clamp(17px, 1.45vw, 20px); line-height: 1.55; color: var(--text); max-width: 780px; }
.wp-abstract-body .k { font-weight: 500; }

/* ---------- Section: head spans top, prose left + figure right ---------- */
.wp-sec {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(400px, 480px);
  column-gap: 60px; row-gap: 0;
  align-items: start;
  border-top: 1px solid var(--border);
  padding-top: 44px; margin-top: 48px;
}
.wp-sec:first-of-type { border-top: 0; padding-top: 8px; margin-top: 10px; }
.wp-sec-text { min-width: 0; }
.wp-sec-fig-col { min-width: 0; }

.wp-sec-head { grid-column: 1 / -1; margin-bottom: 36px; }
.wp-secno { font-family: var(--font-display); font-size: 23px; font-weight: 400; color: var(--text-2); margin-right: 14px; }
.wp-secno::after { content: "."; }
.wp-sec-title { font-family: var(--font-display); font-size: 23px; font-weight: 400; letter-spacing: -.012em; color: var(--text); }
.wp-tagline { font-family: var(--font-display); font-style: italic; font-size: 17px; line-height: 1.42; color: var(--text-2); margin: 8px 0 0; }
.wp-sec-text p.wp-tagline { font-size: 14.5px; color: var(--text-2); }

.wp-sec-text p {
  font-family: var(--font-display);
  font-size: 16.5px; line-height: 1.62; color: var(--text-2);
  text-align: justify; -webkit-hyphens: auto; hyphens: auto;
  margin: 0 0 13px;
}
.wp-sec-text .k { color: var(--text); }

/* Figure */
.wp-fig { background: var(--base); border: .5px solid var(--border); border-radius: 12px; padding: 24px 20px 14px; margin: 0; max-width: 480px;
  --bx: rgba(255,255,255,0.34); --edge: rgba(255,255,255,0.42); --faint: rgba(255,255,255,0.18);
  --dim: #7c7c84; --cap: #c9c9d0; --bright: #f5f5f7; --eye: #6f6f79; --ink: #d7d7dd; }
.wp-fig svg { width: 100%; height: auto; display: block; overflow: visible; }
.wp-fig text { font-family: "IBM Plex Mono", monospace; dominant-baseline: central; }
.wp-fig text.lbl { fill: var(--ink); font-size: 12px; text-anchor: middle; }
.wp-fig text.sm { fill: var(--ink); font-size: 11px; text-anchor: middle; }
.wp-fig text.el { fill: var(--dim); font-size: 10.5px; text-anchor: middle; }
.wp-fig text.els { fill: var(--dim); font-size: 10.5px; text-anchor: start; }
.wp-fig text.ele { fill: var(--dim); font-size: 10.5px; text-anchor: end; }
.wp-fig text.band { fill: var(--cap); font-size: 11px; letter-spacing: .01em; text-anchor: start; }
.wp-fig text.tier { fill: var(--eye); font-size: 10px; letter-spacing: .04em; text-anchor: middle; }
.wp-fig .box { fill: none; stroke: var(--bx); stroke-width: 1; }
.wp-fig rect.hi { fill: rgba(255,255,255,0.05); stroke: rgba(255,255,255,0.46); stroke-width: 1; }
.wp-fig rect.band { fill: rgba(255,255,255,0.015); stroke: var(--bx); stroke-width: 1; stroke-dasharray: 4 3; }
.wp-fig .dash { stroke-dasharray: 3 3; }
.wp-fig .arr { stroke: var(--edge); stroke-width: 1; fill: none; marker-end: url(#ah); }
.wp-fig .edge { stroke: var(--faint); stroke-width: 1; fill: none; }
.wp-fig ellipse.dash { fill: none; stroke: var(--bx); stroke-width: 1; }
.wp-fig circle.node { fill: none; stroke: var(--bx); stroke-width: 1; }
.wp-fig circle.dot { fill: var(--ink); }
.wp-figcap { font-family: "IBM Plex Mono", monospace; font-size: 12.5px; line-height: 1.55; color: var(--text-3); margin: 16px 0 0; }
.wp-figcap b { color: var(--text-2); font-weight: 500; }

/* Model-card / spec */
.wp-spec { border: .5px solid var(--border); border-radius: 8px; background: #0d0d0f; padding: 14px 16px; margin: 20px 0 0; max-width: 460px; }
.wp-spec-h { font-family: "IBM Plex Mono", monospace; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); margin-bottom: 10px; }
.wp-spec-row { display: flex; justify-content: space-between; gap: 14px; font-family: "IBM Plex Mono", monospace; font-size: 11.5px; line-height: 1.5; padding: 2.5px 0; }
.wp-spec-row span:first-child { color: var(--text-3); white-space: nowrap; }
.wp-spec-row span:last-child { color: var(--text); text-align: right; }

/* Footer uses the shared .site-footer styling in styles.css; the whitepaper's breathing room above it lives on .ai-main padding-bottom. */

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .wp { padding: 56px 28px 0; }
  .wp-sec {
    display: flex; flex-direction: column;
    gap: 26px; padding-top: 36px; margin-top: 40px;
  }
  .wp-sec-head { order: 1; margin-bottom: 0; }
  .wp-sec-fig-col { order: 2; }
  .wp-sec-text { order: 3; max-width: 640px; }
  .wp-abstract { grid-template-columns: 1fr; gap: 12px; }
}
@media (max-width: 760px) {
  .wp { padding: 56px 22px 0; }
  .wp-title { font-size: clamp(34px, 9vw, 42px); line-height: 1.06; }
  .wp-sec { gap: 22px; padding-top: 32px; margin-top: 32px; }
  .wp-sec-head { margin-bottom: 0; }
  .wp-fig { padding: 16px 12px 10px; max-width: 100%; }
  .wp-figcap { font-size: 11.5px; margin-top: 12px; }
  .wp-abstract-body { font-size: 15.5px; line-height: 1.55; max-width: none; }
  .wp-sec-text { max-width: none; }
  .wp-sec-text p { font-size: 15px; line-height: 1.55; text-align: left; -webkit-hyphens: none; hyphens: none; }
  .wp-spec { max-width: 100%; }
  .wp-secno { font-size: 20px; margin-right: 10px; }
  .wp-sec-title { font-size: 20px; }
  .wp-tagline { font-size: 15px; line-height: 1.55; }
}
@media (max-width: 560px) {
  .wp-authors { gap: 14px 32px; }
}
