@font-face{font-family:"VT323";src:url("/news/assets/vt323-400.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("/news/assets/source-sans-3-400.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("/news/assets/source-sans-3-600.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}
/* NPDev News carries the site-wide Neon Pixel skin: the same deep blue-black
   canvas, the same regulated neons, VT323 for every heading over Source Sans 3
   body copy, and the same square-cut card with a hard ink drop. It keeps its own
   editorial layout — a dated edition column, topic badges, source buttons — and
   its own no-JavaScript, strict-CSP behaviour. Colour and type only: no image is
   fetched, embedded or referenced. */
:root{
  color-scheme:dark;
  --np-canvas:#060a11;--np-panel:#0b1622;--np-ink:#e9f5ff;--np-muted:#a3c2da;--np-line:#1b3a52;
  --np-cyan:#56e6ff;--np-mint:#5df2c4;--np-violet:#c39bff;--np-amber:#ffcf5c;--np-coral:#ff7a66;
  --np-brand:#56e6ff;--np-brand-strong:#9beeff;--np-brand-deep:#2fb8d6;--np-ink-shadow:#04070c;
  --pico-font-family:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pico-background-color:var(--np-canvas);--pico-color:var(--np-ink);
  --pico-primary:var(--np-cyan);--pico-primary-hover:var(--np-mint);--pico-primary-focus:var(--np-cyan);
  --pico-card-background-color:var(--np-panel);--pico-card-border-color:var(--np-cyan);
  --pico-muted-color:var(--np-muted);--pico-muted-border-color:var(--np-line);
  --pico-border-radius:0;--pico-form-element-background-color:#08121c;
  --pico-h1-color:var(--np-ink);--pico-h2-color:var(--np-ink);--pico-h3-color:var(--np-ink)
}
html{background:var(--np-canvas)}
body{color:var(--np-ink);background-color:var(--np-canvas);background-image:linear-gradient(rgb(255 255 255 / .032) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .032) 1px,transparent 1px);background-size:26px 26px;font-family:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:1.0625rem;line-height:1.65}
h1,h2,h3,h4{font-family:"VT323",ui-monospace,Menlo,monospace;font-weight:400;letter-spacing:.015em;line-height:1.05;color:var(--np-ink);text-shadow:0 0 18px rgb(86 230 255 / .28)}
h1{font-size:clamp(2.5rem,6vw,3.5rem);margin:.3rem 0 1rem}
h2{font-size:clamp(1.875rem,4vw,2.5rem)}
h3{font-size:clamp(1.375rem,2.6vw,1.625rem)}
a{color:var(--np-brand-strong);overflow-wrap:anywhere}
a:hover{color:var(--np-mint)}
.container{max-width:58rem;padding-block:1.5rem}
main header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}
main nav{display:flex;flex-wrap:wrap;gap:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem}
/* A story card: the site's pixel frame, its accent rotated card by card, and a
   dithered strip along the top edge. */
article{position:relative;background:var(--np-panel);border:2px solid var(--np-cyan);box-shadow:4px 4px 0 0 var(--np-ink-shadow),0 0 26px -14px var(--np-cyan);padding:1.25rem}
article::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background-image:repeating-linear-gradient(90deg,var(--np-cyan) 0 6px,transparent 6px 12px);opacity:.85;pointer-events:none}
article:nth-child(4n+2){border-color:var(--np-mint)}
article:nth-child(4n+2)::before{background-image:repeating-linear-gradient(90deg,var(--np-mint) 0 6px,transparent 6px 12px)}
article:nth-child(4n+3){border-color:var(--np-violet)}
article:nth-child(4n+3)::before{background-image:repeating-linear-gradient(90deg,var(--np-violet) 0 6px,transparent 6px 12px)}
article:nth-child(4n+4){border-color:var(--np-amber)}
article:nth-child(4n+4)::before{background-image:repeating-linear-gradient(90deg,var(--np-amber) 0 6px,transparent 6px 12px)}
article h2{margin:.5rem 0;font-size:1.5rem}
article p{line-height:1.7}
.badge{display:inline-block;border:1px solid var(--np-cyan);background:rgb(86 230 255 / .08);padding:.18rem .6rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--np-cyan)}
.badge.ai{border-color:var(--np-mint);background:rgb(93 242 196 / .1);color:var(--np-mint)}
.badge.blockchain{border-color:var(--np-violet);background:rgb(195 155 255 / .1);color:var(--np-violet)}
small,.date{color:var(--np-muted)}
.grid small{display:block;margin-top:.4rem}
.edition{max-width:65ch;margin:auto}
.edition .summary{font-family:"Source Sans 3",system-ui,sans-serif;font-size:1.15rem;line-height:1.65;color:var(--np-muted);border-bottom:1px solid var(--np-line);padding-bottom:1rem}
.edition section{margin-top:2rem}
.edition section h2{font-size:clamp(1.75rem,3.4vw,2.125rem)}
.edition section p{font-size:1.125rem;line-height:1.7}
.sources{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--np-line)}
.source-button{display:inline-block;padding:.35rem .7rem;border:2px solid var(--np-cyan);color:var(--np-cyan);background:rgb(86 230 255 / .07);font:600 .85rem/1.2 "Source Sans 3",system-ui,sans-serif;text-decoration:none;overflow-wrap:anywhere}
.source-button:hover{background:rgb(86 230 255 / .18);color:var(--np-ink)}
.news-site .story-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}
.news-site .story-tag{display:inline-block;max-width:100%;padding:.25rem .65rem;border:1px solid var(--np-line);background:rgb(255 255 255 / .04);color:var(--np-muted);font-size:.7rem;line-height:1.4;letter-spacing:.04em;overflow-wrap:anywhere}
.news-site .story-tags+h2{margin-top:0}
/* The masthead is the shared NPDev brand bar, served by this service as
   /news/assets/npdev-brand.css. News sets only the bar's typography pair: the
   site's Source Sans 3 for its destinations. */
.news-site{--pico-font-family:"Source Sans 3",system-ui,sans-serif;font-family:var(--pico-font-family)}
.news-site .np-masthead{font-family:"Source Sans 3",system-ui,sans-serif}
.news-site main a:focus-visible{outline:2px solid var(--np-cyan);outline-offset:3px}
@media(max-width:600px){.container{padding-inline:1rem}.edition section p{font-size:1.0625rem}.source-button{max-width:100%}}
