/* Shared, licensed Gradient Carousel integration. All rules are scoped to the catalogues. */
.gradient-carousel {
  --gc-paper:#e9e4d8; --gc-ink:#202923; --gc-muted:#526056; --gc-stage:#18211d;
  --gc-accent:#b7c5ad; --gc-line:rgba(32,41,35,.22); --gc-card-width:clamp(290px,28vw,370px);
  --gc-card-height:530px; --gc-image-height:300px;
  width:100%; min-width:0; color:var(--gc-paper);
  font-family:var(--fh-font-body,var(--sans,Inter,Arial,sans-serif));
}
.gradient-carousel * {box-sizing:border-box}
#story-grid.story-grid,#peopleGrid.bio-grid {display:block;width:100%;max-width:100%;min-width:0;padding:0;overflow:visible;scroll-snap-type:none;border:0;}
#story-grid:focus,#peopleGrid:focus {outline:none}
.gc-controls {display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 15px}
.gc-instruction {max-width:650px;margin:0;color:inherit;font-size:14px;line-height:1.6}
.gc-navigation {display:flex;flex:0 0 auto;align-items:center;gap:8px}
.gc-counter {min-width:72px;margin-right:9px;text-align:right;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.gc-nav {display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid currentColor;border-radius:2px;background:transparent;color:inherit;font:22px/1 Arial,sans-serif;cursor:pointer}
.gc-nav:hover:not(:disabled) {background:var(--gc-paper);color:var(--gc-ink)}
.gc-nav:disabled {opacity:.35;cursor:default}
.gc-stage {position:relative;isolation:isolate;width:100%;height:620px;overflow:hidden;border:1px solid rgba(233,228,216,.2);border-radius:3px;background:var(--gc-stage);touch-action:pan-y;user-select:none;cursor:grab;perspective:1800px;perspective-origin:50% 50%;}
.gc-stage.is-dragging {cursor:grabbing}
.gc-background {position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:1}
.gc-track {position:absolute;inset:0;z-index:1;pointer-events:none;transform-style:preserve-3d}
.gc-card {position:absolute;top:50%;left:50%;width:var(--gc-card-width);height:var(--gc-card-height);overflow:hidden;border:1px solid rgba(233,228,216,.28);border-radius:3px;background:var(--gc-paper);color:var(--gc-ink);transform:translate(-50%,-50%);transform-origin:center center;backface-visibility:hidden;will-change:transform;pointer-events:auto;box-shadow:0 18px 34px rgba(0,0,0,.2)}
.gc-card-link {display:block;width:100%;height:100%;padding:0;color:inherit;text-decoration:none!important;cursor:pointer}
.gc-card-link:focus-visible {outline:3px solid var(--gc-accent);outline-offset:-4px}
.gc-stage:focus-visible,.gc-nav:focus-visible {outline:3px solid var(--gc-accent);outline-offset:4px}
.gc-figure {display:flex;flex-direction:column;height:100%;min-height:0;margin:0}
.gc-artwork {position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 var(--gc-image-height);width:100%;height:var(--gc-image-height);min-height:0;overflow:hidden;background:#111916;border-bottom:1px solid var(--gc-line)}
.gc-artwork img {display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:var(--gc-object-fit,contain);object-position:var(--gc-object-position,50% 50%);pointer-events:none;user-select:none;-webkit-user-drag:none;filter:none;transform:none}
.gc-image-number {position:absolute;top:12px;left:12px;padding:4px 7px;border:1px solid rgba(233,228,216,.3);border-radius:2px;background:var(--gc-stage);color:var(--gc-paper);font-size:11px;line-height:1.2;font-variant-numeric:tabular-nums}
.gc-image-unavailable {display:grid;place-items:center;padding:24px;color:var(--gc-paper);text-align:center;font-size:14px;line-height:1.6}
.gc-image-placeholder {color:#8c9a88;font:400 60px/1 Georgia,serif}
.gc-caption {display:flex;flex:1;flex-direction:column;min-height:0;padding:18px 20px 16px;overflow:hidden;background:var(--gc-paper);color:var(--gc-ink)}
.gc-card-heading {display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 9px;color:var(--gc-muted);font-size:11px;line-height:1.45;font-variant-numeric:tabular-nums}
.gc-card-heading>span:first-child {min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.gc-card-heading>span:last-child {flex-shrink:0;white-space:nowrap}
.gc-title {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0 0 9px;overflow:hidden;color:var(--gc-ink);font:400 clamp(23px,2.1vw,29px)/1.14 Didot,'Bodoni MT',var(--fh-font-display,Georgia),serif;letter-spacing:-.02em}
.gc-summary {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0 0 8px;overflow:hidden;color:#38463e;font-size:13px;line-height:1.55}
.gc-cartel {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;margin:0 0 8px;overflow:hidden;color:var(--gc-muted);font-size:11px;line-height:1.4}
.gc-card-footer {display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:11px;border-top:1px solid var(--gc-line);color:var(--gc-ink);font-size:12px;line-height:1.35}
.gc-card-footer>span:last-child {font-size:20px}
.gc-status-panel {padding:38px 24px;border:1px solid currentColor;text-align:center;font-size:15px;line-height:1.6}
.gc-retry {margin:10px 0;padding:9px 18px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;cursor:pointer}
/* The biography catalogue uses the same evergreen / paper exhibition language. */
.gc-biographies {--gc-card-height:540px;--gc-image-height:345px;--gc-card-width:clamp(280px,26vw,345px);color:var(--fh-text,#202923)}
.gc-biographies .gc-stage {height:630px}
.gc-biographies .gc-title {font-size:clamp(24px,2.1vw,29px)}
.gc-biographies .gc-summary {-webkit-line-clamp:2}
.gc-biographies .gc-cartel {display:none} /* Complete source credits remain in the life dossier. */
.fh-biographies .bio-results-line {margin-bottom:16px}
/* Do not keep the former featured accordion beside a second portrait catalogue. */
.fh-biographies .bio-gallery-section {display:none}
/* Consistent full-image framing in the existing life dossier, too. */
.fh-biographies .bio-dossier-image {display:flex;align-items:center;justify-content:center;background:#18211d;overflow:hidden}
.fh-biographies .bio-dossier-image img {width:100%;height:100%;object-fit:contain!important;object-position:50% 50%!important;transform:none!important}
/* One instruction line, not the old hint plus the component hint. */
.story-sort-bar>.catalog-scroll-hint {display:none}
#catalog .story-sort-bar {margin-bottom:18px}
@media(max-width:760px){
  .gradient-carousel{--gc-card-width:min(68vw,340px);--gc-card-height:490px;--gc-image-height:274px}
  .gc-stage{height:570px}.gc-biographies{--gc-card-height:500px;--gc-image-height:310px}.gc-biographies .gc-stage{height:580px}
  .gc-controls{align-items:flex-start;gap:14px}.gc-instruction{font-size:13px}.gc-counter{min-width:55px;margin-right:2px;font-size:12px}.gc-nav{width:38px;height:38px}
}
@media(max-width:480px){
  .gradient-carousel{--gc-card-width:min(70vw,300px);--gc-card-height:464px;--gc-image-height:252px}
  .gc-stage{height:530px}.gc-biographies{--gc-card-height:484px;--gc-image-height:298px}.gc-biographies .gc-stage{height:550px}
  .gc-controls{flex-wrap:wrap;align-items:center;gap:10px}.gc-instruction{flex:1 1 175px;max-width:100%;font-size:12px}.gc-navigation{margin-left:auto}
  .gc-caption{padding:15px 15px 13px}.gc-title{font-size:23px}.gc-summary{font-size:12px}.gc-card-heading{font-size:10px;gap:7px}.gc-card-footer{font-size:11px}.gc-image-number{top:9px;left:9px}
  .gc-biographies .gc-title{font-size:23px}
}
@media(prefers-reduced-motion:reduce){.gradient-carousel *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.gc-card{will-change:auto}}

/* Repair release: dark toolbar text on the light biography index. */
.fh-biographies .gc-controls { color:#233732; }
.fh-biographies .gc-controls button { color:#233732; border-color:rgba(35,55,50,.3); }
.fh-biographies .gc-controls button:hover { background:rgba(35,55,50,.08); }
.fh-biographies .gc-instruction, .fh-biographies .gc-counter { color:#405650; }
#catalog .gc-fallback { display:grid;grid-auto-flow:column;grid-auto-columns:min(78vw,300px);gap:20px;overflow-x:auto;padding:14px 0 30px;scroll-snap-type:x mandatory; }
#catalog .gc-fallback-link { display:flex;flex-direction:column;justify-content:space-between;gap:22px;min-height:185px;padding:24px;color:#efe6d2;background:#112b36;border:1px solid #45616a;text-decoration:none;scroll-snap-align:center; }
#catalog .gc-fallback-link strong {font-size:1.4rem;line-height:1.25;}
#catalog .gc-fallback-date {font-size:.8rem;color:#d3b779;}
#catalog .gc-fallback-link:focus-visible {outline:2px solid #d3b779;outline-offset:-4px;}
