@font-face { font-family: Symbola; src: local("Symbola"), url(SymbolaRegular.subset.ttf); font-display: swap; } :root { color-scheme: light dark; --background-color: light-dark(#fff, #111); --softbox-color: light-dark(#c2c2c2, #2a2a2a); --foreground-color: light-dark(#222, #ccc); --link-color: light-dark(blue, #b5b5ff); --link-vis-color: light-dark(rebeccapurple, #aaa); --emph-color: light-dark(#116611, #99ff99); --green-color: light-dark(#008000, #00ff00); --blue-color: light-dark(#000080, cyan); --red-color: light-dark(#800000, #ff0000); --mode-border: light-dark(#555, #eee); } html:has(#theme-light:checked) { color-scheme: light; } html:has(#theme-dark:checked) { color-scheme: dark; } html:has(#theme-dark:checked) .top-bar img { filter: invert(1); } @media (prefers-color-scheme: dark) { html:has(#theme-auto:checked) .top-bar img { filter: invert(1); } } html:has(#theme-auto:checked) { color-scheme: light dark; } body { background: var(--background-color); color: var(--foreground-color); font-family: monospace; max-width: 40em; margin: 4em auto 2em; padding: 0 1em; } .top-bar { position: fixed; top: 0; left: 0; padding: 0.75em 1em; } .top-bar a { text-decoration: none; } .top-bar img { height: 36px; width: auto; vertical-align: middle; } .mode-container { display: flex; align-items: center; gap: 5px; position: fixed; top: 12px; right: 20px; } .mode-container input { display: none; } .mode-container label { display: block; width: 18px; height: 18px; border: 2px solid var(--mode-border); border-radius: 10px; cursor: pointer; opacity: 0.2; transition: opacity 0.15s; } .mode-container:hover label { opacity: 1; } .mode-container label.auto { background-image: url("data:image/svg+xml;utf8,"); background-size: cover; } .mode-container label.light { background-color: #fff; } .mode-container label.dark { background-color: #555; } .box { border-width: 1px; border-style: solid; border-color: var(--foreground-color); border-radius: 8px; margin: 1em; padding: 1em; } .softbox { background: var(--softbox-color); border-radius: 8px; margin: 1em; padding: 1em; width: fit-content; } .linkbox::before { content: "=> "; } .shellbox > *::before { content: "$ "; } .indent { margin-left: 1em; } .list { list-style-type: none; } .bold { font-weight: bold; } a { color: var(--link-color); } a:visited { color: var(--link-vis-color); } .bmtitle { font-weight: bold; } .bmtags { font-style: italic; } .keepws { white-space: pre; } em { color: var(--emph-color); font-style: normal; font-weight: bold; } code { color: var(--emph-color); } table { border-spacing: 1em 0px; } body.wide { max-width: none; padding: 0 3em; } .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5em; margin: 1em 0; } .grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.5em; margin: 1em 0; } .grid-2 > section, .grid-3 > section { min-width: 0; } @media (max-width: 60em) { .grid-3 { grid-template-columns: 1fr 1fr; } } @media (max-width: 40em) { .grid-2, .grid-3 { grid-template-columns: 1fr; } } .section-full { grid-column: 1 / -1; } table.media { border-spacing: 0; border-collapse: collapse; width: 100%; font-size: 0.85em; } table.media th { text-align: left; border-bottom: 2px solid var(--foreground-color); padding: 0.3em 0.5em; } table.media td { border-bottom: 1px solid var(--softbox-color); padding: 0.3em 0.5em; vertical-align: middle; } table.media td img.poster { height: 40px; width: 28px; object-fit: cover; vertical-align: middle; } table.media td img.portrait { height: 40px; width: 40px; object-fit: cover; border-radius: 50%; vertical-align: middle; } .cover-grid { display: flex; flex-wrap: wrap; gap: 0.5em; margin: 0.5em 0 1.5em; } .cover-grid .cover-item { text-align: center; width: 128px; } .cover-grid .cover-item img { width: 128px; height: 181px; object-fit: cover; } .cover-grid .cover-item .cover-label { font-size: 0.7em; margin-top: 0.2em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cover-grid.portraits .cover-item img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; } .stats { margin: 0.5em 0 1em; font-size: 0.9em; } .stats span { margin-right: 1.5em; } .stats em { font-style: normal; } h2 { font-size: 1em; margin: 1.5em 0 0.3em; } .score { color: var(--emph-color); } .status-evergreen { color: var(--green-color); } .status-growing { color: var(--blue-color); } .status-withered { color: var(--red-color); } .status-rough { color: var(--softbox-color); } .book-grid { display: flex; flex-wrap: wrap; gap: 0.5em; margin: 0.5em 0; } .book-grid .book-item { text-align: center; width: 70px; } .book-grid .book-item img { width: 70px; height: 105px; object-fit: cover; } .book-grid .book-item .book-label { font-size: 0.65em; margin-top: 0.2em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* ------------------------------------------ per-type layouts (corpus inspo) */ /* parasrah: stat(1) file header + ls -l listings */ .stat { background: rgba(52, 211, 153, 0.08); box-shadow: inset 0 0 8px rgba(52, 211, 153, 0.15); border-left: 3px solid rgba(52, 211, 153, 0.5); padding: 0.75em 1em; margin: 1em 0; font-size: 0.9em; overflow-x: auto; } .ls { margin: 1em 0; font-size: 0.9em; overflow-x: auto; } /* sy.st: dashed labeled boxes */ fieldset.wrap { border: 1px dashed var(--foreground-color); border-radius: 4px; padding: 0.5em 1em; margin: 1.5em 0; } fieldset.wrap legend { padding: 0 0.5em; font-weight: bold; } fieldset.wrap.abstract { font-style: italic; } /* 9lab: academic pages */ .acad-title { text-align: center; } .acad-meta { text-align: center; font-size: 0.9em; opacity: 0.8; margin-bottom: 1.5em; } .justify { text-align: justify; hyphens: auto; } /* altalenae: System 7 windows */ .window { border: 2px solid var(--foreground-color); box-shadow: 2px 2px 0 var(--foreground-color); background: var(--background-color); margin: 1em 0; } .title-bar { border-bottom: 2px solid var(--foreground-color); background: repeating-linear-gradient( to bottom, var(--background-color) 0px, var(--background-color) 2px, var(--foreground-color) 2px, var(--foreground-color) 3px, var(--background-color) 3px, var(--background-color) 5px ); text-align: center; padding: 0.3em 0.5em; } .title-bar .title, .title-bar h1.title { display: inline-block; background: var(--background-color); padding: 0 0.75em; font-size: 1em; margin: 0; font-weight: bold; } .window-body { padding: 0.75em 1em; } .window-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; margin: 1em 0; } .window-grid .window { margin: 0; text-decoration: none; color: var(--foreground-color); display: block; } .window-grid .window:visited { color: var(--foreground-color); } .window-grid .window-body { font-size: 0.85em; opacity: 0.85; } @media (max-width: 40em) { .window-grid { grid-template-columns: 1fr; } } /* chapbook: centered verse/prayer pages */ .chapbook { text-align: center; } .chapbook .keepws, .chapbook .prose { text-align: left; display: inline-block; } .chapbook .prose.poem { text-align: center; } .chap-meta, .win-meta { font-size: 0.9em; opacity: 0.8; margin-bottom: 1.5em; } /* ------------------------------------------------- written content pages */ .preview { font-style: italic; opacity: 0.8; } .prose { line-height: 1.5; } .prose h2, .prose h3, .prose h4 { font-size: 1em; margin: 1.5em 0 0.3em; } .prose h3::before { content: "## "; opacity: 0.5; } .prose h4::before { content: "### "; opacity: 0.5; } .prose img, .prose video { max-width: 100%; height: auto; } .prose blockquote { margin: 1em 0 1em 0; padding: 0 0 0 1em; border-left: 3px solid var(--softbox-color); opacity: 0.9; } .prose pre { background: rgba(52, 211, 153, 0.08); box-shadow: inset 0 0 8px rgba(52, 211, 153, 0.15); padding: 0.75em 1em; overflow-x: auto; border-radius: 4px; } .prose pre code { color: var(--foreground-color); } .prose table { border-spacing: 0; border-collapse: collapse; margin: 1em 0; } .prose table td { border-bottom: 1px solid var(--softbox-color); padding: 0.2em 0.75em 0.2em 0; vertical-align: top; } .prose hr { border: none; border-top: 1px solid var(--softbox-color); margin: 2em 0; } .prose figure { margin: 1em 0; } .prose figcaption { font-size: 0.85em; font-style: italic; opacity: 0.8; } /* verse and prayers keep their line breaks */ .poem p { white-space: pre-line; } /* no-JS collapsible sections */ details { border: 1px solid var(--softbox-color); border-radius: 4px; padding: 0.5em 0.75em; margin: 1em 0; } details summary { cursor: pointer; font-weight: bold; } details[open] summary { margin-bottom: 0.5em; } /* CSS-only spoiler: hidden until hover or focus */ .spoiler { background: var(--foreground-color); color: var(--foreground-color); } .spoiler:hover, .spoiler:focus { background: transparent; } .redacted { background: var(--foreground-color); color: var(--foreground-color); user-select: none; } .dropcap { float: left; font-size: 3em; line-height: 0.85; padding: 0.05em 0.1em 0 0; font-weight: bold; }