:root { --ink:#10212b; --muted:#5d6d75; --paper:#f7f5ef; --card:#fff; --line:#d8ddd9; --navy:#082f5b; --teal:#159ca0; --red:#ff5548; --coral:#ff5548; --gold:#159ca0; --green:#248262; --shadow:0 18px 55px rgba(16,33,43,.10); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.55; }
a { color:inherit; }
.story-author { display:flex; align-items:center; gap:1rem; margin:1.25rem 0 2rem; }
.story-author img { width:72px; height:72px; object-fit:cover; border-radius:50%; border:3px solid var(--teal); }
.story-author strong,.story-author span,.story-author time { display:block; }
.story-author span,.story-author time { color:var(--muted); font-size:.88rem; }
.news-story { max-width:920px; }
.news-story > p:not(.breadcrumb):not(.eyebrow) { font-family:Georgia,serif; font-size:1.1rem; line-height:1.8; }
.story-method { margin:2rem 0; padding:1.2rem; border-left:4px solid var(--teal); background:#fff; }
button,input { font:inherit; }
.skip-link { position:absolute; left:-999px; top:1rem; background:#fff; padding:.7rem 1rem; z-index:10; }
.skip-link:focus { left:1rem; }
.site-header { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1rem clamp(1.2rem,5vw,5.5rem); background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; }
.brand { display:flex; align-items:center; gap:.8rem; text-decoration:none; }
.brand-logo { width:52px; height:52px; border-radius:50%; display:block; object-fit:cover; box-shadow:0 2px 8px rgba(4,35,56,.18); }
.brand strong,.brand small { display:block; }
.brand strong { font-family:Georgia,serif; font-size:1.15rem; }
.brand small { color:var(--muted); font-size:.72rem; letter-spacing:.04em; }
.site-header nav,.section-tabs { display:flex; gap:1.3rem; }
.site-header nav a,.section-tabs a { text-decoration:none; font-size:.92rem; font-weight:700; }
.hero { padding:clamp(4rem,8vw,8rem) clamp(1.2rem,8vw,9rem) 4rem; background:linear-gradient(135deg,#0d2938 0%,#173f50 68%,#204d55 100%); color:#fff; position:relative; overflow:hidden; }
.hero:after { content:""; position:absolute; width:420px; height:420px; border:80px solid rgba(255,255,255,.035); border-radius:50%; right:-110px; top:-110px; }
.hero h1,.state-hero h1,.county-hero h1,.simple-page h1 { max-width:900px; margin:.25rem 0 1rem; font:700 clamp(2.5rem,6vw,5rem)/1.02 Georgia,serif; letter-spacing:-.04em; }
.hero > p:not(.eyebrow) { max-width:720px; font-size:1.15rem; color:#d5e2e6; }
.eyebrow { margin:0 0 .5rem; color:var(--red); text-transform:uppercase; letter-spacing:.16em; font-weight:900; font-size:.75rem; }
.hero .eyebrow,.county-hero .eyebrow { color:#f3c66e; }
.search-box { display:block; max-width:620px; margin-top:2rem; }
.search-box span { display:block; font-weight:800; font-size:.78rem; margin-bottom:.45rem; text-transform:uppercase; letter-spacing:.08em; }
.search-box input { width:100%; border:1px solid rgba(255,255,255,.25); border-radius:12px; padding:1rem 1.1rem; background:#fff; color:var(--ink); box-shadow:var(--shadow); }
.location-results { max-width:620px; margin-top:.55rem; border-radius:12px; overflow:hidden; background:#fff; color:var(--ink); box-shadow:var(--shadow); }
.location-results:empty { display:none; }
.location-results a { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 1rem; border-bottom:1px solid var(--line); text-decoration:none; }
.location-results a:hover,.location-results a:focus-visible { background:#edf2ef; outline:none; }
.location-results span,.location-results p { color:var(--muted); font-size:.78rem; }
.location-results p { margin:0; padding:.8rem 1rem; }
.map-shell,.county-browser,.content-section,.sources,.simple-page { padding:clamp(3rem,6vw,6rem) clamp(1.2rem,6vw,7rem); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:1.6rem; }
.section-heading h2,.sources h2 { margin:0; font:700 clamp(1.8rem,3.5vw,3rem)/1.08 Georgia,serif; }
.status-key,.legal-note { color:var(--muted); font-size:.82rem; }
.data-status { margin:-.45rem 0 1.2rem; color:var(--green); font-size:.82rem; font-weight:800; }
.data-status.sample { color:#8a6424; }
.status-key i,.update-card i { width:9px; height:9px; background:var(--green); display:inline-block; border-radius:50%; margin-right:.35rem; }
.map-shell { width:100%; max-width:100%; overflow-x:hidden; padding-top:clamp(1.5rem,3vw,3rem); }
.map-shell .section-heading { min-width:0; flex-wrap:wrap; }
.usa-map-frame { width:min(1240px,100%); max-width:100%; margin:0 auto; padding:1rem; overflow:hidden; border-radius:22px; background:#1694cc; box-shadow:var(--shadow); }
.usa-map { display:block; width:100%; height:auto; max-height:560px; margin:0 auto; border:1px solid rgba(255,255,255,.24); border-radius:15px; background:#1694cc; }
.state-shape path { fill:#b94a43; stroke:#173947; stroke-width:1.25; vector-effect:non-scaling-stroke; transition:fill .16s ease,filter .16s ease,opacity .16s ease; cursor:pointer; }
.state-shape:hover path,.state-shape:focus-visible path { fill:#dfa94a; filter:drop-shadow(0 3px 3px rgba(0,0,0,.35)); outline:none; }
.state-shape:focus-visible { outline:none; }
.state-shape.active path { fill:var(--red); }
.state-shape.search-muted path { opacity:.18; }
.county-link:hover,.county-link:focus-visible { transform:translateY(-2px); border-color:var(--red); box-shadow:0 8px 22px rgba(16,33,43,.1); outline:none; }
.county-link.active { background:var(--red); color:#fff; border-color:var(--red); }
.county-link.active small { color:#fff; }
.map-note { color:var(--muted); font-size:.87rem; margin-top:1.2rem; }
.state-directory { margin-top:1.2rem; border-top:1px solid var(--line); padding-top:1rem; }
.state-directory summary { cursor:pointer; color:var(--navy); font-weight:800; }
.state-directory div { display:flex; flex-wrap:wrap; gap:.55rem; padding-top:1rem; }
.state-directory a { padding:.35rem .65rem; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--muted); text-decoration:none; font-size:.76rem; }
.state-directory a:hover,.state-directory a:focus-visible { color:var(--red); border-color:var(--red); outline:none; }
.state-county-map { width:100%; max-width:100%; overflow-x:hidden; padding:clamp(1.5rem,3vw,3rem) clamp(1.2rem,6vw,7rem); background:#fff; }
.state-county-map .section-heading { min-width:0; flex-wrap:wrap; }
.state-county-map .map-status-keys { min-width:0; justify-content:flex-end; }
.florida-map-frame { width:min(680px,100%); max-width:100%; margin:0 auto; padding:1rem; overflow:hidden; border-radius:22px; background:#1694cc; box-shadow:var(--shadow); }
.florida-map { display:block; width:100%; height:auto; max-height:560px; margin:0 auto; }
.florida-map:not(.alaska-map) g[role="list"] { transform-box:fill-box; transform-origin:center; transform:rotate(5.8deg) scale(.91); }
.florida-county-shape path { fill:#f9f7f1; stroke:#173947; stroke-width:1; vector-effect:non-scaling-stroke; cursor:pointer; transition:fill .16s ease,filter .16s ease,opacity .16s ease; }
.florida-county-shape:hover path,.florida-county-shape:focus-visible path { fill:var(--gold); filter:drop-shadow(0 2px 2px rgba(0,0,0,.4)); }
.florida-county-shape:focus-visible { outline:none; }
.florida-county-shape.working path { fill:var(--red); }
.florida-county-shape.issue path { fill:url(#florida-issue-stripes); }
.florida-county-shape.incomplete path { fill:#2f6fbd; }
.florida-county-shape.working:hover path,.florida-county-shape.working:focus-visible path { fill:#ff766c; }
.florida-county-shape.issue:hover path,.florida-county-shape.issue:focus-visible path { fill:url(#florida-issue-stripes); filter:brightness(1.18) drop-shadow(0 2px 2px rgba(0,0,0,.4)); }
.florida-county-shape.incomplete:hover path,.florida-county-shape.incomplete:focus-visible path { fill:#4f8ed8; }
.map-status-keys { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.status-key.working-key i { background:var(--red); }
.status-key.issue-key i { background:repeating-linear-gradient(135deg,#ff5548 0 4px,#2f6fbd 4px 8px); }
.status-key.incomplete-key i { background:#2f6fbd; }
.florida-county-shape[hidden] path { opacity:.12; }
.state-hero { min-height:420px; display:grid; grid-template-columns:1.5fr .8fr; align-items:center; gap:4rem; padding:4rem clamp(1.2rem,7vw,8rem); background:#e7ece7; }
.breadcrumb { color:var(--muted); font-size:.85rem; }
.breadcrumb a { color:var(--red); }
.county-browser .search-box { margin:0; min-width:min(360px,100%); }
.county-browser .search-box span { color:var(--muted); }
.county-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.7rem; }
.county-link { display:flex; justify-content:space-between; align-items:center; gap:1rem; min-height:68px; padding:.85rem 1rem; background:#fff; border:1px solid var(--line); border-radius:10px; text-decoration:none; transition:.18s ease; }
.county-link span { font-weight:800; }
.county-link small { color:var(--muted); text-align:right; }
.county-hero { padding:3rem clamp(1.2rem,6vw,7rem) 0; background:var(--navy); color:#fff; }
.county-title-row { display:flex; justify-content:space-between; gap:3rem; align-items:center; }
.county-title-row > div:first-child { max-width:800px; }
.county-title-row p { color:#d6e2e6; }
.update-card { min-width:260px; padding:1.2rem; border:1px solid rgba(255,255,255,.2); border-radius:12px; background:rgba(255,255,255,.06); }
.update-card span,.update-card strong,.update-card small { display:block; }
.update-card span,.update-card small { color:#b9cbd1; font-size:.76rem; }
.update-card strong { margin:.35rem 0; }
.section-tabs { margin-top:2.5rem; border-top:1px solid rgba(255,255,255,.15); padding:1.1rem 0; overflow:auto; }
.content-section { background:#fff; }
.content-section.soft { background:#eceeea; }
.news-grid { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:1rem; }
.news-card { background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.booking-card{width:100%;max-width:260px;justify-self:center;display:flex;flex-direction:column;overflow:hidden;background:#090d12;color:#fff;border:2px solid var(--teal);border-radius:2px;box-shadow:0 10px 28px rgba(8,47,91,.16)}
.news-card { padding:1.4rem; display:flex; min-height:255px; flex-direction:column; }
.news-card-graphic-frame{position:relative;display:block;width:calc(100% + 2.8rem);max-width:none;margin:-1.4rem -1.4rem 1.2rem;overflow:hidden;border-bottom:3px solid #f4b400;background:#063743}
.news-card-graphic-frame .news-card-graphic{display:block;width:100%;height:auto;max-width:none;margin:0;object-fit:contain;border:0;background:#063743}
.news-card-county-label{position:absolute;z-index:2;left:16%;top:15%;display:block;min-width:27%;padding:.18rem .35rem .18rem 0;background:#122231;color:#66518d;font:800 .72rem/1.05 Arial,sans-serif;letter-spacing:.045em;text-transform:uppercase}
.news-story-hero{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:16px;margin:20px 0 28px;border:1px solid rgba(244,180,0,.55);box-shadow:0 18px 48px rgba(0,0,0,.38)}
.news-card:first-child { background:var(--navy); color:#fff; }
.news-card h3 { font:700 1.45rem/1.15 Georgia,serif; margin:.8rem 0; }
.news-card p { color:var(--muted); }
.news-card:first-child p,.news-card:first-child footer { color:#c8d8dd; }
.news-card footer { display:flex; justify-content:space-between; gap:1rem; margin-top:auto; color:var(--muted); font-size:.72rem; }
.tag { display:inline-block; align-self:flex-start; color:var(--red); font-size:.67rem; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.text-button,.record-button { border:0; background:none; color:var(--red); font-weight:800; cursor:pointer; }
.booking-grid{display:grid;grid-template-columns:repeat(6,minmax(0,260px));justify-content:center;align-items:start;gap:1rem}
.more-arrests{display:flex;justify-content:center;margin:1.5rem 0 .5rem}.more-arrests .button{min-width:190px;text-align:center}
.archive-cta{margin:1.5rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border:1px solid var(--line);border-radius:14px;background:#fff}.archive-cta div{display:grid;gap:.25rem}.archive-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:1.5rem}.archive-filters label{display:grid;gap:.35rem;font-weight:700}.archive-filters input,.archive-filters select{padding:.8rem;border:1px solid var(--line);border-radius:8px;background:#fff}.archive-filters .button{align-self:end}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin:2rem 0}.pagination button{padding:.7rem 1rem;border:1px solid var(--line);border-radius:8px;background:#fff}.pagination button:disabled{opacity:.45}.record-layout{display:grid;grid-template-columns:minmax(240px,380px) 1fr;gap:2rem;align-items:start}.record-photo{width:100%;border-radius:14px;background:#162331}.record-page{max-width:1050px}
.photo-placeholder{min-height:300px;display:grid;place-items:center;background:#13283d;color:#91a6b5;text-transform:uppercase;letter-spacing:.12em;font-size:.62rem}
.booking-photo-link{display:block;color:inherit;text-decoration:none}.booking-photo-frame{position:relative;margin:5px 5px 0;border:1px solid var(--teal);background:#13283d;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease}.booking-photo{width:100%;aspect-ratio:4/5;display:block;object-fit:cover;object-position:center top;background:#13283d;transition:filter .18s ease,transform .18s ease}
.booking-card.county-12061 .booking-photo{object-fit:contain;object-position:center center}.photo-open-prompt{position:absolute;z-index:3;left:50%;bottom:10px;transform:translate(-50%,8px);padding:.38rem .55rem;border:1px solid rgba(255,255,255,.85);border-radius:3px;background:rgba(8,47,91,.9);color:#fff;font-size:.55rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;opacity:0;transition:opacity .18s ease,transform .18s ease}.booking-photo-link:hover .booking-photo-frame,.booking-photo-link:focus-visible .booking-photo-frame{border-color:var(--coral);box-shadow:0 0 0 1px var(--coral)}.booking-photo-link:hover .booking-photo,.booking-photo-link:focus-visible .booking-photo{filter:brightness(.78);transform:scale(1.01)}.booking-photo-link:hover .photo-open-prompt,.booking-photo-link:focus-visible .photo-open-prompt{opacity:1;transform:translate(-50%,0)}.booking-photo-link:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
.photo-watermark{position:absolute;z-index:2;top:7px;right:7px;width:16%;max-width:48px;display:grid;justify-items:center;opacity:.28;color:#fff;text-align:center;text-shadow:0 1px 2px #001}.photo-watermark img{width:100%;height:auto;display:block}.photo-watermark strong,.photo-watermark small{display:none}
.booking-copy{display:flex;min-height:0;flex-direction:column;align-items:center;padding:.24rem .38rem .2rem;text-align:center}.booking-copy h3{margin:0;color:var(--teal);font:900 .84rem/.96 Georgia,serif;text-transform:uppercase}.booking-copy .primary-charge{margin:.08rem 0 0;color:var(--coral);font-size:.57rem;line-height:1;font-weight:900;text-transform:uppercase}.booking-copy .booking-date{margin:.12rem 0 0;color:#b8c6cf;font-size:.47rem;line-height:1;font-weight:700;letter-spacing:.03em}.booking-copy .card-disclaimer{margin:.12rem 0 0;color:#8296a5;font-size:.39rem;line-height:1.02;text-transform:uppercase}.record-button{display:none}.record-visual-card{max-width:300px}.record-visual-card .booking-photo-frame{margin:5px}.record-visual-card .booking-copy{min-height:0}
.disclaimer { margin-top:1.2rem; padding:1rem 1.2rem; background:#fff7e7; border-left:4px solid var(--gold); font-size:.84rem; }
.simple-page { min-height:65vh; max-width:1000px; }
.simple-page p { max-width:720px; color:var(--muted); font-size:1.1rem; }
.policy-page h2{margin:2.2rem 0 .55rem;color:var(--navy);font:800 1.5rem/1.2 Georgia,serif}.policy-updated{font-size:.9rem!important}.policy-notice{max-width:760px;margin:1.5rem 0;padding:1.1rem 1.25rem;border-left:4px solid var(--coral);background:#fff7e7}.policy-notice p{margin:.4rem 0 0;font-size:1rem}.request-form small{font-weight:400;color:var(--muted)}
.resource-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:820px;margin:1.2rem 0}.resource-link-grid a{display:block;padding:15px 17px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);font-weight:800;text-decoration:none}.resource-link-grid a:hover,.resource-link-grid a:focus-visible{border-color:var(--teal)}
.request-form { display:grid; gap:18px; margin:32px 0; padding:24px; background:#fff; border:1px solid var(--line); border-radius:18px; }
.request-form label { display:grid; gap:7px; font-weight:700; color:var(--navy); }
.request-form input,.request-form select,.request-form textarea { width:100%; box-sizing:border-box; padding:12px 14px; border:1px solid #b9c3cf; border-radius:9px; background:#fff; color:var(--ink); font:inherit; }
.request-form textarea { resize:vertical; }
.request-form .button { border:0; cursor:pointer; justify-self:start; }
.button { display:inline-block; margin-top:1rem; padding:.85rem 1.1rem; border-radius:9px; background:var(--red); color:#fff; text-decoration:none; font-weight:800; }
body > footer { display:grid; grid-template-columns:1.2fr .8fr 1fr; gap:3rem; padding:3rem clamp(1.2rem,6vw,7rem); color:#c4d2d6; background:#081c26; font-size:.9rem; }
body > footer p { margin:.65rem 0 0; max-width:420px; }
.footer-brand>strong{display:block;color:#fff;font:800 1.6rem/1.1 Georgia,serif}.footer-links{display:grid;align-content:start}.footer-links h2{margin:0 0 .45rem;color:var(--gold);font-size:1rem;text-transform:uppercase;letter-spacing:.09em}.footer-links a{padding:.75rem 0;border-bottom:1px solid rgba(255,197,61,.35);color:#fff;text-decoration:none;font-size:1rem}.footer-links a:hover,.footer-links a:focus-visible{color:var(--gold)}body > footer .footer-request{font-size:1rem;color:#fff}
.miami-footer-resources{display:grid;grid-template-columns:repeat(5,minmax(78px,112px));align-items:start;gap:.8rem;margin-top:1.35rem}.miami-footer-resources[hidden]{display:none}.miami-resource-link{display:grid;gap:.42rem;justify-items:center;color:#fff;text-align:center;text-decoration:none}.miami-resource-image{display:grid;place-items:center;width:72px;height:72px;overflow:hidden;border:2px solid #10b8c7;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.24);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.miami-resource-image img{display:block;width:100%;height:100%;object-fit:cover}.miami-resource-name{font-size:.69rem;line-height:1.2;font-weight:800}.miami-resource-link:hover .miami-resource-image,.miami-resource-link:focus-visible .miami-resource-image{transform:translateY(-3px);border-color:#f3c66e;box-shadow:0 9px 22px rgba(0,0,0,.32)}.miami-resource-link:focus-visible{outline:2px solid #f3c66e;outline-offset:4px;border-radius:5px}.miami-resource-link.crime-stoppers .miami-resource-image{border-color:#ff574d}
.miami-scanner-player{display:none}.miami-alerts{display:grid;grid-template-columns:minmax(230px,.3fr) minmax(0,1fr);align-items:center;gap:1.5rem;padding:1.35rem clamp(1.2rem,6vw,7rem);background:#0d3445;color:#fff;overflow:hidden}.miami-alerts h2{margin:0;font:800 1.3rem Georgia,serif}.scanner-alert-heading time{display:block;margin-top:.35rem;color:#a8ced8;font-size:.7rem}.scanner-live-badge{display:inline-block;margin-right:.45rem;padding:.12rem .42rem;border-radius:999px;background:#df332b;color:#fff;letter-spacing:.08em}.scanner-alert-feed{display:flex;gap:.8rem;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:thin;padding:.2rem 0 .45rem}.scanner-alert-feed>p{align-self:center;white-space:nowrap}.scanner-alert-card{flex:0 0 clamp(330px,38vw,560px);display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.075);color:#fff;text-decoration:none}.scanner-alert-card strong{text-transform:capitalize;color:#62dbe4;white-space:nowrap}.scanner-alert-card span{font-size:.75rem;white-space:nowrap}.scanner-alert-card small{margin-left:auto;padding:.22rem .48rem;border-radius:6px;background:#dbe9f4;color:#183344;font-size:.62rem;font-weight:900;white-space:nowrap}.scanner-compact-disclaimer{max-width:1050px;margin:2rem auto 0;padding-top:1rem;border-top:1px solid #cdd4cf;color:#657078;font-size:.72rem;line-height:1.45}
[hidden] { display:none !important; }
@media (max-width:980px) { .county-grid{grid-template-columns:repeat(3,1fr)} .booking-grid{grid-template-columns:repeat(2,1fr)} .archive-filters{grid-template-columns:repeat(2,1fr)} .record-layout{grid-template-columns:1fr}.news-grid{grid-template-columns:1fr 1fr}.news-card:first-child{grid-column:1/-1}.state-hero{grid-template-columns:1fr} }
@media (max-width:650px) { .miami-footer-resources{grid-template-columns:repeat(3,minmax(78px,1fr))}.archive-filters{grid-template-columns:1fr}.archive-cta{align-items:flex-start;flex-direction:column}.site-header{align-items:flex-start}.site-header nav{display:none}.brand small{display:none}.hero{padding-top:4rem}.usa-map-frame,.florida-map-frame{margin-inline:-1.2rem;border-radius:0;padding:.45rem}.usa-map{border-radius:8px}.section-heading,.county-title-row{align-items:flex-start;flex-direction:column}.county-browser .search-box{width:100%}.county-grid,.booking-grid,.news-grid,.resource-link-grid{grid-template-columns:1fr}.county-link{min-height:60px}.section-tabs{gap:1rem}body > footer{grid-template-columns:1fr}.miami-alerts{grid-template-columns:1fr;gap:.65rem}.scanner-alert-card{flex-basis:88vw;display:grid;gap:.25rem}.scanner-alert-card small{margin-left:0;justify-self:start} }

.news-card-link{color:inherit;text-decoration:none;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.news-card-link:hover,.news-card-link:focus-visible{transform:translateY(-3px);border-color:var(--teal);box-shadow:0 12px 30px rgba(8,47,91,.16);outline:none}
.news-card-link:focus-visible{box-shadow:0 0 0 3px rgba(21,156,160,.28),0 12px 30px rgba(8,47,91,.16)}
.news-read-prompt{display:inline-block;margin-top:.8rem;color:var(--red);font-size:.74rem;font-weight:900}
.news-card:first-child .news-read-prompt{color:#fff}

.resource-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}
.resource-link-grid a{display:flex;flex-direction:column;gap:.45rem;padding:1.15rem;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-decoration:none}
.resource-link-grid a:hover,.resource-link-grid a:focus-visible{border-color:var(--red);box-shadow:0 10px 28px rgba(9,43,58,.1)}
.resource-link-grid span{color:var(--red);font-size:.78rem;font-weight:900}
.news-archive{max-width:1200px}
.news-archive .news-grid{margin-top:2rem}

/* Independent county news crawls intentionally reuse the verified Miami ticker layout. */


/* Per-arrest public comment feed */
.record-page{max-width:1500px}
.record-page-grid{display:grid;grid-template-columns:minmax(250px,330px) minmax(260px,1fr) minmax(340px,1.15fr);gap:1.5rem;align-items:start}
.record-arrest-column,.record-charge-column,.comment-feed{min-width:0}
.record-charge-column{padding:1rem 1.15rem;border:1px solid var(--line);border-radius:16px;background:#fff}
.comment-feed{padding:1rem;border:1px solid var(--line);border-radius:16px;background:#f7f8fa;max-height:760px;overflow:auto}
.comment-feed-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.85rem}
.comment-feed-heading h2,.comment-feed-heading .eyebrow{margin:0}
.comment-count{display:grid;place-items:center;min-width:2rem;height:2rem;padding:0 .55rem;border-radius:999px;background:var(--gold);color:#111;font-weight:800}
.comment-form{display:grid;gap:.7rem;padding:.85rem;margin-bottom:1rem;border:1px solid var(--line);border-radius:14px;background:#fff}
.comment-form label{display:grid;gap:.35rem;font-weight:700}
.comment-form label span,.comment-form small{font-weight:400;color:var(--muted)}
.comment-form input,.comment-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;font:inherit;background:#fff;color:inherit}
.comment-form textarea{resize:vertical}
.comment-form-footer{display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.comment-form-footer .button{flex:0 0 auto}
.comment-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.comment-list{display:grid;gap:.75rem}
.comment-item{display:flex;align-items:flex-start;gap:.65rem}
.comment-avatar{display:grid;place-items:center;flex:0 0 2.2rem;width:2.2rem;height:2.2rem;border-radius:50%;background:#111;color:var(--gold);font-weight:900}
.comment-bubble{flex:1;min-width:0;padding:.7rem .8rem;border:1px solid var(--line);border-radius:4px 14px 14px 14px;background:#fff}
.comment-meta{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem}
.comment-meta time{font-size:.75rem;color:var(--muted);white-space:nowrap}
.comment-bubble p{margin:.35rem 0 0;overflow-wrap:anywhere;white-space:pre-wrap}
.comment-empty{padding:1rem;text-align:center;color:var(--muted)}
#comment-status{margin:0}
@media (max-width:1100px){.record-page-grid{grid-template-columns:minmax(250px,330px) 1fr}.comment-feed{grid-column:2}}
@media (max-width:720px){.record-page-grid{grid-template-columns:1fr}.comment-feed{grid-column:auto;max-height:none}.comment-form-footer,.comment-meta{align-items:flex-start;flex-direction:column}.comment-meta time{white-space:normal}}

/* Keep stale fallback map colors from flashing before live status hydration. */
.map-status-loading .state-county-map { visibility: hidden; }


.broward-story-graphic{position:relative;display:flex;flex-direction:column;align-items:flex-start;box-sizing:border-box;padding:clamp(.65rem,2vw,1.05rem);overflow:hidden;color:#fff;background:repeating-linear-gradient(112deg,#071f2d 0,#071f2d 12%,#102b3e 12%,#102b3e 24%);border-bottom:3px solid #f4b400}
.broward-story-graphic::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 56%,transparent 0 12%,rgba(30,78,107,.38) 12.5% 13%,transparent 13.5% 20%,rgba(30,78,107,.3) 20.5% 21%,transparent 21.5% 28%,rgba(30,78,107,.24) 28.5% 29%,transparent 29.5%);pointer-events:none}
.broward-story-graphic::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:#4e5ec4}
.broward-graphic-brand,.broward-graphic-rule,.broward-graphic-label,.broward-graphic-title,.broward-graphic-tagline{position:relative;z-index:1}
.broward-graphic-brand{display:flex;align-items:center;gap:.55rem}
.broward-graphic-brand img{width:clamp(38px,6vw,54px);height:clamp(38px,6vw,54px);border-radius:50%}
.broward-graphic-brand span{display:flex;flex-direction:column;line-height:1}
.broward-graphic-brand strong{font:800 clamp(.68rem,1.7vw,1rem)/1 Arial,sans-serif;letter-spacing:.025em}
.broward-graphic-brand small{margin-top:.25rem;color:#7657c8;font:800 clamp(.48rem,1.15vw,.68rem)/1 Arial,sans-serif}
.broward-graphic-rule{width:100%;height:1px;margin:.65rem 0;background:rgba(255,255,255,.38)}
.broward-graphic-label{display:inline-block;max-width:60%;padding:.38rem .72rem;border-radius:6px;background:#515db8;font:800 clamp(.5rem,1.2vw,.7rem)/1 Arial,sans-serif}
.broward-graphic-title{display:-webkit-box;margin:.48rem 0 0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-transform:uppercase;text-shadow:0 2px 0 #000;font:900 clamp(.8rem,2.25vw,1.42rem)/1.03 Arial,sans-serif;letter-spacing:.01em}
.broward-graphic-tagline{margin-top:auto;padding-bottom:.35rem;font:500 clamp(.42rem,.92vw,.58rem)/1.15 Arial,sans-serif}

/* Florida state map deck: county status, statewide traffic cams, reserved local incident/camera map */
.state-map-deck { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; padding:clamp(1.5rem,3vw,3rem) clamp(1.2rem,4vw,4rem); background:#fff; align-items:start; }
.state-map-deck > .state-county-map { padding:0; min-width:0; }
.state-map-deck .section-heading { min-height:82px; }
.state-map-deck .florida-map-frame { width:100%; margin:0; }
.traffic-map-frame { width:100%; aspect-ratio:1.15/1; min-height:360px; overflow:hidden; border-radius:22px; background:#1694cc; box-shadow:var(--shadow); }
.traffic-map-frame iframe { display:block; width:100%; height:100%; min-height:360px; border:0; background:#fff; }
.future-map-placeholder { width:100%; aspect-ratio:1.15/1; min-height:360px; display:grid; place-items:center; border:2px dashed #aeb8c2; border-radius:22px; background:#f6f8fa; box-shadow:var(--shadow); text-align:center; padding:2rem; }
.future-map-placeholder div { display:grid; gap:.65rem; max-width:280px; }
.future-map-placeholder strong { font-family:Georgia,serif; font-size:1.45rem; color:#08263a; }
.future-map-placeholder span { color:#5d6973; line-height:1.45; }
@media (max-width:1180px) { .state-map-deck { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .state-map-deck { grid-template-columns:1fr; padding:1.25rem 1.2rem; } .state-map-deck .section-heading { min-height:0; } .traffic-map-frame,.future-map-placeholder { min-height:320px; } .traffic-map-frame iframe { min-height:320px; } }

/* Align Florida county and traffic maps while preserving an empty third-map slot. */
.state-map-deck > .state-county-map { display:grid; grid-template-rows:135px 1fr auto auto; align-content:start; }
.state-map-deck .florida-map-frame,
.state-map-deck .traffic-map-frame { height:512px; min-height:512px; aspect-ratio:auto; }
.state-map-deck .florida-map-frame { display:flex; align-items:center; justify-content:center; }
.state-map-deck .florida-map { width:100%; height:100%; }
.state-map-deck .traffic-map-frame iframe { height:100%; min-height:0; }
.state-map-reserved { min-width:0; min-height:1px; }
@media (max-width:1180px) { .state-map-deck > .state-county-map { grid-template-rows:120px 1fr auto auto; } }
@media (max-width:760px) { .state-map-deck > .state-county-map { grid-template-rows:auto auto auto auto; } .state-map-deck .florida-map-frame,.state-map-deck .traffic-map-frame { height:360px; min-height:360px; } }

/* Combined local-camera / incident map: local-camera layer first. */
.state-local-camera-map .section-heading { min-height:135px; }
.local-camera-map-frame { width:100%; height:512px; min-height:512px; overflow:hidden; border-radius:22px; background:#eef3f6; box-shadow:var(--shadow); display:flex; align-items:center; justify-content:center; padding:1rem; }
.local-camera-map { width:100%; height:100%; }
.local-camera-county path { stroke:#12384d; stroke-width:.8; vector-effect:non-scaling-stroke; }
.local-camera-county.pending path { fill:#cfd9df; }
.local-camera-county.available path { fill:#28a36a; cursor:pointer; }
.local-camera-county.available:hover path,.local-camera-county.available:focus path { fill:#168653; }
.local-camera-legend { display:flex; flex-wrap:wrap; gap:1rem; margin:.8rem 0 .65rem; font-size:.82rem; font-weight:700; color:#33434d; }
.local-camera-legend span { display:inline-flex; align-items:center; gap:.4rem; }
.local-camera-legend i { width:12px; height:12px; border-radius:3px; display:inline-block; border:1px solid #24485a; }
.camera-live-key { background:#28a36a; }
.camera-pending-key { background:#cfd9df; }
.local-camera-links { display:grid; gap:.45rem; margin-top:.7rem; }
.local-camera-links a { display:flex; justify-content:space-between; gap:.75rem; padding:.55rem .65rem; border:1px solid #d9e1e6; border-radius:8px; text-decoration:none; color:#08263a; background:#fff; }
.local-camera-links a span { color:#65727b; font-size:.78rem; text-align:right; }
@media (max-width:1180px) { .state-local-camera-map .section-heading { min-height:120px; } }
@media (max-width:760px) { .state-local-camera-map .section-heading { min-height:0; } .local-camera-map-frame { height:360px; min-height:360px; } .local-camera-links a { flex-direction:column; } .local-camera-links a span { text-align:left; } }

/* Local camera/incident map: all counties green, coverage shown by shade. */
.local-camera-county.pending path { fill:#b9d9c2; }
.local-camera-county.available path { fill:#238b57; }
.local-camera-county.available:hover path,.local-camera-county.available:focus path { fill:#176c43; }
.camera-live-key { background:#238b57; }
.camera-pending-key { background:#b9d9c2; }

/* Alabama staged rollout: all county shapes stay red, but unfinished counties are display-only. */
.alabama-map .locked-county { pointer-events: none; }
.alabama-map .locked-county path { fill: var(--red); }

/* Alabama staged rollout map is leveled in the SVG geometry, not with CSS rotation. */

/* South Carolina staged rollout: full red map, only launched counties interactive. */
.south-carolina-map .locked-county { pointer-events:none; }
.south-carolina-map .locked-county path { fill:var(--red); }

.north-carolina-map .locked-county{pointer-events:none}.north-carolina-map .locked-county path{fill:var(--red)}

.tennessee-map .locked-county{pointer-events:none}.tennessee-map .locked-county path{fill:var(--red)}

/* Shared arrest navigation: touch-sized links beside the booking photograph. */
.arrest-browser { position: relative; width: 100%; max-width: 540px; margin-inline: auto; }
.arrest-browser .booking-photo-frame { position: relative; }
.arrest-navigation { margin: 0; padding: 0; }
.arrest-arrow { position: absolute; top: 38%; z-index: 4; display: flex; align-items: center; justify-content: center; width: 46px; height: 54px; border: 2px solid #fff; border-radius: 9px; background: rgba(8,17,29,.92); color: #fff !important; font: 44px/1 Arial,sans-serif; text-decoration: none !important; box-shadow: 0 2px 10px #0008; }
.arrest-arrow-previous { left: 8px; }
.arrest-arrow-next { right: 8px; }
.arrest-arrow:hover { background: #235e8c; }
.arrest-arrow:focus-visible { outline: 3px solid #ffce55; outline-offset: 3px; }
@media (max-width: 600px) { .arrest-arrow { width: 44px; height: 50px; } }

/* Slim Florida county-map instruction banner. */
.state-hero.county-map-banner{display:block;min-height:0;padding:14px clamp(1.2rem,5vw,5.5rem) 18px;background:#24c9c0;color:#fff}
.state-hero.county-map-banner .breadcrumb{margin:0 0 7px;font-size:.78rem;color:#fff}
.state-hero.county-map-banner .breadcrumb a{color:#fff}
.state-hero.county-map-banner h1{max-width:none;margin:0;font:800 clamp(1.05rem,1.7vw,1.65rem)/1.35 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:0}

/* Florida mixed-county arrival feed. */
#florida-latest{scroll-margin-top:100px}
#florida-latest .section-heading{align-items:center;flex-wrap:wrap}
#florida-page-size{font:inherit;margin-left:8px;padding:8px 12px;border:1px solid #aab7bc;border-radius:6px;background:white}
.florida-booking-grid{grid-template-columns:repeat(5,minmax(0,260px))}
.florida-card-county{font-size:.78rem;color:#fff;font-weight:700;margin:0 0 8px}
#florida-feed-status:empty{display:none}
@media(max-width:1100px){.florida-booking-grid{grid-template-columns:repeat(3,minmax(0,260px))}}
@media(max-width:650px){.florida-booking-grid{grid-template-columns:repeat(2,minmax(0,260px))}}
@media(max-width:380px){.florida-booking-grid{grid-template-columns:minmax(0,260px)}}

/* Nationwide arrival feed */
#national-latest{scroll-margin-top:100px;margin-top:2rem;padding-inline:0}
#national-latest .section-heading{align-items:center;flex-wrap:wrap}
#national-page-size{margin-left:.45rem;padding:.4rem .55rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--navy);font:inherit}
.national-booking-grid{grid-template-columns:repeat(5,minmax(0,260px))}
#national-feed-status:empty{display:none}
@media(max-width:1100px){.national-booking-grid{grid-template-columns:repeat(3,minmax(0,260px))}}
@media(max-width:650px){.national-booking-grid{grid-template-columns:repeat(2,minmax(0,260px))}}
@media(max-width:380px){.national-booking-grid{grid-template-columns:minmax(0,260px)}}

/* Texas state news pilot */
#texas-news .state-news-strip{display:flex;gap:20px;overflow-x:auto;padding:6px 2px 18px;overscroll-behavior-x:contain}
#texas-news .state-news-item{flex:0 0 min(340px,85vw);min-width:0}
#texas-news .news-card{display:flex;flex-direction:column;height:calc(100% - 34px);box-sizing:border-box}
#texas-news .news-card>p:not(.news-byline){display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
#texas-news .news-card-graphic,#texas-news .news-card-graphic-frame{height:180px;object-fit:cover}
#texas-news .state-news-controls{display:flex;gap:8px}
#texas-news .state-news-controls[hidden]{display:none}
#texas-news .state-news-controls button{padding:8px 14px;border:1px solid #65758b;border-radius:6px;background:#14243a;color:#fff;cursor:pointer}
#texas-news .state-news-strip:focus-visible,#texas-news button:focus-visible{outline:3px solid #ff5548;outline-offset:3px}


/* SEO archive images reserve space before loading. */
.archive-grid .booking-photo-frame { aspect-ratio: 4 / 5; }
.archive-grid .booking-photo-frame > .booking-photo { width:100%; height:100%; object-fit:cover; }
.news-grid .news-card-graphic { aspect-ratio:16/9; height:auto; object-fit:contain; }

/* Native copy/save uses one complete raster card, with separate navigation gutters. */
.booking-photo.card-raster { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; transform:none !important; }
.card-accessible-copy { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.arrest-browser { max-width:416px; padding-inline:52px; box-sizing:border-box; }
.arrest-browser .record-visual-card { width:100%; max-width:300px; margin-inline:auto; }
.arrest-browser .arrest-arrow { top:38%; width:44px; box-sizing:border-box; }
.arrest-browser .arrest-arrow-previous { left:0; }
.arrest-browser .arrest-arrow-next { right:0; }
.record-page-grid { grid-template-columns:minmax(300px,416px) minmax(260px,1fr) minmax(340px,1.15fr); }
@media(max-width:1100px) { .record-page-grid { grid-template-columns:minmax(280px,416px) 1fr; } }
@media(max-width:720px) { .record-page-grid { grid-template-columns:1fr; } }

/* Compact landing header and state record search. */
.hero { padding: 2rem clamp(1.2rem, 8vw, 9rem); }
.hero h1 { font-size: clamp(2rem, 4vw, 3.25rem); max-width: 950px; margin-bottom: .65rem; }
.hero > p:not(.eyebrow) { font-size: 1rem; margin-bottom: 1rem; }
.state-search-section { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.state-person-search { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; }
.state-person-search label { flex: 1 1 220px; }
.state-person-search input { width: 100%; box-sizing: border-box; }
@media(max-width:650px) { .hero { padding-top: 1.5rem; padding-bottom: 1.5rem; } .state-person-search .button { width: 100%; } }

/* USPS abbreviations on the national map; small states use callouts. */
.usa-map .us-state-label { fill:#fff; stroke:#173947; stroke-width:2.2px; paint-order:stroke fill; stroke-linejoin:round; font:800 17px/1 Arial,sans-serif; text-anchor:middle; dominant-baseline:central; cursor:pointer; }
.usa-map .us-state-leader { stroke:#173947; stroke-width:1.25px; fill:none; pointer-events:none; }
.usa-map .us-state-label-link:hover text,.usa-map .us-state-label-link:focus-visible text { fill:#ffe399; }
