.atlas{--ink:#162522;--line:#16252224;--sheet:#f6f6f0;box-sizing:border-box;width:100vw;height:100svh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;overflow:hidden}
.atlas[open]{display:grid;grid-template-rows:56px 1fr}.atlas::backdrop{background:transparent}
.atlas button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
/* Opens and closes like the hero's aperture */
.atlas.entering{animation:atlas-open .75s cubic-bezier(.65,0,.35,1) both}.atlas.entering .atlas-body{animation:atlas-rise .9s .2s cubic-bezier(.2,.75,.2,1) both}.atlas.leaving{animation:atlas-open .42s cubic-bezier(.65,0,.35,1) reverse both}
@keyframes atlas-open{from{clip-path:inset(50% 0 50% 0)}to{clip-path:inset(0)}}@keyframes atlas-rise{from{opacity:0;transform:translateY(18px)}}
.atlas-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 3.5vw;border-bottom:1px solid var(--line);font:10px monospace;letter-spacing:.08em}.atlas-mark i{font-style:normal;opacity:.5}
.atlas-modes{display:flex;gap:28px}.atlas-modes button{font:14px Arial,sans-serif;letter-spacing:0;padding:8px 0;position:relative;opacity:.45;transition:opacity .3s}.atlas-modes button::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.75,.2,1)}.atlas-modes [aria-selected="true"]{opacity:1}.atlas-modes [aria-selected="true"]::after{transform:scaleX(1)}.atlas-modes button:hover{opacity:1}
.atlas-right{display:flex;justify-content:flex-end;align-items:center;gap:14px}.atlas-pills{display:flex;gap:6px}.atlas .atlas-pill{font:10px monospace;letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--paper);padding:6px 9px;animation:atlas-rise .4s both}.atlas-close{font:13px Arial,sans-serif!important;padding:10px 0!important}
.atlas-body{position:relative;min-height:0}.atlas-map,.atlas-timeline{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s}.atlas[data-mode="map"] .atlas-map,.atlas[data-mode="timeline"] .atlas-timeline{opacity:1;visibility:visible;transition:opacity .5s}

/* Map */
.map-canvas{position:absolute;inset:0;cursor:grab}.map-canvas:active{cursor:grabbing}.map-canvas svg{display:block;width:100%;height:100%}
.map-wait{position:absolute;inset:0;display:grid;place-items:center;margin:0;font:10px monospace;letter-spacing:.1em;text-transform:uppercase;opacity:.5}
.map-land path{vector-effect:non-scaling-stroke;fill:none}.map-land .sphere{fill:var(--paper)}.map-land .grat{stroke:var(--line);stroke-width:.5;opacity:.6}.map-land .land{fill:var(--sheet);stroke:#16252266;stroke-width:.6}.map-land .borders{stroke:#16252230;stroke-width:.5}.map-land .states{stroke:#1625221f;stroke-width:.5}
.map-route{fill:none;stroke:var(--ink);stroke-width:1;stroke-opacity:.32;stroke-linejoin:round;pointer-events:none}
.mark{cursor:pointer;outline:none;transition:opacity .4s}.mark .dot{fill:var(--ink);transition:r .3s}.mark .halo{fill:none;stroke:none}.mark.is-hollow .dot{fill:var(--paper);stroke:var(--ink);stroke-width:1.3}.mark.is-approx .halo{stroke:var(--ink);stroke-width:1;stroke-dasharray:2 3;opacity:.55}
.mark .count{font:700 9px Arial,sans-serif;fill:var(--paper);text-anchor:middle;pointer-events:none}.mark.is-hollow .count{fill:var(--ink)}
.mark .name{font:10px monospace;letter-spacing:.06em;text-transform:uppercase;fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:4px;stroke-linejoin:round;pointer-events:none}.mark.no-label .name{display:none}.mark:hover .name,.mark:focus-visible .name{display:block}
.mark:hover .dot,.mark:focus-visible .dot{fill:var(--accent);stroke:var(--ink);stroke-width:1.3}.mark.is-selected .dot{fill:var(--accent);stroke:var(--ink);stroke-width:1.5}.mark.is-selected .halo{stroke:var(--ink);stroke-width:1;stroke-dasharray:none;opacity:1;animation:halo 1.8s ease-out infinite}.mark.is-selected .count{fill:var(--ink)}.mark.is-dim{opacity:.16}
@keyframes halo{from{stroke-opacity:.7;transform:scale(.8)}to{stroke-opacity:0;transform:scale(2)}}
.map-frames{position:absolute;left:3.5vw;bottom:26px;display:flex;flex-wrap:wrap;gap:4px 18px;font:10px monospace;letter-spacing:.08em;text-transform:uppercase}.map-frames button{padding:6px 0!important;opacity:.5;border-bottom:1px solid transparent!important;transition:opacity .3s,border-color .3s}.map-frames button:hover{opacity:1}.map-frames [aria-current="true"]{opacity:1;border-color:var(--ink)!important}
.map-legend{position:absolute;right:3.5vw;bottom:26px;margin:0;display:flex;gap:16px;align-items:center;font:9px monospace;letter-spacing:.06em;text-transform:uppercase;opacity:.65;transition:right .5s cubic-bezier(.2,.75,.2,1)}.map-legend span{display:flex;align-items:center;gap:6px}.key-dot{width:7px;height:7px;border-radius:50%;background:var(--ink)}.key-dot.hollow{background:none;border:1px solid var(--ink)}.key-route{width:18px;height:1px;background:var(--ink);opacity:.5}.map-unplaced{text-decoration:underline 1px;text-underline-offset:3px;text-decoration-color:var(--line)}.map-unplaced:hover{text-decoration-color:var(--ink)}
.map-panel{position:absolute;top:0;right:0;bottom:0;width:380px;box-sizing:border-box;padding:34px 30px 40px;background:var(--sheet);border-left:1px solid var(--line);overflow:auto;transform:translateX(102%);transition:transform .6s cubic-bezier(.2,.75,.2,1)}.map-panel.open{transform:none}.atlas-map:has(.map-panel.open) .map-legend{right:calc(380px + 3.5vw)}
.panel-close{position:absolute;top:16px;right:18px;font-size:20px!important;width:32px;height:32px}.panel-kicker{font:10px monospace;letter-spacing:.1em;opacity:.6}.map-panel h2{font:400 clamp(30px,3vw,42px)/1.02 Georgia,serif;letter-spacing:-.045em;margin:14px 0 10px}.panel-meta{font:10px monospace;letter-spacing:.06em;text-transform:uppercase;margin:0 0 18px;opacity:.7}.panel-note{font:12px/1.5 Arial,sans-serif;opacity:.7;margin:-8px 0 18px}
.map-panel.open>*{animation:story-line .6s cubic-bezier(.2,.75,.2,1) both}.map-panel.open>:nth-child(3){animation-delay:.06s}.map-panel.open>:nth-child(4){animation-delay:.1s}.map-panel.open>:nth-child(n+5){animation-delay:.16s}
.panel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px;margin-bottom:24px}.panel-frame{display:flex;flex-direction:column;gap:5px;text-align:left;cursor:zoom-in!important}.panel-frame img{width:100%;aspect-ratio:1;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.75,.2,1)}.panel-frame:hover img{transform:translateY(-3px)}.panel-frame small{font:8px monospace;letter-spacing:.05em;text-transform:uppercase;opacity:.55}
.panel-archive{font:12px Arial,sans-serif!important;border-bottom:1px solid var(--ink)!important;padding:0 0 6px!important}

/* Timeline */
.tl-scroll{position:absolute;inset:0;overflow:auto;padding:34px 8vw 140px 3.5vw;box-sizing:border-box}
.tl-rhythm{display:flex;align-items:flex-end;gap:2px;height:46px;padding-bottom:10px;margin:0 0 30px 220px;border-bottom:1px solid var(--line);position:relative}.tl-rhythm button{flex:1;min-width:2px;max-width:9px;height:calc(4px + var(--h)*36px);background:var(--ink)!important;opacity:.45;transition:opacity .2s,background .2s;position:relative}.tl-rhythm button:disabled{height:1px;opacity:.2;cursor:default}.tl-rhythm button:not(:disabled):hover{opacity:1;background:var(--accent)!important;outline:1px solid var(--ink)}.tl-rhythm [data-year-start]::after{content:attr(data-year-start);position:absolute;top:calc(100% + 14px);left:0;font:9px monospace;letter-spacing:.06em;opacity:.7}
.tl-year{display:grid;grid-template-columns:220px minmax(0,1fr);gap:0;padding:26px 0 40px;border-top:1px solid var(--line)}.tl-year .tl-head{position:sticky;top:0;align-self:start;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-top:4px}
.tl-numeral{font:400 clamp(56px,6vw,96px)/.9 Georgia,serif!important;letter-spacing:-.07em;position:relative}.tl-numeral::after{content:"";position:absolute;left:2px;right:6px;bottom:-6px;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.75,.2,1)}.tl-numeral:hover::after{transform:scaleX(.4)}.tl-year.is-set .tl-numeral::after{transform:scaleX(1)}
.tl-year .tl-head span{font:10px monospace;letter-spacing:.08em;text-transform:uppercase;opacity:.55}.tl-archive{white-space:nowrap;font:10px monospace!important;letter-spacing:.06em;text-transform:uppercase;opacity:0;transition:opacity .3s;border-bottom:1px solid currentColor!important;padding-bottom:3px!important}.tl-year:hover .tl-archive,.tl-archive:focus-visible{opacity:.7}
.tl-month{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid #16252212}.tl-mon{font:10px monospace;letter-spacing:.1em;padding-top:4px;opacity:.6}
.tl-strip{display:flex;flex-wrap:wrap;gap:8px}.tl-frame{position:relative;height:112px;width:calc(112px * var(--r));max-width:200px;min-width:70px;cursor:zoom-in!important;transition:opacity .45s,filter .45s,transform .45s cubic-bezier(.2,.75,.2,1)}.tl-frame img{width:100%;height:100%;object-fit:cover;display:block;background:var(--line)}.tl-frame:hover{transform:translateY(-4px);z-index:2}.tl-frame.is-dim{opacity:.14;filter:grayscale(1)}
.tl-shot{position:absolute;left:5px;bottom:5px;font:8px monospace;font-style:normal;letter-spacing:.05em;background:var(--paper);color:var(--ink);padding:3px 4px}
.tl-years{position:absolute;right:2.2vw;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;font:10px monospace;letter-spacing:.08em}.tl-years button{opacity:.4;text-align:right;transition:opacity .3s}.tl-years button:hover{opacity:1}.tl-years [aria-current="true"]{opacity:1;font-weight:700}
.atlas .viewer-landed{animation:viewer-landed 1s cubic-bezier(.2,.75,.2,1)}

@media(max-width:760px){.atlas-top{grid-template-columns:auto 1fr;padding:0 5vw}.atlas-mark{display:none}.atlas-modes{gap:20px}.atlas-pills{display:none}
.map-panel{top:auto;left:0;width:auto;height:48%;border-left:0;border-top:1px solid var(--line);padding:26px 6vw 30px;transform:translateY(102%)}.map-legend{display:none}.map-frames{left:5vw;right:5vw;top:16px;bottom:auto;flex-wrap:nowrap;overflow-x:auto;gap:16px}
.tl-scroll{padding:22px 5vw 100px}.tl-rhythm{margin-left:0}.tl-year{display:block}.tl-year .tl-head{position:static;flex-direction:row;align-items:baseline;gap:14px;margin-bottom:12px}.tl-numeral{font-size:56px!important}.tl-archive{opacity:.6}.tl-month{grid-template-columns:38px minmax(0,1fr)}.tl-frame{height:78px;width:calc(78px * var(--r));min-width:52px;max-width:140px}.tl-years{display:none}}
