/* Reading shell only; the release body is loaded unchanged from its frozen edition. */
.hard-reader-shell { max-width: 1240px; padding: var(--s-6) var(--s-5) var(--s-8); margin-inline: auto; color: var(--color-text-primary); }
.hard-reader-breadcrumb { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-6); }
.hard-reader-grid { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: clamp(24px, 5vw, 72px); }
.hard-reader-rail { align-self: start; position: sticky; top: 96px; max-height: calc(100dvh - 120px); overflow-y: auto; padding: 4px; }
.hard-reader-rail summary { padding-block: var(--s-2); cursor: pointer; }
.hard-reader-rail nav { display: grid; gap: var(--s-2); padding-block: var(--s-3); }
.hard-reader-rail nav a { font-size: 14px; line-height: 1.5; padding-block: 5px; }
.hard-reader-downloads { margin-top: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--color-border); }
.hard-reader-downloads .button { white-space: normal; }
.hard-reader-column { min-width: 0; max-width: 850px; scroll-margin-top: 100px; }
.hard-reader-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); margin-bottom: var(--s-4); color: var(--color-text-muted); }
.hard-reader-body { font-family: inherit; font-size: 17px; line-height: 1.7; color: var(--color-text-primary); }
.hard-reader-body h1 { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: var(--w-medium); letter-spacing: -.035em; line-height: 1.1; margin-bottom: var(--s-5); text-wrap: balance; }
.hard-reader-body h2 { font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.2; letter-spacing: -.025em; padding-top: var(--s-5); margin-block: var(--s-6) var(--s-4); border-top: 1px solid var(--color-border); scroll-margin-top: 110px; }
.hard-reader-body h3 { font-size: 1.25rem; line-height: 1.35; margin-block: var(--s-5) var(--s-3); }
.hard-reader-body :where(p, ul, ol) { margin-bottom: var(--s-4); }
.hard-reader-body :where(ul, ol) { padding-left: 1.4em; }
.hard-reader-body li + li { margin-top: var(--s-2); }
.hard-reader-body a { color: var(--color-action-text); text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.hard-reader-body :where(p, li, td, th, code) { overflow-wrap: anywhere; }
.hard-reader-body :not(pre) > code { font: .88em/1.5 var(--font-mono); background: var(--color-bg-tinted); border-radius: var(--r-1); padding: .12em .3em; }
.hard-reader-body pre { max-width: 100%; overflow-x: auto; padding: var(--s-4); border: 1px solid var(--color-border); border-radius: var(--r-2); background: var(--color-bg-tinted); font: 14px/1.7 var(--font-mono); }
.hard-reader-body .table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--color-border); border-radius: var(--r-2); margin-block: var(--s-4); }
.hard-reader-body table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.65; }
.hard-reader-body :where(th, td) { min-width: 9rem; padding: var(--s-3); text-align: left; vertical-align: top; border-bottom: 1px solid var(--color-border); }
.hard-reader-body th { color: var(--color-text-primary); background: var(--color-bg-tinted); font-weight: var(--w-medium); }
.hard-reader-boundary { margin-top: var(--s-6); padding: var(--s-4); border-left: 2px solid var(--color-action-text); background: var(--color-bg-tinted); color: var(--color-text-muted); line-height: 1.6; }
.hard-reader-boundary p + p { margin-top: var(--s-2); }
@media (max-width: 800px) { .hard-reader-grid { grid-template-columns: 1fr; } .hard-reader-rail { position: static; max-height: 20rem; padding: var(--s-3); border: 1px solid var(--color-border); border-radius: var(--r-2); } .hard-reader-shell { padding-inline: var(--s-4); } }
@media print { .hard-reader-rail, .hard-reader-breadcrumb, .o-header, .o-footer { display: none; } .hard-reader-grid { display: block; } .hard-reader-shell { padding: 0; } .hard-reader-body .table-scroll { overflow: visible; } .hard-reader-body :where(th, td) { min-width: 0; } .hard-reader-body h2 { break-after: avoid; } }
