/* ─────────────────────────────────────────────────────────────────────────
   In-flight entertainment (#projects) refinements on top of the original
   carousel styles in air-intro.css, plus the Flight Log glide (#experiences).
   ───────────────────────────────────────────────────────────────────────── */
.ifx-screen { max-width: 860px; }
.ifx-screen :is(a, button):focus-visible { outline: 3px solid #5a6fd6; outline-offset: 3px; }

/* "Now playing" badge sits inside the featured card, so it is never clipped. */
.ife-card { position: relative; }
.ife-card-badge {
  position: absolute; z-index: 2; top: 6px; left: 50%; transform: translateX(-50%); white-space: nowrap;
  padding: 3px 7px; border-radius: 999px; background: #2f3a5f; color: #ffd38a;
  font: 700 8px/1 Inter, sans-serif; letter-spacing: .12em; text-transform: uppercase; box-shadow: 0 3px 8px rgba(47, 58, 95, .35);
}

/* ── Flight Log glide: pinned while the plane flies stop to stop ───────── */
.explog-glide.is-gliding { position: relative; height: calc(100vh + 9 * 42vh); }
.explog-glide.is-gliding > .explog-section { position: sticky; top: var(--glide-top, 96px); }
.explog-glide.is-gliding .explog-plane { transition: none; }
/* Compact layout used while pinned, so the whole log fits one screen. */
.explog-glide.is-compact > .explog-section { padding: 18px 24px 18px; }
.explog-glide.is-compact .explog-heading { margin-bottom: 14px; }
.explog-glide.is-compact .explog-heading h2 { font-size: clamp(26px, 3.4vw, 36px); margin: 4px 0; }
.explog-glide.is-compact .explog-heading p { margin: 0; }
.explog-glide.is-compact .explog-dashboard { padding-top: 16px; padding-bottom: 18px; }
.explog-glide.is-compact .explog-slide { grid-template-columns: minmax(110px, 150px) 1fr; gap: clamp(18px, 3vw, 32px); }
.explog-glide.is-compact .explog-desc { margin-bottom: 12px; font-size: 14.5px; line-height: 1.65; max-width: 70ch; }
.explog-glide.is-compact .explog-meta { margin-bottom: 10px; padding-bottom: 8px; }
.explog-glide.is-compact .explog-closing { margin-top: 12px; padding-top: 12px; }
.explog-glide.is-compact .explog-divider { margin-top: 4px; }
@media (max-width: 760px) {
  .explog-glide.is-compact > .explog-section { padding: 10px 12px; }
  .explog-glide.is-compact .explog-heading p { display: none; }
  .explog-glide.is-compact .explog-slide { grid-template-columns: 64px 1fr; align-items: start; gap: 12px; }
  .explog-glide.is-compact .explog-frame { max-width: 64px; border-radius: 12px; padding: 10%; }
  .explog-glide.is-compact .explog-desc { font-size: 13.5px; line-height: 1.55; }
}
.explog-glide.is-compact .explog-heading > p:last-child { display: none; }
.explog-glide.is-compact .explog-closing { display: none !important; }
.explog-glide.is-compact .explog-desc { line-height: 1.58; }
/* The "Next destination" note lives just after the pinned log. */
.explog-next { max-width: 1180px; margin: 0 auto; padding: 8px 24px 40px; }
.explog-next-inner { max-width: 760px; margin: 0 auto; padding: 20px 24px; border-radius: 18px; background: rgba(250, 243, 227, .96); color: #3a281d; text-align: center; box-shadow: 0 18px 40px -24px rgba(20, 14, 30, .5); }
.explog-next-inner h3 { margin: 0 0 6px; font: 700 11px/1 Inter, sans-serif; letter-spacing: .24em; text-transform: uppercase; color: #4e385d; }
.explog-next-inner p { margin: 0 0 12px; font: 400 15px/1.6 Inter, sans-serif; }
.explog-next-inner a { display: inline-block; margin: 0 10px; font: 600 14px/1 Inter, sans-serif; color: #2f3a5f; text-underline-offset: 3px; }
/* While gliding, scrolling is the navigation: drop the prev/next row and tighten the route. */
.explog-glide.is-compact .explog-nav-controls { display: none; }
.explog-glide.is-compact .explog-heading h2 { font-size: clamp(24px, 3vw, 30px); }
.explog-glide.is-compact .explog-desc { font-size: 14px; line-height: 1.55; }
@media (max-width: 760px) {
  .explog-glide.is-compact .explog-desc { font-size: 13px; line-height: 1.5; margin-bottom: 0; }
  .explog-glide.is-compact .explog-heading > p:first-child { display: none; }
  .explog-glide.is-compact .explog-heading { margin-bottom: 8px; }
  .explog-glide.is-compact .explog-dashboard { padding: 12px 12px 14px; }
  .explog-glide.is-compact .explog-slide { grid-template-columns: 1fr; }
  .explog-glide.is-compact .explog-frame { display: none; }
}
/* The plane always flies above the stop markers. */
.explog-plane { z-index: 3; pointer-events: none; }
/* Narrow (not squash) the route while pinned, so stops stay exactly on the line. */
.explog-glide.is-compact .explog-route { width: min(100%, 780px); }
.explog-glide.is-compact .explog-route { width: min(100%, 700px); }
.explog-glide.is-compact .explog-dashboard { padding-top: 12px; padding-bottom: 14px; }
.explog-glide.is-compact .explog-desc { font-size: 13.5px; line-height: 1.5; }
.explog-glide.is-compact .explog-heading h2 { margin: 2px 0; }

/* Previous / Next stay available while gliding: compact icon buttons, bottom right. */
.explog-glide.is-compact .explog-dashboard { position: relative; }
.explog-glide.is-compact .explog-nav-controls { display: flex; position: absolute; z-index: 4; bottom: 14px; right: 18px; gap: 6px; margin: 0; padding: 0; border: 0; }
.explog-glide.is-compact .explog-navbtn { width: 32px; height: 32px; padding: 0; justify-content: center; font-size: 0; gap: 0; border-radius: 50%; }
.explog-glide.is-compact .explog-navbtn svg { width: 14px; height: 14px; }
/* On narrow screens the route spans the card, so give the buttons their own row. */


/* ── Flight Log geography: an archipelago under the route ─────────────── */
.explog-route-svg { overflow: visible; }
.explog-geo .geo-sea { fill: #dfeaf2; }
.explog-geo .geo-lat { stroke: rgba(79, 110, 140, .12); stroke-width: 1; stroke-dasharray: 2 6; fill: none; }
.explog-geo .geo-wave { fill: none; stroke: rgba(84, 124, 160, .45); stroke-width: 1.4; stroke-linecap: round; }
.explog-geo .geo-shallow { fill: rgba(170, 214, 222, .7); }
.explog-geo .geo-sand { fill: #f1e2bf; stroke: rgba(176, 150, 102, .45); stroke-width: .8; }
.explog-geo .geo-land { fill: #a8c59a; }
.explog-geo .geo-hill { fill: #9b8f7c; }
.explog-geo .geo-snow { fill: #fbf6ea; }
.explog-geo .geo-palm path { fill: none; stroke: #5e7f55; stroke-width: 1.4; stroke-linecap: round; }
.explog-geo .geo-palm path:first-child { stroke: #8a6a4a; }
.explog-geo .geo-compass circle { fill: rgba(255, 253, 247, .8); stroke: rgba(74, 51, 38, .35); }
.explog-geo .geo-compass path { fill: #4e385d; }
.explog-geo .geo-compass .geo-compass-ew { fill: #b99ad0; }
.explog-geo .geo-compass text { font: 700 8px Inter, sans-serif; fill: #4e385d; text-anchor: middle; }
/* Stop labels read cleanly over the map. */
.explog-stop-label { background: rgba(255, 253, 247, .9); padding: 2px 6px; border-radius: 999px; }

/* Scroll hint under the Flight Log while it is pinned. */
.explog-glide-hint {
  position: absolute; z-index: 6; left: 50%; transform: translateX(-50%); top: calc(100vh - var(--glide-top, 96px) - 46px); white-space: nowrap; margin: 0; padding: 7px 14px; box-shadow: 0 6px 16px -10px rgba(40, 30, 20, .5); border-radius: 999px;
  background: rgba(255, 250, 240, .86); color: #4a3a2e; border: 1px solid rgba(110, 86, 66, .2);
  font: 600 10.5px/1.3 Inter, sans-serif; letter-spacing: .14em; text-transform: uppercase; text-align: center;
}
.explog-glide-hint::after { content: ' ↓'; display: inline-block; margin-left: 4px; letter-spacing: 0; animation: cue-nudge 1.6s ease-in-out infinite; }
@keyframes cue-nudge { 0%, 100% { transform: translateY(-1px); } 50% { transform: translateY(3px); } }
@media (max-width: 760px) { .explog-glide-hint { font-size: 9.5px; letter-spacing: .1em; } }
.explog-glide-hint[hidden] { display: none; }
.explog-glide.is-gliding > .explog-section { position: sticky; }
.explog-glide-hint { transition: opacity .25s ease; }
.explog-glide-hint.is-tucked { opacity: 0; }
