:root {
    color-scheme: light dark;
    --font-ui: "Inter", sans-serif;
    --font-body: "Lora", serif;
    --gh-font-heading: var(--font-body);
    --gh-font-body: var(--font-body);
    --paper: #efefef;
    --ink: #242424;
    --muted: #626262;
    --accent: #242424;
    --line: rgb(30 30 30 / 17%);
    --surface: rgb(255 255 255 / 68%);
    --glass: rgb(255 255 255 / 19%);
    --glass-edge: rgb(255 255 255 / 83%);
    --shadow: rgb(34 34 34 / 9%);
    --bokeh-color: 68, 68, 68;
    --bokeh-opacity: .68;
    --orbit-limit: clamp(290px, 32vw, 430px);
    --view-height: 100svh;
    --safe-bottom: env(safe-area-inset-bottom, 0px);
}

@supports (height: 100dvh) { :root { --view-height: 100dvh; } }

@media (prefers-color-scheme: dark) {
    :root {
        --paper: #111111;
        --ink: #eeeeee;
        --muted: #b3b3b3;
        --accent: #eeeeee;
        --line: rgb(239 239 239 / 19%);
        --surface: rgb(26 26 26 / 77%);
        --glass: rgb(230 230 230 / 5%);
        --glass-edge: rgb(245 245 245 / 40%);
        --shadow: rgb(0 0 0 / 24%);
        --bokeh-color: 232, 232, 232;
        --bokeh-opacity: .85;
    }
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 280px; min-height: 100%; scrollbar-gutter: stable; }
body {
    margin: 0;
    min-height: var(--view-height);
    display: flex;
    flex-direction: column;
    isolation: isolate;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    overflow-wrap: break-word;
}
a { color: inherit; text-underline-offset: .22em; }
button, input, select, textarea { font: inherit; }
button, summary { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img, svg, video { max-width: 100%; }
img { height: auto; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 6px; }
::selection { color: var(--paper); background: var(--ink); }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
.skip-link {
    position: fixed;
    z-index: 20;
    top: 12px;
    left: 20px;
    padding: 10px 18px;
    transform: translateY(-180%);
    background: var(--paper);
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 8px;
    font-family: var(--font-ui);
}
.skip-link:focus { transform: none; }

/* Three moving planes; soft circles are gradients, not image/video assets. */
.bokeh {
    position: fixed;
    z-index: -1;
    inset: -7vmin;
    overflow: hidden;
    pointer-events: none;
    opacity: var(--bokeh-opacity);
    contain: strict;
    --pointer-x: 0px;
    --pointer-y: 0px;
}
.bokeh-layer, .bokeh-drift { position: absolute; inset: 0; }
.bokeh-layer {
    transform: translate3d(calc(var(--pointer-x) * var(--depth)), calc(var(--pointer-y) * var(--depth)), 0);
}
.bokeh-drift { animation: bokeh-drift 34s ease-in-out infinite alternate; }
.bokeh-layer--middle .bokeh-drift { animation-duration: 43s; animation-direction: alternate-reverse; }
.bokeh-layer--near .bokeh-drift { animation-duration: 51s; animation-delay: -19s; }
.bokeh-orb {
    position: absolute;
    left: var(--x);
    top: var(--y);
    width: var(--size);
    aspect-ratio: 1;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle,
        rgba(var(--bokeh-color), var(--strength)) 0%,
        rgba(var(--bokeh-color), var(--strength)) var(--edge),
        rgba(var(--bokeh-color), 0) 71%);
}
.bokeh-layer--far { --depth: .35; --edge: 7%; --strength: .18; }
.bokeh-layer--middle { --depth: .65; --edge: 39%; --strength: .22; }
.bokeh-layer--near { --depth: 1; --edge: 61%; --strength: .24; }
.bokeh[data-paused="true"] .bokeh-drift { animation-play-state: paused; }
@keyframes bokeh-drift {
    from { transform: translate3d(-1.8%, -.8%, 0) scale(1.03); }
    to { transform: translate3d(1.8%, 1.4%, 0) scale(1.08); }
}

.site-header {
    width: 100%;
    max-width: 1600px;
    margin-inline: auto;
    padding: 32px clamp(24px, 5vw, 80px);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}
.site-header { padding-top: calc(32px + env(safe-area-inset-top, 0px)); }
.wordmark { font-size: 24px; line-height: 1.5; letter-spacing: -.05em; text-decoration: none; }
.site-caption {
    align-self: center;
    font: 400 10px/1.5 var(--font-ui);
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--muted);
}
.site-header { position: relative; z-index: 5; }
.site-tools { display: flex; align-items: center; align-self: center; gap: 12px; }
.language-menu { position: relative; -webkit-user-select: none; user-select: none; font: 400 10px/1.5 var(--font-ui); letter-spacing: .2em; }
.language-button {
    position: relative;
    display: grid;
    place-items: center;
    min-width: 42px;
    min-height: 34px;
    padding: 7px 9px;
    list-style: none;
    border: 1px solid rgb(255 255 255 / 20%);
    border-radius: 12px;
    cursor: pointer;
    background: rgb(255 255 255 / 1.8%);
    box-shadow: inset 0 0 1px rgb(255 255 255 / 38%), 0 7px 22px rgb(0 0 0 / 6%);
    backdrop-filter: blur(.6px) contrast(1.025);
    -webkit-backdrop-filter: blur(.6px) contrast(1.025);
}
.language-label { position: relative; z-index: 1; }
.language-list {
    position: absolute;
    z-index: 10;
    right: 0;
    top: calc(100% + 10px);
    min-width: 76px;
    margin: 0;
    padding: 5px;
    list-style: none;
    border: 1px solid var(--glass-edge);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: 0 8px 24px var(--shadow);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}
.language-list a { display: block; padding: 10px 14px; border-radius: 8px; text-align: center; text-decoration: none; }
.language-list a:hover, .language-list a:focus-visible { background: var(--line); }
/* Reserve the same space whether Pages is open or closed. */
.site-header--side { min-height: calc(242px + env(safe-area-inset-top, 0px)); }
.site-header--side .header-navigation { position: absolute; left: clamp(24px, 5vw, 80px); top: calc(78px + env(safe-area-inset-top, 0px)); }
.site-header--side .header-navigation .family-links { flex-direction: column; gap: 0; }
.site-header--side .personal-pages { max-height: 132px; overflow-y: auto; }

.family-links, .personal-pages { padding: 0; margin: 0; list-style: none; }
.family-links { font-family: var(--font-ui); }
.family-links a, .family-pages > summary { text-decoration: none; }
.family-links > li > a, .family-pages > summary {
    display: flex;
    align-items: center;
    gap: 18px;
    min-height: 44px;
    width: fit-content;
    padding-block: 6px;
    cursor: pointer;
}
.family-links a:hover { text-decoration: underline; }
.family-pages > summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
.disclosure-mark {
    width: 7px;
    height: 7px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .2s ease;
}
.family-pages[open] > summary .disclosure-mark { transform: rotate(225deg) translate(-2px, -1px); }
.personal-pages {
    margin: 7px 0 14px 2px;
    padding-left: 16px;
    border-left: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.65;
}
.personal-pages a { display: block; padding: 8px 0; }
.lifespan { white-space: nowrap; }
.header-navigation { min-width: 150px; font-size: 12px; }
.header-navigation .family-links { display: flex; align-items: flex-start; gap: 30px; }
.header-navigation .personal-pages { max-width: 180px; }

.home-main {
    display: grid;
    place-items: center;
    flex: 1;
    padding: 0;
    min-height: 0;
    container-type: size;
    overflow: auto;
    align-items: safe center;
}
body:has(.home-main) { height: var(--view-height); min-height: 0; }
.portal { --orbit-space: 106px; --orbit-size: max(180px, min(var(--orbit-limit), calc(100cqh - var(--orbit-space)))); margin: 36px 24px 70px; position: relative; width: var(--orbit-size); height: var(--orbit-size); }
.portal-orbit {
    position: absolute;
    inset: 0;
    transform-origin: 50% 50%;
    animation: family-orbit-turn 48s linear infinite;
    will-change: transform;
    pointer-events: none;
}
/* CSS is the no-script fallback; the local script owns a single painted angle. */
.portal-orbit[data-motion="ready"] { animation: none; }
.portal-ring { display: block; width: 100%; height: 100%; overflow: visible; }
.portal-ring text { fill: var(--ink); font: 400 31px var(--font-body); }
/* Rotate the containing layer, keeping SVG text layout unchanged on pause. */
@keyframes family-orbit-turn { from { transform: rotate(0deg); } to { transform: rotate(-360deg); } }
.portal:has(:focus-visible) .portal-orbit,
.portal:has(.portal-menu[open]) .portal-orbit { animation-play-state: paused; }
@media (hover: hover) {
    .portal:hover .portal-orbit { animation-play-state: paused; }
}
.portal-menu { position: absolute; inset: 0; }
/* Modern browsers can reveal closed details on hover. Older browsers retain
   native click/keyboard disclosure, with the same menu and destination links. */
.portal-menu::details-content { content-visibility: visible; }
.portal-glass {
    position: absolute;
    inset: 24%;
    display: grid;
    place-items: center;
    border: 1px solid rgb(255 255 255 / 20%);
    border-radius: 50%;
    list-style: none;
    cursor: pointer;
    background: rgb(255 255 255 / 1.8%);
    box-shadow: inset 0 0 1px rgb(255 255 255 / 38%), 0 7px 22px rgb(0 0 0 / 6%);
    backdrop-filter: blur(.6px) contrast(1.025);
    -webkit-backdrop-filter: blur(.6px) contrast(1.025);
}
/* A clear center, with light concentrated on opposite arcs of the lens. */
.portal-glass::before,
.language-button::before {
    content: "";
    position: absolute;
    inset: -1px;
    padding: 1.7px;
    border-radius: inherit;
    background: conic-gradient(from 0deg,
        rgb(255 255 255 / 8%) 0deg,
        rgb(255 255 255 / 95%) 39deg,
        rgb(255 255 255 / 23%) 74deg,
        transparent 113deg,
        rgb(255 255 255 / 12%) 170deg,
        rgb(255 255 255 / 92%) 219deg,
        rgb(255 255 255 / 19%) 257deg,
        transparent 307deg,
        rgb(255 255 255 / 8%) 360deg);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}
.portal-glass::after,
.language-button::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        radial-gradient(ellipse at 78% 7%, rgb(255 255 255 / 28%), rgb(255 255 255 / 4%) 16%, transparent 32%),
        radial-gradient(ellipse at 21% 94%, rgb(255 255 255 / 42%), rgb(255 255 255 / 6%) 14%, transparent 31%);
    pointer-events: none;
}
.portal-glint {
    position: absolute;
    inset: 1px;
    border-radius: inherit;
    background: radial-gradient(circle, transparent 59%, rgb(255 255 255 / 1%) 66%, rgb(255 255 255 / 7%) 95%, transparent 100%);
    box-shadow: inset 2px 1px 3px rgb(255 255 255 / 15%), inset -1px -2px 3px rgb(255 255 255 / 7%);
    pointer-events: none;
}
.portal-tree { position: relative; z-index: 1; width: 84%; height: 84%; opacity: .8; pointer-events: none; }

@media (prefers-color-scheme: light) {
    :root { --bokeh-color: 48, 48, 48; --bokeh-opacity: .9; }
    .bokeh-layer--far { --strength: .24; }
    .bokeh-layer--middle { --strength: .28; }
    .bokeh-layer--near { --strength: .32; }
    /* A light background needs shaded refraction as well as white highlights. */
    .portal-glass,
    .language-button {
        border-color: rgb(45 45 45 / 15%);
        background: rgb(255 255 255 / 4%);
        box-shadow: inset 0 0 1px rgb(255 255 255 / 90%), 0 10px 28px rgb(25 25 25 / 13%);
    }
    .portal-glass::before,
.language-button::before {
        background: conic-gradient(from 0deg,
            rgb(70 70 70 / 12%) 0deg,
            rgb(255 255 255 / 100%) 39deg,
            rgb(255 255 255 / 45%) 74deg,
            rgb(50 50 50 / 28%) 123deg,
            rgb(70 70 70 / 9%) 170deg,
            rgb(255 255 255 / 100%) 219deg,
            rgb(255 255 255 / 36%) 257deg,
            rgb(50 50 50 / 25%) 310deg,
            rgb(70 70 70 / 12%) 360deg);
    }
    .portal-glass::after,
.language-button::after {
        background:
            radial-gradient(ellipse at 78% 7%, rgb(255 255 255 / 78%), rgb(255 255 255 / 12%) 16%, transparent 32%),
            radial-gradient(ellipse at 21% 94%, rgb(255 255 255 / 95%), rgb(255 255 255 / 14%) 14%, transparent 31%);
    }
    .portal-glint {
        background: radial-gradient(circle, transparent 59%, rgb(255 255 255 / 3%) 68%, rgb(40 40 40 / 5%) 87%, rgb(255 255 255 / 36%) 96%, transparent 100%);
        box-shadow: inset 2px 1px 3px rgb(255 255 255 / 88%), inset -2px -3px 4px rgb(35 35 35 / 11%);
    }
}

.portal-navigation {
    --menu-radius: calc(var(--orbit-size) * .5 + 36px);
    position: absolute;
    left: calc(50% + var(--menu-radius) * .82);
    top: calc(50% - var(--menu-radius) * .58 - 25px);
    width: 250px;
    padding-block: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateX(9px);
    pointer-events: none;
    transition: opacity .25s ease, transform .25s ease, visibility .25s;
    font-size: 18px;
    line-height: 1.5;
}
.portal-navigation::before { content: ""; position: absolute; inset: 0 100% 0 auto; width: 40px; }
.portal-menu[open] > .portal-navigation {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    pointer-events: auto;
}
@media (hover: hover) {
    .portal:hover .portal-navigation {
        opacity: 1;
        visibility: visible;
        transform: translateX(0);
        pointer-events: auto;
    }
}
.portal-navigation .family-links > li > a,
.portal-navigation .family-pages > summary { min-height: 50px; }
.portal-navigation .personal-pages { font-size: 13px; max-width: 230px; }

@media (min-width: 1101px) {
    .portal-navigation {
        left: 50%;
        top: 50%;
        width: calc(var(--menu-radius) + 250px);
        height: 1px;
    }
    .portal-menu[open] > .portal-navigation,
    .portal:hover .portal-navigation { pointer-events: none; }
    /* A quiet hit area bridges the gaps between the circle and its rays. */
    .portal-navigation::before {
        inset: calc(var(--menu-radius) * -1) 0;
        left: calc(var(--orbit-size) * .28);
        width: auto;
        pointer-events: auto;
    }
    .portal-navigation .family-links { position: relative; }
    .portal-navigation .family-links > li {
        position: absolute;
        left: 0;
        top: -25px;
        width: 250px;
        pointer-events: auto;
        transform-origin: 0 25px;
        transform: rotate(var(--ray-angle)) translateX(var(--menu-radius));
        transition: transform .55s cubic-bezier(.22, .61, .36, 1);
    }
    .portal-navigation .family-links > li:first-child { --ray-angle: -17deg; }
    .portal-navigation .family-links > li:nth-child(2) { --ray-angle: 0deg; }
    .portal-navigation .family-links > li:last-child { --ray-angle: 17deg; }
    .portal-navigation:has(.family-pages[open]) .family-links > li:first-child { --ray-angle: -46deg; }
    .portal-navigation:has(.family-pages[open]) .family-links > li:last-child { --ray-angle: 46deg; }
    .portal-navigation .family-pages[open] .personal-pages { animation: personal-pages-reveal .4s ease both; }
}
@keyframes personal-pages-reveal {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

.content-main { width: min(920px, 100%); margin: 22px auto 80px; padding-inline: 28px; flex: 1; }
.glass-sheet {
    border: 1px solid var(--glass-edge);
    border-right-color: var(--line);
    border-bottom-color: var(--line);
    border-radius: 28px;
    padding: clamp(26px, 5.4vw, 66px);
    background: var(--surface);
    box-shadow: 0 16px 60px var(--shadow), inset 0 1px 1px rgb(255 255 255 / 13%);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}
.page-heading { margin-bottom: 38px; }
.page-heading h1, .error-sheet h1 {
    margin: 0;
    font: 400 clamp(32px, 5vw, 54px)/1.18 var(--font-body);
    letter-spacing: -.045em;
    text-wrap: balance;
    overflow-wrap: anywhere;
}
.eyebrow {
    margin: 0 0 16px;
    font: 400 11px/1.7 var(--font-ui);
    letter-spacing: .09em;
    color: var(--muted);
}
.eyebrow a { text-decoration: none; }
.eyebrow a:hover { text-decoration: underline; }
.standfirst { margin: 24px 0 0; color: var(--muted); font-size: 19px; }
.feature-image { margin: 0 0 36px; }
.feature-image img { display: block; width: 100%; border-radius: 10px; }
.feature-image figcaption { margin-top: 8px; color: var(--muted); font-size: 13px; text-align: center; }
.article-footer { margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--line); }
.text-link { font: 400 13px/1.8 var(--font-ui); }
.text-link span { margin-left: 12px; }
.post-row { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-block: 26px; border-top: 1px solid var(--line); }
.post-row > div { min-width: 0; }
.post-row .eyebrow { margin-bottom: 8px; }
.post-row h2 { margin: 0; font: 400 25px/1.35 var(--font-body); letter-spacing: -.03em; }
.post-row h2 a { text-decoration: none; }
.post-row h2 a:hover { text-decoration: underline; }
.post-excerpt { margin: 12px 0 0; color: var(--muted); font-size: 14px; }
.post-thumbnail { flex: 0 0 112px; }
.post-thumbnail img { display: block; width: 112px; height: 88px; object-fit: cover; border-radius: 8px; }
.pagination { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line); font: 400 12px/1.5 var(--font-ui); }
.pagination > span { color: var(--muted); }
.empty-state { color: var(--muted); }
.error-sheet { text-align: center; padding-block: 80px; }
.error-sheet > p:not(.eyebrow) { color: var(--muted); }
.site-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 720px) minmax(0, 1fr);
    align-items: end;
    flex-shrink: 0;
    gap: 20px;
    width: 100%;
    max-width: 1600px;
    margin: auto auto 0;
    padding: 24px clamp(24px, 5vw, 80px) calc(24px + var(--safe-bottom));
    color: var(--muted);
    font: 400 10px/1.6 var(--font-ui);
    letter-spacing: .03em;
}
.site-colophon { grid-column: 2; margin: 0; text-align: center; }
.site-footer .motion-control { grid-column: 3; justify-self: end; min-width: 0; }
.motion-control { max-width: 260px; text-align: right; }
.tilt-toggle { margin-left: auto; padding: 8px 12px; min-height: 38px; font: 400 11px/1.5 var(--font-ui); -webkit-user-select: none; user-select: none; }
.tilt-status { display: block; margin-top: 5px; letter-spacing: 0; }
.tilt-status:empty { display: none; }

@media (max-width: 1280px) {
    .site-header--side { min-height: calc(302px + env(safe-area-inset-top, 0px)); }
}
@media (max-width: 1100px) {
    :root { --orbit-limit: clamp(270px, 48vw, 360px); }
    .portal { --orbit-space: 273px; margin-top: 28px; margin-bottom: 245px; }
    .portal-navigation { left: 50%; top: calc(100% + 16px); width: 280px; transform: translate(-50%, 6px); font-size: 16px; }
    .portal-menu[open] > .portal-navigation { transform: translate(-50%, 0); }
    .portal-navigation::before { inset: auto 0 100%; width: auto; height: 20px; }
    .portal-navigation .family-links { width: fit-content; min-width: 170px; margin-inline: auto; }
    .portal-navigation .family-links > li + li { margin-top: 0; }
    .portal-navigation .family-links > li:nth-child(2) { margin-left: 0; }
    .portal-navigation .family-links > li > a, .portal-navigation .family-pages > summary { min-height: 44px; }
}
@media (max-width: 1100px) and (hover: hover) {
    .portal:hover .portal-navigation { transform: translate(-50%, 0); }
}
@media (max-width: 900px) {
    .site-footer { grid-template-columns: minmax(0, 1fr); }
    .site-colophon { grid-column: 1; grid-row: 2; }
    .site-footer .motion-control { grid-column: 1; grid-row: 1; }
}
@media (max-width: 600px) {
    html { scrollbar-gutter: auto; }
    body { font-size: 16px; }
    .site-header { padding: calc(25px + env(safe-area-inset-top, 0px)) 24px 25px; gap: 18px; flex-shrink: 0; }
    .wordmark { font-size: 23px; }
    .site-caption, .language-menu { font-size: 9px; letter-spacing: .13em; }
    .site-tools { gap: 8px; }
    .site-header:not(.site-header--home) { flex-direction: column; gap: 12px; }
    .header-navigation { width: 100%; }
    .site-header--side { min-height: calc(302px + env(safe-area-inset-top, 0px)); }
    .site-header--side .header-navigation { left: 24px; top: calc(72px + env(safe-area-inset-top, 0px)); width: calc(100% - 48px); }
    .header-navigation .family-links { gap: 28px; flex-wrap: wrap; }
    .header-navigation .personal-pages { max-width: 145px; font-size: 11px; }
    .portal { --orbit-space: 269px; --orbit-size: max(180px, min(var(--orbit-limit), calc(100cqh - 172px))); margin-top: 24px; }
    .portal-ring text { font-size: 30px; }
    .bokeh-layer--far .bokeh-orb:nth-child(n+9),
    .bokeh-layer--near .bokeh-orb:nth-child(n+9) { display: none; }
    .content-main { margin-top: 12px; margin-bottom: 40px; padding-inline: 16px; }
    .glass-sheet { border-radius: 20px; padding: 28px 24px; }
    .page-heading { margin-bottom: 28px; }
    .standfirst { font-size: 17px; }
    .post-row { gap: 16px; }
    .post-row h2 { font-size: 21px; }
    .post-thumbnail { flex-basis: 72px; }
    .post-thumbnail img { width: 72px; height: 72px; }
    .site-footer { padding: 16px 24px calc(24px + var(--safe-bottom)); align-items: center; font-size: 9px; gap: 12px; }
    .motion-control { max-width: 170px; }
}
@media (max-width: 340px) {
    :root { --orbit-limit: min(246px, calc(100vw - 48px)); }
    .site-caption { display: none; }
    .header-navigation .family-links { gap: 15px; }
    .portal-navigation { width: 250px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
    .bokeh-drift, .portal-orbit, .portal-navigation .family-pages[open] .personal-pages { animation: none; }
    .portal-orbit { will-change: auto; }
    .bokeh-layer { transform: none; }
}
@supports not (backdrop-filter: blur(1px)) {
    .glass-sheet { background: var(--paper); }
}
@media print {
    body { display: block; background: white; color: black; font-size: 11pt; }
    .bokeh, .site-header, .site-footer, .skip-link, .article-footer { display: none; }
    .content-main { width: 100%; margin: 0; padding: 0; }
    .glass-sheet { background: none; border: 0; padding: 0; box-shadow: none; backdrop-filter: none; }
    .page-heading h1 { font-size: 28pt; }
    .page-heading { break-after: avoid; }
    .post-row { break-inside: avoid; }
}
