@import "normalize.scss"; @import "fonts.scss"; @import "syntax-highlighting.scss"; $page-horizontal-margin: 2rem; $mobile-breakpoint: 480px; $container-max-width: 768px; $link-color: #c21e1e; :root { // solarized-base2 --background-color: #eee8d5; --text-color: black; --secondary-text-color: #656565; --link-color: #c21e1e; --page-vertical-margin: 2rem; } .container { max-width: $container-max-width; margin: 0 $page-horizontal-margin / 2; } @media (min-width: calc($container-max-width + 2 * $page-horizontal-margin)) { .container { margin: 0 $page-horizontal-margin; } } a, a:visited { color: var(--link-color); text-decoration-thickness: 2px; text-underline-offset: 2px; } a:hover { text-decoration-thickness: 3px; } a[href^="http://"]:not(.no-external-link-decoration)::after, a[href^="https://"]:not(.no-external-link-decoration)::after { background-color: currentColor; content: ""; width: calc(max(0.667em, 12px)); height: calc(max(0.667em, 12px)); margin-left: 0.333em; display: inline-block; mask: url("data:image/svg+xml;base64," + $external-link) no-repeat 50% 50%; mask-size: cover; } pre, code { font-family: "Berkeley Mono"; font-size: 0.9em; } pre { overflow-x: scroll; tab-size: 4; word-wrap: normal; } blockquote { position: relative; font-style: italic; &::before { content: open-quote; font-size: 2em; position: absolute; left: -25px; top: -10px; } } img { display: block; margin: 0 auto; max-width: 100%; } figure { margin: 0; figcaption { margin-top: 4px; font-size: 1.1rem; font-style: italic; color: var(--secondary-text-color); text-align: center; } } table { width: 100%; border-collapse: collapse; border: 1px solid var(--secondary-text-color); tr, th, td { border: 1px solid var(--secondary-text-color); } td, th { padding: 0 0.5em; text-align: left; } thead > tr, tbody > tr:nth-child(even) { // darkened solarized base2 background: darken(#eee8d5, 5%); } } hr { border: 1px solid var(--secondary-text-color); } html { font-family: "Valkyrie A", Charter, serif; font-size: 16px; /* background-color: #dfd3c3; */ background-color: var(--background-color); /* background-color: #e8dbc5; */ color: var(--text-color); } header { margin-top: var(--page-vertical-margin); font-style: italic; h1 { font-size: 5rem; margin: 0; a { color: var(--text-color) !important; transition: text-decoration-thickness 0.1s ease-in-out; text-decoration-thickness: 4px; text-underline-offset: 0.5rem; &:hover { text-decoration-thickness: 8px; } } } p { margin-top: 0.25rem; font-size: 1.5rem; font-weight: lighter; text-wrap: balance; } } @media (max-width: $mobile-breakpoint) { header h1 { font-size: 4rem; } } .headline { // balance the number of words per line text-wrap: balance; &:has(+ .article-meta) { margin-bottom: 0.2em; } } .article-meta { margin-top: 0; color: var(--secondary-text-color); text-wrap: pretty; } .body-content { font-size: 1.25rem; // Chrome only, but minimizes orphan words text-wrap: pretty; } .read-more { font-style: italic; } .header-anchor { text-decoration: none; font-size: 1rem; vertical-align: middle; // drag it up so it's more in the middle padding-bottom: 0.25rem; color: var(--secondary-text-color) !important; background: none; &:hover { color: var(--link-color) !important; } } .footnote-reference { > a { text-decoration: none; &[href^="#fn-"] { display: none; } } } .footnote-reference:hover + .sidenote, .sidenote:hover, aside:not(.inline):hover { color: black; a { color: var(--link-color); } } .sidenote, aside:not(.inline) { float: right; margin-right: -50%; width: 40%; font-size: 1rem; line-height: 1.25; color: var(--secondary-text-color); transition: color 0.2s ease-in-out; display: block; .sidenote-p { margin: 20px 0; display: block; } a { color: lighten($link-color, 20%); transition: color 0.2s ease-in-out; } } aside:not(.inline) { transform: translateY(-50%); p:first-child { margin-top: 0; } p:last-child { margin-bottom: 0; } } .tv-show-entry { margin-bottom: 1rem; > summary { > h2 { display: inline; } } } .footnote { display: none; flex-direction: row; gap: 8px; font-size: 1rem; .footnote-marker { flex-shrink: 0; width: 34px; text-align: right; } .footnote-backref { text-decoration: none; } > div > p:first-child { margin-top: 0; } > div > p:last-child { margin-top: 0; } } aside.inline { font-size: 1rem; background-color: lighten($link-color, 43%); padding: 1rem; p:first-child { margin-top: 0; } p:last-child { margin-bottom: 0; } } // 1.5 to account for -50% margin-right on .sidenote // plus page-horizontal-margin to effectively use that as the margin @media (max-width: calc(1.5 * $container-max-width + 2 * $page-horizontal-margin)) { .footnote-reference { > a[href^="#fn-"] { display: inline; } > a[href^="#fnref-"] { display: none; } } .sidenote { display: none; } .footnote { display: flex; } aside:not(.inline) { float: none; margin-right: 0; width: auto; line-height: initial; transform: none; background-color: lighten($link-color, 43%); padding: 1rem; } } footer { margin-bottom: var(--page-vertical-margin); font-style: italic; font-size: 1.25rem; ul { padding: 0; list-style: none; } } @media (max-width: $mobile-breakpoint) { footer { font-size: 1rem; } } .webring { --webring-gradient: linear-gradient( 90deg, #855988, #6b4984, #483475, #2b2f77, #141852 ); background: var(--webring-gradient); background-clip: text; font-variant: small-caps; font-weight: bold; position: relative; &::after { content: ""; width: 100%; height: 2px; position: absolute; bottom: 2px; left: 0; background: var(--webring-gradient); } &:hover::after { height: 3px; bottom: 1px; } a { color: transparent; text-decoration: none; position: relative; } } .archive-list { display: flex; flex-direction: column; gap: 4px; font-size: 1.25rem; margin: 1rem 0; .archive-entry { display: flex; flex-direction: row; align-items: start; gap: 8px; time { color: var(--secondary-text-color); } &:hover time { color: var(--text-color); } } }