/* SENTINEL v12.6 — Wall: full-screen, always-on display.

   Scale: everything is sized in em from ONE base on .wl, which follows the
   smaller of the viewport's width and height (16:9 reference): 18 px at
   1920×1080, 24 px at 2560×1440, 36 px at 3840×2160, so a 4K wall looks like
   the 1080p one, only sharper. The smallest text is max(12px, .75em): the
   12 px floor holds at every size and zoom. All text is HTML; the map draws
   no text into its canvas. */

#view-wall { padding: 0; }
#view-wall .wl {
  /* Fits the screen (18 px at 1080p … 36 px at 4K), but never below 1.125rem:
     browser zoom and the reader's own font-size setting always enlarge the text
     (200% zoom on a 1080p screen = 200% text, WCAG 1.4.4). */
  --b: min(max(1.125rem, min(0.9375vw, 1.6667vh)), 4.5rem);
  --small: max(12px, .75em);
  --gap: 1.1em;
  --pad: 1.35em;
  --sx: 0px; --sy: 0px;                 /* burn-in shift, 0–2 px, set every ~3 min */
  position: fixed;
  /* the frame is 2 px smaller than the viewport, so a 0–2 px shift never overflows */
  inset: var(--sy) calc(2px - var(--sx)) calc(2px - var(--sy)) var(--sx);
  z-index: 1;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  grid-template-areas: "top" "banner" "body" "foot";
  grid-template-columns: minmax(0, 1fr);
  font-size: var(--b);
  line-height: 1.4;
  color: var(--paper);
  background:
    radial-gradient(120% 90% at 50% 45%, color-mix(in srgb, var(--slate) 70%, transparent) 0%, transparent 62%),
    var(--ink);
  overflow: hidden;
  font-variant-numeric: tabular-nums;
}
#view-wall .wl.is-idle, #view-wall .wl.is-idle * { cursor: none; }
#view-wall .mono { font-family: var(--f-data); font-variant-numeric: tabular-nums; }
#view-wall a { color: inherit; text-decoration: none; }
#view-wall a:hover { color: var(--cyan); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
#view-wall :focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; border-radius: 3px; }

/* ── shared bits ── */
#view-wall .wl-eyebrow {
  font-family: var(--f-body); font-size: var(--small); font-weight: 700; letter-spacing: var(--track-label);
  text-transform: uppercase; color: var(--fog); display: flex; align-items: baseline; gap: .7em; flex-wrap: wrap; margin: 0;
}
#view-wall .wl-sub { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--mist); font-size: var(--small); }
#view-wall .wl-chip {
  display: inline-flex; align-items: center; font-family: var(--f-data); font-size: var(--small); line-height: 1.45;
  padding: .02em .62em; border-radius: 999px; border: 1px solid var(--rule-2); color: var(--fog); white-space: nowrap;
}
#view-wall .wl-chip--critical, #view-wall .wl-chip--system { color: var(--sev-crit); border-color: color-mix(in srgb, var(--sev-crit) 55%, transparent); }
#view-wall .wl-chip--high { color: var(--sev-high); border-color: color-mix(in srgb, var(--sev-high) 55%, transparent); }
#view-wall .wl-chip--watch { color: var(--cyan); border-color: color-mix(in srgb, var(--cyan) 45%, transparent); }
#view-wall .wl-chip--mine { background: var(--amber); border-color: var(--amber); color: var(--ink); font-weight: 600; }
#view-wall .wl-chip--new { display: none; color: var(--cyan); border-color: color-mix(in srgb, var(--cyan) 55%, transparent); background: color-mix(in srgb, var(--cyan) 10%, transparent); }
#view-wall .wl-chip--alert { color: var(--sev-crit); border-color: color-mix(in srgb, var(--sev-crit) 55%, transparent); }
#view-wall .wl-pip { display: inline-block; width: .5em; height: .5em; min-width: 7px; min-height: 7px; border-radius: 50%; background: var(--mist); flex: none; }
#view-wall .wl-empty { list-style: none; color: var(--fog); font-size: .9em; padding: .8em 0; }
#view-wall .wl-empty b { color: var(--paper); display: block; font-weight: 600; }

/* ── top bar ── */
#view-wall .wl-top {
  grid-area: top;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "brand head clocks" "meta meta ctl";
  align-items: center;
  column-gap: 1.6em; row-gap: .55em;
  padding: .95em var(--pad) .8em;
  border-bottom: 1px solid var(--rule);
}
#view-wall .wl-brand { grid-area: brand; display: inline-flex; align-items: center; gap: .55em; align-self: center; }
#view-wall .wl-brand:hover { text-decoration: none; color: var(--paper); }
#view-wall .wl-mark { width: 1.75em; height: 1.75em; display: block; }
#view-wall .wl-word { font-family: var(--f-body); font-weight: 700; font-size: 1.15em; letter-spacing: .02em; }
#view-wall .wl-tag {
  font-family: var(--f-data); font-size: var(--small); color: var(--cyan); letter-spacing: .08em; text-transform: uppercase;
  border: 1px solid color-mix(in srgb, var(--cyan) 45%, transparent); border-radius: 999px; padding: .02em .6em;
}
#view-wall .wl-headbox { grid-area: head; min-width: 0; padding-left: .85em; border-left: 1px solid var(--rule); }
#view-wall .wl-headsub {
  margin: .3em 0 0; font-family: var(--f-display); font-style: italic; font-size: .95em; color: var(--fog); line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#view-wall .wl-headsub:empty { display: none; }
#view-wall .wl-head {
  margin: 0; min-width: 0;
  font-family: var(--f-display); font-weight: 400; font-size: 1.95em; line-height: 1.12; letter-spacing: -0.012em;
  text-wrap: balance; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
#view-wall .wl-head em { font-style: italic; color: var(--amber); }
#view-wall .wl-clocks { grid-area: clocks; display: flex; gap: 1.4em; margin: 0; }
#view-wall .wl-clock { display: grid; justify-items: end; margin: 0; line-height: 1.05; }
#view-wall .wl-clock b { font-size: 1.85em; font-weight: 500; letter-spacing: .01em; color: var(--paper); }
#view-wall .wl-clock--local b { color: var(--fog); }
#view-wall .wl-clock span { font-size: var(--small); color: var(--mist); text-transform: uppercase; letter-spacing: .08em; margin-top: .3em; font-weight: 700; }

#view-wall .wl-meta { grid-area: meta; display: flex; align-items: center; gap: .5em 1.6em; flex-wrap: wrap; min-width: 0; font-size: .82em; color: var(--fog); }
#view-wall .wl-meta p { margin: 0; display: inline-flex; align-items: center; gap: .5em; white-space: nowrap; }
#view-wall .wl-health { min-width: 0; }
#view-wall .wl-health span { overflow: hidden; text-overflow: ellipsis; }
#view-wall .is-ok .wl-pip { background: var(--ok); box-shadow: 0 0 0 .2em color-mix(in srgb, var(--ok) 18%, transparent); }
#view-wall .is-warn .wl-pip { background: var(--amber); }
#view-wall .is-warn { color: var(--amber); }
#view-wall .is-down .wl-pip { background: transparent; border: 2px solid var(--sev-crit); }
#view-wall .is-down { color: var(--sev-crit); }
#view-wall .is-fill .wl-pip { background: var(--cyan); }
#view-wall .is-fill { color: var(--cyan); }
#view-wall .wl-upd span { font-family: var(--f-data); }
#view-wall .wl-space { gap: .55em; padding: .08em .75em; border: 1px solid var(--rule-2); border-radius: 999px; }
#view-wall .wl-space-k { color: var(--mist); }
#view-wall .wl-space b { font-weight: 600; color: var(--paper); }
#view-wall .wl-space.is-warn b { color: var(--amber); }
#view-wall .wl-space.is-crit b { color: var(--sev-crit); }
#view-wall .wl-space.is-none { color: var(--mist); border-style: dashed; }

#view-wall .wl-ctl { grid-area: ctl; display: flex; gap: .35em; justify-content: flex-end; flex-wrap: wrap; }
#view-wall .wl-btn {
  display: inline-flex; align-items: center; gap: .45em; min-height: 2.2em; padding: .25em .7em;
  font-family: var(--f-body); font-size: var(--small); font-weight: 600; color: var(--fog);
  background: transparent; border: 1px solid var(--rule); border-radius: var(--radius);
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);
  white-space: nowrap;
}
#view-wall .wl-btn svg { width: 1.35em; height: 1.35em; flex: none; }
#view-wall .wl-btn:hover { color: var(--paper); border-color: var(--rule-2); background: var(--slate-2); }
#view-wall .wl-btn.is-on { color: var(--amber); border-color: color-mix(in srgb, var(--amber) 50%, transparent); }
#view-wall .wl-btn:disabled { opacity: .55; cursor: not-allowed; }
#view-wall .wl-btn .on { display: none; }
#view-wall .wl-btn.is-on .on { display: inline; }
#view-wall .wl-btn.is-on .off { display: none; }
#view-wall .wl-btn--exit:hover { color: var(--paper); border-color: var(--fog); }
#view-wall .wl-btn--sm { min-height: 1.9em; margin-left: .6em; color: var(--paper); border-color: currentColor; }

/* ── failure banner ── */
#view-wall .wl-banner {
  grid-area: banner;
  display: flex; flex-wrap: wrap; align-items: center; gap: .3em .6em;
  padding: .55em var(--pad); font-size: .85em; color: var(--paper);
  background: color-mix(in srgb, var(--amber) 12%, var(--ink)); border-bottom: 1px solid color-mix(in srgb, var(--amber) 45%, transparent);
}
#view-wall .wl-banner b { color: var(--amber); font-weight: 700; }

/* ── body: priorities | stage | breaking ── */
#view-wall .wl-body {
  grid-area: body;
  display: grid;
  grid-template-columns: minmax(15em, 20em) minmax(0, 1fr) minmax(19em, 27em);
  grid-template-areas: "pri stage rail";
  min-height: 0;
}

/* priorities */
#view-wall .wl-pri { grid-area: pri; display: flex; flex-direction: column; min-height: 0; padding: 1.1em .2em 1em var(--pad); }
#view-wall .wl-pri-list { list-style: none; margin: .7em 0 0; padding: 0; overflow: hidden; flex: 1; min-height: 0; display: flex; flex-direction: column; gap: .6em; }
#view-wall .wl-pri-item {
  position: relative; padding: .8em .9em .85em 1.05em; border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--slate) 88%, transparent); border: 1px solid var(--rule);
  flex: none;
}
#view-wall .wl-pri-item::before { content: ""; position: absolute; left: 0; top: .7em; bottom: .7em; width: 3px; border-radius: 0 2px 2px 0; background: var(--rule-2); }
#view-wall .wl-pri-item.lvl-critical::before, #view-wall .wl-pri-item.lvl-system::before { background: var(--sev-crit); }
#view-wall .wl-pri-item.lvl-high::before { background: var(--sev-high); }
#view-wall .wl-pri-item.is-mine { border-color: color-mix(in srgb, var(--amber) 40%, var(--rule)); }
#view-wall .wl-pri-top { display: flex; flex-wrap: wrap; align-items: center; gap: .35em; margin: 0 0 .45em; }
#view-wall .wl-n { font-size: .95em; color: var(--mist); min-width: 1.1em; }
#view-wall .wl-pri-item:first-child .wl-n { color: var(--paper); }
#view-wall .wl-pri-t { margin: 0; font-weight: 700; font-size: 1em; line-height: 1.3; overflow-wrap: anywhere; }
#view-wall .wl-pri-why {
  margin: .3em 0 0; font-size: .8em; color: var(--fog); line-height: 1.45;
  overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
}

/* stage */
#view-wall .wl-stage { grid-area: stage; position: relative; min-height: 0; min-width: 0; overflow: hidden; }
#view-wall .wl-stage-msg { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 2em; margin: 0; color: var(--mist); font-family: var(--f-display); font-style: italic; font-size: 1.1em; }
#view-wall .wl-tip {
  position: absolute; left: 0; top: 0; z-index: 3; pointer-events: none; max-width: 22em;
  display: grid; gap: .15em; padding: .6em .8em; font-size: .85em; line-height: 1.35;
  background: color-mix(in srgb, var(--ink-2) 94%, transparent); border: 1px solid var(--rule-2); border-radius: var(--radius);
  box-shadow: var(--shadow-float);
}
#view-wall .wl-tip b { font-weight: 700; color: var(--paper); }
#view-wall .wl-tip span { color: var(--fog); }
#view-wall .wl-tip .wl-tip-k { font-family: var(--f-data); font-size: var(--small); text-transform: uppercase; letter-spacing: .06em; color: var(--cyan); }
#view-wall .wl-tip small { font-size: var(--small); color: var(--mist); }
#view-wall .wl-stage { display: grid; grid-template-rows: minmax(0, 1fr) auto; }
#view-wall .wl-stage .wl-globe { position: relative; inset: auto; grid-row: 1; min-height: 0; }
#view-wall .wl-legend { grid-row: 2; position: relative; z-index: 2; padding: .35em 1em .6em; }
#view-wall .wl-lg-bar { display: flex; align-items: center; gap: .4em 1em; min-width: 0; }
#view-wall .wl-lg-btn {
  display: inline-flex; align-items: center; gap: .9em; flex: none; min-height: 2.2em; padding: .2em .55em .2em .8em;
  background: color-mix(in srgb, var(--ink) 70%, transparent); border: 1px solid var(--rule); border-radius: 999px; color: var(--fog);
  font-family: var(--f-body); font-size: var(--small); transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
#view-wall .wl-lg-btn:hover, #view-wall .wl-legend.is-open .wl-lg-btn { border-color: var(--rule-2); color: var(--paper); }
#view-wall .wl-lg-chips { display: inline-flex; align-items: center; gap: .95em; }
#view-wall .wl-lg-chip { display: inline-flex; align-items: center; gap: .4em; color: var(--paper); white-space: nowrap; }
#view-wall .wl-lg-key { display: inline-flex; align-items: center; gap: .25em; padding-left: .8em; border-left: 1px solid var(--rule-2); font-weight: 700; letter-spacing: var(--track-label); text-transform: uppercase; }
#view-wall .wl-lg-key svg { width: 1em; height: 1em; transition: transform var(--t-fast) var(--ease); }
#view-wall .wl-legend.is-open .wl-lg-key svg { transform: rotate(180deg); }
#view-wall .wl-lg-cav { margin: 0; min-width: 0; font-size: var(--small); color: var(--mist); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#view-wall .wl-lg-cav a, #view-wall .wl-lg-note a { text-decoration: underline; text-decoration-color: var(--rule-2); text-underline-offset: .15em; }
#view-wall .wl-lg-panel {
  position: absolute; left: 1em; bottom: calc(100% - .1em); width: max-content; max-width: min(27em, calc(100% - 2em));
  padding: .75em .95em .8em; border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--ink) 88%, transparent); border: 1px solid var(--rule-2);
  backdrop-filter: blur(6px); box-shadow: var(--shadow-float);
  opacity: 0; visibility: hidden; transform: translateY(.3em);
  transition: opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), visibility 0s linear var(--t-fast);
}
#view-wall .wl-legend:hover .wl-lg-panel, #view-wall .wl-legend:has(:focus-visible) .wl-lg-panel, #view-wall .wl-legend.is-open .wl-lg-panel {
  opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
}
#view-wall .wl-lg-panel ul { list-style: none; margin: .5em 0 0; padding: 0; display: grid; grid-template-columns: auto auto 1fr; column-gap: .6em; row-gap: .3em; align-items: baseline; }
#view-wall .wl-lg-panel li { display: contents; }
#view-wall .wl-lg-n { font-size: .8em; color: var(--paper); white-space: nowrap; }
#view-wall .wl-lg-v { font-size: .8em; color: var(--fog); white-space: nowrap; justify-self: end; }
#view-wall .wl-lg-note { grid-column: 2 / -1; font-size: var(--small); color: var(--mist); margin: -.15em 0 .2em; line-height: 1.35; }
#view-wall .wl-sw { width: .7em; height: .7em; min-width: 9px; min-height: 9px; border-radius: 50%; align-self: center; }
#view-wall .sw-c2v { background: var(--sev-crit); box-shadow: 0 0 0 .2em color-mix(in srgb, var(--sev-crit) 22%, transparent); }
#view-wall .sw-c2r { background: transparent; border: 2px solid var(--cyan); }
#view-wall .sw-out { background: color-mix(in srgb, var(--amber) 18%, transparent); border: 2px solid var(--amber); border-radius: 2px; }
#view-wall .sw-hij { border-radius: 0; height: 2px; min-height: 2px; width: 1em; background: var(--sev-high); }
#view-wall .sw-ran { background: color-mix(in srgb, var(--fog) 12%, transparent); border: 1.5px solid var(--fog); }

/* breaking rail */
#view-wall .wl-rail { grid-area: rail; display: flex; flex-direction: column; min-height: 0; border-left: 1px solid var(--rule); background: color-mix(in srgb, var(--ink-2) 55%, transparent); }
#view-wall .wl-rail-h { display: flex; align-items: baseline; justify-content: space-between; gap: 1em; padding: 1.1em var(--pad) .6em 1.2em; }
#view-wall .wl-br {
  list-style: none; margin: 0; padding: 0 0 1em; overflow-y: auto; flex: 1; min-height: 0; scrollbar-width: thin; scrollbar-color: var(--rule-2) transparent;
  -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 3em), transparent);
          mask-image: linear-gradient(180deg, #000 calc(100% - 3em), transparent);
}
#view-wall .wl-br-item { position: relative; padding: .75em var(--pad) .8em 1.2em; border-top: 1px solid var(--rule); }
#view-wall .wl-br-item:first-child { border-top: 0; }
#view-wall .wl-br-item::before { content: ""; position: absolute; left: 0; top: .8em; bottom: .8em; width: 3px; border-radius: 0 2px 2px 0; background: var(--sev-info); }
#view-wall .wl-br-item.sev-4::before { background: var(--sev-crit); }
#view-wall .wl-br-item.sev-3::before { background: var(--sev-high); }
#view-wall .wl-br-item.sev-2::before { background: var(--sev-low); }
#view-wall .wl-br-item.is-mine { background: color-mix(in srgb, var(--amber) 6%, transparent); }
#view-wall .wl-br-item.is-new .wl-chip--new { display: inline-flex; }
#view-wall .wl-br-item.is-new { background: color-mix(in srgb, var(--cyan) 5%, transparent); }
#view-wall .wl-br-top { display: flex; flex-wrap: wrap; align-items: center; gap: .35em; margin: 0 0 .35em; }
#view-wall .wl-chip--kind { color: var(--paper); border-color: var(--rule-2); background: var(--slate-2); }
#view-wall .wl-chip--kind.k-ransom { border-style: dashed; color: var(--fog); background: transparent; }
#view-wall .wl-when { margin-left: auto; font-size: var(--small); color: var(--mist); white-space: nowrap; }
#view-wall .wl-br-t {
  margin: 0; font-weight: 700; font-size: .95em; line-height: 1.32; overflow-wrap: anywhere;
  overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
}
#view-wall .wl-br-d {
  margin: .25em 0 0; font-size: .8em; color: var(--fog); line-height: 1.42; overflow-wrap: anywhere;
  overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
#view-wall .wl-br-s { margin: .3em 0 0; font-size: var(--small); color: var(--mist); }
#view-wall .wl-br-s a { text-decoration: underline; text-decoration-color: var(--rule-2); text-underline-offset: .15em; }
#view-wall .wl-br-item.is-entering { animation: wl-in 700ms var(--ease) both; }
@keyframes wl-in {
  from { opacity: 0; transform: translateY(-.6em); }
  to { opacity: 1; transform: none; }
}

/* ── footer: Wire ticker + attribution ── */
#view-wall .wl-foot { grid-area: foot; border-top: 1px solid var(--rule); background: var(--ink-2); }
#view-wall .wl-ticker { border-bottom: 1px solid var(--rule); display: flex; align-items: stretch; min-width: 0; height: 2.6em; }
#view-wall .wl-tk-label {
  flex: none; display: flex; align-items: center; margin: 0; padding: 0 1em 0 var(--pad);
  font-size: var(--small); font-weight: 700; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--cyan);
  border-right: 1px solid var(--rule);
}
#view-wall .wl-tk-view {
  position: relative; flex: 1; min-width: 0; overflow: hidden; display: flex; align-items: center;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 2em, #000 calc(100% - 2em), transparent);
          mask-image: linear-gradient(90deg, transparent, #000 2em, #000 calc(100% - 2em), transparent);
}
#view-wall .wl-tk-track { display: flex; width: max-content; animation: wl-marquee var(--tk-dur, 240s) linear infinite; will-change: transform; }
#view-wall .wl-ticker:hover .wl-tk-track, #view-wall .wl-ticker:focus-within .wl-tk-track { animation-play-state: paused; }
#view-wall .wl-tk-set { list-style: none; margin: 0; padding: 0; display: flex; flex: none; }
#view-wall .wl-tk-set li, #view-wall .wl-tk-static li { display: inline-flex; align-items: baseline; gap: .6em; padding: 0 1.4em; white-space: nowrap; font-size: .9em; }
#view-wall .wl-tk-set li + li { border-left: 1px solid var(--rule-2); }
#view-wall .wl-tk-set li:first-child { border-left: 1px solid var(--rule-2); }
#view-wall .wl-tk-src { font-family: var(--f-data); font-size: var(--small); color: var(--mist); }
#view-wall .wl-tk-static { list-style: none; margin: 0; padding: 0 1em 0 0; font-size: .9em; color: var(--fog); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#view-wall .wl-tk-static li { padding-left: 1em; }
@keyframes wl-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
#view-wall .wl-attr {
  margin: .45em var(--pad) .55em; padding: 0; font-size: var(--small); color: var(--mist); line-height: 1.45;
  overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
#view-wall .wl-attr-k { font-weight: 700; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--fog); margin-right: .4em; }
#view-wall .wl-attr a { text-decoration: underline; text-decoration-color: var(--rule-2); text-underline-offset: .15em; }

/* ── night dim (22:00–06:00 local, or forced) ── */
#view-wall .wl-dimmer { position: absolute; inset: 0; pointer-events: none; z-index: 10; background: var(--ink-2); opacity: 0; transition: opacity 2s linear; }
#view-wall .wl.is-dim .wl-dimmer { opacity: .42; }

/* ── 2560+ and 4K: same composition, a touch more air ── */
@media (min-aspect-ratio: 21/9) {
  #view-wall .wl-body { grid-template-columns: minmax(16em, 22em) minmax(0, 1fr) minmax(20em, 29em); }
}

/* ── smaller windows (1280×720 and browser zoom): priorities become a strip ── */
@media (max-width: 1500px), (max-height: 760px) {
  #view-wall .wl { --pad: 1.1em; }
  #view-wall .wl-body {
    grid-template-columns: minmax(0, 1fr) minmax(18em, 25em);
    grid-template-rows: auto minmax(0, 1fr);
    grid-template-areas: "pri rail" "stage rail";
  }
  #view-wall .wl-pri { padding: .8em var(--pad) 0; }
  #view-wall .wl-pri-list { flex-direction: row; overflow: hidden; margin-top: .5em; }
  #view-wall .wl-pri-item { flex: 1 1 0; min-width: 0; padding: .6em .8em .65em 1em; }
  #view-wall .wl-pri-item:nth-child(n+4) { display: none; }
  #view-wall .wl-pri-why { -webkit-line-clamp: 2; }
  #view-wall .wl-pri-t { font-size: .92em; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  #view-wall .wl-head { font-size: 1.7em; }
  #view-wall .wl-clock b { font-size: 1.55em; }
}
@media (max-width: 1100px) {
  #view-wall .wl-top { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "brand clocks" "head head" "meta meta" "ctl ctl"; }
  #view-wall .wl-clocks { justify-self: end; }
  #view-wall .wl-headbox { padding-left: 0; border-left: 0; }
  #view-wall .wl-head { font-size: 1.5em; }
  #view-wall .wl-ctl { justify-content: flex-start; }
  #view-wall .wl-pri-item:nth-child(n+3) { display: none; }
}
/* very small or zoomed far in: one column that scrolls, nothing clipped */
@media (max-width: 1000px), (max-height: 600px) {
  #view-wall .wl { display: block; overflow-y: auto; }
  #view-wall .wl-body { display: flex; flex-direction: column; }
  #view-wall .wl-pri-list { overflow: visible; }
  #view-wall .wl-pri-item:nth-child(n+3) { display: block; }
  #view-wall .wl-pri-item:nth-child(n+4) { display: none; }
  #view-wall .wl-pri-why { display: none; }
  #view-wall .wl-top { row-gap: .4em; padding-block: .7em .6em; }
  #view-wall .wl-headsub { white-space: normal; }
  #view-wall .wl-stage { flex: none; overflow: visible; }
  #view-wall .wl-stage .wl-globe { height: max(22em, 60vh); }
  #view-wall .wl-stage-msg { bottom: auto; height: max(22em, 60vh); }
  #view-wall .wl-rail { border-left: 0; border-top: 1px solid var(--rule); }
  #view-wall .wl-br { overflow: visible; -webkit-mask-image: none; mask-image: none; }
  #view-wall .wl-attr { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  #view-wall .wl-br-item.is-entering { animation: none; }
  #view-wall .wl-tk-track { animation: none; }
  #view-wall .wl-dimmer { transition: none; }
  #view-wall .wl-lg-panel, #view-wall .wl-lg-key svg { transition: none; }
}

/* ── globe (globe builder) ── */
/* The globe/flat map mounts one .sg-globe inside the host (#wlGlobe), filling it.
   Everything here is scoped to .sg-* so it never touches the Wall's own rules. */
.sg-globe { position: absolute; inset: 0; overflow: hidden; contain: strict; transition: filter var(--t-slow) var(--ease), opacity var(--t-slow) var(--ease); }
.sg-globe > canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; outline: none; -webkit-tap-highlight-color: transparent; }
.sg-globe.is-dragging > canvas, .sg-globe.is-dragging > svg { cursor: grabbing; }
/* dim: the globe darkens in its shaders (no CSS filter on a live canvas = no extra compositing pass) */

/* optional built-in legend (createGlobe(el, { legend: true })) — the Wall normally draws its own */
.sg-legend {
  position: absolute; left: 16px; bottom: 16px; display: flex; flex-wrap: wrap; gap: 6px 14px; max-width: min(36em, 70%);
  padding: 10px 12px; border: 1px solid var(--rule); border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--ink) 82%, transparent);
  font: max(12px, .75em)/1.35 var(--f-body); color: var(--fog); pointer-events: none;
}
.sg-key { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.sg-note { flex-basis: 100%; color: var(--mist); }
.sg-sw { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
.sg-sw--c2v { background: var(--sev-crit); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sev-crit) 22%, transparent); }
.sg-sw--c2r { border: 2px solid var(--cyan); }
.sg-sw--out { background: color-mix(in srgb, var(--amber) 45%, transparent); border: 1.5px solid var(--amber); border-radius: 2px; }
.sg-sw--outp { background: color-mix(in srgb, var(--ramp-1) 60%, transparent); border: 1.5px solid var(--ramp-2); border-radius: 2px; }
.sg-sw--hij { width: 16px; height: 2px; border-radius: 1px; background: var(--sev-high); }
.sg-sw--ran { width: 11px; height: 11px; border: 1.5px solid var(--fog); background: color-mix(in srgb, var(--fog) 12%, transparent); }

/* flat (SVG) fallback: vector, non-scaling strokes, marker radii in CSS px via --u */
.sg-flat > svg { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; overflow: hidden; }
.sg-flat > svg.sg-f-top { position: absolute; inset: 0; pointer-events: none; will-change: transform; --u: .2; }
.sg-flat .sg-f-top [data-i] { pointer-events: visiblePainted; }
.sg-flat .sg-f-top .sg-f-ol { pointer-events: visibleFill; }
.sg-flat .sg-f-grat { fill: none; stroke: var(--ramp-1); stroke-opacity: .2; stroke-width: .6px; vector-effect: non-scaling-stroke; }
.sg-flat .sg-f-cty { fill: #152331; stroke: none; fill-rule: evenodd; }
.sg-flat .sg-f-cty[data-out="on"] { fill: color-mix(in srgb, var(--amber) 40%, #152331); }
.sg-flat .sg-f-cty[data-out="past"] { fill: color-mix(in srgb, var(--ramp-1) 50%, #152331); }
.sg-flat .sg-f-border { fill: none; stroke: #4c6a84; stroke-opacity: .75; stroke-width: .6px; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.sg-flat .sg-f-night { fill: #000; fill-opacity: .32; stroke: none; pointer-events: none; }
.sg-flat .sg-f-term { fill: none; stroke: #f2b544; stroke-opacity: .35; stroke-width: 1px; vector-effect: non-scaling-stroke; pointer-events: none; }
.sg-flat .sg-f-aur { fill: #3ee08f; fill-opacity: .22; stroke: #3ee08f; stroke-opacity: .35; stroke-width: 1px; vector-effect: non-scaling-stroke; pointer-events: none; }
.sg-flat .sg-f-inc { fill: none; stroke: #f2b544; stroke-width: 1.6px; vector-effect: non-scaling-stroke; }
.sg-flat .sg-f-inc.is-conf { fill: #ff9a4d; stroke: #05080c; }
.sg-flat .sg-f-aurgrid { pointer-events: none; image-rendering: auto; }
.sg-flat .sg-f-coast { fill: none; stroke: #79a7c4; stroke-opacity: .85; stroke-width: .9px; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.sg-flat .sg-f-ol { fill: transparent; stroke: var(--ramp-2); stroke-opacity: .7; stroke-width: 1px; vector-effect: non-scaling-stroke; fill-rule: evenodd; }
.sg-flat .sg-f-ol.is-on { stroke: var(--amber); stroke-opacity: .95; stroke-width: 1.4px; }
.sg-flat .sg-f-arc-hit { fill: none; stroke: transparent; stroke-width: 12px; vector-effect: non-scaling-stroke; pointer-events: stroke; }
.sg-flat .sg-f-arc-base { fill: none; stroke: var(--sev-high); stroke-opacity: .38; stroke-width: 1.1px; vector-effect: non-scaling-stroke; pointer-events: none; }
.sg-flat .sg-f-arc-dash { fill: none; stroke: var(--sev-high); stroke-width: 2px; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 10 90; pointer-events: none; animation: sg-dash 3.2s linear infinite; }
.sg-flat .sg-f-arc-end { fill: var(--sev-high); r: calc(var(--u) * var(--r)); pointer-events: none; }
@keyframes sg-dash { to { stroke-dashoffset: -100; } }
.sg-flat circle { r: calc(var(--u) * var(--r)); }
.sg-flat .sg-f-c2v { fill: var(--sev-crit); stroke: var(--ink); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.sg-flat .sg-f-c2r { fill: color-mix(in srgb, var(--cyan) 22%, transparent); stroke: var(--cyan); stroke-opacity: .9; stroke-width: 1.2px; vector-effect: non-scaling-stroke; }
.sg-flat .sg-f-ring { fill: color-mix(in srgb, var(--fog) 7%, transparent); stroke: var(--fog); stroke-opacity: .55; stroke-width: 1.1px; vector-effect: non-scaling-stroke; }
.sg-flat .sg-f-ring--hij { stroke: var(--sev-high); stroke-opacity: .9; fill: color-mix(in srgb, var(--sev-high) 8%, transparent); }
.sg-flat .sg-f-ring--out { stroke: var(--ramp-2); fill: none; }
.sg-flat .sg-f-ring--out.is-on { stroke: var(--amber); }
.sg-flat .sg-f-pulse { --r: 40; fill: none; stroke: var(--c, var(--cyan)); stroke-width: 1.5px; vector-effect: non-scaling-stroke; opacity: 0; pointer-events: none; transform-box: fill-box; transform-origin: center; }
.sg-flat .sg-f-pulse.is-go { animation: sg-pulse 2.6s cubic-bezier(.2, .7, .1, 1) 1; }
@keyframes sg-pulse { from { transform: scale(.06); opacity: 1; } to { transform: scale(1); opacity: 0; } }
.sg-flat.is-dim > svg { opacity: .62; }
.sg-flat > svg:not(.sg-f-top) { pointer-events: none; }
.sg-flat { cursor: grab; touch-action: none; }
.sg-flat.is-dragging { cursor: grabbing; }
@media (prefers-reduced-motion: reduce) {
  .sg-flat .sg-f-arc-dash, .sg-flat .sg-f-pulse.is-go { animation: none; }
  .sg-flat .sg-f-arc-dash { display: none; }
}
.sg-flat.is-reduced .sg-f-arc-dash { display: none; }
/* ── end globe ── */

/* ── v12.7 story card: click a Breaking row, read it over the Wall ───── */
/* The whole row opens the card (the title button's ::after covers it);
   the source link stays clickable above it. */
#view-wall .wl-br-item { cursor: pointer; }
#view-wall .wl-br-item:hover { background: var(--slate-2); }
#view-wall .wl-br-open {
  all: unset; cursor: pointer; color: inherit; font: inherit;
}
#view-wall .wl-br-open::after { content: ""; position: absolute; inset: 0; }
#view-wall .wl-br-open:focus-visible { outline: none; }
#view-wall .wl-br-open:focus-visible::after { outline: 2px solid var(--cyan); outline-offset: -2px; border-radius: var(--radius); }
#view-wall .wl-br-s a { position: relative; z-index: 1; }

#view-wall .wl-card {
  position: absolute; z-index: 4; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(34em, calc(100% - 2em)); max-height: calc(100% - 2em); overflow: auto;
  padding: 1.15em 1.35em 1em 1.6em; display: grid; gap: .6em;
  background: color-mix(in srgb, var(--slate) 96%, transparent);
  border: 1px solid var(--rule-2); border-radius: var(--radius-lg); box-shadow: var(--shadow-float);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
#view-wall .wl-card::before { content: ""; position: absolute; left: 0; top: 1.1em; bottom: 1.1em; width: 3px; border-radius: 0 2px 2px 0; background: var(--sev-info); }
#view-wall .wl-card.sev-4::before { background: var(--sev-crit); }
#view-wall .wl-card.sev-3::before { background: var(--sev-high); }
#view-wall .wl-card.sev-2::before { background: var(--sev-low); }
#view-wall .wl-card.is-mine { border-color: color-mix(in srgb, var(--amber) 55%, var(--rule-2)); }
#view-wall .wl-card:not([hidden]) { animation: wl-card-in 220ms var(--ease) both; }
@keyframes wl-card-in { from { opacity: 0; transform: translate(-50%, calc(-50% + .5em)); } }
#view-wall .wl-card-top { display: flex; align-items: center; gap: .4em; flex-wrap: wrap; }
#view-wall .wl-card-sev { font-family: var(--f-data); font-size: var(--small); text-transform: uppercase; letter-spacing: .06em; color: var(--mist); }
#view-wall .wl-card.sev-4 .wl-card-sev { color: var(--sev-crit); }
#view-wall .wl-card.sev-3 .wl-card-sev { color: var(--sev-high); }
#view-wall .wl-card-x {
  margin-left: auto; width: 2em; height: 2em; display: grid; place-items: center; cursor: pointer;
  background: transparent; color: var(--fog); border: 1px solid var(--rule-2); border-radius: 999px;
}
#view-wall .wl-card-x svg { width: .8em; height: .8em; }
#view-wall .wl-card-x:hover, #view-wall .wl-card-x:focus-visible { color: var(--paper); border-color: var(--cyan); outline: none; }
#view-wall .wl-card-t { margin: 0; font-family: var(--f-display); font-weight: 500; font-size: 1.45em; line-height: 1.22; color: var(--paper); overflow-wrap: anywhere; text-wrap: balance; }
#view-wall .wl-card-when { margin: 0; font-size: var(--small); color: var(--mist); }
#view-wall .wl-card-d { margin: 0; color: var(--fog); font-size: .92em; line-height: 1.45; overflow-wrap: anywhere; }
#view-wall .wl-card-f { margin: 0; display: grid; gap: .3em; padding: .6em 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
#view-wall .wl-card-f div { display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: .8em; }
#view-wall .wl-card-f dt { font-family: var(--f-data); font-size: var(--small); text-transform: uppercase; letter-spacing: .06em; color: var(--mist); padding-top: .15em; }
#view-wall .wl-card-f dd { margin: 0; font-size: .9em; color: var(--paper); overflow-wrap: anywhere; }
#view-wall .wl-card-learn { font-size: .86em; line-height: 1.45; color: var(--fog); }
#view-wall .wl-card-learn p { margin: 0; }
#view-wall .wl-card-learn b { color: var(--cyan); font-weight: 700; }
#view-wall .wl-card-why { margin-top: .3em !important; font-style: italic; }
#view-wall .wl-card-act { display: flex; flex-wrap: wrap; align-items: center; gap: .5em 1em; margin-top: .2em; }
#view-wall .wl-card-go {
  display: inline-flex; align-items: center; gap: .45em; padding: .5em .95em; border-radius: 999px;
  background: var(--cyan); color: var(--ink); font-weight: 700; font-size: .92em; text-decoration: none;
}
#view-wall .wl-card-go svg { width: .8em; height: .8em; }
#view-wall .wl-card-go:hover { background: color-mix(in srgb, var(--cyan) 85%, var(--paper)); }
#view-wall .wl-card-go:focus-visible { outline: 2px solid var(--paper); outline-offset: 2px; }
#view-wall .wl-card-nolink { font-size: var(--small); color: var(--mist); font-style: italic; }
#view-wall .wl-card-src { font-size: var(--small); color: var(--mist); }
#view-wall .wl-card-src a { text-decoration: underline; text-decoration-color: var(--rule-2); text-underline-offset: .15em; }
#view-wall .wl-card-idle { margin: 0; font-size: var(--small); color: var(--mist); opacity: .8; }
@media (prefers-reduced-motion: reduce) { #view-wall .wl-card:not([hidden]) { animation: none; } }
#view-wall .wl-sw.sw-grey { background: linear-gradient(90deg, #0b1219 0 45%, #f2b544 45% 55%, #24384a 55%); border-radius: 2px; }
#view-wall .wl-sun { white-space: nowrap; }

/* ── v12.8 region buttons + map card ─────────────────────────────────── */
#view-wall .wl-regions {
  position: absolute; z-index: 3; top: .8em; left: 50%; transform: translateX(-50%);
  display: flex; gap: 2px; padding: 3px; border-radius: 999px;
  background: color-mix(in srgb, var(--slate) 88%, transparent); border: 1px solid var(--rule-2);
}
#view-wall .wl-regions[hidden] { display: none; }
#view-wall .wl-rg {
  all: unset; cursor: pointer; padding: .3em .85em; border-radius: 999px;
  font-family: var(--f-body); font-size: var(--small); font-weight: 600; color: var(--fog); white-space: nowrap;
}
#view-wall .wl-rg:hover { color: var(--paper); background: var(--slate-2); }
#view-wall .wl-rg:focus-visible { outline: 2px solid var(--cyan); outline-offset: 1px; }
#view-wall .wl-rg[aria-pressed="true"] { color: var(--ink); background: var(--cyan); }
#view-wall .wl.is-idle .wl-regions { opacity: .55; transition: opacity .6s; }
#view-wall .wl-mc-list, #view-wall .wl-mc-pairs { margin: 0; padding: 0; list-style: none; display: grid; gap: .5em; }
#view-wall .wl-mc-list li { display: grid; gap: .1em; padding: .5em 0; border-top: 1px solid var(--rule); font-size: .9em; }
#view-wall .wl-mc-list li:first-child { border-top: 0; padding-top: 0; }
#view-wall .wl-mc-list b { color: var(--paper); }
#view-wall .wl-mc-list span { color: var(--fog); font-size: .92em; }
#view-wall .wl-mc-k { font-family: var(--f-data); font-size: var(--small) !important; text-transform: uppercase; letter-spacing: .06em; color: var(--cyan) !important; }
#view-wall .wl-mc-pairs { gap: 0; max-height: 16em; overflow: auto; border-top: 1px solid var(--rule); }
#view-wall .wl-mc-pairs li { display: grid; grid-template-columns: 5.2em minmax(0, 1fr) auto; gap: .8em; align-items: baseline; padding: .4em 0; border-bottom: 1px solid var(--rule); font-size: .88em; color: var(--fog); }
#view-wall .wl-mc-pairs .mono:first-child { color: var(--paper); }
#view-wall .wl-mc-n { color: var(--mist); font-size: var(--small); white-space: nowrap; }
#view-wall .wl-card-src-link { font-size: var(--small); color: var(--cyan); text-decoration: underline; text-decoration-color: var(--rule-2); text-underline-offset: .15em; }
#view-wall .wl-mc-one { margin: 0; padding: 0; list-style: none; display: grid; gap: .25em; font-size: .92em; color: var(--fog); }
#view-wall .wl-mc-one li:first-child { color: var(--paper); }
/* v12.9 swatches + tooltip hint */
#view-wall .wl-sw.sw-inc { border-radius: 1px; transform: rotate(45deg) scale(.82); background: var(--sev-high); box-shadow: 0 0 0 1px var(--ink); }
#view-wall .wl-sw.sw-aur { border-radius: 2px; background: linear-gradient(0deg, transparent, #3ee08f 50%, transparent); }
#view-wall .wl-tip .wl-tip-hint { color: var(--cyan); margin-top: .15em; }
/* v12.9.1 country card */
#view-wall .wl-cc-h { margin: .2em 0 0; }
#view-wall .wl-cc-list { margin: 0; padding: 0; list-style: none; display: grid; max-height: 14em; overflow: auto; border-top: 1px solid var(--rule); }
#view-wall .wl-cc-open { all: unset; cursor: pointer; display: grid; gap: .1em; width: 100%; box-sizing: border-box; padding: .45em .2em; border-bottom: 1px solid var(--rule); font-size: .88em; color: var(--paper); }
#view-wall .wl-cc-open:hover { background: var(--slate-2); }
#view-wall .wl-cc-open:focus-visible { outline: 2px solid var(--cyan); outline-offset: -2px; }
#view-wall .wl-card-go--btn { border: 0; cursor: pointer; font-family: var(--f-body); }
/* v12.10 sky swatch + on-the-hour clock glow */
#view-wall .wl-sw.sw-sky { border-radius: 2px; background: radial-gradient(circle at 30% 40%, #e8edf2 0 1px, transparent 1.5px), radial-gradient(circle at 70% 65%, #c9d6ea 0 1px, transparent 1.5px), linear-gradient(135deg, #0b1219, #1a2534); }
#view-wall .wl-clocks.is-hour .wl-clock b { animation: wl-hour 6.4s ease-in-out; }
@keyframes wl-hour { 0%, 100% { text-shadow: none; color: inherit; } 18%, 70% { text-shadow: 0 0 .5em color-mix(in srgb, var(--cyan) 55%, transparent); color: var(--paper); } }
@media (prefers-reduced-motion: reduce) { #view-wall .wl-clocks.is-hour .wl-clock b { animation: none; color: var(--cyan); } }
/* v12.12 space chip: R/S levels and the HF/GPS impact link */
#view-wall .wl-space .wl-space-risk { margin-left: .2em; padding: .02em .55em; border-radius: 999px; background: color-mix(in srgb, var(--sev-high) 22%, transparent); color: var(--paper); font-weight: 700; text-decoration: none; }
#view-wall .wl-space .wl-space-risk:hover, #view-wall .wl-space .wl-space-risk:focus-visible { background: color-mix(in srgb, var(--sev-high) 40%, transparent); outline: none; }

/* ══ v12.16 Priorities deck + Breaking conveyor ══════════════════════════ */
#view-wall { --rot-ease: cubic-bezier(.16, 1, .3, 1); }
#view-wall .wl-pri-body { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: .9em; overflow: hidden; margin-top: .7em; }
#view-wall .wl-pri-body .wl-pri-list { flex: none; margin: 0; overflow: visible; perspective: 900px; }
#view-wall .wl-pri-body .wl-pri-list .wl-pri-why { -webkit-line-clamp: 2; }
#view-wall .wl-n { font-family: var(--f-display); font-size: 1.55em; line-height: .9; color: var(--fog); min-width: .9em; margin-right: .15em; font-variant-numeric: lining-nums; }
#view-wall .wl-pri-item.is-first .wl-n, #view-wall .wl-pri-item.lvl-critical .wl-n { color: var(--sev-crit); }
#view-wall .wl-pri-item.is-first::before { animation: wl-rail 4.5s ease-in-out infinite; }
@keyframes wl-rail { 50% { box-shadow: 0 0 .9em .1em color-mix(in srgb, var(--sev-crit) 70%, transparent); } }
#view-wall .wl-pri-item.lvl-watch::before { background: var(--sev-med); }
#view-wall .wl-chip--pk { color: var(--fog); }
#view-wall .wl-chip--pnew, #view-wall .wl-br-item.is-new .wl-chip--new { color: var(--ink); background: var(--amber); border-color: var(--amber); font-weight: 700; }
#view-wall .wl-pri-item.is-arriving { transform-origin: 50% 0; animation: wl-flip-in 900ms var(--rot-ease) both; }
#view-wall .wl-pri-item { overflow: hidden; }
#view-wall .wl-pri-item.is-sweep::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 30%, color-mix(in srgb, var(--amber) 30%, transparent) 48%, transparent 66%);
  transform: translateX(-100%); animation: wl-sweep 1.6s .5s var(--ease) forwards; }
@keyframes wl-flip-in { from { transform: rotateX(-85deg); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes wl-sweep { to { transform: translateX(100%); } }

#view-wall .wl-deck { flex: none; display: flex; flex-direction: column; gap: .5em; min-width: 0; }
#view-wall .wl-deck-h { display: flex; justify-content: space-between; margin: 0; font-family: var(--f-data); font-size: var(--small); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--mist); }
#view-wall .wl-deck-stack { position: relative; height: calc(var(--dk-h, 9.4em) + 1.9em); perspective: 1100px; perspective-origin: 50% 0; }
#view-wall .wl-dk-card { position: absolute; left: 0; right: 0; top: 0; height: var(--dk-h, 9.4em); transform-origin: 50% 0;
  transition: transform .95s var(--rot-ease), opacity .8s var(--ease); will-change: transform, opacity; }
#view-wall .wl-dk-card > * { transition: opacity .5s; }
#view-wall .wl-dk-card .wl-pri-t { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
#view-wall .wl-dk-card .wl-pri-why { -webkit-line-clamp: 2; }
#view-wall .wl-dk-card[data-pos="0"] { transform: translate3d(0, 0, 0); z-index: 4; }
#view-wall .wl-dk-card[data-pos="1"] { transform: translate3d(0, .95em, 0) scale(.95); z-index: 3; opacity: .75; }
#view-wall .wl-dk-card[data-pos="2"] { transform: translate3d(0, 1.8em, 0) scale(.9); z-index: 2; opacity: .45; }
#view-wall .wl-dk-card[data-pos="3"], #view-wall .wl-dk-card[data-pos="in"] { transform: translate3d(0, 2.5em, 0) scale(.86); z-index: 1; opacity: 0; }
#view-wall .wl-dk-card:not([data-pos="0"]) { background: color-mix(in srgb, var(--slate-2) 92%, var(--paper) 8%); border-color: var(--rule-2); }
#view-wall .wl-dk-card:not([data-pos="0"]) > * { opacity: 0; }
#view-wall .wl-dk-card[data-pos="out"] { transform: translate3d(0, -.8em, 2.5em) rotateX(78deg); opacity: 0; z-index: 5;
  transition: transform .9s cubic-bezier(.5, 0, .75, 0), opacity .75s; }
#view-wall .wl-deck-foot { display: flex; align-items: center; gap: .7em; }
#view-wall .wl-pips { display: flex; gap: .3em; }
#view-wall .wl-pips i { width: .38em; height: .38em; border-radius: 50%; background: var(--rule-2); transition: background .4s, transform .4s; }
#view-wall .wl-pips i.on { background: var(--amber); transform: scale(1.3); }
#view-wall .wl-bar { flex: 1; height: 2px; background: var(--rule); border-radius: 2px; overflow: hidden; }
#view-wall .wl-bar i { display: block; height: 100%; width: 100%; transform-origin: 0 50%; transform: scaleX(0);
  background: linear-gradient(90deg, color-mix(in srgb, var(--amber) 30%, transparent), var(--amber)); }
@keyframes wl-bar { from { transform: scaleX(0); } to { transform: scaleX(1); } }
#view-wall .is-paused .wl-bar i { animation-play-state: paused !important; }
#view-wall .wl-deck.is-single .wl-deck-foot, #view-wall .wl-deck.is-single .wl-deck-next { display: none; }
#view-wall .wl-deck.is-single .wl-deck-stack { height: var(--dk-h, 9.4em); }
#view-wall .wl-deck-next { margin: 0; font-family: var(--f-data); font-size: var(--small); color: var(--mist); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#view-wall .wl-deck-next b { font-weight: 400; color: var(--fog); }

/* Breaking: kind colours (edge + chip), conveyor, hover lift */
#view-wall .wl-br-item.k-kev, #view-wall .k-kev { --k: var(--sev-crit); }
#view-wall .wl-br-item.k-incident, #view-wall .k-incident { --k: #ff8fb1; }
#view-wall .wl-br-item.k-govioc, #view-wall .k-govioc { --k: var(--amber); }
#view-wall .wl-br-item.k-ics, #view-wall .k-ics { --k: var(--sev-high); }
#view-wall .wl-br-item.k-advisory, #view-wall .k-advisory { --k: #b7e36b; }
#view-wall .wl-br-item.k-edge, #view-wall .k-edge { --k: #5fd4c0; }
#view-wall .wl-br-item.k-outage, #view-wall .k-outage { --k: #a9b8c9; }
#view-wall .wl-br-item.k-hijack, #view-wall .k-hijack { --k: #6f86ff; }
#view-wall .wl-br-item.k-leak, #view-wall .k-leak { --k: #9fb0ff; }
#view-wall .wl-br-item.k-ransom, #view-wall .k-ransom { --k: #b39cff; }
#view-wall .wl-br-item.k-disruption, #view-wall .k-disruption { --k: var(--ok); }
#view-wall .wl-br-item.k-news, #view-wall .k-news { --k: var(--cyan); }
#view-wall .wl-br-item[class*=" k-"]::before { background: var(--k); }
#view-wall .wl-br-item.sev-4::after { content: ""; position: absolute; left: .55em; top: .95em; width: .32em; height: .32em; border-radius: 50%; background: var(--sev-crit); box-shadow: 0 0 .5em var(--sev-crit); }
#view-wall .wl-chip--kind[class*=" k-"] { color: var(--k); border-color: color-mix(in srgb, var(--k) 45%, transparent); background: color-mix(in srgb, var(--k) 8%, transparent); }
#view-wall .wl-chip--kind.k-ransom { border-style: dashed; }
#view-wall .wl-br-n { font-weight: 700; margin-left: .25em; }
#view-wall .wl-br-kinds { display: flex; flex-wrap: wrap; gap: .25em .8em; margin: -.2em 0 .5em; padding: 0 var(--pad) 0 1.2em; font-family: var(--f-data); font-size: var(--small); color: var(--mist); }
#view-wall .wl-br-kinds span::before { content: ""; display: inline-block; width: .55em; height: .55em; border-radius: 2px; background: var(--k); margin-right: .4em; vertical-align: .02em; }
#view-wall .wl-br-names { margin: .3em 0 0; font-size: .8em; color: var(--fog); line-height: 1.45; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
#view-wall .wl-br-item.is-group { box-shadow: 0 4px 0 -2px color-mix(in srgb, var(--k) 38%, transparent), 0 8px 0 -4px color-mix(in srgb, var(--k) 20%, transparent); margin-bottom: 8px; }

#view-wall .wl-br.is-conveyor { overflow: hidden; perspective: 1000px; }
#view-wall .wl-br.is-conveyor .wl-br-item { transform-origin: 50% 0; transition: transform .35s var(--rot-ease), box-shadow .35s, background .3s; }
#view-wall .wl-br.is-conveyor .wl-br-item:hover { transform: translate3d(-.35em, 0, 2.2em); background: var(--slate-2); z-index: 2;
  box-shadow: 0 1.4em 3em -1.1em rgba(0, 0, 0, .85), 0 0 0 1px color-mix(in srgb, var(--k, var(--cyan)) 35%, transparent), -.5em 0 1.5em -.8em var(--k, var(--cyan)); }
#view-wall .wl-br.is-conveyor .wl-br-item:hover .wl-br-t, #view-wall .wl-br.is-conveyor .wl-br-item:hover .wl-br-d, #view-wall .wl-br.is-conveyor .wl-br-item:hover .wl-br-names { -webkit-line-clamp: unset; }
#view-wall .wl-br-item.is-leaving { overflow: hidden; padding-block: 0; opacity: 0; border-top-color: transparent;
  transform: translate3d(0, -.6em, -2em) rotateX(70deg);
  transition: height .7s var(--rot-ease) .12s, padding .7s var(--rot-ease) .12s, opacity .5s, transform .6s cubic-bezier(.5, 0, .75, 0); }
#view-wall .wl-br-item.is-rising { animation: wl-rise 900ms var(--rot-ease) both; }
@keyframes wl-rise { from { transform: translate3d(0, 1.6em, -3em) rotateX(-50deg); opacity: 0; } to { transform: none; opacity: 1; } }
#view-wall .wl-br-item.is-entering { animation: wl-arrive 1s var(--rot-ease) both, wl-glow 2.8s .5s var(--ease); }
@keyframes wl-arrive { from { transform: translate3d(0, -1.6em, 2.5em) rotateX(-70deg); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes wl-glow { from { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--amber) 90%, transparent), 0 0 1.6em -.2em color-mix(in srgb, var(--amber) 55%, transparent); } to { box-shadow: inset 0 0 0 1px transparent, 0 0 1.6em -.2em transparent; } }
#view-wall .wl-br-wrap { list-style: none; text-align: center; padding: .55em 0; border-top: 1px dashed var(--rule-2); font-family: var(--f-data); font-size: var(--small); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--mist); }
#view-wall .wl-br-wrap.is-leaving { overflow: hidden; padding-block: 0; opacity: 0; transition: height .6s var(--rot-ease), padding .6s, opacity .4s; }
#view-wall .wl-br-foot { display: flex; align-items: center; gap: .7em; padding: .35em var(--pad) .6em 1.2em; }
#view-wall .wl-paused { font-family: var(--f-data); font-size: var(--small); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); background: var(--cyan); border-radius: 3px; padding: .05em .45em; opacity: 0; transition: opacity .25s; }
#view-wall .wl-rail.is-paused .wl-paused { opacity: 1; }

@media (max-width: 1500px), (max-height: 760px) {
  #view-wall .wl-pri-body { flex-direction: row; gap: .6em; margin-top: .5em; overflow: visible; }
  #view-wall .wl-pri-body .wl-pri-list { flex: 2 1 0; min-width: 0; }
  #view-wall .wl-deck { flex: 1 1 0; --dk-h: 7.2em; gap: .35em; }
  #view-wall .wl-deck-h { display: none; }
  #view-wall .wl-deck-next { display: none; }
  #view-wall .wl-dk-card .wl-pri-why { -webkit-line-clamp: 1; }
  #view-wall .wl-deck-stack { height: calc(var(--dk-h) + 1.1em); }
  #view-wall .wl-dk-card[data-pos="1"] { transform: translate3d(0, .55em, 0) scale(.96); }
  #view-wall .wl-dk-card[data-pos="2"] { transform: translate3d(0, 1.05em, 0) scale(.92); }
}
@media (max-width: 1100px) { #view-wall .wl-pri-body .wl-pri-list { flex: 1 1 0; } }
@media (max-width: 1000px), (max-height: 600px) {
  #view-wall .wl-pri-body { flex-direction: column; overflow: visible; }
  #view-wall .wl-br-foot { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  #view-wall .wl-dk-card, #view-wall .wl-dk-card[data-pos="out"] { transition: opacity .3s; }
  #view-wall .wl-dk-card[data-pos="out"] { transform: none; }
  #view-wall .wl-pri-item.is-arriving, #view-wall .wl-pri-item.is-sweep::after, #view-wall .wl-br-item.is-rising, #view-wall .wl-br-item.is-entering, #view-wall .wl-pri-item.is-first::before { animation: none; }
  #view-wall .wl-br.is-conveyor .wl-br-item:hover { transform: none; }
}
