:root{color-scheme:dark;--bg:#050b09;--case:#07120f;--border:#35574c;--text:#ecf7f1;--green:#6dffa0;--red:#ff6669}
*{box-sizing:border-box}html{height:100%;background:var(--bg)}body{min-height:100%;margin:0;padding:clamp(10px,3vw,24px) max(10px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));display:flex;flex-direction:column;align-items:center;gap:12px;background:radial-gradient(ellipse at 50% 5%,#173a34,#020807 65%);color:var(--text);font-family:IBMPlex,'Share Tech Mono',ui-monospace,monospace}
button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.receiver{width:min(100%,660px);min-height:min(730px,calc(100svh - 85px));display:flex;flex-direction:column;padding:clamp(12px,2.5vw,22px);gap:12px;border:2px solid #2b4b41;border-radius:12px;background:linear-gradient(140deg,#0a1713,#020a08);box-shadow:inset 0 0 0 2px #101d18,0 15px 55px #0008}
.topline{display:flex;align-items:center;gap:9px;font-size:clamp(9px,2.4vw,13px);font-weight:800;letter-spacing:.07em;white-space:nowrap}.lamp,.air-dot{display:inline-block;flex:none;width:8px;height:13px;background:#44ff83;box-shadow:0 0 9px #44ff83}.on-air{margin-left:auto;color:#ff8d91;font-size:10px}.air-dot{width:7px;height:7px;border-radius:50%;background:#ff6467;box-shadow:0 0 10px #ff6467}.brandline{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:12px 4px;gap:8px}.identity{display:flex;flex-direction:column;min-width:0}.identity span{color:#40e987;font-size:11px;font-weight:bold}.identity strong{font-family:Arial,sans-serif;font-size:clamp(16px,5vw,27px);font-weight:800;letter-spacing:-.06em}.brandline #story-count{white-space:nowrap;color:var(--green);font-size:clamp(10px,2.5vw,13px);text-shadow:0 0 8px #26bb5a}
.display{border:2px solid #27634b;border-radius:5px;background:linear-gradient(180deg,#00130b,#000b07);box-shadow:inset 0 0 15px #0c271b;flex:1;min-height:190px;padding:clamp(14px,4vw,26px);display:flex;flex-direction:column;overflow-wrap:anywhere}.display .channel,.display .source{margin:0 0 4px;color:var(--red);font-size:clamp(12px,3vw,16px);font-weight:700}.display h1{font:700 clamp(18px,5vw,30px)/1.3 IBMPlex,ui-monospace,monospace;letter-spacing:.04em;color:var(--green);text-shadow:0 0 10px #1e8e49;max-height:45svh;overflow:auto;margin:14px 0 10px}.display-status{margin:auto 0 0;text-align:right;color:#7ca88d;font-size:10px;letter-spacing:.1em}
.transport{display:grid;grid-template-columns:minmax(66px,1fr) .75fr minmax(100px,1.8fr) .75fr;gap:2px;min-height:84px}.transport button{border:1px solid #42544c;border-radius:2px;color:#e8f7ed;background:#25352f;font-size:clamp(10px,2.7vw,15px);font-weight:800}.transport-actions{display:grid;grid-template-rows:1fr 1fr;gap:2px}.transport .next{background:linear-gradient(#1cbd62,#066632);box-shadow:inset 0 1px 2px #a0ffc680,0 0 13px #0e833f66;border-color:#53c681}.transport button:active{filter:brightness(1.25)}.transport button:disabled{opacity:.4;cursor:default}
.receiver-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:49px;color:#8bb59d;font-size:10px}.receiver-foot #receiver-note{max-width:60%;line-height:1.4}.receiver-foot button{border:1px solid #4b8061;background:#102c1e;color:#a6fbc5;border-radius:3px;font-weight:800;padding:12px 16px;letter-spacing:.12em}
.exit{width:min(100%,660px);display:flex;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:.12em;color:#789989}.exit a{color:#bbdfc8;text-decoration:none}
dialog{width:min(95vw,520px);max-height:82svh;background:#07140f;border:2px solid #3c835a;border-radius:8px;color:var(--text);padding:18px;box-shadow:0 30px 70px #000c}dialog::backdrop{background:#000b}dialog header{display:flex;justify-content:space-between;align-items:center}dialog h2{font-size:16px;letter-spacing:.1em;margin:0}dialog header button{border:1px solid #688b75;background:transparent;color:var(--text);font-size:26px;width:40px;height:40px}dialog p{font-size:12px;color:#a9c7b6}.band-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:auto}.band-options button{padding:12px 8px;text-align:left;border:1px solid #315b48;background:#10281c;color:#c3f3d4;font-size:11px;min-height:45px}.band-options button[aria-current=true]{background:#195b35;border-color:#69d898;color:white}
@media(max-width:380px){.receiver{padding:10px;gap:9px}.transport{grid-template-columns:minmax(62px,1fr) .7fr 1.5fr .7fr;min-height:72px}.receiver-foot button{padding:10px}.band-options{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Original APNU NewsPager hardware grammar, isolated from the newsroom.
   Stable viewport units prevent iPhone browser chrome from stretching the chassis.
   News changes inside the glass; the enclosure and transport never reflow. */
@font-face{font-family:'DSEG14ClassicRegular';src:url('/fonts/DSEG14Classic-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:block}
@font-face{font-family:'IBM Plex Mono';src:url('/fonts/IBMPlexMono-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'VT323';src:url('/fonts/VT323.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Jersey 10';src:url('/fonts/Jersey10.ttf') format('truetype');font-display:swap}
body{font-family:'IBM Plex Mono','Share Tech Mono',ui-monospace,monospace}
.receiver{
  display:grid;grid-template-rows:112px minmax(0,1fr) 86px 48px;
  height:clamp(445px,calc(100svh - 85px),720px);min-height:0;max-height:none;
  overflow:hidden;gap:11px;
  border:3px solid #343e3b;border-radius:8px;
  background:linear-gradient(155deg,#101b19,#030907 58%,#070e0b);
  box-shadow:inset 0 0 0 2px #67756d55,inset 0 2px 15px #000b,0 16px 38px #0008;
}
.receiver-head{min-height:0;overflow:hidden}
.topline{height:36px;min-height:36px;border-bottom:1px solid #4c6259;
  font-family:'Jersey 10','VT323',monospace;font-size:clamp(14px,3.3vw,21px);
  letter-spacing:.09em;color:#e5f0e9}
.brandline{height:76px;min-height:76px;padding:9px 3px 10px}
.identity span{font-family:'Michroma',sans-serif;font-size:8px;letter-spacing:.12em}
.identity strong{font-family:'Michroma','Arial Narrow',sans-serif;
  font-size:clamp(12px,3.45vw,21px);font-weight:600;letter-spacing:-.065em;white-space:nowrap}
.brandline #story-count{display:block;min-width:75px;text-align:right;overflow:hidden;
  font:400 clamp(10px,2.5vw,14px)/1.2 'DSEG14ClassicRegular',monospace;color:#85ffb3}
.display{min-height:0;height:100%;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;
  padding:clamp(12px,3vw,20px);border:2px solid #316c55;background:radial-gradient(ellipse at 50% 35%,#092015 0%,#030b08 76%);
  box-shadow:inset 0 0 0 2px #010905,inset 0 0 15px #214d3855}
.display .channel,.display .source{margin:0;line-height:1.2;min-height:20px;
  font:400 clamp(11px,2.85vw,15px)/1.3 'DSEG14ClassicRegular',monospace;
  letter-spacing:.015em;color:#ff5357;text-shadow:0 0 5px #e32336aa}
.display h1{min-width:0;min-height:0;height:auto;max-height:none;overflow:auto;
  scrollbar-width:thin;overscroll-behavior:contain;overflow-wrap:break-word;word-spacing:.5em;
  margin:9px 0 0;font:400 clamp(12px,3.3vw,19px)/1.48 'DSEG14ClassicRegular',monospace;
  letter-spacing:.06em;color:#8cff9c;text-shadow:0 0 3px #5bff83a8,0 0 9px #21ff5855}
.display-status{margin:0;min-height:19px;padding-top:4px;align-self:stretch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:transparent;z-index:3}
.transport{height:86px;min-height:0;align-self:stretch;grid-template-columns:minmax(60px,1fr) minmax(40px,.7fr) minmax(92px,1.45fr) minmax(40px,.7fr)}
.transport button{font:700 clamp(10px,2.6vw,14px)/1.12 'Share Tech Mono','IBM Plex Mono',monospace}
.transport .next{font-size:clamp(12px,3.25vw,17px);text-shadow:0 0 5px #c3ffde}
.receiver-foot{height:48px;min-height:0;overflow:hidden}
.receiver-foot #receiver-note{display:block;max-height:40px;overflow:hidden}
.receiver-foot #band-toggle{flex:none;padding:10px 14px;min-height:42px;
  border:2px solid #4b8061;box-shadow:inset 0 1px 2px #acffbf33,0 2px 0 #061208}
@media(max-width:380px){.receiver{grid-template-rows:100px minmax(0,1fr) 76px 46px;padding:10px;gap:8px}
 .topline{height:32px;min-height:32px}.brandline{height:68px;min-height:68px}
 .transport{height:76px}.display h1{font-size:12px}
 .identity strong{font-size:12px}.brandline #story-count{min-width:64px;font-size:10px}}

/* SIGNAL ONLINE: fixed label, animated hardware lamp only. */

.topline .on-air{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;margin-left:auto;
  font:700 clamp(8px,2.35vw,11px)/1 'Share Tech Mono','IBM Plex Mono',monospace;
  letter-spacing:.045em;white-space:nowrap;color:#b3e7c9;text-shadow:0 0 4px #45986a55}
.topline .air-dot{position:relative;display:block;flex:0 0 7px;width:7px;height:7px;
  background:#7bff9f;box-shadow:0 0 3px #8affaa,0 0 7px #3ee98788;
  animation:apnu-online-lamp 1.65s ease-in-out infinite}
@keyframes apnu-online-lamp{0%,100%{opacity:.75;box-shadow:0 0 2px #8affaa,0 0 5px #3ee98766}
  50%{opacity:1;box-shadow:0 0 4px #b8ffc8,0 0 9px #3ee987cc}}
/* Real display glass: 1px nearly transparent horizontal phosphor raster.
   The raster never covers the text with opaque paint or captures a touch. */
.display{position:relative;isolation:isolate}
.display::before{content:'';position:absolute;inset:2px;z-index:2;pointer-events:none;
  border-radius:2px;opacity:.12;
  background:repeating-linear-gradient(to bottom,transparent 0px,transparent 2px,#000 2px,#000 3px)}
.display::after{content:'';position:absolute;inset:2px;z-index:0;pointer-events:none;
  border-radius:2px;background:linear-gradient(160deg,#b2ffd908 0%,transparent 17%,transparent 82%,#0005 100%)}
.display>*{position:relative;z-index:1}
/* Crisp LED glyphs remain the visual priority, never blur or dim headlines. */
.display h1{color:#adffb9;text-shadow:0 0 2px #56ff87aa,0 0 6px #20df6155;
  line-height:1.58;letter-spacing:.07em}
.display .channel,.display .source{color:#ff7074;text-shadow:0 0 2px #fd4d53a8,0 0 6px #ef283755}
.display-status{color:#a4cbb4;letter-spacing:.035em}
/* Slightly more machined depth, zero positional change on touch. */
.transport button{box-shadow:inset 0 1px 0 #caffd329,inset 0 -2px 0 #0005}
.transport button:active:not(:disabled){filter:brightness(1.12);box-shadow:inset 0 2px 4px #0009}
.transport .next{box-shadow:inset 0 1px 0 #dcffe2a0,inset 0 -2px 0 #04471f,0 0 9px #0e833f55}
@media(prefers-reduced-motion:reduce){.topline .air-dot{animation:none;opacity:1}}

/* APNU NewsPager: restrained hardware wordmark and working band selector. */
.topline .receiver-settings{border:0;background:none;padding:2px 5px;color:inherit;font:normal 19px/1 Arial,sans-serif;letter-spacing:normal;white-space:nowrap;cursor:pointer}
.topline .receiver-settings:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.identity .brand-wordmark{display:block;font-family:'Michroma','Arial Narrow',sans-serif;font-size:clamp(13px,3.65vw,22px);font-weight:400;line-height:1.15;letter-spacing:-.065em;white-space:nowrap;color:#f2f9f4}
.identity .brand-wordmark strong{font-weight:800;letter-spacing:inherit}
.identity .brand-wordmark #brand-mode{font:inherit;font-weight:400;letter-spacing:inherit;color:inherit}
/* Gestures apply only to headline glass. Vertical scrolling remains native. */
.display #channel-title{touch-action:pan-y}

/* NewsPager instrument identity: one restrained brand cursor, no fascia lamp. */
.topline .receiver-settings{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;flex:0 0 30px;padding:0;
  color:#b1cbbd;border:1px solid transparent;border-radius:3px;
  background:transparent;line-height:1;
}
.topline .receiver-settings svg{display:block;width:17px;height:17px}
.topline .receiver-settings:active{background:#183026}
.identity .maker-mark{display:inline-flex;align-items:center;align-self:flex-start;gap:2px;line-height:1.15}
.identity .maker-cursor{
  display:inline-block;width:2px;height:8px;flex:none;
  background:#98ffb7;box-shadow:0 0 4px #45ed8d88;
  animation:apnu-maker-cursor 1.1s steps(1,end) infinite;
}
@keyframes apnu-maker-cursor{0%,52%{opacity:1}53%,100%{opacity:0}}
/* Signal lamp: warm red heartbeat, not another green brand element. */
.topline .on-air{color:#f4b0b2;text-shadow:0 0 5px #e43a4e44}
.topline .air-dot{
  background:#ff4d60;box-shadow:0 0 4px #ff667a,0 0 9px #ff364d99;
  animation:apnu-red-signal 1.8s ease-in-out infinite;
}
@keyframes apnu-red-signal{
  0%,100%{opacity:.55;box-shadow:0 0 2px #ff6071,0 0 5px #dd273d66}
  48%{opacity:1;box-shadow:0 0 5px #ff8190,0 0 13px #f5284bcc,0 0 20px #f5284b55}
}
@media(prefers-reduced-motion:reduce){
  .identity .maker-cursor,.topline .air-dot{animation:none;opacity:1}
}

/* Personal RSS tuner: a separate, compact settings dialog, never a second BANDS menu. */
#rss-dialog{width:min(94vw,500px)}
#rss-form{margin:16px 0 8px}
#rss-form label{display:block;margin-bottom:8px;color:#9ac6ac;font:700 11px/1.25 'Share Tech Mono',monospace;letter-spacing:.08em}
.rss-entry{display:flex;gap:7px;align-items:stretch}
.rss-entry input{flex:1;min-width:0;height:43px;padding:0 11px;border:1px solid #447356;background:#071b11;color:#e8f7ed;border-radius:2px;font:13px/1.3 'Share Tech Mono',monospace}
.rss-entry input:focus-visible{outline:2px solid #80ecaa;outline-offset:2px}
.rss-entry button,.rss-source button{border:1px solid #4e9b70;border-radius:2px;padding:0 13px;min-height:41px;background:#163c27;color:#d7ffe4;font:700 12px/1 'Share Tech Mono',monospace}
.rss-entry button:disabled,.rss-source button:disabled{opacity:.5}
#rss-feedback{min-height:34px;line-height:1.5;margin:10px 0 14px}
.rss-sources{display:grid;gap:6px;max-height:34svh;overflow-y:auto}
.rss-source{display:flex;gap:6px;align-items:center;padding:7px;border:1px solid #244735;background:#0c2015}
.rss-source-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d2f4dc;font:12px/1.4 'Share Tech Mono',monospace}
.rss-source .rss-remove{flex:0 0 36px;width:36px;padding:0;font-size:19px;background:#14261b;border-color:#395443}
@media(max-width:380px){.rss-entry input{font-size:12px}.rss-entry button{padding:0 9px}}

/* One-time glass affordance: hairline chevrons, not instructional copy. */
.display .swipe-mark{position:absolute;top:52%;width:9px;height:9px;z-index:3;
  border-top:1px solid #9bf5be;border-right:1px solid #9bf5be;
  opacity:0;pointer-events:none;filter:drop-shadow(0 0 3px #78e8a355)}
.display .swipe-left{left:7px;transform:translateY(-50%) rotate(-135deg)}
.display .swipe-right{right:7px;transform:translateY(-50%) rotate(45deg)}
.display.swipe-intro .swipe-mark{animation:apnu-swipe-discover 5.4s ease-out both}
@keyframes apnu-swipe-discover{0%,12%{opacity:0}22%,50%{opacity:.6}75%,100%{opacity:0}}
/* The headline is the only vertical scroll lane. Keep it fully clipped to its
   designated grid track; the bottom status never receives overflow. */
.display #channel-title{align-self:stretch;min-height:0;max-height:100%;overscroll-behavior:contain}
@media(prefers-reduced-motion:reduce){.display.swipe-intro .swipe-mark{animation:none}}

/* Standalone NewsPager teleprompter drum. The fixed screen's third grid row
   is a genuine bounded scroll viewport; duplicated text makes the cycle seamless.
   All chassis geometry, channels and transport controls remain untouched. */
.display .headline-stage{grid-row:3;position:relative;min-width:0;min-height:0;overflow:hidden;margin:9px 0 0;isolation:isolate}
.display .headline-window{width:100%;height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;
  touch-action:pan-y;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}
.display .headline-window::-webkit-scrollbar{display:none}
.display .headline-wheel{display:flex;flex-direction:column;gap:22px;min-width:0}
.display .headline-wheel #channel-title,.display .headline-wheel #headline-echo{
  flex:none;display:block;position:static;min-height:0;height:auto;max-height:none;
  margin:0;padding:0;border:0;overflow:visible;
  color:#adffb9;font:400 clamp(12px,3.3vw,19px)/1.58 'DSEG14ClassicRegular',monospace;
  letter-spacing:.07em;word-spacing:.5em;overflow-wrap:break-word;
  text-shadow:0 0 2px #56ff87aa,0 0 6px #20df6155;
}
.display .headline-wheel #headline-echo[hidden]{display:none}
@media(max-width:380px){.display .headline-wheel #channel-title,.display .headline-wheel #headline-echo{font-size:12px}}
/* Soft curved-glass falloff only when the story extends beyond the window. */
/* A wheel shadow belongs to movement only, never to the held first line.
   Confine it to the top of the headline viewport, beneath the red source. */
.display .headline-stage{-webkit-mask-image:none;mask-image:none}
.display .headline-stage::before{
  display:block;content:'';position:absolute;top:0;left:0;right:0;height:13px;z-index:3;
  pointer-events:none;opacity:0;background:linear-gradient(to bottom,#030c08ee,transparent);
}
.display .headline-stage.is-wheeling::before{
  animation:apnu-wheel-shadow var(--wheel-duration,13s) linear infinite;
}
.display .headline-stage::after{display:none}
@keyframes apnu-wheel-shadow{
  0%,8%{opacity:0}
  12%,92%{opacity:1}
  98%,100%{opacity:0}
}
@keyframes apnu-news-wheel{
  0%,10%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(0,calc(-1 * var(--wheel-distance,0px)),0)}
}
@media(prefers-reduced-motion:reduce){
  .display .headline-stage.is-wheeling{-webkit-mask-image:none;mask-image:none}
  .display .headline-wheel{animation:none!important}
}
/* Brief discoverability, recurring on each headline rather than only once. */
.display.swipe-intro .swipe-mark{animation:apnu-swipe-discover-repeat 3.2s ease-out both}
@keyframes apnu-swipe-discover-repeat{0%,8%{opacity:0}22%,48%{opacity:.52}83%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .display .headline-stage::before,.display .headline-stage::after{transition:none}
  .display.swipe-intro .swipe-mark{animation:none}
}

/* Product mark stays NewsPager. PLAYLIST is a distinct device-mode legend,
   on the exact same baseline, not part of the house wordmark. */
.identity .brand-row{display:inline-flex;align-items:baseline;gap:10px;white-space:nowrap;min-width:0}
.identity .brand-row .brand-wordmark{display:inline-flex;align-items:baseline;flex:none;white-space:nowrap}
.identity .brand-row .brand-wordmark span{font:inherit;letter-spacing:inherit;color:inherit}
.identity .brand-row .playlist-indicator{
  display:inline-block;flex:none;white-space:nowrap;
  font:400 clamp(9px,2vw,12px)/1 'Share Tech Mono','IBM Plex Mono',monospace;
  letter-spacing:.08em;color:#91b6a0;
}
.identity .brand-row .playlist-indicator[hidden]{display:none!important}
@media(max-width:430px){
  .identity .brand-row{gap:7px}
  .identity .brand-row .brand-wordmark{font-size:clamp(12px,3.5vw,16px)}
  .identity .brand-row .playlist-indicator{font-size:9px;letter-spacing:.025em}
}
@media(prefers-reduced-motion:reduce){.display .headline-stage.is-wheeling::before{animation:none;opacity:0}}

/* A restrained instrument-style rightward handoff after a full read.
   The glass transitions, not the cabinet or physical controls. */
.display.auto-handoff .headline-stage{
  animation:apnu-pager-slide-right 230ms ease-in forwards;
}
.display.auto-enter .headline-stage{
  animation:apnu-pager-slide-in 230ms ease-out both;
}
@keyframes apnu-pager-slide-right{
  from{transform:translateX(0);opacity:1}
  to{transform:translateX(18px);opacity:.15}
}
@keyframes apnu-pager-slide-in{
  from{transform:translateX(-16px);opacity:.25}
  to{transform:translateX(0);opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .display.auto-handoff .headline-stage,.display.auto-enter .headline-stage{animation:none}
}

/* Short landscape phones: keep the established portrait cabinet untouched.
   Override its 445px clamp and dedicate real height to the headline glass.
   The page, not the glass or transport, may scroll if browser chrome is tall. */
@media (orientation:landscape) and (max-height:520px) and (pointer:coarse){
  html,body{height:auto;min-height:100%;overflow-y:auto}
  body{padding:8px max(8px,env(safe-area-inset-right)) 12px max(8px,env(safe-area-inset-left));gap:8px}
  .receiver{
    width:min(100%,760px);height:auto;min-height:410px;max-height:none;
    grid-template-rows:78px minmax(183px,1fr) 72px 38px;
    gap:7px;padding:10px;overflow:visible;
  }
  .receiver-head{height:78px;overflow:hidden}
  .topline{height:26px;min-height:26px}
  .brandline{height:52px;min-height:52px;padding:5px 3px}
  .brandline #story-count{font-size:12px}
  .display{height:auto;min-height:183px;padding:10px 13px;grid-template-rows:auto auto minmax(0,1fr) auto}
  .display .channel,.display .source{min-height:17px;line-height:1.2;font-size:12px}
  .display .headline-stage{margin-top:5px;min-height:0}
  .display .headline-wheel #channel-title,.display .headline-wheel #headline-echo{font-size:clamp(12px,1.8vw,16px);line-height:1.48}
  .display-status{min-height:17px;font-size:9px;padding-top:2px}
  .transport{height:72px;min-height:72px}
  .receiver-foot{height:38px;min-height:38px}
  .receiver-foot #band-toggle{min-height:34px;padding:5px 12px}
  .exit{width:min(100%,760px);padding-bottom:8px}
}
/* Extra-short browser viewports retain a readable screen and scroll naturally. */
@media (orientation:landscape) and (max-height:360px) and (pointer:coarse){
  .receiver{min-height:390px;grid-template-rows:72px minmax(173px,1fr) 68px 35px}
  .receiver-head{height:72px}.topline{height:23px;min-height:23px}
  .brandline{height:49px;min-height:49px}
  .display{min-height:173px}.transport{height:68px;min-height:68px}
  .receiver-foot{height:35px;min-height:35px}
}

/* Brief, nonverbal swipe instruction in the appliance status rail, never
   over the headline glass. Shown only for an automatic lateral handoff. */
.receiver-foot{position:relative}
.receiver-foot .swipe-directive{
  position:absolute;left:0;top:50%;transform:translateY(-50%);
  display:block;white-space:nowrap;pointer-events:none;opacity:0;
  color:#b0dfbe;font:500 clamp(10px,2.6vw,13px)/1 'Share Tech Mono','IBM Plex Mono',monospace;
  letter-spacing:.13em;text-shadow:0 0 5px #4fe38a66;
}
.receiver.swipe-prompt .receiver-foot #receiver-note{visibility:hidden}
.receiver.swipe-prompt .receiver-foot .swipe-directive{animation:apnu-swipe-directive 1.1s ease-in-out both}
@keyframes apnu-swipe-directive{
  0%,100%{opacity:0}
  15%,68%{opacity:1}
  85%{opacity:.4}
}
@media(prefers-reduced-motion:reduce){
  .receiver.swipe-prompt .receiver-foot .swipe-directive{animation:none;opacity:1}
}

/* Hardware block cursor, not a text caret. Keep APNU baseline and header geometry. */
.identity .maker-cursor{width:8px;height:9px;flex:0 0 8px;background:#98ffb7;box-shadow:0 0 3px #7affae,0 0 7px #45ed8d88}
/* Global wire load is the first, explicit action in the band selector. */
#band-dialog .all-stories{display:block;width:100%;margin:0 0 12px;padding:12px 10px;border:1px solid #69d898;background:#195b35;color:#fff;text-align:center;font:700 12px/1.3 'Share Tech Mono',monospace;letter-spacing:.07em}

/* Positioning mount: tab and drawer physically share the pager's coordinate system.
   The tab stays attached even if JS fails or zoom changes. */
.pager-mount{position:relative;width:min(100%,660px);flex:none;min-width:0;isolation:isolate;overflow:visible}
.pager-mount>.receiver{width:100%}
/* Standalone NewsPager: external hardware pull-tab and genuine rightward panel.
   Panel originates at the pager edge and never pushes the cabinet or its controls. */
.receiver-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.band-side-tab{position:absolute;left:100%;top:42%;z-index:101;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:29px;min-height:88px;padding:8px 4px;border:1px solid #697d72;border-left:0;border-radius:0 5px 5px 0;background:linear-gradient(90deg,#303a43,#18212a);color:#e5e9e9;box-shadow:3px 3px 7px #0006;font:700 10px/1 'Share Tech Mono',monospace;letter-spacing:.07em;cursor:pointer}
.band-side-tab span:first-child{font:24px/1 Georgia,serif;transition:transform .24s ease}
.band-side-tab span:last-child{writing-mode:vertical-rl}
.band-side-tab[aria-expanded=true] span:first-child{transform:rotate(180deg)}
.band-side-tab:hover,.band-side-tab:focus-visible{background:#46525e}
#band-dialog{position:absolute;inset:auto auto auto calc(100% + 29px);top:50%;transform:translateY(-50%);width:var(--pager-drawer-width,360px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 22px);margin:0;padding:clamp(9px,1.7dvh,16px);overflow:hidden;overscroll-behavior:contain;z-index:100;border:1px solid #51665a;border-radius:0 8px 8px 0;background:linear-gradient(135deg,#10261a,#07140f 65%);box-shadow:7px 12px 30px #000b;clip-path:inset(0 100% 0 0);opacity:0;pointer-events:none}
#band-dialog[open]{animation:apnu-band-pullout .30s cubic-bezier(.2,.78,.2,1) forwards;pointer-events:auto}
#band-dialog.band-drawer-closing[open]{animation:apnu-band-retract .25s ease-in forwards;pointer-events:none}
@keyframes apnu-band-pullout{0%{opacity:.7;clip-path:inset(0 100% 0 0)}100%{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes apnu-band-retract{0%{opacity:1;clip-path:inset(0 0 0 0)}100%{opacity:.7;clip-path:inset(0 100% 0 0)}}
#band-dialog header{margin-bottom:clamp(7px,1.5dvh,13px)}
#band-dialog h2{font:700 clamp(12px,1.7dvh,15px)/1.2 'Share Tech Mono',monospace}
#band-dialog .all-stories{margin:0 0 clamp(7px,1.2dvh,11px);padding:clamp(7px,1.2dvh,11px) 8px;min-height:31px;font-size:11px}
#band-dialog .band-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(3px,.75dvh,7px);overflow:hidden;scrollbar-width:none}
#band-dialog .band-options button{min-height:clamp(26px,4.3dvh,39px);padding:clamp(4px,.7dvh,9px) 6px;font:700 clamp(9px,1.35dvh,11px)/1.2 'Share Tech Mono',monospace;letter-spacing:0;overflow-wrap:anywhere}
#band-dialog .band-options::-webkit-scrollbar{display:none}
@media(max-width:700px){.band-side-tab{top:43%;min-height:74px;padding:7px 4px}.band-side-tab span:last-child{font-size:9px}#band-dialog{border-radius:7px}}
@media(prefers-reduced-motion:reduce){#band-dialog[open],#band-dialog.band-drawer-closing[open]{animation:none;clip-path:none;opacity:1}#band-dialog.band-drawer-closing[open]{opacity:0}.band-side-tab span:first-child{transition:none}}

/* Narrow viewports: drawer overlays the cabinet, while the tab itself remains bolted to its edge. */
.pager-mount.pager-drawer-overlay #band-dialog{left:auto;right:0;border-radius:8px}
@media(max-width:700px){.pager-mount .band-side-tab{left:calc(100% - 4px)}}

/* Demonstration Edition: optional band and RSS tools are nested under Settings. */
.pager-mount>.band-side-tab{display:none!important}
.display .headline-window[role=link]{cursor:pointer}
.display .headline-window[role=link]:focus-visible{outline:2px solid #8cff9c;outline-offset:-3px}
#settings-dialog,#band-dialog{position:fixed;inset:0;margin:auto;transform:none;clip-path:none;opacity:1;pointer-events:auto;width:min(92vw,480px);max-height:min(80dvh,660px);border:1px solid #51665a;border-radius:9px;padding:18px;background:linear-gradient(135deg,#10261a,#07140f 65%);box-shadow:0 20px 65px #000b;overflow:auto;animation:none!important}
.pager-mount.pager-drawer-overlay #band-dialog{left:0;right:0}
#settings-dialog::backdrop,#band-dialog::backdrop{background:#000b}
#settings-dialog header,#band-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px}
#settings-dialog header button,#band-dialog header button{width:auto;min-width:72px;height:auto;flex:none;white-space:nowrap;min-height:40px;padding:7px 12px;border:1px solid #456c55;background:#173421;color:#defbe6;border-radius:4px;font:700 12px 'Share Tech Mono',monospace}
.settings-options{display:grid;gap:9px;margin-top:20px}
.settings-options button{display:flex;align-items:center;justify-content:space-between;min-height:52px;text-align:left;padding:10px 14px;border:1px solid #446a55;background:#0a2217;color:#e1ffe9;font:700 13px 'Share Tech Mono',monospace}
.settings-options button span{font-size:24px;color:#8fffb9}
#band-dialog[open]{animation:none!important;clip-path:none;opacity:1}
#band-dialog .band-options{max-height:48dvh;overflow-y:auto;scrollbar-width:thin}
@media(prefers-reduced-motion:reduce){.settings-options button{transition:none}}


/* About-page NewsPager demo only: organic inset picture tube, RSS photography. */
.receiver.has-picture .display .headline-wheel{padding-right:30%}
.picture-tube[hidden]{display:none!important}
.picture-tube{
 position:absolute;right:2px;bottom:4px;width:28%;aspect-ratio:1.35;
 z-index:3;pointer-events:none;overflow:hidden;
 border:2px solid #375446;background:#07120e;
 border-radius:43% 43% 40% 40% / 32% 32% 38% 38%;
 box-shadow:inset 0 0 12px #000b,0 2px 5px #0009;
 isolation:isolate;
}
.picture-tube img{display:block;width:100%;height:100%;object-fit:cover;filter:contrast(1.08) saturate(.92)}
.picture-tube::after{
 content:'';position:absolute;inset:0;pointer-events:none;
 background:repeating-linear-gradient(to bottom,transparent 0 2px,#07120e38 2px 3px),
 radial-gradient(ellipse at 24% 6%,#ffffff30,transparent 48%),
 radial-gradient(ellipse at 50% 50%,transparent 30%,#0009 100%);
 box-shadow:inset 0 0 9px #000b;
}
@media(max-width:430px){.picture-tube{width:26%}.receiver.has-picture .display .headline-wheel{padding-right:28%}}


/* DX.Wire Ghost Signals: five zero-download, CSS-only transmissions for image-less news. */
.picture-tube img[hidden]{display:none!important}
.picture-tube.ghost-signal{background:#021009}
.picture-tube.ghost-signal::before{
 content:'';position:absolute;inset:-20%;z-index:0;opacity:.82;
 background:repeating-linear-gradient(0deg,transparent 0 5px,#4aff8330 6px 7px),
 repeating-linear-gradient(90deg,transparent 0 13px,#63ff8b1a 14px 15px);
 animation:ghost-drift 7s linear infinite;
}
.picture-tube.ghost-signal::after{
 background:repeating-linear-gradient(to bottom,transparent 0 2px,#020e0b65 2px 3px),
 radial-gradient(ellipse at 26% 9%,#d8ffdb26,transparent 49%),
 radial-gradient(ellipse at center,transparent 26%,#000c 100%);
}
.picture-tube[data-signal="signal-lost"]::before{
 background:repeating-linear-gradient(175deg,#6bffa52b 0 1px,transparent 1px 3px,#0b2815 3px 6px),
 repeating-linear-gradient(90deg,#73ffa31f 0 2px,transparent 2px 7px);
 animation:ghost-static .29s steps(3,end) infinite;
}
.picture-tube[data-signal="vector-ghost"]::before{
 background:linear-gradient(120deg,transparent 30%,#4eff9a77 31%,transparent 32%),
 repeating-linear-gradient(135deg,transparent 0 13px,#3dfd803b 14px 15px,transparent 16px 24px),
 repeating-linear-gradient(90deg,transparent 0 21px,#54ff9133 22px 23px);
 transform:perspective(80px) rotateX(29deg);
 animation:ghost-vector 6s ease-in-out infinite;
}
.picture-tube[data-signal="night-rain"]::before{
 background:repeating-linear-gradient(92deg,transparent 0 8px,#4aff9c6a 9px 10px,transparent 11px 19px),
 linear-gradient(0deg,#1aff7238,transparent 65%);
 background-size:100% 38px,100% 100%;
 animation:ghost-rain .85s linear infinite;
}
.picture-tube[data-signal="data-bleed"]::before{
 background:repeating-linear-gradient(0deg,transparent 0 7px,#9affab8a 8px 9px,transparent 10px 15px),
 repeating-linear-gradient(90deg,transparent 0 5px,#00e96654 6px 8px,transparent 9px 17px);
 animation:ghost-data 2.6s steps(6,end) infinite;
}
.picture-tube[data-signal="phantom-feed"]::before{
 background:radial-gradient(ellipse at 45% 55%,transparent 0 12%,#53ff9e78 13% 14%,transparent 15% 24%,#48ff8d65 25% 26%,transparent 27%),
 conic-gradient(from 0deg at 45% 55%,transparent 0 300deg,#8dffad7a 315deg,transparent 335deg);
 animation:ghost-radar 5s linear infinite;
}
@keyframes ghost-drift{to{transform:translate(8%,6%)}}
@keyframes ghost-static{0%{transform:translate(0,0)}33%{transform:translate(5%,-8%)}66%{transform:translate(-7%,4%)}100%{transform:translate(0,0)}}
@keyframes ghost-vector{0%,100%{opacity:.4;transform:perspective(80px) rotateX(29deg) translateX(-8%)}50%{opacity:.95;transform:perspective(80px) rotateX(29deg) translateX(8%)}}
@keyframes ghost-rain{to{background-position:0 38px,0 0}}
@keyframes ghost-data{50%{transform:translateX(13%);filter:brightness(1.5)}}
@keyframes ghost-radar{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.picture-tube.ghost-signal::before{animation:none!important}}

.picture-tube.ghost-paused::before{animation-play-state:paused!important}


/* Ghost Signals micro-transmissions: fine geometry reads as phosphor tracers in a tiny CRT. */
.picture-tube[data-signal="micro-raster"]::before{
 background:repeating-linear-gradient(0deg,transparent 0 2px,#66ffa94a 2px 3px,transparent 3px 5px),
 repeating-linear-gradient(90deg,transparent 0 3px,#57ff9340 3px 4px,transparent 4px 7px);
 animation:ghost-micro 3.1s steps(9,end) infinite;
}
.picture-tube[data-signal="vertical-trace"]::before{
 background:repeating-linear-gradient(90deg,transparent 0 2px,#76ffb06b 2px 3px,transparent 3px 6px),
 repeating-linear-gradient(90deg,transparent 0 8px,#b2ffd033 8px 9px,transparent 9px 13px);
 animation:ghost-vertical 2.4s ease-in-out infinite;
}
.picture-tube[data-signal="zigzag-trace"]::before{
 background:repeating-linear-gradient(135deg,transparent 0 3px,#67ff9b60 3px 4px,transparent 4px 8px),
 repeating-linear-gradient(45deg,transparent 0 5px,#90ffb64a 5px 6px,transparent 6px 10px);
 animation:ghost-zigzag 3.7s ease-in-out infinite;
}
.picture-tube[data-signal="pixel-snow"]::before{
 background:repeating-linear-gradient(0deg,transparent 0 1px,#89ffae56 1px 2px,transparent 2px 4px),
 repeating-linear-gradient(90deg,#67ff9b33 0 1px,transparent 1px 3px,#aaffbb25 3px 4px);
 animation:ghost-static .43s steps(4,end) infinite;
}
@keyframes ghost-micro{50%{transform:translate(5%,-4%) scale(1.07);opacity:.62}}
@keyframes ghost-vertical{50%{transform:translateX(7%) scaleX(1.13);opacity:.95}}
@keyframes ghost-zigzag{50%{transform:translate(-5%,4%) scale(1.12);opacity:.68}}
/* Overlay only the same micro patterns on real publisher images; retain legibility. */
.picture-tube.photo-interference::before{
 content:'';position:absolute;inset:-10%;z-index:1;pointer-events:none;opacity:.23;
 background:repeating-linear-gradient(90deg,transparent 0 3px,#72ff9e 3px 4px,transparent 4px 8px);
 animation:ghost-vertical 3.9s ease-in-out infinite;
}
.picture-tube.photo-interference[data-signal="micro-raster"]::before{
 background:repeating-linear-gradient(0deg,transparent 0 3px,#83ffad 3px 4px,transparent 4px 7px);
 animation:ghost-micro 4.3s steps(8,end) infinite;
}
.picture-tube.photo-interference[data-signal="zigzag-trace"]::before{
 background:repeating-linear-gradient(135deg,transparent 0 4px,#8affb3 4px 5px,transparent 5px 9px);
 animation:ghost-zigzag 5.1s ease-in-out infinite;
}
.picture-tube.photo-interference[data-signal="pixel-snow"]::before{
 background:repeating-linear-gradient(90deg,transparent 0 2px,#9effb4 2px 3px,transparent 3px 6px);
 animation:ghost-static 1.1s steps(3,end) infinite;
}
@media(prefers-reduced-motion:reduce){.picture-tube.photo-interference::before{animation:none!important;opacity:.12}}
.picture-tube.ghost-paused.photo-interference::before{animation-play-state:paused!important}

/* Ghost Signals optical engine: phase-coupled microdots, no static grid states.
   Broad zigzag descent is the sole intentional wide-lane transmission. */
.picture-tube.ghost-signal::before{
 content:'';position:absolute;inset:-16%;z-index:1;pointer-events:none;
 background-image:radial-gradient(circle,#86ffb3a0 .48px,transparent .72px),radial-gradient(circle,#4aff8999 .45px,transparent .7px);
 background-size:3.1px 3.1px,3.34px 3.34px;
 background-position:0 0,1.4px 1.1px;
 opacity:.8;animation:signal-phase 4.1s linear infinite,signal-breathe 6.7s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="signal-lost"]::before,
.picture-tube.ghost-signal[data-signal="pixel-snow"]::before{
 background-size:2.75px 2.75px,3.08px 3.08px;
 animation:signal-phase 2.9s linear infinite,signal-flicker 5.3s steps(23,end) infinite;
}
.picture-tube.ghost-signal[data-signal="vector-ghost"]::before,
.picture-tube.ghost-signal[data-signal="micro-raster"]::before{
 background-size:3.4px 3.4px,3.73px 3.73px;
 animation:signal-orbit 4.9s ease-in-out infinite,signal-breathe 6.7s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="night-rain"]::before,
.picture-tube.ghost-signal[data-signal="vertical-trace"]::before{
 background-size:2.9px 2.9px,3.16px 3.16px;
 animation:signal-rain 3.7s linear infinite,signal-breathe 5.9s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="data-bleed"]::before{
 background-size:3px 3px,3.29px 3.29px;
 animation:signal-tear 5.1s steps(19,end) infinite,signal-breathe 7.3s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="zigzag-trace"]::before{
 background:repeating-linear-gradient(135deg,transparent 0 3px,#67ff9b60 3px 4px,transparent 4px 8px),repeating-linear-gradient(45deg,transparent 0 5px,#90ffb64a 5px 6px,transparent 6px 10px);
 animation:signal-zigzag 3.7s linear infinite,signal-breathe 5.9s ease-in-out infinite;
}
@keyframes signal-phase{to{background-position:23px 11px,-19px 29px}}
@keyframes signal-orbit{0%,100%{background-position:0 0,1.4px 1.1px;transform:scale(1)}50%{background-position:16px -12px,-14px 19px;transform:scale(1.08) rotate(.8deg)}}
@keyframes signal-rain{to{background-position:4px 38px,-3px 57px}}
@keyframes signal-tear{0%,73%,100%{background-position:0 0,1.4px 1.1px;transform:translateX(0)}78%{background-position:18px 2px,-13px 3px;transform:translateX(5%)}83%{background-position:-12px 2px,18px 3px;transform:translateX(-3%)}}
@keyframes signal-zigzag{to{background-position:0 38px,0 57px}}
@keyframes signal-breathe{0%,100%{opacity:.52;filter:contrast(1)}48%{opacity:.96;filter:contrast(1.35)}}
@keyframes signal-flicker{0%,100%{opacity:.5}31%{opacity:.95}69%{opacity:.7}}
.picture-tube[data-mode="photo"] img{animation:signal-photo-zoom 17s ease-in-out infinite;transform-origin:50% 48%}
.picture-tube[data-mode="photo"][data-photo-effect="roll"] img{animation:signal-photo-roll 11s ease-in-out infinite}
.picture-tube[data-mode="photo"][data-photo-effect="tear"] img{animation:signal-photo-tear 13s steps(1,end) infinite}
.picture-tube[data-mode="photo"][data-photo-effect="drift"] img{animation:signal-photo-drift 19s ease-in-out infinite}
@keyframes signal-photo-zoom{0%,100%{transform:scale(1.01)}55%{transform:scale(1.16) translate(-1%,1%)}}
@keyframes signal-photo-roll{0%,72%,100%{transform:scale(1.05) translateY(0)}76%{transform:scale(1.08) translateY(13%)}79%{transform:scale(1.08) translateY(-13%)}83%{transform:scale(1.05) translateY(0)}}
@keyframes signal-photo-tear{0%,78%,84%,100%{transform:scale(1.06) translateX(0)}80%{transform:scale(1.09) translateX(5%)}82%{transform:scale(1.09) translateX(-3%)}}
@keyframes signal-photo-drift{0%,100%{transform:scale(1.06) translate(-2%,-1%)}50%{transform:scale(1.14) translate(2%,2%)}}
.picture-tube.photo-interference::before,
.picture-tube.photo-interference[data-signal="micro-raster"]::before,
.picture-tube.photo-interference[data-signal="zigzag-trace"]::before,
.picture-tube.photo-interference[data-signal="pixel-snow"]::before{
 content:'';position:absolute;inset:-12%;z-index:1;pointer-events:none;
 background-image:radial-gradient(circle,#72ffa590 .43px,transparent .68px),radial-gradient(circle,#4aff8966 .4px,transparent .64px);
 background-size:3.1px 3.1px,3.34px 3.34px;opacity:.21;
 animation:signal-phase 5.9s linear infinite,signal-breathe 8.3s ease-in-out infinite;
}
.picture-tube.ghost-paused img,.picture-tube.ghost-paused::before{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.picture-tube.ghost-signal::before,.picture-tube.photo-interference::before,.picture-tube[data-mode="photo"] img{animation:none!important}}

/* Optical benchmark v4: only perceptually active phase interference.
   Two independent fine-dot fields create emergent moving moire; no grids/stripes. */
.picture-tube.ghost-signal::before{
 background-image:radial-gradient(circle,#83ffb5d9 .56px,transparent .81px),radial-gradient(circle,#4cff93a8 .52px,transparent .78px);
 background-size:2.65px 2.65px,2.93px 2.93px;
 background-position:0 0,1.2px 1.3px;
 opacity:.92;animation:optical-phase-a 3.9s linear infinite,optical-pulse 6.1s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="signal-lost"]::before,
.picture-tube.ghost-signal[data-signal="pixel-snow"]::before{
 background-size:2.7px 2.7px,3.05px 3.05px;
 animation:optical-counterflow 4.7s linear infinite,optical-pulse 7.3s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="vector-ghost"]::before,
.picture-tube.ghost-signal[data-signal="micro-raster"]::before{
 background-size:2.75px 2.75px,3.02px 3.02px;
 animation:optical-orbit 5.3s ease-in-out infinite,optical-pulse 8.1s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="night-rain"]::before,
.picture-tube.ghost-signal[data-signal="vertical-trace"]::before{
 background-size:2.58px 2.58px,2.86px 2.86px;
 animation:optical-fall 3.3s linear infinite,optical-pulse 6.7s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="data-bleed"]::before{
 background-size:2.72px 2.72px,3.08px 3.08px;
 animation:optical-collision 5.7s ease-in-out infinite,optical-pulse 7.7s ease-in-out infinite;
}
/* Keep the approved wide descending zigzag as the one broad-lane exception. */
.picture-tube.ghost-signal[data-signal="zigzag-trace"]::before{
 animation:signal-zigzag 3.7s linear infinite,optical-pulse 5.9s ease-in-out infinite;
}
@keyframes optical-phase-a{to{background-position:19px 15px,-23px 31px}}
@keyframes optical-counterflow{to{background-position:-26px 13px,21px -19px}}
@keyframes optical-orbit{
 0%,100%{background-position:0 0,1.2px 1.3px;transform:rotate(-1deg) scale(1)}
 50%{background-position:21px -14px,-17px 24px;transform:rotate(2deg) scale(1.08)}
}
@keyframes optical-fall{to{background-position:7px 42px,-11px 57px}}
@keyframes optical-collision{
 0%,100%{background-position:0 0,1.2px 1.3px;transform:scale(1)}
 50%{background-position:28px 8px,-24px -12px;transform:scale(1.12)}
}
@keyframes optical-pulse{0%,100%{opacity:.68;filter:contrast(1.05)}50%{opacity:1;filter:contrast(1.5)}}
/* On photos, the microstructure phases across the moving underlying image. */
.picture-tube.photo-interference::before,
.picture-tube.photo-interference[data-signal="micro-raster"]::before,
.picture-tube.photo-interference[data-signal="zigzag-trace"]::before,
.picture-tube.photo-interference[data-signal="pixel-snow"]::before{
 background-image:radial-gradient(circle,#85ffb6ac .43px,transparent .67px),radial-gradient(circle,#52ff9280 .4px,transparent .65px);
 background-size:2.7px 2.7px,2.98px 2.98px;
 opacity:.22;
 animation:optical-counterflow 5.1s linear infinite,optical-pulse 7.3s ease-in-out infinite;
}
@media(prefers-reduced-motion:reduce){.picture-tube.ghost-signal::before,.picture-tube.photo-interference::before{animation:none!important}}

/* Broadcast instability: irregular hold/recovery on the actual publisher image.
   Independent optical microstructure remains active above the photograph. */
.picture-tube[data-mode="photo"][data-photo-effect="hold"] img{
 animation:broadcast-hold 11.7s steps(1,end) infinite;
}
.picture-tube[data-mode="photo"][data-photo-effect="chroma"] img{
 animation:broadcast-chroma 13.3s steps(1,end) infinite;
}
.picture-tube[data-mode="photo"][data-photo-effect="hunting"] img{
 animation:broadcast-hunting 15.1s steps(1,end) infinite;
}
.picture-tube[data-mode="photo"][data-photo-effect="jitter"] img{
 animation:broadcast-jitter 9.7s steps(1,end) infinite;
}
@keyframes broadcast-hold{
 0%,64%,75%,100%{transform:scale(1.07) translate(0,0)}
 66%{transform:scale(1.1) translate(0,6%)}
 68%{transform:scale(1.1) translate(0,-9%)}
 71%{transform:scale(1.08) translate(0,3%)}
 73%{transform:scale(1.07) translate(0,-1%)}
}
@keyframes broadcast-chroma{
 0%,58%,72%,100%{transform:scale(1.07);filter:contrast(1.06) saturate(.92)}
 60%{transform:scale(1.08) translateX(1%);filter:contrast(1.3) saturate(1.65) hue-rotate(7deg)}
 64%{transform:scale(1.08) translateX(-1%);filter:contrast(1.2) saturate(.55) hue-rotate(-9deg)}
 68%{transform:scale(1.07);filter:contrast(1.15) saturate(1.25)}
}
@keyframes broadcast-hunting{
 0%,42%,76%,100%{transform:scale(1.08) translate(0,0);filter:contrast(1.05)}
 45%{transform:scale(1.11) translate(5%,-3%);filter:contrast(1.35)}
 49%{transform:scale(1.1) translate(-4%,7%);filter:contrast(.88)}
 54%{transform:scale(1.1) translate(2%,-8%);filter:contrast(1.5)}
 59%{transform:scale(1.08) translate(-1%,2%);filter:contrast(1.1)}
 63%{transform:scale(1.08) translate(0,0);filter:contrast(1.05)}
}
@keyframes broadcast-jitter{
 0%,71%,83%,100%{transform:scale(1.07) translate(0,0)}
 73%{transform:scale(1.08) translate(1.4%,-.8%)}
 75%{transform:scale(1.08) translate(-1.2%,.5%)}
 77%{transform:scale(1.08) translate(.7%,-.6%)}
 79%{transform:scale(1.07) translate(-.4%,.3%)}
}
@media(prefers-reduced-motion:reduce){
 .picture-tube[data-mode="photo"][data-photo-effect] img{animation:none!important;filter:none!important}
}

/* Approved correction: vivid, intermittently unstable broadcast color.
   Color cadence is independent of the existing image motion/hold keyframes. */
.picture-tube[data-mode="photo"] img{
 filter:contrast(1.18) saturate(1.55);
 animation-name:signal-photo-zoom,broadcast-color;
 animation-duration:17s,9.7s;
 animation-timing-function:ease-in-out,steps(1,end);
 animation-iteration-count:infinite,infinite;
}
.picture-tube[data-mode="photo"][data-photo-effect="roll"] img{animation-name:signal-photo-roll,broadcast-color;animation-duration:11s,9.7s}
.picture-tube[data-mode="photo"][data-photo-effect="tear"] img{animation-name:signal-photo-tear,broadcast-color;animation-duration:13s,9.7s}
.picture-tube[data-mode="photo"][data-photo-effect="drift"] img{animation-name:signal-photo-drift,broadcast-color;animation-duration:19s,9.7s}
.picture-tube[data-mode="photo"][data-photo-effect="hold"] img{animation-name:broadcast-hold,broadcast-color;animation-duration:11.7s,9.7s}
.picture-tube[data-mode="photo"][data-photo-effect="chroma"] img{animation-name:broadcast-chroma,broadcast-color;animation-duration:13.3s,9.7s}
.picture-tube[data-mode="photo"][data-photo-effect="hunting"] img{animation-name:broadcast-hunting,broadcast-color;animation-duration:15.1s,9.7s}
.picture-tube[data-mode="photo"][data-photo-effect="jitter"] img{animation-name:broadcast-jitter,broadcast-color;animation-duration:9.7s,9.7s}
@keyframes broadcast-color{
 0%,54%,76%,100%{filter:contrast(1.18) saturate(1.55) hue-rotate(0deg)}
 57%{filter:contrast(1.36) saturate(2.2) hue-rotate(13deg)}
 60%{filter:contrast(1.22) saturate(1.8) hue-rotate(-10deg)}
 63%{filter:contrast(1.42) saturate(2.4) hue-rotate(7deg)}
 68%{filter:contrast(1.18) saturate(1.55) hue-rotate(0deg)}
}
/* No visible lattice: force all image-less transmissions into fine phase fields.
   The approved descending zigzag retains its dedicated animated treatment. */
.picture-tube.ghost-signal:not([data-signal="zigzag-trace"])::before{
 background-image:radial-gradient(circle,#83ffb5d9 .56px,transparent .81px),radial-gradient(circle,#4cff93a8 .52px,transparent .78px);
 background-size:2.65px 2.65px,2.93px 2.93px;
 background-position:0 0,1.2px 1.3px;
}
@media(prefers-reduced-motion:reduce){.picture-tube[data-mode="photo"] img{animation:none!important;filter:contrast(1.18) saturate(1.55)}}

/* Ghost Signals v7: eliminate the photographed large-square argyle lattice.
   Explicit signal selectors previously outranked the generic dot override. */
.picture-tube.ghost-signal[data-signal]::before{
 background-image:radial-gradient(circle,#a0ffbfdb .48px,transparent .72px),radial-gradient(circle,#3dff8fc9 .47px,transparent .72px);
 background-size:2.48px 2.48px,2.83px 2.83px;
 background-position:0 0,1.3px 1.1px;
 animation:optical-counterflow 4.7s linear infinite,optical-pulse 7.3s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="zigzag-trace"]::before{
 /* Keep the existing approved zigzag motion; no crossed diagonal lattice. */
 background-image:repeating-linear-gradient(135deg,transparent 0 3px,#56ff916b 3.3px 3.8px,transparent 4px 8px);
 background-size:17px 17px;
 animation:signal-zigzag 3.7s linear infinite,optical-pulse 5.9s ease-in-out infinite;
}
/* Three new double-action subpixel phase geometries. Both fields move
   independently so the large perceived pattern is an emergent illusion. */
.picture-tube.ghost-signal[data-signal="phase-tunnel"]::before{
 background-size:2.39px 2.39px,2.97px 2.97px;
 animation:ghost-phase-tunnel 5.6s ease-in-out infinite,optical-pulse 7.1s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="counter-orbit"]::before{
 background-size:2.64px 2.64px,2.88px 2.88px;
 animation:ghost-counter-orbit 6.3s ease-in-out infinite,optical-pulse 8.4s ease-in-out infinite;
}
.picture-tube.ghost-signal[data-signal="phase-swell"]::before{
 background-size:2.53px 2.53px,3.04px 3.04px;
 animation:ghost-phase-swell 7.7s ease-in-out infinite,optical-pulse 6.9s ease-in-out infinite;
}
@keyframes ghost-phase-tunnel{
 0%,100%{background-position:0 0,1.3px 1.1px;transform:scale(1) rotate(0deg)}
 50%{background-position:23px -31px,-27px 21px;transform:scale(1.24) rotate(3deg)}
}
@keyframes ghost-counter-orbit{
 0%,100%{background-position:0 0,1.3px 1.1px;transform:rotate(-4deg) scale(1.12)}
 50%{background-position:-33px 19px,29px -37px;transform:rotate(4deg) scale(1.03)}
}
@keyframes ghost-phase-swell{
 0%,100%{background-position:0 0,1.3px 1.1px;transform:scale(1)}
 35%{background-position:13px 28px,-19px -12px;transform:scale(1.32)}
 70%{background-position:-24px 7px,16px -27px;transform:scale(1.08)}
}
@media(prefers-reduced-motion:reduce){.picture-tube.ghost-signal[data-signal]::before{animation:none!important}}

/* Broadcast signal controller v10. Only the existing publisher photograph moves.
   Ghost Signals mathematics, aperture geometry and receiver controls are frozen.
   One transform+filter timeline per photo prevents competing CSS animations. */
.picture-tube[data-mode="photo"] img:not([hidden]){
 animation:dx-broadcast-hold 8.9s steps(1,end) infinite;
 filter:contrast(1.23) saturate(1.85);
 will-change:transform,filter;
}
.picture-tube[data-mode="photo"][data-photo-effect="zoom"] img:not([hidden]),
.picture-tube[data-mode="photo"][data-photo-effect="drift"] img:not([hidden]){
 animation-name:dx-broadcast-drift;animation-duration:12.7s;
}
.picture-tube[data-mode="photo"][data-photo-effect="roll"] img:not([hidden]),
.picture-tube[data-mode="photo"][data-photo-effect="hold"] img:not([hidden]){
 animation-name:dx-broadcast-roll;animation-duration:9.3s;
}
.picture-tube[data-mode="photo"][data-photo-effect="tear"] img:not([hidden]),
.picture-tube[data-mode="photo"][data-photo-effect="jitter"] img:not([hidden]){
 animation-name:dx-broadcast-track;animation-duration:7.9s;
}
.picture-tube[data-mode="photo"][data-photo-effect="chroma"] img:not([hidden]),
.picture-tube[data-mode="photo"][data-photo-effect="hunting"] img:not([hidden]){
 animation-name:dx-broadcast-hold;animation-duration:10.7s;
}
@keyframes dx-broadcast-hold{
 0%,19%,34%,63%,84%,100%{transform:scale(1.08) translate(0,0);filter:contrast(1.23) saturate(1.85) hue-rotate(0deg)}
 21%{transform:scale(1.09) translate(.6%,-.4%);filter:contrast(1.42) saturate(2.65) hue-rotate(15deg)}
 23%{transform:scale(1.1) translate(-.8%,.6%);filter:contrast(1.3) saturate(2.2) hue-rotate(-12deg)}
 27%{transform:scale(1.08);filter:contrast(1.48) saturate(3) hue-rotate(7deg)}
 65%{transform:scale(1.12) translateY(-5%);filter:contrast(1.6) saturate(2.5)}
 68%{transform:scale(1.1) translateY(7%);filter:contrast(1.1) saturate(1.6)}
 71%{transform:scale(1.08) translateY(-1%);filter:contrast(1.45) saturate(2.4) hue-rotate(-9deg)}
}
@keyframes dx-broadcast-roll{
 0%,17%,49%,73%,100%{transform:scale(1.09) translateY(0);filter:contrast(1.25) saturate(1.9)}
 20%{transform:scale(1.13) translateY(-9%);filter:blur(.5px) contrast(1.5) saturate(2.8)}
 24%{transform:scale(1.16) translateY(8%);filter:contrast(1.65) saturate(2.4) hue-rotate(12deg)}
 29%{transform:scale(1.11) translateY(-5%);filter:blur(1px) contrast(1.4) saturate(3)}
 35%{transform:scale(1.09) translateY(1%);filter:contrast(1.3) saturate(2)}
 76%{transform:scale(1.14) translateY(7%);filter:blur(.8px) saturate(2.7)}
 80%{transform:scale(1.11) translateY(-6%);filter:contrast(1.5) saturate(2.6) hue-rotate(-10deg)}
 85%{transform:scale(1.09) translateY(0);filter:contrast(1.25) saturate(1.9)}
}
@keyframes dx-broadcast-drift{
 0%,28%,65%,100%{transform:scale(1.09) translate(0,0);filter:contrast(1.24) saturate(1.9)}
 31%{transform:scale(1.15) translate(2%,-2%);filter:contrast(1.45) saturate(2.6) hue-rotate(10deg)}
 39%{transform:scale(1.19) translate(-2%,2%);filter:blur(.65px) contrast(1.5) saturate(2.8)}
 46%{transform:scale(1.12) translate(1%,-1%);filter:contrast(1.3) saturate(2.2) hue-rotate(-8deg)}
 68%{transform:scale(1.1) translateY(5%);filter:contrast(1.55) saturate(3)}
 72%{transform:scale(1.09) translateY(0);filter:contrast(1.24) saturate(1.9)}
}
@keyframes dx-broadcast-track{
 0%,38%,53%,80%,100%{transform:scale(1.09) translate(0,0);filter:contrast(1.25) saturate(1.9)}
 40%{transform:scale(1.1) translateX(5%);filter:contrast(1.6) saturate(2.8) hue-rotate(13deg)}
 42%{transform:scale(1.12) translate(-5%,2%);filter:blur(.6px) contrast(1.35) saturate(2.4)}
 45%{transform:scale(1.09) translate(2%,-1%);filter:contrast(1.5) saturate(3) hue-rotate(-14deg)}
 48%{transform:scale(1.09) translate(0,0);filter:contrast(1.25) saturate(1.9)}
 82%{transform:scale(1.11) translateY(-7%);filter:contrast(1.7) saturate(2.9)}
 86%{transform:scale(1.09) translateY(0);filter:contrast(1.25) saturate(1.9)}
}
@media(prefers-reduced-motion:reduce){.picture-tube[data-mode="photo"] img:not([hidden]){animation:none!important;will-change:auto}}

/* Source-name telemetry only. Keep the source line fixed; no headline motion. */
#channel-source{white-space:nowrap;overflow:hidden;text-overflow:clip}
.source-telemetry-cursor{display:inline-block;width:1px;height:.88em;margin-left:2px;vertical-align:-.08em;background:currentColor;box-shadow:0 0 4px currentColor,0 0 7px #ff686888;opacity:1}
.source-telemetry-finish{animation:apnu-source-cursor-tail .36s steps(1,end) 2}
@keyframes apnu-source-cursor-tail{0%,49%{opacity:1}50%,100%{opacity:0}}
.source-telemetry-arrival{text-shadow:0 0 3px #ff6666a8,0 0 8px #e53e4a55}
@media(prefers-reduced-motion:reduce){.source-telemetry-finish{animation:none}}

/* Front-page heritage signature reproduced verbatim; only its scale is local. */
.pager-signature{box-sizing:border-box;width:min(100%,660px);text-align:center;padding:2px 12px max(20px,env(safe-area-inset-bottom));border-bottom:5px solid #111d18;border-radius:0 0 8px 8px}
.pager-signature .apnu-copyright{display:block;margin:0;padding:4px 0 0;text-align:center;font:clamp(9px,1.3vw,10px)/1.45 'IBM Plex Mono','Share Tech Mono',ui-monospace,monospace;color:#789989}
.pager-signature .apnu-copyright a{display:inline-block;padding:3px 5px;color:inherit;text-decoration:none;border:0;background:none}
.pager-signature .apnu-copyright a:hover{text-decoration:underline;text-underline-offset:3px}
.pager-signature .apnu-copyright a:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}
.pager-signature .apnu-heritage{display:inline-block;font-family:'Michroma','Oxanium','Share Tech Mono',sans-serif;font-size:1.08em;letter-spacing:-.035em;white-space:nowrap;font-weight:400}
.pager-signature .apnu-heritage strong{font-weight:800}
.pager-signature .apnu-heritage>span{font-weight:400}

/* Reserve a real lower-bezel lane for the heritage mark on tall browsers.
   Small/short viewports retain the established cabinet and can scroll. */
@media(min-height:620px) and (orientation:portrait),(min-height:620px) and (pointer:fine){
  .pager-mount>.receiver{height:clamp(445px,calc(100svh - 128px),720px)}
}

/* Approved NewsPager fascia: balanced left maker mark, right integrated LIVE + settings tab.
   This only changes the header. The existing settings button/id/handler are retained. */
.receiver-head>.topline{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;
  height:68px;min-height:68px;border:0;padding:5px 3px 8px;isolation:isolate}
.receiver-head>.topline::after{content:'';position:absolute;left:3px;right:3px;bottom:0;height:1px;
  background:#7eff9d;box-shadow:0 0 4px #40ed7599;z-index:0;pointer-events:none}
.receiver-head>.topline>.identity{position:relative;z-index:1;align-self:center;min-width:0}
.receiver-head>.topline .maker-mark{font-size:clamp(8px,1.7vw,11px)}
.receiver-head>.topline .brand-wordmark{font-size:clamp(13px,3.5vw,22px);line-height:1.12}
.receiver-head>.signal-dock,.receiver-head>.topline>.signal-dock{position:relative;z-index:1;flex:none;display:flex;
  align-items:center;justify-content:flex-end;min-width:0;height:43px;padding:2px 3px 2px 21px;
  background:#67ffa5;clip-path:polygon(17px 0,100% 0,100% 100%,0 100%);border-radius:0 7px 7px 0}
.receiver-head>.topline>.signal-dock::before{content:'';position:absolute;inset:1.5px;z-index:-1;
  background:#06130c;clip-path:polygon(16px 0,100% 0,100% 100%,0 100%);border-radius:0 6px 6px 0}
.receiver-head>.topline>.signal-dock .on-air{display:inline-flex;margin:0;gap:6px;align-items:center;
  padding:0 13px 0 4px;font:700 clamp(11px,2.2vw,15px)/1 'Share Tech Mono','IBM Plex Mono',monospace;
  letter-spacing:.035em;color:#ffe0df;white-space:nowrap}
.receiver-head>.topline>.signal-dock .air-dot{width:9px;height:9px;flex:0 0 9px}
.receiver-head>.topline>.signal-dock .receiver-settings{position:relative;width:43px;height:36px;flex:0 0 43px;
  border:0;border-left:1px solid #73dfa2;border-radius:0;padding:0 0 0 4px;color:#f2f8f0}
.receiver-head>.topline>.signal-dock .receiver-settings svg{width:22px;height:22px}
.receiver-head>.topline>.signal-dock .receiver-settings:hover{background:#103822}
.receiver-head>.topline>.signal-dock .receiver-settings:focus-visible{outline:2px solid #d4ffe3;outline-offset:-3px}
.receiver-head>.brandline{height:44px;min-height:44px;padding:6px 3px 6px;display:flex;align-items:center;
  justify-content:flex-end;border-top:0;border-bottom:1px solid #4c6259}
.receiver-head>.brandline #story-count{font-size:clamp(10px,2.3vw,14px)}
@media(max-width:430px){
 .receiver-head>.topline{gap:4px;padding-left:1px;padding-right:1px}
 .receiver-head>.topline>.signal-dock{height:38px;padding-left:17px;clip-path:polygon(14px 0,100% 0,100% 100%,0 100%)}
 .receiver-head>.topline>.signal-dock::before{clip-path:polygon(13px 0,100% 0,100% 100%,0 100%)}
 .receiver-head>.topline>.signal-dock .on-air{font-size:11px;padding-right:7px;gap:4px}
 .receiver-head>.topline>.signal-dock .receiver-settings{width:36px;height:32px;flex-basis:36px}
 .receiver-head>.topline .brand-wordmark{font-size:clamp(12px,3.35vw,16px)}
}
@media(max-width:380px){
 .receiver-head>.topline{height:61px;min-height:61px}
 .receiver-head>.brandline{height:39px;min-height:39px}
}
@media(orientation:landscape) and (max-height:520px) and (pointer:coarse){
 .receiver-head>.topline{height:49px;min-height:49px}
 .receiver-head>.brandline{height:29px;min-height:29px;padding:1px 3px}
 .receiver-head>.topline>.signal-dock{height:36px}
}
@media(orientation:landscape) and (max-height:360px) and (pointer:coarse){
 .receiver-head>.topline{height:44px;min-height:44px}
 .receiver-head>.brandline{height:28px;min-height:28px}
}

/* Desktop reading companion: park the unchanged appliance clear of the publisher window. */
@media (min-width:1160px) and (pointer:fine){body.pager-reading-companion{align-items:flex-start}}

/* Empty NewsPager status readout with an active hardware cursor. */
.identity .brand-wordmark .pager-trademark{font:600 .48em/1 Arial,sans-serif;letter-spacing:0;vertical-align:super;margin-left:2px}
.display .headline-wheel #channel-title.pager-idle-status{white-space:pre-line;font-size:clamp(11px,2.6vw,16px);line-height:1.5;word-spacing:normal}
.display .headline-wheel #channel-title.pager-idle-status::after{content:'';display:inline-block;width:.65em;height:.9em;margin-left:.25em;vertical-align:-.1em;background:currentColor;animation:pager-idle-cursor 1s steps(1,end) infinite}
@keyframes pager-idle-cursor{0%,49%{opacity:1}50%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.display .headline-wheel #channel-title.pager-idle-status::after{animation:none}}

/* Keep trademark at the upper-right of the complete NewsPager wordmark. */
.identity .brand-wordmark .pager-trademark{position:relative;align-self:flex-start;top:-.12em;vertical-align:baseline;font-size:.5em;line-height:1;margin-left:2px}
.display .headline-wheel #channel-title.pager-idle-status{white-space:pre-line;overflow-wrap:normal;word-break:normal;line-height:1.45}

/* Align trademark beside the wordmark cap-height, not above the wordmark. */
.identity .brand-wordmark .pager-trademark{align-self:baseline;position:relative;top:-.38em;vertical-align:baseline;font-size:.38em;margin-left:2px}

/* Optical trademark alignment: upper-right of Pager cap, not on its baseline. */
.identity .brand-wordmark .pager-trademark{top:-.63em}

/* 1979 operator reference: CSS leaders maintain alignment independent of the typing effect. */
.display .headline-wheel #channel-title.pager-idle-status:has(.pager-command-row){display:flex;flex-direction:column;gap:clamp(9px,1.8vw,16px);font-size:clamp(10px,2.5vw,15px);word-spacing:normal}
.pager-command-row{display:flex;align-items:baseline;gap:.32em;white-space:nowrap}
.pager-command-key{white-space:nowrap}.pager-command-leader{display:inline-flex;gap:.12em;align-items:baseline;align-self:baseline;white-space:nowrap}.pager-command-dot{display:block;flex:none;width:.24em;height:.12em;border-radius:1px;background:#75d995;box-shadow:0 0 2px #53ed85;transform:translateY(-.1em);animation:pager-phosphor-ink .11s ease-out both}.pager-command-label{white-space:normal}@keyframes pager-phosphor-ink{from{opacity:.5;filter:brightness(2.3)}to{opacity:1;filter:brightness(1)}}.display .headline-wheel #channel-title.pager-idle-status.pager-command-ready::after{animation:pager-command-ack .22s steps(1,end) 2,pager-idle-cursor 1s steps(1,end) .44s infinite}@keyframes pager-command-ack{0%,49%{opacity:1;filter:brightness(1.6)}50%,100%{opacity:0}}@media(prefers-reduced-motion:reduce){.pager-command-dot{animation:none}.display .headline-wheel #channel-title.pager-idle-status.pager-command-ready::after{animation:none}}
/* Four equal-size physical keys while the publisher companion is open. */
.transport .pause-transport[hidden]{display:none!important}
.transport.reading-transport{grid-template-columns:repeat(4,minmax(0,1fr))}
.transport.reading-transport .transport-actions{display:none}
.transport.reading-transport .pause-transport{display:block;background:linear-gradient(#5b4523,#382a1c);color:#ffd895;border-color:#ac8246;text-shadow:0 0 4px #d79d56}
.transport.reading-transport .next{font-size:clamp(10px,2.6vw,15px)}
@media(max-width:420px){.pager-command-row{column-gap:.3em}.display .headline-wheel #channel-title.pager-idle-status:has(.pager-command-row){font-size:clamp(9px,2.6vw,12px)}}

/* Screen-fixed mute control, outside the NewsPager appliance. */
body>.pager-sound-toggle{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:120;display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:1px solid #52685d;border-radius:12px;background:#15231e;color:#a9bdb3;cursor:pointer;box-shadow:0 2px 12px #0008}
body>.pager-sound-toggle[aria-pressed=true]{color:#b2ffd0;border-color:#5b9475}
body>.pager-sound-toggle:focus-visible{outline:2px solid #9cefb4;outline-offset:3px}

/* Phone: fit the existing appliance to the viewport without redesigning its chassis. */
@media(max-width:700px) and (orientation:portrait){
 body{padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}
 .pager-mount,.pager-mount>.receiver{width:100%;max-width:100%}
 .pager-mount>.receiver{height:clamp(445px,calc(100svh - 112px),720px)}
 .display .headline-wheel #channel-title{overflow-wrap:anywhere}
}

/* NewsPager source-line published time; preserve the existing source typing and CRT geometry. */
#channel-source{display:flex;align-items:baseline;gap:.75em;min-width:0}
#channel-source-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:clip}
#story-time{flex:none;white-space:nowrap;font:400 clamp(10px,2.3vw,12px)/1.3 'Share Tech Mono',monospace;letter-spacing:0;color:#c67778;text-shadow:none}
#story-time:empty{display:none}

/* Transport key acknowledgement: brief feedback, original geometry and hardware colors preserved. */
.transport button[data-feedback=active]{filter:brightness(1.32);box-shadow:inset 0 2px 5px #0008,0 0 8px #8fffb355}
@media(prefers-reduced-motion:reduce){.transport button[data-feedback=active]{transition:none}}

/* Publisher and published-time telemetry retain a live cursor after arrival. */
#channel-source .source-telemetry-live,#story-time .source-telemetry-live{animation:apnu-telemetry-live 1.06s steps(1,end) infinite}
@keyframes apnu-telemetry-live{0%,49%{opacity:1}50%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){#channel-source .source-telemetry-live,#story-time .source-telemetry-live{animation:none;opacity:1}}
