/*
Theme Name: Disruptor Investing v89
Author: Dr. Paul Christianson
Author URI: https://x.com/disruptorinvest
Description: Custom one-page theme for Disruptor Investing, LLC — an educational research platform focused on AI-driven disruptive investment trends. Dark graphite and cobalt brand system with live market data via TradingView and an auto-updating Daily Disruptor feed.
Version: 89.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: Proprietary
Text Domain: disruptor-investing-v89
*/

:root{
  --graphite:#15181e;
  --panel:#1b1f27;
  --panel-edge:#262b36;
  --paper:#f2f3f5;
  --muted:#98a1b3;
  --cobalt:#2e7fc1;
  --cobalt-bright:#4a9bd9;
  --signal-red:#d45b4a;
  --dot:#3a4150;
  --max:1120px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none!important;transition:none!important;}
}
body{
  background:var(--graphite);
  color:var(--paper);
  font-family:'IBM Plex Sans',sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--cobalt-bright);text-decoration:none;}
a:hover{text-decoration:underline;}
a:focus-visible,button:focus-visible{outline:2px solid var(--cobalt-bright);outline-offset:3px;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;}
.dotrule{border:none;border-top:2px dotted var(--dot);margin:0;}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(21,24,30,.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--panel-edge);
}
.admin-bar .site-header{top:32px;}
@media(max-width:782px){.admin-bar .site-header{top:46px;}}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;}
.nav .logo{height:34px;width:auto;}
.nav-links{display:flex;gap:26px;align-items:center;}
.nav-links a{
  color:var(--paper);font-family:'IBM Plex Mono',monospace;
  font-size:13px;letter-spacing:.08em;text-transform:uppercase;
}
.nav-links a:hover{color:var(--cobalt-bright);text-decoration:none;}
.nav-cta{background:var(--cobalt);border:1px solid var(--cobalt);padding:9px 18px;color:#fff!important;}
.nav-cta:hover{background:var(--cobalt-bright);border-color:var(--cobalt-bright);color:#fff!important;text-decoration:none;}
.nav-toggle{display:none;background:none;border:1px solid var(--panel-edge);padding:10px 11px;cursor:pointer;}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--paper);margin:4px 0;transition:transform .2s,opacity .2s;}
.nav-toggle.active span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle.active span:nth-child(2){opacity:0;}
.nav-toggle.active span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
@media(max-width:900px){
  .nav-toggle{display:block;}
  .nav-links{
    display:none;position:absolute;left:0;right:0;top:76px;z-index:999;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--graphite);border-bottom:1px solid var(--panel-edge);
    padding:8px 24px 64px;
    max-height:calc(100vh - 96px);overflow-y:auto;
    box-shadow:0 18px 30px rgba(0,0,0,.45);
  }
  .nav-links.open{display:flex;}
  .nav-links a{padding:14px 0;border-bottom:1px solid var(--panel-edge);}
  .nav-links a:last-child{border-bottom:none;}
  .nav-links .nav-cta{display:block;margin:18px 0 22px;text-align:center;border:1px solid var(--cobalt);padding:14px 18px;}
}

/* live index ticker bar (TradingView) */
.tickerbar{border-bottom:2px dotted var(--dot);min-height:46px;background:var(--graphite);position:relative;z-index:1;}

/* ---------- hero ---------- */
.hero{position:relative;padding:72px 0 76px;overflow:hidden;}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;
  opacity:.22;
}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(21,24,30,.35) 0%,rgba(21,24,30,.95) 90%);
}
.hero .wrap{position:relative;z-index:1;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cobalt-bright);margin-bottom:16px;
}
.eyebrow .no{color:var(--muted);}
h1{
  font-family:'Archivo',sans-serif;
  font-variation-settings:'wdth' 110;
  font-weight:800;
  font-size:clamp(38px,6.2vw,72px);
  line-height:1.02;
  letter-spacing:-.01em;
  text-transform:uppercase;
  max-width:940px;
}
h1 .cobalt{color:var(--cobalt-bright);}
.hero-sub{margin-top:22px;max-width:660px;color:#c4cad6;font-size:19px;}
.hero-ctas{display:flex;gap:16px;margin-top:30px;flex-wrap:wrap;}
.btn{
  display:inline-block;font-family:'IBM Plex Mono',monospace;
  font-size:14px;letter-spacing:.08em;text-transform:uppercase;
  padding:15px 28px;border:1px solid var(--cobalt);
}
.btn-solid{background:var(--cobalt);color:#fff;}
.btn-solid:hover{background:var(--cobalt-bright);text-decoration:none;}
.btn-ghost{color:var(--cobalt-bright);}
.btn-ghost:hover{background:rgba(46,127,193,.12);text-decoration:none;}

/* ---------- sections ---------- */
.site-main section{padding:60px 0;}
.sec-head{margin-bottom:30px;}
h2{
  font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 110;
  font-weight:800;font-size:clamp(28px,3.6vw,42px);
  text-transform:uppercase;line-height:1.05;
}
.lede{color:var(--muted);max-width:700px;font-size:18px;}

/* sector grid */
.sector-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--dot);}
@media(max-width:900px){.sector-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.sector-grid{grid-template-columns:1fr;}}
.sector{background:var(--panel);display:flex;flex-direction:column;}
.sector.is-hidden{display:none;}
.sector-grid.expanded .sector.is-hidden{display:flex;}
.sector-more-wrap{display:flex;justify-content:center;margin-top:26px;}
.sector-toggle{cursor:pointer;font-family:'IBM Plex Mono',monospace;border:0;}
.sector-figure{aspect-ratio:16/9;overflow:hidden;background:var(--panel-edge);}
.sector-figure img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);}
.sector-body{padding:26px 26px 30px;}
.sector .k{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cobalt-bright);margin-bottom:12px;
}
.sector h3{font-size:18px;font-weight:600;margin-bottom:8px;}
.sector p{color:var(--muted);font-size:15px;}

/* offer cards */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--dot);}
@media(max-width:820px){.cards{grid-template-columns:1fr;}}
.card{background:var(--panel);padding:44px 40px;display:flex;flex-direction:column;gap:18px;}
.card h3{
  font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 110;
  font-weight:700;font-size:24px;text-transform:uppercase;
}
.card .tag{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cobalt-bright);
}
.card p{color:var(--muted);}
.card ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.card li{padding-left:22px;position:relative;color:var(--paper);font-size:16px;}
.card li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:8px;background:var(--cobalt);}
.card .btn{align-self:flex-start;}
.card .btn-row{margin-top:auto;display:flex;gap:12px;flex-wrap:wrap;}
.card > .btn{margin-top:auto;}
.price-note{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--muted);}

/* sector cards: read-more link */
.sector-more{
  display:inline-block;margin-top:12px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--cobalt-bright);
}

/* sector detail pages */
.sector-detail{padding:56px 0 80px;}
.sector-detail .eyebrow a{color:var(--muted);}
.sector-detail .eyebrow a:hover{color:var(--cobalt-bright);text-decoration:none;}
.sector-detail-title{
  font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 110;
  font-weight:800;font-size:clamp(32px,4.6vw,56px);line-height:1.03;
  text-transform:uppercase;margin:10px 0 34px;max-width:820px;
}
.sector-detail-figure{border:2px dotted var(--dot);background:var(--panel);max-width:820px;margin-bottom:40px;}
.sector-detail-figure img{width:100%;display:block;}
.sector-detail-copy{max-width:720px;}
.sector-detail-copy p{color:#c4cad6;font-size:18px;margin-bottom:22px;}
.sector-detail-ctas{display:flex;gap:16px;flex-wrap:wrap;margin-top:40px;}

/* disclosures page */
.disc-updated{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;
  color:var(--muted);margin:-18px 0 34px;
}
.disc-h{
  font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 110;
  font-weight:700;font-size:20px;text-transform:uppercase;
  margin:38px 0 14px;color:var(--paper);
}
.disclosures-page .sector-detail-copy p{font-size:16px;color:var(--muted);}
/* disclosures: rate + snippet boxes */
.rate-box{
  border:2px dotted var(--cobalt);background:var(--panel);
  padding:16px 18px;margin:8px 0 14px;color:var(--paper);font-size:16px;
}
.rate-box span{
  display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--cobalt-bright);margin-bottom:6px;
}
/* membership performance line */
.card .perf{color:var(--paper);font-size:16px;font-weight:600;}
.card .perf-note{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;
  color:var(--muted);margin-top:-8px;
}

/* membership housed line */
.card .housed{
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.06em;
  color:var(--paper);border-left:3px solid var(--cobalt);padding-left:12px;
}

/* adoption curve on the map page */
.curve-panel{
  background:var(--panel);border:1px solid var(--panel-edge);
  padding:24px 28px 20px;margin:0 0 34px;
}
.curve-svg{width:100%;height:auto;display:block;margin:14px 0 6px;overflow:visible;}
.curve-axis{stroke:var(--panel-edge);stroke-width:2;}
.curve-axis-l{
  fill:var(--dot);font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;
}
.curve-band{fill:var(--cobalt);opacity:.07;}
.curve-band-hot{fill:#4ab87a;opacity:.13;}
.curve-line{fill:none;stroke:var(--cobalt-bright);stroke-width:4;stroke-linecap:round;}
.curve-mark circle{fill:var(--cobalt-bright);}
.curve-mark line{stroke:var(--dot);stroke-width:2;stroke-dasharray:3 4;}
.curve-mark text{
  fill:var(--paper);font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.12em;text-anchor:middle;
}
.curve-mark .curve-n{
  fill:var(--muted);font-family:'Archivo',sans-serif;font-weight:800;
  font-size:22px;letter-spacing:0;
}
.curve-mark-hot circle{fill:#4ab87a;}
.curve-mark-hot text{fill:#7fd3a3;}
.curve-mark-hot .curve-n{fill:#4ab87a;}
.curve-note{
  fill:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:10.5px;
  letter-spacing:.14em;text-anchor:middle;text-transform:uppercase;
}
.curve-caption{color:var(--muted);font-size:14px;line-height:1.7;max-width:760px;}

/* the map page */
.map-method{
  border-left:3px solid var(--cobalt);padding:2px 0 2px 16px;margin:0 0 40px;
  max-width:760px;
}
.map-method p{color:var(--muted);margin-bottom:12px;}
.map-method strong{color:var(--paper);}
.map-stage{margin-bottom:44px;}
.map-def{color:var(--muted);font-size:15px;max-width:700px;margin:10px 0 20px;}
.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--dot);}
@media(max-width:820px){.map-grid{grid-template-columns:1fr;}}
.map-item{
  display:grid;grid-template-columns:34px 1fr;gap:4px 12px;
  background:var(--panel);padding:14px 18px;text-decoration:none;
}
.map-item:hover{background:var(--panel-edge);}
.map-num{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--cobalt);
  grid-row:1 / span 2;padding-top:2px;
}
.map-name{color:var(--paper);font-weight:600;font-size:15px;}
.map-constraint{color:var(--muted);font-size:13px;line-height:1.5;}

/* CEO interview videos. Thumbnails come straight from YouTube, so no iframes
   load until someone clicks and nothing needs uploading to WordPress. */
.video-heading{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cobalt-bright);margin:22px 0 12px;
}
.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px;}
@media(max-width:520px){.video-grid{grid-template-columns:1fr;}}
.video-item{display:block;text-decoration:none;}
.video-thumb{position:relative;display:block;background:var(--graphite);overflow:hidden;}
.video-thumb img{width:100%;height:auto;display:block;opacity:.86;transition:opacity .15s;}
.video-item:hover .video-thumb img{opacity:1;}
.video-play{
  position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;
  background:var(--cobalt);border-radius:50%;
}
.video-play:after{
  content:"";position:absolute;top:14px;left:18px;
  border-left:15px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent;
}
.video-item:hover .video-play{background:var(--cobalt-bright);}
.video-label{
  display:block;color:var(--muted);font-size:13px;line-height:1.45;margin-top:8px;
}
.video-item:hover .video-label{color:var(--paper);}

/* signals, private page. Card grid with a status lamp per card. */
.signals-page .sig-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:20px;
  margin-bottom:24px;flex-wrap:wrap;
}
.sig-stamp{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);
}
.sig-tally{text-align:right;line-height:1;}
.sig-tally-n{display:block;font-family:'Archivo',sans-serif;font-weight:800;font-size:50px;color:#4ab87a;}
.sig-tally-l{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);
}

/* sparkline */
.spark{width:100%;height:auto;display:block;}
.spark polyline{fill:none;stroke-width:2;vector-effect:non-scaling-stroke;}
.spark circle{stroke:none;}
.spark-up polyline{stroke:#4ab87a;} .spark-up circle{fill:#4ab87a;}
.spark-down polyline{stroke:var(--signal-red);} .spark-down circle{fill:var(--signal-red);}

/* the grid */
.sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:760px){.sig-grid{grid-template-columns:1fr;}}
.sigc{
  position:relative;background:var(--panel);border:1px solid var(--panel-edge);
  border-radius:12px;padding:20px 22px 18px;transition:border-color .15s,transform .15s;
}
.sigc:hover{border-color:var(--dot);}
.sigc-lead{grid-column:1 / -1;border-color:rgba(74,184,122,.4);}

/* the status lamp, one per card */
.sigc-lamp{
  position:absolute;top:18px;right:20px;width:11px;height:11px;border-radius:50%;
  background:var(--dot);
}
.sigc-green .sigc-lamp{background:#4ab87a;box-shadow:0 0 0 4px rgba(74,184,122,.16);}
.sigc-orange .sigc-lamp{background:#d9a441;box-shadow:0 0 0 4px rgba(217,164,65,.16);}
.sigc-red .sigc-lamp{background:#d45b4a;box-shadow:0 0 0 4px rgba(212,91,74,.16);}

.sigc-pill{
  display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:9px;
  letter-spacing:.16em;text-transform:uppercase;color:#4ab87a;
  border:1px solid rgba(74,184,122,.45);border-radius:999px;
  padding:4px 10px;margin-bottom:12px;
}
.sigc-tkr{
  font-family:'Archivo',sans-serif;font-weight:800;font-size:26px;
  color:var(--paper);line-height:1.05;
}
.sigc-lead .sigc-tkr{font-size:38px;}
.sigc-co{
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cobalt-bright);margin-top:5px;
}
.sigc-spark{margin:14px 0 4px;}

/* stop to target */
.sigc-scale{position:relative;height:7px;background:var(--graphite);border-radius:4px;margin:12px 0 10px;overflow:hidden;}
.sigc-risk{position:absolute;left:0;top:0;height:100%;background:rgba(212,91,74,.55);}
.sigc-reward{position:absolute;top:0;height:100%;background:rgba(74,184,122,.5);}
.sigc-entry{position:absolute;top:-3px;width:3px;height:13px;background:var(--paper);margin-left:-1px;}
.sigc-lv{display:flex;gap:2px;background:var(--dot);border-radius:6px;overflow:hidden;margin-bottom:12px;}
.sigc-lv span{
  flex:1;background:var(--graphite);padding:8px 10px;color:var(--paper);
  font-family:'IBM Plex Mono',monospace;font-size:14px;
}
.sigc-lv em{
  display:block;font-style:normal;font-size:8.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-bottom:3px;
}
.sigc-lv .lv-stop{color:#e2897b;} .sigc-lv .lv-target{color:#7fd3a3;}
.sigc-nolv{
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--signal-red);
  margin:14px 0 12px;
}
.sigc-cat{color:var(--muted);font-size:13.5px;line-height:1.55;margin-bottom:8px;}
.sigc-why{color:var(--paper);font-size:14.5px;line-height:1.6;margin-bottom:9px;}
.sigc-risk-line{color:var(--muted);font-size:12.5px;line-height:1.55;margin-bottom:10px;}
.sigc-risk-line b{
  color:var(--signal-red);font-family:'IBM Plex Mono',monospace;font-size:9.5px;
  letter-spacing:.12em;text-transform:uppercase;margin-right:6px;font-weight:500;
}
.sigc-meta{
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--dot);
  border-top:1px solid var(--panel-edge);padding-top:10px;letter-spacing:.03em;
}

/* method and notes */
.sig-detail{margin-top:28px;border-top:2px dotted var(--dot);padding-top:18px;}
.sig-detail summary{
  cursor:pointer;font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--cobalt-bright);
}
.sig-note{
  color:var(--muted);font-size:12.5px;line-height:1.7;
  border-left:3px solid var(--cobalt);padding-left:14px;margin:16px 0;
}
.sig-note-block{background:var(--panel);padding:15px 18px;margin-top:12px;border-radius:8px;}
.sig-nb-head{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--paper);margin-bottom:7px;}
.sig-note-block p{font-size:13.5px;color:var(--muted);margin-bottom:5px;}
.sig-note-block b{color:var(--cobalt-bright);font-weight:600;}
.sig-tf{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);}

.btn-gap{display:inline-block;width:12px;}

/* radar edition rendered as cards */
.rd-head{display:flex;justify-content:space-between;align-items:center;gap:18px;
  flex-wrap:wrap;margin:0 0 14px;}
.rd-stamp{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);}
.rd-tally{display:flex;gap:16px;flex-wrap:wrap;}
.rd-t{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:7px;}
.rd-t i{width:9px;height:9px;border-radius:50%;display:inline-block;}
.rd-t-green i{background:#4ab87a;box-shadow:0 0 0 3px rgba(74,184,122,.16);}
.rd-t-orange i{background:#d9a441;box-shadow:0 0 0 3px rgba(217,164,65,.16);}
.rd-t-red i{background:#d45b4a;box-shadow:0 0 0 3px rgba(212,91,74,.16);}
.rd-theme{color:var(--muted);font-size:15px;line-height:1.65;max-width:760px;
  border-left:3px solid var(--cobalt);padding-left:14px;margin:0 0 22px;}

.rd-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px;}
@media(max-width:760px){.rd-grid{grid-template-columns:1fr;}}
.rd-card{position:relative;display:block;background:var(--panel);
  border:1px solid var(--panel-edge);border-radius:12px;padding:18px 20px 16px;
  text-decoration:none;transition:border-color .15s,transform .15s;}
.rd-card:hover{border-color:var(--dot);text-decoration:none;}
.rlamp{position:absolute;top:16px;right:18px;width:11px;height:11px;border-radius:50%;}
.rlamp-green{background:#4ab87a;box-shadow:0 0 0 4px rgba(74,184,122,.16);}
.rlamp-orange{background:#d9a441;box-shadow:0 0 0 4px rgba(217,164,65,.16);}
.rlamp-red{background:#d45b4a;box-shadow:0 0 0 4px rgba(212,91,74,.16);}
.rd-rank{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);
  letter-spacing:.1em;display:flex;align-items:center;gap:9px;margin-bottom:6px;}
.rmove{font-size:9px;letter-spacing:.12em;text-transform:uppercase;
  padding:2px 7px;border-radius:999px;border:1px solid var(--panel-edge);}
.rmove-new{color:#4ab87a;border-color:rgba(74,184,122,.4);}
.rmove-up{color:var(--cobalt-bright);border-color:rgba(74,155,217,.4);}
.rmove-down{color:#d9a441;border-color:rgba(217,164,65,.4);}
.rmove-held{color:var(--dot);}
.rd-name{font-family:'Archivo',sans-serif;font-weight:700;font-size:18px;
  color:var(--paper);line-height:1.25;padding-right:22px;margin-bottom:6px;}
.rd-headline{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--cobalt-bright);margin-bottom:10px;}
.rd-changed{color:var(--muted);font-size:13.5px;line-height:1.55;margin-bottom:9px;}
.rd-when{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--dot);
  white-space:nowrap;}
.rd-window{font-size:12.5px;color:var(--muted);line-height:1.5;margin-bottom:8px;}
.rd-window b,.rd-dropped b{font-family:'IBM Plex Mono',monospace;font-size:9.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--cobalt-bright);
  font-weight:500;margin-right:6px;}
.rd-co{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--dot);
  border-top:1px solid var(--panel-edge);padding-top:9px;}
.rd-dropped{color:var(--muted);font-size:12.5px;margin-bottom:16px;}
.rd-detail{border-top:2px dotted var(--dot);padding-top:16px;margin-top:8px;}
.rd-detail summary{cursor:pointer;font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--cobalt-bright);}
.rd-detail .post-body{margin-top:16px;}

/* AMA citations in posts and editions */
.sector-detail-copy sup,.post-body sup,.signals-body sup{
  font-size:.62em;line-height:0;vertical-align:super;
  color:var(--cobalt-bright);font-weight:600;padding-left:1px;
}
.sector-detail-copy h2 + ol,.post-body h2 + ol{margin-top:14px;}
.sector-detail-copy ol,.post-body ol{
  counter-reset:ref;list-style:none;padding-left:0;margin:0 0 20px;
}
.sector-detail-copy ol li,.post-body ol li{
  counter-increment:ref;position:relative;padding-left:34px;
  margin-bottom:11px;color:var(--muted);font-size:14px;line-height:1.6;
  overflow-wrap:anywhere;
}
.sector-detail-copy ol li:before,.post-body ol li:before{
  content:counter(ref) ".";position:absolute;left:0;top:0;
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--cobalt-bright);
}
.sector-detail-copy ol li a,.post-body ol li a{color:var(--cobalt-bright);}
.sector-detail-copy ol li a:hover,.post-body ol li a:hover{color:var(--paper);}

/* deep dives sonar, decorative and interactive */
.sonar-wrap{
  background:var(--panel);border:1px solid var(--panel-edge);
  padding:16px 18px;margin-bottom:26px;overflow:hidden;
}
.sonar-svg{width:100%;height:auto;display:block;}

.sonar-band{fill:var(--cobalt);}
.sonar-band-0{opacity:.055;} .sonar-band-1{opacity:.045;}
.sonar-band-2{opacity:.035;} .sonar-band-3{opacity:.026;}
.sonar-band-4{opacity:.018;} .sonar-band-5{opacity:.010;}
.sonar-rule{stroke:var(--panel-edge);stroke-width:1;stroke-dasharray:5 9;}
.sonar-surface{stroke:var(--cobalt-bright);stroke-width:2;opacity:.7;}
.sonar-plumb{stroke:var(--dot);stroke-width:1;stroke-dasharray:2 7;}
.sonar-weight{fill:var(--dot);}

/* the sweep runs top to bottom and repeats */
.sonar-sweep{animation:sonar-descend 7s cubic-bezier(.4,0,.6,1) infinite;}
.sonar-sweep-line{stroke:var(--cobalt-bright);stroke-width:2;opacity:.85;}
.sonar-sweep-glow{fill:var(--cobalt-bright);opacity:.10;}
@keyframes sonar-descend{
  0%{transform:translateY(26px);opacity:0;}
  8%{opacity:1;}
  88%{opacity:1;}
  100%{transform:translateY(274px);opacity:0;}
}

/* returns pulse in sequence, deeper ones in green */
.sonar-dot{fill:var(--cobalt-bright);transition:r .18s;}
.sonar-ping{
  fill:var(--cobalt-bright);opacity:0;
  animation:sonar-ping 7s ease-out infinite;
  animation-delay:var(--d,0s);
}
.sonar-deep .sonar-dot{fill:#4ab87a;}
.sonar-deep .sonar-ping{fill:#4ab87a;}
@keyframes sonar-ping{
  0%,60%{opacity:0;transform:scale(.5);}
  68%{opacity:.5;}
  100%{opacity:0;transform:scale(1.5);}
}
.sonar-return{transform-box:fill-box;transform-origin:center;}
.sonar-return:hover .sonar-dot{r:11;}
.sonar-return:hover .sonar-ping{opacity:.42;}

@media(prefers-reduced-motion:reduce){
  .sonar-sweep{animation:none;transform:translateY(150px);}
  .sonar-ping{animation:none;opacity:.22;}
}

/* radar sweep on the homepage */
.radar-wrap{display:grid;grid-template-columns:260px 1fr;gap:34px;align-items:start;}
@media(max-width:860px){
  .radar-wrap{grid-template-columns:1fr;gap:22px;}
  .radar-scope{max-width:260px;margin:0 auto;}
}
.radar-svg{width:100%;height:auto;display:block;overflow:visible;}
.radar-ring{fill:none;stroke:var(--panel-edge);stroke-width:1;}
.radar-cross{stroke:var(--panel-edge);stroke-width:1;}
.radar-sweep{transform-origin:50% 50%;animation:radar-spin 5.5s linear infinite;}
.radar-sweep path{fill:var(--cobalt);opacity:.16;}
@keyframes radar-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){.radar-sweep{animation:none;opacity:.5;}}
.radar-blip{cursor:pointer;}
.blip-dot{fill:var(--cobalt-bright);transition:r .15s;}
.blip-halo{fill:var(--cobalt-bright);opacity:.14;animation:blip-pulse 2.6s ease-in-out infinite;}
.blip-hot .blip-dot{fill:#4ab87a;} .blip-hot .blip-halo{fill:#4ab87a;opacity:.22;}
.blip-warm .blip-dot{fill:var(--cobalt-bright);}
.blip-cool .blip-dot{fill:var(--muted);} .blip-cool .blip-halo{opacity:.08;}
.radar-blip:hover .blip-dot{r:6.5;}
.radar-blip:hover .blip-halo{opacity:.4;}
@keyframes blip-pulse{0%,100%{opacity:.10;}50%{opacity:.28;}}
@media(prefers-reduced-motion:reduce){.blip-halo{animation:none;}}

/* radar */
.radar-band{padding:8px 0 0;}
.ht-edition{
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--cobalt-bright);margin:28px 0 14px;
}
.ht-edition .ht-date{color:var(--muted);margin-left:10px;}
.ht-list{list-style:none;counter-reset:none;margin:0;padding:0;border-top:2px dotted var(--dot);}
.ht-list li{
  display:grid;grid-template-columns:46px 1fr 1.4fr;gap:14px;align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--panel-edge);
}
@media(max-width:760px){
  .ht-list li{grid-template-columns:36px 1fr;}
  .ht-list .ht-constraint{grid-column:2;}
}
.ht-rank{
  font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--cobalt);
  letter-spacing:.06em;
}
.ht-name{color:var(--paper);font-weight:600;font-size:16px;}
.ht-name:hover{color:var(--cobalt-bright);}
.ht-constraint{color:var(--muted);font-size:14px;line-height:1.5;}

/* email signup band */
.email-band{
  background:var(--panel);border-top:2px dotted var(--dot);border-bottom:2px dotted var(--dot);
  padding:56px 0;
}
.email-inner{max-width:680px;}
.email-band h2{margin:12px 0 14px;}
.email-sub{color:var(--muted);font-size:18px;margin-bottom:24px;}
/* Substack embed. The iframe is cross origin, so its contents cannot be styled
   from here and the only way to hide the masthead is to crop it from outside.
   Two knobs:
     --sub-crop  how much to cut off the top. Raise it to hide more of the
                 Substack logo, publication name, and tagline.
     --sub-show  the visible height. Raise it if the terms line is clipped.
   Both can be overridden in Customize > Additional CSS without a theme update. */
.email-form{
  --sub-crop:165px;
  --sub-show:132px;
  margin-bottom:16px;max-width:484px;
  height:var(--sub-show);overflow:hidden;position:relative;
}
.email-form iframe{
  width:100%;max-width:484px;border:0;display:block;background:transparent;
  margin-top:calc(var(--sub-crop) * -1);
}
/* the terms line wraps to an extra row on narrow screens */
@media(max-width:520px){.email-form{--sub-show:164px;}}
.email-form input[type="email"],.email-form input[type="text"]{
  background:var(--graphite);border:1px solid var(--panel-edge);color:var(--paper);
  padding:14px 16px;font-family:'IBM Plex Sans',sans-serif;font-size:16px;min-width:260px;
}
.email-form button,.email-form input[type="submit"]{
  background:var(--cobalt);border:1px solid var(--cobalt);color:#fff;cursor:pointer;
  padding:14px 26px;font-family:'IBM Plex Mono',monospace;font-size:14px;
  letter-spacing:.08em;text-transform:uppercase;
}
.email-form button:hover,.email-form input[type="submit"]:hover{background:var(--cobalt-bright);}
.email-note,.email-setup{
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);
  letter-spacing:.05em;margin-top:12px;
}
.email-setup{color:var(--signal-red);}

@media(max-width:700px){}
@media(max-width:700px){}

/* curve position + constraint */
.method-strip{
  display:grid;grid-template-columns:1fr 2fr;gap:2px;background:var(--dot);
  margin:0 0 34px;max-width:820px;
}
@media(max-width:700px){.method-strip{grid-template-columns:1fr;}}
.method-cell{background:var(--panel);padding:18px 22px;}
.method-k{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cobalt-bright);margin-bottom:6px;
}
.method-v{color:var(--paper);font-size:16px;line-height:1.5;}
.method-note{
  color:var(--muted);max-width:700px;font-size:15px;margin-top:14px;
  border-left:3px solid var(--cobalt);padding-left:14px;
}
.stage-badge{
  display:inline-block;margin-left:8px;padding:2px 8px;
  background:var(--panel-edge);color:var(--muted);
  font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;white-space:nowrap;
}

/* deep dive reading experience */
.deep-dive-body{max-width:760px;}
.deep-dive-body p{font-size:19px;line-height:1.75;color:#c9cfdb;margin-bottom:24px;}
.deep-dive-body h2{
  font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 110;font-weight:800;
  text-transform:uppercase;color:var(--paper);font-size:24px;margin:44px 0 16px;
  padding-top:20px;border-top:2px dotted var(--dot);
}
.deep-dive-body h3{font-size:20px;margin:32px 0 12px;}
.deep-dive-body strong{color:var(--paper);}

/* sector <-> post cross-links */
.sector-coverage{margin-top:46px;padding-top:34px;border-top:2px dotted var(--dot);}
.sector-coverage .eyebrow{margin-bottom:18px;}
.post-sector-link{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);margin:-14px 0 26px;
}
.post-sector-link a{color:var(--cobalt-bright);}

/* daily disruptor posts */
.dd-posts{display:grid;gap:2px;background:var(--dot);}
.dd-count-1{grid-template-columns:1fr;}
.dd-count-2{grid-template-columns:1fr 1fr;}
.dd-count-3{grid-template-columns:1fr 1fr 1fr;}
.dd-post{display:block;background:var(--panel);color:var(--paper);}
.dd-post:hover{text-decoration:none;background:#1f242e;}
.dd-body{padding:28px 26px;}
.dd-thumb{aspect-ratio:16/9;overflow:hidden;background:var(--panel-edge);}
.dd-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.dd-post h3{font-size:19px;font-weight:600;margin:6px 0 10px;color:var(--paper);}
.dd-date{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--cobalt-bright);
}
.dd-excerpt{color:var(--muted);font-size:15px;margin-bottom:12px;}

/* a single issue fills the full width as a horizontal feature card */
@media(min-width:901px){
  .dd-count-1 .dd-post{display:block;}
  .dd-count-1 .dd-thumb{aspect-ratio:16/9;width:100%;}
  .dd-count-1 .dd-body{padding:32px 40px 36px;}
  .dd-count-1 .dd-post h3{font-size:27px;line-height:1.2;margin:8px 0 12px;}
  .dd-count-1 .dd-excerpt{font-size:17px;margin-bottom:14px;max-width:900px;}
  /* two issues: taller images so the row never looks sparse */
  .dd-count-2 .dd-thumb{aspect-ratio:3/2;}
  .dd-count-2 .dd-post h3{font-size:22px;}
}
@media(max-width:900px){.dd-posts{grid-template-columns:1fr;}}
@media(max-width:700px){
  .site-main section{padding:42px 0;}
  .hero{padding:48px 0 52px;}
  .sec-head{margin-bottom:22px;}
  .follow{padding:46px 24px;}
  .sector-detail{padding:38px 0 56px;}
}

.post-body p{margin-bottom:20px;}
.post-body h2,.post-body h3{
  font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 110;font-weight:700;
  text-transform:uppercase;color:var(--paper);margin:30px 0 12px;font-size:20px;
}
.post-body ul,.post-body ol{margin:0 0 20px 22px;color:var(--muted);}
.post-body li{margin-bottom:8px;}
.post-body a{color:var(--cobalt-bright);}
.post-hero-img img{width:100%;display:block;}
.post-disclosure{
  border:2px dotted var(--dot);background:var(--panel);padding:18px 20px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;line-height:1.75;color:var(--muted);
  margin:34px 0 6px;letter-spacing:.03em;
}
.post-disclosure strong{color:var(--signal-red);font-weight:600;letter-spacing:.06em;}
.pagination .nav-links{display:flex;gap:14px;font-family:'IBM Plex Mono',monospace;}

/* about */
.about-grid{display:grid;grid-template-columns:340px 1fr;gap:48px;align-items:start;}
@media(max-width:820px){.about-grid{grid-template-columns:1fr;gap:32px;}}
.headshot-wrap{max-width:340px;}
.headshot{
  position:relative;overflow:hidden;
  background:var(--panel);border:1px solid var(--panel-edge);
  aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;
  box-shadow:0 18px 40px rgba(0,0,0,.35);
}
.headshot img{
  width:100%;height:100%;object-fit:cover;object-position:center 22%;
  filter:contrast(1.05) saturate(1.03) brightness(1.02);
}
/* soft graphite falloff so the portrait sits in the brand palette */
.headshot::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(21,24,30,0) 52%,rgba(21,24,30,.55) 100%);
}
.headshot-mark{position:absolute;left:0;bottom:0;width:8px;height:74px;background:var(--cobalt);z-index:2;}
.headshot-empty{
  color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:13px;
  text-align:center;padding:20px;
}
.headshot-cap{
  margin-top:14px;font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.06em;color:var(--muted);line-height:1.7;
}
.headshot-cap strong{color:var(--paper);font-weight:500;letter-spacing:.1em;text-transform:uppercase;}
.about-copy p{color:var(--muted);margin-bottom:18px;}
.about-copy p b{color:var(--paper);font-weight:600;}

/* follow band */
.follow{
  background:var(--panel);border-top:2px dotted var(--dot);border-bottom:2px dotted var(--dot);
  text-align:center;padding:60px 24px;
}
.follow h2{margin-bottom:14px;}
.follow p{color:var(--muted);max-width:560px;margin:0 auto 32px;}

/* footer */
.site-footer{padding:52px 0 40px;}
.site-footer .logo{height:26px;width:auto;margin-bottom:28px;}
.foot-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr;}}
.disclaimer{font-size:13px;line-height:1.7;color:var(--muted);}
.disclaimer strong{color:var(--signal-red);font-weight:600;letter-spacing:.04em;}
.foot-links{display:flex;flex-direction:column;gap:10px;font-family:'IBM Plex Mono',monospace;font-size:13px;text-transform:uppercase;letter-spacing:.08em;}
.copyright{
  margin-top:34px;padding-top:22px;border-top:2px dotted var(--dot);
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
