/* Aeroinis atlas — second preview. One sheet over aviation-calendar.css:
   the same page, a light atlas under the jets, a transparent bar over it,
   compact controls, paper cards. Nothing here reaches the live site. */

.atlas2 { --at-paper: #FCFCFA; --at-ink: #172A37; --at-ink-2: #2F4652; --at-mut: #64747B; --at-line: #DCE3E3;
  --at-gold: #C8A96A; --at-gold-ink: #866329; --at-glass: rgba(252,252,250,.86); --at-shadow: 0 10px 30px rgba(23,42,55,.10); }

/* ── the bar: transparent over the atlas, ink on paper; over imagery it turns light with a scrim ── */
.atlas2 .avc-jpnav { height: 84px; }
.atlas2 .avc-jpnav:not(.is-solid) { background: linear-gradient(180deg, rgba(252,252,250,.82), rgba(252,252,250,0)); }
.atlas2 .avc-jpnav:not(.is-solid) .jp-mark, .atlas2 .avc-jpnav:not(.is-solid) nav a, .atlas2 .avc-jpnav:not(.is-solid) .jp-lang b,
.atlas2 .avc-jpnav:not(.is-solid) .jp-lang a, .atlas2 .avc-jpnav:not(.is-solid) .jp-ghost { color: var(--at-ink); text-shadow: none; }
.atlas2 .avc-jpnav:not(.is-solid) .jp-mark__w i, .atlas2 .avc-jpnav:not(.is-solid) nav a.is-here { color: var(--at-gold-ink); }
.atlas2 .avc-jpnav:not(.is-solid) .jp-ghost { border-color: var(--at-ink); }
.atlas2 .avc-jpnav:not(.is-solid) .jp-ghost:hover { background: var(--at-ink); color: #fff; }
.atlas2 .avc-jpnav:not(.is-solid) .jp-burger i { background: var(--at-ink); }
body.atlas2.is-sat .avc-jpnav:not(.is-solid) { background: linear-gradient(180deg, rgba(8,12,22,.62), rgba(8,12,22,0)); }
body.atlas2.is-sat .avc-jpnav:not(.is-solid) .jp-mark, body.atlas2.is-sat .avc-jpnav:not(.is-solid) nav a, body.atlas2.is-sat .avc-jpnav:not(.is-solid) .jp-lang b,
body.atlas2.is-sat .avc-jpnav:not(.is-solid) .jp-lang a, body.atlas2.is-sat .avc-jpnav:not(.is-solid) .jp-ghost { color: #F5F4F0; text-shadow: 0 1px 8px rgba(5,7,15,.6); }
body.atlas2.is-sat .avc-jpnav:not(.is-solid) .jp-ghost { border-color: var(--at-gold); }
body.atlas2.is-sat .avc-jpnav:not(.is-solid) .jp-burger i { background: #F5F4F0; }

/* ── the hero: the map is the page ── */
.atlas2 .avc-maphold--hero [data-avc-map] { height: min(86svh, 860px); min-height: 520px; }
.atlas2 .avc-maphold--hero .maplibregl-ctrl-top-right { top: 152px; right: 18px; }
.atlas2 .maplibregl-ctrl-group { border-radius: 10px; box-shadow: var(--at-shadow); }


/* ── the controls: one pill, top-right, under the bar ── */
.atlas2 .avc-layers { top: 100px; right: 18px; left: auto; gap: 6px; padding: 5px; background: var(--at-glass); border: 1px solid var(--at-line); border-radius: 12px;
  box-shadow: var(--at-shadow); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); align-items: center; }
.atlas2 .avc-layers button { min-height: 40px; min-width: 40px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--at-ink-2);
  font: 700 11px/1 Satoshi, sans-serif; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.atlas2 .avc-layers button:hover { background: rgba(23,42,55,.06); }
.atlas2 .avc-layers button.is-on { background: var(--at-ink); color: #F5F4F0; border-color: transparent; }
.atlas2 .avc-layers button:focus-visible { outline: 2px solid var(--at-gold); outline-offset: 2px; }
.atlas2 .avc-layers .at-seg { display: inline-flex; gap: 2px; padding: 2px; border-radius: 9px; background: rgba(23,42,55,.06); margin-right: 4px; }
.atlas2 .avc-layers .at-seg button { min-height: 34px; }
.atlas2 .avc-layers .at-ico { padding: 0; font-size: 15px; }
.atlas2 .avc-layers .at-ico.is-on { background: transparent; color: var(--at-ink); box-shadow: inset 0 -2px 0 var(--at-gold); }
.atlas2 .avc-layers .at-ico:not(.is-on) { color: var(--at-mut); opacity: .7; }

/* ── the altitude profile on paper ── */
.atlas2 .avc-alt { background: var(--at-glass); border: 1px solid var(--at-line); box-shadow: var(--at-shadow); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); left: 24px; bottom: 24px; width: 188px; }
.atlas2 .avc-alt > b { color: var(--at-mut); }
.atlas2 .avc-alt__b em { color: var(--at-ink); }
.atlas2 .avc-alt__b span { color: var(--at-mut); }
.atlas2 .avc-alt__b i { background: linear-gradient(to top, var(--c) var(--h), rgba(23,42,55,.08) var(--h)); }
.atlas2 .avc-alt__b { min-height: 44px; }
.atlas2 .avc-alt.is-filtered > b { color: var(--at-gold-ink); }

/* the feed, bottom-right */
.at-feed { position: absolute; z-index: 5; left: 24px; top: 100px; display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 10px;
  background: var(--at-glass); border: 1px solid var(--at-line); box-shadow: var(--at-shadow); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  font: 500 11px/1 Satoshi, sans-serif; color: var(--at-mut); }
.at-feed b { font: 600 15px/1 ui-monospace, Consolas, monospace; color: var(--at-ink); }
.at-feed [data-avc-status] { font: 500 10px/1 ui-monospace, Consolas, monospace; color: var(--at-gold-ink); padding-left: 8px; border-left: 1px solid var(--at-line); }
.at-feed i { width: 7px; height: 7px; border-radius: 50%; background: var(--avc-live, #2f8f5b); box-shadow: 0 0 8px rgba(47,143,91,.6); }

/* ── airports: a dot far out, the code as the map comes in ── */
.atlas2 .avc-hub b { background: var(--at-paper); color: var(--at-ink); border: 1px solid var(--at-line); box-shadow: 0 2px 8px rgba(23,42,55,.12); }
.atlas2 .avc-hub--main b { color: var(--at-gold-ink); border-color: var(--at-gold); }
.atlas2 .avc-hub.is-far b { display: none; }
.atlas2 .avc-hub.is-far.avc-hub--main b { display: block; }
body.is-sat .avc-hub b { background: rgba(8,12,22,.7); color: #F5F4F0; border-color: rgba(245,244,240,.25); }

/* ── the cards, on paper ── */
.atlas2 .avc-pop { background: var(--at-paper); border: 1px solid var(--at-line); box-shadow: var(--at-shadow); backdrop-filter: none; -webkit-backdrop-filter: none; color: var(--at-ink); }
.atlas2 .maplibregl-popup-anchor-bottom .maplibregl-popup-tip { border-top-color: var(--at-paper); }
.atlas2 .maplibregl-popup-anchor-top .maplibregl-popup-tip { border-bottom-color: var(--at-paper); }
.atlas2 .maplibregl-popup-close-button { color: var(--at-mut); font-size: 16px; width: 30px; height: 30px; border-radius: 999px; }
.atlas2 .maplibregl-popup-close-button:hover { background: rgba(23,42,55,.06); color: var(--at-ink); }
.atlas2 .avc-pop b { color: var(--at-ink); }
.atlas2 .avc-pop span { color: var(--at-gold-ink); }
.atlas2 .avc-pop em { color: var(--at-mut); }
.atlas2 .avc-pop i { color: var(--at-ink); }
.atlas2 .avc-pop svg path, .atlas2 .avc-pop svg polygon { fill: var(--at-ink); }
.atlas2 .avc-pop__grid { background: var(--at-line); border-top: 1px solid var(--at-line); }
.atlas2 .avc-pop__grid > div { background: var(--at-paper); }
.atlas2 .avc-pop__grid em { color: var(--at-mut); }
.atlas2 .avc-pop__grid i { color: var(--at-ink); }
.atlas2 .avc-pop__grid small { color: var(--at-mut); }
.atlas2 .avc-pop__id { background: rgba(200,169,106,.12); border-top-color: rgba(200,169,106,.5); }
.atlas2 .avc-pop__id em { color: var(--at-gold-ink); }
.atlas2 .avc-pop__id b { color: var(--at-ink); }
.atlas2 .avc-pop__id small { color: var(--at-mut); }
.atlas2 .avc-pop .avc-pcredit { color: var(--at-mut); }
.atlas2 .avc-pop .avc-pcredit:hover { color: var(--at-gold-ink); }

/* the airfield card: photograph, name and code, city, a line, the count said plainly */
.atlas2 .avc-pop--field { width: 272px; }
.atlas2 .avc-pop--field .avc-pop__media { position: relative; height: 140px; overflow: hidden; background: #E9EDF2; }
.atlas2 .avc-pop--field .avc-pop__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0; opacity: 0; transition: opacity .45s ease; }
.atlas2 .avc-pop--field .avc-pop__media.is-photo img { opacity: 1; }
.atlas2 .avc-pop__plate { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(135deg, #1B3050, #0B1220); }
.atlas2 .avc-pop__plate b { font: 500 40px/1 Newsreader, Georgia, serif; letter-spacing: .04em; color: rgba(255,255,255,.92); padding: 0; }
.atlas2 .avc-pop__plate small { position: absolute; left: 14px; bottom: 12px; font: 700 9px/1 Satoshi, sans-serif; letter-spacing: .2em; color: rgba(255,255,255,.7); }
.atlas2 .avc-pop__credit { position: absolute; right: 8px; bottom: 6px; font: 500 8.5px/1 ui-monospace, Consolas, monospace; color: rgba(255,255,255,.85); background: rgba(5,7,15,.5); padding: 3px 6px; border-radius: 4px; text-decoration: none; }
.atlas2 .avc-pop--field .avc-pop__head { padding: 12px 16px 6px; }
.atlas2 .avc-pop--field .avc-pop__head b { padding: 0; font: 400 19px/1.15 Newsreader, Georgia, serif; }
.atlas2 .avc-pop--field .avc-pop__head span { padding: 0; margin: 4px 0 0; font: 500 11px/1.4 Satoshi, sans-serif; letter-spacing: 0; color: var(--at-mut); }
.atlas2 .avc-pop--field .avc-pop__head code { font: 700 10.5px/1 ui-monospace, Consolas, monospace; letter-spacing: .12em; color: var(--at-gold-ink); }
.atlas2 .avc-pop__note { margin: 0; padding: 0 16px 12px; font: 400 12.5px/1.5 Satoshi, sans-serif; color: var(--at-ink-2); }
.atlas2 .avc-pop--field .avc-pop__grid { grid-template-columns: 1fr 1fr; }
.atlas2 .avc-pop--field .avc-pop__grid > div.is-wide { grid-column: 1 / -1; }
.atlas2 .avc-pop--field .avc-pop__grid > a { display: block; background: var(--at-paper); padding: 10px 16px 12px; min-width: 0; text-decoration: none; color: inherit; }
.atlas2 .avc-pop--field .avc-pop__grid > a em { display: block; width: auto; font: 700 7.5px/1 Satoshi, sans-serif; font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--at-mut); margin-bottom: 4px; }
.atlas2 .avc-pop--field .avc-pop__grid > a i { display: block; font: 600 14px/1.15 ui-monospace, Consolas, monospace; font-style: normal; color: var(--at-gold-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.atlas2 .avc-pop--field .avc-pop__grid > a small { display: block; font: 500 9px/1.3 ui-monospace, Consolas, monospace; color: var(--at-mut); margin-top: 2px; }
.atlas2 .avc-pop--field .avc-pop__grid > a:hover i { text-decoration: underline; text-underline-offset: 3px; }
.atlas2 .avc-pop--field .avc-pop__grid > a.is-none i { color: var(--at-mut); font-weight: 500; }
.atlas2 .avc-pop--field .avc-pop__grid > div:not(.is-wide) i { font-size: 12.5px; white-space: normal; }
.atlas2 .avc-pop--field .avc-pop__grid > div:not(.is-wide) small { white-space: normal; }
.atlas2 .avc-pop--field .avc-pop__media { height: 122px; }
.atlas2 .avc-pop__note { padding-bottom: 10px; }
.atlas2 .avc-pop--field .avc-pop__grid > div { padding: 10px 16px 12px; }
.atlas2 .avc-pop__credit { opacity: 0; transition: opacity .3s; }
.atlas2 .is-photo .avc-pop__credit { opacity: 1; }
.atlas2 .avc-pop--field .avc-pop__grid > div.is-wide i { font-size: 20px; }
.atlas2 .avc-pop--field .avc-pop__grid small { white-space: normal; margin-top: 4px; }

/* ── the rest of the page keeps the light calendar sheet; only the intro tightens ── */
.atlas2 .avc-tickwrap--in { margin-top: 0; }
.atlas2 .avc-intro { padding-top: 34px; }

/* the phone menu stays folded until asked */
.atlas2 .jp-mobnav[hidden] { display: none; }

/* ── the phone ── */
@media (max-width: 640px) {
  .atlas2 .avc-jpnav { height: 62px; }
  .atlas2 .avc-maphold--hero [data-avc-map] { height: 74svh; min-height: 440px; }
  .atlas2 .avc-layers { top: 72px; right: 10px; left: 10px; justify-content: space-between; padding: 4px; }
  .atlas2 .avc-layers button { min-height: 40px; padding: 0 10px; font-size: 10px; }
  .atlas2 .avc-layers .at-seg { margin-right: 0; }
  .atlas2 .avc-maphold--hero .maplibregl-ctrl-top-right { top: 126px; }
  .atlas2 .avc-alt { left: 10px; bottom: 10px; width: 156px; }
  .at-feed { left: 10px; top: auto; bottom: 10px; right: auto; padding: 7px 10px; gap: 6px; }
  .atlas2 .avc-alt { bottom: 52px; }
  .at-feed [data-avc-status] { display: none; }
  .atlas2 .avc-maphold--hero .maplibregl-ctrl-bottom-right { bottom: 58px; }
}

/* ── the time rail under the map, and the calendar that opens from it ──
   The rail: LIVE · the next six months · "Explore events" with the next
   date. The panel: agenda with a mini month beside it, or a month grid
   with bars. One event opens in a column beside the map, and the map
   moves to it. Colours are the category's; the paper is the page's. */
.at-stage { display: flex; align-items: stretch; }
.at-stage .avc-maphold { flex: 1 1 auto; min-width: 0; }
.at-return { position: absolute; z-index: 6; top: 150px; left: 24px; padding: 10px 14px; border: 1px solid var(--at-line); border-radius: 9px; background: var(--at-glass); color: var(--at-ink);
  font: 600 11px/1 Satoshi, sans-serif; box-shadow: var(--at-shadow); cursor: pointer; }
.at-return:hover { border-color: var(--at-ink); }
body.atlas2.is-calendar .avc-maphold--hero [data-avc-map] { height: min(46svh, 470px); min-height: 320px; }
body.atlas2.is-calendar .avc-alt, body.atlas2.has-detail .avc-alt { display: none; }

.at-dock { display: flex; align-items: center; gap: 16px; height: 68px; padding: 0 clamp(20px, 4vw, 48px); border-bottom: 1px solid var(--at-line); background: var(--at-paper); }
.at-dock__live { height: 100%; display: inline-flex; align-items: center; gap: 8px; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; color: var(--at-mut);
  font: 700 10px/1 Satoshi, sans-serif; letter-spacing: .14em; cursor: pointer; }
.at-dock__live i { width: 6px; height: 6px; border-radius: 50%; background: var(--avc-live, #2f8f5b); box-shadow: 0 0 8px rgba(47,143,91,.6); }
.at-dock__live.is-on { color: var(--at-ink); border-bottom-color: var(--at-gold); }
.at-dock__months { display: flex; align-items: stretch; gap: 6px; height: 100%; overflow: auto; scrollbar-width: none; }
.at-dock__months button { min-width: 54px; padding: 0 6px; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; color: var(--at-ink-2); font: 500 12.5px/1 Satoshi, sans-serif; cursor: pointer; }
.at-dock__months button small { display: block; height: 8px; margin-top: 4px; font-size: 8px; color: var(--at-mut); }
.at-dock__months button:hover { color: var(--at-ink); }
.at-dock__months button.is-on { color: var(--at-ink); border-bottom-color: var(--at-gold-ink); }
.at-dock__toggle { margin-left: auto; display: grid; grid-template-columns: 1fr auto; column-gap: 22px; min-width: 240px; padding: 8px 0 8px 22px; border: 0; border-left: 1px solid var(--at-line); background: none; text-align: left; cursor: pointer; }
.at-dock__toggle span { font: 600 12px/1.3 Satoshi, sans-serif; color: var(--at-ink); }
.at-dock__toggle em { font: 500 10px/1.4 ui-monospace, Consolas, monospace; font-style: normal; color: var(--at-mut); white-space: nowrap; max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.at-dock__toggle b { grid-column: 2; grid-row: 1 / 3; align-self: center; font: 400 21px/1 Newsreader, Georgia, serif; color: var(--at-gold-ink); }
.at-dock__toggle:hover span { color: var(--at-gold-ink); }

.at-panel { padding: 22px clamp(20px, 4vw, 48px) 14px; background: var(--at-paper); border-bottom: 1px solid var(--at-line); }
.at-eyebrow { font: 700 9px/1 Satoshi, sans-serif; letter-spacing: .2em; color: var(--at-gold-ink); }
.at-panel__top { display: flex; align-items: center; gap: 24px; }
.at-panel__top h2 { margin: 5px 0 0; font: 400 28px/1.1 Newsreader, Georgia, serif; letter-spacing: -.02em; color: var(--at-ink); outline-offset: 4px; }
.at-panel__top p { margin: 0 0 0 auto; font: 500 10px/1.5 Satoshi, sans-serif; color: var(--at-mut); text-align: right; }
.at-panel__top strong { font-weight: 500; color: var(--at-ink); }
.at-tabs { display: flex; gap: 2px; padding: 3px; border: 1px solid var(--at-line); border-radius: 10px; background: #F0F2EF; }
.at-tabs button { min-height: 32px; padding: 4px 15px; border: 0; border-radius: 8px; background: transparent; color: var(--at-ink-2); font: 600 12px/1 Satoshi, sans-serif; cursor: pointer; }
.at-tabs button.is-on { background: var(--at-ink); color: #fff; }
.at-panel__ctl { display: flex; align-items: center; gap: 12px; margin-top: 8px; padding: 12px 0; border-bottom: 1px solid var(--at-line); }
.at-mnav { display: flex; align-items: center; gap: 4px; }
.at-arrow { min-width: 34px; min-height: 34px; border: 0; border-radius: 8px; background: none; color: var(--at-ink); font: 400 22px/1 Newsreader, Georgia, serif; cursor: pointer; }
.at-arrow:hover { background: #F0F2EF; }
.at-mnav select { width: 172px; padding: 8px 4px; border: 0; background: transparent; color: var(--at-ink); font: 500 14px/1 Satoshi, sans-serif; cursor: pointer; }
.at-today { min-height: 32px; margin-left: 6px; padding: 0 12px; border: 1px solid var(--at-line); border-radius: 8px; background: #fff; color: var(--at-ink); font: 600 11px/1 Satoshi, sans-serif; cursor: pointer; }
.at-today:hover { border-color: var(--at-ink); }
.at-search { display: flex; align-items: center; gap: 7px; margin-left: auto; }
.at-search span { font-size: 20px; color: var(--at-mut); }
.at-search input { width: 210px; padding: 8px 0; border: 0; border-bottom: 1px solid transparent; background: transparent; color: var(--at-ink); font: 500 12px/1 Satoshi, sans-serif; }
.at-search input:focus { outline: 0; border-bottom-color: var(--at-gold); }
.at-panel select[data-at-cat] { max-width: 160px; padding: 8px 10px; border: 1px solid var(--at-line); border-radius: 8px; background: #fff; color: var(--at-ink); font: 500 11px/1 Satoshi, sans-serif; }
.at-text { padding: 5px; border: 0; background: none; color: var(--at-gold-ink); font: 600 10px/1 Satoshi, sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.at-panel__body { display: flex; gap: 30px; padding-top: 12px; }
.at-mini { flex: 0 0 236px; padding-right: 26px; border-right: 1px solid var(--at-line); }
.at-panel.is-month .at-mini { display: none; }
.at-mini__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.at-mini__grid span { padding: 6px 0; font: 600 9px/1 Satoshi, sans-serif; text-align: center; color: var(--at-mut); }
.at-mini__grid button { position: relative; min-height: 28px; padding: 4px 0; border: 0; border-radius: 6px; background: none; color: var(--at-ink); font: 500 11px/1 Satoshi, sans-serif; cursor: pointer; }
.at-mini__grid button:hover { background: #F0F2EF; }
.at-mini__grid .is-out { color: #A9B0B0; }
.at-mini__grid .is-today { outline: 1px solid var(--at-gold); outline-offset: -2px; }
.at-mini__grid .has-ev::after { content: ''; position: absolute; left: calc(50% - 1.5px); bottom: 2px; width: 3px; height: 3px; border-radius: 50%; background: var(--at-gold-ink); }
.at-mini__grid .is-sel { background: var(--at-ink); color: #fff; }
.at-mini__grid .is-sel::after { background: var(--at-gold); }
.at-panel__content { flex: 1; min-width: 0; }
.at-results { display: flex; align-items: center; justify-content: space-between; min-height: 22px; font: 500 10px/1 ui-monospace, Consolas, monospace; color: var(--at-mut); }
.at-row { display: flex; align-items: center; gap: 22px; width: 100%; padding: 14px 6px; border: 0; border-bottom: 1px solid var(--at-line); border-radius: 8px; background: none; color: var(--at-ink); text-align: left; cursor: pointer; }
.at-row:hover, .at-row:focus-visible { background: #F3F1EA; }
.at-row__d { min-width: 78px; max-width: 110px; }
.at-row__d b { display: block; font: 500 24px/1 Newsreader, Georgia, serif; letter-spacing: -.03em; }
.at-row__d small { display: block; margin-top: 4px; font: 700 9px/1 Satoshi, sans-serif; letter-spacing: .1em; color: var(--at-mut); }
.at-row__n { flex: 1; min-width: 0; }
.at-row__n b { display: block; font: 500 15px/1.25 Satoshi, sans-serif; }
.at-row__n small { display: block; margin-top: 3px; font: 500 11px/1.3 Satoshi, sans-serif; color: var(--at-mut); }
.at-row__c { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 6px; background: #EDF1EF; color: #66767B; font: 600 10px/1 Satoshi, sans-serif; white-space: nowrap; }
.at-row__c i { width: 6px; height: 6px; border-radius: 50%; }
.at-row__a { font: 400 21px/1 Newsreader, Georgia, serif; color: var(--at-gold-ink); }
.at-empty { padding: 20px 0; color: var(--at-mut); font: 500 13px/1.5 Satoshi, sans-serif; }
.at-empty p { margin: 4px 0; }
.at-empty button { margin-top: 10px; padding: 9px 15px; border: 1px solid var(--at-gold); border-radius: 8px; background: none; color: var(--at-ink); font: 600 11px/1 Satoshi, sans-serif; cursor: pointer; }
.at-week__head, .at-week__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.at-week__head span { padding: 9px; font: 600 10px/1 Satoshi, sans-serif; color: var(--at-mut); }
.at-week { position: relative; padding-bottom: 7px; border-top: 1px solid var(--at-line); }
.at-week__days button { height: 30px; padding: 4px 9px; border: 0; border-right: 1px solid var(--at-line); background: none; color: var(--at-ink); font: 500 11px/1 Satoshi, sans-serif; text-align: left; cursor: pointer; }
.at-week__days button:last-child { border-right: 0; }
.at-week__days .is-out { color: #A8B0AE; }
.at-week__days .is-today { color: var(--at-gold-ink); font-weight: 700; }
.at-week__days .is-sel { background: #F0F2EF; }
.at-week__bars { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; min-height: 26px; }
.at-bar { min-height: 26px; margin: 0 3px; padding: 4px 8px; border: 0; border-left: 3px solid var(--c, var(--at-gold-ink)); border-radius: 4px; background: color-mix(in srgb, var(--c, var(--at-gold-ink)) 14%, #fff);
  color: var(--at-ink); font: 500 10.5px/1 Satoshi, sans-serif; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.at-bar:hover { background: color-mix(in srgb, var(--c, var(--at-gold-ink)) 28%, #fff); }
.at-source { margin: 12px 0 0; font: 500 9.5px/1.4 ui-monospace, Consolas, monospace; color: var(--at-mut); }

/* ── one event, beside the map ── */
.at-detail { flex: 0 0 344px; max-height: max(520px, min(86svh, 860px)); box-sizing: border-box; padding: 100px 22px 22px; border-left: 1px solid var(--at-line); background: var(--at-paper); overflow: auto; overscroll-behavior: contain; }
.at-detail__back { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; margin-bottom: 16px; border: 0; background: none; color: var(--at-ink-2); font: 600 11px/1 Satoshi, sans-serif; cursor: pointer; }
.at-detail__back span:last-child { font-size: 20px; }
.at-detail__back:hover { color: var(--at-gold-ink); }
.at-detail__media { position: relative; height: 128px; margin-bottom: 14px; border-radius: 12px; overflow: hidden; background: color-mix(in srgb, var(--c, #C8A96A) 18%, #fff); }
.at-detail__media img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .4s; }
.at-detail__media.is-photo img { opacity: 1; }
.at-detail__media .avc-ev__credit { position: absolute; right: 8px; bottom: 6px; font: 500 8.5px/1 ui-monospace, Consolas, monospace; color: #fff; text-decoration: none; text-shadow: 0 1px 4px rgba(0,0,0,.7); }
.at-detail h2 { margin: 6px 0 8px; font: 400 27px/1.12 Newsreader, Georgia, serif; letter-spacing: -.02em; color: var(--at-ink); outline-offset: 3px; }
.at-detail__date { font: 600 12.5px/1.4 Satoshi, sans-serif; color: var(--at-gold-ink); }
.at-detail__date s { margin-left: 6px; padding: 2px 6px; border: 1px solid var(--at-line); border-radius: 4px; font-size: 9px; color: var(--at-mut); text-decoration: none; }
.at-detail__place { margin: 4px 0 0; font: 500 12px/1.4 Satoshi, sans-serif; color: var(--at-mut); }
.at-detail__verify { padding: 10px 0; border-block: 1px solid var(--at-line); font: 500 10px/1.5 Satoshi, sans-serif; color: var(--at-mut); }
.at-detail__verify a { color: var(--at-gold-ink); }
.at-detail__live { margin: 16px 0; padding: 12px; border-radius: 10px; background: #F0F2EF; color: var(--at-ink); font: 500 11px/1.4 ui-monospace, Consolas, monospace; }
.at-detail__live b { display: block; margin-bottom: 6px; font: 700 9px/1 Satoshi, sans-serif; letter-spacing: .14em; color: var(--at-mut); }
.at-detail__live small { display: block; margin-top: 6px; font: 500 10px/1.4 Satoshi, sans-serif; color: var(--at-mut); }
.at-detail__act { display: grid; gap: 8px; }
.at-detail__act a, .at-detail__act button { padding: 11px 12px; border: 1px solid #CBD0CE; border-radius: 10px; background: #fff; color: var(--at-ink); font: 600 12px/1 Satoshi, sans-serif; text-align: center; text-decoration: none; cursor: pointer; }
.at-detail__act .is-primary { background: var(--at-ink); border-color: var(--at-ink); color: #fff; }
.at-detail__act .is-primary:hover { background: var(--at-ink-2); }
.at-detail__act .at-text { border: 0; background: none; font-size: 11px; }
.at-pin { position: relative; width: 22px; height: 22px; border: 2px solid var(--at-gold); border-radius: 50%; background: #fff; box-shadow: 0 0 0 8px rgba(200,169,106,.22); }
.at-pin::after { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: var(--at-gold); }
.at-toast { position: fixed; left: 50%; bottom: 24px; z-index: 99; transform: translateX(-50%); max-width: 90%; padding: 12px 22px; border-radius: 10px; background: var(--at-ink); color: #fff; font: 500 12px/1.3 Satoshi, sans-serif; box-shadow: var(--at-shadow); }

@media (max-width: 1000px) {
  .at-detail { flex-basis: 300px; padding-inline: 18px; }
  .at-mini { flex-basis: 206px; padding-right: 16px; }
  .at-panel__body { gap: 20px; }
  .at-search input { width: 160px; }
  .at-dock__toggle { min-width: 180px; }
  .at-dock__toggle em { max-width: 160px; }
}
@media (max-width: 700px) {
  .at-dock { height: 60px; gap: 10px; padding: 0 14px; }
  .at-dock__months { flex: 1; gap: 0; padding-right: 22px; -webkit-mask-image: linear-gradient(90deg, #000 78%, transparent); mask-image: linear-gradient(90deg, #000 78%, transparent); }
  .at-dock__months button { min-width: 42px; font-size: 11px; }
  .at-dock__toggle { min-width: 0; padding-left: 10px; column-gap: 8px; }
  .at-dock__toggle span { max-width: 84px; font-size: 10px; }
  .at-dock__toggle em { display: none; }
  .at-panel { padding: 14px 16px 12px; }
  .at-panel__top { gap: 10px; }
  .at-panel__top h2 { font-size: 22px; }
  .at-panel__top p { display: none; }
  .at-tabs { margin-left: auto; }
  .at-tabs button { padding: 3px 11px; }
  .at-panel__ctl { flex-wrap: wrap; gap: 8px; padding: 8px 0; }
  .at-mnav { flex: 1; }
  .at-arrow { min-width: 29px; }
  .at-mnav select { width: 138px; font-size: 12px; }
  .at-today { margin-left: 0; padding: 0 8px; }
  .at-search { order: 3; flex: 1 1 100%; margin: 0; border-bottom: 1px solid var(--at-line); }
  .at-search input { width: 100%; font-size: 11px; }
  .at-panel select[data-at-cat] { order: 4; max-width: 140px; padding: 7px; font-size: 10px; }
  .at-panel [data-at-clear] { order: 5; }
  .at-mini { display: none; }
  .at-panel__body { padding-top: 5px; }
  .at-row { gap: 12px; padding: 12px 2px; }
  .at-row__d { min-width: 56px; }
  .at-row__d b { font-size: 21px; }
  .at-row__d small { font-size: 8px; }
  .at-row__n b { font-size: 13px; line-height: 1.3; }
  .at-row__n small { font-size: 10px; }
  .at-row__c { display: none; }
  .at-row__a { font-size: 17px; }
  .at-week__head span { padding: 6px 0; font-size: 9px; text-align: center; }
  .at-week__days button { padding: 3px 4px; font-size: 10px; }
  .at-week__bars { gap: 2px; }
  .at-bar { margin: 0 1px; padding: 4px; font-size: 9px; }
  /* the event as a sheet over the map: the pin stays in view above it */
  .at-detail { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; max-height: 62svh; overflow: auto; padding: 10px 16px 24px; border: 0; border-top: 1px solid var(--at-line); box-sizing: border-box;
    border-radius: 18px 18px 0 0; box-shadow: 0 -12px 40px rgba(23,42,55,.18); overscroll-behavior: contain; }
  .at-detail::before { content: ''; display: block; width: 36px; height: 4px; margin: 0 auto 10px; border-radius: 2px; background: var(--at-line); }
  .at-detail__media { float: right; width: 110px; height: 90px; margin: 0 0 10px 12px; }
  .at-detail h2 { font-size: 23px; margin: 6px 0 8px; }
  .at-detail__facts { clear: both; }
  .at-detail__act { grid-template-columns: 1fr 1fr; }
  .at-detail__act .is-primary { grid-column: 1 / -1; }
  .at-return { top: auto; bottom: 58px; left: 10px; padding: 8px 10px; font-size: 10px; }
  body.atlas2.has-detail .at-return { display: none; }   /* the sheet's own back button does the job */
  .at-facts__grid { grid-template-columns: 1fr 1fr; }
  .at-facts__grid > .is-wide { grid-column: 1 / -1; }
}

/* ── the rail knows how full each month is ── */
.at-dock__months button u { display: flex; justify-content: center; gap: 2px; height: 4px; margin-top: 4px; text-decoration: none; }
.at-dock__months button u i { width: 3px; height: 3px; border-radius: 50%; background: var(--at-gold-ink); opacity: .7; }
.at-dock__months button small:empty + u { margin-top: 0; }

/* ── the three facts under an event, and the origin they are counted from ── */
.at-detail__facts { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--at-line); }
.at-origin { margin-bottom: 10px; }
.at-origin label { display: block; margin-bottom: 5px; font: 700 9px/1 Satoshi, sans-serif; letter-spacing: .14em; color: var(--at-mut); }
.at-origin__field { position: relative; display: flex; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid var(--at-line); border-radius: 9px; background: #fff; }
.at-origin__field:focus-within { border-color: var(--at-gold); }
.at-origin__field > span { font-size: 16px; color: var(--at-mut); }
.at-origin__field input { flex: 1; min-width: 0; padding: 9px 0; border: 0; background: transparent; color: var(--at-ink); font: 600 12.5px/1 Satoshi, sans-serif; }
.at-origin__field input:focus { outline: 0; }
.at-origin__field input::-webkit-search-cancel-button { display: none; }
.at-suggest { position: absolute; z-index: 5; left: -1px; right: -1px; top: calc(100% + 4px); max-height: 264px; overflow: auto; padding: 4px; border: 1px solid var(--at-line); border-radius: 10px; background: #fff; box-shadow: var(--at-shadow); }
.at-suggest button { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 8px 10px; border: 0; border-radius: 7px; background: none; color: var(--at-ink); text-align: left; cursor: pointer; }
.at-suggest button:hover, .at-suggest button:focus-visible { background: #F0F2EF; outline: 0; }
.at-suggest b { display: block; font: 600 12px/1.2 Satoshi, sans-serif; }
.at-suggest small { display: block; margin-top: 2px; font: 500 10px/1.2 Satoshi, sans-serif; color: var(--at-mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; }
.at-suggest code { flex: none; font: 600 10.5px/1 ui-monospace, Consolas, monospace; color: var(--at-gold-ink); }
.at-facts__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.at-facts__grid > div, .at-facts__grid > a { min-width: 0; padding: 10px 12px 11px; border-radius: 10px; background: #F0F2EF; color: inherit; text-decoration: none; }
.at-facts__grid > .is-wide { grid-column: 1 / -1; background: color-mix(in srgb, var(--at-gold) 16%, #fff); }
.at-facts__grid em { display: block; margin-bottom: 4px; font: 700 7.5px/1 Satoshi, sans-serif; font-style: normal; letter-spacing: .14em; color: var(--at-mut); }
.at-facts__grid i { display: block; font: 600 15px/1.15 ui-monospace, Consolas, monospace; font-style: normal; color: var(--at-ink); overflow-wrap: anywhere; }
.at-facts__grid > .is-wide i { font-size: 20px; color: var(--at-gold-ink); }
.at-facts__grid > div:not(.is-wide) i, .at-facts__grid > a i { font-size: 14px; }
.at-facts__grid small { display: block; margin-top: 3px; font: 500 9.5px/1.35 Satoshi, sans-serif; color: var(--at-mut); }
.at-facts__type { color: var(--at-ink-2); }
.at-facts__type b { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 8.5px; }
.at-facts__grid > a:hover i { text-decoration: underline; text-underline-offset: 3px; }
.at-facts__grid > a.is-none i { color: var(--at-mut); font-weight: 500; }
.at-detail__fine { margin: 12px 0 14px; font: 500 9.5px/1.5 Satoshi, sans-serif; color: var(--at-mut); }
.at-detail__fine a { color: var(--at-gold-ink); }

/* ── the quote cell: the party, the type, the figure, the maths ── */
.at-quote__ctl { display: flex; align-items: flex-end; gap: 8px; margin: 4px 0 10px; }
.at-quote__ctl em { display: block; margin-bottom: 4px; font: 700 7.5px/1 Satoshi, sans-serif; font-style: normal; letter-spacing: .14em; color: var(--at-mut); }
.at-pax { flex: none; }
.at-pax button { width: 28px; height: 30px; border: 1px solid var(--at-line); background: #fff; color: var(--at-ink); font: 600 15px/1 Satoshi, sans-serif; cursor: pointer; }
.at-pax button:first-of-type { border-radius: 8px 0 0 8px; }
.at-pax button:last-of-type { border-radius: 0 8px 8px 0; }
.at-pax button:hover { background: #F0F2EF; }
.at-pax b { display: inline-block; min-width: 30px; height: 30px; border-block: 1px solid var(--at-line); background: #fff; font: 700 13px/30px ui-monospace, Consolas, monospace; text-align: center; vertical-align: top; }
.at-type { flex: 1; min-width: 0; }
.at-type select { width: 100%; padding: 7px 8px; border: 1px solid var(--at-line); border-radius: 8px; background: #fff; color: var(--at-ink); font: 600 11.5px/1 Satoshi, sans-serif; }
.at-quote > i { margin-top: 2px; }
.at-quote__band { color: var(--at-mut); }
.at-quote__sub { margin-top: 6px !important; font-size: 11px !important; color: var(--at-ink) !important; }
.at-quote__sub b { color: var(--at-gold-ink); }
.at-quote__empty { color: var(--at-gold-ink) !important; font-weight: 600 !important; }
.at-quote .at-text { padding: 6px 0 0; }
.at-math { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; margin: 8px 0 0; padding-top: 8px; border-top: 1px dashed var(--at-line); font: 500 10px/1.4 Satoshi, sans-serif; color: var(--at-mut); }
.at-math[hidden] { display: none; }
.at-math dt { font-weight: 700; color: var(--at-ink-2); }
.at-math dd { margin: 0; font-family: ui-monospace, Consolas, monospace; }
.at-math dd b { color: var(--at-gold-ink); }
.at-detail__act .at-share { border-color: var(--at-gold); color: var(--at-gold-ink); }
.at-detail__act .at-share:disabled { opacity: .45; cursor: default; }

/* ── the card, shown before it goes ── */
.at-cardview { position: fixed; inset: 0; z-index: 120; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(23,42,55,.55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.at-cardview__box { width: min(420px, 100%); max-height: 100%; overflow: auto; padding: 12px; border-radius: 16px; background: var(--at-paper); box-shadow: 0 30px 80px rgba(15,30,51,.35); }
.at-cardview__box img { display: block; width: 100%; height: auto; border-radius: 10px; }
.at-cardview__act { display: flex; gap: 8px; align-items: center; margin-top: 10px; }
.at-cardview__act button { flex: 1; padding: 11px 10px; border: 1px solid #CBD0CE; border-radius: 10px; background: #fff; color: var(--at-ink); font: 600 12px/1 Satoshi, sans-serif; cursor: pointer; }
.at-cardview__act .is-primary { background: var(--at-ink); border-color: var(--at-ink); color: #fff; }
.at-cardview__act .at-text { flex: none; border: 0; background: none; }

/* ── the foot: what the figures are and are not ── */
.at-legal { margin: 34px auto 40px; padding-top: 18px; border-top: 1px solid var(--at-line); }
.at-legal p { margin: 0; max-width: 860px; font: 500 11px/1.6 Satoshi, sans-serif; color: var(--at-mut); }
.at-legal b { font-weight: 700; color: var(--at-ink-2); }

/* ── the column, tidied: one scale, one rhythm ──
   labels 8 px caps · body 11 px · figure 22 px · everything aligned left,
   every block separated by the same 12 px */
.at-detail .at-eyebrow { font-size: 8.5px; letter-spacing: .18em; }
.at-detail h2 { font-size: 25px; line-height: 1.1; margin: 6px 0 6px; }
.at-detail__date { font: 600 12px/1.4 Satoshi, sans-serif; }
.at-detail__place { font-size: 11.5px; }
.at-detail__facts { margin-top: 12px; padding-top: 12px; }
.at-origin { margin-bottom: 8px; }
.at-origin label, .at-facts__grid em, .at-quote__ctl em { font-size: 8px; letter-spacing: .16em; }
.at-origin__field input { font-size: 12px; padding: 8px 0; }
.at-facts__grid { gap: 8px; }
.at-facts__grid > div, .at-facts__grid > a { padding: 10px 12px; }
.at-facts__grid > .is-wide { padding: 12px 14px 12px; }
.at-facts__grid small { font-size: 10px; line-height: 1.35; margin-top: 3px; }
.at-facts__grid > div:not(.is-wide) i, .at-facts__grid > a i { font-size: 15px; margin-top: 1px; }
.at-quote__ctl { margin: 6px 0 10px; gap: 8px; }
.at-pax button, .at-pax b { height: 30px; }
.at-type select { font-size: 11px; padding: 7px 8px; }
.at-quote__route { display: block; font: 600 10.5px/1.3 ui-monospace, Consolas, monospace; letter-spacing: .02em; color: var(--at-ink-2); margin-bottom: 2px; }
.at-facts__grid > .is-wide i { font-size: 22px; line-height: 1.1; }
.at-quote__band { font-size: 10px !important; margin-top: 2px !important; }
.at-quote__rows { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; margin: 9px 0 0; padding-top: 8px; border-top: 1px solid rgba(23,42,55,.08); font: 500 10.5px/1.4 Satoshi, sans-serif; color: var(--at-mut); }
.at-quote__rows dt { font-weight: 700; color: var(--at-ink); white-space: nowrap; }
.at-quote__rows dd { margin: 0; min-width: 0; }
.at-quote__rows dd b { color: var(--at-gold-ink); }
.at-quote__rows .at-quote__empty { color: var(--at-gold-ink); font-weight: 600; }
.at-quote .at-text { padding: 8px 0 0; font-size: 10px; }
.at-math { margin-top: 6px; font-size: 10px; }
.at-detail__fine { margin: 12px 0 12px; font-size: 10px; line-height: 1.5; }
.at-detail__act { gap: 6px; }
.at-detail__act a, .at-detail__act button { padding: 10px 12px; font-size: 11.5px; }
@media (max-width: 700px) {
  .at-detail h2 { font-size: 22px; }
  .at-facts__grid > .is-wide i { font-size: 24px; }
  .at-quote__rows { font-size: 11px; }
  .at-detail__fine { font-size: 10.5px; }
}

/* ── the step under the actions: two fields, one line of consent, send ── */
.at-ask { margin: 10px 0 0; padding: 12px 14px 12px; border: 1px solid var(--at-gold); border-radius: 12px; background: color-mix(in srgb, var(--at-gold) 10%, #fff); }
.at-ask > b { display: block; font: 700 12px/1.3 Satoshi, sans-serif; color: var(--at-ink); }
.at-ask > small { display: block; margin: 2px 0 10px; font: 500 10px/1.45 Satoshi, sans-serif; color: var(--at-mut); }
.at-ask label { display: block; margin-bottom: 8px; }
.at-ask label span { display: block; margin-bottom: 4px; font: 700 8px/1 Satoshi, sans-serif; letter-spacing: .16em; color: var(--at-mut); text-transform: uppercase; }
.at-ask input { width: 100%; box-sizing: border-box; padding: 9px 10px; border: 1px solid var(--at-line); border-radius: 9px; background: #fff; color: var(--at-ink); font: 600 12.5px/1 Satoshi, sans-serif; }
.at-ask input:focus { outline: 0; border-color: var(--at-gold-ink); }
.at-ask__consent { margin: 0 0 10px !important; }
.at-ask__act { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.at-ask__act button { padding: 10px 14px; border: 1px solid #CBD0CE; border-radius: 9px; background: #fff; color: var(--at-ink); font: 600 11.5px/1 Satoshi, sans-serif; cursor: pointer; }
.at-ask__act .is-primary { background: var(--at-ink); border-color: var(--at-ink); color: #fff; }
.at-ask__act .is-primary:disabled { opacity: .5; cursor: default; }
.at-ask__act .at-text { margin-left: auto; padding: 0; font-size: 10px; }
.at-ask__status { margin: 8px 0 0; min-height: 1em; font: 600 10.5px/1.4 Satoshi, sans-serif; color: var(--at-gold-ink); }
.at-ask__status:empty { display: none; }
.at-ask.is-done { border-color: #2f8f5b; background: #eef7f1; }
.at-ask.is-done > small { margin-bottom: 0; }

/* the headline, under the map now: the radar carries no words */
.at-h1 { margin: 8px 0 14px; font: 400 clamp(26px, 3vw, 38px)/1.1 Newsreader, Georgia, serif; letter-spacing: -.02em; color: var(--at-ink); }
.at-h1 em { color: var(--at-mut); }

/* the nearest fields: code and distance, one per line */
.at-facts__grid [data-at-fields] i span { display: block; font: 600 12.5px/1.45 ui-monospace, Consolas, monospace; white-space: nowrap; }
.at-facts__grid [data-at-fields] i u { text-decoration: none; font-weight: 500; color: var(--at-mut); }
.at-facts__grid [data-at-fields] i .is-none { font-weight: 500; color: var(--at-mut); }

/* ── the trails that stay: one pill says how many, and clears them ── */
.avc-trailpill { position: absolute; z-index: 6; left: 24px; top: 150px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid var(--at-line); border-radius: 10px;
  background: var(--at-glass); color: var(--at-ink); font: 600 11px/1 Satoshi, sans-serif; box-shadow: var(--at-shadow); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); cursor: pointer; }
.avc-trailpill i { width: 16px; height: 2px; border-radius: 1px; background: linear-gradient(90deg, #F2B24B, #57A8E8, #B48CF2); }
.avc-trailpill b { font-weight: 700; color: var(--at-gold-ink); }
.avc-trailpill:hover b { text-decoration: underline; text-underline-offset: 3px; }
body.atlas2.has-detail .avc-trailpill { top: 196px; }
@media (max-width: 700px) {
  .avc-trailpill { left: 10px; top: auto; bottom: 100px; padding: 7px 10px; font-size: 10px; }
}

/* ── on a phone the map must not repaint on every scroll ──
   the address bar comes and goes as the page moves; a height in dvh follows
   it and the map is resized and redrawn each time, which reads as flicker.
   The heights above are in svh for that reason. And the frosted glass over
   the canvas is the other repaint: on phones the panels are simply opaque. */
@media (max-width: 700px) {
  .atlas2 .avc-layers, .atlas2 .avc-alt, .at-feed, .avc-trailpill, .at-return { backdrop-filter: none; -webkit-backdrop-filter: none; }
  .atlas2 .avc-layers, .atlas2 .avc-alt, .at-feed, .avc-trailpill, .at-return { background: rgba(252,252,250,.97); }
  .atlas2 .avc-jpnav.is-solid { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(247,249,252,.97); }
  .atlas2 .avc-maphold--hero [data-avc-map] { height: 70svh; min-height: 420px; }
}

/* iOS: the canvas on its own layer, and a header that does not animate while the page moves.
   Keyed on the pointer, not the width: this was scoped to max-width 700px, and
   every iPhone since the 14 is 844–932px in landscape, so rotating the phone
   brought the fixed header back over the canvas and the flicker with it. */
@media (pointer: coarse), (max-width: 700px) {
  .atlas2 .avc-maphold, .atlas2 [data-avc-map], .atlas2 .maplibregl-canvas { transform: translateZ(0); -webkit-backface-visibility: hidden; backface-visibility: hidden; }
  .atlas2 .avc-jpnav { transition: none; }
  /* a fixed header over the WebGL canvas is what flickered on an iPhone
     (pinned with ?fx=nonav, 13 Sep 2026): on phones the header scrolls
     with the page instead of floating over the map */
  .atlas2 .avc-jpnav { position: absolute; }
  .atlas2 .avc-tickwrap { transform: translateZ(0); }
}

/* ── phone diagnostics (?fx=...): one suspect off at a time ── */
body.fx-nomap [data-avc-map] { background: #dfe6ee; }
body.fx-nocanvas .maplibregl-canvas { visibility: hidden; }
body.fx-still *, body.fx-still *::before, body.fx-still *::after { animation: none !important; transition: none !important; }
body.fx-flat .avc-maphold, body.fx-flat [data-avc-map], body.fx-flat .maplibregl-canvas, body.fx-flat .avc-tickwrap { transform: none !important; backface-visibility: visible !important; -webkit-backface-visibility: visible !important; }
body.fx-nonav .avc-jpnav { position: absolute !important; }

/* iOS enlarges the page when a control's text is under 16px and does not restore
   the scale when the field is blurred. On a touch screen the controls take 16px;
   pointer devices keep the smaller sizes the layout was drawn for. */
@media (pointer: coarse) {
  .at-search input, select[data-at-cat], .at-mnav select,
  .at-origin__field input, .at-type select, .at-ask input { font-size: 16px; }
}

/* touch-type:start — generated by tools/touch-type.mjs, do not edit by hand */
/* iOS zooms the page when a focused control's text is under 16px and does not
   zoom back. max(16px, 1em) raises only what is below the floor: a control
   designed larger keeps its size, and nothing has to be listed by name — which
   matters, because the worst offenders inherit their size rather than being
   given one. Checkboxes and radios are left alone; they have no text. */
@media (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea { font-size: max(16px, 1em) !important; }
}
/* touch-type:end */
