/* Migration page and timeline styles.
   Modules load in this order; see the root README for the stylesheet map. */

/* Migration record */
.migration-page { padding-top: 140px; }
.migration-hero { padding-bottom: clamp(5rem, 9vw, 8rem); }
.migration-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: clamp(2rem, 7vw, 7rem); align-items: end; }
.migration-heading h1 { margin: .8rem 0 0; font-size: clamp(4rem, 8.5vw, 8rem); line-height: .86; letter-spacing: -.075em; }
.migration-heading > p { max-width: 520px; margin: 0 0 .65rem; color: var(--muted); font-size: .94rem; line-height: 1.8; }
.migration-status { display: grid; margin-top: clamp(2.5rem, 5vw, 4.5rem); padding: 1.25rem 1.4rem; grid-template-columns: auto 1fr; gap: 1rem; align-items: center; border-radius: var(--radius-lg); }
.migration-status-mark { width: 11px; height: 11px; background: #f2bd5d; border-radius: 50%; box-shadow: 0 0 22px rgba(242, 189, 93, .65); }
.migration-status small, .migration-timeline time, .ticket-state { color: var(--faint); font-family: var(--mono); font-size: .52rem; letter-spacing: .08em; text-transform: uppercase; }
.migration-status strong { display: block; margin: .25rem 0; font-size: .9rem; }
.migration-status p { margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.6; }
.migration-section { padding-top: clamp(5rem, 8vw, 7.5rem); padding-bottom: clamp(5rem, 8vw, 7.5rem); }
.migration-timeline { position: relative; display: grid; margin: 0; padding: 0; gap: .8rem; list-style: none; }
.migration-timeline::before { content: ""; position: absolute; top: 2rem; bottom: 2rem; left: calc(185px + 2rem); width: 1px; background: linear-gradient(transparent, rgba(90, 155, 242, .45) 12%, rgba(90, 155, 242, .2) 88%, transparent); }
.migration-timeline li { position: relative; display: grid; min-height: 180px; padding: 1.6rem; grid-template-columns: 185px 18px 1fr; gap: 1.25rem; align-items: start; border-radius: var(--radius-lg); }
.migration-timeline time { padding-top: .35rem; line-height: 1.5; }
.timeline-dot { position: relative; z-index: 2; width: 11px; height: 11px; margin-top: .25rem; background: var(--blue); border: 3px solid #182131; border-radius: 50%; box-shadow: 0 0 18px rgba(90,155,242,.55); }
.migration-timeline h3 { margin: 0 0 .7rem; font-size: 1.35rem; letter-spacing: -.035em; }
.migration-timeline p { max-width: 720px; margin: 0 0 1rem; color: var(--muted); font-size: .78rem; line-height: 1.75; }
.migration-timeline p b, .migration-timeline p strong { color: #d9dfdc; }
.ticket-state { display: inline-flex; padding: .45rem .6rem; color: #d7b979; background: rgba(242,189,93,.08); border: 1px solid rgba(242,189,93,.16); border-radius: 999px; }
.migration-band { background: rgba(12,15,21,.54); border-block: 1px solid rgba(255,255,255,.045); }
.migration-grid { display: grid; padding-top: clamp(5rem,8vw,7rem); padding-bottom: clamp(5rem,8vw,7rem); grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.migration-grid article { min-height: 330px; padding: clamp(1.5rem, 3vw, 2.4rem); border-radius: var(--radius-xl); }
.migration-grid h2, .migration-next h2 { margin: .75rem 0 1rem; font-size: clamp(2rem, 4vw, 3.5rem); line-height: .98; letter-spacing: -.055em; }
.migration-grid p, .migration-next p { color: var(--muted); font-size: .8rem; line-height: 1.75; }
.migration-next > .glass-card { display: grid; padding: clamp(1.5rem, 4vw, 3rem); grid-template-columns: 1fr auto; gap: 2.5rem; align-items: center; border-radius: var(--radius-xl); }
.migration-next > .glass-card p { max-width: 690px; margin-bottom: 0; }
.migration-next .button { white-space: nowrap; }
.migration-note { max-width: 800px; margin: 1.25rem auto 0; color: var(--faint); font-size: .62rem; line-height: 1.7; text-align: center; }
@media (max-width: 760px) {
  .migration-page { padding-top: 105px; }
  .migration-heading, .migration-grid, .migration-next > .glass-card { grid-template-columns: 1fr; }
  .migration-heading { align-items: start; }
  .migration-heading h1 { font-size: clamp(3.7rem, 18vw, 6rem); }
  .migration-timeline::before { left: 1.88rem; }
  .migration-timeline li { grid-template-columns: 18px 1fr; padding: 1.25rem; gap: .85rem; }
  .migration-timeline time { grid-column: 2; padding: 0; }
  .timeline-dot { grid-row: 1 / 3; grid-column: 1; }
  .migration-timeline li > div { grid-column: 2; }
  .migration-grid article { min-height: 270px; }
  .migration-next .button { width: 100%; }
}
