:root { --content-max-width: 44rem; --reader-font-size: 18px; }
html { scroll-behavior: smooth; }
body { font-feature-settings: "palt" 1; font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif; }
.content { padding-inline: 16px; }
.content main { max-width: var(--content-max-width); margin-inline: auto; font-size: var(--reader-font-size); line-height: 1.9; letter-spacing: .015em; padding-bottom: 5rem; }
main p, main li { overflow-wrap: anywhere; text-wrap: pretty; }
main p { margin: .85em 0; }
main li + li { margin-top: .45em; }
main h1 { line-height: 1.25; font-size: 1.75em; margin-top: .55em; }
main h2 { line-height: 1.35; font-size: 1.4em; margin-top: 2.8em; padding-top: .2em; border: 0; scroll-margin-top: 5rem; }
main h3 { line-height: 1.4; font-size: 1.08em; margin-top: 1.5em; padding-left: .7em; border-left: 3px solid currentColor; scroll-margin-top: 5rem; }
main blockquote { margin: 1.1em 0; padding: .9em 1em; border: 1px solid var(--table-border-color); border-left: 4px solid currentColor; border-radius: 0 12px 12px 0; color: inherit; }
main > blockquote:first-of-type { border-left-width: 1px; border-radius: 12px; margin-bottom: 2em; }
main hr { border: 0; border-top: 1px solid var(--table-border-color); margin: 2.5em 0; }
main a[href*="files.speakerdeck.com"] { display: inline-block; margin-top: .45em; padding: .4em .65em; border: 1px solid var(--table-border-color); border-radius: 999px; color: inherit; font-size: .78em; text-decoration: none; opacity: .72; }
main table { display: block; max-width: 100%; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
main pre { overflow-x: auto; -webkit-overflow-scrolling: touch; font-size: .88em; line-height: 1.55; border-radius: 8px; }
.page-range { display: inline-block; opacity: .7; font-size: .8em; margin-bottom: .4rem; }
.page-break { border: 0; border-top: 1px solid var(--table-border-color); margin: 2.4rem 0; opacity: .55; }
.original-slide { margin-top: .8em; }
.original-slide summary { cursor: pointer; font-size: .82em; opacity: .75; }
.original-slide img { width: 100%; height: auto; border-radius: 10px; }
#reading-progress { position: fixed; z-index: 9999; left: 0; top: 0; height: 3px; width: 0; background: currentColor; opacity: .55; pointer-events: none; }
.reader-font-controls { position: fixed; z-index: 1000; right: 12px; bottom: 12px; display: flex; gap: 2px; padding: 4px; border: 1px solid var(--table-border-color); border-radius: 999px; background: var(--bg); box-shadow: 0 4px 18px rgba(0,0,0,.16); }
.reader-font-controls button { border: 0; background: transparent; color: inherit; min-width: 38px; height: 36px; border-radius: 999px; cursor: pointer; font: inherit; font-size: 14px; }
.reader-font-controls button:hover { background: var(--quote-bg); }
@media (max-width: 720px) { .content main { font-size: var(--reader-font-size); line-height: 1.88; } main h2 { margin-top: 2.5em; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
