:root{
  --paper:#f3efe6;
  --paper-deep:#e8e1d2;
  --ink:#1c241d;
  --ink-soft:#3a443a;
  --forest:#1f3d2b;
  --forest-deep:#152b1f;
  --ochre:#7d5414;
  --ochre-bright:#a37517;
  --rule:#bdb3a0;
  --rule-soft:#d5ccb9;
  --focus:#124a7a;
  --sans:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  --serif:Georgia,"Times New Roman",Times,serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --measure:65ch;
  --gutter:clamp(1rem,4vw,3.25rem);
  --radius:2px;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:400 17px/1.6 var(--serif);
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
img.beacon{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;border:0!important;opacity:0!important}
svg{max-width:100%;height:auto}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--serif);color:var(--forest-deep);line-height:1.14;letter-spacing:-.012em;font-weight:700;overflow-wrap:break-word}
h1{font-size:clamp(2.05rem,5.6vw,4.1rem);margin:0 0 .5em;hyphens:auto}
h2{font-size:clamp(1.55rem,3.4vw,2.4rem);margin:0 0 .5em}
h3{font-size:clamp(1.15rem,2.1vw,1.4rem);margin:0 0 .3em;line-height:1.25}
h4{font-size:1.05rem;margin:1.4em 0 .3em}
p,ul,ol,dl,figure,table,pre{margin:0 0 1.15em}
.page :is(p,li,dd,td,th,figcaption){max-width:var(--measure)}
.page :is(h1,h2,h3,h4,p,li,dd,blockquote){overflow-wrap:break-word;hyphens:auto}
strong{color:var(--forest-deep)}
small{font-size:.86rem}
hr{border:0;border-top:1px solid var(--rule);margin:2rem 0}

/* ---------- Links ---------- */
a{color:var(--forest);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:var(--ochre-bright)}
a:hover{color:var(--ochre);text-decoration-color:var(--ochre)}
a:visited{color:#4a2c62}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:0}

/* ---------- Skip link ---------- */
.skip-link{position:absolute;left:-9999px;top:auto;background:var(--forest-deep);color:var(--paper);padding:.7em 1.1em;font:600 .95rem/1 var(--sans);z-index:80}
.skip-link:focus{left:1rem;top:1rem}

/* ---------- Header ---------- */
.site-header{background:var(--forest-deep);color:var(--paper);border-bottom:3px solid var(--ochre-bright)}
.header-inner{
  max-width:1180px;margin:0 auto;padding:.95rem var(--gutter);
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 2rem;
}
.brand{
  display:inline-flex;flex-direction:column;gap:.15rem;
  font-family:var(--sans);color:var(--paper);text-decoration:none;line-height:1;
}
.brand:hover{color:var(--paper);text-decoration:underline;text-decoration-color:var(--ochre-bright)}
.brand-word{font-weight:700;font-size:1.2rem;letter-spacing:.16em}
.brand-sub{font-weight:400;font-size:.7rem;letter-spacing:.34em;color:#e2d7bd}
.site-nav ul{display:flex;flex-wrap:wrap;gap:.35rem 1.65rem;list-style:none;margin:0;padding:0}
.site-nav a{
  color:var(--paper);font:500 .93rem/1 var(--sans);letter-spacing:.03em;
  text-decoration:none;padding:.45rem 0;display:inline-block;border-bottom:2px solid transparent;
}
.site-nav a:hover{color:#fff;border-bottom-color:var(--ochre-bright)}
.site-nav a[aria-current="page"]{border-bottom-color:var(--ochre-bright);color:#fff}

/* ---------- Page shell ---------- */
.page{max-width:1180px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) var(--gutter) 3.5rem}
.page>*+*{margin-top:0}

/* ---------- Home layout ---------- */
.home{display:block}
.home-masthead{max-width:44ch;padding-top:.5rem}
.home-masthead h1{font-size:clamp(2.15rem,6vw,4.3rem);margin-bottom:.45em}
.home .atlas-index{
  font:600 .74rem/1.4 var(--sans);letter-spacing:.15em;text-transform:uppercase;
  color:var(--ochre);margin:0 0 1.1rem;
}
.home .standfirst{font-size:clamp(1.02rem,1.7vw,1.18rem);line-height:1.62;color:var(--ink-soft);max-width:58ch}

/* Hero figure */
.article-figure{margin:1.75rem 0;max-width:100%}
.article-figure picture{display:block}
.article-figure img{width:100%;height:auto;background:var(--paper-deep)}
.home-hero{margin:1.9rem 0 2.6rem}
.home-hero img{width:100%;height:auto;max-height:none;object-fit:cover}
.media-caption{
  display:flex;flex-wrap:wrap;gap:.2rem 1rem;align-items:baseline;
  font:400 .8rem/1.5 var(--sans);color:var(--ink-soft);
  margin-top:.6rem;padding-left:.75rem;border-left:2px solid var(--ochre-bright);
}
.media-caption-text{flex:1 1 22ch;min-width:0}
.media-credit{font-size:.78rem;color:var(--ink-soft)}
.media-credit a{color:var(--forest)}

/* Section rule */
.section-rule{
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.4rem 2rem;
  border-top:3px solid var(--forest-deep);padding-top:.7rem;margin-bottom:0;
}
.section-rule h2{margin:0}
.section-note{font:400 .88rem/1.55 var(--sans);color:var(--ink-soft);max-width:42ch;margin:.2rem 0 .4rem}

/* Entry index */
.atlas-entry{margin-bottom:3rem}
.entry-index{list-style:none;margin:1.1rem 0 0;padding:0;border-bottom:1px solid var(--rule)}
.entry-index li{
  display:grid;
  grid-template-columns:2.6rem minmax(0,1fr);
  grid-template-areas:"num name" "num where" "num detail";
  gap:.1rem .9rem;align-items:baseline;
  padding:1rem 0;border-top:1px solid var(--rule);max-width:100%;
}
.entry-index li:hover{background:var(--paper-deep)}
.entry-num{grid-area:num;font:500 .8rem/1.4 var(--mono);color:var(--ochre);align-self:start;padding-top:.35em}
.entry-index a{
  grid-area:name;font-family:var(--serif);font-size:clamp(1.18rem,2.4vw,1.5rem);
  font-weight:700;line-height:1.22;color:var(--forest-deep);
  text-decoration:none;letter-spacing:-.008em;
}
.entry-index a:hover{color:var(--ochre);text-decoration:underline;text-decoration-color:var(--ochre)}
.entry-where{grid-area:where;font:600 .72rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.entry-detail{grid-area:detail;font:400 .92rem/1.55 var(--sans);color:var(--ink-soft);max-width:60ch}

/* Photo essays */
.photo-essay{
  display:grid;grid-template-columns:1fr;gap:1rem 2.5rem;align-items:start;
  padding:2.2rem 0;border-top:1px solid var(--rule);
}
.photo-essay .essay-figure{margin:0}
.essay-text{padding-top:.4rem}
.essay-eyebrow{font:600 .74rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ochre);margin:0 0 .4rem}
.essay-text h2{margin:0 0 .5rem}
.essay-text h2 a{color:var(--forest-deep);text-decoration:none}
.essay-text h2 a:hover{color:var(--ochre);text-decoration:underline;text-decoration-color:var(--ochre)}
.essay-text p{font-size:1rem;line-height:1.65;color:var(--ink);max-width:52ch}
.essay-link{font:600 .78rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;margin:.8rem 0 0}
.essay-link a{text-decoration:none;border-bottom:2px solid var(--ochre-bright);color:var(--forest-deep);padding-bottom:.15rem}
.essay-link a:hover{color:var(--ochre);border-bottom-color:var(--ochre)}

/* Compact index of remaining parks */
.park-shorts{border-top:3px solid var(--forest-deep);padding-top:1rem;margin-top:.5rem}
.short-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:0}
.short-list li{
  display:grid;grid-template-columns:minmax(0,1fr);gap:.18rem;padding:.9rem 0;
  border-bottom:1px solid var(--rule-soft);max-width:100%;
}
.short-list a{font-family:var(--serif);font-size:1.08rem;font-weight:700;color:var(--forest-deep);text-decoration:none;line-height:1.3}
.short-list a:hover{color:var(--ochre);text-decoration:underline;text-decoration-color:var(--ochre)}
.short-where{font:600 .7rem/1.4 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--ochre)}
.short-detail{font:400 .9rem/1.5 var(--sans);color:var(--ink-soft)}

/* Briefs */
.briefs{border-top:1px solid var(--rule);margin-top:2.6rem;padding-top:1.1rem}
.brief-list{list-style:none;margin:0;padding:0}
.brief-list li{padding:.9rem 0;border-bottom:1px solid var(--rule-soft);max-width:100%}
.brief-list h3 a{color:var(--forest-deep);text-decoration:none}
.brief-list h3 a:hover{color:var(--ochre);text-decoration:underline;text-decoration-color:var(--ochre)}
.brief-list p{font:400 .95rem/1.6 var(--sans);color:var(--ink-soft);margin:.2rem 0 0;max-width:60ch}

/* Method */
.method{border-top:1px solid var(--rule);margin-top:2.6rem;padding-top:1.1rem}
.method-body p{font-size:.98rem;line-height:1.65;max-width:var(--measure)}
.method-figure{margin-top:1.6rem}

/* ---------- Article pages ---------- */
.page.article{max-width:820px}
.breadcrumbs{font:400 .82rem/1.4 var(--sans);color:var(--ink-soft);margin-bottom:1.1rem}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.15rem .45rem;list-style:none;margin:0;padding:0}
.breadcrumbs li{max-width:none}
.breadcrumbs li+li::before{content:"\203A";margin-right:.45rem;color:var(--ochre)}
.breadcrumbs a{color:var(--forest)}
.article-header{border-bottom:2px solid var(--forest-deep);padding-bottom:1.2rem;margin-bottom:1.6rem}
.article-header h1{margin-bottom:.4em}
.article-header .description,.article-header p{font-size:clamp(1.02rem,1.6vw,1.18rem);line-height:1.6;color:var(--ink-soft);max-width:58ch;margin:0}
.article-body{max-width:var(--measure)}
.article-body h2{margin-top:1.9em}
.article-body ul,.article-body ol{padding-left:1.25em}
.article-body li{margin-bottom:.35em}
.article-body dl{display:grid;grid-template-columns:minmax(0,1fr);gap:.1rem 1.6rem}
.article-body dt{font:600 .95rem/1.5 var(--sans);color:var(--forest-deep);margin-top:.7rem}
.article-body dd{margin:0;color:var(--ink)}
.article-body blockquote{border-left:3px solid var(--ochre-bright);padding:.2rem 0 .2rem 1rem;color:var(--ink-soft);font-style:italic;max-width:var(--measure)}
.sources{border-top:2px solid var(--forest-deep);margin-top:2.75rem;padding-top:1rem;font:400 .9rem/1.6 var(--sans);color:var(--ink-soft);max-width:var(--measure)}
.sources h2,.sources h3{font-size:1.1rem}
.sources ul{padding-left:1.15em}
.sources a{overflow-wrap:anywhere}

/* ---------- Atlas / places ---------- */
.place-card{border-top:1px solid var(--rule);padding:1.3rem 0;max-width:100%}
.place-card[data-place]{display:block}
.place-name{font-family:var(--serif);font-size:1.25rem;font-weight:700;margin:0 0 .35rem;line-height:1.25}
.place-name a{color:var(--forest-deep);text-decoration:none}
.place-name a:hover{color:var(--ochre);text-decoration:underline;text-decoration-color:var(--ochre)}
.place-card dl{margin:.4rem 0 0;font:400 .9rem/1.55 var(--sans);color:var(--ink-soft)}

/* ---------- Bench table ---------- */
.table-wrap{overflow-x:auto;max-width:100%;margin:1.4rem 0;border:1px solid var(--rule);background:#faf7f0}
.bench-table{border-collapse:collapse;width:100%;min-width:34rem;font:400 .9rem/1.5 var(--sans)}
.bench-table caption{text-align:left;font:600 .78rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ochre);padding:.55rem .7rem;border-bottom:1px solid var(--rule)}
.bench-table th,.bench-table td{border-bottom:1px solid var(--rule-soft);padding:.55rem .7rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.bench-table th{background:var(--paper-deep);color:var(--forest-deep);font-weight:700}
.bench-table tbody tr:nth-child(even) td{background:#f1ebdd}

/* ---------- Tool page ---------- */
.page.tool{max-width:900px}
form{margin:1.6rem 0;max-width:64ch}
fieldset{border:1px solid var(--rule);border-radius:var(--radius);padding:1.1rem 1.15rem;margin:0 0 1.1rem;background:#faf7f0;min-width:0}
fieldset[disabled]{background:#efe9db;border-color:var(--rule)}
legend{font:700 .92rem/1.3 var(--sans);color:var(--forest-deep);padding:0 .4rem}
label{display:block;font:600 .88rem/1.4 var(--sans);color:var(--ink);margin:.65rem 0 .25rem}
input,textarea,select{font:400 1rem/1.5 var(--sans);width:100%;max-width:100%;padding:.55rem .65rem;border:1px solid var(--ink-soft);border-radius:var(--radius);background:#fff;color:var(--ink)}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
button{font:600 .9rem/1.2 var(--sans);padding:.55rem 1.1rem;margin:.5rem .6rem 0 0;background:var(--forest);color:#fff;border:1px solid var(--forest);border-radius:var(--radius);cursor:pointer}
button:hover{background:var(--ochre);border-color:var(--ochre);color:#fff}
input:disabled,textarea:disabled,select:disabled{background:#e5dece;color:#3a443a;border-color:#8c8778;cursor:not-allowed}
button:disabled{background:#c4bcaa;color:#2c332c;border-color:#8c8778;cursor:not-allowed}
#atlas-filter-note,#atlas-no-js{font:400 .85rem/1.55 var(--sans);color:var(--ink-soft);margin:.45rem 0 0}
.tool-status,#atlas-status{display:block;font:400 .9rem/1.5 var(--sans);border-left:3px solid var(--ochre-bright);padding:.5rem .75rem;background:#f0e9d8;color:var(--ink);margin:.9rem 0;max-width:64ch}
#atlas-shortlist{list-style:none;padding:0;margin:.6rem 0;font:400 .92rem/1.55 var(--sans)}
#atlas-shortlist li{border-bottom:1px solid var(--rule-soft);padding:.4rem 0}
output,.tool-output{display:block;font:400 .92rem/1.55 var(--mono);background:#faf7f0;border:1px solid var(--rule);padding:.6rem .7rem;color:var(--ink);max-width:100%;overflow-wrap:anywhere}

/* ---------- Generic media, code, details ---------- */
figure{max-width:100%;margin:1.6rem 0}
figcaption{font:400 .82rem/1.5 var(--sans);color:var(--ink-soft)}
code,pre,kbd,samp{font-family:var(--mono);font-size:.88rem}
code{background:#e9e2d2;color:#2a322a;padding:.08em .3em;border-radius:var(--radius);overflow-wrap:anywhere}
pre{background:#16241a;color:#f1ecdf;padding:.9rem 1rem;overflow-x:auto;max-width:100%;border-radius:var(--radius);line-height:1.5}
pre code{background:none;color:inherit;padding:0}
details{border:1px solid var(--rule);border-radius:var(--radius);padding:.6rem .85rem;margin:.9rem 0;background:#faf7f0;max-width:var(--measure)}
summary{cursor:pointer;font:600 .92rem/1.4 var(--sans);color:var(--forest-deep)}
summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
table{max-width:100%;border-collapse:collapse}
svg text{font-family:var(--sans);fill:var(--ink)}
.graph-svg text{font-family:var(--serif);fill:var(--ink)}
.graph-svg line,.graph-svg path{stroke:var(--forest)}
.graph-svg circle,.graph-svg rect{fill:var(--ochre-bright)}

/* ---------- Footer ---------- */
.site-footer{background:var(--forest-deep);color:var(--paper);border-top:3px solid var(--ochre-bright);margin-top:3rem;padding:1.8rem 0}
.footer-inner{max-width:1180px;margin:0 auto;padding:0 var(--gutter);display:flex;flex-wrap:wrap;gap:1rem 2.5rem;justify-content:space-between;align-items:flex-start}
.footer-publisher{font:400 .86rem/1.6 var(--sans);color:#e6ddc9;max-width:60ch;margin:0}
.footer-publisher a{color:#fff;text-decoration-color:var(--ochre-bright)}
.footer-nav ul{display:flex;flex-wrap:wrap;gap:.35rem 1.4rem;list-style:none;margin:0;padding:0}
.footer-nav a{color:#f1ecdf;font:400 .86rem/1.4 var(--sans);text-decoration:none}
.footer-nav a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--ochre-bright)}

/* ---------- Responsive ---------- */
@media (min-width:640px){
  .entry-index li{grid-template-columns:2.8rem minmax(0,1fr) minmax(0,1.4fr);grid-template-areas:"num name where" ". detail detail";gap:.15rem 1rem}
  .short-list{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:2.4rem}
  .article-body dl{grid-template-columns:minmax(7rem,11rem) minmax(0,1fr)}
  .article-body dt{margin-top:.3rem;text-align:right;padding-right:.4rem;border-right:1px solid var(--rule-soft)}
  .article-body dd{margin-bottom:.6rem}
}
@media (min-width:760px){
  .photo-essay{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2.6rem;align-items:center}
  .essay-b .essay-figure{order:2}
  .essay-b .essay-text{order:1}
  .photo-essay .essay-figure{grid-column:auto}
  .brief-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:.2rem 2rem;align-items:baseline}
  .brief-list h3{margin-bottom:0}
}
@media (max-width:639px){
  .header-inner{flex-direction:column;align-items:flex-start;gap:.55rem}
  .site-nav ul{gap:.15rem 1.25rem}
  .site-nav a{padding:.5rem 0;font-size:.9rem}
  .footer-inner{flex-direction:column}
  .media-caption{flex-direction:column;gap:.3rem}
  .essay-text p{max-width:100%}
}
@media (max-width:360px){
  body{font-size:16px}
  .brand-word{font-size:1.05rem;letter-spacing:.1em}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{
  body{background:#fff;color:#000;font-size:11.5pt}
  .site-header,.site-footer,.site-nav,.footer-nav,.home-hero,.method-figure,.skip-link{display:none!important}
  a{color:#000}
  .page{max-width:100%;padding:0}
}
