
    :root {
      --parchment: #f4edde;
      --paper: #fbf8f1;
      --paper-deep: #e9deca;
      --ink: #28211d;
      --muted: #70655b;
      --line: #d7c9b5;
      --line-dark: #bba88c;
      --wine: #6d2b3b;
      --wine-dark: #4e1d29;
      --gold: #aa8141;
      --teal: #345a5d;
      --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
      --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      --shadow: 0 25px 70px rgba(68, 49, 29, .13);
    }
    html[data-theme="dark"] {
      --parchment: #1d1917;
      --paper: #26201c;
      --paper-deep: #342a24;
      --ink: #f0e5d6;
      --muted: #baaa99;
      --line: #4d4036;
      --line-dark: #6b5849;
      --wine: #c47d90;
      --wine-dark: #d89bad;
      --gold: #d0ab68;
      --teal: #83afb0;
      --shadow: 0 25px 70px rgba(0, 0, 0, .32);
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body { margin: 0; color: var(--ink); background: var(--parchment); font-family: var(--sans); line-height: 1.55; }
    body::before { content: ""; position: fixed; inset: 0; z-index: 30; pointer-events: none; opacity: .035; background: radial-gradient(#543d28 .7px, transparent .7px); background-size: 6px 6px; }
    button, input { font: inherit; }
    button, a { -webkit-tap-highlight-color: transparent; }
    a { color: inherit; }
    h1, h2, h3, p { margin-top: 0; }
    h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.06; }
    h1 { margin-bottom: 24px; font-size: clamp(3.25rem, 7vw, 6.5rem); letter-spacing: -.055em; }
    h2 { margin-bottom: 18px; font-size: clamp(2rem, 4vw, 3.4rem); letter-spacing: -.035em; }
    h3 { margin-bottom: 10px; font-size: 1.45rem; }
    .container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
    .site-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: blur(16px); }
    .header-inner { min-height: 72px; display: flex; align-items: center; gap: 26px; }
    .brand { min-width: 0; display: inline-flex; align-items: center; gap: 11px; padding: 0; color: inherit; background: transparent; border: 0; border-radius: 0; box-shadow: none; text-decoration: none; }
    .brand:focus-visible, .icon-button:focus-visible, .nav-link:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
    .brand-mark { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; color: #fff8ed; background: var(--wine); border: 1px solid var(--wine-dark); clip-path: polygon(50% 0, 89% 20%, 89% 80%, 50% 100%, 11% 80%, 11% 20%); font-family: var(--serif); font-size: 1.22rem; }
    .brand strong, .brand small { display: block; }
    .brand strong { font-family: var(--serif); font-size: 1.05rem; }
    .brand small { color: var(--muted); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
    .main-nav { margin-left: auto; display: flex; align-items: center; gap: 27px; }
    .nav-link { min-height: 72px; padding: 0; border: 0; border-bottom: 2px solid transparent; color: var(--muted); background: transparent; cursor: pointer; font-size: .82rem; font-weight: 700; }
    .nav-link:hover, .nav-link.active { color: var(--wine); border-bottom-color: var(--wine); }
    .header-actions { display: flex; align-items: center; gap: 8px; }
    .icon-button { width: 40px; height: 40px; display: inline-grid; place-items: center; flex: 0 0 40px; color: var(--ink); background: transparent; border: 1px solid var(--line); border-radius: 50%; cursor: pointer; }
    .icon-button:hover { color: var(--wine); background: var(--paper-deep); border-color: var(--line-dark); }
    .mobile-menu { display: none; }
    .sample-badge { width: fit-content; display: inline-flex; align-items: center; gap: 7px; margin-bottom: 18px; padding: 6px 9px; color: var(--muted); background: var(--parchment); border: 1px solid var(--line); font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
    .sample-badge::before { content: ""; width: 6px; height: 6px; background: var(--gold); border-radius: 50%; }
    .view { display: none; }
    .view.active { display: block; animation: rise .35s ease both; }
    @keyframes rise { from { opacity: 0; transform: translateY(4px); } }
    .eyebrow { margin-bottom: 16px; color: var(--wine); font-size: .68rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
    .hero { position: relative; overflow: hidden; padding: 112px 0 120px; border-bottom: 1px solid var(--line); background: var(--paper); }
    .hero::after { content: "✦"; position: absolute; right: -70px; top: -245px; color: var(--gold); opacity: .07; font: 37rem/1 var(--serif); }
    .hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.12fr .88fr; gap: 86px; align-items: center; }
    .hero h1 em { color: var(--wine); font-weight: 500; }
    .lede { max-width: 660px; margin-bottom: 30px; color: var(--muted); font: 1.24rem/1.65 var(--serif); }
    .button-row { display: flex; flex-wrap: wrap; gap: 11px; }
    .button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; padding: 11px 18px; border: 1px solid var(--line-dark); color: var(--ink); background: transparent; text-decoration: none; cursor: pointer; font-size: .79rem; font-weight: 800; }
    .button.primary { color: #fff8ed; background: var(--wine); border-color: var(--wine); }
    .button.primary:hover { background: var(--wine-dark); }
    .trust { margin-top: 24px; color: var(--muted); font-size: .74rem; }
    .featured-card { position: relative; padding: 49px 45px 40px; background: var(--paper); border: 1px solid var(--line-dark); box-shadow: var(--shadow); text-align: center; }
    .featured-card::before { content: ""; position: absolute; inset: 8px; border: 1px solid var(--line); pointer-events: none; }
    .ornament { position: relative; width: 38px; height: 38px; display: grid; place-items: center; margin: -69px auto 28px; color: var(--gold); background: var(--parchment); border: 1px solid var(--line-dark); transform: rotate(45deg); }
    .ornament span { transform: rotate(-45deg); }
    .featured-card h2 { margin-bottom: 6px; font-size: 2.2rem; }
    .byline { color: var(--muted); font-size: .8rem; }
    .featured-card blockquote { margin: 28px 0; padding: 23px 5px; border-block: 1px solid var(--line); font: italic 1.17rem/1.55 var(--serif); }
    .chips { display: flex; flex-wrap: wrap; gap: 7px; justify-content: center; }
    .chip { padding: 5px 9px; color: var(--muted); background: var(--paper-deep); border: 1px solid var(--line); font-size: .62rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
    .chip.active { color: #fff; background: var(--teal); border-color: var(--teal); }
    .text-link { position: relative; display: inline-block; margin-top: 25px; color: var(--wine); background: none; border: 0; cursor: pointer; font-size: .78rem; font-weight: 800; }
    .section { padding: 86px 0; }
    .section.paper { background: var(--paper); border-block: 1px solid var(--line); }
    .section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 30px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
    .section-heading h2 { margin: 0; }
    .section-heading .text-link { margin: 0; }
    .path-grid, .work-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }
    .path-card, .work-card { position: relative; min-height: 280px; display: flex; flex-direction: column; padding: 29px; background: var(--paper); border: 1px solid var(--line); }
    .path-card.featured { color: #fff8ed; background: var(--wine); border-color: var(--wine); }
    .path-card .number { position: absolute; right: 20px; top: 18px; opacity: .45; font-family: var(--serif); }
    .path-icon { width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: 41px; border: 1px solid currentColor; border-radius: 50%; }
    .path-card p, .work-card p { color: var(--muted); font-size: .86rem; }
    .path-card.featured p { color: #ead2d8; }
    .path-card button { align-self: start; margin-top: auto; padding: 0; color: inherit; background: none; border: 0; cursor: pointer; font-size: .75rem; font-weight: 800; }
    .father-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
    .father-card { min-height: 190px; display: flex; align-items: flex-start; gap: 17px; padding: 18px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); cursor: pointer; text-align: left; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
    .father-card:hover { border-color: var(--line-dark); box-shadow: 0 12px 28px rgba(68, 49, 29, .08); transform: translateY(-2px); }
    .father-card:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
    .father-card-copy { min-width: 0; }
    .father-thumb { flex: 0 0 auto; width: 88px; height: 110px; object-fit: cover; object-position: 50% 22%; border: 1px solid var(--line-dark); background: var(--paper-deep); }
    .father-name { display: block; margin: 0 0 5px; font: 600 1.3rem/1.08 var(--serif); }
    .father-life { display: block; color: var(--muted); font-size: .72rem; }
    .father-card .father-meta { display: block; margin-top: 7px; color: var(--wine); font-size: .61rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
    .father-card .father-summary { margin-top: 11px; color: var(--muted); font: .82rem/1.45 var(--serif); }
    .cohort-note { max-width: 760px; margin: -13px 0 28px; color: var(--muted); font: 1rem/1.65 var(--serif); }
    .card-meta { display: flex; justify-content: space-between; color: var(--wine); font-size: .6rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
    .work-card h3 { margin-top: 27px; }
    .work-card .author { color: var(--gold); font-size: .73rem; font-weight: 800; }
    .work-card footer { display: flex; justify-content: space-between; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: .7rem; }
    .work-card button { color: var(--wine); background: none; border: 0; cursor: pointer; font-weight: 900; }
    .page-hero { padding: 78px 0; color: #f8ecdc; background: #39252a; }
    .profile-grid { display: grid; grid-template-columns: 270px 1fr; gap: 65px; align-items: center; }
    .portrait-wrap { width: 250px; }
    .portrait { width: 250px; aspect-ratio: 1 / 1; display: block; object-fit: cover; object-position: 50% 20%; background: #56343c; border: 1px solid #8b6069; box-shadow: 0 22px 45px rgba(17, 7, 9, .28); }
    .artist-note { margin: 10px 0 0; color: #bca19f; font-size: .61rem; line-height: 1.4; text-align: center; text-transform: uppercase; letter-spacing: .08em; }
    .page-hero .eyebrow { color: #d8ad6d; }
    .page-hero h1 { margin-bottom: 9px; font-size: clamp(3rem, 6vw, 5.4rem); }
    .greek-name { margin-bottom: 13px; color: #d7b371; font: 1.35rem var(--serif); }
    .profile-copy { max-width: 760px; color: #ddcbbd; font: 1.12rem/1.65 var(--serif); }
    .facts { display: flex; flex-wrap: wrap; gap: 40px; margin-top: 25px; padding-top: 22px; border-top: 1px solid #684950; }
    .facts span { font: 1rem var(--serif); }
    .facts small { display: block; color: #bca19f; font: 700 .58rem var(--sans); letter-spacing: .1em; text-transform: uppercase; }
    .profile-body { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 75px; }
    .profile-source { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .76rem; }
    .profile-source a { color: var(--wine); font-weight: 800; }
    .selected-works { display: grid; gap: 0; margin-top: 22px; border-top: 1px solid var(--line); }
    .selected-work { padding: 13px 0; border-bottom: 1px solid var(--line); font-family: var(--serif); }
    .source-card-copy { color: var(--muted); font-size: .82rem; }
    .prose { max-width: 720px; font: 1.08rem/1.9 var(--serif); }
    .context-card { padding: 26px; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); }
    .context-card h3 { font-size: 1.7rem; }
    .reception { padding: 14px 0; border-top: 1px solid var(--line); }
    .reception span, .reception strong { display: block; }
    .reception span { color: var(--muted); font-size: .62rem; text-transform: uppercase; }
    .reception strong { font-family: var(--serif); }
    .reception p { margin: 5px 0 0; color: var(--muted); font-size: .74rem; }
    .reader-shell { display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: calc(100vh - 108px); background: var(--paper); }
    .reader-shell > * { min-width: 0; }
    .toc { max-height: calc(100vh - 72px); overflow-y: auto; padding: 29px 22px 50px; border-right: 1px solid var(--line); background: var(--parchment); }
    .toc h2 { font-size: 1.32rem; }
    .reader-work-switcher { display: grid; gap: 6px; margin: 12px 0 24px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
    .reader-work-switcher button { display: block; grid-template-columns: 1fr; padding: 10px 11px; border: 1px solid var(--line); border-left: 3px solid transparent; background: var(--paper); color: var(--muted); font-family: var(--serif); }
    .reader-work-switcher button strong, .reader-work-switcher button small { display: block; }
    .reader-work-switcher button small { margin-top: 3px; color: var(--muted); font: .58rem/1.3 var(--sans); }
    .reader-work-switcher button.active { color: var(--ink); border-left-color: var(--wine); background: var(--paper-deep); }
    .toc-heading { margin-top: 4px; }
    .toc-group { margin-top: 24px; }
    .toc-group-title { margin: 0 8px 7px; color: var(--wine); font-size: .59rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
    .toc button { width: 100%; display: grid; grid-template-columns: 28px 1fr; gap: 7px; padding: 10px 8px; color: var(--muted); background: transparent; border: 0; border-left: 2px solid transparent; cursor: pointer; text-align: left; font: .83rem var(--serif); }
    .toc button span { color: var(--muted); font: .63rem var(--sans); }
    .toc button.active { color: var(--ink); background: var(--paper-deep); border-left-color: var(--wine); }
    .toc .reader-work-switcher button { display: block; grid-template-columns: none; padding: 11px 10px; text-align: left; font: .78rem/1.25 var(--serif); }
    .toc .reader-work-switcher button strong { overflow-wrap: anywhere; }
    .toc .reader-work-switcher button small { margin-top: 4px; line-height: 1.35; }
    .reader-head { max-width: 920px; margin: auto; padding: 47px 55px 25px; }
    .reader-head h1 { margin-bottom: 11px; font-size: clamp(2.4rem, 5vw, 4rem); }
    .reader-head p { color: var(--muted); }
    .work-overview { max-width: 920px; margin: 0 auto 28px; padding: 0 55px; }
    .work-overview-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding: 23px 25px; background: var(--parchment); border: 1px solid var(--line); border-top: 3px solid var(--gold); }
    .work-overview h2 { grid-column: 1 / -1; margin: 0; font-size: 1.35rem; }
    .work-overview h3 { margin: 0 0 7px; color: var(--wine); font: 850 .61rem/1.2 var(--sans); letter-spacing: .09em; text-transform: uppercase; }
    .work-overview p { margin: 0; color: var(--muted); font: .88rem/1.65 var(--serif); }
    .work-overview-sources { grid-column: 1 / -1; margin: 0; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: .65rem; }
    .work-overview-sources a { color: var(--wine); }
    .reader-toolbar { position: sticky; top: 72px; z-index: 10; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 12px max(24px, calc((100% - 920px) / 2)); background: color-mix(in srgb, var(--paper) 95%, transparent); border-block: 1px solid var(--line); backdrop-filter: blur(13px); }
    .edition-picker { min-width: 0; flex: 1 1 auto; }
    .edition-picker-label { margin: 0 0 7px; color: var(--muted); font-size: .58rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
    .edition-selector { display: flex; flex-wrap: wrap; gap: 6px; }
    .edition-option { position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 31px; padding: 6px 10px; color: var(--muted); background: var(--paper); border: 1px solid var(--line); cursor: pointer; font-size: .66rem; font-weight: 800; }
    .edition-option:hover { color: var(--ink); border-color: color-mix(in srgb, var(--teal) 48%, var(--line)); }
    .edition-option:has(input:checked) { color: #fff; background: var(--teal); border-color: var(--teal); }
    .edition-option input { width: 14px; height: 14px; margin: 0; accent-color: var(--gold); }
    .edition-option small { opacity: .78; font-size: .56rem; font-weight: 700; }
    .selection-summary { margin: 7px 0 0; color: var(--muted); font-size: .63rem; }
    .reader-tools { display: flex; flex: 0 0 auto; gap: 4px; padding-top: 21px; }
    .reader-tools button { min-width: 34px; min-height: 32px; color: var(--muted); background: var(--paper); border: 1px solid var(--line); cursor: pointer; }
    .text-stage { max-width: 920px; min-height: 600px; margin: auto; padding: 48px 55px 80px; }
    .text-label { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 25px; padding-bottom: 11px; border-bottom: 1px solid var(--line); }
    .text-label span, .text-label strong { display: block; }
    .text-label span { color: var(--wine); font-size: .6rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
    .text-label strong { font-family: var(--serif); }
    .alignment-badge { display: inline-block; margin-top: 5px; padding: 3px 6px; color: var(--muted); background: var(--paper-deep); border: 1px solid var(--line); font: 750 .54rem var(--sans); letter-spacing: .04em; text-transform: uppercase; }
    .patristic-text { font: var(--reader-size, 1.15rem)/1.92 var(--serif); }
    .unit-reading { position: relative; display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 16px; margin-bottom: 1.45em; scroll-margin-top: 190px; }
    .unit-ref { padding-top: .35em; color: var(--wine); text-decoration: none; font: 750 .63rem/1.3 var(--sans); }
    .unit-ref:hover { text-decoration: underline; }
    .unit-copy { margin: 0; }
    .unit-reading:first-child .unit-copy::first-letter { float: left; margin: .08em .1em 0 0; color: var(--wine); font-size: 3.6em; line-height: .78; }
    .chapter-witness { max-width: 76ch; }
    .chapter-witness p { margin: 0 0 1.15em; }
    .source-note, .comparison-note { margin: 0 0 24px; padding: 14px 17px; color: var(--muted); background: var(--paper-deep); border-left: 3px solid var(--gold); font-size: .72rem; }
    .edition-details { margin-top: 30px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
    .edition-details summary { color: var(--wine); cursor: pointer; font-weight: 800; }
    .edition-details dl { display: grid; grid-template-columns: 110px 1fr; gap: 8px 16px; }
    .edition-details dt { font-weight: 800; text-transform: uppercase; }
    .edition-details dd { margin: 0; }
    .greek-word { position: relative; display: inline; margin: 0; padding: 0 .03em; color: inherit; background: transparent; border: 0; border-bottom: 1px dotted color-mix(in srgb, var(--wine) 48%, transparent); cursor: help; font: inherit; }
    .greek-word:hover, .greek-word:focus-visible, .greek-word[aria-expanded="true"] { color: var(--wine); background: color-mix(in srgb, var(--gold) 16%, transparent); border-bottom-style: solid; outline: none; }
    .greek-word--source-issue { border-bottom-color: color-mix(in srgb, #a66c20 78%, transparent); border-bottom-style: dashed; }
    .greek-word--source-issue:hover, .greek-word--source-issue:focus-visible, .greek-word--source-issue[aria-expanded="true"] { color: #825416; background: color-mix(in srgb, #d29a43 18%, transparent); }
    .greek-tooltip-popover { position: fixed; z-index: 100; width: min(410px, calc(100vw - 24px)); max-height: min(72vh, 620px); padding: 0; overflow: hidden auto; color: var(--ink); background: var(--paper); border: 1px solid var(--line-dark); border-radius: 9px; box-shadow: 0 18px 44px rgba(44, 32, 23, .24); font: .76rem/1.48 var(--sans); pointer-events: none; }
    .greek-tooltip-popover[hidden] { display: none; }
    .greek-tooltip-popover.is-pinned { pointer-events: auto; }
    .greek-tooltip-heading { display: flex; align-items: baseline; gap: 9px; padding: 13px 16px 8px; }
    .greek-tooltip-heading strong { color: var(--wine); font: 1.18rem/1.2 var(--serif); }
    .greek-tooltip-heading em { color: var(--muted); font-size: .72rem; font-style: normal; }
    .greek-tooltip-close { display: none; width: 28px; height: 28px; margin: -4px -5px -2px auto; padding: 0; color: var(--muted); background: transparent; border: 1px solid transparent; border-radius: 50%; cursor: pointer; font-size: 1.1rem; line-height: 1; }
    .greek-tooltip-popover.is-pinned .greek-tooltip-close { display: inline-grid; place-items: center; }
    .greek-tooltip-close:hover, .greek-tooltip-close:focus-visible { color: var(--wine); border-color: var(--line); outline: none; }
    .greek-tooltip-primary { padding: 3px 16px 13px; background: color-mix(in srgb, var(--gold) 10%, var(--paper)); border-block: 1px solid var(--line); }
    .greek-tooltip-meaning { padding-top: 10px; color: var(--ink); font: 700 1.08rem/1.34 var(--serif); }
    .greek-tooltip-dictionary { margin: 7px 0 0; color: color-mix(in srgb, var(--ink) 88%, var(--muted)); font-size: .77rem; }
    .greek-tooltip-core { padding: 11px 16px 10px; }
    .greek-tooltip-lemma { display: block; color: var(--wine); font: 700 .95rem/1.3 var(--serif); }
    .greek-tooltip-grammar { display: block; margin-top: 2px; color: var(--muted); font-size: .7rem; }
    .greek-tooltip-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; padding: 9px 16px 11px; color: var(--muted); background: var(--paper-deep); border-top: 1px solid var(--line); font-size: .65rem; }
    .greek-tooltip-footer strong { color: var(--ink); }
    .greek-tooltip-hint { color: var(--wine); font-weight: 750; }
    .greek-tooltip-warning { margin: 0; padding: 9px 16px; color: #6f4713; background: color-mix(in srgb, #d29a43 16%, var(--paper)); border-top: 1px solid color-mix(in srgb, #a66c20 30%, var(--line)); font-size: .69rem; }
    .greek-tooltip-study { padding: 12px 16px 15px; border-top: 1px solid var(--line); }
    .greek-tooltip-study h4 { margin: 0 0 5px; color: var(--wine); font-size: .58rem; font-weight: 850; letter-spacing: .075em; text-transform: uppercase; }
    .greek-tooltip-study p { margin: 0; color: var(--muted); font-size: .71rem; }
    .greek-tooltip-study section + section { margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--line); }
    .greek-tooltip-study dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 10px; margin: 0; color: var(--muted); font-size: .68rem; }
    .greek-tooltip-study dt { color: color-mix(in srgb, var(--muted) 82%, transparent); font-weight: 750; }
    .greek-tooltip-study dd { margin: 0; overflow-wrap: anywhere; }
    .greek-tooltip-alternatives { margin: 5px 0 0; padding-left: 17px; color: var(--muted); font-size: .68rem; }
    @media (max-width: 640px) {
      .greek-tooltip-popover { width: calc(100vw - 20px); max-height: 68vh; }
      .greek-tooltip-hint { display: none; }
    }
    .parallel-stage { display: none; width: 100%; max-width: 1600px; min-width: 0; margin: auto; padding: 36px 30px 80px; }
    .parallel-stage.active { display: block; }
    .parallel-scroller { width: 100%; max-width: 100%; overflow-x: auto; border: 1px solid var(--line); background: var(--paper); }
    .parallel-grid { display: grid; grid-template-columns: repeat(var(--parallel-columns, 2), minmax(320px, 1fr)); min-width: calc(var(--parallel-columns, 2) * 320px); }
    .parallel-column { min-width: 0; }
    .parallel-column + .parallel-column { border-left: 1px solid var(--line); }
    .parallel-column-head { position: static; padding: 16px 18px; background: var(--paper-deep); border-bottom: 1px solid var(--line); }
    .parallel-column-head span, .parallel-column-head strong { display: block; }
    .parallel-column-head span { color: var(--wine); font-size: .58rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
    .parallel-column-head strong { margin-top: 3px; font-family: var(--serif); }
    .parallel-column-body { padding: 20px 18px 28px; font: var(--reader-size, 1.02rem)/1.74 var(--serif); }
    .parallel-column-body .unit-reading { grid-template-columns: 42px minmax(0, 1fr); gap: 10px; margin-bottom: 1.15em; }
    .parallel-column-body .unit-reading:first-child .unit-copy::first-letter { float: none; margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
    .admin-shell { display: grid; grid-template-columns: 235px minmax(0, 1fr); min-height: calc(100vh - 108px); background: #f2eee7; color: #28211d; }
    .admin-sidebar { padding: 28px 20px; color: #efe2d3; background: #2e2621; }
    .admin-sidebar h2 { margin-bottom: 28px; font-size: 1.25rem; }
    .admin-sidebar button { width: 100%; padding: 11px 12px; color: #bcaea2; background: transparent; border: 0; border-left: 2px solid transparent; cursor: pointer; text-align: left; font-size: .76rem; }
    .admin-sidebar button.active { color: #fff; background: #443831; border-left-color: #d2a75f; }
    .admin-main { padding: 47px; }
    .admin-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
    .admin-head h1 { margin: 0; font-size: 2.9rem; }
    .stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
    .stat { padding: 22px; background: #fffdf9; border: 1px solid #d8cbb9; }
    .stat strong { display: block; font: 2rem var(--serif); }
    .stat span { color: #75695e; font-size: .67rem; text-transform: uppercase; }
    .admin-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; margin-top: 18px; }
    .admin-card { padding: 25px; background: #fffdf9; border: 1px solid #d8cbb9; }
    .admin-card h2 { font-size: 1.55rem; }
    .activity { display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; padding: 13px 0; border-top: 1px solid #e3d8c9; }
    .status-dot { width: 9px; height: 9px; background: #4d725c; border-radius: 50%; }
    .activity small { color: #75695e; }
    .upload-zone { padding: 28px; border: 1px dashed #b8a58c; text-align: center; }
    .upload-zone strong, .upload-zone span { display: block; }
    .upload-zone span { margin-top: 6px; color: #75695e; font-size: .74rem; }
    .site-footer { padding: 45px 0; color: #d7c9bd; background: #2c2420; }
    .footer-inner { display: flex; justify-content: space-between; gap: 30px; }
    .site-footer p { margin: 0; color: #9f9085; font-size: .72rem; }
    .site-footer strong { font-family: var(--serif); }
    @media (max-width: 900px) {
      .header-inner { min-height: 64px; }
      .main-nav { display: none; position: absolute; top: 64px; left: 0; right: 0; padding: 10px 20px 18px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 14px 30px rgba(68, 49, 29, .1); }
      .main-nav.open { display: grid; }
      .nav-link { min-height: 44px; padding: 0 12px; text-align: left; border-bottom: 0; }
      .header-actions { margin-left: auto; }
      .mobile-menu { display: inline-grid; }
      .hero-grid, .profile-grid, .profile-body, .admin-grid { grid-template-columns: 1fr; }
      .hero { padding-top: 80px; }
      .hero-grid { gap: 75px; }
      .portrait-wrap, .portrait { width: 180px; }
      .path-grid, .work-grid { grid-template-columns: 1fr; }
      .father-list { grid-template-columns: repeat(2, 1fr); }
      .reader-shell, .admin-shell { grid-template-columns: 1fr; }
      .toc { display: block; max-height: 280px; border-right: 0; border-bottom: 1px solid var(--line); }
      .admin-sidebar { display: none; }
      .reader-toolbar { top: 64px; }
      .stats { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 640px) {
      .container { width: min(100% - 26px, 1180px); }
      .header-inner { gap: 10px; }
      .brand { gap: 8px; }
      .brand-mark { width: 32px; height: 32px; font-size: 1.08rem; }
      .brand small { display: none; }
      .brand strong { white-space: nowrap; font-size: clamp(.84rem, 4.2vw, .98rem); }
      h1 { font-size: 3.3rem; }
      .hero { padding: 68px 0 92px; }
      .featured-card { padding-inline: 25px; }
      .father-list { grid-template-columns: 1fr; }
      .section-heading { align-items: start; flex-direction: column; }
      .page-hero { padding: 60px 0; }
      .facts { gap: 20px; }
      .reader-head, .text-stage { padding-inline: 24px; }
      .work-overview { padding-inline: 24px; }
      .work-overview-inner { grid-template-columns: 1fr; }
      .work-overview h2, .work-overview-sources { grid-column: 1; }
      .reader-toolbar { position: static; flex-direction: column; overflow: visible; }
      .reader-tools { padding-top: 0; }
      .lexical-grid { grid-template-columns: 1fr 1fr; }
      .reader-tools { display: none; }
      .admin-main { padding: 32px 20px; }
      .stats { grid-template-columns: 1fr 1fr; }
      .admin-head { align-items: start; flex-direction: column; }
      .footer-inner { flex-direction: column; }
    }
  

/* v1.4.0 public release */
body { min-height: 100vh; }
.brand-logo { width: 42px; height: 42px; object-fit: contain; flex: 0 0 auto; }
.brand small { letter-spacing: .055em; text-transform: none; font-size: .66rem; }
.page-intro { padding: 76px 0 52px; background: var(--paper); border-bottom: 1px solid var(--line); }
.page-intro h1 { margin-bottom: 16px; font-size: clamp(3rem, 6vw, 5.3rem); }
.page-intro .lede { margin-bottom: 0; max-width: 780px; }
.breadcrumb { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 22px; color: var(--wine); font-size: .72rem; font-weight: 800; text-decoration: none; }
.breadcrumb:hover { text-decoration: underline; }
.work-card { min-height: 300px; }
.work-card .author { color: var(--wine); font-weight: 750; }
.work-card footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .69rem; }
.work-card-link { width: 37px; height: 37px; display: inline-grid; place-items: center; flex: 0 0 auto; color: #fff8ed; background: var(--wine); text-decoration: none; border-radius: 50%; }
.work-card-link:hover { background: var(--wine-dark); }
.card-meta { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 28px; color: var(--muted); font-size: .61rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.cohort-note, .artist-note { display: none !important; }
.library-actions { margin-top: 30px; }
.father-card { text-decoration: none; }
.profile-back { margin-bottom: 28px; }
.profile-page .portrait-wrap { align-self: start; }
.work-landing-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 70px; align-items: start; }
.work-lead { max-width: 760px; color: var(--muted); font: 1.13rem/1.75 var(--serif); }
.work-facts { display: flex; flex-wrap: wrap; gap: 22px 36px; margin: 28px 0 0; padding-top: 20px; border-top: 1px solid var(--line); }
.work-facts span { color: var(--muted); font-size: .72rem; }
.work-facts strong { display: block; color: var(--ink); font: 1rem var(--serif); }
.work-about { max-width: 770px; font: 1.06rem/1.86 var(--serif); }
.work-about h2 { margin-top: 48px; }
.source-details { margin-top: 34px; border-top: 1px solid var(--line); }
.source-details details { border-bottom: 1px solid var(--line); }
.source-details summary { padding: 16px 0; color: var(--wine); cursor: pointer; font-weight: 800; }
.source-details dl { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 8px 18px; margin: 0 0 20px; color: var(--muted); font-size: .76rem; }
.source-details dt { font-weight: 800; text-transform: uppercase; }
.source-details dd { margin: 0; overflow-wrap: anywhere; }
.source-details a { color: var(--wine); }
.work-cta { position: sticky; top: 104px; padding: 28px; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); }
.work-cta h2 { font-size: 1.7rem; }
.work-cta .button { width: 100%; margin-top: 9px; }
.work-cta p { color: var(--muted); font-size: .8rem; }
.reader-shell { grid-template-columns: 270px minmax(0, 1fr); }
.reader-main { min-width: 0; }
.reader-context { max-width: 920px; margin: auto; padding: 24px 55px 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.reader-context a { color: var(--wine); font-size: .72rem; font-weight: 800; text-decoration: none; }
.reader-context a:hover { text-decoration: underline; }
.reader-progress { color: var(--muted); font-size: .69rem; font-weight: 750; }
.reader-head { padding-top: 27px; }
.reader-head h1 { margin-bottom: 8px; }
.reader-head p { margin-bottom: 0; }
.reader-toolbar { align-items: center; }
.reader-toolbar-left, .reader-toolbar-right { display: flex; align-items: center; gap: 7px; }
.toolbar-button, .edition-menu > summary { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 7px 11px; color: var(--muted); background: var(--paper); border: 1px solid var(--line); cursor: pointer; font-size: .68rem; font-weight: 800; list-style: none; }
.toolbar-button:hover, .edition-menu > summary:hover { color: var(--ink); border-color: var(--line-dark); }
.edition-menu { position: relative; }
.edition-menu > summary::-webkit-details-marker { display: none; }
.edition-menu[open] > summary { color: var(--ink); border-color: var(--teal); }
.edition-menu-panel { position: absolute; z-index: 30; top: calc(100% + 7px); left: 0; width: min(330px, calc(100vw - 32px)); padding: 9px; background: var(--paper); border: 1px solid var(--line-dark); box-shadow: var(--shadow); }
.edition-option { width: 100%; justify-content: flex-start; min-height: 38px; border: 0; background: transparent; }
.edition-option:has(input:checked) { color: var(--ink); background: var(--paper-deep); border-color: transparent; }
.edition-option input { accent-color: var(--wine); }
.edition-menu-note { margin: 7px 7px 4px; color: var(--muted); font-size: .61rem; }
.selection-summary { min-height: 0; margin: 0; }
.reader-tools { padding-top: 0; }
.text-stage { padding-top: 38px; padding-bottom: 36px; }
.text-label { margin-bottom: 26px; }
.text-label strong { font-size: 1.02rem; }
.text-label span, .alignment-badge { display: none; }
.parallel-column-head span, .alignment-badge { display: none; }
.parallel-stage { padding-bottom: 36px; }
.chapter-nav { max-width: 920px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0 auto; padding: 14px 55px 72px; }
.chapter-nav a { min-height: 84px; display: flex; flex-direction: column; justify-content: center; padding: 16px 18px; color: var(--ink); background: var(--parchment); border: 1px solid var(--line); text-decoration: none; }
.chapter-nav a:hover { border-color: var(--line-dark); background: var(--paper-deep); }
.chapter-nav a.next { text-align: right; align-items: flex-end; }
.chapter-nav small { color: var(--wine); font-size: .61rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.chapter-nav strong { margin-top: 5px; font-family: var(--serif); font-size: .98rem; }
.chapter-nav .empty { visibility: hidden; }
.reader-shell.toc-collapsed { grid-template-columns: 1fr; }
.reader-shell.toc-collapsed .toc { display: none; }
#view-reader:fullscreen, #view-reader:-webkit-full-screen { overflow-y: auto; background: var(--paper); }
#view-reader:fullscreen .reader-toolbar, #view-reader:-webkit-full-screen .reader-toolbar { top: 0; }
#view-reader.is-focus-mode .reader-shell { grid-template-columns: 1fr; }
#view-reader.is-focus-mode .toc { display: none; }
#view-reader.is-focus-mode .reader-shell.toc-open { grid-template-columns: 270px minmax(0,1fr); }
#view-reader.is-focus-mode .reader-shell.toc-open .toc { display: block; }
body.reader-focus .site-header { display: none; }
body.reader-focus .reader-toolbar { top: 0; }
.reader-only { display: none; }
body.reader-active .home-only { display: none !important; }
body.reader-active .reader-only { display: block; }
body.reader-active .site-footer { display: none; }
.reader-only.active { animation: rise .25s ease both; }
.static-page .site-header { position: sticky; }
.static-page main { min-height: calc(100vh - 160px); }
.simple-404 { min-height: calc(100vh - 160px); display: grid; place-items: center; text-align: center; }
.simple-404 h1 { font-size: clamp(4rem,12vw,8rem); margin-bottom: 8px; }
.simple-404 p { color: var(--muted); }
@media (max-width: 900px) {
  .work-landing-grid { grid-template-columns: 1fr; }
  .work-cta { position: static; }
  .reader-shell { grid-template-columns: 1fr; }
  .toc { display: none; max-height: 46vh; border-right: 0; border-bottom: 1px solid var(--line); }
  .reader-shell.toc-open .toc { display: block; }
  .reader-shell.toc-open { grid-template-columns: 1fr; }
  .reader-context { padding-inline: 24px; }
  .reader-toolbar { top: 64px; }
}
@media (max-width: 640px) {
  .brand-logo { width: 34px; height: 34px; }
  .hero h1 { font-size: clamp(3rem, 16vw, 4.2rem); }
  .hero-grid { gap: 58px; }
  .reader-context { align-items: flex-start; flex-direction: column; gap: 5px; }
  .reader-toolbar { flex-direction: row; align-items: center; justify-content: space-between; gap: 9px; padding: 10px 14px; position: sticky; top: 64px; }
  .reader-toolbar-left, .reader-toolbar-right { gap: 5px; }
  .toolbar-button, .edition-menu > summary { padding-inline: 9px; }
  .reader-tools { display: flex; }
  .reader-tools .font-control { display: none; }
  .chapter-nav { grid-template-columns: 1fr; padding-inline: 24px; }
  .chapter-nav a.next { text-align: left; align-items: flex-start; }
  .source-details dl { grid-template-columns: 1fr; gap: 2px; }
  .source-details dd { margin-bottom: 9px; }
}


/* Database-backed reader additions */
.toc-title { display: grid; gap: 4px; margin: 0 0 18px; padding: 0 4px 18px; border-bottom: 1px solid var(--line); }
.toc-title a { color: var(--ink); font: 700 1.02rem/1.3 var(--serif); text-decoration: none; }
.toc-title small { color: var(--muted); font-size: .58rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.toc nav { display: grid; gap: 2px; }
.toc-item { display: grid; gap: 2px; padding: 9px 10px; color: var(--muted); border-left: 3px solid transparent; text-decoration: none; }
.toc-item:hover { color: var(--ink); background: var(--paper-deep); }
.toc-item.active { color: var(--ink); border-left-color: var(--wine); background: var(--paper-deep); }
.toc-item span { font: 700 .79rem/1.3 var(--serif); }
.toc-item small { color: var(--muted); font-size: .59rem; line-height: 1.35; }
.reader-dynamic-page .site-footer { display: block; }
.reader-page { background: var(--paper); }
.reader-page .text-stage { max-width: 920px; margin: 0 auto; padding-inline: 55px; }
.passage-block { position: relative; margin: 0 0 1.35em; }
.passage-block p { margin: 0; }
.passage-ref { display: block; margin-bottom: .22rem; color: var(--muted); font: 700 .58rem/1.2 var(--sans); letter-spacing: .04em; }
.greek-word { display: inline; margin: 0; padding: 0 .02em; color: inherit; background: transparent; border: 0; border-bottom: 1px dotted color-mix(in srgb, var(--wine) 40%, transparent); border-radius: 0; font: inherit; cursor: pointer; }
.dynamic-parallel { max-width: 1280px; margin: 0 auto; padding: 38px 30px 36px; display: grid; grid-template-columns: repeat(var(--edition-columns,2), minmax(0,1fr)); gap: 14px; }
.dynamic-parallel .parallel-column { min-width: 0; border: 1px solid var(--line); background: var(--paper); }
.dynamic-parallel .parallel-column-head { position: sticky; top: 126px; z-index: 5; padding: 12px 16px; background: var(--paper-deep); border-bottom: 1px solid var(--line); }
.dynamic-parallel .parallel-column-body { padding: 22px 18px 30px; }
.reader-focus-mode .site-header, .reader-focus-mode .site-footer { display: none !important; }
.reader-focus-mode .reader-toolbar { top: 0; }
.reader-focus-mode .reader-shell { grid-template-columns: 1fr; min-height: 100vh; }
.reader-focus-mode .reader-shell .toc { display: none; }
.reader-focus-mode .reader-main { width: 100%; }
.reader-page:fullscreen { overflow-y: auto; background: var(--paper); }
.reader-page:fullscreen .reader-toolbar { top: 0; }
@media (max-width: 900px) {
  .dynamic-parallel { grid-template-columns: 1fr; padding-inline: 18px; }
  .dynamic-parallel .parallel-column-head { position: static; }
  .reader-page .text-stage { padding-inline: 24px; }
}


/* UI stabilization patch — database-backed public site */
:root { --site-header-height: 72px; }

.site-header { min-height: var(--site-header-height); }
.header-inner { height: var(--site-header-height); min-height: var(--site-header-height); }
.main-nav { align-self: stretch; }
.nav-link {
  height: 100%;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  line-height: 1;
}

/* Father profile pages use the same restrained hero treatment as the static release. */
.profile-page .breadcrumb { color: #ead9c8; }
.profile-page .breadcrumb:hover { color: #fff8ed; }
.profile-page .portrait-wrap { width: 250px; max-width: 100%; }
.profile-page .portrait { width: 250px; max-width: 100%; height: auto; aspect-ratio: 1 / 1; }
.profile-page .profile-grid > div:last-child { min-width: 0; }
.profile-page .page-hero h1 { max-width: 900px; overflow-wrap: anywhere; }
.profile-page .facts b { display: block; margin-top: 4px; font: 600 1rem/1.35 var(--serif); }
.profile-page .profile-source span { color: var(--muted); }
.selected-work-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ink); text-decoration: none; }
.selected-work-link:hover { color: var(--wine); }

/* Work overview: reduce dead space and make metadata easier to scan. */
.work-page .page-intro { padding-block: 62px 46px; }
.work-page .page-intro h1 { max-width: 1050px; font-size: clamp(3rem, 5.2vw, 5rem); }
.work-page .work-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 28px; }
.work-page .work-facts span { min-width: 0; overflow-wrap: anywhere; }
.work-page .work-facts strong { margin-bottom: 4px; }
.work-page .section.paper { padding-top: 66px; }

/* Reader sticky offsets must match the actual header height. */
.reader-shell { min-height: calc(100vh - var(--site-header-height)); }
.toc {
  position: sticky;
  top: var(--site-header-height);
  align-self: start;
  height: calc(100vh - var(--site-header-height));
  max-height: calc(100vh - var(--site-header-height));
}
.reader-toolbar { top: var(--site-header-height); }
.reader-head h1 { overflow-wrap: anywhere; }

@media (max-width: 900px) {
  :root { --site-header-height: 64px; }
  .header-inner { height: var(--site-header-height); min-height: var(--site-header-height); }
  .main-nav { top: var(--site-header-height); align-self: auto; }
  .nav-link {
    height: auto;
    min-height: 44px;
    justify-content: flex-start;
    padding: 0 12px;
    line-height: 1.25;
  }
  .profile-grid { gap: 34px; }
  .profile-page .portrait-wrap { width: min(250px, 70vw); }
  .profile-page .portrait { width: 100%; }
  .profile-body { gap: 42px; }
  .work-page .work-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .toc { position: static; width: 100%; height: auto; max-height: 46vh; }
  .reader-toolbar { top: var(--site-header-height); }
}

@media (max-width: 640px) {
  .work-page .page-intro { padding-block: 46px 36px; }
  .work-page .work-facts { grid-template-columns: 1fr; gap: 14px; }
  .profile-page .page-hero { padding-block: 54px; }
  .profile-page .page-hero h1 { font-size: clamp(2.6rem, 13vw, 4rem); }
  .facts { gap: 22px 30px; }
}

/* Public reading polish — v2.0.2 */
:root { --reader-paper: #fffdf8; }
html[data-theme="dark"] { --reader-paper: #211c19; }

/* Library index: use the same restrained, tactile card language as the Fathers directory. */
.library-page .work-grid { gap: 14px; }
.library-page .work-card {
  min-height: 270px;
  padding: 25px;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.library-page .work-card:hover {
  border-color: var(--line-dark);
  box-shadow: 0 12px 28px rgba(68, 49, 29, .08);
  transform: translateY(-2px);
}
.library-page .work-card h3 { margin: 16px 0 7px; font-size: 1.7rem; }
.work-title-link { color: inherit; text-decoration: none; }
.work-title-link:hover { color: var(--wine); }
.library-page .work-card .author { margin-bottom: 15px; }
.library-page .work-card > p:not(.author) { line-height: 1.55; }

/* Work overview: mirror the visual hierarchy of Father profiles instead of a plain document sheet. */
.work-hero { padding: 68px 0 72px; }
.work-hero .work-back { margin-bottom: 30px; color: #ead9c8; }
.work-hero .work-back:hover { color: #fff8ed; }
.work-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 64px;
  align-items: end;
}
.work-hero-copy { min-width: 0; }
.work-hero h1 {
  max-width: 900px;
  margin-bottom: 10px;
  font-size: clamp(3rem, 6vw, 5.4rem);
  overflow-wrap: anywhere;
}
.work-subtitle { margin: 0 0 8px; color: #d7b371; font: 1.34rem/1.4 var(--serif); }
.work-original-title { max-width: 780px; margin: 0 0 18px; color: #bfa89f; font: 1rem/1.5 var(--serif); }
.work-hero-summary { margin-bottom: 0; }
.work-hero-facts { gap: 30px 38px; }
.work-hero-facts span { min-width: 115px; max-width: 300px; }
.work-hero-facts b { display: block; margin-top: 4px; font: 600 .98rem/1.38 var(--serif); }
.work-author-link { color: inherit; text-decoration: none; }
.work-author-link:hover { color: #fff8ed; text-decoration: underline; text-underline-offset: 3px; }
.work-start-card {
  padding: 25px;
  color: #f8ecdc;
  background: rgba(255,255,255,.045);
  border: 1px solid #684950;
  box-shadow: 0 20px 45px rgba(17,7,9,.18);
}
.work-start-card .eyebrow { margin-bottom: 11px; }
.work-start-card h2 { margin-bottom: 9px; font-size: 2rem; color: #fff8ed; }
.work-start-card > p:not(.eyebrow) { margin-bottom: 19px; color: #cdb8af; font-size: .78rem; }
.work-start-button { width: 100%; }
.work-body-section { background: var(--parchment); }
.work-profile-body { align-items: start; }
.work-prose h2 { margin-top: 42px; }
.work-prose > .eyebrow + h2 { margin-top: 0; }
.work-editions-card { position: sticky; top: 104px; }
.edition-list-item { display: grid; gap: 3px; }
.edition-list-item strong { font-weight: 600; }
.edition-list-item small { color: var(--muted); font: .63rem/1.35 var(--sans); }
.work-sidebar-read { width: 100%; margin-top: 20px; }
.source-entry { overflow-wrap: anywhere; }

/* Reader: restore the calmer static-reader treatment. */
body.reader-dynamic-page::before { opacity: .018; }
.reader-dynamic-page .site-footer { display: none; }
.reader-page,
.reader-main { background: var(--reader-paper); }
.reader-shell {
  grid-template-columns: 290px minmax(0, 1fr);
  background: var(--reader-paper);
}
.reader-main { min-width: 0; border-left: 0; }
.toc {
  padding: 0 0 42px;
  background: var(--parchment);
  scrollbar-gutter: stable;
}
.toc-title {
  position: sticky;
  top: 0;
  z-index: 4;
  margin: 0;
  padding: 24px 22px 18px;
  background: color-mix(in srgb, var(--parchment) 96%, transparent);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(10px);
}
.toc-title a { font-size: 1.08rem; }
.toc nav { gap: 2px; padding: 10px 12px 0; }
.toc-item { padding: 9px 10px; border-left-width: 2px; }
.toc-item.active { background: color-mix(in srgb, var(--paper-deep) 72%, transparent); }
.reader-context,
.reader-head { max-width: 900px; }
.reader-context { padding: 22px 60px 0; }
.reader-head { padding: 25px 60px 22px; }
.reader-head h1 { font-size: clamp(2.6rem, 4.8vw, 4.1rem); }
.reader-toolbar {
  padding-inline: max(24px, calc((100% - 900px) / 2));
  background: color-mix(in srgb, var(--reader-paper) 96%, transparent);
}
.reader-page .text-stage {
  max-width: 900px;
  min-height: 600px;
  padding: 42px 60px 86px;
}
.text-label { margin-bottom: 30px; }
.patristic-text { max-width: 76ch; font: var(--reader-size, 1.15rem)/1.92 var(--serif); }
.unit-reading {
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 18px;
  margin-bottom: 1.5em;
}
.unit-ref {
  padding-top: .42em;
  color: var(--wine);
  opacity: .88;
  text-align: right;
  font: 750 .61rem/1.3 var(--sans);
  font-variant-numeric: tabular-nums;
}
.unit-copy { max-width: 72ch; }
.dynamic-parallel {
  max-width: 1320px;
  padding: 38px 30px 54px;
  background: var(--reader-paper);
}
.dynamic-parallel .parallel-column { background: var(--reader-paper); }
.dynamic-parallel .parallel-column-head {
  background: color-mix(in srgb, var(--paper-deep) 72%, var(--reader-paper));
}
.dynamic-parallel .unit-reading { grid-template-columns: 44px minmax(0,1fr); gap: 11px; }
.dynamic-parallel .unit-ref { text-align: right; }
.chapter-nav { max-width: 900px; padding-inline: 60px; }

/* Native Fullscreen API: the fullscreen element is the reader page, and it owns scrolling. */
.reader-page:fullscreen,
.reader-page:-webkit-full-screen {
  width: 100vw;
  height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--reader-paper);
}
.reader-page:fullscreen .reader-shell,
.reader-page:-webkit-full-screen .reader-shell {
  min-height: 100vh;
  background: var(--reader-paper);
}
.reader-page:fullscreen .reader-toolbar,
.reader-page:-webkit-full-screen .reader-toolbar { top: 0; }
.reader-page:fullscreen .toc,
.reader-page:-webkit-full-screen .toc {
  top: 0;
  height: 100vh;
  max-height: 100vh;
}
.reader-page:fullscreen .dynamic-parallel .parallel-column-head,
.reader-page:-webkit-full-screen .dynamic-parallel .parallel-column-head { top: 61px; }

@media (max-width: 1000px) {
  .work-hero-grid { grid-template-columns: 1fr; gap: 34px; }
  .work-start-card { max-width: 520px; }
}

@media (max-width: 900px) {
  .work-editions-card { position: static; }
  .reader-shell { grid-template-columns: 1fr; }
  .toc { padding-bottom: 28px; }
  .toc-title { position: sticky; }
  .reader-context, .reader-head, .reader-page .text-stage { padding-inline: 24px; }
  .reader-toolbar { padding-inline: 18px; }
  .chapter-nav { padding-inline: 24px; }
  .unit-reading { grid-template-columns: 43px minmax(0,1fr); gap: 12px; }
}

@media (max-width: 640px) {
  .work-hero { padding-block: 48px 52px; }
  .work-hero-facts { gap: 20px 28px; }
  .work-start-card { padding: 21px; }
  .library-page .work-card { min-height: 0; }
  .unit-reading { grid-template-columns: 36px minmax(0,1fr); gap: 9px; }
  .unit-ref { font-size: .56rem; }
  .reader-page .text-stage { padding-top: 34px; }
}
