/*
Theme Name:        APNU Watchstation MkIII
Author:            MicroMeta
Description:       MicroMeta spatial newswire: monochrome CRT presentation, original APNU vector world, mechanical teletype and full-color commercial displays. Built on the SalemWire v1.0.1 engine.
Version:           3.2.8-dev12f
Requires at least: 6.2
Requires PHP:      7.4
License:           GPL-2.0-or-later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       salemwire-terminal
Tags:              news, dark, three-columns, accessibility-ready
*/

/* =====================================================================
   1. CRT DISPLAY PROFILES — render profiles, not color themes.
   Profiles change expression only: never content, order, semantics,
   accessibility or feed state (packet §9).
   Custom properties:
     --sw-bg          field (background)
     --sw-ink         primary phosphor (body/headlines)
     --sw-ink-dim     dim phosphor (meta, blurbs, rules-adjacent text)
     --sw-accent      utility/label accent
     --sw-alert       alert/failure
     --sw-rule        structural rules
     --sw-vector      vector field stroke (consumed by JS)
     --sw-glow        glow radius multiplier (SHARP/SOFT scales this)
     --sw-glow-color  glow tint
   ===================================================================== */

:root,
html[data-sw-profile="blue"] {
	/* BLUE PHOSPHOR — SalemWire default. Serious broadcast character,
	   deliberately distinct from APNU fluorescent green. */
	--sw-bg: #030d16;
	--sw-ink: #8fd8f8;
	--sw-ink-dim: #64a9c8;
	--sw-accent: #cdeeff;
	--sw-alert: #ff9d9d;
	--sw-rule: #12405c;
	--sw-vector: 47, 148, 199;
	--sw-glow: 1;
	--sw-glow-color: rgba(80, 190, 255, 0.55);
}

html[data-sw-profile="green"] {
	/* GREEN PHOSPHOR — classic VDT; field color from APNU evidence. */
	--sw-bg: #020904;
	--sw-ink: #58e39c;
	--sw-ink-dim: #43ad78;
	--sw-accent: #b8ffd9;
	--sw-alert: #ffa1a1;
	--sw-rule: #0f4227;
	--sw-vector: 0, 255, 136;
	--sw-glow: 1;
	--sw-glow-color: rgba(0, 255, 136, 0.5);
}

html[data-sw-profile="amber"] {
	/* AMBER PHOSPHOR — warm low-light CRT. */
	--sw-bg: #0d0700;
	--sw-ink: #ffc069;
	--sw-ink-dim: #c69354;
	--sw-accent: #ffe3b3;
	--sw-alert: #ff9d9d;
	--sw-rule: #4f3410;
	--sw-vector: 255, 176, 76;
	--sw-glow: 1;
	--sw-glow-color: rgba(255, 180, 90, 0.5);
}

html[data-sw-profile="mono"] {
	/* MONO — restrained cool white/gray, high legibility, minimal glow. */
	--sw-bg: #0b0b0d;
	--sw-ink: #e8e8ee;
	--sw-ink-dim: #b0b0bc;
	--sw-accent: #ffffff;
	--sw-alert: #ffa1a1;
	--sw-rule: #33333c;
	--sw-vector: 190, 190, 205;
	--sw-glow: 0.25;
	--sw-glow-color: rgba(230, 230, 240, 0.35);
}

/* SCREEN axis — independent from profile. Both are terminal-dark; this is
   NOT light/dark mode (packet §9). SOFT lowers glow and intensity only;
   text contrast is preserved. */
html[data-sw-screen="soft"] {
	--sw-glow: 0.15;
	--apnu-field-opacity: .38;
	--apnu-scan-opacity: .18;
	--apnu-show-opacity: .52;
	--apnu-ink-filter: brightness(.84) saturate(.78);
}
html[data-sw-screen="sharp"] {
	--apnu-field-opacity: .78;
	--apnu-scan-opacity: .40;
	--apnu-show-opacity: .82;
	--apnu-ink-filter: brightness(1) saturate(1);
}

/* =====================================================================
   2. BASE
   ===================================================================== */

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--sw-bg);
	color: var(--sw-ink);
	font-family: "SF Mono", "Cascadia Mono", Consolas, "DejaVu Sans Mono", Menlo, monospace;
	font-size: 16px;
	line-height: 1.45;
	overflow-x: hidden;
}

img { max-width: 100%; height: auto; }

a { color: var(--sw-ink); }
a:hover { color: var(--sw-accent); }

:focus-visible {
	outline: 2px solid var(--sw-accent);
	outline-offset: 2px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.sw-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--sw-bg);
	color: var(--sw-accent);
	padding: 0.5em 1em;
	z-index: 1000;
}
.sw-skip-link:focus { left: 0; }

.sw-wrapper {
	max-width: 1640px;
	margin: 0 auto;
	padding: 0 16px 40px;
	position: relative;
	z-index: 1; /* Above the vector field canvas. */
}

/* =====================================================================
   3. MASTHEAD — configurable brand, aspect-ratio-agnostic logo,
   optional compact status line. No editorial hero (packet §5).
   ===================================================================== */

.sw-masthead {
	text-align: center;
	padding: 22px 0 10px;
}

.sw-logo-link { display: inline-block; text-decoration: none; }

.sw-logo {
	display: block;
	margin: 0 auto;
	max-height: 150px;
	width: auto;
	max-width: 100%;
	object-fit: contain; /* Square dev logo and future horizontal logo both undistorted. */
	filter: drop-shadow(0 0 calc(6px * var(--sw-glow)) var(--sw-glow-color));
}

.sw-logo-text {
	font-size: clamp(1.8rem, 5vw, 3.2rem);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-shadow: 0 0 calc(10px * var(--sw-glow)) var(--sw-glow-color);
}

.sw-status-line {
	margin: 8px auto 0;
	font-size: 0.72rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sw-ink-dim);
}
.sw-status-line .sw-status-live { color: var(--sw-accent); }

/* =====================================================================
   4. TICKER — optional, server-rendered text, pausable, motion-safe.
   ===================================================================== */

.sw-ticker {
	display: flex;
	align-items: center;
	gap: 12px;
	border-top: 1px solid var(--sw-rule);
	border-bottom: 1px solid var(--sw-rule);
	margin: 10px 0;
	padding: 4px 8px;
	overflow: hidden;
}

.sw-ticker-track {
	display: flex;
	gap: 3em;
	list-style: none;
	margin: 0;
	padding: 0;
	white-space: nowrap;
	animation: sw-ticker-scroll 60s linear infinite;
}
/* Reading affordance: hover or keyboard focus temporarily pauses motion. */
.sw-ticker:not(.sw-ticker-js):focus-within .sw-ticker-track,
.sw-ticker.sw-ticker-js .sw-ticker-track:focus-within { animation-play-state: paused; }
.sw-ticker-track a { text-decoration: none; }
.sw-ticker-track a:hover,
.sw-ticker-track a:focus { text-decoration: underline; }

@keyframes sw-ticker-scroll {
	from { transform: translateX(100%); }
	to   { transform: translateX(-100%); }
}

/* =====================================================================
   5. WIRE — liquid three-to-one grid. Three channels of one instrument.
   Reading order (DOM = narrow-screen order): utility → col1 → col2 → col3.
   ===================================================================== */

.sw-wire {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--sw-rule);
	margin-top: 6px;
}

.sw-col {
	min-width: 0;
	padding: 18px 20px 30px;
}
.sw-col + .sw-col { border-left: 1px solid var(--sw-rule); }

/* Column 1 utility head is pinned above its wire stream. */
.sw-utility { margin-bottom: 20px; }

.sw-utility .sw-module-head,
.sw-utility .sw-insert-links .sw-headline {
	letter-spacing: 0.05em;
}

/* Modules */
.sw-module { margin: 0 0 26px; }

.sw-module-head {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--sw-ink-dim);
	margin: 0 0 10px;
	border-bottom: 1px solid var(--sw-rule);
	padding-bottom: 4px;
}

.sw-headlines,
.sw-insert-links ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sw-item { margin: 0 0 14px; }

.sw-headline {
	display: inline;
	font-size: 1.02rem;
	line-height: 1.35;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	text-shadow: 0 0 calc(7px * var(--sw-glow)) var(--sw-glow-color);
	overflow-wrap: break-word;
}

.sw-item-date,
.sw-item-blurb {
	display: block;
	font-size: 0.82rem;
	color: var(--sw-ink-dim);
	margin-top: 2px;
}

.sw-module-empty {
	color: var(--sw-ink-dim);
	font-size: 0.85rem;
	font-style: italic;
}

/* Inserts */
.sw-insert-body { font-size: 0.95rem; }
.sw-insert-links li { margin: 0 0 8px; }

/* Revenue: visually distinct from editorial headlines (packet §6.6).
   The ADVERTISEMENT label is real markup rendered by the Insert Engine, not
   generated content, so it survives with styles unavailable (ISSUES L-09). */
.sw-insert-revenue {
	border: 1px dashed var(--sw-rule);
	padding: 10px;
}
.sw-revenue-label {
	display: block;
	margin: 0 0 6px;
	font-size: 0.6rem;
	letter-spacing: 0.3em;
	color: var(--sw-ink-dim);
	text-transform: uppercase;
}

/* Slots */
.sw-slot { padding: 8px 0; text-align: center; }
/* A region emptied by a soft refresh must not leave its spacing behind. */
.sw-slot:empty, .sw-utility:empty, .sw-stream:empty { display: none; }
.sw-slot .sw-module { margin-bottom: 12px; }

/* =====================================================================
   6. FOOTER
   ===================================================================== */

.sw-footer {
	border-top: 1px solid var(--sw-rule);
	margin-top: 10px;
	padding: 24px 16px 90px;
	text-align: center;
	font-size: 0.85rem;
	color: var(--sw-ink-dim);
}

/* =====================================================================
   7. PUBLIC CONTROLS — tiny (packet §9): SCREEN + AUDIO. Rendered by JS
   (they control enhancement only); keyboard accessible.
   ===================================================================== */

.sw-controls {
	position: fixed;
	left: 16px;
	bottom: 16px;
	z-index: 50;
	display: flex;
	gap: 8px;
}

.sw-control {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: color-mix(in srgb, var(--sw-bg) 82%, black);
	border: 1px solid var(--sw-rule);
	border-radius: 20px;
	color: var(--sw-ink);
	font: inherit;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 7px 14px;
	cursor: pointer;
}
.sw-control:hover { border-color: var(--sw-ink-dim); }

.sw-control .sw-led {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--sw-rule);
}
.sw-control[aria-pressed="true"] .sw-led {
	background: var(--sw-ink);
	box-shadow: 0 0 calc(8px * var(--sw-glow)) var(--sw-glow-color);
}

/* =====================================================================
   8. VECTOR FIELD CANVAS — atmosphere only; below content; ignored by AT.
   ===================================================================== */

.sw-vector-canvas {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	z-index: 0;
	pointer-events: none;
	user-select: none;
}

/* =====================================================================
   9. EXPRESSION — event-driven, brief, causally connected. All motion is
   removed under prefers-reduced-motion.
   ===================================================================== */

/* Boot: applied ONLY when the early inline gate script adds the class
   (JS present, gate elapsed, motion allowed). Opacity/filter only — no
   layout change, no CLS, and server-rendered text is never destroyed. */
html.sw-boot-pending .sw-masthead,
html.sw-boot-pending .sw-wire,
html.sw-boot-pending .sw-ticker,
html.sw-boot-pending .sw-slot,
html.sw-boot-pending .sw-footer {
	opacity: 0;
}

html.sw-booting .sw-masthead { animation: sw-resolve 0.28s ease-out forwards; }
html.sw-booting .sw-ticker,
html.sw-booting .sw-slot { animation: sw-resolve 0.3s ease-out 0.18s forwards; }
/* All three columns energize simultaneously — one instrument. */
html.sw-booting .sw-wire { animation: sw-energize 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0.16s forwards; }
html.sw-booting .sw-footer { animation: sw-resolve 0.3s ease-out 0.4s forwards; }

@keyframes sw-resolve {
	from { opacity: 0; }
	to   { opacity: 1; }
}

@keyframes sw-energize {
	0%   { opacity: 0; filter: brightness(2.4) contrast(1.5); }
	60%  { opacity: 1; filter: brightness(1.25) contrast(1.1); }
	100% { opacity: 1; filter: brightness(1) contrast(1); }
}

/* PULSE — one restrained resolve on a newly arrived headline. */
.sw-pulse { animation: sw-pulse 1.1s ease-out 1; }

@keyframes sw-pulse {
	0%   { text-shadow: 0 0 calc(16px * var(--sw-glow)) var(--sw-glow-color); color: var(--sw-accent); }
	100% { text-shadow: 0 0 calc(7px * var(--sw-glow)) var(--sw-glow-color); color: var(--sw-ink); }
}

/* FLASH — brief module-level acknowledgment (e.g. feed recovered). */
.sw-flash { animation: sw-flash 0.6s ease-out 1; }

@keyframes sw-flash {
	0%   { filter: brightness(1.8); }
	100% { filter: brightness(1); }
}

/* Glyph cursor used by the glyph renderer in the status line. */
.sw-glyph-cursor {
	display: inline-block;
	animation: sw-blink 0.5s steps(1) infinite alternate;
}
@keyframes sw-blink { from { opacity: 0.15; } to { opacity: 1; } }

/* Reduced motion: preserve structure and meaning, remove motion
   (packet §8.2, §11). Boot classes resolve instantly. */
@media (prefers-reduced-motion: reduce) {
	html.sw-boot-pending .sw-masthead,
	html.sw-boot-pending .sw-wire,
	html.sw-boot-pending .sw-ticker,
	html.sw-boot-pending .sw-slot,
	html.sw-boot-pending .sw-footer { opacity: 1; }

	.sw-ticker-track {
		animation: none;
		white-space: normal;
		flex-wrap: wrap;
		gap: 1em;
	}

	.sw-pulse, .sw-flash, .sw-glyph-cursor,
	html.sw-booting .sw-masthead,
	html.sw-booting .sw-wire,
	html.sw-booting .sw-ticker,
	html.sw-booting .sw-slot,
	html.sw-booting .sw-footer { animation: none; }
}

/* =====================================================================
   10. DENSITY (admin preset)
   ===================================================================== */

html[data-sw-density="compact"] .sw-item { margin-bottom: 8px; }
/* Reading size is independent of density. */
html[data-sw-density="compact"] .sw-module { margin-bottom: 18px; }

/* =====================================================================
   11. RESPONSIVE — liquid 3 → 1. No primary horizontal scroll.
   ===================================================================== */

@media (max-width: 1024px) {
	.sw-col { padding: 14px 14px 24px; }
}

@media (max-width: 768px) {
	.sw-wire { grid-template-columns: minmax(0, 1fr); }
	.sw-col + .sw-col { border-left: none; border-top: 1px solid var(--sw-rule); }
	.sw-logo { max-height: 110px; }
	body { font-size: 15px; }
	.sw-controls { left: 10px; bottom: 10px; }
}

/* =====================================================================
   12. SINGULAR CONTENT (pages/posts fallback — the wire is the product;
   this is a plain readable surface, not a magazine layout).
   ===================================================================== */

.sw-singular {
	max-width: 760px;
	margin: 0 auto;
	padding: 20px 0 60px;
}
.sw-singular .sw-title { font-size: 1.7rem; line-height: 1.3; }
.sw-singular .sw-content { color: var(--sw-ink); }
.sw-singular .sw-content a { color: var(--sw-accent); }

/* =====================================================================
   13. PRINT — plain wire, no effects.
   ===================================================================== */

@media print {
	body { background: #fff; color: #000; }
	.sw-vector-canvas, .sw-controls { display: none !important; }
	.sw-headline { color: #000; text-shadow: none; }
}

/* APNU MkIII differential: one phosphor throughout the instrument. */
:root,html[data-sw-profile="green"]{--sw-bg:#020904;--sw-ink:#00dfab;--sw-ink-dim:#64ad91;--sw-accent:#53ffd0;--sw-rule:#164d3a;--sw-vector:0,255,136;--sw-glow-color:rgba(0,255,136,.28);--sw-alert:var(--sw-ink)}
html[data-sw-profile="amber"]{--sw-bg:#0c0802;--sw-ink:#ffbd59;--sw-ink-dim:#bc9256;--sw-accent:#ffda99;--sw-rule:#50381b;--sw-vector:255,176,0;--sw-glow-color:rgba(255,176,0,.25);--sw-alert:var(--sw-ink)}
html[data-sw-profile="blue"]{--sw-bg:#020b10;--sw-ink:#66e5ff;--sw-ink-dim:#78aebc;--sw-accent:#a1f0ff;--sw-rule:#20454f;--sw-vector:102,229,255;--sw-glow-color:rgba(102,229,255,.25);--sw-alert:var(--sw-ink)}
html[data-sw-profile="mono"]{--sw-bg:#080a09;--sw-ink:#d6e5dc;--sw-ink-dim:#9cab9f;--sw-accent:#f0fff5;--sw-rule:#364b3c;--sw-vector:214,229,220;--sw-glow-color:rgba(214,229,220,.18);--sw-alert:var(--sw-ink)}
body{font-family:var(--apnu-font);isolation:isolate;filter:var(--apnu-ink-filter)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:30;background:linear-gradient(transparent 50%,rgba(0,0,0,.16) 50%);background-size:100% 3px;opacity:var(--apnu-scan-opacity,.4)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:29;box-shadow:inset 0 0 13vw rgba(0,0,0,.35)}
.sw-wrapper{position:relative;z-index:1;max-width:none;padding:0 30px 12px;background:transparent}
/* Above the body paint, behind the readable instrument. */
.apnu-background{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
#vfd-asteroids-canvas{opacity:var(--apnu-field-opacity,.78);mix-blend-mode:screen;transition:opacity .25s ease}
#apnu-showtape-canvas{z-index:2;opacity:var(--apnu-show-opacity,.82);mix-blend-mode:screen;transition:opacity .25s ease}
.sw-masthead{padding:0;text-align:left}
.apnu-instrument-line{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--sw-rule);font-size:10px;letter-spacing:.16em;color:var(--sw-ink-dim)}
.apnu-masthead-main{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0 20px}
.apnu-wordmark{display:flex;align-items:center;gap:22px;text-decoration:none;color:var(--sw-ink);min-width:0}
.apnu-logo-plot{display:block;position:relative;width:min(410px,43vw);overflow:hidden;filter:drop-shadow(0 0 3px var(--sw-glow-color)) drop-shadow(0 0 12px color-mix(in srgb,var(--sw-ink) 32%,transparent))}
.apnu-mark{display:block;width:100%;height:auto;mix-blend-mode:screen;filter:var(--apnu-image-filter)}
.apnu-logo-canvas{display:none;width:100%;height:auto}.apnu-logo-plot.apnu-vector-ready .apnu-mark{visibility:hidden}.apnu-logo-plot.apnu-vector-ready .apnu-logo-canvas{display:block;position:absolute;inset:0 auto auto 0}
.apnu-brand-text{display:flex;flex-direction:column;gap:5px}
.apnu-title{letter-spacing:.22em;font-size:clamp(.7rem,1.15vw,.95rem)}
.apnu-title small{font-size:.72em;letter-spacing:0}
.apnu-display-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:310px}
.apnu-control-caption{width:100%;text-align:right;color:var(--sw-ink-dim);font-size:9px;letter-spacing:.18em;margin-bottom:5px}
.apnu-mode{color:var(--sw-ink-dim);background:var(--sw-bg);border:1px solid var(--sw-rule);font:inherit;font-size:11px;padding:8px 10px;cursor:pointer}
.apnu-mode[aria-pressed="true"]{background:var(--sw-ink);color:var(--sw-bg);border-color:var(--sw-ink)}
.apnu-system-status{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--sw-rule);font-size:12px}
.apnu-system-status-label{font-size:12px;letter-spacing:.08em}
.apnu-beacon{height:5px;width:5px;flex:none;background:var(--sw-ink);box-shadow:0 0 7px var(--sw-glow-color)}
.sw-status-line{margin:0;text-align:left;font-size:10px;letter-spacing:.08em;line-height:1.65}
.apnu-system-status[data-state="ATTENTION"]{border-top-style:dashed}
.sw-ticker{margin:0 0 10px;font-size:12px;padding:7px 0;background:color-mix(in srgb,var(--sw-bg) 80%,transparent)}
.sw-ticker:hover .sw-ticker-track{animation-play-state:paused}
.sw-ticker-track{animation-duration:var(--apnu-ticker-speed,60s)}
.sw-wire{margin-top:0;border-top:1px solid var(--sw-rule)}
.sw-col{position:relative;padding:20px 22px 24px}
.sw-col::before{content:"";position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--sw-rule);transform-origin:top;transform:scaleY(1)}
.sw-col:first-child::before{display:none}
.sw-col:first-child{padding-left:0}.sw-col:last-child{padding-right:0}
.apnu-channel-label{font-size:10px;letter-spacing:.15em;color:var(--sw-ink-dim);display:flex;justify-content:space-between;border-bottom:1px solid var(--sw-rule);padding:12px 0;margin-bottom:24px}
.apnu-channel-label span{opacity:.8}
.sw-module{margin-bottom:32px}
.sw-module-head{color:var(--sw-ink-dim);font-weight:400;font-size:11px;letter-spacing:.15em;margin-bottom:13px}
/* Ordinary source boundaries are spacing only. A visible horizontal rule is
   reserved exclusively for an explicit data-apnu-divider module. */
.sw-stream>.sw-module-feed,.sw-stream>.apnu-balanced-wire{border:0!important;box-shadow:none!important;background-image:none!important}
.sw-stream>.sw-module-feed::before,.sw-stream>.sw-module-feed::after,.sw-stream>.apnu-balanced-wire::before,.sw-stream>.apnu-balanced-wire::after{content:none!important;display:none!important}
.sw-stream>.sw-module-feed>.sw-module-head{border:0!important;padding-bottom:0}
.sw-headline{font-size:var(--apnu-news-size,1.08rem);line-height:1.52;text-shadow:0 0 calc(4px * var(--sw-glow)) var(--sw-glow-color);text-decoration-thickness:1px}
.sw-item{margin-bottom:17px}.sw-item-date,.sw-item-blurb{font-size:11px;line-height:1.6;margin-top:5px}
.sw-utility a{line-height:1.65}.apnu-utility-title{display:inline-block;padding:4px 8px;border:1px solid currentColor;font-size:12px;letter-spacing:.15em;margin:0 0 12px}
.apnu-utility-links{display:flex;flex-direction:column;gap:8px;margin:12px 0 20px}.apnu-utility-links a{font-size:14px}
.sw-module[data-apnu-divider="true"]{margin:0}
.apnu-wire-divider,.sw-insert-body>hr{display:block;height:1px;margin:26px 0 24px;border:0;background:var(--sw-ink);background:color-mix(in srgb,var(--sw-ink) 76%,transparent);box-shadow:0 0 4px var(--sw-glow-color);box-shadow:0 0 4px color-mix(in srgb,var(--sw-ink) 38%,transparent),0 0 10px color-mix(in srgb,var(--sw-glow-color) 58%,transparent)}
.apnu-balanced-divider{display:block;margin:0;padding:0;list-style:none}
.sw-module-empty-state[hidden]{display:none!important}
.sw-footer{padding:20px 0 65px}.apnu-footer-line{display:flex;justify-content:space-between;gap:16px;font-size:12px;letter-spacing:.09em;padding-top:10px;flex-wrap:wrap}.apnu-maker-link{transition:filter .18s ease,text-shadow .18s ease}.apnu-maker-link:hover,.apnu-maker-link:focus-visible{filter:brightness(1.28);text-shadow:0 0 5px var(--sw-ink),0 0 14px var(--sw-glow-color)}
.sw-controls{left:20px;bottom:16px;gap:6px;max-width:calc(100vw - 32px);flex-wrap:wrap}
.sw-control{border-radius:2px;font-size:10px;padding:9px 12px;letter-spacing:.05em;background:var(--sw-bg)}
.sw-control:disabled{cursor:default;opacity:.7}
.sw-boot-pending .sw-wire,.sw-booting .sw-wire{visibility:visible;opacity:1;transform:none;filter:none}
.sw-booting .sw-col::before{animation:apnu-column-plot 1.55s cubic-bezier(.2,.75,.15,1) .08s both}
@keyframes apnu-column-plot{0%{transform:scaleY(0);box-shadow:0 0 18px var(--sw-ink)}100%{transform:scaleY(1);box-shadow:0 0 0 transparent}}
.apnu-typing-link{display:inline-grid;position:relative;vertical-align:top;text-decoration:none!important}.apnu-typing-link>span{grid-area:1/1;min-width:0}.apnu-text-base{color:transparent;text-shadow:none;text-decoration:none!important}.apnu-typing-ink{position:relative;pointer-events:none;color:var(--sw-ink);text-decoration:underline;text-underline-offset:3px;text-shadow:0 0 3px var(--sw-ink),0 0 9px var(--sw-glow-color)}
/* Commercial color is deliberately isolated from every editorial selector. */
.sw-insert-revenue{padding:0;border:0;text-align:left}
.sw-revenue-label{font-size:9px;letter-spacing:.18em;margin:0;padding:7px 0}
.apnu-commercial{--ad-color:#ff4c54;display:block;position:relative;isolation:isolate;overflow:hidden;color:#fff;background:#22090c;border:1px solid var(--ad-color);text-decoration:none;min-height:150px;padding:24px;box-shadow:inset 0 0 45px color-mix(in srgb,var(--ad-color) 22%,transparent)}
.apnu-commercial::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.22) 2px 3px);pointer-events:none;z-index:1}
.apnu-commercial[data-chroma="gold"]{--ad-color:#ffb000;background:#231403}
.apnu-commercial[data-chroma="magenta"]{--ad-color:#ff46b2;background:#240919}
.apnu-commercial[data-chroma="cyan"]{--ad-color:#00e5ff;background:#021c26}
.apnu-commercial[data-chroma="full"]{--ad-color:#fff;background:linear-gradient(120deg,#59101f,#34124e 60%,#063a53)}
.apnu-commercial[data-chroma="phosphor"]{--ad-color:var(--sw-ink);background:var(--sw-bg);color:var(--sw-ink)}
.apnu-commercial:hover{color:#fff;box-shadow:inset 0 0 70px color-mix(in srgb,var(--ad-color) 35%,transparent)}
.apnu-commercial .apnu-ad-eyebrow{display:block;color:var(--ad-color);font-size:10px;letter-spacing:.25em;margin-bottom:12px}
.apnu-commercial .apnu-ad-title{display:block;font-family:Arial,Helvetica,sans-serif;font-size:clamp(2rem,3.5vw,4rem);font-weight:900;letter-spacing:-.035em;line-height:.95;color:var(--ad-color);text-shadow:0 0 16px color-mix(in srgb,var(--ad-color) 35%,transparent)}
.apnu-commercial .apnu-ad-copy{display:block;font-size:12px;line-height:1.6;max-width:36em;margin:16px 0}
.apnu-commercial .apnu-ad-cta{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-top:18px}
.apnu-commercial img{display:block;width:100%;height:auto}
.apnu-commercial.apnu-ad-image{padding:0;min-height:0}
.apnu-commercial.apnu-ad-matrix{padding:0;min-height:0;background:#020203}
.apnu-ad-image-stage{display:block;position:relative;overflow:hidden;background:#020203}
.apnu-ad-image-stage .apnu-pixel-canvas{display:block;width:100%;height:auto;filter:saturate(1.2) brightness(1.06);animation:apnu-pixel-arrive .8s steps(16,end) both}
.apnu-ad-image-stage[data-bloom="low"] .apnu-pixel-canvas{filter:saturate(1.08) brightness(1.02)}
.apnu-ad-image-stage[data-bloom="medium"] .apnu-pixel-canvas{filter:saturate(1.2) brightness(1.06) drop-shadow(0 0 4px rgba(255,80,90,.35))}
.apnu-ad-image-stage[data-bloom="high"] .apnu-pixel-canvas{filter:saturate(1.35) brightness(1.12) drop-shadow(0 0 7px rgba(255,80,90,.5))}
.apnu-ad-image-stage.apnu-pixels-ready img{position:absolute;inset:0;opacity:0;pointer-events:none}
@keyframes apnu-pixel-arrive{0%{clip-path:inset(0 0 100%);filter:brightness(2.1) saturate(1.6)}100%{clip-path:inset(0)}}
.apnu-commercial[data-chroma="phosphor"] img{filter:grayscale(1);mix-blend-mode:luminosity}
.apnu-commercial.apnu-ad-text .apnu-ad-title{font:inherit;font-size:1.25rem;font-weight:bold;line-height:1.5;letter-spacing:0}
.apnu-commercial.apnu-ad-text{min-height:118px;border-left:3px solid var(--ad-color);background:color-mix(in srgb,var(--ad-color) 9%,#050607)}
.apnu-commercial.apnu-ad-text .apnu-ad-title{font-size:clamp(1.55rem,2.2vw,2.25rem);line-height:1.15;color:var(--ad-color)}
.sw-insert-revenue .sw-revenue img{max-width:100%}
.apnu-advertise-link{display:block;margin:10px 0 26px;padding:9px 11px;border:1px solid var(--sw-rule);color:var(--sw-ink);font-size:13px;text-align:center;text-decoration:none}.apnu-advertise-link:hover,.apnu-advertise-link:focus-visible{border-color:var(--sw-ink);box-shadow:0 0 10px var(--sw-glow-color)}
@media(min-width:1500px){.sw-wrapper{padding-left:4vw;padding-right:4vw}}
@media(max-width:760px){.sw-wrapper{padding:0 15px 8px}.apnu-instrument-line{font-size:10px;letter-spacing:.04em}.apnu-instrument-line span:last-child{display:none}.apnu-masthead-main{flex-wrap:wrap;gap:18px;padding:20px 0}.apnu-logo-plot{width:min(330px,76vw)}.apnu-title{font-size:12px}.apnu-wordmark{gap:12px}.apnu-display-controls{justify-content:flex-start;max-width:none;width:100%}.apnu-control-caption{width:auto;align-self:center;margin:0 8px 0 0;text-align:left;font-size:11px}.apnu-mode{padding:9px;font-size:12px}.apnu-system-status{flex-wrap:wrap;gap:6px}.sw-status-line{width:100%;font-size:11px}.sw-col,.sw-col:first-child,.sw-col:last-child{padding:18px 0 15px}.sw-col::before{display:none}.sw-col+.sw-col{border-left:0}.sw-headline{font-size:var(--apnu-news-size,1.08rem)}.sw-controls{left:12px;bottom:10px}.sw-control{padding:9px;font-size:11px}.apnu-commercial .apnu-ad-title{font-size:2.6rem}}
html.apnu-motion-off *,html.apnu-motion-off *::before,html.apnu-motion-off *::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{body::before,body::after,.apnu-background,.apnu-display-controls,.sw-controls{display:none!important}.sw-wrapper{padding:0}.sw-headline{color:black;text-shadow:none}}
/* Editorial media follows the chosen phosphor; revenue media bypasses this filter. */
:root{--apnu-image-filter:grayscale(1) sepia(1) saturate(3) hue-rotate(95deg)}
html[data-sw-profile="amber"]{--apnu-image-filter:grayscale(1) sepia(1) saturate(3)}
html[data-sw-profile="blue"]{--apnu-image-filter:grayscale(1) sepia(1) saturate(3) hue-rotate(145deg)}
html[data-sw-profile="mono"]{--apnu-image-filter:grayscale(1)}
.sw-content img,.sw-module:not(.sw-insert-revenue) img,.sw-logo{filter:var(--apnu-image-filter)}

html.sw-boot-pending .sw-masthead,html.sw-boot-pending .sw-wire,html.sw-boot-pending .sw-ticker,html.sw-boot-pending .sw-slot,html.sw-boot-pending .sw-footer{opacity:1}
html.sw-booting .sw-masthead,html.sw-booting .sw-wire,html.sw-booting .sw-ticker,html.sw-booting .sw-slot,html.sw-booting .sw-footer{animation:none}
@font-face{font-family:"JetBrains Mono";src:url("assets/fonts/JetBrainsMono.ttf") format("truetype");font-weight:100 800;font-display:swap}
@font-face{font-family:"Share Tech Mono";src:url("assets/fonts/ShareTechMono.ttf") format("truetype");font-display:swap}
@font-face{font-family:"VT323";src:url("assets/fonts/VT323.ttf") format("truetype");font-display:swap}
@font-face{font-family:"Cutive Mono";src:url("assets/fonts/CutiveMono.ttf") format("truetype");font-display:swap}
@font-face{font-family:"Roboto Mono";src:url("assets/fonts/RobotoMono.ttf") format("truetype");font-weight:100 700;font-display:swap}

:root{--apnu-font:"JetBrains Mono","Share Tech Mono",Consolas,Menlo,monospace;--apnu-news-size:1.08rem}
html[data-apnu-reader-font="terminal"]{--apnu-font:"Share Tech Mono",Consolas,Menlo,monospace}
html[data-apnu-reader-font="crt"]{--apnu-font:"VT323",Consolas,Menlo,monospace}
html[data-apnu-reader-font="teletype"]{--apnu-font:"Cutive Mono",Courier,monospace}
.apnu-commercial.apnu-ad-arriving{animation:apnu-ad-scan .9s ease-out both}
@keyframes apnu-ad-scan{0%{clip-path:inset(0 0 99%);opacity:.4}100%{clip-path:inset(0);opacity:1}}

/* 3.2 final instrument controls. Background, typography and phosphor are independent axes. */
body{min-height:100vh;filter:none;font-weight:var(--apnu-text-weight,400)}
.sw-headline,.sw-module-head,.sw-status-line,.apnu-instrument-line,.apnu-footer-line,.apnu-utility-links,.sw-control,.apnu-display-controls{filter:brightness(var(--apnu-text-contrast,1))}
body::before{opacity:var(--apnu-scan-user,.4)}
.sw-headline,.apnu-typing-ink{text-shadow:0 0 calc(var(--apnu-glow-px,5px) * var(--sw-glow,1)) var(--sw-glow-color)}
.apnu-masthead-main{align-items:flex-start}
.apnu-wordmark{flex:1;max-width:min(760px,68vw)}
.apnu-logo-plot{width:min(720px,62vw);aspect-ratio:235/36;overflow:hidden;background:none!important;filter:drop-shadow(0 0 2px var(--sw-glow-color))}
.apnu-logo-canvas{display:block!important;position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}
.apnu-control-stack{display:flex;flex-direction:column;align-items:flex-end;gap:11px;flex:none}
.apnu-station-link{color:var(--sw-ink);font-size:clamp(.76rem,1vw,.98rem);letter-spacing:.21em;text-decoration:none;text-transform:uppercase;text-shadow:0 0 calc(var(--apnu-glow-px,5px) * var(--sw-glow,1)) var(--sw-glow-color)}
.apnu-station-link small{font-size:.72em;letter-spacing:.04em}
.apnu-station-link:hover,.apnu-station-link:focus-visible{color:var(--sw-accent)}
html[data-apnu-sources="hide"] .sw-module-head{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0;padding:0;border:0}
.apnu-maker-link{font-weight:500;letter-spacing:.13em;text-decoration-thickness:1px;text-underline-offset:4px;text-shadow:0 0 calc(var(--apnu-glow-px,5px) * var(--sw-glow,1)) var(--sw-glow-color)}
.apnu-maker-link b{font-weight:700;color:var(--sw-accent)}
.sw-ticker-track{animation:none;will-change:transform}
.sw-ticker-track>li{flex:0 0 auto}
.sw-ticker-track.apnu-ticker-building{visibility:hidden}
.sw-ticker-track.apnu-ticker-running{animation:apnu-ticker-loop var(--apnu-ticker-duration,var(--apnu-ticker-speed,76s)) linear infinite}
@keyframes apnu-ticker-loop{from{transform:translateX(0)}to{transform:translateX(calc(-1px * var(--apnu-ticker-distance,1000)))}}
.apnu-typing-cursor{display:inline-block;width:.62em;height:1.05em;margin-left:.06em;vertical-align:-.12em;background:currentColor;box-shadow:0 0 var(--apnu-glow-px,5px) var(--sw-glow-color);animation:apnu-cursor-blink .62s steps(1,end) infinite}
@keyframes apnu-cursor-blink{50%{opacity:.16}}
.apnu-led-canvas{image-rendering:auto}
.apnu-commercial.apnu-ad-matrix{background:#020403}
.apnu-commercial.apnu-ad-matrix .apnu-pixel-canvas{mix-blend-mode:screen}
.apnu-layout-source[hidden]{display:none!important}
.apnu-balanced-wire{min-width:0}
.apnu-logo-plot{background-image:none;opacity:1}




@media(max-width:760px){.apnu-masthead-main{align-items:stretch}.apnu-wordmark{max-width:100%;width:100%}.apnu-logo-plot{width:min(650px,100%)}.apnu-control-stack{width:100%;align-items:flex-start}.apnu-display-controls{width:100%;justify-content:flex-start}.apnu-station-link{font-size:.88rem}.apnu-footer-line{flex-direction:column;align-items:center;text-align:center;gap:13px}.sw-headline{font-size:max(1rem,var(--apnu-news-size,1.08rem))}.apnu-wire-divider,.sw-insert-body>hr{margin:21px 0 20px}}
@media(prefers-reduced-motion:reduce){.apnu-typing-cursor{animation:none;opacity:1}.sw-ticker-track.apnu-ticker-running{animation:none;transform:none;white-space:normal;flex-wrap:wrap}}

/* 3.2.8-dev12d: deterministic font and headline startup sequence. */
html{background:var(--sw-bg)}
html[data-apnu-reader-font="jetbrains"]{--apnu-font:"JetBrains Mono",Consolas,Menlo,monospace}
html[data-apnu-reader-size="small"]{--apnu-news-size:.95rem}
html[data-apnu-reader-size="intermediate"]{--apnu-news-size:1.015rem}
html[data-apnu-reader-size="standard"]{--apnu-news-size:1.08rem}
html[data-apnu-reader-size="comfortable"]{--apnu-news-size:1.16rem}
html[data-apnu-reader-size="large"]{--apnu-news-size:1.24rem}
html[data-apnu-reader-size="xlarge"]{--apnu-news-size:1.45rem}
html[data-sw-screen="off"]{--sw-glow:0;--apnu-field-opacity:.30;--apnu-show-opacity:.40}
html[data-sw-screen="normal"]{--sw-glow:.55;--apnu-field-opacity:.58;--apnu-show-opacity:.68}
html[data-sw-screen="sharp"]{--sw-glow:1}
html[data-sw-screen="off"] .sw-headline,html[data-sw-screen="off"] .apnu-typing-ink{text-shadow:none}
html[data-sw-profile="og"]{--sw-bg:#030b07;--sw-ink:#21d6ae;--sw-ink-dim:#80b6a5;--sw-accent:#ff9a43;--sw-rule:#718d82;--sw-vector:128,211,179;--sw-glow-color:rgba(122,219,184,.22);--apnu-image-filter:none}
html[data-sw-profile="og"] a:hover,html[data-sw-profile="og"] a:focus-visible{color:#ff9a43}
.sw-controls{display:flex;flex-direction:column;align-items:flex-start;z-index:60}
#apnu-controls-toggle{border-radius:22px;min-height:44px;padding:10px 18px}
#apnu-controls-panel{display:flex;flex-wrap:wrap;gap:10px;width:min(560px,calc(100vw - 32px));max-height:65vh;overflow:auto;padding:14px;border:1px solid var(--sw-ink-dim);background:var(--sw-bg);box-shadow:0 3px 14px #0008}
#apnu-controls-panel[hidden]{display:none}
#apnu-controls-panel label{display:flex;flex:1 1 155px;flex-direction:column;gap:6px;font-size:12px}
#apnu-controls-panel select{font:inherit;color:var(--sw-ink);background:var(--sw-bg);border:1px solid var(--sw-rule);min-height:44px;max-width:100%}
#apnu-controls-panel .sw-control{min-height:44px}
#apnu-controls-panel input{min-height:28px;accent-color:var(--sw-ink)}
#apnu-controls-panel :focus-visible,#apnu-controls-toggle:focus-visible{outline:2px solid var(--sw-accent);outline-offset:3px}
@media(prefers-reduced-motion:no-preference){#apnu-controls-panel:not([hidden]){animation:apnu-control-open .16s ease-out}@keyframes apnu-control-open{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}}
.apnu-utility-links{border:1px solid var(--apnu-utility-accent,var(--sw-ink-dim));border-left-width:3px;padding:12px 14px;background:transparent}
.apnu-utility-links a{min-height:28px;display:flex;align-items:center;gap:.5em}
.apnu-utility-emoji{font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;filter:none;line-height:1}
.apnu-utility-boundary{margin-top:24px}
.apnu-wire-divider,.sw-insert-body>hr{background:var(--apnu-divider-color,var(--sw-ink));opacity:var(--apnu-divider-opacity,.76);box-shadow:0 0 var(--apnu-divider-glow,4px) var(--apnu-divider-color,var(--sw-glow-color))}
/* Source remains an accessible fallback, hidden visually only while a renderer owns it. */
.apnu-ad-image-stage[data-render-state="processing"] img{visibility:hidden}
.apnu-ad-image-stage[data-render-state="ready"] img{position:absolute;inset:0;opacity:0}
.apnu-ad-image-stage[data-render-state="ready"] .apnu-pixel-canvas{animation:none}
.apnu-motion-off .apnu-typing-cursor{animation:none;opacity:1}
html{--apnu-world-accent:#76cbb4;--apnu-utility-accent:var(--apnu-utility-override,var(--apnu-world-accent))}
html[data-apnu-aesthetic="tektronix"]{--apnu-world-accent:#b1c987}
html[data-apnu-aesthetic="flight"]{--apnu-world-accent:#d2b5f0}
html[data-apnu-aesthetic="miami"]{--apnu-world-accent:#e9aece}

html[data-sw-profile="og"] .apnu-utility-title{color:#29b9f0}
html[data-sw-profile="og"] .apnu-wire-divider{--apnu-divider-color:#93aaa0}

html.apnu-effects-enabled .apnu-ad-matrix .apnu-ad-image-stage:not([data-render-state]) img{visibility:hidden}
.apnu-ad-image-stage[data-render-state="error"] img{visibility:visible;position:static;opacity:1}

/* Only decorative rules are hidden while their phosphor trace is writing. */
.apnu-trace-layer{position:fixed;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:12}
.apnu-trace-layer circle{filter:drop-shadow(0 0 3px var(--sw-ink))}
html[data-sw-screen="off"] .apnu-trace-layer circle{filter:none}
.apnu-trace-writing{border-color:transparent!important}
.apnu-trace-writing.sw-col::before{visibility:hidden!important}
.apnu-trace-rule{background:transparent!important;box-shadow:none!important}
@media print{.apnu-trace-layer{display:none}}

/* Operator accents apply only to non-OG profiles. OG retains its original orange. */
:root{--apnu-reading-hover:#ff9a43}
html[data-apnu-aesthetic="spatial"]{--apnu-reading-hover:var(--apnu-hover-spatial,#ff9a43)}
html[data-apnu-aesthetic="tektronix"]{--apnu-reading-hover:var(--apnu-hover-tektronix,#ffe600)}
html[data-apnu-aesthetic="flight"]{--apnu-reading-hover:var(--apnu-hover-flight,#ff9a43)}
html[data-apnu-aesthetic="miami"]{--apnu-reading-hover:var(--apnu-hover-miami,#d4ff00)}
html[data-sw-profile="amber"][data-apnu-aesthetic="spatial"]{--apnu-reading-hover:var(--apnu-hover-spatial,#00e5ff)}
html[data-sw-profile="amber"][data-apnu-aesthetic="tektronix"]{--apnu-reading-hover:var(--apnu-hover-tektronix,#00e5ff)}
html[data-sw-profile="amber"][data-apnu-aesthetic="flight"]{--apnu-reading-hover:var(--apnu-hover-flight,#00e5ff)}
html[data-sw-profile]:not([data-sw-profile="og"]) a.sw-headline:hover,
html[data-sw-profile]:not([data-sw-profile="og"]) a.sw-headline:focus,
html[data-sw-profile]:not([data-sw-profile="og"]) .apnu-utility-links a:hover,
html[data-sw-profile]:not([data-sw-profile="og"]) .apnu-utility-links a:focus{color:var(--apnu-reading-hover)}
html[data-sw-profile] .sw-headline:hover .apnu-typing-ink,html[data-sw-profile] .sw-headline:focus .apnu-typing-ink{color:inherit}

.apnu-fatigue-suppressed{display:none!important}

/* Approved OG restoration */

@font-face{font-family:OGNews;src:url(assets/fonts/RobotoCondensed.ttf) format('truetype');font-weight:100 900;font-display:swap}
:root{--apnu-font:OGNews,'Arial Narrow',Arial,sans-serif;--apnu-news-size:clamp(27px,2.25vw,40px)}
html.apnu-font-pending .sw-wrapper{visibility:hidden}
html.apnu-headlines-pending .sw-headline,.sw-headline.apnu-headline-waiting{visibility:hidden}
html[data-sw-profile="og"]{--sw-bg:#020904;--sw-ink:#00cd9d;--sw-ink-dim:#008d72;--sw-rule:#b1b1ac;--sw-vector:0,255,136;--sw-glow-color:rgba(0,255,136,.15)}
body{background:#020904;filter:none}.sw-wrapper{width:90%;max-width:1600px;margin:0 auto;padding:0 0 90px}
.og-masthead{padding:48px 0 0;margin:0 0 72px;border:0}.og-masthead a{display:block}.og-original-logo{display:block;width:100%;height:auto;animation:og-logo-glow 5s ease-in-out infinite}
@keyframes og-logo-glow{0%,100%{filter:drop-shadow(0 0 1px #00ff88dd) drop-shadow(0 0 5px #00ff884d)}50%{filter:drop-shadow(0 0 2px #00ff88ee) drop-shadow(0 0 8px #00ff8870)}}
.apnu-motion-off .og-original-logo{animation:none}
.sw-wire{border:0;align-items:stretch;gap:0}.sw-col{padding:0 26px!important;min-width:0}.sw-col:first-child{padding-left:0!important}.sw-col:last-child{padding-right:0!important}.sw-col+.sw-col{border-left:1px solid #b1b1ac}.sw-col::before{display:none!important}
.sw-module{margin:0;padding:0;border:0}.sw-headlines{margin:0;padding:0}.sw-headlines>li{padding:0;margin:0 0 clamp(30px,2.6vw,48px)}
.sw-headline{font-family:var(--apnu-font);font-size:var(--apnu-news-size);font-weight:350;line-height:1.07;letter-spacing:0;text-shadow:none;text-decoration-thickness:1px;text-underline-offset:3px}
.sw-headline .apnu-typing-ink{font:inherit;line-height:inherit}.sw-module-title{display:none}.apnu-utility-title{color:#00baff!important;font-family:OGNews,Arial,sans-serif;font-size:clamp(28px,2.5vw,44px);font-weight:600;border:0;padding:0;margin:0 0 30px;letter-spacing:0;background:none}
.apnu-utility-links{display:block;border:0;padding:0;background:none;box-shadow:none}.apnu-utility-links a{display:block;margin:0 0 28px;color:#008d72;font-family:OGNews,Arial,sans-serif;font-size:var(--apnu-news-size);font-weight:350;line-height:1.1;letter-spacing:0;text-decoration:underline}
html[data-sw-profile="og"] a:hover,html[data-sw-profile="og"] a:focus-visible{color:#ff9a43}
.apnu-typing-cursor{font-family:monospace}.apnu-utility-boundary{display:none}.sw-utility{margin-bottom:36px}
.og-footer{text-align:center;font:clamp(14px,1.2vw,20px)/1.35 'Share Tech Mono',monospace;color:#00baff;margin-top:28px}.og-footer-invite{border-top:2px solid #00baff;padding-top:20px}.og-footer-sources{border-top:2px solid #00baff;border-bottom:2px solid #00baff;padding:18px;margin:20px auto;max-width:70%;color:#83b3ff}.og-thanks{color:#eff400}.og-flag{font:70px/1.2 sans-serif;margin:15px}.og-pure{color:#8aff85;text-shadow:0 0 3px #00ff88;font-weight:bold;margin:35px 0 18px}.og-footer a{color:#00cd9d}
.apnu-preview-label{font-size:10px;line-height:1.4;padding:5px;letter-spacing:.04em;opacity:.65;border:0}
@media(max-width:760px){.sw-wrapper{width:94%;padding-bottom:85px}.og-masthead{padding-top:24px;margin-bottom:36px}.sw-col,.sw-col:first-child,.sw-col:last-child{padding:0!important;border:0}.sw-col+.sw-col{border:0;margin-top:30px}.sw-headline{font-size:var(--apnu-news-size)}.apnu-utility-links a{margin-bottom:24px}.og-footer-sources{max-width:90%}}
@media(prefers-reduced-motion:reduce){.og-original-logo{animation:none}}


.sw-controls{left:auto!important;right:16px!important;bottom:max(16px,env(safe-area-inset-bottom))!important;align-items:flex-end}
.sw-controls[hidden]{display:none!important}
#apnu-signal{position:fixed;left:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:65;border-radius:22px;min-height:44px;padding:10px 16px;background:var(--sw-bg);color:var(--sw-ink);border:1px solid var(--sw-ink-dim)}
#apnu-signal:focus-visible{outline:2px solid #ff9a43;outline-offset:3px}
#signal-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#signal-review-label{padding:8px 14px;background:#0b1612;color:#a0b6ac;font:11px monospace;text-align:center}
#signal-editor{width:100%;border:1px solid #ff9a43;padding:12px;display:flex;flex-wrap:wrap;gap:12px}#signal-editor legend{color:#ff9a43}#signal-editor p{font:12px monospace;margin:0}#signal-editor input{background:#030b07;color:#21d6ae;border:1px solid #718d82;min-height:36px;font:inherit;width:100%}
@media(max-width:480px){#apnu-signal{left:8px;padding:9px;font-size:10px}.sw-controls{right:8px!important}#apnu-controls-toggle{padding:9px;font-size:10px}#apnu-controls-panel{width:calc(100vw - 32px)}}
@media print{#apnu-signal,#signal-status,#signal-review-label{display:none}}

/* Site-default typography is the approved OG face; explicit reader choices still win. */
html:not([data-apnu-reader-font]){--apnu-font:var(--apnu-site-font,OGNews,'Arial Narrow',Arial,sans-serif)}
html:not([data-apnu-reader-size]){--apnu-news-size:var(--apnu-site-news-size,clamp(24px,2vw,36px))}

/* Consistent reading area; empty space is explicit rather than stretched typography. */
.apnu-balanced-wire .sw-headlines{display:flow-root}
.apnu-balanced-block{list-style:none}
#apnu-more-stories,#apnu-pending-updates{display:block;margin:20px auto;max-width:90%;min-height:44px}
#apnu-more-stories[hidden],#apnu-pending-updates[hidden]{display:none}
.apnu-new-story::after{content:' NEW';font:10px/1 sans-serif;color:var(--sw-ink-dim);white-space:nowrap;text-decoration:none}
html[data-apnu-reader-size="small"]{--apnu-news-size:clamp(18px,1.5vw,27px)}
html[data-apnu-reader-size="intermediate"]{--apnu-news-size:clamp(20px,1.65vw,30px)}
html[data-apnu-reader-size="standard"]{--apnu-news-size:clamp(22px,1.8vw,32px)}
html[data-apnu-reader-size="comfortable"]{--apnu-news-size:clamp(24px,2vw,36px)}
html[data-apnu-reader-size="large"]{--apnu-news-size:clamp(27px,2.25vw,40px)}
html[data-apnu-reader-size="xlarge"]{--apnu-news-size:clamp(30px,2.5vw,44px)}

/* Static-link frame: bright core stays legible independently of ambient intensity. */
:root{--apnu-utility-wire:#9dffdc}
html[data-sw-profile="amber"]{--apnu-utility-wire:#ffe39a}
html[data-sw-profile="blue"]{--apnu-utility-wire:#a8f5ff}
html[data-sw-profile="mono"]{--apnu-utility-wire:#f1fff5}
.apnu-utility-links{border:1px solid var(--apnu-utility-wire);padding:18px 20px;background:transparent;box-shadow:0 0 calc(4px * var(--sw-glow,0)) var(--apnu-utility-wire);box-sizing:border-box}
.apnu-utility-links a:last-child{margin-bottom:0}
.apnu-utility-links.apnu-trace-writing{box-shadow:none}

/* Page width changes only the outer margins, never text size or inner spacing. */
@media(min-width:1200px){html[data-apnu-page-width="standard"] .sw-wrapper{width:82%;max-width:1280px}}

/* The frame separates utility links; keep their vertical rhythm compact. */
.apnu-utility-links a{margin-bottom:14px;min-height:28px;line-height:1.15}
.apnu-utility-links a:last-child{margin-bottom:0}
.apnu-utility-title{margin-bottom:14px}
@media(pointer:coarse){.apnu-utility-links a{min-height:36px;display:flex;align-items:center}}

@media(min-width:1200px){html[data-apnu-page-width="centered"] .sw-wrapper{width:70%;max-width:1120px}}

/* Owner-selectable update cues; hover retains its approved palette. */
html[data-apnu-new-cue="color"] .apnu-new-story::after,html[data-apnu-new-cue="none"] .apnu-new-story::after{content:none}
html[data-apnu-new-cue="color"] .apnu-new-story:not(:hover):not(:focus){color:var(--apnu-utility-wire)}
html[data-apnu-new-cue="dot"] .apnu-new-story::after{content:' •';color:var(--apnu-utility-wire)}
.apnu-story-arrival{outline:1px solid var(--apnu-utility-wire);outline-offset:5px;transition:outline-color 1s ease}
.apnu-story-arrival.apnu-arrival-settled{outline-color:transparent}
@media(prefers-reduced-motion:reduce){.apnu-story-arrival{transition:none}}

/* The framed links identify the utility panel without a redundant heading. */
.apnu-utility-title{display:none}
