@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#102f35;--ink-2:#355b5d;--paper:#f1efe5;--paper-2:#e7e3d5;--line:#a8b7ad;--coral:#e96947;--amber:#f3bd52;--blue:#4d7f91;--green:#66866a;--white:#fffdf7;--radius:3px;--max:1180px;--s1:.5rem;--s2:.75rem;--s3:1rem;--s4:1.5rem;--s5:2rem;--s6:3rem;--s7:5rem}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,system-ui,sans-serif;line-height:1.62}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.26;background-image:linear-gradient(rgba(16,47,53,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(16,47,53,.045) 1px,transparent 1px);background-size:32px 32px;z-index:-1}a{color:inherit}img,svg{max-width:100%}.skip{position:absolute;top:-80px;left:1rem;background:var(--ink);color:white;padding:1rem;z-index:20}.skip:focus{top:1rem}:focus-visible{outline:3px solid var(--coral);outline-offset:4px}.wrap{width:min(calc(100% - 2rem),var(--max));margin-inline:auto}.site-header{position:sticky;top:0;background:rgba(241,239,229,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:10}.nav{height:76px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;font-weight:800;line-height:1.05}.brand img{width:40px;height:40px}.brand small{display:block;font:500 .64rem DM Mono,monospace;letter-spacing:.08em;color:var(--ink-2);margin-top:.3rem}.nav-links{display:flex;gap:1.4rem;align-items:center}.nav-links a{text-decoration:none;font-size:.88rem;font-weight:700}.nav-links a:hover{color:var(--coral)}.menu{display:none;border:1px solid var(--ink);background:none;padding:.5rem;font:600 .8rem DM Mono}
.eyebrow,.coord,.meta{font:500 .72rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.12em}.eyebrow{display:flex;align-items:center;gap:.8rem;color:var(--ink-2)}.eyebrow:before{content:"";width:30px;border-top:2px solid var(--coral)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.7rem,6.5vw,5.9rem);line-height:.95;letter-spacing:-.065em;margin:1rem 0 1.5rem;max-width:870px}h2{font-size:clamp(2rem,4vw,3.8rem);line-height:1.02;letter-spacing:-.045em;margin-bottom:1.5rem}h3{line-height:1.18}.lead{font-size:clamp(1.05rem,2vw,1.32rem);max-width:750px;color:var(--ink-2)}.hero{padding:var(--s7) 0 var(--s6);border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:var(--s6);align-items:end}.status{border-left:2px solid var(--coral);padding-left:1rem;font-size:.9rem}.status strong{display:block;color:var(--coral);font:600 .72rem DM Mono;text-transform:uppercase;letter-spacing:.08em}.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.8rem 1rem;border:1px solid var(--ink);text-decoration:none;font-weight:700;font-size:.86rem}.btn.primary{background:var(--ink);color:var(--white)}.btn:hover{transform:translateY(-2px);box-shadow:4px 4px 0 var(--amber)}
.quick{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink);margin-top:var(--s6)}.quick div{padding:1.2rem;border-right:1px solid var(--ink)}.quick div:last-child{border:0}.quick b{display:block;font-size:1.35rem}.quick span{font-size:.78rem;color:var(--ink-2)}section{padding:var(--s7) 0}.section-head{display:grid;grid-template-columns:.45fr 1fr;gap:2rem;margin-bottom:2.5rem}.section-head p{max-width:640px;color:var(--ink-2)}
.atlas-layout{display:grid;grid-template-columns:1.6fr .8fr;border:1px solid var(--ink);background:var(--paper-2)}.map-panel{min-height:590px;padding:1rem;position:relative;overflow:hidden;background:radial-gradient(circle at 40% 45%,rgba(243,189,82,.15),transparent 34%)}.map-panel svg{width:100%;height:100%;display:block}.region{stroke:var(--ink);stroke-width:1.5;transition:.25s;vector-effect:non-scaling-stroke}.region:hover,.region:focus{filter:brightness(1.08);stroke-width:4;outline:none}.map-label{font:700 17px Manrope;fill:var(--ink);pointer-events:none}.map-sub{font:500 10px DM Mono;fill:var(--ink);letter-spacing:.08em;pointer-events:none}.route{fill:none;stroke:var(--white);stroke-width:4;stroke-dasharray:8 7;opacity:.9}.node{fill:var(--coral);stroke:var(--white);stroke-width:4}.node-core{fill:var(--amber);stroke:var(--ink);stroke-width:3}.legend{border-left:1px solid var(--ink);padding:1.4rem;display:flex;flex-direction:column}.legend h3{font-size:1.4rem}.legend-list{list-style:none;margin:0;padding:0}.legend-list li{border-top:1px solid var(--line);padding:1rem 0}.legend-list b{display:block}.legend-list span{font-size:.82rem;color:var(--ink-2)}.key{display:inline-block;width:10px;height:10px;margin-right:.5rem}.legend-note{margin-top:auto;font:400 .72rem DM Mono;color:var(--ink-2)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card{border-top:4px solid var(--ink);background:var(--white);padding:1.5rem;min-height:270px}.card .meta{color:var(--coral)}.card p{color:var(--ink-2);font-size:.92rem}.tags{display:flex;gap:.4rem;flex-wrap:wrap;padding:0;list-style:none}.tags li{font:500 .68rem DM Mono;padding:.28rem .45rem;border:1px solid var(--line)}.link-arrow{font-weight:800;text-decoration:none;border-bottom:1px solid var(--ink)}
.feature{border:1px solid var(--ink);display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:var(--white)}.feature>div{padding:clamp(1.5rem,4vw,3.5rem)}.feature h2{font-size:clamp(2rem,4vw,4.2rem)}.feature p{color:#d2ded8}.feature-facts{background:var(--paper-2);color:var(--ink);display:grid!important;grid-template-columns:1fr 1fr;gap:1px;padding:1px!important}.feature-facts div{background:var(--paper);padding:1.5rem}.feature-facts b{display:block;font-size:1.6rem}.feature-facts span{font-size:.78rem;color:var(--ink-2)}
.timeline{max-width:900px;margin-left:auto}.event{display:grid;grid-template-columns:145px 1fr;gap:2rem;border-top:1px solid var(--line);padding:2rem 0}.event time{font:500 .75rem DM Mono;color:var(--coral)}.event p{color:var(--ink-2)}.event ul{padding-left:1.1rem}.contact{background:var(--amber);border-block:1px solid var(--ink)}.contact-grid{display:grid;grid-template-columns:1fr .75fr;gap:3rem}.contact-links{display:grid;gap:.8rem}.contact-links a{display:flex;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--ink);font-weight:700;text-decoration:none}.footer{padding:2rem 0;background:var(--ink);color:var(--white)}.footer .wrap{display:flex;justify-content:space-between;gap:1rem;font:400 .72rem DM Mono}.desktop-only{}.mobile-territories{display:none}
@media(max-width:780px){.menu{display:block}.nav-links{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--ink);padding:1rem;flex-direction:column;align-items:flex-start}.nav-links.open{display:flex}.hero{padding-top:3.5rem}.hero-grid,.section-head,.contact-grid{grid-template-columns:1fr}.quick{grid-template-columns:1fr 1fr}.quick div:nth-child(2){border-right:0}.quick div:nth-child(-n+2){border-bottom:1px solid var(--ink)}.atlas-layout{display:block}.desktop-only{display:none}.mobile-territories{display:grid;gap:.6rem}.territory{background:var(--white);border-left:8px solid var(--blue);padding:1rem}.territory:nth-child(2){border-color:var(--green)}.territory:nth-child(3){border-color:var(--amber)}.territory:nth-child(4){border-color:var(--coral)}.territory:nth-child(5){border-color:#7d8899}.territory b{display:block}.territory span{font-size:.8rem;color:var(--ink-2)}.legend{border:0;border-top:1px solid var(--ink)}.cards{grid-template-columns:1fr}.feature{grid-template-columns:1fr}.event{grid-template-columns:1fr;gap:.3rem}.footer .wrap{flex-direction:column}section{padding:3.5rem 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.page-hero{padding:4rem 0 3rem;border-bottom:1px solid var(--ink)}.page-hero h1{font-size:clamp(2.8rem,6vw,5.2rem)}.case{padding:4rem 0;border-bottom:1px solid var(--line)}.case-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:4rem}.case-nav{position:sticky;top:110px;align-self:start}.case-nav dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;font-size:.8rem}.case-nav dt{font:500 .68rem DM Mono;color:var(--coral)}.case-nav dd{margin:0}.prose{max-width:760px}.prose h2{font-size:2.3rem;margin-top:3rem}.prose h3{font-size:1.25rem;margin-top:2rem}.prose p,.prose li{color:var(--ink-2)}.architecture{background:var(--ink);color:var(--white);padding:1.5rem;margin:2rem 0}.architecture .flow{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.architecture .flow span{border:1px solid #8ba3a0;padding:.7rem;font:500 .67rem DM Mono;text-align:center}.architecture .flow i{font-style:normal;color:var(--amber)}.cv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.cv-card{background:var(--white);border:1px solid var(--ink);padding:1.5rem;display:flex;flex-direction:column}.cv-card .btn{margin-top:auto;justify-content:center}.plain-list{padding:0;list-style:none}.plain-list li{padding:.8rem 0;border-top:1px solid var(--line)}
@media(max-width:780px){.case-grid,.cv-grid{grid-template-columns:1fr}.case-nav{position:static}.architecture .flow{align-items:stretch;flex-direction:column}.architecture .flow i{text-align:center;transform:rotate(90deg)}}
/* Atlas pass 02 — a shared cartographic grammar beyond the overview map */
main>section,main>.page-hero{position:relative;isolation:isolate}main>section:not(.contact):after,main>.page-hero:after{content:"+  FEUILLE / " attr(id);position:absolute;right:max(1rem,calc((100% - var(--max))/2));top:1.35rem;font:500 .6rem DM Mono,monospace;letter-spacing:.14em;color:var(--ink-2);opacity:.62}.hero:after{content:"43°36′40″N  ·  3°52′37″E"!important}.card,.feature,.cv-card,.case-nav{position:relative}.card:after,.cv-card:after{content:"";position:absolute;right:8px;bottom:8px;width:12px;height:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.map-marginal,.local-map-head{display:flex;justify-content:space-between;gap:1rem;font:500 .58rem DM Mono,monospace;letter-spacing:.12em}.map-marginal{position:absolute;inset:12px 16px auto;z-index:2;color:var(--ink)}.contours path{fill:none;stroke:var(--ink-2);stroke-width:1.1;opacity:.22}.domain-label text{font:700 15px Manrope;fill:var(--ink);filter:url(#halo)}.domain-label text:nth-child(even){font:500 8px DM Mono;letter-spacing:.08em}.routes .route{fill:none;stroke:var(--white);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;opacity:.95}.routes .route-main{stroke:var(--coral)}.routes .route-branch{stroke-width:3;stroke-dasharray:7 6}.map-site>*{vector-effect:non-scaling-stroke}.map-site>path,.map-site>circle,.map-site>rect{stroke:var(--ink);stroke-width:2;fill:var(--paper)}.map-site text{font:700 10px DM Mono;letter-spacing:.045em;fill:var(--ink)}.map-site text+text{font-size:7.5px;font-weight:500}.map-site .label-plate{fill:var(--paper);stroke:var(--ink);stroke-width:1}.site-major>circle:first-child{fill:var(--amber);stroke-width:3}.site-major>circle:nth-child(2){fill:var(--coral)}.site-installation>circle{fill:none;stroke:var(--white);stroke-width:2}.site-installation>path:first-child{fill:var(--blue);stroke-width:3}.scale path{fill:none;stroke:var(--ink);stroke-width:1}.scale text{font:500 7px DM Mono;fill:var(--ink)}.legend-symbol{display:inline-block;vertical-align:-2px;width:14px;height:14px;margin-right:.55rem;border:2px solid var(--ink)}.legend-symbol.capital{border-radius:50%;background:radial-gradient(circle,var(--coral) 0 28%,var(--amber) 30% 68%,transparent 70%)}.legend-symbol.facility{background:var(--blue);box-shadow:3px -3px 0 -1px var(--paper),3px -3px 0 0 var(--ink)}.legend-symbol.waypoint{width:10px;height:10px;border-radius:50%;background:var(--paper)}.route-key{width:18px;height:3px;background:var(--coral)!important}.map-panel{padding-top:2rem}
/* The professional route remains readable text, but behaves as a surveyed itinerary. */
.journey{position:relative;max-width:980px;margin-left:auto;padding:1rem 0 1rem 132px;background:linear-gradient(90deg,transparent 86px,rgba(16,47,53,.08) 87px,transparent 88px)}.journey:before{content:"";position:absolute;left:86px;top:38px;bottom:38px;border-left:5px solid var(--coral)}.journey-rail{position:absolute;left:14px;top:8px;bottom:10px;width:56px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.journey-rail .north{display:grid;place-items:center;width:30px;height:30px;margin:0 auto;border:1px solid var(--ink);border-radius:50%;font:600 .72rem DM Mono}.journey-rail .north:after{content:"";position:absolute;top:0;border:5px solid transparent;border-bottom-color:var(--ink);transform:translateY(-7px)}.route-distance{position:absolute;bottom:8px;left:16px;writing-mode:vertical-rl;transform:rotate(180deg);font:500 .58rem DM Mono;letter-spacing:.12em;color:var(--ink-2)}.journey-stop{position:relative;display:grid;grid-template-columns:110px 1fr;gap:1.5rem;padding:1.8rem 0;border-top:1px solid var(--line)}.journey-stop:last-child{border-bottom:1px solid var(--line)}.stop-marker{position:absolute;left:-59px;top:30px;display:grid;place-items:center;width:28px;height:28px;background:var(--paper);border:3px solid var(--ink);transform:rotate(45deg)}.stop-marker span{transform:rotate(-45deg);font:600 .54rem DM Mono}.stop-capital .stop-marker{width:38px;height:38px;left:-64px;top:25px;border-radius:50%;background:var(--amber);box-shadow:inset 0 0 0 7px var(--paper)}.stop-facility .stop-marker{background:var(--blue);border-radius:0}.stop-coord{font:500 .61rem DM Mono;line-height:1.55;letter-spacing:.08em;color:var(--ink-2);padding-top:.2rem}.stop-content time{font:500 .7rem DM Mono;color:var(--coral)}.stop-content h3{font-size:1.35rem;margin:.25rem 0 .55rem}.stop-content p,.stop-content li{font-size:.9rem;color:var(--ink-2)}.stop-type{font:500 .62rem DM Mono!important;text-transform:uppercase;letter-spacing:.1em;margin:.35rem 0!important}.stop-content ul{padding-left:1rem}
/* Résurgence is a literal local sheet of the same atlas. */
.local-map{background:var(--ink);color:var(--white);margin:2rem 0;border:1px solid var(--ink);box-shadow:8px 8px 0 var(--amber)}.local-map-head{padding:.75rem 1rem;border-bottom:1px solid #668085;color:#d2ded8}.local-map svg{display:block;width:100%;height:auto}.local-contours path{fill:none;stroke:#d2ded8;stroke-width:1;opacity:.13}.local-zone>path{stroke:#d2ded8;stroke-width:1.2;fill:#355b5d;opacity:.38}.local-zone text{font:600 9px DM Mono;letter-spacing:.08em;fill:#f1efe5}.local-zone text+text{font-size:7px;opacity:.75}.zone-edge>path{fill:#66866a}.zone-app>path{fill:#4d7f91}.zone-data>path{fill:#a07c43}.zone-ops>path{fill:#536f64}.local-route path{fill:none;stroke:var(--amber);stroke-width:4;marker-end:url(#arrow)}.local-route .admin-route{stroke:#d2ded8;stroke-width:2;stroke-dasharray:7 5}.local-site>*{vector-effect:non-scaling-stroke}.local-site rect,.local-site path,.local-site ellipse{fill:#102f35;stroke:#f1efe5;stroke-width:1.5}.local-site text{font:600 8px DM Mono;fill:#f1efe5;text-anchor:middle;letter-spacing:.04em}.local-site text+text{font-size:6.5px;opacity:.8}.site-capital circle:first-child{fill:var(--amber);stroke:#f1efe5;stroke-width:2}.site-capital circle:nth-child(2){fill:var(--coral);stroke:#102f35;stroke-width:3}.site-data path,.site-data ellipse{fill:#355b5d}.site-vpn path{stroke-dasharray:5 3}.outside-label{font:500 7px DM Mono;fill:#d2ded8;letter-spacing:.08em}.local-legend{display:flex;gap:1.2rem;flex-wrap:wrap;padding:.75rem 1rem;border-top:1px solid #668085;font:500 .62rem DM Mono;color:#d2ded8}.local-legend span{display:flex;align-items:center;gap:.4rem}.local-legend i{display:inline-block;width:18px}.line-solid{border-top:3px solid var(--amber)}.line-dash{border-top:2px dashed #d2ded8}.dot-major{width:11px!important;height:11px;border-radius:50%;background:var(--amber);border:2px solid var(--coral)}.area{height:11px;background:#4d7f91;border:1px solid #d2ded8}
@media(max-width:780px){main>section:not(.contact):after,main>.page-hero:after{right:1rem;font-size:.5rem}.mobile-territories{position:relative;padding-left:2.25rem}.mobile-territories:before{content:"";position:absolute;left:.78rem;top:1rem;bottom:1rem;border-left:3px solid var(--coral)}.territory{position:relative;border:1px solid var(--line)!important;border-left:1px solid var(--line)!important;padding:1rem 1rem 1rem 1.2rem;background:rgba(255,253,247,.82)}.territory:before{content:"";position:absolute;left:-1.92rem;top:1.15rem;width:12px;height:12px;background:var(--paper);border:3px solid var(--ink);border-radius:50%}.territory:after{content:"";position:absolute;left:-1.1rem;top:1.55rem;width:1.1rem;border-top:1px solid var(--ink)}.territory:nth-child(3):before{background:var(--amber)}.territory:nth-child(4):before{background:var(--coral)}.journey{padding-left:54px;background:none}.journey:before{left:20px}.journey-rail{display:none}.journey-stop{grid-template-columns:1fr;gap:.45rem;padding:1.5rem 0}.stop-marker{left:-47px;top:29px}.stop-capital .stop-marker{left:-52px}.stop-coord{font-size:.56rem}.local-map{margin-inline:-.5rem;box-shadow:4px 4px 0 var(--amber);overflow:hidden}.local-map-head{font-size:.48rem}.local-map-head span:nth-child(2){display:none}.local-map svg{min-width:680px;transform:translateX(-52px)}.local-legend{gap:.65rem}.local-legend span{font-size:.54rem}}
/* Canonical interactive atlas — the map is navigation, not decoration. */
main>section:not(.contact):after,main>.page-hero:after,.card:after,.cv-card:after{display:none}.gis-shell{border:1px solid var(--ink);background:var(--paper-2);box-shadow:6px 6px 0 rgba(16,47,53,.13)}.gis-toolbar{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .8rem;border-bottom:1px solid var(--ink);background:var(--paper)}.layer-switcher{display:flex;gap:.35rem;flex-wrap:wrap}.layer-btn{border:1px solid var(--line);background:transparent;color:var(--ink);padding:.45rem .65rem;font:600 .66rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.layer-btn:before{content:"";display:inline-block;width:7px;height:7px;margin-right:.45rem;border:1px solid currentColor}.layer-btn.active{border-color:var(--ink);background:var(--ink);color:var(--white)}.layer-btn.active:before{background:var(--amber)}.gis-status{margin:0;font:500 .66rem DM Mono;color:var(--ink-2);white-space:nowrap}.gis-main{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-height:610px}.gis-viewport{position:relative;overflow:hidden;min-height:610px;background:var(--paper-2);touch-action:none;cursor:grab;outline-offset:-4px}.gis-viewport.dragging{cursor:grabbing}.gis-canvas{display:block;width:100%;height:100%;min-height:610px;user-select:none}.terrain-lines path{fill:none;stroke:var(--ink-2);stroke-width:1.2;opacity:.18;vector-effect:non-scaling-stroke}.territory-shape{stroke:var(--ink);stroke-width:1.4;vector-effect:non-scaling-stroke;transition:filter .18s,opacity .18s;cursor:pointer}.territory-shape:hover,.territory-shape:focus,.territory-shape.selected{filter:brightness(1.08);stroke-width:3;outline:none}.territory-shape.cyber{fill:#a9b9aa}.territory-shape.systems{fill:#c8bc7c}.territory-shape.infra{fill:#82a7a8}.territory-shape.sre{fill:#d88a6e}.territory-shape.software{fill:#aeb5c0}.territory-labels text{font:700 15px Manrope;fill:var(--ink);letter-spacing:.055em;filter:url(#labelHalo);pointer-events:none}.meaningful-routes path{fill:none;stroke:var(--coral);stroke-width:5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.meaningful-routes .project-link{stroke:var(--white);stroke-width:2.5;stroke-dasharray:7 6}.poi{cursor:pointer;outline:none}.poi>*{vector-effect:non-scaling-stroke}.poi circle,.poi rect,.poi path{fill:var(--paper);stroke:var(--ink);stroke-width:2}.poi text{font:700 10px DM Mono;fill:var(--ink);letter-spacing:.035em;filter:url(#labelHalo);pointer-events:none}.poi text.zoom-detail{font-size:7.5px;font-weight:500}.poi:hover circle,.poi:hover rect,.poi:hover path,.poi:focus circle,.poi:focus rect,.poi:focus path,.poi.selected circle,.poi.selected rect,.poi.selected path{stroke:var(--coral);stroke-width:4}.poi.capital>circle:first-child{fill:var(--amber);stroke-width:3}.poi.capital>circle:nth-child(2){fill:var(--coral)}.poi.facility>path{fill:var(--blue)}.poi.facility>circle{fill:none;stroke:var(--white)}.poi.skill circle{fill:var(--coral);stroke:var(--paper)}.zoom-detail{opacity:0;pointer-events:none;transition:opacity .16s}.is-detailed .zoom-detail{opacity:1;pointer-events:auto}.map-controls{position:absolute;top:12px;right:12px;display:grid;background:var(--paper);border:1px solid var(--ink);box-shadow:2px 2px 0 rgba(16,47,53,.2)}.map-controls button{width:36px;height:36px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:600 1.1rem Manrope;cursor:pointer}.map-controls button:last-child{border:0}.map-controls button:hover{background:var(--amber)}.map-scale{position:absolute;left:14px;bottom:13px;font:500 .55rem DM Mono;color:var(--ink);text-shadow:0 1px var(--paper)}.map-scale span{display:block;width:90px;border-top:3px solid var(--ink);border-inline:1px solid var(--ink);height:6px}.map-hint{position:absolute;right:12px;bottom:8px;margin:0;padding:.25rem .4rem;background:rgba(241,239,229,.9);font:500 .57rem DM Mono;color:var(--ink-2)}.place-panel{position:relative;padding:1.4rem;border-left:1px solid var(--ink);background:var(--paper);display:flex;flex-direction:column}.panel-close{position:absolute;right:.7rem;top:.55rem;border:0;background:transparent;font-size:1.4rem;color:var(--ink);cursor:pointer;opacity:0;pointer-events:none}.place-panel.open .panel-close{opacity:1;pointer-events:auto}.place-panel h3{font-size:1.55rem;margin:.7rem 0}.place-panel .panel-copy{color:var(--ink-2);font-size:.88rem}.place-panel .panel-tags{margin-top:.5rem}.place-panel .panel-link{margin-top:1rem;align-self:flex-start}.panel-coords{margin-top:auto;padding-top:1rem;border-top:1px solid var(--line);font:500 .6rem DM Mono;color:var(--ink-2)}.gis-noscript{margin:0;padding:1rem;border-top:1px solid var(--ink)}
/* Editorial content returns to the clearest native form. */
.system-diagram{margin:2rem 0;border:1px solid var(--ink);background:var(--white)}.diagram-head{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:var(--ink);color:var(--white);font:500 .67rem DM Mono;text-transform:uppercase;letter-spacing:.08em}.diagram-grid{padding:1.4rem;display:grid;grid-template-columns:1fr auto 1fr auto 1.2fr auto 1fr;align-items:center;gap:.55rem;background-image:linear-gradient(rgba(16,47,53,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(16,47,53,.04) 1px,transparent 1px);background-size:24px 24px}.diagram-node{padding:.75rem;border:1px solid var(--ink);background:var(--paper);text-align:center}.diagram-node b{display:block;font-size:.8rem}.diagram-node small{display:block;margin-top:.25rem;color:var(--ink-2);font:500 .57rem DM Mono}.diagram-node.api{background:var(--amber);border-width:2px}.diagram-node.edge{border-color:var(--green);border-width:2px}.diagram-node.data{background:var(--paper-2)}.diagram-arrow{font-weight:800;color:var(--coral)}.diagram-branches{grid-column:5/8;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-top:.2rem}.diagram-branches>div{display:grid;gap:.25rem;text-align:center;color:var(--coral)}.diagram-admin{grid-column:1/5;display:flex;align-items:center;gap:.7rem;margin-top:.4rem}.diagram-admin>span{font:500 .55rem DM Mono;color:var(--ink-2)}.locator-reference{display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border-top:1px solid var(--line);background:var(--paper-2)}.locator-reference p{margin:0!important;font-size:.74rem!important}.locator-dot{flex:none;width:15px;height:15px;border:4px solid var(--amber);border-radius:50%;box-shadow:inset 0 0 0 2px var(--coral)}
@media(max-width:780px){.gis-toolbar{align-items:flex-start;flex-direction:column}.gis-status{white-space:normal}.gis-main{grid-template-columns:1fr;min-height:0}.gis-viewport,.gis-canvas{min-height:470px}.place-panel{min-height:240px;border-left:0;border-top:1px solid var(--ink)}.map-hint{display:none}.gis-shell{margin-inline:-.5rem}.diagram-grid{grid-template-columns:1fr;gap:.45rem}.diagram-arrow{transform:rotate(90deg);text-align:center}.diagram-branches,.diagram-admin{grid-column:auto}.diagram-branches{grid-template-columns:1fr}.diagram-admin{flex-direction:column}.diagram-head{font-size:.56rem}.timeline{margin-left:0}.event{grid-template-columns:1fr;gap:.25rem}}
.poi-layer[hidden]{display:none}.gis-viewport:focus-visible{outline:3px solid var(--coral);outline-offset:-4px}.poi:focus text,.territory-shape:focus+text{font-weight:800}
.poi.detail circle{fill:var(--blue);stroke:var(--paper);stroke-width:2}.poi.detail text{font-size:7px;font-weight:600}.experience-subpois{transition:opacity .16s}
.profile-status{display:grid;grid-template-columns:96px 1fr;gap:1rem;align-items:center}.profile-status>img{display:block;width:96px;height:96px;object-fit:cover;border-radius:50%;border:3px solid var(--paper);outline:1px solid var(--ink);background:var(--paper-2)}
@media(max-width:520px){.profile-status{grid-template-columns:72px 1fr}.profile-status>img{width:72px;height:72px}}
/* Documented landmarks and a searchable, keyboard-accessible atlas index. */
.gis-shell [hidden]{display:none!important}.gis-shell{scroll-margin-top:90px}.gis-main{grid-template-columns:minmax(0,1fr) 330px;align-items:start}.gis-viewport{height:650px;min-height:0}.gis-canvas{height:100%;min-height:0}.place-panel{height:650px;overflow:auto}.panel-content{font-size:.82rem;color:var(--ink-2)}.panel-content h4{color:var(--ink);margin:1.25rem 0 .5rem;font-size:.85rem}.panel-state{border-left:2px solid var(--coral);padding-left:.65rem;margin:1rem 0;font:500 .66rem DM Mono;line-height:1.7}.panel-facts{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.panel-facts>div{border:1px solid var(--line);padding:.6rem}.panel-facts dt{font-size:1.15rem;font-weight:800;color:var(--ink)}.panel-facts dd{margin:0;font-size:.7rem}.panel-related{display:flex;flex-wrap:wrap;gap:.4rem}.panel-related button{font:inherit;font-size:.73rem;text-align:left;background:var(--white);border:1px solid var(--line);padding:.4rem .5rem;color:var(--ink);cursor:pointer}.panel-related button:hover{border-color:var(--coral)}.panel-source{display:block;font-size:.72rem;overflow-wrap:anywhere;margin-bottom:.6rem}.panel-coords{margin-top:1rem}.selection-routes path{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-dasharray:4 5;opacity:.55;vector-effect:non-scaling-stroke}.added-poi text{font-size:8px}.atlas-legend{display:flex;flex-wrap:wrap;gap:.8rem 1.5rem;padding:.8rem 1rem;border-block:1px solid var(--ink);font:500 .62rem DM Mono;background:var(--paper)}.atlas-browser{padding:1.5rem;background:var(--paper)}.atlas-browser-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.atlas-browser-head h3{font-size:1.5rem;margin-bottom:1rem}.atlas-count{font:500 .72rem DM Mono}.atlas-filters{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:.8rem;align-items:end;margin:.5rem 0 1.5rem}.atlas-filters label{display:grid;gap:.35rem;font-size:.75rem;font-weight:700}.atlas-filters input,.atlas-filters select{width:100%;min-width:0;padding:.65rem;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:0;font:inherit;font-weight:400}.atlas-filters .btn{background:transparent;cursor:pointer;padding:.65rem;font-size:.75rem}.atlas-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.atlas-result{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;padding:1rem;border:1px solid var(--line);border-top:3px solid var(--ink);background:var(--white);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.atlas-result .meta{font-size:.58rem;color:var(--coral)}.atlas-result strong{font-size:1.05rem;line-height:1.25}.atlas-result>span:not(.meta){font-size:.78rem;color:var(--ink-2)}.atlas-result small{font:500 .61rem DM Mono;margin-top:auto}.atlas-result:hover,.atlas-result.selected{border-color:var(--coral);background:#f9f2df}.atlas-more{margin-top:1rem;background:transparent;cursor:pointer}.atlas-provenance{font-size:.73rem;color:var(--ink-2);margin:1.5rem 0 0;max-width:900px}.panel-close{opacity:1;pointer-events:auto}.place-panel:not(.open) .panel-close{display:none}
@media(max-width:1000px){.gis-main{grid-template-columns:minmax(0,1fr) 290px}.atlas-filters{grid-template-columns:1fr 1fr}.atlas-results{grid-template-columns:1fr 1fr}}
@media(max-width:780px){.gis-main{grid-template-columns:1fr}.gis-viewport{height:430px;min-height:0}.place-panel{height:auto;max-height:none;border-left:0;border-top:1px solid var(--ink);padding:1.1rem}.atlas-browser{padding:1rem}.atlas-results{grid-template-columns:1fr}.atlas-filters{grid-template-columns:1fr}.atlas-browser-head{align-items:start}.map-hint{max-width:65%;font-size:.5rem}.atlas-legend{font-size:.57rem}.panel-facts{grid-template-columns:repeat(2,1fr)}}

.gis-shell .poi .poi-hit{fill:transparent;stroke:none;pointer-events:all}.meaningful-routes,.selection-routes,.terrain-lines,.territory-labels{pointer-events:none}

.territory-anchor circle{fill:var(--paper);stroke:var(--ink);stroke-width:2}.territory-anchor.selected circle{fill:var(--coral)}
