@media (max-width: 860px), (pointer: coarse) and (max-width: 1024px) {
  :root{--mobile-dock-h:66px}
  html{scroll-padding-top:66px}
  body{padding-bottom:calc(var(--mobile-dock-h) + env(safe-area-inset-bottom));overscroll-behavior-y:auto}
  body.map-mobile-active{overflow:hidden;overscroll-behavior:none}
  .topbar{height:60px;padding:0 14px;z-index:120}
  .brand{font-size:21px}
  .flag{width:25px;height:25px}
  .hero{display:block;min-height:0}
  .copy{min-height:auto;padding:34px 20px 24px}
  .headline{margin:20px 0 18px}
  .headline span{white-space:normal;font-size:clamp(42px,12.7vw,66px);line-height:.88}
  .headline .three{font-size:clamp(29px,8vw,44px)}
  .lede{font-size:16px;line-height:1.5}
  .manifesto{margin-top:28px}

  .mapwrap{height:68svh;min-height:500px;max-height:720px;overflow:hidden;isolation:isolate}
  #map{touch-action:none}
  .maphead{top:9px;left:9px;right:9px;display:block}
  .tools{width:100%;gap:7px}
  .legend,.filters{width:100%;max-width:none;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;border-radius:12px;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .legend::-webkit-scrollbar,.filters::-webkit-scrollbar{display:none}
  .legend button,.filterbtn{flex:0 0 auto;padding:8px 9px;font-size:11px}
  .filters select{flex:0 0 auto;max-width:165px}
  .mapmeta{display:none!important}
  .categorypop{top:100px;left:9px;right:9px;width:auto;max-height:calc(68svh - 118px);border-radius:14px}

  .drawer{position:fixed;left:0;right:0;top:auto;bottom:0;width:100%;max-height:76svh;border-radius:23px 23px 0 0;border-bottom:0;transform:translateY(calc(100% + 35px));z-index:210;box-shadow:0 -18px 70px rgba(40,60,55,.26)}
  .drawer.open{transform:translateY(0)}
  .drawerhead{position:relative;padding:25px 18px 14px}
  .drawerhead:before{content:"";position:absolute;top:8px;left:50%;width:42px;height:4px;border-radius:99px;background:rgba(23,51,46,.2);transform:translateX(-50%)}
  .drawerhead h3{font-size:28px;max-width:82%}
  .drawerbody{padding:14px 18px calc(24px + env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .item{min-height:50px;padding:13px 12px}
  .cta{min-height:47px}

  .detail{left:0;right:0;top:60px;bottom:0;border:0;border-radius:0;transform:translateY(105%);z-index:205}
  .detail.open{transform:none}
  .detailtop{height:50px}
  .detailgrid{display:block;min-height:0}
  .visual{min-height:36svh;max-height:46svh;padding:14px}
  .visual img{max-height:43svh;object-fit:contain}
  .detailcontent{padding:24px 18px calc(90px + env(safe-area-inset-bottom))}
  .detailcontent h2{font-size:clamp(38px,12vw,58px)}
  .facts,.discoverygrid,.actions,.taxonomyGrid{grid-template-columns:1fr}
  .fact:nth-child(even),.taxonomyFact:nth-child(even){border-left:0;padding-left:0}
  .credit{left:9px;right:9px;bottom:8px;max-height:58px;overflow:auto}

  .journey{left:10px;right:10px;bottom:calc(var(--mobile-dock-h) + 10px + env(safe-area-inset-bottom));min-width:0;max-width:none;border-radius:15px}
  .routeExit{bottom:calc(var(--mobile-dock-h) + 10px + env(safe-area-inset-bottom));right:10px}

  .timeline,.section{padding-left:20px;padding-right:20px}
  .timeline{padding-top:34px;padding-bottom:40px}
  .section{padding-top:54px;padding-bottom:54px}
  .cards{margin-top:28px}

  .mobileDock{position:fixed;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));height:58px;z-index:300;background:rgba(23,58,53,.97);color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:17px;box-shadow:0 14px 36px rgba(25,45,40,.28);display:grid;grid-template-columns:repeat(4,1fr);padding:5px;backdrop-filter:blur(14px)}
  .mobileDock button{border:0;background:transparent;color:rgba(255,255,255,.75);border-radius:12px;font:800 9px/1 ui-monospace,monospace;letter-spacing:.06em;display:grid;place-items:center;gap:3px;padding:5px 2px;cursor:pointer}
  .mobileDock button:active,.mobileDock button.active{background:#fffaf3;color:#173a35}
  .mobileDock svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

  .mapTouchShield{position:absolute;inset:0;z-index:34;display:flex;align-items:flex-end;justify-content:center;padding:0 14px calc(18px + var(--mobile-dock-h));background:linear-gradient(to bottom,transparent 45%,rgba(23,58,53,.08));touch-action:pan-y;pointer-events:auto}
  .mapTouchShield.hidden{display:none}
  .mapTouchActivate{border:1px solid rgba(23,58,53,.16);background:rgba(255,250,243,.96);color:#173a35;min-height:46px;padding:0 16px;border-radius:999px;box-shadow:0 12px 32px rgba(40,60,55,.18);font:900 10px ui-monospace,monospace;letter-spacing:.06em;cursor:pointer}
  .mapTouchExit{display:none;position:absolute;right:10px;bottom:calc(var(--mobile-dock-h) + 10px);z-index:60;border:0;background:#173a35;color:#fff;min-height:42px;padding:0 13px;border-radius:999px;box-shadow:0 10px 30px rgba(23,58,53,.25);font:900 9px ui-monospace,monospace;letter-spacing:.05em;cursor:pointer}
  body.map-mobile-active .mapTouchExit{display:block}

  .museumVisual{margin:0 0 15px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#ebe9e2}
  .museumVisual img{display:block;width:100%;height:165px;object-fit:cover;background:#e5e2da}
  .museumVisual figcaption{padding:8px 10px;font:9px/1.45 ui-monospace,monospace;color:var(--muted);background:#fffaf3}
  .museumVisual a{color:var(--ink);text-decoration:none;font-weight:800}

  .mobileInjectedVisual{position:relative;background:#ebe9e2;min-height:36svh;display:grid;place-items:center;padding:14px;overflow:hidden}
  .mobileInjectedVisual img{width:100%;height:100%;max-height:43svh;object-fit:contain}
  .mobileInjectedVisual .credit{position:absolute}
}

@media (min-width: 861px) and (pointer: fine){.mobileDock,.mapTouchShield,.mapTouchExit{display:none!important}}
