/* ============================================================
   Rarely Heard Voices — 2026  ·  v2
   "Trust, at scale" — cinematic gold + charcoal
   ============================================================ */

:root {
    /* Palette — LIGHT theme */
    --ink:            #f5f0e5;   /* warm ivory canvas */
    --ink-2:          #efe8d7;
    --char:           #ebe3d1;   /* deeper cream for gradients */
    --gold:           #9a8146;   /* deep gold accent (reads on light) */
    --gold-bright:    #b1934c;
    --gold-deep:      #7a6631;
    --bone:           #221f18;   /* primary text (dark) */
    --bone-dim:       rgba(34, 31, 24, 0.64);
    --bone-faint:     rgba(34, 31, 24, 0.32);
    --hair:           rgba(150, 126, 66, 0.42);
    --hair-soft:      rgba(150, 126, 66, 0.20);

    /* Type */
    --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --sans:  'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

    /* Motion */
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --ease-slide: cubic-bezier(0.76, 0, 0.24, 1);

    /* Layout */
    --pad-x: clamp(3rem, 8vw, 9rem);
    --pad-y: clamp(2.5rem, 7vh, 6rem);
}

* , *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
    height: 100%;
    background: var(--ink);
    color: var(--bone);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow: hidden;
}

img { display: block; max-width: 100%; }
em { font-style: italic; }

/* ---------- Deck shell ---------- */
.deck {
    position: fixed;
    inset: 0;
    overflow: hidden;
    background:
        radial-gradient(120% 90% at 50% -10%, var(--ink-2) 0%, var(--ink) 55%);
}

/* ---------- Ambient background ---------- */
.ambient { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }

.aurora {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.55;
    mix-blend-mode: screen;
    will-change: transform;
}
.aurora-1 {
    width: 55vw; height: 55vw;
    top: -18vw; left: -12vw;
    background: radial-gradient(circle, rgba(201,184,120,0.42), transparent 68%);
    animation: drift1 26s var(--ease) infinite alternate;
}
.aurora-2 {
    width: 48vw; height: 48vw;
    bottom: -20vw; right: -10vw;
    background: radial-gradient(circle, rgba(156,139,82,0.40), transparent 68%);
    animation: drift2 32s var(--ease) infinite alternate;
}
.aurora-3 {
    width: 40vw; height: 40vw;
    top: 40%; left: 55%;
    background: radial-gradient(circle, rgba(230,214,160,0.20), transparent 70%);
    animation: drift3 38s var(--ease) infinite alternate;
}
@keyframes drift1 { to { transform: translate(8vw, 6vh) scale(1.15); } }
@keyframes drift2 { to { transform: translate(-7vw, -5vh) scale(1.2); } }
@keyframes drift3 { to { transform: translate(-6vw, 4vh) scale(0.9); } }

.grain {
    position: absolute; inset: 0;
    opacity: 0.05;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    mix-blend-mode: overlay;
}
.vignette {
    position: absolute; inset: 0;
    background: radial-gradient(120% 120% at 50% 45%, transparent 55%, rgba(0,0,0,0.55) 100%);
}

/* ---------- Persistent frame ---------- */
.frame { position: absolute; inset: 0; z-index: 40; pointer-events: none; }
.tick { position: absolute; width: 18px; height: 18px; }
.tick::before, .tick::after { content: ''; position: absolute; background: var(--hair); }
.tick::before { width: 100%; height: 1px; top: 0; }
.tick::after  { height: 100%; width: 1px; left: 0; }
.tick-tl { top: 30px; left: 34px; }
.tick-tr { top: 30px; right: 34px; transform: scaleX(-1); }
.tick-bl { bottom: 30px; left: 34px; transform: scaleY(-1); }
.tick-br { bottom: 30px; right: 34px; transform: scale(-1); }

/* ---------- Top chrome ---------- */
.chrome-top {
    position: absolute; top: 30px; left: 0; right: 0; z-index: 45;
    display: flex; flex-direction: column; align-items: center; gap: 14px;
    pointer-events: none;
}
.wordmark { text-align: center; }
.wordmark-main {
    display: block;
    font-family: var(--serif);
    font-size: 1.35rem; letter-spacing: 0.14em; text-indent: 0.14em;
    color: var(--bone);
    font-weight: 500;
}
.wordmark-sub {
    display: block; margin-top: 5px;
    font-size: 0.56rem; letter-spacing: 0.34em; text-indent: 0.34em;
    text-transform: uppercase; color: var(--gold);
    font-weight: 500;
}
.progress-track {
    width: min(220px, 30vw); height: 1px;
    background: var(--hair-soft); overflow: hidden;
}
.progress-fill {
    height: 100%; width: 10%;
    background: linear-gradient(90deg, var(--gold-deep), var(--gold-bright));
    transition: width 0.7s var(--ease);
}

/* ---------- Dot index ---------- */
.dots {
    position: absolute; right: 40px; top: 50%; transform: translateY(-50%);
    z-index: 45; display: flex; flex-direction: column; gap: 14px;
}
.dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--bone-faint); border: none; cursor: pointer;
    padding: 0; position: relative; transition: all 0.4s var(--ease);
}
.dot::after {
    content: attr(data-label);
    position: absolute; right: 18px; top: 50%; transform: translateY(-50%) translateX(6px);
    white-space: nowrap; font-size: 0.6rem; letter-spacing: 0.18em; text-transform: uppercase;
    color: var(--gold); opacity: 0; transition: all 0.35s var(--ease); pointer-events: none;
}
.dot:hover::after { opacity: 1; transform: translateY(-50%) translateX(0); }
.dot.is-active { background: var(--gold); transform: scale(1.5); box-shadow: 0 0 12px rgba(201,184,120,0.7); }

/* ---------- Bottom chrome ---------- */
.chrome-bottom {
    position: absolute; bottom: 34px; left: 50%; transform: translateX(-50%);
    z-index: 45; display: flex; align-items: center; gap: 22px;
}
.ctrl {
    width: 42px; height: 42px; border-radius: 50%;
    background: rgba(244,239,228,0.04); border: 1px solid var(--hair);
    color: var(--bone); cursor: pointer; display: grid; place-items: center;
    transition: all 0.35s var(--ease); backdrop-filter: blur(6px);
}
.ctrl svg { width: 18px; height: 18px; }
.ctrl:hover { background: var(--gold); color: var(--ink); border-color: var(--gold); transform: translateY(-2px); }
.ctrl:disabled { opacity: 0.25; cursor: default; transform: none; background: rgba(244,239,228,0.04); color: var(--bone); }
.counter {
    font-family: var(--serif); font-size: 0.95rem; letter-spacing: 0.22em;
    color: var(--bone-dim); display: flex; gap: 8px; align-items: baseline;
}
.counter #curNum { color: var(--gold); }
.counter-sep { color: var(--bone-faint); }

/* ---------- Stage & slides ---------- */
.stage { position: absolute; inset: 0; z-index: 10; }
.slide {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden;
    transition: opacity 0.9s var(--ease-slide), visibility 0.9s;
    z-index: 1;
}
.slide.is-active { opacity: 1; visibility: visible; z-index: 2; }

.slide-pad {
    position: relative; z-index: 3;
    width: 100%; height: 100%;
    padding: calc(var(--pad-y) + 46px) var(--pad-x) calc(var(--pad-y) + 40px);
    display: flex; flex-direction: column; justify-content: center;
}

/* ---------- Reveal system ---------- */
.reveal { opacity: 0; transform: translateY(26px); }
.slide.is-active .reveal {
    animation: rise 1.05s var(--ease) forwards;
    animation-delay: calc(var(--d, 0) * 1ms);
}
@keyframes rise { to { opacity: 1; transform: translateY(0); } }

/* ---------- Shared typographic elements ---------- */
.eyebrow {
    display: inline-flex; align-items: center; gap: 12px;
    font-size: 0.66rem; letter-spacing: 0.32em; text-transform: uppercase;
    color: var(--gold); font-weight: 500; margin-bottom: clamp(1.4rem, 3vh, 2.4rem);
}
.eyebrow-tick { width: 30px; height: 1px; background: var(--gold); display: inline-block; }
.eyebrow-light { color: var(--gold-bright); }

.display {
    font-family: var(--serif); font-weight: 500; line-height: 1.02;
    letter-spacing: -0.01em; color: var(--bone);
}
.display em { color: var(--gold); font-weight: 500; }
.display-lg { font-size: clamp(2.6rem, 5.4vw, 5rem); }
.display-md { font-size: clamp(2.3rem, 4.6vw, 4rem); }
.display-sm { font-size: clamp(1.8rem, 3.4vw, 2.9rem); line-height: 1.12; }

.lede {
    font-size: clamp(1.05rem, 1.6vw, 1.4rem); line-height: 1.6;
    color: var(--bone-dim); max-width: 46ch; font-weight: 300;
    margin-top: clamp(1.4rem, 3vh, 2.2rem);
}

/* ---------- Widow / orphan control ---------- */
.display, .display-lg, .display-md, .display-sm,
.close-line, .women-title, .story-line, .cover-tag {
    text-wrap: balance;
}
.lede, .pillar-copy, .story-nots, .event-place {
    text-wrap: pretty;
}

/* ============================================================
   1 · COVER
   ============================================================ */
.slide-cover { background: radial-gradient(120% 100% at 50% 40%, var(--char), var(--ink) 70%); }
.cover-inner {
    position: relative; z-index: 3; text-align: center;
    display: flex; flex-direction: column; align-items: center;
}
.cover-emblem img { width: 74px; height: auto; filter: drop-shadow(0 0 26px rgba(201,184,120,0.4)); }
.cover-rule { width: 1px; height: 46px; background: linear-gradient(var(--hair), transparent); margin: 22px 0; }
.cover-inner .cover-rule:nth-of-type(1) {}
.cover-logo { width: clamp(380px, 50vw, 720px); height: auto; margin: 4px 0; }
.cover-tag {
    font-family: var(--serif); font-size: clamp(1.15rem, 1.9vw, 1.55rem);
    line-height: 1.55; color: var(--bone-dim); font-weight: 400; font-style: italic;
    max-width: 40ch;
}
.cover-meta {
    margin-top: 30px; font-size: 0.64rem; letter-spacing: 0.36em; text-transform: uppercase;
    color: var(--gold); font-weight: 500;
}
.cover-thankyou {
    margin-top: clamp(1.6rem, 3.2vh, 2.8rem);
    font-family: var(--serif); font-style: italic; font-weight: 500;
    font-size: clamp(1.7rem, 3vw, 2.8rem); color: var(--gold); letter-spacing: 0.02em;
    background: linear-gradient(160deg, var(--gold-bright), var(--gold-deep));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.cover-trust {
    position: absolute; z-index: 1; left: 50%; top: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--serif); font-style: italic; font-weight: 400;
    font-size: 44vw; line-height: 1; color: rgba(201,184,120,0.05);
    letter-spacing: -0.03em; pointer-events: none; user-select: none; white-space: nowrap;
}

/* ============================================================
   2 · THE MODEL
   ============================================================ */
.pillars {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: clamp(1.5rem, 3vw, 3rem); margin-top: clamp(1.4rem, 3vh, 2.6rem);
}
.pillar { position: relative; padding-top: 26px; border-top: 1px solid var(--hair); }
.pillar-num {
    font-family: var(--serif); font-size: 0.9rem; letter-spacing: 0.2em;
    color: var(--gold); display: block; margin-bottom: 14px;
}
.pillar-title {
    font-family: var(--serif); font-size: clamp(1.5rem, 2.4vw, 2.1rem);
    font-weight: 500; color: var(--bone); margin-bottom: 12px; letter-spacing: -0.01em;
}
.pillar-copy { font-size: 0.94rem; line-height: 1.62; color: var(--bone-dim); font-weight: 300; }

/* ============================================================
   3 · PROOF OF TRUST
   ============================================================ */
.slide-story { overflow: hidden; }
.story-media { position: absolute; inset: 0; z-index: 1; }
.story-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.75) contrast(1.02); }
.story-scrim {
    position: absolute; inset: 0;
    background:
        linear-gradient(90deg, rgba(10,9,7,0.94) 0%, rgba(10,9,7,0.78) 42%, rgba(10,9,7,0.30) 100%),
        linear-gradient(0deg, rgba(10,9,7,0.6), transparent 40%);
}
.story-pad { justify-content: center; max-width: none; }
.story-line {
    font-family: var(--serif); font-weight: 400;
    font-size: clamp(1.4rem, 2.5vw, 2.25rem); line-height: 1.24; color: var(--bone);
    max-width: 34ch; margin-bottom: 0.32em;
}
.story-open { max-width: 30ch; }
.story-emph { color: var(--gold); font-style: italic; }
.story-nots {
    list-style: none; display: flex; flex-wrap: wrap; gap: 9px 12px;
    margin: 1rem 0 1.3rem;
}
.story-nots li {
    font-family: var(--sans); font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--bone); padding: 9px 18px; border: 1px solid var(--hair);
    border-radius: 100px; background: rgba(244,239,228,0.03); backdrop-filter: blur(4px);
}
.story-final { color: var(--gold-bright); font-style: italic; max-width: 38ch; }

/* ============================================================
   4 · SCALE
   ============================================================ */
.scale-map {
    position: absolute; inset: 0; z-index: 1;
    display: grid; place-items: center; overflow: hidden;
}
.scale-map .world-map {
    width: 92%; max-width: 1400px; opacity: 0.14;
    filter: brightness(0) saturate(100%) invert(78%) sepia(24%) saturate(560%) hue-rotate(1deg) brightness(92%) contrast(88%);
    -webkit-mask-image: radial-gradient(120% 100% at 50% 50%, #000 55%, transparent 92%);
            mask-image: radial-gradient(120% 100% at 50% 50%, #000 55%, transparent 92%);
}
.scale-pad { justify-content: center; align-items: center; text-align: center; }
.scale-grid {
    display: flex; align-items: center; justify-content: center;
    gap: clamp(3rem, 9vw, 10rem); flex-wrap: wrap;
    margin-top: clamp(1rem, 3vh, 2rem);
}
.scale-minor {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, max-content));
    column-gap: clamp(3rem, 8vw, 8rem);
    row-gap: clamp(1.8rem, 5vh, 3.4rem);
}
.stat-num {
    display: block; font-family: var(--serif); font-weight: 500; line-height: 0.9;
    color: var(--gold); letter-spacing: -0.02em;
    font-size: clamp(3.4rem, 6vw, 5.6rem);
}
.stat-hero .stat-num {
    font-size: clamp(6rem, 13vw, 12rem);
    background: linear-gradient(160deg, var(--gold-bright), var(--gold-deep));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 40px rgba(201,184,120,0.25));
}
.stat-label {
    display: block; margin-top: 10px; font-size: 0.7rem; letter-spacing: 0.22em;
    text-transform: uppercase; color: var(--bone-dim); font-weight: 500;
}
.stat-hero .stat-label { font-size: 0.82rem; color: var(--bone); }
.scale-foot {
    align-self: stretch; text-align: center;
    margin-top: clamp(2rem, 5vh, 3.4rem); padding-top: 1.6rem; border-top: 1px solid var(--hair-soft);
    font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--gold);
    letter-spacing: 0.06em;
}

/* ============================================================
   5 · COMMUNITY
   ============================================================ */
.community-pad { justify-content: space-between; }
.community-head { max-width: 60ch; }
.community-head .display { margin-top: 0.4rem; }
.community-map {
    position: relative; flex: 1; margin: clamp(1rem, 2vh, 2rem) 0;
    display: grid; place-items: center; min-height: 0;
}
.community-map .world-map {
    width: 82%; max-width: 1150px; opacity: 0.20;
    filter: brightness(0) saturate(100%) invert(78%) sepia(24%) saturate(560%) hue-rotate(1deg) brightness(92%) contrast(88%);
}
.nodes { position: absolute; inset: 0; }
.node {
    position: absolute; width: 44px; height: 44px; border-radius: 50%;
    transform: translate(-50%, -50%) scale(0);
    background-size: cover; background-position: center;
    border: 1.5px solid var(--gold);
    box-shadow: 0 0 0 4px rgba(14,13,11,0.6), 0 6px 18px rgba(0,0,0,0.5);
    opacity: 0;
}
.node.pop { animation: nodePop 0.7s var(--ease) forwards; }
@keyframes nodePop { to { transform: translate(-50%, -50%) scale(1); opacity: 1; } }
.node::before {
    content: ''; position: absolute; inset: -1.5px; border-radius: 50%;
    border: 1px solid var(--gold); opacity: 0;
    animation: nodePing 2.6s ease-out infinite;
}
@keyframes nodePing {
    0% { transform: scale(1); opacity: 0.7; }
    70%, 100% { transform: scale(2.1); opacity: 0; }
}
.node-mono {
    display: grid; place-items: center; background: var(--char);
    font-family: var(--serif); font-size: 0.9rem; color: var(--gold); letter-spacing: 0.04em;
}
.community-tags {
    display: flex; align-items: center; justify-content: center; gap: 20px;
    font-family: var(--serif); font-style: normal; font-size: clamp(1.1rem, 2vw, 1.6rem);
    color: var(--bone); letter-spacing: 0.04em;
}
.tag-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }

/* ============================================================
   6 · CONVENING
   ============================================================ */
.slide-convening .display { margin-bottom: clamp(3rem, 8vh, 6rem); }
.timeline {
    position: relative; display: grid; grid-template-columns: repeat(4, 1fr);
    gap: clamp(1rem, 3vw, 3rem);
}
.timeline-line {
    position: absolute; left: 0; right: 0; top: 46px; height: 1px;
    background: linear-gradient(90deg, transparent, var(--hair) 8%, var(--hair) 92%, transparent);
    transform-origin: left; transform: scaleX(0);
}
.slide.is-active .timeline-line { animation: drawLine 1.3s var(--ease) 0.4s forwards; }
@keyframes drawLine { to { transform: scaleX(1); } }
.event { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding-top: 78px; }
.event-date {
    position: absolute; top: 0; font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--gold); font-weight: 600;
}
.event-node {
    position: absolute; top: 40px; left: 0; width: 13px; height: 13px; border-radius: 50%;
    background: var(--ink); border: 1.5px solid var(--gold); box-shadow: 0 0 14px rgba(201,184,120,0.5);
}
.event-name {
    font-family: var(--serif); font-size: clamp(1.6rem, 2.6vw, 2.4rem); font-weight: 500;
    color: var(--bone); letter-spacing: -0.01em; margin-bottom: 6px;
}
.event-place { font-size: 0.8rem; letter-spacing: 0.1em; color: var(--bone-dim); font-weight: 300; }

/* ============================================================
   7 · PORTFOLIO
   ============================================================ */
.slide-portfolio .display { margin-bottom: clamp(2rem, 5vh, 3.6rem); max-width: 22ch; }
.portfolio-pad { justify-content: flex-start; }
.portfolio-pad .eyebrow { margin-bottom: clamp(1.6rem, 4vh, 3rem); }
.portfolio-grid {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: clamp(1rem, 1.8vw, 1.8rem);
}
.channels-row {
    margin-top: auto; padding-top: 1.6rem; border-top: 1px solid var(--hair-soft);
    display: flex; justify-content: space-between; align-items: center;
    gap: clamp(0.6rem, 1.4vw, 1.6rem); flex-wrap: wrap;
}
.channel {
    font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--gold); font-weight: 600; white-space: nowrap;
}
.house { display: flex; flex-direction: column; gap: 0.8rem; }
.house-label {
    font-size: 0.58rem; letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--gold); font-weight: 600; margin-bottom: 2px; padding-left: 2px;
}
.chip {
    background: #f6f2e8; border-radius: 7px;
    display: flex; align-items: center; justify-content: center;
    padding: 8px 14px; box-shadow: 0 10px 26px rgba(0,0,0,0.34);
    transition: transform 0.4s var(--ease);
}
.chip img { width: auto; object-fit: contain; }
.chip-parent { height: 104px; }
.chip-parent img { max-height: 76px; max-width: 92%; }
.house:hover .chip-parent { transform: translateY(-3px); }
.house-kids { display: flex; flex-direction: column; gap: 0.7rem; }
.chip-kid { height: 74px; padding: 7px 12px; box-shadow: 0 6px 16px rgba(0,0,0,0.28); }
.chip-kid img { max-height: 46px; max-width: 84%; }
.chip-text {
    font-family: var(--serif); font-style: italic; font-size: 1.3rem;
    color: #2a2823; letter-spacing: 0.01em;
}

/* ============================================================
   8 · BRAND LOCKUP (cycling word)
   ============================================================ */
.slide-lockup { background: radial-gradient(120% 100% at 50% 45%, var(--char), var(--ink) 72%); }
.lockup-eyebrow { position: absolute; z-index: 4; top: calc(var(--pad-y) + 46px); left: var(--pad-x); }
.lockup-stack { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: clamp(1.8rem, 5vh, 3.4rem); }
.nothave { text-align: center; }
.nothave-head {
    font-family: var(--serif); font-style: italic; font-weight: 500;
    font-size: clamp(1.05rem, 1.7vw, 1.5rem); color: var(--gold); letter-spacing: 0.02em;
    margin-bottom: clamp(0.9rem, 2vh, 1.4rem);
}
.nothave-list {
    list-style: none; display: flex; flex-wrap: wrap; justify-content: center;
    gap: 0.55em 1.35em;
    font-family: var(--serif); font-size: clamp(1.1rem, 1.9vw, 1.7rem); color: var(--bone);
}
.nothave-list li {
    opacity: 0; transform: translateY(14px); filter: blur(7px);
    transition: opacity 0.7s var(--ease), transform 0.7s var(--ease), filter 0.7s var(--ease);
}
.nothave-list li.struck { opacity: 1; transform: translateY(0); filter: blur(0); }

/* Proof slide — text band + fade at the top */
.slide-story.proof-top .story-scrim {
    background: none;
}
.proof-copy-wrap {
    position: absolute; z-index: 3; top: clamp(2rem, 6vh, 4.6rem); left: 0; right: 0;
    display: flex; justify-content: center; padding: 0 var(--pad-x);
}
.proof-copy {
    width: min(100%, 1150px); text-align: center;
    font-family: var(--serif); font-weight: 400; line-height: 1.34;
    font-size: clamp(1.35rem, 2.5vw, 2.35rem); color: #f4efe4;
}
.proof-copy em { font-style: italic; }
.proof-copy .proof-gold { color: var(--gold); }

/* ============================================================
   REUNION slide
   ============================================================ */
.slide-reunion { overflow: hidden; }
.reunion-media { position: absolute; inset: 0; z-index: 1; }
.reunion-media img { width: 100%; height: 100%; object-fit: cover; object-position: 34% 32%; }
.reunion-scrim {
    position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(18,16,11,0.94) 0%, rgba(18,16,11,0.6) 32%, rgba(18,16,11,0.04) 58%);
}
.reunion-title {
    position: absolute; z-index: 3; top: clamp(1.6rem, 4.5vh, 3.4rem); left: 50%; transform: translateX(-50%);
    display: flex; flex-direction: column; align-items: center; text-align: center;
}
.reunion-emblem { width: clamp(34px, 3.6vw, 50px); height: auto; margin-bottom: 8px; filter: drop-shadow(0 0 16px rgba(201,184,120,0.5)); }
.reunion-kicker { font-size: 0.58rem; letter-spacing: 0.34em; text-indent: 0.34em; text-transform: uppercase; color: var(--gold-bright); font-weight: 500; }
.reunion-name {
    font-family: var(--serif); font-weight: 500; line-height: 1; text-transform: uppercase;
    font-size: clamp(2.4rem, 5.2vw, 4.6rem); color: #f4efe4; letter-spacing: 0.14em; text-indent: 0.14em;
    margin: 6px 0 8px;
}
.reunion-date { font-size: 0.64rem; letter-spacing: 0.42em; text-indent: 0.42em; text-transform: uppercase; color: var(--gold-bright); font-weight: 500; }
.reunion-pad { justify-content: center; }
.reunion-left {
    position: relative; z-index: 3; max-width: 34ch;
    display: flex; flex-direction: column; align-items: center; text-align: center;
}
.reunion-lockup {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    width: fit-content;
    margin-bottom: clamp(1.3rem, 3.4vh, 2.4rem);
}
.reunion-lockup__emblem { width: clamp(42px, 4.4vw, 64px); height: auto; margin-bottom: 12px; filter: drop-shadow(0 0 16px rgba(201,184,120,0.5)); }
.reunion-lockup__pre { font-size: 0.72rem; letter-spacing: 0.34em; text-indent: 0.34em; text-transform: uppercase; color: var(--gold-bright); font-weight: 500; }
.reunion-lockup__name {
    font-family: var(--serif); font-weight: 500; line-height: 1; text-transform: uppercase;
    font-size: clamp(2.3rem, 4.6vw, 4rem); color: #f4efe4; letter-spacing: 0.12em; text-indent: 0.12em;
    margin: 8px 0 10px;
}
.reunion-lockup__date { font-size: 0.76rem; letter-spacing: 0.4em; text-indent: 0.4em; text-transform: uppercase; color: var(--gold-bright); font-weight: 500; }
.reunion-trust {
    display: block; font-family: var(--serif); font-weight: 400; line-height: 1;
    font-size: clamp(3.4rem, 8vw, 7rem); letter-spacing: -0.005em;
    background: linear-gradient(160deg, var(--gold-bright), var(--gold-deep));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    margin-bottom: clamp(1rem, 2.6vh, 1.9rem);
}
.reunion-copy {
    font-family: var(--serif); font-weight: 400; font-size: clamp(1.2rem, 2vw, 1.85rem); line-height: 1.4;
    color: #f4efe4; max-width: 22ch;
}

/* chrome inverts to light on the reunion (dark photo) slide */
.deck:has(.slide-reunion.is-active) .counter { color: rgba(244,239,228,0.62); }
.deck:has(.slide-reunion.is-active) .counter #curNum { color: #d8c78a; }
.deck:has(.slide-reunion.is-active) .dot { background: rgba(244,239,228,0.34); }
.deck:has(.slide-reunion.is-active) .dot.is-active { background: #d8c78a; box-shadow: 0 0 12px rgba(216,199,138,0.6); }
.deck:has(.slide-reunion.is-active) .ctrl { color: #f4efe4; border-color: rgba(216,199,138,0.45); background: rgba(244,239,228,0.06); }
.deck:has(.slide-reunion.is-active) .ctrl:hover { color: #20180d; background: #d8c78a; border-color: #d8c78a; }
.deck:has(.slide-reunion.is-active) .tick::before, .deck:has(.slide-reunion.is-active) .tick::after { background: rgba(216,199,138,0.5); }
.deck:has(.slide-reunion.is-active) .progress-track { background: rgba(244,239,228,0.25); }
.lockup { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center; }
.lockup-emblem-row {
    display: flex; align-items: center; gap: clamp(1rem, 2vw, 1.6rem);
    margin-bottom: clamp(1.8rem, 4vh, 2.8rem);
    font-size: clamp(84px, 10vw, 190px);   /* em basis = emblem size, so the line drop scales with it */
}
.lockup-rule {
    width: clamp(110px, 16vw, 280px); height: 1px;
    background: linear-gradient(90deg, transparent, var(--hair) 26%, var(--hair) 74%, transparent);
    transform: translateY(0.2em);   /* drop the lines onto the constellation's lower third, at any size */
}
.lockup-emblem { width: clamp(84px, 10vw, 190px); height: auto; flex-shrink: 0; filter: drop-shadow(0 0 24px rgba(201,184,120,0.4)); }
.lockup-text {
    display: flex; flex-direction: row; align-items: baseline; justify-content: center;
    flex-wrap: wrap; text-align: center;
    font-size: clamp(2rem, 5.4vw, 4.6rem);   /* sets em basis for the gap */
    column-gap: 0.19em; row-gap: 0.12em;
}
.lockup-line1 {
    font-family: var(--serif); font-weight: 500; line-height: 1;
    font-size: clamp(2rem, 5.4vw, 4.6rem); color: var(--gold-bright); letter-spacing: 0.01em;
}
.lockup-line2 {
    font-family: var(--serif); font-weight: 500; line-height: 1;
    font-size: clamp(2rem, 5.4vw, 4.6rem); color: var(--gold); letter-spacing: 0.01em;
    display: inline-block;
    background: linear-gradient(160deg, var(--gold), var(--gold-deep));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    transition: opacity 0.6s cubic-bezier(0.16,1,0.3,1),
                transform 0.6s cubic-bezier(0.16,1,0.3,1),
                filter 0.6s ease;
}
.lockup-line2.word-out { opacity: 0; transform: translateY(-18px); filter: blur(7px); }
.lockup-line2.word-in  { opacity: 0; transform: translateY(18px);  filter: blur(7px); }
.lockup-line1 {
    white-space: nowrap; overflow: hidden; max-width: 20ch;
    transition: opacity 0.6s cubic-bezier(0.16,1,0.3,1),
                max-width 0.6s cubic-bezier(0.16,1,0.3,1),
                margin 0.6s cubic-bezier(0.16,1,0.3,1);
}
/* collapse the hidden line so line 2 sits dead-centre, not pushed right */
.lockup-line1.is-hidden { opacity: 0; max-width: 0; margin-right: -0.19em; }
.lockup-tm {
    font-size: 0.28em; vertical-align: super; letter-spacing: 0.04em;
    -webkit-text-fill-color: currentColor; margin-left: 0.06em;
}
.lockup-rule-bottom {
    width: calc(2 * clamp(110px,16vw,280px) + 2 * clamp(1rem,2vw,1.6rem) + clamp(84px,10vw,190px));
    height: 1px; margin-top: clamp(49px, 8vw, 75px);
    background: linear-gradient(90deg, transparent, var(--hair) 26%, var(--hair) 74%, transparent);
}

/* ============================================================
   9 · WOMEN OF RHV
   ============================================================ */
.slide-women { overflow: hidden; }
.women-media { position: absolute; inset: 0; z-index: 1; }
.women-media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); }
.slide-women.is-active .women-media img { animation: slowZoom 12s ease-out forwards; }
@keyframes slowZoom { to { transform: scale(1); } }
.women-scrim {
    position: absolute; inset: 0;
    background:
        linear-gradient(0deg, rgba(10,9,7,0.92) 2%, rgba(10,9,7,0.32) 40%, rgba(10,9,7,0.15) 100%),
        linear-gradient(90deg, rgba(10,9,7,0.6), transparent 55%);
}
.women-pad { justify-content: flex-end; }
.women-title { margin-bottom: 1rem; }
.women-cap { font-size: 0.68rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); font-weight: 500; }

/* ============================================================
   9 · LEADERSHIP
   ============================================================ */
.slide-leaders .eyebrow { margin-bottom: clamp(2rem, 5vh, 3.4rem); }
.leaders-row {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: clamp(1.2rem, 2.4vw, 2.6rem);
}
.leader { display: flex; flex-direction: column; }
.leader-photo {
    width: 100%; aspect-ratio: 3 / 4; background-size: cover; background-position: center;
    border-radius: 3px; filter: grayscale(0.35) contrast(1.02);
    position: relative; border: 1px solid var(--hair-soft);
    transition: filter 0.5s var(--ease);
    -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
            mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
}
.leader:hover .leader-photo { filter: grayscale(0) contrast(1.04); }
.leader-name {
    font-family: var(--serif); font-size: clamp(1.25rem, 1.8vw, 1.7rem); font-weight: 500;
    color: var(--bone); margin-top: 1rem; letter-spacing: -0.01em;
}
.leader-role {
    font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--gold); margin-top: 8px; font-weight: 500;
}

/* ============================================================
   10 · CLOSE
   ============================================================ */
.slide-close { background: radial-gradient(120% 100% at 50% 45%, var(--char), var(--ink) 72%); }
.close-inner { position: relative; z-index: 3; text-align: center; display: flex; flex-direction: column; align-items: center; }
.close-emblem { width: 60px; height: auto; margin-bottom: 2.4rem; filter: drop-shadow(0 0 24px rgba(201,184,120,0.4)); }
.close-line {
    font-family: var(--serif); font-weight: 400; line-height: 1.14;
    font-size: clamp(2.4rem, 5.5vw, 4.6rem); color: var(--bone); letter-spacing: -0.01em;
    margin-bottom: 2.8rem;
}
.close-line em { color: var(--gold); font-style: italic; }
.close-logo { width: clamp(220px, 26vw, 340px); height: auto; opacity: 0.9; }
.close-meta { margin-top: 26px; font-size: 0.62rem; letter-spacing: 0.34em; text-transform: uppercase; color: var(--gold); font-weight: 500; }

/* ============================================================
   Dark theme small tweaks — none needed globally; slides are dark.
   ============================================================ */

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .pillars, .timeline, .portfolio-grid, .leaders-row, .scale-grid { grid-template-columns: 1fr 1fr; }
    .stat, .stat-hero { grid-column: span 1; }
    .dots { display: none; }
    .wordmark-sub { display: none; }
    .story-scrim { background: linear-gradient(0deg, rgba(10,9,7,0.94), rgba(10,9,7,0.55)); }
}
@media (max-width: 600px) {
    :root { --pad-x: 1.6rem; }
    .pillars, .timeline, .portfolio-grid, .leaders-row { grid-template-columns: 1fr; }
    .timeline-line { display: none; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    * { animation-duration: 0.001ms !important; animation-delay: 0ms !important; }
    .reveal { opacity: 1; transform: none; }
    .aurora { animation: none; }
    .trust-word { opacity: 1 !important; }
}

/* ============================================================
   LIGHT THEME OVERRIDES + TRUST PAUSE (v3)
   ============================================================ */

/* Ambient — soften for the ivory canvas */
.aurora { opacity: 0.5; mix-blend-mode: multiply; }
.aurora-1 { background: radial-gradient(circle, rgba(184,152,82,0.22), transparent 68%); }
.aurora-2 { background: radial-gradient(circle, rgba(150,126,66,0.18), transparent 68%); }
.aurora-3 { background: radial-gradient(circle, rgba(200,175,110,0.14), transparent 70%); }
.grain { opacity: 0.03; mix-blend-mode: multiply; }
.vignette { background: radial-gradient(120% 120% at 50% 42%, transparent 58%, rgba(120,95,45,0.10) 100%); }

/* Controls */
.ctrl { background: rgba(255,255,255,0.35); }
.ctrl:hover { color: #ffffff; }

/* Chips → white cards so logos read on ivory */
.chip { background: #ffffff; border: 1px solid rgba(150,126,66,0.18); box-shadow: 0 10px 24px rgba(80,64,30,0.10); }
.chip-kid { box-shadow: 0 6px 16px rgba(80,64,30,0.08); }

/* World map — darker tan tint + a little more presence on ivory */
.scale-map .world-map,
.community-map .world-map {
    filter: brightness(0) saturate(100%) invert(50%) sepia(40%) saturate(540%) hue-rotate(3deg) brightness(86%) contrast(92%);
}
.scale-map .world-map { opacity: 0.30; }
.community-map .world-map { opacity: 0.34; }

/* Community nodes — light ring */
.node { box-shadow: 0 0 0 4px rgba(245,240,229,0.85), 0 6px 16px rgba(80,64,30,0.26); }
.node-mono { background: #fbf8f0; }

/* Story photo — ivory wash on the text side, dark type over it */
.story-media img { filter: saturate(0.92) contrast(1.02); }
.story-scrim {
    background:
        linear-gradient(180deg, rgba(245,240,229,0.88) 0%, transparent 15%),
        linear-gradient(90deg, rgba(245,240,229,0.98) 0%, rgba(245,240,229,0.90) 34%, rgba(245,240,229,0.35) 72%, rgba(245,240,229,0.08) 100%),
        linear-gradient(0deg, rgba(245,240,229,0.4), transparent 42%);
}
.story-nots li { background: rgba(255,255,255,0.4); border-color: var(--hair); color: var(--bone); }

/* Women photo — ivory base for the caption */
.women-scrim {
    background:
        linear-gradient(180deg, rgba(245,240,229,0.85) 0%, transparent 14%),
        linear-gradient(0deg, rgba(245,240,229,0.97) 2%, rgba(245,240,229,0.45) 34%, transparent 72%),
        linear-gradient(90deg, rgba(245,240,229,0.6), transparent 55%);
}

/* Leader photos */
.leader-photo { border-color: var(--hair); filter: grayscale(0.18) contrast(1.03); }

/* ---------- Cover (logo lockup) ---------- */
.slide-cover { background: radial-gradient(120% 100% at 50% 42%, #fdfaf3, var(--ink) 74%); }

/* ---------- Trust — its own animated beat (regular weight, upright) ---------- */
.slide-trust { background: radial-gradient(120% 100% at 50% 45%, #fdfaf3, var(--ink) 74%); }
.trust-stage { position: relative; z-index: 3; display: grid; place-items: center; }
.trust-word {
    font-family: var(--serif); font-style: normal; font-weight: 400; line-height: 1;
    font-size: clamp(4rem, 17vw, 15rem); letter-spacing: -0.005em; opacity: 0;
    background: linear-gradient(160deg, var(--gold-bright), var(--gold-deep));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.slide-trust.is-active .trust-word { animation: trustIn 1.9s var(--ease) forwards; }
@keyframes trustIn {
    0%   { opacity: 0; transform: translateY(14px) scale(0.975); filter: blur(9px); letter-spacing: 0.28em; }
    100% { opacity: 1; transform: none;                          filter: blur(0);  letter-spacing: 0.14em; }
}

/* ============================================================
   v3 — SESSION REFINEMENTS
   ============================================================ */

/* Top chrome: remove the wordmark, use a full-width progress bar (like the original) */
.wordmark { display: none; }
.chrome-top { top: 0; gap: 0; }
.progress-track { width: 100%; height: 3px; background: rgba(150,126,66,0.18); }

/* Cover tagline upright (not italic) */
.cover-tag { font-style: normal; }

/* Trust beat: airy letter-spacing at rest */
.trust-word { letter-spacing: 0.14em; }

/* Lighter, more elegant display headings */
.display { font-weight: 400; }

/* MODEL: faint world map behind the content */
.model-map { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; overflow: hidden; }
.model-map .world-map {
    width: 92%; max-width: 1400px; opacity: 0.15;
    filter: brightness(0) saturate(100%) invert(50%) sepia(40%) saturate(540%) hue-rotate(3deg) brightness(86%) contrast(92%);
    -webkit-mask-image: radial-gradient(120% 100% at 50% 50%, #000 55%, transparent 92%);
            mask-image: radial-gradient(120% 100% at 50% 50%, #000 55%, transparent 92%);
}

/* COMMUNITY: map matches Scale (full-bleed); profile cards build on it */
.slide-community .community-map {
    position: absolute; inset: 0; z-index: 1; margin: 0; flex: none;
    display: grid; place-items: center;
}
.community-map__inner { position: relative; width: 92%; max-width: 1400px; }
.community-map__inner .world-map {
    width: 100%; max-width: none; height: auto; display: block; opacity: 0.30;
    filter: brightness(0) saturate(100%) invert(50%) sepia(40%) saturate(540%) hue-rotate(3deg) brightness(86%) contrast(92%);
    -webkit-mask-image: radial-gradient(120% 100% at 50% 50%, #000 58%, transparent 95%);
            mask-image: radial-gradient(120% 100% at 50% 50%, #000 58%, transparent 95%);
}
.community-map__inner .nodes { position: absolute; inset: 0; }
.slide-community .community-pad { position: relative; z-index: 3; justify-content: space-between; }
.slide-community .community-head { max-width: 68vw; }
/* leader photos in the nodes — larger so faces read, with name + role labels */
.slide-community .node { width: clamp(58px, 6vw, 90px); height: clamp(58px, 6vw, 90px); }
.node-label {
    position: absolute; top: calc(100% + 7px); left: 50%; transform: translateX(-50%);
    text-align: center; white-space: nowrap; pointer-events: none;
}
.node-name {
    display: block; font-family: var(--serif); font-weight: 500;
    font-size: clamp(0.72rem, 0.95vw, 0.98rem); color: var(--bone); line-height: 1.1;
}
.node-role {
    display: block; font-family: var(--sans); font-size: 0.52rem; letter-spacing: 0.11em;
    text-transform: uppercase; color: var(--gold); margin-top: 3px; font-weight: 600;
    white-space: normal; max-width: 16ch; margin-left: auto; margin-right: auto; line-height: 1.35;
}
.node-company {
    display: block; font-family: var(--serif); font-weight: 500;
    font-size: clamp(0.66rem, 0.85vw, 0.9rem); color: var(--bone); margin-top: 2px; line-height: 1.15;
}

/* Community flags — return to the map after the avatars build in */
.community-flags { position: absolute; inset: 0; pointer-events: none; }
.community-flag {
    position: absolute; width: clamp(27px, 2.7vw, 42px); height: clamp(18px, 1.8vw, 28px);
    background-size: contain; background-repeat: no-repeat; background-position: center;
    border-radius: 3px; box-shadow: 0 3px 12px rgba(80,64,30,0.30);
    opacity: 0; transform: translateY(9px) scale(0.92);
    transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.community-flag.visible { opacity: 1; transform: translateY(0) scale(1); }
.flag-us { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3Crect fill='%23bf0a30' width='60' height='30'/%3E%3Crect fill='white' y='2.31' width='60' height='2.31'/%3E%3Crect fill='white' y='6.92' width='60' height='2.31'/%3E%3Crect fill='white' y='11.54' width='60' height='2.31'/%3E%3Crect fill='white' y='16.15' width='60' height='2.31'/%3E%3Crect fill='white' y='20.77' width='60' height='2.31'/%3E%3Crect fill='white' y='25.38' width='60' height='2.31'/%3E%3Crect fill='%23002868' width='24' height='16.15'/%3E%3C/svg%3E"); }
.flag-gb { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3Crect fill='%23012169' width='60' height='30'/%3E%3Cpath d='M0,0 L60,30 M60,0 L0,30' stroke='white' stroke-width='6'/%3E%3Cpath d='M0,0 L60,30 M60,0 L0,30' stroke='%23C8102E' stroke-width='4'/%3E%3Cpath d='M30,0 V30 M0,15 H60' stroke='white' stroke-width='10'/%3E%3Cpath d='M30,0 V30 M0,15 H60' stroke='%23C8102E' stroke-width='6'/%3E%3C/svg%3E"); }
.flag-sa { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 40'%3E%3Crect fill='%23006C35' width='60' height='40'/%3E%3Ctext x='30' y='24' text-anchor='middle' fill='white' font-size='8' font-family='Arial'%3E%D8%A7%D9%84%D8%B3%D8%B9%D9%88%D8%AF%D9%8A%D8%A9%3C/text%3E%3C/svg%3E"); }
.flag-ae { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3Crect fill='%2300732F' width='60' height='10'/%3E%3Crect y='10' fill='white' width='60' height='10'/%3E%3Crect y='20' fill='black' width='60' height='10'/%3E%3Crect fill='%23FF0000' width='15' height='30'/%3E%3C/svg%3E"); }
.flag-de { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 36'%3E%3Crect fill='black' width='60' height='12'/%3E%3Crect y='12' fill='%23DD0000' width='60' height='12'/%3E%3Crect y='24' fill='%23FFCC00' width='60' height='12'/%3E%3C/svg%3E"); }
.flag-fr { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 40'%3E%3Crect fill='%23002395' width='20' height='40'/%3E%3Crect x='20' fill='white' width='20' height='40'/%3E%3Crect x='40' fill='%23ED2939' width='20' height='40'/%3E%3C/svg%3E"); }
.flag-jp { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 40'%3E%3Crect fill='white' width='60' height='40'/%3E%3Ccircle cx='30' cy='20' r='12' fill='%23BC002D'/%3E%3C/svg%3E"); }
.flag-au { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3Crect fill='%23012169' width='60' height='30'/%3E%3Cpath d='M0,0 L30,15 M30,0 L0,15' stroke='white' stroke-width='3'/%3E%3Cpath d='M15,0 V15 M0,7.5 H30' stroke='white' stroke-width='5'/%3E%3Cpath d='M15,0 V15 M0,7.5 H30' stroke='%23C8102E' stroke-width='3'/%3E%3Ccircle cx='45' cy='20' r='3' fill='white'/%3E%3C/svg%3E"); }
.flag-br { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 42'%3E%3Crect fill='%23009B3A' width='60' height='42'/%3E%3Cpath fill='%23FEDF00' d='M30,5 L55,21 L30,37 L5,21 Z'/%3E%3Ccircle cx='30' cy='21' r='9' fill='%23002776'/%3E%3C/svg%3E"); }
.flag-cn { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 40'%3E%3Crect fill='%23DE2910' width='60' height='40'/%3E%3Cpath fill='%23FFDE00' d='M12,8 l2,6 l-5,-4 h6 l-5,4 z'/%3E%3C/svg%3E"); }

/* PORTFOLIO: logos out of boxes — editorial brand wall on the ivory */
.slide-portfolio .chip { background: transparent; border: none; box-shadow: none; padding: 6px 8px; }
.slide-portfolio .house { gap: 1.3rem; }
.slide-portfolio .house-label { text-align: center; padding-left: 0; }
.slide-portfolio .chip-parent { height: 66px; border-bottom: 1px solid var(--hair-soft); padding-bottom: 1.2rem; }
.slide-portfolio .chip-parent img { max-height: 52px; }
.slide-portfolio .house-kids { gap: 1.6rem; }
.slide-portfolio .chip-kid { height: 40px; }
.slide-portfolio .chip-kid img { max-height: 34px; }
.slide-portfolio .house:hover .chip-parent { transform: none; }
/* uniform monochrome brand wall */
.slide-portfolio .chip img { filter: grayscale(1) contrast(1.05); }
.slide-portfolio .chip-dim img { filter: grayscale(1) brightness(0.42) contrast(1.15); }
/* portfolio heading on two lines */
.slide-portfolio .display { max-width: 30ch; }
/* logos optically balanced to a similar visual size (enlarged) */
.slide-portfolio .chip img { height: auto; width: auto; max-height: 46px; max-width: 300px; object-fit: contain; }
.slide-portfolio .chip-parent { height: 70px; }
.slide-portfolio .chip-kid { height: 66px; }
/* use the extra height now the heading is gone — moderate spacing, block centred, rows aligned */
.slide-portfolio .portfolio-grid { flex: 0 1 auto; min-height: 0; margin: auto 0; }
.slide-portfolio .house-kids { flex: 0 0 auto; justify-content: flex-start; gap: clamp(1.4rem, 8vh, 6rem); }
.slide-portfolio img.logo-sm { max-height: 33px; }   /* wide wordmarks */
.slide-portfolio img.logo-lg { max-height: 66px; }   /* logos with heavy built-in padding */
.slide-portfolio .chip-text { text-align: center; font-size: 1.55rem; }
.slide-portfolio img.logo-invert { filter: grayscale(1) invert(1) contrast(1.05); }
/* URBN → black box, white lettering (like the summary slide) */
.slide-portfolio .chip-black img { filter: grayscale(1) brightness(0.52) contrast(11); }

/* ============================================================
   SUMMARY — "at a glance" recap slide (new light style)
   ============================================================ */
.slide-summary .community-flag { opacity: 1; transform: none; }
.summary-pad { position: relative; z-index: 3; justify-content: space-between; }
.sum-stats { position: absolute; inset: 0; }
.sum-stat { position: absolute; transform: translate(-50%, -50%); text-align: center; white-space: nowrap; }
.sum-num {
    display: block; font-family: var(--serif); font-weight: 500; line-height: 0.95;
    font-size: clamp(1.9rem, 3.2vw, 3rem); letter-spacing: -0.01em;
    background: linear-gradient(160deg, var(--gold-bright), var(--gold-deep));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.sum-lbl { display: block; margin-top: 5px; font-size: 0.56rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bone-dim); font-weight: 600; }
.summary-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.summary-logos { display: flex; align-items: center; gap: clamp(1.4rem, 3vw, 3rem); }
.summary-logos img { max-height: 40px; max-width: 118px; width: auto; object-fit: contain; filter: grayscale(1) contrast(1.05); }
.summary-logos img:nth-child(3) { filter: grayscale(1) brightness(0.52) contrast(11); }
.summary-words {
    font-family: var(--serif); font-style: italic; font-size: clamp(1.05rem, 1.7vw, 1.45rem);
    color: var(--gold); letter-spacing: 0.04em; white-space: nowrap;
}

/* ============================================================
   GLOBAL FRANCHISE MAP — animated covers
   ============================================================ */
.franchise-pad { justify-content: flex-start; }
.franchise-pad .eyebrow { margin-bottom: clamp(1.8rem, 5vh, 3.4rem); }
.franchise-covers {
    flex: 1 1 auto; min-height: 0;
    display: flex; align-items: stretch; justify-content: space-between;
    gap: clamp(1.2rem, 3vw, 3rem);
    padding-bottom: clamp(1rem, 3vh, 2.4rem);
}
.cover-card {
    flex: 1 1 0; min-width: 0;
    display: flex; align-items: center; justify-content: center;
}
.cover-card img {
    max-width: 100%; max-height: 100%; width: auto; height: auto;
    border-radius: 10px;
    box-shadow: 0 24px 60px rgba(0,0,0,0.42);
    transition: transform 0.5s var(--ease);
}
.cover-card:hover img { transform: translateY(-6px); }

/* STORY + WOMEN: dark charcoal fill treatment (readable light type) */
.slide-story .story-media img,
.slide-women .women-media img { filter: saturate(0.85) contrast(1.03) brightness(0.98); }
.slide-story .story-scrim {
    background:
        linear-gradient(90deg, rgba(20,18,13,0.95) 0%, rgba(20,18,13,0.80) 42%, rgba(20,18,13,0.28) 100%),
        linear-gradient(0deg, rgba(20,18,13,0.62), transparent 42%);
}
.slide-women .women-scrim {
    background:
        linear-gradient(0deg, rgba(20,18,13,0.92) 2%, rgba(20,18,13,0.35) 38%, transparent 72%),
        linear-gradient(90deg, rgba(20,18,13,0.5), transparent 55%);
}
.slide-story .eyebrow, .slide-story .eyebrow-light,
.slide-women .eyebrow, .slide-women .eyebrow-light { color: #d8c78a; }
.slide-story .eyebrow-tick, .slide-women .eyebrow-tick { background: #d8c78a; }
.slide-story .story-line { color: #f4efe4; }
.slide-story .story-emph { color: #d8c78a; }
.slide-story .story-final { color: #e7d7a2; }
.slide-story .story-nots li { background: rgba(244,239,228,0.06); border-color: rgba(216,199,138,0.4); color: #f4efe4; }
.slide-women .women-title { color: #f4efe4; }
.slide-women .women-cap { color: #d8c78a; }

/* Chrome inverts to light while a dark fill slide is active */
.deck:has(.slide-story.is-active) .counter,
.deck:has(.slide-women.is-active) .counter { color: rgba(244,239,228,0.62); }
.deck:has(.slide-story.is-active) .counter #curNum,
.deck:has(.slide-women.is-active) .counter #curNum { color: #d8c78a; }
.deck:has(.slide-story.is-active) .dot,
.deck:has(.slide-women.is-active) .dot { background: rgba(244,239,228,0.34); }
.deck:has(.slide-story.is-active) .dot.is-active,
.deck:has(.slide-women.is-active) .dot.is-active { background: #d8c78a; box-shadow: 0 0 12px rgba(216,199,138,0.6); }
.deck:has(.slide-story.is-active) .ctrl,
.deck:has(.slide-women.is-active) .ctrl { color: #f4efe4; border-color: rgba(216,199,138,0.45); background: rgba(244,239,228,0.06); }
.deck:has(.slide-story.is-active) .ctrl:hover,
.deck:has(.slide-women.is-active) .ctrl:hover { color: #20180d; background: #d8c78a; border-color: #d8c78a; }
.deck:has(.slide-story.is-active) .tick::before, .deck:has(.slide-story.is-active) .tick::after,
.deck:has(.slide-women.is-active) .tick::before, .deck:has(.slide-women.is-active) .tick::after { background: rgba(216,199,138,0.5); }
.deck:has(.slide-story.is-active) .progress-track,
.deck:has(.slide-women.is-active) .progress-track { background: rgba(244,239,228,0.25); }
