/* BPG v9.3.0 — Complete Prophecy Timeline
   Built from Daniel 2 v9.0.15 visual method:
   approved two-column layout, white cards, art panel, HTML/CSS markers.
*/

.timeline-hero-note {
  max-width: 860px;
}

.timeline-clean-visual-card,
.timeline-event-card,
.timeline-note-card,
.timeline-study-card,
.timeline-path-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
}

.timeline-clean-visual-card {
  padding: clamp(1rem, 2vw, 1.35rem);
  border-radius: var(--radius-lg);
  box-shadow: 0 18px 40px rgba(17, 17, 17, 0.06);
}

.timeline-clean-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.96fr) minmax(460px, 1.1fr);
  gap: clamp(1rem, 1.8vw, 1.25rem);
  align-items: stretch;
  grid-auto-rows: 1fr;
}

.timeline-card-stack {
  display: grid;
  gap: 0.85rem;
}

.timeline-event-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
  min-height: 104px;
  padding: clamp(0.88rem, 1.45vw, 1.08rem);
  border-radius: var(--radius-md);
}

.timeline-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin-top: 0.12rem;
  border-radius: 999px;
  background: var(--color-black);
  color: var(--color-white);
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1;
}

.timeline-event-card .eyebrow {
  margin-bottom: 0.18rem;
}

.timeline-event-card h3 {
  margin-bottom: 0.18rem;
  font-size: clamp(1.15rem, 1.75vw, 1.42rem);
  line-height: 1.08;
}

.timeline-event-card p {
  margin-bottom: 0;
  color: var(--color-muted);
  line-height: 1.35;
}

.timeline-ref-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.36rem;
  margin-top: 0.48rem;
}

.timeline-ref {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 0.12rem 0.56rem;
  border: 1px solid rgba(29,29,31,.09);
  border-radius: 999px;
  background: var(--color-light);
  color: var(--color-black);
  font-size: 0.78rem;
  font-weight: 650;
}

.timeline-accent-gold { box-shadow: inset 5px 0 0 #d7ae4b; }
.timeline-accent-blue { box-shadow: inset 5px 0 0 #7f9cac; }
.timeline-accent-bronze { box-shadow: inset 5px 0 0 #b98053; }
.timeline-accent-silver { box-shadow: inset 5px 0 0 #aeb4bb; }
.timeline-accent-black { box-shadow: inset 5px 0 0 #000; }
.timeline-accent-green { box-shadow: inset 5px 0 0 #6f8f72; }

.timeline-column-art {
  position: relative;
  display: grid;
  grid-template-columns: clamp(3.6rem, 5vw, 5rem) minmax(0, 1fr);
  align-content: stretch;
  justify-items: center;
  align-items: stretch;
  margin: 0;
  min-height: 100%;
  height: 100%;
  padding: 0;
  background:
    radial-gradient(circle at 55% 12%, rgba(215,174,75,.11), transparent 30%),
    radial-gradient(circle at 55% 76%, rgba(127,156,172,.10), transparent 36%),
    transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}

.timeline-column-stage {
  display: grid;
  align-content: stretch;
  justify-items: center;
  align-items: stretch;
  min-height: 100%;
  height: 100%;
  width: 100%;
  overflow: visible;
}

.timeline-column-stage picture,
.timeline-column-stage img {
  display: block;
}

.timeline-column-stage img {
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  margin: 0 auto;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.12));
}

.timeline-marker-rail {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-rows: repeat(8, 1fr);
  align-items: center;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.timeline-marker {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.timeline-marker-dot {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1;
  box-shadow: 0 0 0 6px rgba(255,255,255,.92), 0 8px 18px rgba(17,17,17,.12);
}

.timeline-marker-line {
  display: block;
  flex: 1 1 auto;
  min-width: 1.9rem;
  height: 2px;
  margin-left: 0.48rem;
  background: linear-gradient(90deg, rgba(29,29,31,.42), rgba(29,29,31,.12));
}

.timeline-marker-line::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  margin-left: auto;
  margin-top: -2px;
  border-radius: 999px;
  background: rgba(29,29,31,.38);
}

/* Desktop fine tuning controls.
   Use these live:
   height: 115% scales like Daniel 2 v9.0.15
   transform controls vertical/horizontal placement
*/
@media (min-width: 1041px) {
  .timeline-clean-layout {
    grid-template-columns: minmax(0, 0.96fr) minmax(460px, 1.1fr);
    align-items: stretch;
  }

  .timeline-column-art {
    min-height: 100%;
  }

  .timeline-column-stage img {
    height: 115%;
    max-height: 1280px;
    transform: translate(0px, -6px);
  }

  .timeline-marker-rail {
    transform: translateY(-6px);
  }
}

.timeline-summary-grid,
.timeline-study-grid {
  display: grid;
  gap: 1rem;
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.timeline-summary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.timeline-study-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.timeline-note-card,
.timeline-study-card,
.timeline-path-card {
  padding: clamp(1.1rem, 2vw, 1.35rem);
  border-radius: var(--radius-lg);
}

.timeline-note-card h2,
.timeline-path-card h2 {
  margin-bottom: 0.7rem;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.05;
}

.timeline-note-card p,
.timeline-study-card p,
.timeline-path-card p {
  color: var(--color-muted);
}

.timeline-study-card {
  display: block;
}

.timeline-study-card h3 {
  margin-bottom: 0.4rem;
  font-size: 1.25rem;
}

.timeline-study-card p {
  margin-bottom: 0;
  font-size: 0.96rem;
}

@media (max-width: 1040px) {
  .timeline-clean-layout {
    grid-template-columns: 1fr;
  }

  .timeline-column-art {
    order: -1;
    height: auto;
    padding: 0.5rem 0;
  }

  .timeline-column-stage img {
    width: min(100%, 380px);
    height: auto;
    max-height: none;
  }

  .timeline-marker-rail {
    min-height: 680px;
  }

  .timeline-summary-grid,
  .timeline-study-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .timeline-clean-visual-card {
    padding: 0.75rem;
    border-radius: 24px;
  }

  .timeline-column-art {
    grid-template-columns: 3.25rem minmax(0, 1fr);
    border-radius: 20px;
  }

  .timeline-column-stage img {
    width: min(100%, 310px);
    height: auto;
    max-height: none;
  }

  .timeline-marker-rail {
    min-height: 560px;
  }

  .timeline-marker-dot {
    width: 1.72rem;
    height: 1.72rem;
    font-size: 0.78rem;
  }

  .timeline-marker-line {
    min-width: 1.15rem;
    margin-left: 0.32rem;
  }

  .timeline-event-card {
    min-height: 0;
    border-radius: 18px;
  }

  .timeline-note-card,
  .timeline-study-card,
  .timeline-path-card {
    border-radius: 22px;
  }
}


/* =========================================================
   BPG v9.3.1 — Timeline Column Prep Handoff
   Use the Daniel 2 v9.0.15 method:
   - artwork as transparent/clean visual
   - no visible box behind the column
   - image centered by stage
   - size controlled by height/max-height/transform
   - HTML/CSS marker numbers and lines
   Fine tune here first, then save as v9.4.0 when approved.
   ========================================================= */

.timeline-column-art {
  position: relative;
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  align-content: stretch;
  justify-items: center;
  align-items: stretch;
  min-height: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible;
}

.timeline-column-art::before,
.timeline-column-art::after,
.timeline-column-stage::before,
.timeline-column-stage::after {
  display: none !important;
  content: none !important;
}

.timeline-column-stage {
  display: grid;
  align-content: stretch;
  justify-items: center;
  align-items: stretch;
  min-height: 100%;
  height: 100%;
  width: 100%;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.timeline-column-stage picture,
.timeline-column-stage img {
  display: block;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.timeline-column-stage img {
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.12));
}

.timeline-marker-rail {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-rows: repeat(8, 1fr);
  align-items: center;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.timeline-marker {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.timeline-marker-dot {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1;
  box-shadow:
    0 0 0 6px rgba(255, 255, 255, 0.92),
    0 8px 18px rgba(17, 17, 17, 0.12);
}

.timeline-marker-line {
  display: block;
  flex: 1 1 auto;
  min-width: 1.9rem;
  height: 2px;
  margin-left: 0.48rem;
  background: linear-gradient(90deg, rgba(29, 29, 31, 0.42), rgba(29, 29, 31, 0.12));
}

.timeline-marker-line::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  margin-left: auto;
  margin-top: -2px;
  border-radius: 999px;
  background: rgba(29, 29, 31, 0.38);
}

/* DESKTOP LIVE TUNING CONTROLS */
@media (min-width: 1041px) {
  .timeline-clean-layout {
    grid-template-columns: minmax(0, 0.96fr) minmax(460px, 1.1fr);
    align-items: stretch;
  }

  .timeline-column-art {
    min-height: 100%;
    grid-template-columns: 5rem minmax(0, 1fr);
  }

  .timeline-column-stage img {
    height: 115%;
    max-height: 1280px;
    transform: translate(0px, -6px);
  }

  .timeline-marker-rail {
    transform: translateY(-6px);
  }
}

/* TABLET */
@media (max-width: 1040px) {
  .timeline-clean-layout {
    grid-template-columns: 1fr;
  }

  .timeline-column-art {
    order: -1;
    grid-template-columns: 4rem minmax(0, 1fr);
    height: auto;
    min-height: 720px;
    padding: 0.5rem 0;
  }

  .timeline-column-stage img {
    width: min(100%, 380px);
    height: auto;
    max-height: none;
    transform: translate(0px, 0px);
  }

  .timeline-marker-rail {
    min-height: 680px;
    transform: translateY(0px);
  }
}

/* IPHONE */
@media (max-width: 680px) {
  .timeline-column-art {
    grid-template-columns: 3.25rem minmax(0, 1fr);
    min-height: 600px;
  }

  .timeline-column-stage img {
    width: min(100%, 310px);
    height: auto;
    max-height: none;
    transform: translate(0px, 0px);
  }

  .timeline-marker-rail {
    min-height: 560px;
  }

  .timeline-marker-dot {
    width: 1.72rem;
    height: 1.72rem;
    font-size: 0.78rem;
  }

  .timeline-marker-line {
    min-width: 1.15rem;
    margin-left: 0.32rem;
  }

  .timeline-marker-line::after {
    width: 5px;
    height: 5px;
    margin-top: -1.5px;
  }
}

/* =========================================================
   BPG v9.3.3 REVIEW — Timeline Column Daniel 2 Method
   Narrow layer carried forward from v9.3.2 and applied on top of proven v9.3.1.
   Purpose:
   - keep Daniel 2 statue untouched
   - use transparent/cropped column artwork like the statue asset
   - center the column artwork independently from markers
   - overlay HTML/CSS marker rail and connector lines like Daniel 2
   - leave live tuning controls in one obvious place
   ========================================================= */

.timeline-column-art {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
  align-content: stretch;
  justify-items: center;
  align-items: stretch;
  min-height: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible;
}

.timeline-column-stage {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  align-content: center;
  justify-items: center;
  align-items: center;
  width: 100%;
  min-height: 100%;
  height: 100%;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.timeline-column-stage picture,
.timeline-column-stage img {
  display: block;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.timeline-column-stage img {
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.12));
}

.timeline-marker-rail {
  position: absolute;
  z-index: 5;
  top: 6%;
  bottom: 5%;
  left: clamp(0.35rem, 1.3vw, 1rem);
  width: clamp(3.4rem, 5vw, 4.8rem);
  display: grid;
  grid-template-rows: repeat(8, 1fr);
  align-items: center;
  pointer-events: none;
}

.timeline-marker {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.timeline-marker-dot {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1;
  box-shadow:
    0 0 0 6px rgba(255, 255, 255, 0.92),
    0 8px 18px rgba(17, 17, 17, 0.12);
}

.timeline-marker-line {
  display: block;
  flex: 1 1 auto;
  min-width: 1.75rem;
  height: 2px;
  margin-left: 0.48rem;
  background: linear-gradient(90deg, rgba(29, 29, 31, 0.42), rgba(29, 29, 31, 0.12));
}

.timeline-marker-line::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  margin-left: auto;
  margin-top: -2px;
  border-radius: 999px;
  background: rgba(29, 29, 31, 0.38);
}

/* DESKTOP LIVE TUNING CONTROLS — adjust here first */
@media (min-width: 1041px) {
  .timeline-clean-layout {
    grid-template-columns: minmax(0, 0.96fr) minmax(460px, 1.1fr);
    align-items: stretch;
  }

  .timeline-column-art {
    min-height: 100%;
  }

  .timeline-column-stage img {
    height: 118%;
    max-height: 1320px;
    transform: translate(0px, -10px);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: clamp(0.35rem, 1.3vw, 1rem);
    width: clamp(3.4rem, 5vw, 4.8rem);
    transform: translateY(-10px);
  }
}

@media (max-width: 1040px) {
  .timeline-column-art {
    order: -1;
    height: auto;
    min-height: 720px;
    padding: 0.5rem 0;
  }

  .timeline-column-stage img {
    width: min(100%, 380px);
    height: auto;
    max-height: none;
    transform: translate(0px, 0px);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: calc(50% - 190px);
    width: 4rem;
    transform: translateY(0px);
  }
}

@media (max-width: 680px) {
  .timeline-column-art {
    min-height: 600px;
  }

  .timeline-column-stage img {
    width: min(100%, 310px);
    height: auto;
    max-height: none;
    transform: translate(0px, 0px);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: calc(50% - 155px);
    width: 3.35rem;
  }

  .timeline-marker-dot {
    width: 1.72rem;
    height: 1.72rem;
    font-size: 0.78rem;
  }

  .timeline-marker-line {
    min-width: 1.15rem;
    margin-left: 0.32rem;
  }

  .timeline-marker-line::after {
    width: 5px;
    height: 5px;
    margin-top: -1.5px;
  }
}

/* =========================================================
   BPG v9.3.4 REVIEW — Timeline Column Actual Daniel 2 Method
   Applied after v9.3.3 review based on live check.
   Purpose:
   - make the column artwork behave like the Daniel 2 statue
   - keep transparent artwork only, no visual stage/background box
   - remove nested-stage sizing conflict by allowing the image to size from the figure
   - center and enlarge the column while leaving marker rail CSS-adjustable
   ========================================================= */

.timeline-column-art {
  position: relative;
  display: grid;
  align-content: stretch;
  justify-items: center;
  align-items: stretch;
  margin: 0;
  min-height: 100%;
  height: 100%;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.timeline-column-stage,
.timeline-column-stage picture {
  display: contents;
}

.timeline-column-stage img {
  display: block;
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.12));
}

.timeline-marker-rail {
  position: absolute;
  z-index: 5;
  top: 6%;
  bottom: 5%;
  left: clamp(0.35rem, 1.3vw, 1rem);
  width: clamp(3.4rem, 5vw, 4.8rem);
  display: grid;
  grid-template-rows: repeat(8, 1fr);
  align-items: center;
  pointer-events: none;
}

/* DESKTOP LIVE TUNING CONTROLS — match Daniel 2 statue logic first */
@media (min-width: 1041px) {
  .timeline-clean-layout {
    grid-template-columns: minmax(0, 0.96fr) minmax(460px, 1.1fr);
    align-items: stretch;
  }

  .timeline-column-art {
    min-height: 100%;
    height: 100%;
  }

  .timeline-column-stage img {
    height: 122%;
    max-height: 1380px;
    transform: translate(0px, -12px);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: clamp(0.35rem, 1.3vw, 1rem);
    width: clamp(3.4rem, 5vw, 4.8rem);
    transform: translateY(-12px);
  }
}

@media (max-width: 1040px) {
  .timeline-column-art {
    order: -1;
    height: auto;
    min-height: 720px;
    padding: 0.5rem 0;
  }

  .timeline-column-stage img {
    width: min(100%, 400px);
    height: auto;
    max-height: none;
    transform: translate(0px, 0px);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: calc(50% - 200px);
    width: 4rem;
    transform: translateY(0px);
  }
}

@media (max-width: 680px) {
  .timeline-column-art {
    min-height: 620px;
  }

  .timeline-column-stage img {
    width: min(100%, 330px);
    height: auto;
    max-height: none;
    transform: translate(0px, 0px);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: calc(50% - 165px);
    width: 3.35rem;
  }
}

/* =========================================================
   BPG v9.3.6 REVIEW — Timeline Column Centered Daniel 2 Method
   Scope: Prophecy Timeline column only.
   Purpose:
   - make the column behave like the approved Daniel 2 statue visual
   - remove the nested stage conflict
   - center the artwork vertically and horizontally inside the art figure
   - keep background transparent
   - keep HTML/CSS marker numbers and connector lines independent from image
   - leave one small tuning area for live adjustment
   ========================================================= */

.timeline-column-art {
  position: relative;
  display: grid;
  align-content: stretch;
  justify-items: center;
  align-items: stretch;
  min-height: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.timeline-column-picture {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.timeline-column-picture img {
  display: block;
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.12));
}

.timeline-marker-rail {
  position: absolute;
  z-index: 5;
  top: 6%;
  bottom: 5%;
  left: clamp(0.35rem, 1.3vw, 1rem);
  width: clamp(3.4rem, 5vw, 4.8rem);
  display: grid;
  grid-template-rows: repeat(8, 1fr);
  align-items: center;
  pointer-events: none;
}

/* DESKTOP LIVE TUNING CONTROLS — adjust these first */
@media (min-width: 1041px) {
  .timeline-clean-layout {
    grid-template-columns: minmax(0, 0.96fr) minmax(460px, 1.1fr);
    align-items: stretch;
  }

  .timeline-column-art {
    min-height: 100%;
    height: 100%;
  }

  .timeline-column-picture img {
    height: 116%;
    max-height: 1340px;
    transform: translate(0px, -4%);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: clamp(0.35rem, 1.3vw, 1rem);
    width: clamp(3.4rem, 5vw, 4.8rem);
    transform: translateY(0px);
  }
}

@media (max-width: 1040px) {
  .timeline-clean-layout {
    grid-template-columns: 1fr;
  }

  .timeline-column-art {
    order: -1;
    height: auto;
    min-height: 720px;
    padding: 0.5rem 0;
  }

  .timeline-column-picture {
    min-height: 720px;
  }

  .timeline-column-picture img {
    width: min(100%, 410px);
    height: auto;
    max-height: none;
    transform: translate(0px, -1.5%);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: calc(50% - 205px);
    width: 4rem;
    transform: translateY(0px);
  }
}

@media (max-width: 680px) {
  .timeline-column-art {
    min-height: 620px;
  }

  .timeline-column-picture {
    min-height: 620px;
  }

  .timeline-column-picture img {
    width: min(100%, 335px);
    height: auto;
    max-height: none;
    transform: translate(0px, -1%);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: calc(50% - 167px);
    width: 3.35rem;
  }
}

/* =========================================================
   BPG v9.3.7 REVIEW — Timeline Column Graphic Template Correction
   Scope: Prophecy Timeline column only.
   Standard to reuse for future BPG graphics with HTML/CSS cards:
   - artwork image contains artwork only with transparent background
   - figure/stage has no background, border, or visible box
   - image is centered as the main visual object
   - marker rail, numbers, and connector lines are HTML/CSS, not baked into art
   - marker CSS follows the approved Daniel 2 statue method
   ========================================================= */

.timeline-column-art {
  position: relative;
  display: grid;
  align-content: stretch;
  justify-items: center;
  align-items: stretch;
  justify-self: center;
  width: min(100%, 540px);
  min-height: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.timeline-column-art::before,
.timeline-column-art::after,
.timeline-column-picture::before,
.timeline-column-picture::after {
  content: none !important;
  display: none !important;
}

.timeline-column-picture {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.timeline-column-picture img {
  display: block;
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.12));
}

.timeline-marker-rail {
  position: absolute;
  z-index: 5;
  top: 6%;
  bottom: 5%;
  left: clamp(0.35rem, 1.3vw, 1rem);
  width: clamp(3.4rem, 5vw, 4.8rem);
  display: grid;
  grid-template-rows: repeat(8, 1fr);
  align-items: center;
  pointer-events: none;
}

.timeline-marker {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.timeline-marker-dot {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1;
  box-shadow:
    0 0 0 6px rgba(255, 255, 255, 0.92),
    0 8px 18px rgba(17, 17, 17, 0.12);
}

.timeline-marker-line {
  display: block;
  flex: 1 1 auto;
  min-width: 1.75rem;
  height: 2px;
  margin-left: 0.48rem;
  background: linear-gradient(90deg, rgba(29, 29, 31, 0.42), rgba(29, 29, 31, 0.12));
}

.timeline-marker-line::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  margin-left: auto;
  margin-top: -2px;
  border-radius: 999px;
  background: rgba(29, 29, 31, 0.38);
}

/* DESKTOP LIVE TUNING CONTROLS — adjust these first after upload. */
@media (min-width: 1041px) {
  .timeline-clean-layout {
    grid-template-columns: minmax(0, 0.96fr) minmax(460px, 1.1fr);
    align-items: stretch;
  }

  .timeline-column-art {
    width: min(100%, 540px);
    min-height: 100%;
    height: 100%;
  }

  .timeline-column-picture img {
    height: 122%;
    max-height: 1420px;
    transform: translate(0px, -11%);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: clamp(0.35rem, 1.3vw, 1rem);
    width: clamp(3.4rem, 5vw, 4.8rem);
    transform: translateY(-11%);
  }
}

@media (max-width: 1040px) {
  .timeline-clean-layout {
    grid-template-columns: 1fr;
  }

  .timeline-column-art {
    order: -1;
    width: min(100%, 460px);
    height: auto;
    min-height: 760px;
    padding: 0.5rem 0;
  }

  .timeline-column-picture {
    min-height: 760px;
  }

  .timeline-column-picture img {
    width: min(100%, 410px);
    height: auto;
    max-height: none;
    transform: translate(0px, -4%);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: calc(50% - 205px);
    width: 4rem;
    transform: translateY(-4%);
  }
}

@media (max-width: 680px) {
  .timeline-column-art {
    width: min(100%, 370px);
    min-height: 640px;
  }

  .timeline-column-picture {
    min-height: 640px;
  }

  .timeline-column-picture img {
    width: min(100%, 340px);
    height: auto;
    max-height: none;
    transform: translate(0px, -2%);
  }

  .timeline-marker-rail {
    top: 6%;
    bottom: 5%;
    left: calc(50% - 170px);
    width: 3.35rem;
    transform: translateY(-2%);
  }

  .timeline-marker-dot {
    width: 1.72rem;
    height: 1.72rem;
    font-size: 0.78rem;
  }

  .timeline-marker-line {
    min-width: 1.15rem;
    margin-left: 0.32rem;
  }

  .timeline-marker-line::after {
    width: 5px;
    height: 5px;
    margin-top: -1.5px;
  }
}


/* =========================================================
   BPG v9.3.8 REVIEW — Final Prophecy Timeline Graphic Placement
   This layer uses the new 8-medallion centered column artwork.
   Standard method for future BPG image + HTML-card visuals:
   1. Count the cards first.
   2. Design artwork anchor points around card centers.
   3. Use HTML/CSS numbers and lines.
   4. Keep artwork transparent and decorative/supporting.
   5. Tune only after desktop/tablet/mobile preview.
   ========================================================= */

.timeline-column-art {
  width: min(100%, 520px);
}

.timeline-column-picture img {
  object-position: center center;
}

/* Desktop live tuning controls for the final 8-medallion column. */
@media (min-width: 1041px) {
  .timeline-column-art {
    width: min(100%, 520px);
  }

  .timeline-column-picture img {
    height: 126%;
    max-height: 1500px;
    transform: translate(0px, -4%);
  }

  .timeline-marker-rail {
    top: 5.5%;
    bottom: 5.5%;
    left: clamp(0.35rem, 1.3vw, 1rem);
    width: clamp(3.4rem, 5vw, 4.8rem);
    transform: translateY(0);
  }
}

@media (max-width: 1040px) {
  .timeline-column-art {
    width: min(100%, 455px);
    min-height: 780px;
  }

  .timeline-column-picture {
    min-height: 780px;
  }

  .timeline-column-picture img {
    width: min(100%, 405px);
    transform: translate(0px, -2%);
  }

  .timeline-marker-rail {
    top: 5.5%;
    bottom: 5.5%;
    left: calc(50% - 202px);
    transform: translateY(0);
  }
}

@media (max-width: 680px) {
  .timeline-column-art {
    width: min(100%, 365px);
    min-height: 650px;
  }

  .timeline-column-picture {
    min-height: 650px;
  }

  .timeline-column-picture img {
    width: min(100%, 335px);
    transform: translate(0px, -1.5%);
  }

  .timeline-marker-rail {
    top: 5.5%;
    bottom: 5.5%;
    left: calc(50% - 168px);
    transform: translateY(0);
  }
}

/* =========================================================
   BPG v9.3.11 REVIEW — Separated Timeline Visual Method Scaffold
   Status: documented scaffold only.
   This does NOT affect the current live timeline unless the figure
   uses class "timeline-separated-visual".

   Purpose:
   - bare column as background artwork
   - eight separate medallions positioned by the same 8-row CSS grid
   - HTML/CSS markers and connector lines stay independent
   - cards remain the master alignment system

   Future HTML structure:
   <figure class="timeline-column-art timeline-separated-visual">
     <div class="timeline-marker-rail">...</div>
     <div class="timeline-column-bg-wrap">
       <img class="timeline-column-bg" src="/assets/images/timeline/prophecy-column-bare.webp" alt="">
     </div>
     <div class="timeline-medallion-grid">
       <img class="timeline-medallion medallion-1" src="/assets/images/timeline/medallion-01-creation.webp" alt="">
       ...
     </div>
   </figure>
   ========================================================= */

.timeline-separated-visual {
  position: relative;
  display: grid;
  align-content: stretch;
  justify-items: center;
  align-items: stretch;
  width: min(100%, 520px);
  min-height: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.timeline-separated-visual .timeline-column-bg-wrap {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: stretch center;
  pointer-events: none;
}

.timeline-separated-visual .timeline-column-bg {
  display: block;
  width: auto;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.12));
}

.timeline-separated-visual .timeline-medallion-grid {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  grid-template-rows: repeat(8, 1fr);
  align-items: center;
  justify-items: center;
  pointer-events: none;
}

.timeline-separated-visual .timeline-medallion {
  display: block;
  width: clamp(88px, 8.5vw, 132px);
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.16));
}

.timeline-separated-visual .timeline-marker-rail {
  z-index: 4;
}

@media (min-width: 1041px) {
  .timeline-separated-visual {
    width: min(100%, 520px);
  }

  .timeline-separated-visual .timeline-column-bg {
    height: 100%;
    transform: translate(0px, 0px);
  }

  .timeline-separated-visual .timeline-medallion-grid {
    top: 0;
    bottom: 0;
    transform: translateY(0);
  }
}

@media (max-width: 1040px) {
  .timeline-separated-visual {
    width: min(100%, 455px);
    min-height: 780px;
  }

  .timeline-separated-visual .timeline-medallion {
    width: clamp(76px, 15vw, 118px);
  }
}

@media (max-width: 680px) {
  .timeline-separated-visual {
    width: min(100%, 365px);
    min-height: 650px;
  }

  .timeline-separated-visual .timeline-medallion {
    width: clamp(56px, 18vw, 88px);
  }
}


/* =========================================================
   BPG v9.3.12.6 REVIEW — Timeline separated-layer recovery
   Scope: /timeline/ only. Search layer remains locked.
   Method:
   - left cards use an 8-row grid
   - HTML marker rail uses the same 8-row grid
   - right visual uses a bare column image plus separate medallions
   - the image is decorative/support; the grid is the alignment engine
   ========================================================= */

.timeline-clean-layout {
  grid-template-columns: minmax(0, 1fr) minmax(430px, 0.78fr) !important;
  align-items: stretch !important;
  gap: clamp(1.15rem, 2.2vw, 2rem) !important;
}

.timeline-card-stack {
  display: grid !important;
  grid-template-rows: repeat(8, minmax(96px, 1fr)) !important;
  gap: clamp(0.55rem, 1vw, 0.85rem) !important;
  height: 100% !important;
}

.timeline-event-card {
  min-height: 0 !important;
  align-items: center !important;
}

.timeline-column-art-separated {
  position: relative !important;
  display: grid !important;
  grid-template-columns: clamp(3.4rem, 4.5vw, 4.85rem) minmax(230px, 1fr) !important;
  align-items: stretch !important;
  justify-items: center !important;
  justify-self: center !important;
  width: min(100%, 510px) !important;
  height: 100% !important;
  min-height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.timeline-column-art-separated .timeline-marker-rail {
  position: relative !important;
  z-index: 5 !important;
  top: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  display: grid !important;
  grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
  align-items: center !important;
  transform: none !important;
  pointer-events: none !important;
}

.timeline-column-visual-layer {
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  overflow: visible !important;
}

.timeline-column-art-separated .timeline-column-picture,
.timeline-column-art-separated .timeline-column-picture-bare {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.timeline-column-art-separated .timeline-column-picture img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.13)) !important;
}

.timeline-medallion-grid {
  position: absolute !important;
  z-index: 2 !important;
  top: 3.8% !important;
  bottom: 4.1% !important;
  left: 0 !important;
  right: 0 !important;
  display: grid !important;
  grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
  align-items: center !important;
  justify-items: center !important;
  pointer-events: none !important;
}

.timeline-medallion {
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
}

.timeline-medallion img {
  display: block !important;
  width: clamp(72px, 8.2vw, 116px) !important;
  height: auto !important;
  border-radius: 999px !important;
  filter: drop-shadow(0 7px 9px rgba(0, 0, 0, 0.22)) !important;
}

@media (min-width: 1041px) {
  .timeline-clean-layout {
    grid-template-columns: minmax(0, 1fr) minmax(430px, 0.78fr) !important;
  }

  .timeline-column-art-separated {
    width: min(100%, 510px) !important;
  }
}

@media (max-width: 1040px) {
  .timeline-clean-layout {
    grid-template-columns: 1fr !important;
  }

  .timeline-column-art-separated {
    order: -1 !important;
    grid-template-columns: clamp(3.4rem, 11vw, 4.5rem) minmax(0, 1fr) !important;
    width: min(100%, 430px) !important;
    min-height: 760px !important;
    height: 760px !important;
    margin-inline: auto !important;
  }

  .timeline-card-stack {
    grid-template-rows: none !important;
    height: auto !important;
  }

  .timeline-column-art-separated .timeline-column-picture img {
    height: 100% !important;
    width: auto !important;
  }

  .timeline-medallion img {
    width: clamp(78px, 21vw, 112px) !important;
  }
}

@media (max-width: 680px) {
  .timeline-column-art-separated {
    grid-template-columns: 3.2rem minmax(0, 1fr) !important;
    width: min(100%, 350px) !important;
    min-height: 630px !important;
    height: 630px !important;
  }

  .timeline-marker-dot {
    width: 1.72rem !important;
    height: 1.72rem !important;
    font-size: 0.78rem !important;
  }

  .timeline-marker-line {
    min-width: 1.05rem !important;
    margin-left: 0.28rem !important;
  }

  .timeline-medallion-grid {
    top: 4% !important;
    bottom: 4.3% !important;
  }

  .timeline-medallion img {
    width: clamp(58px, 20vw, 88px) !important;
  }
}

/* =========================================================
   BPG v9.3.12.10 TEST — Smooth column centering and balanced margins
   Scope: /timeline/ only
   Method:
   - preserve approved smooth column asset
   - preserve medallion assets
   - keep column proportional
   - center column/medallion visual left-to-right
   - add slight top/bottom breathing room so column is not clipped
   ========================================================= */

@media (min-width: 1041px) {
  .timeline-clean-layout {
    align-items: stretch !important;
    grid-template-columns: minmax(0, 1fr) minmax(560px, 0.88fr) !important;
  }

  .timeline-column-art-separated {
    align-self: stretch !important;
    justify-self: center !important;
    width: min(100%, 640px) !important;
    min-height: 100% !important;
    height: 100% !important;
    display: grid !important;
    grid-template-columns: clamp(3.4rem, 4.5vw, 4.85rem) minmax(420px, 1fr) !important;
    align-items: stretch !important;
    justify-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
  }

  .timeline-column-art-separated .timeline-marker-rail {
    position: relative !important;
    z-index: 5 !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    transform: none !important;
  }

  .timeline-column-visual-layer {
    position: relative !important;
    z-index: 1 !important;
    width: clamp(410px, 26vw, 520px) !important;
    height: 100% !important;
    min-height: 100% !important;
    display: grid !important;
    align-items: stretch !important;
    justify-items: center !important;
    justify-self: center !important;
    margin-inline: auto !important;
    overflow: visible !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    position: absolute !important;
    inset: 1.5% 0 1.5% 0 !important;
    z-index: 1 !important;
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    display: block !important;
    height: 100% !important;
    width: auto !important;
    max-width: none !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    margin: 0 auto !important;
    filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.13)) !important;
  }

  .timeline-medallion-grid {
    position: relative !important;
    z-index: 2 !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    height: 100% !important;
    width: 100% !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    justify-items: center !important;
    pointer-events: none !important;
    margin-inline: auto !important;
  }

  .timeline-medallion img {
    width: clamp(102px, 6.7vw, 132px) !important;
    height: auto !important;
  }
}

@media (max-width: 1040px) {
  .timeline-column-art-separated {
    width: min(100%, 500px) !important;
    justify-self: center !important;
  }

  .timeline-column-visual-layer {
    width: clamp(330px, 62vw, 470px) !important;
    justify-self: center !important;
    margin-inline: auto !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    inset: 1.5% 0 1.5% 0 !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    width: auto !important;
    height: 100% !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }

  .timeline-medallion img {
    width: clamp(76px, 16vw, 108px) !important;
  }
}

@media (max-width: 680px) {
  .timeline-column-art-separated {
    width: min(100%, 370px) !important;
  }

  .timeline-column-visual-layer {
    width: clamp(250px, 72vw, 340px) !important;
    justify-self: center !important;
    margin-inline: auto !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    inset: 1.5% 0 1.5% 0 !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    width: auto !important;
    height: 100% !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }

  .timeline-medallion img {
    width: clamp(58px, 18vw, 84px) !important;
  }
}

/* =========================================================
   BPG v9.3.12.12 TEST — Column-only left shift and proportional enlargement
   Basis: v9.3.12.10 column-centered-balanced
   Scope: /timeline/ only

   Locked:
   - HTML number rail position
   - connector line position
   - card layout
   - medallion image files
   - search layer

   Changed:
   - column visual layer only
   - moves smooth column left behind medallions
   - enlarges column proportionally
   - preserves balanced top/bottom visual margins
   ========================================================= */

@media (min-width: 1041px) {
  .timeline-column-art-separated .timeline-marker-rail {
    position: relative !important;
    z-index: 5 !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    transform: none !important;
  }

  .timeline-column-visual-layer {
    position: relative !important;
    z-index: 1 !important;
    width: clamp(500px, 32vw, 660px) !important;
    height: 100% !important;
    min-height: 100% !important;
    display: grid !important;
    align-items: stretch !important;
    justify-items: center !important;
    justify-self: center !important;
    margin-inline: auto !important;
    overflow: visible !important;
    transform: none !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    position: absolute !important;
    inset: 1.1% 0 1.1% 0 !important;
    z-index: 1 !important;
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    display: block !important;
    height: 100% !important;
    width: auto !important;
    max-width: none !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    transform-origin: center center !important;
    margin: 0 auto !important;
    filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.13)) !important;
  }

  .timeline-medallion-grid {
    position: relative !important;
    z-index: 2 !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    height: 100% !important;
    width: 100% !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    justify-items: center !important;
    pointer-events: none !important;
    margin-inline: auto !important;
  }

  .timeline-medallion img {
    width: clamp(102px, 6.7vw, 132px) !important;
    height: auto !important;
  }
}

@media (max-width: 1040px) {
  .timeline-column-visual-layer {
    width: clamp(350px, 66vw, 500px) !important;
    justify-self: center !important;
    margin-inline: auto !important;
    transform: translateX(-38px) !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    inset: 1.1% 0 1.1% 0 !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    width: auto !important;
    height: 100% !important;
    object-fit: contain !important;
    transform: none !important;
    transform-origin: center center !important;
    margin: 0 auto !important;
  }

  .timeline-medallion img {
    width: clamp(76px, 16vw, 108px) !important;
  }
}

@media (max-width: 680px) {
  .timeline-column-visual-layer {
    width: clamp(270px, 76vw, 360px) !important;
    justify-self: center !important;
    margin-inline: auto !important;
    transform: translateX(-18px) !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    inset: 1.1% 0 1.1% 0 !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    width: auto !important;
    height: 100% !important;
    object-fit: contain !important;
    transform: none !important;
    transform-origin: center center !important;
    margin: 0 auto !important;
  }

  .timeline-medallion img {
    width: clamp(58px, 18vw, 84px) !important;
  }
}

/* =========================================================
   BPG v9.3.12.14 TEST — Independent centered column and medallion layers
   Scope: /timeline/ only

   Goal:
   - keep HTML number rail and connector lines locked
   - center the column image layer inside the visual box
   - center the medallion grid independently inside the same visual box
   - allow independent offsets for column and medallions
   - improve responsive behavior for desktop, tablet, and iPhone
   ========================================================= */

/* DESKTOP */
@media (min-width: 1041px) {
  .timeline-column-art-separated {
    position: relative !important;
    overflow: visible !important;
  }

  .timeline-column-visual-layer {
    position: relative !important;
    z-index: 1 !important;
    width: clamp(500px, 32vw, 660px) !important;
    height: 100% !important;
    min-height: 100% !important;
    display: grid !important;
    place-items: center !important;
    justify-items: center !important;
    align-items: stretch !important;
    justify-self: center !important;
    margin-inline: auto !important;
    overflow: visible !important;
    transform: none !important;
  }

  /* Column layer: centered independently. Adjust the -20px only if the COLUMN needs left/right tuning. */
  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    position: absolute !important;
    top: 0% !important;
    bottom: 0% !important;
    left: 50% !important;
    right: auto !important;
    z-index: 1 !important;
    width: clamp(500px, 32vw, 660px) !important;
    height: auto !important;
    min-height: 0 !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: translateX(-50%) !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    display: block !important;
    width: auto !important;
    height: 100% !important;
    max-width: none !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    transform-origin: center center !important;
    margin: 0 auto !important;
    filter: drop-shadow(0 22px 22px rgba(0, 0, 0, 0.13)) !important;
  }

  /* Medallion layer: centered independently. Adjust the +0px only if MEDALLIONS need left/right tuning. */
  .timeline-medallion-grid {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 50% !important;
    right: auto !important;
    z-index: 2 !important;
    width: clamp(500px, 32vw, 660px) !important;
    height: auto !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    justify-items: center !important;
    pointer-events: none !important;
    margin: 0 !important;
    transform: translateX(-50%) !important;
  }

  .timeline-medallion img {
    width: clamp(102px, 6.7vw, 132px) !important;
    height: auto !important;
  }

  /* Keep marker rail locked from v9.3.12.10/12. */
  .timeline-column-art-separated .timeline-marker-rail {
    position: relative !important;
    z-index: 5 !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    transform: translateX(190px) !important;
  }
}

/* TABLET */
@media (max-width: 1040px) {
  .timeline-column-art-separated {
    order: -1 !important;
    grid-template-columns: clamp(3.4rem, 11vw, 4.5rem) minmax(0, 1fr) !important;
    width: min(100%, 430px) !important;
    min-height: 760px !important;
    height: 760px !important;
    margin-inline: auto !important;
  }
  
  .timeline-column-visual-layer {
    width: clamp(350px, 66vw, 500px) !important;
    display: grid !important;
    place-items: center !important;
    justify-self: center !important;
    margin-inline: auto !important;
    transform: none !important;
    overflow: visible !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    position: absolute !important;
    top: 1.1% !important;
    bottom: 1.1% !important;
    left: 50% !important;
    right: auto !important;
    width: clamp(350px, 66vw, 500px) !important;
    height: auto !important;
    display: grid !important;
    place-items: center !important;
    transform: translateX(-50%) !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    width: auto !important;
    height: 100% !important;
    object-fit: contain !important;
    transform: none !important;
    transform-origin: center center !important;
    margin: 0 auto !important;
  }

  .timeline-medallion-grid {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 50% !important;
    right: auto !important;
    width: clamp(350px, 66vw, 500px) !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    justify-items: center !important;
    transform: translateX(calc(-50% + 0px)) !important;
  }

  .timeline-column-art-separated {
    grid-template-columns: 3.2rem minmax(0, 1fr) !important;
    width: min(100%, 350px) !important;
    min-height: 630px !important;
    height: 630px !important;
    margin-inline: auto !important;
  }

  .timeline-medallion img {
    width: clamp(76px, 16vw, 108px) !important;
  }
}

/* IPHONE */
@media (max-width: 680px) {
  .timeline-column-visual-layer {
    width: clamp(220px, 62vw, 300px) !important;
    display: grid !important;
    place-items: center !important;
    justify-self: center !important;
    margin-inline: auto !important;
    transform: none !important;
    overflow: visible !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    position: absolute !important;
    top: 1.1% !important;
    bottom: 1.1% !important;
    left: 50% !important;
    right: auto !important;
    width: clamp(270px, 76vw, 360px) !important;
    height: auto !important;
    display: grid !important;
    place-items: center !important;
    transform: translateX(-50%) !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
  	display: block !important;
  	width: auto !important;
  	height: auto !important;
  	max-width: none !important;
  	max-height: none !important;
  	object-fit: contain !important;
  }

  .timeline-medallion-grid {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 50% !important;
    right: auto !important;
    width: clamp(220px, 62vw, 300px) !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    justify-items: center !important;
    transform: translateX(calc(-50% + 0px)) !important;
  }

  .timeline-medallion img {
    width: clamp(58px, 18vw, 84px) !important;
  }
}
/* =========================================================
   BPG v9.3.12.16 MOBILE/TABLET STRUCTURE RESET
   Scope: /timeline/ only

   Desktop v9.3.12.14 is accepted and intentionally left untouched.

   Purpose:
   - stop older stacked test CSS from controlling iPhone/iPad
   - force the separated-layer system into two explicit grid tracks:
     1) marker rail
     2) visual layer containing column + medallions
   - keep the column and medallions in the same coordinate space
   - prevent medallion overlap by forcing the visual layer to full height
   ========================================================= */

/* TABLET / IPAD */
@media (min-width: 681px) and (max-width: 1040px) {
  .timeline-clean-layout {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
  }

  .timeline-card-stack {
    grid-template-rows: none !important;
    height: auto !important;
  }

  .timeline-column-art-separated {
    order: -1 !important;
    position: relative !important;
    display: grid !important;
    grid-template-columns: 4rem minmax(0, 1fr) !important;
    grid-template-rows: 700px !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    justify-self: center !important;
    width: min(100%, 430px) !important;
    min-height: 700px !important;
    height: 700px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .timeline-column-art-separated .timeline-marker-rail {
    grid-column: 1 !important;
    grid-row: 1 !important;
    position: relative !important;
    z-index: 5 !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 700px !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    transform: none !important;
    pointer-events: none !important;
  }

  .timeline-column-visual-layer {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: relative !important;
    z-index: 1 !important;
    display: grid !important;
    place-items: center !important;
    align-self: stretch !important;
    justify-self: stretch !important;
    width: 100% !important;
    height: 700px !important;
    min-height: 700px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    overflow: visible !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: absolute !important;
    z-index: 1 !important;
    inset: 6% 0 6% 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 700px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    display: block !important;
    width: auto !important;
    height: 100% !important;
    max-width: none !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    margin: 0 auto !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    filter: drop-shadow(0 18px 18px rgba(0, 0, 0, 0.12)) !important;
  }

  .timeline-medallion-grid {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: absolute !important;
    z-index: 2 !important;
    inset: 0 !important;
    width: 100% !important;
    height: 700px !important;
    min-height: 700px !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    justify-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    pointer-events: none !important;
  }

  .timeline-medallion img {
    width: clamp(76px, 16vw, 108px) !important;
    height: auto !important;
  }
}

/* IPHONE */
@media (max-width: 680px) {
  .timeline-clean-layout {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
  }

  .timeline-card-stack {
    grid-template-rows: none !important;
    height: auto !important;
  }

  .timeline-column-art-separated {
    order: -1 !important;
    position: relative !important;
    display: grid !important;
    grid-template-columns: 3.2rem minmax(0, 1fr) !important;
    grid-template-rows: 570px !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    justify-self: center !important;
    width: min(100%, 350px) !important;
    min-height: 570px !important;
    height: 570px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .timeline-column-art-separated .timeline-marker-rail {
    grid-column: 1 !important;
    grid-row: 1 !important;
    position: relative !important;
    z-index: 5 !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 570px !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    transform: none !important;
    pointer-events: none !important;
  }

  .timeline-column-visual-layer {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: relative !important;
    z-index: 1 !important;
    display: grid !important;
    place-items: center !important;
    align-self: stretch !important;
    justify-self: stretch !important;
    width: 100% !important;
    height: 570px !important;
    min-height: 570px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    overflow: visible !important;
  }

  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: absolute !important;
    z-index: 1 !important;
	top: 50% !important;
	bottom: auto !important;
	width: 100% !important;
	height: 430px !important;
	min-height: 0 !important;
	transform: translateY(-50%) !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    display: block !important;
    width: auto !important;
    height: 100% !important;
    max-width: none !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    margin: 0 auto !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    filter: drop-shadow(0 14px 16px rgba(0, 0, 0, 0.11)) !important;
  }

  .timeline-medallion-grid {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: absolute !important;
    z-index: 2 !important;
    inset: 0 !important;
    width: 100% !important;
    height: 570px !important;
    min-height: 570px !important;
    display: grid !important;
    grid-template-rows: repeat(8, minmax(0, 1fr)) !important;
    align-items: center !important;
    justify-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    pointer-events: none !important;
  }

  .timeline-medallion img {
    width: clamp(58px, 18vw, 84px) !important;
    height: auto !important;
  }

  .timeline-marker-dot {
    width: 1.72rem !important;
    height: 1.72rem !important;
    font-size: 0.78rem !important;
  }

  .timeline-marker-line {
    min-width: 1.05rem !important;
    margin-left: 0.28rem !important;
  }

  .timeline-marker-line::after {
    width: 5px !important;
    height: 5px !important;
    margin-top: -1.5px !important;
  }
}
/* =========================================================
   BPG v9.3.12.19 IOS MINI COLUMN BOX TEST
   Basis: current uploaded timeline CSS

   V-BPG method:
   - Desktop remains untouched.
   - Marker rail remains untouched.
   - Medallion grid remains untouched.
   - iPad/iPhone use a smaller independent column box.
   - This prevents the column image from being forced to fill
     the full medallion coordinate system.
   ========================================================= */

/* IPAD / TABLET: shrink the column box only */
@media (min-width: 681px) and (max-width: 1040px) {
  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: absolute !important;
    z-index: 1 !important;
    top: 50% !important;
    bottom: auto !important;
    left: 50% !important;
    right: auto !important;
    width: 220px !important;
    height: 520px !important;
    min-height: 0 !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: translate(-50%, -50%) !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    display: block !important;
    width: auto !important;
    height: 100% !important;
    max-width: none !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    margin: 0 auto !important;
  }
}

/* IPHONE: shrink the column box only */
@media (max-width: 680px) {
  .timeline-column-art-separated .timeline-column-picture,
  .timeline-column-art-separated .timeline-column-picture-bare {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: absolute !important;
    z-index: 1 !important;
    top: 50% !important;
    bottom: auto !important;
    left: 50% !important;
    right: auto !important;
    width: 160px !important;
    height: 430px !important;
    min-height: 0 !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: translate(-50%, -50%) !important;
  }

  .timeline-column-art-separated .timeline-column-picture img,
  .timeline-column-art-separated .timeline-column-picture-bare img {
    display: block !important;
    width: auto !important;
    height: 100% !important;
    max-width: none !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    margin: 0 auto !important;
  }
}
