@font-face { font-family: 'Noto'; src: url('../../fonts/NotoSans-Regular.ttf') format('truetype'); } html, body{ background: radial-gradient(circle at 18% 12%, var(--theme-glow-wine, transparent), transparent 28%), radial-gradient(circle at 84% 18%, var(--theme-glow-green, transparent), transparent 24%), linear-gradient(135deg, var(--theme-bg-start, var(--bg)) 0%, var(--theme-bg-mid, var(--bg)) 42%, var(--theme-bg-end, var(--bg)) 100%); color: var(--fg); font-size: 16px; transition: background-color .3s, color .3s; margin: 0; font-family: 'Noto', system-ui, sans-serif; line-height: 1.65; } body { min-height: 100vh; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; } :root[data-theme="dark-academia"] body { --theme-glow-wine: rgba(125, 47, 54, 0.24); --theme-glow-green: rgba(68, 106, 87, 0.24); --theme-bg-start: #0f0e0b; --theme-bg-mid: #17140f; --theme-bg-end: #211b14; } :root[data-theme="dark-academia"] body::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: 0.16; background-image: linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px); background-size: 34px 34px, 34px 34px; mask-image: linear-gradient(90deg, rgba(0,0,0,0.9), rgba(0,0,0,0.35)); } ::selection { background: color-mix(in oklab, var(--accent) 24%, transparent); } h1, h2, h3{ color: var(--heading); line-height: 1.18; letter-spacing: 0; } h1 { margin-top: 2.25rem; margin-bottom: 1rem; font-size: clamp(2rem, 4vw, 3.4rem); } h2 { margin-top: 2.2rem; } p { margin: 0 0 1.15rem; } a { color: var(--link); text-decoration: none; text-underline-offset: 0.18em; } a:hover { text-decoration: underline; } hr { border: 0; border-top: 1px solid var(--border); margin: 2rem 0; } table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; overflow: hidden; } th, td { border-bottom: 1px solid var(--border); padding: 0.65rem 0.75rem; text-align: left; } th { color: var(--heading); background: color-mix(in oklab, var(--surface-soft) 80%, transparent); } blockquote { margin: 1.5rem 0; padding: 0.9rem 1.1rem; border-left: 4px solid var(--heading); background: color-mix(in oklab, var(--surface-soft) 72%, transparent); border-radius: 0 8px 8px 0; color: color-mix(in oklab, var(--fg) 84%, var(--muted) 16%); } ul, ol { margin: 1rem 0 1.5rem 1.5rem; padding: 0; line-height: 1.5; } ul { list-style: none; } ul li { position: relative; padding-left: 1.2em; } ul li::before { content: "•"; position: absolute; left: 0; top: 0; color: var(--heading); font-weight: bold; } ol { counter-reset: list-counter; list-style: none; } ol li { counter-increment: list-counter; position: relative; padding-left: 1.8em; } ol li::before { content: counter(list-counter) "."; position: absolute; left: 0; top: 0; color: var(--heading); font-weight: bold; } li { margin-bottom: 8px; display: flow-root; } li::after { content: none; } li ul, li ol { margin-top: 0.5rem; margin-bottom: 0.5rem; } li ul li::before { content: "–"; font-weight: normal; color: var(--note-color); } li ol li::before { font-weight: normal; color: var(--note-color); } .epigraph { margin: 2rem auto; max-width: 80%; font-style: italic; } .epigraph blockquote { margin: 0; padding: 1rem 1.5rem; border-left: 4px solid var(--heading); background-color: rgba(0, 0, 0, 0.02); color: var(--fg); line-height: 1.6; } .epigraph blockquote footer { margin-top: 0.75rem; font-style: normal; font-size: 0.9em; color: var(--note-color); text-align: right; } .epigraph blockquote cite { font-style: italic; font-weight: 500; color: var(--link); } .epigraph blockquote::before, .epigraph blockquote::after { content: none; } .epigraph blockquote{ border-left-color: var(--heading); background-color: color-mix(in oklab, var(--bg) 94%, var(--fg) 6%); color: var(--fg); } .epigraph blockquote footer{ color: var(--muted); }