/* ============================================================
   FOUNDER PULSE — austintechtrends.com
   Bespoke design system: "the wire briefing"
   Instrument Serif (display) · Schibsted Grotesk (text) · Spline Sans Mono (data)
   Motif: the EKG pulse line — the heartbeat of founder activity.
   Five inks, one press. 2026.
   ============================================================ */

/* ---------- THEMES (CSS variables on html.t-<name>) ---------- */
html.t-newsprint{
  --paper:#f3eee1; --paper2:#fbf8ee; --ink:#1c1710; --ink2:#42392b;
  --mute:#84785f; --rule:#d9d0b8; --acc:#c43a1c; --acc2:#a25b00;
  --accInk:#fff8ef; --shadow:rgba(28,23,16,.22); --rowhov:#f3eedd;
  color-scheme:light;
}
html.t-afterhours{
  --paper:#14110b; --paper2:#1e1a11; --ink:#f4ecd7; --ink2:#d4c8a9;
  --mute:#8c8166; --rule:#332c1b; --acc:#ffb13d; --acc2:#ff7a2e;
  --accInk:#1b1305; --shadow:rgba(0,0,0,.55); --rowhov:#231e13;
  color-scheme:dark;
}
html.t-termsheet{
  --paper:#eef1f5; --paper2:#ffffff; --ink:#0e1b2c; --ink2:#31405c;
  --mute:#67748c; --rule:#cdd6e2; --acc:#1d4ed8; --acc2:#0e7490;
  --accInk:#f4f8ff; --shadow:rgba(14,27,44,.20); --rowhov:#eef2f8;
  color-scheme:light;
}
html.t-violetcrown{
  --paper:#1a1228; --paper2:#251a38; --ink:#f4edff; --ink2:#d4c7ec;
  --mute:#907fb5; --rule:#3a2b54; --acc:#ff9e7d; --acc2:#c79bff;
  --accInk:#2c130a; --shadow:rgba(0,0,0,.5); --rowhov:#2b2040;
  color-scheme:dark;
}
html.t-greenroom{
  --paper:#0d2016; --paper2:#152c1f; --ink:#ecf5e9; --ink2:#c6dcc9;
  --mute:#7ea68d; --rule:#28452f; --acc:#5fd9a4; --acc2:#e8c468;
  --accInk:#062a1a; --shadow:rgba(0,0,0,.5); --rowhov:#1a3526;
  color-scheme:dark;
}

/* ---------- BASE ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  background-color:var(--paper);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/></filter><rect width='220' height='220' filter='url(%23n)' opacity='0.05'/></svg>");
  color:var(--ink2);
  font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--acc);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
h1,h2,h3,h4{font-family:'Instrument Serif',Georgia,serif;font-weight:400;line-height:1.12;color:var(--ink)}
::selection{background:var(--acc);color:var(--accInk)}
img,iframe{max-width:100%}

/* The pulse line, used as a mask so it inherits every theme's ink */
.pulse-rule,.hero::after,.np-divider{
  display:block;height:46px;border:0;background:var(--acc);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 64' preserveAspectRatio='none'><path d='M0 32 H280 L318 32 327 13 339 51 349 7 361 57 371 32 H660 L688 32 697 21 707 45 715 32 H1010 L1042 32 1049 24 1057 41 1064 32 H1200' fill='none' stroke='black' stroke-width='3'/></svg>") center/100% 100% no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 64' preserveAspectRatio='none'><path d='M0 32 H280 L318 32 327 13 339 51 349 7 361 57 371 32 H660 L688 32 697 21 707 45 715 32 H1010 L1042 32 1049 24 1057 41 1064 32 H1200' fill='none' stroke='black' stroke-width='3'/></svg>") center/100% 100% no-repeat;
}

/* ---------- MASTHEAD ---------- */
.mast{max-width:1240px;margin:0 auto;padding:30px 24px 0}
.mast-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 24px;border-bottom:3px solid var(--ink);padding-bottom:16px}
.mast-brand{display:block;color:var(--ink);text-decoration:none}
.mast-brand:hover{text-decoration:none}
.mast-kicker{display:block;font:600 .66rem/1 'Spline Sans Mono',monospace;letter-spacing:.34em;text-transform:uppercase;color:var(--acc);margin-bottom:8px}
.mast-title{font-family:'Instrument Serif',Georgia,serif;font-size:clamp(2rem,4.6vw,3rem);line-height:.95;letter-spacing:-.01em;color:var(--ink);display:flex;align-items:baseline;gap:14px}
.mast-title em{font-style:italic;color:var(--acc)}
.mast-beat{flex:none;width:74px;height:30px;align-self:center}
.mast-beat path{stroke:var(--acc);stroke-width:3;fill:none;stroke-linecap:square}
.mast-meta{font:500 .68rem/1.8 'Spline Sans Mono',monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--mute);text-align:right}
.mast-meta a{color:var(--ink2);border:1px solid var(--rule);padding:3px 9px;display:inline-block;margin-top:5px}
.mast-meta a:hover{color:var(--acc);border-color:var(--acc);text-decoration:none}

/* ticker */
.ticker{max-width:1240px;margin:0 auto;overflow:hidden;border-bottom:1px solid var(--rule);padding:8px 0;position:relative}
.ticker::before,.ticker::after{content:"";position:absolute;top:0;bottom:0;width:60px;z-index:2;pointer-events:none}
.ticker::before{left:0;background:linear-gradient(90deg,var(--paper),transparent)}
.ticker::after{right:0;background:linear-gradient(270deg,var(--paper),transparent)}
.ticker-inner{display:inline-block;white-space:nowrap;font:500 .68rem/1 'Spline Sans Mono',monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);animation:tick 52s linear infinite;padding-left:12px}
.ticker-inner b{color:var(--acc);font-weight:500}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* wire index nav (sticky) */
.wireindex{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:2px solid var(--ink);box-shadow:0 1px 0 var(--paper)}
.wireindex-in{max-width:1240px;margin:0 auto;display:flex;gap:2px;overflow-x:auto;padding:9px 24px;scrollbar-width:none}
.wireindex-in::-webkit-scrollbar{display:none}
.wireindex a{flex:none;font:600 .64rem/1 'Spline Sans Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);padding:6px 9px;border:1px solid transparent}
.wireindex a:hover{color:var(--acc);text-decoration:none;border-color:var(--rule)}
.wireindex a[aria-current="page"]{color:var(--accInk);background:var(--acc);border-color:var(--ink)}

/* crumb (videos/sources) */
.crumb{max-width:1240px;margin:0 auto;padding:18px 24px 0;font:500 .68rem/1 'Spline Sans Mono',monospace;letter-spacing:.14em;text-transform:uppercase}
.crumb span{color:var(--rule);margin:0 6px}
.crumb a{color:var(--mute)}
.crumb a:hover{color:var(--acc)}

/* agents-first line */
.afline{border-bottom:1px solid var(--rule);font:500 .64rem/1 'Spline Sans Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:center;align-items:center;padding:9px 16px}
.afline b{color:var(--acc2);font-weight:600}
.afline a{color:var(--mute);border:1px solid var(--rule);padding:3px 8px}
.afline a:hover{color:var(--acc);border-color:var(--acc);text-decoration:none}
.afline a.why{color:var(--acc2);border-color:transparent}

/* ---------- LAYOUT ---------- */
main{max-width:1240px;margin:0 auto;padding:0 24px 70px;display:block}
section,.section{margin:70px 0}
.w{max-width:none}

/* hero */
.hero{padding:56px 0 0;margin:0 0 26px;border:0;text-align:left;position:relative}
.hero::before{display:none}
.badge{display:inline-block;font:600 .66rem/1 'Spline Sans Mono',monospace;letter-spacing:.26em;text-transform:uppercase;color:var(--acc);border:1.5px solid var(--acc);padding:7px 13px 6px;transform:rotate(-1.2deg);margin-bottom:26px;background:var(--paper2);box-shadow:3px 3px 0 var(--shadow)}
.hero h1{font-size:clamp(2.6rem,6.4vw,4.8rem);line-height:1.02;letter-spacing:-.015em;margin:0 0 22px;max-width:24ch;color:var(--ink)}
.hero h1 span{color:var(--acc);font-style:italic}
.hero p.lede,.hero .hero-sub{font-size:1.12rem;line-height:1.6;color:var(--ink2);max-width:64ch;margin:0}
.hero::after{content:"";margin-top:38px}
.hero>*{animation:rise .65s cubic-bezier(.2,.7,.2,1) both}
.hero>*:nth-child(2){animation-delay:.08s}
.hero>*:nth-child(3){animation-delay:.16s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* section headers — ghost numerals in the margin of a top rule */
section h2,.section h2{font-size:clamp(1.55rem,2.8vw,2.15rem);border-top:2px solid var(--ink);padding-top:18px;margin-bottom:12px;display:flex;align-items:baseline;gap:18px;color:var(--ink)}
section h2 .num{font:700 2.6rem/1 'Spline Sans Mono',monospace;letter-spacing:0;color:transparent;-webkit-text-stroke:1.3px var(--acc);flex:none;transform:translateY(2px)}
@supports not (-webkit-text-stroke:1px black){section h2 .num{color:var(--acc)}}
section .lead,.section .lead{color:var(--ink2);max-width:70ch;margin-bottom:26px;font-size:1rem}

/* alt band */
.s-alt{background:var(--paper2);border-block:1px solid var(--rule);padding:40px 24px;margin-inline:-24px}
.s-alt h2{border-top-color:var(--acc)}

/* ---------- LEDGER CARDS ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:20px;margin-top:30px}
.card{background:var(--paper2);border:1.5px solid var(--ink);padding:24px 24px 22px;box-shadow:6px 6px 0 var(--shadow);position:relative;transition:transform .16s ease,box-shadow .16s ease}
.card:hover{transform:translate(-3px,-3px);box-shadow:10px 10px 0 var(--shadow)}
.card h3{font-size:1.5rem;margin:0 0 10px;color:var(--ink)}
.card h3 a{color:var(--ink)}
.card h3 a:hover{color:var(--acc);text-decoration:none}
.card p{color:var(--ink2);font-size:.93rem;line-height:1.6}
.card>a{display:inline-block;margin-top:12px;font:600 .7rem/1 'Spline Sans Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
.card>a::after{content:" →"}
.pill{display:inline-block;font:600 .62rem/1 'Spline Sans Mono',monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--acc);border:1px dashed var(--acc);padding:5px 9px 4px;margin-bottom:14px;transform:rotate(-1.4deg);background:transparent;border-radius:0}
.pill.b{color:var(--acc2);border-color:var(--acc2)}
.pill.c{color:var(--mute);border-color:var(--mute)}
@media(min-width:880px){
  .grid>.card:first-child:nth-last-child(n+4){grid-column:span 2}
}

/* callouts — field notes */
.callout,.np-callout{background:var(--paper2);border:1.5px solid var(--ink);border-left:9px solid var(--acc);padding:22px 26px;margin:32px 0;font-size:1rem;color:var(--ink2);box-shadow:6px 6px 0 var(--shadow)}
.callout::before{content:"Field note";display:block;font:600 .62rem/1 'Spline Sans Mono',monospace;letter-spacing:.24em;text-transform:uppercase;color:var(--acc);margin-bottom:10px}
.callout strong,.np-callout strong{color:var(--ink)}

/* lists */
ol.deep,ul.deep{margin:14px 0 0 24px;color:var(--ink2);font-size:.95rem}
ol.deep li,ul.deep li{margin-bottom:10px;line-height:1.65;padding-left:4px}
ol.deep li::marker,ul.deep li::marker{color:var(--acc);font:700 .8rem 'Spline Sans Mono',monospace}
ol.deep li strong,ul.deep li strong{color:var(--ink)}

/* tables — the print ledger */
table{width:100%;border-collapse:collapse;background:var(--paper2);border:2px solid var(--ink);font-size:.9rem;margin:26px 0;box-shadow:6px 6px 0 var(--shadow)}
th,td{padding:12px 15px;text-align:left;border-bottom:1px solid var(--rule)}
th{font:600 .64rem/1.4 'Spline Sans Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);background:transparent;border-bottom:3px double var(--ink)}
td{color:var(--ink2)}
th.num,td.num{text-align:right;font-family:'Spline Sans Mono',monospace;font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--rowhov)}
.score{font:700 1rem 'Spline Sans Mono',monospace;color:var(--ink)}
.score.hi{color:var(--acc)}.score.md{color:var(--acc2)}.score.lo{color:var(--mute)}
.delta{font:600 .8rem 'Spline Sans Mono',monospace}
.delta.up{color:var(--acc2)}.delta.dn{color:var(--acc)}

/* regions */
.region{margin:30px 0 44px}
.region h3{font-size:1.45rem;color:var(--ink);border-bottom:2px solid var(--acc);display:inline-block;padding-bottom:4px;margin-bottom:8px}
.region p.sm{font:500 .68rem/1.6 'Spline Sans Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}

/* charts (legacy) */
.chartwrap{margin:28px 0 10px}
.chartwrap h3{font-size:1.2rem;color:var(--ink);margin-bottom:10px}
.chartwrap .cap{font:500 .68rem 'Spline Sans Mono',monospace;color:var(--mute);margin-top:8px}

/* ---------- NEWS FEED (np-*) ---------- */
.np-container{max-width:880px;margin:0 auto;padding-top:40px}
.np-header{margin-bottom:8px}
.np-eyebrow{display:inline-block;font:600 .66rem/1 'Spline Sans Mono',monospace;letter-spacing:.26em;text-transform:uppercase;color:var(--acc);border:1.5px solid var(--acc);padding:7px 13px 6px;transform:rotate(-1.2deg);margin-bottom:24px;background:var(--paper2);box-shadow:3px 3px 0 var(--shadow)}
.np-headline{font-family:'Instrument Serif',Georgia,serif;font-size:clamp(1.9rem,4.4vw,3rem);line-height:1.06;color:var(--ink);margin:0 0 16px}
.np-subhead{font-size:1.08rem;color:var(--ink2);max-width:64ch}
.np-section-label{font:600 .68rem/1 'Spline Sans Mono',monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);border-top:2px solid var(--ink);padding-top:14px;margin:40px 0 18px}
.np-story-title{font-family:'Instrument Serif',Georgia,serif;font-size:1.55rem;color:var(--ink);margin:0 0 10px}
.np-lead-story{background:var(--paper2);border:1.5px solid var(--ink);border-left:9px solid var(--acc);padding:26px 28px;box-shadow:6px 6px 0 var(--shadow);margin:26px 0}
.np-lead-story p{margin:10px 0;color:var(--ink2)}
.np-story-card{background:var(--paper2);border:1.5px solid var(--ink);padding:22px 24px;margin:18px 0;box-shadow:6px 6px 0 var(--shadow)}
.np-story-card p{margin:8px 0;color:var(--ink2);font-size:.95rem}
.np-story-tag{display:inline-block;font:600 .62rem/1 'Spline Sans Mono',monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--acc2);border:1px dashed var(--acc2);padding:5px 9px 4px;margin-bottom:12px;transform:rotate(-1.4deg)}
.np-callout{margin:18px 0;font-size:.95rem}
.np-divider{margin:40px 0;border:0}
.np-link-primary{color:var(--acc);text-decoration:underline;text-underline-offset:3px}
.np-global-watch p{color:var(--ink2)}
.np-podcasts{margin:30px 0}
.np-podcast-intro{color:var(--ink2);margin-bottom:14px}
.np-podcast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.np-podcast-card{background:var(--paper2);border:1px solid var(--rule);padding:16px 18px}
.np-podcast-icon{font-size:1.3rem;display:block;margin-bottom:6px}
.np-podcast-body{font-size:.9rem;color:var(--ink2)}
.np-link-podcast{color:var(--acc)}
.np-resource-bar{background:var(--paper2);border:1px solid var(--rule);padding:14px 18px;margin:22px 0;font-size:.92rem;color:var(--ink2)}
.np-footer{border-top:3px double var(--ink);margin-top:48px;padding-top:20px}
.np-updated{font:500 .76rem 'Spline Sans Mono',monospace;color:var(--mute);text-align:left}
.np-footer-note{font-size:.85rem;color:var(--mute);margin-top:6px}
.np-link-footer{color:var(--acc)}
.np-source,.np-highlight,.np-podcast,.np-critic{color:var(--ink2)}
.np-highlight{background:var(--paper2);border-left:6px solid var(--acc);padding:14px 18px;margin:14px 0}
.np-podcast,.np-critic{background:var(--paper2);border:1px solid var(--rule);padding:12px 16px;margin:10px 0}

/* ---------- FOOTER ---------- */
footer.colophon{border-top:3px double var(--ink);max-width:1240px;margin:30px auto 0;padding:34px 24px 110px;color:var(--mute);font:500 .76rem/2 'Spline Sans Mono',monospace;letter-spacing:.04em;text-align:left}
footer.colophon a{color:var(--ink2)}
footer.colophon a:hover{color:var(--acc)}
footer.colophon .fam{margin-top:10px;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}
footer.colophon .fam a{margin-right:14px}

/* ad slot sits on paper */
.adsbygoogle{margin:30px auto;max-width:1240px}

/* ---------- THEME PICKER ---------- */
#pulse-picker{position:fixed;right:14px;bottom:14px;z-index:90;display:flex;align-items:center;gap:3px;background:var(--paper2);border:1.5px solid var(--ink);box-shadow:5px 5px 0 var(--shadow);padding:6px 9px;max-width:calc(100vw - 28px);flex-wrap:wrap;justify-content:center}
#pulse-picker .pp-l{font:700 .6rem/1 'Spline Sans Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--acc);margin-right:5px}
#pulse-picker button{font:600 .6rem/1 'Spline Sans Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);background:none;border:1px solid transparent;padding:5px 7px;cursor:pointer}
#pulse-picker button:hover{color:var(--acc);border-color:var(--rule)}
#pulse-picker button[aria-current="true"]{color:var(--accInk);background:var(--acc);border-color:var(--ink)}

/* ---------- RESPONSIVE & MOTION ---------- */
@media(max-width:760px){
  .mast{padding-top:22px}
  .mast-meta{text-align:left}
  .hero h1{font-size:clamp(2.1rem,9vw,2.9rem)}
  section h2 .num{font-size:1.9rem}
  .s-alt{margin-inline:-24px}
  #pulse-picker{right:8px;bottom:8px;padding:5px 6px}
}
@media(prefers-reduced-motion:reduce){
  .ticker-inner{animation:none}
  .hero>*{animation:none}
  .card,#pulse-picker button{transition:none}
  html{scroll-behavior:auto}
}
