:root {
    --bi-ink: #171713;
    --bi-muted: #6b6960;
    --bi-paper: #f1ede3;
    --bi-sheet: #fbfaf5;
    --bi-warm: #e5dfd2;
    --bi-line: #bdb7aa;
    --bi-red: #bd3a2d;
    --bi-red-dark: #8f281f;
    --bi-gold: #d5a52e;
    --bi-forest: #365b4e;
    --bi-serif: var(--bi-body-font, "Newsreader", Georgia, serif);
    --bi-heading: var(--bi-heading-font, "Newsreader", Georgia, serif);
    --bi-condensed: "Barlow Condensed", "Arial Narrow", sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--bi-paper); scroll-behavior: smooth; }
body.bi-body {
    margin: 0;
    background:
        linear-gradient(rgba(23, 23, 19, .018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(23, 23, 19, .012) 1px, transparent 1px),
        var(--bi-paper);
    background-size: 28px 28px;
    color: var(--bi-ink);
    font-family: var(--bi-serif);
    font-size: var(--bi-body-size, 17px);
    line-height: 1.62;
}
img { max-width: 100%; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, h4, h5, h6, blockquote { font-family: var(--bi-heading); }
.bi-shell { min-height: 100vh; overflow: hidden; }
.bi-container { width: min(1240px, calc(100% - 48px)); margin: 0 auto; }
.bi-serif { font-family: var(--bi-serif); }
.bi-kicker {
    color: var(--bi-red);
    font-family: var(--bi-condensed);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .15em;
    line-height: 1.1;
    text-transform: uppercase;
}
.bi-rule { border: 0; border-top: 1px solid var(--bi-line); margin: 1.5rem 0; }
.bi-link, .bi-section-link { color: var(--bi-ink); font-family: var(--bi-condensed); font-weight: 700; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.bi-link:hover, .bi-section-link:hover { color: var(--bi-red); }
.bi-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 1px solid var(--bi-ink);
    border-radius: 0;
    padding: .65rem 1.1rem;
    font-family: var(--bi-condensed);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}
.bi-button-primary { background: var(--bi-ink); color: var(--bi-sheet); }
.bi-button-primary:hover { background: var(--bi-red); border-color: var(--bi-red); transform: translateY(-2px); }
.bi-button-light { background: transparent; color: var(--bi-ink); }
.bi-button-light:hover { background: var(--bi-ink); color: var(--bi-sheet); }

/* Configured hero slider */
.bi-hero-slider { position: relative; overflow: hidden; margin-bottom: 2.5rem; background: var(--bi-ink); color: #fff; }
.bi-hero-track { position: relative; min-height: 460px; }
.bi-hero-slide { position: absolute; inset: 0; display: grid; align-items: end; visibility: hidden; opacity: 0; transition: opacity .55s ease, visibility .55s ease; }
.bi-hero-slide.is-active { position: relative; visibility: visible; opacity: 1; }
.bi-hero-slide > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bi-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(23, 23, 19, .9), rgba(23, 23, 19, .24) 70%, rgba(23, 23, 19, .48)); }
.bi-hero-copy { position: relative; z-index: 1; width: min(1240px, calc(100% - 48px)); padding: 4rem 0 4.5rem; }
.bi-hero-index { display: block; color: var(--bi-gold); font-family: var(--bi-condensed); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.bi-hero-copy h1 { max-width: 760px; margin: .65rem 0 .8rem; color: #fff; font-size: clamp(2.8rem, 6vw, calc(var(--bi-heading-size, 56px) * 1.8)); font-weight: 500; letter-spacing: -.05em; line-height: .9; }
.bi-hero-copy p { max-width: 620px; margin: 0 0 1.2rem; color: rgba(255, 255, 255, .78); font-size: 1rem; line-height: 1.45; }
.bi-hero-link { display: inline-flex; align-items: center; gap: .45rem; border-bottom: 1px solid var(--bi-gold); color: #fff; font-family: var(--bi-condensed); font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.bi-hero-link:hover { color: var(--bi-gold); }
.bi-hero-controls { position: absolute; right: 0; bottom: 1.2rem; left: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.bi-hero-dots, .bi-hero-arrows { display: flex; align-items: center; gap: .45rem; }
.bi-hero-dots button, .bi-hero-arrows button { display: grid; width: 34px; height: 34px; border: 1px solid rgba(255, 255, 255, .5); background: transparent; color: #fff; cursor: pointer; place-items: center; }
.bi-hero-dots button { width: 26px; height: 4px; border: 0; background: rgba(255, 255, 255, .45); }
.bi-hero-dots button.is-active, .bi-hero-dots button:hover, .bi-hero-arrows button:hover { border-color: var(--bi-gold); background: var(--bi-gold); color: var(--bi-ink); }

/* Magazine masthead */
.bi-header { position: relative; z-index: 40; background: var(--bi-sheet); }
.bi-topbar { background: var(--bi-ink); color: rgba(255, 255, 255, .76); }
.bi-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 31px;
    font-family: var(--bi-condensed);
    font-size: .68rem;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.bi-publication { display: inline-flex; align-items: center; gap: .55rem; }
.bi-publication i { width: 6px; height: 6px; border-radius: 50%; background: var(--bi-gold); }
.bi-masthead { position: relative; display: grid; min-height: 190px; border-bottom: 1px solid var(--bi-ink); place-items: center; }
.bi-brand { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; max-width: calc(100% - 190px); color: var(--bi-ink); text-align: center; text-decoration: none; }
.bi-brand-logo { width: 70px; height: 70px; object-fit: contain; }
.bi-brand.has-logo .bi-brand-logo { width: min(380px, 65vw); height: auto; max-height: 118px; }
.bi-brand.has-logo .bi-brand-copy { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.bi-brand-copy { display: flex; flex-direction: column; align-items: center; }
.bi-brand-overline { font-family: var(--bi-condensed); font-size: .66rem; font-weight: 600; letter-spacing: .32em; text-transform: uppercase; }
.bi-brand-name { margin: -.05em 0 -.12em; font-size: clamp(3.2rem, 7vw, calc(var(--bi-heading-size, 56px) * 1.7)); font-weight: 600; letter-spacing: -.055em; line-height: .95; }
.bi-brand-tagline { color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.bi-menu-toggle { display: none; }
.bi-search-link {
    position: absolute;
    right: 0;
    display: flex;
    align-items: center;
    gap: .55rem;
    color: var(--bi-ink);
    font-family: var(--bi-condensed);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
}
.bi-search-link b { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--bi-ink); font-size: 1rem; }
.bi-search-icon { position: relative; display: block; width: 13px; height: 13px; border: 1.7px solid currentColor; border-radius: 50%; }
.bi-search-icon::after { position: absolute; right: -5px; bottom: -3px; width: 7px; height: 1.7px; background: currentColor; content: ''; transform: rotate(45deg); transform-origin: left center; }
.bi-search-link:hover { color: var(--bi-red); }
.bi-search-link:hover b { border-color: var(--bi-red); }
.bi-nav-frame { border-bottom: 1px solid var(--bi-ink); background: var(--bi-sheet); }
.bi-nav { display: flex; align-items: stretch; justify-content: center; min-height: 48px; }
.bi-nav-item { position: relative; display: flex; align-items: stretch; }
.bi-nav-item > a {
    position: relative;
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: .25rem 1.15rem;
    color: var(--bi-ink);
    font-family: var(--bi-condensed);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-decoration: none;
    text-transform: uppercase;
}
.bi-nav-item > a::after { position: absolute; right: 1.15rem; bottom: 8px; left: 1.15rem; height: 2px; background: var(--bi-red); content: ""; transform: scaleX(0); transition: transform .2s ease; }
.bi-nav-item > a:hover::after, .bi-nav-item > a.is-active::after { transform: scaleX(1); }
.bi-nav-arrow { font-size: .75rem; transition: transform .2s ease; }
.bi-nav-item:hover .bi-nav-arrow { transform: translateY(2px); }
.bi-submenu {
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    z-index: 50;
    display: none;
    width: 230px;
    border: 1px solid var(--bi-ink);
    background: var(--bi-sheet);
    box-shadow: 8px 8px 0 rgba(23, 23, 19, .13);
}
.bi-nav-item:hover > .bi-submenu, .bi-nav-item:focus-within > .bi-submenu { display: block; }
.bi-submenu-item { position: relative; }
.bi-submenu-item > a { display: block; border-bottom: 1px solid var(--bi-warm); padding: .72rem .85rem; color: var(--bi-ink); font-family: var(--bi-condensed); font-size: .8rem; font-weight: 600; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.bi-submenu-item:last-child > a { border-bottom: 0; }
.bi-submenu-item > a:hover, .bi-submenu-item > a.is-active { background: var(--bi-red); color: #fff; }
.bi-submenu-item > .bi-submenu { top: -1px; left: 100%; }
.bi-submenu-item:hover > .bi-submenu, .bi-submenu-item:focus-within > .bi-submenu { display: block; }
.bi-mobile-nav { display: none; border-bottom: 1px solid var(--bi-ink); background: var(--bi-sheet); }
.bi-mobile-primary, .bi-mobile-subnav a { display: block; color: var(--bi-ink); text-decoration: none; }

/* Homepage cover */
.bi-main { min-height: 50vh; padding-bottom: 5rem; }
.bi-home > section, .bi-home > .bi-issue-bar { animation: bi-rise .55s ease both; }
.bi-home > section:nth-child(2) { animation-delay: .06s; }
.bi-home > section:nth-child(3) { animation-delay: .12s; }
.bi-home > section:nth-child(4) { animation-delay: .18s; }
@keyframes bi-rise { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }
.bi-issue-bar {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1.5rem;
    min-height: 54px;
    border-bottom: 1px solid var(--bi-line);
    font-size: .85rem;
}
.bi-issue-no { color: var(--bi-red); font-family: var(--bi-condensed); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.bi-issue-bar p { margin: 0; color: var(--bi-muted); font-style: italic; }
.bi-issue-bar a { color: var(--bi-ink); font-family: var(--bi-condensed); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.bi-issue-bar a:hover { color: var(--bi-red); }
.bi-cover-story { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(310px, .68fr); border-bottom: 1px solid var(--bi-ink); }
.bi-cover-lead { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(300px, .94fr); min-height: 590px; padding: 2rem 2rem 2rem 0; border-right: 1px solid var(--bi-ink); }
.bi-cover-lead-media { position: relative; display: block; min-height: 520px; overflow: hidden; background: var(--bi-warm); }
.bi-cover-lead-media::after { position: absolute; inset: 0; border: 1px solid rgba(23, 23, 19, .12); content: ""; pointer-events: none; }
.bi-cover-lead-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(1.03); transition: transform .6s ease; }
.bi-cover-lead:hover .bi-cover-lead-media img { transform: scale(1.025); }
.bi-cover-lead-copy { display: flex; flex-direction: column; justify-content: center; padding: 2rem 0 2rem 2rem; }
.bi-cover-lead-copy h1 { margin: .75rem 0 1rem; font-size: clamp(2.6rem, 4.5vw, calc(var(--bi-heading-size, 56px) * 1.5)); font-weight: 500; letter-spacing: -.045em; line-height: .89; }
.bi-cover-lead-copy h1 a, .bi-cover-side-card h2 a, .bi-editorial-card h3 a, .bi-voice-card h3 a { color: inherit; text-decoration: none; }
.bi-cover-lead-copy h1 a:hover, .bi-cover-side-card h2 a:hover, .bi-editorial-card h3 a:hover, .bi-voice-card h3 a:hover { color: var(--bi-red); }
.bi-cover-lead-copy p { margin: 0 0 1.25rem; color: var(--bi-muted); font-size: 1rem; line-height: 1.55; }
.bi-cover-side { display: grid; grid-template-rows: 1.25fr .75fr; padding: 2rem 0 2rem 2rem; }
.bi-cover-side-card { display: flex; flex-direction: column; justify-content: center; }
.bi-cover-side-card + .bi-cover-side-card { margin-top: 1.6rem; padding-top: 1.6rem; border-top: 1px solid var(--bi-line); }
.bi-cover-side-media { display: block; height: 225px; margin-bottom: 1rem; overflow: hidden; background: var(--bi-warm); }
.bi-cover-side-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.bi-cover-side-card:hover img { transform: scale(1.035); }
.bi-cover-side-card h2 { margin: .4rem 0 .55rem; font-size: clamp(1.55rem, 2.1vw, 2.25rem); font-weight: 500; letter-spacing: -.02em; line-height: 1; }
.bi-cover-side-card p { margin: 0 0 .7rem; color: var(--bi-muted); font-size: .88rem; line-height: 1.5; }
.bi-meta { display: flex; flex-wrap: wrap; gap: .35rem 1rem; color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .68rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.bi-meta strong { color: var(--bi-red); }
.bi-newsline { display: grid; grid-template-columns: 125px repeat(3, 1fr); border-bottom: 1px solid var(--bi-ink); }
.bi-newsline-label { display: flex; flex-direction: column; justify-content: center; min-height: 112px; border-right: 1px solid var(--bi-ink); font-family: var(--bi-condensed); font-size: 1.25rem; font-weight: 800; letter-spacing: .02em; line-height: .95; text-transform: uppercase; }
.bi-newsline-label span { color: var(--bi-red); }
.bi-newsline > a { display: flex; flex-direction: column; justify-content: center; gap: .25rem; min-width: 0; padding: 1rem 1.3rem; border-right: 1px solid var(--bi-line); color: var(--bi-ink); text-decoration: none; }
.bi-newsline > a:last-child { border-right: 0; }
.bi-newsline small, .bi-ranked-story small { color: var(--bi-red); font-family: var(--bi-condensed); font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.bi-newsline strong { font-size: 1rem; font-weight: 600; line-height: 1.15; }
.bi-newsline a:hover strong { color: var(--bi-red); }

/* Editorial sections */
.bi-mag-section { padding: 4.5rem 0 1rem; }
.bi-mag-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; padding-bottom: .9rem; border-bottom: 3px solid var(--bi-ink); }
.bi-mag-heading > div { position: relative; padding-left: 3rem; }
.bi-section-index { position: absolute; bottom: .05rem; left: 0; color: var(--bi-red); font-family: var(--bi-condensed); font-size: 1.7rem; font-weight: 800; line-height: 1; }
.bi-mag-heading h2 { margin: .22rem 0 0; font-size: clamp(2.2rem, 4vw, calc(var(--bi-heading-size, 56px) * 1.1)); font-weight: 500; letter-spacing: -.04em; line-height: .9; }
.bi-mag-heading > p { max-width: 370px; margin: 0; color: var(--bi-muted); font-size: .9rem; line-height: 1.45; }
.bi-section-link { flex: none; font-size: .74rem; }
.bi-latest-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 2rem; }
.bi-editorial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1.4rem; }
.bi-editorial-card { border-bottom: 1px solid var(--bi-line); padding-bottom: 1.35rem; }
.bi-editorial-card.is-large { grid-column: 1 / -1; display: grid; grid-template-columns: 1.15fr .85fr; gap: 1.5rem; }
.bi-editorial-media { display: block; height: 210px; overflow: hidden; background: var(--bi-warm); }
.bi-editorial-card.is-large .bi-editorial-media { height: 370px; }
.bi-editorial-media img, .bi-voice-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.bi-editorial-card:hover img, .bi-voice-card:hover img { transform: scale(1.03); }
.bi-editorial-copy { padding-top: .85rem; }
.bi-editorial-card.is-large .bi-editorial-copy { display: flex; flex-direction: column; justify-content: center; padding: 1rem 0; }
.bi-editorial-card h3 { margin: .42rem 0 .65rem; font-size: 1.55rem; font-weight: 500; letter-spacing: -.02em; line-height: 1; }
.bi-editorial-card.is-large h3 { font-size: clamp(2.15rem, 3.3vw, 3.5rem); }
.bi-editorial-card p { margin: 0 0 1rem; color: var(--bi-muted); font-size: .92rem; }
.bi-most-read { align-self: start; border-top: 8px solid var(--bi-red); background: var(--bi-ink); color: #fff; }
.bi-most-read-title { display: flex; align-items: end; justify-content: space-between; padding: 1.2rem 1.25rem 1rem; border-bottom: 1px solid rgba(255, 255, 255, .18); }
.bi-most-read-title span { font-size: 1.55rem; font-weight: 500; line-height: 1; }
.bi-most-read-title small { color: rgba(255, 255, 255, .52); font-family: var(--bi-condensed); font-size: .62rem; letter-spacing: .09em; text-transform: uppercase; }
.bi-ranked-story { display: grid; grid-template-columns: 43px 1fr; gap: .75rem; padding: 1rem 1.15rem; border-bottom: 1px solid rgba(255, 255, 255, .15); color: #fff; text-decoration: none; }
.bi-ranked-story > span { color: var(--bi-gold); font-family: var(--bi-condensed); font-size: 1.35rem; font-weight: 700; line-height: 1; }
.bi-ranked-story strong { display: block; margin-top: .2rem; font-size: 1rem; font-weight: 500; line-height: 1.15; }
.bi-ranked-story:hover { background: var(--bi-red-dark); }
.bi-rubric-section { margin-top: 3.5rem; padding: 3rem 2.6rem 2.6rem; background: var(--bi-forest); color: #fff; }
.bi-rubric-section .bi-mag-heading { border-color: rgba(255, 255, 255, .8); }
.bi-rubric-section .bi-mag-heading > p { color: rgba(255, 255, 255, .65); }
.bi-rubric-section .bi-kicker, .bi-rubric-section .bi-section-index { color: var(--bi-gold); }
.bi-rubric-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255, 255, 255, .24); border-left: 1px solid rgba(255, 255, 255, .24); }
.bi-rubric { position: relative; min-height: 150px; border-right: 1px solid rgba(255, 255, 255, .24); border-bottom: 1px solid rgba(255, 255, 255, .24); padding: 1.1rem; color: #fff; text-decoration: none; transition: background .2s ease; }
.bi-rubric > span { color: var(--bi-gold); font-family: var(--bi-condensed); font-size: .72rem; font-weight: 700; }
.bi-rubric h3 { max-width: 85%; margin: 1rem 0 .3rem; font-size: 1.35rem; font-weight: 500; line-height: 1; }
.bi-rubric small { color: rgba(255, 255, 255, .58); font-family: var(--bi-condensed); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.bi-rubric b { position: absolute; right: 1rem; bottom: .8rem; color: var(--bi-gold); font-family: var(--bi-condensed); font-size: 1.2rem; }
.bi-rubric:hover { background: rgba(255, 255, 255, .1); }
.bi-voices-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; }
.bi-voice-card { position: relative; }
.bi-voice-card:nth-child(even) { padding-top: 2rem; }
.bi-voice-media { display: block; height: 300px; margin-bottom: 1rem; overflow: hidden; background: var(--bi-warm); }
.bi-voice-number { display: block; margin-bottom: .35rem; color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.bi-voice-card h3 { margin: .42rem 0 .65rem; font-size: 1.45rem; font-weight: 500; line-height: 1; }
.bi-editor-note { position: relative; display: grid; grid-template-columns: 85px 1.2fr .8fr; align-items: center; gap: 1.7rem; margin-top: 5rem; padding: 2.7rem; background: var(--bi-gold); }
.bi-editor-note-mark { align-self: start; font-size: 7rem; line-height: .72; }
.bi-editor-note blockquote { max-width: 700px; margin: .65rem 0 0; font-size: clamp(2rem, 4vw, 4rem); font-weight: 500; letter-spacing: -.04em; line-height: .92; }
.bi-editor-note-copy { padding-left: 1.7rem; border-left: 1px solid rgba(23, 23, 19, .35); }
.bi-editor-note-copy p { margin: 0 0 1.2rem; font-size: .93rem; }
.bi-editor-note-copy div { display: flex; gap: .7rem; }
.bi-editor-note-copy a { border-bottom: 1px solid var(--bi-ink); color: var(--bi-ink); font-family: var(--bi-condensed); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.bi-cover-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 160px; background: var(--bi-warm); color: var(--bi-red); }
.bi-cover-placeholder span { font-size: 5rem; font-weight: 600; line-height: .8; }
.bi-cover-placeholder small { font-family: var(--bi-condensed); font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }

/* Archive and static pages */
.bi-page-heading { padding: 3.5rem 0 2rem; border-bottom: 3px solid var(--bi-ink); }
.bi-page-heading h1 { max-width: 900px; margin: .55rem 0 .7rem; font-size: clamp(3rem, 7vw, calc(var(--bi-heading-size, 56px) * 1.9)); font-weight: 500; letter-spacing: -.055em; line-height: .84; }
.bi-page-heading p { max-width: 720px; margin: 0; color: var(--bi-muted); }
.bi-filter { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 1.25rem 0; }
.bi-filter form { display: flex; gap: .55rem; flex: 1 1 320px; }
.bi-input, .bi-select { width: 100%; min-height: 42px; border: 1px solid var(--bi-line); border-radius: 0; background: var(--bi-sheet); color: var(--bi-ink); padding: .62rem .8rem; outline: none; }
.bi-input:focus, .bi-select:focus { border-color: var(--bi-red); box-shadow: 3px 3px 0 rgba(189, 58, 45, .13); }
.bi-filter-chip { border: 1px solid var(--bi-line); padding: .42rem .65rem; color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .7rem; font-weight: 600; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.bi-filter-chip:hover, .bi-filter-chip.is-active { border-color: var(--bi-ink); background: var(--bi-ink); color: #fff; }
.bi-search-panel { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 1.5rem 0 2rem; border: 1px solid var(--bi-line); border-top: 4px solid var(--bi-ink); background: rgba(251, 250, 245, .72); padding: 1rem 1.1rem; }
.bi-search-form { flex: 1 1 auto; min-width: 0; }
.bi-search-label { display: block; margin-bottom: .45rem; color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .68rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.bi-search-row { display: flex; gap: .55rem; }
.bi-search-row .bi-input { min-height: 48px; background: #fff; }
.bi-search-row .bi-button { display: inline-flex; min-height: 48px; align-items: center; gap: .7rem; justify-content: center; white-space: nowrap; }
.bi-search-reset { flex: none; border-bottom: 1px solid var(--bi-line); color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.bi-search-reset:hover { border-color: var(--bi-red); color: var(--bi-red); }
.bi-search-results { margin-top: 1rem; }
.bi-search-results-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .35rem; border-bottom: 3px solid var(--bi-ink); padding: 0 0 .7rem; }
.bi-search-results-head strong { color: var(--bi-red); font-family: var(--bi-condensed); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.bi-list-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 2.5rem; margin-top: 2rem; }
.bi-list { display: grid; }
.bi-story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.35rem; }
.bi-story-card { color: var(--bi-ink); text-decoration: none; }
.bi-list .bi-story-card { display: grid; grid-template-columns: 250px 1fr; border-top: 1px solid var(--bi-ink); padding: 1.3rem 0; }
.bi-list .bi-story-card:first-child { border-top-width: 3px; }
.bi-cover { position: relative; display: block; min-height: 190px; overflow: hidden; background: var(--bi-warm); }
.bi-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.bi-story-card:hover .bi-cover img { transform: scale(1.035); }
.bi-story-copy { padding: 1rem 1.2rem; }
.bi-list .bi-story-copy { padding: .25rem 0 .25rem 1.4rem; }
.bi-story-copy h3 { margin: .4rem 0 .55rem; font-size: 1.65rem; font-weight: 500; letter-spacing: -.02em; line-height: 1; }
.bi-story-copy p { margin: 0 0 .7rem; color: var(--bi-muted); font-size: .88rem; }
.bi-sidebar { align-self: start; }
.bi-sidebar-card { border-top: 5px solid var(--bi-ink); background: rgba(251, 250, 245, .7); padding: 1.15rem; }
.bi-sidebar-card + .bi-sidebar-card { margin-top: 1.2rem; }
.bi-sidebar-card h3 { margin: 0 0 .85rem; font-size: 1.35rem; font-weight: 600; line-height: 1; }
.bi-sidebar-stack { display: grid; gap: 1.2rem; }
.bi-sidebar > .bi-sidebar-stack { margin-top: 1.2rem; }
.bi-sidebar-card > h3 { padding-bottom: .7rem; border-bottom: 1px solid var(--bi-line); }
.bi-sidebar-story { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: .7rem; align-items: start; padding: .65rem 0; border-bottom: 1px solid var(--bi-warm); color: var(--bi-ink); text-decoration: none; }
.bi-sidebar-story:last-child { border-bottom: 0; padding-bottom: 0; }
.bi-sidebar-story-image { display: block; width: 58px; height: 48px; overflow: hidden; background: var(--bi-warm); }
.bi-sidebar-story-image img { width: 100%; height: 100%; object-fit: cover; }
.bi-sidebar-story strong { display: block; font-size: .86rem; font-weight: 600; line-height: 1.18; }
.bi-sidebar-story small { display: block; margin-top: .3rem; color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; }
.bi-sidebar-story:hover strong { color: var(--bi-red); }
.bi-sidebar-ranked { display: grid; }
.bi-sidebar-ranked a { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: .55rem; border-bottom: 1px solid var(--bi-warm); padding: .65rem 0; color: var(--bi-ink); text-decoration: none; }
.bi-sidebar-ranked a:last-child { border-bottom: 0; padding-bottom: 0; }
.bi-sidebar-ranked span { color: var(--bi-red); font-family: var(--bi-condensed); font-size: .85rem; font-weight: 700; }
.bi-sidebar-ranked strong { font-size: .86rem; font-weight: 600; line-height: 1.18; }
.bi-sidebar-ranked a:hover strong { color: var(--bi-red); }
.bi-sidebar-image { padding: 0; overflow: hidden; }
.bi-sidebar-image h3 { margin: 0; padding: 1.15rem 1.15rem .75rem; }
.bi-sidebar-image > a, .bi-sidebar-image > img { display: block; }
.bi-sidebar-image img { width: 100%; height: auto; }
.bi-sidebar-html { font-size: .84rem; line-height: 1.5; }
.bi-sidebar-social { display: flex; flex-wrap: wrap; gap: .45rem; }
.bi-sidebar-social a { border: 1px solid var(--bi-line); padding: .38rem .55rem; color: var(--bi-ink); font-family: var(--bi-condensed); font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.bi-sidebar-social a:hover { border-color: var(--bi-red); color: var(--bi-red); }
.bi-sidebar-links { display: flex; flex-wrap: wrap; gap: .4rem; }
.bi-sidebar-links a { border-bottom: 1px solid var(--bi-line); color: var(--bi-ink); padding: .25rem 0; font-family: var(--bi-condensed); font-size: .7rem; font-weight: 600; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.bi-sidebar-links a:hover { border-color: var(--bi-red); color: var(--bi-red); }
.bi-sidebar-list { display: grid; gap: .75rem; }
.bi-sidebar-list a { color: var(--bi-ink); font-size: 1rem; font-weight: 500; line-height: 1.1; text-decoration: none; }
.bi-sidebar-list a:hover { color: var(--bi-red); }
.bi-mini-list { display: grid; }
.bi-mini-item { display: grid; grid-template-columns: 115px 1fr; gap: 1rem; border-bottom: 1px solid var(--bi-line); padding: 1rem 0; color: var(--bi-ink); text-decoration: none; }
.bi-mini-item .bi-cover { min-height: 85px; }
.bi-mini-item h4 { margin: .3rem 0; font-size: 1.15rem; font-weight: 500; line-height: 1.05; }
.bi-mini-item p { margin: 0; color: var(--bi-muted); font-size: .75rem; }
.bi-feature-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem; margin-top: 2rem; }
.bi-paper-card { border-top: 5px solid var(--bi-ink); background: var(--bi-sheet); padding: 1.5rem; }
.bi-empty { margin: 2rem 0; border: 1px dashed var(--bi-line); padding: 3rem 1rem; color: var(--bi-muted); text-align: center; }

/* Public collections */
.bi-archive-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.bi-media-card { display: flex; min-width: 0; flex-direction: column; border-top: 4px solid var(--bi-ink); background: rgba(251, 250, 245, .8); color: var(--bi-ink); text-decoration: none; transition: transform .25s ease, border-color .25s ease; }
.bi-media-card:hover { border-color: var(--bi-red); transform: translateY(-4px); }
.bi-card-media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--bi-warm); }
.bi-card-media.is-portrait { aspect-ratio: 3 / 4; }
.bi-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.bi-media-card:hover .bi-card-media img { transform: scale(1.035); }
.bi-card-copy { display: flex; flex: 1; flex-direction: column; padding: 1.15rem; }
.bi-card-copy h2, .bi-card-copy h3 { margin: .45rem 0 .65rem; font-size: 1.55rem; font-weight: 500; letter-spacing: -.02em; line-height: 1.02; }
.bi-card-copy p { margin: 0 0 .9rem; color: var(--bi-muted); font-size: .86rem; line-height: 1.55; }
.bi-card-copy .bi-meta { margin-top: auto; }
.bi-play-mark { position: absolute; inset: 50% auto auto 50%; display: grid; width: 58px; height: 58px; border: 1px solid rgba(255, 255, 255, .8); border-radius: 50%; background: rgba(23, 23, 19, .72); color: #fff; place-items: center; transform: translate(-50%, -50%); }
.bi-play-mark::before { margin-left: 4px; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 13px solid currentColor; content: ""; }
.bi-date-block { display: grid; width: 58px; min-width: 58px; min-height: 64px; align-content: center; background: var(--bi-red); color: #fff; text-align: center; }
.bi-date-block strong { font-family: var(--bi-condensed); font-size: 1.65rem; line-height: .9; }
.bi-date-block span { font-family: var(--bi-condensed); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.bi-announcement-list, .bi-document-list { display: grid; gap: 0; margin-top: 2rem; border-top: 3px solid var(--bi-ink); }
.bi-announcement-card, .bi-document-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.2rem; border-bottom: 1px solid var(--bi-line); padding: 1.2rem 0; color: var(--bi-ink); text-decoration: none; }
.bi-announcement-card:hover h2, .bi-document-card:hover h2 { color: var(--bi-red); }
.bi-announcement-card h2, .bi-document-card h2 { margin: .25rem 0; font-size: 1.45rem; font-weight: 500; line-height: 1.05; }
.bi-announcement-card p, .bi-document-card p { margin: 0; color: var(--bi-muted); font-size: .82rem; }
.bi-card-arrow { color: var(--bi-red); font-family: var(--bi-condensed); font-size: 1.4rem; }
.bi-document-icon { display: grid; width: 58px; height: 64px; border: 1px solid var(--bi-ink); color: var(--bi-red); font-family: var(--bi-condensed); font-size: .75rem; font-weight: 800; letter-spacing: .08em; place-items: center; }
.bi-detail-figure { position: relative; margin: 2rem 0; }
.bi-lightbox-trigger { position: relative; display: block; width: 100%; border: 0; background: transparent; cursor: zoom-in; padding: 0; text-align: inherit; }
.bi-lightbox-trigger .bi-article-image, .bi-lightbox-trigger > img { display: block; margin: 0; }
.bi-zoom-label { position: absolute; right: .8rem; bottom: .8rem; border: 1px solid rgba(255, 255, 255, .55); background: rgba(23, 23, 19, .82); color: #fff; padding: .38rem .58rem; font-family: var(--bi-condensed); font-size: .66rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.bi-video-frame { position: relative; margin: 2rem 0; aspect-ratio: 16 / 9; overflow: hidden; background: #0d0d0b; }
.bi-video-frame iframe, .bi-video-frame video { display: block; width: 100%; height: 100%; border: 0; }
.bi-attachments { margin: 2rem 0; border-top: 3px solid var(--bi-ink); }
.bi-attachments h2 { margin: 1rem 0 .6rem; font-size: 1.5rem; font-weight: 500; }
.bi-attachment { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--bi-line); padding: .85rem 0; color: var(--bi-ink); text-decoration: none; }
.bi-attachment:hover { color: var(--bi-red); }
.bi-detail-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.25rem 0; }
.bi-reader { margin: 1.5rem 0; border: 1px solid var(--bi-line); background: var(--bi-sheet); }
.bi-reader-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--bi-line); padding: .8rem 1rem; }
.bi-reader-head h2 { margin: 0; font-size: 1.25rem; font-weight: 500; }
.bi-reader iframe { display: block; width: 100%; min-height: 720px; border: 0; background: #fff; }
.bi-caption { margin: .65rem 0 0; color: var(--bi-muted); font-size: .8rem; font-style: italic; text-align: center; }

/* Image lightbox */
body.bi-lightbox-open { overflow: hidden; }
.bi-lightbox { position: fixed; inset: 0; z-index: 10000; display: grid; visibility: hidden; background: rgba(10, 10, 8, .96); opacity: 0; padding: 4.5rem 1.5rem 2rem; place-items: center; transition: opacity .2s ease, visibility .2s ease; }
.bi-lightbox.is-open { visibility: visible; opacity: 1; }
.bi-lightbox-dialog { position: relative; display: grid; max-width: min(1180px, 100%); max-height: 100%; place-items: center; }
.bi-lightbox img { display: block; max-width: 100%; max-height: calc(100vh - 8rem); object-fit: contain; box-shadow: 0 18px 60px rgba(0, 0, 0, .45); transform: scale(.975); transition: transform .2s ease; }
.bi-lightbox.is-open img { transform: scale(1); }
.bi-lightbox-close { position: absolute; top: 1rem; right: 1rem; z-index: 2; display: grid; width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, .45); background: transparent; color: #fff; cursor: pointer; font-size: 1.7rem; line-height: 1; place-items: center; }
.bi-lightbox-close:hover { background: #fff; color: var(--bi-ink); }
.bi-lightbox-caption { margin: .75rem 0 0; color: rgba(255, 255, 255, .75); font-size: .85rem; text-align: center; }
.bi-richtext img { cursor: zoom-in; }

/* Configured site popup */
body.bi-popup-open { overflow: hidden; }
.bi-popup { position: fixed; inset: 0; z-index: 9000; display: grid; visibility: hidden; overflow-y: auto; background: rgba(23, 23, 19, .76); opacity: 0; padding: 1.25rem; place-items: center; transition: opacity .2s ease, visibility .2s ease; }
.bi-popup.is-open { visibility: visible; opacity: 1; }
.bi-popup-dialog { position: relative; width: min(620px, 100%); max-height: min(90vh, 760px); overflow: auto; border-top: 5px solid var(--bi-red); background: var(--bi-sheet); box-shadow: 0 22px 80px rgba(0, 0, 0, .4); transform: translateY(12px); transition: transform .2s ease; }
.bi-popup.is-open .bi-popup-dialog { transform: translateY(0); }
.bi-popup-close { position: absolute; top: .7rem; right: .7rem; z-index: 2; display: grid; width: 38px; height: 38px; border: 1px solid rgba(255, 255, 255, .62); background: rgba(23, 23, 19, .7); color: #fff; cursor: pointer; font-size: 1.45rem; line-height: 1; place-items: center; }
.bi-popup-close:hover { background: var(--bi-red); }
.bi-popup-media { overflow: hidden; background: var(--bi-warm); }
.bi-popup-media > img, .bi-popup-media > video { display: block; width: 100%; max-height: 430px; object-fit: contain; }
.bi-popup-rich { max-height: 430px; overflow: auto; padding: 1rem; }
.bi-popup-copy { padding: 1.5rem 1.6rem 1.6rem; }
.bi-popup-copy h2 { margin: .45rem 0 .65rem; font-size: clamp(2rem, 4vw, 3rem); font-weight: 500; letter-spacing: -.04em; line-height: .95; }
.bi-popup-copy p { margin: 0; color: var(--bi-muted); font-size: .95rem; line-height: 1.55; }
.bi-popup-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }

/* Pagination */
.bi-pagination-block { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--bi-line); }
.bi-pagination-caption { display: block; margin-bottom: .65rem; color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.bi-pagination { overflow-x: auto; padding-bottom: .35rem; }
.bi-pagination nav { display: flex; justify-content: flex-start; min-width: max-content; }
.bi-pagination nav > ul { display: inline-flex; align-items: center; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.bi-pagination nav li { display: block; margin: 0; padding: 0; }
.bi-pagination nav a, .bi-pagination nav span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    min-height: 38px;
    border: 1px solid var(--bi-line);
    border-radius: 0;
    background: transparent;
    color: var(--bi-ink);
    padding: .45rem .7rem;
    font-family: var(--bi-condensed);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}
.bi-pagination nav span { border-color: var(--bi-ink); background: var(--bi-ink); color: #fff; }
.bi-pagination nav a:hover { border-color: var(--bi-red); background: var(--bi-red); color: #fff; }

/* Contact page */
.bi-contact-page { padding-top: 2.8rem; }
.bi-contact-intro { display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: end; gap: 2rem; padding-bottom: 2rem; border-bottom: 3px solid var(--bi-ink); }
.bi-contact-intro h1 { max-width: 800px; margin: .6rem 0 .8rem; font-size: clamp(3rem, 7vw, calc(var(--bi-heading-size, 56px) * 1.9)); font-weight: 500; letter-spacing: -.06em; line-height: .83; }
.bi-contact-intro p { max-width: 670px; margin: 0; color: var(--bi-muted); font-size: 1.05rem; }
.bi-contact-intro-aside { border-left: 1px solid var(--bi-line); padding-left: 1.3rem; }
.bi-contact-intro-aside strong { display: block; margin-top: .35rem; font-size: 1.55rem; font-weight: 500; line-height: 1; }
.bi-contact-intro-aside p { margin: .5rem 0 0; font-size: .82rem; }
.bi-contact-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 2.5rem; align-items: start; margin-top: 2.5rem; }
.bi-contact-notes { display: grid; gap: 0; }
.bi-contact-note { display: grid; grid-template-columns: 42px 1fr; gap: .8rem; border-top: 1px solid var(--bi-line); padding: 1rem 0 1.1rem; }
.bi-contact-note:last-child { border-bottom: 1px solid var(--bi-line); }
.bi-contact-note-emergency { margin-top: 1.5rem; }
.bi-contact-note-mark { color: var(--bi-red); font-family: var(--bi-condensed); font-size: 1.45rem; font-weight: 700; line-height: 1; }
.bi-contact-note h2 { margin: 0 0 .3rem; font-family: var(--bi-condensed); font-size: .74rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.bi-contact-note p, .bi-contact-note a { margin: 0; color: var(--bi-muted); font-size: .93rem; line-height: 1.45; text-decoration: none; }
.bi-contact-note a:hover { color: var(--bi-red); }
.bi-contact-quick { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.bi-contact-quick a { border: 1px solid var(--bi-ink); color: var(--bi-ink); padding: .52rem .7rem; font-family: var(--bi-condensed); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.bi-contact-quick a:hover { background: var(--bi-ink); color: #fff; }
.bi-contact-social { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.bi-contact-social a { color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.bi-contact-social a + a::before { margin: 0 .55rem 0 .2rem; color: var(--bi-line); content: "/"; }
.bi-contact-social a:hover { color: var(--bi-red); }
.bi-contact-form { border: 1px solid var(--bi-ink); background: var(--bi-sheet); padding: 2rem; }
.bi-contact-form-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--bi-line); }
.bi-contact-form-head h2 { margin: .45rem 0 0; font-size: 2.1rem; font-weight: 500; line-height: .95; }
.bi-contact-form-head p { max-width: 210px; margin: 0; color: var(--bi-muted); font-size: .78rem; line-height: 1.4; text-align: right; }
.bi-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.bi-form-field { display: grid; gap: .35rem; }
.bi-form-field-full { grid-column: 1 / -1; }
.bi-form-field label { color: var(--bi-ink); font-family: var(--bi-condensed); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.bi-form-field label em { color: var(--bi-red); font-style: normal; }
.bi-form-field .bi-input { border-color: var(--bi-line); background: #fff; }
.bi-form-field textarea.bi-input { min-height: 160px; resize: vertical; }
.bi-form-helper { display: flex; justify-content: space-between; gap: .8rem; color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .66rem; letter-spacing: .04em; }
.bi-contact-alert { margin-bottom: 1rem; border-left: 4px solid var(--bi-red); background: rgba(189, 58, 45, .08); padding: .75rem .9rem; color: var(--bi-red-dark); font-size: .82rem; }
.bi-contact-alert.is-success { border-color: var(--bi-forest); background: rgba(54, 91, 78, .1); color: var(--bi-forest); }
.bi-recaptcha-wrap { margin: 1rem 0 0; overflow: hidden; }
.bi-contact-submit { width: 100%; margin-top: 1rem; }
.bi-map-section { margin-top: 3rem; border-top: 3px solid var(--bi-ink); padding-top: 1rem; }
.bi-map-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.bi-map-heading h2 { margin: .3rem 0 0; font-size: 2.2rem; font-weight: 500; line-height: .9; }
.bi-map-heading p { margin: 0; color: var(--bi-muted); font-size: .85rem; }
.bi-map-frame { min-height: 360px; overflow: hidden; border: 1px solid var(--bi-line); background: var(--bi-warm); }
.bi-map-frame iframe { display: block; width: 100%; min-height: 360px; border: 0; }

/* Long-form reading */
.bi-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 4rem; align-items: start; padding-top: 3.5rem; }
.bi-article { max-width: 850px; }
.bi-article-header { padding-bottom: 1.8rem; border-bottom: 3px solid var(--bi-ink); }
.bi-article h1 { margin: .7rem 0 1.2rem; font-size: clamp(3rem, 7vw, calc(var(--bi-heading-size, 56px) * 1.85)); font-weight: 500; letter-spacing: -.055em; line-height: .84; }
.bi-article-dek { max-width: 740px; margin: 0 0 1.2rem; color: var(--bi-muted); font-size: 1.18rem; line-height: 1.45; }
.bi-article-image { width: 100%; max-height: 620px; margin: 2rem 0; object-fit: cover; }
.bi-richtext { color: #34342f; font-size: 1.2rem; line-height: 1.88; }
.bi-richtext > p:first-of-type::first-letter { float: left; margin: .08em .12em 0 0; color: var(--bi-red); font-size: 4.4em; font-weight: 600; line-height: .75; }
.bi-richtext p { margin: 0 0 1.35em; }
.bi-richtext > span { display: block; margin: 0 0 1.25em; }
.bi-richtext > b { display: block; margin: 1.5rem 0; text-align: center; letter-spacing: .25em; }
.bi-richtext h2, .bi-richtext h3 { margin: 1.8em 0 .55em; color: var(--bi-ink); font-weight: 600; line-height: 1; }
.bi-richtext h2 { font-size: 2rem; }
.bi-richtext h3 { font-size: 1.55rem; }
.bi-richtext img { max-width: 100%; height: auto; margin: 1.7rem auto; }
.bi-richtext blockquote { margin: 2rem 0; padding: .4rem 0 .4rem 1.3rem; border-left: 5px solid var(--bi-red); color: var(--bi-red-dark); font-size: 1.55rem; font-style: italic; line-height: 1.35; }
.bi-richtext a { color: var(--bi-red); text-decoration-thickness: .08em; text-underline-offset: .15em; }
.bi-share { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--bi-line); }
.bi-share a, .bi-share button { border: 1px solid var(--bi-ink); border-radius: 0; background: transparent; color: var(--bi-ink); cursor: pointer; padding: .45rem .7rem; font-family: var(--bi-condensed); font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.bi-share a:hover, .bi-share button:hover { background: var(--bi-ink); color: #fff; }
.bi-inline-related { margin-top: 2rem; border-top: 1px solid var(--bi-line); border-bottom: 1px solid var(--bi-line); padding: 1rem 0; }
.bi-inline-related-label { display: flex; align-items: center; gap: .75rem; margin-bottom: .25rem; }
.bi-inline-related-label > span:last-child { height: 1px; flex: 1; background: var(--bi-line); }
.bi-inline-related-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
.bi-inline-related-item { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: .65rem; min-width: 0; border-top: 1px solid var(--bi-warm); padding: .85rem 0; color: var(--bi-ink); text-decoration: none; }
.bi-inline-related-item:hover .bi-inline-related-copy strong { color: var(--bi-red); }
.bi-inline-related-index { align-self: start; color: var(--bi-red); font-family: var(--bi-condensed); font-size: .78rem; font-weight: 700; }
.bi-inline-related-copy { min-width: 0; }
.bi-inline-related-copy strong { display: block; overflow: hidden; font-size: .92rem; font-weight: 600; line-height: 1.18; text-overflow: ellipsis; }
.bi-inline-related-copy small { display: block; margin-top: .28rem; color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; }
.bi-inline-related-arrow, .bi-related-arrow { color: var(--bi-red); font-family: var(--bi-condensed); font-size: 1.1rem; }
.bi-related-section { margin-top: 3rem; border-top: 3px solid var(--bi-ink); padding-top: 1.1rem; }
.bi-related-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; }
.bi-related-heading h2 { margin: .45rem 0 .35rem; font-size: clamp(2rem, 4vw, 3rem); font-weight: 500; letter-spacing: -.045em; line-height: .9; }
.bi-related-heading p { max-width: 430px; margin: 0; color: var(--bi-muted); font-size: .82rem; line-height: 1.4; }
.bi-related-heading .bi-section-link { padding-bottom: .25rem; white-space: nowrap; }
.bi-related-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.bi-related-card { position: relative; display: grid; grid-template-columns: 145px minmax(0, 1fr) auto; align-items: stretch; min-width: 0; border-top: 1px solid var(--bi-line); border-bottom: 1px solid var(--bi-line); color: var(--bi-ink); text-decoration: none; transition: border-color .2s ease, transform .2s ease; }
.bi-related-card:hover { border-color: var(--bi-red); transform: translateY(-2px); }
.bi-related-media { position: relative; display: block; min-height: 126px; overflow: hidden; background: var(--bi-warm); }
.bi-related-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.bi-related-card:hover .bi-related-media img { transform: scale(1.04); }
.bi-related-media .bi-cover-placeholder { min-height: 126px; }
.bi-related-media .bi-cover-placeholder span { font-size: 3rem; }
.bi-related-number { position: absolute; top: .55rem; left: .55rem; border: 1px solid rgba(255, 255, 255, .7); background: rgba(23, 23, 19, .75); color: #fff; padding: .2rem .35rem; font-family: var(--bi-condensed); font-size: .62rem; font-weight: 700; letter-spacing: .06em; }
.bi-related-copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: .8rem .85rem; }
.bi-related-copy strong { display: block; margin: .38rem 0 .55rem; overflow: hidden; font-size: 1.12rem; font-weight: 600; letter-spacing: -.015em; line-height: 1.05; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.bi-related-copy small { margin-top: auto; color: var(--bi-muted); font-family: var(--bi-condensed); font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; }
.bi-related-arrow { align-self: center; padding: 0 .8rem 0 0; }

/* Footer */
.bi-footer { border-top: 8px solid var(--bi-red); padding: 3rem 0 1.6rem; background: var(--bi-ink); color: #fff; }
.bi-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 3rem; }
.bi-footer h3 { margin: 0 0 .7rem; font-size: 1.55rem; font-weight: 500; }
.bi-footer p, .bi-footer a { color: rgba(255, 255, 255, .62); font-size: .86rem; }
.bi-footer a { display: block; margin: .38rem 0; font-family: var(--bi-condensed); letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.bi-footer a:hover { color: var(--bi-gold); }
.bi-footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2.4rem; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .18); color: rgba(255, 255, 255, .44); font-family: var(--bi-condensed); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 1040px) {
    .bi-cover-story { grid-template-columns: 1fr; }
    .bi-cover-lead { border-right: 0; padding-right: 0; }
    .bi-cover-side { grid-template-columns: repeat(2, 1fr); grid-template-rows: none; gap: 1.5rem; padding: 0 0 2rem; }
    .bi-cover-side-card + .bi-cover-side-card { margin: 0; padding: 0 0 0 1.5rem; border-top: 0; border-left: 1px solid var(--bi-line); }
    .bi-latest-layout { grid-template-columns: minmax(0, 1fr) 270px; }
    .bi-rubric-grid { grid-template-columns: repeat(2, 1fr); }
    .bi-voices-grid { grid-template-columns: repeat(2, 1fr); }
    .bi-voice-card:nth-child(even) { padding-top: 0; }
    .bi-editor-note { grid-template-columns: 65px 1fr; }
    .bi-editor-note-copy { grid-column: 2; padding: 1.3rem 0 0; border-top: 1px solid rgba(23, 23, 19, .35); border-left: 0; }
    .bi-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
    .bi-container { width: min(100% - 32px, 1240px); }
    .bi-topbar-inner { justify-content: center; }
    .bi-topbar-inner > span:last-child { display: none; }
    .bi-masthead { min-height: 134px; }
    .bi-brand { max-width: calc(100% - 100px); gap: .3rem; }
    .bi-brand-logo { width: 48px; height: 48px; }
    .bi-brand.has-logo .bi-brand-logo { width: min(310px, 67vw); max-height: 88px; }
    .bi-brand-overline, .bi-brand-tagline { display: none; }
    .bi-brand-name { font-size: clamp(2.5rem, 9vw, 4rem); }
    .bi-menu-toggle { position: absolute; left: 0; display: flex; flex-direction: column; justify-content: center; gap: 6px; width: 38px; height: 38px; border: 1px solid var(--bi-ink); background: transparent; cursor: pointer; }
    .bi-menu-toggle span { display: block; width: 18px; height: 2px; margin: 0 auto; background: var(--bi-ink); }
    .bi-search-link > span { display: none; }
    .bi-nav-frame { display: none; }
    .bi-mobile-nav.is-open { display: block; }
    .bi-mobile-nav .bi-container { padding: .7rem 0 1rem; }
    .bi-mobile-primary { border-bottom: 1px solid var(--bi-line); padding: .72rem 0; font-family: var(--bi-condensed); font-size: .84rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
    .bi-mobile-primary.is-active { color: var(--bi-red); }
    .bi-mobile-subnav { border-bottom: 1px solid var(--bi-line); padding: .15rem 0 .55rem 1rem; }
    .bi-mobile-subnav a { padding: .3rem 0; color: var(--bi-muted); font-size: .85rem; }
    .bi-mobile-subnav a.is-active { color: var(--bi-red); }
    .bi-issue-bar { grid-template-columns: 1fr auto; }
    .bi-issue-bar p { display: none; }
    .bi-cover-lead { grid-template-columns: 1fr; min-height: 0; padding-top: 1.4rem; }
    .bi-cover-lead-media { min-height: 470px; }
    .bi-cover-lead-copy { padding: 1.5rem 0 2rem; }
    .bi-cover-side { grid-template-columns: 1fr 1fr; }
    .bi-newsline { grid-template-columns: 95px 1fr 1fr; }
    .bi-newsline > a:nth-of-type(3) { display: none; }
    .bi-latest-layout { grid-template-columns: 1fr; }
    .bi-most-read { display: grid; grid-template-columns: repeat(2, 1fr); }
    .bi-most-read-title { grid-column: 1 / -1; }
    .bi-ranked-story:last-child { display: none; }
    .bi-detail-layout, .bi-list-layout { grid-template-columns: 1fr; gap: 2.5rem; }
    .bi-sidebar { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .bi-sidebar-card + .bi-sidebar-card { margin-top: 0; }
    .bi-sidebar > .bi-sidebar-stack { margin-top: 0; }
    .bi-related-card { grid-template-columns: 125px minmax(0, 1fr) auto; }
    .bi-feature-grid { grid-template-columns: 1fr; }
    .bi-contact-intro { grid-template-columns: 1fr; }
    .bi-contact-intro-aside { border-top: 1px solid var(--bi-line); border-left: 0; padding: 1rem 0 0; }
    .bi-contact-layout { grid-template-columns: 1fr; gap: 2rem; }
    .bi-reader iframe { min-height: 620px; }
}

@media (max-width: 580px) {
    body.bi-body { font-size: clamp(14px, calc(var(--bi-body-size, 17px) * .94), 18px); }
    .bi-container { width: min(100% - 24px, 1240px); }
    .bi-hero-slider { margin-bottom: 1.5rem; }
    .bi-hero-track { min-height: 390px; }
    .bi-hero-copy { width: min(100% - 24px, 1240px); padding: 3rem 0 4.5rem; }
    .bi-hero-copy h1 { font-size: clamp(2.35rem, 12vw, calc(var(--bi-heading-size, 56px) * 1.15)); }
    .bi-hero-copy p { display: -webkit-box; overflow: hidden; font-size: .9rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
    .bi-hero-controls { width: min(100% - 24px, 1240px); }
    .bi-topbar-inner { min-height: 28px; font-size: .61rem; }
    .bi-masthead { min-height: 112px; }
    .bi-brand { gap: .2rem; }
    .bi-brand-logo { width: 38px; height: 38px; }
    .bi-brand.has-logo .bi-brand-logo { width: min(245px, 63vw); max-height: 72px; }
    .bi-brand-name { font-size: 2.55rem; }
    .bi-search-link b, .bi-menu-toggle { width: 34px; height: 34px; }
    .bi-issue-bar { min-height: 48px; gap: .6rem; }
    .bi-issue-no, .bi-issue-bar a { font-size: .61rem; }
    .bi-cover-lead-media { min-height: 360px; }
    .bi-cover-lead-copy h1 { font-size: clamp(2.35rem, 10vw, calc(var(--bi-heading-size, 56px) * 1.05)); }
    .bi-cover-side { grid-template-columns: 1fr; gap: 0; }
    .bi-cover-side-card { padding: 1.3rem 0; border-top: 1px solid var(--bi-line); }
    .bi-cover-side-card + .bi-cover-side-card { padding: 1.3rem 0; border-top: 1px solid var(--bi-line); border-left: 0; }
    .bi-cover-side-media { height: 220px; }
    .bi-newsline { grid-template-columns: 78px 1fr; }
    .bi-newsline > a { padding: .8rem 1rem; }
    .bi-newsline > a:nth-of-type(n+2) { display: none; }
    .bi-mag-section { padding-top: 3.5rem; }
    .bi-mag-heading { align-items: start; flex-direction: column; gap: .8rem; }
    .bi-mag-heading > div { padding-left: 2.3rem; }
    .bi-section-index { font-size: 1.4rem; }
    .bi-mag-heading h2 { font-size: 2.65rem; }
    .bi-mag-heading > p { max-width: none; }
    .bi-editorial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem .75rem; }
    .bi-editorial-card.is-large { grid-column: 1 / -1; grid-template-columns: 1fr; gap: 0; }
    .bi-editorial-card.is-large .bi-editorial-media { height: 290px; }
    .bi-editorial-card.is-large h3 { font-size: 2.15rem; }
    .bi-editorial-card:not(.is-large) .bi-editorial-media { height: auto; aspect-ratio: 4 / 3; }
    .bi-editorial-card:not(.is-large) h3 { font-size: 1.08rem; line-height: 1.08; }
    .bi-editorial-card:not(.is-large) .bi-meta span:last-child { display: none; }
    .bi-most-read { grid-template-columns: 1fr; }
    .bi-ranked-story:last-child { display: grid; }
    .bi-rubric-section { margin-right: -12px; margin-left: -12px; padding: 2.2rem 1.2rem 1.2rem; }
    .bi-rubric-grid { grid-template-columns: 1fr 1fr; }
    .bi-rubric { min-height: 130px; }
    .bi-rubric h3 { font-size: 1.12rem; }
    .bi-voices-grid { grid-template-columns: 1fr 1fr; gap: 1.2rem .8rem; }
    .bi-voice-media { height: 210px; }
    .bi-voice-card h3 { font-size: 1.2rem; }
    .bi-editor-note { grid-template-columns: 1fr; gap: 1rem; margin: 3.5rem -12px 0; padding: 2rem 1.2rem; }
    .bi-editor-note-mark { display: none; }
    .bi-editor-note blockquote { font-size: 2.4rem; }
    .bi-editor-note-copy { grid-column: auto; }
    .bi-page-heading { padding-top: 2.5rem; }
    .bi-page-heading h1, .bi-article h1 { font-size: clamp(2.5rem, 11vw, calc(var(--bi-heading-size, 56px) * 1.15)); }
    .bi-search-panel { align-items: stretch; flex-direction: column; gap: .8rem; margin: 1.1rem 0 1.5rem; padding: .85rem; }
    .bi-search-row { flex-direction: column; }
    .bi-search-row .bi-button { width: 100%; }
    .bi-search-reset { align-self: flex-start; }
    .bi-search-results-head { align-items: start; flex-direction: column; gap: .25rem; }
    .bi-list .bi-story-card { grid-template-columns: 1fr; }
    .bi-list .bi-story-copy { padding: 1rem 0; }
    .bi-cover { min-height: 230px; }
    .bi-story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
    .bi-story-grid .bi-story-copy { padding: .75rem 0; }
    .bi-story-grid .bi-story-copy h3 { font-size: 1.12rem; }
    .bi-detail-layout { padding-top: 2.5rem; }
    .bi-richtext { font-size: 1.08rem; }
    .bi-inline-related-list { grid-template-columns: 1fr; }
    .bi-related-heading { align-items: start; flex-direction: column; }
    .bi-related-grid { grid-template-columns: 1fr; }
    .bi-related-card { grid-template-columns: 112px minmax(0, 1fr) auto; }
    .bi-related-media { min-height: 112px; }
    .bi-related-media .bi-cover-placeholder { min-height: 112px; }
    .bi-related-copy strong { font-size: 1.03rem; -webkit-line-clamp: 2; }
    .bi-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem .75rem; }
    .bi-archive-grid .bi-card-copy { padding: .8rem .65rem; }
    .bi-archive-grid .bi-card-copy h2, .bi-archive-grid .bi-card-copy h3 { margin: .35rem 0 .5rem; font-size: 1.05rem; line-height: 1.08; }
    .bi-archive-grid .bi-card-copy > p { display: none; }
    .bi-archive-grid .bi-card-copy .bi-meta { font-size: .58rem; }
    .bi-archive-grid .bi-card-copy .bi-meta strong { display: none; }
    .bi-archive-grid .bi-play-mark { width: 44px; height: 44px; }
    .bi-announcement-card, .bi-document-card { grid-template-columns: auto minmax(0, 1fr); gap: .85rem; }
    .bi-announcement-card .bi-card-arrow, .bi-document-card .bi-card-arrow { display: none; }
    .bi-announcement-card h2, .bi-document-card h2 { font-size: 1.25rem; }
    .bi-reader iframe { min-height: 500px; }
    .bi-lightbox { padding: 4rem .75rem 1rem; }
    .bi-popup { padding: .7rem; }
    .bi-popup-dialog { max-height: 94vh; }
    .bi-popup-media > img, .bi-popup-media > video { max-height: 52vh; }
    .bi-popup-copy { padding: 1.15rem; }
    .bi-popup-copy h2 { font-size: 2rem; }
    .bi-popup-actions .bi-button { flex: 1 1 120px; }
    .bi-sidebar { grid-template-columns: 1fr; }
    .bi-filter form { flex-wrap: wrap; }
    .bi-filter .bi-select { max-width: none !important; }
    .bi-pagination nav { justify-content: flex-start; }
    .bi-pagination nav a, .bi-pagination nav span { min-width: 34px; padding-right: .55rem; padding-left: .55rem; }
    .bi-contact-page { padding-top: 2rem; }
    .bi-contact-intro h1 { font-size: clamp(2.5rem, 11vw, calc(var(--bi-heading-size, 56px) * 1.15)); }
    .bi-contact-form { padding: 1.2rem; }
    .bi-contact-form-head { align-items: start; flex-direction: column; }
    .bi-contact-form-head p { max-width: none; text-align: left; }
    .bi-form-grid { grid-template-columns: 1fr; }
    .bi-form-field-full { grid-column: auto; }
    .bi-map-heading { align-items: start; flex-direction: column; }
    .bi-map-frame, .bi-map-frame iframe { min-height: 280px; }
    .bi-footer-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .bi-footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
