:root {
  color-scheme:dark;
  --bg:#0b1015;
  --panel:#10161c;
  --line:#263039;
  --text:#e9ecee;
  --muted:#8c9aa6;
  --orange:#ff875c;
  --green:#93c6ae;
  font-family:Arial,Helvetica,sans-serif
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text)
}
button,input,select {
  font:inherit
}
button,a,input,select {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button:disabled {
  opacity:.4;
  cursor:default
}
button,a,input,select {
  outline-offset:5px
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:2px solid var(--orange)
}
button {
  color:inherit
}
a {
  color:inherit
}
.topbar {
  height:89px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 30px;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:5;
  background:#0c1117
}
.brand {
  display:flex;
  align-items:center;
  gap:13px;
  text-decoration:none
}
.brand strong {
  font-size:17px;
  letter-spacing:2px
}
.version {
  color:#62727e;
  font-size:11px;
  letter-spacing:1px
}
.brand small {
  display:block;
  font:9px/1.5 monospace;
  letter-spacing:1.8px;
  color:var(--muted);
  margin-top:5px
}
.connection {
  display:flex;
  gap:9px;
  align-items:center;
  font:10px monospace;
  letter-spacing:1px
}
.status-dot {
  width:6px;
  height:6px;
  display:inline-block;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 10px #93c6ae44;
  flex-shrink:0
}
.status-dot.offline {
  background:var(--orange)
}
.connection strong {
  font-weight:400;
  color:var(--green)
}
.connection-detail {
  color:var(--muted);
  padding-left:12px;
  border-left:1px solid var(--line);
  letter-spacing:0
}
.quiet-button {
  background:none;
  border:0;
  color:#aab4bd;
  font-size:11px
}
.quiet-button.crossings-nav { display:inline-block; padding:8px 10px; border:1px solid #39212a; color:#f18a99; text-decoration:none; }
.quiet-button.crossings-nav:hover { border-color:#f22f4a; color:#fff; background:#f22f4a12; }
.quiet-button span {
  margin-left:15px;
  color:var(--orange)
}
.time-window-toggle {
  display:inline-flex;
  align-items:center;
  gap:9px;
  flex-shrink:0;
  cursor:pointer;
  color:#c7b9bd;
  font:10px/1 monospace;
  letter-spacing:.8px;
  text-transform:uppercase
}
.time-window-toggle input {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0
}
.toggle-track {
  position:relative;
  width:32px;
  height:18px;
  flex:0 0 32px;
  border:1px solid #59404a;
  border-radius:999px;
  background:#171116;
  transition:background .2s,border-color .2s,box-shadow .2s
}
.toggle-track:after {
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#98848c;
  transition:transform .2s,background .2s,box-shadow .2s
}
.time-window-toggle input:checked + .toggle-track {
  border-color:#e4475b;
  background:#43131d;
  box-shadow:0 0 14px #dc243b42
}
.time-window-toggle input:checked + .toggle-track:after {
  transform:translateX(14px);
  background:#ff5366;
  box-shadow:0 0 9px #ff3549aa
}
.time-window-toggle input:focus-visible + .toggle-track { outline:2px solid #ff7184;outline-offset:3px }
.filters select:disabled { opacity:.5;cursor:not-allowed }
main {
  display:grid;
  grid-template-columns:minmax(0,1fr) 400px;
  height:calc(100dvh - 89px);
  min-height:600px
}
.map-panel {
  position:relative;
  overflow:hidden;
  background:radial-gradient(ellipse at 50% 45%,#19242d55,transparent 65%),#0b1117
}
.map-panel:before {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.22;
  background-image:linear-gradient(#34434f55 1px,transparent 1px),linear-gradient(90deg,#34434f55 1px,transparent 1px);
  background-size:90px 90px
}
.map-header {
  position:absolute;
  top:31px;
  left:32px;
  z-index:2;
  pointer-events:none
}
.eyebrow {
  font:9px monospace;
  letter-spacing:2px;
  color:var(--muted)
}
h1 {
  font-size:32px;
  font-weight:500;
  letter-spacing:-1.1px;
  margin:9px 0 6px
}
.map-header p {
  font-size:12px;
  color:var(--muted);
  margin:0
}
.stats {
  position:absolute;
  top:34px;
  right:29px;
  display:flex;
  gap:22px;
  z-index:2
}
.stats div {
  display:flex;
  flex-direction:column;
  gap:8px
}
.stats strong {
  font:25px monospace;
  font-weight:400
}
.stats span {
  font:8px monospace;
  color:var(--muted);
  letter-spacing:1px
}
.map-viewport {
  position:absolute;
  inset:90px 0 120px;
  overflow:hidden;
  cursor:grab;
  touch-action:none
}
.map-viewport.dragging {
  cursor:grabbing
}
.map-stage {
  position:absolute;
  width:850px;
  height:900px;
  top:50%;
  left:50%;
  transform-origin:center;
  will-change:transform
}
.basemap {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity:.9
}
.country,.sea {
  position:absolute;
  pointer-events:none;
  font:10px monospace;
  color:#9caeb85c;
  text-align:center;
  line-height:1.8
}
.scotland {
  left:46%;
  top:31%
}
.england {
  left:55%;
  top:70%
}
.wales {
  left:42%;
  top:79%
}
.ireland {
  left:25%;
  top:68%
}
.ni {
  left:32%;
  top:57%;
  font-size:8px
}
.sea {
  left:79%;
  top:47%;
  font-size:12px;
  color:#738b973b
}
.map-marker {
  position:absolute;
  transform:translate(-50%,-50%);
  width:23px;
  height:23px;
  border-radius:50%;
  border:1px solid #ff875c77;
  background:#ff875c1a;
  box-shadow:0 0 22px #ff875c24;
  z-index:3
}
.map-marker:before {
  content:'';
  position:absolute;
  inset:7px;
  border-radius:50%;
  background:var(--orange);
  box-shadow:0 0 9px #ff875c
}
.map-marker span {
  position:absolute;
  left:29px;
  top:3px;
  white-space:nowrap;
  font:10px monospace;
  letter-spacing:.5px;
  color:#e8d8cf;
  background:#10171cbb;
  padding:2px 4px;
  border-radius:2px
}
.map-marker:hover,.map-marker.selected {
  background:#ff875c55;
  border-color:var(--orange);
  z-index:5
}
.map-controls {
  position:absolute;
  right:24px;
  bottom:176px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:5px;
  overflow:hidden;
  z-index:3
}
.map-controls button {
  height:36px;
  width:36px;
  background:#111a22;
  border:0;
  font-size:19px
}
.map-controls button+button {
  border-top:1px solid var(--line)
}
.map-controls button:hover {
  background:#24313c
}
.map-hint {
  position:absolute;
  bottom:176px;
  left:32px;
  display:flex;
  align-items:center;
  gap:10px;
  font:10px monospace;
  color:var(--muted);
  pointer-events:none;
  max-width:70%;
  line-height:1.6
}
.tiny-cross {
  font-size:19px;
  color:var(--orange)
}
.map-footer {
  position:absolute;
  bottom:132px;
  left:32px;
  right:25px;
  display:flex;
  justify-content:space-between;
  font:8px monospace;
  color:#8d9ba6
}
.map-footer a {
  text-decoration:none
}
.map-footer i {
  display:inline-block;
  width:5px;
  height:5px;
  background:var(--orange);
  border-radius:50%;
  margin-right:6px
}
.heat-legend { display:flex; align-items:center; gap:6px; color:#9f9398; }
.heat-legend b { font:7px monospace; letter-spacing:.5px; }
.heat-legend i { width:7px; height:7px; margin:0; border:1px solid #fff; background:#fff; box-shadow:0 0 5px #fff8; }
.heat-legend i:last-of-type { border-color:#ff4a5f; background:#d90f32; box-shadow:0 0 6px #f20f3eaa; }
.heat-legend em { width:42px; height:3px; border-radius:3px; background:linear-gradient(90deg,#fff,#ffb0b9 42%,#f34a5f 70%,#d90f32); }
.timeline {
  position:absolute;
  bottom:22px;
  left:25px;
  right:25px;
  height:88px;
  display:flex;
  align-items:center;
  gap:22px;
  background:#101820e8;
  border:1px solid #2a343e;
  border-radius:6px;
  padding:17px 19px
}
.timeline>button {
  background:#19252e;
  border:1px solid #33404a;
  border-radius:4px;
  height:37px;
  padding:0 12px;
  font-size:15px;
  white-space:nowrap
}
.timeline>button span {
  font:10px monospace;
  margin-left:7px
}
.timeline-track {
  flex:1;
  min-width:0
}
.timeline-top,.timeline-bottom {
  display:flex;
  justify-content:space-between;
  gap:8px;
  font:8px monospace;
  color:var(--muted)
}
.timeline-top {
  letter-spacing:1px
}
.timeline-top span:last-child {
  color:var(--orange)
}
.timeline input {
  width:100%;
  height:13px;
  accent-color:var(--orange);
  margin:8px 0
}
.timeline-bottom button {
  padding:0;
  border:0;
  background:none;
  font:8px monospace;
  color:#c3ccd3
}
.wire {
  min-height:0;
  background:var(--panel);
  border-left:1px solid var(--line);
  display:flex;
  flex-direction:column;
  z-index:4
}
.wire-title {
  padding:30px 25px 23px;
  display:flex;
  align-items:center;
  justify-content:space-between
}
.orange {
  color:var(--orange)
}
h2 {
  font-size:25px;
  letter-spacing:-.7px;
  font-weight:500;
  margin:9px 0 0
}
.refresh {
  width:32px;
  height:32px;
  border:1px solid var(--line);
  background:#151f27;
  border-radius:50%;
  font-size:20px;
  color:var(--muted)
}
.refresh:hover {
  color:var(--orange)
}
.wire-tools {
  padding:0 25px 15px;
  border-bottom:1px solid var(--line)
}
.search {
  display:flex;
  gap:10px;
  align-items:center;
  border:1px solid #303b45;
  border-radius:4px;
  padding:10px 11px;
  color:var(--muted);
  background:#0d141a
}
.search>span {
  font-size:21px;
  line-height:16px
}
.search input {
  width:100%;
  min-width:0;
  background:none;
  border:0;
  color:var(--text);
  font-size:11px;
  outline-offset:2px
}
.search input::placeholder {
  color:#8e9ca8
}
.search kbd {
  font:10px monospace;
  border:1px solid #39434d;
  border-radius:2px;
  padding:1px 4px
}
.filters {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:10px
}
.filters label {
  min-width:0
}
.filters select {
  width:100%;
  border:1px solid #29353f;
  border-radius:3px;
  background:#161f27;
  color:#b3bec6;
  font-size:10px;
  padding:9px 6px
}
.results-line {
  margin-top:17px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  font:9px monospace;
  color:var(--muted)
}
.results-line button {
  border:0;
  background:none;
  padding:0;
  font:9px monospace;
  color:var(--orange)
}
.report-list {
  flex:1;
  overflow:auto;
  min-height:0;
  scrollbar-width:thin;
  scrollbar-color:#34424e transparent
}
.report-card {
  padding:20px 25px;
  border-bottom:1px solid #263039;
  position:relative
}
.report-card:hover {
  background:#162029
}
.report-card.active {
  background:#1d272e;
  border-left:2px solid var(--orange);
  padding-left:23px
}
.report-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font:8px monospace;
  letter-spacing:1px;
  color:var(--muted)
}
.report-meta button {
  background:none;
  border:0;
  padding:0;
  color:var(--orange);
  font:inherit;
  letter-spacing:inherit;
  text-align:left
}
.report-meta time {
  white-space:nowrap
}
.report-card h3 {
  font-size:14px;
  line-height:1.55;
  font-weight:500;
  margin:10px 0
}
.report-card h3 a {
  text-decoration:none
}
.report-card h3 a:hover {
  text-decoration:underline;
  text-decoration-color:var(--orange);
  text-underline-offset:4px
}
.report-summary {
  font-size:11px;
  line-height:1.7;
  color:#9daab5;
  margin:0 0 13px;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden
}
.report-bottom {
  display:flex;
  justify-content:space-between;
  font:8px monospace;
  color:#aebac4
}
.report-bottom a {
  text-decoration:none;
  color:#c7d0d6
}
.report-bottom span:last-child {
  color:#8999a6
}
.empty-state {
  padding:60px 35px;
  text-align:center
}
.empty-state .radar {
  display:grid;
  place-items:center;
  margin:0 auto 23px;
  border:1px solid #31414e;
  border-radius:50%;
  width:66px;
  height:66px;
  color:var(--orange);
  font-size:31px;
  background:radial-gradient(circle,#ff875c11,transparent)
}
.empty-state h3 {
  font-size:17px;
  font-weight:400
}
.empty-state p {
  font-size:12px;
  line-height:1.9;
  color:var(--muted);
  max-width:290px;
  margin:0 auto
}
.feed-alert {
  padding:12px 25px;
  background:#ff875c0c;
  border-bottom:1px solid #ff875c33;
  color:#ecb19a;
  font-size:10px;
  line-height:1.6
}
.wire-footer {
  border-top:1px solid var(--line);
  padding:17px 25px;
  display:flex;
  align-items:center;
  gap:7px;
  font:8px monospace;
  color:var(--muted)
}
.wire-footer .status-dot {
  width:4px;
  height:4px
}
.wire-footer button {
  margin-left:auto;
  background:none;
  border:0;
  padding:0;
  font:8px monospace;
  color:#bcc7cf
}
dialog {
  background:#131c24;
  color:var(--text);
  border:1px solid #40505e;
  border-radius:8px;
  padding:30px;
  max-width:580px;
  width:calc(100% - 32px);
  max-height:85dvh
}
dialog::backdrop {
  background:#000b;
  backdrop-filter:blur(5px)
}
.dialog-top {
  display:flex;
  justify-content:space-between;
  align-items:center
}
.dialog-top button {
  background:none;
  border:0;
  font-size:24px;
  color:var(--muted)
}
dialog h2 {
  font-size:30px;
  margin-bottom:20px
}
dialog h3 {
  font-size:15px;
  margin-top:25px
}
dialog p {
  font-size:12px;
  color:#abb8c2;
  line-height:1.8
}
.feed-status {
  border:1px solid var(--line);
  border-radius:4px;
  margin:20px 0
}
.feed-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px;
  font:10px monospace;
  gap:12px
}
.feed-row+.feed-row {
  border-top:1px solid var(--line)
}
.feed-row span {
  color:var(--green)
}
.feed-row .failed {
  color:var(--orange)
}
.credits {
  font-size:10px!important
}
.skip {
  position:absolute;
  top:-70px;
  left:10px;
  background:var(--orange);
  color:#111;
  z-index:20;
  padding:12px
}
.skip:focus {
  top:10px
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.noscript {
  position:fixed;
  bottom:0;
  background:#9b4124;
  padding:15px;
  z-index:20;
  width:100%;
  margin:0
}
@media(min-width:1500px) {
  main {
    grid-template-columns:minmax(0,1fr) 440px
  }
  .map-header {
    left:42px;
    top:40px
  }
  .stats {
    top:43px;
    right:40px
  }
  .wire-title {
    padding-top:39px
  }

}
@media(max-width:1120px) {
  main {
    grid-template-columns:minmax(0,1fr) 345px
  }
  .stats {
    top:150px;
    left:32px;
    right:auto;
    gap:24px
  }
  .stats strong {
    font-size:21px
  }
  .stats span {
    font-size:7px
  }
  .connection-detail {
    display:none
  }
  .wire-title,.wire-tools {
    padding-left:20px;
    padding-right:20px
  }
  .map-viewport {
    inset:150px -30px 125px
  }
  .map-header h1 {
    font-size:28px
  }

}
@media(max-width:760px) {
  .topbar {
    height:73px;
    padding:0 17px
  }
  .brand strong {
    font-size:13px;
    letter-spacing:1.3px
  }
  .brand small {
    font-size:7px;
    letter-spacing:1px
  }
  .version {
    display:none
  }
  .connection {
    font-size:8px;
    gap:5px
  }
  .quiet-button {
    display:none
  }
  .time-window-toggle { gap:6px;font-size:8px;letter-spacing:.3px }
  .toggle-track { width:29px;height:17px;flex-basis:29px }
  .time-window-toggle input:checked + .toggle-track:after { transform:translateX(12px) }
  main {
    display:flex;
    flex-direction:column;
    height:auto;
    min-height:0
  }
  .map-panel {
    height:650px;
    min-height:0
  }
  .map-header {
    top:24px;
    left:20px
  }
  .map-header h1 {
    font-size:26px
  }
  .map-header p {
    font-size:11px
  }
  .stats {
    top:26px;
    right:20px;
    left:auto;
    gap:17px
  }
  .stats div:last-child {
    display:none
  }
  .stats strong {
    font-size:21px
  }
  .stats span {
    font-size:6px;
    letter-spacing:.6px
  }
  .map-viewport {
    inset:112px 0 115px
  }
  .timeline {
    bottom:17px;
    left:15px;
    right:15px;
    padding:13px;
    gap:13px;
    height:85px
  }
  .timeline>button {
    padding:0 10px
  }
  .timeline-bottom {
    font-size:7px
  }
  .timeline-bottom button {
    font-size:7px
  }
  .map-hint {
    left:20px;
    bottom:155px;
    font-size:8px;
    max-width:75%
  }
  .map-footer {
    left:20px;
    bottom:115px;
    font-size:7px
  }
  .map-controls {
    right:16px;
    bottom:153px
  }
  .map-controls button {
    height:31px;
    width:31px
  }
  .wire {
    border-left:0;
    border-top:1px solid var(--line);
    min-height:500px
  }
  .wire-title {
    padding:25px 20px 20px
  }
  .wire-tools {
    padding-bottom:18px
  }
  .report-list {
    overflow:visible
  }
  .empty-state {
    padding:45px 30px 60px
  }
  .wire-footer {
    padding:19px 20px
  }
  .report-card {
    padding:20px
  }
  .report-summary {
    -webkit-line-clamp:4
  }
  .report-card.active {
    padding-left:18px
  }
  dialog {
    padding:23px
  }
  .country {
    font-size:9px
  }

}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important
  }

}

/* MapLibre owns the OpenFreeMap canvas, camera and geographic marker positioning. */
#openfreemap-map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
#openfreemap-map[hidden] { display: none; }
.map-ready .map-stage { visibility: hidden; pointer-events: none; }
.map-ready #openfreemap-map .maplibregl-canvas { filter: brightness(.72) saturate(.82); }
.map-ready .map-viewport { cursor: auto; }
.map-ready #fallback-attribution { display: none; }
.map-ready .map-footer { bottom: 150px; pointer-events: none; }
.map-ready .map-marker { margin: 0; padding: 0; }
.map-notice {
  position: absolute;
  left: 32px;
  right: 25px;
  top: 225px;
  max-width: 410px;
  z-index: 4;
  background: #111b24ed;
  border: 1px solid #3a4855;
  border-radius: 5px;
  padding: 12px 14px;
  font-size: 11px;
  line-height: 1.7;
  color: #bfccd5;
}
.map-notice[hidden] { display: none; }
.map-notice button {
  display: block;
  margin-top: 6px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--orange);
  font-size: 10px;
}
.map-preview {
  position: absolute;
  z-index: 9;
  width: min(250px,calc(100% - 24px));
  padding: 14px 15px;
  pointer-events: none;
  background: linear-gradient(145deg,#160a0e,#080708 75%);
  border: 1px solid #65303c;
  border-left: 3px solid #ff4559;
  box-shadow: 0 15px 45px #000c,0 0 30px #ff354912;
}
.map-preview[hidden] { display: none; }
.map-preview strong,.map-preview span,.map-preview small { display: block; }
.map-preview strong { color: #fff4f5; font: 700 13px/1.2 monospace; letter-spacing: 1.1px; }
.map-preview span { margin-top: 6px; color: #ff8793; font: 11px/1.4 monospace; }
.map-preview p { margin: 10px 0; color: #e8dde0; font-size: 13px; line-height: 1.4; }
.map-preview small { color: #b7a7ac; font: 10px/1.3 monospace; text-transform: uppercase; letter-spacing: .7px; }
#openfreemap-map .maplibregl-ctrl-attrib { font-size: 9px; }
#openfreemap-map .maplibregl-ctrl-attrib a { color: #25313c; }
@media (max-width: 760px) {
  .map-notice { top: 126px; left: 20px; right: 20px; font-size: 10px; }
  .map-ready .map-footer { bottom: 138px; }
}

/* Cinematic news desk: ember red, charcoal geography, publisher photography. */
:root {
  --bg: #030303;
  --panel: #090909;
  --line: #242022;
  --text: #f4efef;
  --muted: #a39b9f;
  --orange: #ff3549;
  --green: #ff5a62;
}
body { background: #030303; }
.topbar { background: #050505; border-bottom: 1px solid #3e1c22; height: 82px; }
.topbar:after { content: ''; position: absolute; bottom: -1px; left: 0; width: 27%; height: 1px; background: linear-gradient(90deg,#ff3549,transparent); }
.brand { gap: 16px; }
.brand strong { font-size: 19px; letter-spacing: 3px; font-weight: 900; }
.brand small { color: #a0999c; font-size: 8px; letter-spacing: 2.1px; }
.version { color: #e94553; }
.connection strong { color: #ff6976; }
.status-dot { background: #ff3549; box-shadow: 0 0 12px #ff354980; }
.connection .status-dot { animation: signal-pulse 3s ease-in-out infinite; }
main { height: calc(100dvh - 82px); grid-template-columns: minmax(0,1fr) 440px; }
.map-panel { background: #030303; }
.map-panel:before { opacity: .12; background-image: linear-gradient(#6b303433 1px,transparent 1px),linear-gradient(90deg,#6b303433 1px,transparent 1px); }
.map-header { top: 28px; z-index: 3; }
.map-header .eyebrow { color: #e16670; letter-spacing: 2.3px; font-size: 8px; }
.map-header h1 { font-size: clamp(27px,3.1vw,48px); line-height: .98; font-weight: 900; letter-spacing: -1.9px; margin: 12px 0; }
.map-header h1 span { color: #ff3549; text-shadow: 0 0 45px #ff354925; }
.map-header p { font: 9px/1.7 monospace; color: #b6a8ad; }
.stats { top: 32px; gap: 26px; }
.stats strong { font-size: 30px; font-weight: 700; color: #fff6f6; }
.stats span { font-size: 7px; letter-spacing: 1.4px; }
.map-viewport { inset: 175px 0 140px; }
.map-ready .map-stage { display: none; }
.map-ready .map-viewport:after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(#030303 0%,transparent 12%,transparent 88%,#030303),linear-gradient(90deg,#03030355,transparent 12%,transparent 90%,#03030344); }
.map-marker { --marker-size:10px; --heat-core:#ffc29f; --heat-mid:#ffad7d; --heat-edge:#c65d38; --heat-deep:#161616; --heat-glow:#ffad7d; --fire-glow:#ff8b5c; width: var(--marker-size); height: var(--marker-size); overflow: visible; border: 1px solid color-mix(in srgb,var(--heat-glow) 90%,transparent); background: radial-gradient(circle,var(--heat-core) 0 62%,var(--heat-edge) 80%); box-shadow: 0 0 7px color-mix(in srgb,var(--heat-glow) 95%,transparent),0 0 18px color-mix(in srgb,var(--fire-glow) 72%,transparent); animation: marker-core-pulse 4.8s ease-in-out infinite; }
.map-marker.intensity-2 { --marker-size:12px; --heat-core:#ffb17a; --heat-mid:#ff945d; --heat-edge:#bd4a36; --heat-deep:#22070c; --heat-glow:#ff945d; --fire-glow:#ff664d; }
.map-marker.intensity-3 { --marker-size:14px; --heat-core:#ff8a65; --heat-mid:#f34a5f; --heat-edge:#a20e2a; --heat-deep:#230309; --heat-glow:#f34a5f; --fire-glow:#ff3c35; }
.map-marker.intensity-4 { --marker-size:17px; --heat-core:#ff655f; --heat-mid:#ed1738; --heat-edge:#8d001c; --heat-deep:#200006; --heat-glow:#f20f3e; --fire-glow:#ff271e; }
.map-marker:before { content: ''; position: absolute; inset: -15px; border: 0; border-radius: 50%; background: radial-gradient(circle,color-mix(in srgb,var(--heat-glow) 42%,transparent) 0 17%,color-mix(in srgb,var(--fire-glow) 32%,transparent) 38%,transparent 74%); box-shadow: 0 0 28px color-mix(in srgb,var(--fire-glow) 48%,transparent),0 0 42px color-mix(in srgb,var(--heat-glow) 26%,transparent); opacity: .82; animation: marker-halo-pulse 4.8s ease-in-out infinite; pointer-events: none; }
.map-marker:hover,.map-marker.selected { border-color: var(--heat-glow); background: radial-gradient(circle,var(--heat-core) 0 62%,var(--heat-edge) 80%); box-shadow: 0 0 9px color-mix(in srgb,var(--heat-glow) 100%,transparent),0 0 25px color-mix(in srgb,var(--fire-glow) 82%,transparent); z-index: 8; }
.map-marker.selected:before { inset: -18px; opacity: 1; background: radial-gradient(circle,color-mix(in srgb,var(--heat-glow) 48%,transparent) 0 18%,color-mix(in srgb,var(--fire-glow) 38%,transparent) 42%,transparent 74%); box-shadow: 0 0 34px color-mix(in srgb,var(--fire-glow) 52%,transparent),0 0 52px color-mix(in srgb,var(--heat-glow) 34%,transparent); }
.map-marker .marker-label { color: #f0e5e8; background: #080608d9; font-size: 9px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; border: 0; border-left: 1px solid var(--heat-mid); padding: 3px 5px; top: 50%; left: calc(100% + 8px); transform: translateY(-50%); box-shadow: 0 2px 10px #000a; }
.map-marker.expanded,.map-marker.expanded:hover,.map-marker.expanded.selected { --marker-size:54px; border: 0; background: transparent; box-shadow: none; }
.map-marker.expanded:before,.map-marker.expanded.selected:before { inset: 0; opacity: 1; background: radial-gradient(circle,color-mix(in srgb,var(--heat-glow) 27%,transparent) 0 20%,color-mix(in srgb,var(--fire-glow) 22%,transparent) 38%,transparent 72%); box-shadow: 0 0 28px color-mix(in srgb,var(--fire-glow) 40%,transparent),0 0 48px color-mix(in srgb,var(--fire-glow) 20%,transparent); }
.map-marker.expanded .marker-label { left: calc(100% + 3px); }
.report-dot { position: absolute; z-index: 2; left: 50%; top: 50%; width: 11px; height: 11px; border: 1px solid var(--heat-core); border-radius: 50%; background: radial-gradient(circle,var(--heat-core) 0 20%,var(--heat-mid) 28% 58%,var(--heat-edge) 66%,var(--heat-deep) 78%); box-shadow: 0 0 5px color-mix(in srgb,var(--heat-glow) 85%,transparent); }
.report-dot-overflow { position: absolute; z-index: 3; left: 50%; top: 50%; transform: translate(-50%,-50%); color: #fff; font: 8px/1 monospace; }
.map-hint { bottom: 175px; font-size: 9px; color: #b7a5ab; }
.map-controls { bottom: 178px; right: 25px; border-color: #40232b; box-shadow: 0 8px 30px #0009; }
.map-controls button { background: #0d090b; }
.map-controls button:hover { background: #281116; }
.map-ready .map-footer { bottom: 151px; left: 115px; }
.timeline { left: 24px; right: 24px; bottom: 20px; padding: 15px 18px; background: linear-gradient(110deg,#12090c,#080708 70%); border: 1px solid #42202a; border-radius: 8px; box-shadow: 0 10px 35px #0008,0 -10px 70px #ff354905; gap: 22px; }
.timeline-track { position: relative; min-width: 0; }
.timeline-top { font-size: 7px; letter-spacing: 1px; }
.timeline-activity { height: 29px; display: flex; gap: 3px; align-items: end; margin: 9px 0 0; overflow: hidden; }
.activity-bar { flex: 1; background: #2b191e; border-radius: 2px 2px 0 0; min-width: 0; }
.activity-bar.populated { background: linear-gradient(#ff9464,#ff3549); box-shadow: 0 0 9px #ff35491a; }
.activity-bar.future { opacity: .24; }
#timeline { margin: 0; height: 9px; accent-color: #ff3549; }
#timeline::-webkit-slider-thumb { background: #ff3549; box-shadow: 0 0 12px #ff354966; }
.timeline-bottom { margin-top: 7px; font-size: 7px; }
#replay { border: 1px solid #e53b4f; background: #ee263f; color: #fff; padding: 13px 14px; border-radius: 4px; box-shadow: 0 0 25px #ff354921; font: 10px monospace; }
#replay:hover { background: #ff4058; }
.wire { background: #080708; border-left-color: #382027; }
.wire-title { padding-top: 31px; padding-bottom: 22px; background: radial-gradient(ellipse at 100% 0,#ff354910,transparent 70%); }
.wire-title .eyebrow { font-size: 8px; letter-spacing: 1.7px; color: #ff6976; }
.wire-title h2 { font-size: 29px; letter-spacing: -.9px; font-weight: 900; margin-top: 8px; }
.wire-description { max-width: 510px; margin: 8px 0 0; color: #b9aeb2; font-size: 10px; line-height: 1.55; }
.refresh { border-color: #4d2932; background: #170c10; color: #ff6976; }
.wire-tools { padding-bottom: 15px; border-color: #2e2025; }
.place-summary {
  padding: 15px 23px 16px;
  background: linear-gradient(105deg,#270d15,#0c0809 76%);
  border-bottom: 1px solid #51222e;
  box-shadow: inset 3px 0 #ff4559;
}
.place-summary[hidden] { display: none; }
.place-summary-label { display: block; color: #ff7180; font: 9px/1.2 monospace; letter-spacing: 1.5px; }
.place-summary>strong { display: block; margin-top: 5px; color: #fff5f6; font-size: 18px; line-height: 1.2; }
.place-summary p { margin: 7px 0 10px; color: #c8b8bd; font: 11px/1.45 monospace; }
.place-summary-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.place-summary-tags span { padding: 4px 7px; color: #efc9d0; background: #3d1520; border: 1px solid #6b2a3a; font: 9px/1.2 monospace; text-transform: uppercase; letter-spacing: .4px; }
.search { background: #100c0e; border-color: #35272d; border-radius: 4px; }
.search input { color: #f5e8ec; font-size: 11px; }
.search kbd { border-color: #57303b; color: #b78c99; }
.filters { gap: 7px; }
.filters select { background: #151012; border-color: #3b2931; color: #d8cbd0; font-size: 9px; }
.results-line { color: #a7969e; font-size: 8px; }
.report-card { --category: #ff4258; padding: 19px 23px 20px; border-bottom: 1px solid #2b1c23; cursor: pointer; transition: background .2s,padding .2s; }
.report-card:before { content: ''; position: absolute; left: 0; top: 23px; bottom: 24px; width: 2px; background: var(--category); opacity: .8; }
.report-card:hover { background: #140c10; }
.report-card.active { background: linear-gradient(90deg,#40111d99,#140c10 72%); border-left: 2px solid #ff5265; padding-left: 21px; box-shadow: inset 12px 0 28px #ff304d0b; }
.report-card:focus-visible { outline: 1px solid #ff6a7b; outline-offset: -2px; }
.report-card.expanded { padding-top: 25px; padding-bottom: 27px; background: linear-gradient(135deg,#210d14,#10090c 78%); cursor: default; }
.category-arson { --category: #ff9152; }
.category-clashes { --category: #ff4f7c; }
.category-looting { --category: #edbd53; }
.category-protest { --category: #69b1ff; }
.category-court { --category: #bc9bf3; }
.report-meta { font-size: 8px; letter-spacing: 1px; gap: 8px; margin-bottom: 13px; }
.report-meta button { color: #e8c9d3; font-weight: bold; }
.report-meta time { color: #a8949d; font-size: 8px; letter-spacing: 0; }
.report-content { display: grid; grid-template-columns: minmax(0,1fr) 104px; gap: 15px; align-items: start; }
.report-body { min-width: 0; }
.report-tags { display: flex; align-items: flex-start; flex-direction: column; gap: 10px; }
.category-tag { display: inline-flex; align-items: center; color: var(--category); background: color-mix(in srgb,var(--category) 10%,transparent); border: 1px solid color-mix(in srgb,var(--category) 35%,transparent); padding: 3px 6px; border-radius: 3px; font: 7px/1.2 monospace; letter-spacing: .6px; text-transform: uppercase; }
.category-tag:before { content: ''; width: 4px; height: 4px; border-radius: 50%; margin-right: 5px; background: var(--category); }
.bias-scale { --bias-position:50%; --bias-accent:#f7edf0; display: inline-flex; width: 100%; max-width: none; flex-direction: column; gap: 8px; color: #d9cdd2; font: 9px/1.2 monospace; letter-spacing: .3px; text-decoration: none; }
.bias-scale[href] { cursor: pointer; }
.bias-scale[href]:focus-visible { outline: 2px solid #ff7180; outline-offset: 5px; border-radius: 4px; }
.bias-caption { display: flex; align-items: center; gap: 7px; color: #fff2f5; font-size: 12px; font-weight: 700; line-height: 1.35; letter-spacing: .7px; }
.bias-caption:before { content: ''; width: 6px; height: 6px; flex: 0 0 6px; border-radius: 1px; background: var(--bias-accent); box-shadow: 0 0 9px color-mix(in srgb,var(--bias-accent) 80%,transparent); transform: rotate(45deg); }
.bias-track { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 3px; width: 100%; height: 18px; }
.bias-segment { position: relative; min-width: 0; overflow: hidden; border: 1px solid color-mix(in srgb,var(--segment-color) 24%,transparent); border-radius: 3px; background: linear-gradient(180deg,color-mix(in srgb,var(--segment-color) 19%,#28262c),color-mix(in srgb,var(--segment-color) 12%,#171417) 75%); box-shadow: inset 0 1px 2px #0009; transition: background .25s,border-color .25s,box-shadow .25s,transform .25s; }
.bias-segment:nth-child(1) { --segment-color:#ff526b; }
.bias-segment:nth-child(2) { --segment-color:#ffa6b1; }
.bias-segment:nth-child(3) { --segment-color:#ffffff; }
.bias-segment:nth-child(4) { --segment-color:#a9b2ff; }
.bias-segment:nth-child(5) { --segment-color:#758cff; }
.bias-segment.is-active { z-index: 1; border-color: color-mix(in srgb,var(--segment-color) 82%,white); background: linear-gradient(180deg,#fff 0%,var(--segment-color) 24%,color-mix(in srgb,var(--segment-color) 74%,#240d15) 100%); box-shadow: inset 0 1px 3px #fff9,0 0 8px 2px color-mix(in srgb,var(--segment-color) 75%,transparent),0 0 20px 3px color-mix(in srgb,var(--segment-color) 45%,transparent); animation: bias-segment-pulse 2.8s ease-in-out infinite; }
.bias-scale[href]:hover .bias-segment.is-active { transform: translateY(-1px); box-shadow: inset 0 1px 3px #fff9,0 0 11px 3px color-mix(in srgb,var(--segment-color) 90%,transparent),0 0 26px 5px color-mix(in srgb,var(--segment-color) 58%,transparent); }
.bias-axis { display: flex; justify-content: space-between; color: #bcaeb4; font-size: 8px; font-weight: 700; letter-spacing: 1px; }
.bias-axis b { font: inherit; }
.bias-left { --bias-accent:#ff526b; }
.bias-lean-left { --bias-accent:#ffa6b1; }
.bias-center { --bias-accent:#ffffff; }
.bias-lean-right { --bias-accent:#a9b2ff; }
.bias-right { --bias-accent:#758cff; }
.bias-unrated .bias-caption { color: #91858a; }
.bias-unrated .bias-caption:before { background: #82777c; box-shadow: 0 0 7px #82777c66; }
@keyframes bias-segment-pulse { 0%,100% { filter: brightness(.88); } 50% { filter: brightness(1.18); } }
.report-card h3 { font-size: 13px; font-weight: 600; line-height: 1.5; margin: 9px 0 8px; }
.report-summary { display: none; font-size: 12px; line-height: 1.75; color: #c6b8be; margin: 13px 0 15px; }
.report-card.expanded .report-summary { display: block; }
.report-bottom { gap: 8px; align-items: center; flex-wrap: wrap; font-size: 7px; line-height: 1.7; }
.report-bottom a { color: #d2bac4; }
.report-bottom .report-provenance { color: #97828c; font-size: 6px; letter-spacing: .7px; }
.location-precision { margin: 5px 0 2px; color: #bba7af; font: 8px/1.4 monospace; letter-spacing: .35px; }
.report-expand { margin-left: auto; padding: 4px 0; border: 0; background: none; color: #ff7787; font: 7px monospace; letter-spacing: .4px; }
.report-media { position: relative; height: 122px; background: #100b0e; border: 1px solid #3b202b; border-radius: 5px; overflow: hidden; }
.report-card.expanded .report-content { grid-template-columns: 1fr; }
.report-card.expanded .report-media { height: 220px; }
.media-placeholder { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 70% 22%,color-mix(in srgb,var(--category) 18%,transparent),transparent 56%),linear-gradient(145deg,#1b1216,#0a0e13 66%,#171014); }
.report-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.65) contrast(1.08); transition: filter .25s; }
.report-card:hover .report-image { filter: saturate(1) contrast(1.05); }
.report-image[hidden] { display: none; }
.video-play { position: absolute; z-index: 3; left: 50%; top: 50%; width: 34px; height: 34px; transform: translate(-50%,-50%); border: 1px solid #ff8795; border-radius: 50%; background: #18080dcc; color: #fff; font-size: 14px; line-height: 1; padding: 0 0 0 2px; box-shadow: 0 0 12px #ff354955,0 0 30px #ff354933; cursor: pointer; transition: transform .18s, box-shadow .18s, background .18s; }
.video-play:hover,.video-play:focus-visible { transform: translate(-50%,-50%) scale(1.1); background: #a91834e8; box-shadow: 0 0 17px #ff3549aa,0 0 36px #ff354955; outline: 2px solid #fff8; outline-offset: 3px; }
.report-player { position: absolute; z-index: 4; inset: 0; width: 100%; height: 100%; border: 0; background: #000; object-fit: contain; }
.image-credit { position: absolute; bottom: 0; left: 0; right: 0; padding: 15px 5px 5px; background: linear-gradient(transparent,#000d); font: 6px monospace; color: #eee; }
.image-credit { text-decoration: none; }
.image-credit:hover { text-decoration: underline; }
.report-media:has(.report-image[hidden]) .image-credit { display: none; }
.wire-footer { background: #080608; border-color: #33212a; font-size: 8px; }
#about { background: #0d080b; border-color: #5b2d3b; }
#about::backdrop { background: #000c; backdrop-filter: blur(6px); }
.feed-row { border-color: #3c2630; }
.map-notice { background: #160d12f2; border-color: #60313f; }
@keyframes signal-pulse { 50% { box-shadow: 0 0 18px #ff3549aa; opacity: .55; } }
@media(min-width:1600px) { main { grid-template-columns: minmax(0,1fr) 490px; } .report-content { grid-template-columns: minmax(0,1fr) 125px; } .report-media { height: 135px; } }
@media(max-width:1120px) { main { grid-template-columns: minmax(0,1fr) 365px; } .stats { top: 177px; left: 32px; } .map-viewport { inset: 235px 0 140px; } .map-header h1 { font-size: 35px; } .report-content { grid-template-columns: minmax(0,1fr) 82px; gap: 11px; } .report-media { height: 107px; } .report-card { padding-left: 20px; padding-right: 20px; } }
@media(max-width:760px) {
  .topbar { height: 73px; padding: 0 16px; }
  .brand { gap: 10px; }
  .brand strong { font-size: 14px; letter-spacing: 1.8px; }
  .brand small { font-size: 6px; letter-spacing: 1px; }
  main { height: auto; display: flex; }
  .map-panel { height: 750px; }
  .map-header { top: 24px; left: 20px; }
  .map-header h1 { font-size: 38px; }
  .map-header p { font-size: 8px; }
  .stats { top: 182px; left: 20px; right: auto; gap: 29px; }
  .stats strong { font-size: 24px; }
  .map-viewport { inset: 235px 0 140px; }
  .map-hint { bottom: 175px; left: 20px; font-size: 8px; }
  .timeline { left: 14px; right: 14px; bottom: 18px; padding: 12px; gap: 12px; }
  .timeline-top,.timeline-bottom { font-size: 6px; }
  .timeline-activity { gap: 2px; }
  #replay { font-size: 9px; padding: 12px 10px; }
  .map-controls { right: 16px; bottom: 175px; }
  .map-ready .map-footer { bottom: 146px; left: 105px; }
  .wire { min-height: 650px; border-top-color: #42202a; }
  .wire-title { padding-top: 24px; }
  .report-content { grid-template-columns: minmax(0,1fr) 100px; }
  .report-media { height: 120px; }
  .report-card h3 { font-size: 14px; }
  .map-notice { top: 260px; }
}
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

.news-panel { display: flex; flex: 1; flex-direction: column; min-height: 0; }
.social-card { --category: #77b4ff; border-bottom: 1px solid #31212a; padding: 20px 23px; }
.social-card.platform-youtube { --category: #ff586b; }
.social-card.platform-reddit { --category: #ff985a; }
.social-meta { display: flex; align-items: center; justify-content: space-between; font: 8px monospace; color: #a8959e; }
.platform-tag { color: var(--category); font: 9px monospace; text-transform: uppercase; letter-spacing: 1.2px; }
.social-author { color: #c9b2be; font-size: 10px; line-height: 1.5; }
.social-card h3 { font-size: 13px; font-weight: 500; line-height: 1.7; overflow-wrap: anywhere; }
.social-card h3 a { text-decoration: none; white-space: pre-line; }
.social-card h3 a:hover { text-decoration: underline; text-decoration-color: var(--category); }
.social-disclaimer { font: 6px/1.7 monospace; letter-spacing: .5px; color: #a58b97; }


/* Readability pass: keep the cinematic density without relying on microtype. */
.version { font-size: 12px; }
.brand small { font-size: 10px; }
.connection { font-size: 12px; }
.quiet-button { font-size: 13px; }
.eyebrow,.map-header .eyebrow,.wire-title .eyebrow { font-size: 10px; }
.map-header p { font-size: 11px; }
.stats span { font-size: 9px; }
.country,.sea { font-size: 11px; }
.map-marker span { font-size: 11px; }
.map-hint { font-size: 11px; }
.map-footer { font-size: 10px; }
.heat-legend b { font-size: 9px; }
.timeline-top,.timeline-bottom { font-size: 9px; }
#replay,.timeline>button span { font-size: 11px; }
.wire-tabs button { font-size: 13px; }
.wire-tabs button span { font-size: 10px; }
.search input { font-size: 13px; }
.search kbd { font-size: 11px; }
.filters select { font-size: 11px; }
.results-line,.results-line button { font-size: 10px; }
.report-meta,.report-meta time { font-size: 11px; }
.category-tag { font-size: 10px; }
.bias-caption { font-size: 13px; }
.bias-axis { font-size: 9px; }
.report-card h3 { font-size: 14px; }
.report-bottom { font-size: 10px; }
.report-bottom .report-provenance { font-size: 9px; }
.report-expand { font-size: 10px; }
.report-content { grid-template-columns: minmax(0,1fr) 82px; gap: 12px; }
.report-media { height: 88px; }
.report-card.expanded .report-content { grid-template-columns: 1fr; }
.report-card.expanded .report-media { height: 140px; }
.image-credit { font-size: 8px; }
.wire-footer,.wire-footer button { font-size: 10px; }
.feed-alert { font-size: 12px; }
dialog h3 { font-size: 17px; }
dialog p { font-size: 14px; }
.feed-row { font-size: 12px; }
.credits { font-size: 12px!important; }
.social-context { font-size: 10px; }
.social-context span { font-size: 9px; }
.social-meta,.platform-tag { font-size: 10px; }
.social-author { font-size: 12px; }
.social-card h3 { font-size: 15px; }
.social-disclaimer { font-size: 8px; }

.quick-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.quick-filters button { border: 1px solid #49303a; border-radius: 999px; padding: 5px 9px; background: #120b0f; color: #c8b5bd; font: 10px/1.2 monospace; cursor: pointer; }
.quick-filters button:hover,.quick-filters button[aria-pressed="true"] { border-color: #e34760; background: #3b101b; color: #ffe7eb; }
.quick-filters button:focus-visible { outline: 2px solid #ff7184; outline-offset: 2px; }
.match-explanation { display: none; margin: 12px 0; padding: 10px 12px; border: 1px solid #4b2934; border-radius: 4px; background: #170b10; color: #d4c0c7; font-size: 11px; line-height: 1.6; }
.report-card.expanded .match-explanation { display: block; }
.match-explanation summary { color: #ff9cab; cursor: pointer; font-weight: 600; }
.match-explanation p { margin: 7px 0 3px; }
.match-explanation small { color: #a68f98; }
@media(max-width:760px) { .quick-filters { gap: 5px; } .quick-filters button { padding: 6px 9px; font-size: 11px; } }

/* Compact wire cards: headline first, with a small publisher image at the edge. */
.report-card:not(.expanded) { padding: 10px 15px; }
.report-card:not(.expanded):before { top: 12px; bottom: 12px; }
.report-card:not(.expanded).active { padding-left: 13px; }
.report-card:not(.expanded) .report-meta { margin-bottom: 5px; }
.report-card:not(.expanded) .report-content { grid-template-columns: minmax(0,1fr) 64px; gap: 12px; align-items: center; }
.report-card:not(.expanded) .report-tags { display: grid; grid-template-columns: 122px 204px; align-items: center; gap: 8px; }
.report-card:not(.expanded) .category-tag { padding: 2px 5px; font-size: 9px; white-space: nowrap; }
.report-card:not(.expanded) .bias-scale { display: inline-flex; flex: 0 0 204px; min-width: 204px; width: 204px; flex-direction: row; align-items: center; gap: 6px; }
.report-card:not(.expanded) .bias-scale { grid-column: 2; }
.report-card:not(.expanded) .bias-caption { flex: 0 0 auto; gap: 4px; font-size: 9px; letter-spacing: 0; white-space: nowrap; }
.report-card:not(.expanded) .bias-caption:before { width: 4px; height: 4px; flex-basis: 4px; }
.report-card:not(.expanded) .bias-track { flex: 0 0 112px; width: 112px; height: 8px; gap: 1px; }
.report-card:not(.expanded) .bias-axis { display: none; }
.report-card:not(.expanded) h3 { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; margin: 4px 0 5px; font-size: 14px; line-height: 1.35; }
.report-card:not(.expanded) .report-bottom { gap: 8px; font-size: 9px; line-height: 1.35; }
.report-card:not(.expanded) .report-bottom .report-provenance { display: none; }
.report-card:not(.expanded) .report-expand { font-size: 9px; }
.report-card:not(.expanded) .report-media { width: 64px; height: 64px; border-radius: 4px; }
.report-card.expanded { padding: 18px 20px; }
.report-card.expanded .report-content { grid-template-columns: minmax(0,1fr) 104px; gap: 15px; }
.report-card.expanded .report-media { width: auto; height: 150px; }
.report-card.expanded .bias-scale { display: inline-flex; }
/* Public social posts share the compact wire-card rhythm and political scale. */
.social-card { padding: 10px 15px; }
.social-card .social-meta { margin-bottom: 5px; }
.social-card .social-author { margin: 0 0 5px; font-size: 10px; line-height: 1.35; }
.social-card .report-tags { display: grid; grid-template-columns: 122px 204px; align-items: center; gap: 8px; }
.social-card .category-tag { padding: 2px 5px; font-size: 9px; white-space: nowrap; }
.social-card .bias-scale { display: inline-flex; grid-column: 2; flex: 0 0 204px; min-width: 204px; width: 204px; flex-direction: row; align-items: center; gap: 6px; }
.social-card .bias-caption { flex: 0 0 auto; gap: 4px; font-size: 9px; letter-spacing: 0; white-space: nowrap; }
.social-card .bias-caption:before { width: 4px; height: 4px; flex-basis: 4px; }
.social-card .bias-track { flex: 0 0 112px; width: 112px; height: 8px; gap: 1px; }
.social-card .bias-axis { display: none; }
.social-card h3 { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; margin: 4px 0 5px; font-size: 14px; line-height: 1.35; }

.search-guide { padding: 26px clamp(20px,5vw,72px) 42px; background: #0a0809; border-top: 1px solid #2a1a20; color: #d4c8cc; }
.search-guide details { max-width: 920px; margin: 0 auto; }
.search-guide summary { width: fit-content; color: #f0dce2; cursor: pointer; font: 12px/1.5 monospace; letter-spacing: .5px; }
.search-guide summary::marker { color: #ff5265; }
.search-guide-content { max-width: 760px; padding: 15px 0 0; font-size: 14px; line-height: 1.75; }
.search-guide-content h2 { margin: 5px 0 10px; color: #fff2f5; font-size: clamp(20px,3vw,28px); line-height: 1.25; }
.search-guide-content h3 { margin: 22px 0 5px; color: #ff8a98; font-size: 15px; }
.search-guide-content p { margin: 8px 0; }
.map-marker:not(.expanded) { display: block; width: var(--marker-size); height: var(--marker-size); min-width: var(--marker-size); min-height: var(--marker-size); aspect-ratio: 1 / 1; padding: 0; border-radius: 50%; }
.social-card .social-disclaimer { margin: 0; font-size: 9px; line-height: 1.35; }
@media(max-width:760px) {
  .report-card:not(.expanded) { padding: 11px 17px; }
  .report-card:not(.expanded).active { padding-left: 15px; }
  .report-card:not(.expanded) .report-content { grid-template-columns: minmax(0,1fr) 64px; gap: 10px; }
  .report-card:not(.expanded) .report-media { width: 64px; height: 64px; }
  .report-card.expanded .report-content { grid-template-columns: minmax(0,1fr) 82px; gap: 12px; }
  .report-card.expanded .report-media { width: auto; height: 120px; }
}
@media(max-width:1120px) {
  .report-card:not(.expanded) .report-tags { grid-template-columns: minmax(0,1fr); }
  .report-card:not(.expanded) .bias-scale { grid-column: 1; }
  .social-card .report-tags { grid-template-columns: minmax(0,1fr); }
  .social-card .bias-scale { grid-column: 1; }
}
@keyframes marker-core-pulse { 0%,100% { filter: brightness(.9); } 50% { filter: brightness(1.12); } }
@keyframes marker-halo-pulse { 0%,100% { opacity: .52; transform: scale(.86); } 50% { opacity: .9; transform: scale(1.08); } }

.social-card .social-disclaimer { font-size: 8px; }

/* Replay belongs to the news sidebar so the geographic map can use its full height. */
.wire > .timeline {
  position: relative;
  inset: auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  height: auto;
  flex: 0 0 auto;
  margin: 12px 14px 0;
  padding: 11px 12px;
  border-radius: 5px;
  box-shadow: 0 8px 24px #0007;
}
.wire > .timeline #replay { padding: 10px 11px; }
.wire > .timeline .timeline-top,
.wire > .timeline .timeline-bottom { font-size: 8px; }
.wire > .timeline .timeline-activity { height: 20px; margin: 5px 0 0; }
.wire > .timeline input { margin: 5px 0 2px; height: 9px; }
.wire > .timeline .timeline-bottom { margin-top: 3px; }
.wire-title { padding-top: 20px; }

/* The map and its markers now occupy the whole map panel. */
.map-viewport { inset: 0; }
.map-hint { top: 16px; bottom: auto; left: 20px; max-width: min(60%, 480px); }
.map-controls { right: 18px; bottom: 16px; }
.map-ready .map-footer { bottom: 19px; left: 105px; }
@media(max-width:760px) {
  .wire > .timeline { margin: 12px 12px 0; padding: 10px; gap: 9px; }
  .wire > .timeline .timeline-top,
  .wire > .timeline .timeline-bottom { font-size: 7px; }
  .map-hint { top: 12px; left: 14px; }
  .map-controls { right: 12px; bottom: 14px; }
  .map-ready .map-footer { bottom: 16px; left: 92px; }
}

/* Keep the map headline and live totals in the global header, not over the map. */
.brand-title { margin: 0; color: var(--text); font-size: 19px; font-weight: 900; letter-spacing: 3px; line-height: 1.1; }
.header-stats { position: static; top: auto; right: auto; left: auto; z-index: auto; flex: 0 0 auto; align-items: center; gap: clamp(12px,2vw,28px); margin: 0; }
.header-stats div { gap: 3px; min-width: 54px; }
.header-stats strong { color: #fff6f6; font: 700 19px/1 monospace; }
.header-stats span { color: #aa9ba0; font: 8px/1.2 monospace; letter-spacing: 1px; white-space: nowrap; }
.page-nav { display: flex; align-items: center; gap: 7px; }
.page-nav .nav-compact { display: none; }
.map-viewport { inset: 0 0 140px; }
@media(max-width:1120px) and (min-width:761px) {
  .topbar { gap: 12px; padding-left: 18px; padding-right: 18px; }
  .brand { gap: 9px; }
  .brand-title { font-size: 15px; letter-spacing: 1.6px; }
  .brand small { font-size: 7px; letter-spacing: 1px; }
  .header-stats { gap: 10px; }
  .header-stats div { min-width: 46px; }
  .header-stats strong { font-size: 16px; }
  .header-stats span { font-size: 7px; letter-spacing: .5px; }
  .connection { font-size: 8px; gap: 5px; }
  .time-window-toggle { gap: 6px; font-size: 9px; }
  .quiet-button { padding: 8px; font-size: 10px; }
  .map-viewport { inset: 0 0 140px; }
}

.image-credit { position: static; display: none; width: fit-content; padding: 0; margin: 0 0 12px; background: none; color: #d1a5b0; font: 10px/1.5 monospace; text-decoration: none; }
.report-card.expanded .image-credit { display: inline-block; }
@media(max-width:900px) and (min-width:761px) {
  .connection { display: none; }
  .page-nav { display: none; }
}
@media(max-width:760px) {
  .topbar { display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: 40px 30px; gap: 2px 8px; height: auto; min-height: 78px; padding: 5px 10px 4px; }
  .brand { grid-column: 1; grid-row: 1; gap: 8px; min-width: 0; }
  .brand-title { font-size: 13px; letter-spacing: 1.2px; }
  .brand small { font-size: 6px; letter-spacing: .7px; }
  .page-nav { display: flex; grid-column: 2; grid-row: 1; justify-self: end; gap: 4px; }
  .page-nav .nav-wide { display: none; }
  .page-nav .nav-compact { display: inline; }
  .crossings-nav { display: inline-flex; padding: 5px 6px; font-size: 7px; letter-spacing: .1px; white-space: nowrap; }
  .crossings-nav span { margin-left: 4px; }
  .connection { display: none; }
  .time-window-toggle { grid-column: 2; grid-row: 2; justify-self: end; gap: 5px; font-size: 8px; }
  .header-stats { grid-column: 1; grid-row: 2; justify-content: space-between; width: 100%; gap: 4px; }
  .header-stats div { flex-direction: row; align-items: baseline; gap: 5px; min-width: 0; }
  .header-stats strong { font-size: 14px; }
  .header-stats span { font-size: 6px; letter-spacing: .35px; }
  main { height: auto; display: flex; }
  .map-panel { height: 750px; }
  .map-viewport { inset: 0 0 140px; }
}

/* The final responsive overrides above used to reserve space for the old map overlay replay. */
.map-viewport { inset: 0; }
