:root {
  --paper:#f4f0e8;
  --paper-deep:#e8e2d6;
  --ink:#171b19;
  --muted:#666d68;
  --line:#c7c2b7;
  --deep:#183229;
  --green:#315f55;
  --accent:#ef5b49;
  --gold:#b49a55;
  --display:"Iowan Old Style","Baskerville","Palatino Linotype",serif;
  --sans:"Avenir Next","Avenir","Helvetica Neue",sans-serif;
  --gutter:clamp(1.15rem,4vw,4.8rem);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;text-rendering:optimizeLegibility;overflow-x:hidden}
a{color:inherit}
.skip-link{position:fixed;top:-6rem;left:1rem;z-index:100;padding:.7rem 1rem;background:var(--ink);color:#fff}
.skip-link:focus{top:1rem}
.masthead{position:absolute;inset:0 0 auto;z-index:10;min-height:4.6rem;padding:0 var(--gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid color-mix(in srgb,var(--ink),transparent 72%);font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.masthead p{margin:0;color:var(--muted)}
.home-link{text-decoration:none;justify-self:start}
.language-switch{justify-self:end;display:flex;align-items:center;gap:.35rem}
.language-switch button{border:0;padding:.55rem .25rem;background:transparent;color:var(--muted);font:inherit;cursor:pointer}
.language-switch button[aria-pressed="true"]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:.32rem}
button:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.hero{min-height:94vh;padding:clamp(9rem,16vw,14rem) var(--gutter) clamp(5rem,9vw,8rem);position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(14rem,25rem);align-content:center;gap:2rem 5vw;overflow:hidden}
.hero::before{content:"";position:absolute;width:min(72vw,65rem);aspect-ratio:1;right:-31vw;top:-20vw;border:1px solid var(--line);border-radius:50%;box-shadow:0 0 0 7vw rgba(23,27,25,.018),0 0 0 14vw rgba(23,27,25,.012);pointer-events:none}
.hero>.eyebrow,.hero>h1,.hero>.dek{grid-column:1;position:relative;z-index:1}
.hero>.eyebrow{align-self:end}
.eyebrow{margin:0 0 1rem;font-size:.68rem;line-height:1.2;font-weight:800;letter-spacing:.17em;text-transform:uppercase}
h1,h2{font-family:var(--display);font-weight:500;letter-spacing:-.04em}
h1{margin:0;font-size:clamp(3.8rem,7.5vw,8.7rem);line-height:.84;max-width:82rem}
h1 em{color:var(--accent);font-weight:400}
.dek{max-width:35rem;margin:1rem 0 0;font-size:clamp(1.08rem,1.8vw,1.45rem);line-height:1.45}
.hero-fact{grid-column:2;grid-row:1/4;align-self:end;position:relative;z-index:1;padding:1rem 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.hero-fact span,.hero-fact small{display:block;color:var(--muted);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase}
.hero-fact strong{display:block;margin:.25rem 0;font-family:var(--display);font-size:clamp(4rem,7vw,8rem);font-weight:500;line-height:1;color:var(--accent)}
.chapter{padding:clamp(6rem,11vw,11rem) var(--gutter);display:grid;grid-template-columns:3rem minmax(17rem,.62fr) minmax(28rem,1.38fr);gap:2rem 4vw;border-top:1px solid var(--line);position:relative}
.chapter-number{margin:0;color:var(--accent);font-family:var(--display);font-size:1.15rem}
.chapter-copy{max-width:34rem}
.chapter h2,.map-chapter h2,.spain-section h2,.takeaway h2,.methods h2{margin:0 0 1.5rem;font-size:clamp(2.65rem,4.8vw,5.5rem);line-height:.96}
.chapter-copy p:not(.eyebrow){max-width:31rem}
.chapter-copy span,.chapter-copy strong{color:#bc4438}
.chart-figure{margin:0;min-width:0;align-self:center}
.figure-kicker{padding-bottom:.75rem;border-bottom:1px solid currentColor;font-size:.65rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
figcaption{margin-top:1rem;max-width:52rem;color:var(--muted);font-size:.74rem;line-height:1.5}
.ranking-chart,.dumbbell-chart,.line-chart{width:100%;min-height:24rem}
.ranking-chart svg,.dumbbell-chart svg,.line-chart svg{display:block;width:100%;height:auto;overflow:visible}
.gridline{stroke:rgba(23,27,25,.12);stroke-width:1}
.axis-label,.country-label,.axis-title,.chart-key{fill:var(--muted);font-family:var(--sans);font-size:12px}
.axis-title{font-size:10px;font-weight:800;letter-spacing:1px}
.country-label.peer{fill:var(--ink);font-weight:600}.country-label.spain{fill:#bd4337;font-weight:800}
.rank-line{stroke:#c9c5ba;stroke-width:1.5}.rank-line.peer{stroke:#71877e;stroke-width:2}.rank-line.spain{stroke:var(--accent);stroke-width:4}
.rank-dot{fill:#aaa9a2;stroke:var(--paper);stroke-width:2}.rank-dot.peer{fill:var(--deep)}.rank-dot.spain{fill:var(--accent)}
.dumbbell-line{stroke:#8a948e;stroke-width:2}.dumbbell-line.spain{stroke:var(--accent);stroke-width:5}
.average-dot{fill:var(--paper);stroke:var(--ink);stroke-width:2}.median-dot.peer{fill:var(--deep);stroke:var(--paper);stroke-width:2}.median-dot.spain{fill:var(--accent);stroke:var(--paper);stroke-width:2}
.map-chapter{padding:clamp(6rem,10vw,10rem) 0 0;background:var(--deep);color:var(--paper);border-top:1px solid rgba(255,255,255,.18)}
.map-copy{padding:0 var(--gutter) clamp(3rem,6vw,6rem);display:grid;grid-template-columns:3rem minmax(18rem,.6fr) minmax(24rem,1.4fr);gap:1rem 4vw;align-items:start}
.map-copy .chapter-number{grid-row:1/4}.map-copy .eyebrow,.map-copy h2,.map-copy>p:last-child{grid-column:2}.map-copy>p:last-child{max-width:32rem;margin:0}.map-copy h2{grid-column:2/4;max-width:70rem}
.map-figure,.spain-map{margin:0}.map-figure picture,.spain-map picture{display:block;background:var(--paper)}
.map-figure img,.spain-map img{display:block;width:100%;height:auto}
.map-figure figcaption{padding:0 var(--gutter) 2.5rem;color:#bcc7c1}
.map-legend{padding:1rem var(--gutter);display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;border-top:1px solid rgba(255,255,255,.18);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase}
.map-legend strong{margin-right:.65rem;color:var(--accent);font-size:inherit;letter-spacing:.1em}
.map-legend span{display:inline-flex;align-items:center;gap:.35rem}.map-legend i{display:inline-block;width:.72rem;height:.72rem;background:var(--c);border:1px solid rgba(23,27,25,.22)}
.map-legend b{font-weight:inherit}
.occupied-section{background:var(--paper-deep)}
.resident-section{background:#edf0e7}
.resident-section h2{font-size:clamp(2.2rem,4vw,4.7rem)}
.concentration-section{background:#e7e1d5}
.interactive-host{position:relative}
.hit-area,.distribution-hit{fill:transparent;stroke:transparent;cursor:crosshair;pointer-events:all}
.chart-tooltip{position:absolute;z-index:8;max-width:min(22rem,calc(100% - 16px));padding:.65rem .8rem;background:var(--ink);color:#fff;border-left:4px solid var(--accent);box-shadow:0 8px 28px rgba(0,0,0,.22);font-size:.72rem;line-height:1.35;pointer-events:none}
.chart-tooltip[hidden]{display:none}
.land-grid-figure{display:grid;gap:1.25rem}
.land-grid-controls{display:grid;grid-template-columns:minmax(12rem,.75fr) minmax(16rem,1.25fr);gap:1rem 2rem;align-items:end}
.land-grid-controls label{display:grid;gap:.45rem;font-size:.67rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.land-grid-controls select{width:100%;padding:.7rem .8rem;border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:600 .9rem var(--sans)}
.population-control{grid-template-columns:1fr auto}.population-control>span{grid-column:1}.population-control output{grid-column:2;grid-row:1/3;align-self:center;color:var(--accent);font-family:var(--display);font-size:2.4rem;font-weight:500;letter-spacing:-.03em}.population-control input{grid-column:1;width:100%;accent-color:var(--accent)}
.land-grid{display:grid;grid-template-columns:repeat(20,1fr);gap:2px;width:min(100%,33rem);aspect-ratio:1;padding:2px;background:rgba(23,27,25,.11);touch-action:manipulation}
.land-cell{display:block;background:var(--paper);outline-offset:-2px}.land-cell.filled{background:var(--accent)}.land-cell.partial{background:linear-gradient(90deg,var(--accent) 0 var(--fill),var(--paper) var(--fill) 100%)}
.dynamic-chart-text{min-height:2.8rem;margin:0;max-width:34rem;font-family:var(--display);font-size:clamp(1.45rem,2.4vw,2.15rem);line-height:1.15}
.distribution-section{padding:clamp(6rem,10vw,10rem) var(--gutter);background:var(--deep);color:var(--paper)}
.distribution-copy{display:grid;grid-template-columns:3rem minmax(17rem,.65fr) minmax(22rem,1.35fr);gap:1rem 4vw;margin-bottom:4rem}.distribution-copy .chapter-number{grid-row:1/4}.distribution-copy .eyebrow,.distribution-copy h2,.distribution-copy>p:last-child{grid-column:2}.distribution-copy h2{grid-column:2/4;margin:0;font-family:var(--display);font-size:clamp(2.65rem,4.8vw,5.5rem);font-weight:500;letter-spacing:-.04em;line-height:.96}.distribution-copy>p:last-child{max-width:34rem;margin:0}
.distribution-figure{margin:0}.distribution-controls{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-bottom:1.5rem}.distribution-controls fieldset{display:flex;align-items:center;gap:.4rem;margin:0;padding:0;border:0}.distribution-controls legend{float:left;margin-right:.55rem;color:#afbbb5;font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.distribution-controls button{padding:.48rem .7rem;border:1px solid rgba(255,255,255,.28);background:transparent;color:var(--paper);font:700 .68rem var(--sans);letter-spacing:.03em;cursor:pointer}.distribution-controls button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.distribution-chart{min-height:31rem;border-top:1px solid rgba(255,255,255,.28)}.distribution-chart svg{display:block;width:100%;height:auto}.distribution-chart .axis-label,.distribution-chart .axis-title{fill:#c8d0cc}.distribution-gridline{stroke:rgba(255,255,255,.14);stroke-width:1}.distribution-figure figcaption{color:#b8c2bd}
.spain-section{padding:clamp(6rem,11vw,11rem) var(--gutter);background:var(--paper);border-top:1px solid var(--line)}
.spain-copy{display:grid;grid-template-columns:3rem minmax(17rem,.6fr) minmax(22rem,1.4fr);gap:1rem 4vw;margin-bottom:clamp(3rem,6vw,6rem)}
.spain-copy .chapter-number{grid-row:1/4}.spain-copy .eyebrow,.spain-copy h2,.spain-copy>p:last-child{grid-column:2}.spain-copy h2{grid-column:2/4;max-width:70rem}.spain-copy>p:last-child{max-width:34rem;margin:0}
.spain-map{border-top:1px solid var(--ink)}
.spain-map .map-legend{padding:1rem 0;border-color:var(--line)}
.spain-map figcaption{margin-left:0}
.takeaway{padding:clamp(7rem,13vw,13rem) var(--gutter);background:var(--accent);color:var(--ink)}
.takeaway h2{max-width:78rem;font-size:clamp(3.1rem,7vw,8rem)}
.methods{padding:clamp(6rem,10vw,10rem) var(--gutter);display:grid;grid-template-columns:.8fr 1.2fr;gap:4vw}
.methods-copy{columns:2;column-gap:3rem}.methods-copy p{break-inside:avoid;margin-top:0;font-size:.86rem}.methods-copy strong{color:var(--deep)}
footer{padding:3rem var(--gutter);background:var(--ink);color:#d8d4cc;font-size:.72rem}.source-block{display:flex;flex-wrap:wrap;gap:.7rem 1.2rem}.source-block span{color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.1em}footer p{max-width:68rem;margin:1.5rem 0 0;color:#92958f}.footer-home{display:inline-block;margin-top:1.7rem;color:var(--paper);font-size:.85rem;font-weight:700;text-decoration-color:var(--accent);text-underline-offset:.25rem}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.75,.2,1)}.reveal.is-visible{opacity:1;transform:none}.hero .reveal:nth-child(2){transition-delay:.1s}.hero .reveal:nth-child(3){transition-delay:.18s}
@media(max-width:950px){.hero{grid-template-columns:1fr;min-height:auto}.hero>.eyebrow,.hero>h1,.hero>.dek,.hero-fact{grid-column:1}.hero-fact{grid-row:auto;max-width:25rem;margin-top:2rem}.chapter{grid-template-columns:2.2rem 1fr}.chapter-copy,.chart-figure{grid-column:2}.map-copy,.spain-copy,.distribution-copy{grid-template-columns:2.2rem 1fr}.map-copy .eyebrow,.map-copy h2,.map-copy>p:last-child,.spain-copy .eyebrow,.spain-copy h2,.spain-copy>p:last-child,.distribution-copy .eyebrow,.distribution-copy h2,.distribution-copy>p:last-child{grid-column:2}.distribution-copy h2{grid-column:2}.methods{grid-template-columns:1fr}}
@media(max-width:640px){body{font-size:16px}.masthead{grid-template-columns:1fr auto}.masthead p{display:none}.hero{padding-top:8.5rem}.hero::before{width:32rem;right:-20rem;top:-8rem}h1{font-size:clamp(3.5rem,17vw,5.6rem)}.chapter{padding-block:5.5rem;grid-template-columns:1fr;gap:1.2rem}.chapter-number{padding-bottom:.45rem;border-bottom:1px solid currentColor}.chapter-copy,.chart-figure{grid-column:1}.chart-figure{overflow-x:auto;overflow-y:hidden;padding-bottom:.5rem}.land-grid-figure{overflow:visible}.ranking-chart,.dumbbell-chart{min-width:42rem}.map-copy,.spain-copy,.distribution-copy{grid-template-columns:1fr}.map-copy .chapter-number,.spain-copy .chapter-number,.distribution-copy .chapter-number{grid-row:auto}.map-copy .eyebrow,.map-copy h2,.map-copy>p:last-child,.spain-copy .eyebrow,.spain-copy h2,.spain-copy>p:last-child,.distribution-copy .eyebrow,.distribution-copy h2,.distribution-copy>p:last-child{grid-column:1}.map-copy h2,.spain-copy h2,.distribution-copy h2{grid-column:1}.map-legend{gap:.45rem .75rem}.map-legend strong{flex-basis:100%}.land-grid-controls{grid-template-columns:1fr}.population-control output{font-size:2rem}.distribution-section{padding-inline:var(--gutter)}.distribution-figure{overflow-x:auto}.distribution-controls{position:sticky;left:0;display:grid;min-width:21rem}.distribution-controls fieldset{flex-wrap:wrap}.distribution-chart{min-width:48rem}.methods-copy{columns:1}.takeaway h2{font-size:clamp(3rem,14vw,5rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
