/* WCAG 2.2 AA remediation shared by public pages and the analytics view. */
:root{--muted:#495540;--accent:#405637;--control-border:#68735e}:root[data-theme=dark]{--muted:#b2bcaa;--accent:#c4d5b2;--control-border:#85927c}
html{scroll-padding:20px}body{font-size:1rem}a,button,input,select,summary{scroll-margin:24px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--ink);outline-offset:4px;box-shadow:0 0 0 3px var(--paper)}main:focus{outline:none}.skip{z-index:200}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
header nav,.filters a,.theme-control,.theme-toggle,footer,.portfolio-note,.preview-note,.eyebrow,.back,.back-link,.teaser-link,.read-article,.byline,.legal-date,.legal-nav,.rights-note{font-size:.8125rem}.brand span{font-size:.625rem}.portfolio-bar h1{font-size:1rem}.filters{flex-wrap:wrap}.filters a{display:inline-flex;align-items:center;min-height:32px}.theme-toggle{min-height:44px;padding:8px}.toggle-track{border-color:var(--control-border)}.theme-control select{min-height:44px;border-color:var(--control-border)}header nav a,footer a,.footer-button{display:inline-flex;align-items:center;min-height:32px}.footer-button{font:inherit;background:transparent;color:inherit;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:4px}footer{gap:16px 24px;justify-content:flex-start}footer .theme-control{margin-left:auto}footer>a{white-space:normal}.photo-label{font-size:.8125rem;background:linear-gradient(transparent,#000 65%)}.journal-teaser p{font-size:.9375rem}.photo:focus-visible{outline-offset:3px}.prose a{font-weight:600}.reading,.detail-copy,.article-copy{min-width:0;overflow-wrap:anywhere}.byline{flex-wrap:wrap;gap:12px}.prose pre{white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2}.prose table{font-size:1rem}.prose pre:focus-visible{outline:3px solid var(--ink)}
.viewer{display:none;padding:24px 70px;overflow:auto}.viewer[open]{display:flex;flex-direction:column;gap:16px}.viewer-top,.viewer-bottom{position:static;flex-shrink:0}.viewer-top{font-size:.875rem}.viewer-image{height:auto;min-height:80px;max-height:calc(100dvh - 240px);flex:1;object-fit:contain}.viewer-bottom h2{font-size:1.5rem}.viewer-bottom p{font-size:.875rem}.viewer-close,.viewer-actions{font-size:.875rem}.viewer-actions{flex-wrap:wrap;gap:12px 24px}.viewer-actions a,.viewer-actions button,.viewer-close,.viewer-prev,.viewer-next{min-height:44px;min-width:44px}.viewer-prev,.viewer-next{background:var(--paper)!important}.viewer-count{font-size:.875rem}.viewer-bottom{padding-bottom:8px}
.consent-banner{margin:0 3.5% 28px;padding:24px;border:1px solid var(--control-border);background:var(--surface);display:flex;align-items:flex-start;gap:28px;flex-wrap:wrap}.consent-banner>div:first-child{flex:1 1 400px}.consent-banner h2,.consent-dialog h2{font:1.6rem/1.3 Georgia,serif;margin:0 0 12px}.consent-banner p,.consent-dialog p{font-size:.9375rem;line-height:1.65;margin:8px 0}.consent-banner a,.consent-dialog a{text-decoration:underline;text-underline-offset:3px}.consent-actions{display:flex;flex-wrap:wrap;gap:12px}.consent-actions button,.consent-close{font:inherit;min-height:44px;padding:10px 16px;background:var(--paper);color:var(--ink);border:1px solid var(--control-border)}.consent-actions button:hover{background:var(--surface)}.consent-actions button:disabled{cursor:not-allowed;opacity:.7}.consent-dialog{max-width:620px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding:28px;background:var(--paper);color:var(--ink);border:2px solid var(--control-border);line-height:1.65}.consent-dialog::backdrop{background:#0009}.consent-dialog form{display:flex;justify-content:flex-end;margin-bottom:12px}.consent-dialog .cookie-category{padding:16px 0;border-top:1px solid var(--line)}.cookie-choice{display:flex;gap:14px;align-items:flex-start;cursor:pointer}.cookie-choice input{width:24px;height:24px;flex-shrink:0;margin:4px 0;accent-color:var(--ink)}.cookie-choice span span{display:block;font-size:.9375rem}.consent-dialog select{max-width:100%;min-height:44px;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--control-border);padding:8px}.region-label{display:block;margin-top:16px}.consent-error{color:var(--ink);font-weight:600}.consent-error:empty{display:none}.consent-status,.consent-noscript{padding:12px 4%;font-size:.875rem}.consent-signal{font-weight:600}
.analytics-filters input,.analytics-filters select,.analytics-filters button{min-height:44px;border-color:var(--control-border);font-size:.875rem}.analytics-filters label,.analytics-status,.metrics span,.metrics small,.secondary-metrics,.panel-heading>span,.analytics details,.metric-note,.map-legend,.traffic-types span,.filter-chips a,.quick-ranges,table,th{font-size:.8125rem}.analytics summary{min-height:32px}.quick-ranges{flex-wrap:wrap}.quick-ranges a,.filter-chips a,td a{display:inline-flex;align-items:center;min-height:32px}.table-scroll{outline-offset:4px}.analytics .world-map a:focus-visible path{stroke:var(--ink);stroke-width:3}.analytics .trend-chart a:focus-visible rect{stroke:var(--ink);stroke-width:3}.analytics .world-map a:focus-visible,.analytics .trend-chart a:focus-visible{outline:none}.analytics .metrics article{min-width:0;overflow-wrap:anywhere}
@media(max-width:650px){header{padding-left:5%;padding-right:5%}.brand{font-size:1.125rem}.theme-toggle{font-size:.8125rem;gap:5px}.portfolio-bar h1{font-size:.875rem}.filters{gap:8px 16px;justify-content:flex-start}.filters a{font-size:.8125rem}.viewer{padding:16px 12px;gap:10px}.viewer-image{max-height:calc(100dvh - 290px)}.viewer-prev,.viewer-next{top:40%;padding:8px}.viewer-actions{gap:12px}.viewer-bottom h2{font-size:1.25rem}.consent-banner{margin:0 5% 24px;padding:18px;gap:16px}.consent-actions{width:100%}.consent-actions button{flex:1 1 130px}.consent-dialog{padding:20px}.legal-nav{gap:12px 20px}.legal-reading h1{font-size:2.25rem}.prose h2{font-size:1.5rem}.analytics-filters input{max-width:100%}.analytics-filters label{max-width:100%}footer .theme-control{margin-left:0}.reading{padding-left:20px;padding-right:20px}.byline{font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.toggle-track,.cookie-choice input,.consent-actions button{border:1px solid ButtonText}.toggle-track::before{background:ButtonText}.photo:focus-visible{outline:3px solid Highlight}.country{stroke:CanvasText}.trend-bar{fill:LinkText}}

body{padding-bottom:84px}.accessibility-launcher{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right));z-index:50;min-height:44px;max-width:calc(100vw - 32px);font-size:.875rem;padding:10px 16px;border:2px solid var(--control-border);border-radius:30px;background:var(--paper);color:var(--ink);box-shadow:0 2px 10px #0003}.accessibility-options{display:flex;flex-wrap:wrap;gap:12px}.accessibility-options button,.privacy-optout button{min-height:44px;padding:10px 14px;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--control-border)}.accessibility-options button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.privacy-optout{margin:18px 0;border-top:1px solid var(--line);padding:12px 0}.privacy-optout h3{font-size:1.125rem}html[data-larger-text=true]{font-size:125%}.prose{font-size:1.125rem}html[data-reduce-motion=true] *,html[data-reduce-motion=true] *::before,html[data-reduce-motion=true] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

.privacy-form{font-size:1rem}.privacy-form>label,.privacy-form fieldset>label,.privacy-form #subdivision-field>label{display:block;margin:20px 0 8px}.privacy-form input:not([type=checkbox]),.privacy-form select,.privacy-form textarea{width:100%;min-height:44px;font:inherit;padding:10px;border:1px solid var(--control-border);background:var(--paper);color:var(--ink)}.privacy-form fieldset{margin:24px 0;padding:20px;border:1px solid var(--control-border);min-width:0}.privacy-form legend{padding:0 8px}.privacy-form button{min-height:44px;font:inherit;padding:12px 18px;background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.request-check{display:flex!important;gap:12px;align-items:flex-start}.request-check input{width:24px;height:24px;flex-shrink:0}.privacy-form p{font-size:.9375rem}.honeypot{display:none}#request-error:not(:empty),#request-confirmation:not(:empty){padding:18px;border:2px solid var(--control-border);margin-top:24px;overflow-wrap:anywhere}.inline-button{font:inherit;text-decoration:underline;color:var(--ink);background:transparent;border:0;padding:2px;cursor:pointer}
/* Explicit colours prevent native button defaults from failing in dark mode. */
button.detail-download{font:inherit;font-size:.9375rem;min-height:44px;padding:10px 16px;border:1px solid var(--control-border);background:var(--paper);color:var(--ink);cursor:pointer}
header>nav{flex-wrap:wrap;max-width:100%}.consent-dialog{overflow-wrap:anywhere}.consent-dialog button,.consent-dialog a{max-width:100%;white-space:normal;overflow-wrap:anywhere}.photo-label{overflow-wrap:anywhere}.photo-label>span{min-width:0}.photo-label>span:last-child{flex-shrink:0}

/* Delineate photograph buttons even when an image edge blends into the page. */
.photo{border:1px solid var(--control-border)}

/* Floating consent: protect optional tracking choices without a cookie wall. */
.consent-banner{position:fixed;inset-inline:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:60;width:auto;max-width:1040px;max-height:50dvh;margin:0 auto;padding:20px 24px;gap:12px 24px;overflow:auto;overscroll-behavior:contain;box-shadow:0 8px 36px #0003;border-radius:8px;overflow-wrap:anywhere}
.consent-banner>div:first-child{flex:1 1 100%;min-width:0}.consent-banner h2{font-size:1.3rem;margin-bottom:6px}.consent-banner p{margin:6px 0;line-height:1.5}.consent-banner .consent-region{font-size:.8125rem}.consent-banner .consent-actions{width:100%;gap:10px}.consent-banner .consent-actions button{flex:1 1 180px;max-width:100%;white-space:normal}.consent-banner .consent-error{flex-basis:100%}
.consent-dialog{inset:0;margin:auto}.consent-dialog .consent-close{position:relative}.consent-modal-open{overflow:hidden}
html{scroll-padding-bottom:calc(var(--consent-obstruction,0px) + 24px)}body{padding-bottom:max(84px,calc(var(--consent-obstruction,0px) + 84px))}.accessibility-launcher{bottom:calc(var(--consent-obstruction,0px) + max(16px,env(safe-area-inset-bottom)))}
@media(max-width:650px){.consent-banner{inset-inline:12px;bottom:max(12px,env(safe-area-inset-bottom));margin:0 auto;padding:16px;gap:10px}.consent-banner .consent-actions button{flex-basis:130px}.consent-banner .consent-actions button:last-child{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.consent-banner{scroll-behavior:auto}}
