/* A compact before/after workbench. The source cards become the record's references. */
.philosophy-art.connection-study {
  --study-paper: #f3f3ef;
  --study-muted: #b6b9ae;
  --study-line: #d4d6cd35;
  --study-ease: cubic-bezier(.22, 1, .36, 1);
  height: auto;
  min-height: 615px;
  margin: 0;
  color: var(--study-paper);
  position: relative;
  align-self: center;
  min-width: 0;
  overflow: visible;
  container-type: inline-size;
}
.connection-topics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.connection-topics button { min-width: 0; border: 1px solid #aab19c70; padding: 12px; min-height: 47px; text-align: center; color: #cbd0c3; font: 600 13px/1.5 var(--sans); transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease; }
.connection-topics button[aria-pressed=true] { color: var(--study-paper); border-color: #d9dcd2; background: #f3f3ef0d; }
.connection-topics button:hover { color: #fff; border-color: #d9dcd2; background: #f3f3ef0d; }
.connection-study button:focus-visible { outline: 2px solid #e7e9e1; outline-offset: 4px; }
.connection-caption { margin: 27px 0 22px; }
.connection-caption h3 { font: 400 clamp(24px, 2.4vw, 31px)/1.12 var(--serif); letter-spacing: -.02em; margin: 0 0 10px; }
.connection-state { display: flex; gap: 8px; align-items: center; color: var(--study-muted); font-size: 11px; }
.connection-state:before { content: ''; width: 5px; height: 5px; border: 1px solid #b8bab2; border-radius: 50%; }
.is-connected .connection-state:before { background: var(--study-paper); border-color: var(--study-paper); }
.connection-workbench { position: relative; display: grid; min-height: 345px; isolation: isolate; }
.connection-workbench:before { content: ''; position: absolute; inset: -10px -10px 15px; pointer-events: none; background: radial-gradient(ellipse at 50% 50%, #f5f6ed06, transparent 70%); }
.connection-sources { position: absolute; inset: 0; }
.connection-source { position: absolute; z-index: 2; width: 79%; height: 91px; overflow: hidden; padding: 12px 16px; border: 1px solid #7e83754d; background: linear-gradient(120deg, #2b2e27, #21241e); box-shadow: 0 8px 24px #00000015; transition: left 650ms var(--study-ease), top 650ms var(--study-ease), width 650ms var(--study-ease), height 650ms var(--study-ease), padding 650ms var(--study-ease), border-color 650ms ease, box-shadow 650ms ease; }
.connection-source:nth-child(1) { top: 0; left: 0; }
.connection-source:nth-child(2) { top: 104px; left: 21%; }
.connection-source:nth-child(3) { top: 208px; left: 7%; }
.connection-source-heading { display: flex; justify-content: space-between; gap: 8px; font: 400 10px/1.6 var(--sans); letter-spacing: .02em; color: #b9beb0; white-space: nowrap; }
.connection-source-index { color: #858e7b; font-variant-numeric: tabular-nums; transition: opacity 150ms ease; }
.connection-source-detail { display: grid; gap: 3px; margin-top: 7px; transition: opacity 170ms ease, transform 400ms var(--study-ease); }
.connection-source-detail strong { color: #eff0e9; font: 400 14px/1.35 var(--sans); }
.connection-source-detail > span { color: #b9beb0; font: 400 11px/1.55 var(--sans); }
.is-connected .connection-source { top: 0; left: calc(var(--source-order) * 34%); width: 32%; height: 40px; padding: 11px 12px; border-color: #aab19c52; box-shadow: none; }
.is-connected .connection-source-heading { color: #e2e6d8; }
.is-connected .connection-source-index { opacity: 0; }
.is-connected .connection-source-detail { opacity: 0; transform: translateY(-5px); pointer-events: none; }
.connection-lines { position: absolute; top: 40px; left: 0; width: 100%; height: 50px; overflow: visible; }
.connection-lines path { fill: none; stroke: #b6bda5; stroke-width: .9; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; transition: stroke-dashoffset 550ms var(--study-ease), opacity 200ms ease; }
.is-connected .connection-lines path { opacity: .6; stroke-dashoffset: 0; transition-delay: 220ms; }
.connection-record { position: relative; grid-area: 1 / 1; align-self: start; margin-top: 88px; min-width: 0; opacity: 0; transform: translateY(16px); padding: 18px 20px 15px; background: linear-gradient(135deg, #34382e, #252a21); border: 1px solid #c4ccb365; box-shadow: 0 15px 45px #00000017, inset 0 1px 0 #f6ffdb08; pointer-events: none; transition: opacity 180ms ease, transform 480ms var(--study-ease); }
.is-connected .connection-record { opacity: 1; transform: none; pointer-events: auto; transition-delay: 220ms; }
.connection-record-top { display: flex; align-items: baseline; justify-content: flex-start; gap: 12px; font-size: 10px; line-height: 1.6; color: #b8bfac; }
.connection-record-status { text-align: left; color: #e2e6d7; }
.connection-record h4 { margin: 8px 0 13px; font: 400 29px/1.05 var(--serif); letter-spacing: -.015em; }
.connection-record dl { margin: 0; }
.connection-record dl > div { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 11px; border-top: 1px solid #b9c4a625; padding: 8px 0; font-size: 11px; line-height: 1.5; }
.connection-record dt { color: #b8c0aa; }
.connection-record dd { color: #eff1e7; margin: 0; }
.connection-record-trail { display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; color: #b9c3ac; font-size: 10px; line-height: 1.6; }
.connection-record-trail svg { flex: 0 0 14px; margin-top: 1px; fill: none; stroke: currentColor; stroke-width: 1; }
.connection-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 20px; margin-top: 18px; }
.connection-disclaimer { color: var(--study-muted); font: 400 11px/1.5 var(--sans); }
.connection-toggle { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; border: 1px solid #b8bfab; padding: 12px 16px; min-height: 48px; color: var(--study-paper); font: 600 13px/1.5 var(--sans); transition: border-color 180ms ease, background-color 180ms ease; }
.connection-toggle:hover { border-color: #f3f3ef; background: #f3f3ef0d; }
.connection-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1; flex: 0 0 auto; transition: transform 220ms ease; }
.connection-toggle:hover svg { transform: translateX(3px); }
.is-connected .connection-toggle svg { transform: rotate(180deg); }
.is-connected .connection-toggle:hover svg { transform: rotate(180deg) translateX(3px); }
.connection-study .connection-insight { margin: 9px 0 0; min-height: 3.4em; max-width: 475px; color: #c5ceba; font: 400 12px/1.7 var(--sans); }
.connection-study .connection-benefit { margin: 11px 0 0; min-height: 2.6em; color: #f0f2e9; font: 400 18px/1.3 var(--serif); visibility: hidden; opacity: 0; transition: opacity 220ms ease; }
.is-connected .connection-benefit { visibility: visible; opacity: 1; }
.connection-announcement { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.philosophy-copy .philosophy-invitation { font-size: 12px; color: #b8c0ad; }
@container (max-width: 390px) {
  .connection-topics { gap: 8px; }
  .connection-topics button { padding-inline: 8px; font-size: 11px; }
  .connection-caption h3 { font-size: 27px; min-height: 2.24em; }
  .connection-source { padding-inline: 12px; width: 87%; height: 104px; }
  .connection-source:nth-child(2) { left: 13%; top: 116px; }
  .connection-source:nth-child(3) { left: 4%; top: 232px; }
  .connection-source-detail strong { font-size: 13px; }
  .connection-source-detail > span { font-size: 11px; }
  .is-connected .connection-source { top: 0; left: calc(var(--source-order) * 34%); width: 32%; height: 40px; padding: 11px 9px; }
  .connection-source-index { display: none; }
  .connection-record { padding: 15px 14px; }
  .connection-record h4 { font-size: 27px; }
  .connection-record-top { font-size: 10px; gap: 8px; }
  .connection-record dl > div { grid-template-columns: 55px minmax(0, 1fr); font-size: 11px; }
  .connection-workbench { min-height: 390px; }
  .connection-study .connection-insight { min-height: 5.1em; }
}
@media (max-width: 760px) {
  .philosophy-art.connection-study { margin-top: 18px; order: 2; min-height: 625px; }
  .connection-caption h3 { font-size: 30px; }
}
@media (hover: none), (pointer: coarse) {
  .connection-topics button:hover { color: var(--study-muted); }
  .connection-topics button[aria-pressed=true] { color: var(--study-paper); }
  .connection-toggle:hover svg { transform: none; }
  .is-connected .connection-toggle:hover svg { transform: rotate(180deg); }
}
@media (prefers-reduced-motion: reduce) {
  .connection-study *, .connection-study *:before { transition: none !important; animation: none !important; }
}
@media (forced-colors: active) {
  .connection-study { --study-paper: CanvasText; --study-muted: CanvasText; --study-line: CanvasText; }
  .connection-source, .connection-record { background: Canvas; border-color: CanvasText; }
  .connection-study button, .connection-study span, .connection-study strong, .connection-study dt, .connection-study dd, .connection-study .connection-insight, .connection-study .connection-benefit { color: CanvasText; }
  .connection-topics button[aria-pressed=true] { border-color: Highlight; }
  .connection-lines path { stroke: CanvasText; }
  .connection-study button:focus-visible { outline-color: Highlight; }
}
