:root {
  --bg: #f0ebe1;
  --bg-deep: #e6dfd1;
  --paper: rgba(252, 249, 243, 0.95);
  --paper-strong: rgba(255, 253, 248, 0.98);
  --ink: #22201c;
  --muted: #635a4f;
  --muted-soft: #827668;
  --border: rgba(44, 39, 33, 0.16);
  --border-strong: rgba(44, 39, 33, 0.28);
  --shadow: 0 24px 48px rgba(27, 23, 18, 0.08);
  --room-accent: #6c665a;
  --room-accent-soft: rgba(108, 102, 90, 0.14);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, sans-serif;
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(31, 27, 22, 0.02), rgba(31, 27, 22, 0) 180px),
    linear-gradient(90deg, rgba(53, 46, 38, 0.03) 1px, transparent 1px),
    linear-gradient(rgba(53, 46, 38, 0.03) 1px, transparent 1px),
    radial-gradient(circle at top, rgba(255,255,255,0.7), rgba(255,255,255,0) 42%),
    var(--bg);
  background-size: auto, 34px 34px, 34px 34px, auto, auto;
}
button, input, textarea, select { font: inherit; }
a { color: inherit; }
.gallery-shell { width: min(1440px, calc(100% - 28px)); margin: 0 auto; padding: 26px 0 80px; }
.foyer, .room-card, .lightbox-panel { position: relative; overflow: hidden; }
.foyer {
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,0.74), rgba(247,242,233,0.96)), repeating-linear-gradient(90deg, rgba(77, 68, 57, 0.03) 0 1px, transparent 1px 48px);
  box-shadow: var(--shadow);
  margin-bottom: 26px;
}
.foyer::before, .room-card::before, .lightbox-panel::before { content: ''; position: absolute; inset: 12px; border: 1px solid rgba(43, 38, 31, 0.08); pointer-events: none; }
.foyer-ribbon { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 16px 22px; border-bottom: 1px solid rgba(43, 38, 31, 0.12); background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(255,255,255,0.42)); }
.ribbon-group { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.eyebrow, .placard-kicker, .panel-kicker, .room-code, .room-section-kicker, .work-index, .handoff-kicker, .lightbox-kicker, .guide-code, .stage-kicker, .detail-label, .lightbox-catalog, .ribbon-code, .meta-chip, .stamp-label, .room-theme-label, .work-catalog, .work-medium, .door-kicker { text-transform: uppercase; letter-spacing: 0.16em; font-size: 11px; }
.eyebrow, .placard-kicker, .panel-kicker, .room-code, .room-section-kicker, .handoff-kicker, .lightbox-kicker, .guide-code, .stage-kicker, .detail-label, .work-index, .meta-chip, .work-catalog, .work-medium, .door-kicker, .ribbon-code { color: var(--muted-soft); }
.exhibit-stamp { display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--border); background: rgba(255,255,255,0.7); padding: 10px 14px; color: var(--ink); font-weight: 600; }
.exhibit-stamp::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var(--room-accent); box-shadow: 0 0 0 6px rgba(108, 102, 90, 0.14); }
.foyer-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, 380px); gap: 26px; align-items: start; padding: 24px; }
.hero-frame { position: relative; border: 1px solid var(--border); background: radial-gradient(circle at top, rgba(255,255,255,0.9), rgba(255,255,255,0) 56%), linear-gradient(180deg, rgba(255,255,255,0.84), rgba(245,239,230,0.95)); min-height: 260px; padding: 28px; display: grid; align-items: end; }
.hero-lines { position: absolute; inset: 18px; border: 1px solid rgba(43, 38, 31, 0.08); pointer-events: none; }
.hero-lines::before, .hero-lines::after { content: ''; position: absolute; top: 18px; width: 22%; height: 1px; background: rgba(43, 38, 31, 0.12); }
.hero-lines::before { left: 18px; }
.hero-lines::after { right: 18px; }
.hero-copy { max-width: 820px; position: relative; z-index: 1; }
.foyer-copy h1 { margin: 0 0 14px; font-size: clamp(2.8rem, 5vw, 5rem); line-height: 0.95; letter-spacing: -0.05em; }
.gallery-subtitle, .gallery-note { max-width: 780px; line-height: 1.65; }
.gallery-subtitle { margin: 0 0 12px; font-size: 1.14rem; color: #413931; }
.gallery-note { margin: 0; color: var(--muted); }
.foyer-panels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.foyer-panel, .placard, .detail-card, .work-meta, .lightbox-meta-card, .stage-card { border: 1px solid var(--border); background: rgba(255,255,255,0.74); }
.foyer-panel { padding: 14px 16px; min-height: 118px; display: grid; align-content: start; gap: 8px; }
.foyer-panel p, .placard-text, .panel-text, .detail-text, .stage-card p, .lightbox-meta-card { margin: 0; line-height: 1.58; color: var(--muted); }
.foyer-placard { border: 1px solid var(--border); background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(246,240,232,0.95)); padding: 18px; display: grid; gap: 14px; min-height: 100%; }
.gallery-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.stat-block { border: 1px solid var(--border); background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(243,236,227,0.9)); padding: 12px 10px; }
.stat-value { display: block; font-size: 1.6rem; line-height: 1; font-weight: 700; letter-spacing: -0.05em; }
.stat-label { display: block; margin-top: 5px; color: var(--muted); font-size: 0.78rem; }
.placard-stack { display: grid; gap: 10px; }
.placard-note { border-left: 3px solid var(--room-accent); padding: 10px 0 10px 12px; color: var(--muted); line-height: 1.55; }
.room-guide { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: 10px; padding: 0 24px 24px; }
.guide-link { position: relative; display: inline-grid; gap: 4px; padding: 12px 14px; text-decoration: none; color: var(--ink); border: 1px solid var(--border); background: rgba(255,255,255,0.82); min-width: 148px; transition: transform 140ms ease, border-color 140ms ease, background 140ms ease, box-shadow 140ms ease; }
.guide-link::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--room-accent); opacity: 0; }
.guide-link:hover, .guide-link:focus-visible, .work-card:hover, .work-card:focus-visible, .handoff-link:hover, .handoff-link:focus-visible, .lightbox-close:hover, .lightbox-close:focus-visible, .lightbox-nav:hover, .lightbox-nav:focus-visible, .strip-thumb:hover, .strip-thumb:focus-visible { transform: translateY(-1px); border-color: var(--border-strong); box-shadow: 0 14px 32px rgba(25, 21, 17, 0.08); }
.guide-link.active { background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(242,235,226,0.94)); }
.guide-link.active::after { opacity: 1; }
.guide-name { font-weight: 700; letter-spacing: -0.02em; }
.guide-theme { color: var(--muted); font-size: 0.9rem; }
.guide-top { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 10px; align-items: center; }
.guide-copy { display: grid; gap: 3px; min-width: 0; }
.guide-avatar { width: 52px; height: 52px; display: grid; place-items: center; overflow: visible; background: transparent; border: none; }
.guide-avatar .presenter-svg { width: 52px; height: 52px; }
.room-list { display: grid; gap: 24px; }
.room-card { --room-accent: #6c665a; --room-accent-soft: rgba(108, 102, 90, 0.14); border: 1px solid var(--border); background: radial-gradient(circle at top, rgba(255,255,255,0.55), rgba(255,255,255,0) 42%), linear-gradient(180deg, rgba(255,255,255,0.94), rgba(247,241,233,0.97)); box-shadow: var(--shadow); }
.room-shell { display: grid; grid-template-columns: 112px minmax(0, 1fr); }
.room-rail { position: relative; border-right: 1px solid rgba(43, 38, 31, 0.12); background: linear-gradient(180deg, rgba(0,0,0,0.025), rgba(255,255,255,0)), linear-gradient(180deg, var(--room-accent-soft), rgba(255,255,255,0)); padding: 18px 12px; display: grid; align-content: start; gap: 12px; }
.room-rail::after { content: ''; width: 12px; height: 12px; border-radius: 999px; background: var(--room-accent); box-shadow: 0 0 0 8px rgba(255,255,255,0.78), 0 0 0 9px rgba(43, 38, 31, 0.1); }
.room-number { display: block; font-size: 2.4rem; line-height: 0.95; font-weight: 800; letter-spacing: -0.07em; color: var(--room-accent); }
.room-main { display: grid; }
.room-header { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 24px; padding: 24px; border-bottom: 1px solid rgba(43, 38, 31, 0.1); }
.host-stage { position: relative; min-height: 320px; border: 1px solid var(--border); background: linear-gradient(180deg, rgba(255,255,255,0.86), rgba(245,239,231,0.92)); padding: 18px; display: grid; align-content: space-between; overflow: hidden; }
.host-stage::before { content: ''; position: absolute; inset: 16px; border: 1px solid rgba(43, 38, 31, 0.08); pointer-events: none; }
.host-stage::after { content: ''; position: absolute; left: 18px; right: 18px; top: 18px; height: 44%; background: radial-gradient(circle at top, rgba(255,255,255,0.55), rgba(255,255,255,0) 58%); pointer-events: none; }
.stage-head { display: flex; justify-content: space-between; gap: 12px; align-items: start; position: relative; z-index: 1; }
.stage-chip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border); background: rgba(255,255,255,0.8); padding: 8px 10px; }
.stage-chip::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var(--room-accent); }
.host-mark { position: relative; z-index: 1; width: 210px; height: 210px; margin: 0 auto; display: grid; place-items: center; }
.host-mark::before { content: ''; position: absolute; inset: 22px; border-radius: 50% 50% 46% 46%; border: 1px solid rgba(43, 38, 31, 0.12); background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(237,231,222,0.94)); box-shadow: 0 18px 34px rgba(28, 23, 19, 0.12); }
.host-mark::after { content: ''; position: absolute; left: 50%; top: 38px; transform: translateX(-50%); width: 110px; height: 110px; border-radius: 999px; background: radial-gradient(circle, rgba(255,255,255,0.75), rgba(255,255,255,0)); }
.host-ear { position: absolute; top: 12px; width: 52px; height: 116px; border: 1px solid rgba(43, 38, 31, 0.12); background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(236,230,221,0.96)); border-bottom: none; border-radius: 42px 42px 18px 18px; }
.host-ear-left { left: 46px; transform: rotate(-14deg); }
.host-ear-right { right: 46px; transform: rotate(14deg); }
.host-face { position: absolute; inset: 52px; display: grid; place-items: center; z-index: 2; }
.host-face::before, .host-face::after { content: ''; position: absolute; top: 72px; width: 10px; height: 10px; border-radius: 999px; background: rgba(35, 30, 24, 0.8); }
.host-face::before { left: 48px; }
.host-face::after { right: 48px; }
.host-nose { position: absolute; top: 98px; width: 16px; height: 12px; border-radius: 999px 999px 120px 120px; background: var(--room-accent); }
.host-monogram { position: absolute; bottom: 18px; min-width: 86px; min-height: 86px; border: 1px solid rgba(43, 38, 31, 0.12); background: rgba(255,255,255,0.78); display: grid; place-items: center; color: var(--room-accent); font-size: 2.25rem; font-weight: 800; letter-spacing: -0.08em; z-index: 3; }
.stage-footer { position: relative; z-index: 1; display: grid; gap: 10px; }
.stage-details { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.stage-card { padding: 12px; min-height: 82px; }
.stage-card.reference { display: grid; grid-template-columns: 1fr 64px; gap: 10px; align-items: center; }
.reference-thumb { width: 64px; height: 64px; object-fit: cover; border: 1px solid var(--border); background: rgba(255,255,255,0.92); }
.presenter-shell { position: relative; z-index: 1; width: min(100%, 250px); margin: 4px auto 10px; display: grid; justify-items: center; gap: 10px; }
.presenter-figure { position: relative; width: 100%; border: none; background: transparent; box-shadow: none; padding: 0; }
.presenter-figure::before { content: none; }
.presenter-svg { width: 100%; height: auto; display: block; }
.presenter-badge { position: absolute; right: 2px; top: 2px; min-width: 40px; height: 40px; padding: 0 8px; border: 1px solid rgba(43, 38, 31, 0.12); background: rgba(255,255,255,0.88); display: grid; place-items: center; color: var(--room-accent); font-size: 1rem; font-weight: 800; letter-spacing: -0.06em; }
.presenter-legend { width: 100%; border: 1px solid var(--border); background: rgba(255,255,255,0.82); padding: 10px 12px; }
.presenter-legend p { margin: 4px 0 0; line-height: 1.55; color: var(--muted); }
.stage-details { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.stage-card.blueprint { border-left: 3px solid var(--room-accent); }
.room-copy { display: grid; gap: 16px; align-content: start; }
.room-header-main { display: grid; gap: 10px; }
.room-topline { display: flex; justify-content: space-between; gap: 16px; align-items: start; flex-wrap: wrap; }
.room-title { margin: 0; font-size: clamp(2rem, 3vw, 3.2rem); line-height: 0.96; letter-spacing: -0.05em; }
.room-stamp { border: 1px solid var(--border); background: rgba(255,255,255,0.78); padding: 8px 10px; color: var(--room-accent); font-weight: 700; }
.presenter-line { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.presenter-line strong { font-size: 1.08rem; }
.host-style, .meta-chip { border: 1px solid var(--border); background: rgba(255,255,255,0.78); color: #564d43; padding: 7px 10px; }
.room-copy > p { margin: 0; line-height: 1.68; color: #433b33; font-size: 1.02rem; }
.placard { padding: 14px; display: grid; gap: 8px; }
.room-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.detail-card { padding: 12px; min-height: 72px; }
.detail-card.accent { border-left: 3px solid var(--room-accent); }
.tag-groups { display: grid; gap: 10px; }
.tag-group { display: flex; flex-wrap: wrap; gap: 8px; }
.tag { padding: 7px 10px; border: 1px solid var(--border); background: rgba(255,255,255,0.8); color: #494138; font-size: 0.84rem; }
.works-section { padding: 24px; }
.section-row { display: flex; justify-content: space-between; gap: 16px; align-items: end; margin-bottom: 16px; flex-wrap: wrap; }
.section-row h3 { margin: 0; font-size: 1.18rem; letter-spacing: -0.02em; }
.section-note { color: var(--muted); font-size: 0.92rem; }
.works-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.work-card { position: relative; display: grid; padding: 0; border: 1px solid var(--border); background: rgba(255,255,255,0.88); text-align: left; cursor: pointer; overflow: hidden; }
.work-card::before { content: ''; position: absolute; inset: 10px; border: 1px solid rgba(43, 38, 31, 0.07); pointer-events: none; }
.work-frame { position: relative; padding: 16px 16px 0; }
.work-frame::after { content: ''; position: absolute; left: 20px; right: 20px; bottom: -6px; height: 22px; background: linear-gradient(180deg, rgba(31,27,22,0.12), rgba(31,27,22,0)); filter: blur(12px); pointer-events: none; }
.work-frame img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; border: 12px solid #fbf8f3; outline: 1px solid rgba(43, 38, 31, 0.14); background: #ece4d8; }
.work-card.tall .work-frame img { aspect-ratio: 4 / 5; }
.work-card.wide .work-frame img { aspect-ratio: 5 / 4; }
.work-copy { display: grid; gap: 9px; padding: 16px; }
.work-header { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.work-title { font-weight: 800; line-height: 1.28; letter-spacing: -0.02em; }
.work-note { font-size: 0.92rem; color: var(--muted); line-height: 1.6; }
.work-meta { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px; }
.work-action { font-size: 0.8rem; color: var(--room-accent); font-weight: 700; }
.handoff { border-top: 1px solid rgba(43, 38, 31, 0.1); padding: 18px 24px 24px; }
.handoff-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; text-decoration: none; color: inherit; border: 1px solid var(--border); background: linear-gradient(180deg, rgba(255,255,255,0.84), rgba(241,235,226,0.96)); padding: 16px 18px; }
.handoff-text { display: grid; gap: 6px; }
.handoff-line { line-height: 1.58; color: #483f36; }
.door-sign { display: grid; gap: 4px; text-align: right; border-left: 1px solid rgba(43,38,31,0.1); padding-left: 16px; }
.door-label { font-size: 1rem; font-weight: 800; color: var(--room-accent); letter-spacing: -0.03em; }
.handoff-arrow { font-size: 1.6rem; color: var(--room-accent); }
.lightbox { position: fixed; inset: 0; background: rgba(18, 16, 13, 0.88); display: flex; align-items: center; justify-content: center; padding: 24px; z-index: 20; }
.lightbox.hidden { display: none; }
.lightbox-panel { width: min(1260px, 100%); max-height: 100%; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, 380px); background: linear-gradient(180deg, rgba(248,244,237,0.98), rgba(241,235,226,0.98)); border: 1px solid rgba(255,255,255,0.16); overflow: auto; }
.lightbox-frame-wrap { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 22px; background: rgba(0,0,0,0.04); }
.lightbox-frame { min-width: 0; }
.lightbox img { width: 100%; max-height: 76vh; object-fit: contain; display: block; background: #efe6da; border: 18px solid #fbf9f5; outline: 1px solid rgba(43, 38, 31, 0.14); }
.lightbox-copy { padding: 24px; border-left: 1px solid rgba(43, 38, 31, 0.1); display: grid; align-content: start; gap: 14px; }
.lightbox-topline { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; flex-wrap: wrap; }
.lightbox-title { margin: 0; font-size: 2rem; line-height: 1.02; letter-spacing: -0.05em; }
.lightbox-caption { color: #4d453c; line-height: 1.68; }
.lightbox-caption p { margin: 0 0 12px; }
.lightbox-meta { display: grid; gap: 10px; }
.lightbox-meta-card { padding: 12px; }
.lightbox-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); gap: 8px; }
.strip-thumb { border: 1px solid var(--border); background: rgba(255,255,255,0.84); padding: 6px; cursor: pointer; }
.strip-thumb.active { border-color: var(--room-accent); box-shadow: inset 0 0 0 1px var(--room-accent); }
.strip-thumb img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.lightbox-nav, .lightbox-close { border: 1px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.08); color: white; cursor: pointer; }
.lightbox-nav { width: 48px; height: 120px; font-size: 1.4rem; }
.lightbox-close { position: absolute; top: 16px; right: 18px; width: 48px; height: 48px; font-size: 32px; }
.empty-state { border: 1px solid var(--border); background: rgba(255,255,255,0.8); padding: 18px; color: var(--muted); }
@media (max-width: 1100px) { .foyer-grid, .room-header, .lightbox-panel { grid-template-columns: 1fr; } .lightbox-copy { border-left: none; border-top: 1px solid rgba(43, 38, 31, 0.1); } }
@media (max-width: 760px) { .gallery-shell { width: min(100%, calc(100% - 18px)); padding-top: 12px; } .foyer-grid, .room-header, .works-section, .handoff, .room-guide, .foyer-ribbon { padding-inline: 16px; } .foyer-grid { padding-top: 18px; } .foyer-panels, .gallery-stats, .stage-details, .room-detail-grid { grid-template-columns: 1fr; } .room-shell { grid-template-columns: 1fr; } .room-rail { border-right: none; border-bottom: 1px solid rgba(43, 38, 31, 0.12); display: flex; justify-content: space-between; align-items: center; } .room-rail::after { order: 3; } .room-guide { position: static; } .lightbox-frame-wrap { grid-template-columns: 1fr; } .lightbox-nav { width: 100%; height: 44px; } }
.guide-copy { display:grid; gap:4px; }
.guide-role { display:inline-flex; align-items:center; width:max-content; max-width:100%; padding:4px 8px; border:1px solid rgba(43,38,31,0.14); background:rgba(255,255,255,0.7); color:#5c5045; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; }
.stage-head { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
.stage-role, .role-chip { display:inline-flex; align-items:center; justify-content:center; padding:7px 10px; border:1px solid var(--border-strong); background:rgba(255,255,255,0.92); color:#332d27; text-transform:uppercase; letter-spacing:0.14em; font-size:11px; }
.stage-role.locked, .role-chip.locked { background:#2f2923; color:#f8f2ea; border-color:#2f2923; }
.presenter-line .role-chip { margin-right:2px; }

.mini-presenter-card { border:1px solid var(--border); background:rgba(255,255,255,0.84); padding:10px 12px; display:grid; gap:8px; }
.mini-presenter-card.compact { padding:8px 10px; }
.mini-presenter-top { display:grid; grid-template-columns:64px minmax(0,1fr); gap:10px; align-items:center; }
.mini-presenter-avatar { width:64px; }
.mini-presenter-copy { display:grid; gap:3px; min-width:0; }
.mini-presenter-copy strong { font-size:0.98rem; line-height:1.1; }
.mini-presenter-role { font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:#5e5348; }
.mini-presenter-note { color:var(--muted); font-size:0.88rem; line-height:1.4; }
.handoff-preview { margin-top:10px; }
.lightbox-hosts { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:10px; }

.host-lineup-band { border-top:1px solid rgba(43,38,31,0.1); padding: 0 24px 20px; display:grid; gap:14px; }
.host-lineup-head { display:flex; justify-content:space-between; gap:18px; align-items:end; flex-wrap:wrap; }
.host-lineup-title { margin:0; font-size:1.3rem; letter-spacing:-0.03em; }
.host-lineup-note { margin:0; max-width:760px; color:var(--muted); line-height:1.55; }
.host-lineup { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:12px; }
.lineup-card { border:1px solid var(--border); background:rgba(255,255,255,0.82); padding:12px; display:grid; gap:8px; }
.lineup-top { display:grid; grid-template-columns:64px minmax(0,1fr); gap:10px; align-items:center; }
.lineup-avatar { width:64px; }
.lineup-copy { display:grid; gap:3px; min-width:0; }
.lineup-copy strong { font-size:1rem; line-height:1.1; }
.palette-swatches { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.palette-swatches.compact { margin-top:4px; }
.palette-swatch { width:16px; height:16px; border-radius:999px; border:2px solid #111; background:var(--swatch-color, #ccc); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.28); }
.palette-swatches.compact .palette-swatch { width:14px; height:14px; }
.trait-chip-row { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.trait-chip-row.compact { margin-top:4px; }
.trait-chip { display:inline-flex; align-items:center; padding:5px 8px; border:1px solid var(--border); background:rgba(255,255,255,0.76); color:#4f463d; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; }
.stage-card .palette-swatches, .stage-card .trait-chip-row { margin-top:10px; }
@media (max-width:760px) { .host-lineup-band { padding-inline:16px; } }


.host-lineup-filters { display:flex; flex-wrap:wrap; gap:8px; }
.lineup-filter, .lineup-card { font: inherit; color: inherit; }
.lineup-filter { border:1px solid var(--border); background:rgba(255,255,255,0.84); padding:8px 12px; cursor:pointer; text-transform:uppercase; letter-spacing:0.08em; font-size:11px; }
.lineup-filter.active { background:#2f2923; color:#f8f2ea; border-color:#2f2923; }
.lineup-card { width:100%; text-align:left; cursor:pointer; }
.lineup-card.active { border-color: var(--border-strong); box-shadow: 0 12px 24px rgba(25, 21, 17, 0.08); }
.lineup-card.hidden { display:none; }
.companion-pill { display:inline-flex; align-items:center; width:max-content; padding:6px 9px; border:1px solid var(--border); background:rgba(255,255,255,0.9); color:#51483f; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; }
.host-spotlight { margin-top: 4px; }
.spotlight-panel { border:1px solid var(--border); background:linear-gradient(180deg, rgba(255,255,255,0.9), rgba(244,238,229,0.95)); padding:16px; display:grid; gap:14px; }
.spotlight-top { display:grid; grid-template-columns:minmax(180px, 240px) minmax(0,1fr); gap:16px; align-items:center; }
.spotlight-avatar .presenter-svg { width:100%; max-width:220px; height:auto; display:block; margin:0 auto; }
.spotlight-copy { display:grid; gap:10px; }
.spotlight-title { margin:0; font-size:1.6rem; letter-spacing:-0.04em; }
.spotlight-text { margin:0; color:var(--muted); line-height:1.6; }
.spotlight-meta, .spotlight-actions { display:flex; flex-wrap:wrap; gap:8px; }
.spotlight-jump { display:inline-flex; align-items:center; padding:9px 12px; border:1px solid var(--border); background:rgba(255,255,255,0.88); text-decoration:none; }
.spotlight-lower { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:10px; }
@media (max-width:760px) { .spotlight-top { grid-template-columns:1fr; } }


/* 1185 safety patch: keep original presenter kit layout, but stop dense current data from mashing cards */
.host-lineup { align-items: start; }
.lineup-card,
.spotlight-panel,
.guide-link,
.foyer-panel,
.placard,
.detail-card,
.handoff-link,
.stage-card { min-width: 0; }
.lineup-top,
.spotlight-top,
.presenter-line,
.stage-meta,
.stage-top,
.guide-top { align-items: start; }
.lineup-copy,
.spotlight-copy,
.presenter-line,
.handoff-text,
.stage-note,
.stage-seal,
.guide-copy,
.work-copy,
.detail-text,
.placard-text,
.panel-text,
.host-lineup-note,
.spotlight-text { min-width: 0; overflow-wrap: anywhere; }
.stage-seal,
.lineup-copy strong,
.lineup-copy span,
.presenter-line .meta-chip,
.presenter-line .role-chip,
.presenter-line .host-style { max-width: 100%; }
.lineup-avatar .presenter-svg,
.spotlight-avatar .presenter-svg,
.stage-hero .presenter-svg,
.guide-avatar .presenter-svg { max-width: 100%; height: auto; }


/* Identity split 1185: Gallery = white-wall exhibit */
:root {
  --bg: #eef0f2;
  --bg-deep: #dde2e7;
  --paper: rgba(255,255,255,0.96);
  --paper-strong: rgba(255,255,255,0.985);
  --ink: #1f1d1a;
  --muted: #5f5951;
  --muted-soft: #7b7369;
  --border: rgba(34, 31, 28, 0.12);
  --border-strong: rgba(34, 31, 28, 0.22);
  --shadow: 0 28px 48px rgba(18, 20, 24, 0.08);
  --room-accent: #7f4f45;
  --room-accent-soft: rgba(127, 79, 69, 0.12);
}
body {
  background:
    radial-gradient(circle at 12% 10%, rgba(255,255,255,0.92), transparent 24%),
    radial-gradient(circle at 88% 18%, rgba(214,219,226,0.52), transparent 20%),
    linear-gradient(90deg, rgba(74, 68, 61, 0.028) 0 1px, transparent 1px 120px),
    linear-gradient(180deg, #f7f8fa 0%, #edf0f3 100%);
}
.foyer {
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(247,248,250,0.96));
}
.foyer-ribbon {
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,247,249,0.84));
}
.hero-frame {
  background: linear-gradient(180deg, rgba(255,255,255,0.99), rgba(250,250,251,0.96));
}
.hero-lines::before, .hero-lines::after { width: 18%; background: rgba(80, 67, 60, 0.18); }
.foyer-panel, .placard, .detail-card, .work-meta, .lightbox-meta-card, .stage-card, .foyer-placard {
  background: rgba(255,255,255,0.93);
}
.host-lineup-band {
  border-top: 1px solid rgba(34, 31, 28, 0.08);
  background: linear-gradient(180deg, rgba(255,255,255,0.86), rgba(247,248,250,0.92));
}
.room-card {
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.985), rgba(248,249,251,0.97));
}
.room-rail {
  background: linear-gradient(180deg, rgba(127,79,69,0.07), rgba(255,255,255,0.0));
}
.room-title { font-family: Georgia, 'Times New Roman', serif; }
.work-frame {
  background: linear-gradient(180deg, #fafafa, #f2f2f2);
  border-radius: 18px;
  box-shadow: inset 0 0 0 1px rgba(31, 29, 26, 0.08);
}
.work-card, .work-card.alt { border-radius: 20px; }
.work-action, .door-label, .room-number, .room-stamp, .presenter-badge, .host-monogram { color: var(--room-accent); }
.guide-link, .lineup-card, .spotlight-panel { background: rgba(255,255,255,0.9); }


.lineup-companion-cue { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; align-items:center; padding:10px 0 2px; }
.lineup-companion-duo { display:flex; align-items:flex-end; }
.lineup-companion-avatar { width:42px; }
.lineup-companion-avatar + .lineup-companion-avatar { margin-left:-10px; }
.lineup-companion-avatar .presenter-svg { width:100%; height:auto; display:block; }
.lineup-companion-copy { display:grid; gap:4px; min-width:0; }
.companion-stage-card { background:linear-gradient(180deg, rgba(255,255,255,0.95), rgba(247,248,251,0.93)); }
.companion-stage-text { margin-bottom:4px; }
.companion-stage-duo { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px,1fr)); gap:10px; margin-top:10px; }
.companion-stage-card .mini-presenter-card { background:rgba(255,255,255,0.94); }


.opening-wall { border-top: 1px solid rgba(34,31,28,0.08); padding: 6px 24px 20px; display: grid; gap: 14px; background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(247,248,250,0.9)); }
.opening-wall-head { display: flex; justify-content: space-between; gap: 18px; align-items: end; flex-wrap: wrap; }
.opening-wall-title { margin: 0; font-size: 1.45rem; letter-spacing: -0.03em; }
.opening-wall-note { margin: 0; max-width: 760px; color: var(--muted); line-height: 1.58; }
.opening-wall-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.opening-highlight-card { border: 1px solid var(--border); background: rgba(255,255,255,0.93); padding: 14px; display: grid; gap: 12px; min-width: 0; }
.opening-highlight-card.featured { background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,248,251,0.94)); box-shadow: 0 16px 34px rgba(24, 21, 18, 0.06); }
.opening-highlight-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: start; }
.opening-highlight-copy { display: grid; gap: 7px; min-width: 0; }
.opening-highlight-title { margin: 0; font-size: 1.15rem; letter-spacing: -0.03em; }
.opening-highlight-text { margin: 0; color: var(--muted); line-height: 1.55; }
.opening-avatar-strip { display: flex; align-items: flex-end; justify-content: flex-end; min-width: 88px; }
.opening-avatar { width: 54px; }
.opening-avatar.companion { margin-left: -12px; }
.opening-avatar .presenter-svg { width: 100%; height: auto; display: block; }
.opening-highlight-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.opening-highlight-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border: 1px solid var(--border); background: rgba(255,255,255,0.96); text-decoration: none; }
.opening-highlight-link::after { content: '→'; color: var(--room-accent); }
.opening-stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.opening-stat-block { border: 1px solid var(--border); background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,247,249,0.94)); padding: 12px 10px; display: grid; gap: 4px; }
.room-callout-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin: 12px 0 2px; }
.room-callout-card { min-width: 0; }
.work-badge { position: absolute; left: 14px; top: 14px; z-index: 1; display: inline-flex; align-items: center; padding: 6px 9px; border: 1px solid rgba(34,31,28,0.12); background: rgba(255,255,255,0.94); color: #554c43; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.work-frame { position: relative; }
.work-card.starter-study, .work-card.alt.starter-study { background: linear-gradient(180deg, rgba(255,255,255,0.99), rgba(248,249,251,0.96)); }
@media (max-width:760px) {
  .opening-wall { padding-inline: 16px; }
  .opening-highlight-head { grid-template-columns: 1fr; }
  .opening-avatar-strip { justify-content: flex-start; }
}


.gallery-room-page .opening-wall,
.gallery-room-page .host-lineup-band,
.gallery-room-page .foyer-placard,
.gallery-room-page .foyer-panels,
.gallery-room-page .room-guide { display: none; }
.gallery-room-page .foyer-grid { grid-template-columns: 1fr; }
.room-directory-mode { gap: 18px; }
.room-page-mode { gap: 18px; }
.room-directory-head, .room-page-nav {
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(247,248,250,0.93));
  box-shadow: var(--shadow);
  border-radius: 22px;
  padding: 18px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.room-directory-copy, .room-page-nav-copy { display: grid; gap: 8px; min-width: 0; }
.room-directory-title { margin: 0; font-size: 1.5rem; letter-spacing: -0.04em; }
.room-directory-note { margin: 0; color: var(--muted); line-height: 1.6; max-width: 860px; }
.room-directory-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.directory-card {
  --room-accent: #7f4f45;
  --room-accent-soft: rgba(127, 79, 69, 0.12);
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(247,248,250,0.94));
  border-radius: 22px;
  padding: 16px;
  display: grid;
  gap: 12px;
  box-shadow: var(--shadow);
}
.directory-card-top { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 12px; align-items: center; }
.directory-card-avatar .presenter-svg { width: 72px; height: 72px; display: block; }
.directory-card-copy { display: grid; gap: 6px; min-width: 0; }
.directory-card-title { margin: 0; font-size: 1.15rem; letter-spacing: -0.03em; }
.directory-card-text { margin: 0; color: var(--muted); line-height: 1.56; }
.directory-card-meta { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 760px) {
  .room-directory-head, .room-page-nav, .room-bottom-hosts { padding: 16px; }
  .room-directory-grid, .room-bottom-host-grid { grid-template-columns: 1fr; }
}


.foyer-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.guide-handoff-card { width:100%; border:1px solid var(--border); background:rgba(255,255,255,0.9); padding:14px 16px; display:grid; gap:10px; }
.guide-handoff-title { margin:0; font-size:1.1rem; letter-spacing:-0.02em; }
.guide-handoff-text { margin:0; color:var(--muted); line-height:1.55; max-width:860px; }
.room-bottom-hosts {
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(247,248,250,0.93));
  box-shadow: var(--shadow);
  border-radius: 22px;
  padding: 18px 20px;
  display: grid;
  gap: 16px;
}
.room-bottom-hosts-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 16px;
  flex-wrap: wrap;
}
.room-bottom-hosts-copy { display: grid; gap: 8px; min-width: 0; }
.room-bottom-host-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
.room-bottom-host-link {
  min-width: 0;
  height: 100%;
}
.lineup-room-meta { display:flex; flex-wrap:wrap; gap:8px; }
.lineup-count-note { color:var(--muted-soft); font-size:0.84rem; line-height:1.45; }
.spotlight-subtext { font-size:0.95rem; }
.spotlight-preview-card { display:grid; gap:10px; }
.spotlight-preview-text { margin:0; color:var(--muted); line-height:1.55; }
.spotlight-preview-strip { display:grid; grid-template-columns:repeat(auto-fit, minmax(120px,1fr)); gap:10px; }
.spotlight-preview-thumb { border:1px solid var(--border); background:rgba(255,255,255,0.94); padding:8px; display:grid; gap:8px; cursor:pointer; text-align:left; }
.spotlight-preview-thumb img { width:100%; aspect-ratio:1 / 1; object-fit:cover; border-radius:12px; display:block; background:linear-gradient(180deg, #fafafa, #f2f2f2); }
.spotlight-preview-caption { font-size:0.82rem; color:var(--muted); line-height:1.4; }
#room-guide[hidden], #room-list[hidden], .opening-wall[hidden] { display:none !important; }
.gallery-hosts-page .host-lineup-band { padding-bottom: 10px; }


/* 1116 host split: front page host selector and hosts page board are intentionally separate */
.front-host-band,
.hosts-board-band {
  border-top: 1px solid rgba(34, 31, 28, 0.08);
  padding: 0 24px 20px;
  display: grid;
  gap: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.86), rgba(247,248,250,0.92));
}
.front-host-head,
.hosts-board-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: end;
  flex-wrap: wrap;
}
.front-host-title,
.hosts-board-title {
  margin: 0;
  font-size: 1.3rem;
  letter-spacing: -0.03em;
}
.front-host-note,
.hosts-board-note {
  margin: 0;
  max-width: 760px;
  color: var(--muted);
  line-height: 1.55;
}
.front-host-lineup {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  align-items: start;
}
.hosts-board {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  align-items: start;
}
.front-lineup-card,
.hosts-board-card {
  width: 100%;
  text-align: left;
  cursor: pointer;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.9);
  padding: 12px;
  display: grid;
  gap: 8px;
  font: inherit;
  color: inherit;
}
.front-lineup-card.active,
.hosts-board-card.active {
  border-color: var(--border-strong);
  box-shadow: 0 12px 24px rgba(25, 21, 17, 0.08);
}
.front-lineup-card.hidden,
.hosts-board-card.hidden {
  display: none;
}
.front-lineup-top,
.hosts-board-top {
  display: grid;
  grid-template-columns: 64px minmax(0,1fr);
  gap: 10px;
  align-items: start;
}
.front-lineup-avatar,
.hosts-board-avatar {
  width: 64px;
}
.front-lineup-copy,
.hosts-board-copy,
.front-lineup-companion-copy,
.hosts-board-companion-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.front-lineup-copy strong,
.hosts-board-copy strong {
  font-size: 1rem;
  line-height: 1.1;
}
.front-lineup-room-meta,
.hosts-board-room-meta,
.front-host-spotlight,
.hosts-board-spotlight {
  min-width: 0;
}
.front-lineup-companion-cue,
.hosts-board-companion-cue {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 10px;
  align-items: center;
  padding: 10px 0 2px;
}
.front-lineup-companion-duo,
.hosts-board-companion-duo {
  display: flex;
  align-items: flex-end;
}
.front-lineup-companion-avatar,
.hosts-board-companion-avatar {
  width: 42px;
}
.front-lineup-companion-avatar + .front-lineup-companion-avatar,
.hosts-board-companion-avatar + .hosts-board-companion-avatar {
  margin-left: -10px;
}
.front-lineup-companion-avatar .presenter-svg,
.hosts-board-companion-avatar .presenter-svg {
  width: 100%;
  height: auto;
  display: block;
}
.front-lineup-count-note,
.hosts-board-count-note {
  color: var(--muted);
  font-size: 0.84rem;
}
.hosts-board-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.hosts-board-filter {
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.84);
  padding: 8px 12px;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 11px;
  font: inherit;
  color: inherit;
}
.hosts-board-filter.active {
  background: #2f2923;
  color: #f8f2ea;
  border-color: #2f2923;
}
.hosts-board-spotlight-panel .spotlight-meta .meta-chip {
  background: rgba(255,255,255,0.92);
}
.front-spotlight-panel .spotlight-meta .meta-chip {
  background: rgba(255,255,255,0.82);
}
body:not(.gallery-hosts-page) .hosts-board-band {
  display: none;
}
.gallery-hosts-page .front-host-band {
  display: none;
}
.gallery-room-page .front-host-band,
.gallery-room-page .hosts-board-band {
  display: none;
}
@media (max-width:760px) {
  .front-host-band,
  .hosts-board-band {
    padding-inline: 16px;
  }
}


.showtime-strip,
.collection-wall {
  border-top: 1px solid rgba(34, 31, 28, 0.08);
  padding: 0 24px 20px;
  display: grid;
  gap: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(247,248,250,0.9));
}
.showtime-strip { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.showtime-card,
.collection-lane-card,
.room-marquee {
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.9);
  padding: 14px 16px;
  display: grid;
  gap: 8px;
}
.showtime-card-title,
.collection-lane-title { margin: 0; font-size: 1.08rem; letter-spacing: -0.03em; }
.showtime-card-text,
.collection-lane-note,
.room-marquee-note { margin: 0; color: var(--muted); line-height: 1.56; }
.showtime-card-meta { color: var(--muted-soft); font-size: 0.82rem; }
.collection-wall-head { display:flex; justify-content:space-between; gap:18px; align-items:end; flex-wrap:wrap; }
.collection-wall-title { margin:0; font-size:1.38rem; letter-spacing:-0.03em; }
.collection-wall-note { margin:0; max-width:760px; color:var(--muted); line-height:1.56; }
.collection-wall-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:12px; }
.collection-lane-meta { display:flex; flex-wrap:wrap; gap:8px; }
.signature-tag-row { display:flex; flex-wrap:wrap; gap:6px; }
.signature-tag-row.compact { gap:5px; }
.signature-tag {
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.82);
  font-size:0.75rem;
  color:var(--muted);
  line-height:1;
}
.host-collectible-note { display:grid; gap:8px; }
.host-collectible-note.compact { gap:6px; }
.showcase-pill { width:max-content; }
.collectible-known-for,
.collectible-rarity { line-height:1.45; }
.room-marquee-line { font-size: 1rem; line-height: 1.45; font-weight: 600; color: var(--ink); }
.front-lineup-card .host-collectible-note,
.hosts-board-card .host-collectible-note,
.directory-card .host-collectible-note { margin-top: 2px; }
.gallery-room-page .collection-wall,
.gallery-hosts-page .collection-wall { display:none; }
@media (max-width:760px) {
  .showtime-strip,
  .collection-wall { padding-inline:16px; }
}


.lane-filters { display:flex; flex-wrap:wrap; gap:10px; margin:10px 0 14px; }
.lane-filter { border:1px solid var(--border); background:rgba(255,255,255,0.88); border-radius:999px; padding:8px 14px; cursor:pointer; font:inherit; color:var(--ink); }
.lane-filter.active { background:rgba(63,52,39,0.12); border-color:rgba(63,52,39,0.32); }
.seal-row { display:flex; flex-wrap:wrap; gap:8px; }
.seal-row.compact { gap:6px; }
.seal-pill { border:1px dashed rgba(63,52,39,0.35); background:rgba(250,247,240,0.92); border-radius:999px; padding:4px 10px; font-size:0.76rem; color:var(--ink-soft); }
.reveal-card { gap:10px; }
.reveal-line { margin:0; }
.reveal-controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.reveal-button { border:1px solid var(--border); background:rgba(255,255,255,0.95); border-radius:999px; padding:8px 14px; cursor:pointer; font:inherit; }
.reveal-count { color:var(--muted-soft); font-size:0.82rem; }


.spotlight-bunny-title { font-size: .95rem; color: var(--muted); font-weight: 600; }
.bunny-title-line { display:flex; flex-wrap:wrap; gap:8px; margin: 4px 0 10px; }
.bunny-title-chip { display:inline-flex; align-items:center; padding:6px 10px; border:1px solid var(--border); background:rgba(255,255,255,0.85); font-weight:700; }
.tiny-placard-card { border:1px solid var(--border); background:linear-gradient(180deg, rgba(255,255,255,0.92), rgba(248,243,236,0.96)); padding:14px; display:grid; gap:7px; margin-top:12px; }
.tiny-placard-title { font-size:1.02rem; font-weight:700; }
.tiny-placard-subtitle { color:var(--muted); font-weight:600; }
.tiny-placard-line, .tiny-placard-collector { color:var(--muted); line-height:1.5; }
.duo-placard-card { margin-top:12px; }
.duo-placard-note { margin:.4rem 0 0; color:var(--muted); }
.whisper-row { border:1px dashed rgba(43, 38, 31, 0.2); background:rgba(255,255,255,0.72); padding:12px; margin-top:12px; }
.whisper-line { margin:.35rem 0 0; color:var(--muted); line-height:1.55; }
.room-closing-line { border-top:1px solid rgba(43,38,31,0.12); margin-top:18px; padding-top:14px; }
.room-closing-text { margin:.35rem 0 0; color:var(--muted); line-height:1.6; font-style:italic; }
.house-card, .trail-card { min-height: 100%; }
.collection-wall-grid .house-card, .collection-wall-grid .trail-card { display:grid; gap:10px; }
.collectible-title, .collectible-stamp { font-weight:600; }
body.season-spring-salon .hero-frame { background: linear-gradient(180deg, rgba(255,252,250,0.95), rgba(248,237,241,0.95)); }
body.season-sunbeam-social .hero-frame { background: linear-gradient(180deg, rgba(255,251,240,0.96), rgba(248,240,224,0.94)); }
body.season-harvest-marquee .hero-frame { background: linear-gradient(180deg, rgba(250,244,235,0.96), rgba(242,232,220,0.94)); }
body.season-moonlight-showcase .hero-frame { background: linear-gradient(180deg, rgba(250,248,251,0.96), rgba(240,235,244,0.95)); }


.season-controls { margin-top: 18px; border: 1px solid var(--border); background: rgba(255,255,255,0.9); padding: 16px; display: grid; gap: 14px; }
.season-controls-head { display: grid; gap: 10px; }
.season-controls-title { margin: 0; font-size: 1.2rem; letter-spacing: -0.03em; }
.season-controls-note, .season-control-row-note { margin: 0; color: var(--muted); line-height: 1.55; }
.season-controls-summary, .season-control-chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.season-control-row { display: grid; gap: 8px; }
.season-control-row-title { font-size: .82rem; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.season-control-chip { border: 1px solid var(--border); background: rgba(255,255,255,0.92); padding: 8px 12px; cursor: pointer; }
.season-control-chip.active { background: rgba(244,238,229,0.95); font-weight: 600; }
body.season-spring-salon .season-controls { background: linear-gradient(180deg, rgba(255,252,250,0.96), rgba(248,237,241,0.92)); }
body.season-sunbeam-social .season-controls { background: linear-gradient(180deg, rgba(255,251,240,0.96), rgba(248,240,224,0.92)); }
body.season-harvest-marquee .season-controls { background: linear-gradient(180deg, rgba(250,244,235,0.96), rgba(242,232,220,0.92)); }
body.season-moonlight-showcase .season-controls { background: linear-gradient(180deg, rgba(250,248,251,0.96), rgba(240,235,244,0.92)); }

.favorites-wall .collection-lane-card,
.house-card,
.trail-card { min-height: 100%; }
.house-card-head { display: flex; justify-content: space-between; gap: 14px; align-items: start; }
.house-card-copy { display: grid; gap: 8px; }
.house-motto { font-style: italic; color: var(--muted); line-height: 1.5; }
.house-emblem { min-width: 74px; min-height: 74px; border-radius: 999px; border: 1px solid var(--border); display: grid; place-items: center; text-align: center; padding: 12px; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted-soft); background: rgba(255,255,255,0.82); }
.placard-modes-card,
.museum-credits-card,
.why-wall-card,
.revisit-card { border: 1px solid var(--border); background: rgba(255,255,255,0.8); padding: 14px; display: grid; gap: 12px; }
.placard-mode-grid,
.museum-credits-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.placard-mode-item,
.museum-credit-item { border: 1px solid rgba(43,38,31,0.09); background: rgba(250,248,244,0.92); padding: 12px; display: grid; gap: 6px; }
.placard-mode-title { font-weight: 600; }
.placard-mode-text,
.why-wall-text,
.revisit-card-text { margin: 0; line-height: 1.58; color: var(--muted); }
.why-wall-meta { color: var(--muted-soft); font-size: 12px; }
@media (max-width: 900px) {
  .placard-mode-grid,
  .museum-credits-grid { grid-template-columns: 1fr; }
  .house-card-head { grid-template-columns: 1fr; display: grid; }
  .house-emblem { min-width: 0; width: 100%; min-height: 56px; border-radius: 18px; }
}


.poster-wall-grid { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.collection-poster-card { position: relative; overflow: hidden; border: 1px solid var(--border); background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(246,241,234,0.96)); padding: 18px; display: grid; gap: 10px; min-height: 100%; box-shadow: 0 16px 30px rgba(25,21,17,0.06); }
.collection-poster-card::before { content: ''; position: absolute; inset: 10px; border: 1px solid rgba(43,38,31,0.08); pointer-events: none; }
.poster-card-topline, .showtime-card-topline, .opening-highlight-topline { display:flex; justify-content:space-between; gap:10px; align-items:center; flex-wrap:wrap; }
.poster-stamp, .showtime-card-stamp, .opening-highlight-stamp { border: 1px solid rgba(43,38,31,0.12); background: rgba(255,255,255,0.78); padding: 6px 10px; text-transform: uppercase; letter-spacing: 0.12em; font-size: 10px; color: var(--muted-soft); }
.poster-ribbon-line, .opening-highlight-trim { display:flex; flex-wrap:wrap; gap:8px; }
.poster-ribbon-chip, .opening-highlight-trim-bit { border:1px dashed rgba(43,38,31,0.2); background: rgba(255,255,255,0.76); padding:5px 9px; font-size:.74rem; color: var(--muted); }
.poster-meta { color: var(--muted-soft); line-height: 1.5; font-size: 0.84rem; }
.house-emblem { min-width: 110px; min-height: 110px; border-radius: 22px; align-content: center; gap: 8px; padding: 12px; }
.house-emblem-art { width: 58px; height: 58px; margin: 0 auto; display:grid; place-items:center; }
.house-emblem-art svg { width: 100%; height: 100%; display: block; }
.house-emblem-label { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.35; }
.house-emblem--velvet { color: #8d6d73; background: linear-gradient(180deg, rgba(255,248,250,0.95), rgba(249,238,242,0.94)); }
.house-emblem--chaos { color: #886345; background: linear-gradient(180deg, rgba(255,250,242,0.95), rgba(249,239,227,0.94)); }
.house-emblem--quiet { color: #65717d; background: linear-gradient(180deg, rgba(249,251,255,0.95), rgba(238,243,248,0.94)); }
.house-emblem--pair { color: #7b6477; background: linear-gradient(180deg, rgba(252,248,255,0.95), rgba(243,236,247,0.94)); }
.house-emblem--lantern { color: #8b694d; background: linear-gradient(180deg, rgba(255,251,244,0.95), rgba(247,239,227,0.94)); }
.house-emblem--key { color: #6b7264; background: linear-gradient(180deg, rgba(249,252,246,0.95), rgba(240,245,235,0.94)); }
.house-emblem--stamp { color: #6f685f; }
.showtime-card { position: relative; overflow: hidden; }
.showtime-card::before, .opening-highlight-card::before, .collection-poster-card::after { content: ''; position: absolute; inset: auto 0 0 0; height: 4px; background: linear-gradient(90deg, transparent, rgba(44,39,33,0.18), transparent); opacity: 0.9; }
.showtime-card--season::after, .opening-highlight-card.featured::after, .collection-poster-card::after { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: linear-gradient(180deg, rgba(255,255,255,0), rgba(44,39,33,0.16), rgba(255,255,255,0)); }
.opening-highlight-card { position: relative; overflow: hidden; }
.opening-highlight-card.featured { box-shadow: 0 18px 34px rgba(25,21,17,0.08); }
.opening-highlight-card--opening-night, .showtime-card--opening { background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(247,240,230,0.95)); }
.opening-highlight-card--soft-opening { background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(244,242,236,0.95)); }
.opening-highlight-card--hoppy-hour { background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,239,229,0.95)); }
body.season-spring-salon .collection-poster-card, body.season-spring-salon .opening-highlight-card, body.season-spring-salon .showtime-card, body.season-spring-salon .season-controls { background-image: linear-gradient(180deg, rgba(255,250,252,0.96), rgba(247,239,242,0.94)); }
body.season-sunbeam-social .collection-poster-card, body.season-sunbeam-social .opening-highlight-card, body.season-sunbeam-social .showtime-card, body.season-sunbeam-social .season-controls { background-image: linear-gradient(180deg, rgba(255,250,240,0.97), rgba(247,239,224,0.94)); }
body.season-harvest-marquee .collection-poster-card, body.season-harvest-marquee .opening-highlight-card, body.season-harvest-marquee .showtime-card, body.season-harvest-marquee .season-controls { background-image: linear-gradient(180deg, rgba(251,244,236,0.97), rgba(242,232,220,0.94)); }
body.season-moonlight-showcase .collection-poster-card, body.season-moonlight-showcase .opening-highlight-card, body.season-moonlight-showcase .showtime-card, body.season-moonlight-showcase .season-controls { background-image: linear-gradient(180deg, rgba(249,248,252,0.97), rgba(239,236,245,0.94)); }
body.opening-mode-soft-opening .hero-frame::after { content: ''; position: absolute; inset: 18px; border: 1px dashed rgba(43,38,31,0.12); pointer-events: none; }
body.opening-mode-hoppy-hour .hero-frame::after { content: ''; position: absolute; left: 18px; right: 18px; bottom: 18px; height: 18px; background: radial-gradient(circle at 10px 9px, rgba(43,38,31,0.1) 0 3px, transparent 3px) 0 0/32px 18px repeat-x; opacity: 0.6; pointer-events: none; }
body.opening-mode-opening-night .hero-frame::after { content: ''; position: absolute; inset: 18px; box-shadow: inset 0 0 0 1px rgba(43,38,31,0.06), inset 0 -28px 40px rgba(255,255,255,0.18); pointer-events: none; }
.gallery-room-page .poster-wall, .gallery-hosts-page .poster-wall { display: none; }
@media (max-width: 900px) { .house-emblem { width: 100%; min-height: 82px; } .house-emblem-art { width: 46px; height: 46px; } }

.poster-edition-line { display:flex; flex-wrap:wrap; gap:8px; }
.poster-edition-chip { display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px; border:1px solid rgba(44,39,33,0.14); background:rgba(255,255,255,0.62); color:var(--muted); font-size:12px; letter-spacing:0.04em; text-transform:uppercase; }
.poster-art-language { color: var(--muted-soft); font-size: 13px; line-height: 1.6; }
.house-emblem-variant { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); opacity: 0.72; }
.house-variant-line { margin-top: 6px; color: var(--muted-soft); font-size: 13px; letter-spacing: 0.04em; }
.poster-art-block { position: relative; border: 1px solid rgba(43,38,31,0.1); border-radius: 18px; padding: 14px; background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(245,239,232,0.86)); overflow: hidden; display: grid; gap: 8px; }
.poster-art-block::before { content: ''; position: absolute; inset: 10px; border-radius: 12px; border: 1px dashed rgba(43,38,31,0.12); pointer-events: none; }
.poster-art-topline, .poster-art-lines { display:flex; gap:8px; flex-wrap:wrap; }
.poster-art-frame, .poster-art-palette, .poster-art-line { border: 1px solid rgba(43,38,31,0.1); background: rgba(255,255,255,0.72); padding: 5px 9px; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted-soft); }
.poster-art-title { position: relative; z-index: 1; font-size: 20px; font-weight: 700; line-height: 1.2; }
.poster-art-motif { position: relative; z-index: 1; color: var(--muted-soft); font-size: 14px; line-height: 1.5; max-width: 28ch; }
.poster-art--foyer-marquee { background-image: radial-gradient(circle at top right, rgba(219,173,184,0.26), transparent 38%), linear-gradient(180deg, rgba(255,251,252,0.95), rgba(245,239,232,0.9)); }
.poster-art--quiet-parlor, .poster-art--twilight-parlor { background-image: radial-gradient(circle at 22% 20%, rgba(173,177,213,0.24), transparent 36%), linear-gradient(180deg, rgba(250,249,253,0.95), rgba(239,235,245,0.92)); }
.poster-art--chaos-stage, .poster-art--marquee-cabinet { background-image: radial-gradient(circle at top left, rgba(231,190,123,0.22), transparent 34%), linear-gradient(180deg, rgba(255,250,243,0.96), rgba(247,238,225,0.9)); }
.poster-art--paired-salon, .poster-art--winter-cabinet { background-image: radial-gradient(circle at top right, rgba(192,177,211,0.22), transparent 34%), linear-gradient(180deg, rgba(252,249,255,0.96), rgba(241,236,245,0.91)); }
.poster-card--spring-salon-limited .poster-art-block { box-shadow: inset 0 0 0 1px rgba(189,130,150,0.08); }
.poster-card--twilight-room .poster-art-block { box-shadow: inset 0 0 0 1px rgba(116,111,162,0.08); }
.poster-card--winter-hush .poster-art-block { box-shadow: inset 0 0 0 1px rgba(137,154,176,0.08); }
.poster-card--hoppy-hour-lights .poster-art-block { box-shadow: inset 0 0 0 1px rgba(191,147,70,0.10); }
.house-emblem--velvet-moon, .house-emblem--quiet-orbit, .house-emblem--quiet-snow, .house-emblem--pair-keepsake, .house-emblem--lantern-archive, .house-emblem--key-specimen, .house-emblem--chaos-marquee { min-width: 110px; min-height: 110px; border-radius: 22px; align-content: center; gap: 8px; padding: 12px; }
.house-emblem--velvet-moon { color: #72607c; background: linear-gradient(180deg, rgba(250,247,255,0.95), rgba(239,233,247,0.94)); }
.house-emblem--chaos-marquee { color: #936f45; background: linear-gradient(180deg, rgba(255,251,242,0.95), rgba(248,239,225,0.94)); }
.house-emblem--quiet-orbit { color: #687497; background: linear-gradient(180deg, rgba(248,249,255,0.95), rgba(236,239,248,0.94)); }
.house-emblem--quiet-snow { color: #7c8595; background: linear-gradient(180deg, rgba(252,253,255,0.98), rgba(239,242,247,0.95)); }
.house-emblem--pair-keepsake { color: #7a667e; background: linear-gradient(180deg, rgba(252,248,255,0.97), rgba(241,235,246,0.94)); }
.house-emblem--lantern-archive { color: #7f6b56; background: linear-gradient(180deg, rgba(255,252,247,0.97), rgba(244,238,230,0.95)); }
.house-emblem--key-specimen { color: #67715f; background: linear-gradient(180deg, rgba(250,253,247,0.97), rgba(239,245,235,0.95)); }
body.event-skin-spring-salon-limited .collection-poster-card, body.event-skin-spring-salon-limited .house-card { box-shadow: 0 18px 34px rgba(190, 122, 146, 0.10); }
body.event-skin-twilight-room .collection-poster-card, body.event-skin-twilight-room .house-card, body.event-skin-twilight-room .showtime-card { background-image: linear-gradient(180deg, rgba(249,247,252,0.97), rgba(233,229,241,0.95)); }
body.event-skin-twilight-room .foyer { background: linear-gradient(180deg, rgba(252,250,255,0.76), rgba(236,231,245,0.96)), repeating-linear-gradient(90deg, rgba(77, 68, 57, 0.03) 0 1px, transparent 1px 48px); }
body.event-skin-winter-hush .collection-poster-card, body.event-skin-winter-hush .opening-highlight-card, body.event-skin-winter-hush .showtime-card, body.event-skin-winter-hush .season-controls { background-image: linear-gradient(180deg, rgba(251,252,255,0.98), rgba(236,240,246,0.95)); }
body.event-skin-hoppy-hour-lights .hero-frame::after { content: ''; position: absolute; left: 18px; right: 18px; bottom: 18px; height: 18px; background: radial-gradient(circle at 10px 9px, rgba(186,145,91,0.24) 0 3px, transparent 3px) 0 0/32px 18px repeat-x; opacity: 0.9; pointer-events: none; }
body.event-skin-hoppy-hour-lights .collection-poster-card, body.event-skin-hoppy-hour-lights .showtime-card { box-shadow: 0 18px 38px rgba(177, 131, 68, 0.12); }


.status-wall {
  border-top: 1px solid rgba(34, 31, 28, 0.08);
  padding: 0 24px 20px;
  display: grid;
  gap: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.84), rgba(245,246,249,0.94));
}
.status-wall-head { display:flex; justify-content:space-between; gap:18px; align-items:end; flex-wrap:wrap; }
.status-wall-title { margin:0; font-size:1.38rem; letter-spacing:-0.03em; }
.status-wall-note { margin:0; max-width:840px; color:var(--muted); line-height:1.58; }
.status-summary { display:flex; flex-wrap:wrap; gap:8px; }
.status-stat-grid {
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap:12px;
}
.status-stat-card {
  position:relative;
  overflow:hidden;
  border:1px solid var(--border);
  background:linear-gradient(180deg, rgba(255,255,255,0.96), rgba(243,236,227,0.92));
  padding:14px;
  display:grid;
  gap:6px;
}
.status-stat-card::after {
  content:'';
  position:absolute;
  inset:auto 0 0 0;
  height:4px;
  background:linear-gradient(90deg, transparent, rgba(44,39,33,0.18), transparent);
}
.status-stat-card--primary { box-shadow: 0 16px 30px rgba(25,21,17,0.07); }
.status-stat-value { font-size:1.8rem; line-height:1; font-weight:800; letter-spacing:-0.05em; }
.status-stat-label { color:var(--ink); font-size:0.84rem; font-weight:700; letter-spacing:0.02em; }
.status-stat-note { color:var(--muted); font-size:0.8rem; line-height:1.45; }
.status-chart-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap:12px; }
.status-card {
  border:1px solid var(--border);
  background:rgba(255,255,255,0.92);
  padding:14px 16px;
  display:grid;
  gap:10px;
}
.status-card--active { background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(245,239,232,0.94)); }
.status-card-title { margin:0; font-size:1.04rem; letter-spacing:-0.03em; }
.meter-list, .status-note-list { display:grid; gap:10px; }
.meter-row { display:grid; gap:6px; }
.meter-row-head { display:flex; justify-content:space-between; gap:10px; align-items:baseline; }
.meter-label { font-size:0.88rem; color:var(--ink); }
.meter-value { font-size:0.82rem; color:var(--muted-soft); white-space:nowrap; }
.meter-track {
  position:relative;
  height:10px;
  border-radius:999px;
  overflow:hidden;
  border:1px solid rgba(43,38,31,0.08);
  background:rgba(43,38,31,0.06);
}
.meter-fill {
  position:absolute;
  inset:0 auto 0 0;
  width:var(--meter-fill, 0%);
  min-width:0;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(130, 110, 92, 0.82), rgba(182, 151, 121, 0.92));
}
.meter-row--primary .meter-fill { background:linear-gradient(90deg, rgba(126, 103, 132, 0.88), rgba(198, 170, 206, 0.94)); }
.meter-row--secondary .meter-fill { background:linear-gradient(90deg, rgba(108, 129, 154, 0.86), rgba(163, 188, 210, 0.94)); }
.meter-row--warm .meter-fill { background:linear-gradient(90deg, rgba(160, 122, 78, 0.86), rgba(222, 185, 132, 0.94)); }
.meter-note { color:var(--muted); font-size:0.78rem; line-height:1.45; }
.status-line {
  border:1px solid rgba(43,38,31,0.1);
  background:rgba(255,255,255,0.7);
  padding:10px 12px;
  display:grid;
  gap:4px;
}
.status-line-label { font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted-soft); }
.status-line-value { font-size:0.96rem; line-height:1.35; color:var(--ink); }
.status-line-note { color:var(--muted); font-size:0.8rem; line-height:1.45; }
.stat-note { display:block; margin-top:4px; color:var(--muted-soft); font-size:0.7rem; line-height:1.35; }
body.season-spring-salon .status-wall,
body.season-spring-salon .status-card,
body.season-spring-salon .status-stat-card { background-image: linear-gradient(180deg, rgba(255,250,252,0.96), rgba(247,239,242,0.94)); }
body.season-sunbeam-social .status-wall,
body.season-sunbeam-social .status-card,
body.season-sunbeam-social .status-stat-card { background-image: linear-gradient(180deg, rgba(255,250,240,0.97), rgba(247,239,224,0.94)); }
body.season-harvest-marquee .status-wall,
body.season-harvest-marquee .status-card,
body.season-harvest-marquee .status-stat-card { background-image: linear-gradient(180deg, rgba(251,244,236,0.97), rgba(242,232,220,0.94)); }
body.season-moonlight-showcase .status-wall,
body.season-moonlight-showcase .status-card,
body.season-moonlight-showcase .status-stat-card { background-image: linear-gradient(180deg, rgba(249,248,252,0.97), rgba(239,236,245,0.94)); }
body.event-skin-hoppy-hour-lights .status-card,
body.event-skin-hoppy-hour-lights .status-stat-card { box-shadow: 0 18px 38px rgba(177, 131, 68, 0.10); }
.gallery-room-page .status-wall,
.gallery-hosts-page .status-wall { display:none; }
@media (max-width: 760px) {
  .status-wall { padding-inline: 16px; }
  .status-stat-grid, .status-chart-grid { grid-template-columns: 1fr; }
}


.speech-stack { display:grid; gap:10px; margin-top:12px; }
.speech-stack.compact { gap:8px; margin-top:10px; }
.speech-stack-topline { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.speech-scene-tag {
  display:inline-flex; align-items:center; padding:4px 9px; border-radius:999px;
  border:1px solid rgba(114, 100, 88, 0.22); background:rgba(255,255,255,0.68);
  color:#6a5d52; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
}
.speech-scene-tag.scene-duet { background:rgba(255,248,240,0.96); }
.speech-bubble { display:grid; grid-template-columns:auto minmax(0, 1fr); align-items:end; gap:10px; }
.speech-bubble.align-end { grid-template-columns:minmax(0, 1fr) auto; }
.speech-avatar {
  width:36px; height:36px; border-radius:999px; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:#5a4f45; background:linear-gradient(180deg, rgba(255,255,255,0.96), rgba(245,236,228,0.92));
  box-shadow:0 6px 14px rgba(27, 23, 18, 0.05);
}
.speech-bubble.align-end .speech-avatar { order:2; }
.speech-bubble-shell {
  position:relative; padding:14px 16px; border:1px solid var(--border);
  background:rgba(255,255,255,0.94); border-radius:18px;
  box-shadow:0 10px 22px rgba(27, 23, 18, 0.05);
}
.speech-bubble-shell::after {
  content:''; position:absolute; left:-8px; bottom:12px; width:14px; height:14px;
  background:inherit; border-left:1px solid var(--border); border-bottom:1px solid var(--border); transform:rotate(45deg);
}
.speech-bubble.align-end .speech-bubble-shell::after { left:auto; right:-8px; transform:rotate(225deg); }
.speech-bubble.role-maker .speech-bubble-shell, .speech-bubble.role-artist .speech-bubble-shell {
  background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,241,233,0.96));
}
.speech-bubble.role-companion .speech-bubble-shell {
  background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(242,247,242,0.96));
}
.speech-bubble.role-companion .speech-avatar {
  background:linear-gradient(180deg, rgba(251,255,251,0.98), rgba(234,244,234,0.94));
}
.speech-bubble-head { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:7px; }
.speech-speaker { font-size:0.96rem; letter-spacing:-0.02em; }
.speech-role {
  display:inline-flex; align-items:center; padding:4px 8px; border:1px solid var(--border);
  background:rgba(255,255,255,0.82); color:#5d5247; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
}
.speech-text { color:#4b433a; line-height:1.58; }
.room-talk-stack { margin-top:14px; }
.work-talk-preview { margin-top:2px; }
.work-talk-preview .speech-avatar { width:28px; height:28px; font-size:9px; }
.work-talk-preview .speech-bubble-shell { padding:10px 12px; border-radius:15px; box-shadow:none; }
.work-talk-preview .speech-bubble-shell::after { width:10px; height:10px; left:-6px; bottom:10px; }
.work-talk-preview .speech-bubble.align-end .speech-bubble-shell::after { right:-6px; }
.work-talk-preview .speech-speaker { font-size:0.86rem; }
.work-talk-preview .speech-role { font-size:10px; padding:3px 7px; }
.work-talk-preview .speech-text { font-size:0.9rem; line-height:1.5; }
.lightbox-talk-stack { margin-top:4px; }
.talk-teaser {
  margin-top: 4px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(247,248,250,0.92));
  border-radius: 16px;
  display: grid;
  gap: 7px;
}
.talk-teaser-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.talk-teaser-badge,
.talk-teaser-chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.82);
  color: #5d5247;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.talk-teaser-title {
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #2f2923;
}
.talk-teaser-line {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.5;
}
.talk-teaser-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
@media (max-width:760px) {
  .speech-bubble, .speech-bubble.align-end { grid-template-columns:auto minmax(0, 1fr); }
  .speech-bubble.align-end .speech-avatar { order:0; }
  .speech-bubble.align-end .speech-bubble-shell::after { left:-8px; right:auto; transform:rotate(45deg); }
}


/* Curator puns 1302 */
.curator-pun-note {
  border-style: dashed;
}
.curator-pun-line {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.5;
  color: #5b4767;
}
.curator-pun-meta {
  margin-top: 6px;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8b72a1;
}
.talk-teaser-chip.pun {
  border-color: #c9a8e4;
  background: rgba(185, 141, 225, 0.12);
}
.lightbox-pun-note {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px dashed rgba(127, 95, 149, 0.45);
  border-radius: 14px;
  background: rgba(250, 245, 255, 0.92);
}
.lightbox-pun-line {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.55;
  color: #563d66;
}


/* Dialogue polish 1305 */
.speech-voice-chip { display:inline-flex; align-items:center; padding:0.18rem 0.5rem; border-radius:999px; background:rgba(90, 79, 70, 0.08); color:#7a695a; font-size:0.68rem; line-height:1.1; }


.work-flow {
  padding: 8px 10px;
  border-left: 3px solid var(--room-accent);
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(245,247,249,0.92));
  color: #564c42;
  font-size: 0.82rem;
  line-height: 1.45;
}
.work-badge {
  min-width: 48px;
  justify-content: center;
  font-weight: 700;
}


.journey-wall .collection-wall-grid,
#journey-wall-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}
.journey-card {
  border: 1px solid rgba(44, 39, 33, 0.12);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.86), rgba(248,244,237,0.98)),
    radial-gradient(circle at top right, var(--journey-glow, rgba(255,255,255,0.72)), transparent 46%);
  box-shadow: var(--shadow);
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
  overflow: hidden;
}
.journey-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: linear-gradient(180deg, var(--journey-accent, var(--room-accent)), rgba(255,255,255,0));
}
.journey-card-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}
.journey-count-badge {
  min-width: 74px;
  border: 1px solid rgba(44, 39, 33, 0.12);
  background: var(--journey-soft, rgba(108, 102, 90, 0.12));
  border-radius: 16px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  color: var(--ink);
}
.journey-count-badge strong { font-size: 1.2rem; }
.journey-count-badge span { font-size: 0.75rem; color: var(--muted); }
.journey-card-line {
  font-size: 0.92rem;
  color: var(--muted);
}
.room-card {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.84), rgba(247,242,233,0.97)),
    radial-gradient(circle at top right, var(--journey-glow, rgba(255,255,255,0.68)), transparent 44%);
}
.room-card .room-header {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.52), rgba(255,255,255,0)),
    linear-gradient(90deg, var(--journey-soft, rgba(108, 102, 90, 0.10)), transparent 48%);
}
.room-journey-strip {
  border: 1px solid rgba(44, 39, 33, 0.12);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.84), rgba(250,247,241,0.98)),
    radial-gradient(circle at top right, var(--journey-glow, rgba(255,255,255,0.7)), transparent 52%);
  padding: 14px;
  margin-bottom: 16px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7);
}
.room-journey-strip.compact {
  padding: 10px;
  margin-bottom: 0;
}
.room-journey-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}
.room-journey-title {
  font-weight: 700;
  font-size: 1rem;
}
.room-journey-note {
  color: var(--muted);
  font-size: 0.92rem;
  margin-top: 4px;
}
.room-journey-side {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.room-journey-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(126px, 1fr));
  gap: 10px;
}
.room-journey-strip.compact .room-journey-grid {
  grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
  gap: 8px;
}
.room-journey-stop {
  border: 1px solid rgba(44, 39, 33, 0.12);
  background: rgba(255,255,255,0.82);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-align: left;
  color: inherit;
  box-shadow: 0 8px 18px rgba(30, 25, 19, 0.04);
}
button.room-journey-stop { cursor: pointer; }
.room-journey-stop.active {
  border-color: var(--journey-accent, var(--room-accent));
  background: linear-gradient(180deg, var(--journey-soft, rgba(108, 102, 90, 0.12)), rgba(255,255,255,0.92));
  box-shadow: 0 10px 22px rgba(30, 25, 19, 0.08);
}
.room-journey-thumb {
  position: relative;
  border: 1px solid rgba(44, 39, 33, 0.10);
  background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(238,232,222,0.92));
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.room-journey-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.room-journey-stop-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.room-journey-step {
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted-soft);
}
.room-journey-piece {
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1.2;
}
.room-journey-piece-note {
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.3;
}
.lightbox-journey-strip {
  border-top: 1px solid rgba(44, 39, 33, 0.10);
  margin-top: 10px;
  padding-top: 12px;
}
.lightbox-journey-strip .room-journey-stop {
  padding: 7px;
}
.lightbox-journey-strip .room-journey-piece {
  font-size: 0.78rem;
}
.lightbox-journey-strip .room-journey-piece-note {
  font-size: 0.7rem;
}
.work-card {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.82), rgba(248,244,237,0.98)),
    radial-gradient(circle at top right, var(--journey-glow, rgba(255,255,255,0.65)), transparent 46%);
}
.work-card .work-frame {
  background: linear-gradient(180deg, rgba(255,255,255,0.90), rgba(242,237,229,0.96));
}
.work-transition {
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.35;
}
@media (max-width: 820px) {
  .journey-card-head,
  .room-journey-head {
    flex-direction: column;
  }
  .room-journey-side {
    justify-content: flex-start;
  }
}


.handoff.bridge-same-family .handoff-link {
  background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(239,245,239,0.98));
}
.handoff.bridge-shared-source .handoff-link {
  background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(239,242,247,0.98));
}
.handoff.bridge-contrast .handoff-link {
  background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(247,240,234,0.98));
}
.handoff-bridge-card {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid rgba(44,39,33,0.12);
  background: rgba(255,255,255,0.74);
  display: grid;
  gap: 8px;
}
.handoff-bridge-title {
  font-weight: 700;
  font-size: 0.96rem;
  color: #312920;
}
.handoff-bridge-line,
.handoff-bridge-reason {
  color: var(--muted);
  line-height: 1.45;
  font-size: 0.9rem;
}
.handoff-bridge-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.handoff-bridge-chip {
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.82);
  color: #564d43;
  padding: 6px 10px;
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.handoff-bridge-chip.accent {
  border-color: var(--room-accent);
  background: var(--room-accent-soft, rgba(255,255,255,0.86));
  color: #2f271f;
}
.handoff-bridge-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.handoff-bridge-reason-label,
.handoff-bridge-micro {
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted-soft);
}

