/* Local study prototype: retain the reader's paper/teal palette. */
[hidden] { display: none !important; }
/* Keep every Lean entry point out of the reading edition, including Info. */
html[data-lean-enabled="false"] :is(.reading-toolbar, .lean-toggle, .lean-block, .lean-pilot-jump, .lean-info) { display: none !important; }
.toc-drawer { grid-template-rows: auto auto auto minmax(0, 1fr); height: 100dvh; }
.toc-search { padding: 12px 18px 0; font: 14px/1.5 ui-sans-serif, system-ui, sans-serif; }
.toc-search label { display: block; margin-bottom: 4px; color: var(--muted); }
.toc-search input { box-sizing: border-box; width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--rule); border-radius: 5px; background: var(--paper); color: var(--ink); font: inherit; font-size: 16px; }
.toc-search p { margin: 6px 0 0; color: var(--muted); font-size: 12px; }
.toc-empty { padding: 0 10px; color: var(--muted); font: 14px/1.5 ui-sans-serif, system-ui, sans-serif; }
.pilot-evidence { margin: 20px 0; border-block: 1px solid var(--rule); overflow-wrap: anywhere; }
.pilot-evidence > summary { padding: 12px 0; min-height: 44px; cursor: pointer; color: var(--accent); font: 14px/20px ui-sans-serif, system-ui, sans-serif; }
.pilot-evidence article { padding: 8px 0 20px; border-top: 1px solid var(--rule); }
.pilot-evidence h4 { font-size: 18px; margin: 12px 0; }
.source-block { margin: 32px 0; }
.source-block h4 { max-width: 65ch; font-size: 23px; line-height: 1.35; font-weight: 500; margin: 0 0 14px; }
.block-citation { font: 12px/1.65 ui-sans-serif, system-ui, sans-serif; color: var(--muted); }
.original-trigger { display: inline-block; min-height: 44px; padding: 8px 12px; margin: 8px 0; border: 1px solid #b0cdc2; background: var(--accent-soft); color: var(--accent); cursor: pointer; border-radius: 4px; font: 14px/1.5 ui-sans-serif, system-ui, sans-serif; }
button, select { font: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, select:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 4px;
}
header { position: relative; min-height: auto; padding-top: 20px; }
.site-navigation { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-bottom: 30px; font: 14px/1.5 ui-sans-serif, system-ui, sans-serif; }
.site-navigation > a, .toc-site-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 4px; color: var(--accent); text-decoration: none; border-bottom: 2px solid transparent; }
.site-navigation > a[aria-current="page"] { border-bottom-color: var(--accent); font-weight: 650; }
.site-navigation > a:hover, .toc-site-links a:hover { background: var(--accent-soft); }
.source-access { margin-left: auto; font: 14px/1.5 ui-sans-serif, system-ui, sans-serif; }
.source-access a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; color: var(--accent); border: 1px solid #b0cdc2; border-radius: 4px; text-decoration: none; }
.source-access a:hover { background: var(--accent-soft); }
.edition-label, .eyebrow, .section-label, .demo-label, .source-status {
  font-family: ui-sans-serif, system-ui, sans-serif;
}
.edition-label, .eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .13em; color: var(--muted); }
.edition-label { margin: 0 0 28px; }
h1 { max-width: 1000px; font-size: clamp(44px, 7vw, 88px); line-height: 1; }
.demo-label { display: inline-block; padding: 3px 8px; background: #f3e9d6; color: #745020; border: 1px solid #dfceae; font-size: 11px; letter-spacing: .02em; text-transform: none; font-weight: 500; }
.reading-toolbar { position: sticky; top: 0; z-index: 4; display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; padding: 12px clamp(18px, 3vw, 48px); background: var(--paper); border-bottom: 1px solid var(--rule); font: 12px/1.5 ui-sans-serif, system-ui, sans-serif; }
.view-controls { display: flex; border: 1px solid #bdc9c4; border-radius: 5px; overflow: hidden; }
.view-controls button { border: 0; background: transparent; color: var(--muted); padding: 8px 14px; cursor: pointer; }
.view-controls button[aria-pressed="true"] { background: var(--accent); color: white; }
.view-controls button:focus-visible { outline-offset: -3px; outline-color: #bd9d53; }
#view-status { color: var(--muted); }
.layout > aside { top: 64px; height: calc(100vh - 64px); }
.sentence { scroll-margin-top: 90px; }
/* Keep wide formulas inside their paragraph instead of zooming out the mobile
   viewport (which would also shrink the full-window reading dialog). */
.text { overflow-x: auto; overflow-wrap: anywhere; }
.preface { overflow-wrap: anywhere; }
.text mjx-container { max-width: 100%; overflow-x: auto; overflow-y: hidden; }
.section-trigger, .lean-toggle { display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; min-height: 36px; margin: 0 0 12px 12px; padding: 6px 9px; border: 1px solid #c6d6d0; color: var(--accent); background: transparent; cursor: pointer; font: 12px/18px ui-sans-serif, system-ui, sans-serif; border-radius: 4px; }
.section-trigger.has-demo { background: var(--accent-soft); }
.toc-site-links { display: flex; flex-wrap: wrap; gap: 24px; padding: 0 20px; border-bottom: 1px solid var(--rule); font: 14px/1.5 ui-sans-serif, system-ui, sans-serif; }
.site-pages { width: min(100%, 860px); margin: 0 auto; padding: 32px clamp(20px, 5vw, 48px) 72px; font-size: clamp(18px, 2vw, 21px); overflow-wrap: anywhere; }
.site-pages h2 { margin: 0 0 24px; font-size: clamp(32px, 5vw, 44px); line-height: 1.2; font-weight: 500; }
.site-pages h3 { margin: 42px 0 18px; font-size: 28px; line-height: 1.3; font-weight: 500; scroll-margin-top: 24px; }
.site-pages h4 { margin: 0 0 6px; font-size: 23px; line-height: 1.35; }
.site-pages p { margin: 12px 0; }
.site-pages a { color: var(--accent); text-underline-offset: .15em; }
.page-lead { color: #3b352f; font-size: 1.12em; }
.page-help { padding-left: 1.25em; }
.page-help li { margin: 18px 0; }
.source-directory { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 28px 0; font: 15px/1.5 ui-sans-serif, system-ui, sans-serif; }
.source-directory a { display: inline-flex; align-items: center; min-height: 44px; }
.source-description { padding: 24px 0; border-top: 1px solid var(--rule); scroll-margin-top: 24px; }
.source-description .source-work { font-style: italic; margin: 0 0 8px; }
.source-description .source-edition { color: var(--muted); font: 14px/1.65 ui-sans-serif, system-ui, sans-serif; }
@media (max-width: 420px) {
  .site-navigation { gap: 4px 10px; font-size: 13px; }
  .source-access { font-size: 12px; }
  .source-access a { padding: 8px; }
}
.section-terms { display: flex; flex-wrap: wrap; gap: 8px; }
.section-terms .glossary-link { padding: 8px 12px; min-height: 44px; border: 1px solid #c6d6d0; border-radius: 5px; }
#section-source { width: 100%; max-width: 100%; padding: 10px; background: #fffdf8; color: var(--ink); }
#section-panel .source-quote { margin-top: 0; }
.source-quote blockquote { overflow-x: auto; }
.lean-block { display: none; min-width: 0; max-width: 100%; margin-top: 20px; padding: 20px 24px; background: #f0f3f0; border: 1px solid #d0d9d4; border-left: 3px solid var(--accent); font: 15px/1.7 ui-sans-serif, system-ui, sans-serif; }
.lean-heading { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; color: var(--accent); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.lean-block h3 { font-family: ui-serif, Georgia, serif; font-size: 21px; margin: 15px 0 6px; }
.lean-block pre { overflow: auto; padding: 18px; background: #e5ebe7; color: #38584d; line-height: 1.65; }
.lean-block code { font: 13px/1.65 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre; overflow-wrap: normal; }
.lean-block h4 { margin: 24px 0 8px; font-size: 16px; }
.lean-block li { margin-block: 8px; }
.lean-block summary { min-height: 44px; padding: 10px 0; cursor: pointer; color: var(--accent); }
.lean-block pre { max-width: 100%; }
.lean-checked { color: var(--accent); font-weight: 650; }
.lean-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.lean-actions button, .lean-pilot-jump { min-height: 44px; padding: 8px 12px; border: 1px solid #b0cdc2; border-radius: 4px; background: var(--accent-soft); color: var(--accent); font: 14px/1.5 ui-sans-serif, system-ui, sans-serif; cursor: pointer; }
.lean-action-status { color: var(--accent); }
.lean-source-hash { overflow-wrap: anywhere; font: 12px/1.65 ui-monospace, monospace; }
.lean-missing { margin: 0; color: var(--muted); }
body[data-view="both"] .lean-block, body[data-view="lean"] .lean-block { display: block; }
body[data-view="both"] .lean-block:has(.lean-missing) { display: none; }
body[data-view="lean"] .sentence > .text, body[data-view="lean"] #preface { display: none; }
body[data-view="lean"] .sentence:not([data-lean-status="checked"]) { display: none; }
body[data-view="lean"] .sentence > .children { display: none; }
body .sentence[data-local-view="text"] > .lean-block { display: none; }
body .sentence[data-local-view="text"] > .text, body .sentence[data-local-view="both"] > .text,
body .sentence[data-local-view="both"] > .lean-block { display: block; }
body:has(dialog[open]) { overflow: hidden; }
.study-dialog { position: fixed; inset: 0; margin: 0; padding: 0; border: 0; background: var(--paper); color: var(--ink); width: 100%; max-width: none; height: 100vh; height: 100dvh; max-height: none; overflow: hidden; }
.study-dialog[open] { display: flex; flex-direction: column; }
.study-dialog::backdrop { background: #16251f66; backdrop-filter: blur(2px); }
.study-heading { padding: max(8px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) 8px max(24px, env(safe-area-inset-left)); border-bottom: 1px solid var(--rule); flex-shrink: 0; align-items: center; }
.study-heading .eyebrow { margin: 0 0 12px; }
.study-titleline { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; min-width: 0; }
.study-heading .demo-label { margin: 0; }
.study-heading h2 { margin: 0; font-size: 26px; line-height: 1.2; font-weight: 500; overflow-wrap: anywhere; }
.study-subtitle { margin: 0 0 16px; color: var(--muted); font-size: 18px; }
.study-dialog .glossary-close { width: 44px; height: 44px; flex: 0 0 auto; font-size: 25px; }
.section-heading-actions, .section-paging { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.section-paging button { width: 44px; height: 44px; padding: 0; border: 1px solid var(--rule); border-radius: 5px; color: var(--accent); background: transparent; font: 22px/1 ui-sans-serif, system-ui, sans-serif; cursor: pointer; }
.section-paging button:disabled { opacity: .35; cursor: default; }
.section-paging button:not(:disabled):hover { background: var(--accent-soft); }
.study-tabs { display: flex; flex-shrink: 0; gap: 6px; padding: 0 max(16px, env(safe-area-inset-left)); border-bottom: 1px solid var(--rule); overflow-x: auto; overscroll-behavior-x: contain; }
.study-tabs button { flex-shrink: 0; min-height: 44px; border: 0; border-bottom: 3px solid transparent; padding: 10px 10px 7px; background: transparent; color: var(--muted); cursor: pointer; font: 14px ui-sans-serif, system-ui, sans-serif; }
.study-tabs button[aria-selected="true"] { color: var(--accent); border-bottom-color: var(--accent); font-weight: 650; }
.study-tabs button:disabled { color: #8b8780; opacity: .6; cursor: not-allowed; border-bottom-color: transparent; }
.original-item { margin: 22px 0 30px; }
.original-item h4 { font-size: 20px; font-weight: 500; margin: 12px 0; }
.study-tabs button:focus-visible { outline-offset: -4px; }
.section-original > summary { cursor: pointer; padding: 10px 0; color: var(--accent); font: 14px/24px ui-sans-serif, system-ui, sans-serif; }
.study-main { min-height: 0; min-width: 0; overflow: auto; overscroll-behavior: contain; padding: 28px max(24px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)); flex: 1; font-size: 18px; line-height: 1.65; overflow-wrap: anywhere; }
.study-content { max-width: 960px; margin-inline: auto; }
.study-main h3 { font-weight: 500; line-height: 1.3; font-size: 24px; margin: 20px 0 12px; }
.study-main p, .source-quote { max-width: 70ch; }
.study-formula { max-width: 100%; overflow-x: auto; overflow-y: hidden; margin-block: 1em; padding: .4em .1em; }
.study-formula mjx-container[display="true"] { margin: .35em 0; text-align: left; min-width: max-content; }
.study-inline-formula { display: block; max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: .4em .1em; margin: .5em 0; }
.study-main .glossary-definition { font-size: 22px; line-height: 1.55; margin-top: 10px; white-space: pre-line; }
.editorial-note { margin-top: 0; font: 12px/1.6 ui-sans-serif, system-ui, sans-serif; color: #78623e; }
.study-main .section-label, .section-label { font-size: 12px; font-weight: 650; color: var(--muted); }
.source-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.source-orientations article { padding: 16px 0; border-bottom: 1px solid var(--rule); }
.source-orientations h3 { margin: 0 0 8px; }
.source-orientations p { overflow-wrap: anywhere; }
.source-orientations button { color: var(--accent); background: #fffdf8; border: 1px solid var(--rule); padding: 8px 12px; min-height: 40px; font: 14px ui-sans-serif, system-ui, sans-serif; cursor: pointer; }
.source-orientations button:hover { background: #edf6f2; }
.source-card { border: 1px solid var(--rule); padding: 18px 20px; background: #fffdf8; }
.source-status { font-size: 11px; color: var(--muted); margin: 0 0 10px; }
.source-card h3 { font-size: 19px; margin: 8px 0; }
.source-card p:not(.source-status) { font-size: 15px; margin: 8px 0 16px; }
.source-card button { color: var(--accent); border: 0; border-bottom: 1px solid #b0cdc2; background: none; cursor: pointer; padding: 0 0 3px; font: 12px ui-sans-serif, system-ui, sans-serif; }
.source-select-label { display: block; margin-bottom: 6px; font: 12px ui-sans-serif, system-ui, sans-serif; color: var(--muted); }
#study-source { width: 100%; max-width: 460px; padding: 10px 12px; border: 1px solid #bbcbc4; background: #fffdf8; color: var(--ink); }
#source-detail { margin-top: 24px; }
.source-quote { margin: 22px 0; padding: 18px 24px; border-left: 2px solid var(--accent); background: #eef3ef; }
.source-quote figcaption { margin-top: 12px; color: var(--accent); font: 11px/1.5 ui-sans-serif, system-ui, sans-serif; }
.source-quote blockquote { white-space: pre-wrap; margin: 0; font-size: 18px; }
.original-item .source-quote { margin: 0 0 22px; }
.pending-source { margin-top: 24px; padding: 18px; border: 1px dashed #cbbb9f; color: #78623e; font-size: 14px; }
.reading-question { border-left: 2px solid #baa774; padding: 12px 20px; margin: 28px 0; background: #f4f0e7; }
.reading-question p { margin: 8px 0; font-size: 20px; }
.study-footer { border-top: 1px solid var(--rule); margin-top: 28px; padding: 0; font: 14px/1.6 ui-sans-serif, system-ui, sans-serif; }
.study-footer .glossary-refs { margin: 6px 0 10px; }
.study-footer details { margin: 0; }
.study-footer summary { color: var(--accent); cursor: pointer; padding: 12px 0; min-height: 44px; }
.study-dialog .glossary-refs a { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 12px; }
.permalink { color: var(--accent); font-size: 11px; }
.empty-study { padding: 20px 0; max-width: 650px; }
@media (max-width: 820px) {
  header { padding-top: 32px; }
  .reading-toolbar { gap: 8px 12px; }
  #view-status { flex-basis: 100%; order: 3; font-size: 11px; }
  .layout > aside { position: relative; top: auto; height: auto; max-height: 32vh; }
  .sentence { scroll-margin-top: 130px; }
  .study-heading { padding-inline: max(16px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-right)); }
  .study-heading h2 { font-size: 22px; }
  .study-tabs { padding: 0 8px; }
  .study-main { padding: 20px max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left)); }
  .study-main .glossary-definition { font-size: 19px; }
  .source-grid { grid-template-columns: 1fr; }
  .source-quote { padding: 14px; }
  .source-quote blockquote { font-size: 18px; }
  .lean-block { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (max-width: 600px) {
  .study-section-heading { gap: 8px; }
  .study-section-heading .demo-label { display: none; }
  .study-section-heading h2 { font-size: 20px; }
}
