@import url('https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@75,900;100,600;100,800&family=Hanken+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:light;--sun:#f5da66;--ink:#202b24;--paper:#fffdf4;--green:#d1e6c9;--blue:#cde7ee;--pink:#f4cbc0;--deep:#184b38;--line:#667460;--red:#b23824;--white:#fff;--shade:rgba(32,43,36,.14);--veil:rgba(32,43,36,.56);--display:'Archivo',Impact,sans-serif;--body:'Hanken Grotesk',Arial,sans-serif;--gutter:clamp(22px,4vw,72px);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background:var(--sun);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.5}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:4px}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--red);outline-offset:5px}button{border:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--display);line-height:.96}svg{display:block}button svg{pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:20px;top:-100px;z-index:100;background:var(--paper);padding:12px}.skip:focus{top:12px}.topbar{height:72px;position:absolute;z-index:20;top:0;left:0;right:0;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:800;text-decoration:none;display:flex;align-items:center;gap:10px;letter-spacing:-.4px}.star{width:22px;height:22px;fill:currentColor}.top-actions{display:flex;gap:24px;align-items:center;font-size:14px}.text-button{background:none;padding:8px 0;border-bottom:1px solid currentColor}.top-actions a{text-decoration:none}.hero{position:relative;min-height:100svh;padding:120px var(--gutter) 34px;overflow:hidden;display:flex;flex-direction:column}.hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:32px}.hero h1{font-size:clamp(80px,12.2vw,210px);font-stretch:condensed;letter-spacing:-.045em;line-height:.78;max-width:75%;position:relative;z-index:2}.hero h1 span{display:block}.hero h1 .office{padding-left:8vw}.hero-caption{max-width:240px;padding-top:12px;font-size:18px;line-height:1.4}.hero-caption p+p{margin-top:20px;font-size:14px}.hero-eagle{position:absolute;width:clamp(100px,14vw,210px);height:auto;top:250px;right:10%;transform:rotate(-14deg);color:var(--deep)}.hero-portraits{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));margin:50px -1.8vw 0;align-items:end;flex:1;position:relative;z-index:3}.hero-person{min-width:0;position:relative;text-decoration:none;align-self:end}.portrait{aspect-ratio:3/4;background-image:var(--portraits);background-repeat:no-repeat;background-size:400% 200%;background-position:var(--px) var(--py);position:relative;isolation:isolate;clip-path:none}.hero-person .portrait{width:117%;margin-left:-8.5%;transition:translate .35s var(--ease);mix-blend-mode:normal}.hero-person:nth-child(even) .portrait{translate:0 10px}.hero-person:hover .portrait,.hero-person:focus-visible .portrait{translate:0 -16px}.hero-person span{font-weight:700;font-size:13px;display:block;padding:10px 4px;text-align:center;line-height:1.15;position:relative}.hero-floor{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:26px;border-top:2px solid var(--ink);margin-top:8px}.hero-floor p{font-size:14px}.start{display:flex;align-items:center;gap:28px;text-decoration:none;font-size:17px;font-weight:700}.round-arrow{width:52px;height:52px;background:var(--ink);color:var(--sun);border-radius:50%;display:grid;place-items:center;font-size:27px;transition:transform .25s}.start:hover .round-arrow{transform:translateY(5px)}.journey-nav{position:sticky;top:0;z-index:25;height:66px;background:var(--paper);border-bottom:1px solid var(--ink);padding:0 var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:14px}.journey-nav>a{font-weight:700;text-decoration:none}.republic-links{display:flex;gap:8px}.republic-links a{display:flex;align-items:center;justify-content:center;min-width:42px;height:38px;border-radius:50%;text-decoration:none}.republic-links a[aria-current=true]{background:var(--ink);color:var(--paper)}.nav-mode{background:none;border:1px solid var(--ink);padding:6px 13px;border-radius:20px;font-size:13px}.era{--chapter:var(--sun);background:var(--chapter);position:relative}.era-two{--chapter:var(--blue)}.era-three{--chapter:var(--pink)}.era-four{--chapter:var(--green)}.era-track{display:flex;flex-direction:column}.scene{position:relative;padding:64px var(--gutter);min-height:700px;flex-shrink:0;overflow:hidden}.chapter-intro{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:9vw}.chapter-copy{position:relative;z-index:2}.chapter-dates{display:flex;align-items:center;gap:14px;font-weight:600;margin-bottom:26px}.chapter-dates:before{content:'';width:40px;height:2px;background:currentColor}.chapter-intro h2{font-size:clamp(70px,8vw,136px);letter-spacing:-.04em;font-stretch:condensed;max-width:7ch}.chapter-intro p{max-width:440px;margin-top:26px;font-size:19px}.chapter-number{font-family:var(--display);font-size:clamp(230px,35vw,550px);font-stretch:condensed;line-height:1;text-align:center;color:var(--deep);position:relative}.chapter-number .eagle{position:absolute;width:52%;left:-15%;top:17%;color:var(--ink);transform:rotate(-18deg)}.continue{display:flex;align-items:center;gap:25px;margin-top:30px;background:none;font-weight:700;padding:0;text-align:left}.continue span{font-size:32px}.person-scene{display:grid;grid-template-columns:44% 1fr;gap:6%;align-items:center}.person-art{position:relative;align-self:center;max-width:500px}.person-art .portrait{width:88%;margin:auto;mix-blend-mode:normal;clip-path:none}.portrait-plate{background:var(--sun);border-radius:48% 48% 0 0;overflow:hidden;transform:rotate(-3deg);padding:24px 8px 0}.person-scene:nth-child(odd) .portrait-plate{transform:rotate(3deg)}.name-ribbon{position:relative;background:var(--paper);padding:16px 22px;transform:rotate(-3deg);margin-top:-18px;text-align:center;font-size:15px;line-height:1.2;font-weight:600;border:1px solid var(--ink)}.person-art .bird-mark{position:absolute;bottom:24%;left:-5%;width:105px;transform:rotate(-15deg)}.person-copy{max-width:620px}.person-dates{font-weight:700;font-size:16px;display:flex;align-items:center;gap:14px;margin-bottom:16px}.person-dates button{background:none;text-decoration:underline;font-size:12px}.person-copy h3{font-size:clamp(46px,5.4vw,88px);font-stretch:condensed;letter-spacing:-.035em;max-width:12ch}.person-copy .summary{font-size:17px;max-width:49ch;margin-top:20px}.context-note{font-size:14px;padding-top:12px;max-width:52ch}.records-label{font-size:13px;font-weight:700;margin-top:24px;margin-bottom:4px}.record-list{list-style:none;margin:0;padding:0}.record-list li{border-top:1px solid var(--line)}.record-button{background:none;display:grid;grid-template-columns:48px 1fr 28px;gap:10px;align-items:center;text-align:left;width:100%;padding:11px 0;min-height:55px}.record-year{font-size:13px}.record-title{font-size:17px;font-weight:700}.record-arrow{text-align:right;font-size:22px}.record-button:hover .record-title{text-decoration:underline;text-underline-offset:4px}.person-links{display:flex;gap:24px;font-size:13px;margin-top:16px}.person-links button{padding:0;background:none;text-decoration:underline;text-underline-offset:4px}.scene-controls{position:absolute;bottom:25px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;font-size:13px;pointer-events:none}.scene-controls>*{pointer-events:auto}.scene-controls button{width:42px;height:42px;border:1px solid currentColor;border-radius:50%;background:transparent;font-size:21px}.scene-controls .arrows{display:flex;gap:10px}.transition{background:var(--paper);min-height:75svh;padding:90px var(--gutter);position:relative;display:grid;grid-template-columns:1fr 1.3fr;gap:10%;align-items:center;overflow:hidden}.transition-art{position:relative;min-height:300px}.transition-art:before{content:'';position:absolute;height:140%;top:-20%;width:1px;left:50%;background:var(--ink)}.transition-art .eagle{position:relative;width:90%;margin:auto;color:var(--deep);transform:rotate(24deg)}.transition-art .down-arrow{position:absolute;bottom:-8px;left:calc(50% - 16px);background:var(--paper);font-size:38px;line-height:1}.transition-copy>span{font-size:16px;font-weight:700}.transition h2{font-size:clamp(40px,5.5vw,78px);letter-spacing:-.025em;margin:17px 0 22px;max-width:11ch}.transition p{max-width:53ch;font-size:17px}.transition button{font-size:13px;margin-top:18px}.map-section{padding:100px var(--gutter) 80px;background:var(--blue)}.map-heading{display:flex;justify-content:space-between;gap:30px;align-items:end}.map-heading h2{font-size:clamp(56px,8vw,120px);font-stretch:condensed;letter-spacing:-.045em}.map-heading p{max-width:350px;font-size:17px}.map-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:7%;margin-top:35px;align-items:center}.map-graphic{position:relative;max-width:650px;margin:auto;width:100%}.ghana-map{width:100%;height:auto;max-height:670px}.country{fill:var(--paper);stroke:var(--ink);stroke-width:1.5;vector-effect:non-scaling-stroke}.map-water{fill:var(--deep);font-family:var(--body);font-size:13px;letter-spacing:2px}.map-pin{cursor:pointer;color:var(--ink)}.map-pin circle{fill:var(--sun);stroke:var(--ink);stroke-width:2;transition:r .2s}.map-pin.active circle{fill:var(--ink);stroke:var(--paper);stroke-width:3;r:15}.map-pin text{font:700 12px var(--body);text-anchor:middle;dominant-baseline:central;fill:var(--ink);pointer-events:none}.map-pin.active text{fill:var(--paper)}.map-pin:focus-visible{outline:none}.map-pin:focus-visible circle{stroke:var(--red);stroke-width:4}.map-credit{font-size:12px;text-align:center}.map-detail{padding-top:0}.map-detail h3{font-size:46px;margin-bottom:15px}.map-detail .selected-names{font-size:21px;font-weight:700;margin-bottom:12px}.map-detail p{font-size:15px}.birth-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin-top:28px}.birth-list button{background:none;padding:14px 0;text-align:left;border-top:1px solid var(--line);font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}.birth-list button[aria-pressed=true]{font-weight:800}.birth-list button small{font-size:12px;display:block;font-weight:400}.map-links{display:flex;gap:20px;margin-top:18px}.map-links a,.map-links button{background:none;font-size:13px;padding:0;text-decoration:underline}.closing{background:var(--sun);padding:75px var(--gutter)}.closing-top{display:flex;justify-content:space-between;gap:30px;align-items:center}.closing h2{font-size:clamp(48px,6vw,90px);letter-spacing:-.03em;max-width:9ch}.closing p{max-width:420px;font-size:17px}.closing-actions{display:flex;gap:30px;margin-top:30px}.closing-actions button{background:none;text-decoration:underline;padding:0}.footer{padding:28px var(--gutter);background:var(--paper);display:flex;justify-content:space-between;gap:30px;align-items:start;font-size:12px}.footer p{max-width:680px}.footer a{white-space:nowrap}.eagle{fill:currentColor;overflow:visible}.wing{transform-box:fill-box;transform-origin:90% 90%}.dialog{width:min(740px,calc(100% - 32px));max-height:85svh;padding:0;background:var(--paper);color:var(--ink);border:1px solid var(--ink);border-radius:0;box-shadow:0 20px 90px var(--shade)}.dialog::backdrop{background:var(--veil)}.dialog-head{position:sticky;top:0;background:var(--paper);display:flex;align-items:center;justify-content:space-between;padding:18px 26px;border-bottom:1px solid var(--ink);z-index:2;font-size:14px}.dialog-close{background:none;font-size:27px;width:40px;height:40px;line-height:1}.dialog-body{padding:30px}.dialog-body h2{font-size:clamp(32px,5vw,55px);letter-spacing:-.025em;margin-bottom:22px;line-height:1.04}.dialog-body h3{font-size:24px;margin:24px 0 12px}.dialog-body p+p{margin-top:16px}.source-card{border-top:1px solid var(--line);padding:18px 0;margin-top:24px;font-size:14px}.source-card a{display:block;font-size:18px;font-weight:700;margin:6px 0}.source-card small{font-size:12px}.index-search{width:100%;border:1px solid var(--ink);padding:13px;background:var(--white);margin-bottom:24px;border-radius:0}.index-list{display:grid;gap:0;list-style:none;padding:0;margin:0}.index-list a{display:flex;justify-content:space-between;gap:16px;padding:17px 0;border-top:1px solid var(--line);text-decoration:none;font-weight:700}.index-list small{font-size:13px;font-weight:400}.index-list a:hover{text-decoration:underline}.empty-result{padding:20px 0}.noscript{padding:16px var(--gutter);background:var(--paper)}.static-sources{background:var(--paper);padding:24px var(--gutter);font-size:14px}.static-sources summary{cursor:pointer}.static-sources li{padding:8px}.static-sources li:target{background:var(--sun)}
@media(min-width:901px) and (min-height:700px){html[data-motion=journey] .era{height:calc(var(--travel) + 100svh - 66px)}html[data-motion=journey] .era-window{position:sticky;top:66px;height:calc(100svh - 66px);overflow:hidden}html[data-motion=journey] .era-track{height:100%;flex-direction:row;transform:translate3d(var(--offset,0px),0,0);will-change:transform}html[data-motion=journey] .scene{width:100vw;height:100%;min-height:0;padding-top:35px;padding-bottom:80px}html[data-motion=journey] .chapter-intro{padding-top:60px;padding-bottom:65px}html[data-motion=journey] .person-art{max-width:min(35vw,calc((100svh - 210px)*.75))}html[data-motion=journey] .person-copy h3{font-size:clamp(48px,5.1vw,82px)}}
html[data-motion=read] .scene-controls{display:none}html[data-motion=read] .scene{scroll-margin-top:66px}html[data-motion=read] .chapter-intro{min-height:500px}html[data-motion=read] .continue{display:none}
@media(max-width:1100px){.hero{padding-top:115px}.hero-caption{max-width:200px;font-size:16px}.hero h1{font-size:13vw}.hero-eagle{top:260px;right:7%}.top-actions{gap:18px}.person-copy .summary{font-size:16px}.record-title{font-size:16px}.record-button{padding:8px 0;min-height:48px}.records-label{margin-top:18px}.person-art .bird-mark{width:80px}}
@media(max-width:900px),(max-height:699px){.hero{min-height:0;padding-top:110px}.hero-top{display:block}.hero h1{max-width:100%;font-size:18vw}.hero h1 .office{padding-left:0}.hero-caption{max-width:400px;margin-top:28px;padding:0}.hero-caption p+p{margin-top:10px}.hero-eagle{top:170px;right:6%;width:120px}.hero-portraits{margin-top:40px;grid-template-columns:repeat(4,1fr);row-gap:14px;max-width:800px}.hero-person .portrait{width:100%;margin:0;aspect-ratio:3/3.7}.hero-person:nth-child(even) .portrait{translate:0 0}.hero-floor{margin-top:25px}.hero-person span{font-size:12px}.scene{min-height:0;padding:50px var(--gutter) 85px}.era-track{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--ink) var(--chapter);overscroll-behavior-x:contain;align-items:stretch}.scene{width:100%;scroll-snap-align:start;scroll-snap-stop:normal}.chapter-intro{grid-template-columns:1fr;gap:25px;align-content:center}.chapter-intro h2{font-size:85px;max-width:9ch}.chapter-intro p{font-size:17px}.chapter-number{font-size:200px;text-align:right;line-height:.9}.chapter-number .eagle{width:160px;left:10%;top:20%}.person-scene{grid-template-columns:1fr;gap:28px;align-content:start}.person-art{width:60%;max-width:300px;margin:auto}.person-copy{max-width:640px;margin:auto;width:100%}.person-copy h3{font-size:52px;max-width:14ch}.person-copy .summary{font-size:16px}.person-dates{font-size:14px}.name-ribbon{font-size:13px;padding:12px}.person-art .bird-mark{width:60px}.scene-controls{bottom:20px}.transition{min-height:0;padding:70px var(--gutter);gap:30px;grid-template-columns:1fr 2fr}.transition-art{min-height:210px}.transition h2{font-size:44px}.transition p{font-size:16px}.map-section{padding-top:70px}.map-heading{display:block}.map-heading p{margin-top:24px}.map-layout{grid-template-columns:1fr;gap:35px}.map-graphic{max-width:470px}.map-detail{max-width:650px;width:100%;margin:auto}html[data-motion=read] .era-track{flex-direction:column;overflow:visible}html[data-motion=read] .chapter-number{display:none}html[data-motion=read] .chapter-intro{min-height:0}html[data-motion=read] .scene{padding-bottom:55px}}
@media(max-width:540px){.topbar{height:64px}.brand{font-size:14px}.top-actions{gap:16px;font-size:12px}.top-actions a{display:none}.hero{padding-top:100px}.hero-eagle{top:150px;width:90px;right:5%}.hero-caption{max-width:270px;font-size:16px}.hero-portraits{margin-left:-8px;margin-right:-8px;row-gap:20px}.hero-person span{font-size:10px;padding:8px 0 0}.hero-floor{align-items:center}.hero-floor p{font-size:12px;max-width:115px}.start{font-size:14px;gap:12px}.round-arrow{width:42px;height:42px}.journey-nav{height:60px;padding:0 18px;gap:8px}.journey-nav>a{font-size:12px}.republic-links{gap:0}.republic-links a{min-width:30px;height:32px;font-size:12px}.nav-mode{font-size:11px;padding:5px 9px}.scene{padding:32px 24px 78px}.person-art{width:62%;max-width:250px}.person-copy h3{font-size:45px}.person-copy .summary{margin-top:14px;font-size:15px}.context-note{font-size:13px}.person-dates{margin-bottom:12px}.records-label{font-size:12px;margin-top:18px}.record-button{grid-template-columns:38px 1fr 20px;gap:8px}.record-title{font-size:15px}.record-year{font-size:11px}.person-links{font-size:12px}.chapter-intro h2{font-size:72px}.chapter-intro p{font-size:17px}.chapter-number{font-size:170px}.chapter-number .eagle{width:130px;left:0}.chapter-dates{font-size:14px}.transition{grid-template-columns:1fr;padding-top:45px;padding-bottom:50px;gap:35px}.transition-art{min-height:140px;max-width:240px;width:100%;margin:auto}.transition-art .eagle{width:75%;transform:rotate(30deg)}.transition-art:before{height:150%;top:-25%}.transition-art .down-arrow{bottom:-18px}.transition h2{font-size:46px;max-width:12ch}.map-heading h2{font-size:60px}.map-heading p{font-size:16px}.map-layout{margin-top:20px}.map-section{padding-top:55px;padding-bottom:50px}.map-detail h3{font-size:38px}.birth-list{gap:0 15px}.birth-list button{font-size:13px}.closing{padding-top:55px;padding-bottom:55px}.closing-top{display:block}.closing h2{font-size:60px;max-width:9ch}.closing p{font-size:16px;margin-top:25px}.closing-actions{gap:22px;font-size:14px}.footer{display:block;font-size:12px}.footer>a{display:inline-block;margin-top:16px}.dialog-body{padding:24px}.dialog-head{padding:12px 20px}.index-list a{font-size:15px}.index-list small{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-person:hover .portrait{translate:none}}
@media print{.topbar,.journey-nav,.scene-controls,.hero-eagle,.transition-art,.closing-actions,.map-pin,.dialog,.hero-portraits,.person-art,.continue{display:none}.era-track{display:block!important;transform:none!important}.era,.era-window,.scene{height:auto!important;overflow:visible!important;position:static!important}.scene{min-height:0;display:block;break-inside:avoid;padding:30px 0}.hero{min-height:0;padding:30px 0}.hero h1{font-size:65px}.hero-caption{max-width:100%}.person-copy{max-width:100%}.map-layout{display:block}.map-graphic{display:none}.transition{display:block;min-height:0;padding:30px 0}.static-sources{display:block}body{background:var(--white);font-size:12px}}

/* Transparent portrait artwork keeps the painted edges and original skin tones. */
.hero-eagle{top:235px}.hero-person .portrait{background-size:400% 200%}.person-art .portrait{width:100%}.portrait-plate{padding:0;border-radius:0;background:transparent;transform:none}.person-scene:nth-child(odd) .portrait-plate{transform:none}.name-ribbon{margin-top:-7px}.js .fallback-record{display:none}.fallback-record{font-size:15px;margin:8px 0 16px}.js-only{display:none}.js .js-only{display:initial}
@media(max-width:900px),(max-height:699px){.hero-eagle{top:170px}.person-art{max-width:260px}.scene{scroll-margin-top:66px}}
@media(max-width:540px){.hero-eagle{top:150px}.person-art{max-width:225px}}

@media(min-width:901px) and (min-height:700px){html[data-motion=journey] .person-art{max-width:min(34vw,calc((100svh - 300px)*.75))}}
@media(max-width:540px){.hero-eagle{top:99px;right:22px;width:70px}.journey-nav>a{font-size:11px;white-space:nowrap}.republic-links a{min-width:27px}.nav-mode{white-space:nowrap;font-size:11px;padding:6px 9px}}

/* ------------------------------------------------------------ living motion */
.eagle-flight{display:block;transform:translate3d(var(--flight-x,0),var(--flight-y,0),0) rotate(var(--flight-rot,0deg));transform-origin:center;will-change:transform}
.eagle-sprite{display:block;width:100%;aspect-ratio:1;background-image:var(--eagle-flight);background-repeat:no-repeat;background-size:300% 200%;background-position:0 0;animation:eagle-cycle var(--flap-speed,2.6s) steps(1,end) infinite;filter:drop-shadow(0 5px 2px rgba(32,43,36,.12))}
@keyframes eagle-cycle{0%,16.65%{background-position:0 0}16.66%,33.32%{background-position:50% 0}33.33%,49.99%{background-position:100% 0}50%,66.65%{background-position:0 100%}66.66%,83.32%{background-position:50% 100%}83.33%,100%{background-position:100% 100%}}
@keyframes eagle-arrive{0%{opacity:0;transform:translate3d(35vw,-18vh,0) rotate(-8deg) scale(.58)}55%{opacity:1}100%{transform:translate3d(0,0,0) rotate(-14deg) scale(1)}}
@keyframes eagle-hover{0%,100%{transform:translate3d(0,0,0) rotate(-14deg)}50%{transform:translate3d(-14px,-9px,0) rotate(-10deg)}}
.js .hero-eagle{animation:eagle-arrive 1.65s var(--ease) both;--flap-speed:.48s}
.js .hero-eagle.landed{animation:eagle-hover 4.8s ease-in-out infinite}
.chapter-number .eagle-flight{position:absolute;width:52%;left:-15%;top:17%;--flight-rot:-18deg}
.person-art .eagle-flight{position:absolute;bottom:24%;left:-5%;width:105px;--flight-rot:-15deg;--flap-speed:1.05s}
.js .hero-person{animation:leader-enter .9s var(--ease) both;animation-delay:calc(.32s + var(--hero-i)*.075s);translate:var(--leader-x,0) var(--leader-y,0);transition:translate .55s var(--ease),filter .3s}
.js .hero-person .portrait{animation:leader-breathe calc(4.1s + var(--hero-i)*.13s) ease-in-out infinite alternate;animation-delay:calc(1.2s + var(--hero-i)*-.2s)}
.hero-portraits:has(.hero-person:hover) .hero-person:not(:hover){filter:saturate(.72);translate:var(--leader-x,0) calc(var(--leader-y,0) + 5px)}
.hero-person:hover{z-index:4;filter:none!important}
@keyframes leader-enter{0%{opacity:0;transform:translate3d(0,110px,0) scale(.91)}65%{opacity:1;transform:translate3d(0,-9px,0) scale(1.01)}100%{opacity:1;transform:none}}
@keyframes leader-breathe{0%{transform:rotate(-.35deg) scale(1)}100%{transform:rotate(.45deg) scale(1.012)}}

/* ------------------------------------------------------ military interludes */
.transition{display:block;min-height:100svh;padding:80px var(--gutter) 90px;background:var(--paper)}
.transition-head{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:8vw;align-items:center}
.transition-art{min-height:270px;position:relative;overflow:visible}
.transition-art:before{display:none}
.transition-art .flight-line{position:absolute;left:0;right:-18%;top:58%;border-top:1px dashed var(--line);transform:rotate(-7deg);transform-origin:left}
.transition-art .eagle-flight{position:absolute;z-index:2;width:min(410px,90%);left:8%;top:12%;--flap-speed:2.8s}
.transition-art .down-arrow{position:absolute;right:-18%;bottom:5%;left:auto;background:var(--paper);padding:0 10px;font-size:38px}
.transition-copy>span{font-size:14px;letter-spacing:.02em}
.transition h2{font-size:clamp(48px,6vw,92px);max-width:12ch;margin:14px 0 18px}
.transition-copy>p{max-width:58ch}
.military-lineup{display:grid;grid-template-columns:repeat(var(--leader-count),minmax(0,1fr));gap:clamp(18px,3vw,42px);max-width:1020px;margin:52px auto 0;align-items:end}
.military-lineup[style*="--leader-count:1"]{grid-template-columns:minmax(280px,460px);justify-content:center}
.military-leader{min-width:0;border-top:2px solid var(--ink);padding-top:14px;position:relative;opacity:1;transform:translateY(0)}
.js[data-motion=journey] .military-leader{opacity:calc(.55 + var(--leader-reveal,0)*.45);transform:translateY(calc((1 - var(--leader-reveal,0))*34px));transition:opacity .15s linear,transform .15s linear}
.military-portrait-frame{aspect-ratio:3/4;position:relative;overflow:visible;background:transparent;border:0}
.military-portrait,.military-person-portrait{width:100%;height:100%;background-repeat:no-repeat}
.military-portrait{background-image:var(--military-portraits);background-size:400% 100%;background-position:var(--mpx,0) bottom}
.military-person-portrait{background-image:var(--portraits);background-size:400% 200%;background-position:var(--px) var(--py);aspect-ratio:auto}
.military-meta{padding:15px 2px 0}
.military-meta>span{font-size:12px;font-weight:700}
.military-meta h3{font-size:clamp(26px,2.8vw,43px);letter-spacing:-.025em;margin:7px 0 10px}
.military-meta p{font-size:14px;line-height:1.35;min-height:3.2em}
.military-meta .cite{display:inline-block;margin-top:13px;font-size:12px}
.coup-marker{position:absolute;right:-3%;bottom:15%;z-index:2;width:28%;color:var(--ink);transform:rotate(-5deg)}
.coup-marker svg{width:100%;height:auto;fill:currentColor;filter:drop-shadow(0 2px 0 rgba(32,43,36,.14))}
.coup-marker small{display:block;text-align:center;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;margin-top:2px}

@media(max-width:900px),(max-height:699px){
  .transition{padding:65px var(--gutter) 72px}
  .transition-head{grid-template-columns:1fr 1.4fr;gap:28px}
  .transition-art{min-height:220px;max-width:none}
  .transition-art .eagle-flight{width:90%;left:2%;top:18%}
  .military-lineup{margin-top:38px;gap:18px}
  .military-meta h3{font-size:28px}
  .person-art .eagle-flight{width:60px}
}
@media(max-width:640px){
  .transition{padding:48px 0 58px;overflow:hidden}
  .transition-head{display:flex;flex-direction:column;padding:0 24px;gap:12px;align-items:stretch}
  .transition-art{order:2;min-height:145px;width:100%}
  .transition-copy{order:1}
  .transition h2{font-size:50px}
  .transition-art .eagle-flight{width:250px;left:3%;top:4%}
  .transition-art .flight-line{right:-30%;top:55%}
  .transition-art .down-arrow{right:0;bottom:3%}
  .military-lineup,.military-lineup[style*="--leader-count:1"]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:18px 0 0;padding:0 24px 20px;justify-content:flex-start;scrollbar-width:thin}
  .military-leader{flex:0 0 78vw;width:78vw;max-width:320px;scroll-snap-align:start}
  .military-meta h3{font-size:31px}
}
@media(prefers-reduced-motion:reduce){
  .eagle-sprite,.js .hero-eagle,.js .hero-eagle.landed,.js .hero-person,.js .hero-person .portrait{animation:none!important}
  .js .military-leader{opacity:1;transform:none}
}

/* ------------------------------------------------ acting office + symbols */
.transition-portrait{width:100%;height:100%;background-image:var(--transition-portraits);background-repeat:no-repeat;background-size:200% 100%;background-position:var(--tpx,0) bottom}
.handover{max-width:1020px;margin:76px auto 0;padding-top:28px;border-top:2px solid var(--ink);display:grid;grid-template-columns:1.2fr minmax(250px,.7fr);gap:7vw;align-items:center}
.handover-copy>span{font-size:13px;font-weight:700}
.handover-copy h3{font-size:clamp(40px,5vw,72px);margin:10px 0 20px;letter-spacing:-.03em}
.handover-copy p{max-width:54ch;margin-bottom:16px}
.handover-leader{max-width:360px}
/* ------------------------------------------------------ two-place map key */
.map-pin rect{fill:var(--red);stroke:var(--ink);stroke-width:2;transition:width .2s,height .2s,x .2s,y .2s}
.map-pin.home text{fill:var(--paper)}
.map-pin.active rect{fill:var(--ink);stroke:var(--paper);stroke-width:3;x:-11px;y:-11px;width:22px;height:22px}
.map-pin:focus-visible rect{stroke:var(--red);stroke-width:4}
.place-kind{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}

@media(max-width:700px){
  .handover{grid-template-columns:1fr;margin:56px 24px 0;gap:28px}
  .handover-leader{max-width:280px;margin:auto}
}

/* ------------------------------------------------- national identity integrated */
.hero-eagle,.person-art .eagle-flight{display:none!important}
.brand .symbol-mark{width:30px;height:30px;flex:none}
.chapter-symbols{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;max-width:410px}
.symbol-mark{display:block;aspect-ratio:1;background-image:var(--national-symbols);background-size:400% 400%;background-position:var(--sx) var(--sy);background-repeat:no-repeat}
.chapter-symbols .symbol-mark{width:42px;height:42px;filter:drop-shadow(0 2px 0 rgba(32,43,36,.08))}
.chapter-number{letter-spacing:.025em;color:var(--deep)}
.place-dispute{font-size:13px!important;margin-top:10px;max-width:54ch}
.map-section[data-map-kind=birth] .map-pin[data-kind=home],.map-section[data-map-kind=home] .map-pin[data-kind=birth]{display:none}
.map-controls{display:inline-flex;border:1px solid var(--ink);margin-top:24px}
.map-controls button{display:flex;align-items:center;gap:9px;background:transparent;padding:10px 16px;font-size:14px}
.map-controls button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.map-controls i{display:inline-block;width:14px;height:14px;border:1px solid currentColor}
.map-controls .legend-birth{background:var(--sun);border-radius:50%}
.map-controls .legend-home{background:var(--red);transform:rotate(45deg);border-radius:2px}
@media(max-width:700px){.chapter-symbols{gap:7px}.chapter-symbols .symbol-mark{width:36px;height:36px}.map-controls{display:flex;width:max-content;margin-top:20px}.map-controls button{padding:9px 12px;font-size:13px}}

.map-people-art{display:flex;align-items:flex-end;gap:10px;margin:0 0 18px;max-width:100%}
.map-people-art .portrait{width:clamp(76px,10vw,116px);height:auto;aspect-ratio:3/4;flex:none;background-color:transparent}
.map-pin circle,.map-pin rect{transform-box:fill-box;transform-origin:center;transition:transform .18s ease,fill .18s ease}
.map-pin:hover circle,.map-pin:hover rect,.map-pin:focus-visible circle,.map-pin:focus-visible rect{transform:scale(1.32);fill:var(--deep)}
.map-pin:hover text,.map-pin:focus-visible text{fill:var(--paper)}
@media(prefers-reduced-motion:reduce){.map-pin circle,.map-pin rect{transition:none}}

/* Map introduction and selected-place rail */
.map-layout{align-items:stretch}
.map-graphic{position:relative}
.map-aside{display:flex;flex-direction:column;min-width:0}
.map-intro{flex:1;min-height:390px;display:flex;flex-direction:column;align-items:flex-start;padding:2px 0 28px}
.map-intro h2{font-size:clamp(32px,4vw,56px);line-height:1.04;letter-spacing:-.025em;max-width:14ch}
.map-intro p{font-size:18px;margin-top:18px;max-width:32ch}
.map-detail{border-top:2px solid var(--ink);padding-top:22px}
.map-tooltip{position:absolute;z-index:5;max-width:min(280px,calc(100% - 16px));transform:translateX(-50%);padding:10px 13px;background:var(--ink);color:var(--paper);box-shadow:0 5px 18px rgba(23,39,34,.16);pointer-events:none;font-size:13px;line-height:1.3}
.map-tooltip[hidden]{display:none}
.map-tooltip strong,.map-tooltip span{display:block}
.map-tooltip span{margin-top:3px;font-size:12px}
.back-to-top{position:fixed;z-index:40;right:24px;bottom:22px;display:flex;align-items:center;gap:8px;border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--paper);padding:10px 16px;box-shadow:0 4px 14px rgba(23,39,34,.18);font-size:14px;font-weight:700;transition:transform .18s ease,background .18s ease}
.back-to-top[hidden]{display:none}
.back-to-top>span:first-child{font-size:20px;line-height:1}
.back-to-top:hover{transform:translateY(-3px);background:var(--deep)}
@media(max-width:700px){.map-intro{min-height:0;padding:0 0 25px}.map-intro h2{font-size:40px;max-width:12ch}.map-intro p{font-size:16px;margin-top:12px}.map-people-art{margin:24px 0 18px}.map-intro-flag{width:170px;right:0;top:-4px}.back-to-top{right:15px;bottom:15px}}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}

/* President portraits replace the flag in the map portrait rail; the flag stays behind the copy. */
.map-intro{position:relative;isolation:isolate}
.map-intro h2,.map-intro>p,.map-intro .map-people-art{position:relative;z-index:1}
.map-intro-flag{position:absolute;z-index:0;right:4px;top:-8px;width:clamp(180px,20vw,250px);aspect-ratio:1;opacity:.14;pointer-events:none;animation:map-flag-drift 9s ease-in-out infinite}
.map-intro-flag .symbol-mark{width:100%;height:100%}
.map-people-art{align-items:flex-end;gap:12px;margin:auto 0 18px;max-width:100%}
.map-people-art .portrait{width:clamp(88px,12vw,138px);height:auto;aspect-ratio:3/4;flex:none;background-color:transparent}
@keyframes map-flag-drift{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(3px) rotate(1deg)}}
@media(max-width:700px){.map-intro-flag{width:172px;right:0;top:-7px}.map-people-art{margin:24px 0 18px}.map-people-art .portrait{width:clamp(88px,24vw,112px)}}
@media(prefers-reduced-motion:reduce){.map-intro-flag{animation:none}}
