/* Great Migration field atlas — page-specific editorial and map treatment. */
body.page-article-migration {
  --migration-deep: #0b2b26;
  --migration-forest: #163832;
  --migration-jade: #235347;
  --migration-sage: #8eb69b;
  --migration-mint: #daf1de;
  --migration-gold: #b89554;
  --migration-ivory: #f7f3e8;
}

body.page-article-migration .article-container {
  width: min(1320px, calc(100% - 64px));
}

body.page-article-migration .article-shell {
  grid-template-columns: minmax(0, 1fr) 230px;
  gap: clamp(54px, 6vw, 90px);
}

/* Outrank the reusable journal's deliberately narrow article grid for this atlas-led story. */
body.page-article.page-article-migration.ej-article-journal .article-container {
  width: min(1320px, calc(100% - 64px));
}

body.page-article.page-article-migration.ej-article-journal .article-shell {
  grid-template-columns: minmax(0, 1fr) 230px;
  gap: clamp(54px, 6vw, 90px);
}

body.page-article-migration .article-body > :not(.migration-atlas):not(.migration-photo-wide):not(.migration-spread):not(.migration-finder) {
  max-width: 780px;
}

body.page-article-migration .migration-hero .article-hero-shell {
  min-height: calc(100svh - var(--article-header-space));
}

body.page-article-migration .migration-hero .article-hero-visual img {
  object-position: 74% 48%;
  filter: saturate(.9) contrast(1.04) brightness(.96);
}

body.page-article-migration .migration-hero .article-hero-visual::after {
  background: linear-gradient(90deg, #f7f3e8 0%, #f7f3e8f7 25%, #f7f3e8d7 42%, #f7f3e82c 65%, #0b2b261a 100%);
}

body.page-article-migration .hero-cycle-seal {
  position:absolute;
  right:clamp(35px,6vw,95px);
  bottom:45px;
  z-index:3;
  display:grid;
  place-content:center;
  width:142px;
  aspect-ratio:1;
  border:1px solid rgba(247,243,232,.68);
  border-radius:50%;
  color:#f7f3e8;
  background:rgba(11,43,38,.48);
  backdrop-filter:blur(5px);
  text-align:center;
  box-shadow:inset 0 0 0 9px rgba(247,243,232,.05);
}

body.page-article-migration .hero-cycle-seal::before,body.page-article-migration .hero-cycle-seal::after {
  content:'';
  position:absolute;
  inset:12px;
  border:1px dashed rgba(241,213,156,.5);
  border-radius:50%;
}

body.page-article-migration .hero-cycle-seal::after { inset:-7px; border-style:solid; border-color:rgba(247,243,232,.18); }
body.page-article-migration .hero-cycle-seal span { color:#f1d59c; font:600 7px/1.4 var(--font-sans); letter-spacing:.13em; text-transform:uppercase; }
body.page-article-migration .hero-cycle-seal strong { color:#f7f3e8; font:500 42px/.95 var(--font-serif); }
body.page-article-migration .hero-cycle-seal small { color:#c6d9c8; font-size:8px; letter-spacing:.05em; }

body.page-article-migration .migration-facts {
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  min-height:88px;
  padding-inline:clamp(24px,5vw,80px);
  background:var(--migration-deep);
  color:var(--migration-mint);
}

body.page-article-migration .migration-facts > div {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:13px;
  padding:20px clamp(16px,3vw,42px);
  border-left:1px solid rgba(218,241,222,.2);
}

body.page-article-migration .migration-facts > div:first-child { border-left:0; padding-left:0; }
body.page-article-migration .migration-facts strong { color:#f1d59c; font:500 clamp(23px,2.2vw,34px)/1 var(--font-serif); white-space:nowrap; }
body.page-article-migration .migration-facts span { max-width:190px; color:#b9d4bd; font-size:10px; line-height:1.55; letter-spacing:.03em; }

body.page-article-migration .migration-brief .eyebrow { margin:0 0 8px; }
body.page-article-migration .migration-brief h2 { margin:0; font-size:clamp(27px,3vw,36px); }
body.page-article-migration .migration-brief p:last-child { margin-bottom:0; }

/* The atlas is a full editorial plate, not a floating card. */
body.page-article-migration .migration-atlas {
  margin-block:58px 64px;
  padding:clamp(25px,3.5vw,44px);
  border-radius:5px 52px 5px 5px;
  background:
    radial-gradient(circle at 22% 12%, rgba(142,182,155,.12), transparent 34%),
    linear-gradient(145deg, #123a32, var(--migration-deep) 72%);
  color:var(--migration-mint);
  box-shadow:0 22px 70px rgba(5,31,32,.14);
  scroll-margin-top:calc(var(--article-header-height,88px) + 20px);
}

body.page-article-migration .migration-atlas:focus { outline:0; }
body.page-article-migration .migration-atlas:focus-visible { outline:3px solid var(--migration-gold); outline-offset:5px; }

body.page-article-migration .atlas-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.65fr);
  gap:45px;
  align-items:end;
  padding-bottom:27px;
  border-bottom:1px solid rgba(218,241,222,.2);
}

body.page-article-migration .atlas-heading .eyebrow { color:#d7b873; }
body.page-article-migration .atlas-heading h2 { color:#f7f3e8; font-size:clamp(36px,4.4vw,58px); line-height:1.02; }
body.page-article-migration .atlas-heading > p { margin:0; color:#b9d4bd; font-size:12px; line-height:1.8; }

body.page-article-migration .atlas-layout {
  display:grid;
  grid-template-columns:minmax(0,1.48fr) minmax(250px,.52fr);
  gap:clamp(25px,3.5vw,48px);
  padding-block:30px 27px;
}

body.page-article-migration .atlas-map-column { min-width:0; }
body.page-article-migration .atlas-toolbar { display:flex; justify-content:space-between; align-items:center; gap:18px; min-height:43px; margin-bottom:7px; }
body.page-article-migration .atlas-status { display:flex; align-items:center; gap:8px; color:#b9d4bd; font-size:10px; letter-spacing:.04em; }
body.page-article-migration .atlas-status strong { color:#f1d59c; font-weight:600; }
body.page-article-migration .status-pulse { width:7px; height:7px; border-radius:50%; background:var(--migration-sage); box-shadow:0 0 0 5px rgba(142,182,155,.12); }
body.page-article-migration .atlas-play { display:inline-flex; align-items:center; gap:7px; min-height:38px; padding:8px 12px; border:1px solid rgba(218,241,222,.28); border-radius:999px; background:transparent; color:var(--migration-mint); font:500 10px/1.4 var(--font-sans); cursor:pointer; }
body.page-article-migration .atlas-play:hover { border-color:var(--migration-sage); background:rgba(218,241,222,.08); }

body.page-article-migration .atlas-map {
  position:relative;
  min-height:520px;
  overflow:hidden;
  border-block:1px solid rgba(218,241,222,.14);
  background:
    linear-gradient(rgba(218,241,222,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(218,241,222,.035) 1px,transparent 1px);
  background-size:44px 44px;
}

body.page-article-migration .atlas-map::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 54% 48%, transparent 46%, rgba(5,31,32,.25) 100%);
}

body.page-article-migration .atlas-loading { position:absolute; inset:0; display:grid; place-content:center; gap:13px; color:#b9d4bd; font-size:11px; letter-spacing:.04em; text-align:center; }
body.page-article-migration .atlas-loading > span { width:26px; height:26px; justify-self:center; border:2px solid rgba(218,241,222,.2); border-top-color:var(--migration-gold); border-radius:50%; animation:atlas-spin 1s linear infinite; }
@keyframes atlas-spin { to { transform:rotate(360deg); } }

body.page-article-migration .atlas-map svg { position:relative; z-index:1; display:block; width:100%; height:auto; min-height:520px; }
body.page-article-migration .atlas-country { fill:rgba(218,241,222,.035); stroke:rgba(218,241,222,.13); stroke-width:1; }
body.page-article-migration .atlas-park { fill:rgba(142,182,155,.12); stroke:#9fc6a8; stroke-width:1.8; vector-effect:non-scaling-stroke; }
body.page-article-migration .atlas-park.ngorongoro { fill:rgba(184,149,84,.09); stroke:#c4a96f; }
body.page-article-migration .atlas-river { fill:none; stroke:#83bac1; stroke-width:2.15; stroke-linecap:round; opacity:.78; vector-effect:non-scaling-stroke; }
body.page-article-migration .migration-cycle-under { fill:none; stroke:rgba(5,31,32,.52); stroke-width:10; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
body.page-article-migration .migration-cycle { fill:none; stroke:#d9b76d; stroke-width:3.2; stroke-dasharray:4 7; stroke-linecap:round; stroke-linejoin:round; opacity:.9; vector-effect:non-scaling-stroke; }
body.page-article-migration .migration-segment { fill:none; stroke:#daf1de; stroke-width:5; stroke-linecap:round; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 6px rgba(218,241,222,.48)); }
body.page-article-migration .month-node { fill:#173b32; stroke:#d2b46f; stroke-width:1.5; cursor:pointer; vector-effect:non-scaling-stroke; transition:r .25s ease, fill .25s ease, stroke .25s ease; }
body.page-article-migration .month-node:hover,body.page-article-migration .month-node:focus { fill:#daf1de; stroke:#daf1de; outline:none; }
body.page-article-migration .month-node.is-active { r:7.5; fill:#daf1de; stroke:#b89554; stroke-width:3; }
body.page-article-migration .focus-halo { fill:rgba(218,241,222,.08); stroke:rgba(218,241,222,.6); stroke-width:1.4; transform-box:fill-box; transform-origin:center; animation:atlas-breathe 2.6s ease-in-out infinite; }
body.page-article-migration .focus-core { fill:#f1d59c; stroke:#0b2b26; stroke-width:2; }
body.page-article-migration .herd-dot { fill:#daf1de; opacity:.85; }
body.page-article-migration .herd-dot:nth-child(2n) { fill:#d6b56d; }
@keyframes atlas-breathe { 50% { transform:scale(1.2); opacity:.55; } }
body.page-article-migration .atlas-label { fill:#c8ddcb; font:600 9px/1 var(--font-sans); letter-spacing:.08em; text-transform:uppercase; paint-order:stroke; stroke:#0b2b26; stroke-width:4px; stroke-linejoin:round; }
body.page-article-migration .atlas-label.place { fill:#f7f3e8; font-size:10px; letter-spacing:.02em; text-transform:none; }
body.page-article-migration .atlas-label.river { fill:#9bc7cc; font-style:italic; font-weight:500; text-transform:none; }
body.page-article-migration .atlas-country-label { fill:rgba(218,241,222,.24); font:600 34px/1 var(--font-serif); letter-spacing:.11em; }
body.page-article-migration .north-arrow text { fill:#d7b873; font:600 11px/1 var(--font-sans); }
body.page-article-migration .north-arrow path { stroke:#d7b873; stroke-width:1.5; fill:none; }

body.page-article-migration .atlas-note { display:flex; align-items:flex-start; gap:8px; margin:12px 0 0; color:#97b89d; font-size:9px; line-height:1.65; }
body.page-article-migration .atlas-note i { flex:none; margin-top:2px; color:#d7b873; }

body.page-article-migration .atlas-story { align-self:stretch; padding:54px 0 0 clamp(23px,3vw,40px); border-left:1px solid rgba(218,241,222,.18); }
body.page-article-migration .atlas-season { margin:0 0 12px; color:#d7b873; font:600 9px/1.6 var(--font-sans); letter-spacing:.14em; text-transform:uppercase; }
body.page-article-migration .atlas-story h3 { margin:0; color:#f7f3e8; font:500 clamp(26px,2.7vw,38px)/1.12 var(--font-serif); letter-spacing:-.025em; }
body.page-article.page-article-migration.ej-article-journal .article-body .atlas-story h3 { color:#f7f3e8; }
body.page-article-migration .atlas-story > p:not(.atlas-season) { margin:18px 0 0; color:#b9d4bd; font-size:12px; line-height:1.85; }
body.page-article-migration .atlas-details { margin:27px 0 0; }
body.page-article-migration .atlas-details > div { padding:13px 0; border-top:1px solid rgba(218,241,222,.16); }
body.page-article-migration .atlas-details dt { margin-bottom:4px; color:#82aa8d; font:600 8px/1.5 var(--font-sans); letter-spacing:.12em; text-transform:uppercase; }
body.page-article-migration .atlas-details dd { margin:0; color:#e2eee3; font-size:11px; line-height:1.65; }
body.page-article-migration .atlas-legend { display:grid; gap:8px; margin-top:23px; padding-top:19px; border-top:1px solid rgba(218,241,222,.16); }
body.page-article-migration .atlas-legend span { display:flex; align-items:center; gap:9px; color:#97b89d; font-size:9px; }
body.page-article-migration .atlas-legend i { display:inline-block; width:22px; height:8px; }
body.page-article-migration .legend-park { border:1px solid #9fc6a8; background:rgba(142,182,155,.12); }
body.page-article-migration .legend-route { height:0!important; border-top:2px dashed #d9b76d; }
body.page-article-migration .legend-river { height:0!important; border-top:2px solid #83bac1; }

body.page-article-migration .month-selector { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); border-block:1px solid rgba(218,241,222,.2); }
body.page-article-migration .month-selector button { min-width:0; min-height:64px; padding:10px 4px; border:0; border-left:1px solid rgba(218,241,222,.12); background:transparent; color:#a6c3aa; font-family:var(--font-sans); cursor:pointer; transition:background .2s ease,color .2s ease; }
body.page-article-migration .month-selector button:first-child { border-left:0; }
body.page-article-migration .month-selector span { display:block; color:inherit; font-size:10px; font-weight:600; line-height:1.3; }
body.page-article-migration .month-selector small { display:block; margin-top:5px; color:#789b81; font-size:7px; line-height:1.3; letter-spacing:.05em; text-transform:uppercase; }
body.page-article-migration .month-selector button:hover { background:rgba(218,241,222,.06); color:#f7f3e8; }
body.page-article-migration .month-selector button.is-active { background:var(--migration-mint); color:var(--migration-deep); }
body.page-article-migration .month-selector button.is-active small { color:#41685a; }
body.page-article-migration .atlas-credit { margin:0; padding-top:15px; color:#b8d3bd; background:transparent; font-size:9px; line-height:1.65; letter-spacing:.03em; }

body.page-article-migration .migration-ledger { margin-block:31px 42px; border-top:1px solid #cfc5ae; }
body.page-article-migration .migration-ledger > div { display:grid; grid-template-columns:95px minmax(210px,.8fr) minmax(0,1fr); gap:22px; align-items:baseline; padding:18px 0; border-bottom:1px solid #ddd4bf; }
body.page-article-migration .migration-ledger time { color:#94733b; font:600 10px/1.6 var(--font-sans); letter-spacing:.08em; text-transform:uppercase; }
body.page-article-migration .migration-ledger strong { color:#173b32; font:500 20px/1.3 var(--font-serif); }
body.page-article-migration .migration-ledger span { color:#627063; font-size:12px; line-height:1.7; }

/* A full editorial wildlife spread breaks the long read into a cinematic ecological chapter. */
body.page-article-migration .migration-spread {
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(270px,.82fr);
  grid-template-rows:auto minmax(240px,1fr);
  gap:25px 34px;
  margin-block:58px 70px;
  padding-block:28px;
  border-block:1px solid #d6cab0;
}

body.page-article-migration .migration-spread figure { margin:0; min-width:0; }
body.page-article-migration .migration-spread-main { grid-row:1 / 3; }
body.page-article-migration .migration-spread-main img { display:block; width:100%; height:100%; min-height:610px; object-fit:cover; object-position:61% center; border-radius:4px 48px 4px 4px; }
body.page-article-migration .migration-spread figcaption { padding-top:11px; color:#697366; font-size:9px; line-height:1.65; }
body.page-article-migration .migration-spread figcaption span { display:block; margin-bottom:3px; color:#94733b; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
body.page-article-migration .migration-spread-copy { align-self:center; padding:13px 8px 10px; }
body.page-article-migration .migration-spread-copy .eyebrow { margin:0 0 13px; }
body.page-article-migration .migration-spread-copy blockquote { margin:0; color:#173b32; font:italic 500 clamp(29px,3.2vw,43px)/1.25 var(--font-serif); letter-spacing:-.025em; }
body.page-article-migration .migration-spread-copy > p:last-child { margin:19px 0 0; color:#5d6d61; font-size:13px; line-height:1.85; }
body.page-article-migration .migration-spread-detail { align-self:end; }
body.page-article-migration .migration-spread-detail img { display:block; width:100%; height:240px; object-fit:cover; object-position:62% center; border-radius:28px 4px 4px 4px; }

body.page-article-migration .article-photo.migration-photo-wide { margin-block:33px 43px; }
body.page-article-migration .migration-photo-wide img { display:block; width:100%; height:clamp(330px,42vw,560px); object-fit:cover; object-position:center 56%; border-radius:5px 48px 5px 5px; }
body.page-article-migration .migration-photo-wide figcaption { display:flex; gap:20px; padding:13px 0; border-bottom:1px solid #ddd4bf; color:#6d7569; font-size:10px; line-height:1.7; }
body.page-article-migration .migration-photo-wide figcaption span { flex:none; color:#94733b; font-weight:600; letter-spacing:.09em; text-transform:uppercase; }

body.page-article-migration .migration-pullquote { margin-block:38px; padding:8px 0 8px 34px; border-left:1px solid #b89554; color:#173b32; font:italic 500 clamp(26px,3vw,37px)/1.4 var(--font-serif); }
body.page-article-migration .field-note { display:grid; grid-template-columns:68px minmax(0,1fr); gap:25px; margin-block:38px; padding-block:27px; border-block:1px solid #d6cab0; }
body.page-article-migration .field-note-number { color:#b89554; font:italic 500 36px/1 var(--font-serif); }
body.page-article-migration .field-note .eyebrow { margin:0 0 4px; }
body.page-article-migration .field-note h3 { margin:0; }
body.page-article-migration .field-note p:last-child { margin-bottom:0; }
body.page-article-migration .crossing-note { border-block-color:#d8c38c; background:rgba(247,240,223,.55); }

body.page-article-migration .season-chooser { margin-block:29px 40px; border-top:1px solid #d7ceba; }
body.page-article-migration .season-chooser > div { display:grid; grid-template-columns:55px minmax(210px,.7fr) minmax(0,1fr); gap:22px; align-items:center; padding:19px 0; border-bottom:1px solid #ddd4bf; }
body.page-article-migration .season-chooser span { color:#b89554; font:italic 500 23px/1 var(--font-serif); }
body.page-article-migration .season-chooser h3 { margin:0; font-size:21px; }
body.page-article-migration .season-chooser p { margin:0; font-size:12px; }
body.page-article-migration .migration-checklist { grid-template-columns:repeat(2,minmax(0,1fr)); }

/* Interactive decision tool: open journal lines on the left, live seasonal answer on the right. */
body.page-article-migration .migration-finder {
  margin-block:36px 54px;
  padding-block:32px;
  border-block:1px solid #cfc5ae;
}

body.page-article-migration .finder-heading { display:grid; grid-template-columns:minmax(230px,.7fr) minmax(0,1fr); gap:8px 45px; align-items:end; margin-bottom:27px; }
body.page-article-migration .finder-heading .eyebrow { grid-column:1 / -1; margin:0; }
body.page-article-migration .finder-heading h3 { margin:0; font-size:clamp(31px,3.5vw,45px); }
body.page-article-migration .finder-heading > p:last-child { margin:0; color:#627063; font-size:12px; line-height:1.8; }
body.page-article-migration .finder-layout { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr); min-width:0; border-top:1px solid #d9d0bd; }
body.page-article-migration .finder-choices { display:grid; align-content:start; min-width:0; }
body.page-article-migration .finder-choices button { position:relative; display:grid; grid-template-columns:38px minmax(0,1fr); gap:2px 12px; min-height:78px; padding:15px 22px 15px 0; border:0; border-bottom:1px solid #ddd4bf; background:transparent; color:#637064; text-align:left; cursor:pointer; transition:padding .25s ease,color .25s ease,background .25s ease; }
body.page-article-migration .finder-choices button > span { grid-row:1 / 3; color:#a08149; font:italic 500 17px/1.2 var(--font-serif); }
body.page-article-migration .finder-choices button strong { color:#173b32; font:500 18px/1.25 var(--font-serif); }
body.page-article-migration .finder-choices button small { color:#788276; font-size:8px; line-height:1.5; letter-spacing:.08em; text-transform:uppercase; }
body.page-article-migration .finder-choices button::after { content:'→'; position:absolute; right:12px; top:29px; color:#a08149; opacity:0; transform:translateX(-8px); transition:.25s ease; }
body.page-article-migration .finder-choices button:is(:hover,[aria-selected="true"]) { padding-left:14px; color:#173b32; background:rgba(218,241,222,.44); }
body.page-article-migration .finder-choices button[aria-selected="true"]::before { content:''; position:absolute; inset:0 auto 0 0; width:3px; background:#235347; }
body.page-article-migration .finder-choices button:is(:hover,[aria-selected="true"])::after { opacity:1; transform:translateX(0); }
body.page-article-migration .finder-result { min-width:0; padding:clamp(25px,3.3vw,43px); border-left:1px solid #d9d0bd; background:linear-gradient(145deg,#edf5e9,#daf1de); }
body.page-article-migration .finder-window { margin:0 0 11px!important; color:#82632f; font:600 9px/1.5 var(--font-sans); letter-spacing:.13em; text-transform:uppercase; }
body.page-article.page-article-migration.ej-article-journal .article-body .finder-result h3 { margin:0; color:#173b32; font-size:clamp(28px,3vw,39px); line-height:1.15; }
body.page-article-migration .finder-result > p:not(.finder-window) { margin:17px 0; color:#496052; font-size:13px; line-height:1.85; }
body.page-article-migration .finder-months { display:grid; grid-template-columns:repeat(12,1fr); width:100%; max-width:100%; margin-block:25px; border-block:1px solid rgba(35,83,71,.24); }
body.page-article-migration .finder-months span { display:grid; place-items:center; min-height:37px; border-left:1px solid rgba(35,83,71,.12); color:#668071; font-size:7px; text-transform:uppercase; }
body.page-article-migration .finder-months span:first-child { border-left:0; }
body.page-article-migration .finder-months span.is-window { background:#235347; color:#daf1de; }
body.page-article-migration .finder-months span.is-focus { background:#b89554; color:#0b2b26; font-weight:700; }
body.page-article-migration .finder-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 26px; margin:0; }
body.page-article-migration .finder-facts > div { padding-top:14px; border-top:1px solid rgba(35,83,71,.24); }
body.page-article-migration .finder-facts dt { color:#668071; font:600 8px/1.5 var(--font-sans); letter-spacing:.1em; text-transform:uppercase; }
body.page-article-migration .finder-facts dd { margin:5px 0 0; color:#173b32; font-size:11px; line-height:1.65; }
body.page-article-migration .finder-map-link { display:inline-flex; align-items:center; gap:16px; min-height:45px; margin-top:25px; padding:11px 18px; border:1px solid #235347; border-radius:999px; background:#235347; color:#f7f3e8; font:500 10px/1.5 var(--font-sans); cursor:pointer; }
body.page-article-migration .finder-map-link:hover { background:#0b2b26; border-color:#0b2b26; }

body.page-article-migration .migration-cta { background:linear-gradient(140deg,#dcebd9,var(--migration-mint)); }
body.page-article-migration .ethics-list { counter-reset:ethics; padding:0!important; list-style:none; border-top:1px solid #d7ceba; }
body.page-article-migration .ethics-list li { counter-increment:ethics; display:grid; grid-template-columns:minmax(190px,.62fr) minmax(0,1fr); gap:23px; margin:0!important; padding:18px 0 18px 55px!important; border-bottom:1px solid #ddd4bf; position:relative; }
body.page-article-migration .ethics-list li::before { content:counter(ethics,decimal-leading-zero); position:absolute; left:0; top:19px; color:#b89554; font:italic 500 19px/1 var(--font-serif); }
body.page-article-migration .ethics-list strong { font:500 18px/1.5 var(--font-serif); }
body.page-article-migration .ethics-list span { color:#627063; font-size:12px; line-height:1.7; }
body.page-article-migration .source-note { margin-top:48px; padding:28px 0; border-block:1px solid #d6cab0; }
body.page-article-migration .source-note h2 { margin:0; font-size:31px; }
body.page-article-migration .source-note p:last-child { margin-bottom:0; font-size:13px; }

body.page-article-migration .toc-sticky { display:grid; }
body.page-article-migration .toc-sticky > .eyebrow { margin-bottom:13px; }
body.page-article-migration .toc-sticky nav { display:grid; }
body.page-article-migration .toc-rail nav a > span { display:none; }
body.page-article-migration .toc-note { display:flex; gap:10px; margin-top:20px; padding-top:18px; border-top:1px solid #d7ceba; color:#6c776a; font-size:10px; line-height:1.7; }
body.page-article-migration .toc-note i { flex:none; color:#94733b; }

@media (max-width:1180px) {
  body.page-article-migration .article-container { width:calc(100% - 48px); }
  body.page-article-migration .article-shell { grid-template-columns:1fr; gap:0; }
  body.page-article.page-article-migration.ej-article-journal .article-container { width:calc(100% - 48px); }
  body.page-article.page-article-migration.ej-article-journal .article-shell { grid-template-columns:1fr; gap:0; }
  body.page-article-migration .toc-rail { display:none; }
  body.page-article-migration .article-main { width:min(100%,1000px); margin-inline:auto; }
  body.page-article-migration .article-body > :not(.migration-atlas):not(.migration-photo-wide) { margin-inline:auto; }
}

@media (max-width:900px) {
  body.page-article-migration .migration-hero .article-hero-shell { min-height:calc(100svh - var(--article-header-space)); }
  body.page-article-migration .migration-facts { grid-template-columns:1fr; padding:10px 24px; }
  body.page-article-migration .migration-facts > div { grid-template-columns:92px minmax(0,1fr); min-height:62px; padding:12px 0; border-left:0; border-top:1px solid rgba(218,241,222,.18); }
  body.page-article-migration .migration-facts > div:first-child { border-top:0; }
  body.page-article-migration .atlas-heading { grid-template-columns:1fr; gap:15px; }
  body.page-article-migration .atlas-layout { grid-template-columns:1fr; }
  body.page-article-migration .atlas-story { padding:25px 0 0; border-top:1px solid rgba(218,241,222,.18); border-left:0; }
  body.page-article-migration .atlas-details { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  body.page-article-migration .atlas-details > div { border-top:0; border-left:1px solid rgba(218,241,222,.16); padding:0 0 0 14px; }
  body.page-article-migration .atlas-details > div:first-child { border-left:0; padding-left:0; }
  body.page-article-migration .atlas-legend { grid-template-columns:repeat(3,1fr); }
  body.page-article-migration .month-selector { overflow-x:auto; grid-template-columns:repeat(12,minmax(64px,1fr)); scrollbar-width:thin; }
  body.page-article-migration .hero-cycle-seal { display:none; }
  body.page-article-migration .migration-spread { grid-template-columns:1fr 1fr; grid-template-rows:auto auto; }
  body.page-article-migration .migration-spread-main { grid-column:1 / -1; grid-row:auto; }
  body.page-article-migration .migration-spread-main img { min-height:440px; }
  body.page-article-migration .finder-heading { grid-template-columns:1fr; gap:12px; }
}

@media (max-width:680px) {
  body.page-article-migration .article-container { width:calc(100% - 36px); }
  body.page-article.page-article-migration.ej-article-journal .article-container { width:calc(100% - 36px); }
  body.page-article-migration .migration-atlas { width:calc(100% + 36px); margin-left:-18px; padding:26px 18px; border-radius:0 34px 0 0; }
  body.page-article-migration .atlas-map { min-height:420px; }
  body.page-article-migration .atlas-map svg { min-height:420px; }
  body.page-article-migration .atlas-toolbar { align-items:flex-start; }
  body.page-article-migration .atlas-play span { display:none; }
  body.page-article-migration .atlas-details { grid-template-columns:1fr; gap:0; }
  body.page-article-migration .atlas-details > div { border-left:0; border-top:1px solid rgba(218,241,222,.16); padding:12px 0; }
  body.page-article-migration .atlas-legend { grid-template-columns:1fr; }
  body.page-article-migration .migration-ledger > div,body.page-article-migration .season-chooser > div { grid-template-columns:70px minmax(0,1fr); gap:10px 16px; }
  body.page-article-migration .migration-ledger span,body.page-article-migration .season-chooser p { grid-column:2; }
  body.page-article-migration .migration-photo-wide img { height:330px; border-radius:3px 28px 3px 3px; }
  body.page-article-migration .migration-photo-wide figcaption { display:block; }
  body.page-article-migration .migration-photo-wide figcaption span { display:block; margin-bottom:5px; }
  body.page-article-migration .field-note { grid-template-columns:45px minmax(0,1fr); gap:15px; }
  body.page-article-migration .migration-checklist { grid-template-columns:1fr!important; }
  body.page-article-migration .ethics-list li { grid-template-columns:1fr; gap:5px; padding-left:42px!important; }
  body.page-article-migration .migration-spread { grid-template-columns:1fr; padding-block:20px; }
  body.page-article-migration .migration-spread-main { grid-column:auto; }
  body.page-article-migration .migration-spread-main img { min-height:390px; }
  body.page-article-migration .migration-spread-detail img { height:280px; }
  body.page-article-migration .finder-layout { grid-template-columns:1fr; }
  body.page-article-migration .finder-choices { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.page-article-migration .finder-choices button { padding:13px 14px; }
  body.page-article-migration .finder-choices button:is(:hover,[aria-selected="true"]) { padding-left:18px; }
  body.page-article-migration .finder-result { border-top:1px solid #d9d0bd; border-left:0; }
  body.page-article-migration .finder-months { overflow-x:auto; grid-template-columns:repeat(12,minmax(40px,1fr)); }
  body.page-article-migration .finder-map-link { width:100%; justify-content:space-between; }
}

@media (max-width:460px) {
  body.page-article-migration .migration-facts strong { font-size:25px; }
  body.page-article-migration .atlas-heading h2 { font-size:36px; }
  body.page-article-migration .atlas-map { min-height:360px; }
  body.page-article-migration .atlas-map svg { min-height:360px; }
  body.page-article-migration .atlas-story h3 { font-size:28px; }
  body.page-article-migration .migration-ledger > div,body.page-article-migration .season-chooser > div { grid-template-columns:1fr; }
  body.page-article-migration .migration-ledger span,body.page-article-migration .season-chooser p { grid-column:auto; }
  body.page-article-migration .finder-choices { grid-template-columns:1fr; }
  body.page-article-migration .finder-facts { grid-template-columns:1fr; gap:14px; }
}

@media (prefers-reduced-motion:reduce) {
  body.page-article-migration .atlas-loading > span,body.page-article-migration .focus-halo { animation:none; }
}
