/* Væringjar II — layout rails + readability pass
   Goal: one consistent left/right content rail, contained wide objects,
   aligned card rows, and a readable minimum type scale. */

:root{
  --content:1180px;
  --rail-gutter:24px;
  --grid-gap:16px;
  --grid-gap-wide:32px;
  --muted:#8fb797;
}

/* ---------- Global rail discipline ---------- */
html,body{max-width:100%;overflow-x:clip}
main,.site-header,.site-footer{max-width:100%;overflow-x:clip}
.container,.nav{
  width:100%;
  max-width:var(--content);
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--rail-gutter);
  padding-right:var(--rail-gutter);
}
.container,.container>*{min-width:0}
.container img,.container svg,.container canvas,.container pre{max-width:100%}

/* Keep the header diagnostic label on the same right rail as the page. */
.site-header::after{
  right:max(var(--rail-gutter),calc((100vw - var(--content))/2 + var(--rail-gutter)));
}

/* Wide/scrollable technical objects stay clipped to the content rail. */
.tech-table-wrap,.math-formal,.roadmap-track,
.exp02-matrix-scroll,.exp03-matrix-scroll,
.exp02-graph-wrap,.exp03-graph-wrap,
.exp03-transition-box{
  width:100%;
  max-width:100%;
}

/* ---------- Column rhythm ---------- */
.hero-grid,.arch-preview,.split,.survivability-grid{gap:var(--grid-gap-wide)}
.cards,.research-grid,.partner-grid,.evidence-grid,.paper-limit,
.math-contract-grid,.verification-grid,.hw-map,
.exp02-two,.exp02-three,.exp02-matrix-grid,.exp02-uml-grid,
.exp03-two,.exp03-three,.exp03-matrix-grid,.exp03-uml-grid,
.exp03-diagram-grid,.exp03-plot-grid,.exp03-compare,
.collab-leads,.collab-audience{
  gap:var(--grid-gap);
  align-items:stretch;
}
.cards>.card,.research-grid>.research-card,.partner-grid>.partner,
.evidence-grid>.evidence-card,.paper-limit>div,
.math-contract-grid>.math-contract,.verification-grid>.verify-item,
.hw-map>.hw-block,.collab-leads>.collab-lead-card,.collab-audience>article{
  height:100%;
}

/* ---------- Readable core scale ---------- */
body{font-size:16px;line-height:1.62}
.nav-links{font-size:12px;gap:18px}
.brand-copy{font-size:14px}
.brand-copy small{font-size:11px;line-height:1.25}
.eyebrow{font-size:12px;line-height:1.35}
.small{font-size:13px;line-height:1.55}
.btn{font-size:12px;min-height:46px}

.system-card::before{font-size:10px}
.system-card-head strong{font-size:12px}
.live-dot{font-size:11px}
.flow-step{font-size:11px}
.flow-box b{font-size:13px}
.flow-box span{font-size:12px;line-height:1.55}
.signal-item::before{font-size:10px}
.signal-item b{font-size:13px}
.signal-item span{font-size:12px;line-height:1.5}

.card-num{font-size:11px}
.card p{font-size:14px;line-height:1.65}
.card-link{font-size:12px}
.layer strong{font-size:12px}
.layer span{font-size:14px;line-height:1.55}
.equation-panel::before{font-size:10px}
.equation small{font-size:12px;line-height:1.55}
.breadcrumb{font-size:11px}
.feature b{font-size:11px}
.feature p{font-size:14px;line-height:1.6}
.diagram-note{font-size:11px;line-height:1.55}
.loop-step small{font-size:11px}
.loop-step b{font-size:13px}
.loop-step span{font-size:12px;line-height:1.5}
.status{font-size:10px}
.research-card p{font-size:14px;line-height:1.6}
.tag{font-size:10px}
.partner-type{font-size:11px}
.partner p{font-size:14px;line-height:1.65}
.partner a{font-size:12px}
.cta::before{font-size:10px}
.cta p{font-size:14px;line-height:1.65}
.site-footer{font-size:12px;line-height:1.6}
.site-footer::before{font-size:10px}
.notice{font-size:13px;line-height:1.6}
label{font-size:11px}

/* Researcher/profile + implementation */
.profile-head{font-size:10px}
.profile-kicker{font-size:11px}
.profile-title{font-size:13px;line-height:1.55}
.profile-lines span{font-size:10px}
.profile-lines b{font-size:12px;line-height:1.55}
.phase-badge span{font-size:10px}
.phase-badge b{font-size:13px}
.phase-banner>span{font-size:11px}
.phase-banner>p{font-size:14px;line-height:1.6}
.impl-chain{font-size:12px;line-height:1.5}
.compact-phase span{font-size:11px}
.compact-phase b{font-size:14px}
.compact-phase p{font-size:13px;line-height:1.55}
.math-contract small{font-size:10px}
.math-contract span{font-size:12px;line-height:1.5}
.source-line{font-size:10px;line-height:1.45}
.stage-status{font-size:11px}
.substage-title small{font-size:12px;line-height:1.5}
.tech-table{font-size:12px}
.tech-table th{font-size:10px;line-height:1.4}
.tech-table td{line-height:1.55}
.tech-table code{font-size:11px}
.verify-item b{font-size:12px}
.verify-item code{font-size:12px}
.verify-item span{font-size:12px;line-height:1.5}
.hw-block small{font-size:10px}
.hw-block b{font-size:12px}
.hw-block span{font-size:12px;line-height:1.5}

/* Research library: larger type without letting the roadmap escape the rail. */
.research-library-head .lead{font-size:16px;line-height:1.65}
.research-roadmap-head h2{font-size:25px}
.roadmap-legend{font-size:11px;line-height:1.4;white-space:normal}
.roadmap-note{font-size:13px;line-height:1.55}
.roadmap-track{
  grid-template-columns:repeat(7,minmax(0,1fr));
  overflow:visible;
  gap:8px;
}
.roadmap-step{min-width:0;min-height:170px;padding:14px 12px}
.roadmap-step>span{font-size:11px}
.roadmap-step b{font-size:13px;line-height:1.35}
.roadmap-step p{font-size:11px;line-height:1.5}
.roadmap-step small{font-size:10px;line-height:1.4}
.research-filter{font-size:11px;min-height:44px}
.research-search{font-size:13px;min-height:44px}
.research-result-count{font-size:11px}
.research-library-row{grid-template-columns:88px minmax(0,1fr) 170px;gap:18px;padding-top:18px;padding-bottom:18px}
.research-library-id{font-size:12px}
.research-library-main h2{font-size:17px;line-height:1.4}
.research-library-main p{font-size:13px;line-height:1.5}
.research-library-side{font-size:11px;line-height:1.4}
.research-library-side .status{font-size:10px}
.research-external{font-size:11px}

/* Publication/research lineage */
.lineage-year{font-size:11px}
.lineage-step b{font-size:13px}
.lineage-step p{font-size:12px;line-height:1.6}
.publication-meta,.publication-meta code,.paper-link{font-size:11px;line-height:1.5}
.verified-note span{font-size:11px}
.verified-note p{font-size:13px;line-height:1.6}

/* ---------- EXP-02 / EXP-03 ---------- */
.exp02-crumb,.exp03-crumb{font-size:11px}
.exp02-hero .lead,.exp03-hero .lead{font-size:16px;line-height:1.65}
.exp02-meta-row span,.exp03-meta-row span{font-size:11px}
.exp02-meta-row b,.exp03-meta-row b{font-size:12px;line-height:1.4}
.exp02-section-head p,.exp03-section-head p{font-size:14px;line-height:1.65}
.exp02-kicker,.exp03-kicker{font-size:11px}
.exp02-warning,.exp03-warning{font-size:13px;line-height:1.6}
.exp02-model-chain span,.exp03-model-chain span{font-size:12px;line-height:1.45}
.exp02-formula p,.exp03-formula p{font-size:13px;line-height:1.6}
.exp02-resource small,.exp03-resource small{font-size:10px}
.exp02-control,.exp03-control{font-size:11px;min-height:40px}
.exp02-panel-head b,.exp03-panel-head b{font-size:12px}
.exp02-panel-head span,.exp03-panel-head span{font-size:10px}
.exp02-legend,.exp03-legend{font-size:11px;line-height:1.45}
.exp02-matrix,.exp03-matrix{font-size:12px}
.exp02-score-table,.exp03-score-table{font-size:12px}
.exp02-score-table th,.exp03-score-table th{font-size:10px}
.trace-step small{font-size:10px}
.trace-step b{font-size:13px}
.trace-step span{font-size:11px;line-height:1.5}
.path-kpi small{font-size:10px}
.uml-card header{font-size:11px}
.uml-text{font-size:11px}
.uml-small{font-size:10px}
.exp02-takeaway p,.exp03-takeaway p{font-size:13px;line-height:1.65}
.exp02-noscript,.exp03-noscript{font-size:12px}
.graph-node .node-label{font-size:11px}
.graph-node .node-value{font-size:10px}

/* EXP-03 extra evidence layer */
.exp03-page summary{font-size:11px}
.exp03-figure figcaption{font-size:12px;line-height:1.6}
.exp03-compare-card small{font-size:10px}
.exp03-compare-card b{font-size:13px}
.exp03-compare-card p{font-size:12px;line-height:1.55}
.exp03-config-table,.exp03-general-table{font-size:12px}
.exp03-config-table th,.exp03-general-table th{font-size:10px}
.exp03-config-table td small{font-size:10px}
.exp03-graph-node .node-label{font-size:10px}
.exp03-svg-note{font-size:10px}
.exp03-svg-hot{font-size:11px}
.exp03-data-note{font-size:12px;line-height:1.6}
.exp03-publication{font-size:12px;line-height:1.65}

/* ---------- EXP-01 ---------- */
.exp01-page .wrap{
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--rail-gutter);
  padding-right:var(--rail-gutter);
}
.exp01-page nav{font-size:13px}
.exp01-page .eyebrow,.exp01-page .label{font-size:12px}
.exp01-page .figure figcaption{font-size:13px;line-height:1.55}
.exp01-page table{font-size:13px}
.exp01-page .code-head{font-size:13px}
.exp01-page footer{font-size:13px}
.exp01-page .equation .eqno{font-size:12px}
.exp01-page .equation-note{font-size:14px;line-height:1.6}
.exp01-page .grid2,.exp01-page .grid3,.exp01-page .grid4{gap:var(--grid-gap)}

/* ---------- Collaboration ---------- */
.collab-main .hero-inner .lead{font-size:16px;line-height:1.7}
.collab-heading p{font-size:14px;line-height:1.65}
.collab-role{font-size:11px}
.collab-lead-card p{font-size:14px;line-height:1.65}
.collab-lead-card .meta{font-size:12px}
.collab-status .tag{font-size:11px}
.collab-status p{font-size:13px;line-height:1.6}
.collab-audience .num,.collab-audience .tail{font-size:11px}
.collab-audience p{font-size:14px;line-height:1.65}
.collab-input{gap:var(--grid-gap-wide)}
.collab-input-copy p{font-size:14px;line-height:1.65}
.collab-step>span{font-size:11px}
.collab-step strong{font-size:15px}
.collab-step p{font-size:13px;line-height:1.6}
.collab-note{font-size:13px;line-height:1.65}
.collab-cta::before{font-size:10px}
.collab-cta p{font-size:14px;line-height:1.65}

/* ---------- Standalone mobile page ---------- */
.mobile-page body{font-size:16px}
.mobile-page .wrap{width:min(100%,620px);padding-left:20px;padding-right:20px}
.mobile-page .brand small{font-size:10px}
.mobile-page .eyebrow{font-size:11px}
.mobile-page .status{font-size:12px;line-height:1.55}
.mobile-page .btn{font-size:12px}
.mobile-page .copy{font-size:14px;line-height:1.65}
.mobile-page .n{font-size:11px}
.mobile-page .step b{font-size:13px}
.mobile-page .step span{font-size:12px;line-height:1.5}
.mobile-page .card small{font-size:10px}
.mobile-page .card h3{font-size:15px}
.mobile-page .card p{font-size:13px;line-height:1.55}
.mobile-page .desktop-note strong{font-size:12px}
.mobile-page .desktop-note p{font-size:13px;line-height:1.6}
.mobile-page .tiny,.mobile-page .footer{font-size:11px;line-height:1.55}

/* ---------- Responsive rail + grid handling ---------- */
@media(max-width:1050px){
  .roadmap-track{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
}
@media(max-width:800px){
  :root{--rail-gutter:20px;--grid-gap-wide:24px}
  .research-library-row{grid-template-columns:72px minmax(0,1fr);gap:12px}
  .research-library-side{grid-column:2;justify-items:start;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .roadmap-track{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  :root{--rail-gutter:17px}
  .roadmap-track{grid-template-columns:1fr}
  .roadmap-step{min-height:auto}
  .research-library-row{grid-template-columns:58px minmax(0,1fr)}
  .research-library-main h2{font-size:16px}
}

/* Final rail corrections for decorative/system text. */
.hero::after{
  left:max(var(--rail-gutter),calc((100vw - var(--content))/2 + var(--rail-gutter)));
  font-size:10px;
}
.site-header::after{font-size:10px}
.site-footer::before{
  padding-left:var(--rail-gutter);
  padding-right:var(--rail-gutter);
  font-size:10px;
}
@media(max-width:980px){
  .nav-links{padding-left:var(--rail-gutter);padding-right:var(--rail-gutter)}
}
