/* Borderline Maps — cartographic paper design */
:root{
  --paper:#F4EFE4; --paper2:#EAE2D2; --card:#FBF8F2; --ink:#1E2A24; --ink2:#46524B; --mute:#7A7568; --rule:#D9CFBC;
  --water:#1F5FBF; --water-d:#163F80; --land:#2E9E6B; --land-d:#1E6E49; --land-l:#CFE5D4; --pin:#C8553D;
  --fh:"Fraunces",Georgia,serif; --fb:"Work Sans",system-ui,sans-serif; --wrap:1140px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--fb);color:var(--ink);background:var(--paper);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420'%3E%3Cg fill='none' stroke='%23DCD2BF' stroke-width='1'%3E%3Cpath d='M-20 80 C 80 40 160 120 260 70 S 400 60 440 110'/%3E%3Cpath d='M-20 120 C 90 80 170 160 270 110 S 400 100 440 150'/%3E%3Cpath d='M-20 260 C 70 220 180 300 260 250 S 380 230 440 280'/%3E%3Cpath d='M-20 300 C 80 260 190 340 270 290 S 390 270 440 320'/%3E%3Cpath d='M-20 340 C 90 300 200 380 280 330 S 400 310 440 360'/%3E%3C/g%3E%3C/svg%3E")}
img{max-width:100%;height:auto;display:block}
a{color:var(--water)}a:hover{color:var(--land-d)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}.narrow{max-width:740px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
h1,h2,h3{font-family:var(--fh);font-weight:800;line-height:1.08;letter-spacing:-.01em;color:var(--ink)}
h1{font-size:clamp(36px,5.4vw,64px)}h2{font-size:clamp(26px,3vw,36px)}h3{font-size:21px;font-weight:600}
.eyebrow{font:600 12px var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--land-d);margin-bottom:12px}
.lede{font-size:clamp(18px,1.7vw,21px);color:var(--ink2);margin-top:16px;max-width:620px}
.small{font-size:14px;color:var(--mute)}
.btn{display:inline-block;background:var(--water);color:#fff;text-decoration:none;font-weight:600;padding:13px 22px;border-radius:4px;border:2px solid var(--water);box-shadow:3px 3px 0 var(--ink)}
.btn:hover{background:var(--water-d);color:#fff;transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}
.btn.line{background:transparent;color:var(--ink);border-color:var(--ink)}
.ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}

.mast{background:var(--paper);border-bottom:2px solid var(--ink);position:sticky;top:0;z-index:20}
.mast-in{display:flex;align-items:center;gap:20px;height:70px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--fh);font-size:22px}
.brand img{border-radius:6px}.brand b{font-weight:800;color:var(--water)}.brand i{font-style:normal;font-weight:600;color:var(--land)}
.mast nav{margin-left:auto;display:flex;gap:2px;flex-wrap:wrap}
.mast nav a{text-decoration:none;color:var(--ink2);font-weight:500;font-size:15px;padding:8px 12px;border-radius:4px}
.mast nav a:hover,.mast nav a[aria-current]{background:var(--ink);color:var(--paper)}
@media(max-width:860px){.mast nav a{padding:6px 8px;font-size:14px}.mast nav a:nth-child(5){display:none}}
@media(max-width:600px){.brand span{display:none}.mast nav a:nth-child(4){display:none}}

.hero{padding:60px 0 50px}
.hero-in{display:grid;grid-template-columns:1fr 1.05fr;gap:44px;align-items:center}
.hero-fig{border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink);background:#fff}
@media(max-width:900px){.hero-in{grid-template-columns:1fr}}

.today{padding:20px 0 60px}
.today-in{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.dc-card,.bow{border:2px solid var(--ink);padding:28px;background:var(--card)}
.dc-card{background:var(--water);color:#fff}
.dc-card h2,.dc-card .eyebrow{color:#fff}.dc-card p{color:#DCE6F7;margin:10px 0 18px}
.dc-card .btn{background:#fff;color:var(--water);border-color:#fff}
.bow p{margin:10px 0}.bow a{font-weight:600}
@media(max-width:820px){.today-in{grid-template-columns:1fr}}

.atlas{padding:60px 0;background:var(--card);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.atlas-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap}
.worldfig{margin-top:24px;background:#DCE8F6;border:2px solid var(--ink)}
.world svg{width:100%;height:auto;display:block}
.world path{fill:var(--land-l);stroke:var(--card);stroke-width:.6;cursor:pointer;transition:fill .12s}
.world path:hover{fill:var(--land)}
.world path.hl{fill:var(--pin)}
.world circle.pin{fill:var(--pin);stroke:#fff;stroke-width:1.5}
.small-world{background:#DCE8F6;border:2px solid var(--ink);margin-top:14px}
.small-world path{cursor:default}
.facts3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.facts3 div{border-top:2px solid var(--ink);padding-top:12px}
.facts3 b{display:block;font:800 44px var(--fh);color:var(--water)}
.facts3 span{color:var(--ink2);font-size:15px}
@media(max-width:820px){.facts3{grid-template-columns:1fr}}
.maptip{position:fixed;pointer-events:none;background:var(--ink);color:var(--paper);font-size:13px;padding:5px 9px;z-index:50;display:none}

.stories-strip{padding:64px 0}
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:22px}
.story{text-decoration:none;color:var(--ink);background:var(--card);border:2px solid var(--ink);display:flex;flex-direction:column;transition:transform .12s,box-shadow .12s}
.story:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink);color:var(--ink)}
.story img{aspect-ratio:16/10;object-fit:cover;border-bottom:2px solid var(--ink)}
.story .eyebrow{margin:16px 18px 0}.story h3{margin:6px 18px 20px}
@media(max-width:880px){.story-grid{grid-template-columns:1fr}}

.pagehead{padding:54px 0 24px}
.filter{margin-top:22px;width:100%;max-width:420px;font:16px var(--fb);padding:12px 14px;border:2px solid var(--ink);background:#fff}
h2.ct{margin:34px 0 12px;font-size:26px;border-bottom:2px solid var(--ink);padding-bottom:6px}
.clist{list-style:none;columns:4 200px;column-gap:24px}
.clist li{padding:4px 0;break-inside:avoid}.clist a{text-decoration:none;color:var(--ink)}.clist a:hover{color:var(--water);text-decoration:underline}

.cfile{padding:30px 0 70px}
.crumbs{font-size:14px;color:var(--mute);margin-bottom:20px}.crumbs a{color:var(--mute)}
.cf-head{display:grid;grid-template-columns:1fr 260px;gap:40px;align-items:center}
.formal{font-family:var(--fh);font-style:italic;color:var(--mute);margin-top:8px}
.sil{background:var(--card);border:2px solid var(--ink);padding:16px;box-shadow:6px 6px 0 var(--ink)}
.sil svg{width:100%}.sil path{fill:var(--land);stroke:var(--land-d);stroke-width:1}
.sil figcaption{font-size:12px;color:var(--mute);text-align:center;margin-top:6px}
@media(max-width:760px){.cf-head{grid-template-columns:1fr}.sil{max-width:260px}}
.ledger{display:grid;grid-template-columns:repeat(5,1fr);border:2px solid var(--ink);margin:34px 0;background:var(--card)}
.ledger div{padding:14px 16px;border-right:1px solid var(--rule)}.ledger div:last-child{border-right:0}
.ledger dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:600}
.ledger dd{font:600 19px var(--fh);margin-top:4px}
.ledger dd .small{font:400 13px var(--fb)}
@media(max-width:900px){.ledger{grid-template-columns:1fr 1fr}.ledger div{border-bottom:1px solid var(--rule)}}
.locator,.related{margin:34px 0}
.src{border-top:1px solid var(--rule);padding-top:14px;margin-top:30px}

.challenge{margin-bottom:64px;background:var(--card);border:2px solid var(--ink);padding:28px;box-shadow:8px 8px 0 var(--ink);min-height:360px}
.q-meta{display:flex;justify-content:space-between;font-size:14px;color:var(--mute);margin-bottom:10px}
.q-prompt{font:700 24px var(--fh);margin-bottom:16px}
.q-sil{max-width:220px;margin:0 auto 18px}.q-sil path{fill:var(--land);stroke:var(--land-d)}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.opts button{font:500 16px var(--fb);text-align:left;padding:14px 16px;border:2px solid var(--ink);background:#fff;cursor:pointer;color:var(--ink)}
.opts button:hover:not(:disabled){background:var(--paper2)}
.opts button.right{background:var(--land);color:#fff;border-color:var(--land-d)}
.opts button.wrong{background:var(--pin);color:#fff;border-color:#8E3523}
.opts button:disabled{cursor:default}
.q-why{margin-top:14px;font-size:15px;color:var(--ink2)}
.q-next{margin-top:18px}
.dots{display:flex;gap:6px;margin-bottom:14px}.dots i{width:28px;height:6px;background:var(--rule)}.dots i.ok{background:var(--land)}.dots i.no{background:var(--pin)}
.final{text-align:center}.final .big{font:800 64px var(--fh);color:var(--water)}
.grid-share{font-size:28px;letter-spacing:4px;margin:10px 0}
@media(max-width:560px){.opts{grid-template-columns:1fr}}

.story-page{padding-bottom:60px}
.sp-head{padding:46px 0 0}
.sp-img{max-width:1140px;margin:30px auto 0;padding:0 24px}
.sp-img img{border:2px solid var(--ink);aspect-ratio:16/8;object-fit:cover;width:100%}
.sp-img figcaption{font-size:12px;color:var(--mute);margin-top:8px}
.prose{padding-top:30px}.prose p{margin:0 0 18px}.prose h2{font-size:28px;margin:36px 0 10px}
.prose ul{margin:0 0 18px 22px}.aside{background:var(--card);border-left:4px solid var(--water);padding:14px 18px}
.mapblock{margin:26px 0;border:2px solid var(--ink);background:#fff}
.mapblock figcaption{font-size:13px;color:var(--mute);padding:10px 14px;border-top:1px solid var(--rule)}
.rmap{width:100%;height:auto;display:block}
.rmap .sea{fill:#DCE8F6}.rmap .land{fill:#EDE6D6;stroke:#B9AE98;stroke-width:.8}.rmap .hl{fill:var(--land);stroke:var(--land-d);stroke-width:1}
.rmap .lab{font:600 14px var(--fb);fill:var(--ink2);letter-spacing:.12em}
.rmap .hl-lab{fill:var(--land-d);paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.rmap .sea-lab{font-style:italic;font-weight:500;fill:var(--water);letter-spacing:.04em}
.rmap .sm{font-size:12px}

.letter{background:var(--ink);color:var(--paper);padding:50px 0}
.letter-in{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}
.letter h2{color:var(--paper)}.letter .eyebrow{color:#9FD7B9}
.newsform{display:flex;gap:10px;flex-wrap:wrap}
.newsform input{flex:1;min-width:220px;font:16px var(--fb);padding:13px 14px;border:2px solid var(--paper);background:#fff}
.newsform button{font:600 16px var(--fb);padding:13px 18px;border:2px solid var(--paper);background:var(--land);color:#fff;cursor:pointer}
.newsform.inline input{border-color:var(--ink)}.newsform.inline button{border-color:var(--ink)}
.formnote{width:100%;font-size:14px;margin:0}
@media(max-width:820px){.letter-in{grid-template-columns:1fr}}
.foot{padding:34px 0;font-size:14px;color:var(--ink2)}
.foot-in{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}
.foot nav{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:flex-end;align-content:start}
@media(max-width:760px){.foot-in{grid-template-columns:1fr}.foot nav{justify-content:flex-start}}
:focus-visible{outline:3px solid var(--pin);outline-offset:2px}
