/* Three complete portrait cards per page, with manual navigation. */
.family-journey.family-carousel{padding:88px 0 60px;scroll-margin-top:100px;background:var(--chapter-pale,#edf4ff)}
.family-carousel .family-stage{width:min(1200px,calc(100% - 96px));max-width:1200px;padding:0;margin:auto;overflow:visible}
.family-carousel .family-editorial{margin-bottom:40px}
.family-carousel .family-heading h2{margin:0;font-size:48px;line-height:1.12}
.family-carousel .family-heading h2 br{display:none}
.family-carousel .family-brand-phrase{white-space:nowrap}
.family-carousel .family-heading-logo{display:inline-block;width:6em;height:auto;vertical-align:-.9em;overflow:visible}
.family-carousel .family-window{display:grid;overflow:visible;padding:12px;margin:-12px;position:relative}
.family-carousel .family-window.is-switching{overflow:clip;overflow-clip-margin:36px}
.family-carousel .family-cards{grid-area:1/1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;perspective:none;margin:0;align-items:stretch}
.family-carousel .family-cards[hidden]{display:none}
.family-carousel .family-card{height:auto;min-height:430px;padding:26px;transform-origin:50% 85%;border-radius:16px}
/* Wrapped names and quotes must retain their full height inside the flex card. */
.family-carousel .family-card > *{flex-shrink:0}
.family-carousel .family-card-one{transform:translateY(8px) rotate(-2.2deg)}
.family-carousel .family-card-two{transform:translateY(-18px);z-index:2;box-shadow:0 24px 42px -24px #10265a66}
.family-carousel .family-card-three{transform:translateY(8px) rotate(2.2deg)}
.family-carousel .family-editorial{margin-bottom:52px}
.family-journey.family-carousel.is-family-scene{overflow:clip}
.family-carousel[data-reading="false"] .family-controls{opacity:0;visibility:hidden}
.family-carousel .family-person{margin-bottom:24px}
.family-carousel .family-card blockquote{font-size:28px;line-height:1.2;min-height:0}
.family-carousel .family-card-two blockquote{font-size:32px}
.family-carousel .family-context{font-size:14px;line-height:1.6;margin:22px 0 24px}
.family-carousel .family-carousel-shell{position:relative}
.family-carousel .family-controls{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none;opacity:0;transition:opacity .18s ease;z-index:3}
.family-carousel .family-controls button{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer;pointer-events:none;box-shadow:0 4px 16px #10265a18;transition:background .18s,color .18s}
.family-carousel .family-controls button[data-family-step="-1"]{left:-22px}
.family-carousel .family-controls button[data-family-step="1"]{right:-22px}
.family-carousel .family-carousel-shell:hover .family-controls,.family-carousel .family-controls:has(button:focus-visible){opacity:1}
.family-carousel .family-carousel-shell:hover .family-controls button,.family-carousel .family-controls:has(button:focus-visible) button{pointer-events:auto}
.family-carousel .family-controls button:hover{background:var(--ink);color:#fff}
.family-carousel .family-controls button[aria-disabled="true"]{cursor:wait;opacity:.5}
.family-carousel .family-controls button:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.family-carousel .family-controls svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.family-carousel .family-footnote{margin-top:18px}
.family-carousel .family-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(prefers-reduced-motion:reduce){.family-carousel .family-controls,.family-carousel .family-controls button{transition:none}}
/* Stacked cards keep the complete story readable on narrow screens. */
@media(max-width:1000px){
 .family-carousel .family-stage{width:calc(100% - var(--page-gutter)*2)}
 .family-carousel .family-card{height:auto;min-height:460px}
}
@media(max-width:900px){
 .family-carousel .family-heading h2{font-size:36px}
 .family-carousel .family-cards{grid-template-columns:1fr;gap:24px}
 .family-carousel .family-card{height:auto;min-height:380px;transform:none}
 .family-carousel .family-person{flex-direction:row;align-items:center}
 .family-carousel .family-controls{position:relative;inset:auto;justify-content:flex-end;gap:12px;opacity:1;margin-top:28px}
 .family-carousel .family-controls button{position:static;transform:none;pointer-events:auto}
 .family-carousel .family-editorial{display:block;margin-bottom:32px}
 .family-carousel .family-source{margin-top:16px}
}
