/*! beo 0.129.0 */
@font-face {
font-family: "Atkinson Hyperlegible";
src: url("/assets/fonts/atkinsonhyperlegiblenext-regular.woff2") format("woff2");
font-weight: 400; font-style: normal; font-display: optional;
}
@font-face {
font-family: "Atkinson Hyperlegible Bold";
src: url("/assets/fonts/atkinsonhyperlegiblenext-extrabold.woff2") format("woff2");
font-weight: 400; font-style: normal; font-display: optional;
}
@font-face {
font-family: "Atkinson Hyperlegible Mono";
src: url("/assets/fonts/atkinsonhyperlegiblemono-regular.woff2") format("woff2");
font-weight: 400; font-style: normal; font-display: optional;
}
@font-face {
font-family: "Gloria Hallelujah";
src: url("/assets/fonts/gloria-hallelujah-latin-400-normal.woff2") format("woff2");
font-weight: 400; font-style: normal; font-display: optional;
}
:root {
--bg: #fafafa; --text: #14141e; --accent: #630f33;
--accent-bg: #f5f7ff; --border: #ccc; --muted: #666;
--tok-com: #6e7781; --tok-str: #0a3069; --tok-kw: #a01b28; --tok-num: #0550ae;
--tok-fn: #7c3aad; --tok-tag: #116329; --tok-att: #0550ae; --tok-var: #8a3a00;
--font-main: "Atkinson Hyperlegible", system-ui, -apple-system, sans-serif;
--font-title: "Atkinson Hyperlegible Bold", "Atkinson Hyperlegible", system-ui, sans-serif;
--font-code: "Atkinson Hyperlegible Mono", ui-monospace, SFMono-Regular, monospace;
--font-scrawl: "Gloria Hallelujah", cursive;
--font-size: 1.15rem;
--size-h1: 3rem; --size-h2: 2.4rem; --size-h3: 2rem;
--size-h4: 1.44rem; --size-h5: 1.15rem; --size-h6: 0.96rem;
--measure: 55rem;
--size-title: 3.5rem;
color-scheme: light;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #212121; --text: #dcdcdc; --accent: #ffb300;
--accent-bg: #2b2b2b; --border: #555; --muted: #999;
--tok-com: #9aa4ae; --tok-str: #a5d6ff; --tok-kw: #ff7b72; --tok-num: #79c0ff;
--tok-fn: #d2a8ff; --tok-tag: #7ee787; --tok-att: #79c0ff; --tok-var: #ffa657;
color-scheme: dark;
}
}
@media (max-width: 720px) {
:root { --size-h1: 2.5rem; --size-h2: 2.1rem; --size-h3: 1.75rem; --size-h4: 1.25rem;
--size-title: 2.45rem; }
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
min-height: 100vh; display: flex; flex-direction: column; align-items: stretch;
background: var(--bg); color: var(--text);
font-family: var(--font-main); font-size: var(--font-size);
margin: 0; padding: 0 1rem; line-height: 1.6; text-wrap: pretty;
}
header.site, main, footer { width: 100%; max-width: var(--measure); margin: 0 auto; }
main { flex: 1; }
header.site { border-bottom: 1px solid var(--border); margin-bottom: 2rem; }
footer { text-align: center; font-size: 1rem; margin-top: 4rem;
border-top: 1px solid var(--border); padding-top: 1rem; }
h1, h2, h3, h4, h5, h6 {
font-family: var(--font-title); color: var(--accent);
margin-bottom: 1rem; overflow-wrap: break-word; text-wrap: balance;
}
h1, h2, h3 { line-height: 1.1; }
h1 { font-size: var(--size-h1); margin-top: 0; }
h2 { font-size: var(--size-h2); margin-top: 3rem; }
h3 { font-size: var(--size-h3); margin-top: 3rem; }
h4 { font-size: var(--size-h4); }
h5 { font-size: var(--size-h5); }
h6 { font-size: var(--size-h6); }
main h1 { margin-bottom: 2rem; }
p { margin: 1.5rem 0; }
em { font-family: var(--font-scrawl); font-style: normal; }
blockquote em, cite em { font-family: inherit; font-style: italic; }
a { color: var(--accent); }
a:hover { text-decoration: none; }
abbr { cursor: help; }
hr { border: 0; border-top: 1px solid var(--border); }
cite { font-size: 0.9rem; }
.muted { color: var(--muted); font-size: 0.9rem; }
.hidden { display: none; }
[hidden] { display: none !important; }
header.site .h-card { display: block; margin: 1rem 0; }
header.site .h-card::after { content: ""; display: block; clear: both; }
header.site .site-title {
font-family: var(--font-title); font-size: var(--size-title); line-height: 1;
color: var(--accent); text-decoration: none; max-width: 100%;
margin: 0.5rem 0 0.25rem;
display: inline-flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
}
header.site .site-title:hover span { text-decoration: underline; }
header.site .site-logo { max-height: 1em; width: auto; border-radius: 5px; margin: 0; flex: none; }
header.site .p-note { clear: left; }
header.site .p-adr, header.site .u-email { display: block; margin: 0.3rem 0; }
header.site .p-note p { margin: 0.2rem 0; }
.site-nav { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; margin: 1rem 0; }
.site-nav a { color: inherit; text-decoration: none; font-size: 0.9em;
display: inline-flex; align-items: center; gap: 0.3rem; }
.site-nav a:hover, .site-nav a.current { color: var(--accent); text-decoration: underline; }
.site-nav .icon { padding-right: 0; width: 1.15em; height: 1.15em; }
.site-nav.admin-menu { gap: 0.75rem 1.4rem; }
.site-nav.admin-menu a { font-size: 1rem; }
.outbox-status {
position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 60;
max-width: var(--measure); margin: 0 auto;
padding: 0.6rem 0.9rem; border-radius: 6px; font-size: 0.9rem;
border: 1px solid var(--border); background: var(--accent-bg); color: var(--text);
box-shadow: 0 2px 12px rgba(0,0,0,0.12);
}
.outbox-waiting { border-color: var(--accent); }
.outbox-sending { border-color: var(--accent); opacity: 0.9; }
.outbox-done { border-color: #1a7f37; }
.outbox-error { border-color: #c1272d; }
@media (prefers-color-scheme: dark) { .outbox-done { border-color: #7ee787; } }
.admin-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
gap: 0.6rem; margin: 1rem 0 2rem; }
.admin-tool { display: flex; gap: 0.6rem; align-items: flex-start; text-decoration: none;
border: 1px solid var(--border); border-radius: 6px; padding: 0.7rem 0.9rem;
background: var(--accent-bg); color: var(--text); }
.admin-tool:hover { border-color: var(--accent); }
.admin-tool .icon { flex: none; width: 1.4em; height: 1.4em; padding-right: 0;
color: var(--accent); position: static; }
.admin-tool span { display: block; }
.admin-tool small { display: block; font-size: 0.82rem; line-height: 1.35; }
.admin-pages { grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.admin-pages .admin-tool { padding: 0.85rem 1rem; }
.settings-subnav { gap: 0.4rem 1rem; margin: 0.4rem 0 1.2rem; font-size: 0.9rem; }
.settings-subnav a, .settings-subnav .current {
display: inline-flex; align-items: center; gap: 0.3rem;
}
.settings-subnav .current { color: var(--accent); font-weight: 600; }
.settings-subnav .icon { width: 1.05em; height: 1.05em; padding-right: 0; }
.wayback-coverage { font-size: 1.15rem; margin-bottom: 0.2rem; }
.wayback-actions { display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; align-items: center;
margin: 1.2rem 0; padding: 0.9rem 1rem; border: 1px solid var(--border);
border-radius: 6px; background: var(--accent-bg); }
.wayback-actions label { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; }
.wayback-actions select { width: auto; margin: 0; }
.wayback-filter { gap: 0.5rem 1.2rem; margin: 1.2rem 0 0.4rem; }
.wayback-table { width: 100%; border-collapse: collapse; }
.wayback-table th, .wayback-table td { text-align: left; padding: 0.4rem 0.6rem 0.4rem 0;
border-bottom: 1px solid var(--border); vertical-align: top; font-size: 0.92rem; }
.wayback-why { font-size: 0.82rem; }
.wayback-why, .wayback-table tr.wayback-error td:nth-child(2) { color: #c1272d; }
@media (prefers-color-scheme: dark) {
.wayback-why, .wayback-table tr.wayback-error td:nth-child(2) { color: #ff9a92; }
}
.wayback-notpost { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em;
border: 1px solid var(--border); border-radius: 0.6rem; padding: 0 0.4rem; margin-left: 0.3rem; }
.wayback-probe { border: 1px solid var(--border); border-radius: 0.4rem;
padding: 0.8rem 1rem; margin: 1rem 0; }
.wayback-probe-list { list-style: none; margin: 0 0 0.6rem; padding: 0; }
.wayback-probe-list li { margin: 0 0 0.3rem; font-size: 0.92rem; }
.wayback-probe-list li::before { margin-right: 0.4rem; }
.wayback-probe-list li.probe-ok::before { content: "\2713"; color: #1a7f37; }
.wayback-probe-list li.probe-bad::before { content: "\2717"; color: #c1272d; }
.wayback-probe p { margin: 0; }
@media (prefers-color-scheme: dark) {
.wayback-probe-list li.probe-ok::before { color: #7ee2a8; }
.wayback-probe-list li.probe-bad::before { color: #ff9a92; }
}
.ceim-link { font-size: 0.8rem; font-weight: normal; margin-left: 0.6rem;
white-space: nowrap; }
.health-table { width: 100%; border-collapse: collapse; margin: 0.6rem 0 1.8rem; }
.health-table th, .health-table td { border: 0; border-bottom: 1px solid var(--border);
padding: 0.45rem 0.6rem 0.45rem 0; vertical-align: baseline; font-size: 0.92rem;
background: none; text-align: left; }
.health-table th { font-weight: 600; white-space: nowrap; }
.health-mark { width: 1.4rem; text-align: center; opacity: 0.55; }
.health-value { white-space: nowrap; }
.health-value code { font-size: 0.86rem; }
.health-note { font-size: 0.84rem; width: 55%; }
.health-bad .health-mark, .health-bad th { color: #c1272d; opacity: 1; }
.health-warn .health-mark { color: #b26a00; opacity: 1; }
.health-ok .health-mark { color: #2e7d32; opacity: 1; }
@media (prefers-color-scheme: dark) {
.health-bad .health-mark, .health-bad th { color: #ff9a92; }
.health-warn .health-mark { color: #e8b04b; }
.health-ok .health-mark { color: #8bc98f; }
}
@media (max-width: 40rem) {
.health-table, .health-table tbody, .health-table tr, .health-table th, .health-table td { display: block; }
.health-table tr { border-bottom: 1px solid var(--border); padding: 0.5rem 0; }
.health-table th, .health-table td { border: 0; padding: 0; }
.health-mark { display: inline-block; width: auto; padding-right: 0.4rem; }
.health-table th { display: inline-block; white-space: normal; }
.health-note { width: auto; }
}
.media-detail { margin: 1rem 0 2rem; }
.media-detail figcaption { display: flex; flex-direction: column; gap: 0.4rem;
margin-top: 0.6rem; font-size: 0.9rem; }
.media-detail figcaption input { width: 100%; box-sizing: border-box;
font-family: var(--mono, ui-monospace, monospace); font-size: 0.85rem; }
.md-snippet { margin: 0.6rem 0 1.6rem; }
.md-snippet label { display: block; margin-bottom: 0.3rem; font-weight: 600; }
.md-snippet > input { width: 100%; box-sizing: border-box; }
.copy-md { display: flex; gap: 0.6rem; margin-top: 0.8rem; }
.copy-md input { flex: 1 1 auto; min-width: 0;
font-family: var(--mono, ui-monospace, monospace); font-size: 0.85rem; }
.copy-md button { flex: 0 0 auto; }
.rich-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem;
position: sticky; top: 0; z-index: 5;
margin: 0 0 var(--editor-gap, 0.4rem); padding: 0.35rem 0.45rem;
border: 1px solid var(--border);
border-radius: 6px; background: var(--accent-bg); }
.rich-toolbar button { min-width: 2rem; padding: 0.25rem 0.45rem; font-size: 0.9rem;
line-height: 1.2; background: transparent; color: inherit; border: 1px solid transparent;
border-radius: 4px; cursor: pointer; }
.rich-toolbar button:hover, .rich-toolbar button:focus-visible {
background: var(--bg); border-color: var(--border); }
.rich-toolbar .tb-sep { width: 1px; align-self: stretch; margin: 0.1rem 0.35rem;
background: var(--border); }
.probe-buttons { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.probe-out { white-space: pre-wrap; word-break: break-word; font-size: 0.8rem;
max-height: 26rem; overflow: auto; background: var(--accent-bg);
border: 1px solid var(--border); border-radius: 5px; padding: 0.8rem; }
.archived { font-size: 0.85rem; }
.archived span { opacity: 0.8; }
.admin-add a { margin-right: 0.9rem; white-space: nowrap; }
.admin-nav .icon { width: 1.05em; height: 1.05em; padding-right: 0.25rem; }
.nav-count {
display: inline-block; min-width: 1.3em; padding: 0 0.3em; margin-left: 0.15rem;
background: var(--accent); color: var(--bg); border-radius: 999px;
font-size: 0.72em; line-height: 1.5; text-align: center; font-family: var(--font-code);
}
header.site .tagline { margin: 0 0 0.5rem; }
.h-card { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 1.25rem; }
.profile-img { max-width: 8rem; margin: 0 0 0.5rem; flex: none;
border: 2px solid var(--accent); border-radius: 6px; }
.card-text { text-align: left; flex: 1 1 16rem; min-width: 0; }
.card-text .p-name { font-family: var(--font-title); font-size: 1.4em; text-decoration: none; }
.card-text .p-note p { margin: 0.4rem 0; }
.card-name-row { display: flex; flex-wrap: wrap; align-items: baseline;
gap: 0.4rem 1rem; margin-bottom: 0.4rem; }
.card-name-row .social { margin: 0; }
.social { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0.6rem 0 0; }
.social a { display: inline-flex; }
.social .icon { width: 1.5em; height: 1.5em; padding-right: 0; color: var(--accent); }
footer { padding-bottom: 2.5rem; }
footer .h-card {
text-align: left; margin: 2.5rem auto; max-width: 40rem;
background: var(--accent-bg); border: 1px solid var(--border);
border-radius: 8px; padding: 1.5rem;
}
footer .h-card .profile-img { max-width: 6.5rem; }
.footer-links { margin: 2rem 0 1.5rem; }
.footer-extra { margin: 1.5rem 0; }
.footer-extra img { display: inline-block; margin: 0.2rem; vertical-align: middle;
border-radius: 0; max-width: 88px; }
.footer-colophon, .footer-licence { margin: 1.2rem 0; }
.footer-colophon .icon, .footer-licence .icon { vertical-align: -0.2em; padding-right: 0; }
.home-intro { margin-bottom: 2.5rem; }
.home-intro > :first-child { margin-top: 0; }
.home-intro img { border-radius: 5px; }
.header-img {
float: right; width: 300px; max-width: 45%;
margin: 0.3rem 0 1rem 1.25rem;
border: 3px solid var(--accent); border-radius: 5px;
}
.home-intro::after { content: ""; display: block; clear: both; }
@media (max-width: 620px) {
.header-img { float: none; width: 100%; max-width: 100%; margin: 1rem 0; }
}
.home-jump { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.5rem;
margin: 2rem 0; font-size: 0.95rem; }
.home-jump a { display: inline-flex; align-items: center; gap: 0.3rem; text-decoration: none; }
.home-jump a:hover { text-decoration: underline; }
.home-jump .icon { width: 1.15em; height: 1.15em; padding-right: 0; }
.home-section { margin: 0 0 3rem; }
.home-section > h2 { margin-top: 2.5rem; }
.home-section:first-of-type > h2 { margin-top: 1.5rem; }
.home-viewall { margin: 1rem 0 0; font-size: 0.95rem; }
img { max-width: 100%; height: auto; }
figure { margin: 0; }
main img, main video { max-width: 100%; border-radius: 5px; margin: 1.5rem auto; display: block; }
figcaption, img + em {
display: block; font-family: var(--font-main); font-style: normal;
text-align: center; font-size: 0.7em; margin-top: -1rem;
}
.video-embed { position: relative; width: 100%; padding-top: 56.25%; margin: 1.5rem 0; }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
border-radius: 5px; }
.video-play { position: absolute; inset: 0; width: 100%; height: 100%;
display: flex; flex-direction: column; align-items: center; justify-content: center;
gap: 0.5rem; background: var(--accent-bg); color: var(--text);
border: 1px solid var(--border); border-radius: 5px; cursor: pointer;
font-family: inherit; font-size: 1rem; padding: 1rem; }
.video-play:hover { background: var(--accent-bg); border-color: var(--accent); color: var(--accent); }
.video-play-icon { font-size: 2.5rem; line-height: 1; color: var(--accent); }
.video-play-label { display: flex; flex-direction: column; gap: 0.2rem; text-align: center; }
.video-play-label small { opacity: 0.7; font-size: 0.8em; }
.video-fallback { position: absolute; inset: 0; display: flex; align-items: center;
justify-content: center; border: 1px solid var(--border); border-radius: 5px; }
pre {
background: var(--accent-bg); border: 1px solid var(--border); border-radius: 5px;
margin: 2rem 0; padding: 1rem; overflow-x: auto;
font-family: var(--font-code); white-space: pre-wrap; word-break: break-word;
}
pre code { border: none; padding: 0; background: none; }
.tok-com { color: var(--tok-com); font-style: italic; }
.tok-str { color: var(--tok-str); }
.tok-kw { color: var(--tok-kw); }
.tok-num { color: var(--tok-num); }
.tok-fn { color: var(--tok-fn); }
.tok-tag { color: var(--tok-tag); }
.tok-att { color: var(--tok-att); }
.tok-var { color: var(--tok-var); }
.tok-op { color: inherit; }
pre.hl { position: relative; }
pre.hl::after {
content: attr(data-lang); position: absolute; top: 0.35rem; right: 0.6rem;
font-size: 0.7rem; letter-spacing: 0.05em; text-transform: uppercase;
color: var(--muted); pointer-events: none; user-select: none;
}
@media (max-width: 480px) { pre.hl::after { display: none; } }
code {
border: 1px solid var(--border); border-radius: 5px; background: var(--accent-bg);
padding: 0.1rem 0.25rem; font-size: 1rem; font-family: var(--font-code);
}
h2 code, h3 code { font-size: 90%; }
kbd {
font-size: 1rem; background: var(--accent-bg); border: 1px solid var(--text);
border-bottom: 3px solid var(--text); border-radius: 5px; padding: 0.25rem;
}
blockquote {
border-left: 3px solid var(--accent); padding-left: 1rem;
margin: 2.5rem 0 2.5rem 2.5rem; font-style: italic;
}
blockquote p { opacity: 0.8; }
table { border-collapse: collapse; margin: 1.5rem 0; }
td, th { border: 1px solid var(--border); text-align: start; padding: 0.5rem; }
th { background: var(--accent-bg); font-weight: bold; }
tbody tr:nth-child(even) { background: var(--accent-bg); }
details {
padding: 0.7rem 1rem; margin: 2rem 0; background: var(--accent-bg);
border: 1px solid var(--border); border-radius: 5px;
}
summary { cursor: pointer; font-weight: bold; padding: 0.7rem 1rem; margin: -0.7rem -1rem; }
details[open] > summary { margin-bottom: 0.5rem; }
details[open] > summary + * { margin-top: 0; }
details[open] > :last-child { margin-bottom: 0; }
article { margin-bottom: 2rem; }
article + article { border-top: 1px solid var(--border); margin-top: 1.5rem; padding-top: 1.5rem; }
p.post-date { margin: -1.5rem 0 2rem; font-size: 1rem; }
.wikilink-missing { border-bottom: 1px dashed var(--muted); color: var(--muted); }
.backlinks { border-top: 1px solid var(--border); margin-top: 2rem; padding-top: 1rem; }
.tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.note-card-footer .tags, .list-row .tags { display: inline-flex; vertical-align: baseline; }
.footnotes {
font-size: 1rem; font-style: italic; margin-top: 2.5rem;
border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
}
.footnotes hr { display: none; }
.post-nav {
display: flex; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
margin: 3rem auto; padding: 0;
}
.post-nav div { flex: 1 1 0; }
.post-nav p { padding: 1rem 0; }
.post-nav a { font-weight: bold; }
.post-nav-next { text-align: right; }
@media (max-width: 800px) { .post-nav { display: block; } }
.insert { margin: 2.5rem 0; }
.log-cards { list-style: none; padding: 0; margin: 0 0 1.5em; }
.log-card { margin: 0; padding: 0; border-bottom: 1px solid var(--border); }
.log-card:last-child { border-bottom: none; }
.log-card-link { display: flex; align-items: baseline; gap: 0.75em;
padding: 0.5em 0.25em; text-decoration: none; color: inherit;
transition: background 0.12s; }
.log-card-link:hover { background: var(--accent-bg); }
.log-card time { flex: 0 0 auto; font-variant-numeric: tabular-nums;
color: var(--muted); font-size: 0.85em; min-width: 2.5em; text-align: right; }
.log-card-title { flex: 1 1 auto; min-width: 0; overflow: hidden;
text-overflow: ellipsis; white-space: nowrap; }
.log-card-icons { flex: 0 0 auto; font-size: 0.8em; letter-spacing: 0.05em;
user-select: none; opacity: 0.6; }
.log-card-plain .log-card-title { color: var(--muted); }
@media (max-width: 600px) {
.log-card-title { white-space: normal; }
}
:root { --archive-date-col: 7rem; }
.archive-list { display: grid; grid-template-columns: var(--archive-date-col) 1fr;
gap: 0.5rem 1.5rem; align-items: baseline; margin: 1.5rem 0; }
.archive-list .archive-row { margin: 0; border: 0; padding: 0; }
.archive-list time { font-variant-numeric: tabular-nums; white-space: nowrap; }
.archive-row-title { min-width: 0; overflow-wrap: break-word; }
@media (max-width: 600px) {
.archive-list { grid-template-columns: 1fr; gap: 0; }
.archive-list .archive-row { margin-top: 1rem; }
.archive-row-title { margin-bottom: 0.25rem; display: block; }
}
.archive-month { font-size: var(--size-h5); text-transform: uppercase; letter-spacing: 0.05em;
border-bottom: 1px solid var(--border); padding-bottom: 0.3rem; margin: 2.5rem 0 0.5rem; }
.notes-feed { display: flex; flex-direction: column; gap: 1.25rem; max-width: 100%; }
.note-card {
background: var(--accent-bg); border: 1px solid var(--border);
border-radius: 6px; padding: 1rem 1.25rem 0.75rem;
}
.note-card + .note-card { margin-top: 0; border-top: 1px solid var(--border); padding-top: 1rem; }
.note-card-body p:first-child { margin-top: 0; }
.note-card-body p:last-child { margin-bottom: 0.5rem; }
.note-card-body img { max-width: 75%; }
.note-card-footer {
border-top: 1px solid var(--border); padding-top: 0.5rem; margin-top: 0.75rem;
font-size: 0.85em; opacity: 0.7;
}
.excerpt-view, .tag-item { margin-bottom: 4rem; }
.excerpt-view h2, .tag-item h2 { font-size: var(--size-h4); margin: 0 0 -1rem; }
.excerpt-view p, .tag-item p { font-size: 1rem; }
.full-post-view { margin-bottom: 4rem; }
.full-post-view hr { margin-top: 4rem; max-width: 70%; }
label { display: block; }
input, textarea, select {
font: inherit; color: var(--text); background: var(--bg);
border: 1px solid var(--border); border-radius: 5px;
padding: 0.5em; margin-bottom: 0.5rem; max-width: 100%; display: inline-block;
}
textarea:not([cols]) { width: 100%; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--accent); width: min-content; }
input[type="color"] { height: 2.5rem; padding: 0.2rem; }
input[type="file"] { border: 0; }
@media (max-width: 720px) { textarea, select, input { width: 100%; } }
form.stack label { display: block; margin-top: 1rem; }
form.stack input, form.stack textarea, form.stack select { width: 100%; box-sizing: border-box; }
button, a.button {
cursor: pointer; background: var(--accent); color: var(--bg); border: none;
width: auto; border-radius: 5px; padding: 0.5rem 0.75rem;
font-family: inherit; font-size: inherit; text-decoration: none;
}
button:hover, a.button:hover { background: var(--text); }
button.secondary { background: none; color: var(--accent); border: 1px solid currentColor; }
button.secondary:hover { background: var(--accent); color: var(--bg); }
button.danger { background: none; color: #c0392b; border: 1px solid currentColor; }
button.danger:hover { background: #c0392b; color: var(--bg); }
button[disabled], input:disabled, textarea:disabled, select:disabled {
cursor: not-allowed; opacity: 0.5;
}
button[disabled]:hover { background: var(--accent); }
.notice { background: rgba(200, 60, 60, 0.12); border: 1px solid #c66; padding: 0.5rem 1rem; border-radius: 4px; }
.icon {
position: relative; top: 0.1em; display: inline-block; width: 1em; height: 1em;
padding-right: 0.25rem; stroke-width: 0; stroke: currentColor; fill: currentColor;
}
.saved-notice { background: rgba(60, 160, 60, 0.12); border: 1px solid #6a6; padding: 0.5rem 1rem; border-radius: 4px; }
.admin-nav { border-bottom: 1px solid var(--border); padding-bottom: 0.6rem; }
.admin-nav .current, p .current { font-weight: 700; }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-scroll .admin-table { min-width: 640px; }
.kind-new { margin: 1.2rem 0 1.6rem; }
.posse-dismissed { list-style: none; padding: 0; margin: 0.6rem 0 1.4rem; display: grid; gap: 0.4rem; }
.posse-dismissed li { display: flex; align-items: center; gap: 0.7rem; flex-wrap: wrap; }
.posse-dismissed form { margin: 0; }
.posse-dismissed button { font-size: 0.85rem; padding: 0.25rem 0.6rem; }
.dash-status { list-style: none; padding: 0; margin: 1rem 0 1.4rem; display: grid; gap: 0.45rem; }
.dash-status li { display: flex; align-items: baseline; gap: 0.15rem; }
.dash-status .icon { width: 1.05em; height: 1.05em; padding-right: 0.3rem; flex: none; align-self: center; }
.dash-status a.lint-warn { margin: 0; }
.dash-panels { display: flex; flex-wrap: wrap; gap: 1.1rem; margin: 1.6rem 0 1rem;
align-items: flex-start; }
.dash-col { flex: 1 1 22rem; min-width: 0; display: grid; gap: 1.1rem;
align-content: start; }
.dash-panel { border: 1px solid var(--border); border-radius: 8px;
padding: 0.85rem 1rem 0.7rem; }
.dash-panel--wide { margin: 0 0 1.1rem; }
.dash-panel > h2 { font-size: 0.95rem; margin: 0 0 0.6rem; display: flex; align-items: center;
gap: 0.35rem; letter-spacing: 0.01em; }
.dash-panel > h2 .icon { width: 1em; height: 1em; opacity: 0.75; }
.dash-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.dash-list > li { min-width: 0; }
.dash-row { display: flex; align-items: baseline; gap: 0.4rem; text-decoration: none;
color: inherit; padding: 0.15rem 0.2rem; margin: -0.15rem -0.2rem; border-radius: 5px; }
.dash-row:hover { background: var(--surface-2, rgba(127, 127, 127, 0.09)); }
.dash-row .icon { width: 0.95em; height: 0.95em; flex: none; opacity: 0.6; align-self: center; }
.dash-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis;
white-space: nowrap; }
.dash-row:hover .dash-title { text-decoration: underline; }
.dash-when, .dash-progress, .dash-count, .dash-state { flex: none; font-size: 0.8rem;
color: var(--muted); font-variant-numeric: tabular-nums; }
.dash-progress, .dash-count { border: 1px solid var(--border); border-radius: 999px;
padding: 0 0.4rem; }
.dash-state { text-transform: lowercase; }
.dash-state--waiting { opacity: 0.6; font-style: italic; }
.dash-kinds { flex: none; display: flex; align-items: center; gap: 0.45rem; }
.dash-kind { font-size: 0.78rem; color: var(--muted); font-variant-numeric: tabular-nums;
white-space: nowrap; }
.dash-glyph { margin-left: 0.15rem; opacity: 0.8; }
.dash-flags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0.15rem 0 0 1.55em; }
.dash-flag { font-size: 0.74rem; line-height: 1.5; border-radius: 999px; padding: 0 0.45rem;
text-decoration: none; border: 1px solid transparent; }
.dash-flag--note { background: rgba(127, 127, 127, 0.14); color: var(--muted); }
.dash-flag--wait { background: rgba(212, 148, 30, 0.16); border-color: rgba(212, 148, 30, 0.35); }
.dash-flag--warn { background: rgba(200, 60, 40, 0.13); border-color: rgba(200, 60, 40, 0.35); }
.dash-flag:hover { text-decoration: underline; }
.dash-list--said > li { padding-bottom: 0.35rem; border-bottom: 1px solid var(--border); }
.dash-list--said > li:last-child { border-bottom: 0; padding-bottom: 0; }
.dash-who { flex: 1 1 auto; min-width: 0; font-weight: 600; overflow: hidden;
text-overflow: ellipsis; white-space: nowrap; }
.dash-said-body { margin: 0.1rem 0 0 0.2rem; font-size: 0.86rem; }
.dash-said-on { margin: 0.05rem 0 0 0.2rem; font-size: 0.78rem; }
.dash-empty { margin: 0.2rem 0 0; font-size: 0.88rem; }
.dash-note { margin: 0.6rem 0 0; font-size: 0.76rem; line-height: 1.45; }
.dash-more { margin: 0.7rem 0 0; font-size: 0.82rem; }
.dash-footer { margin-top: 1.4rem; }
@media (max-width: 30rem) {
.dash-panel { padding: 0.7rem 0.75rem 0.6rem; }
.dash-flags { margin-left: 0; }
}
.new-head { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.07em;
font-weight: 600; opacity: 0.6; margin: 0 0 0.5rem; }
.kind-tiles { display: grid; gap: 0.4rem; max-width: 46rem;
grid-template-columns: repeat(auto-fill, minmax(3.9rem, 1fr)); }
@media (min-width: 601px) {
.kind-tiles { max-width: none;
grid-template-columns: repeat(auto-fill, minmax(5.4rem, 1fr)); }
.kind-tile { gap: 0.34rem; border-radius: 10px; }
.kind-tile .icon { width: 1.5rem; height: 1.5rem; }
.kt-label { font-size: 0.72rem; }
}
.kind-tile { display: flex; flex-direction: column; align-items: center;
justify-content: center; gap: 0.28rem; aspect-ratio: 1; padding: 0.3rem 0.15rem;
border-radius: 9px; border: 1px solid transparent; text-decoration: none;
color: var(--text); position: relative; }
.kind-tile .icon { width: 1.35rem; height: 1.35rem; }
.kt-label { font-size: 0.66rem; line-height: 1.15; text-align: center;
overflow-wrap: anywhere; }
.kb-write { background: rgba(66, 133, 244, 0.13); border-color: rgba(66, 133, 244, 0.25); }
.kb-write:hover { background: rgba(66, 133, 244, 0.24); }
.kb-track { background: rgba(46, 160, 67, 0.13); border-color: rgba(46, 160, 67, 0.25); }
.kb-track:hover { background: rgba(46, 160, 67, 0.24); }
.kb-sort { background: rgba(212, 148, 30, 0.16); border-color: rgba(212, 148, 30, 0.3); }
.kb-sort:hover { background: rgba(212, 148, 30, 0.28); }
.kb-mark { position: absolute; top: 0.18rem; right: 0.3rem;
font-size: 0.62rem; line-height: 1; opacity: 0.55; }
.kb-ongoing { border-color: rgba(23, 130, 130, 0.4); }
.hub-intro { margin-bottom: 1.2rem; }
.hub-search { margin: 0 0 1.6rem; }
.hub-group { margin: 0 0 1.6rem; }
.hub-group > h2 { margin-bottom: 0.1rem; }
.hub-blurb { margin: 0 0 0.6rem; font-size: 0.9rem; }
.hub-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1px;
background: var(--border); border: 1px solid var(--border); border-radius: 6px; overflow: hidden; }
.hub-row { display: flex; align-items: center; justify-content: space-between;
gap: 0.8rem; padding: 0.5rem 0.75rem; background: var(--bg); }
.hub-row:hover { background: var(--accent-bg); }
.hub-kind { display: inline-flex; align-items: center; gap: 0.45rem; text-decoration: none; }
.hub-kind:hover span { text-decoration: underline; }
.hub-kind .icon, .hub-title .icon { width: 1.05em; height: 1.05em; flex: none; }
.hub-title { display: flex; align-items: center; gap: 0.5rem; }
.hub-count { font-size: 0.88rem; white-space: nowrap; }
.hub-write .hub-list { border-left: 3px solid rgba(66, 133, 244, 0.5); }
.hub-ongoing .hub-list { border-left: 3px solid rgba(23, 130, 130, 0.55); }
.hub-track .hub-list { border-left: 3px solid rgba(46, 160, 67, 0.5); }
.hub-sort .hub-list { border-left: 3px solid rgba(212, 148, 30, 0.6); }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th, .admin-table td { text-align: left; padding: 0.35rem 0.5rem; border-bottom: 1px solid var(--border); }
.admin-table tr.current > * { background: var(--accent-bg); }
.inline-form { display: inline; margin: 0; }
.linklike { background: none; border: 0; padding: 0; font: inherit; color: inherit;
text-decoration: underline; cursor: pointer; }
.weighin-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 0.6rem 1rem; }
.weighin-form label { margin: 0; }
.weighin-form > p { grid-column: 1 / -1; margin: 0.2rem 0 0; }
.admin-search { display: flex; flex-wrap: wrap; align-items: end; gap: 0.6rem; margin: 0.8rem 0; }
.admin-search label { flex: 1 1 16rem; max-width: 34rem; margin: 0; }
.admin-count { margin: 0.5rem 0; }
.admin-filter-row > td { padding: 0.3rem 0.5rem 0.6rem; vertical-align: top;
border-bottom: 2px solid var(--border); }
.admin-filter-row select {
width: 100%; max-width: 100%; min-width: 0; font-size: 0.85rem;
padding: 0.25rem 0.3rem; margin: 0;
}
.admin-filter-row td.filter-when { vertical-align: top; }
.admin-filter-row .filter-when-pair { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.admin-filter-row .filter-when-pair select { flex: 1 1 5.5rem; }
.admin-filter-row select:disabled { opacity: 0.5; }
.admin-slug { display: block; font-family: var(--font-code); font-size: 0.8rem; }
.editor-wrap { position: relative; display: block; }
.editor-wrap .editor-backdrop,
form.stack .editor-wrap textarea {
font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
font-size: 0.95rem; line-height: 1.5; tab-size: 4; letter-spacing: normal;
margin: 0; border: 1px solid var(--border); border-radius: 4px;
padding: 0.6rem; box-sizing: border-box; width: 100%;
white-space: pre-wrap; word-wrap: break-word; overflow-wrap: anywhere;
}
.editor-wrap .editor-backdrop {
position: absolute; inset: 0; overflow: hidden; pointer-events: none;
background: var(--bg); color: var(--text); border-color: transparent;
margin: 0;
}
form.stack .editor-wrap textarea {
position: relative; background: transparent; color: transparent;
caret-color: var(--text); resize: vertical; min-height: 22rem; display: block;
}
form.stack .editor-wrap textarea[hidden],
.editor-wrap .editor-backdrop[hidden] { display: none; }
form.stack .editor-wrap textarea::selection { background: var(--accent); color: var(--bg); }
.editor-visual {
font-family: var(--font-main); font-size: var(--font-size); line-height: 1.6;
margin: 0; border: 1px solid var(--border);
border-radius: 4px;
padding: 0.6rem; box-sizing: border-box; width: 100%;
min-height: 22rem; background: var(--bg); color: var(--text);
overflow-wrap: anywhere; resize: vertical; overflow: auto;
}
.editor-visual:focus, form.stack .editor-wrap textarea:focus {
outline: none; border-color: var(--accent);
}
.editor-visual > :first-child { margin-top: 0; }
.editor-visual img {
max-width: 100%; max-height: 14rem; width: auto; height: auto;
margin: 0.6rem 0; border-radius: 4px;
}
.editor-visual pre { background: var(--accent-bg); padding: 0.5rem 0.7rem; border-radius: 4px; overflow-x: auto; }
.editor-visual blockquote { border-left: 3px solid var(--border); margin: 0.8rem 0; padding-left: 0.8rem; }
.editor-visual .wikilink-missing { color: var(--muted); border-bottom: 1px dashed var(--muted); }
.editor-modes { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.6rem; margin: 0.4rem 0 0; }
.editor-modes .muted { font-size: 0.88rem; }
.hl-mark { color: var(--muted); }
.hl-h { font-weight: 700; }
.hl-bold { font-weight: 700; }
.hl-em { font-style: italic; }
.hl-del { text-decoration: line-through; }
.hl-code { color: var(--accent); }
.hl-link { color: var(--accent); }
.hl-wikilink { color: var(--accent); font-weight: 600; }
.hl-quote { color: var(--muted); }
.ac-popup { background: var(--bg); border: 1px solid var(--border); border-radius: 6px;
box-shadow: 0 4px 14px rgba(0,0,0,0.18); z-index: 50; min-width: 12rem; max-width: 20rem; }
.ac-popup .ac-item { display: flex; justify-content: space-between; gap: 0.8rem; width: 100%;
border: 0; background: none; text-align: left; padding: 0.35rem 0.6rem;
color: var(--text); font: inherit; }
.ac-popup .ac-item.sel { background: var(--accent-bg); }
.ac-popup .ac-hint { color: var(--muted); font-size: 0.8em; }
.catalog-head { display: flex; gap: 1.2rem; align-items: flex-start; }
.catalog-cover { max-width: 9rem; border-radius: 4px; }
.catalog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); gap: 1.2rem; }
.catalog-card { border: 0 !important; margin: 0 !important; padding: 0 !important; }
.catalog-card img { width: 100%; border-radius: 4px; display: block; margin: 0 0 0.3rem; }
.catalog-card a { text-decoration: none; }
.catalog-grid-bare .catalog-card img,
.catalog-grid-bare .catalog-nocover {
aspect-ratio: 3 / 4; width: 100%; object-fit: cover; border-radius: 4px;
margin: 0 0 0.4rem;
}
.catalog-nocover {
display: flex; align-items: center; justify-content: center;
background: var(--accent-bg); border: 1px solid var(--border);
}
.catalog-nocover .icon { width: 2.5rem; height: 2.5rem; padding-right: 0; color: var(--muted); }
.catalog-card a { display: flex; flex-direction: column; }
.catalog-grid-bare .p-name {
display: block; font-size: 0.9rem; line-height: 1.3;
min-height: 2.6em; overflow: hidden;
display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
}
.catalog-card a:hover .p-name { text-decoration: underline; }
.shelf-widget { margin: 1.5rem 0; }
.sw-name {
display: block; font-size: 0.9rem; line-height: 1.3;
min-height: 2.6em; overflow: hidden;
display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
}
.catalog-card a:hover .sw-name { text-decoration: underline; }
.sw-line { display: block; font-size: 0.8rem; }
.shortcode-missing { color: var(--muted); border-bottom: 1px dashed var(--muted); }
.link-archived { font-size: 0.85em; color: var(--muted); white-space: nowrap; }
.link-archived::before { content: "\21A9 "; }
.link-archived:hover { color: var(--accent); }
.place-card {
margin: 1.5rem 0; border: 1px solid var(--border);
border-radius: 6px; overflow: hidden;
display: flex; flex-direction: column;
}
.place-card-figure { display: block; }
.place-card-map {
display: block; width: 100%; height: auto; max-height: 15rem;
object-fit: cover; margin: 0; border-radius: 0;
}
.place-card-body { padding: 0.7rem 0.9rem; }
.place-card-name { font-family: var(--font-title); font-size: 1.1rem; }
.place-card-line { margin: 0.2rem 0 0; font-size: 0.85rem; }
.place-card-caption { margin: 0.4rem 0 0; font-size: 0.9rem; }
.stream-page .home-section { margin-bottom: 2rem; }
.stream-page .home-section > h2 { margin-top: 2rem; margin-bottom: 0.8rem; }
.stream-page .home-section:first-of-type > h2 { margin-top: 1rem; }
.stream-page .home-viewall { margin-top: 0.8rem; }
.engagement-history .engagement { border-top: 1px solid var(--border); padding-top: 0.6rem; margin-top: 0.6rem; }
.engagement-panel { border: 1px solid var(--border); border-radius: 6px; padding: 0.6rem 1rem; margin-top: 1.5rem; }
.episode-list { list-style: none; padding-left: 0.4rem; columns: 2; }
.episode-list li { break-inside: avoid; }
.inline-forms input[type=number] { padding: 0.2rem; }
.lookup-row { display: block; width: 100%; text-align: left; border: 0; background: var(--accent-bg);
padding: 0.4rem 0.6rem; margin-top: 2px; border-radius: 4px; color: var(--text); font: inherit; cursor: pointer; }
#lookup-results { margin-top: 0.3rem; }
.lookup-line { display: flex; gap: 0.5rem; align-items: stretch; }
.lookup-line input { flex: 1; min-width: 0; }
.lookup-note { font-size: 0.85rem; margin: 0.3rem 0 0; }
.lookup-more::after { content: " →"; color: var(--muted); }
.lookup-mine { background: rgba(60, 160, 60, 0.14); }
.lookup-mine::after { content: " ↗"; color: var(--muted); }
.dupe-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin: 0.4rem 0 0; }
.dupe-override { margin: 0.6rem 0 0; }
.scorecard { display: block; width: 100%; aspect-ratio: 3 / 4; }
.scorecard text { text-anchor: middle; fill: currentColor; font-family: var(--font-title); }
.scorecard-panel { fill: var(--accent-bg); stroke: var(--border); stroke-width: 2; }
.scorecard-comp { fill: var(--muted); font-family: var(--font-main);
letter-spacing: 0.04em; text-transform: uppercase; }
.scorecard-score { fill: var(--accent); font-family: var(--font-code); }
.catalog-card-drawn .p-name {
position: absolute; width: 1px; height: 1px; overflow: hidden;
clip-path: inset(50%); white-space: nowrap;
}
.catalog-cover .scorecard { width: 9rem; }
.catalog-grid-bare .scorecard { margin: 0 0 0.4rem; }
.match-line { margin: 0.2rem 0 0.6rem; }
.match-detail { margin-top: 2rem; }
.match-teams { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
gap: 1.5rem; }
.match-team h3 { margin-bottom: 0.2rem; }
.match-team h4 { margin: 0.8rem 0 0.2rem; font-size: 1rem; color: var(--muted); }
ol.squad { list-style: none; padding-left: 0; margin: 0; }
ol.squad li { padding: 0.12rem 0; line-height: 1.35; }
.shirt { display: inline-block; min-width: 2rem; color: var(--muted);
font-family: var(--font-code); font-size: 0.85em; }
.ev { display: inline-block; vertical-align: baseline; margin-left: 0.3rem;
white-space: nowrap; }
.ev-min { font-family: var(--font-code); font-size: 0.72em; color: var(--muted);
margin-left: 0.12rem; vertical-align: 0.08em; }
.ev-yellow::before, .ev-red::before {
content: ""; display: inline-block; width: 0.5em; height: 0.72em;
border-radius: 1px; vertical-align: -0.05em;
}
.ev-yellow::before { background: #e3b505; }
.ev-red::before { background: #c1272d; }
.ball { display: inline-block; width: 0.62em; height: 0.62em; border-radius: 50%;
vertical-align: -0.02em; background: var(--text);
box-shadow: inset -0.12em -0.12em 0 rgba(255,255,255,0.35); }
.ball-og { background: #c1272d; }
.ev-try, .ev-kick { font-size: 0.85em; }
.ev-try { color: var(--accent); }
.ev-on { color: #1a7f37; font-size: 0.85em; }
.ev-off { color: var(--muted); font-size: 0.85em; }
@media (prefers-color-scheme: dark) { .ev-on { color: #7ee787; } }
.match-orphans { margin-top: 1rem; }
.lookup-sources { display: flex; flex-wrap: wrap; gap: 0.4rem 0.9rem;
margin: 0.4rem 0 0; font-size: 0.85rem; }
.lookup-sources a { white-space: nowrap; }
.visually-hidden {
position: absolute; width: 1px; height: 1px; overflow: hidden;
clip-path: inset(50%); white-space: nowrap;
}
.json-field { display: flex; gap: 0.6rem; align-items: center; margin: 0.2rem 0; }
.json-clear { font-size: 0.8rem; padding: 0.1rem 0.6rem; border-radius: 999px; }
.json-filled .muted { color: var(--accent); }
.json-filled::after { content: " — save to keep"; color: var(--muted); font-size: 0.8rem; }
.color-field { display: flex; gap: 0.5rem; align-items: center; }
.color-field input { flex: 1; }
.color-field .swatch { width: 1.6rem; height: 1.6rem; border: 1px solid var(--border); border-radius: 4px; flex: none; }
.site-avatar { width: 3rem; height: 3rem; border-radius: 50%; float: left; margin: 0.6rem 0.8rem 0.3rem 0; object-fit: cover; }
.bubbles { margin: 1.8rem 0 1.8rem; }
.bubbles-link { display: inline-flex; align-items: center; gap: 0.5rem;
text-decoration: none; color: var(--accent); }
.bubbles-link:hover .bubbles-words { text-decoration: underline; }
.bubble { position: relative; display: inline-flex; align-items: center;
justify-content: center; width: 2rem; height: 2rem; flex: none;
transition: transform 160ms ease; }
.bubble svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.bubble-n { position: relative; font-size: 0.78rem; font-weight: 600;
font-variant-numeric: tabular-nums; line-height: 1; }
.bubbles-link:hover .bubble, .bubbles-link:focus-visible .bubble {
transform: translateY(-2px); }
.bubbles-words { font-size: 0.9rem; }
@media (prefers-reduced-motion: reduce) {
.bubble { transition: none; }
.bubbles-link:hover .bubble, .bubbles-link:focus-visible .bubble { transform: none; }
}
.facepile { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1rem 0; }
.facepile .face { position: relative; display: block; width: 2.4rem; height: 2.4rem; }
.facepile .face img { display: block; width: 100%; height: 100%; margin: 0;
border-radius: 50%; object-fit: cover; }
.facepile .face-initial { display: flex; align-items: center; justify-content: center;
width: 100%; height: 100%; border-radius: 50%; background: var(--accent-bg); color: var(--text); }
.facepile .face-badge { position: absolute; right: -2px; bottom: -2px; font-size: 0.7rem;
background: var(--bg); border-radius: 50%; padding: 0 2px; }
.interactions { border-top: 1px solid var(--border); margin-top: 2rem; padding-top: 1rem; }
.comment { border-top: 1px solid var(--border); padding-top: 0.8rem; margin-top: 0.8rem; }
.comment-head { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.comment-avatar { width: 1.8rem; height: 1.8rem; border-radius: 50%; margin: 0; }
.comment-form { margin-top: 1.4rem; }
.comment-form summary { cursor: pointer; }
.comment-reply, .mod-reply {
margin-left: calc(var(--depth, 0) * 1.6rem);
border-left: 3px solid var(--accent); border-top: 0;
padding-left: 1rem; padding-top: 0.5rem;
}
.comment blockquote, .guestbook-entry blockquote, .mod-row blockquote {
border-left: 3px solid var(--accent); margin: 0.4rem 0;
padding-left: 0.9rem; font-style: italic;
}
@media (max-width: 600px) {
.comment-reply, .mod-reply { margin-left: calc(var(--depth, 0) * 0.7rem); padding-left: 0.7rem; }
}
.comment-inreplyto { margin: 0 0 0.2rem; font-size: 0.85em; }
.comment-actions { margin: 0.3rem 0 0; }
.comment-actions .reply-link { font-size: 0.85em; }
.comment:target, .guestbook-entry:target { background: var(--accent-bg); }
.guestbook-entry.comment-reply { padding-top: 0.6rem; padding-bottom: 0.6rem; }
.guestbook-who .p-name, .comment-head .p-name { font-weight: 600; text-decoration: none; }
.guestbook-who .p-name:hover, .comment-head .p-name:hover { text-decoration: underline; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hp-none { display: none !important; }
.inline-check { display: flex; gap: 0.5rem; align-items: baseline; margin: 0; }
.inline-check input { width: auto; }
.blogroll { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; }
.blogroll-entry { border: 1px solid var(--border); border-radius: 6px; padding: 0.8rem 1rem; margin: 0 !important; }
.blogroll-entry h3 { margin: 0 0 0.3rem; font-size: 1.05rem; }
.blogroll-entry p { margin: 0.3rem 0 0; }
.blogroll-host { word-break: break-all; }
.guestbook-entry { border-top: 1px solid var(--border);
padding-top: 0.9rem; padding-bottom: 0.9rem; margin-top: 0; margin-bottom: 0; }
.guestbook-who { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: baseline; margin: 0 0 0.3rem; }
.guestbook-who .p-name { font-weight: 600; }
.guestbook-intro { margin-bottom: 1.2rem; }
.mod-row { border-top: 1px solid var(--border); padding-top: 0.8rem; margin-top: 0.8rem; }
.comment { padding-bottom: 0; }
.mod-row blockquote { margin: 0.4rem 0; }
.mod-parent { margin: 0 0 0.3rem; font-size: 0.9em; }
.mod-subject { padding: 0.5rem 0.7rem; background: var(--accent-bg);
border-radius: 4px; margin-bottom: 0.8rem; }
.mod-status { border: 1px solid var(--border); border-radius: 3px;
padding: 0 0.3rem; font-size: 0.85em; }
.mod-tabs .current { font-weight: 600; }
.mod-search { display: flex; gap: 0.5rem; align-items: center; margin: 0.6rem 0; }
.mod-search input[type="search"] { flex: 1 1 22rem; }
.mod-threads { width: 100%; border-collapse: collapse; }
.mod-threads th, .mod-threads td { text-align: left; padding: 0.35rem 0.5rem 0.35rem 0;
border-bottom: 1px solid var(--border); vertical-align: top; }
.image-field { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.image-field input[type=text] { flex: 1 1 14rem; }
.image-field .image-preview { max-height: 3rem; border-radius: 4px; }
.media-filter { display: flex; gap: 0.8rem; align-items: flex-end; flex-wrap: wrap;
margin: 0 0 1rem; }
.media-filter label { display: flex; flex-direction: column; gap: 0.2rem; margin: 0; }
.media-filter label:first-child { flex: 1 1 18rem; }
.media-filter label span { font-size: 0.8rem; color: var(--muted); }
.media-filter input[type=search] { width: 100%; }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 1rem; }
.media-tile { margin: 0; }
.media-tile img { width: 100%; border-radius: 4px; display: block; margin: 0; }
.media-tile figcaption input { width: 100%; font-size: 0.75rem; padding: 0.2rem; }
.editor-form { --editor-gap: 0.4rem; }
.editor-tools { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap;
margin: var(--editor-gap, 0.4rem) 0 0; }
.editor-tools-top { margin: 0 0 var(--editor-gap, 0.4rem); }
.editor-tools .muted { font-size: 0.88rem; }
.editor-tools { --ctl-size: 2.55rem; }
button.icon-btn, label.icon-btn {
display: inline-flex; align-items: center; justify-content: center;
width: var(--ctl-size, 2.55rem); height: var(--ctl-size, 2.55rem);
flex: 0 0 auto; padding: 0; cursor: pointer;
background: none; color: var(--accent);
border: 1px solid currentColor; border-radius: 5px;
}
button.icon-btn:hover, label.icon-btn:hover { background: var(--accent); color: var(--bg); }
button.icon-btn:focus-visible, label.icon-btn:focus-within {
outline: 2px solid var(--accent); outline-offset: 2px;
}
.icon-btn .icon { width: 1.15rem; height: 1.15rem; padding-right: 0; top: 0; }
form.stack label.icon-btn { display: inline-flex; margin: 0; position: relative; }
label.icon-btn { position: relative; }
.editor-modes { display: contents; }
label.icon-btn input[type=file] {
position: absolute; width: 1px; height: 1px; overflow: hidden;
clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.post-thumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.6rem 0 0; }
.post-thumb { padding: 0; border: 1px solid var(--border); border-radius: 4px;
background: none; cursor: pointer; line-height: 0; overflow: hidden; }
.post-thumb img { width: 4.5rem; height: 4.5rem; object-fit: cover; display: block; margin: 0; }
.post-thumb:hover, .post-thumb:focus-visible { border-color: var(--accent); }
.page-head { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.page-head h1 { margin: 0; }
.page-head .icon-btn { --ctl-size: 2.55rem; }
.editor-save-fab { position: fixed; z-index: 50;
bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
right: calc(1rem + 2 * (var(--dock-size) + 0.5rem)); border: 0; }
html.focus-writing, html.focus-writing body { overflow: hidden; }
html.focus-writing body > *:not(.focus-close) { visibility: hidden; }
html.focus-writing .admin-dock,
html.focus-writing .admin-dock *,
html.focus-writing .editor-save-fab { visibility: visible; }
html.focus-writing .editor-save-fab { z-index: 90; }
html.focus-writing .admin-dock { z-index: 90; }
html.focus-writing .editor-form,
html.focus-writing .editor-form .field-body,
html.focus-writing .editor-form .field-body * { visibility: visible; }
html.focus-writing .editor-form {
position: fixed; inset: 0; z-index: 80; margin: 0;
display: flex; flex-direction: column; min-height: 0;
background: var(--bg);
--focus-gutter: max(1rem, calc((100vw - var(--measure)) / 2));
padding: calc(3.6rem + env(safe-area-inset-top, 0px)) var(--focus-gutter)
calc(5rem + env(safe-area-inset-bottom, 0px));
overflow: hidden;
height: 100dvh;
}
html.focus-writing .editor-form > *:not(.field-body):not(details):not(.rich-toolbar):not(.editor-tools) {
display: none;
}
html.focus-writing .editor-form > .rich-toolbar,
html.focus-writing .editor-form > .editor-tools { visibility: visible; }
html.focus-writing .editor-form > .rich-toolbar *,
html.focus-writing .editor-form > .editor-tools * { visibility: visible; }
html.focus-writing .editor-form > .rich-toolbar {
position: static; flex: 0 0 auto; margin: 0 0 var(--editor-gap, 0.4rem);
background: var(--bg);
}
@media (max-width: 600px) {
.rich-toolbar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.rich-toolbar::-webkit-scrollbar { display: none; }
.rich-toolbar > * { flex: 0 0 auto; }
.rich-toolbar .tb-sep { align-self: auto; height: 1.4rem; }
}
html.focus-writing .editor-form > .field-body {
flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
overflow: hidden;
}
html.focus-writing .editor-form > .field-body .editor-wrap {
flex: 1 1 auto; min-height: 0; display: flex;
}
html.focus-writing .editor-form > .editor-tools { flex: 0 0 auto; }
html.focus-writing .editor-tools .js-focus-open { display: none; }
html.focus-writing .editor-form > details {
visibility: visible; margin-top: 1rem; max-width: 100%;
}
html.focus-writing .editor-form > details * { visibility: visible; }
html.focus-writing .field-body textarea,
html.focus-writing .field-body .editor-visual:not([hidden]) {
flex: 1 1 auto; min-height: 0; height: auto; resize: none;
}
.focus-close { visibility: visible; position: fixed; z-index: 90;
top: calc(1rem + env(safe-area-inset-top, 0px)); right: 1rem;
display: flex; align-items: center; justify-content: center;
width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 0; padding: 0;
background: var(--accent); color: var(--bg); cursor: pointer; }
.focus-close .icon { width: 1.2rem; height: 1.2rem; padding-right: 0; top: 0; }
.focus-close:hover { background: var(--text); }
@media print { .editor-save-fab, .focus-close { display: none; } }
.lint-report { border-top: 1px solid var(--border); margin-top: 1rem; padding-top: 0.6rem; }
.lint-report h2 { font-size: 1rem; }
.lint-ok { color: #2e7d32; margin: 0.2rem 0; }
.lint-warn { color: #c0392b; margin: 0.2rem 0; }
@media (prefers-color-scheme: dark) { .lint-ok { color: #7fd18a; } .lint-warn { color: #ff8a75; } }
.scope { display: block; margin-top: 0.3rem; }
fieldset { border: 1px solid var(--border); border-radius: 4px; }
.route-map { width: 100%; height: auto; border-radius: 6px; display: block; }
.map-note { margin-top: 0.3rem; }
figure.place-map { margin: 1.2rem 0; }
figure.place-map img, img.place-map { width: 100%; height: auto; border-radius: 6px;
display: block; margin: 0; }
figure.place-map figcaption { margin-top: 0.4rem; font-size: 0.9em; }
.setting-note { margin: -0.4rem 0 0.8rem; }
label.toggle { display: flex; align-items: center; gap: 0.5rem; }
label.toggle input[type="checkbox"] { width: auto; }
.activity-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr));
gap: 0.8rem; margin: 1.2rem 0; }
.activity-stats div { margin: 0; }
.activity-stats dt { color: var(--muted); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.03em; }
.activity-stats dd { margin: 0; font-size: 1.15rem; font-weight: 600; }
.log-row { border-top: 1px solid var(--border); padding: 0.5rem 0; margin: 0; display: flex;
justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.log-nav .current { font-weight: 700; }
.search-result { border-top: 1px solid var(--border); padding: 0.8rem 0; margin: 0; }
.search-result h2 { margin: 0 0 0.3rem; font-size: 1.1rem; }
.search-excerpt { margin: 0 0 0.3rem; }
.search-excerpt mark { background: var(--accent-bg); color: inherit; padding: 0 0.1em; }
.site-nav a { padding: 0.15rem 0; }
.site-nav .current { font-weight: 700; }
.h-feed .u-url,
.note-card-footer .u-url,
.footer-colophon a,
.footer-extra a,
.home-viewall a {
display: inline-block;
padding-block: 0.25rem;
}
.pagination { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.15rem 0.7rem;
margin: 0.9rem 0; font-size: 0.95rem; }
.pagination a, .pagination strong, .pagination span { padding: 0.25rem 0.1rem; }
.pagination strong { font-weight: 700; }
.pagination [rel="next"] { margin-left: auto; }
.year-nav { color: var(--muted); }
@media (max-width: 600px) {
.year-nav { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch;
scrollbar-width: thin; padding-bottom: 0.2rem; }
.year-nav > * { flex: 0 0 auto; }
.year-nav {
background:
linear-gradient(to right, var(--bg) 30%, rgba(0, 0, 0, 0)) left center / 2.5rem 100% no-repeat local,
linear-gradient(to left, var(--bg) 30%, rgba(0, 0, 0, 0)) right center / 2.5rem 100% no-repeat local,
radial-gradient(farthest-side at 0 50%, var(--border), rgba(0, 0, 0, 0)) left center / 0.9rem 100% no-repeat scroll,
radial-gradient(farthest-side at 100% 50%, var(--border), rgba(0, 0, 0, 0)) right center / 0.9rem 100% no-repeat scroll;
}
}
.archive-month { font-size: 1.05rem; color: var(--muted); font-weight: 600;
text-transform: uppercase; letter-spacing: 0.04em; margin: 1.6rem 0 0.4rem;
border-bottom: 1px solid var(--border); padding-bottom: 0.25rem; }
.sparkline { width: 100%; height: auto; }
.splits summary { cursor: pointer; }
.md-help { position: relative; border: 1px solid var(--border); border-radius: 6px;
background: var(--bg); padding: 0.6rem 0.8rem; margin: 0.4rem 0 0;
box-shadow: 0 6px 18px rgba(0,0,0,0.14); }
.md-help-head { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline;
gap: 0.6rem; border-bottom: 1px solid var(--border);
padding-bottom: 0.4rem; margin-bottom: 0.4rem; }
.md-help-head button { border: 0; background: none; color: var(--muted);
font-size: 1.2rem; line-height: 1; padding: 0 0.3rem; cursor: pointer; }
.md-help ul { list-style: none; margin: 0; padding: 0;
display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 2px; }
.md-help li { margin: 0; }
.md-help .md-insert { display: flex; gap: 0.5rem; align-items: baseline; flex-wrap: wrap;
width: 100%; min-width: 0; text-align: left; border: 0; background: none; color: var(--text);
padding: 0.25rem 0.4rem; border-radius: 4px; font: inherit; cursor: pointer; }
.md-help .md-insert:hover, .md-help .md-insert:focus-visible { background: var(--accent-bg); }
.md-help .md-insert code { background: none; padding: 0; color: var(--accent);
min-width: 0; overflow-wrap: anywhere; }
#btn-md-help { padding: 0.25rem 0.6rem; font-size: 0.9rem; }
.apps-table { width: 100%; border-collapse: collapse; margin: 1rem 0; display: block; overflow-x: auto; }
.apps-table th, .apps-table td { text-align: left; padding: 0.5rem 0.6rem;
border-bottom: 1px solid var(--border); vertical-align: top; white-space: nowrap; }
.apps-table th { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }
.apps-table code { font-size: 0.85rem; white-space: normal; }
.apps-table .muted { font-size: 0.85rem; }
.apps-table form.inline { margin: 0; }
tr.token-revoked td, tr.token-expired td { color: var(--muted); }
tr.token-no.expiry td { background: var(--accent-bg); }
.bed-list { list-style: none; padding: 0; margin: 0; }
.bed-list .bed-list { margin-left: 1.4rem; padding-left: 0.9rem;
border-left: 2px solid var(--border); }
.bed-item { margin: 0.6rem 0; }
.bed-name { font-family: var(--font-title); font-size: 1.1em; text-decoration: none; }
.bed-name:hover { text-decoration: underline; }
.bed-count { margin-left: 0.4rem; font-size: 0.8em; }
.bed-description { margin: 0.1rem 0 0; font-size: 0.9em; }
.bed-items { list-style: none; padding: 0; margin: 1rem 0; }
.bed-items li { padding: 0.35rem 0; border-bottom: 1px solid var(--border); }
.bed-items li:last-child { border-bottom: none; }
.bed-intro { margin-bottom: 1.5rem; }
.bed-unfiled { margin-top: 2.5rem; }
.bed-also { margin-top: 1rem; }
.breadcrumb { margin: 0 0 0.5rem; font-size: 0.9em; }
.maturity { border: 1px solid var(--border); border-radius: 999px;
padding: 0 0.5em; font-size: 0.75em; margin-left: 0.5rem; }
.bed-admin-row { border-top: 1px solid var(--border); padding: 0.8rem 0;
margin-left: calc(var(--depth, 0) * 1.2rem); }
.bed-admin-path { margin: 0 0 0.4rem; font-size: 0.85em; }
.bed-admin-fields { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-end; }
.bed-admin-fields label { flex: 1 1 10rem; }
.bed-picker { border: 1px solid var(--border); border-radius: 5px; padding: 0.8rem 1rem; margin: 1rem 0; }
.bed-picker legend { font-weight: 600; padding: 0 0.4rem; }
.bed-pick { margin: 0.2rem 0; }
.maturity, .garden-stages a {
display: inline-flex; align-items: center; gap: 0.35rem;
font-size: 0.85rem; text-decoration: none;
border: 1px solid var(--border); border-radius: 999px;
padding: 0.15rem 0.7rem 0.15rem 0.5rem;
}
.maturity:hover, .garden-stages a:hover { border-color: var(--accent); }
.maturity .icon, .garden-stages .icon { width: 1.1em; height: 1.1em; padding-right: 0; }
.garden-maturity { margin: 0 0 1.5rem; }
.garden-stages { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 2rem; }
.garden-maturity-blurb { margin: -0.5rem 0 1.5rem; }
.garden-stage-list li { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: baseline; }
.revisions { border-top: 1px solid var(--border); margin-top: 2.5rem; padding-top: 1rem; }
.revisions h2 { font-size: var(--size-h5); text-transform: uppercase;
letter-spacing: 0.05em; margin: 0 0 0.8rem; }
.revision-trail { list-style: none; padding: 0; margin: 0;
border-left: 2px solid var(--border); }
.revision { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; align-items: baseline;
padding: 0.35rem 0 0.35rem 1rem; position: relative; font-size: 0.95rem; }
.revision::before {
content: ""; position: absolute; left: -5px; top: 0.9em;
width: 8px; height: 8px; border-radius: 50%;
background: var(--accent); border: 2px solid var(--bg);
}
.revision time { color: var(--muted); font-variant-numeric: tabular-nums;
flex: 0 0 6rem; font-size: 0.9rem; }
.revision-auto .revision-note { color: var(--muted); }
.admin-dock { position: fixed; right: 1rem; z-index: 50;
bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
display: flex; align-items: center; gap: 0.5rem; }
:root { --dock-size: 2.9rem; }
.admin-bar { position: relative; padding: 0; margin: 0;
background: none; border: 0; border-radius: 0; }
.dock-btn {
list-style: none; cursor: pointer; text-decoration: none;
display: flex; align-items: center; justify-content: center;
width: var(--dock-size); height: var(--dock-size); border-radius: 50%;
padding: 0; margin: 0; border: 0;
background: var(--accent); color: var(--bg);
}
.dock-btn:hover { background: var(--text); }
.dock-btn .icon { width: 1.3rem; height: 1.3rem; padding-right: 0; top: 0; }
.admin-bar > summary::-webkit-details-marker { display: none; }
.admin-bar[open] > summary { margin-bottom: 0; }
.admin-bar-menu {
position: absolute; right: 0; bottom: 3.4rem; min-width: 14rem;
background: var(--bg); border: 1px solid var(--accent); border-radius: 8px;
padding: 0.4rem; display: flex; flex-direction: column;
}
.admin-bar-menu a {
display: flex; align-items: center; gap: 0.5rem;
padding: 0.4rem 0.6rem; border-radius: 5px;
text-decoration: none; color: var(--text); font-size: 0.95rem;
}
.admin-bar-menu a:hover { background: var(--accent-bg); color: var(--accent); }
.admin-bar-menu .icon { width: 1.1em; height: 1.1em; padding-right: 0; flex: none; }
.admin-bar-menu hr { margin: 0.3rem 0; }
.admin-bar-count {
margin-left: auto; background: var(--accent); color: var(--bg);
border-radius: 999px; padding: 0 0.45rem; font-size: 0.8rem;
}
@media print { .admin-dock { display: none; } }
.site-nav a.nav-action { color: var(--bg); padding: 0.25rem 0.7rem; border-radius: 5px; }
.site-nav a.nav-action:hover { color: var(--bg); background: var(--text); text-decoration: none; }
.release-type { white-space: nowrap; }
.seed-panel { border: 1px dashed var(--border); border-radius: 6px;
padding: 0.6rem 0.8rem; margin: 0.6rem 0 1rem; }
.seed-panel > p { margin: 0 0 0.5rem; }
.seed-list { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.seed-row { display: inline-flex; align-items: center; gap: 0.4rem;
background: var(--accent-bg); border: 1px solid var(--border);
border-radius: 999px; padding: 0.2rem 0.3rem 0.2rem 0.7rem; font-size: 0.9rem; }
.seed-row code { font-size: 0.95em; }
.seed-plant { font-size: 0.8rem; padding: 0.1rem 0.6rem; border-radius: 999px; }
.seed-done { color: var(--muted); font-size: 0.85rem; padding-left: 0.4rem; }
.seed-error { color: var(--accent); font-size: 0.85rem; }
.fence-row { max-width: 100%; }
.fence-row code { max-width: 22rem; overflow: hidden; text-overflow: ellipsis;
white-space: nowrap; opacity: 0.8; }
.fence-row select { font-size: 0.8rem; padding: 0.1rem 0.3rem; border-radius: 999px;
max-width: 9rem; }
.activity-charts { margin: 1.25rem 0; display: grid; grid-template-columns: 1fr;
gap: 0.4rem; width: 100%; }
.activity-chart { margin: 0; width: 100%; position: relative; }
.activity-chart svg { display: block; width: 100%; height: 120px;
background: var(--accent-bg); border-radius: 5px; }
.activity-chart figcaption { position: absolute; top: 0.35rem; left: 0.6rem;
font-size: 0.75rem; color: var(--muted); pointer-events: none;
letter-spacing: 0.01em; }
.activity-chart figcaption b { color: var(--text); font-weight: 600; }
.zone-charts { margin: 1.25rem 0; display: grid; gap: 1.1rem; }
.zone-chart { margin: 0; }
.zone-chart figcaption { font-size: 0.8rem; margin-bottom: 0.3rem; color: var(--muted); }
.zone-chart figcaption b { color: var(--text); font-weight: 600; }
.zone-bar { display: flex; width: 100%; height: 2.1rem; border-radius: 4px;
overflow: hidden; }
.zone-seg { display: flex; align-items: center; justify-content: center;
min-width: 0; color: #fff; font-size: 0.78rem; font-weight: 600;
font-variant-numeric: tabular-nums; }
.zone-table { width: 100%; border-collapse: collapse; margin-top: 0.4rem;
font-size: 0.85rem; }
.zone-table td { padding: 0.15rem 0.5rem 0.15rem 0; border: 0; }
.zone-table td:nth-child(3), .zone-table td:nth-child(4) { text-align: right;
font-variant-numeric: tabular-nums; white-space: nowrap; }
.zone-key { display: inline-block; width: 0.6rem; height: 0.6rem;
border-radius: 2px; margin-right: 0.4rem; }
.zone-1 { background: #6b8fb8; }
.zone-2 { background: #5aa17a; }
.zone-3 { background: #c9a227; }
.zone-4 { background: #d2762e; }
.zone-5 { background: #c1272d; }
.reach-table td { vertical-align: top; padding-right: 0.8rem; }
.reach-table td:first-child { white-space: nowrap; }
.reach-table tr.reach-ok td:first-child::before { content: "\2713"; color: #1a7f37;
margin-right: 0.4rem; }
.reach-table tr.reach-bad td:first-child::before { content: "\2717"; color: #c1272d;
margin-right: 0.4rem; }
@media (prefers-color-scheme: dark) {
.reach-table tr.reach-ok td:first-child::before { color: #7ee2a8; }
.reach-table tr.reach-bad td:first-child::before { color: #ff9a92; }
}
.client-log td { vertical-align: top; }
.client-log-src { font-size: 0.78rem; word-break: break-all; }
.client-log-n { font-variant-numeric: tabular-nums; font-weight: 600; }
.splits { margin: 1.25rem 0; padding: 0.6rem 0.9rem; background: transparent;
border: 1px solid var(--border); }
.splits summary { cursor: pointer; padding: 0.4rem 0.9rem; margin: -0.6rem -0.9rem; }
.splits[open] > summary { margin-bottom: 0.6rem; }
.effort-tables { display: grid; gap: 0.9rem 1.75rem; width: 100%;
grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.effort-table { border-collapse: collapse; width: 100%; font-size: 0.9rem; }
.effort-table caption { text-align: left; font-weight: 600; padding-bottom: 0.3rem;
color: var(--muted); font-size: 0.8rem; text-transform: uppercase;
letter-spacing: 0.05em; }
.effort-table th, .effort-table td { text-align: left; font-weight: normal;
padding: 0.15rem 0; border: 0; }
.effort-table td { text-align: right; font-variant-numeric: tabular-nums; }
.effort-table tr + tr th, .effort-table tr + tr td { border-top: 1px solid var(--border); }
.yoy { margin: 1.5rem 0 2.5rem; }
.yoy h2 { margin-bottom: 0.2rem; }
.yoy-heads { display: grid; gap: 0.75rem 1.5rem; margin: 1rem 0;
grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
.yoy-heads .label { display: block; font-size: 0.75rem; color: var(--muted);
text-transform: uppercase; letter-spacing: 0.05em; }
.yoy-heads strong { font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.yoy-heads .yoy-unit { font-size: 0.85rem; }
.yoy-controls { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center;
margin: 0.75rem 0; font-size: 0.9rem; }
.yoy-sports { display: flex; flex-wrap: wrap; gap: 0.3rem 0.8rem; }
.yoy-sports label { display: inline-flex; align-items: center; gap: 0.25rem;
color: var(--muted); }
.yoy-chart { width: 100%; height: auto; display: block; background: var(--accent-bg);
border-radius: 5px; padding: 0.25rem 0; }
.yoy-note { font-size: 0.8rem; margin-top: 0.4rem; }
.yoy-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.yoy-fs { display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer;
border: 1px solid var(--border); border-radius: 5px; background: transparent;
color: var(--muted); font: inherit; font-size: 0.7rem; font-weight: normal;
text-transform: uppercase; letter-spacing: 0.06em; line-height: 1;
padding: 0.35rem 0.6rem; white-space: nowrap; flex: none; }
button.yoy-fs:hover { color: var(--accent); border-color: var(--accent); background: var(--accent-bg); }
.yoy-fs svg { width: 13px; height: 13px; display: block; }
.yoy-fs .icon-out, .yoy-fs .lbl-out { display: none; }
.yoy-fullscreen .yoy-fs .icon-in, .yoy-fullscreen .yoy-fs .lbl-in { display: none; }
.yoy-fullscreen .yoy-fs .icon-out { display: block; }
.yoy-fullscreen .yoy-fs .lbl-out { display: inline; }
.yoy-heads .yoy-projected strong { color: var(--muted); }
.yoy-fullscreen { position: fixed; inset: 0; z-index: 900; margin: 0;
background: var(--bg); overflow: auto; padding: 1.5rem clamp(1rem, 4vw, 3rem); }
body.yoy-fs-open { overflow: hidden; }
.yoy-fullscreen .yoy-chart { max-height: 70vh; }
.lb-zoom { cursor: zoom-in; }
.lb { position: fixed; inset: 0; z-index: 950; display: none;
align-items: center; justify-content: center;
background: rgba(10, 8, 12, 0.9); padding: 1rem; }
.lb.on { display: flex; }
body.lb-open { overflow: hidden; }
.lb figure { margin: 0; max-width: 94vw; text-align: center; }
.lb figure img { max-width: 94vw; max-height: 82vh; width: auto; height: auto;
border-radius: 4px; cursor: default; }
.lb figcaption { color: #d8d4da; margin-top: 0.6rem; font-size: 0.92rem;
max-width: 60ch; margin-left: auto; margin-right: auto; }
.lb button { position: absolute; border: 0; border-radius: 6px; cursor: pointer;
background: rgba(255, 255, 255, 0.09); color: #eee;
font-size: 1.5rem; line-height: 1; padding: 0.45rem 0.7rem; }
.lb button:hover { background: rgba(255, 255, 255, 0.22); color: #fff; }
.lb .lb-x { top: 0.9rem; right: 0.9rem; }
.lb .lb-prev { left: 0.7rem; top: 50%; transform: translateY(-50%); }
.lb .lb-next { right: 0.7rem; top: 50%; transform: translateY(-50%); }
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin: 1.5rem 0; }
.gallery a { display: block; margin: 0; }
.gallery img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover;
border-radius: 4px; margin: 0 !important; display: block; }
.gallery [hidden] { display: none !important; }
.gallery-nav { display: flex; justify-content: center; align-items: center;
gap: 0.8rem; margin: 0.6rem 0 1.5rem; }
.gallery-nav button { font-size: 1rem; line-height: 1; padding: 0.25rem 0.7rem; }
.gallery-nav .g-count { font-variant-numeric: tabular-nums; }
.danger-zone { border-color: rgba(192, 57, 43, 0.45); }
.danger-zone h2 { margin-top: 0.4rem; }
.reactions-embed button, .reactions-embed a {
display: inline-flex; align-items: center; justify-content: center;
gap: 0.35rem; text-align: center;
}
.reactions-embed button > span:empty { display: none; }
.checklist { border: 1px solid var(--border); border-radius: 6px; padding: 0.5rem 0.9rem 0.8rem;
margin: 1rem 0 0.5rem; }
.checklist legend { padding: 0 0.3rem; font-size: 0.9rem; }
.checklist .toggle { display: flex; align-items: center; gap: 0.4rem; margin: 0.15rem 0; }
.checklist { columns: 3 12rem; column-gap: 1.5rem; }
.checklist legend { column-span: all; }
@media (max-width: 560px) { .checklist { columns: 1; } }
.md-copy { position: relative; display: block; }
.md-copy .md-ready { cursor: copy; }
.md-copy.is-copied::after {
content: "Copied"; position: absolute; inset-inline-end: 0.35rem; top: 0.4rem;
background: var(--accent); color: var(--bg); border-radius: 4px;
padding: 0.1rem 0.4rem; font-size: 0.72rem; pointer-events: none;
}
