/* A live cellular sculpture, with all research content outside the canvas. */
.research-explorer {
  --research-ink: #eff3dc; --research-muted: #bbceb8; --research-accent: #d0f89d;
  position: relative; overflow: clip; padding: 80px clamp(24px, 5.5vw, 112px) 32px;
  color: var(--research-ink); background: #092c23;
}
.research-experience { position: relative; max-width: 1760px; margin: auto; isolation: isolate; }
.research-experience::before { content: ""; position: absolute; inset: -80px -10% -20px 15%; z-index: -1; background: radial-gradient(ellipse at 65% 45%, #49693955, #153e291a 45%, transparent 70%); pointer-events: none; }
.research-object { position: absolute; top: 0; right: -4%; width: 76%; height: 100%; touch-action: pan-y; outline-offset: -4px; }
.research-canvas,.research-poster { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.research-poster { object-fit: contain; transform: scale(var(--poster-scale, .87)); }
.research-canvas { opacity: 0; pointer-events: none; }
.research-object[data-transitioning="true"] .research-canvas { mask-image: linear-gradient(90deg,transparent,#000 20%),linear-gradient(transparent,#000 6%,#000 94%,transparent); mask-composite: intersect; }
[data-scene-ready="true"] .research-canvas { opacity: 1; }
[data-scene-ready="true"] .research-poster { visibility: hidden; }
[data-scene-ready="true"] .research-object { cursor: grab; }
[data-scene-ready="true"] .research-object[data-dragging="true"] { cursor: grabbing; }
.research-view-tools { position: absolute; bottom: 16px; right: 7%; display: flex; gap: 20px; align-items: center; z-index: 2; }
.research-view-tools[hidden] { display: none; }
.research-view-tools p { max-width: 24ch; font: 400 12px/1.5 Aspekta, Arial, sans-serif; color: var(--research-muted); }
.research-view-tools > div { display: flex; align-items: center; gap: 6px; }
.research-view-tools button { min-width: 44px; min-height: 44px; padding: 8px; border: 0; border-radius: 24px; background: #06221c99; color: var(--research-ink); font: 400 22px/1 Aspekta, Arial, sans-serif; }
.research-view-tools [data-view-reset] { font-size: 12px; padding-inline: 14px; }
.research-view-tools button:hover { background: #1d4732; }
.research-slides { position: relative; display: grid; gap: 56px; width: 42%; min-height: clamp(500px, 62svh, 680px); pointer-events: none; }
.research-slide { display: flex; align-items: center; min-width: 0; }
.research-slide-copy { padding: 16px 0 56px; pointer-events: auto; }
.research-slide h2 { max-width: 13ch; margin: 0; font: 400 clamp(3rem, 5.2vw, 6rem)/1.02 "Newsreader Story", Georgia, serif; font-optical-sizing: auto; letter-spacing: -.035em; text-wrap: balance; overflow-wrap: anywhere; }
.research-slide p { max-width: 29ch; margin: 28px 0 0; color: #c4d3bd; font: 400 clamp(1.0625rem, 1.3vw, 1.25rem)/1.65 Aspekta, Arial, sans-serif; }
[data-carousel-enhanced="true"] .research-slides { gap: 0; }
[data-carousel-enhanced="true"] .research-slide { grid-area: 1 / 1; visibility: hidden; opacity: 0; transform: translate3d(0, 12px, 0); transition: opacity .4s, transform .6s cubic-bezier(.22,.68,.25,1), visibility 0s .4s; }
[data-carousel-enhanced="true"] .research-slide[data-current="true"] { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.carousel-controls { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px; align-items: center; max-width: 1760px; margin: 24px auto 0; }
.carousel-controls[hidden] { display: none; }
.carousel-topic-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.carousel-topic-tabs > button { position: relative; display: flex; gap: 16px; align-items: center; min-width: 0; min-height: 80px; padding: 12px 12px 18px 0; border: 0; border-bottom: 1px solid #bbceb840; background: none; border-radius: 0; text-align: left; font: 400 14px/1.4 Aspekta, Arial, sans-serif; color: var(--research-muted); }
.carousel-topic-tabs svg { flex: none; width: 44px; height: 44px; fill: none; stroke: currentColor; stroke-width: 1; opacity: .6; }
.carousel-topic-tabs > button[aria-selected="true"],.carousel-topic-tabs > button:hover { color: var(--research-accent); }
.carousel-topic-tabs > button[aria-selected="true"] svg { opacity: 1; }
.carousel-topic-tabs > button::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--research-accent); transform: scaleX(0); transform-origin: left; }
.carousel-topic-tabs > button[aria-selected="true"]::after { transform: scaleX(1); }
[data-autoplay="playing"] .carousel-topic-tabs > button[aria-selected="true"]::after { animation: research-cycle var(--cycle-duration, 8s) linear both; }
@keyframes research-cycle { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.carousel-navigation { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.carousel-navigation > button { flex: none; min-width: 44px; min-height: 44px; padding: 0; border: 1px solid #bbceb850; border-radius: 50%; background: none; color: var(--research-ink); font: 400 24px/1 Aspekta, Arial, sans-serif; }
.carousel-navigation > button:hover { background: #31533855; border-color: var(--research-ink); }
.carousel-navigation > [data-carousel-play] { min-width: 104px; margin-left: 8px; border: 0; border-radius: 0; font-size: 13px; text-decoration: underline; text-underline-offset: 5px; }
.carousel-status { min-width: 3ch; margin: 0; text-align: center; font: 400 13px/1.4 Aspekta, Arial, sans-serif; color: var(--research-muted); }
.research-caption { max-width: 1760px; min-height: 3em; margin: 24px auto 0; font: 400 12px/1.5 Aspekta, Arial, sans-serif; color: var(--research-muted); }
.research-caption a { color: inherit; text-underline-offset: 3px; }
.research-caption a:focus-visible { outline: 2px solid var(--research-accent); outline-offset: 4px; }
.research-explorer button:focus-visible,.research-object:focus-visible,.research-slide:focus-visible { outline: 2px solid var(--research-accent); outline-offset: 5px; }
.research-object:focus-visible { outline-offset: -5px; border-radius: 16px; }
.research-slide:focus-visible { outline-offset: -2px; }
@media(max-width:1100px) {
  .carousel-controls { grid-template-columns: 1fr; gap: 24px; }
  .research-view-tools { right: 5%; }
  .research-view-tools p { max-width: 16ch; }
}
@media(max-width:800px) {
  .research-explorer { padding: 88px 24px 32px; }
  .research-experience { display: flex; flex-direction: column; }
  .research-slides { width: 100%; min-height: 0; order: 0; }
  .research-slide h2 { max-width: 16ch; font-size: clamp(2.5rem, 8vw, 4rem); }
  .research-slide p { max-width: 36ch; margin-top: 20px; font-size: 17px; }
  .research-slide-copy { padding: 0; }
  .research-object { position: relative; right: auto; width: calc(100% + 48px); height: clamp(340px, 82vw, 480px); margin: 16px -24px 0; order: 1; }
  .research-object[data-transitioning="true"] .research-canvas { mask-image: linear-gradient(transparent,#000 6%,#000 94%,transparent); }
  .research-view-tools { bottom: 0; right: 24px; gap: 14px; }
  .research-view-tools p { max-width: 23ch; font-size: 11px; }
  .carousel-topic-tabs { gap: 14px; }
  .carousel-topic-tabs > button { flex-direction: column; align-items: flex-start; gap: 12px; font-size: 12px; padding: 12px 0 18px; }
  .carousel-topic-tabs svg { width: 36px; height: 36px; }
  .carousel-navigation { justify-content: flex-start; }
  .carousel-navigation > [data-carousel-play] { margin-left: auto; }
  .research-caption { margin-top: 20px; }
}
@media(prefers-reduced-motion:reduce) {
  [data-carousel-enhanced="true"] .research-slide { transition: none; transform: none; }
  .carousel-topic-tabs > button::after { animation: none !important; }
}
