/* GOV.UK-inspired: black/white, blue links, yellow focus. Contrast ≥ 4.5:1 throughout. */
:root{--input-border:#6f777b;--text:#0b0c0c;--muted:#505a5f;--link:#1d70b8;--link-visited:#4c2c92;--link-hover:#003078;--border:#b1b4b6;--bg:#fff;--panel:#f3f2f1;--focus:#fd0;--green:#00703c;--green-d:#005a30;--field:#fff;--tag-bg:#e8f1f8;--tag-text:#144e81;--head:#0b0c0c;--head-text:#fff;color-scheme:light dark}
@media (prefers-color-scheme:dark){:root{--input-border:#8a9399;--text:#f3f2f1;--muted:#b6bcc0;--link:#6cb4f0;--link-visited:#b9a2e8;--link-hover:#a6d3f7;--border:#505a5f;--bg:#0b0c0c;--panel:#1d1f20;--green:#4cc481;--green-d:#7fd9a6;--field:#0b0c0c;--tag-bg:#1c3347;--tag-text:#a6d3f7;--head:#000;color-scheme:dark}}
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/atkinson-hyperlegible-latin-400-italic.woff2) format("woff2")}
*{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{margin:0;font:1.1875rem/1.5 "Atkinson Hyperlegible",Arial,sans-serif;color:var(--text);background:var(--bg)}
.wrap{max-width:70rem;margin:0 auto;padding:0 1rem}
a{color:var(--link)}a:visited{color:var(--link-visited)}a:hover{color:var(--link-hover)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid transparent;background:var(--focus);color:#0b0c0c;box-shadow:0 -2px var(--focus),0 4px #0b0c0c;text-decoration:none}
input:focus-visible,select:focus-visible{background:var(--field);color:var(--text);outline:3px solid var(--focus);box-shadow:inset 0 0 0 2px var(--text)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--focus);padding:.5rem 1rem;z-index:99;color:#0b0c0c}
.skip:focus-visible{left:0}
.site-header{background:var(--head);border-bottom:10px solid var(--link);color:#fff;padding:.75rem 0}
.site-header .wrap{display:flex;gap:1rem 2rem;align-items:baseline;flex-wrap:wrap}
.logo,.logo:visited,.logo:hover{color:#fff;font-weight:700;font-size:1.75rem;text-decoration:none}
.logo:focus-visible{color:#0b0c0c}
.site-header .sub{color:#e5e5e5;font-size:1rem}
.site-footer{margin-top:3rem;padding:1.5rem 0;background:var(--panel);border-top:1px solid var(--border);font-size:1rem}
.h1{font-size:2.25rem;line-height:1.1;margin:1.5rem 0 1.25rem}
.h2{font-size:1.5rem;margin:2rem 0 .75rem}
.lead{font-size:1.25rem;color:var(--muted);margin:1.5rem 0 0}
.notice{border-left:10px solid var(--link);padding:.75rem 1rem;background:var(--panel);margin:0 0 1.25rem}
.tools{background:var(--panel);padding:1rem;margin-bottom:1rem}
.field{margin-bottom:1rem}.field label,.field legend,legend{font-weight:700;display:block;margin-bottom:.25rem;padding:0}
fieldset{border:0;margin:0;padding:0;min-width:0}
.hint{color:var(--muted);font-size:1rem;margin-bottom:.35rem}
.input,.select{font:inherit;min-height:2.5rem;padding:.4rem .6rem;border:2px solid var(--text);border-radius:0;background:var(--field);color:var(--text);max-width:100%}
.big .input{width:100%}
.select{min-width:12rem;width:100%}
.row{display:flex;gap:1rem;align-items:end;flex-wrap:wrap}
.row .field{margin-bottom:0}.row .select{min-width:14rem}
.yrs{display:flex;gap:1rem}.yrs .input{width:8rem}
.filters{margin:.5rem 0 1rem;border-top:1px solid var(--border);padding-top:.5rem}
.filters summary{cursor:pointer;color:var(--link);font-weight:700;padding:.25rem}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1rem}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.1rem .75rem;max-height:18rem;overflow:auto;padding:.25rem}
.check{display:flex;align-items:flex-start;gap:.5rem;padding:.2rem 0}
.check input{width:1.4rem;height:1.4rem;margin:.1rem 0 0;flex:none;accent-color:var(--link)}
.check input:focus-visible{box-shadow:0 0 0 4px var(--focus);outline:3px solid var(--text);outline-offset:0}
.n{color:var(--muted);font-size:.9rem}
.button{display:inline-block;font:inherit;font-weight:700;background:var(--green);color:var(--bg);border:2px solid transparent;box-shadow:0 2px 0 var(--green-d);padding:.5rem 1rem;text-decoration:none;cursor:pointer;border-radius:0}
.button:visited{color:var(--bg)}.button:hover{background:var(--green-d);color:var(--bg)}
.button.secondary:visited{color:var(--text)}.button.secondary{background:var(--field);color:var(--text);box-shadow:0 2px 0 var(--border);border-color:var(--border)}
.button.secondary:hover{background:var(--panel);color:var(--text)}
.button:focus-visible{background:var(--focus);color:#0b0c0c;box-shadow:0 2px 0 #0b0c0c}
.count{font-weight:700;margin:1rem 0}
.grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:1.25rem}
.card{border:1px solid var(--border);background:var(--bg);content-visibility:auto;contain-intrinsic-size:auto 18rem}
.card[hidden]{display:none}
.card{position:relative;display:flex;flex-direction:column}
.card:hover{background:var(--panel)}
.card .t::after{content:"";position:absolute;inset:0}
.card .a a{position:relative;z-index:1}
.cv{display:block}
.card:focus-within{outline:3px solid var(--focus)}
.card img,.nocover{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#0b0c0c}
.nocover{background:radial-gradient(circle,#fd0 0 12%,#0b0c0c 13% 100%)}
.nocover.big{width:300px;max-width:100%}
.meta{display:block;padding:.6rem .75rem .8rem}
.meta>span{display:block}
.t{font-weight:700;line-height:1.25;text-decoration:underline;color:var(--link)}
.t:visited{color:var(--link-visited)}
.a{margin-top:.15rem;font-size:1rem}
.l{color:var(--muted);font-size:.9375rem;margin-top:.35rem}
.y{display:none}
.list{grid-template-columns:1fr;gap:.35rem}
.list .card{flex-direction:row;align-items:center;gap:1rem}
.list .cv{flex:none}
.list .card img,.list .nocover{width:3.5rem;height:3.5rem;flex:none}
.list .meta{display:grid;grid-template-columns:2fr 2fr 1.5fr 4rem;min-width:0;gap:1rem;flex:1;padding:.4rem 1rem .4rem 0;align-items:center}
.list .y{display:block;text-align:right;color:var(--muted)}
.list .meta .l{margin:0}.list .meta .a{margin:0}
.js .tools{display:block}.no-js .tools{display:none}
/* album page */
.detail{display:grid;grid-template-columns:300px 1fr;gap:2rem}
.cover{display:block;max-width:100%;height:auto;border:1px solid var(--border)}
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0 0 1rem}
.tag{display:inline-block;background:var(--tag-bg);color:var(--tag-text);padding:.15rem .6rem;text-decoration:none;font-weight:700;font-size:1rem}
.tag:visited{color:var(--tag-text)}
.kv{margin:0 0 1.25rem}.row-kv{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:.5rem 0;border-top:1px solid var(--border)}
.kv dt{font-weight:700}.kv dd{margin:0}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:.5rem .75rem .5rem 0;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.table thead th{border-bottom:2px solid var(--text)}
.table td:last-child{text-align:right;white-space:nowrap}
.table .by{color:var(--muted)}
.by.lead{margin:1.5rem 0 0}
.notes{white-space:pre-line;max-width:42rem}
.pager{display:flex;justify-content:space-between;margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--border)}
@media (max-width:48rem){
 body{font-size:1.0625rem}
 .h1{font-size:1.75rem}
 .fgrid,.detail{grid-template-columns:1fr}
 .grid{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.75rem}
 .list .meta{grid-template-columns:1fr;gap:.1rem}.list .l,.list .y{display:none}
 .row .select{min-width:0}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.card{border:2px solid CanvasText}}

.list .meta>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.row .button{min-height:2.5rem;padding-top:.4rem;padding-bottom:.4rem;line-height:normal;box-shadow:none}
.row .select{line-height:normal}
.row .select,.row .button{height:2.75rem;min-height:0}

/* softer controls (borders keep >= 3:1 contrast) */
.input,.select{border:1.5px solid var(--input-border);border-radius:.6rem;padding:.4rem .85rem;transition:border-color .15s,box-shadow .15s}
.input:hover,.select:hover{border-color:var(--text)}
.select{appearance:none;-webkit-appearance:none;padding-right:2.4rem;cursor:pointer;
 background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
 background-position:calc(100% - 1.25rem) 52%,calc(100% - .9rem) 52%;background-size:.38rem .38rem;background-repeat:no-repeat}
input[type=search]{-webkit-appearance:none;appearance:none}
input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:0;box-shadow:inset 0 0 0 1.5px var(--text);border-color:var(--text);border-radius:.6rem}
.tools{border-radius:1rem;padding:1.25rem 1.5rem}
.button{border-radius:.6rem;border:1.5px solid transparent;box-shadow:0 1px 2px rgba(0,0,0,.25);padding:.5rem 1.15rem;transition:background-color .15s,box-shadow .15s,transform .05s}
.button:active{transform:translateY(1px);box-shadow:none}
.button:focus-visible{border-radius:.6rem;box-shadow:0 0 0 3px #0b0c0c}
.button.secondary{border:1.5px solid var(--input-border);box-shadow:none}
.button.secondary:hover{border-color:var(--text)}
.row .button{box-shadow:none;border-radius:.6rem}
.tag{border-radius:999px;padding:.15rem .75rem}
.card{border-radius:.75rem;overflow:hidden}
.check input{border-radius:.3rem}
.filters summary{border-radius:.4rem}

/* back link: plain link with a chevron */
.back{display:inline-block;position:relative;margin:1.5rem 0 1.25rem;padding-left:1.1rem}
.back::before{content:"";position:absolute;left:.15rem;top:50%;width:.45rem;height:.45rem;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-50%) rotate(45deg)}
.pager a{display:inline-block;position:relative}
.pager .prev{padding-left:1.1rem}
.pager .next{padding-right:1.1rem}
.pager a::before{content:"";position:absolute;top:50%;width:.45rem;height:.45rem;border-left:2px solid currentColor;border-bottom:2px solid currentColor}
.pager .prev::before{left:.15rem;transform:translateY(-50%) rotate(45deg)}
.pager .next::before{right:.15rem;transform:translateY(-50%) rotate(-135deg)}

/* view switch above the results */
.listbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:1rem 0}
.listbar .count{margin:0}
.no-js .js-only{display:none}
.seg{display:inline-flex;border:1.5px solid var(--input-border);border-radius:.6rem;padding:0;margin:0;overflow:hidden;min-width:0}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg label{padding:.35rem 1rem;cursor:pointer;font-weight:700;border-left:1.5px solid var(--input-border);background:var(--field)}
.seg input:first-of-type+label{border-left:0}
.seg label:hover{background:var(--panel)}
.seg input:checked+label{background:var(--text);color:var(--bg)}
.seg input:focus-visible+label{outline:3px solid var(--focus);outline-offset:-3px;background:var(--focus);color:#0b0c0c}
/* records table */
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:.75rem}
.table-wrap:focus-visible{outline:3px solid var(--focus)}
.rt{min-width:62rem;font-size:1rem}
.rt thead th{position:sticky;top:0;background:var(--panel);white-space:nowrap;padding:.6rem .75rem;border-bottom:2px solid var(--text)}
.rt th,.rt td{padding:.4rem .75rem;vertical-align:middle}
.rt tbody tr:nth-child(even){background:var(--panel)}
.rt tbody tr:hover{background:color-mix(in srgb,var(--link) 14%,transparent)}
.rt tbody tr[hidden]{display:none}
.rt tbody th{font-weight:700;text-align:left}
.rt td:last-child,.rt td:nth-child(6){text-align:left;white-space:normal}
.rt td.c{width:3.5rem;padding:.25rem .5rem}
.rt td.c img,.rt td.c .nocover{width:2.75rem;height:2.75rem;border-radius:.25rem;display:block}
.rt thead button{font:inherit;font-weight:700;color:var(--link);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.rt thead th[aria-sort=ascending] button::after{content:" \25B2";font-size:.7em}
.rt thead th[aria-sort=descending] button::after{content:" \25BC";font-size:.7em}
.seg label{display:inline-flex;align-items:center;gap:.5rem}
.seg svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.seg svg rect{fill:none}
[hidden]{display:none!important}

/* main navigation */
.mainnav{margin-left:auto}
.mainnav ul{list-style:none;display:flex;gap:1.25rem;margin:0;padding:0}
.mainnav a,.mainnav a:visited{color:#fff;font-weight:700;text-decoration:none;padding:.15rem 0;border-bottom:3px solid transparent}
.mainnav a:hover{border-bottom-color:#fff}
.mainnav a[aria-current=page]{border-bottom-color:var(--link)}
.mainnav a:focus-visible{color:#0b0c0c}
.tools.ov{display:block;margin-bottom:1rem}.tools.ov .field{margin-bottom:.5rem}.tools.ov .count{margin:.25rem 0 0}
.rt.wide{min-width:40rem}
.rt.wide thead th{position:static}
.rt.wide td:last-child{text-align:left;white-space:normal}

/* toolbar: sort + icon-only view switch */
.lb-right{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.sortbox{display:flex;align-items:center;gap:.6rem}
.sortbox label{font-weight:700;white-space:nowrap}
.sortbox .select{width:auto;min-width:13rem;height:2.5rem}
.seg label{padding:.35rem .7rem;height:2.5rem}
.seg svg{width:1.3rem;height:1.3rem}
.factions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
/* pagination */
.pagination{margin:2rem 0 0}
.pagination ul{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;align-items:center;margin:0;padding:0}
.pagination button{font:inherit;font-weight:700;min-width:2.5rem;height:2.5rem;padding:0 .75rem;border:1.5px solid var(--input-border);border-radius:.6rem;background:var(--field);color:var(--text);cursor:pointer}
.pagination button:hover{border-color:var(--text);background:var(--panel)}
.pagination button[aria-current=page]{background:var(--text);color:var(--bg);border-color:var(--text);cursor:default}
.pagination button:focus-visible{background:var(--focus);color:#0b0c0c;outline:3px solid #0b0c0c}
.pagination .pg-gap{padding:0 .25rem;color:var(--muted)}
@media (max-width:48rem){.sortbox label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.sortbox .select{min-width:10rem}}
.linkbtn{font:inherit;background:none;border:0;color:var(--link);text-decoration:underline;cursor:pointer;padding:0 0 0 .5rem}
.linkbtn:focus-visible{background:var(--focus);color:#0b0c0c;outline:3px solid #0b0c0c}
.a a{color:var(--text)}
.a a:visited{color:var(--text)}
.card .a a:hover{color:var(--link)}
