:root {
    --story-size: 20px;
    --text-scale: 1;
    --disabled-link: #8A8177;
    color-scheme: light;
    --page: #F5F0E6;
    --ink: #302B25;
    --link: #73513A;
    --muted: #62584D;
    --border: #D3C8B8;
    --measure: 68ch;
}
[data-theme="light"] { color-scheme: light; --page:#FFFFFF; --ink:#24272A; --link:#395B78; --muted:#616971; --border:#E4E5E7; }
[data-theme="dark"] { color-scheme: dark; --page:#1D2023; --ink:#EAE7E2; --link:#DBB997; --muted:#B8B2A9; --border:#42464B; }
[data-theme="light"] { --disabled-link:#858B91; }
[data-theme="dark"] { --disabled-link:#99948C; }
[data-reader-size="small"] { --text-scale:.92; --story-size:19px; }
[data-reader-size="large"] { --text-scale:1.08; --story-size:22px; }
* { box-sizing: border-box; }
html { background: var(--page); color: var(--ink); }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; font-size:calc(1rem * var(--text-scale)); line-height: 1.6; }
a { color: var(--link); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
.site-header, main, .site-footer { width: min(100% - 40px, var(--measure)); margin-inline: auto; }
.site-header { min-height: 76px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--border); }
.brand { color:var(--ink); font-weight:650; text-decoration:none; }
.site-brand { min-width:0; flex:0 1 auto; }
.site-brand .brand-logo { display:block; width:11.25em; max-width:100%; height:auto; }
.site-brand .brand-logo-dark { display:none; }
[data-theme="dark"] .site-brand .brand-logo-standard { display:none; }
[data-theme="dark"] .site-brand .brand-logo-dark { display:block; }
.library-page .library-heading { display:flex; align-items:center; gap:.4em; }
.library-page .library-icon, .library-back-link .library-icon { display:block; flex:none; object-fit:contain; }
.library-page .library-icon { width:1.15em; height:1.15em; }
.library-back-link { gap:.45em; }
.library-back-link .library-icon { width:1.15em; height:1.15em; }
.library-page .library-icon-dark, .library-back-link .library-icon-dark { display:none; }
[data-theme="dark"] .library-page .library-icon-standard, [data-theme="dark"] .library-back-link .library-icon-standard { display:none; }
[data-theme="dark"] .library-page .library-icon-dark, [data-theme="dark"] .library-back-link .library-icon-dark { display:block; }
.theme-control { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:calc(.9rem * var(--text-scale)); }
.theme-control select { max-width: 145px; min-height:44px; padding:6px 9px; border:1px solid var(--border); border-radius:4px; background:var(--page); color:var(--ink); font:inherit; }
main { padding-block: clamp(36px, 8vw, 76px); min-height:65vh; }
h1,h2 { line-height:1.2; overflow-wrap:anywhere; }
h1 { margin:0 0 1.1em; font-size:calc(clamp(1.8rem, 5vw, 2.125rem) * var(--text-scale)); }
h2 { margin-top:2em; font-size:calc(1.2rem * var(--text-scale)); }
.work-list, .episode-list { padding-left:1.4em; }
.work-list li, .episode-list li { padding:.35em 0; }
.library-page .work-list { display:grid; gap:1rem; margin:0; padding:0; list-style:none; }
.library-page .work-list li { min-width:0; padding:0; }
.library-page .work-cover { --spine-width:clamp(1.5rem, 9%, 3.5rem); position:relative; isolation:isolate; display:flex; min-height:12rem; align-items:flex-start; justify-content:center; padding:1.5rem 1.4rem 1.25rem calc(var(--spine-width) + 1.25rem); overflow-wrap:anywhere; border:1px solid var(--border); border-radius:5px; background:var(--cover-color, #E7DFD2); color:var(--cover-text-color, #302B25); text-align:center; text-decoration:none; box-shadow:0 2px 6px rgba(25,20,15,.16), inset 0 1px 9px rgba(255,255,255,.09); }
.library-page .work-cover::before { position:absolute; z-index:0; inset:0 auto 0 0; width:var(--spine-width); border-right:1px solid rgba(0,0,0,.3); border-radius:4px 0 0 4px; background:linear-gradient(rgba(255,240,210,.82),rgba(255,240,210,.82)) 50% 13% / 48% 1px no-repeat,linear-gradient(rgba(255,240,210,.82),rgba(255,240,210,.82)) 50% 16% / 48% 1px no-repeat,linear-gradient(rgba(255,240,210,.82),rgba(255,240,210,.82)) 50% 84% / 48% 1px no-repeat,linear-gradient(rgba(255,240,210,.82),rgba(255,240,210,.82)) 50% 87% / 48% 1px no-repeat,rgba(0,0,0,.17); content:""; }
.library-page .work-cover::after { position:absolute; z-index:0; inset:.65rem .65rem .65rem calc(var(--spine-width) + .55rem); border:1px solid color-mix(in srgb, var(--cover-text-color, #302B25) 28%, transparent); border-radius:2px; content:""; pointer-events:none; }
.library-page .work-title { position:relative; z-index:1; display:block; width:100%; max-width:48ch; font-family:Georgia, Cambria, "Times New Roman", serif; font-size:calc(1.25rem * var(--text-scale)); font-weight:650; line-height:1.35; overflow-wrap:anywhere; }
.library-page .work-ornament { display:flex; align-items:center; justify-content:center; gap:.5rem; width:100%; margin:.8rem auto 0; opacity:.55; }
.library-page .work-ornament span:first-child, .library-page .work-ornament span:last-child { width:2.25rem; height:1px; background:currentColor; }
.library-page .work-ornament span:nth-child(2) { width:.38rem; height:.38rem; flex:none; background:currentColor; transform:rotate(45deg); }
.library-page .work-cover:hover .work-title { text-decoration:underline; text-underline-offset:.15em; }
.work-description, .eyebrow { color:var(--muted); }
.reader { max-width:var(--measure); margin-inline:auto; }
.reader-header { margin:0 0 2.6rem; }
.reader-header .eyebrow { margin:0 0 .75rem; }
.reader-header h1 { margin:0; font-size:calc(34px * var(--text-scale)); }
.story { font-family:Georgia, Cambria, "Times New Roman", serif; font-size:var(--story-size); line-height:1.72; text-align:left; }
.story p { margin:0 0 1.05em; text-indent:0; }
.preferences-toggle { display:none; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:6px 10px; border:1px solid var(--border); border-radius:4px; background:transparent; color:var(--ink); font:inherit; cursor:pointer; }
.js .preferences-toggle { display:inline-flex; }
.preferences-toggle svg, .episode-browser svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.preferences-toggle svg circle { fill:var(--page); }
.preferences-panel { width:min(100% - 40px, 420px); margin:12px auto 0; padding:16px; border:1px solid var(--border); border-radius:4px; background:var(--page); }
.preferences-panel[hidden] { display:none; }
.preference-group { min-width:0; margin:0; padding:0; border:0; }
.preference-group + .preference-group { margin-top:16px; }
.preference-group legend { margin-bottom:7px; color:var(--muted); font-size:calc(.9rem * var(--text-scale)); }
.segmented-control { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--border); border-radius:4px; overflow:hidden; }
.segmented-control label { position:relative; text-align:center; cursor:pointer; }
.segmented-control label + label { border-left:1px solid var(--border); }
.segmented-control input { position:absolute; width:1px; height:1px; opacity:0; }
.segmented-control span { display:flex; min-height:44px; align-items:center; justify-content:center; padding:5px; color:var(--link); }
.segmented-control input:checked + span { background:var(--border); color:var(--ink); font-weight:650; }
.segmented-control input:focus-visible + span { outline:3px solid var(--link); outline-offset:-3px; }
.reader-nav { margin-top:3rem; padding-top:1rem; border-top:1px solid var(--border); }
.reader-nav h2 { margin:0 0 8px; color:var(--muted); text-align:center; font-size:calc(14px * var(--text-scale)); font-weight:550; }
.episode-browser .unavailable { display:flex; min-width:0; min-height:48px; align-items:center; gap:5px; color:var(--disabled-link); }
.episode-browser .episode-prev { grid-column:1; justify-self:start; }
.episode-browser .index-link { grid-column:2; }
.episode-browser .episode-next { grid-column:3; justify-self:end; }
.episode-browser .unavailable span { text-decoration:line-through; }
.episode-browser { display:grid; grid-template-columns:1fr 1fr 1fr; align-items:stretch; }
.episode-browser a { display:flex; min-width:0; min-height:48px; align-items:center; gap:5px; padding:4px 0; color:var(--link); text-decoration:none; }
.episode-browser a.episode-prev, .episode-browser a.episode-next { color:var(--link); }
.episode-browser .index-link { justify-self:center; flex-direction:column; justify-content:center; gap:0; }
.reader-nav a, .back-link { display:inline-flex; align-items:center; min-height:44px; padding:6px 4px; }
.site-footer { padding:18px 0 30px; border-top:1px solid var(--border); color:var(--muted); font-size:calc(.9rem * var(--text-scale)); overflow-wrap:anywhere; }
.site-footer div + div { margin-top:6px; }
.site-footer a { color:var(--link); }
@media (max-width:600px) {
    .site-header, main, .site-footer { width:calc(100% - 38px); }
    .site-header { min-height:68px; }
    .reader-header { margin-bottom:2rem; }
    .reader-header h1 { font-size:calc(28px * var(--text-scale)); }
    :root { --story-size:18px; }
    [data-reader-size="small"] { --story-size:17px; }
    [data-reader-size="large"] { --story-size:20px; }
    .preferences-panel { width:calc(100% - 38px); }
    .episode-browser { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
    .episode-browser .episode-prev { grid-column:1; grid-row:1; }
    .episode-browser .episode-next { grid-column:2; grid-row:1; }
    .episode-browser .index-link { grid-column:1 / -1; grid-row:2; justify-self:center; margin-top:8px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; } }
