:root{--ink:#112f49;--paper:#f5f1e9;--white:#fff;--blue:#2f6f9e;--sea:#173c56;--muted:#687987;--sand:#d9c9ad;--line:rgba(17,47,73,.14)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}.nav{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:rgba(248,245,239,.95);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{letter-spacing:.28em;font-size:14px;text-decoration:none;color:var(--ink);font-weight:600}.nav nav{display:flex;gap:30px}.nav a{color:var(--ink);text-decoration:none;font-size:13px}.map-hero{min-height:calc(100vh - 64px);background:linear-gradient(145deg,#102f48,#214c66 60%,#7f7868);color:#fff;padding:6vh 4vw 28px;display:grid;grid-template-columns:minmax(280px,.72fr) minmax(580px,1.5fr);gap:3vw;align-items:center;position:relative;overflow:hidden}.map-intro{z-index:2;max-width:520px}.eyebrow{letter-spacing:.22em;font-size:11px;font-weight:600;margin:0 0 16px}.map-intro h1,.index-head h2,.now h2,.story-cover h2{font-family:'Libre Caslon Display',serif;font-weight:400}.map-intro h1{font-size:clamp(52px,6vw,96px);line-height:.9;letter-spacing:-.03em;margin:0 0 25px}.map-intro h1 em{font-weight:400;color:#dce7eb}.map-intro>p:last-child{font-family:'Libre Caslon Display',serif;font-size:19px;line-height:1.5;max-width:460px}.map-shell{position:relative;z-index:2}.map-stage{background:rgba(246,242,234,.08);border:1px solid rgba(255,255,255,.18);overflow:hidden;aspect-ratio:2/1;cursor:grab}.map-stage:active{cursor:grabbing}.map-stage svg{display:block;width:100%;height:100%}.countries path{fill:rgba(245,241,233,.18);stroke:rgba(245,241,233,.35);stroke-width:.7;vector-effect:non-scaling-stroke}.route{fill:none;stroke:#e1c89d;stroke-width:2.2;stroke-dasharray:5 5;opacity:.8;vector-effect:non-scaling-stroke}.marker{cursor:pointer}.marker circle{fill:#fff;stroke:var(--ink);stroke-width:2;vector-effect:non-scaling-stroke}.marker.journey circle{fill:#e1c89d}.marker text{fill:#fff;font:600 10px 'DM Sans',sans-serif;paint-order:stroke;stroke:rgba(17,47,73,.8);stroke-width:3px;stroke-linejoin:round;pointer-events:none}.marker:hover circle,.marker:focus circle{r:7}.map-tools{position:absolute;top:12px;right:12px;z-index:5;display:flex;gap:5px}.map-tools button{border:1px solid rgba(255,255,255,.35);background:rgba(17,47,73,.75);color:#fff;min-width:38px;height:38px;padding:0 10px;cursor:pointer}.map-legend{display:flex;gap:18px;align-items:center;font-size:11px;margin-top:12px;color:#d9e2e7;flex-wrap:wrap}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#fff;margin-right:6px}.dot.journey{background:#e1c89d}.hint{margin-left:auto}.scroll-cue{position:absolute;bottom:18px;left:4vw;font-size:9px;letter-spacing:.2em;opacity:.65}.story-index{padding:110px 7vw;display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw}.index-head{position:sticky;top:110px;align-self:start}.index-head h2{font-size:clamp(46px,5vw,72px);line-height:1.02;margin:0 0 20px}.index-head>p:last-child{color:var(--muted);line-height:1.6}.chapters{border-top:1px solid var(--line)}.chapter{width:100%;display:grid;grid-template-columns:60px 1fr;gap:2px 20px;text-align:left;padding:26px 8px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;cursor:pointer}.chapter span{grid-row:1/3;font-family:'Libre Caslon Display',serif;font-size:28px;color:#82909a}.chapter b{font-family:'Libre Caslon Display',serif;font-size:28px;font-weight:400}.chapter small{color:var(--muted);font-size:12px}.chapter:not(.future):hover{background:rgba(255,255,255,.45)}.chapter.future{cursor:default;opacity:.5}.now{padding:120px 8vw;background:#fff;text-align:center}.now h2{font-size:64px;margin:0 0 20px}.now>p:not(.eyebrow){max-width:650px;margin:0 auto 25px;color:var(--muted);line-height:1.7}.now a{color:var(--ink)}footer{padding:28px 5vw;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.1em}.story-view{position:fixed;inset:0;z-index:100;background:var(--paper);overflow-y:auto;opacity:0;pointer-events:none;transform:translateY(12px);transition:.25s ease}.story-view.open{opacity:1;pointer-events:auto;transform:none}.story-close{position:fixed;right:24px;top:20px;z-index:110;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(17,47,73,.65);color:#fff;font-size:28px;cursor:pointer}.story-cover{min-height:72vh;display:flex;align-items:flex-end;padding:9vh 8vw;color:#fff;background:linear-gradient(135deg,#123650,#657a82);background-size:cover;background-position:center;background-attachment:fixed;position:relative}.story-cover:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,28,43,.85),rgba(8,28,43,.08) 65%)}.story-cover>div{position:relative;max-width:900px}.story-cover h2{font-size:clamp(54px,8vw,110px);line-height:.92;margin:0 0 18px;letter-spacing:-.03em}.story-cover #story-role{font-family:'Libre Caslon Display',serif;font-size:23px}.story-reading{max-width:900px;margin:auto;padding:80px 6vw 110px}.story-meta{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:45px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}.story-reading #story-body p{font-family:'Libre Caslon Display',serif;font-size:clamp(23px,2.5vw,32px);line-height:1.55;margin:0 0 34px}.story-reading #story-body p:first-child:first-letter{font-size:3.4em;float:left;line-height:.78;margin:10px 8px 0 0;color:var(--blue)}.story-nav{display:flex;justify-content:space-between;gap:10px;margin-top:70px;padding-top:25px;border-top:1px solid var(--line)}.story-nav button{border:1px solid var(--line);background:transparent;padding:13px 16px;color:var(--ink);cursor:pointer}.story-nav button:hover{background:#fff}@media(max-width:900px){.map-hero{grid-template-columns:1fr;padding-top:55px}.map-intro{max-width:680px}.map-stage{min-height:360px}.story-index{grid-template-columns:1fr}.index-head{position:static}.hint{margin-left:0}.story-cover{background-attachment:scroll}}@media(max-width:600px){.nav{padding:0 5vw}.nav nav{gap:14px}.map-hero{padding:45px 5vw 45px}.map-stage{min-height:300px;aspect-ratio:auto}.marker text{display:none}.story-index{padding:75px 6vw}.chapter{grid-template-columns:45px 1fr}.chapter b{font-size:24px}.story-cover{min-height:62vh;padding:70px 6vw 50px}.story-reading{padding:55px 6vw 80px}.story-nav{flex-wrap:wrap}.story-close{right:14px;top:12px}}
.mode-switch{display:inline-flex;border:1px solid rgba(255,255,255,.35);margin:24px 0 14px}.mode{border:0;background:transparent;color:#fff;padding:11px 22px;font:600 11px 'DM Sans',sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.mode.active{background:#f5f1e9;color:#112f49}.map-context{min-height:54px;display:flex;flex-direction:column;gap:4px;margin-bottom:8px;color:#dce7eb;font-size:12px}.map-context b{font-family:'Libre Caslon Display',serif;font-size:21px;font-weight:400;color:#fff}.marker:focus{outline:none}.marker:focus circle{stroke:#fff;stroke-width:4}.marker:hover circle{filter:drop-shadow(0 0 5px rgba(255,255,255,.75))}.journeys-section{padding:110px 7vw;background:#173c56;color:#fff;display:grid;grid-template-columns:.75fr 1.25fr;gap:7vw}.journeys-head h2{font-family:'Libre Caslon Display',serif;font-size:clamp(46px,5vw,72px);line-height:1.02;font-weight:400;margin:0 0 20px}.journeys-head h2 em{color:#dce7eb;font-weight:400}.journeys-head>p:last-child{color:#c8d5dc;line-height:1.65;max-width:520px}.journey-cards{border-top:1px solid rgba(255,255,255,.18)}.journey-card{width:100%;display:grid;grid-template-columns:90px 1fr;text-align:left;gap:3px 18px;padding:25px 8px;border:0;border-bottom:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;cursor:pointer}.journey-card span{grid-row:1/3;color:#d9c9ad;font-size:12px;letter-spacing:.12em}.journey-card b{font-family:'Libre Caslon Display',serif;font-size:29px;font-weight:400}.journey-card small{color:#c8d5dc}.journey-card:hover,.journey-card:focus{background:rgba(255,255,255,.07);outline:none}.journey-card.feature b:after{content:'  →';color:#d9c9ad}.active-route{stroke-width:3;stroke-dasharray:7 5;animation:routeDraw 1.2s ease both}@keyframes routeDraw{from{stroke-dashoffset:100;opacity:.2}to{stroke-dashoffset:0;opacity:.9}}@media(max-width:900px){.journeys-section{grid-template-columns:1fr}.journeys-head{max-width:680px}}@media(prefers-reduced-motion:reduce){.active-route{animation:none}}
/* V4: compact hero + colour-coded journeys */
.map-hero{min-height:auto;padding-top:42px;padding-bottom:38px;align-items:start}.map-intro h1{font-size:clamp(38px,4.2vw,68px);line-height:1;max-width:520px;margin-bottom:16px}.map-intro>p{margin-bottom:12px}.mode-switch{margin-top:12px}.map-context{margin-bottom:0}.scroll-cue{display:none}.journeys-section{padding:70px 7vw 85px}.journeys-head h2{font-size:clamp(40px,4.2vw,62px)}.journey-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:0;gap:0 28px}.journey-card{position:relative;grid-template-columns:72px 1fr;padding:21px 8px 18px;border-top:1px solid rgba(255,255,255,.18);border-bottom:0}.journey-card:before{content:'';position:absolute;left:0;top:25px;width:8px;height:8px;border-radius:50%;background:var(--jc)}.journey-card span{padding-left:14px;color:var(--jc)}.journey-card i{grid-column:2;font-style:normal;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--jc);margin-top:8px}.journey-card.future{opacity:.48;cursor:default}.journey-card.future:hover{background:transparent}.marker circle{stroke:#f5f1e9;stroke-width:1.5}.route{stroke-width:3}.journey-view{position:fixed;inset:0;z-index:120;background:var(--paper);overflow-y:auto;opacity:0;pointer-events:none;transform:translateY(12px);transition:.25s ease}.journey-view.open{opacity:1;pointer-events:auto;transform:none}.journey-close{position:fixed;right:24px;top:20px;z-index:130;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(17,47,73,.65);color:#fff;font-size:28px;cursor:pointer}.journey-cover{min-height:78vh;display:flex;align-items:flex-end;padding:10vh 8vw;color:#fff;background-size:cover;background-position:center;background-attachment:fixed;position:relative}.journey-cover:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,28,43,.9),rgba(8,28,43,.08) 70%);border-bottom:7px solid var(--journey-color)}.journey-cover>div{position:relative;max-width:900px}.journey-cover h2{font-family:'Libre Caslon Display',serif;font-size:clamp(72px,10vw,145px);font-weight:400;line-height:.85;margin:0 0 18px}.journey-tag{font-family:'Libre Caslon Display',serif;font-size:27px;margin:0 0 15px}.journey-desc{max-width:720px;font-size:15px;line-height:1.65;color:#e4ecef}.parallax-cue{font-size:9px;letter-spacing:.2em;margin-top:35px;opacity:.75}.journey-reading{max-width:1050px;margin:auto;padding:80px 6vw 110px}.journey-stops{border-top:1px solid var(--line);margin-top:20px}.journey-stop{width:100%;display:grid;grid-template-columns:55px 1fr;text-align:left;gap:2px 20px;padding:24px 8px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.journey-stop span{grid-row:1/3;font-family:'Libre Caslon Display',serif;font-size:24px;color:#8a969d}.journey-stop b{font-family:'Libre Caslon Display',serif;font-size:28px;font-weight:400}.journey-stop small{color:var(--muted)}.journey-stop:hover{background:#fff}.journey-back{margin-top:50px;padding:13px 18px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
@media(max-width:900px){.map-hero{padding-top:34px}.journey-cards{grid-template-columns:1fr}.journey-cover{background-attachment:scroll}.journeys-section{padding-top:60px}}
@media(max-width:600px){.map-intro h1{font-size:42px}.journeys-section{padding:55px 5vw}.journey-card{grid-template-columns:62px 1fr}.journey-cover{min-height:68vh;padding:80px 6vw 50px}.journey-reading{padding:55px 6vw 80px}}

/* V5: journeys are a map mode with an immediate selector and inline story */
.journey-picker{margin:10px 0 16px;max-width:430px}.journey-picker[hidden]{display:none}.journey-picker label{display:block;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#cbd8df;margin-bottom:7px}.select-wrap{position:relative}.select-wrap:after{content:'⌄';position:absolute;right:15px;top:50%;transform:translateY(-55%);font-size:22px;color:#173c56;pointer-events:none}.journey-picker select{width:100%;appearance:none;border:0;background:#f5f1e9;color:#173c56;padding:13px 42px 13px 15px;font:500 14px 'DM Sans',sans-serif;cursor:pointer;border-radius:0}.journey-picker select:focus{outline:2px solid rgba(245,241,233,.55);outline-offset:2px}.map-stage{transition:filter .25s ease}.journey-inline{padding:0 7vw 110px;background:var(--paper)}.journey-inline[hidden]{display:none}.journey-inline-head{max-width:900px;padding:80px 0 55px}.journey-inline-head h2{font-family:'Libre Caslon Display',serif;font-size:clamp(58px,8vw,112px);font-weight:400;line-height:.9;margin:0 0 18px;color:var(--ink)}.inline-tag{font-family:'Libre Caslon Display',serif;font-size:clamp(22px,2.5vw,31px);margin:0 0 16px;color:var(--ink)}.inline-desc{max-width:760px;font-size:16px;line-height:1.7;color:var(--muted)}.map-as-contents{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font-size:11px;letter-spacing:.04em;color:var(--muted)}.inline-stops{max-width:1080px;margin:auto}.inline-stop{position:relative;min-height:58vh;padding:90px 7vw 90px 9vw;border-top:1px solid var(--line);scroll-margin-top:78px;display:flex;align-items:center}.inline-stop:before{content:attr(data-number);position:absolute;left:0;top:96px;font-family:'Libre Caslon Display',serif;font-size:24px;color:#9aa4aa}.inline-stop-copy{max-width:760px}.inline-stop .stop-place{font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin:0 0 13px}.inline-stop h3{font-family:'Libre Caslon Display',serif;font-size:clamp(42px,5vw,72px);font-weight:400;line-height:1;margin:0 0 22px}.inline-stop p{font-family:'Libre Caslon Display',serif;font-size:clamp(20px,2.15vw,28px);line-height:1.55;margin:0 0 20px}.inline-stop .open-memory{margin-top:12px;border:1px solid var(--line);background:transparent;padding:12px 16px;color:var(--ink);cursor:pointer}.inline-stop.active{background:rgba(255,255,255,.45)}.marker.journey-marker{cursor:pointer}.marker.journey-marker circle{transition:r .18s ease,stroke-width .18s ease}.marker.journey-marker:hover circle{r:8}.marker.active-stop circle{stroke:#fff;stroke-width:4;r:8}.journeys-section{display:none!important}
@media(max-width:900px){.journey-inline{padding-left:6vw;padding-right:6vw}.journey-inline-head{padding-top:60px}.inline-stop{min-height:auto;padding:70px 5vw 70px 52px}.inline-stop:before{left:4px;top:75px}}
@media(max-width:600px){.journey-picker{max-width:none}.journey-inline{padding-bottom:70px}.journey-inline-head{padding:50px 0 35px}.inline-stop{padding-right:0}.inline-stop p{font-size:21px}}
/* V6 — My Story: places, journeys & jobs */
.map-hero{display:block;padding:34px 4vw 38px}.map-intro{max-width:none;margin:0 0 18px}.map-intro h1{font-size:clamp(42px,5vw,70px);margin:0 0 0}.hero-sub{font-family:'Libre Caslon Display',serif!important;font-size:clamp(24px,2.5vw,34px)!important;margin:0 0 12px!important;color:#dce7eb}.mode-switch{margin:12px 0 10px}.journey-picker{max-width:390px;margin:8px 0 8px}.journey-picker label{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px}.select-wrap{position:relative}.select-wrap:after{content:'';position:absolute;right:16px;top:50%;width:7px;height:7px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:translateY(-70%) rotate(45deg);pointer-events:none}.select-wrap select{appearance:none;-webkit-appearance:none;width:100%;background:var(--paper);color:var(--ink);border:1px solid rgba(255,255,255,.45);padding:12px 42px 12px 14px;font:500 13px 'DM Sans',sans-serif;border-radius:0}.map-context{min-height:42px;max-width:850px}.map-shell{max-width:1180px}.marker circle{r:4}.marker:hover circle,.marker:focus circle{r:5}.marker text{font-size:7px;stroke-width:2px}.journey-marker circle{r:3.5}.journey-marker.active-stop circle{r:5}.journey-entry{max-width:1180px;margin:0 auto;padding:26px 5vw 10px;text-align:center}.journey-entry .follow{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(17,47,73,.2);background:transparent;color:var(--ink);padding:12px 18px;font:600 10px 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.journey-entry .follow:hover{background:#fff}.journey-entry h2{font-family:'Libre Caslon Display',serif;font-size:clamp(38px,5vw,66px);font-weight:400;margin:6px 0 8px}.journey-entry p{max-width:680px;margin:0 auto 18px;color:var(--muted)}
.jobs-panel{max-width:1180px;margin:8px 0 0;padding:28px 0 12px;color:#fff}.jobs-head{max-width:720px}.jobs-head h2{font-family:'Libre Caslon Display',serif;font-size:clamp(34px,4vw,56px);font-weight:400;margin:2px 0 10px}.jobs-head>p:last-child{color:#d3e0e6;line-height:1.55}.job-timeline{display:flex;overflow-x:auto;gap:0;margin:30px 0 0;padding:24px 4px 26px;scrollbar-width:thin}.job-node{position:relative;flex:0 0 145px;border:0;border-top:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;text-align:left;padding:22px 14px 8px 0;cursor:pointer;font:inherit}.job-node:before{content:'';position:absolute;width:9px;height:9px;border-radius:50%;background:#d9c9ad;left:0;top:-5px;box-shadow:0 0 0 4px #173c56}.job-node.active:before,.job-node:hover:before{background:#fff;transform:scale(1.35)}.job-node span{display:block;font-size:10px;letter-spacing:.12em;color:#d9c9ad;margin-bottom:5px}.job-node b{font-family:'Libre Caslon Display',serif;font-size:18px;font-weight:400;line-height:1.12}.job-detail{margin-top:10px;padding:28px 30px;background:rgba(245,241,233,.08);border:1px solid rgba(255,255,255,.18);max-width:900px}.job-detail:empty{display:none}.job-detail .job-year{font-size:10px;letter-spacing:.16em;color:#d9c9ad}.job-detail h3{font-family:'Libre Caslon Display',serif;font-size:clamp(30px,4vw,48px);font-weight:400;margin:5px 0 4px}.job-detail .job-role{color:#dce7eb;margin:0 0 18px}.job-detail p{max-width:760px;line-height:1.65;color:#edf3f5}.job-detail button{border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;padding:11px 15px;cursor:pointer}.job-detail button:hover{background:rgba(255,255,255,.08)}
@media(max-width:600px){.map-hero{padding:28px 4vw 34px}.map-intro h1{font-size:44px}.hero-sub{font-size:25px!important}.mode{padding:10px 15px}.map-stage{min-height:270px}.marker circle{r:3}.journey-picker{max-width:none}.jobs-panel{padding-top:18px}.job-timeline{margin-top:22px}.job-node{flex-basis:120px}.job-detail{padding:22px 18px}.journey-entry{padding-top:22px}}

/* V7 — refinement: split desktop, quieter maps, navigable job chronology */
@media (min-width:901px){
  .map-hero{display:grid;grid-template-columns:minmax(310px,.72fr) minmax(600px,1.45fr);gap:3.2vw;align-items:start;padding:42px 4vw 34px}
  .map-intro{margin:0;padding-top:2px;position:sticky;top:92px}
  .map-shell{max-width:none;width:100%;align-self:start}
  .map-stage{aspect-ratio:2/1}
}
.hero-follow{margin-top:12px;border:1px solid rgba(255,255,255,.48);background:rgba(245,241,233,.96);color:var(--ink);padding:12px 16px;font:600 10px 'DM Sans',sans-serif;letter-spacing:.13em;text-transform:uppercase;cursor:pointer}
.hero-follow span{display:inline-block;margin-left:9px;font-size:14px}.hero-follow:hover{background:#fff}
.marker circle{r:2.8;transition:r .16s ease,fill .16s ease,stroke-width .16s ease}.marker:hover circle,.marker:focus circle{r:3.8}.marker text{font-size:5.5px;stroke-width:1.45px;font-weight:600}.journey-marker circle{r:2.6}.journey-marker.active-stop circle{r:4;stroke-width:2.2}.marker.place-selected circle{fill:#e5a93f!important;stroke:#fff;stroke-width:2.4;r:4.6}.marker.place-selected text{fill:#fff}
@media(max-width:600px){.marker circle{r:2.5}.marker:hover circle,.marker:focus circle{r:3.3}}

/* Jobs is a reading page; timeline is navigation, not a content switcher. */
.jobs-panel{max-width:none;margin:0;padding:72px 6vw 110px;background:var(--paper);color:var(--ink)}
.jobs-panel[hidden]{display:none}.jobs-head{max-width:760px;margin-bottom:34px}.jobs-head .eyebrow{color:var(--muted)}.jobs-head h2{color:var(--ink);font-size:clamp(42px,5vw,70px);margin:4px 0 12px}.jobs-head>p:last-child{color:var(--muted);font-size:15px}
.job-timeline-wrap{position:sticky;top:64px;z-index:20;background:rgba(245,241,233,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 -6vw 45px;padding:0 6vw}
.job-timeline{display:flex;overflow-x:auto;margin:0;padding:28px 2px 22px;scrollbar-width:thin;scrollbar-color:rgba(17,47,73,.3) transparent}
.job-node{flex:0 0 138px;color:var(--ink);border-top:1px solid rgba(17,47,73,.28);padding:20px 14px 7px 0}
.job-node:before{width:8px;height:8px;top:-4.5px;background:#9a8065;box-shadow:0 0 0 4px var(--paper)}.job-node.active:before,.job-node:hover:before{background:#2f6f9e;transform:scale(1.35)}.job-node span{color:#8a6d50;font-size:9px}.job-node b{color:var(--ink);font-size:16px}.job-node.active b{color:#2f6f9e}
.job-stories{max-width:980px;margin:0 auto}.job-story{position:relative;scroll-margin-top:190px;padding:76px 4vw 84px 9vw;border-top:1px solid var(--line);min-height:48vh}.job-story:first-child{border-top:0}.job-story:before{content:attr(data-number);position:absolute;left:1vw;top:82px;font-family:'Libre Caslon Display',serif;font-size:25px;color:#a3adb3}.job-story.active{background:rgba(255,255,255,.42)}.job-story .job-year{font-size:10px;letter-spacing:.16em;color:#8a6d50;text-transform:uppercase}.job-story h3{font-family:'Libre Caslon Display',serif;font-size:clamp(40px,5vw,68px);font-weight:400;line-height:1;margin:8px 0 8px}.job-story .job-role{color:var(--blue);margin:0 0 25px}.job-story .job-copy{max-width:760px}.job-story .job-copy p{font-family:'Libre Caslon Display',serif;font-size:clamp(20px,2vw,27px);line-height:1.55;margin:0 0 20px}.job-story button{border:1px solid var(--line);background:transparent;color:var(--ink);padding:11px 15px;margin-top:8px;cursor:pointer}.job-story button:hover{background:#fff}
@media(max-width:900px){.jobs-panel{padding:55px 5vw 80px}.job-timeline-wrap{margin-left:-5vw;margin-right:-5vw;padding-left:5vw;padding-right:5vw}.job-story{padding:60px 2vw 65px 52px;min-height:auto}.job-story:before{left:5px;top:65px}.job-node{flex-basis:120px}}

/* V8 — journey navigation and map interaction polish */
.active-route{stroke-dasharray:none;animation:none;opacity:.95;stroke-width:2.4}
.journey-nav{display:flex;gap:0;overflow-x:auto;scrollbar-width:thin;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:8px 0 34px;position:sticky;top:64px;background:rgba(245,241,233,.96);backdrop-filter:blur(10px);z-index:20}
.journey-nav button{flex:0 0 auto;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);padding:13px 16px;font:600 10px 'DM Sans',sans-serif;letter-spacing:.06em;cursor:pointer;white-space:nowrap}
.journey-nav button:hover,.journey-nav button.active{background:#fff;color:var(--ink)}
.journey-nav button.active{box-shadow:inset 0 -3px 0 var(--jc)}
.map-tooltip{position:absolute;z-index:12;pointer-events:none;display:none;background:rgba(245,241,233,.98);color:var(--ink);padding:9px 11px;box-shadow:0 8px 28px rgba(5,22,34,.24);font-size:11px;line-height:1.35;max-width:220px;transform:translate(10px,-100%)}
.map-tooltip strong{display:block;font-family:'Libre Caslon Display',serif;font-size:16px;font-weight:400;margin-bottom:2px}.map-tooltip span{color:var(--muted)}
.marker-hit{fill:transparent;stroke:none;pointer-events:all}
.marker text{pointer-events:none}
@media(max-width:600px){.journey-nav{top:64px;margin-left:-4vw;margin-right:-4vw;padding-left:4vw}.journey-nav button{padding:12px 14px}.map-tooltip{display:none!important}}

/* V9 — journey navigator placement, robust route drawing and map hit-testing */
.journey-nav-primary{display:flex;overflow-x:auto;margin:10px 0 14px;border:1px solid rgba(255,255,255,.32);background:rgba(8,35,54,.18);scrollbar-width:thin}
.journey-nav-primary[hidden]{display:none}.journey-nav-primary button{flex:0 0 auto;border:0;border-right:1px solid rgba(255,255,255,.22);background:transparent;color:#e4edf1;padding:10px 12px;font:600 9px 'DM Sans',sans-serif;letter-spacing:.045em;white-space:nowrap;cursor:pointer}.journey-nav-primary button:hover,.journey-nav-primary button.active{background:var(--paper);color:var(--ink)}.journey-nav-primary button.active{box-shadow:inset 0 -3px 0 var(--jc)}
.journey-nav{margin:0 -7vw 34px;padding-left:7vw;padding-right:7vw;top:64px}.journey-nav[hidden]{display:none}
.route.active-route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.marker{cursor:pointer}.marker-hit{r:14;fill:transparent;stroke:transparent;stroke-width:1;pointer-events:all}.marker-hit:hover{fill:rgba(255,255,255,.001)}
.map-stage.marker-near{cursor:pointer}.map-stage.dragging{cursor:grabbing}
@media(max-width:900px){.journey-nav-primary button{padding:10px 11px}.journey-nav{margin-left:-6vw;margin-right:-6vw;padding-left:6vw;padding-right:6vw}}

/* V10 — shareable refinement */
/* Journey route drawing is controlled entirely by JS; disable legacy CSS animation. */
.active-route{animation:none!important;stroke-dasharray:none}
/* The destination contents only appears as sticky reading navigation, not below the selector. */
.journey-nav-primary{display:none!important}
.journey-nav{margin:0;position:sticky;top:64px;z-index:30;box-shadow:0 1px 0 var(--line)}

/* V11 — compact Jobs introduction and scalable mobile Places finder */
.place-finder-open{display:none;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;padding:10px 14px;margin:2px 0 12px;font:600 10px 'DM Sans',sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.place-finder{width:min(620px,92vw);max-height:78vh;border:0;padding:0;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.28)}.place-finder::backdrop{background:rgba(7,27,42,.68)}.place-finder-head{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 24px 12px}.place-finder-head .eyebrow{margin-bottom:6px;color:var(--muted)}.place-finder-head h2{font-family:'Libre Caslon Display',serif;font-size:38px;font-weight:400;margin:0}.place-finder-head button{border:0;background:transparent;color:var(--ink);font-size:30px;line-height:1;cursor:pointer}.place-search-label{display:block;margin:0 24px 7px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.place-search{display:block;width:calc(100% - 48px);margin:0 24px 16px;padding:13px 14px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit}.place-results{max-height:48vh;overflow:auto;border-top:1px solid var(--line)}.place-result{width:100%;display:flex;justify-content:space-between;gap:18px;padding:14px 24px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.place-result:hover,.place-result:focus{background:#fff}.place-result small{color:var(--muted);white-space:nowrap}.map-context.jobs-context{min-height:0;margin:4px 0 8px}.map-context.jobs-context .jobs-kicker{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#b9ccd7;margin-bottom:4px}.map-context.jobs-context b{font-size:clamp(30px,4vw,48px);line-height:1.05}.map-context.jobs-context span{max-width:650px;line-height:1.5}.jobs-panel.jobs-v11{padding-top:0}.jobs-panel.jobs-v11 .jobs-head{display:none}.jobs-panel.jobs-v11 .job-timeline-wrap{margin-top:0}
@media(max-width:600px){.place-finder-open{display:inline-flex}.map-context.jobs-context b{font-size:31px}.map-context.jobs-context span{font-size:12px}.jobs-panel.jobs-v11{padding-top:0}.jobs-panel.jobs-v11 .job-timeline-wrap{top:64px;margin-bottom:24px}.place-result{padding:14px 18px}.place-finder-head{padding-left:18px;padding-right:18px}.place-search-label{margin-left:18px}.place-search{width:calc(100% - 36px);margin-left:18px;margin-right:18px}}

/* V12 — photographic journey treatments */
.journey-photo{margin:1.6rem 0 0;border-radius:18px;overflow:hidden;background:#e9e5dc;box-shadow:0 16px 42px rgba(10,30,44,.10)}
.journey-photo img{display:block;width:100%;height:auto;max-height:78vh;object-fit:cover}
.journey-photo figcaption{padding:.65rem .9rem .8rem;font-size:.78rem;color:#61717a;background:#f7f4ee}
.journey-photo.hero img{aspect-ratio:16/9;object-fit:cover}
.journey-photo.portrait{max-width:640px}
.journey-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:1.6rem 0 0}
.journey-gallery figure{margin:0;border-radius:16px;overflow:hidden;background:#e9e5dc}
.journey-gallery img{width:100%;height:100%;min-height:280px;max-height:520px;object-fit:cover;display:block}
.inline-stop.has-photo{padding-top:clamp(3rem,8vw,7rem);padding-bottom:clamp(3rem,8vw,7rem)}
.inline-stop[data-place="Kjeragbolten"] .journey-photo img{object-position:center 38%}
@media(max-width:700px){.journey-gallery{grid-template-columns:1fr}.journey-gallery img{min-height:0;max-height:none}.journey-photo{border-radius:12px}.journey-photo img{max-height:none}.journey-photo.hero img{aspect-ratio:4/3}.inline-stop.has-photo{padding-top:3rem;padding-bottom:3rem}}

/* V13 — Find a place is a Places tool on every screen size. */
.place-finder-open{display:inline-flex;align-items:center;justify-content:center}
.place-finder-open[hidden]{display:none!important}
/* V14 — photographic Jobs MVP */
.job-image{margin:30px 0 32px;max-width:820px}.job-image img{display:block;width:100%;max-height:560px;object-fit:cover;border-radius:3px;box-shadow:0 16px 40px rgba(17,42,58,.10)}
.job-story:nth-child(3n+2) .job-image{max-width:680px;margin-left:auto}.job-story:nth-child(4n) .job-image img{max-height:480px;object-fit:contain;background:#eee9df}
@media(max-width:700px){.job-image{margin:24px 0}.job-image img{max-height:420px}.job-story:nth-child(3n+2) .job-image{margin-left:0}}
/* V15 — curated Jobs photography from original-resolution sources */
.job-media{margin:30px 0 34px;max-width:900px}.job-media .job-image{margin:0}.job-media-multi{display:grid;grid-template-columns:1.35fr .85fr;gap:18px;align-items:start}.job-media-multi .job-image:first-child{grid-row:span 2}.job-media-multi .job-image img{height:100%;min-height:220px}.job-image img{width:100%;height:auto;max-height:none;object-fit:contain;background:transparent;box-shadow:0 16px 40px rgba(17,42,58,.10)}.job-image.large img{max-height:680px}.job-image.medium{max-width:650px}.job-image.artefact{max-width:520px}.job-image.artefact img{max-height:420px}.job-story:nth-child(3n+2) .job-image{max-width:none;margin-left:0}.job-story:nth-child(4n) .job-image img{max-height:none;background:transparent}
@media(max-width:700px){.job-media-multi{grid-template-columns:1fr}.job-media-multi .job-image:first-child{grid-row:auto}.job-media-multi .job-image img,.job-image.large img{max-height:none;min-height:0}.job-media{margin:24px 0 28px}}

.job-image.small{max-width:430px}.job-media-multi .job-image.small{justify-self:start;width:100%;max-width:430px}.journey-gallery figcaption{font-size:.78rem;opacity:.7;margin-top:7px}.journey-photo figcaption{font-size:.82rem;opacity:.72;margin-top:8px}


/* V18 — make the three story lenses unmistakably primary */
.nav-name{letter-spacing:.20em;font-size:11px;font-weight:600;color:var(--ink)}
.mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,520px);margin:24px 0 18px;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.05)}
.mode{min-height:54px;padding:14px 24px;border-right:1px solid rgba(255,255,255,.3);font-size:12px;letter-spacing:.14em;transition:background .18s ease,color .18s ease,transform .18s ease}
.mode:last-child{border-right:0}.mode:hover{background:rgba(255,255,255,.12)}
.mode.active{background:var(--paper);color:var(--ink);box-shadow:inset 0 -4px 0 #2f6f9e}
.map-intro .hero-sub{margin-bottom:4px!important}.map-intro .mode-switch{margin-top:22px}
.now[hidden]{display:none!important}
@media(max-width:600px){.nav-name{font-size:9px}.mode-switch{width:100%;margin-top:18px}.mode{min-height:50px;padding:12px 8px;font-size:10px;letter-spacing:.1em}}

/* V19 — clearer story lenses and persistent cross-section navigation */
.map-intro h1{font-size:clamp(46px,5.2vw,78px);line-height:.94;max-width:620px;margin-bottom:10px}
.map-intro .hero-sub{font-size:clamp(20px,2vw,27px)!important;color:#cbdbe3;margin:0 0 20px!important}
.mode-switch{width:min(100%,650px);margin-top:22px;align-items:stretch}
.mode-switch .mode{display:flex;min-height:86px;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;text-align:left;padding:15px 18px;letter-spacing:0}
.mode-switch .mode b{font:600 11px 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase}
.mode-switch .mode span{font:400 11px 'DM Sans',sans-serif;letter-spacing:0;text-transform:none;opacity:.78;line-height:1.25}
.mode-switch .mode.active span{color:var(--muted)}
.lens-nav{position:fixed;top:0;left:0;right:0;height:48px;z-index:160;display:flex;align-items:stretch;justify-content:center;background:rgba(245,241,233,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px);transform:translateY(-105%);transition:transform .2s ease;pointer-events:none}
.lens-nav.visible{transform:translateY(0);pointer-events:auto}
.lens-nav .mode{min-width:120px;padding:0 24px;color:var(--ink);border:0;border-right:1px solid var(--line);background:transparent;font-size:10px;letter-spacing:.14em;position:relative}
.lens-nav .mode:first-child{border-left:1px solid var(--line)}
.lens-nav .mode.active{background:transparent;color:var(--ink);box-shadow:none}
.lens-nav .mode.active:after{content:'';position:absolute;left:20px;right:20px;bottom:0;height:3px;background:var(--blue)}
body.lens-reading .nav{visibility:hidden}
body.lens-reading .job-timeline-wrap{top:48px}
body.lens-reading .journey-nav{top:48px}
@media(max-width:600px){
 .map-intro h1{font-size:42px;max-width:430px}
 .map-intro .hero-sub{font-size:20px!important}
 .mode-switch .mode{min-height:82px;padding:12px 9px;gap:5px}
 .mode-switch .mode b{font-size:9px;letter-spacing:.1em}
 .mode-switch .mode span{font-size:9px;line-height:1.2}
 .lens-nav .mode{min-width:0;flex:1;padding:0 8px;font-size:9px}
 .lens-nav .mode.active:after{left:12px;right:12px}
 body.lens-reading .jobs-panel.jobs-v11 .job-timeline-wrap{top:48px}
}

/* V20 — MVP navigation simplification */
.site-nav{z-index:220}.site-nav .brand{font-size:12px;letter-spacing:.24em}.desktop-nav{display:flex;align-self:stretch;gap:0!important}.desktop-nav button{position:relative;border:0;border-left:1px solid var(--line);background:transparent;color:var(--ink);padding:0 28px;font:600 10px 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.desktop-nav button:last-child{border-right:1px solid var(--line)}.desktop-nav button.active:after{content:'';position:absolute;left:18px;right:18px;bottom:0;height:3px;background:var(--blue)}
.menu-toggle{display:none;border:0;background:transparent;color:var(--ink);font-size:24px;line-height:1;cursor:pointer}.mobile-menu{position:fixed;inset:0;z-index:300;background:var(--paper);padding:92px 8vw 40px}.mobile-menu[hidden]{display:none}.mobile-menu>button:not(.mobile-menu-close){display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:22px 0;font:400 34px 'Libre Caslon Display',serif;cursor:pointer}.mobile-menu>button.active{color:var(--blue)}.mobile-menu-close{position:absolute;right:6vw;top:17px;border:0;background:transparent;color:var(--ink);font-size:36px;cursor:pointer}.hero-sub{display:none!important}.map-legend{display:none!important}.map-hint-hidden{display:none!important}
/* Global header remains accessible above modal stories; close controls sit below it. */
.story-close,.journey-close{top:78px!important;z-index:230!important}.story-view,.journey-view{padding-top:64px}
/* Norway place memories reuse the same photography as the journey. */
.place-story-gallery{margin:42px 0 8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.place-story-gallery.single{grid-template-columns:1fr}.place-story-gallery figure{margin:0}.place-story-gallery img{display:block;width:100%;height:auto}.place-story-gallery figcaption{font:500 10px 'DM Sans',sans-serif;letter-spacing:.04em;color:var(--muted);padding-top:7px}
@media(max-width:700px){.desktop-nav{display:none}.menu-toggle{display:block}.site-nav{height:58px}.story-view,.journey-view{padding-top:58px}.story-close,.journey-close{top:70px!important;right:14px!important}.mode-switch .mode{padding:12px 8px}.mode-switch .mode span{font-size:10px;line-height:1.25}}
