/* Geology laboratory: shared editorial language, scoped to the new exhibits. */
.geology-lab-document {scroll-behavior: auto;}
.page-main > .lab-page {width: 100%; max-width: 1340px; margin: 0 auto; padding: 0 var(--gutter) 90px;}
.lab-masthead {padding: 40px 0 28px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 24px 70px; align-items: end;}
.lab-kicker {font: 500 11px/1.5 var(--mono); text-transform: uppercase; letter-spacing: .13em; color: var(--clay); margin: 0 0 15px;}
.lab-masthead h1 {font: 500 clamp(37px,4.8vw,66px)/1.07 var(--serif); letter-spacing: -.04em; max-width: 800px;}
.lab-intro {font-size: 16px; line-height: 1.7; color: var(--ink-2); max-width: 41em; margin: 0;}
.lab-nav {display: flex; align-items: center; flex-wrap: wrap; gap: 10px 28px; border-block: 1px solid var(--rule-2); padding: 13px 0; font-size: 13px; margin-bottom: 32px;}
.lab-nav a {text-decoration: none; min-height: 30px; display: inline-flex; align-items: center;}
.lab-nav a[aria-current] {color: var(--clay); font-weight: 700;}
.lab-nav .reading-link {margin-left: auto; text-decoration: underline;}
.lab-note {padding-left: 14px; border-left: 2px solid var(--clay); color: var(--ink-2); font-size: 13px; line-height: 1.6;}
.lab-note strong {color: var(--ink);}
.lab-workbench {border: 1px solid var(--rule-2); background: var(--card);}
.lab-workbench-head {padding: 18px 24px; display: flex; justify-content: space-between; align-items: center; gap: 14px; border-bottom: 1px solid var(--rule);}
.lab-workbench-head h2 {font: 500 22px/1.25 var(--serif);}
.lab-tag {font: 11px/1.5 var(--mono); text-transform: uppercase; letter-spacing: .05em; color: var(--ink-2);}
.lab-experiment {display: grid; grid-template-columns: minmax(0,1fr) 290px;}
.lab-views {padding: 22px 26px 16px; min-width: 0;}
.lab-comparison {display: grid; grid-template-columns: 1fr 1fr; gap: 20px;}
.lab-rock {margin: 0; min-width: 0;}
.lab-rock-header {display: flex; gap: 10px; align-items: center; font-size: 13px;}
.lab-letter {display: inline-grid; place-items: center; width: 26px; height: 26px; background: var(--forest); color: var(--paper); font: 13px var(--mono); flex: 0 0 auto;}
.lab-rock:nth-child(2) .lab-letter {background: var(--clay);}
.lab-rock svg {display: block; width: 100%; aspect-ratio: 1.5; margin: 12px 0; background: #eee9df; border-bottom: 1px solid #cdc2b0;}
.lab-rock figcaption {font-size: 12px; color: var(--ink-2); min-height: 42px;}
.lab-rock figcaption strong {color: var(--ink);}
.lab-controls {padding: 22px; border-left: 1px solid var(--rule); background: var(--paper);}
.lab-controls label, .lab-field label {display: block; font-size: 13px; font-weight: 600;}
.lab-controls select, .lab-field select {width: 100%; min-height: 44px; font: 13px var(--sans); padding: 9px 30px 9px 10px; border: 1px solid #8d9186; border-radius: 3px; background: var(--card); color: var(--ink); margin-top: 7px;}
.lab-range {margin-top: 20px;}
.lab-range label {display: flex; justify-content: space-between; gap: 8px;}
.lab-range output {font: 12px/1.7 var(--mono); color: #675144; font-weight: 400;}
.lab-page input[type=range] {width: 100%; min-height: 36px; accent-color: var(--clay); cursor: pointer; margin: 3px 0 0;}
.lab-endpoints {display: flex; justify-content: space-between; color: var(--ink-2); font-size: 10px; line-height: 1.4;}
.lab-page input[type=checkbox], .lab-page input[type=radio] {width: 18px; height: 18px; accent-color: var(--forest); flex: 0 0 auto;}
.lab-check {display: flex !important; gap: 10px; align-items: center; min-height: 44px; font-size: 13px; font-weight: 400 !important;}
.lab-controls details {border-top: 1px solid var(--rule); margin-top: 18px; padding-top: 12px;}
.lab-page summary {cursor: pointer; min-height: 44px; display: list-item; font-size: 14px; font-weight: 600;}
.lab-playback {border-top: 1px solid var(--rule); padding: 16px 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px;}
.lab-button {border: 1px solid #92968c; background: var(--card); padding: 9px 14px; border-radius: 3px; min-height: 44px; cursor: pointer; font: 500 13px/1.5 var(--sans);}
.lab-button:hover {border-color: var(--clay); background: #f3e6d7;}
.lab-button.primary, .lab-button[aria-pressed=true] {background: var(--forest); border-color: var(--forest); color: #fff;}
.lab-button:disabled {opacity: .5; cursor: default;}
.lab-timeline {flex: 1 1 250px; max-width: 400px; margin-left: auto;}
.lab-timeline label {display: flex; justify-content: space-between; gap: 10px; font: 11px/1.5 var(--mono);}
.lab-legend {display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 14px 0 10px; font-size: 11px; border-top: 1px solid var(--rule);}
.lab-legend span {display: inline-flex; align-items: center; gap: 7px;}
.lab-swatch {width: 15px; height: 11px; background: #e8c59f; border: 1px solid #986e50;}
.lab-swatch.soft {background: #bc6847;}
.lab-swatch.crack {background: none; border: 0; border-left: 2px dashed #603923; width: 5px;}
.lab-swatch.loose {background: radial-gradient(#624b3a 1px, #cfb397 1px); background-size: 4px 4px;}
.lab-observation {padding: 20px 0 6px; border-top: 1px solid var(--rule); margin-top: 12px;}
.lab-observation h3 {font: 500 21px/1.25 var(--serif); margin-bottom: 9px;}
.lab-observation p {font-size: 13px; max-width: 65ch; color: var(--ink-2);}
.lab-state-note {font: 11px/1.7 var(--mono); color: var(--ink-2); margin: 15px 0; min-height: 1.7em;}
.lab-reading {display: grid; grid-template-columns: 230px minmax(0,1fr); gap: 56px; padding-top: 60px; margin-top: 35px; border-top: 1px solid var(--rule-2); scroll-margin-top: 25px;}
.lab-reading > header h2 {font: 500 31px/1.15 var(--serif); margin-bottom: 15px;}
.lab-reading > header p {font-size: 13px; color: var(--ink-2);}
.lab-reading-copy {max-width: 850px; min-width: 0;}
.lab-reading-copy h3 {font: 500 25px/1.25 var(--serif); margin: 0 0 12px;}
.lab-reading-copy p {font-size: 15px; color: var(--ink-2); max-width: 75ch;}
.lab-reading-copy section + section {margin-top: 32px;}
.lab-paired-notes {display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-block: 32px;}
.lab-paired-notes section + section {margin: 0;}
.lab-static-figure {margin: 24px 0;}
.lab-static-figure img {display: block; width: 100%; background: var(--paper-2);}
.lab-static-figure figcaption {font-size: 12px; color: var(--ink-2); padding-top: 10px;}
.lab-table-wrap {overflow-x: auto; max-width: 100%; margin: 20px 0;}
.lab-table {border-collapse: collapse; width: 100%; font-size: 13px;}
.lab-table th, .lab-table td {padding: 13px 12px; border-bottom: 1px solid var(--rule-2); text-align: left; vertical-align: top; white-space: normal;}
.lab-table th {font-weight: 600; color: var(--forest);}
.lab-table th:first-child, .lab-table td:first-child {padding-left: 0;}
.lab-source-list {font-size: 13px; padding-left: 19px;}
.lab-source-list li {margin-bottom: 12px;}
.lab-continue {margin-top: 52px; padding: 24px 0; border-block: 1px solid var(--rule-2); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 15px; font-size: 14px;}
.lab-failure {padding: 18px 24px; background: #f0e4d4; font-size: 14px;}
.lab-failure p:last-child {margin: 0;}
.lab-small {font-size: 12px !important;}
@media (max-width: 1000px) {.lab-experiment {grid-template-columns: 1fr 250px;} .lab-comparison {gap: 12px;} .lab-views {padding: 20px 16px;} .lab-reading {grid-template-columns: 180px 1fr; gap: 35px;}}
@media (max-width: 760px) {
  .lab-masthead {grid-template-columns: 1fr; gap: 20px; padding-top: 27px;}
  .lab-masthead h1 {max-width: 12ch;}
  .lab-nav {gap: 9px 20px; margin-bottom: 22px;}
  .lab-nav .reading-link {margin-left: 0;}
  .lab-experiment {grid-template-columns: 1fr;}
  .lab-views {display: contents;}
  .lab-comparison {position: sticky; top: 0; z-index: 5; order: 0; padding: 16px; background: var(--card); border-bottom: 1px solid var(--rule);}
  .lab-legend {order: 1; margin-inline: 16px;}
  .lab-views > .lab-small {order: 2; margin: 0 16px 15px;}
  .lab-observation {order: 4; margin: 0; padding: 20px 16px 10px;}
  .lab-controls {border-left: 0; border-top: 1px solid var(--rule); display: grid; grid-template-columns: 1fr 1fr; gap: 14px 22px; padding: 20px;}
  .lab-controls {order: 3;}
  .page-weathering-lab .lab-controls, .page-weathering-lab .lab-controls input, .page-weathering-lab .lab-controls select, .page-weathering-lab .lab-controls summary, .page-weathering-lab .lab-playback, .page-weathering-lab .lab-playback button, .page-weathering-lab .lab-playback input {scroll-margin-top: 260px;}
  .lab-controls .lab-field, .lab-controls details {grid-column: 1 / -1;}
  .lab-controls .lab-range {margin: 0;}
  .lab-workbench-head {padding: 16px; align-items: start;}
  .lab-workbench-head h2 {font-size: 20px;}
  .lab-tag {font-size: 9px; text-align: right;}
  .lab-rock-header {font-size: 12px; align-items: start;}
  .lab-rock figcaption {font-size: 11px;}
  .lab-playback {padding: 16px; gap: 8px;}
  .lab-timeline {max-width: none; flex-basis: 100%; order: -1;}
  .lab-reading {grid-template-columns: 1fr; gap: 20px; padding-top: 35px;}
  .lab-reading > header h2 {font-size: 28px;}
  .lab-paired-notes {gap: 25px;}
}
@media (max-width: 400px) {.lab-comparison {gap: 10px;} .lab-letter {width: 22px; height: 22px;} .lab-paired-notes {grid-template-columns: 1fr;} .lab-controls {padding: 16px; gap: 15px;}}
@media (prefers-reduced-motion: reduce) {.lab-page *, .lab-page *::before, .lab-page *::after {scroll-behavior: auto !important; transition: none !important; animation: none !important;}}
@media print {.site-header,.site-footer,.lab-nav,.lab-workbench,.lab-state-note,.lab-continue {display: none !important;} .lab-page {padding: 0;} .lab-reading {display: block; padding: 10px 0; margin: 15px 0;} .lab-reading > header {margin-bottom: 20px;} .lab-reading-copy section {break-inside: avoid;} .lab-masthead {display: block;} .lab-masthead h1 {font-size: 30px; margin-bottom: 15px;} details {display: block;} details > * {display: block;} .lab-page a {text-decoration: none;} .lab-static-figure {break-inside: avoid;} }
