.atlas-dialog { --atlas-ink:#353831; --atlas-paper:#f7f5f0; --atlas-gold:#586b5b; position:fixed; inset:0; width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:var(--atlas-paper); color:var(--atlas-ink); overflow:hidden; overscroll-behavior:none; }
html:has(.atlas-dialog[open]) { scrollbar-gutter:auto; }
.atlas-dialog[open] { display:grid; grid-template-rows:88px minmax(0,1fr) 142px; animation:atlas-arrive .55s cubic-bezier(.22,1,.36,1) both; }
.atlas-dialog::backdrop { background:#f7f5f0; }
.atlas-dialog *, .atlas-dialog *::before, .atlas-dialog *::after { box-sizing:border-box; }
.atlas-dialog [hidden] { display:none!important; }
.atlas-dialog button,.atlas-dialog select { font:inherit; color:inherit; cursor:pointer; }
.atlas-dialog button { -webkit-tap-highlight-color:transparent; }
.atlas-dialog button:disabled { opacity:.36; cursor:default; }
.atlas-dialog :is(button,select,input):focus-visible { outline:2px solid var(--atlas-gold); outline-offset:4px; }
.atlas-dialog p,.atlas-dialog h2,.atlas-dialog h3 { margin:0; }
.atlas-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.atlas-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0 32px; border-bottom:1px solid #ccd2c580; z-index:3; background:#f7f5f0; }
.atlas-brand { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.atlas-brand-symbol { color:var(--atlas-gold); font-size:40px; font-weight:200; }
.atlas-eyebrow { display:block; font:9px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.18em; color:var(--atlas-gold); }
.atlas-identity h2 { font-family:'Noto Serif SC','Songti SC',SimSun,serif; font-weight:400; font-size:25px; letter-spacing:.12em; margin-top:3px; }
.atlas-filters { display:flex; align-items:center; gap:6px; margin-left:auto; }
.atlas-filter { font-size:12px!important; border:0; background:transparent; padding:11px 14px; color:#62695e!important; border-radius:2px; transition:background .2s,color .2s; }
.atlas-filter.is-active { background:#e4e9e0; color:#353831!important; box-shadow:inset 0 -1px #657768; }
.atlas-filter:hover { background:#ecefe7; }
.atlas-year-label { border-left:1px solid #ccd2c580; padding-left:18px; margin-left:14px; }
.atlas-year { border:0; background:#f7f5f0; font-size:12px!important; padding:10px 5px; max-width:105px; color:#62695e!important; color-scheme:light; }
.atlas-close { margin-left:24px; padding:12px 0 12px 20px; border:0; border-left:1px solid #ccd2c580; background:none; font-size:12px!important; letter-spacing:.06em; white-space:nowrap; }
.atlas-body { display:grid; grid-template-columns:minmax(0,1fr) 340px; min-height:0; }
.atlas-stage { position:relative; min-height:0; overflow:hidden; isolation:isolate; }
.atlas-map { position:absolute; inset:0; width:100%; height:100%; }
.atlas-map-intro { position:absolute; left:34px; top:27px; pointer-events:none; max-width:calc(100% - 55px); text-shadow:none; }
.atlas-map-intro::before { content:''; position:absolute; inset:-35px -90px -45px -35px; z-index:-1; background:radial-gradient(ellipse at 20% 25%,#f7f5f0ed,transparent 72%); }
.atlas-map-title { font:400 clamp(25px,2.3vw,36px)/1.7 'Noto Serif SC','Songti SC',SimSun,serif; letter-spacing:.13em; margin-top:8px!important; }
.atlas-map-count { font-size:11px; color:#62695e; margin-top:6px!important; letter-spacing:.08em; }
.atlas-map-controls { position:absolute; left:30px; bottom:49px; display:flex; align-items:center; background:#f7f5f0ed; border:1px solid #ccd2c5; box-shadow:0 8px 30px #53614f16; backdrop-filter:blur(12px); border-radius:3px; overflow:hidden; }
.atlas-map-controls button { background:none; border:0; border-right:1px solid #ccd2c580; min-width:42px; height:40px; font-size:20px; transition:background .2s; }
.atlas-map-controls button:last-child { border-right:0; }
.atlas-map-controls button:hover { background:#e4e9e0; }
.atlas-map-controls .atlas-overview { font-size:11px; padding:0 16px; letter-spacing:.06em; }
.atlas-map-controls .atlas-north { font:11px/1 ui-monospace,monospace; color:var(--atlas-gold); }
.atlas-map-controls .atlas-focus { font-size:11px; }
.atlas-instructions { position:absolute; right:24px; bottom:52px; color:#62695e; font-size:10px; letter-spacing:.04em; text-shadow:none; pointer-events:none; }
.atlas-group-bar { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; min-height:32px; }
.atlas-group-title { margin-right:auto; color:#535d50; font-size:11px; }
.atlas-group-zoom,.atlas-group-notice { padding:7px 11px; background:#dfe6d9; color:#353831!important; border:0; border-radius:2px; font-size:10px!important; white-space:nowrap; }
.atlas-group-notice { background:transparent; color:#586b5b!important; border:1px solid #a7b4a2; }
.atlas-group-open { min-height:44px; padding:7px 12px; background:#dfe6d9; color:#353831!important; border:0; border-radius:2px; font-size:11px!important; white-space:nowrap; }
.atlas-group-zoom { background:transparent; color:#586b5b!important; border:1px solid #a7b4a2; }
.atlas-stage:has(.photo-atlas-group:not([hidden])) .atlas-map-intro { opacity:0; }
.atlas-stage:has(.photo-atlas-group:not([hidden])) .atlas-expanded-photo { visibility:hidden; }
.atlas-dialog.has-photo-group[open] { grid-template-rows:88px minmax(0,1fr) 182px; }
.atlas-map-controls .atlas-expand-map { display:none; }
.atlas-expanded-photo { display:none; position:absolute; right:14px; bottom:84px; min-height:44px; padding:9px 15px; border:1px solid #ccd2c5; background:#f7f5f0ed; color:#353831!important; border-radius:3px; font-size:11px!important; }
.atlas-map-state { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; background:#f7f5f0ed; z-index:2; text-align:center; padding:25px; backdrop-filter:blur(4px); }
.atlas-map-state strong { font:400 24px/1.5 'Songti SC',SimSun,serif; letter-spacing:.1em; }
.atlas-map-state p { font-size:12px; color:#62695e; line-height:1.7; }
.atlas-loading-orbit { width:62px; height:62px; margin-bottom:10px; border:1px solid #ccd2c5; border-top-color:var(--atlas-gold); border-radius:50%; animation:atlas-orbit 1.6s linear infinite; }
.atlas-map-state.is-error .atlas-loading-orbit { animation:none; border:1px dashed #a7b4a2; }
.atlas-retry { background:#dfe6d9; color:#353831!important; border:0; padding:10px 20px; font-size:12px!important; }
.atlas-panel { position:relative; display:flex; flex-direction:column; min-height:0; padding:22px 26px 0; background:var(--atlas-paper); color:#353831; box-shadow:-10px 0 45px #59634e0c; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#b8c1b1 transparent; z-index:1; }
.atlas-panel-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; flex:none; min-height:15px; }
.atlas-panel .atlas-eyebrow { color:#62695e; font-size:9px; letter-spacing:.14em; }
.atlas-live { color:#62695e; font:9px/1.5 ui-monospace,monospace; }
.atlas-selected-image { position:relative; display:block; width:100%; min-height:100px; height:clamp(150px,31vh,320px); flex-shrink:1; padding:0; border:0; background:#ecefe7; overflow:hidden; }
.atlas-selected-image img { display:block; width:100%; height:100%; object-fit:contain; background-image:none!important; transition:transform .7s cubic-bezier(.22,1,.36,1); }
.atlas-selected-image:hover img { transform:scale(1.025); }
.atlas-image-hint { position:absolute; right:8px; bottom:8px; background:#f7f5f0ed; color:#353831; font-size:10px; padding:8px 11px; opacity:0; transform:translateY(4px); transition:opacity .2s,transform .2s; }
.atlas-selected-image:is(:hover,:focus-visible) .atlas-image-hint { opacity:1; transform:none; }
.atlas-panel-copy { padding-top:22px; flex:none; }
.atlas-photo-date { color:#62695e; font:10px/1.5 ui-monospace,monospace; letter-spacing:.12em; }
.atlas-photo-title { margin-top:9px!important; font:400 25px/1.4 'Noto Serif SC','Songti SC',SimSun,serif; letter-spacing:.025em; overflow-wrap:anywhere; }
.atlas-photo-place { font-size:12px; color:#62695e; line-height:1.7; margin-top:9px!important; }
.atlas-photo-coordinates { font:9px/1.5 ui-monospace,monospace; color:#62695e; margin-top:11px!important; letter-spacing:.025em; }
.atlas-open-photo { display:flex; width:100%; justify-content:space-between; text-align:left; margin-top:22px; padding:13px 0; border:0; border-top:1px solid #ccd2c5; border-bottom:1px solid #ccd2c5; background:none; font-size:11px!important; letter-spacing:.1em; }
.atlas-open-photo:hover { color:#586b5b!important; }
.atlas-panel-bottom { display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding:15px 0; flex:none; font:10px/1.5 ui-monospace,monospace; color:#62695e; }
.atlas-steps { display:flex; gap:7px; }
.atlas-steps button { height:32px; width:36px; border:1px solid #ccd2c5; background:transparent; font-size:17px; color:#353831; transition:background .2s; }
.atlas-steps button:hover { background:#e4e9e0; }
.atlas-footer { display:grid; grid-template-columns:240px minmax(0,1fr); gap:28px; padding:18px 30px 12px; background:#f7f5f0; border-top:1px solid #ccd2c580; min-width:0; }
.atlas-playback { display:flex; flex-direction:column; gap:15px; padding-top:7px; }
.atlas-playback-row { display:flex; align-items:center; gap:13px; }
.atlas-play { flex:none; width:43px; height:43px; border:1px solid #a7b4a2; background:#ecefe7; color:#535d50!important; border-radius:50%; font-size:12px!important; }
.atlas-play:hover { background:#dfe6d9; }
.atlas-play-label { display:block; font-size:12px; margin-top:4px; letter-spacing:.06em; }
.atlas-playback .atlas-eyebrow { font-size:8px; letter-spacing:.16em; color:#62695e; }
.atlas-route-toggle { display:flex; align-items:center; gap:7px; color:#62695e; font-size:10px; cursor:pointer; }
.atlas-route-toggle input { width:12px; height:12px; accent-color:#586b5b; margin:0 0 0 3px; }
.atlas-film { min-width:0; display:flex; flex-direction:column; gap:6px; }
.atlas-filmstrip { display:flex; gap:9px; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; scrollbar-color:#79877d55 transparent; padding:3px 3px 5px; min-height:84px; align-items:flex-start; scroll-padding:10px; }
.atlas-thumb { position:relative; width:100px; height:72px; flex:0 0 100px; border:1px solid #ccd2c5; padding:3px; background:transparent; opacity:.62; transition:opacity .25s,border-color .25s,transform .25s; }
.atlas-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.atlas-thumb:hover,.atlas-thumb.is-selected { opacity:1; transform:translateY(-2px); border-color:var(--atlas-gold); }
.atlas-thumb.is-selected::after { content:''; position:absolute; height:2px; background:var(--atlas-gold); bottom:-4px; left:0; right:0; }
.atlas-thumb-name { position:absolute; inset:auto 3px 3px; text-align:left; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:9px; padding:10px 5px 3px; color:#353831; background:linear-gradient(transparent,#f7f5f0f2); }
.atlas-footnote { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.atlas-status { color:#62695e; font-size:9px; line-height:1.5; letter-spacing:.025em; }
.atlas-data-retry { border:0; background:none; color:var(--atlas-gold)!important; font-size:10px!important; white-space:nowrap; }
.atlas-film-empty { align-self:center; padding:16px; font-size:12px; color:#62695e; }
.atlas-dialog .maplibregl-ctrl-bottom-left { left:23px; bottom:7px; }
.atlas-dialog .maplibregl-ctrl-attrib { max-width:calc(100vw - 60px); }
.atlas-dialog.is-playing .atlas-play { box-shadow:0 0 0 5px #ecefe7; }
@keyframes atlas-arrive { from { opacity:0; transform:scale(1.025); } to { opacity:1; transform:scale(1); } }
@keyframes atlas-orbit { to { transform:rotate(360deg); } }
@media(min-width:1600px) { .atlas-body { grid-template-columns:minmax(0,1fr) 400px; } .atlas-panel { padding:28px 34px 0; } .atlas-selected-image { height:36vh; } }
@media(max-width:1000px) { .atlas-header { padding:0 22px; gap:16px; } .atlas-body { grid-template-columns:minmax(0,1fr) 300px; } .atlas-panel { padding:20px 22px 0; } .atlas-filter { padding:11px 9px; } .atlas-close { margin-left:0; } .atlas-instructions { display:none; } .atlas-map-title { font-size:25px; } }
@media(max-width:700px) {
  .atlas-dialog[open] { grid-template-rows:100px minmax(0,1fr) 123px; }
  .atlas-header { display:grid; grid-template-columns:1fr auto; gap:6px 12px; padding:12px 17px 0; }
  .atlas-brand { gap:8px; }.atlas-brand-symbol { font-size:28px; }.atlas-identity h2 { font-size:18px; margin-top:1px; }.atlas-identity .atlas-eyebrow { font-size:7px; letter-spacing:.1em; }
  .atlas-close { grid-column:2; grid-row:1; padding:10px 0 10px 15px; font-size:10px!important; }
  .atlas-filters { grid-row:2; grid-column:1/-1; width:100%; margin:0; gap:5px; }.atlas-filter { font-size:10px!important; padding:9px 10px; }.atlas-year-label { margin-left:auto; padding-left:12px; }.atlas-year { font-size:10px!important; padding:7px 0; }
  .atlas-body { display:grid; grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) 184px; }
  .atlas-map-intro { left:19px; top:16px; }.atlas-map-intro .atlas-eyebrow { font-size:7px; letter-spacing:.09em; }.atlas-map-title { font-size:24px; margin-top:4px!important; }.atlas-map-count { font-size:9px; margin-top:2px!important; }
  .atlas-map-controls { left:auto; right:14px; bottom:32px; max-width:calc(100% - 28px); }.atlas-map-controls button { height:44px; min-width:44px; font-size:19px; }.atlas-map-controls .atlas-overview { font-size:10px; padding:0 10px; }.atlas-map-controls .atlas-north { display:none; }.atlas-map-controls .atlas-expand-map { display:block; font-size:10px; }
  .atlas-dialog .maplibregl-ctrl-bottom-left { left:8px; bottom:2px; }
  .atlas-map-state strong { font-size:20px; }.atlas-map-state p { font-size:10px; }.atlas-map-state { gap:9px; }.atlas-loading-orbit { width:35px; height:35px; margin-bottom:0; }
  .atlas-dialog.has-photo-group[open] { grid-template-rows:100px minmax(0,1fr) 176px; }
  .atlas-dialog.has-photo-group .atlas-footer { grid-template-columns:minmax(0,1fr); }
  .atlas-dialog.has-photo-group .atlas-playback { display:none; }
  .atlas-group-bar { flex-wrap:nowrap; gap:5px; min-height:44px; }
  .atlas-group-title { font-size:10px; min-width:42px; max-width:90px; line-height:1.5; }
  .atlas-group-zoom,.atlas-group-notice { min-height:44px; padding:7px 9px; font-size:10px!important; }
  .atlas-group-open { padding:7px 9px; font-size:10px!important; }
  .atlas-dialog.has-expanded-map .atlas-body { grid-template-rows:minmax(0,1fr); }
  .atlas-dialog.has-expanded-map .atlas-panel { display:none; }
  .atlas-dialog.has-expanded-map .atlas-expanded-photo { display:block; }
  .atlas-filmstrip { touch-action:pan-x; overscroll-behavior-x:contain; }
  .atlas-panel { display:grid; grid-template-columns:126px minmax(0,1fr); grid-template-rows:20px minmax(0,1fr); padding:12px 17px; gap:7px 17px; overflow:hidden; }
  .atlas-panel-top { grid-column:1; grid-row:1; margin:0; }.atlas-panel .atlas-eyebrow { font-size:8px; }.atlas-live { font-size:7px; }
  .atlas-selected-image { grid-row:2; grid-column:1; height:100%; min-height:0; }
  .atlas-panel-copy { grid-column:2; grid-row:1/-1; padding:2px 0 0; overflow:auto; scrollbar-width:none; }.atlas-photo-title { font-size:20px; margin-top:7px!important; line-height:1.2; }.atlas-photo-date { font-size:8px; }.atlas-photo-place { font-size:10px; margin-top:6px!important; }.atlas-photo-coordinates { font-size:7px; margin-top:6px!important; white-space:nowrap; }
  .atlas-open-photo { font-size:9px!important; padding:9px 0; margin-top:9px; }.atlas-panel-bottom { position:absolute; bottom:19px; right:19px; padding:0; }.atlas-panel-position { display:none; }.atlas-panel-bottom>span { display:none; }.atlas-steps { gap:4px; }.atlas-steps button { width:29px; height:24px; font-size:14px; border:0; }
  .atlas-image-hint { display:none; }.atlas-footer { grid-template-columns:38px minmax(0,1fr); padding:13px 14px 8px; gap:10px; }.atlas-playback { padding-top:9px; gap:0; }.atlas-play { width:34px; height:34px; font-size:10px!important; }.atlas-playback-row>div,.atlas-route-toggle { display:none; }.atlas-filmstrip { min-height:70px; gap:6px; }.atlas-thumb { width:82px; flex-basis:82px; height:60px; }.atlas-thumb-name { font-size:8px; }.atlas-status { font-size:8px; }.atlas-footnote { align-items:flex-start; }.atlas-data-retry { font-size:8px!important; }
}
@media(max-width:360px) {
  .atlas-dialog[open] { grid-template-rows:90px minmax(0,1fr) 98px; }.atlas-body { grid-template-rows:minmax(0,1fr) 140px; }
  .atlas-header { padding:10px 12px 0; }.atlas-filter { padding:8px 7px; font-size:9px!important; }.atlas-panel { grid-template-columns:104px minmax(0,1fr); padding:10px 12px; gap:6px 12px; }.atlas-photo-title { font-size:17px; }.atlas-map-intro { top:10px; left:14px; }.atlas-map-title { font-size:20px; }.atlas-map-count { font-size:8px; }.atlas-map-intro .atlas-eyebrow { font-size:6px; }.atlas-photo-coordinates { letter-spacing:-.04em; }.atlas-footer { padding-top:9px; }.atlas-thumb { height:52px; width:74px; flex-basis:74px; }.atlas-filmstrip { min-height:61px; }.atlas-panel-bottom { right:12px; bottom:12px; }
}
@media(max-height:600px) and (min-width:701px) { .atlas-dialog[open] { grid-template-rows:68px minmax(0,1fr) 110px; }.atlas-header { padding:0 25px; }.atlas-selected-image { height:150px; flex-shrink:0; }.atlas-panel-copy { padding-top:12px; }.atlas-panel-top { margin-bottom:12px; }.atlas-thumb { height:58px; }.atlas-filmstrip { min-height:69px; }.atlas-footer { padding-top:9px; }.atlas-playback { gap:9px; } }
@media(max-height:600px) and (min-width:701px) {
  .atlas-dialog.has-photo-group[open] { grid-template-rows:68px minmax(0,1fr) 54px; }
  .atlas-dialog.has-photo-group .atlas-footer { grid-template-columns:minmax(0,1fr); padding:5px 20px; }
  .atlas-dialog.has-photo-group .atlas-playback,.atlas-dialog.has-photo-group .atlas-filmstrip,.atlas-dialog.has-photo-group .atlas-footnote { display:none; }
  .atlas-dialog.has-photo-group .atlas-group-bar { min-height:44px; flex-wrap:nowrap; }
  .atlas-map-intro { top:8px; left:20px; }.atlas-map-intro>.atlas-eyebrow { display:none; }.atlas-map-title { font-size:18px; margin-top:0!important; }.atlas-map-count { font-size:8px; margin-top:0!important; }
  .atlas-map-controls { left:20px; bottom:27px; }.atlas-map-controls button { min-width:44px; height:44px; }.atlas-map-controls .atlas-expand-map { display:block; font-size:10px; }
  .atlas-dialog.has-expanded-map .atlas-body { grid-template-columns:minmax(0,1fr); }.atlas-dialog.has-expanded-map .atlas-panel { display:none; }.atlas-dialog.has-expanded-map .atlas-expanded-photo { display:block; bottom:77px; }
}
@media(prefers-reduced-motion:reduce) { .atlas-dialog[open],.atlas-loading-orbit { animation:none; }.atlas-dialog * { scroll-behavior:auto!important; transition:none!important; } }

.atlas-location-estimate { margin-top:6px; font:11px/1.7 var(--sans,sans-serif); color:#62695e; }
.atlas-location-estimate>summary { cursor:pointer; min-height:24px; padding:3px 0; box-sizing:border-box; }
.atlas-location-estimate>p { margin-top:4px!important; max-height:96px; overflow:auto; overflow-wrap:anywhere; }
.atlas-location-estimate>summary:focus-visible { outline:1px solid currentColor; outline-offset:3px; }
