:root{--bg-canvas:#faf6ef;--bg-surface:#f1e8da;--bg-surface-hover:#ebdfcc;--text-primary:#2b211a;--text-muted:#5e5045;--accent-primary:#c2562e;--accent-secondary:#6b7a3a;--border-subtle:rgba(43,33,26,.12);--ease-kinetic:cubic-bezier(0.16,1,0.3,1);--shadow-elevation:0 12px 32px -4px rgba(43,33,26,.22);--shadow-soft:0 4px 14px -4px rgba(43,33,26,.16);--glow-accent:0 0 24px -8px var(--accent-primary);--glass-backdrop:blur(16px) saturate(180%);--r:4px}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg-canvas);color:var(--text-primary);font-family:Charter,"Bitstream Charter",Cambria,Georgia,serif;font-size:1.0625rem;line-height:1.65;overflow-wrap:anywhere;hyphens:auto}
h1,h2,h3,h4{line-height:1.2;overflow-wrap:anywhere;hyphens:auto;margin:0 0 .6em}
h1{font-size:clamp(2rem,4.5vw,3.2rem)}h2{font-size:clamp(1.5rem,3vw,2.1rem)}h3{font-size:1.25rem}
a{color:var(--accent-primary);text-underline-offset:3px}a:hover{color:#9e4322}
img{max-width:100%;display:block;height:auto;border-radius:var(--r)}
:focus-visible{outline:3px solid var(--accent-secondary);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding:0 1.25rem}
.prose{max-width:70ch;margin:0 auto}
.label,.sc{font-variant:small-caps;letter-spacing:.06em;text-transform:lowercase;font-weight:600}
.skip{position:absolute;left:-999px;top:0;background:var(--accent-primary);color:var(--bg-canvas);padding:.5rem 1rem;z-index:50}.skip:focus{left:1rem}
/* header */
.site-header{position:relative;background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle)}
.brand-row{max-width:1200px;margin:0 auto;padding:1rem 1.25rem .5rem;display:flex;align-items:center;justify-content:space-between}
.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--text-primary);text-decoration:none;font-weight:700;font-size:1.2rem}
.brand-mark{width:2.1rem;height:2.1rem;border-radius:var(--r);background:var(--accent-primary);color:var(--bg-canvas);display:grid;place-items:center;font-size:1.1rem}
.menu-btn{display:none;background:none;border:0;font-size:1.8rem;line-height:1;color:var(--text-primary);cursor:pointer;padding:.2rem .6rem;border-radius:var(--r)}
.site-nav ul{list-style:none;margin:0;padding:.4rem 1.25rem .9rem;display:flex;justify-content:center;flex-wrap:wrap;gap:.3rem 1.6rem}
.site-nav a{color:var(--text-primary);text-decoration:none;font-variant:small-caps;letter-spacing:.06em;text-transform:lowercase;font-size:1.05rem;padding:.2rem 0;border-bottom:2px solid transparent;transition:border-color .3s var(--ease-kinetic)}
.site-nav a:hover,.site-nav a[aria-current="page"]{border-color:var(--accent-primary)}
/* buttons */
.btn{display:inline-block;border:0;border-radius:999px;padding:.75rem 1.5rem;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;background:var(--accent-primary);color:var(--bg-canvas);transition:transform .4s var(--ease-kinetic),box-shadow .4s var(--ease-kinetic)}
.btn:hover{color:var(--bg-canvas);transform:translateY(-3px) scale(1.015);box-shadow:var(--shadow-elevation),var(--glow-accent)}
.btn.alt{background:var(--accent-secondary)}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem}
/* hero */
.hero{padding:3.5rem 0 3rem;position:relative}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:2.5rem;align-items:center}
.hero p.lead{font-size:1.2rem;color:var(--text-muted);max-width:52ch}
.hero-photo{aspect-ratio:4/3;width:100%;object-fit:cover;box-shadow:var(--shadow-elevation)}
.page-hero{padding:3rem 0 2rem}.page-hero p{color:var(--text-muted);font-size:1.15rem;max-width:62ch}
/* sections */
section{padding:3.2rem 0}
.block-terra{background:var(--accent-primary);color:var(--bg-canvas)}
.block-olive{background:var(--accent-secondary);color:var(--bg-canvas)}
.block-terra a,.block-olive a{color:var(--bg-canvas)}
.block-terra .card,.block-olive .card{color:var(--text-primary)}
.block-terra .card a,.block-olive .card a{color:var(--accent-primary)}
.section-intro{max-width:64ch;color:inherit;opacity:.92}
/* stats */
.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--border-subtle);border-radius:var(--r);overflow:hidden;margin:1.2rem 0}
.stat{background:var(--bg-surface);padding:1rem 1.1rem}
.stat dt{font-variant:small-caps;text-transform:lowercase;letter-spacing:.06em;color:var(--text-muted);font-size:.95rem}
.stat dd{margin:0;font-size:1.45rem;font-weight:700;color:var(--accent-secondary)}
dl.stat-strip{margin:1.2rem 0}
/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem}
.card{background:var(--bg-surface);border-radius:var(--r);padding:1.4rem;box-shadow:var(--shadow-soft);transition:transform .45s var(--ease-kinetic),box-shadow .45s var(--ease-kinetic)}
.card:hover{transform:translateY(-5px) scale(1.015);box-shadow:var(--shadow-elevation),var(--glow-accent)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%;margin-bottom:1rem}
.card h3{margin-bottom:.4rem}
.tag{display:inline-block;font-variant:small-caps;text-transform:lowercase;letter-spacing:.07em;color:var(--accent-secondary);font-weight:700;font-size:.95rem}
.split{display:grid;grid-template-columns:1fr 1.2fr;gap:1.6rem;align-items:center}
.split img{aspect-ratio:4/3;object-fit:cover;width:100%}
/* tabs */
.tablist{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.2rem 0 0}
.tab{font:inherit;font-variant:small-caps;text-transform:lowercase;letter-spacing:.07em;font-weight:700;border:0;background:var(--bg-surface);color:var(--text-primary);padding:.6rem 1.1rem;border-radius:var(--r) var(--r) 0 0;cursor:pointer;transition:background .3s}
.tab:hover{background:var(--bg-surface-hover)}
.tab[aria-selected="true"]{background:var(--accent-primary);color:var(--bg-canvas)}
.tabpanel{background:var(--bg-surface);border-radius:0 var(--r) var(--r) var(--r);padding:1.6rem;box-shadow:var(--shadow-soft)}
.tabpanel[hidden]{display:none}
.city-file{display:grid;grid-template-columns:1fr 1.15fr;gap:1.6rem}
.city-file img{aspect-ratio:4/3;object-fit:cover;width:100%}
.city-file .stat{background:var(--bg-canvas)}
/* accordion */
details{background:var(--bg-surface);border-radius:var(--r);margin:.6rem 0;box-shadow:var(--shadow-soft);transition:box-shadow .4s var(--ease-kinetic)}
details[open]{box-shadow:var(--shadow-elevation)}
summary{cursor:pointer;padding:1rem 1.2rem;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--accent-primary);font-size:1.3rem;line-height:1}
details[open] summary::after{content:"–"}
details .acc-body{padding:0 1.2rem 1.1rem}
details .acc-body p:first-child{margin-top:0}
.block-olive details,.block-terra details{color:var(--text-primary)}
/* tables */
table{width:100%;border-collapse:collapse;background:var(--bg-surface);border-radius:var(--r);min-width:640px}
th,td{padding:.75rem .9rem;text-align:left;border-bottom:1px solid var(--border-subtle);vertical-align:top}
th{font-variant:small-caps;text-transform:lowercase;letter-spacing:.06em;background:var(--accent-primary);color:var(--bg-canvas)}
.table-wrap{overflow-x:auto;border-radius:var(--r);box-shadow:var(--shadow-soft);margin:1.2rem 0}
/* forms */
.composer{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
label{display:block;font-variant:small-caps;text-transform:lowercase;letter-spacing:.06em;font-weight:700;margin:.8rem 0 .3rem}
input,select,textarea{width:100%;font:inherit;padding:.7rem .8rem;border:1px solid var(--border-subtle);border-radius:var(--r);background:var(--bg-canvas);color:var(--text-primary)}
textarea{min-height:160px;resize:vertical}
.preview{background:var(--bg-canvas);border-radius:var(--r);padding:1.1rem;white-space:pre-wrap;font-family:inherit;min-height:220px;margin:0;border:1px dashed var(--border-subtle)}
.status{min-height:1.5em;color:var(--accent-secondary);font-weight:700}
/* footer */
.site-footer{background:var(--bg-canvas);border-top:1px solid var(--border-subtle);margin-top:2rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;padding-top:2.5rem;padding-bottom:2rem}
.foot-h{font-size:1rem;font-variant:small-caps;text-transform:lowercase;letter-spacing:.08em;color:var(--accent-secondary)}
.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:.3rem 0}
.site-footer a{color:var(--text-primary)}.site-footer p{color:var(--text-muted);font-size:.97rem}
.foot-bar{background:var(--accent-primary);color:var(--bg-canvas);text-align:center;padding:.9rem 1rem;font-variant:small-caps;letter-spacing:.06em}
/* reveal */
.js .reveal{opacity:0;transform:translateY(24px)}
.js .reveal.reveal-visible{opacity:1;transform:translateY(0);transition:all .7s var(--ease-kinetic)}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}*{transition:none!important}}
@media (min-width:1025px){.hero{padding:4.5rem 0 4rem}}
@media (max-width:1024px){.hero-grid{gap:1.6rem}}
@media (max-width:768px){
.menu-btn{display:block}
.site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg-surface);box-shadow:var(--shadow-elevation);z-index:20;animation:slide .35s var(--ease-kinetic)}
.site-nav.open{display:block}
.site-nav ul{flex-direction:column;padding:1rem 1.25rem;gap:.2rem}
.site-nav a{display:block;padding:.6rem 0;font-size:1.15rem}
.hero-grid,.city-file,.split,.composer,.foot-grid{grid-template-columns:1fr}
.hero-photo{order:-1}
}
@media (max-width:480px){body{font-size:1rem}section{padding:2.4rem 0}.tabpanel{padding:1.1rem}.tab{padding:.5rem .8rem}}
@keyframes slide{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}