/*
 * Site implementation. Appearance controls live in appearance.css.
 *
 * Base → typography → page structure → navigation → listings → homepage
 * components → prose → mathematics → project media → gallery → notes → utilities.
 * Responsive rules follow in descending width order; reduced motion and print
 * overrides come last. Keep component-specific geometry beside its selector.
 */

/* ==========================================================================
   1. Base and shared interactions
   ========================================================================== */
:root {
    color-scheme: light;
    /* Shared implementation constants; visual controls live in appearance.css. */
    --rule-width: 1px;
    --focus-width: 2px;
    --focus-offset: 5px;
    --link-underline-width: 1px;
    --link-underline-offset: 4px;
    --transition-duration: 120ms;
}
* {
    box-sizing: border-box;
}
html {
    scroll-padding-top: 24px;
    scrollbar-gutter: stable;
}
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--serif);
    font-variant-numeric: var(--serif-numerals);
    font-size: var(--body-size);
    line-height: var(--body-line-height);
    -webkit-font-smoothing: antialiased;
    text-align: left;
}
::selection {
    background: var(--highlight-background);
    color: var(--ink);
}
a {
    color: var(--link);
    text-decoration-color: var(--link-underline);
    text-decoration-thickness: var(--link-underline-width);
    text-underline-offset: var(--link-underline-offset);
    transition:
        text-decoration-color var(--transition-duration) ease,
        color var(--transition-duration) ease;
}
a:hover,
.text-button:hover {
    color: var(--link-hover);
    text-decoration-color: var(--link-underline-hover);
}
a:focus-visible,
button:focus-visible,
.equation:focus-visible,
summary:focus-visible,
.quotation:focus-visible,
.notes-search input:focus-visible {
    outline: var(--focus-width) solid var(--focus-color);
    outline-offset: var(--focus-offset);
}
.text-button {
    appearance: none;
    background: none;
    border: 0;
    border-radius: 0;
    padding: 0;
    color: var(--link);
    font: inherit;
    text-align: left;
    text-decoration: underline;
    text-decoration-color: var(--link-underline);
    text-underline-offset: var(--link-underline-offset);
    cursor: pointer;
}
/* Listing and contents links reveal their underline on hover. */
.entry h3 a,
.article-toc a,
.course-entry h3 a {
    text-decoration: none;
}
.entry h3 a:hover,
.article-toc a:hover,
.course-entry h3 a:hover {
    text-decoration: underline;
}
/* These components render semantic lists without browser list decoration. */
.sidebar ul,
.reading-list,
.resource-links {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* ==========================================================================
   2. Typography
   ========================================================================== */
.eyebrow,
.aside-heading {
    font-size: var(--small-size);
    font-style: normal;
    letter-spacing: 0.075em;
    font-variant-caps: small-caps;
    color: var(--muted);
    margin: 0 0 12px;
    font-weight: normal;
}
h1,
h2,
h3 {
    font-family: var(--heading-font);
    line-height: var(--heading-line-height);
    font-weight: var(--heading-weight);
    text-wrap: balance;
}
h1 {
    font-size: var(--heading-1-size);
    font-style: var(--heading-1-style, normal);
    letter-spacing: -0.015em;
    margin: 0 0 24px;
}
h2 {
    font-size: var(--heading-2-size);
    font-style: var(--heading-2-style, normal);
    letter-spacing: -0.005em;
    margin: 0 0 var(--entry-space);
}
h3 {
    font-size: var(--heading-3-size);
    font-style: var(--heading-3-style, normal);
    margin: 0 0 6px;
}
p {
    margin: 0 0 var(--paragraph-space);
}
p:last-child {
    margin-bottom: 0;
}
.aside-heading {
    margin-bottom: 13px;
}
.sidebar,
.sidenote {
    color: var(--muted);
    font-size: var(--aside-size);
    line-height: var(--aside-line-height);
}
pre,
code,
kbd,
samp {
    font-family: var(--mono);
    font-variant-numeric: normal;
}
code {
    font-size: var(--code-scale);
    overflow-wrap: anywhere;
}

/* ==========================================================================
   3. Page structure, headers, and sidebars
   ========================================================================== */
.page {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100svh;
    width: calc(100% - 80px);
    max-width: calc(
        var(--text-width) + var(--column-gap) + var(--sidebar-width)
    );
    margin-left: clamp(40px, 12.5vw, 210px);
    padding: 44px 0 30px;
}
main {
    flex: 1 0 auto;
    min-width: 0;
    padding-bottom: 22px;
}
.page-grid {
    display: grid;
    grid-template-columns: minmax(0, var(--text-width)) var(--sidebar-width);
    column-gap: var(--column-gap);
    align-items: start;
}
.intro {
    padding: 65px 0 42px;
}
.intro .sidebar {
    padding-top: calc(var(--heading-1-size) + 12px);
}
.sidebar p {
    margin-bottom: 15px;
}
.sidebar li {
    margin: 0 0 8px;
}
.small-rule {
    display: block;
    width: 38px;
    height: 2px;
    background: var(--ochre);
    margin: 0 0 19px;
}
.content-section {
    padding: 34px 0 36px;
    border-top: var(--rule-width) solid var(--rule);
}
.content-section .sidebar {
    padding-top: 4px;
}
.page-header {
    padding: 62px 0 40px;
}
.page-header h1 {
    font-size: var(--page-title-size);
    margin-bottom: 17px;
}
.page-header .subtitle {
    font-style: var(--page-subtitle-style, normal);
    color: var(--muted);
    font-size: var(--page-subtitle-size);
    line-height: 1.4;
}
.page-header .page-meta {
    color: var(--muted);
    font-size: var(--page-meta-size);
    font-style: var(--meta-style);
    margin-top: 20px;
}
.preface {
    margin-top: var(--paragraph-space);
    margin-bottom: var(--paragraph-space);
}
.preface > :last-child {
    margin-bottom: 0;
}
.page-header .sidebar {
    padding-top: 8px;
}
.biography > p:first-of-type {
    font-size: var(--lead-size);
    line-height: 1.5;
}

/* ==========================================================================
   4. Site navigation and footer
   ========================================================================== */
.site-header {
    border-bottom: var(--rule-width) solid var(--rule);
    padding-bottom: 15px;
}
.site-nav {
    --nav-inline-padding: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 13px;
    align-items: baseline;
    font-family: var(--nav-font);
    font-size: var(--nav-size);
    margin-left: calc(-1 * var(--nav-inline-padding));
}
.site-nav a {
    display: inline-grid;
    justify-items: start;
    color: var(--muted);
    text-decoration: none;
    font-style: var(--nav-style);
    font-weight: var(--nav-weight);
    padding: 4px var(--nav-inline-padding);
    transition: color var(--transition-duration) ease;
}
.site-nav a > span,
.site-nav a::before,
.site-nav a::after {
    grid-area: 1 / 1;
}
/* Reserve both text weights in every state, including the initially selected link. */
.site-nav a::before,
.site-nav a::after {
    content: attr(data-label);
    visibility: hidden;
    pointer-events: none;
}
.site-nav a::before {
    font-weight: var(--nav-weight);
}
.site-nav a::after {
    font-weight: var(--nav-emphasis-weight);
}
.site-nav a[aria-current="page"] {
    color: var(--nav-active-color);
    font-weight: var(--nav-emphasis-weight);
}
.site-nav a:hover,
.site-nav a:focus-visible {
    color: var(--link-hover);
    text-decoration: underline;
    text-decoration-color: currentColor;
    text-decoration-thickness: var(--link-underline-width);
    text-underline-offset: var(--link-underline-offset);
}
.site-footer {
    --footer-link-gap: 7px 22px;
    display: flex;
    align-items: baseline;
    gap: var(--footer-link-gap);
    border-top: var(--rule-width) solid var(--rule);
    margin-top: auto;
    padding-top: 22px;
    color: var(--muted);
    font-size: 15px;
}
.footer-copyright {
    order: 1;
    margin: 0 0 0 auto;
}
.site-footer a {
    color: inherit;
}
.footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--footer-link-gap);
    min-width: 0;
    max-width: 100%;
}

/* ==========================================================================
   5. Shared listing entries
   ========================================================================== */
.entry {
    margin: 0 0 var(--entry-rule-space);
    padding-bottom: var(--entry-rule-space);
    border-bottom: var(--rule-width) solid var(--rule);
}
.entry:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}
.entry p {
    margin: 0;
}
.entry .entry-meta {
    font-size: var(--meta-size);
    font-style: var(--meta-style);
    color: var(--muted);
    margin: var(--entry-detail-space) 0 0;
}
.meta-separator {
    font-weight: 700;
}
.entry-links,
.entry-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
    margin-top: var(--entry-detail-space);
}
.entry-links {
    font-size: var(--entry-link-size);
}
.entry-footer {
    align-items: baseline;
}
.entry-footer > .entry-meta,
.entry-footer > .entry-links {
    min-width: 0;
    max-width: 100%;
    margin: 0;
}
.entry-footer > .entry-meta {
    flex-grow: 1;
}
.entry-footer > .entry-links:only-child {
    margin-left: auto;
}
.entry-body {
    min-width: 0;
}
.section-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 5px 20px;
    margin-bottom: var(--entry-space);
}
.section-heading h2 {
    margin: 0;
}
.index-link {
    font-size: var(--entry-link-size);
    white-space: nowrap;
}

/* ==========================================================================
   6. Homepage quotation
   ========================================================================== */
.quote-section {
    border-top: var(--rule-width) solid var(--rule);
    padding: 29px 0 31px;
}
.quotation {
    margin: 0;
    max-width: var(--text-width);
    border-left: 2px solid var(--ochre);
    padding: 0 0 0 22px;
}
.quotation[role="button"] {
    cursor: pointer;
}
.quotation[role="button"]:hover {
    border-color: var(--link);
}
.quotation blockquote {
    margin: 0;
    font-size: var(--quote-size);
    font-style: italic;
    line-height: 1.5;
}
.quotation blockquote p {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
.quotation.is-monospace blockquote {
    font-family: var(--mono);
    font-variant-numeric: normal;
    font-size: var(--quote-mono-size);
    font-style: normal;
}
.quotation figcaption {
    color: var(--muted);
    font-size: 16px;
    margin-top: 12px;
}
.quote-untyped {
    color: transparent;
}
.quotation.is-typing.has-cursor .quote-typed::after {
    content: "";
    position: absolute;
    width: 1px;
    height: 1em;
    margin: 0.2em 0 0 0.12em;
    background: var(--ink);
    animation: quote-cursor 700ms step-end infinite;
}
@keyframes quote-cursor {
    50% {
        opacity: 0;
    }
}

/* ==========================================================================
   7. Homepage bookshelf
   ========================================================================== */
.reading-list {
    --book-title-style: italic;
    --book-title-weight: 400;
}
.reading-list li {
    margin-bottom: 6px;
    line-height: 1.45;
}
.reading-list cite {
    font-style: var(--book-title-style);
    font-weight: var(--book-title-weight);
}
.reading-list .author {
    color: var(--muted);
    font-size: 17px;
}
.reading-list--bibliography {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 34px;
}
.reading-list--bibliography li {
    min-width: 0;
    margin-bottom: 0;
}
.reading-list--bibliography cite {
    display: block;
    font-size: 18px;
}
.reading-list--bibliography .author {
    display: block;
    margin-top: 3px;
    font-style: normal;
}
.reading-list--bibliography .author-separator {
    display: none;
}

/* ==========================================================================
   8. Detail-page prose and sidenotes
   ========================================================================== */
.content-body {
    width: var(--text-width);
    max-width: 100%;
}
/* Reserve the same sidebar column as .page-grid while the text column shrinks. */
.article-content {
    width: min(
        var(--text-width),
        calc(100% - var(--column-gap) - var(--sidebar-width))
    );
}
.content-body::after {
    content: "";
    display: block;
    clear: both;
}
.prose > h2 {
    margin-top: 40px;
    clear: both;
}
.prose > h2:first-child {
    margin-top: 10px;
}
.prose > h3 {
    margin-top: 26px;
}
.prose p {
    margin-bottom: var(--paragraph-space);
}
.prose p:has(+ .equation) {
    margin-bottom: 0;
}
.sidenote {
    float: right;
    clear: right;
    width: var(--sidebar-width);
    margin-right: calc(-1 * (var(--sidebar-width) + var(--column-gap)));
    margin-top: 8px;
}
.prose .sidenote .aside-heading {
    margin: 0 0 12px;
    font-family: var(--heading-font);
    font-size: var(--small-size);
    line-height: var(--heading-line-height);
    text-wrap: balance;
}
.sidenote p {
    margin-bottom: 12px;
}
.back-link {
    margin-top: 35px;
    font-size: var(--entry-link-size);
}

/* ==========================================================================
   9. Mathematics, statements, proofs, and article contents
   ========================================================================== */
.equation {
    padding: 10px 0 10px;
    margin: 10px 0 10px 0;
    overflow-x: auto;
    max-width: 100%;
    text-align: center;
}
math {
    font-family: var(--math-font);
    font-variant-numeric: normal;
    font-size: 1.1em;
}
math[display="block"] {
    text-align: center;
    margin: 0;
}
.katex {
    font-size: var(--math-scale);
    font-variant-numeric: normal;
}
.math-punctuation {
    -webkit-user-select: none;
    user-select: none;
}
.equation .katex-display {
    margin: 0.3em 0;
    width: max-content;
    min-width: 100%;
}
.statement {
    background: var(--statement-bg, transparent);
    color: var(--statement-ink, var(--ink));
    border-left: 2px solid var(--statement-rule, var(--rule));
    border-radius: 0;
    padding: 20px 24px 8px;
    margin: 24px 0;
    font-style: var(--statement-body-style, normal);
}
.statement.lemma {
    --statement-bg: var(--lemma-bg);
    --statement-ink: var(--lemma-ink);
    --statement-rule: var(--lemma-rule);
    --statement-body-style: var(--lemma-body-style);
}
.statement.theorem {
    --statement-bg: var(--theorem-bg);
    --statement-ink: var(--theorem-ink);
    --statement-rule: var(--theorem-rule);
    --statement-body-style: var(--theorem-body-style);
}
.statement.corollary {
    --statement-bg: var(--corollary-bg);
    --statement-ink: var(--corollary-ink);
    --statement-rule: var(--corollary-rule);
    --statement-body-style: var(--corollary-body-style);
}
.statement.definition {
    --statement-bg: var(--definition-bg);
    --statement-ink: var(--definition-ink);
    --statement-rule: var(--definition-rule);
    --statement-body-style: var(--definition-body-style);
}
.statement h3 {
    font-size: 19px;
    font-style: normal;
    font-weight: 400;
    margin-bottom: 12px;
}
.proof {
    margin-bottom: 27px;
    display: flow-root;
}
.proof p:last-child {
    display: flow-root;
}
.proof .end-mark {
    float: right;
    white-space: nowrap;
    margin-left: 1em;
}
.text-symbol,
.end-mark {
    font-family: var(--mono);
    font-style: normal;
    font-weight: 400;
}
.article-toc {
    font-size: 15px;
    line-height: 1.4;
}

/* ==========================================================================
   10. Project previews and detail media
   ========================================================================== */
.project-entry {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--preview-width);
    grid-template-areas: "body preview";
    align-items: center;
    column-gap: var(--preview-gap);
    row-gap: var(--entry-detail-space);
}
.project-entry:has(> .entry-footer) {
    grid-template-areas:
        "body preview"
        "footer preview";
}
.project-entry > .entry-body {
    grid-area: body;
}
/* Keep the text and footer together when a taller preview spans both rows. */
.project-entry:has(> .entry-footer) > .entry-body {
    align-self: end;
}
.project-entry > .project-figure {
    grid-area: preview;
}
.project-entry > .entry-footer {
    grid-area: footer;
    align-self: start;
    margin-top: 0;
}
.project-figure {
    margin: 0;
}
.project-preview {
    display: block;
    background: var(--preview-background);
    border: var(--rule-width) solid var(--rule);
}
a.project-preview:hover {
    border-color: var(--preview-hover-rule);
}
.project-preview img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: contain;
}
.project-preview .preview-filtered {
    filter: var(--preview-filter);
    mix-blend-mode: multiply;
}
.project-detail .project-figure {
    width: 100%;
}
.project-detail {
    padding-bottom: 20px;
}
.project-media {
    margin-top: 30px;
}
.project-figure-large .project-preview img {
    aspect-ratio: auto;
    max-height: 720px;
}

/* ==========================================================================
   11. Gallery and image viewer
   ========================================================================== */
.gallery-intro {
    margin-bottom: 30px;
}
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 42px 36px;
    padding: 28px 0;
    border-top: var(--rule-width) solid var(--rule);
}
.gallery-item {
    margin: 0;
    min-width: 0;
}
.gallery-image {
    display: block;
    background: var(--paper);
}
.gallery-image img {
    display: block;
    width: 100%;
    height: var(--gallery-image-height);
    object-fit: contain;
    mix-blend-mode: multiply;
}
.gallery-item figcaption {
    margin-top: 20px;
}
.gallery-item h2 {
    font-size: 23px;
    margin-bottom: 12px;
}
.gallery-item p {
    font-size: 17px;
}
.gallery-dialog {
    max-width: min(92vw, 1100px);
    width: 900px;
    max-height: 92vh;
    padding: 22px;
    border: var(--rule-width) solid var(--rule);
    background: var(--paper);
    color: var(--ink);
}
.gallery-dialog::backdrop {
    background: var(--gallery-backdrop);
}
.gallery-toolbar {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 20px;
    font-size: 16px;
}
.gallery-toolbar h2 {
    font-size: 23px;
    margin: 0;
}
.gallery-full-image {
    display: block;
    width: 100%;
    max-height: 68vh;
    object-fit: contain;
    margin: var(--paragraph-space) 0;
}

/* ==========================================================================
   12. Notes search, catalog, and course resources
   ========================================================================== */
.notes-search {
    margin: 0 0 35px;
}
.notes-search label {
    display: block;
    font-size: 16px;
    margin-bottom: 8px;
}
.notes-search input {
    width: 100%;
    padding: 10px 12px;
    border: var(--rule-width) solid var(--rule);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: 18px;
}
::highlight(notes-search) {
    background-color: var(--highlight-background);
}
.search-status,
.resource-summary {
    color: var(--muted);
    font-size: var(--small-size);
    line-height: var(--aside-line-height);
}
.search-status {
    margin-top: 9px;
}
.notes-institution {
    margin-bottom: 35px;
}
.notes-institution h2 {
    font-size: 27px;
}
.notes-term {
    border-top: var(--rule-width) solid var(--rule);
    padding: 15px 0;
}
.notes-term summary {
    cursor: pointer;
    color: var(--link);
    font-size: 19px;
}
.notes-term summary span {
    float: right;
    color: var(--muted);
    font-size: var(--small-size);
}
.course-entry {
    padding: 19px 0 3px;
}
.course-entry h3 {
    font-size: 20px;
}
.resource-group {
    margin-bottom: 32px;
}
.resource-group h2 {
    font-size: 25px;
}
.resource-links li {
    margin-bottom: 13px;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 20px;
}
.resource-file {
    font-size: 14px;
    color: var(--muted);
    overflow-wrap: anywhere;
}

/* ==========================================================================
   13. Accessibility and visibility utilities
   ========================================================================== */
.skip-link {
    position: absolute;
    top: -100px;
    left: 24px;
    padding: 8px 16px;
    background: var(--sage);
}
.skip-link:focus {
    top: 16px;
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
[hidden] {
    display: none !important;
}

/* ==========================================================================
   14. Responsive layout — thresholds belong to layout implementation
   ========================================================================== */
@media (min-width: 1500px) {
    .page {
        margin-left: max(12.5vw, calc((100vw - 1080px) / 2));
    }
}

@media (max-width: 1150px) {
    .page {
        --column-gap: var(--column-gap-compact);
        --sidebar-width: var(--sidebar-width-compact);
        margin-left: 7vw;
        width: 86vw;
    }
}

@media (max-width: 820px) {
    .sidenote {
        float: none;
        width: 100%;
        margin: var(--paragraph-space) 0 var(--entry-space);
        border-left: var(--rule-width) solid var(--rule);
        padding-left: var(--paragraph-space);
        padding-top: 4px;
    }
    .gallery-grid {
        gap: 32px 25px;
    }
    .gallery-image img {
        height: var(--gallery-image-height-stacked);
    }
    .content-body {
        width: 100%;
    }
    .page {
        margin: 0 var(--page-side-stacked);
        width: calc(100% - 2 * var(--page-side-stacked));
        max-width: var(--text-width);
        padding-top: 30px;
    }
    .page-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .intro {
        padding: 44px 0 30px;
    }
    .intro .sidebar {
        padding-top: 8px;
    }
    .sidebar {
        margin-top: 16px;
        padding-top: 8px;
        padding-left: var(--paragraph-space);
        border-left: var(--rule-width) solid var(--rule);
        max-width: 490px;
    }
    .sidebar p:last-child {
        margin-bottom: 8px;
    }
    .sidebar .small-rule {
        display: none;
    }
    .aside-heading {
        margin-bottom: 8px;
    }
    .content-section {
        padding: 30px 0 36px;
    }
    .page-header .sidebar {
        padding-top: 8px;
    }
    .page-header {
        padding: 44px 0 25px;
    }
    .site-footer {
        flex-direction: column;
        align-items: flex-start;
    }
    .footer-copyright {
        order: 0;
        margin-left: 0;
    }
}

@media (max-width: 600px) {
    .reading-list--bibliography {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .gallery-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .gallery-image img {
        height: var(--gallery-image-height-mobile);
    }
    .gallery-dialog {
        padding: 16px;
    }
    .gallery-toolbar h2 {
        font-size: 20px;
    }
    .gallery-full-image {
        max-height: 60vh;
    }
}

@media (max-width: 480px) {
    body {
        font-size: var(--body-size-mobile);
    }
    .page {
        margin: 0 var(--page-side-mobile);
        width: calc(100% - 2 * var(--page-side-mobile));
        padding-top: 25px;
    }
    .site-nav {
        gap: 7px 8px;
        font-size: var(--nav-size-mobile);
    }
    h2 {
        font-size: var(--heading-2-size-mobile);
    }
    .statement {
        padding: 17px 18px;
    }
    .page-header .subtitle {
        font-size: var(--page-subtitle-size-mobile);
    }
    .project-entry {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "body"
            "preview";
        gap: 17px;
    }
    .project-entry:has(> .entry-footer) {
        grid-template-areas:
            "body"
            "preview"
            "footer";
    }
    .entry-footer {
        flex-direction: column;
        align-items: flex-start;
    }
    .entry-footer > .entry-links:only-child {
        margin-left: 0;
    }
    .project-figure {
        width: 100%;
    }
}

/* Respect the reader's motion preference. */
@media (prefers-reduced-motion: reduce) {
    a {
        transition: none;
    }
    .quotation .quote-typed::after {
        display: none !important;
        animation: none !important;
    }
}

/* Print comes last so narrow-screen overrides cannot supersede print layout. */
@media print {
    .notes-search {
        display: none !important;
    }
    .quote-untyped {
        color: inherit;
    }
    .quotation .quote-typed::after {
        display: none !important;
        animation: none !important;
    }
    .sidenote {
        float: none;
        width: 100%;
        margin: 10px 0;
        border: 0;
        padding: 0;
    }
    .content-body {
        width: 100%;
    }
    .gallery-image img {
        height: 200px;
    }
    body {
        font-size: var(--print-body-size);
    }
    .page {
        display: block;
        min-height: 0;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }
    .site-header,
    .skip-link {
        display: none;
    }
    .page-grid {
        grid-template-columns: minmax(0, 1fr) 145px;
        column-gap: 35px;
    }
    .sidebar {
        margin-top: 0;
        border: 0;
        padding-left: 0;
    }
    .intro,
    .page-header {
        padding-top: 15px;
    }
    a {
        color: inherit;
        text-decoration: none;
    }
    .entry,
    .statement {
        break-inside: avoid;
    }
    .project-preview {
        border-color: var(--print-preview-rule);
    }
}
