:root { --ink:#15305b; --navy:#0d2548; --blue:#294a70; --gold:#ffab1f; --mist:#edf3f8; --line:#d7e0ea; --muted:#58677a; --shadow:0 10px 30px rgba(16,43,80,.12); font-family:"Open Sans",system-ui,sans-serif; color:var(--ink); background:#fff; }
* { box-sizing:border-box; }
body { margin:0; line-height:1.55; }
.skip-link { position:absolute; left:-999px; top:0; z-index:5; background:#fff; padding:.8rem; }
.skip-link:focus { left:1rem; }
.hero { background:radial-gradient(circle at 80% 20%,#3f668f 0,transparent 32%),var(--navy); color:#fff; padding:clamp(3.5rem,8vw,7rem) max(1.25rem,calc((100vw - 1120px)/2)); }
.hero h1 { font-family:Georgia,serif; font-size:clamp(2.7rem,7vw,5.4rem); line-height:1; margin:.3rem 0 1rem; }
.home-link { display:inline-flex; align-items:center; margin:.8rem 0 .2rem; color:#fff; font-weight:700; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.55); }
.home-link:hover,.home-link:focus-visible { color:#ffd27a; border-bottom-color:#ffd27a; outline:0; }
.eyebrow { text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; font-weight:800; margin:0 0 .5rem; }
.intro { max-width:43rem; margin:0; font-size:clamp(1.08rem,2vw,1.35rem); }
.status { display:inline-flex; gap:.55rem; align-items:center; margin:1.8rem 0 0; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:.45rem .85rem; font-size:.9rem; }
.status span { color:var(--gold); }
main { max-width:1120px; margin:0 auto; padding:2.25rem 1.25rem 4rem; }
.controls { border:1px solid var(--line); border-radius:1rem; padding:1.2rem; background:var(--mist); }
.search-label, legend { display:block; font-weight:750; margin-bottom:.45rem; }
input[type=search] { width:100%; border:1px solid #9aabba; border-radius:.55rem; padding:.82rem 1rem; font:inherit; color:var(--ink); background:#fff; }
.filter-row { display:flex; gap:2rem; flex-wrap:wrap; margin-top:1rem; }
fieldset { border:0; padding:0; margin:0; }
.chip-group { display:flex; gap:.45rem; flex-wrap:wrap; }
.chip { border:1px solid #aab9c7; border-radius:999px; padding:.38rem .78rem; background:#fff; color:var(--ink); cursor:pointer; font:inherit; font-size:.9rem; }
.chip:hover,.chip:focus-visible { border-color:var(--blue); outline:2px solid #b7ccdf; outline-offset:2px; }
.chip.is-active { background:var(--blue); border-color:var(--blue); color:#fff; }
.results { margin-top:3rem; }
.results-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
h2,h3 { font-family:Georgia,serif; }
h2 { margin:0; font-size:2rem; }.count,.metadata,.muted { color:var(--muted); }.count { margin:0 0 .2rem; }
.cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; }
.card { border:1px solid var(--line); border-radius:.9rem; overflow:hidden; background:#fff; box-shadow:0 1px 1px rgba(0,0,0,.02); }
.poster { position:relative; width:100%; aspect-ratio:16/9; padding:0; border:0; background:#d9e5ef; cursor:pointer; display:block; }.poster img { width:100%; height:100%; object-fit:cover; display:block; }.poster:focus-visible { outline:4px solid var(--gold); outline-offset:-4px; }
.play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; place-items:center; width:3.4rem; height:3.4rem; border-radius:50%; background:rgba(13,37,72,.9); color:#fff; padding-left:.18rem; }.duration { position:absolute; right:.5rem; bottom:.45rem; background:rgba(0,0,0,.8); color:#fff; padding:.1rem .35rem; border-radius:.2rem; font-size:.8rem; }
.card-copy { padding:1rem; }.card h3 { font-size:1.2rem; line-height:1.2; margin:.2rem 0 .55rem; }.card-copy p:not(.metadata) { margin:.2rem 0; color:var(--muted); }.metadata { font-size:.82rem; margin:0; font-weight:700; }.tags { display:flex; flex-wrap:wrap; gap:.35rem; list-style:none; padding:0; margin:1rem 0 0; }.tags li { font-size:.75rem; color:var(--blue); background:#e6eef6; padding:.17rem .45rem; border-radius:999px; }
.empty { padding:1rem; background:#fff5e5; border-left:4px solid var(--gold); }
dialog { width:min(900px,calc(100% - 2rem)); border:0; border-radius:1rem; box-shadow:var(--shadow); padding:1.5rem; color:var(--ink); }.dialog-close { float:right; border:0; background:transparent; color:var(--ink); font-size:2rem; line-height:1; cursor:pointer; }.embed { position:relative; aspect-ratio:16/9; background:#0b1b33; margin:1rem 0; }.embed iframe { width:100%; height:100%; border:0; position:absolute; }.muted { font-size:.9rem; }
dialog::backdrop { background:rgba(5,20,39,.72); }footer { background:var(--navy); color:#fff; padding:2rem max(1.25rem,calc((100vw - 1120px)/2)); font-size:.92rem; }footer p { max-width:62rem; margin:.3rem 0; } 
@media (max-width:780px) { .cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px) { .hero { padding-top:3.2rem; }.cards { grid-template-columns:1fr; }.filter-row { gap:1rem; }.results-heading { align-items:start; flex-direction:column; }.card-copy { padding:1.05rem; } }
