@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700&family=Inter:wght@400;500;600&display=swap');

:root { --red:#c51620; --ink:#181818; --muted:#6c6c6c; --paper:#f5f3ef; --line:#d8d5cf; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter,Arial,sans-serif; line-height:1.7; }
a { color:inherit; }
.site-header { position:sticky; top:0; z-index:20; border-bottom:1px solid rgba(255,255,255,.16); background:#131313; color:white; }
.header-inner { width:min(1180px,92%); min-height:88px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.brand { display:flex; align-items:center; gap:.9rem; text-decoration:none; }
.brand-mark { width:48px; height:48px; display:grid; place-items:center; border:2px solid var(--red); color:white; font:700 1.2rem 'Barlow Condensed'; transform:skew(-8deg); }
.brand strong { display:block; font:700 2rem/1 'Barlow Condensed'; letter-spacing:.08em; text-transform:uppercase; }
.brand small { color:#bbb; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; }
.main-navigation { display:flex; align-items:center; gap:.25rem; }
.main-navigation a,.dropdown>button { padding:.75rem .9rem; border:0; color:#ddd; background:transparent; font:600 .82rem Inter; text-decoration:none; text-transform:uppercase; letter-spacing:.06em; cursor:pointer; }
.main-navigation a:hover,.main-navigation a[aria-current=page],.dropdown>button:hover { color:white; }
.main-navigation a[aria-current=page] { box-shadow:inset 0 -2px var(--red); }
.dropdown { position:relative; }
.dropdown-menu { position:absolute; right:0; top:100%; min-width:210px; padding:.5rem; display:none; background:#1d1d1d; box-shadow:0 16px 35px #0005; }
.dropdown:hover .dropdown-menu,.dropdown>button[aria-expanded=true]+.dropdown-menu { display:grid; }
.dropdown-menu a { padding:.65rem .8rem; text-transform:none; }
.menu-toggle { display:none; border:1px solid #555; padding:.55rem .75rem; color:white; background:transparent; }
.hero { min-height:560px; display:grid; align-items:end; position:relative; isolation:isolate; color:white; background:linear-gradient(90deg,#000d,#0005),url('../images/hero.jpg') center/cover,#202020; }
.hero::after { content:''; position:absolute; z-index:-1; inset:auto 0 0; height:5px; background:var(--red); }
.hero-content { width:min(1180px,92%); margin:0 auto; padding:6rem 0 5rem; }
.eyebrow { color:var(--red); font:700 .8rem Inter; text-transform:uppercase; letter-spacing:.2em; }
h1,h2,h3 { font-family:'Barlow Condensed',Arial,sans-serif; line-height:1.05; text-transform:uppercase; }
h1 { max-width:760px; margin:.5rem 0 1.2rem; font-size:clamp(3.5rem,9vw,7.5rem); letter-spacing:-.025em; }
.hero p { max-width:640px; color:#ddd; font-size:1.05rem; }
.button { display:inline-block; margin-top:1rem; padding:.85rem 1.2rem; color:white; background:var(--red); font-weight:600; text-decoration:none; text-transform:uppercase; letter-spacing:.05em; }
.content { width:min(1040px,92%); margin:0 auto; padding:5rem 0; }
.content.narrow { max-width:780px; }
.page-heading { padding:5rem 0 2.5rem; border-bottom:1px solid var(--line); }
.page-heading h1 { margin:0; font-size:clamp(3rem,7vw,5.5rem); }
.lead { font-size:1.22rem; color:#484848; }
.intro-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:5rem; }
.intro-grid h2 { margin:0; font-size:3rem; }
.year-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(90px,1fr)); gap:.6rem; margin:2rem 0 4rem; }
.year-grid a { padding:1rem .5rem; border:1px solid var(--line); background:white; font:600 1rem 'Barlow Condensed'; text-align:center; text-decoration:none; transition:.2s; }
.year-grid a:hover { border-color:var(--red); color:white; background:var(--red); transform:translateY(-2px); }
.glossary { columns:2; padding:1.5rem; background:white; }
.gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }
.gallery-item { margin:0; background:white; }
.gallery a { display:block; aspect-ratio:4/3; overflow:hidden; background:#ddd; }
.gallery img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.gallery a:hover img { transform:scale(1.04); }
.gallery figcaption { display:grid; gap:.25rem; padding:.9rem 1rem 1rem; font-size:.85rem; line-height:1.45; }
.gallery figcaption strong { font-family:'Barlow Condensed',Arial,sans-serif; font-size:1.1rem; text-transform:uppercase; }
.gallery figcaption span { color:var(--muted); white-space:pre-line; }
.empty-gallery { padding:3rem; border:1px dashed #aaa; text-align:center; color:var(--muted); }
dialog { width:min(1100px,94vw); border:0; padding:0; background:#111; }
dialog::backdrop { background:#000d; }
dialog img { display:block; width:100%; max-height:78vh; object-fit:contain; }
.lightbox-caption { display:grid; gap:.25rem; padding:1rem 1.25rem; color:white; }
.lightbox-caption:has(strong:empty):has(span:empty) { display:none; }
.lightbox-caption span { color:#bbb; white-space:pre-line; }
dialog button { margin:0 1.25rem 1rem; border:1px solid #555; padding:.5rem .75rem; color:white; background:transparent; cursor:pointer; }
.site-footer { width:min(1180px,92%); margin:3rem auto 0; padding:2rem 0 3rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:2rem; color:var(--muted); font-size:.83rem; }
.footer-brand { margin-right:1rem; color:var(--ink); font:700 1.4rem 'Barlow Condensed'; text-decoration:none; text-transform:uppercase; }
.footer-links { display:flex; gap:1.5rem; }
.admin-page { min-height:100vh; background:#171717; }
.admin-shell { width:min(1400px,94%); margin:auto; padding:4rem 0; }
.admin-login { width:min(480px,100%); margin:8vh auto 0; padding:2.5rem; background:var(--paper); }
.admin-login h1,.admin-header h1 { margin:.4rem 0 1.5rem; font-size:clamp(3rem,7vw,5rem); }
.admin-form,.admin-caption { display:grid; gap:.65rem; }
.admin-form input,.admin-caption input,.admin-caption textarea,.admin-filter select { width:100%; border:1px solid var(--line); padding:.8rem; background:white; color:var(--ink); font:inherit; }
.admin-caption textarea { min-height:140px; resize:vertical; line-height:1.6; }
.admin-form .button,.admin-caption .button { border:0; cursor:pointer; justify-self:start; }
.admin-header { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; color:white; }
.admin-secondary { border:1px solid #666; padding:.7rem 1rem; color:white; background:transparent; cursor:pointer; }
.admin-filter { display:flex; align-items:center; gap:1rem; margin:1rem 0; padding:1rem; background:#262626; color:white; }
.admin-filter select { width:auto; min-width:180px; }
.admin-upload { margin:1rem 0; padding:1.25rem; display:flex; align-items:end; justify-content:space-between; gap:1.5rem; background:var(--paper); }
.admin-upload div { display:grid; flex:1; gap:.45rem; }
.admin-upload label { font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.admin-upload input[type=file] { width:100%; border:1px solid var(--line); padding:.75rem; background:white; }
.admin-upload small { color:var(--muted); }
.admin-upload .button { margin:0; border:0; cursor:pointer; }
.admin-count { color:#aaa; }
.admin-captions { display:grid; gap:1.25rem; }
.admin-caption { align-content:start; padding:1.5rem; background:var(--paper); }
.admin-caption h2 { margin:0 0 .5rem; font-size:1.8rem; text-transform:none; }
.admin-thumbnails { display:flex; gap:.75rem; padding:.5rem 0 1rem; overflow-x:auto; }
.admin-thumbnail { width:150px; max-width:150px; flex:0 0 150px; }
.admin-thumbnails a { display:block; width:100%; color:var(--ink); font-size:.7rem; line-height:1.3; text-decoration:none; }
.admin-thumbnails img { width:auto; max-width:150px; height:auto; max-height:150px; display:block; margin:0 auto .35rem; border:1px solid var(--line); object-fit:contain; background:#ddd; }
.admin-thumbnails a:hover img { border-color:var(--red); }
.admin-thumbnails span { display:block; overflow-wrap:anywhere; }
.admin-specific { width:100%; margin-top:.55rem; border:1px solid #777; padding:.45rem .6rem; color:var(--ink); background:transparent; font:600 .72rem Inter; cursor:pointer; }
.admin-specific:hover { border-color:var(--ink); background:#e3e0da; }
.admin-delete { width:100%; margin-top:.55rem; border:1px solid var(--red); padding:.45rem .6rem; color:var(--red); background:transparent; font:600 .72rem Inter; cursor:pointer; }
.admin-delete:hover { color:white; background:var(--red); }
.admin-no-image { margin:.25rem 0 1rem; color:var(--muted); font-size:.82rem; }
.admin-unassigned { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1rem; }
.admin-unassigned-item { display:grid; align-content:start; gap:.65rem; padding:1rem; background:var(--paper); }
.admin-unassigned-item a { height:150px; display:grid; place-items:center; }
.admin-unassigned-item img { width:auto; max-width:150px; height:auto; max-height:150px; object-fit:contain; }
.admin-unassigned-item label { font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.admin-unassigned-item input { width:100%; border:1px solid var(--line); padding:.7rem; font:inherit; }
.admin-unassigned-item .button { margin:0; border:0; justify-self:start; cursor:pointer; }
.admin-unassigned-actions { display:flex; align-items:stretch; gap:.5rem; }
.admin-unassigned-actions .button,.admin-unassigned-actions .admin-delete { width:auto; margin:0; }
.admin-caption label,.admin-form label { font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.admin-alert { padding:.9rem 1rem; background:white; }
.admin-alert-error { border-left:4px solid var(--red); }
.admin-alert-success { border-left:4px solid #27894a; }
@media (max-width:760px) { .header-inner{min-height:72px}.brand strong{font-size:1.5rem}.brand-mark{width:40px;height:40px}.menu-toggle{display:block}.main-navigation{position:absolute;left:0;right:0;top:100%;padding:1rem 4%;display:none;align-items:stretch;background:#171717}.main-navigation.is-open{display:grid}.dropdown-menu{position:static;box-shadow:none}.dropdown:hover .dropdown-menu{display:none}.dropdown:hover>button[aria-expanded=true]+.dropdown-menu{display:grid}.main-navigation a,.dropdown>button{display:block;width:100%;text-align:left}.hero{min-height:500px}.intro-grid{grid-template-columns:1fr;gap:1.5rem}.glossary{columns:1}.site-footer{flex-direction:column}.footer-links{flex-direction:column;gap:.5rem}.admin-upload{align-items:stretch;flex-direction:column} }
