/* Approved mobile layout: header language, full map, lower map tabs and MENU.
   All rules are scoped to mobile; the desktop atlas keeps its existing grid. */
@media(max-width:1000px){
 html{--mobile-safe-bottom:clamp(0px,env(safe-area-inset-bottom,0px),34px);background:#f5f4f0;--mobile-dock-size:calc(62px + max(10px,var(--mobile-safe-bottom)));scroll-padding-bottom:calc(var(--mobile-dock-size) + 16px)}
 body{--margin:max(20px,5vw,env(safe-area-inset-left),env(safe-area-inset-right))}
 body[data-page=atlas] .atlas,body[data-page=atlas][data-subject] .atlas{height:auto;min-height:var(--mobile-vh,100svh);padding-bottom:var(--mobile-dock-height,var(--mobile-dock-size,72px));overflow:visible}
 body[data-page=atlas][data-mobile-focus=true] .atlas{height:auto;min-height:var(--mobile-vh,100svh)}
 body .atlas>header{height:76px;min-height:76px;padding:0;display:flex;justify-content:space-between;position:relative}
 body .atlas>header .brand{gap:9px}.brand-word{font-size:28px;letter-spacing:-1.1px}body .atlas>header .logo{width:26px;height:32px}
 body .atlas>header>nav,body .atlas>header .secondary,body .atlas>header .mobile-menu-toggle{display:none!important}
 body .atlas>header .mobile-language{display:block;min-width:66px;min-height:44px;text-align:right;font:11px/1.8 'IBM Plex Mono',monospace;letter-spacing:.3px;color:#96968f}
 .mobile-language .selected{color:#292929}
 body[data-page=atlas][data-subject] .atlas>.stage{height:var(--mobile-map-height,calc(100svh - 252px));min-height:210px;flex:none;padding:0;transition:height .62s cubic-bezier(.22,.75,.18,1)}
 body[data-page=atlas][data-subject][data-mobile-focus=true] .atlas>.stage{height:var(--mobile-map-height,280px);min-height:210px;flex:none}
 .stage:before,.stage:after{top:23px}.stage .corner{bottom:18px}
 body .stage .district-controls,body .stage .subject-metrics,body .stage .terrain-label,body .stage .terrain-leaders{display:none!important}
 .terrain-canvas{touch-action:none}.subject-canvas{touch-action:manipulation}
 body .atlas>.footer{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto auto;align-items:start;gap:5px 14px;flex:0 0 auto;height:auto;min-height:132px;padding:12px 0 18px}
 body .atlas>.footer .footer-copy{display:contents}
 body .atlas>.footer .topic{grid-column:1;grid-row:1;max-width:none;margin:7px 0 0;font:700 23px/1.2 Arial,Helvetica,sans-serif;letter-spacing:-.45px;overflow-wrap:normal}
 body .atlas>.footer .depth,body .atlas>.footer .utility{display:none!important}
 body .atlas>.footer .description{display:block!important;grid-column:1/-1;grid-row:2;max-width:620px;margin:0;font-size:10px;line-height:1.75;letter-spacing:0;color:#777773}
 body .atlas>.footer .metaphor{display:block!important;grid-column:1/-1;grid-row:3;max-width:620px;margin:0;font-size:9px;line-height:1.7;letter-spacing:0;color:#90908a}
 .mobile-read-data{grid-column:2;grid-row:1;min-width:82px;min-height:44px;text-align:right;font:10px/1.8 'IBM Plex Mono',monospace;letter-spacing:.2px}
 .mobile-map-hint{grid-column:1/-1;grid-row:4;margin-top:7px;text-align:center;font:10px/1.8 'IBM Plex Mono',monospace;letter-spacing:.2px;color:#777773;min-height:18px}
 .mobile-dock{position:fixed;bottom:0;left:0;right:0;z-index:45;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:12px;height:var(--mobile-dock-size,72px);padding:0 var(--margin) max(10px,var(--mobile-safe-bottom,0px));background:#f5f4f0;border-top:1px solid #dad9d4}
 .mobile-dock button{position:relative;text-align:left;font:11px/1.6 'IBM Plex Mono',monospace;letter-spacing:.1px;color:#777773;min-height:44px}
 .mobile-dock small{display:block;color:#96968f;font-size:10px;letter-spacing:.7px;margin-bottom:4px}
 .mobile-dock button[aria-current=page],.mobile-dock button[aria-expanded=true]{color:#292929}
 .mobile-dock button[aria-current=page]:before{content:'';position:absolute;left:0;right:0;top:-1px;height:2px;background:#292929}
 .mobile-dock .mobile-menu-open{text-align:left}
 .mobile-backdrop{display:block;position:fixed;inset:0;background:transparent;z-index:44;width:100%;height:100%}
 .mobile-menu-panel{display:block;position:fixed;left:0;right:0;bottom:var(--mobile-dock-height,var(--mobile-dock-size,72px));z-index:50;max-height:calc(100svh - 110px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;background:#f5f4f0;border-top:1px solid #bfbfb6;padding:0 var(--margin) 25px;animation:archive-mobile-menu .52s cubic-bezier(.22,.75,.18,1)}
 .mobile-panel-head{display:flex;justify-content:space-between;align-items:center;min-height:60px;font:10px/1.8 'IBM Plex Mono',monospace;letter-spacing:.7px;color:#777773}
 .mobile-panel-head button{min-height:44px;min-width:70px;text-align:right}
 .mobile-page-links{display:grid}
 .mobile-page-links button{min-height:68px;display:flex;align-items:baseline;gap:14px;padding:16px 0;border-bottom:1px solid #dad9d4;text-align:left;font:500 30px/1.2 Arial,Helvetica,sans-serif;letter-spacing:-.8px}
 .mobile-page-links small{font:10px/1.8 'IBM Plex Mono',monospace;color:#96968f;min-width:20px;letter-spacing:.4px}.mobile-page-links span{margin-left:auto;font-size:21px}
 .mobile-page-links .menu-link-arrow{align-self:center;line-height:0}.menu-link-arrow svg{display:block;width:21px;height:21px}
 .mobile-view-controls{display:block;min-height:52px;margin-top:14px;font:10px/1.8 'IBM Plex Mono',monospace;letter-spacing:.5px}
 .mobile-data-controls{border-bottom:1px solid #dad9d4;padding:0 0 16px;margin-bottom:25px}
 .mobile-districts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
 .mobile-districts button{min-height:44px;font:10px/1.8 'IBM Plex Mono',monospace;color:#777773;position:relative}
 .mobile-districts button[aria-pressed=true]{color:#292929}.mobile-districts button[aria-pressed=true]:after{content:'';position:absolute;bottom:5px;left:25%;right:25%;height:1px;background:#777773}
 .mobile-depth-head{display:flex;align-items:center;justify-content:space-between;margin-top:17px;font:10px/1.8 'IBM Plex Mono',monospace;color:#777773}
 .mobile-depth-head button{min-height:44px}
 .mobile-depth-row{display:flex;align-items:center;gap:12px}.mobile-depth-row button{min-height:44px;min-width:32px;font:18px/1 'IBM Plex Mono',monospace}
 .mobile-depth-row input{min-width:0;flex:1;width:auto;height:44px}
 body .data-sheet{top:auto;bottom:var(--mobile-dock-height,var(--mobile-dock-size,72px));left:0;right:0;max-width:none;width:100%;max-height:calc(100svh - 105px - env(safe-area-inset-bottom));padding:15px var(--margin) 28px;z-index:50;border:0;border-top:1px solid #bfbfb6;background:#f5f4f0;overscroll-behavior:contain;font-size:13px}
 body .data-sheet #close-data{font:10px/1.8 'IBM Plex Mono',monospace;min-height:44px;min-width:70px;text-align:right;float:none;display:block;margin:0 0 8px auto}
 body .data-sheet #data-content{clear:both}body .data-sheet p{line-height:1.9;overflow-wrap:anywhere}
 body[data-page]:not([data-page=atlas]) .atlas{height:auto;min-height:100svh;padding-bottom:calc(var(--mobile-dock-height,var(--mobile-dock-size,72px)) + 24px)}
 .site-pages{padding:38px 0 32px}.site-page h1{font-size:38px;letter-spacing:-1.1px;line-height:1.1;margin-bottom:32px}
 .site-page p{font-size:13px;line-height:1.95}.editorial-columns,.applicant-layout,.about-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .about-grid>div{grid-column:1;grid-row:auto}.about-grid .about-intro,.about-grid .about-maps,.about-grid .about-photos,.about-grid .about-participation,.about-grid .about-credits{grid-template-rows:auto auto;gap:12px}
 .site-page .form-grid{grid-template-columns:minmax(0,1fr);gap:24px}.form-grid label,.form-wide,.draft-photo{min-width:0}
 .form-grid input:not([type=checkbox]),.form-grid select,.form-grid textarea{font-size:16px}
 .draft-actions{gap:14px 20px}.draft-actions button,.text-action,.back-link{min-height:44px}
 .submission-controls{display:flex;flex-wrap:wrap;gap:12px}.submission-controls button{min-height:44px;max-width:100%;margin:0;flex:1}.submission-controls p{flex-basis:100%}
 .site-page[data-route=photographs] .photo-grid{columns:2;column-gap:12px;margin-top:28px}.site-page[data-route=photographs] .photo-record{margin-bottom:12px}
 .photo-filters{gap:18px;margin:28px 0 20px}.photo-filters #photo-districts{flex-basis:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%}.photo-filters button{min-height:44px}
 .photo-search{display:grid;grid-template-columns:1fr auto;gap:14px}.photo-search label{grid-column:1/-1;display:flex;align-items:center;gap:14px;min-width:0}.photo-search input{width:100%;min-width:0;font-size:16px;flex:1}.photo-search button{min-height:44px}.photo-search .result-count{text-align:right;margin:0;font-size:10px}
 .site-page[data-route=photo-detail] .photo-detail-grid{grid-template-columns:minmax(0,1fr);gap:28px}.photo-detail-grid>img{max-height:none}
 body[data-state=entry] .mobile-dock,body[data-state=entry] .mobile-backdrop,body[data-state=entry] .mobile-menu-panel{display:none!important}
 .mobile-dock [hidden],.mobile-menu-panel[hidden],.mobile-backdrop[hidden],.mobile-depth-controls[hidden],.mobile-dock[hidden],.mobile-language[hidden]{display:none!important}
 .mobile-result{flex:none;width:100%;min-width:0;border-top:1px solid #dad9d4;padding:0 0 12px;background:#f5f4f0}
 .mobile-result[data-animating=true]{overflow:hidden}
 .mobile-map-transition{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}
 body .data-sheet:not([hidden]){animation:archive-mobile-menu .52s cubic-bezier(.22,.75,.18,1)}
 body:not([data-page=atlas]) .mobile-result{display:none!important}
 .mobile-result[hidden]{display:none!important}
 .mobile-result-districts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
 .mobile-result-districts button{min-height:44px;font:10px/1.8 'IBM Plex Mono',monospace;letter-spacing:.5px;color:#777773;position:relative;text-align:left}
 .mobile-result-districts button[aria-pressed=true]{color:#292929}.mobile-result-districts button[aria-pressed=true]:after{content:'';position:absolute;left:0;bottom:5px;width:26px;height:1px;background:#777773}
 .mobile-result-content{min-width:0;overflow-wrap:anywhere;color:#292929;font-family:'IBM Plex Sans KR',Arial,sans-serif}
 .mobile-result .metric-district{font:10px/1.8 'IBM Plex Mono',monospace;letter-spacing:1.2px;margin-bottom:5px}
 .mobile-result .metric-number{font:400 38px/1.08 Arial,sans-serif;letter-spacing:-1.2px;white-space:normal}
 .mobile-result .metric-number span{display:inline-block;margin-left:8px;font:10px/1.8 'IBM Plex Mono',monospace;letter-spacing:0;color:#777773}
 .mobile-result .metric-label{font-size:10px;line-height:1.7;margin-bottom:8px}
 .mobile-result-content>p{font:9px/1.7 'IBM Plex Mono',monospace;letter-spacing:.1px;color:#777773;margin:8px 0 10px}
 .mobile-result .metric-secondary{font-size:11px;line-height:1.8;margin-top:10px}.mobile-result .metric-secondary b{font-size:20px}
 .mobile-result .metric-modes{font-size:11px;line-height:1.8;margin-top:10px}
 .mobile-result .metric-note{font-size:10px;line-height:1.8;margin-top:12px;color:#777773;word-break:keep-all}
 .mobile-result[data-subject=density] .mobile-result-content{display:grid;grid-template-columns:minmax(0,1fr) 128px;column-gap:18px;align-items:start}
 .mobile-result[data-subject=density] .metric-district{grid-column:1;grid-row:1}
 .mobile-result[data-subject=density] .metric-number{grid-column:1;grid-row:2}
 .mobile-result[data-subject=density] .metric-number span{display:block;margin:4px 0 0}
 .mobile-result[data-subject=density] .mobile-result-content>p{grid-column:1;grid-row:3}
 .mobile-result[data-subject=density] .metric-secondary{grid-column:1;grid-row:4;margin-top:0}
 .mobile-result[data-subject=density] .metric-note{grid-column:1/-1;grid-row:5}
 .mobile-density-comparison{grid-column:2;grid-row:1/span 4;width:128px;height:150px;display:block;align-self:center}
 .mobile-result[data-subject=transport] .mobile-result-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;align-items:start}
 .mobile-result[data-subject=transport] .metric-district,.mobile-result[data-subject=transport] .metric-label{grid-column:1/-1}
 .mobile-result[data-subject=transport] .metric-number{grid-column:1}
 .mobile-result[data-subject=transport] .metric-secondary{grid-column:2;margin-top:0}
 .mobile-result[data-subject=transport] .metric-secondary b{display:block;font:400 27px/1.4 Arial,sans-serif;letter-spacing:-.8px}
 .mobile-result[data-subject=transport] .metric-modes,.mobile-result[data-subject=transport] .metric-note{grid-column:1/-1}
 .mobile-price-state{font-size:10px;color:#777773;margin-top:12px;line-height:1.8}
 .mobile-result[data-subject=price] .metric-number span{font-size:9px}
 @keyframes archive-mobile-menu{from{transform:translateY(25px);opacity:0}to{transform:translateY(0);opacity:1}}
}
@media(max-width:360px){.mobile-dock{column-gap:8px}.mobile-dock button{font-size:10px}body .atlas>.footer .topic{font-size:21px}.mobile-map-hint{font-size:9px}}
@media(min-width:1001px){.mobile-dock,.mobile-backdrop,.mobile-menu-panel,.mobile-language,.mobile-read-data,.mobile-map-hint,.mobile-data-controls,.mobile-result{display:none!important}}
@media(prefers-reduced-motion:reduce){.mobile-menu-panel,body .data-sheet:not([hidden]){animation:none}body[data-page=atlas][data-subject] .atlas>.stage{transition:none}}
