@charset "UTF-8";

:root {
  --carbon: #101110;
  --carbon-soft: #181a18;
  --carbon-mid: #242723;
  --ivory: #f1eadb;
  --ivory-dim: #c9c0ae;
  --paper: #e7decd;
  --cobalt: #3460de;
  --coral: #f16f5f;
  --sulfur: #ead44f;
  --oxidized: #6e806c;
  --line: rgba(241, 234, 219, 0.22);
  --line-dark: rgba(16, 17, 16, 0.22);
  --mono: Bahnschrift, "Yu Gothic UI", "Noto Sans KR", "Arial Narrow", sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; }
html { background: var(--carbon); }
body { margin: 0; min-width: 320px; overflow: hidden; background: radial-gradient(circle at 78% 10%, rgba(52, 96, 222, 0.12), transparent 30rem), linear-gradient(135deg, rgba(255, 255, 255, 0.025) 25%, transparent 25%) 0 0 / 9px 9px, var(--carbon); color: var(--ivory); font-family: var(--mono); letter-spacing: 0.02em; }
button { color: inherit; font: inherit; }
button:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--sulfur); outline-offset: 3px; }

.deck { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; width: 100%; height: 100dvh; padding: 22px 36px 14px; }
.deck-topbar, .deck-footer, .stage-controls, .deck-topbar__right, .masthead__brand, .stage-progress { display: flex; align-items: center; }
.deck-topbar { justify-content: space-between; min-height: 30px; border-bottom: 1px solid var(--line); color: var(--ivory-dim); font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.masthead__brand { gap: 12px; }
.brand-mark { color: var(--ivory); font-size: 16px; letter-spacing: 0.06em; }
.brand-rule { width: 32px; height: 1px; background: var(--coral); }
.brand-copy { white-space: nowrap; }
.deck-topbar__right { gap: 18px; }
.deck-status { display: inline-flex; align-items: center; gap: 8px; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sulfur); box-shadow: 0 0 0 3px rgba(234, 212, 79, 0.12); }
.deck-menu-button { appearance: none; cursor: pointer; padding: 7px 11px; border: 1px solid var(--line); background: transparent; color: var(--ivory); font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.deck-menu-button:hover { border-color: var(--sulfur); color: var(--sulfur); }
.shuffle-button.is-active { border-color: var(--sulfur); background: rgba(234,212,79,.12); color: var(--sulfur); }
.shuffle-label--short, .gallery-label--short { display: none; }
.deck-main { display: grid; min-height: 0; place-items: center; padding: 10px 0 4px; }
.stage-region { width: min(94vw, calc((100dvh - 148px) * 16 / 9)); max-width: 100%; min-width: 0; }
.stage-shell { position: relative; padding: 8px; background: var(--ivory); box-shadow: 0 22px 50px rgba(0, 0, 0, 0.3); }
.stage { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; color: var(--ivory); background: var(--carbon-soft); isolation: isolate; }
.stage::before { position: absolute; z-index: 4; inset: 0; pointer-events: none; content: ""; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.35) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.25) 1px, transparent 1px); background-size: 100% 50%, 50% 100%; mix-blend-mode: soft-light; }
.stage-content { position: absolute; inset: 0; z-index: 1; min-height: 0; }
.stage-rail { position: absolute; z-index: 5; right: 18px; bottom: 14px; left: 18px; display: flex; justify-content: space-between; color: rgba(241, 234, 219, .66); font-size: 9px; font-weight: 700; letter-spacing: .11em; pointer-events: none; text-transform: uppercase; }
.stage-crop { position: absolute; z-index: 2; width: 22px; height: 22px; border-color: var(--carbon); pointer-events: none; }
.stage-crop--tl { top: 0; left: 0; border-top: 1px solid; border-left: 1px solid; }
.stage-crop--tr { top: 0; right: 0; border-top: 1px solid; border-right: 1px solid; }
.stage-crop--bl { bottom: 0; left: 0; border-bottom: 1px solid; border-left: 1px solid; }
.stage-crop--br { right: 0; bottom: 0; border-right: 1px solid; border-bottom: 1px solid; }
.stage-controls { justify-content: space-between; min-height: 44px; color: var(--ivory-dim); }
.nav-button { appearance: none; display: inline-flex; align-items: center; gap: 10px; min-width: 76px; padding: 11px 0; border: 0; background: transparent; cursor: pointer; color: var(--ivory); font-size: 21px; transition: color 160ms ease, transform 160ms ease; }
.nav-button small { color: var(--ivory-dim); font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.nav-button:hover:not(:disabled) { color: var(--coral); transform: translateX(-3px); }
.nav-button--next { justify-content: end; }
.nav-button--next:hover:not(:disabled) { transform: translateX(3px); }
.nav-button:disabled { cursor: default; opacity: .22; }
.stage-progress { justify-content: center; gap: 18px; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.stage-progress > span:first-child { color: var(--ivory); font-size: 13px; }
.stage-hint { display: inline-flex; align-items: center; gap: 7px; color: rgba(241,234,219,.58); font-size: 9px; letter-spacing: .06em; }
.keycap { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 18px; padding: 0 4px; border: 1px solid var(--line); color: var(--ivory); font-size: 8px; }
.deck-footer { justify-content: space-between; gap: 14px; margin-top: 4px; padding-top: 11px; border-top: 1px solid var(--line); color: rgba(241,234,219,.5); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.footer-accent { display: inline-block; width: 7px; height: 7px; margin-right: 6px; background: var(--oxidized); }

/* Slide primitives. Every page is rendered into the same 16:9 canvas. */
.slide { position: absolute; inset: 0; overflow: hidden; }
.slide-kicker, .slide-number, .slide-meta, .thumb__stamp, .source-tag, .section-stamp, .cover-aside__label, .source-endmark { font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 1.35; text-transform: uppercase; }
.slide--cover { isolation: isolate; display: grid; grid-template-columns: 1.25fr .75fr; gap: 6%; padding: clamp(28px, 5vw, 78px); background: #131514; }
.slide--cover::before { position: absolute; z-index: 0; inset: 0; background-image: linear-gradient(90deg, rgba(11,13,12,.78) 0%, rgba(11,13,12,.12) 48%, rgba(11,13,12,.30) 100%), linear-gradient(0deg, rgba(11,13,12,.22) 0%, rgba(11,13,12,0) 44%), var(--cover-art-image, url("assets/cover/latent_board_cover_collaborative_v04.webp")); background-position: center; background-size: cover; content: ""; filter: saturate(.9) contrast(1.03) brightness(1.04); pointer-events: none; }
.slide--cover::after { position: absolute; right: -12%; bottom: -38%; width: 64%; height: 90%; border: 1px solid rgba(234,212,79,.42); border-radius: 50%; content: ""; transform: rotate(-18deg); }
.cover-copy, .cover-aside { position: relative; z-index: 1; }
.cover-copy { align-self: end; max-width: 720px; }
.cover-copy .slide-kicker { color: var(--sulfur); }
.cover-copy h1 { margin: 18px 0; color: var(--ivory); font-size: clamp(48px, 8vw, 116px); font-weight: 800; letter-spacing: -.08em; line-height: .78; }
.cover-copy h1 em, .slide--index h2 em, .slide--section h2 em, .source-intro h2 em { color: var(--coral); font-family: var(--serif); font-weight: 400; letter-spacing: -.1em; }
.cover-copy p { max-width: 640px; margin: 0; color: var(--ivory-dim); font-family: var(--serif); font-size: clamp(16px, 1.7vw, 24px); letter-spacing: -.02em; line-height: 1.25; }
.cover-chapter { margin-top: 24px; color: var(--coral); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cover-aside { align-self: end; border-left: 1px solid var(--line); padding-left: 20px; }
.cover-aside__label { margin-bottom: 12px; color: var(--ivory-dim); }
.cover-metric { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; border-top: 1px solid var(--line); padding: 12px 0; color: var(--ivory-dim); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cover-metric strong { color: var(--sulfur); font-size: 28px; letter-spacing: -.04em; }
.cover-aside__note { margin: 22px 0 0; color: var(--ivory-dim); font-family: var(--serif); font-size: 13px; line-height: 1.3; }

.slide--index { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7%; padding: 42px 56px; background: var(--paper); color: var(--carbon); }
.index-intro { align-self: center; }
.index-intro .slide-kicker, .slide--contact .slide-kicker, .slide--section .slide-kicker, .slide--source .slide-kicker { color: var(--cobalt); }
.index-intro h2 { margin: 15px 0 20px; font-family: var(--serif); font-size: clamp(38px, 5vw, 74px); font-weight: 400; letter-spacing: -.075em; line-height: .86; }
.index-intro p { max-width: 360px; margin: 0; color: #59645c; font-family: var(--serif); font-size: 15px; line-height: 1.28; }
.index-list { align-self: center; border-top: 1px solid var(--line-dark); }
.deck-index-row { appearance: none; display: grid; grid-template-columns: 42px 1fr 22px; align-items: center; width: 100%; gap: 14px; padding: 17px 0; border: 0; border-bottom: 1px solid var(--line-dark); background: transparent; cursor: pointer; color: var(--carbon); text-align: left; }
.deck-index-row:hover { color: var(--cobalt); }
.deck-index-row__num { color: var(--coral); font-size: 11px; font-weight: 800; }
.deck-index-row strong { display: block; font-size: 14px; letter-spacing: .02em; }
.deck-index-row small { display: block; margin-top: 4px; color: #59645c; font-family: var(--serif); font-size: 12px; line-height: 1.2; }
.deck-index-row__arrow { font-size: 18px; }

.slide--section { display: grid; grid-template-columns: 120px 1fr 30%; align-items: center; gap: 6%; padding: 44px 58px; background: linear-gradient(135deg, #202522, #151817 67%, #1d2b2b); }
.section-stamp { align-self: start; padding-top: 3px; color: var(--sulfur); writing-mode: vertical-rl; transform: rotate(180deg); }
.section-copy { max-width: 640px; }
.section-copy h2 { margin: 0 0 22px; color: var(--ivory); font-family: var(--serif); font-size: clamp(42px, 6vw, 86px); font-weight: 400; letter-spacing: -.08em; line-height: .84; }
.section-copy p { max-width: 530px; margin: 0 0 24px; color: var(--ivory-dim); font-family: var(--serif); font-size: 17px; line-height: 1.28; }
.section-jump { appearance: none; cursor: pointer; padding: 11px 14px; border: 1px solid var(--sulfur); background: transparent; color: var(--sulfur); font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.section-jump:hover { background: var(--sulfur); color: var(--carbon); }
.section-jump span { margin-left: 14px; font-size: 16px; }
.section-aside { align-self: stretch; display: flex; flex-direction: column; justify-content: end; border-left: 1px solid var(--line); padding-left: 20px; }
.section-aside span { color: var(--coral); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.section-aside strong { margin-top: 12px; color: var(--ivory); font-family: var(--serif); font-size: 20px; font-weight: 400; line-height: 1.2; }
.section-aside small { margin-top: 16px; color: var(--ivory-dim); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.slide--contact { display: grid; grid-template-rows: auto 1fr auto; padding: 25px 28px 21px; background: var(--paper); color: var(--carbon); }
.slide--contact::before { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-top: 1px solid var(--carbon); border-right: 1px solid var(--carbon); content: ""; opacity: .42; }
.slide-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 14px; }
.slide-header__copy { min-width: 0; }
.slide-title { margin: 6px 0 0; font-family: var(--serif); font-size: clamp(22px, 3vw, 46px); font-weight: 400; letter-spacing: -.055em; line-height: .94; }
.slide-title small { display: block; margin-top: 5px; font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 1.3; text-transform: uppercase; }
.slide-header__aside { max-width: 300px; padding-top: 3px; text-align: right; }
.slide-meta { color: #566159; font-size: 9px; }
.slide-line { margin: 7px 0 0; color: #566159; font-family: var(--serif); font-size: 12px; letter-spacing: -.01em; line-height: 1.25; }
.contact-grid { display: grid; min-height: 0; gap: 9px; }
.contact-grid.grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); }
.contact-grid.grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.contact-grid.grid--9 { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 1fr)); }
.thumb { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; padding: 0; border: 1px solid rgba(16,17,16,.25); background: #d9cfbc; color: var(--carbon); cursor: pointer; text-align: left; }
.thumb:hover { border-color: var(--cobalt); box-shadow: inset 0 0 0 2px var(--cobalt); }
.thumb-media { position: relative; flex: 1 1 auto; min-height: 0; overflow: hidden; background: #c7bdab; }
.thumb-media img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; object-position: center; }
.thumb--rejected { border-color: var(--coral); }
.thumb--rejected .thumb-media { filter: grayscale(.85); }
.thumb__stamp { position: absolute; z-index: 1; top: 7px; left: 7px; padding: 4px 5px; background: var(--coral); color: var(--carbon); font-size: 8px; font-weight: 800; letter-spacing: .08em; }
.thumb__stamp--pending { background: var(--sulfur); }
.thumb-caption { display: flex; justify-content: space-between; gap: 7px; min-height: 28px; padding: 7px 8px 6px; border-top: 1px solid rgba(16,17,16,.16); font-size: 9px; font-weight: 700; letter-spacing: .05em; line-height: 1.15; }
.thumb-caption span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.thumb-caption span:last-child { color: #5a655d; font-size: 8px; text-align: right; white-space: nowrap; }
.contact-foot { display: flex; justify-content: space-between; gap: 12px; margin-top: 11px; color: #566159; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-foot strong { color: var(--cobalt); }

.slide--single { display: grid; grid-template-columns: minmax(0, 1.62fr) minmax(220px, .38fr); background: #0e100f; }
.single-figure { position: relative; display: flex; align-items: center; justify-content: center; min-width: 0; overflow: hidden; background: #151816; }
.single-figure::after { position: absolute; inset: 18px; border: 1px solid rgba(241,234,219,.2); pointer-events: none; content: ""; }
.single-figure img { display: block; width: 100%; height: 100%; object-fit: contain; }
.single-figure--rejected { background: #17120f; }
.single-figure__asset-id { position: absolute; z-index: 3; top: 26px; left: 28px; padding: 6px 8px; border: 1px solid rgba(241,234,219,.3); background: rgba(16,17,16,.64); color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .08em; }
.single-figure__asset-id--rejected { right: 28px; left: auto; }
.reject-reason { position: absolute; z-index: 5; top: 7px; left: 7px; display: inline-flex; max-width: calc(100% - 14px); color: var(--carbon); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-align: left; }
.reject-reason__short { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; padding: 4px 6px; background: var(--coral); box-shadow: 0 2px 10px rgba(16,17,16,.24); white-space: nowrap; }
.reject-reason__short > span { font-size: 11px; line-height: .7; }
.reject-reason__detail { position: absolute; bottom: calc(100% + 6px); left: 0; width: clamp(180px, 23vw, 310px); padding: 10px 11px; border: 1px solid rgba(241,234,219,.35); background: rgba(16,17,16,.96); box-shadow: 0 12px 28px rgba(0,0,0,.38); color: var(--ivory-dim); font-family: var(--serif); font-size: 11px; font-weight: 400; letter-spacing: 0; line-height: 1.3; opacity: 0; pointer-events: none; transform: translateY(4px); transition: opacity 130ms ease, transform 130ms ease; }
.reject-reason__detail strong, .reject-reason__detail > span { display: block; }
.reject-reason__detail strong { margin-bottom: 5px; color: var(--coral); font-family: var(--mono); font-size: 8px; letter-spacing: .08em; }
.reject-reason__short:hover + .reject-reason__detail, .reject-reason:focus-visible .reject-reason__detail, .thumb:focus-visible .reject-reason__detail { opacity: 1; transform: translateY(0); }
.reject-reason--thumb { inset: auto auto 32px 7px; max-width: calc(100% - 14px); pointer-events: none; }
.reject-reason--thumb .reject-reason__short { position: static; pointer-events: auto; }
.reject-reason--thumb .reject-reason__detail { bottom: calc(100% + 6px); left: 0; width: clamp(180px, 23vw, 310px); transform: translateY(4px); }
.reject-reason--thumb .reject-reason__short:hover + .reject-reason__detail, .thumb:focus-visible .reject-reason--thumb .reject-reason__detail { transform: translateY(0); }
.reject-reason--single { top: 112px; left: 28px; }
.reject-reason--single .reject-reason__short { padding: 6px 8px; }
.reject-reason--single .reject-reason__detail { width: min(350px, 54vw); }
.single-rail { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; padding: 32px 28px 28px; border-left: 1px solid var(--line); background: #171a18; }
.single-rail__top { display: flex; justify-content: space-between; gap: 10px; color: var(--ivory-dim); }
.slide-number { color: var(--coral); }
.single-rail h2 { margin: 28px 0 0; color: var(--ivory); font-family: var(--serif); font-size: clamp(26px, 3vw, 48px); font-weight: 400; letter-spacing: -.06em; line-height: .92; }
.single-rail h2 small { display: block; margin-top: 10px; color: var(--ivory-dim); font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 1.3; text-transform: uppercase; }
.single-rail__line { margin: 14px 0 0; color: var(--ivory-dim); font-family: var(--serif); font-size: 15px; letter-spacing: -.02em; line-height: 1.25; }
.single-rail__facts { border-top: 1px solid var(--line); }
.single-fact { display: grid; grid-template-columns: 64px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--ivory-dim); font-size: 9px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.single-fact strong { color: var(--ivory); font-weight: 700; overflow-wrap: anywhere; }
.single-rail__next { color: var(--sulfur); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.slide--source { display: grid; grid-template-columns: .72fr 1.28fr; gap: 7%; padding: 38px 48px; background: var(--paper); color: var(--carbon); }
.source-intro h2 { margin: 12px 0; font-family: var(--serif); font-size: clamp(34px, 5vw, 74px); font-weight: 400; letter-spacing: -.07em; line-height: .88; }
.source-intro p { max-width: 360px; color: #59645c; font-family: var(--serif); font-size: 15px; line-height: 1.28; }
.source-endmark { margin-top: 28px; color: var(--coral); }
.source-table { align-self: stretch; border-top: 1px solid var(--line-dark); }
.source-row { display: grid; grid-template-columns: 104px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line-dark); }
.source-tag { color: var(--cobalt); font-size: 9px; }
.source-row strong { display: block; margin-bottom: 5px; font-size: 13px; letter-spacing: .02em; }
.source-row p { margin: 0; color: #59645c; font-family: var(--serif); font-size: 13px; line-height: 1.25; }
.slide--empty { display: grid; place-items: center; padding: 30px; background: var(--carbon-soft); }
.empty-state { max-width: 580px; border-left: 2px solid var(--sulfur); padding-left: 22px; }
.empty-state h2 { margin: 0 0 12px; font-family: var(--serif); font-size: 36px; font-weight: 400; letter-spacing: -.05em; }
.empty-state p { margin: 0; color: var(--ivory-dim); font-family: var(--serif); font-size: 16px; line-height: 1.35; }

.deck-index[hidden] { display: none; }

.gallery-dialog { position: fixed; z-index: 55; inset: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: var(--carbon); color: var(--ivory); overflow: hidden; }
.gallery-dialog::backdrop { background: var(--carbon); }
.gallery-dialog__window { display: grid; grid-template-rows: auto auto minmax(0, 1fr); width: 100%; height: 100%; background: radial-gradient(circle at 84% 0, rgba(52,96,222,.12), transparent 34rem), var(--carbon); }
.gallery-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 24px 28px 18px; border-bottom: 1px solid var(--line); }
.gallery-dialog__head .slide-kicker { color: var(--sulfur); }
.gallery-dialog__head h2 { margin: 5px 0 0; font-family: var(--serif); font-size: clamp(34px, 5vw, 68px); font-weight: 400; letter-spacing: -.065em; line-height: .9; }
.gallery-dialog__head p { margin: 7px 0 0; color: var(--ivory-dim); font-family: var(--serif); font-size: 13px; }
.gallery-toolbar { display: grid; grid-template-columns: minmax(220px, 1fr) auto auto; align-items: end; gap: 18px; padding: 12px 28px; border-bottom: 1px solid var(--line); }
.gallery-search { display: grid; grid-template-columns: auto minmax(0, 420px); align-items: center; gap: 10px; color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.gallery-search input { min-width: 0; padding: 9px 11px; border: 1px solid var(--line); border-radius: 0; outline: 0; background: rgba(241,234,219,.06); color: var(--ivory); font: inherit; font-size: 10px; letter-spacing: .03em; }
.gallery-search input:focus { border-color: var(--sulfur); }
.gallery-categories { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.gallery-categories button { appearance: none; cursor: pointer; padding: 8px 9px; border: 1px solid var(--line); background: transparent; color: var(--ivory-dim); font: inherit; font-size: 8px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.gallery-categories button:hover, .gallery-categories button:focus-visible, .gallery-categories button.is-active { border-color: var(--sulfur); color: var(--sulfur); }
.gallery-review-context { display: grid; justify-items: end; gap: 3px; }
.gallery-zoom-control { display: grid; grid-template-columns: auto 28px 42px 28px; align-items: center; gap: 3px; color: var(--ivory-dim); }
.gallery-zoom-control__label { margin-right: 4px; font-size: 6px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gallery-zoom-control button { appearance: none; display: grid; width: 28px; height: 24px; place-items: center; padding: 0; border: 1px solid var(--line); background: rgba(241,234,219,.04); color: var(--ivory); cursor: pointer; font: inherit; font-size: 14px; line-height: 1; }
.gallery-zoom-control button:hover, .gallery-zoom-control button:focus-visible { border-color: var(--sulfur); color: var(--sulfur); outline: 0; }
.gallery-zoom-control button:disabled { border-color: rgba(241,234,219,.08); color: rgba(241,234,219,.2); cursor: default; }
.gallery-zoom-control output { display: grid; height: 24px; place-items: center; border-block: 1px solid var(--line); color: var(--sulfur); font-size: 7px; font-weight: 800; letter-spacing: .05em; }
.gallery-filter-button { appearance: none; display: inline-grid; grid-template-columns: auto auto; align-items: center; gap: 8px; min-height: 30px; padding: 0 4px 0 10px; border: 1px solid var(--line); background: rgba(241,234,219,.04); color: var(--ivory); cursor: pointer; font: inherit; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.gallery-filter-button strong { display: grid; min-height: 20px; place-items: center; padding: 0 7px; background: rgba(241,234,219,.08); color: var(--sulfur); font-size: 7px; letter-spacing: .06em; }
.gallery-filter-button:hover, .gallery-filter-button:focus-visible { border-color: var(--sulfur); }
.gallery-filter-button.is-active { border-color: var(--sulfur); background: var(--sulfur); color: var(--carbon); box-shadow: inset 3px 0 0 var(--cobalt); }
.gallery-filter-button.is-active strong { background: var(--carbon); color: var(--sulfur); }
.gallery-filter-basis { color: var(--ivory-dim); font-size: 6px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.gallery-count { color: var(--coral); font-size: 8px; letter-spacing: .08em; white-space: nowrap; text-transform: uppercase; }
.gallery-grid { --gallery-tile-min: 124px; display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--gallery-tile-min), 1fr)); grid-auto-rows: calc(var(--gallery-tile-min) * .5625); align-content: start; column-gap: 3px; row-gap: 1px; min-height: 0; padding: 3px; overflow: auto; overscroll-behavior: contain; }
.gallery-grid[data-gallery-zoom="-3"] { --gallery-tile-min: 72px; }
.gallery-grid[data-gallery-zoom="-2"] { --gallery-tile-min: 88px; }
.gallery-grid[data-gallery-zoom="-1"] { --gallery-tile-min: 104px; }
.gallery-grid[data-gallery-zoom="0"] { --gallery-tile-min: 124px; }
.gallery-grid[data-gallery-zoom="1"] { --gallery-tile-min: 152px; }
.gallery-grid[data-gallery-zoom="2"] { --gallery-tile-min: 192px; }
.gallery-grid[data-gallery-zoom="3"] { --gallery-tile-min: 248px; }
@media (min-width: 721px) {
  .gallery-grid[data-gallery-zoom="1"] { --gallery-tile-min: calc((100vw - 21px) / 6); grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .gallery-grid[data-gallery-zoom="2"] { --gallery-tile-min: calc((100vw - 15px) / 4); grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .gallery-grid[data-gallery-zoom="3"] { --gallery-tile-min: calc((100vw - 9px) / 2); grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.gallery-empty { grid-column: 1 / -1; display: grid; min-height: 46vh; place-content: center; justify-items: center; padding: 28px; border: 1px solid rgba(241,234,219,.1); background: repeating-linear-gradient(-45deg, rgba(241,234,219,.02) 0 1px, transparent 1px 10px); text-align: center; }
.gallery-empty strong { color: var(--ivory); font-family: var(--serif); font-size: clamp(22px, 3vw, 40px); font-weight: 400; letter-spacing: -.04em; }
.gallery-empty p { max-width: 360px; margin: 8px 0 0; color: var(--ivory-dim); font-size: 10px; line-height: 1.45; }
.gallery-tile { position: relative; width: 100%; height: 100%; min-width: 0; min-height: 0; overflow: hidden; padding: 0; border: 0; background: var(--carbon-mid); cursor: pointer; }
.gallery-tile img { display: block; width: 100%; height: 100%; object-fit: cover; transition: filter 160ms ease, transform 220ms ease; }
.gallery-tile:hover img, .gallery-tile:focus-visible img { filter: brightness(.68) saturate(.86); transform: scale(1.035); }
.gallery-tile__caption { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 24px 7px 7px; background: linear-gradient(180deg, transparent, rgba(10,11,10,.92)); color: var(--ivory); opacity: 0; transform: translateY(4px); transition: opacity 150ms ease, transform 150ms ease; text-align: left; }
.gallery-tile:hover .gallery-tile__caption, .gallery-tile:focus-visible .gallery-tile__caption { opacity: 1; transform: translateY(0); }
.gallery-tile__caption strong, .gallery-tile__caption small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gallery-tile__caption strong { font-size: 8px; letter-spacing: .04em; }
.gallery-tile__caption small { margin-top: 3px; color: var(--ivory-dim); font-size: 6px; letter-spacing: .07em; text-transform: uppercase; }
.gallery-tile__status { position: absolute; z-index: 3; top: 5px; left: 5px; padding: 3px 4px; background: var(--sulfur); color: var(--carbon); font-size: 6px; font-weight: 800; letter-spacing: .08em; }
.gallery-tile__status--rejected { background: var(--coral); }
.gallery-tile__status--live { background: var(--cobalt); color: var(--ivory); }
.gallery-tile__status--video { background: var(--cobalt); color: var(--ivory); }
.gallery-tile__status--rating-video { background: var(--sulfur); color: var(--carbon); box-shadow: inset 3px 0 0 var(--cobalt); }
.gallery-tile__play { position: absolute; z-index: 3; top: 50%; left: 50%; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(241,234,219,.72); border-radius: 50%; background: rgba(16,17,16,.58); color: var(--ivory); font-size: 11px; transform: translate(-50%,-50%); backdrop-filter: blur(4px); }
.gallery-tile__duration { position: absolute; z-index: 3; right: 5px; bottom: 5px; padding: 3px 4px; background: rgba(16,17,16,.72); color: var(--ivory); font-size: 6px; font-weight: 700; letter-spacing: .05em; }
.deck-index { position: fixed; z-index: 20; inset: 0; display: grid; place-items: center; padding: 24px; }
.deck-index__scrim { position: absolute; inset: 0; background: rgba(5,6,5,.92); backdrop-filter: blur(5px); }
.deck-index__window { position: relative; z-index: 1; display: grid; grid-template-rows: auto auto 1fr auto; width: min(92vw, 760px); max-height: min(88vh, 820px); padding: 28px 32px 22px; border: 1px solid rgba(241,234,219,.35); background: var(--carbon-soft); box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.deck-index__head { display: flex; justify-content: space-between; gap: 20px; }
.deck-index__head h2 { margin: 8px 0 0; color: var(--ivory); font-family: var(--serif); font-size: 42px; font-weight: 400; letter-spacing: -.06em; }
.deck-index__close { appearance: none; cursor: pointer; width: 34px; height: 34px; padding: 0; border: 1px solid var(--line); background: transparent; color: var(--ivory); font-size: 27px; line-height: 1; }
.deck-index__close:hover { border-color: var(--coral); color: var(--coral); }
.deck-index__note { margin: 14px 0 18px; color: var(--ivory-dim); font-family: var(--serif); font-size: 14px; line-height: 1.3; }
.deck-index__list { min-height: 0; overflow: auto; border-top: 1px solid var(--line); }
.deck-index__list .deck-index-row { color: var(--ivory); border-color: var(--line); }
.deck-index__list .deck-index-row:hover { color: var(--sulfur); }
.deck-index__list .deck-index-row small { color: var(--ivory-dim); }
.deck-index__foot { display: flex; justify-content: space-between; gap: 12px; padding-top: 16px; color: var(--ivory-dim); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 720px) {
  .deck { padding: 12px 10px 9px; }
  .deck-topbar { min-height: 25px; font-size: 8px; }
  .brand-rule { width: 18px; }
  .brand-copy { overflow: hidden; text-overflow: ellipsis; max-width: 130px; }
  .deck-topbar__right { gap: 8px; }
  .deck-status { gap: 5px; }
  .deck-menu-button { padding: 5px 7px; font-size: 8px; }
  .deck-main { padding: 5px 0 2px; }
  .stage-region { width: 94vw; }
  .stage-shell { padding: 4px; }
  .stage-crop { width: 12px; height: 12px; }
  .stage-rail { right: 9px; bottom: 7px; left: 9px; font-size: 7px; }
  .stage-controls { min-height: 36px; }
  .nav-button { min-width: 54px; padding: 8px 0; font-size: 18px; }
  .nav-button small { font-size: 8px; }
  .stage-progress { gap: 8px; font-size: 9px; }
  .stage-progress > span:first-child { font-size: 10px; }
  .stage-hint { display: none; }
  .deck-footer { gap: 4px; font-size: 6px; }
  .slide--cover { grid-template-columns: 1fr; gap: 12px; padding: 20px; }
  .cover-copy h1 { font-size: clamp(39px, 11vw, 60px); }
  .cover-copy p { font-size: 13px; }
  .cover-chapter { margin-top: 12px; font-size: 8px; }
  .cover-aside { align-self: start; padding-left: 12px; }
  .cover-metric { padding: 6px 0; font-size: 7px; }
  .cover-metric strong { font-size: 17px; }
  .cover-aside__note { margin-top: 10px; font-size: 9px; }
  .slide--index { grid-template-columns: 1fr; gap: 9px; padding: 19px 17px; }
  .index-intro h2 { margin: 7px 0 9px; font-size: 27px; }
  .index-intro p { font-size: 10px; }
  .deck-index-row { grid-template-columns: 28px 1fr 14px; gap: 7px; padding: 7px 0; }
  .deck-index-row strong { font-size: 9px; }
  .deck-index-row small { margin-top: 2px; font-size: 8px; }
  .deck-index-row__num { font-size: 8px; }
  .deck-index-row__arrow { font-size: 12px; }
  .slide--section { grid-template-columns: 22px 1fr; gap: 12px; padding: 20px; }
  .section-stamp { font-size: 7px; }
  .section-copy h2 { margin-bottom: 9px; font-size: 30px; }
  .section-copy p { margin-bottom: 10px; font-size: 10px; }
  .section-jump { padding: 7px 8px; font-size: 7px; }
  .section-jump span { margin-left: 7px; font-size: 11px; }
  .section-aside { grid-column: 2; padding-left: 10px; }
  .section-aside strong { margin-top: 5px; font-size: 11px; }
  .section-aside small { margin-top: 6px; font-size: 7px; }
  .slide--contact { padding: 13px 10px 9px; }
  .slide-header { gap: 8px; padding-bottom: 6px; }
  .slide-kicker, .slide-meta { font-size: 7px; }
  .slide-title { margin-top: 3px; font-size: 18px; }
  .slide-title small { margin-top: 3px; font-size: 7px; }
  .slide-header__aside { max-width: 108px; }
  .slide-line { margin-top: 3px; font-size: 8px; }
  .contact-grid { gap: 4px; }
  .contact-grid.grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); }
  .thumb__stamp { top: 3px; left: 3px; padding: 2px 3px; font-size: 5px; }
  .thumb-caption { min-height: 15px; padding: 3px 4px; font-size: 5px; }
  .thumb-caption span:last-child { font-size: 4px; }
  .contact-foot { margin-top: 4px; font-size: 6px; }
  .slide--single { grid-template-columns: minmax(0, 1.56fr) minmax(92px, .44fr); }
  .single-figure__asset-id { top: 9px; left: 9px; padding: 4px; font-size: 5px; }
  .single-figure__asset-id--rejected { right: 9px; left: auto; }
  .reject-reason { top: 3px; left: 3px; font-size: 5px; }
  .reject-reason__short { gap: 2px; padding: 2px 3px; }
  .reject-reason__short > span { font-size: 7px; }
  .reject-reason__detail { width: min(150px, 62vw); padding: 6px; font-size: 6px; }
  .reject-reason__detail strong { margin-bottom: 3px; font-size: 5px; }
  .reject-reason--thumb { inset: auto auto 16px 3px; }
  .reject-reason--thumb .reject-reason__short { position: static; }
  .reject-reason--thumb .reject-reason__detail { width: 110px; }
  .reject-reason--single { top: 54px; left: 9px; }
  .reject-reason--single .reject-reason__short { padding: 4px; }
  .single-figure::after { inset: 6px; }
  .single-rail { padding: 12px 9px 9px; }
  .single-rail h2 { margin-top: 11px; font-size: 20px; }
  .single-rail h2 small { margin-top: 4px; font-size: 6px; }
  .single-rail__line { margin-top: 6px; font-size: 8px; }
  .single-fact { grid-template-columns: 31px 1fr; gap: 4px; padding: 5px 0; font-size: 5px; }
  .single-rail__next { font-size: 5px; }
  .slide--source { grid-template-columns: 1fr; gap: 7px; padding: 17px 15px; }
  .source-intro h2 { margin: 5px 0 7px; font-size: 28px; }
  .source-intro p { margin: 0; font-size: 9px; }
  .source-endmark { margin-top: 8px; font-size: 6px; }
  .source-row { grid-template-columns: 54px 1fr; gap: 7px; padding: 5px 0; }
  .source-tag { font-size: 6px; }
  .source-row strong { margin-bottom: 2px; font-size: 7px; }
  .source-row p { font-size: 7px; }
  .deck-index { padding: 10px; }
  .deck-index__window { width: 100%; max-height: 90vh; padding: 17px 15px 13px; }
  .deck-index__head h2 { margin-top: 4px; font-size: 28px; }
  .deck-index__note { margin: 8px 0 10px; font-size: 10px; }
  .deck-index__foot { padding-top: 9px; font-size: 7px; }
}

/* Final safe-area overrides are intentionally last so later worker-side CSS merges cannot move review copy into the rail. */
.single-rail { bottom: 54px !important; max-height: 38% !important; padding-bottom: 20px; }
.contact-foot { bottom: 60px !important; }
.media-review-controls { grid-template-columns: auto auto auto 1fr; max-width: min(82%, 1040px); }
.rating-star-wrap { position: relative; display: inline-flex; width: 18px; height: 20px; align-items: center; justify-content: center; }
.rating-team-star { position: absolute; z-index: 0; left: 0; top: 1px; overflow: hidden; color: rgba(234,212,79,.42); font-size: 15px; line-height: 1; white-space: nowrap; pointer-events: none; }
.rating-star-wrap .rating-star { position: relative; z-index: 1; width: 18px; background: transparent; }
.rating-stars.is-preview .rating-star:not(.is-preview) { color: rgba(241,234,219,.28); }
.rating-star.is-preview { color: var(--sulfur); }
@media (max-width: 720px) {
  .single-rail { bottom: 35px !important; max-height: 44% !important; padding-bottom: 15px; }
  .contact-foot { bottom: 38px !important; }
  .media-review-controls { grid-template-columns: 1fr auto auto; max-width: 94%; }
}

/* Keep the last row of captions above the global stage rail and controls. */
.contact-grid { inset: 8px 8px 48px !important; }
.contact-foot { bottom: 60px !important; }
@media (max-width: 720px) {
  .contact-grid { inset: 4px 4px 34px !important; }
  .contact-foot { bottom: 45px !important; }
}

/* Review refinement: dual rating layers, safe overlay area and recipe references. */
.single-rail { bottom: 54px; max-height: 38%; padding-bottom: 20px; }
.contact-foot { bottom: 60px; }
.media-review-controls { grid-template-columns: auto auto auto 1fr; max-width: min(82%, 1040px); }
.rating-stars { position: relative; }
.rating-star-wrap { position: relative; display: inline-flex; width: 18px; height: 20px; align-items: center; justify-content: center; }
.rating-team-star { position: absolute; z-index: 0; left: 0; top: 1px; width: 0; overflow: hidden; color: rgba(234,212,79,.42); font-size: 15px; line-height: 1; white-space: nowrap; pointer-events: none; }
.rating-star-wrap .rating-star { position: relative; z-index: 1; width: 18px; background: transparent; }
.rating-star.is-on { color: var(--sulfur); }
.rating-star.is-preview { color: var(--sulfur); }
.rating-stars.is-preview .rating-star:not(.is-preview) { color: rgba(241,234,219,.28); }
.team-rating-info { color: rgba(241,234,219,.7); font-size: 7px; font-weight: 700; letter-spacing: .08em; white-space: nowrap; }
.rating-stars.is-pulsing { animation: rating-select-pulse 560ms ease-out both; }
.rating-stars.is-clearing { animation: rating-clear-pulse 420ms ease-out both; }
.rating-particle { position: absolute; z-index: 3; top: 8px; left: 9px; width: 3px; height: 3px; border-radius: 50%; background: var(--sulfur); pointer-events: none; animation: rating-particle-burst 620ms cubic-bezier(.2,.7,.2,1) var(--delay) both; }
@keyframes rating-select-pulse { 0% { transform: scale(1); filter: brightness(1); } 38% { transform: scale(1.18); filter: brightness(1.5); } 100% { transform: scale(1); filter: brightness(1); } }
@keyframes rating-clear-pulse { 0% { opacity: 1; } 45% { opacity: .35; } 100% { opacity: 1; } }
@keyframes rating-particle-burst { 0% { opacity: 0; transform: translate(0,0) scale(.4); } 18% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx),var(--dy)) scale(.1); } }
.filter-basis-options, .filter-sort-options { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 0 10px; padding: 0; border: 0; }
.filter-basis-options legend, .filter-sort-options legend { width: 100%; margin-bottom: 4px; color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.filter-basis-options label, .filter-sort-options label { display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; border: 1px solid var(--line); color: var(--ivory); cursor: pointer; font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.filter-basis-options label:has(input:checked), .filter-sort-options label:has(input:checked) { border-color: var(--cobalt); color: var(--sulfur); }
.filter-basis-options input, .filter-sort-options input { accent-color: var(--sulfur); }
.recipe-drawer { position: fixed; z-index: 42; width: min(94vw, 760px); max-height: min(88vh, 860px); margin: auto; padding: 0; border: 1px solid rgba(241,234,219,.35); background: var(--carbon-soft); color: var(--ivory); box-shadow: 0 30px 80px rgba(0,0,0,.55); overflow: hidden; }
.recipe-drawer::backdrop { background: rgba(5,6,5,.88); backdrop-filter: blur(5px); }
.recipe-drawer__window { max-height: min(88vh, 860px); overflow: auto; padding: 28px 32px 24px; }
.recipe-drawer__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.recipe-drawer__head h2 { margin: 7px 0 0; font-family: var(--serif); font-size: 38px; font-weight: 400; letter-spacing: -.06em; }
.recipe-drawer__head > div > span:last-child { display: block; margin-top: 5px; color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .1em; }
.recipe-drawer__status { min-height: 20px; margin: 14px 0 10px; color: var(--ivory-dim); font-family: var(--serif); font-size: 13px; line-height: 1.3; }
.recipe-prompt { max-height: 180px; overflow: auto; padding: 12px; border: 1px solid var(--line); background: rgba(16,17,16,.65); color: var(--ivory); font-family: var(--mono); font-size: 10px; line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; }
.recipe-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px 14px; margin: 14px 0 0; }
.recipe-fields > div { display: grid; grid-template-columns: 80px 1fr; gap: 8px; padding: 7px 0; border-top: 1px solid var(--line); }
.recipe-fields dt { color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .08em; }
.recipe-fields dd { margin: 0; color: var(--ivory); font-size: 9px; overflow-wrap: anywhere; }
.recipe-references { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); }
.recipe-references__head { display: flex; justify-content: space-between; color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .1em; }
.recipe-references__head strong { color: var(--sulfur); }
.recipe-reference-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; margin-top: 9px; }
.recipe-reference-card { min-width: 0; border: 1px solid var(--line); background: rgba(16,17,16,.48); }
.recipe-reference-media { display: grid; place-items: center; aspect-ratio: 4 / 3; overflow: hidden; background: #242723; color: var(--ivory-dim); font-size: 8px; }
.recipe-reference-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.recipe-reference-copy { padding: 7px; }
.recipe-reference-copy strong, .recipe-reference-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recipe-reference-copy strong { color: var(--ivory); font-size: 9px; }
.recipe-reference-copy small { margin-top: 3px; color: var(--ivory-dim); font-size: 7px; }
.recipe-reference-links { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.recipe-reference-links a { color: var(--sulfur); font-size: 7px; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.recipe-reference-links a:hover, .recipe-reference-links a:focus-visible { color: var(--coral); text-decoration: underline; }
.recipe-references__empty { color: var(--ivory-dim); font-family: var(--serif); font-size: 12px; line-height: 1.3; }
.recipe-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; padding-top: 13px; border-top: 1px solid var(--line); }
.recipe-actions button { appearance: none; cursor: pointer; padding: 8px 10px; border: 1px solid var(--line); background: transparent; color: var(--ivory); font: inherit; font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.recipe-actions button:not(:disabled):hover, .recipe-actions button:not(:disabled):focus-visible { border-color: var(--sulfur); color: var(--sulfur); }
.recipe-actions button:disabled { cursor: default; opacity: .35; }
.recipe-original { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.recipe-original__head { display: flex; justify-content: space-between; gap: 12px; color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .1em; }
.recipe-original__head strong { color: var(--sulfur); }
.recipe-original__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.recipe-original__actions a, .recipe-original__actions button { appearance: none; cursor: pointer; padding: 7px 9px; border: 1px solid var(--line); background: transparent; color: var(--ivory); font: inherit; font-size: 8px; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.recipe-original__actions a:hover, .recipe-original__actions a:focus-visible, .recipe-original__actions button:hover, .recipe-original__actions button:focus-visible { border-color: var(--sulfur); color: var(--sulfur); }
.recipe-original__actions button:disabled { cursor: default; opacity: .4; }
.recipe-original__empty { color: var(--ivory-dim); font-family: var(--serif); font-size: 12px; }
@media (prefers-reduced-motion: reduce) { .rating-stars.is-pulsing, .rating-stars.is-clearing, .rating-particle { animation: none !important; } }
@media (max-width: 720px) {
  .single-rail { bottom: 35px; max-height: 44%; padding-bottom: 15px; }
  .contact-foot { bottom: 38px; }
  .media-review-controls { grid-template-columns: 1fr auto auto; max-width: 94%; gap: 4px; }
  .rating-line { flex-wrap: wrap; gap: 3px; }
  .team-rating-info { width: 100%; font-size: 5px; }
  .filter-basis-options label, .filter-sort-options label { padding: 6px 7px; font-size: 6px; }
  .recipe-drawer__window { padding: 17px 15px 14px; }
  .recipe-drawer__head h2 { font-size: 28px; }
  .recipe-drawer__status { margin: 8px 0; font-size: 10px; }
  .recipe-prompt { max-height: 110px; font-size: 8px; }
  .recipe-fields { grid-template-columns: 1fr; gap: 0; margin-top: 8px; }
  .recipe-fields > div { grid-template-columns: 68px 1fr; padding: 5px 0; }
  .recipe-reference-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .recipe-actions { margin-top: 10px; padding-top: 8px; }
}

/* Local review layer: ratings stay lightweight on the canvas; discussion uses a native dialog. */
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.review-auth { display: inline-flex; align-items: center; gap: 8px; color: var(--ivory-dim); font-size: 8px; letter-spacing: .08em; }
.review-auth[hidden] { display: none; }
.review-auth .deck-menu-button { padding: 5px 8px; font-size: 8px; }
.review-auth-status { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.media-review-controls { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 8px; max-width: min(68%, 900px); margin-top: 10px; color: var(--ivory-dim); pointer-events: auto; }
.media-review-controls, .media-review-controls * { pointer-events: auto; }
.rating-line { display: inline-flex; align-items: center; gap: 7px; }
.rating-line > span, .rating-status { color: var(--ivory-dim); font-size: 7px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.rating-line > strong { min-width: 23px; color: var(--sulfur); font-size: 10px; }
.rating-stars { display: inline-flex; align-items: center; gap: 1px; }
.rating-star, .rating-clear, .comment-trigger { appearance: none; border: 0; cursor: pointer; font: inherit; }
.rating-star { width: 18px; height: 20px; padding: 0; background: transparent; color: rgba(241,234,219,.38); font-size: 15px; line-height: 1; }
.rating-star.is-on, .rating-star:hover, .rating-star:focus-visible { color: var(--sulfur); }
.rating-clear { width: 20px; height: 18px; margin-left: 3px; border: 1px solid var(--line); background: transparent; color: var(--ivory-dim); font-size: 8px; }
.rating-clear:hover, .rating-clear:focus-visible { border-color: var(--coral); color: var(--coral); }
.comment-trigger { justify-self: start; padding: 5px 8px; border: 1px solid var(--line); background: rgba(16,17,16,.38); color: var(--ivory); font-size: 8px; font-weight: 700; letter-spacing: .08em; }
.comment-trigger span { margin-left: 5px; color: var(--sulfur); }
.comment-trigger:hover, .comment-trigger:focus-visible { border-color: var(--sulfur); color: var(--sulfur); }
.rating-status { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.index-review-status { max-width: 380px; margin-top: 20px; color: #59645c; font-size: 9px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.index-filter-summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 0 0; color: #59645c; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.index-filter-summary strong { margin-right: auto; color: var(--cobalt); }
.index-filter-summary button { appearance: none; cursor: pointer; padding: 6px 8px; border: 1px solid var(--line-dark); background: transparent; color: var(--carbon); font: inherit; font-size: 8px; font-weight: 700; letter-spacing: .08em; }
.index-filter-summary button:hover, .index-filter-summary button:focus-visible { border-color: var(--cobalt); color: var(--cobalt); }
.filter-dialog, .comment-drawer { position: fixed; z-index: 40; width: min(94vw, 620px); max-width: none; margin: auto; padding: 0; border: 1px solid rgba(241,234,219,.35); background: var(--carbon-soft); color: var(--ivory); box-shadow: 0 30px 80px rgba(0,0,0,.55); }
.filter-dialog::backdrop, .comment-drawer::backdrop { background: rgba(5,6,5,.88); backdrop-filter: blur(5px); }
.filter-dialog__window, .comment-drawer__window { padding: 28px 32px 24px; }
.filter-dialog__head, .comment-drawer__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.filter-dialog__head h2, .comment-drawer__head h2 { margin: 7px 0 0; font-family: var(--serif); font-size: 38px; font-weight: 400; letter-spacing: -.06em; }
.filter-dialog__note { margin: 14px 0 20px; color: var(--ivory-dim); font-family: var(--serif); font-size: 14px; line-height: 1.3; }
.rating-filter-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0; padding: 0; border: 0; }
.rating-filter-options label { display: flex; align-items: center; gap: 8px; padding: 10px 11px; border: 1px solid var(--line); cursor: pointer; color: var(--ivory); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rating-filter-options label:has(input:checked) { border-color: var(--sulfur); background: rgba(234,212,79,.12); color: var(--sulfur); }
.rating-filter-options input { accent-color: var(--sulfur); }
.filter-presets { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 18px; color: var(--ivory-dim); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.filter-presets button { appearance: none; cursor: pointer; padding: 7px 9px; border: 1px solid var(--line); background: transparent; color: var(--ivory); font: inherit; font-size: 9px; letter-spacing: .05em; }
.filter-presets button:hover, .filter-presets button:focus-visible { border-color: var(--sulfur); color: var(--sulfur); }
.filter-dialog__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--sulfur); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.comment-drawer { width: min(94vw, 620px); max-height: min(88vh, 780px); overflow: hidden; }
.comment-drawer__window { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto auto; max-height: min(88vh, 780px); }
.comment-drawer__head h2 { font-size: 34px; }
.comment-drawer__head > div > span:last-child { display: block; margin-top: 5px; color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.comment-drawer__status { min-height: 20px; margin: 16px 0 10px; color: var(--ivory-dim); font-family: var(--serif); font-size: 13px; line-height: 1.25; }
.comment-list { min-height: 0; max-height: 42vh; margin: 0; padding: 0 5px 10px 0; overflow: auto; list-style: none; }
.comment-item { padding: 13px 0; border-top: 1px solid var(--line); }
.comment-item.is-mine { border-left: 2px solid var(--sulfur); padding-left: 10px; }
.comment-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.comment-meta strong { color: var(--ivory); }
.comment-body { margin: 8px 0 0; color: var(--ivory); font-family: var(--serif); font-size: 15px; line-height: 1.3; white-space: pre-wrap; overflow-wrap: anywhere; }
.comment-actions, .comment-delete-confirm, .comment-form__foot { display: flex; align-items: center; gap: 8px; }
.comment-actions { justify-content: flex-end; margin-top: 9px; color: var(--ivory-dim); font-size: 9px; }
.comment-action-button, .comment-login-required button, .comment-form__foot button { appearance: none; cursor: pointer; padding: 7px 9px; border: 1px solid var(--line); background: transparent; color: var(--ivory); font: inherit; font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.comment-action-button:hover, .comment-action-button:focus-visible, .comment-login-required button:hover, .comment-form__foot button:hover { border-color: var(--sulfur); color: var(--sulfur); }
.comment-action-button.is-primary, .comment-form__foot button:not(:disabled) { border-color: var(--sulfur); color: var(--sulfur); }
.comment-action-button.is-danger { border-color: var(--coral); color: var(--coral); }
.comment-action-button:disabled, .comment-form__foot button:disabled { cursor: default; opacity: .38; }
.comment-delete-confirm { justify-content: flex-end; margin-top: 10px; color: var(--coral); font-size: 9px; }
.comment-item textarea, .comment-form textarea { width: 100%; margin-top: 9px; resize: vertical; padding: 10px; border: 1px solid var(--line); background: rgba(16,17,16,.55); color: var(--ivory); font: inherit; font-family: var(--serif); font-size: 14px; line-height: 1.3; }
.comment-item textarea:focus, .comment-form textarea:focus { border-color: var(--sulfur); outline: 2px solid rgba(234,212,79,.22); outline-offset: 2px; }
.comment-inline-status { margin: 6px 0 0; color: var(--coral); font-size: 9px; }
.comment-empty, .comment-login-required { padding: 16px 0; border-top: 1px solid var(--line); color: var(--ivory-dim); font-family: var(--serif); font-size: 14px; line-height: 1.3; }
.comment-empty strong, .comment-login-required strong { color: var(--ivory); font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.comment-empty p { margin: 7px 0 0; }
.comment-login-required button { display: block; margin-top: 14px; }
.comment-form { padding-top: 14px; border-top: 1px solid var(--line); }
.comment-form label { display: block; color: var(--ivory-dim); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.comment-form textarea { min-height: 86px; margin-top: 7px; }
.comment-form__foot { justify-content: space-between; margin-top: 8px; color: var(--ivory-dim); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.review-toast { position: fixed; z-index: 60; right: 24px; bottom: 24px; max-width: min(80vw, 420px); padding: 11px 14px; border: 1px solid var(--sulfur); background: rgba(16,17,16,.94); color: var(--ivory); font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.review-toast[hidden] { display: none; }
.google-login-dialog { width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(8,9,8,.78); color: var(--ivory); }
.google-login-dialog[open] { display: grid; place-items: center; }
.google-login-dialog::backdrop { background: rgba(8,9,8,.74); backdrop-filter: blur(5px); }
.google-login-dialog__window { width: min(430px, calc(100vw - 32px)); padding: 24px; border: 1px solid var(--ivory); background: #111310; box-shadow: 0 24px 80px rgba(0,0,0,.5); }
.google-login-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.google-login-dialog__head h2 { margin: 4px 0 0; font-family: var(--serif); font-size: 34px; font-weight: 500; line-height: .95; }
.google-login-dialog__window > p { margin: 18px 0; color: var(--ivory-dim); font-size: 12px; line-height: 1.5; }
.google-login-dialog__window > p strong { color: var(--ivory); }
.google-login-button { display: flex; min-height: 44px; align-items: center; justify-content: center; padding: 12px; border: 1px solid var(--line); background: #f7f7f7; }
.google-login-dialog__status { margin-bottom: 0 !important; font-size: 9px !important; letter-spacing: .05em; text-transform: uppercase; }

@media (max-width: 720px) {
  .review-auth-status { display: none; }
  .media-review-controls { grid-template-columns: 1fr auto; max-width: 90%; gap: 4px; margin-top: 5px; }
  .rating-status { grid-column: 1 / -1; font-size: 5px; }
  .rating-line > span { font-size: 5px; }
  .rating-star { width: 14px; height: 16px; font-size: 12px; }
  .rating-clear { width: 16px; height: 15px; font-size: 6px; }
  .comment-trigger { padding: 4px 5px; font-size: 6px; }
  .filter-dialog__window, .comment-drawer__window { padding: 17px 15px 14px; }
  .google-login-dialog__window { padding: 18px 16px 16px; }
  .google-login-dialog__head h2 { font-size: 28px; }
  .filter-dialog__head h2, .comment-drawer__head h2 { font-size: 28px; }
  .filter-dialog__note { margin: 8px 0 12px; font-size: 10px; }
  .rating-filter-options { gap: 4px; }
  .rating-filter-options label { padding: 7px 5px; font-size: 7px; }
  .filter-presets { gap: 4px; margin-top: 10px; font-size: 6px; }
  .filter-presets button { padding: 5px 6px; font-size: 6px; }
  .filter-dialog__foot { margin-top: 14px; padding-top: 9px; font-size: 7px; }
  .comment-drawer__status { margin: 9px 0 5px; font-size: 10px; }
  .comment-list { max-height: 34vh; }
  .comment-body { font-size: 11px; }
  .comment-form textarea { min-height: 58px; }
  .review-toast { right: 10px; bottom: 10px; font-size: 8px; }
}

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

/* Full-canvas deck pass: chrome floats over a larger 16:9 stage. */
html, body { overflow: hidden; }
.deck { position: relative; display: block; width: 100%; height: 100dvh; padding: 0; }
.deck-topbar { position: absolute; z-index: 12; top: 13px; right: 20px; left: 20px; min-height: 27px; border-bottom-color: rgba(241,234,219,.28); pointer-events: none; }
.deck-topbar__right, .deck-menu-button { pointer-events: auto; }
.deck-main { width: 100%; height: 100%; padding: 0; }
.stage-region { position: relative; width: min(calc(100vw - 40px), calc((100dvh - 20px) * 16 / 9)); max-width: none; }
.stage-shell { padding: 8px; }
.stage-controls { position: absolute; z-index: 10; right: auto; bottom: 9px; left: 50%; width: min(72vw, 510px); min-height: 34px; padding: 3px 10px; border: 1px solid rgba(241,234,219,.22); background: linear-gradient(90deg, rgba(14,16,15,.08), rgba(14,16,15,.82) 18%, rgba(14,16,15,.82) 82%, rgba(14,16,15,.08)); transform: translateX(-50%); }
.nav-button { min-width: 62px; padding: 5px 0; font-size: 18px; }
.stage-progress { gap: 12px; }
.deck-footer { position: absolute; z-index: 12; right: 20px; bottom: 10px; left: 20px; margin: 0; padding: 0; border: 0; pointer-events: none; }

/* Individual frames use the full stage; metadata is a restrained lower overlay. */
.slide--single { display: block; }
.single-figure { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.single-figure img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.single-rail { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; justify-content: end; max-height: 34%; padding: 76px 34px 30px; border: 0; background: linear-gradient(180deg, rgba(14,16,15,0), rgba(14,16,15,.78) 58%, rgba(14,16,15,.95)); pointer-events: none; }
.single-rail__top { font-size: 9px; }
.single-rail h2 { max-width: min(64%, 860px); margin: 7px 0 0; font-size: clamp(24px, 3vw, 44px); text-shadow: 0 2px 18px rgba(0,0,0,.48); }
.single-rail h2 small { margin-top: 6px; font-size: 9px; }
.single-rail__line { max-width: min(66%, 900px); margin: 6px 0 0; font-size: 12px; }
.single-rail__facts { display: flex; flex-wrap: wrap; gap: 0 16px; margin-top: 8px; border: 0; }
.single-fact { display: inline-flex; grid-template-columns: none; gap: 5px; padding: 0; border: 0; font-size: 8px; }
.single-fact strong { max-width: 240px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.single-rail__next { display: none; }

/* Contact sheets become image-first grids; captions and status live on top of the image. */
.slide--contact { display: block; padding: 0; }
.slide-header { position: absolute; z-index: 3; top: 34px; right: 13px; left: 13px; padding: 0; pointer-events: none; text-shadow: 0 1px 9px rgba(0,0,0,.55); }
.slide--contact .slide-header__copy { max-width: 64%; }
.slide--contact .slide-kicker, .slide--contact .slide-title, .slide--contact .slide-title small, .slide--contact .slide-header__aside, .slide--contact .slide-line { color: var(--ivory); }
.slide--contact .slide-title { margin-top: 3px; font-size: clamp(20px, 2.6vw, 38px); }
.slide--contact .slide-title small { margin-top: 3px; color: var(--ivory-dim); font-size: 9px; }
.slide--contact .slide-header__aside { max-width: 30%; }
.slide--contact .slide-meta { color: var(--sulfur); }
.slide--contact .slide-line { color: var(--ivory-dim); }
.contact-grid { position: absolute; z-index: 1; inset: 8px; display: grid; gap: 4px; min-height: 0; }
.contact-grid.grid--6 { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.contact-grid.grid--9 { grid-template-rows: repeat(3, minmax(0, 1fr)); }
.thumb { display: block; }
.thumb-media { position: absolute; inset: 0; width: 100%; height: 100%; }
.thumb-media img { width: 100%; height: 100%; object-fit: cover; }
.thumb-caption { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; min-height: 0; padding: 22px 8px 7px; border: 0; background: linear-gradient(180deg, rgba(16,17,16,0), rgba(16,17,16,.84)); color: var(--ivory); }
.thumb-caption span:first-child, .thumb-caption span:last-child { color: var(--ivory); font-size: 9px; text-shadow: 0 1px 6px rgba(0,0,0,.7); }
.thumb__stamp { top: 7px; left: 7px; }
.contact-foot { position: absolute; z-index: 3; right: 13px; bottom: 48px; left: 13px; margin: 0; color: var(--ivory); text-shadow: 0 1px 6px rgba(0,0,0,.7); pointer-events: none; }
.contact-foot strong { color: var(--sulfur); }

@media (max-width: 720px) {
  .deck-topbar { top: 8px; right: 10px; left: 10px; min-height: 24px; }
  .masthead__brand { flex: 0 0 auto; gap: 0; }
  .brand-rule, .brand-copy, .deck-status { display: none; }
  .deck-topbar__right { min-width: 0; margin-left: auto; gap: 3px; }
  .review-auth { gap: 3px; }
  .deck-menu-button, .review-auth .deck-menu-button { padding: 4px 5px; font-size: 6px; letter-spacing: .08em; }
  .shuffle-label--long { display: none; }
  .shuffle-label--short { display: inline; }
  .gallery-label--long { display: none; }
  .gallery-label--short { display: inline; }
  .stage-region { width: calc(100vw - 20px); }
  .stage-shell { padding: 4px; }
  .stage-controls { right: auto; bottom: 5px; left: 50%; width: calc(100% - 16px); min-height: 29px; padding: 2px 5px; transform: translateX(-50%); }
  .nav-button { min-width: 48px; padding: 3px 0; font-size: 16px; }
  .stage-progress { gap: 5px; }
  .deck-footer { right: 10px; bottom: 7px; left: 10px; }
  .single-rail { max-height: 42%; padding: 48px 13px 25px; }
  .single-rail h2 { max-width: 75%; margin-top: 4px; font-size: 20px; }
  .single-rail h2 small { font-size: 6px; }
  .single-rail__line { max-width: 78%; font-size: 8px; }
  .single-rail__facts { gap: 0 8px; margin-top: 5px; }
  .single-fact { font-size: 5px; }
  .single-fact strong { max-width: 75px; }
  .slide-header { top: 24px; right: 7px; left: 7px; }
  .slide--contact .slide-title { font-size: 17px; }
  .slide--contact .slide-title small { font-size: 6px; }
  .slide--contact .slide-header__aside { max-width: 28%; }
  .slide--contact .slide-kicker, .slide--contact .slide-meta { font-size: 6px; }
  .slide--contact .slide-line { font-size: 7px; }
  .contact-grid { inset: 4px; gap: 3px; }
  .thumb__stamp { top: 3px; left: 3px; padding: 2px 3px; font-size: 5px; }
  .thumb-caption { padding: 14px 4px 4px; }
  .thumb-caption span:first-child, .thumb-caption span:last-child { font-size: 5px; }
  .contact-foot { right: 7px; bottom: 34px; left: 7px; font-size: 5px; }
  .gallery-dialog__head { padding: 13px 12px 10px; }
  .gallery-dialog__head h2 { font-size: 34px; }
  .gallery-dialog__head p { font-size: 9px; }
  .gallery-toolbar { grid-template-columns: 1fr; gap: 8px; padding: 8px 12px; }
  .gallery-search { grid-template-columns: 43px 1fr; }
  .gallery-categories { justify-content: flex-start; }
  .gallery-categories button { padding: 5px 6px; font-size: 6px; }
  .gallery-review-context { grid-template-columns: auto 1fr; align-items: center; justify-items: start; gap: 3px 7px; }
  .gallery-zoom-control { grid-column: 1 / -1; grid-template-columns: auto 26px 40px 26px; margin-bottom: 2px; }
  .gallery-zoom-control button { width: 26px; height: 22px; font-size: 12px; }
  .gallery-zoom-control output { height: 22px; font-size: 6px; }
  .gallery-filter-button { grid-row: 2 / span 2; min-height: 25px; gap: 5px; padding-left: 7px; font-size: 6px; }
  .gallery-filter-button strong { min-height: 17px; padding: 0 5px; font-size: 5px; }
  .gallery-filter-basis { font-size: 5px; }
  .gallery-count { font-size: 6px; }
  .gallery-grid { --gallery-tile-min: 74px; grid-template-columns: repeat(auto-fill, minmax(var(--gallery-tile-min), 1fr)); grid-auto-rows: calc(var(--gallery-tile-min) * .5625); column-gap: 2px; row-gap: 1px; padding: 2px; }
  .gallery-grid[data-gallery-zoom="-3"] { --gallery-tile-min: 48px; }
  .gallery-grid[data-gallery-zoom="-2"] { --gallery-tile-min: 58px; }
  .gallery-grid[data-gallery-zoom="-1"] { --gallery-tile-min: 68px; }
  .gallery-grid[data-gallery-zoom="0"] { --gallery-tile-min: 74px; }
  .gallery-grid[data-gallery-zoom="1"] { --gallery-tile-min: 96px; }
  .gallery-grid[data-gallery-zoom="2"] { --gallery-tile-min: 124px; }
  .gallery-grid[data-gallery-zoom="3"] { --gallery-tile-min: calc((100vw - 6px) / 2); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-empty { min-height: 38vh; padding: 16px; }
  .gallery-empty p { font-size: 8px; }
  .gallery-tile { width: 100%; height: 100%; min-height: 0; }
}

/* Final safe-area overrides. */
.single-rail { bottom: 54px; max-height: 38%; padding-bottom: 20px; }
.contact-foot { bottom: 60px; }
.media-review-controls { grid-template-columns: auto auto auto 1fr; max-width: min(82%, 1040px); }
.contact-grid { inset: 8px 8px 48px; }
@media (max-width: 720px) {
  .single-rail { bottom: 35px; max-height: 44%; padding-bottom: 15px; }
  .contact-grid { inset: 4px 4px 34px; }
  .contact-foot { bottom: 45px; }
  .media-review-controls { grid-template-columns: 1fr auto auto; max-width: 94%; }
}

/* Full-frame media: preserve every edge, then let the reviewer zoom and pan individual images. */
.single-figure, .thumb-media, .gallery-tile { background: #0c0e0d; }
.single-figure img, .thumb-media img, .gallery-tile img { object-fit: contain !important; object-position: center !important; }
.single-figure video { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; object-position: center; background: #0c0e0d; }
.image-view-controls { position: absolute; z-index: 6; top: 58px; right: 28px; display: flex; align-items: center; gap: 3px; padding: 3px; border: 1px solid rgba(241,234,219,.28); background: rgba(16,17,16,.68); color: var(--ivory); pointer-events: auto; backdrop-filter: blur(5px); }
.image-view-controls button { appearance: none; display: grid; place-items: center; min-width: 27px; height: 24px; padding: 0 6px; border: 0; background: transparent; color: var(--ivory); cursor: pointer; font: inherit; font-size: 9px; font-weight: 800; }
.image-view-controls button:hover, .image-view-controls button:focus-visible { background: var(--sulfur); color: var(--carbon); }
.image-view-controls span { min-width: 40px; color: var(--sulfur); font-size: 7px; font-weight: 700; letter-spacing: .06em; text-align: center; }
.single-figure [data-zoomable-image] { transform-origin: center; transition: transform 160ms ease; cursor: zoom-in; touch-action: none; user-select: none; will-change: transform; }
.single-figure.is-zoomed [data-zoomable-image] { cursor: grab; }
.single-figure.is-panning [data-zoomable-image] { cursor: grabbing; transition: none; }
@media (max-width: 720px) {
  .image-view-controls { top: 36px; right: 9px; gap: 1px; padding: 2px; }
  .image-view-controls button { min-width: 20px; height: 19px; padding: 0 4px; font-size: 7px; }
  .image-view-controls span { min-width: 31px; font-size: 5px; }
}

/* Keep transformed media inside the slide border and replace the full-width black gradient with compact metadata. */
.stage-shell, .stage, .stage-content, .slide--single, .single-figure { overflow: hidden !important; clip-path: inset(0); }
.stage, .stage-content, .single-figure { contain: paint; }
.slide--single .single-rail { right: auto !important; bottom: 62px !important; left: 18px !important; width: min(44%, 760px) !important; max-height: 34% !important; padding: 16px 18px !important; border: 1px solid rgba(241,234,219,.24) !important; border-left: 2px solid var(--sulfur) !important; background: rgba(12,14,13,.84) !important; box-shadow: 0 10px 30px rgba(0,0,0,.28); backdrop-filter: blur(5px); }
.slide--single .single-rail h2, .slide--single .single-rail__line { max-width: 100%; }
.slide--single .media-review-controls { max-width: 100% !important; }
.slide--portrait .single-rail { top: 72px !important; right: auto !important; bottom: 62px !important; left: 18px !important; width: calc(var(--portrait-gutter) - 36px) !important; max-height: none !important; padding: 14px !important; justify-content: flex-end; }
.slide--portrait .single-rail h2 { max-width: 100%; font-size: clamp(18px, 2vw, 32px); }
.slide--portrait .single-rail__line { max-width: 100%; }
@media (max-width: 720px) {
  .slide--single .single-rail { bottom: 35px !important; left: 6px !important; width: 72% !important; max-height: 46% !important; padding: 6px 7px !important; }
  .slide--portrait .single-rail { top: 30px !important; right: auto !important; bottom: 35px !important; left: 4px !important; width: calc(var(--portrait-gutter) - 8px) !important; max-height: none !important; padding: 4px !important; }
  .slide--portrait .single-rail__top .slide-number, .slide--portrait .single-rail__line, .slide--portrait .single-rail__facts, .slide--portrait .rating-status, .slide--portrait .team-rating-info { display: none; }
  .slide--portrait .single-rail h2 { margin-top: 3px; font-size: 9px; line-height: .95; }
  .slide--portrait .single-rail h2 small { margin-top: 2px; font-size: 4px; }
  .slide--portrait .media-review-controls { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 150%; max-width: none !important; margin-top: 3px; transform: scale(.64); transform-origin: left bottom; }
}

/* Review controls v4: readable navigation, exact dual-star registration, and an intentional recipe action. */
.stage-controls {
  display: grid;
  grid-template-columns: minmax(84px, auto) minmax(0, 1fr) minmax(84px, auto);
  width: min(92vw, 940px);
  min-height: 42px;
  padding: 4px 14px;
  box-sizing: border-box;
  background: linear-gradient(90deg, rgba(14,16,15,.7), rgba(14,16,15,.92) 15%, rgba(14,16,15,.92) 85%, rgba(14,16,15,.7));
  opacity: 1;
  transition: opacity 220ms ease, border-color 220ms ease, background-color 220ms ease;
}
.stage-controls.is-idle:not(:hover):not(:focus-within) { opacity: .28; border-color: rgba(241,234,219,.1); }
.stage-controls:not(.is-idle) { transition-duration: 0ms; }
.stage-controls .nav-button { min-width: 84px; }
.stage-controls .stage-progress { min-width: 0; justify-content: center; overflow: hidden; }
.stage-controls .stage-progress > span:first-child { flex: 0 0 auto; }
.stage-controls .stage-hint { min-width: 0; white-space: nowrap; }

.rating-star-wrap {
  --rating-star-width: 20px;
  --rating-star-height: 20px;
  --rating-star-size: 16px;
  position: relative;
  display: inline-flex;
  width: var(--rating-star-width);
  height: var(--rating-star-height);
  flex: 0 0 var(--rating-star-width);
  align-items: stretch;
  justify-content: flex-start;
}
.rating-team-star {
  position: absolute;
  z-index: 0;
  top: 0;
  bottom: 0;
  left: 0;
  display: block;
  height: var(--rating-star-height);
  overflow: hidden;
  color: rgba(234,212,79,.5);
  white-space: nowrap;
  pointer-events: none;
}
.rating-team-star__glyph,
.rating-star-wrap .rating-star {
  width: var(--rating-star-width);
  height: var(--rating-star-height);
  padding: 0;
  box-sizing: border-box;
  font-family: "Segoe UI Symbol", "Arial Unicode MS", sans-serif;
  font-size: var(--rating-star-size);
  font-weight: 400;
  line-height: var(--rating-star-height);
  text-align: center;
}
.rating-team-star__glyph { display: block; }
.rating-star-wrap .rating-star {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  border: 0;
  background: transparent;
  color: rgba(241,234,219,.16);
}
.rating-star-wrap .rating-star.is-on,
.rating-star-wrap .rating-star.is-preview,
.rating-star-wrap .rating-star:hover,
.rating-star-wrap .rating-star:focus-visible { color: var(--sulfur); }

.recipe-trigger {
  appearance: none;
  display: inline-grid;
  grid-template-columns: auto 19px;
  min-height: 29px;
  align-items: center;
  gap: 9px;
  justify-self: start;
  padding: 0 4px 0 11px;
  border: 1px solid var(--sulfur);
  background: var(--sulfur);
  color: #0d0f0e;
  box-shadow: inset 3px 0 0 var(--cobalt), 0 5px 16px rgba(0,0,0,.18);
  cursor: pointer;
  font: inherit;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}
.recipe-trigger__mark {
  display: grid;
  width: 19px;
  height: 19px;
  place-items: center;
  background: #0d0f0e;
  color: var(--sulfur);
  font-size: 12px;
  letter-spacing: 0;
}
.recipe-trigger:hover,
.recipe-trigger:focus-visible { background: var(--cobalt); color: var(--ivory); box-shadow: inset 3px 0 0 var(--coral), 0 7px 20px rgba(0,0,0,.28); transform: translateY(-1px); }
.recipe-trigger:hover .recipe-trigger__mark,
.recipe-trigger:focus-visible .recipe-trigger__mark { background: var(--ivory); color: var(--cobalt); }

.filter-basis-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-bottom: 15px; }
.filter-basis-options legend { grid-column: 1 / -1; }
.filter-basis-options label { position: relative; min-height: 40px; justify-content: center; border-color: rgba(241,234,219,.28); background: rgba(241,234,219,.035); font-size: 9px; }
.filter-basis-options label:has(input:checked) { border-color: var(--sulfur); background: var(--sulfur); color: var(--carbon); box-shadow: inset 3px 0 0 var(--cobalt); }
.filter-basis-options input { position: absolute; opacity: 0; pointer-events: none; }
.filter-basis-options label:has(input:focus-visible) { outline: 2px solid var(--sulfur); outline-offset: 3px; }
.filter-basis-options label.is-unavailable { cursor: not-allowed; opacity: .38; }
.filter-dialog__window { box-sizing: border-box; max-height: min(92dvh, 820px); overflow: auto; }
.filter-reviewer-options { margin: 0 0 15px; padding: 0; border: 0; }
.filter-reviewer-options[hidden] { display: none; }
.filter-reviewer-options legend { width: 100%; margin-bottom: 7px; color: var(--ivory-dim); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.filter-reviewer-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 184px; gap: 6px; overflow: auto; padding: 1px 4px 1px 1px; }
.filter-reviewer-list label { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-height: 42px; gap: 8px; padding: 8px 10px; border: 1px solid rgba(241,234,219,.2); background: rgba(241,234,219,.025); color: var(--ivory); cursor: pointer; }
.filter-reviewer-list label:has(input:checked) { border-color: var(--sulfur); background: rgba(234,212,79,.11); box-shadow: inset 3px 0 0 var(--cobalt); }
.filter-reviewer-list input { position: absolute; opacity: 0; pointer-events: none; }
.filter-reviewer-list label:has(input:focus-visible) { outline: 2px solid var(--sulfur); outline-offset: 2px; }
.filter-reviewer-list span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; font-weight: 800; letter-spacing: .03em; }
.filter-reviewer-list small { color: var(--ivory-dim); font-size: 7px; font-weight: 700; letter-spacing: .08em; white-space: nowrap; text-transform: uppercase; }
.filter-reviewer-list label:has(input:checked) small { color: var(--sulfur); }
.filter-reviewer-empty { margin: 0; padding: 10px 11px; border: 1px dashed rgba(241,234,219,.2); color: var(--ivory-dim); font-family: var(--serif); font-size: 11px; line-height: 1.3; }

@media (max-width: 720px) {
  .stage-controls { grid-template-columns: 52px minmax(0, 1fr) 52px; width: calc(100% - 12px); min-height: 32px; padding: 2px 5px; }
  .stage-controls.is-idle:not(:hover):not(:focus-within) { opacity: .22; }
  .stage-controls .nav-button { min-width: 52px; }
  .stage-controls .stage-progress { gap: 4px; }
  .rating-star-wrap { --rating-star-width: 16px; --rating-star-height: 18px; --rating-star-size: 13px; }
  .recipe-trigger { min-height: 24px; grid-template-columns: auto 16px; gap: 5px; padding-left: 7px; font-size: 6px; }
  .recipe-trigger__mark { width: 16px; height: 16px; font-size: 9px; }
  .filter-basis-options label { min-height: 34px; padding: 6px 7px; font-size: 7px; }
  .filter-reviewer-list { max-height: 170px; gap: 4px; }
  .filter-reviewer-list label { min-height: 36px; padding: 6px 7px; }
  .filter-reviewer-list span { font-size: 7px; }
  .filter-reviewer-list small { font-size: 5px; }
}

/* Chrome separation v5: keep global controls outside the 16:9 image and let review chrome recede. */
.deck-main {
  box-sizing: border-box;
  padding: 38px 12px 54px;
}
.stage-region {
  width: min(calc(100vw - 24px), calc((100dvh - 92px) * 16 / 9));
}
.stage-shell {
  box-sizing: border-box;
  padding: 1px;
  background: rgba(241, 234, 219, .2);
  box-shadow: 0 18px 46px rgba(0, 0, 0, .24);
}
.stage-crop { display: none; }
.stage::before { opacity: .035; }
.deck-topbar {
  top: 7px;
  right: 12px;
  left: 12px;
  border-bottom: 0;
}
.stage-controls {
  top: calc(100% + 6px);
  bottom: auto;
  border-color: rgba(241, 234, 219, .18);
  background: rgba(14, 16, 15, .92);
}
.stage-rail { display: none; }
.deck-footer { display: none; }

.deck-topbar,
.stage-controls,
.single-rail,
.image-view-controls,
.single-figure__asset-id {
  transition: opacity 360ms ease, transform 360ms cubic-bezier(.22, .61, .36, 1), border-color 360ms ease, background-color 360ms ease;
}
.stage-controls:not(.is-idle) { transition-duration: 360ms; }
.deck.is-chrome-idle .deck-topbar { opacity: .045; transform: translateY(-4px); }
.deck.is-chrome-idle .stage-controls { opacity: .035; pointer-events: none; transform: translate(-50%, 0); }
.deck.is-chrome-idle .stage-controls.is-idle:not(:hover):not(:focus-within) { opacity: .035; }
.deck.is-chrome-idle .single-rail { opacity: 0; transform: translateY(6px); }
.deck.is-chrome-idle .image-view-controls { opacity: 0; pointer-events: none; transform: translateY(-5px); }
.deck.is-chrome-idle .single-figure__asset-id { opacity: 0; transform: translateY(-4px); }
.deck.is-chrome-idle .deck-topbar__right,
.deck.is-chrome-idle .deck-menu-button,
.deck.is-chrome-idle .single-rail .media-review-controls,
.deck.is-chrome-idle .single-rail .media-review-controls * { pointer-events: none; }
.single-figure::after { border-color: rgba(241, 234, 219, .055); }

/* Contact sheets reserve space for their heading; every thumbnail button owns its complete rectangle. */
.slide--contact::before { display: none; }
.slide--contact .slide-header {
  top: 0;
  right: 0;
  left: 0;
  box-sizing: border-box;
  min-height: 78px;
  padding: 12px 14px 10px;
  background: linear-gradient(180deg, rgba(12, 14, 13, .98), rgba(12, 14, 13, .9));
  text-shadow: none;
}
.slide--contact .contact-grid { inset: 90px 6px 6px !important; }
.slide--contact .contact-foot { display: none; }

/* Detail metadata stays in one bounded card and never shares the global-navigation band. */
.slide--single .single-rail {
  right: auto !important;
  bottom: 18px !important;
  left: 18px !important;
  box-sizing: border-box;
  width: min(40%, 680px) !important;
  max-height: calc(100% - 36px) !important;
  overflow: hidden;
  padding: 14px 16px !important;
}
.slide--single:has(video) .single-rail { bottom: 58px !important; }
.slide--portrait .single-rail {
  top: 58px !important;
  bottom: 18px !important;
  left: 18px !important;
  width: calc(var(--portrait-gutter) - 36px) !important;
  max-height: none !important;
}
.slide--portrait:has(video) .single-rail { bottom: 58px !important; }
.image-view-controls { top: 18px; right: 18px; }

@media (max-width: 720px) {
  .deck-main { padding: 36px 10px 50px; }
  .stage-region { width: calc(100vw - 20px); }
  .stage-shell { padding: 1px; }
  .deck-topbar { top: 7px; right: 10px; left: 10px; }
  .stage-controls { top: calc(100% + 6px); bottom: auto; }

  .slide--cover {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
    gap: 10px;
    padding: 12px 14px 10px;
  }
  .cover-copy .slide-kicker { font-size: 5px; }
  .cover-copy h1 { margin: 7px 0 8px; font-size: 32px; }
  .cover-copy p { font-size: 7px; line-height: 1.2; }
  .cover-chapter { margin-top: 7px; font-size: 5px; }
  .cover-aside { align-self: end; padding-left: 7px; }
  .cover-aside__label { margin-bottom: 3px; font-size: 5px; }
  .cover-metric { gap: 5px; padding: 3px 0; font-size: 5px; }
  .cover-metric strong { font-size: 12px; }
  .cover-aside__note { margin-top: 5px; font-size: 5px; line-height: 1.25; }

  .slide--contact .slide-header {
    min-height: 42px;
    padding: 5px 7px 4px;
  }
  .slide--contact .slide-title { margin-top: 2px; font-size: 13px; line-height: .92; }
  .slide--contact .slide-title small { margin-top: 1px; font-size: 5px; }
  .slide--contact .slide-header__aside { max-width: 36%; padding-top: 0; }
  .slide--contact .slide-line { display: none; }
  .slide--contact .contact-grid { inset: 42px 3px 3px !important; }

  .slide--single .single-rail,
  .slide--portrait .single-rail {
    top: auto !important;
    right: auto !important;
    bottom: 6px !important;
    left: 6px !important;
    width: calc(100% - 12px) !important;
    max-height: none !important;
    padding: 6px 7px !important;
  }
  .slide--single:has(video) .single-rail,
  .slide--portrait:has(video) .single-rail { bottom: 42px !important; }
  .slide--single .single-rail__top { font-size: 6px; }
  .slide--single .single-rail__top .slide-number,
  .slide--single .single-rail__line,
  .slide--single .single-rail__facts,
  .slide--single .rating-status,
  .slide--single .team-rating-info { display: none; }
  .slide--single .single-rail h2,
  .slide--portrait .single-rail h2 { margin-top: 3px; font-size: 14px; line-height: .94; }
  .slide--single .single-rail h2 small,
  .slide--portrait .single-rail h2 small { margin-top: 2px; font-size: 5px; }
  .slide--single .media-review-controls,
  .slide--portrait .media-review-controls {
    display: flex;
    width: 100%;
    max-width: 100% !important;
    align-items: center;
    flex-flow: row wrap;
    gap: 3px;
    margin-top: 4px;
    transform: none;
  }
  .slide--single .rating-line { flex: 1 1 auto; flex-wrap: nowrap; gap: 3px; }
  .slide--single .rating-line > span { display: none; }
  .slide--single .rating-star-wrap { --rating-star-width: 14px; --rating-star-height: 16px; --rating-star-size: 12px; }
  .slide--single .comment-trigger { min-height: 22px; }
  .slide--single .recipe-trigger { min-height: 22px; }
  .image-view-controls { top: 7px; right: 7px; }
}

/* Rating filter v3: readable controls plus an always-visible team-rating sidebar. */
.filter-dialog {
  width: min(96vw, 1120px);
  max-height: min(92dvh, 860px);
  overflow: hidden;
}
.filter-dialog__window {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  box-sizing: border-box;
  height: min(88dvh, 820px);
  max-height: min(92dvh, 860px);
  overflow: hidden;
  padding: 30px 34px 24px;
}
.filter-dialog__head h2 { font-size: 44px; line-height: .96; }
.filter-dialog__note {
  max-width: 760px;
  margin: 13px 0 22px;
  font-size: 16px;
  line-height: 1.45;
}
.filter-dialog__body {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr);
  min-height: 0;
  gap: 30px;
  overflow: hidden;
}
.filter-dialog__controls {
  min-width: 0;
  overflow: auto;
  padding: 2px 5px 4px 2px;
}
.filter-basis-options,
.filter-sort-options {
  gap: 9px;
  margin-bottom: 22px;
}
.filter-basis-options legend,
.filter-sort-options legend,
.rating-filter-options legend {
  width: 100%;
  margin-bottom: 8px;
  color: var(--ivory-dim);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.filter-basis-options label,
.filter-sort-options label {
  min-height: 48px;
  box-sizing: border-box;
  justify-content: center;
  padding: 11px 13px;
  font-size: 12px;
  line-height: 1.25;
}
.filter-sort-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.filter-sort-options legend { grid-column: 1 / -1; }
.rating-filter-options { gap: 9px; }
.rating-filter-options legend { grid-column: 1 / -1; }
.rating-filter-options label {
  min-height: 48px;
  box-sizing: border-box;
  padding: 11px 13px;
  font-size: 12px;
  line-height: 1.25;
}
.filter-presets {
  gap: 9px;
  margin-top: 20px;
  font-size: 11px;
}
.filter-presets > span { width: 100%; }
.filter-presets button {
  min-height: 40px;
  padding: 9px 12px;
  font-size: 11px;
}
.filter-team-pane {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  min-width: 0;
  min-height: 0;
  padding: 20px;
  border: 1px solid rgba(241, 234, 219, .16);
  background: linear-gradient(145deg, rgba(241, 234, 219, .055), rgba(53, 79, 255, .045));
}
.filter-team-pane__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.filter-team-pane__head h3 {
  margin: 6px 0 0;
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.045em;
}
.filter-team-pane__head > strong {
  flex: 0 0 auto;
  padding: 6px 8px;
  border: 1px solid rgba(234, 212, 79, .45);
  color: var(--sulfur);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.filter-team-pane__note {
  margin: 13px 0 16px;
  color: var(--ivory-dim);
  font-size: 13px;
  line-height: 1.45;
}
.filter-team-list {
  display: grid;
  align-content: start;
  min-height: 0;
  gap: 9px;
  overflow: auto;
  padding: 1px 5px 1px 1px;
}
.filter-team-reviewer {
  appearance: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 14px;
  box-sizing: border-box;
  width: 100%;
  min-height: 88px;
  padding: 13px 14px;
  border: 1px solid rgba(241, 234, 219, .2);
  background: rgba(16, 17, 16, .48);
  color: var(--ivory);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.filter-team-reviewer:hover,
.filter-team-reviewer:focus-visible {
  border-color: var(--sulfur);
  background: rgba(234, 212, 79, .075);
  transform: translateY(-1px);
}
.filter-team-reviewer:focus-visible { outline: 2px solid var(--sulfur); outline-offset: 2px; }
.filter-team-reviewer.is-selected {
  border-color: var(--sulfur);
  background: rgba(234, 212, 79, .12);
  box-shadow: inset 4px 0 0 var(--cobalt);
}
.filter-team-reviewer__top {
  display: contents;
}
.filter-team-reviewer__top strong {
  min-width: 0;
  overflow: hidden;
  color: var(--ivory);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.filter-team-reviewer__top b {
  color: var(--sulfur);
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}
.filter-team-reviewer__meta {
  grid-column: 1;
  color: var(--ivory-dim);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.filter-team-reviewer__stars {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  background: linear-gradient(90deg, var(--sulfur) var(--reviewer-score), rgba(241, 234, 219, .24) var(--reviewer-score));
  background-clip: text;
  color: transparent;
  font-size: 14px;
  letter-spacing: 1px;
  -webkit-background-clip: text;
}
.filter-team-reviewer__distribution {
  grid-column: 1 / -1;
  padding-top: 7px;
  border-top: 1px solid rgba(241, 234, 219, .1);
  color: rgba(241, 234, 219, .72);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .035em;
}
.filter-team-empty {
  margin: 0;
  padding: 16px;
  border: 1px dashed rgba(241, 234, 219, .24);
  color: var(--ivory-dim);
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.45;
}
.filter-team-empty[hidden] { display: none; }
.filter-dialog__foot {
  margin-top: 18px;
  padding-top: 15px;
  font-size: 11px;
}
.filter-dialog__foot .section-jump { min-height: 42px; padding: 9px 13px; font-size: 11px; }

@media (max-width: 720px) {
  .filter-dialog { width: calc(100vw - 16px); max-height: 94dvh; }
  .filter-dialog__window {
    height: 92dvh;
    max-height: 92dvh;
    padding: 20px 17px 15px;
  }
  .filter-dialog__head h2 { font-size: 34px; }
  .filter-dialog__note { margin: 9px 0 15px; font-size: 13px; line-height: 1.4; }
  .filter-dialog__body {
    grid-template-columns: 1fr;
    align-content: start;
    gap: 20px;
    overflow: auto;
    padding-right: 3px;
  }
  .filter-dialog__controls { overflow: visible; padding: 0; }
  .filter-basis-options { grid-template-columns: 1fr; }
  .filter-basis-options label,
  .filter-sort-options label,
  .rating-filter-options label { min-height: 44px; padding: 10px 11px; font-size: 11px; }
  .filter-basis-options legend,
  .filter-sort-options legend,
  .rating-filter-options legend { margin-bottom: 6px; font-size: 10px; }
  .rating-filter-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-presets { font-size: 10px; }
  .filter-presets button { min-height: 40px; font-size: 10px; }
  .filter-team-pane { min-height: 350px; padding: 15px; }
  .filter-team-pane__head h3 { font-size: 24px; }
  .filter-team-pane__note { font-size: 12px; }
  .filter-team-list { max-height: 300px; overflow: auto; }
  .filter-team-reviewer { min-height: 84px; padding: 12px; }
  .filter-team-reviewer__top strong { font-size: 13px; }
  .filter-team-reviewer__meta { font-size: 10px; }
  .filter-team-reviewer__distribution { font-size: 9px; }
  .filter-dialog__foot { margin-top: 12px; padding-top: 11px; font-size: 9px; }
}

/* Rating placement v4: the filter stays a tool; per-asset team scores live on detail slides. */
.filter-dialog { width: min(94vw, 720px); max-height: min(92dvh, 860px); }
.filter-dialog__window {
  display: block;
  height: auto;
  max-height: min(92dvh, 860px);
  overflow: auto;
}
.filter-dialog__body { display: block; overflow: visible; }
.filter-dialog__controls { overflow: visible; padding: 2px; }
.filter-reviewer-picker {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: center;
  gap: 7px 12px;
  margin: -8px 0 22px;
  padding: 13px 14px;
  border: 1px solid rgba(241, 234, 219, .18);
  background: rgba(241, 234, 219, .035);
}
.filter-reviewer-picker > label {
  color: var(--ivory);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.filter-reviewer-picker select {
  appearance: none;
  min-height: 44px;
  padding: 10px 36px 10px 12px;
  border: 1px solid rgba(241, 234, 219, .32);
  border-radius: 0;
  background: linear-gradient(45deg, transparent 50%, var(--sulfur) 50%) calc(100% - 15px) 50% / 6px 6px no-repeat, linear-gradient(135deg, var(--sulfur) 50%, transparent 50%) calc(100% - 9px) 50% / 6px 6px no-repeat, #151816;
  color: var(--ivory);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
}
.filter-reviewer-picker select:focus-visible { outline: 2px solid var(--sulfur); outline-offset: 2px; }
.filter-reviewer-picker select:disabled { cursor: not-allowed; opacity: .42; }
.filter-reviewer-picker p {
  grid-column: 2;
  margin: 0;
  color: var(--ivory-dim);
  font-size: 11px;
  line-height: 1.4;
}

.detail-team-ratings {
  position: absolute;
  z-index: 5;
  top: 18px;
  right: 18px;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  box-sizing: border-box;
  width: min(29%, 350px);
  max-height: calc(100% - 36px);
  padding: 15px;
  overflow: hidden;
  border: 1px solid rgba(241, 234, 219, .26);
  border-top: 2px solid var(--sulfur);
  background: rgba(12, 14, 13, .84);
  box-shadow: 0 14px 36px rgba(0, 0, 0, .32);
  color: var(--ivory);
  pointer-events: auto;
  backdrop-filter: blur(7px);
  transition: opacity 360ms ease, transform 360ms cubic-bezier(.22, .61, .36, 1), border-color 360ms ease, background-color 360ms ease;
}
.slide--single:has(.image-view-controls) .detail-team-ratings {
  top: 64px;
  max-height: calc(100% - 82px);
}
.detail-team-ratings__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.detail-team-ratings__head > div > span {
  display: block;
  color: var(--ivory-dim);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .12em;
}
.detail-team-ratings__head h3 {
  margin: 5px 0 0;
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.045em;
}
.detail-team-ratings__head > strong {
  flex: 0 0 auto;
  padding: 5px 7px;
  border: 1px solid rgba(234, 212, 79, .48);
  color: var(--sulfur);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.detail-team-ratings > p {
  margin: 10px 0 12px;
  color: var(--ivory-dim);
  font-size: 11px;
  line-height: 1.35;
}
.detail-team-ratings__list {
  min-height: 0;
  margin: 0;
  padding: 0 3px 0 0;
  overflow: auto;
  list-style: none;
}
.detail-team-ratings__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  min-height: 38px;
  gap: 9px;
  border-top: 1px solid rgba(241, 234, 219, .12);
}
.detail-team-ratings__row strong {
  min-width: 0;
  overflow: hidden;
  font-size: 11px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.detail-team-ratings__score {
  display: inline-flex;
  gap: 1px;
  color: rgba(241, 234, 219, .24);
  font-size: 12px;
}
.detail-team-ratings__score .is-on { color: var(--sulfur); }
.detail-team-ratings__row b { min-width: 22px; color: var(--sulfur); font-size: 10px; text-align: right; }
.detail-team-ratings__empty {
  padding: 13px;
  border: 1px dashed rgba(241, 234, 219, .22);
  color: var(--ivory-dim);
  font-family: var(--serif);
  font-size: 12px;
  line-height: 1.4;
}
.deck.is-chrome-idle .detail-team-ratings {
  opacity: 0;
  pointer-events: none;
  transform: translateX(6px);
}

@media (max-width: 720px) {
  .filter-dialog__window { height: auto; max-height: 92dvh; overflow: auto; }
  .filter-dialog__body { overflow: visible; padding: 0; }
  .filter-reviewer-picker { grid-template-columns: 1fr; margin: -6px 0 18px; padding: 11px; }
  .filter-reviewer-picker > label { font-size: 11px; }
  .filter-reviewer-picker select { width: 100%; min-height: 44px; font-size: 11px; }
  .filter-reviewer-picker p { grid-column: 1; font-size: 10px; }
  .detail-team-ratings,
  .slide--single:has(.image-view-controls) .detail-team-ratings {
    top: 6px;
    right: 6px;
    width: min(47%, 170px);
    max-height: 47%;
    padding: 8px;
  }
  .slide--single:has(.image-view-controls) .detail-team-ratings { top: 34px; max-height: 42%; }
  .detail-team-ratings__head > div > span { font-size: 5px; }
  .detail-team-ratings__head h3 { margin-top: 2px; font-size: 14px; }
  .detail-team-ratings__head > strong { padding: 3px 4px; font-size: 6px; }
  .detail-team-ratings > p { display: none; }
  .detail-team-ratings__list { margin-top: 5px; }
  .detail-team-ratings__row { grid-template-columns: minmax(0, 1fr) auto; min-height: 28px; gap: 4px; }
  .detail-team-ratings__row strong { font-size: 8px; }
  .detail-team-ratings__score { grid-column: 1; font-size: 8px; }
  .detail-team-ratings__row b { grid-column: 2; grid-row: 1 / span 2; font-size: 8px; }
  .detail-team-ratings__empty { margin-top: 6px; padding: 7px; font-size: 8px; }
}
