/*
Theme Name: APNUNEWS
Theme URI: https://associatedpublic.com/
Author: ASSOCIATED PUBLIC
Author URI: https://associatedpublic.com/
Description: ASSOCIATED PUBLIC · APNUNEWS automated newswire on the DX.Wire engine. The same files run as a static site; as a theme it adds Appearance → Customize → APNUNEWS and the server-side wire.
Version: 2.3.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: apnunews
*/
/* APNUNEWS v2.3 · ASSOCIATED PUBLIC · DX.Wire substrate
   themes: newsprint · dark · terminal (palettes: classic · glacier · lagoon · aurora) · looks: tabloid · editorial · modern */
:root,[data-theme=newsprint]{--bg:#F6F6F3;--fg:#111111;--text-accent:#C8102E;--on-ac:#FFFFFF;--cd:#FFFDF0;--hl:#FEF08A;--nw:#FEF9C3;--hr:#CFCFC8;--mu:#555555;--ib:#111111;--if:#F6F6F3;--gl:none;
--d:Impact,Haettenschweiler,'Arial Narrow Bold','Arial Black',sans-serif;--b:Arial,'Helvetica Neue',Helvetica,sans-serif;--m:'Courier New',Courier,ui-monospace,monospace;--hd:var(--d);--ui:var(--b);
--dp:color-mix(in srgb,var(--text-accent) 42%,var(--bg));--u:min(10px,calc((100vw - 80px)/60));--rp:5px 2px;--rf:14px;--rl:1.28;--cp:10px;--r:0px;color-scheme:light}
[data-theme=dark]{--bg:#121212;--fg:#E2E8F0;--text-accent:#38BDF8;--on-ac:#121212;--cd:#1B1D21;--hl:#1E3A4A;--nw:#172A36;--hr:#2E3440;--mu:#94A3B8;--ib:#E2E8F0;--if:#121212;color-scheme:dark}
[data-theme=terminal]{--bg:#050505;--fg:#00FF66;--text-accent:#FFCC00;--on-ac:#050505;--cd:#070F07;--hl:#1A3D1A;--nw:#102A10;--hr:#1C4424;--mu:#35C46E;--ib:#1A3D1A;--if:var(--text-accent);
--gl:0 0 4px color-mix(in srgb,var(--fg) 35%,transparent);--t:'IBM VGA 437','Perfect DOS VGA 437','Px437 IBM VGA 8x16','PxPlus IBM VGA 8x16','Fixedsys Excelsior 3.01',Fixedsys,Terminal,'Lucida Console',Consolas,Menlo,'Courier New',monospace;--d:var(--t);--b:var(--t);--m:var(--t);color-scheme:dark}
[data-theme=terminal][data-tpal=glacier]{--bg:#1B2128;--fg:#D6E6EE;--text-accent:#5CE1E6;--on-ac:#0F1519;--cd:#212A33;--hl:#25414B;--nw:#1F3441;--hr:#33414D;--mu:#8FA3B1;--ib:#26313C;--if:#5CE1E6;--gl:none}
[data-theme=terminal][data-tpal=lagoon]{--bg:#1D2224;--fg:#DCE9E6;--text-accent:#3DD9C9;--on-ac:#0F1716;--cd:#242B2D;--hl:#1F4441;--nw:#1C3835;--hr:#35413F;--mu:#93A7A3;--ib:#28312F;--if:#3DD9C9;--gl:none}
[data-theme=terminal][data-tpal=aurora]{--bg:#1F2330;--fg:#E3E8F4;--text-accent:#7FE3F0;--on-ac:#141824;--cd:#262B3A;--hl:#2A3A55;--nw:#243049;--hr:#39415A;--mu:#9CA5C0;--ib:#2B3144;--if:#7FE3F0;--gl:none}
/* Looks change type and finish for newsprint and dark; terminal keeps its CP437 stack and square cells. Local fonts only. */
[data-look=editorial]:not([data-theme=terminal]){--d:Didot,'Bodoni 72','Bodoni MT',Georgia,serif;--hd:ui-serif,'New York','Iowan Old Style',Charter,Georgia,serif;--b:var(--hd);--ui:system-ui,-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;--m:var(--ui)}
[data-look=modern]:not([data-theme=terminal]){--d:system-ui,-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;--hd:var(--d);--b:var(--d);--ui:var(--d);--m:var(--d)}
[data-look=editorial][data-theme=newsprint]{--fg:#1D1D1F;--cd:#FFFDF8;--hr:#E2DED4;--mu:#5C5A56}
[data-look=modern][data-theme=newsprint]{--fg:#1D1D1F;--cd:#FFFFFF;--hr:#E4E3DE;--mu:#5E5E63}
[data-corners=soft]{--r:8px}[data-corners=round]{--r:14px}[data-theme=terminal][data-corners]{--r:0px}
[data-spacing=comfortable]{--rp:8px 4px;--rf:15px;--rl:1.34;--cp:12px}
[data-spacing=spacious]{--rp:12px 6px;--rf:16px;--rl:1.4;--cp:15px}
[data-spacing=airy]{--rp:17px 8px;--rf:17px;--rl:1.46;--cp:19px}
*{box-sizing:border-box}[hidden]{display:none!important}
html{background:var(--bg)}
body{margin:0 auto;max-width:1200px;padding:12px 16px 76px;color:var(--fg);background:var(--bg);font:15px/1.3 var(--b);text-shadow:var(--gl);overflow-x:hidden}
::selection{background:var(--hl);color:var(--fg)}
:focus-visible{outline:3px solid var(--text-accent);outline-offset:2px}
a{color:inherit}
.sr{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:70;padding:6px 10px;background:var(--fg);color:var(--bg);font:700 13px var(--m)}
.skip:focus{top:8px}
button,.btn{display:inline-block;font:700 13px var(--m);color:var(--fg);background:var(--bg);border:2px solid;padding:7px 10px;cursor:pointer;text-decoration:none;text-shadow:inherit}
.btn{text-transform:uppercase}
button,.btn,#hero,#ad,.col h2,.grp h3,#th,.skip{border-radius:var(--r)}
button:hover,.btn:hover{background:var(--fg);color:var(--bg)}
.pri{background:var(--text-accent);border-color:var(--text-accent);color:var(--on-ac)}
h1,h2{margin:0;font:italic 900 24px/1 var(--d);text-transform:uppercase}
.t{margin:0 0 8px;padding-bottom:4px;border-bottom:1px solid;font:12px var(--m);text-transform:uppercase;overflow-wrap:anywhere}
/* Live cursor: a solid block the height of the capitals, blinking except while typing. */
.cur{display:inline-block;width:.5em;height:.74em;height:1cap;margin-left:.08em;vertical-align:baseline;background:var(--text-accent);animation:bl 1.06s steps(1) infinite}
.typing .cur{animation:none}
.dot{font-style:normal;color:var(--mu)}
[data-wire=live] .dot{color:var(--text-accent);animation:bl 1s steps(1) infinite}
@keyframes bl{50%{opacity:0}}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 55%,transparent)}100%{box-shadow:0 0 0 7px transparent}}
#tick,#bar{display:flex;gap:10px;padding:6px 0;border-bottom:1px solid;font:700 12px var(--m);text-transform:uppercase}
#tick{align-items:baseline}
.t b,.lw,.tag,#hk,.ar{color:var(--text-accent)}
.lw{flex:none}
#lv{flex:1;min-width:0;margin:0;font:700 clamp(14px,1.7vw,18px)/1.25 var(--m);text-transform:none;overflow-wrap:anywhere}
#lg:not(:empty):after{content:" ▸ "}
#lk{text-decoration:none}#lk[href]:hover #lt{text-decoration:underline}
[data-live=banner] #tick{flex-direction:column;align-items:center;gap:6px;padding:10px 0 14px;border-bottom:4px solid;text-align:center}
[data-live=banner] #lv{flex:none;width:100%;font:italic 900 clamp(24px,4.4vw,54px)/1.04 var(--hd);text-transform:uppercase}
[data-live=banner] #lg{display:block;margin:0 0 6px;font:700 12px var(--m);letter-spacing:.1em}
[data-theme=terminal][data-live=banner] #lv{font-style:normal}
#hero{display:grid;grid-template-columns:1.2fr 1fr;margin:14px 0 8px;border:6px double;background:var(--cd);overflow:hidden}
.ht{display:flex;flex-direction:column;justify-content:center;gap:8px;min-width:0;padding:14px 18px}
.hp{margin:0;font:700 clamp(19px,2.5vw,29px)/1.15 var(--b);overflow-wrap:anywhere}
#hc{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;border-left:6px double;background:var(--bg);image-rendering:pixelated}
.acts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.meta{font:11px var(--m);text-transform:uppercase;color:var(--mu)}
#hm{margin:0}
#mast{display:flex;align-items:center;gap:14px;padding:6px 0 2px}
#mast:before,#mast:after{content:"";flex:1;border-top:7px double}
.mid{min-width:0;text-align:center}
#brand{padding:0 4px;border-bottom:5px solid var(--text-accent);font-size:clamp(34px,9.4vw,112px);line-height:.95;overflow-wrap:normal}
#tag{margin:6px 0 2px;font:700 clamp(11px,1.4vw,15px) var(--m);letter-spacing:.3em;color:var(--text-accent)}
.art{display:none}
.art svg{display:block;width:calc(var(--w)*var(--u));height:calc(5.35*var(--u));overflow:visible;shape-rendering:crispEdges}
.art .f{fill:var(--text-accent);stroke:var(--bg);stroke-width:.1}
.art .p{fill:var(--dp)}
#ad{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:8px 0 0;padding:6px 10px;border:3px double;font:12px var(--m)}
.adl{margin:0;font-weight:700;letter-spacing:.12em;color:var(--mu)}
#adk{font-weight:700;overflow-wrap:anywhere}
#bar{flex-wrap:wrap;align-items:center;justify-content:center;padding:10px 0;border-width:2px;font-weight:400}
#desk{font:italic 900 clamp(26px,4vw,44px)/1 var(--d)}
#ws{overflow-wrap:anywhere}
#bar a{padding:2px 4px;font-weight:700}
.rp{padding:3px 10px;border:1px solid var(--hr);background:none;color:var(--mu);font:600 12px var(--ui);text-transform:none}
.rp:hover{background:none;color:var(--fg);border-color:var(--fg)}
/* Status strip at the top: one discreet line. */
[data-statusat=top] #bar{justify-content:space-between;gap:6px 16px;margin:0 0 6px;padding:8px 2px;border-width:0 0 1px;border-color:var(--hr);font:500 13px var(--ui);color:var(--mu)}
[data-statusat=top] #desk{margin-right:auto;font:800 13px var(--ui);letter-spacing:.18em;color:var(--fg);font-style:normal}
[data-statusat=top][data-look=tabloid] #desk{font:italic 900 20px var(--d);letter-spacing:0}
[data-statusat=top] #ws{display:inline-flex;align-items:center;gap:7px}
.nos{margin:12px 0;font:700 14px var(--m)}
#grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:7px double;outline:0}
.col{min-width:0;padding:var(--cp) var(--cp) 0;outline:0}
.col:focus-visible{outline:3px solid var(--text-accent);outline-offset:-3px}
.col+.col{border-left:1px solid}
.col h2{padding:4px;background:var(--ib);color:var(--if);border:1px solid var(--fg);font-style:normal;text-align:center}
.on h2{box-shadow:0 4px var(--text-accent)}.on h2:before{content:"▶ ";content:"▶ "/""}
[data-labels=rule] .col h2{padding:6px 0;background:none;color:var(--fg);border:0;border-block:3px double}
[data-labels=quiet] .col h2{padding:2px 0 7px;background:none;color:var(--text-accent);border:0;border-bottom:1px solid var(--hr);font:700 13px var(--m);letter-spacing:.24em}
.ln{margin:8px 0 0;padding:0 0 8px;border-bottom:3px double}
.ln ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 10px;margin:0;padding:0;list-style:none;font:700 13px/1.3 var(--m)}
.ln a{overflow-wrap:anywhere}
.sl{margin:8px 0 0;padding:0;list-style:none}
.sl li{padding:var(--rp);font:700 var(--rf)/var(--rl) var(--m);overflow-wrap:anywhere}
[data-story-borders=on] .sl li{border-bottom:1px solid var(--hr)}
.sl a{text-decoration-thickness:1px;text-underline-offset:2px}
.sl a:visited{color:var(--mu)}
.sl a:hover{background:var(--hl)}
.brk>a,.brk>a:visited{color:var(--text-accent)}
.sl .meta{margin-left:6px}
[data-meta=off] .sl .meta,[data-meta=source] .sl .meta :is(.sep,time),[data-meta=time] .sl .meta :is(.src,.sep){display:none}
[data-font=sans] .sl li{font:600 var(--rf)/var(--rl) var(--b)}
[data-font=sans] .ln ul{gap:5px 12px;font:600 13px/1.35 var(--ui)}
[data-font=sans] .ln a{text-decoration:none}[data-font=sans] .ln a:hover{text-decoration:underline}
[data-font=sans] .sl a{text-decoration:none}
[data-font=sans] .sl a:hover,[data-font=sans] .sl a:focus-visible{text-decoration:underline}
[data-font=sans] .sl .tag{margin-right:4px;font:700 .72em var(--m);letter-spacing:.06em}
[data-font=sans] .sl .brk{background:var(--cd);border-block:3px double var(--fg)}
.sl li.grp{padding:0;border:0;background:none}
/* Subject headers are full column bands too: the same bar as the column top, doubling as a section rule. */
.grp h3{margin:22px 0 8px;padding:4px;background:var(--ib);color:var(--if);border:1px solid var(--fg);font:900 24px/1 var(--d);text-transform:uppercase;text-align:center}
[data-labels=rule] .grp h3{padding:5px 0;background:none;color:var(--fg);border:0;border-block:3px double}
[data-labels=quiet] .grp h3{padding:2px 0 6px;background:none;color:var(--text-accent);border:0;border-bottom:1px solid var(--hr);font:700 12px var(--m);letter-spacing:.24em}
.grp ol{margin:0;padding:0;list-style:none}
.nw{background:var(--nw)}
.em{color:var(--mu)}
footer{margin-top:18px;padding-top:10px;border-top:7px double;text-align:center}
.fbr{margin:0;font:italic 900 20px var(--d)}.fbr span{color:var(--text-accent)}
.legal{margin:6px 0 0;font:12px var(--m);color:var(--mu)}
#th{position:fixed;right:12px;bottom:12px;z-index:50;width:48px;height:48px;padding:0;border:3px double;font:22px/1 var(--m)}
#th:before{content:"\2600\FE0F"}[data-theme=dark] #th:before{content:"\1F319"}[data-theme=terminal] #th:before{content:"\1F4DF"}

/* ---- Editorial (NYC) and Modern (SF) finishes ---- */
:is([data-look=editorial],[data-look=modern]) :is(#bar,.meta){text-transform:none}
:is([data-look=editorial],[data-look=modern]) .lw{display:none}
:is([data-look=editorial],[data-look=modern]) .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;font-size:0;vertical-align:.08em}
:is([data-look=editorial],[data-look=modern])[data-wire=live] .dot{animation:pulse 2s ease-out infinite}
:is([data-look=editorial],[data-look=modern])[data-live=banner] #tick{padding:20px 0 24px;gap:0;border-bottom:1px solid var(--hr)}
:is([data-look=editorial],[data-look=modern]) #lg{display:flex;align-items:center;gap:7px;width:max-content;margin:0 auto 12px;padding:5px 11px;border-radius:calc(var(--r)*.7);
background:color-mix(in srgb,var(--text-accent) 10%,transparent);color:var(--text-accent);font:700 12px/1 var(--ui);letter-spacing:.14em;font-style:normal}
:is([data-look=editorial],[data-look=modern]) #lg:after{content:none}
:is([data-look=editorial],[data-look=modern]) #lg:before{content:"";width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 50% 42%,#FFE2D6 0 12%,#FF3A24 36%,#B80000 70%,#4A0000);box-shadow:0 0 8px 2px #FF2D1FB3;animation:hal 2.8s ease-in-out infinite}
[data-look=editorial][data-live=banner] #lv{font:700 clamp(28px,3.6vw,46px)/1.14 var(--hd);text-transform:none;letter-spacing:-.005em}
[data-look=modern][data-live=banner] #lv{font:800 clamp(28px,3.8vw,48px)/1.1 var(--hd);text-transform:none;letter-spacing:-.022em}
:is([data-look=editorial],[data-look=modern]) #lv{text-wrap:balance}
:is([data-look=editorial],[data-look=modern]) #mast{justify-content:center;padding:24px 0 20px}
:is([data-look=editorial],[data-look=modern]) #mast:before,:is([data-look=editorial],[data-look=modern]) #mast:after{display:none}
[data-look=editorial] #mast{border-bottom:3px double}
[data-look=editorial]:not([data-theme=terminal]) #brand{font:700 clamp(40px,8.2vw,100px)/1 var(--d);letter-spacing:.012em;border:0;font-style:normal}
[data-look=editorial]:not([data-theme=terminal]) #tag{margin-top:10px;font:italic 400 clamp(13px,1.35vw,17px) var(--hd);letter-spacing:.2em;color:var(--mu)}
[data-look=modern]:not([data-theme=terminal]) #brand{font:900 clamp(38px,8vw,96px)/.95 var(--d);letter-spacing:-.04em;border:0;font-style:normal}
[data-look=modern]:not([data-theme=terminal]) #tag{margin-top:12px;font:600 12px var(--ui);letter-spacing:.34em;color:var(--mu)}
:is([data-look=editorial],[data-look=modern]) #hero{margin:22px 0 18px}
[data-look=editorial] #hero{border:1px solid var(--hr)}
[data-look=editorial] #hc{border:0;border-left:1px solid var(--hr)}
[data-look=modern] #hero{border:1px solid transparent;box-shadow:0 1px 2px #0000000d,0 14px 34px -12px #00000030}
[data-look=modern][data-theme=dark] #hero{border-color:var(--hr)}
[data-look=modern] #hc{border:0}
:is([data-look=editorial],[data-look=modern]) .ht{padding:26px 30px;gap:12px}
[data-look=editorial] .hp{font:700 clamp(22px,2.6vw,32px)/1.18 var(--hd)}
[data-look=modern] .hp{font:750 clamp(22px,2.6vw,32px)/1.16 var(--hd);letter-spacing:-.014em}
:is([data-look=editorial],[data-look=modern]) #hk{font:700 12px var(--ui);letter-spacing:.14em;font-style:normal}
:is([data-look=editorial],[data-look=modern]) #hm{font:500 14px var(--ui);color:var(--mu)}
:is([data-look=editorial],[data-look=modern]) .btn{padding:11px 18px;border-width:1px;font:600 15px var(--ui);text-transform:none}
:is([data-look=editorial],[data-look=modern]) .btn .bk{display:none}
:is([data-look=editorial],[data-look=modern]) .btn:after{content:" →"}
:is([data-look=editorial],[data-look=modern]) #grid{border-top:1px solid var(--hr)}
:is([data-look=editorial],[data-look=modern]) .col+.col{border-left-color:var(--hr)}
[data-look=editorial] :is(.col h2,.grp h3){padding:10px 0 8px;background:none;color:var(--fg);border:0;border-top:3px double var(--fg);border-bottom:1px solid var(--hr);font:700 14px/1.2 var(--hd);letter-spacing:.16em;font-style:normal;border-radius:0}
[data-look=modern] :is(.col h2,.grp h3){padding:10px 14px;background:color-mix(in srgb,var(--text-accent) 9%,var(--cd));color:var(--text-accent);border:0;font:800 13px/1.2 var(--ui);letter-spacing:.14em}
[data-look=modern] .on h2{box-shadow:inset 3px 0 var(--text-accent)}
[data-look=modern] .ln{border-bottom:1px solid var(--hr)}
[data-look=editorial] .ln{border-bottom:1px solid var(--hr)}
:is([data-look=editorial],[data-look=modern]) .sl li{font-size:calc(var(--rf) + 1px)}
:is([data-look=editorial],[data-look=modern]) .sl .brk{background:none;border-top:0;border-bottom:1px solid var(--hr)}
[data-look=modern] .sl .brk{margin:4px 0;border:0;border-radius:var(--r);background:color-mix(in srgb,var(--text-accent) 7%,var(--cd))}
:is([data-look=editorial],[data-look=modern]) .sl .tag{display:block;margin:0 0 4px;font:700 11px var(--ui);letter-spacing:.12em}
:is([data-look=editorial],[data-look=modern]) footer{border-top:1px solid var(--hr)}
:is([data-look=editorial],[data-look=modern]) .fbr{font-style:normal}
[data-look=modern] .fbr{font-weight:900;letter-spacing:-.02em}
:is([data-look=editorial],[data-look=modern]) #th{border:1px solid var(--hr);box-shadow:0 4px 14px #0000001f}
[data-labels=hidden] :is(.col h2,.grp h3){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
[data-align=left] :is(.col h2,.grp h3){text-align:left}
[data-nav=off] #bar>a,[data-sys=off] .t,[data-keys=off] .keys{display:none}


/* ---- Banner kicker: full (look default), subtle (one faint line with a live dot) or off ---- */
[data-kicker=off] :is(.lw,#lg){display:none!important}
[data-kicker=subtle] .lw{display:none}
[data-kicker=subtle][data-live=banner] #lg{display:flex;align-items:center;justify-content:center;gap:7px;width:auto;margin:0 0 8px;padding:0;background:none;border-radius:0;font:600 11px/1 var(--ui);letter-spacing:.24em;color:var(--mu);font-style:normal}
[data-kicker=subtle] #lg:after{content:none}
/* HAL-style eye: the breaking marker breathes red in every theme, like a monitor that is always watching. */
[data-kicker=subtle] #lg:before{content:"";width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 50% 42%,#FFE2D6 0 12%,#FF3A24 36%,#B80000 70%,#4A0000);box-shadow:0 0 8px 2px #FF2D1FB3;animation:hal 2.8s ease-in-out infinite}
@keyframes hal{0%,100%{opacity:.5;box-shadow:0 0 2px 0 #FF2D1F55}50%{opacity:1;box-shadow:0 0 12px 4px #FF2D1FCC}}
/* The cursor leans with the synthesized italic of the tabloid banner. */
[data-look=tabloid][data-live=banner]:not([data-theme=terminal]) #lv .cur{transform:skewX(-14deg)}
.sl .cur{animation:none;margin-left:3px}
/* ---- Terminal logo draw-in: column by column, then the tagline ---- */
[data-theme=terminal] .art svg.draw{animation:plot calc(var(--c)*20ms) steps(var(--c)) var(--dl) both}
[data-theme=terminal] .art.drawing~#tag{animation:rise .5s ease-out var(--dt) both}
@keyframes plot{from{clip-path:inset(-20% 100% -20% 0)}to{clip-path:inset(-20% -6% -20% 0)}}
/* ---- Column draw-ins (first visit of the day by default). Delays come from --d (ms). ---- */
.sl li.i-sweep{animation:wipe .5s cubic-bezier(.2,.7,.2,1) calc(var(--d)*1ms) backwards}
.sl li.i-cascade{animation:rise .6s ease-out calc(var(--d)*1ms) backwards}
[data-theme=dark] .sl li.i-cascade{animation-duration:.85s}
.sl li.i-tektronix{animation:tek .22s steps(14) calc(var(--d)*1ms) backwards}
.sl li.i-tektronix>a{animation:tekglow .9s ease-out calc(var(--d)*1ms) backwards}
.sl li.i-tektronix:after{content:"";display:inline-block;width:.5em;height:.74em;height:1cap;margin-left:4px;opacity:0;background:var(--text-accent);animation:tekcur .36s steps(1) calc(var(--d)*1ms)}
@keyframes wipe{from{clip-path:inset(0 100% 0 0);opacity:.3}to{clip-path:inset(0 -2% 0 0);opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes tek{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -2% 0 0)}}
@keyframes tekglow{from{color:var(--text-accent);text-shadow:0 0 8px var(--text-accent)}}
@keyframes tekcur{0%,99%{opacity:1}}
/* ---- More stories ---- */
.more{display:flex;align-items:center;gap:18px;margin:28px 0 4px}
.more:before,.more:after{content:"";flex:1;border-top:1px solid var(--hr)}
[data-look=tabloid] .more:before,[data-look=tabloid] .more:after{border-top:3px double var(--fg)}
.more .btn{padding:13px 30px;border:0;font:700 16px var(--ui);text-transform:none;letter-spacing:.01em;box-shadow:0 6px 18px -8px color-mix(in srgb,var(--text-accent) 70%,transparent)}
.more .btn:after{content:"  ↓";content:"  ↓"/""}
[data-look=tabloid]:not([data-theme=terminal]) .more .btn{padding:10px 30px;font:italic 900 22px/1 var(--d);text-transform:uppercase;letter-spacing:.01em}
[data-look=modern]:not([data-theme=terminal]) .more .btn{border-radius:999px}
.more .btn:hover{background:var(--fg);color:var(--bg);box-shadow:none}

[data-theme=terminal] body{font-size:16px;-webkit-font-smoothing:none;text-rendering:optimizeSpeed;text-rendering:pixelated}
[data-theme=terminal][data-scan=on] body:after{content:"";position:fixed;inset:0;z-index:60;pointer-events:none;background:repeating-linear-gradient(#0000 0 2px,#0000002e 2px 3px)}
[data-theme=terminal] :is(h1,h2,#desk,.fbr){font-style:normal}
[data-theme=terminal] #brand,[data-theme=terminal] #desk{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
[data-theme=terminal] .art{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--u) calc(3*var(--u));margin:4px 0}
[data-theme=terminal] .dart{--u:3px;margin:0}
[data-theme=terminal] #tag{color:var(--fg)}
[data-theme=terminal] #mast:before,[data-theme=terminal] #mast:after{border-color:var(--text-accent)}
.boot body{animation:rb .15s linear}
@keyframes rb{from{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}
@media (max-width:820px){#grid,#hero{grid-template-columns:minmax(0,1fr)}.col+.col{margin-top:12px;border-left:0;border-top:7px double}#hc{order:-1;height:auto;border:0;border-bottom:6px double}
:is([data-look=editorial],[data-look=modern]) .col+.col{border-top:1px solid var(--hr)}:is([data-look=editorial],[data-look=modern]) #hc{border:0}
:is([data-look=editorial],[data-look=modern]) .ht{padding:18px 20px}}
@media (prefers-reduced-motion:reduce){*,:before,:after{animation:none!important;transition:none!important}}

/* Arcade: the Phosphor Terminal's own world. Midnight violet, warm cream text, amber and seafoam accents,
   and self-hosted pixel type (SIL OFL): Jersey 10 above the fold, Pixelify Sans in the columns, Silkscreen for labels. */
@font-face{font-family:'Jersey 10';src:url(fonts/Jersey10.ttf) format('truetype');font-display:swap}
@font-face{font-family:'Pixelify Sans';src:url(fonts/PixelifySans.ttf) format('truetype');font-weight:400 700;font-display:swap}
@font-face{font-family:Silkscreen;src:url(fonts/Silkscreen.ttf) format('truetype');font-display:swap}
[data-theme=terminal][data-tpal=arcade]{--bg:#15102B;--fg:#F4EEDC;--text-accent:#FFB84D;--on-ac:#15102B;--cd:#1E1740;--hl:#3A2A6B;--nw:#2A2152;--hr:#3B3166;--mu:#A9A3C9;--ib:#5EE6C8;--if:#15102B;
--gl:0 0 10px color-mix(in srgb,var(--text-accent) 30%,transparent);--px:'Pixelify Sans',var(--t);--dp:#FF6FA8;
--d:'Jersey 10',var(--t);--b:var(--px);--m:var(--px);--hd:var(--d);--ui:Silkscreen,var(--t)}
html[data-theme=terminal][data-tpal=arcade] #lv{font:400 clamp(34px,5vw,66px)/1 var(--d);letter-spacing:.01em;text-transform:none;color:var(--text-accent);text-shadow:var(--gl)}
html[data-theme=terminal][data-tpal=arcade] #hp{font:400 clamp(32px,3.6vw,50px)/1.02 var(--d);letter-spacing:.01em;color:var(--fg)}
html[data-theme=terminal][data-tpal=arcade] :is(#hk,.col h2,.grp h3,.tag,#hm){font-family:Silkscreen,var(--t);letter-spacing:.08em}
html[data-theme=terminal][data-tpal=arcade] #hk{color:var(--ib)}
html[data-theme=terminal][data-tpal=arcade] .tag{color:var(--dp)}
html[data-theme=terminal][data-tpal=arcade] .sl a{font:500 17px/1.35 var(--px);letter-spacing:.01em}
html[data-theme=terminal][data-tpal=arcade] .sl a:hover{color:var(--ib)}
/* Sound toggle: only in Phosphor Terminal, stacked above the theme button. */
#snd{display:none;position:fixed;right:12px;bottom:68px;z-index:50;width:48px;height:48px;padding:0;background:var(--bg);color:var(--fg);border:1px solid var(--hr);font:20px/1 var(--m);cursor:pointer}
[data-theme=terminal] #snd{display:block}
#snd:focus-visible{outline:2px solid var(--text-accent);outline-offset:2px}
/* Dark Slate: business-first nameplate. A compact masthead and a soft dissolve-in (opacity and blur only, so nothing
   below it moves). Newsprint and Arcade keep their full mastheads. */
html[data-theme=dark][data-look] #mast{padding:12px 0 8px}
html[data-theme=dark][data-look] #brand{font-size:clamp(26px,4.8vw,58px)}
html[data-theme=dark][data-look] #tag{margin-top:6px;font-size:10px;letter-spacing:.3em}
html[data-theme=dark][data-live=banner] #tick{padding:12px 0 18px}
html[data-theme=dark] #mast .mid{animation:dissolve .6s ease-out both}
@keyframes dissolve{from{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur(0)}}
