:root{--color-bg: #f9f9f7;--color-text-primary: #2a2a2a;--color-text-secondary: #4a4a4a;--color-accent-granite: #4a4a4a;--color-accent-sandstone: #d2b48c;--color-link: #005a9c;--color-link-hover: #003d6b;--color-border: #d2b48c;--color-callout-bg: #f9f9f7;--font-display: "Roboto Mono", "Courier New", monospace;--font-body: "EB Garamond", Georgia, serif;--font-ui: "Roboto Mono", "Courier New", monospace;--font-size-base: 19px;--line-height-base: 1.65;--max-measure: 68ch;--max-measure-footnote: 60ch;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--transition-fast: .1s ease;--transition-normal: .2s ease}[data-theme=dark]{--color-bg: #1a1a1a;--color-text-primary: #f0f0ee;--color-text-secondary: #b5b5b5;--color-accent-granite: #8a8a8a;--color-accent-sandstone: #c4a574;--color-link: #4a9fe5;--color-link-hover: #6bb3f0;--color-border: #c4a574;--color-callout-bg: #242424}@media(min-width:768px){:root{--font-size-base: 20px}}@media(min-width:1024px){:root{--font-size-base: 21px;--line-height-base: 1.7}}*{margin:0;padding:0;box-sizing:border-box}html{font-size:var(--font-size-base);line-height:var(--line-height-base);font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text-primary);transition:background-color var(--transition-normal),color var(--transition-normal)}body{min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em;transition:color var(--transition-fast),text-decoration-thickness var(--transition-fast)}a:hover{color:var(--color-link-hover);text-decoration-thickness:2px}a:focus-visible{outline:2px solid var(--color-link);outline-offset:2px;border-radius:2px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.3;color:var(--color-text-primary);margin-bottom:.75em}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}::-moz-selection{background-color:var(--color-accent-sandstone);color:var(--color-bg)}::selection{background-color:var(--color-accent-sandstone);color:var(--color-bg)}.prose{max-width:var(--max-measure);margin:0 auto;padding:var(--space-lg) var(--space-md);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text-primary)}.prose p{margin-bottom:1.5em}.prose p:first-of-type:first-letter{font-size:3.5em;font-weight:700;line-height:.85;float:left;margin-right:.1em;margin-top:.05em;font-family:var(--font-display);color:var(--color-link)}.prose blockquote{margin:var(--space-lg) 0;padding-left:var(--space-md);border-left:3px solid var(--color-border);font-style:italic;color:var(--color-text-secondary)}.prose .epigraph{text-align:center;font-style:italic;color:var(--color-text-secondary);margin:var(--space-lg) auto;max-width:40ch;font-size:.95em}.prose em{font-style:italic}.prose strong{font-weight:700;color:var(--color-text-primary)}.prose hr{border:none;text-align:center;margin:var(--space-xl) auto;position:relative}.prose hr:before{content:"* * *";font-size:1.5em;letter-spacing:1em;color:var(--color-text-secondary)}.prose ul,.prose ol{margin-bottom:1.5em;padding-left:1.5em}.prose li{margin-bottom:.5em}.prose .footnote-ref{font-size:.75em;vertical-align:super;text-decoration:none;color:var(--color-accent-sandstone);font-weight:700;padding:0 .2em;cursor:pointer}.prose .footnote-ref:hover{color:var(--color-link)}.footnote-content{max-width:var(--max-measure-footnote);font-size:.9em;color:var(--color-text-secondary);line-height:1.5}.prose .character-name{font-variant:small-caps;letter-spacing:.05em}.prose .scene-header{text-align:center;font-family:var(--font-ui);font-size:.85em;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-secondary);margin:var(--space-xl) 0 var(--space-lg)}@media(max-width:768px){.prose{padding:var(--space-md) var(--space-sm)}.prose p:first-of-type:first-letter{font-size:3em}}[data-theme=dark] .prose{color:var(--color-text-primary)}[data-theme=dark] .prose p:first-of-type:first-letter{color:var(--color-link)}
