/* ============================================================
   ATX TECH NEWS NOW — "The Pulse Wire" design system
   Bespoke for atxtechnewsnow.com · Austin tech pulse
   Fonts: Bricolage Grotesque (display) · Spectral (text) · IBM Plex Mono (telemetry)
   Themes: t-violet (Violet Crown, default) · t-limestone · t-neon · t-greenbelt · t-fab
   ============================================================ */

/* ---------- theme tokens ---------- */
html{
  --p-display:'Bricolage Grotesque','Arial Narrow',sans-serif;
  --p-body:'Spectral',Georgia,serif;
  --p-mono:'IBM Plex Mono','Courier New',monospace;
}
/* 1 · VIOLET CROWN — Austin's dusk sky: deep violet, sunset amber, spring mint */
html, html.t-violet{
  --p-bg0:#161024; --p-bg1:#1e1633; --p-bg2:#291e45; --p-line:#3b2d5e;
  --p-ink:#f4eee1; --p-ink2:#b4a8cd; --p-ink3:#7e72a0;
  --p-acc:#ff8a3d; --p-acc2:#8fe8cd; --p-amber:#ffc46b; --p-hot:#ff5d73; --p-go:#8fe8cd;
  --p-grid:rgba(190,160,255,.055); --p-glow:rgba(255,138,61,.18);
  --p-card:#1d1531; --p-shadow:rgba(10,5,25,.55); color-scheme:dark;
}
/* 2 · LIMESTONE — daylight Austin: hill-country paper, burnt orange, lake teal */
html.t-limestone{
  --p-bg0:#f3eddf; --p-bg1:#faf6ec; --p-bg2:#eae1cc; --p-line:#d3c6a8;
  --p-ink:#26201a; --p-ink2:#6c6151; --p-ink3:#988b74;
  --p-acc:#bf3f1a; --p-acc2:#0e6b62; --p-amber:#9a6a12; --p-hot:#b3261e; --p-go:#2e7d52;
  --p-grid:rgba(80,60,20,.07); --p-glow:rgba(191,63,26,.10);
  --p-card:#fbf8f0; --p-shadow:rgba(120,100,60,.22); color-scheme:light;
}
/* 3 · NEON DISTRICT — Sixth Street after midnight: black, hot pink, violet */
html.t-neon{
  --p-bg0:#0b0712; --p-bg1:#150d22; --p-bg2:#1e1232; --p-line:#372055;
  --p-ink:#f4ebff; --p-ink2:#ab95cf; --p-ink3:#716192;
  --p-acc:#ff3d8a; --p-acc2:#9d79ff; --p-amber:#ffb347; --p-hot:#ff3d5a; --p-go:#43e8b1;
  --p-grid:rgba(255,61,138,.06); --p-glow:rgba(255,61,138,.20);
  --p-card:#130c20; --p-shadow:rgba(0,0,0,.6); color-scheme:dark;
}
/* 4 · GREENBELT — Barton Springs: deep cedar green, spring water, sandstone */
html.t-greenbelt{
  --p-bg0:#0e201a; --p-bg1:#142a22; --p-bg2:#1c3a2e; --p-line:#2e5343;
  --p-ink:#eef4e8; --p-ink2:#a3c0ae; --p-ink3:#6e9180;
  --p-acc:#4fd1b5; --p-acc2:#d9b779; --p-amber:#e8c468; --p-hot:#ff7e67; --p-go:#8fd460;
  --p-grid:rgba(120,220,180,.05); --p-glow:rgba(79,209,181,.14);
  --p-card:#12251e; --p-shadow:rgba(0,15,8,.5); color-scheme:dark;
}
/* 5 · NIGHT FAB — cleanroom graveyard shift: graphite, terminal green, amber LED */
html.t-fab{
  --p-bg0:#0c0e0c; --p-bg1:#121712; --p-bg2:#1a221a; --p-line:#2c3a2c;
  --p-ink:#e8f1e4; --p-ink2:#93a98f; --p-ink3:#5f7260;
  --p-acc:#54f28b; --p-acc2:#ffc24b; --p-amber:#ffc24b; --p-hot:#ff6b4a; --p-go:#54f28b;
  --p-grid:rgba(84,242,139,.05); --p-glow:rgba(84,242,139,.12);
  --p-card:#101510; --p-shadow:rgba(0,0,0,.55); color-scheme:dark;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body.pulse{
  margin:0;padding:0;background:var(--p-bg0);color:var(--p-ink);
  font-family:var(--p-body);font-size:16.5px;line-height:1.68;
  background-image:
    radial-gradient(ellipse 90% 55% at 50% -10%, var(--p-glow), transparent 60%),
    linear-gradient(var(--p-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--p-grid) 1px, transparent 1px);
  background-size:100% 100%, 28px 28px, 28px 28px;
  background-attachment:fixed;
}
.pulse h1,.pulse h2,.pulse h3,.pulse h4{font-family:var(--p-display);line-height:1.08;margin:0 0 .4em;letter-spacing:-.01em;font-weight:700}
.pulse p{margin:0 0 1em}
.pulse a{color:var(--p-acc2);text-decoration:none;transition:color .15s}
.pulse a:hover{color:var(--p-acc)}
.pulse ::selection{background:var(--p-acc);color:var(--p-bg0)}
.pw{max-width:1140px;margin:0 auto;padding:0 22px}
.pw-narrow{max-width:780px;margin:0 auto;padding:0 22px}
.mono{font-family:var(--p-mono)}

/* ---------- EKG pulse rule ---------- */
.pulse-rule{height:20px;background:var(--p-acc);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='20' viewBox='0 0 260 20'%3E%3Cpolyline points='0,10 56,10 66,10 73,3 81,17 88,10 122,10 130,6.5 138,10 260,10' fill='none' stroke='%23000' stroke-width='1.8'/%3E%3C/svg%3E") repeat-x center/260px 20px;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='20' viewBox='0 0 260 20'%3E%3Cpolyline points='0,10 56,10 66,10 73,3 81,17 88,10 122,10 130,6.5 138,10 260,10' fill='none' stroke='%23000' stroke-width='1.8'/%3E%3C/svg%3E") repeat-x center/260px 20px;
  opacity:.9}
.pulse-rule.dim{background:var(--p-line);opacity:1}

/* ---------- header / masthead ---------- */
.ph{border-bottom:1px solid var(--p-line);background:linear-gradient(180deg,var(--p-bg1),transparent)}
.ph-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:space-between;
  font-family:var(--p-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-ink3);
  border-bottom:1px dashed var(--p-line);padding:7px 22px}
.ph-top b{color:var(--p-ink2);font-weight:500}
.ph-live{color:var(--p-hot);display:inline-flex;align-items:center;gap:6px;font-weight:600}
.ph-live i{width:7px;height:7px;border-radius:50%;background:var(--p-hot);box-shadow:0 0 8px var(--p-hot);animation:p-beat 1.4s infinite}
@keyframes p-beat{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}
.ph-mast{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:18px 22px 14px;max-width:1140px;margin:0 auto}
.ph-brand{font-family:var(--p-display);font-weight:800;font-stretch:90%;letter-spacing:-.02em;
  font-size:clamp(1.5rem,3.4vw,2.3rem);line-height:.95;color:var(--p-ink)!important;display:inline-flex;align-items:baseline;gap:.32em;text-decoration:none}
.ph-brand .b-atx{color:var(--p-acc)}
.ph-brand .b-now{background:var(--p-acc);color:var(--p-bg0);padding:.04em .18em .08em;transform:translateY(-.04em)}
.ph-tag{font-family:var(--p-mono);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--p-ink3);margin-top:4px}
.ph-nav{display:flex;gap:2px;flex-wrap:wrap;align-items:center}
.ph-nav a{font-family:var(--p-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--p-ink2);padding:6px 10px;border:1px solid transparent}
.ph-nav a:hover{color:var(--p-acc);border-color:var(--p-line);background:var(--p-bg1)}
.ph-nav a.on{color:var(--p-bg0);background:var(--p-acc);border-color:var(--p-acc)}

/* masthead XL (homepage) */
.ph-hero{max-width:1140px;margin:0 auto;padding:34px 22px 8px;text-align:left}
.ph-hero .xl{font-family:var(--p-display);font-weight:800;font-stretch:85%;letter-spacing:-.03em;
  font-size:clamp(2.6rem,8.4vw,6.4rem);line-height:.92;margin:0;text-transform:uppercase}
.ph-hero .xl .row2{display:block;color:var(--p-ink)}
.ph-hero .xl .a{color:var(--p-acc)}
.ph-hero .xl .inv{background:var(--p-acc);color:var(--p-bg0);padding:0 .14em}
.ph-hero .standfirst{font-family:var(--p-body);font-size:clamp(1rem,1.6vw,1.18rem);font-style:italic;color:var(--p-ink2);max-width:60ch;margin:14px 0 4px}
.ph-hero .standfirst b{color:var(--p-ink);font-style:normal}

/* ---------- telemetry ticker ---------- */
.ticker{border-top:1px solid var(--p-line);border-bottom:1px solid var(--p-line);background:var(--p-bg1);overflow:hidden;padding:9px 0}
.ticker-track{display:flex;gap:46px;white-space:nowrap;animation:p-scroll 48s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes p-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ticker-item{font-family:var(--p-mono);font-size:.74rem;letter-spacing:.04em;color:var(--p-ink3);display:flex;align-items:center;gap:7px}
.ticker-company{color:var(--p-ink);font-weight:600}
.ticker-item .up{color:var(--p-go)}
.ticker-item .up::before{content:"▲";font-size:.6em;margin-right:2px}
.ticker-item .down{color:var(--p-hot)}
.ticker-item .down::before{content:"▼";font-size:.6em;margin-right:2px}

/* ---------- wire (story list) ---------- */
.wire-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 6px}
.wire-head h2{font-size:1.05rem;letter-spacing:.14em;text-transform:uppercase;font-stretch:95%;margin:0;color:var(--p-ink2)}
.wire-head .badge{font-family:var(--p-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p-hot);border:1px solid var(--p-hot);padding:2px 8px}
.wire-head .more{margin-left:auto;font-family:var(--p-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.story{position:relative;padding:18px 0 16px 58px;border-bottom:1px dashed var(--p-line)}
.story::before{content:attr(data-n);position:absolute;left:0;top:20px;font-family:var(--p-mono);font-size:.78rem;color:var(--p-acc);letter-spacing:.05em}
.story::after{content:"";position:absolute;left:34px;top:14px;bottom:10px;border-left:1px solid var(--p-line)}
.story-tag{font-family:var(--p-mono);font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--p-acc2)}
.story-tag::before{content:"[ "}.story-tag::after{content:" ]"}
.story h3{font-size:1.16rem;margin:.25em 0 .2em;font-stretch:95%}
.story h3 a{color:var(--p-ink)}
.story h3 a:hover{color:var(--p-acc)}
.story-meta{font-family:var(--p-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--p-ink3);margin-bottom:6px}
.story-excerpt{font-size:.93rem;color:var(--p-ink2);max-width:64ch}
.story.featured{background:var(--p-card);border:1px solid var(--p-line);box-shadow:5px 5px 0 var(--p-shadow);padding:22px 22px 18px 64px;margin-bottom:18px}
.story.featured::before{top:24px;left:14px}
.story.featured::after{left:46px}
.story.featured h3{font-size:clamp(1.3rem,2.6vw,1.7rem)}

/* ---------- side panels ---------- */
.panel{background:var(--p-card);border:1px solid var(--p-line);box-shadow:5px 5px 0 var(--p-shadow);padding:18px 18px 14px;margin-bottom:22px}
.panel>h3{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-acc);margin:0 0 12px;font-family:var(--p-mono);font-weight:600}
.kv{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px dashed var(--p-line);font-size:.88rem}
.kv:last-of-type{border-bottom:none}
.kv .k{font-weight:600;font-family:var(--p-display);font-stretch:95%}
.kv .k a{color:var(--p-ink)}.kv .k a:hover{color:var(--p-acc)}
.kv .sub{display:block;font-size:.72rem;color:var(--p-ink3);font-family:var(--p-body);font-weight:400}
.kv .v{font-family:var(--p-mono);font-size:.7rem;color:var(--p-acc2);text-align:right;white-space:nowrap}
.panel .note{font-size:.78rem;color:var(--p-ink3);border-top:1px solid var(--p-line);margin:10px 0 0;padding-top:10px;font-style:italic}
.nl-input{width:100%;padding:10px 12px;background:var(--p-bg0);border:1px solid var(--p-line);color:var(--p-ink);font-family:var(--p-mono);font-size:.78rem;outline:none;margin-bottom:8px}
.nl-input:focus{border-color:var(--p-acc)}
.nl-btn{width:100%;padding:10px;background:var(--p-acc);color:var(--p-bg0);border:none;font-family:var(--p-mono);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;cursor:pointer}
.nl-btn:hover{filter:brightness(1.12)}

/* ---------- generic grid + cards ---------- */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.pcard{background:var(--p-card);border:1px solid var(--p-line);box-shadow:5px 5px 0 var(--p-shadow);padding:18px;transition:transform .12s}
.pcard:hover{transform:translate(-2px,-2px)}
.pcard h3{font-size:1.02rem;margin:0 0 6px;font-stretch:95%}
.pcard h3 a{color:var(--p-ink)}.pcard h3 a:hover{color:var(--p-acc)}
.pcard p{font-size:.88rem;color:var(--p-ink2);margin:0}
.pcard .count{font-family:var(--p-mono);font-size:.72rem;color:var(--p-acc2);display:block;margin:2px 0 6px}
.pcard .ic{font-size:1.5rem;display:block;margin-bottom:6px}

/* section scaffolding */
.psec{padding:44px 0 36px}
.psec-label{font-family:var(--p-mono);font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--p-acc);display:block;margin-bottom:8px}
.psec h2.big{font-size:clamp(1.5rem,3.4vw,2.2rem);text-transform:uppercase;font-stretch:90%;letter-spacing:-.01em}
.psec .sub{color:var(--p-ink2);font-style:italic;max-width:62ch}

/* ---------- video cards ---------- */
.vidgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.vcard{background:var(--p-card);border:1px solid var(--p-line);box-shadow:5px 5px 0 var(--p-shadow);overflow:hidden}
.vcard .vf{position:relative;padding-top:56.25%;background:#000}
.vcard .vf iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vcard .vb{padding:12px 14px 13px}
.vcard h3{font-size:.92rem;margin:0 0 5px;font-stretch:95%}
.vcard .vm{font-family:var(--p-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--p-ink3);margin:0}
.vcard .vm b{color:var(--p-acc2);font-weight:500}

/* ---------- FAQ accordion ---------- */
.pfaq{border:1px solid var(--p-line);background:var(--p-card);box-shadow:5px 5px 0 var(--p-shadow);margin-bottom:14px}
.pfaq-q{padding:15px 18px;cursor:pointer;font-family:var(--p-display);font-weight:600;font-size:1rem;display:flex;justify-content:space-between;gap:12px;align-items:center}
.pfaq-q .arrow{font-family:var(--p-mono);color:var(--p-acc);transition:transform .2s;font-size:.8rem}
.pfaq.open .arrow{transform:rotate(90deg)}
.pfaq-a{display:none;padding:0 18px 16px;font-size:.92rem;color:var(--p-ink2)}
.pfaq.open .pfaq-a{display:block}
.pfaq.open{border-color:var(--p-acc)}

/* ---------- resource entries ---------- */
.res{position:relative;background:var(--p-card);border:1px solid var(--p-line);box-shadow:5px 5px 0 var(--p-shadow);padding:18px 18px 14px 74px;margin-bottom:18px}
.res-rank{position:absolute;left:16px;top:18px;font-family:var(--p-mono);font-size:1.05rem;font-weight:600;color:var(--p-acc)}
.res h3{font-size:1.1rem;margin:0 0 4px}
.res h3 a{color:var(--p-ink)}.res h3 a:hover{color:var(--p-acc)}
.res-url,.res-contact{font-family:var(--p-mono);font-size:.68rem;letter-spacing:.04em;color:var(--p-ink3);word-break:break-all}
.res-summary{font-size:.92rem;color:var(--p-ink2);margin-top:8px}
.res-commentary{font-size:.88rem;font-style:italic;color:var(--p-ink2);border-left:3px solid var(--p-acc);padding:4px 0 4px 12px;margin-top:8px}
.res-commentary::before{content:"Desk note — ";font-family:var(--p-mono);font-style:normal;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p-acc)}

/* ---------- social cards ---------- */
.social-card{display:flex;align-items:center;gap:16px;background:var(--p-card);border:1px solid var(--p-line);box-shadow:5px 5px 0 var(--p-shadow);padding:16px 18px;margin-bottom:16px;color:var(--p-ink)!important;transition:transform .12s}
.social-card:hover{transform:translate(-2px,-2px)}
.social-icon{font-size:1.7rem;width:44px;text-align:center;flex:none}
.social-info{flex:1}
.social-name{font-family:var(--p-display);font-weight:700;font-size:1.02rem}
.social-handle{font-family:var(--p-mono);font-size:.7rem;letter-spacing:.06em;color:var(--p-acc2)}
.social-desc{font-size:.85rem;color:var(--p-ink2);margin-top:3px}
.social-btn{flex:none;font-family:var(--p-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--p-acc);color:var(--p-acc);padding:7px 14px}
.social-card:hover .social-btn{background:var(--p-acc);color:var(--p-bg0)}

/* ---------- news archive cards (bridged) ---------- */
.pulse .article-card{padding:18px 0 16px;border-bottom:1px dashed var(--p-line)}
.pulse .article-card h2{font-family:var(--p-display);font-size:1.12rem;font-stretch:95%;margin:0 0 4px;line-height:1.18}
.pulse .article-card h2 a{color:var(--p-ink);text-decoration:none}
.pulse .article-card h2 a:hover{color:var(--p-acc)}
.pulse .article-card .meta{font-family:var(--p-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--p-ink3);margin-bottom:5px}
.pulse .article-card .excerpt{font-size:.9rem;color:var(--p-ink2);max-width:68ch}

/* ---------- lists / sitemap ---------- */
.pulse ul.plist{list-style:none;padding:0;margin:0 0 22px}
.pulse ul.plist li{padding:8px 0;border-bottom:1px dashed var(--p-line);font-size:.95rem}
.pulse ul.plist li::before{content:"— ";color:var(--p-acc);font-family:var(--p-mono)}

/* ---------- footer ---------- */
.pfoot{margin-top:48px;border-top:1px solid var(--p-line)}
.pfoot .pulse-rule{margin-top:-10px}
.pfoot-in{max-width:1140px;margin:0 auto;padding:26px 22px 30px;display:flex;flex-wrap:wrap;gap:10px 26px;align-items:baseline}
.pfoot-in a{font-family:var(--p-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--p-ink2)}
.pfoot-in a:hover{color:var(--p-acc)}
.pfoot-line{max-width:1140px;margin:0 auto;padding:0 22px 30px;font-family:var(--p-mono);font-size:.66rem;letter-spacing:.08em;color:var(--p-ink3)}
.pfoot-line a{color:var(--p-acc2)}

/* ---------- compact bridge header (injected on legacy/data pages) ---------- */
#pulse-bar{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;padding:10px 22px;background:var(--p-bg1);border-bottom:1px solid var(--p-line);font-family:var(--p-mono)}
#pulse-bar .pb-brand{font-family:var(--p-display);font-weight:800;font-stretch:90%;letter-spacing:-.01em;font-size:1.05rem;color:var(--p-ink);text-decoration:none;margin-right:8px}
#pulse-bar .pb-brand em{color:var(--p-acc);font-style:normal}
#pulse-bar a.pb-l{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--p-ink2);text-decoration:none;padding:4px 7px}
#pulse-bar a.pb-l:hover{color:var(--p-acc)}
#pulse-bar+.pulse-rule{height:14px}

/* ---------- theme picker ---------- */
#pulse-picker{position:fixed;right:12px;bottom:12px;z-index:2147483600;display:flex;align-items:center;gap:4px;
  background:var(--p-bg1);border:1px solid var(--p-line);box-shadow:4px 4px 0 var(--p-shadow);padding:5px 7px;font-family:var(--p-mono)}
#pulse-picker .pl{font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--p-ink3);margin-right:3px}
#pulse-picker button{display:inline-flex;align-items:center;gap:5px;background:none;border:1px solid transparent;color:var(--p-ink2);
  font-family:var(--p-mono);font-size:.6rem;letter-spacing:.04em;padding:4px 7px;cursor:pointer}
#pulse-picker button i{width:9px;height:9px;border-radius:50%;background:var(--sw,#888);border:1px solid rgba(0,0,0,.25);flex:none}
#pulse-picker button:hover{border-color:var(--p-line);color:var(--p-ink)}
#pulse-picker button[aria-current="true"]{border-color:var(--p-acc);color:var(--p-acc)}
@media(max-width:760px){#pulse-picker button span{display:none}#pulse-picker button{padding:5px 5px}}

/* ---------- layout helpers ---------- */
.pmain{display:grid;grid-template-columns:minmax(0,2.05fr) minmax(260px,1fr);gap:34px;max-width:1140px;margin:0 auto;padding:30px 22px 10px}
@media(max-width:880px){.pmain{grid-template-columns:1fr}.ph-mast{align-items:center}.ph-nav{width:100%}}
.skip-link{position:absolute;top:-44px;left:0;background:var(--p-acc);color:var(--p-bg0);padding:8px 16px;z-index:99999;font-family:var(--p-mono);font-size:.8rem;text-decoration:none}
.skip-link:focus{top:0}
