/* A compact city newspaper: ruled columns, real clippings, an unfolding reader. */
.hh-desk { padding: 104px 0 46px; background: radial-gradient(ellipse at 50% 0, #32453e, #142823 60%, #0b1b18); }
.hh-desk::before { display: none; }
.hh-desk .hh-shell { width: min(1280px, calc(100% - 48px)); max-width: 1280px; padding: 0; }
.hh-windowbar { display: flex; justify-content: space-between; gap: 16px; padding: 8px 12px; color: #eee9cf; background: #2b4137; border: 2px solid #899182; border-bottom: 0; box-shadow: inset 1px 1px #c5c8b5, inset -1px -1px #12221b; font: 11px/1.4 'JetBrains Mono', monospace; }
.hh-windowbar span span { margin-right: 8px; }
.hh-newspaper { --hh-ink: #26251e; --hh-muted: #5b594c; --hh-rule: #9b9580; color: var(--hh-ink); background: repeating-linear-gradient(0deg, #77694604 0 1px, transparent 1px 4px), #f0ecd9; padding: 18px 25px 0; border: 1px solid #ada58d; box-shadow: 0 18px 50px #0005, 3px 3px 0 #c2bca7, 6px 6px 0 #807f6d; font: 15px/1.45 Georgia, 'Times New Roman', serif; }
.hh-newspaper *, .hh-reader * { box-sizing: border-box; }
.hh-newspaper a { color: inherit; text-decoration: none; }
.hh-newspaper h1, .hh-newspaper h2, .hh-newspaper h3, .hh-newspaper strong { color: var(--hh-ink); font-family: Georgia, 'Times New Roman', serif; }
.hh-newspaper a:focus-visible, .hh-reader a:focus-visible, .hh-reader button:focus-visible, .hh-reader-scroll:focus-visible { outline: 3px solid #9d3324; outline-offset: 3px; }
.hh-masthead-top { display: flex; justify-content: space-between; gap: 16px; font: 10px/1.4 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .08em; }
.hh-masthead h1 { margin: 4px 0 10px; text-align: center; font-size: clamp(38px, 6.9vw, 91px); font-weight: 900; letter-spacing: -.065em; line-height: 1.02; white-space: nowrap; }
.hh-masthead h1 span { display: inline-block; font-size: .45em; font-style: italic; vertical-align: middle; letter-spacing: -.06em; margin-right: .12em; }
.hh-dateline { display: flex; justify-content: space-between; gap: 12px; border-top: 4px double var(--hh-ink); border-bottom: 1px solid var(--hh-ink); padding: 6px 0; font: 10px/1.4 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .025em; }
.hh-sections { display: flex; justify-content: center; flex-wrap: wrap; padding: 0; border-bottom: 3px double var(--hh-ink); }
.hh-sections a { padding: 9px 16px; font: bold 10px/1.3 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .04em; }
.hh-sections a:hover { background: #d9d3bb; }
.hh-frontpage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.15fr) minmax(0, 1fr); gap: 0; padding-top: 16px; }
.hh-lead-column { grid-column: 2; grid-row: 1; padding: 0 19px; min-width: 0; }
.hh-editions-column { grid-column: 1; grid-row: 1; border-right: 1px solid var(--hh-rule); padding-right: 17px; min-width: 0; }
.hh-wire-column { grid-column: 3; grid-row: 1; border-left: 1px solid var(--hh-rule); padding-left: 17px; min-width: 0; }
.hh-newspaper .hh-section-title, .hh-rubric { margin: 0 0 10px; padding-bottom: 6px; border-bottom: 2px solid var(--hh-ink); font: bold 11px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .06em; }
.hh-rubric { display: flex; justify-content: space-between; gap: 10px; color: #853729; }
.hh-rubric span:last-child { color: var(--hh-muted); font-weight: 400; }
.hh-lead > a, .hh-clip > a { display: block; position: relative; }
.hh-lead > a:hover h2, .hh-clip > a:hover h3 { color: #883425; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.hh-lead h2 { font-size: clamp(29px, 3.35vw, 45px); line-height: 1.02; letter-spacing: -.045em; font-weight: 900; margin: 0 0 10px; text-wrap: balance; }
.hh-lead-deck { margin: 0 0 12px; font-size: 16px; line-height: 1.4; color: var(--hh-muted); }
.hh-lead figure { margin: 0; }
.hh-lead figure img { display: block; width: 100%; aspect-ratio: 1.68; object-fit: cover; border: 1px solid #5e5a48; filter: saturate(.68) contrast(1.05); }
.hh-lead figcaption { padding: 5px 0; font: italic 11px/1.4 Georgia, serif; color: var(--hh-muted); border-bottom: 1px solid var(--hh-rule); }
.hh-lead-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 9px; font: 9px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; }
.hh-open { display: inline-flex; gap: 8px; align-items: center; font: bold 10px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .015em; color: #853729; }
.hh-open > span { font: 18px/1 Georgia, serif; }
.hh-clip { padding: 0 0 13px; margin: 0 0 13px; border-bottom: 1px solid var(--hh-rule); }
.hh-clip:last-child { margin-bottom: 0; }
.hh-clip-meta { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 6px; color: var(--hh-muted); font: 9px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; }
.hh-clip-meta time { white-space: nowrap; }
.hh-clip h3 { font-size: 21px; font-weight: 700; line-height: 1.09; letter-spacing: -.03em; margin: 0 0 7px; overflow-wrap: anywhere; }
.hh-clip p { margin: 0 0 8px; color: var(--hh-muted); font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.hh-clip-image { display: block; width: 100%; aspect-ratio: 2.5; object-fit: cover; margin: 0 0 8px; filter: saturate(.35) sepia(.15); border: 1px solid #827b65; }
.hh-features { margin-top: 18px; }
.hh-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.hh-feature-grid .hh-clip { border-bottom: 0; margin: 0; padding: 0; }
.hh-feature-grid .hh-clip + .hh-clip { border-left: 1px solid var(--hh-rule); padding-left: 14px; }
.hh-feature-grid .hh-clip h3 { font-size: 20px; }
.hh-desk-note { padding-top: 5px; }
.hh-desk-note strong { font-size: 16px; font-style: italic; }
.hh-desk-note p { margin: 5px 0; color: var(--hh-muted); font-size: 13px; }
.hh-desk-note a { font: bold 10px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; border-bottom: 1px solid; }
.hh-notice { display: block; border: 3px double var(--hh-ink); padding: 13px 11px; text-align: center; margin-top: 17px; background: #e6e0c9; }
.hh-notice > span { display: block; font: 9px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; }
.hh-notice strong { display: block; font-size: 24px; line-height: 1.05; font-style: italic; margin: 8px 0; }
.hh-notice p { font-size: 13px; margin: 8px 0; }
.hh-notice b { font: bold 9px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; }
.hh-notice:hover { background: #dbd2b3; }
.hh-reading-hint { margin: 14px 0 0; text-align: center; font: italic 12px/1.5 Georgia, serif; color: var(--hh-muted); }
.hh-archive { margin-top: 19px; padding-top: 13px; border-top: 3px double var(--hh-ink); }
.hh-archive-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.hh-archive-heading .hh-section-title { border: 0; }
.hh-archive-heading > span { font: 10px/1.5 'JetBrains Mono', monospace; color: var(--hh-muted); }
.hh-archive-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 20px; }
.hh-archive-grid .hh-clip h3 { font-size: 19px; }
.hh-pagination .nav-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; padding: 12px 0 18px; }
.hh-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; border: 1px solid var(--hh-rule); padding: 6px 12px; font: 11px/1.5 'JetBrains Mono', monospace; }
.hh-pagination .current, .hh-pagination a:hover { color: #f0ecd9; background: var(--hh-ink); border-color: var(--hh-ink); }
.hh-colophon { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-top: 1px solid var(--hh-ink); font: 9px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; }
.hh-newspaper [id] { scroll-margin-top: 100px; }
/* Native modal keeps the underlying newspaper in place, including keyboard focus. */
html.hh-reader-open { overflow: hidden; scrollbar-gutter: stable; }
.hh-reader { position: fixed; inset: 0; width: min(1080px, calc(100vw - 48px)); max-width: none; height: min(92dvh, 1100px); max-height: calc(100dvh - 24px); padding: 0; border: 2px solid #5b594c; background: #efe4c8; color: #26251e; box-shadow: 0 18px 45px #0007; overflow: hidden; }
.hh-reader[open] { display: flex; flex-direction: column; animation: hh-spin-in 900ms cubic-bezier(.12,.68,.18,1) both; transform-origin: center center; }
.hh-reader::backdrop { background: #061612b8; backdrop-filter: none; }
.hh-reader-toolbar { display: flex; align-items: center; gap: 16px; flex-shrink: 0; padding: 9px 14px; background: #2b4137; color: #f0ecd9; border-bottom: 2px solid #8b8c79; }
.hh-reader-toolbar h2 { flex: 1; color: inherit; font: bold 18px/1.2 Georgia, serif; margin: 0; }
.hh-reader-toolbar a { color: inherit; font: 11px/1.3 'JetBrains Mono', monospace; text-underline-offset: 3px; }
.hh-reader-close { display: inline-flex; align-items: center; gap: 10px; padding: 7px 12px; min-height: 36px; color: #26251e; background: #e9e4cd; border: 2px outset #fff9e2; cursor: pointer; font: bold 11px/1.2 'JetBrains Mono', monospace; }
.hh-reader-close span { font-size: 22px; line-height: 16px; }
.hh-reader-scroll { overflow: auto; overscroll-behavior: contain; flex: 1; min-height: 0; }
.hh-reader-status { padding: 24px; color: #26251e; font: 16px/1.5 Georgia, serif; }
.hh-reader-content { min-height: 0; overflow: visible; background: #efe4c8; }
.hh-reader-content::before { display: none; }
.hh-reader-content .uf-herald-paper { width: 100%; max-width: none; margin: 0; border: 0; box-shadow: none; opacity: 1; transform: none; animation: none; }
.hh-reader-content .uf-herald-article-footer { margin-bottom: 0; }
.hh-reader-content .uf-herald-copy { overflow-wrap: anywhere; }
@keyframes hh-spin-in {
    from { opacity: .15; transform: translate3d(var(--hh-start-x, 0px), var(--hh-start-y, 0px), 0) rotate(-540deg) scale(.08); }
    to { opacity: 1; transform: translate3d(0, 0, 0) rotate(0) scale(1); }
}

@media (min-width: 1500px) { .hh-masthead h1 { font-size: 91px; } }
@media (max-width: 1000px) and (min-width: 701px) {
    .hh-desk .hh-shell { width: calc(100% - 28px); }
    .hh-newspaper { padding: 15px 17px 0; }
    .hh-frontpage { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
    .hh-lead-column { padding-right: 0; }
    .hh-wire-column { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; border-left: 0; border-top: 3px double var(--hh-ink); padding: 16px 0 0; margin-top: 18px; }
    .hh-wire-column > h2 { grid-column: 1 / -1; margin-bottom: 0; }
    .hh-wire-column .hh-notice { margin: 0; grid-column: 1 / 3; }
    .hh-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .hh-desk { padding: 84px 0 25px; }
    .hh-desk .hh-shell { width: calc(100% - 20px); }
    .hh-windowbar { font-size: 9px; padding: 7px 8px; }
    .hh-windowbar-edition { display: none; }
    .hh-newspaper { padding: 12px 13px 0; }
    .hh-masthead-top { justify-content: center; font-size: 8px; }
    .hh-masthead-top > span:first-child { display: none; }
    .hh-masthead h1 { font-size: clamp(28px, 7.25vw, 51px); margin: 8px 0 10px; }
    .hh-dateline { font-size: 8px; gap: 6px; flex-wrap: wrap; }
    .hh-dateline > span:last-child { display: none; }
    .hh-sections { justify-content: flex-start; }
    .hh-sections a { font-size: 9px; padding: 9px 9px; }
    .hh-frontpage { display: flex; flex-direction: column; padding-top: 12px; }
    .hh-lead-column, .hh-editions-column, .hh-wire-column { padding: 0; border: 0; }
    .hh-lead h2 { font-size: clamp(30px, 8vw, 43px); }
    .hh-lead-deck { font-size: 15px; }
    .hh-lead-bottom { flex-wrap: wrap; gap: 5px 12px; }
    .hh-rubric, .hh-newspaper .hh-section-title { font-size: 10px; }
    .hh-feature-grid .hh-clip h3 { font-size: 19px; }
    .hh-editions-column, .hh-wire-column { margin-top: 19px; padding-top: 13px; border-top: 3px double var(--hh-ink); }
    .hh-editions-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
    .hh-editions-column > h2, .hh-editions-column > .hh-desk-note { grid-column: 1 / -1; }
    .hh-editions-column .hh-clip h3 { font-size: 19px; }
    .hh-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
    .hh-archive-heading { flex-wrap: wrap; gap: 0; margin-bottom: 8px; }
    .hh-archive-heading > span { font-size: 9px; }
    .hh-colophon { font-size: 8px; }
    .hh-colophon > span:last-child { display: none; }
    .hh-reader { width: calc(100vw - 12px); height: calc(100dvh - 12px); max-height: none; }
    .hh-reader-toolbar { padding: 7px 9px; gap: 10px; flex-wrap: wrap; }
    .hh-reader-toolbar h2 { font-size: 15px; }
    .hh-reader-toolbar a { order: 3; width: 100%; font-size: 10px; }
    .hh-reader-close { padding: 5px 8px; }
    .hh-reader-content .uf-herald-article-masthead strong { font-size: clamp(28px, 9vw, 48px); }
}
@media (prefers-reduced-motion: reduce) { .hh-reader[open] { animation: none; } }

/* Compact the native reader chrome; self-designed editions carry their own masthead. */
.hh-reader-content .uf-herald-paper { padding: 24px 30px; }
.hh-reader-content .uf-herald-article-masthead { display: block; text-align: center; }
.hh-reader-content .uf-herald-article-masthead > span { display: none; }
.hh-reader-content .uf-herald-article-masthead strong { font-size: 48px; line-height: 1; letter-spacing: -.06em; padding: 8px 0; }
.hh-reader-content .uf-herald-article-header h1 { font-size: clamp(30px, 4vw, 52px); margin: 15px 0; }
.hh-reader-content .uf-herald-article-kicker { margin-top: 16px; }
.hh-reader-content .uf-herald-article-deck { font-size: 18px; }
.hh-reader-content .uf-herald-article-byline { margin-top: 18px; }
.hh-reader-content .hh-embedded-edition > .uf-herald-article-header { display: none; }
.hh-reader-content .hh-embedded-edition > .uf-herald-copy { margin-top: 0; padding-top: 0; }
.hh-reader-content .uf-herald-post .paper-name { font-size: clamp(28px, 4.5vw, 50px); }
.hh-reader-content .uf-herald-post h1 { font-family: Georgia, serif; font-size: clamp(28px, 4vw, 38px); }
@media (max-width: 700px) {
    .hh-reader-content .uf-herald-paper { padding: 12px; }
    .hh-reader-content .uf-herald-article-masthead strong { font-size: 29px; }
    .hh-reader-content .uf-herald-post .paper { padding: 10px; }
}

/* Preserve full wording. Only the lead headline is fitted to its real column. */
.hh-lead { container-type: inline-size; }
.hh-newspaper .hh-lead h2 { font-size: clamp(19px, 7.1cqi, 45px); font-weight: 700; line-height: 1.12; letter-spacing: -.045em; text-wrap: initial; }
.hh-newspaper .hh-lead h2 [data-herald-headline] { display: inline-block; }
.hh-newspaper .hh-clip h3 { white-space: normal; overflow: visible; text-overflow: clip; font-size: 21px; line-height: 1.15; letter-spacing: -.035em; overflow-wrap: break-word; }
.hh-newspaper .hh-feature-grid .hh-clip h3 { font-size: 20px; }
.hh-reader-toolbar h2 { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.hh-opening-paper { margin: 0 auto; max-width: 820px; padding: 25px; color: #26251e; font-family: Georgia, serif; background: #f0ecd9; }
.hh-opening-masthead { padding: 12px 0; border-block: 3px double #26251e; text-align: center; font: bold clamp(23px, 4vw, 46px)/1 Georgia, serif; letter-spacing: -.05em; }
.hh-opening-paper h3 { margin: 16px 0; color: #26251e; font: bold clamp(27px, 4vw, 44px)/1.1 Georgia, serif; }
.hh-opening-paper p { color: #5b594c; font: 16px/1.5 Georgia, serif; }
.hh-opening-paper img { display: block; width: 100%; max-height: 50vh; object-fit: cover; border: 1px solid #827b65; }
@media (max-width: 700px) {
    .hh-newspaper .hh-clip h3, .hh-newspaper .hh-feature-grid .hh-clip h3 { font-size: 19px; letter-spacing: -.035em; }
    .hh-newspaper .hh-wire-column .hh-clip h3 { font-size: 21px; }
    .hh-newspaper .hh-lead h2 { font-size: clamp(19px, 7.1cqi, 45px); }
    .hh-opening-paper { padding: 14px; }
}

/* Publication dates are visible editorial stamps, not tiny secondary metadata. */
.hh-clip-meta { align-items: center; flex-wrap: wrap; gap: 5px 8px; margin-bottom: 9px; }
.hh-clip-meta time, .hh-lead-date { display: inline-block; padding: 4px 7px; border-left: 3px solid #8b3325; background: #dfd4b4; color: #70281d; font: bold 12px/1.35 'JetBrains Mono', monospace; letter-spacing: .015em; white-space: nowrap; }
.hh-rubric { align-items: center; min-height: 34px; }
.hh-lead-date { font-size: 14px; padding: 4px 9px; }
.hh-dateline { align-items: center; }
.hh-dateline .hh-issue-date { font-size: 12px; font-weight: 700; color: #70281d; }
.hh-lead-bottom > span:first-child { font-size: 11px; font-weight: 700; color: #70281d; }
@media (max-width: 700px) {
    .hh-dateline .hh-issue-date { font-size: 10px; }
    .hh-lead-date { font-size: 13px; }
    .hh-clip-meta time { font-size: 12px; }
}

/* Optional desktop width; one setting for the front page and its reader. */
.hh-windowbar { align-items: center; }
.hh-windowbar-actions { display: flex; align-items: center; gap: 18px; }
.hh-width-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 36px; padding: 6px 10px; border: 1px solid #c3c2a9; background: #e9e4cd; color: #263c31; cursor: pointer; white-space: nowrap; font: bold 11px/1.3 'JetBrains Mono', monospace; }
.hh-width-toggle:hover { background: #fff9e2; }
.hh-width-toggle[aria-pressed="true"] { background: #c8d8bd; border-color: #9aad8e; }
.hh-width-toggle:focus-visible { outline: 3px solid #efbd58; outline-offset: 3px; }
.hh-width-toggle[hidden] { display: none; }
.hh-reader.is-spinning { will-change: transform, opacity; box-shadow: none; backface-visibility: hidden; }
.hh-reader-status { position: absolute; z-index: 3; inset: auto 14px 12px; width: fit-content; max-width: calc(100% - 28px); margin: 0; padding: 8px 12px; background: #f0ecd9ed; border: 1px solid #b5aa88; font-size: 13px; pointer-events: none; }
.hh-reader-content .hh-opening-paper.hh-preview-out { position: absolute; z-index: 1; inset: 0 0 auto; min-height: calc(100dvh - 120px); pointer-events: none; }
@media (min-width: 1001px) {
    .hh-desk.hh-is-wide .hh-shell { width: calc(100% - 32px); max-width: none; }
    .hh-is-wide .hh-reader { width: calc(100vw - 24px); height: calc(100dvh - 24px); max-height: none; }
    .hh-is-wide .hh-reader-content .uf-herald-post .uf-herald-wrap { max-width: none; }
    .hh-is-wide .hh-reader-content .uf-herald-copy { max-width: none; }
}
@media (max-width: 1000px) {
    .hh-width-toggle { display: none; }
    .hh-windowbar-edition { font-size: 9px; }
}
@media (max-width: 700px) {
    .hh-reader-close { min-height: 44px; min-width: 74px; }
    .hh-windowbar-actions { display: none; }
}
