/* ========================================================================== COLOR SYSTEM — edit these to change the entire palette ========================================================================== */ :root { --color-bg: #0a0a0a; --color-text: #e8e4df; --color-text-muted: #8a8580; --color-accent: #c4a35a; /* placeholder — define later */ --color-accent-hover: #d4b76a; /* placeholder — define later */ --color-border: #2a2725; --color-surface: #141210; --color-footnote-bg: #1a1816; } /* ========================================================================== RESET & BASE ========================================================================== */ *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } html { font-size: 18px; scroll-behavior: smooth; } body { font-family: 'EB Garamond', 'Garamond', 'Georgia', serif; background-color: var(--color-bg); color: var(--color-text); line-height: 1.72; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* ========================================================================== TYPOGRAPHY ========================================================================== */ h1 { font-family: 'EB Garamond', 'Garamond', serif; font-weight: 700; font-size: 2.8rem; line-height: 1.15; margin-bottom: 0.6em; letter-spacing: -0.01em; color: var(--color-text); } h2 { font-family: 'EB Garamond', 'Garamond', serif; font-weight: 400; font-style: italic; font-size: 1.8rem; line-height: 1.3; margin-top: 1.8em; margin-bottom: 0.5em; color: var(--color-text); } h3 { font-family: 'EB Garamond', 'Garamond', serif; font-weight: 400; font-size: 1.25rem; line-height: 1.4; text-transform: uppercase; letter-spacing: 0.08em; margin-top: 1.8em; margin-bottom: 0.5em; color: var(--color-text); } h4 { font-family: 'EB Garamond', 'Garamond', serif; font-weight: 400; font-style: italic; font-size: 1.25rem; line-height: 1.4; margin-top: 1.5em; margin-bottom: 0.4em; color: var(--color-text); } p { margin-bottom: 1.2em; } a { color: var(--color-accent); text-decoration: none; transition: color 0.2s ease; } a:hover { color: var(--color-accent-hover); } blockquote { border-left: 2px solid var(--color-accent); padding-left: 1.2em; margin: 1.5em 0; font-style: italic; color: var(--color-text-muted); } ul, ol { margin-bottom: 1.2em; padding-left: 1.4em; } li { margin-bottom: 0.3em; } hr { border: none; border-top: 1px solid var(--color-border); margin: 2.5em 0; } strong { font-weight: 700; } em { font-style: italic; } code { font-size: 0.88em; background: var(--color-surface); padding: 0.15em 0.4em; border-radius: 3px; } /* ========================================================================== HEADER ========================================================================== */ .site-header { border-bottom: 1px solid var(--color-border); } .site-nav { max-width: 1200px; margin: 0 auto; padding: 1.4rem 2rem; display: flex; justify-content: space-between; align-items: baseline; } .nav-main { display: flex; gap: 2.5rem; align-items: baseline; } .nav-link { font-size: 1rem; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 400; transition: color 0.2s ease; } .nav-link:hover { color: var(--color-text); } .nav-home { font-weight: 600; color: var(--color-text); letter-spacing: 0.12em; } .nav-lang { display: flex; gap: 0.8rem; } .lang-link { font-size: 0.78rem; color: var(--color-text-muted); letter-spacing: 0.08em; text-transform: uppercase; } .lang-link:hover { color: var(--color-text); } .lang-active { color: var(--color-accent); } /* ========================================================================== FOOTER ========================================================================== */ .site-footer { border-top: 1px solid var(--color-border); margin-top: 4rem; } .footer-inner { max-width: 1200px; margin: 0 auto; padding: 2rem; font-size: 0.85rem; color: var(--color-text-muted); } /* ========================================================================== CONTENT LAYOUT — SIDENOTES (3/4 + 1/4) ========================================================================== */ .page-content { max-width: 1200px; margin: 0 auto; padding: 3rem 2rem; } .sidenote-layout .content-body { position: relative; width: 72%; } .page-date { display: block; font-size: 0.9rem; color: var(--color-text-muted); margin-bottom: 2em; font-style: italic; } /* ========================================================================== SIDENOTES — footnotes repositioned to the margin ========================================================================== */ /* The original footnote section rendered by Hugo at the bottom */ .sidenote-layout .footnotes { display: none; /* hidden once JS has promoted notes to the margin */ } /* Each sidenote placed by JS */ .sidenote { position: absolute; right: -36%; /* push into the right margin */ width: 28%; /* ~1/4 of the total page width */ font-size: 0.82rem; line-height: 1.55; color: var(--color-text-muted); padding-left: 1.2rem; border-left: 1px solid var(--color-border); } .sidenote-number { font-size: 0.72rem; font-weight: 600; color: var(--color-accent); margin-right: 0.3em; vertical-align: super; } /* Inline footnote reference numbers */ .sidenote-layout .content-body sup a, .sidenote-layout .content-body a[href^="#fn:"], .sidenote-layout .content-body sup a[href^="#fn"] { color: var(--color-accent); font-weight: 600; text-decoration: none; font-size: 0.72em; } .sidenote-layout .content-body sup a:hover, .sidenote-layout .content-body a[href^="#fn:"]:hover { color: var(--color-accent-hover); } /* Fallback: if JS has not run, show footnotes normally */ .sidenotes-fallback .footnotes { display: block; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); font-size: 0.88rem; color: var(--color-text-muted); } /* ========================================================================== INITIATIVE LIST (section page) ========================================================================== */ .initiative-list { margin-top: 2.5rem; display: flex; flex-direction: column; gap: 1.5rem; } .initiative-card { display: block; padding: 1.5rem; border: 1px solid var(--color-border); background: var(--color-surface); transition: border-color 0.25s ease, background-color 0.25s ease; text-decoration: none; } .initiative-card:hover { border-color: var(--color-accent); background: var(--color-footnote-bg); } .initiative-card h3 { margin-top: 0; margin-bottom: 0.3em; color: var(--color-text); } .initiative-subtitle { font-style: italic; color: var(--color-text-muted); margin-bottom: 0.5em; font-size: 1.05rem; } .initiative-summary { color: var(--color-text-muted); font-size: 0.95rem; } /* ========================================================================== CSV TABLES (shortcode) ========================================================================== */ .csv-table { margin: 1.5rem 0 2rem 0; padding: 1rem; border: 1px solid var(--color-border); background: var(--color-surface); --csv-max-rows: 4; --csv-row-height: 2.2rem; --csv-header-height: 2.4rem; } .csv-table__header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.8rem; } .csv-table__title { margin: 0; font-size: 1rem; letter-spacing: 0.03em; text-transform: uppercase; } .csv-table__meta { display: inline-flex; align-items: center; gap: 0.85rem; flex-wrap: wrap; } .csv-table__count { font-size: 0.84rem; color: var(--color-text-muted); } .csv-table__download { display: inline-block; font-size: 0.84rem; border: 1px solid var(--color-border); padding: 0.2rem 0.6rem; text-transform: uppercase; letter-spacing: 0.06em; } .csv-table__viewport { max-width: 100%; max-height: calc((var(--csv-row-height) * var(--csv-max-rows)) + var(--csv-header-height)); overflow: auto; border: 1px solid var(--color-border); } .csv-table__status { margin: 0; padding: 0.7rem 0.8rem; color: var(--color-text-muted); font-size: 0.92rem; } .csv-table__table { border-collapse: collapse; width: max-content; min-width: 100%; font-size: 0.86rem; } .csv-table__table th, .csv-table__table td { border: 1px solid var(--color-border); padding: 0.45rem 0.55rem; text-align: left; white-space: nowrap; vertical-align: top; } .csv-table__table thead th { position: sticky; top: 0; z-index: 1; background: var(--color-footnote-bg); } .csv-table__table tbody tr { height: var(--csv-row-height); } /* ========================================================================== RESPONSIVE ========================================================================== */ @media (max-width: 900px) { html { font-size: 17px; } .sidenote-layout .content-body { width: 100%; } /* On small screens sidenotes become inline blocks below the paragraph */ .sidenote { position: relative; right: auto; width: 100%; margin: 0.8em 0 1.2em 0; padding: 0.8em 1em; background: var(--color-footnote-bg); border-left: 2px solid var(--color-accent); border-radius: 0; } .site-nav { padding: 1rem 1.2rem; flex-direction: column; gap: 0.6rem; } .nav-main { gap: 1.5rem; } h1 { font-size: 2rem; } h2 { font-size: 1.4rem; } .csv-table { padding: 0.8rem; } .csv-table__table { font-size: 0.8rem; } } @media (max-width: 600px) { html { font-size: 16px; } .page-content { padding: 2rem 1rem; } h1 { font-size: 1.7rem; } }