:root {
  --bf-bg: #efede9;
  --bf-panel: rgba(247, 246, 243, 0.88);
  --bf-panel-strong: rgba(247, 246, 243, 0.95);
  --bf-grid: rgba(0, 0, 0, 0.042);
  --bf-text: #111111;
  --bf-muted: rgba(17, 17, 17, 0.64);
  --bf-line: rgba(17, 17, 17, 0.1);
  --bf-shadow: 0 18px 40px rgba(0, 0, 0, 0.08);
  --bf-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bf-serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  font-family: var(--bf-sans);
  background-color: var(--bf-bg);
  background-image:
    linear-gradient(var(--bf-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--bf-grid) 1px, transparent 1px);
  background-size: 48px 48px;
  color: var(--bf-text);
}

/* Front page: body must not scroll (atlas handles everything) */
body.home {
  overflow: hidden;
}

/* Single posts & pages: full scrolling */
body.single,
body.page {
  overflow-y: auto;
  height: auto;
  min-height: 100vh;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at center, rgba(255, 255, 255, 0.36), rgba(255, 255, 255, 0) 56%);
}

img {
  display: block;
  max-width: 100%;
}

button,
a,
input,
textarea,
select {
  font: inherit;
}

a {
  color: inherit;
  text-decoration-color: rgba(17, 17, 17, 0.24);
  text-underline-offset: 0.18em;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.bf-atlas {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
}

.bf-panel {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease;
}

.bf-panel.is-active {
  opacity: 1;
  pointer-events: auto;
}

/* Home panel: always visible behind overlays */
.bf-panel-home {
  z-index: 1;
  opacity: 1;
  pointer-events: none; /* overlays handle interaction */
}
.bf-panel-home.is-active {
  pointer-events: auto;
}

/* Sub-panels: overlay above home — solid background, NO backdrop-filter (text blur fix) */
.bf-panel:not(.bf-panel-home) {
  z-index: 10;
}
.bf-panel:not(.bf-panel-home) .bf-overlay-body {
  background: rgb(247, 246, 243);
}

.bf-cover-field {
  position: absolute;
  inset: 0 0 3.8rem 0; /* bottom gap keeps footer always clear */
  overflow: hidden;
}

.bf-cover {
  position: absolute;
  left: 0;
  top: 0;
  width: var(--w);
  min-width: 8rem;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  transform: rotate(var(--r));
  transform-origin: center center;
  box-shadow: var(--bf-shadow);
  transition: transform 240ms cubic-bezier(0.34, 1.4, 0.64, 1), box-shadow 240ms ease, opacity 220ms ease;
  animation: bf-float 11s ease-in-out infinite;
  animation-delay: var(--float-delay, 0s);
  z-index: 3;
  opacity: 0;
}

.bf-cover.is-ready {
  opacity: 1;
}

/* Text-based covers (journal / publication / podcast):
   shrink-wrap to content, but never wider than the allocated slot */
.bf-cover--journal,
.bf-cover--publication,
.bf-cover--podcast {
  width: fit-content;
  max-width: min(var(--w), 24rem);
  min-width: 9rem;
}

.bf-cover:hover,
.bf-cover:focus-visible {
  transform: rotate(var(--r)) translateY(-0.5rem) scale(1.06);
  box-shadow:
    0 20px 40px rgba(0, 0, 0, 0.18),
    0 40px 80px rgba(0, 0, 0, 0.10);
  outline: none;
  z-index: 50;
}

.bf-cover-media,
.bf-cover-sheet {
  display: block;
  width: 100%;
  background: rgba(255, 255, 255, 0.92);
}

.bf-cover-media img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.bf-cover-sheet {
  min-height: 14rem;
  padding: 1rem 1rem 1.1rem;
  display: grid;
  align-content: space-between;
  gap: 1.2rem;
}

.bf-cover-type {
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(17, 17, 17, 0.58);
}

.bf-cover-title {
  font-family: var(--bf-serif);
  font-size: clamp(1rem, 1.25vw, 1.45rem);
  line-height: 1.02;
}

.bf-cover-subtitle {
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(17, 17, 17, 0.62);
}

.bf-tint-paper .bf-cover-sheet { background: rgba(255,255,255,0.9); }
.bf-tint-warm .bf-cover-sheet { background: rgba(245, 238, 229, 0.95); }
.bf-tint-soft .bf-cover-sheet { background: rgba(238, 240, 241, 0.93); }
.bf-tint-charcoal .bf-cover-sheet { background: #191919; color: #f8f8f8; }
.bf-tint-charcoal .bf-cover-type,
.bf-tint-charcoal .bf-cover-subtitle { color: rgba(248, 248, 248, 0.72); }
.bf-tint-signal .bf-cover-sheet { background: linear-gradient(180deg, #ffe86f, #f3d630); }
.bf-tint-pale .bf-cover-sheet { background: rgba(251, 248, 210, 0.92); }
.bf-tint-stone .bf-cover-sheet { background: rgba(222, 216, 212, 0.96); }

.bf-home-center {
  position: absolute;
  left: 50%;
  top: 49%;
  transform: translate(-50%, -50%);
  width: min(60rem, 62vw);
  text-align: center;
  z-index: 2;
  pointer-events: none;
}

.bf-kicker,
.bf-contact-label {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(17, 17, 17, 0.62);
}

.bf-home-title {
  margin: 0;
  font-size: clamp(3rem, 4.55vw, 4.95rem);
  line-height: 0.94;
  font-weight: 400;
  letter-spacing: -0.032em;
  color: #111111;
  text-shadow: none;
}

.bf-home-subtitle {
  margin: 0.72rem auto 0;
  max-width: 34rem;
  font-size: clamp(1.34rem, 1.72vw, 1.92rem);
  line-height: 1.38;
  font-weight: 400;
  color: #111111;
  text-shadow: none;
}

.bf-overlay-head {
  position: fixed;
  top: 1.1rem;
  right: 1.1rem;
  left: auto;
  z-index: 1015;
  display: block;
  pointer-events: none;
}

.bf-overlay-head .bf-kicker {
  display: none;
}

/* Inactive panels: overlay-head fully hidden — never blocks thumbnail clicks */
.bf-panel:not(.is-active) .bf-overlay-head {
  visibility: hidden;
  pointer-events: none;
}

/* Active panel: overlay-head visible, close button clickable */
.bf-panel.is-active .bf-overlay-head {
  visibility: visible;
}
.bf-close-button {
  pointer-events: auto;
}

.bf-close-button,
.bf-menu-link,
.bf-project-trigger,
.bf-text-link,
.bf-menu-toggle {
  appearance: none;
  background: transparent;
  border: 0;
  color: var(--bf-text);
}

.bf-close-button {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.90);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.13);
  font-size: 0;       /* hide text */
  color: transparent;
  transition: background 140ms ease, box-shadow 140ms ease, transform 120ms ease;
}
.bf-close-button::after {
  content: '\2715';  /* ✕ */
  font-size: 0.72rem;
  color: var(--bf-text);
}
.bf-close-button:hover,
.bf-close-button:focus-visible {
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
  transform: scale(1.06);
  outline: none;
}

.bf-overlay-body {
  position: absolute;
  inset: 0;
  padding: 5.7rem 4rem 3.2rem;
  background: rgb(247, 246, 243);
}

.bf-detail-overlay {
  position: fixed;
  inset: 0;
  z-index: 1100;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease;
}

.bf-detail-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.bf-detail-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(247, 246, 243, 0.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.bf-detail-stage {
  position: absolute;
  inset: 0;
}

.bf-detail-frame {
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
}

.bf-detail-close {
  position: fixed;
  top: 1.1rem;
  right: 1.1rem;
  z-index: 1110;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  height: 2.85rem;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  color: var(--bf-text);
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  cursor: pointer;
  font-size: 0.8rem;
}

.bf-detail-close:hover,
.bf-detail-close:focus-visible {
  outline: none;
  transform: scale(1.05);
}

.bf-overlay-body--work,
.bf-overlay-body--contact,
.bf-overlay-body--office {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 3.8rem;
  align-items: start;
  align-content: start;
}

.bf-overlay-body--projects {
  display: grid;
  grid-template-columns: minmax(18rem, 28rem) minmax(0, 1fr);
  gap: 3rem;
  align-items: stretch;
}

.bf-overlay-body--journal {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.4rem 4rem;
  align-content: start;
  overflow: hidden;
}

/* No-scroll compact overlay */
.bf-overlay-body {
  overflow: hidden;
}

.bf-section-title {
  margin: 0;
  font-family: var(--bf-serif);
  font-size: clamp(2.5rem, 4.1vw, 4.5rem);
  line-height: 0.95;
  font-weight: 400;
  max-width: 12ch;
}

.bf-rich-column,
.bf-rich-copy,
.bf-project-copy,
.bf-entry-excerpt,
.bf-project-meta,
.bf-project-trigger-meta,
.bf-generic-inner,
.bf-entry-content,
.bf-list-excerpt,
.bf-meta {
  font-size: clamp(1rem, 1.02vw, 1.08rem);
  line-height: 1.62;
  color: var(--bf-muted);
}

.bf-rich-column p,
.bf-rich-copy,
.bf-project-copy p,
.bf-entry-excerpt,
.bf-entry-content p,
.bf-generic-inner p,
.bf-contact-grid p,
.bf-office-columns p {
  margin: 0 0 1rem;
}

.bf-page-panel-content {
  grid-column: 1 / -1;
  align-self: start;
  max-width: 72rem;
}

.bf-page-panel-content > :first-child {
  margin-top: 0;
}

.bf-page-panel-content h2 {
  margin: 0 0 1.35rem;
  font-family: var(--bf-serif);
  font-size: clamp(2.5rem, 4.1vw, 4.5rem);
  line-height: 0.95;
  font-weight: 400;
  max-width: 14ch;
  color: var(--bf-text);
}

.bf-page-panel-content h3 {
  margin: 1.35rem 0 0.55rem;
  font-family: var(--bf-serif);
  font-size: 1.5rem;
  line-height: 1.08;
  font-weight: 400;
  color: var(--bf-text);
}

.bf-page-panel-content p,
.bf-page-panel-content li {
  margin: 0 0 1rem;
  font-size: clamp(1rem, 1.02vw, 1.08rem);
  line-height: 1.62;
  color: var(--bf-muted);
}

.bf-page-panel-content ul,
.bf-page-panel-content ol {
  margin: 0 0 1.2rem 1.2rem;
  padding: 0;
}

.bf-inline-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.1rem;
  margin-top: 2rem;
}

.bf-inline-list span {
  position: relative;
  padding-left: 1rem;
  color: var(--bf-text);
}

.bf-inline-list span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 0.38rem;
  height: 1px;
  background: rgba(17, 17, 17, 0.4);
}

.bf-project-list {
  display: grid;
  align-content: start;
  gap: 0.35rem;
  padding-top: 1.3rem;
  overflow: hidden;  /* clip excess items cleanly */
}

.bf-project-trigger {
  text-align: left;
  padding: 0.7rem 0;
  cursor: pointer;
  border-bottom: 1px solid rgba(17, 17, 17, 0.08);
  transition: transform 180ms ease, color 180ms ease, opacity 180ms ease;
  opacity: 0.58;
}

.bf-project-trigger:hover,
.bf-project-trigger:focus-visible,
.bf-project-trigger.is-active {
  opacity: 1;
  transform: translateX(0.35rem);
  outline: none;
}

.bf-project-trigger-title,
.bf-project-title,
.bf-entry-title,
.bf-column-title,
.bf-title,
.bf-list-title {
  display: block;
  color: var(--bf-text);
}

.bf-project-trigger-title,
.bf-entry-title,
.bf-list-title {
  font-family: var(--bf-serif);
  font-size: clamp(1.2rem, 1.45vw, 1.62rem);
  line-height: 1.05;
}

.bf-project-trigger-meta,
.bf-project-meta,
.bf-meta,
.bf-list-excerpt {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.95rem;
}

.bf-project-stage {
  position: relative;
}

.bf-project-detail {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease;
  display: grid;
  grid-template-columns: minmax(22rem, 34vw) minmax(0, 1fr);
  gap: 2.2rem;
  align-items: center;
}

.bf-project-detail.is-active {
  opacity: 1;
  pointer-events: auto;
}

.bf-project-visual {
  position: relative;
  justify-self: center;
  width: min(30rem, 100%);
  transform: rotate(-1.2deg);
  box-shadow: 0 26px 44px rgba(0, 0, 0, 0.12);
}

.bf-project-visual::after {
  content: "";
  position: absolute;
  inset: auto 1rem -1.1rem;
  height: 1.6rem;
  filter: blur(10px);
  background: rgba(0, 0, 0, 0.12);
  z-index: -1;
}

.bf-project-visual-title {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 2rem 1rem 0.9rem;
  background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.48));
  color: #fff;
  font-family: var(--bf-serif);
  font-size: clamp(0.95rem, 1.5vw, 1.15rem);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.bf-project-title {
  margin: 0.35rem 0 0;
  font-family: var(--bf-serif);
  font-size: clamp(2rem, 3vw, 3.4rem);
  line-height: 0.96;
  font-weight: 400;
  max-width: 13ch;
}

.bf-project-partners span {
  color: var(--bf-text);
}

/* ── Podcast Panel ─────────────────────────────────────────── */

.bf-overlay-body--podcast {
  display: block;
}

.bf-podcast-empty {
  max-width: 34rem;
}

.bf-podcast-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.bf-podcast-episode {
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--bf-line);
}

.bf-podcast-episode:first-child {
  border-top: 1px solid var(--bf-line);
}

.bf-podcast-episode-header {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}

.bf-podcast-nr {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bf-muted);
  white-space: nowrap;
  flex-shrink: 0;
}

.bf-podcast-title {
  margin: 0;
  font-family: var(--bf-serif);
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  font-weight: 400;
  line-height: 1.15;
  flex: 1;
}

.bf-podcast-duration {
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: var(--bf-muted);
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── End Podcast ────────────────────────────────────────────── */

.bf-text-link {
  display: inline-block;
  padding: 0;
  cursor: pointer;
  color: var(--bf-text);
  text-decoration: underline;
  text-decoration-color: rgba(17, 17, 17, 0.25);
}

.bf-text-link:hover,
.bf-text-link:focus-visible {
  text-decoration-color: rgba(17, 17, 17, 0.7);
  outline: none;
}

.bf-column-title {
  margin: 0 0 0.7rem;
  font-family: var(--bf-serif);
  font-size: clamp(1.1rem, 1.4vw, 1.5rem);
  line-height: 0.98;
  font-weight: 400;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  color: var(--bf-muted);
  font-family: var(--bf-sans, sans-serif);
}

.bf-entry-list {
  display: grid;
  gap: 0;
}

.bf-entry-teaser {
  border-top: 1px solid rgba(17, 17, 17, 0.09);
}
.bf-entry-teaser:last-child {
  border-bottom: 1px solid rgba(17, 17, 17, 0.09);
}

/* Row link: title left, arrow right */
.bf-entry-row-link {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.55rem 0;
  text-decoration: none;
  color: var(--bf-muted);
  transition: color 140ms ease, padding-left 140ms ease;
}
.bf-entry-row-link:hover {
  color: var(--bf-text);
  padding-left: 0.35rem;
}
.bf-entry-row-link:hover .bf-entry-arrow {
  opacity: 1;
  transform: translateX(2px);
}

.bf-entry-title {
  font-family: var(--bf-serif);
  font-size: clamp(0.95rem, 1.15vw, 1.18rem);
  line-height: 1.2;
  flex: 1;
  min-width: 0;
}

.bf-entry-arrow {
  font-size: 0.9rem;
  color: var(--bf-muted);
  flex-shrink: 0;
  opacity: 0.45;
  transition: opacity 140ms, transform 140ms;
}

.bf-office-columns,
.bf-contact-grid {
  display: grid;
  gap: 1.5rem 1.8rem;
  grid-template-columns: 1fr 1fr;
}

.bf-office-columns h3 {
  margin: 0 0 0.55rem;
  font-family: var(--bf-serif);
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--bf-text);
}

/* ── Menu: unified across all screen sizes (v1.0.25) ── */

.bf-menu-toggle {
  position: fixed;
  left: 1.2rem;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 1rem);
  width: 4rem;
  height: 4rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.10);
  cursor: pointer;
  z-index: 1600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.74rem;
}

.bf-menu-toggle:hover,
.bf-menu-toggle:focus-visible {
  outline: none;
  background: rgba(255, 255, 255, 0.97);
}

.bf-global-menu {
  position: fixed;
  left: 1.2rem;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 5.75rem);
  display: grid;
  gap: 0.3rem;
  z-index: 1590;
  isolation: isolate;
  opacity: 0;
  transform: translateY(0.6rem);
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
  background: transparent;
  padding: 0;
}

.bf-global-menu::before {
  content: "";
  position: absolute;
  inset: -0.9rem -1rem -5.5rem -1rem;
  border-radius: 2.1rem;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.11);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  opacity: 0;
  transform: translateY(0.6rem) scale(0.98);
  transition: opacity 180ms ease, transform 180ms ease;
  z-index: -1;
}

.bf-global-menu.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.bf-global-menu.is-open::before {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.bf-menu-link {
  position: relative;
  z-index: 1;
  text-align: left;
  padding: 0.34rem 0;
  min-height: 44px;
  display: flex;
  align-items: center;
  cursor: pointer;
  color: rgba(17, 17, 17, 0.72);
  max-width: 14rem;
}

.bf-menu-link:hover,
.bf-menu-link:focus-visible,
.bf-menu-link.is-active {
  color: var(--bf-text);
  outline: none;
}

.bf-corner-note {
  position: absolute;
  right: 1.8rem;
  bottom: 1.6rem;
  max-width: 22rem;
  text-align: right;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(17, 17, 17, 0.52);
  z-index: 15;
  pointer-events: none;
}

.bf-generic-layout {
  min-height: 100vh;
  padding: 4rem 1.4rem;
}

.bf-generic-inner {
  max-width: 52rem;
  margin: 0 auto;
  padding: 2.6rem 2.4rem;
  background: rgba(255, 255, 255, 0.97);
}

.bf-title {
  margin: 0 0 1rem;
  font-family: var(--bf-serif);
  font-size: clamp(2.4rem, 4vw, 4.1rem);
  line-height: 0.96;
  font-weight: 400;
  color: var(--bf-text);
}

.bf-archive-list {
  display: grid;
  gap: 1rem;
}

.bf-list-entry {
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(17, 17, 17, 0.08);
}

.bf-list-link {
  text-decoration: none;
}

@keyframes bf-float {
  0%, 100% { transform: rotate(var(--r)) translateY(0); }
  50%       { transform: rotate(var(--r)) translateY(-0.4rem); }
}

@media (max-width: 1180px) {
  body.home {
    height: 100%;
    overflow: hidden;
  }

  /* Single / Page: allow normal document scroll */
  body.single,
  body.page {
    height: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .bf-atlas {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    padding-bottom: 0;
  }

  .bf-panel,
  .bf-panel-home {
    position: absolute;
    inset: 0;
    min-height: unset;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .bf-cover-field {
    position: relative;
    height: 100dvh;
    overflow: hidden;
  }

  .bf-cover {
    width: min(32vw, 13rem);
  }

  .bf-home-center {
    width: min(90vw, 38rem);
  }

  .bf-overlay-body,
  .bf-overlay-body--work,
  .bf-overlay-body--projects,
  .bf-overlay-body--journal,
  .bf-overlay-body--office,
  .bf-overlay-body--contact,
  .bf-project-detail,
  .bf-office-columns,
  .bf-contact-grid {
    display: block;
  }

  .bf-overlay-body {
    position: relative;
    inset: auto;
    padding: 5rem 1.4rem 2.2rem;
    min-height: 100dvh;
    overflow-y: auto;
  }

  .bf-project-detail {
    position: relative;
  }

  .bf-project-detail:not(.is-active) {
    display: none;
  }

  .bf-project-visual {
    width: min(26rem, 100%);
    margin: 0 0 1.6rem;
  }

  .bf-office-columns,
  .bf-contact-grid {
    grid-template-columns: 1fr;
  }

  .bf-corner-note {
    right: 1rem;
    bottom: 1rem;
    max-width: 16rem;
  }
}

@media (max-width: 760px) {
  .bf-cover {
    width: min(34vw, 8.9rem);
  }

  .bf-home-title {
    font-size: clamp(2.2rem, 8vw, 3.45rem);
    line-height: 0.97;
    letter-spacing: -0.024em;
  }

  .bf-home-subtitle {
    font-size: clamp(1.18rem, 4.6vw, 1.46rem);
    line-height: 1.28;
    max-width: 16.5rem;
  }

  .bf-generic-inner {
    padding: 2rem 1.2rem;
  }
}

/* Mobile visibility fix: keep menu and back button always visible on iPhone */
@supports (padding: max(0px)) {
  @media (max-width: 760px) {

    .bf-overlay-body {
      padding-top: calc(env(safe-area-inset-top, 0px) + 5.25rem);
      padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 6.25rem);
    }

    /* Hide X-button on home panel */
    .bf-panel-home .bf-overlay-head {
      display: none;
    }

    .bf-menu-link {
      /* min-height and display already set globally in v1.0.25 */
    }

    .bf-project-list {
      padding-top: 0;
      margin-bottom: 1.25rem;
    }

    .bf-project-stage {
      min-height: auto;
    }

    .bf-project-copy {
      padding-bottom: 2rem;
    }
  }
}

body.bf-detail-open {
  overflow: hidden;
}

body.bf-overlay-context {
  background: rgba(247, 246, 243, 0.96);
}

body.bf-overlay-context::before {
  display: none;
}

body.bf-overlay-context .bf-close-btn,
body.bf-overlay-context .bf-single-menu-btn {
  display: none !important;
}

/* ── Single Post Pages ──────────────────────────────────────── */

/* Fixed (×) close button – top right on all detail pages */
.bf-close-btn {
  position: fixed;
  top: 1.1rem;
  right: 1.1rem;
  z-index: 1010;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.90);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.13);
  font-size: 0.74rem;
  color: var(--bf-text);
  text-decoration: none;
  letter-spacing: 0;
  transition: background 140ms ease, box-shadow 140ms ease, transform 120ms ease;
}

.bf-close-btn:hover {
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
  transform: scale(1.06);
}

@supports (padding: max(0px)) {
  .bf-close-btn,
  .bf-overlay-head,
  .bf-detail-close {
    top: calc(env(safe-area-inset-top, 0px) + 1.1rem);
    right: calc(env(safe-area-inset-right, 0px) + 1.1rem);
  }
  .bf-close-btn,
  .bf-detail-close {
    top: calc(env(safe-area-inset-top, 0px) + 1.1rem);
    right: calc(env(safe-area-inset-right, 0px) + 1.1rem);
  }
}

/* Add top padding to article so content doesn't hide behind the button */
.bf-article {
  padding-top: 0.4rem;
}

.bf-eyebrow {
  margin: 0 0 0.6rem;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bf-muted);
}

/* Featured image */
.bf-single-hero {
  margin: 1.8rem 0;
  border-radius: 0.25rem;
  overflow: hidden;
}

.bf-single-hero-img {
  width: 100%;
  height: auto;
  display: block;
}

/* Project SVG visual */
.bf-single-visual {
  margin: 1.8rem auto;
  max-width: 28rem;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10);
}

.bf-single-visual img {
  width: 100%;
  height: auto;
  display: block;
}

/* Podcast player on single page */
.bf-single-audio {
  margin: 1.6rem 0 2rem;
}

.bf-single-player {
  width: 100%;
  height: 3rem;
  border-radius: 0.5rem;
  accent-color: var(--bf-text);
}

/* Images within post content */
.bf-entry-content img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1.6rem auto;
  border-radius: 0.2rem;
}

.bf-entry-content figure {
  margin: 1.6rem 0;
}

.bf-entry-content figcaption {
  margin-top: 0.4rem;
  font-size: 0.85rem;
  color: var(--bf-muted);
  text-align: center;
}

.bf-entry-content h2,
.bf-entry-content h3 {
  margin: 2rem 0 0.6rem;
  font-family: var(--bf-serif);
  font-weight: 400;
  color: var(--bf-text);
}

/* ── Project thumbnail title (home screen covers) ──────────── */

.bf-cover--project .bf-cover-media {
  position: relative;
  display: block;
}

.bf-cover--project .bf-project-visual-title,
.bf-cover .bf-cover-visual-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 1.4rem 0.7rem 0.6rem;
  background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.52));
  color: #fff;
  font-family: var(--bf-serif);
  font-size: 0.88rem;
  font-weight: 400;
  line-height: 1.2;
  pointer-events: none;
}

/* ── PDF Viewer (Publikationen) ─────────────────────────────── */

.bf-pdf-app {
  position: fixed;
  inset: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: var(--bf-bg);
  background-image:
    linear-gradient(var(--bf-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--bf-grid) 1px, transparent 1px);
  background-size: 48px 48px;
  overflow: hidden;
  z-index: 200;
}

.bf-pdf-topbar {
  padding: 1.2rem 4rem 0.8rem 1.6rem;
  border-bottom: 1px solid var(--bf-line);
  background: rgb(247, 246, 243);
}

.bf-pdf-eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bf-muted);
}

.bf-pdf-title {
  margin: 0;
  font-family: var(--bf-serif);
  font-size: clamp(1rem, 1.4vw, 1.3rem);
  font-weight: 400;
  line-height: 1.15;
  color: var(--bf-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Canvas stage */
.bf-pdf-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.03);
}

#bf-pdf-canvas {
  display: block;
  max-width: 100%;
  max-height: 100%;
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.12),
    0 2px  8px rgba(0, 0, 0, 0.08);
}

/* Loading spinner */
.bf-pdf-spinner {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  pointer-events: none;
}
.bf-pdf-spinner[hidden] { display: none; }
.bf-pdf-spinner span {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--bf-muted);
  animation: bf-dot 1.1s ease-in-out infinite;
}
.bf-pdf-spinner span:nth-child(2) { animation-delay: 0.18s; }
.bf-pdf-spinner span:nth-child(3) { animation-delay: 0.36s; }
@keyframes bf-dot {
  0%, 80%, 100% { transform: scale(0.6); opacity: 0.3; }
  40%            { transform: scale(1.0); opacity: 1;   }
}

/* Navigation bar */
.bf-pdf-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.6rem;
  padding: 0.9rem 1rem;
  border-top: 1px solid var(--bf-line);
  background: rgb(247, 246, 243);
}

.bf-pdf-btn {
  width: 2.8rem;
  height: 2.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(17, 17, 17, 0.16);
  background: transparent;
  cursor: pointer;
  font-size: 1rem;
  color: var(--bf-text);
  transition: background 130ms, border-color 130ms, opacity 130ms;
}
.bf-pdf-btn:hover:not(:disabled) {
  background: rgba(17, 17, 17, 0.06);
  border-color: rgba(17, 17, 17, 0.32);
}
.bf-pdf-btn:disabled {
  opacity: 0.25;
  cursor: default;
}

.bf-pdf-pager {
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  color: var(--bf-muted);
  min-width: 10rem;
  text-align: center;
}

/* Close button position on PDF page */
.bf-pdf-app .bf-close-btn {
  top: 0.9rem;
  right: 1rem;
}

@supports (padding: max(0px)) {
  .bf-pdf-app .bf-close-btn {
    top: calc(env(safe-area-inset-top, 0px) + 0.9rem);
    right: calc(env(safe-area-inset-right, 0px) + 1rem);
  }
  .bf-pdf-nav {
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 0.9rem);
  }
}

/* ── Floating menu button on single/page posts ─────────────── */
.bf-single-menu-btn {
  position: fixed;
  left: 1.1rem;
  bottom: 1.1rem;
  z-index: 1010;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.2rem;
  height: 4.2rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.90);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.13);
  font-size: 0.74rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bf-text);
  text-decoration: none;
  transition: background 140ms ease, box-shadow 140ms ease;
}
.bf-single-menu-btn:hover {
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
}
@supports (padding: max(0px)) {
  .bf-single-menu-btn {
    bottom: calc(env(safe-area-inset-bottom, 0px) + 1.1rem);
    left: calc(env(safe-area-inset-left, 0px) + 1.1rem);
  }
}


@media (max-width: 760px) {
  .bf-detail-close {
    top: calc(env(safe-area-inset-top, 0px) + 0.9rem);
    right: calc(env(safe-area-inset-right, 0px) + 0.9rem);
  }

  .bf-cover {
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
  }
}


/* --- 1.0.3 interaction and overlay fixes --- */
.bf-panel:not(.bf-panel-home) {
  z-index: 420;
}

.bf-home-center {
  z-index: 120;
}

.bf-home-title,
.bf-home-subtitle {
  position: relative;
}

.bf-cover-field {
  z-index: 20;
}

.bf-cover {
  z-index: 30;
  animation: none;
  pointer-events: auto;
  touch-action: manipulation;
}

.bf-cover.is-thumb-active,
.bf-cover.is-thumb-pressed,
.bf-cover:hover,
.bf-cover:focus-visible {
  will-change: transform;
}

.bf-cover.is-thumb-active,
.bf-cover.is-thumb-pressed,
.bf-cover:hover,
.bf-cover:focus-visible {
  z-index: 95;
}

.bf-cover-media,
.bf-cover-sheet {
  pointer-events: none;
}

/* ── Detail overlay ── */

.bf-detail-overlay {
  z-index: 1400;
}

.bf-detail-overlay.is-loading .bf-detail-frame {
  opacity: 0.01;
}

.bf-detail-frame {
  position: absolute;
  inset: 0;
  opacity: 1;
  transition: opacity 140ms ease;
}

.bf-detail-close {
  z-index: 1550;
}

body.bf-overlay-context {
  background: transparent;
}

body.bf-overlay-context .bf-generic-layout {
  min-height: 100vh;
  padding: 0;
}

body.bf-overlay-context .bf-generic-inner {
  width: min(78rem, calc(100vw - 4rem));
  max-width: none;
  min-height: 100vh;
  padding: 5.2rem 0 2.4rem;
  background: transparent;
}

body.bf-overlay-context .bf-article {
  padding-top: 0;
}

@media (max-width: 760px) {
  .bf-home-center {
    z-index: 120;
  }

  body.bf-overlay-context .bf-generic-inner {
    width: calc(100vw - 2rem);
    padding: calc(env(safe-area-inset-top, 0px) + 4.8rem) 0 2rem;
  }
}


/* --- 1.0.4 stability + performance fixes --- */
.bf-panel {
  visibility: hidden;
}

.bf-panel.is-active,
.bf-panel-home {
  visibility: visible;
}

.bf-panel-home {
  pointer-events: auto;
}

.bf-panel:not(.is-active):not(.bf-panel-home) {
  pointer-events: none !important;
}

/* backdrop-filter removed from overlay-body — see v1.0.25 text-blur fix above */

.bf-detail-backdrop {
  background: rgba(247, 246, 243, 0.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.bf-detail-stage {
  contain: layout paint;
}

.bf-detail-frame {
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
}

.bf-cover-field {
  isolation: isolate;
}

.bf-cover {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.bf-cover--journal,
.bf-cover--publication,
.bf-cover--podcast {
  max-width: min(var(--w), 24rem);
}

.bf-detail-overlay[hidden] {
  display: none !important;
}



/* --- 1.0.6 startscreen stability + type colors --- */
.bf-cover-field {
  isolation: isolate;
}

.bf-cover-field:not(.is-layout-ready) .bf-cover {
  opacity: 0;
}

.bf-cover {
  transition: transform 240ms cubic-bezier(0.34, 1.4, 0.64, 1), box-shadow 240ms ease, opacity 160ms ease;
}

.bf-cover.is-ready {
  opacity: 1;
}

.bf-cover-media img {
  opacity: 0.5;
}

.bf-cover--journal {
  --bf-type-bg: rgba(243, 237, 226, 0.96);
  --bf-type-accent: rgba(125, 94, 44, 0.9);
  --bf-type-line: rgba(125, 94, 44, 0.18);
}

.bf-cover--publication {
  --bf-type-bg: rgba(229, 236, 242, 0.96);
  --bf-type-accent: rgba(55, 92, 125, 0.9);
  --bf-type-line: rgba(55, 92, 125, 0.18);
}

.bf-cover--podcast {
  --bf-type-bg: rgba(236, 229, 235, 0.96);
  --bf-type-accent: rgba(111, 64, 107, 0.9);
  --bf-type-line: rgba(111, 64, 107, 0.18);
}

.bf-cover--journal .bf-cover-sheet,
.bf-cover--publication .bf-cover-sheet,
.bf-cover--podcast .bf-cover-sheet {
  background: var(--bf-type-bg) !important;
  border: 1px solid var(--bf-type-line);
}

.bf-cover--journal .bf-cover-type,
.bf-cover--publication .bf-cover-type,
.bf-cover--podcast .bf-cover-type {
  color: var(--bf-type-accent);
}

.bf-cover--journal .bf-cover-subtitle,
.bf-cover--publication .bf-cover-subtitle,
.bf-cover--podcast .bf-cover-subtitle {
  color: rgba(17, 17, 17, 0.68);
}


/* --- 1.0.7 subtle cover tilt + podcast player + side PDF arrows --- */
.bf-cover {
  --bf-cover-tilt: calc(var(--r, 0deg) + var(--rj, 0deg));
  transform: rotate(var(--bf-cover-tilt));
}

.bf-cover:hover,
.bf-cover:focus-visible,
.bf-cover.is-thumb-active,
.bf-cover.is-thumb-pressed {
  transform: rotate(var(--bf-cover-tilt)) translateY(-0.5rem) scale(1.06);
}

.bf-audio-player {
  border: 1px solid rgba(17, 17, 17, 0.1);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.bf-audio-player audio {
  display: none;
}

.bf-audio-player--compact {
  margin: 1rem 0 0.9rem;
  padding: 0.9rem 0.95rem;
  border-radius: 1.15rem;
}

.bf-audio-player--feature {
  padding: 1.15rem 1.15rem 1.05rem;
  border-radius: 1.35rem;
  background: rgba(255, 255, 255, 0.8);
}

.bf-audio-feature-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.95rem;
}

.bf-audio-kicker {
  margin: 0 0 0.22rem;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bf-muted);
}

.bf-audio-episode-name {
  margin: 0;
  font-family: var(--bf-serif);
  font-size: 1.12rem;
  line-height: 1.12;
}

.bf-audio-player-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.9rem;
  align-items: center;
}

.bf-audio-main {
  min-width: 0;
}

.bf-audio-toggle,
.bf-audio-speed {
  border: 1px solid rgba(17, 17, 17, 0.14);
  background: rgba(255, 255, 255, 0.82);
  color: var(--bf-text);
  transition: transform 140ms ease, background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.bf-audio-toggle {
  width: 3.15rem;
  height: 3.15rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.bf-audio-toggle:hover,
.bf-audio-speed:hover {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(17, 17, 17, 0.28);
}

.bf-audio-toggle-icon {
  font-size: 1rem;
  line-height: 1;
  transform: translateX(0.04rem);
}

.bf-audio-player.is-playing .bf-audio-toggle {
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

.bf-audio-speed {
  min-width: 3.3rem;
  height: 2.4rem;
  padding: 0 0.85rem;
  border-radius: 999px;
  cursor: pointer;
}

.bf-audio-meta-row,
.bf-audio-times {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
}

.bf-audio-meta-row {
  margin-bottom: 0.45rem;
  font-size: 0.76rem;
  color: var(--bf-muted);
}

.bf-audio-status {
  white-space: nowrap;
}

.bf-audio-progress {
  width: 100%;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  height: 0.32rem;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(17,17,17,0.7) var(--bf-progress, 0%), rgba(17,17,17,0.12) var(--bf-progress, 0%));
  outline: none;
}

.bf-audio-progress::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  border: 0;
  background: #111;
  box-shadow: 0 0 0 4px rgba(255,255,255,0.94);
  cursor: pointer;
}

.bf-audio-progress::-moz-range-thumb {
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  border: 0;
  background: #111;
  box-shadow: 0 0 0 4px rgba(255,255,255,0.94);
  cursor: pointer;
}

.bf-podcast-audio-note {
  margin: 0.9rem 0 0.95rem;
  color: var(--bf-muted);
  font-size: 0.86rem;
}

.bf-pdf-stage {
  padding: 0 4.6rem;
}

.bf-pdf-side-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3.25rem;
  height: 3.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(17, 17, 17, 0.14);
  background: rgba(255, 255, 255, 0.84);
  color: var(--bf-text);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  cursor: pointer;
  z-index: 3;
  transition: transform 140ms ease, background 140ms ease, border-color 140ms ease, opacity 140ms ease;
}

.bf-pdf-side-btn:hover:not(:disabled) {
  transform: translateY(-50%) scale(1.04);
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(17, 17, 17, 0.24);
}

.bf-pdf-side-btn:disabled {
  opacity: 0.22;
  cursor: default;
}

.bf-pdf-side-btn--prev {
  left: 1rem;
}

.bf-pdf-side-btn--next {
  right: 1rem;
}

@media (max-width: 760px) {
  .bf-audio-player-row {
    grid-template-columns: auto 1fr;
  }

  .bf-audio-speed {
    grid-column: 2;
    justify-self: end;
    margin-top: 0.45rem;
  }

  .bf-pdf-stage {
    padding: 0 1rem;
  }

  .bf-pdf-side-btn {
    width: 2.85rem;
    height: 2.85rem;
    top: auto;
    bottom: 1rem;
    transform: none;
  }

  .bf-pdf-side-btn:hover:not(:disabled) {
    transform: scale(1.03);
  }

  .bf-pdf-side-btn--prev {
    left: 1rem;
  }

  .bf-pdf-side-btn--next {
    right: 1rem;
  }
}


/* --- 1.0.8 home typography + cover spacing refinements --- */
.bf-home-title,
.bf-home-subtitle,
.bf-cover-title,
.bf-cover-subtitle {
  font-weight: 400;
}

.bf-home-title,
.bf-home-subtitle {
  text-shadow: 0 0 6px rgba(255, 255, 255, 0.82), 0 0 12px rgba(255, 255, 255, 0.36);
}

.bf-home-center {
  width: min(56rem, 58vw);
  padding-inline: 0.75rem;
  box-sizing: border-box;
}

.bf-home-subtitle {
  max-width: 32rem;
}

@media (max-width: 980px) {
  .bf-home-center {
    width: min(88vw, 36rem);
    padding-inline: 1rem;
  }
}

@media (max-width: 760px) {
  .bf-home-center {
    width: min(92vw, 30rem);
    padding-inline: 1rem;
  }
}


/* --- 1.0.12 mostly portrait thumbnails --- */
.bf-cover {
  --bf-thumb-ratio: 0.76;
}

.bf-cover.is-orientation-portrait {
  --bf-thumb-ratio: 0.74;
}

.bf-cover.is-orientation-landscape {
  --bf-thumb-ratio: 1.14;
}

.bf-cover--project .bf-cover-media {
  aspect-ratio: var(--bf-thumb-ratio) / 1;
  overflow: hidden;
}

.bf-cover--project .bf-cover-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bf-cover--journal,
.bf-cover--publication,
.bf-cover--podcast {
  max-width: min(var(--w), 15rem);
}

.bf-cover--journal .bf-cover-sheet,
.bf-cover--publication .bf-cover-sheet,
.bf-cover--podcast .bf-cover-sheet {
  min-height: 14.6rem;
}

.bf-cover--journal.is-orientation-portrait,
.bf-cover--publication.is-orientation-portrait,
.bf-cover--podcast.is-orientation-portrait {
  max-width: min(var(--w), 13.5rem);
}

.bf-cover--journal.is-orientation-portrait .bf-cover-sheet,
.bf-cover--publication.is-orientation-portrait .bf-cover-sheet,
.bf-cover--podcast.is-orientation-portrait .bf-cover-sheet {
  min-height: 15.4rem;
}

.bf-cover--journal.is-orientation-landscape,
.bf-cover--publication.is-orientation-landscape,
.bf-cover--podcast.is-orientation-landscape {
  max-width: min(var(--w), 18rem);
}

.bf-cover--journal.is-orientation-landscape .bf-cover-sheet,
.bf-cover--publication.is-orientation-landscape .bf-cover-sheet,
.bf-cover--podcast.is-orientation-landscape .bf-cover-sheet {
  min-height: 13.1rem;
}

@media (max-width: 980px) {
  .bf-cover--journal,
  .bf-cover--publication,
  .bf-cover--podcast {
    max-width: min(var(--w), 14rem);
  }

  .bf-cover--journal.is-orientation-landscape,
  .bf-cover--publication.is-orientation-landscape,
  .bf-cover--podcast.is-orientation-landscape {
    max-width: min(var(--w), 15.5rem);
  }
}

@media (max-width: 760px) {
  .bf-cover,
  .bf-cover.is-orientation-portrait,
  .bf-cover.is-orientation-landscape {
    --bf-thumb-ratio: 0.76;
  }

  .bf-cover--journal,
  .bf-cover--publication,
  .bf-cover--podcast,
  .bf-cover--journal.is-orientation-portrait,
  .bf-cover--publication.is-orientation-portrait,
  .bf-cover--podcast.is-orientation-portrait,
  .bf-cover--journal.is-orientation-landscape,
  .bf-cover--publication.is-orientation-landscape,
  .bf-cover--podcast.is-orientation-landscape {
    max-width: min(var(--w), 10.9rem);
  }

  .bf-cover--journal .bf-cover-sheet,
  .bf-cover--publication .bf-cover-sheet,
  .bf-cover--podcast .bf-cover-sheet,
  .bf-cover--journal.is-orientation-portrait .bf-cover-sheet,
  .bf-cover--publication.is-orientation-portrait .bf-cover-sheet,
  .bf-cover--podcast.is-orientation-portrait .bf-cover-sheet,
  .bf-cover--journal.is-orientation-landscape .bf-cover-sheet,
  .bf-cover--publication.is-orientation-landscape .bf-cover-sheet,
  .bf-cover--podcast.is-orientation-landscape .bf-cover-sheet {
    min-height: 13.2rem;
  }
}


/* --- 1.0.17 subtle audit and mobile refinements --- */
body.bf-tirol-body::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(247, 246, 243, 0.18);
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease, background-color 180ms ease;
  z-index: 1200;
}

body.bf-menu-open::before {
  background: rgba(247, 246, 243, 0.46);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 1;
}

body.bf-detail-open::before {
  background: rgba(247, 246, 243, 0.32);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 1;
}

.bf-entry-row-link {
  align-items: flex-start;
}

.bf-entry-title,
.bf-list-title {
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}

/* .bf-menu-link max-width is set in the unified v1.0.25 block */

@media (max-width: 760px) {
  .bf-entry-row-link {
    gap: 0.55rem;
  }
}


/* --- 1.0.18 backdrop fix (menu rules moved to v1.0.24/v1.0.25) --- */
@media (max-width: 760px) {
  body.bf-tirol-body::before,
  body.bf-detail-open::before {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    filter: none !important;
    transition: opacity 180ms ease, background-color 180ms ease !important;
  }
}


/* --- 1.0.24 unified menu-open + resize-safe (replaces 1.0.22 + 1.0.23) --- */

/* Backdrop: no blur anywhere — avoids repaint flicker on resize */
body.bf-menu-open::before {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  filter: none !important;
  background: rgba(247, 246, 243, 0.34) !important;
  transition: opacity 180ms ease, background-color 180ms ease !important;
}

@media (min-width: 761px) {
  body.bf-menu-open::before {
    background: rgba(247, 246, 243, 0.28) !important;
  }
}

/* Menu chrome: no blur, solid backgrounds */
body.bf-menu-open .bf-global-menu,
body.bf-menu-open .bf-menu-toggle,
body.bf-menu-open .bf-menu-link,
body.bf-menu-open .bf-global-menu::before {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  filter: none !important;
}

body.bf-menu-open .bf-global-menu::before {
  background: rgba(255, 255, 255, 0.965) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.10) !important;
}

@media (min-width: 761px) {
  body.bf-menu-open .bf-global-menu::before {
    background: rgba(255, 255, 255, 0.94) !important;
  }
}

body.bf-menu-open .bf-menu-toggle {
  background: transparent !important;
  box-shadow: none !important;
}

/* During active resize: freeze all transitions on menu elements */
body.bf-window-resizing.bf-menu-open::before,
body.bf-window-resizing.bf-menu-open .bf-global-menu,
body.bf-window-resizing.bf-menu-open .bf-global-menu::before,
body.bf-window-resizing.bf-menu-open .bf-menu-toggle {
  transition: none !important;
}
