/* Open-lab homepage (open-lab-v1). Tokens only: colours, spacing, type and radii come from glee-tokens.css. */
.olab{background:var(--c-ink);color:var(--c-paper);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}
.olab .patina-tex,.olab .patina-geo,.olab .gs-lnav{display:none}
:where(.olab) *,:where(.olab) *::before,:where(.olab) *::after{box-sizing:border-box}
:where(.olab) :is(h1,h2,h3,h4,p,figure,ul,ol,dl,dd){margin:0}
:where(.olab) :is(ul,ol){padding:0;list-style:none}
:where(.olab) a{color:inherit;text-decoration:none}
.olab a:focus-visible,.olab summary:focus-visible{outline:2px solid var(--c-gold-hi);outline-offset:var(--space-4)}
.olab [id]{scroll-margin-top:var(--space-64)}
:where(.olab) :is(h1,h2,h3,h4){font-family:var(--glee-serif);font-weight:400;letter-spacing:-.03em;line-height:1.1;text-transform:none}
.olab h1 em,.olab h2 em{font-style:italic;color:var(--c-gold-mid)}
.olab-main:focus{outline:none}
.olab-wrap{width:min(1180px,calc(100% - 2 * var(--space-40)));margin-inline:auto}

.olab-eyebrow{font-family:var(--mono);font-size:var(--text-12);letter-spacing:.14em;text-transform:uppercase;color:var(--c-gold-mid)}
.olab-muted{color:var(--c-muted)}
.olab-section{padding-block:var(--space-64);border-top:1px solid var(--c-shell-hairline)}
.olab-section-head{display:grid;gap:var(--space-16);max-width:62ch;margin-bottom:var(--space-40)}
.olab-section-head h2{font-size:var(--text-40)}
.olab-section-head p:not(.olab-eyebrow){font-size:var(--text-16);color:var(--c-muted)}

/* Hero */
.olab-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-64);align-items:start;padding-block:var(--space-64)}
.olab-hero h1{font-size:clamp(calc(var(--text-40) * 1.15),5.6vw,calc(var(--text-40) * 1.9));margin-top:var(--space-24);max-width:14ch}
.olab-lede{font-size:var(--text-20);line-height:1.6;max-width:52ch;margin-top:var(--space-24)}
.olab-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-16);margin-top:var(--space-40)}
.olab-button{display:inline-flex;align-items:center;gap:var(--space-12);min-height:48px;padding:var(--space-12) var(--space-24);border:1px solid var(--c-gold-mid);border-radius:var(--radius-2);background:var(--c-gold-mid);color:var(--c-ink);font-size:var(--text-14);font-weight:600;transition:background .18s,border-color .18s}
.olab-button:hover{background:var(--c-gold-hi);border-color:var(--c-gold-hi)}
.olab-button-quiet{background:transparent;color:var(--c-paper);border-color:var(--c-muted-2)}
.olab-button-quiet:hover{background:var(--c-surface-2);border-color:var(--c-gold-mid)}
.olab-link{display:inline-flex;align-items:center;gap:var(--space-8);min-height:44px;font-size:var(--text-14);color:var(--c-gold-mid);border-bottom:1px solid transparent}
.olab-link:hover{color:var(--c-gold-hi);border-bottom-color:var(--c-gold-hi)}

/* Status board */
.olab-board{border:1px solid var(--c-shell-hairline);border-radius:var(--radius-8);background:var(--c-ink-2);padding:var(--space-24)}
.olab-board-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-12);padding-bottom:var(--space-16);border-bottom:1px solid var(--c-shell-hairline)}
.olab-board-head h2{font-family:var(--mono);font-size:var(--text-12);letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted)}
.olab-board-head span{font-size:var(--text-12);color:var(--c-muted)}
.olab-board li{border-bottom:1px solid var(--c-shell-hairline)}
.olab-board ul{margin-top:var(--space-4)}
.olab-board li:last-child{border-bottom:0}
.olab-board li>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4) var(--space-16);align-items:center;padding-block:var(--space-16);min-height:44px}
.olab-board li>a:hover strong{color:var(--c-gold-hi)}
.olab-board strong{font-weight:500;font-size:var(--text-16);line-height:1.4}
.olab-board small{grid-column:1;font-size:var(--text-13);color:var(--c-muted)}
.olab-board .olab-status{grid-row:1 / span 2;grid-column:2}
.olab-board-foot{padding-top:var(--space-16);font-size:var(--text-13);color:var(--c-muted)}
.olab-inline{color:var(--c-gold-mid);text-decoration:underline;text-underline-offset:3px}
.olab-inline:hover{color:var(--c-gold-hi)}

/* Status chips: one meaning per label, explained in the legend below. */
.olab-status{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-12);border:1px solid var(--c-muted-2);border-radius:var(--radius-pill);font-size:var(--text-12);white-space:nowrap;color:var(--c-paper)}
.olab-status::before{content:"";width:8px;height:8px;border-radius:var(--radius-pill);background:var(--c-muted)}
.olab-status[data-status="early"]::before{background:var(--c-gold-mid)}
.olab-status[data-status="early"]{border-color:var(--c-gold)}
.olab-status[data-status="model"]::before{background:var(--c-info)}
.olab-status[data-status="inconclusive"]::before{background:transparent;border:1px solid var(--c-muted)}

/* Programs and investigations */
.olab-program{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:var(--space-40);padding-top:var(--space-40)}
.olab-program+.olab-program{margin-top:var(--space-64);border-top:1px solid var(--c-shell-hairline)}
.olab-program-intro{display:grid;gap:var(--space-16);align-content:start;align-self:start;position:sticky;top:calc(var(--space-64) + var(--space-40))}
.olab-program-intro h3{font-size:var(--text-28)}
.olab-program-intro p{color:var(--c-muted)}
.olab-cards{display:grid;gap:var(--space-24)}
.olab-card{border:1px solid var(--c-shell-hairline);border-radius:var(--radius-8);padding:var(--space-24);background:var(--c-ink-2);display:grid;gap:var(--space-16)}
.olab-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-16)}
.olab-card h4{font-family:var(--glee-serif);font-weight:400;font-size:var(--text-28);line-height:1.15;letter-spacing:-.02em;text-transform:none;margin:0;max-width:24ch}
.olab-card p{color:var(--c-paper)}
.olab-card dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-8) var(--space-16);font-size:var(--text-14)}
.olab-card dt{font-family:var(--mono);font-size:var(--text-12);letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);padding-top:var(--space-2)}
.olab-card dd{color:var(--c-paper)}
.olab-card-meta{font-size:var(--text-13);color:var(--c-muted)}
.olab-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-16)}
.olab-fact{border-top:1px solid var(--c-gold);padding-top:var(--space-12);display:grid;gap:var(--space-4)}
.olab-fact b{font-family:var(--glee-serif);font-weight:400;font-size:var(--text-28);color:var(--c-gold-mid);line-height:1.1}
.olab-fact span{font-size:var(--text-13);color:var(--c-muted)}
.olab-links{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-24)}

/* Result chart */
.olab-chart{border-top:1px solid var(--c-shell-hairline);padding-top:var(--space-16)}
.olab-chart figcaption{font-size:var(--text-13);color:var(--c-muted);margin-top:var(--space-12)}
.olab-chart-title{font-family:var(--mono);font-size:var(--text-12);letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);margin-bottom:var(--space-12)}
/* Bar widths are value / 8 items (scale max), from compare_v1.json: 6.667, 5.667, 3.833. */
.olab-bars{display:grid;gap:var(--space-8)}
.olab-bar-row{display:grid;grid-template-columns:minmax(96px,9rem) minmax(0,1fr) 3ch;gap:var(--space-12);align-items:center;font-size:var(--text-14)}
.olab-bar-row b{font-family:var(--mono);font-weight:400;text-align:right}
.olab-bar-track{display:block;height:24px;border-left:1px solid var(--c-shell-hairline)}
.olab-bar{display:block;height:100%;background:var(--c-surface-3)}
.olab-bar-trained{width:83.3%;background:var(--c-gold-mid)}
.olab-bar-init{width:70.8%}
.olab-bar-random{width:47.9%}
.olab-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* How it works */
.olab-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-24);counter-reset:step}
.olab-steps li{border-top:1px solid var(--c-gold);padding-top:var(--space-16);display:grid;gap:var(--space-8);align-content:start}
.olab-steps li::before{counter-increment:step;content:"0" counter(step);font-family:var(--mono);font-size:var(--text-12);color:var(--c-gold-mid);letter-spacing:.12em}
.olab-steps h3{font-size:var(--text-20)}
.olab-steps p{font-size:var(--text-14);color:var(--c-muted)}
.olab-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-40);margin-top:var(--space-64)}
.olab-split h3{font-size:var(--text-28);margin-bottom:var(--space-16)}
.olab-split p+p{margin-top:var(--space-12)}
.olab-legend{display:grid;gap:var(--space-12)}
.olab-legend div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:var(--space-16);align-items:start;font-size:var(--text-14)}
.olab-legend dd{color:var(--c-muted)}

/* Canada */
.olab-canada{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-64);align-items:start}
.olab-canada h2{font-size:var(--text-40)}
.olab-canada p{font-size:var(--text-16)}
.olab-canada p+p{margin-top:var(--space-16)}
.olab-note{border-left:2px solid var(--c-gold);padding-left:var(--space-16);color:var(--c-muted);font-size:var(--text-14)}

/* Take part */
.olab-doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-16)}
.olab-door{display:grid;gap:var(--space-8);align-content:start;min-height:100%;padding:var(--space-24);border:1px solid var(--c-shell-hairline);border-radius:var(--radius-8);background:var(--c-ink-2);transition:border-color .18s,background .18s}
.olab-door:hover{border-color:var(--c-gold-mid);background:var(--c-surface)}
.olab-door h3{font-size:var(--text-20)}
.olab-door p{font-size:var(--text-14);color:var(--c-muted)}
.olab-door span{font-size:var(--text-14);color:var(--c-gold-mid);margin-top:var(--space-8)}

/* Explore */
.olab-explore{display:flex;justify-content:space-between;align-items:center;gap:var(--space-40);padding:var(--space-40);border:1px solid var(--c-gold);border-radius:var(--radius-8);background:var(--c-ink-2)}
.olab-explore h2{font-size:var(--text-28)}
.olab-explore p{color:var(--c-muted);margin-top:var(--space-8);max-width:60ch}

/* Footer */
.olab-footer{border-top:1px solid var(--c-shell-hairline);padding-block:var(--space-40) var(--space-64)}
.olab-footer-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-24) var(--space-40);align-items:start}
.olab-footer-brand{font-family:var(--glee-serif);font-size:var(--text-28);color:var(--c-gold-mid)}
.olab-footer nav{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-24);font-size:var(--text-14)}
.olab-footer nav a{min-height:44px;display:inline-flex;align-items:center}
.olab-footer nav a:hover{color:var(--c-gold-hi)}
.olab-footer p{font-size:var(--text-13);color:var(--c-muted)}
.olab-footer-boundary{grid-column:1 / -1}

@media(max-width:1050px){
  .olab-hero,.olab-canada,.olab-split{grid-template-columns:minmax(0,1fr);gap:var(--space-40)}
  .olab-program{grid-template-columns:minmax(0,1fr);gap:var(--space-24)}
  .olab-program-intro{position:static}
  .olab-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .olab-doors{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .olab-wrap{width:calc(100% - 2 * var(--space-16))}
  .olab-hero{padding-block:var(--space-40)}
  .olab-section{padding-block:var(--space-40)}
  .olab-section-head h2,.olab-canada h2{font-size:var(--text-28)}
  .olab-card{padding:var(--space-16)}
  .olab-card-head{flex-direction:column;gap:var(--space-8)}
  .olab-card h4{font-size:var(--text-20)}
  .olab-card dl{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
  .olab-card dd{margin-bottom:var(--space-8)}
  .olab-facts,.olab-steps,.olab-doors{grid-template-columns:minmax(0,1fr)}
  .olab-legend div{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
  .olab-explore{flex-direction:column;align-items:flex-start;padding:var(--space-24)}
  .olab-footer-grid{grid-template-columns:minmax(0,1fr)}
  .olab-board{padding:var(--space-16)}
  .olab-lede{font-size:var(--text-16)}
}
/* Investigation documents (/research/learning/) */
.olab-doc-hero{padding-block:var(--space-40) var(--space-64);display:grid;gap:var(--space-24);max-width:880px}
.olab-doc-hero h1{font-size:clamp(var(--text-40),4.6vw,calc(var(--text-40) * 1.5))}
.olab-doc-hero .olab-lede{margin-top:0}
.olab-crumbs{display:flex;flex-wrap:wrap;gap:var(--space-8);font-size:var(--text-13);color:var(--c-muted)}
.olab-crumbs a{color:var(--c-gold-mid)}
.olab-crumbs a:hover{color:var(--c-gold-hi)}
.olab-toc{display:grid;border-top:1px solid var(--c-shell-hairline)}
.olab-toc a{display:flex;align-items:center;gap:var(--space-16);min-height:48px;padding-block:var(--space-8);border-bottom:1px solid var(--c-shell-hairline);font-size:var(--text-16)}
.olab-toc a:hover{color:var(--c-gold-hi)}
.olab-toc .olab-status{flex:none;min-width:136px;justify-content:flex-start}
.olab-doc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:var(--space-40)}
.olab-doc-head{display:grid;gap:var(--space-12);align-content:start;align-self:start;position:sticky;top:calc(var(--space-64) + var(--space-40))}
.olab-doc-head h2{font-size:var(--text-28)}
.olab-doc-head p:last-child{display:grid;gap:var(--space-8);justify-items:start;font-size:var(--text-14);color:var(--c-muted)}
.olab-doc-body{display:grid;gap:var(--space-16);max-width:72ch}
.olab-doc-body h3{font-size:var(--text-20);margin-top:var(--space-24)}
.olab-doc-body h3:first-child{margin-top:0}
.olab-list{display:grid;gap:var(--space-12)}
.olab-list li{position:relative;padding-left:var(--space-24)}
.olab-list li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:var(--c-gold-mid)}
.olab-table-wrap{overflow-x:auto;border:1px solid var(--c-shell-hairline);border-radius:var(--radius-8)}
.olab-table{width:100%;border-collapse:collapse;font-size:var(--text-14)}
.olab-table caption{caption-side:top;text-align:left;padding:var(--space-12) var(--space-16);font-size:var(--text-13);color:var(--c-muted);border-bottom:1px solid var(--c-shell-hairline)}
.olab-table th,.olab-table td{padding:var(--space-12) var(--space-16);text-align:left;vertical-align:top;border-bottom:1px solid var(--c-shell-hairline)}
.olab-table tbody tr:last-child th,.olab-table tbody tr:last-child td{border-bottom:0}
.olab-table thead th{font-family:var(--mono);font-size:var(--text-12);font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted)}
.olab-table tbody th{font-weight:500}
.olab-table-num td{font-variant-numeric:tabular-nums}
.olab-pass{color:var(--c-ok)}
.olab-fail{color:var(--c-warn)}
.olab-curve{display:grid;gap:var(--space-12);border-top:1px solid var(--c-shell-hairline);padding-top:var(--space-16);margin-top:var(--space-8)}
.olab-curve svg{display:block;width:100%;max-width:600px;height:auto}
.olab-curve figcaption{font-size:var(--text-13);color:var(--c-muted)}
.olab-curve .grid{stroke:var(--c-shell-hairline);stroke-width:1}
.olab-curve .tick{fill:var(--c-muted);font-size:var(--text-14);font-family:var(--mono)}
.olab-curve .note{fill:var(--c-paper);font-size:var(--text-14)}
.olab-curve .baseline{stroke:var(--c-muted);stroke-width:1.5;stroke-dasharray:5 5}
.olab-curve .curve{fill:none;stroke:var(--c-gold-mid);stroke-width:2.5;stroke-linejoin:round}
.olab-curve .dot{fill:var(--c-gold-mid)}
.olab-curve .dot-end{fill:var(--c-ink);stroke:var(--c-gold-hi);stroke-width:2.5}
@media(max-width:1050px){
  .olab-doc{grid-template-columns:minmax(0,1fr);gap:var(--space-24)}
  .olab-doc-head{position:static}
}
@media(max-width:700px){
  .olab-toc a{flex-direction:column;align-items:flex-start;gap:var(--space-4)}
  .olab-table th,.olab-table td{padding:var(--space-8) var(--space-12)}
}
.olab-research-index{background:transparent;display:grid;gap:var(--space-16);padding-block:var(--space-40);border-top:1px solid var(--c-shell-hairline)}
.olab-research-index h2{font-size:var(--text-28)}
@media(prefers-reduced-motion:reduce){.olab *{transition:none!important}}
