:root{
  --paper:#f5f2e9; --ink:#15140f; --ink-soft:#3a3628; --dim:#736c58; --line:#dcd5c1; --line-soft:#e8e2d2;
  --surface:#ffffff; --surface-2:#ece7d8; --surface-3:#e2dbc7;
  --accent:#a8471f; --accent-soft:#c96b3f; --accent-tint:#f3e2d4;
  --pos:#2f6b45; --pos-tint:#dfece1; --neg:#a5341f; --neg-tint:#f6e2dc;
  --warn:#8a6111; --warn-tint:#f2e6c9;
  --focus:#1f6f8f;
  --shadow-sm:0 1px 2px rgba(21,20,15,.06), 0 1px 1px rgba(21,20,15,.04);
  --shadow-md:0 8px 24px -8px rgba(21,20,15,.18), 0 2px 6px rgba(21,20,15,.06);
  --shadow-lg:0 24px 64px -16px rgba(21,20,15,.32), 0 8px 24px -8px rgba(21,20,15,.16);
  --radius:10px; --radius-sm:6px;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono","SF Mono",Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0f0f0c; --ink:#ece7d8; --ink-soft:#c9c2a8; --dim:#8a8268; --line:#302c22; --line-soft:#252219;
    --surface:#17160f; --surface-2:#1e1c14; --surface-3:#28251a;
    --accent:#dd7c48; --accent-soft:#e8996b; --accent-tint:#2c2015;
    --pos:#6bbf87; --pos-tint:#16241a; --neg:#e07659; --neg-tint:#2a1a14;
    --warn:#d9b559; --warn-tint:#2a2313;
    --focus:#5cb3d6;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4); --shadow-md:0 8px 24px -8px rgba(0,0,0,.5); --shadow-lg:0 24px 64px -16px rgba(0,0,0,.7);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0f0f0c; --ink:#ece7d8; --ink-soft:#c9c2a8; --dim:#8a8268; --line:#302c22; --line-soft:#252219;
  --surface:#17160f; --surface-2:#1e1c14; --surface-3:#28251a;
  --accent:#dd7c48; --accent-soft:#e8996b; --accent-tint:#2c2015;
  --pos:#6bbf87; --pos-tint:#16241a; --neg:#e07659; --neg-tint:#2a1a14;
  --warn:#d9b559; --warn-tint:#2a2313;
  --focus:#5cb3d6;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4); --shadow-md:0 8px 24px -8px rgba(0,0,0,.5); --shadow-lg:0 24px 64px -16px rgba(0,0,0,.7);
  color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;text-wrap:balance}
::selection{background:var(--accent);color:#fff}
a{color:inherit}
button{font-family:inherit;cursor:pointer}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.up{color:var(--pos)}.down{color:var(--neg)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px}

/* ===== masthead ===== */
.mast{position:sticky;top:0;z-index:40;background:linear-gradient(180deg,var(--surface-2),var(--paper) 85%);border-bottom:1px solid var(--line);box-shadow:0 1px 0 var(--line),0 6px 18px -12px rgba(21,20,15,.25)}
.mast-top{display:flex;align-items:center;gap:14px;padding:14px 22px;border-bottom:1px solid var(--line-soft);max-width:1320px;margin:0 auto}
.brand{display:flex;align-items:center;gap:11px;margin-right:auto}
.brand-mark{width:32px;height:32px;border-radius:8px;background:linear-gradient(155deg,var(--ink),var(--ink-soft));color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:17px;font-weight:600;flex:none;box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.12)}
.brand-name{font-family:var(--serif);font-size:18.5px;font-weight:600;letter-spacing:-.015em}
.brand-sub{font-size:10.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.12em;margin-top:2px}
.mast-actions{display:flex;align-items:center;gap:8px}
.pill{font-size:11px;padding:5px 11px;border-radius:100px;border:1px solid var(--line);background:var(--surface);color:var(--dim);display:flex;align-items:center;gap:6px;white-space:nowrap;box-shadow:var(--shadow-sm)}
.pill b{color:var(--ink);font-weight:600}
.dot-live{width:6px;height:6px;border-radius:50%;background:var(--pos);box-shadow:0 0 0 3px var(--pos-tint);flex:none;animation:pulse 2.2s ease-in-out infinite}
.dot-static{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
.theme-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center;transition:background .12s,transform .12s;box-shadow:var(--shadow-sm)}
.theme-btn:hover{background:var(--surface-2);transform:translateY(-1px)}
.compare-btn{font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .12s,transform .12s}
.compare-btn:hover{border-color:var(--accent-soft);transform:translateY(-1px)}
.cmp-pick-list{display:flex;flex-direction:column;gap:6px}
.cmp-pick-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:var(--surface-2);cursor:pointer;transition:background .12s,box-shadow .12s}
.cmp-pick-row:hover{background:var(--surface-3)}
.cmp-pick-row.checked{box-shadow:inset 0 0 0 1.5px var(--accent)}
.cmp-pick-row input{width:16px;height:16px;flex:none;accent-color:var(--accent)}
.cmp-pick-flag{font-size:16px;flex:none}
.cmp-pick-name{font-size:13px;font-weight:600;flex:1}
.cmp-pick-sym{font-family:var(--mono);font-size:10.5px;color:var(--dim)}
.cmp-pick-hint{font-size:11px;color:var(--dim);line-height:1.6;margin-top:12px}
.cmp-pick-divider{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);padding:12px 2px 4px;border-top:1px dashed var(--line);margin-top:6px}
.cmp-scroll{overflow-x:auto}
.cmp-table{width:100%;border-collapse:collapse;font-size:12.5px}
.cmp-table th,.cmp-table td{padding:12px 18px;text-align:left;border-bottom:1px solid var(--line-soft);white-space:nowrap;vertical-align:top}
.cmp-table thead th{background:var(--surface-2);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);position:sticky;left:0;z-index:1}
.cmp-table thead td{background:var(--surface-2);border-bottom:2px solid var(--line)}
.cmp-table tbody th{font-size:11px;color:var(--dim);font-weight:600;position:sticky;left:0;background:var(--surface);z-index:1;text-transform:uppercase;letter-spacing:.05em}
.cmp-table td{white-space:normal;min-width:150px}
.cmp-col-head{display:flex;flex-direction:column;gap:2px}
.cmp-col-flag{font-size:20px;line-height:1}
.cmp-col-sym{font-family:var(--mono);font-size:10px;color:var(--dim);font-weight:400}
.cmp-priv{color:var(--dim);font-style:italic;font-size:11.5px}
.cmp-close{margin-left:8px;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--dim);display:flex;align-items:center;justify-content:center;font-size:12px;flex:none}
.cmp-close:hover{background:var(--surface-2);color:var(--ink)}

.ticker-wrap{position:relative;overflow:hidden;background:var(--surface-2);border-bottom:1px solid var(--line)}
.ticker-wrap::before,.ticker-wrap::after{content:"";position:absolute;top:0;bottom:0;width:44px;z-index:2;pointer-events:none}
.ticker-wrap::before{left:0;background:linear-gradient(90deg,var(--surface-2),transparent)}
.ticker-wrap::after{right:0;background:linear-gradient(270deg,var(--surface-2),transparent)}
.ticker{display:flex;gap:0;animation:scroll 420s linear infinite;width:max-content}
.ticker-wrap:hover .ticker{animation-play-state:paused}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tick-item{display:flex;align-items:center;gap:7px;padding:7px 20px;border-right:1px solid var(--line);font-family:var(--mono);font-size:11.5px;white-space:nowrap}
.tick-sym{color:var(--dim);font-weight:500}
.tick-flag{font-size:12px}

.switcher{max-width:1320px;margin:0 auto;padding:14px 22px 0;display:flex;flex-direction:column;gap:10px}
.co-search-wrap{position:relative;max-width:480px}
.co-search-input{width:100%;font-family:var(--sans);font-size:13px;padding:10px 14px 10px 36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}
.co-search-input:focus{outline:none;border-color:var(--accent-soft);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent)}
.co-search-input::placeholder{color:var(--dim)}
.co-search-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:14px;pointer-events:none}
.co-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);z-index:50;padding:6px}
.co-result-group{margin-bottom:4px}
.co-result-group:last-child{margin-bottom:0}
.co-result-region{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-weight:600;padding:8px 10px 4px}
.co-result-row{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border-radius:7px;background:transparent;text-align:left;transition:background .1s}
.co-result-row:hover,.co-result-row.active{background:var(--surface-2)}
.co-result-flag{font-size:15px;flex:none}
.co-result-name{font-size:12.5px;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.co-result-sym{font-family:var(--mono);font-size:10.5px;color:var(--dim);flex:none}
.co-search-empty{padding:14px 12px;font-size:12px;color:var(--dim);font-style:italic}
.co-current{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.co-current-kick{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-weight:600}
.co-current-flag{font-size:17px;line-height:1}
.co-current-name{font-family:var(--serif);font-size:15px;font-weight:600}
.co-current-sym{font-family:var(--mono);font-size:11px;color:var(--dim)}
.co-current-region{font-size:10.5px;color:var(--dim);padding:2px 9px;border-radius:100px;border:1px solid var(--line);background:var(--surface)}

/* ===== shell ===== */
.shell{max-width:1320px;margin:0 auto;padding:26px 22px 80px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:26px}
@media (max-width:980px){.shell{grid-template-columns:1fr}}

.identity{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;margin-bottom:24px;box-shadow:var(--shadow-md)}
.id-top{display:flex;align-items:flex-start;gap:17px;flex-wrap:wrap}
.id-flag{font-size:38px;line-height:1;filter:drop-shadow(0 2px 4px rgba(21,20,15,.15))}
.id-name{font-family:var(--serif);font-size:30px;font-weight:600;letter-spacing:-.015em}
.id-meta{font-size:12.5px;color:var(--dim);margin-top:4px}
.id-badges{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.badge{font-size:10.5px;padding:4px 10px;border-radius:100px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;display:flex;align-items:center;gap:5px}
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.badge.status-public{background:var(--pos-tint);color:var(--pos)}
.badge.status-private{background:var(--warn-tint);color:var(--warn)}
.id-website{margin-top:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.id-website a{font-size:12.5px;font-weight:600;color:var(--accent);text-decoration:none}
.id-website a:hover{text-decoration:underline}
.id-website-note{font-size:10.5px;color:var(--dim);font-style:italic}
.id-verified{margin-top:9px;font-size:11px}
.id-verified-ok{color:var(--pos);font-weight:600}
.id-verified-none{color:var(--warn);font-style:italic;line-height:1.6;display:inline-block}
.id-vnote{margin-top:12px;padding:11px 13px;background:var(--warn-tint);border-radius:8px;font-size:12px;line-height:1.65;color:var(--ink-soft)}
.id-vnote-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--warn);margin-bottom:5px}
.mom-panel{margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)}
.mom-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-weight:600;margin-bottom:12px}
.mom-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.mom-cell{background:var(--surface-2);border-radius:8px;padding:12px 14px}
.mom-l{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim);margin-bottom:5px}
.mom-v{font-size:14px;font-weight:600;font-family:var(--mono)}
.mom-v.mom-up{color:var(--pos)}
.mom-v.mom-down{color:var(--neg)}
.mom-pos{color:var(--pos)}
.mom-neg{color:var(--neg)}
.mom-note{font-size:11px;color:var(--dim);margin-top:5px;font-family:var(--sans)}
.mom-foot{font-size:11px;color:var(--dim);line-height:1.6;margin-top:13px;font-style:italic}
.mom-latest{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:8px;margin-bottom:14px;background:var(--surface-2)}
.mom-latest-up{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--pos) 30%, transparent)}
.mom-latest-down{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--neg) 30%, transparent)}
.mom-latest-arrow{font-size:18px;flex:none}
.mom-latest-up .mom-latest-arrow{color:var(--pos)}
.mom-latest-down .mom-latest-arrow{color:var(--neg)}
.mom-latest-l{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);font-weight:600}
.mom-latest-t{font-size:12.5px;color:var(--ink);margin-top:2px;line-height:1.5}
.id-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:15px 22px;margin-top:19px;padding-top:19px;border-top:1px solid var(--line-soft)}
.fact-l{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--dim);margin-bottom:4px}
.fact-v{font-size:13.5px;font-weight:500}
.quote-row{display:flex;align-items:center;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft);flex-wrap:wrap}
.q-price{font-family:var(--mono);font-size:32px;font-weight:600;letter-spacing:-.01em}
.q-chg{font-family:var(--mono);font-size:14px;font-weight:600;padding:4px 10px;border-radius:7px}
.q-chg.up{background:var(--pos-tint);color:var(--pos)}
.q-chg.down{background:var(--neg-tint);color:var(--neg)}
.q-note{font-size:11.5px;color:var(--dim)}
.q-spark{margin-left:auto;flex:none}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .18s}
.card:hover{box-shadow:var(--shadow-md)}
.card-head{padding:17px 22px;border-bottom:1px solid var(--line-soft);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;background:linear-gradient(180deg,var(--surface),var(--surface) 60%,var(--surface-2))}
.card-num{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:700;background:var(--accent-tint);padding:3px 8px;border-radius:6px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent)}
.card-title{font-family:var(--serif);font-size:18px;font-weight:600;letter-spacing:-.005em}
.card-sub{font-size:11.5px;color:var(--dim);margin-left:auto;text-align:right}
.card-body{padding:21px 22px}

/* headlines */
.hl-row{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid var(--line-soft)}
.hl-row:last-child{border-bottom:none}
.hl-date{font-family:var(--mono);font-size:10.5px;color:var(--dim);white-space:nowrap;padding-top:2px;width:64px;flex:none}
.hl-body{min-width:0}
.hl-title{font-size:13.5px;font-weight:500;line-height:1.4;color:var(--ink)}
.hl-title:hover{color:var(--accent)}
.hl-src{font-size:11px;color:var(--dim);margin-top:3px;display:flex;gap:8px;align-items:center}
.hl-src .sep{opacity:.5}
.hl-reaction{font-family:var(--mono);font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:5px;margin-left:8px;cursor:help;white-space:nowrap}
.hl-reaction.up{background:var(--pos-tint);color:var(--pos)}
.hl-reaction.down{background:var(--neg-tint);color:var(--neg)}
.hl-reaction.neu{background:var(--surface-3);color:var(--dim)}
.hl-topic{font-size:10px;color:var(--dim);border:1px solid var(--line);border-radius:5px;padding:1px 6px;margin-left:6px;white-space:nowrap}
.kg-scroll{overflow-x:auto}
.kg{border-collapse:separate;border-spacing:3px;font-size:11px;min-width:640px}
.kg th{font-family:var(--mono);font-size:9.5px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;padding:2px 4px;text-align:center}
.kg th.kg-topic{text-align:left;font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:11.5px;color:var(--ink);white-space:nowrap;padding-right:10px}
.kg td{padding:0;text-align:center}
.kg-cell{display:block;width:100%;min-width:34px;height:26px;border:none;border-radius:4px;color:#fff;font-family:var(--mono);font-size:10.5px;font-weight:600;cursor:pointer;transition:transform .1s,filter .1s}
.kg-cell:hover{transform:scale(1.08);filter:brightness(1.1)}
.kg-cell span{text-shadow:0 1px 2px rgba(0,0,0,.5)}
.kg-cell.kg-empty{background:var(--surface-2);cursor:default;pointer-events:none}
.kg-tot{font-size:11px;color:var(--ink);white-space:nowrap;padding-left:8px !important;text-align:left !important}
.outlet-row{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:11.5px}
.outlet-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.outlet-bar{height:6px;border-radius:3px;background:var(--accent);opacity:.75}
.outlet-ct{font-family:var(--mono);font-size:10.5px;color:var(--dim);width:18px;text-align:right}
.hl-reaction-note{font-size:10.5px;color:var(--dim);line-height:1.6;padding-top:14px;margin-top:6px;border-top:1px solid var(--line-soft)}

/* chart */
.range-bar{display:flex;align-items:center;gap:14px;padding:13px 22px;border-bottom:1px solid var(--line-soft);background:var(--surface-2);flex-wrap:wrap}
.range-group{display:flex;gap:2px;background:var(--surface-3);border-radius:8px;padding:3px}
.range-btn{font-family:var(--mono);font-size:11.5px;padding:6px 12px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--dim);font-weight:600;transition:background .12s,color .12s,box-shadow .12s}
.range-btn:hover{color:var(--ink)}
.range-btn.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.range-flag{margin-left:auto;font-size:10.5px;color:var(--warn);display:flex;align-items:center;gap:5px}
.chart-wrap{position:relative;padding:18px 22px 4px;overflow-x:auto;overflow-y:hidden}
.chart-wrap svg{display:block}
.chart-scroll-hint{font-size:10.5px;color:var(--dim);padding:0 22px 8px;display:none}
.chart-scroll-hint.show{display:block}
.chart-legend{display:flex;gap:16px;padding:0 22px 14px;flex-wrap:wrap;font-size:11px;color:var(--dim)}
.chart-legend span{display:flex;align-items:center;gap:6px}
.lsw{width:10px;height:10px;border-radius:2px;display:inline-block}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--paper);border-radius:8px;padding:10px 13px;font-size:11.5px;opacity:0;transition:opacity .1s;z-index:10;box-shadow:var(--shadow-lg);min-width:150px}
.tip .d{font-weight:600;margin-bottom:6px;font-family:var(--mono);font-size:10.5px;opacity:.7;text-transform:uppercase;letter-spacing:.05em}
.tip .r{display:flex;justify-content:space-between;gap:14px;padding:1.5px 0}
.tip .r span{opacity:.65}
.tip .r b{font-family:var(--mono)}
.tip .cta{margin-top:7px;padding-top:7px;border-top:1px solid rgba(255,255,255,.18);font-size:10.5px;color:var(--accent-soft);font-weight:600}
.ax{font-family:var(--mono);font-size:9.5px;fill:var(--dim)}
.grid{stroke:var(--line-soft)}
.grid.mid{stroke:var(--line)}
.spot-ripple{stroke-width:1.6;opacity:.55;animation:spotPulse 1.8s ease-out infinite}
@keyframes spotPulse{0%{r:9;opacity:.6;stroke-width:2}75%{r:17;opacity:0;stroke-width:.5}100%{r:17;opacity:0;stroke-width:.5}}
@media (prefers-reduced-motion: reduce){.spot-ripple{animation:none;opacity:.3}}
.cg{cursor:pointer}
.cg.hovered .wick{stroke-width:2.2;filter:drop-shadow(0 0 2px currentColor)}
.cg.hovered>rect:not(.chit){filter:brightness(1.35)}
#chPriceTxt{dominant-baseline:middle}
.no-data{padding:18px 22px}
.no-data-box{background:var(--surface-2);border:1px dashed var(--line);border-radius:8px;padding:16px 18px;font-size:12.5px;color:var(--dim);line-height:1.6}
.no-data-box b{color:var(--ink);font-family:var(--serif);font-size:14px;font-weight:600}
.cov-chart-wrap{padding:4px 22px 6px;overflow-x:auto;position:relative}
.cov-bar-g{cursor:pointer}
.cov-bar{transition:opacity .12s,filter .12s}
.cov-bar-g:hover .cov-bar,.cov-bar-g:focus .cov-bar{opacity:1 !important;filter:brightness(1.15)}
.cov-bar-g:focus{outline:none}
.cov-chart-legend{display:flex;gap:16px;padding:10px 22px 18px;flex-wrap:wrap;font-size:11px;color:var(--dim)}
.cov-chart-legend span{display:flex;align-items:center;gap:6px}
.sig-empty{font-size:12px;color:var(--dim);font-style:italic;padding:10px 2px 0;line-height:1.6}
.si-panel{background:#000;border-radius:10px;padding:16px 14px 8px;margin:0 22px 10px;color:#eee;box-shadow:inset 0 0 0 1px #1a1a1a}
.si-title{text-align:center}
.si-t1{font-family:var(--sans);font-size:19px;font-weight:700;color:#f4f4f4;letter-spacing:-.01em}
.si-t2{font-family:var(--sans);font-size:15px;font-weight:600;color:#dedede;margin-top:1px}
.si-zoom{display:flex;align-items:center;gap:8px;margin:16px 0 6px;font-size:12px;color:#9a9a9a}
.si-zoom-l{font-family:var(--sans);font-size:12.5px;color:#a8a8a8;margin-right:2px}
.si-zoom .range-group{background:transparent;padding:0;gap:4px}
.si-zoom .range-btn{background:#1f1f1f;color:#d0d0d0;border:1px solid #333;padding:4px 9px;border-radius:3px;font-family:var(--sans);font-size:12px}
.si-zoom .range-btn:hover{background:#2a2a2a;color:#fff}
.si-zoom .range-btn.active{background:#3a4660;color:#fff;border-color:#4b5b7c;box-shadow:none}
.si-range{margin-left:auto;font-family:var(--sans);font-size:12.5px;color:#5b8def}
.si-auto{color:#8a8a8a;font-size:11px}
.si-panel .cov-chart-wrap{padding:0;margin-top:4px;overflow-y:hidden}
#siNav{margin-top:6px;overflow:hidden}
.si-nav-win{cursor:grab}
.si-nav-win:active{cursor:grabbing}
.si-credit{font-family:var(--mono);font-size:9.5px;color:#6a6a6a;text-align:right;margin-top:6px}
.si-panel .tip{background:#f7f7f7;color:#111;border:1px solid #d23a2f;box-shadow:0 8px 24px rgba(0,0,0,.55)}
.si-panel .tip .d{opacity:1;color:#111}.si-panel .tip .r span{opacity:.72}.si-panel .tip .r b{color:#111}.si-panel .tip .r b.up{color:#1f8f38}.si-panel .tip .r b.down{color:#c8281f}
.si-panel .tip .cta{border-top-color:rgba(0,0,0,.14);color:#b3371f}
.si-howto{flex-basis:100%;font-size:12.5px;color:var(--ink-soft);line-height:1.65;background:var(--surface-2);border-radius:8px;padding:12px 14px}
.si-howto>b{color:var(--ink);font-family:var(--serif);font-size:14px}
.si-howto ul{margin:8px 0 0;padding-left:18px}.si-howto li{margin:3px 0}.si-howto li b{color:var(--ink)}
.cov-chart-legend .si-howto .si-sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:middle;gap:0}
.si-howto-note{margin-top:8px;font-size:11px;color:var(--dim)}
.pf-badge{font-family:var(--mono);font-size:9.5px;border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--dim);margin-right:5px;text-transform:capitalize}
.si-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
@media (max-width:820px){.si-side{grid-template-columns:1fr}}
.sis-sec{background:#0d0d11;border:1px solid #1f1f26;border-radius:8px;padding:10px 12px;color:#d8d8d8;font-size:11.5px;line-height:1.5;min-width:0}
.sis-k{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;color:#8e8e9a;text-transform:uppercase;margin-bottom:6px}
.sis-row{display:flex;justify-content:space-between;gap:8px;padding:2px 0;min-width:0}
.sis-row>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sis-row b{font-family:var(--mono);font-weight:600;white-space:nowrap}
.sis-bar{display:inline-block;height:5px;border-radius:3px;background:#3b5bdb;opacity:.85}
.sis-flag{display:block;color:#eee;text-decoration:none;padding:4px 0;border-bottom:1px solid #1c1c22;font-size:11px;line-height:1.35}
a.sis-flag:hover{color:#fff;text-decoration:underline}
.sis-flag:last-of-type{border-bottom:none}
.sis-flag small{display:block;color:#8e8e9a;font-family:var(--mono);font-size:9.5px;margin-top:1px}
.sis-empty{color:#6f6f7a;font-style:italic;font-size:10.5px}
.sis-up{color:#2fbf4a}.sis-down{color:#e3312d}
.sis-fr{padding:5px 0;border-bottom:1px solid #1c1c22}.sis-fr:last-of-type{border-bottom:none}
.sis-handle{display:flex;align-items:center;gap:5px;color:#cfd6e6;text-decoration:none;font-size:10.5px;margin-top:3px}
.sis-handle:hover{color:#fff;text-decoration:underline}
.sis-handle b{margin-left:auto;font-family:var(--mono);font-weight:600;color:#8e8e9a;white-space:nowrap}
.sis-primary{font-style:normal;font-size:9px;background:#13241a;color:#8fd6a2;border-radius:3px;padding:1px 5px;margin-left:5px;white-space:nowrap}
.sis-mtitle{font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:#8e8e9a;text-transform:uppercase;margin:6px 0 2px}
.sis-mention{display:block;color:#d8d8d8;text-decoration:none;font-size:10.5px;line-height:1.35;padding:3px 0}
.sis-mention:hover{color:#fff;text-decoration:underline}
.sis-mention small{display:block;color:#8e8e9a;font-size:9.5px;margin-top:1px}
.sis-note{background:#2a2313;color:#d9b559;border-radius:6px;padding:6px 8px;font-size:10.5px;line-height:1.4;margin-bottom:6px}
.sis-cov{font-size:10.5px;line-height:1.45;border-radius:6px;padding:6px 8px;margin:0 0 8px}
.sis-cov b{display:block;font-size:11px;margin-bottom:1px}
.sis-cov-fresh{background:#13241a;color:#8fd6a2}.sis-cov-quiet{background:#20201a;color:#c9c2a8}
.sis-cov-dormant{background:#2a2313;color:#d9b559}.sis-cov-none{background:#2a1a14;color:#e8a08f}
.cov-pill{font-family:var(--mono);font-size:9.5px;padding:2px 6px;border-radius:4px;white-space:nowrap}
.cov-fresh{background:var(--pos-tint);color:var(--pos)}.cov-quiet{background:var(--surface-3);color:var(--dim)}
.cov-dormant{background:var(--warn-tint);color:var(--warn)}.cov-none{background:var(--neg-tint);color:var(--neg)}
.cmp-table.board td,.cmp-table.board th{padding:9px 12px;font-size:12px}
.cmp-table.board td{white-space:nowrap;min-width:0}
.board-th{cursor:pointer;user-select:none}.board-th.on{color:var(--ink)}
.board-row{cursor:pointer}.board-row:hover td{background:var(--surface-2)}
.board-name b{font-weight:600}.board-sector{font-size:10.5px;color:var(--dim);white-space:normal;max-width:220px}
.board-modes{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:12px;background:var(--surface-3);padding:3px;border-radius:8px;width:fit-content}
.board-fl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:7px}
.board-fl-l{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);min-width:52px}
.board-agg{cursor:pointer}
.cmp-table.board td.up{color:var(--pos)}.cmp-table.board td.down{color:var(--neg)}
.sig-bar{transform-box:fill-box;animation:siGrow .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0)*14ms)}
.cov-bar-g rect,.cov-bar-g line{transition:opacity .12s,filter .12s}
#covChartWrap:hover .cov-bar-g:not(.col-on) rect.sig-bar,#covChartWrap:hover .cov-bar-g:not(.col-on) rect.vol-bar{opacity:.42}
.cov-bar-g.col-on rect.sig-bar,.cov-bar-g.col-on rect.vol-bar{opacity:1;filter:brightness(1.35)}
.vol-bar{transform-box:fill-box;animation:siGrow .45s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0)*14ms + 60ms)}
@keyframes siGrow{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}
.si-ix{stroke-dasharray:1;stroke-dashoffset:1;animation:siDraw 1.3s ease-out .15s forwards}
@keyframes siDraw{to{stroke-dashoffset:0}}
.si-nomotion .sig-bar,.si-nomotion .si-ix{animation:none;stroke-dashoffset:0;opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.sig-bar,.si-ix{animation:none;stroke-dashoffset:0;opacity:1;transform:none}}
#covTip{max-width:260px}
#covTip .r b.up{color:var(--pos)}#covTip .r b.down{color:var(--neg)}

/* coverage gap */
.gap-note{font-size:13px;line-height:1.7;color:var(--ink-soft)}
.gap-note b{color:var(--ink)}
.gap-links{margin-top:16px;display:flex;flex-direction:column;gap:9px}
.gap-link{display:flex;align-items:center;gap:9px;font-size:12.5px;padding:10px 12px;background:var(--surface-2);border-radius:8px}
.gap-link .ico{font-family:var(--mono);font-size:10px;color:var(--accent);flex:none}
.arrival-glossary{margin:0 0 16px;font-size:12px;color:var(--ink-soft);background:var(--surface-2);border-radius:8px;padding:11px 13px}
.arrival-glossary summary{cursor:pointer;font-weight:600;color:var(--accent);list-style:none}
.arrival-glossary summary::-webkit-details-marker{display:none}
.arrival-glossary summary::before{content:"+  ";display:inline-block;font-weight:700}
.arrival-glossary[open] summary::before{content:"-  "}
.arrival-glossary dl{margin:11px 0 0;display:flex;flex-direction:column;gap:9px}
.arrival-glossary dt{font-weight:600;color:var(--ink);font-size:11.5px}
.arrival-glossary dd{margin:2px 0 0;font-size:11.5px;line-height:1.6;color:var(--dim)}
.arrival-list{margin-top:4px;display:flex;flex-direction:column;gap:8px}
.arrival-row{background:var(--surface-2);border-radius:8px;overflow:hidden;transition:box-shadow .12s}
.arrival-row.current{box-shadow:inset 0 0 0 1.5px var(--accent)}
.arrival-row-head{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:11px 12px;background:transparent;border:none;cursor:pointer;font-family:inherit;color:inherit}
.arrival-flag{font-size:17px;flex:none}
.arrival-chevron{flex:none;color:var(--dim);font-size:11px;transition:transform .15s}
.arrival-row.expanded .arrival-chevron{transform:rotate(180deg)}
.arrival-row-body{padding:0 14px 14px 41px}
.arrival-plain{font-size:12.5px;line-height:1.65;color:var(--ink-soft);margin:0 0 9px}
.arrival-plain b{color:var(--ink)}
.arrival-plain:last-of-type{margin-bottom:11px}
.events-list{margin-top:18px;display:flex;flex-direction:column;gap:0}
.ev-row{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft)}
.ev-row:last-child{border-bottom:none}
.ev-date{font-family:var(--mono);font-size:10.5px;color:var(--dim);width:62px;flex:none;padding-top:3px}
.ev-kind{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:2px 7px;border-radius:5px;flex:none;height:fit-content;white-space:nowrap}
.ev-text{font-size:12.5px;color:var(--ink-soft);flex:1}
.ev-period{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.05em;color:var(--dim);background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:2px 6px;flex:none;height:fit-content;white-space:nowrap}
.gap-filter-hint{font-size:11px;color:var(--dim);line-height:1.6;margin-top:2px;margin-bottom:12px}
.gap-filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.gap-filter-btn{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;font-weight:600;padding:6px 11px;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--dim);transition:border-color .12s,background .12s,color .12s}
.gap-filter-btn:hover{border-color:var(--accent-soft);color:var(--ink)}
.gap-filter-btn.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.gap-filter-ct{font-size:10px;padding:1px 5px;border-radius:100px;background:color-mix(in srgb, currentColor 16%, transparent);min-width:16px;text-align:center}

/* power map */
.pm-caveat{background:var(--warn-tint);border-radius:8px;padding:11px 14px;font-size:12px;color:var(--ink-soft);line-height:1.6;margin-bottom:16px;display:flex;gap:9px}
.pm-caveat::before{content:"!";color:var(--warn);flex:none;font-size:13px;line-height:1.5;font-weight:700}
.pm-caveat b{color:var(--warn)}
.pm-titlebar{display:flex;align-items:baseline;justify-content:flex-end;gap:12px;padding:13px 20px;border-bottom:1px solid var(--gx-line)}
.pm-titlebar-sub{font-family:var(--mono);font-size:10px;letter-spacing:.09em;color:var(--gx-dim)}
.pm-layout{
  --gx-bg:#0a0a10; --gx-bg2:#13141c; --gx-line:#282b38; --gx-ink:#f1efe9; --gx-dim:#84869a;
  --gx-founder:#e0965a; --gx-board:#6fa8d6; --gx-exec:#6fbb96; --gx-advisor:#d4ab5e; --gx-org:#9a94c9;
  --gx-signal:#e8873f; --gx-signal-dim:#a35a2a;
  display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid var(--gx-line);border-radius:10px;overflow:hidden;box-shadow:var(--shadow-md),0 0 0 1px rgba(232,135,63,.04);background:var(--gx-bg2)
}
.pm-layout-main{display:grid;grid-template-columns:minmax(0,1fr) 264px}
@media (max-width:760px){.pm-layout-main{grid-template-columns:1fr}}
.pm-canvas{position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 700px 520px at 50% 44%, #1c1f2c 0%, #12141d 46%, var(--gx-bg) 78%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.015) 0px, rgba(255,255,255,.015) 1px, transparent 1px, transparent 3px);
}
.pm-canvas::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.05) 0.6px, transparent 0.6px);
  background-size:26px 26px;background-position:-6px -6px;
  mask-image:radial-gradient(ellipse 60% 55% at 50% 44%, #000 0%, transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 60% 55% at 50% 44%, #000 0%, transparent 78%);
}
.pm-canvas svg{width:100%;height:auto;display:block;position:relative}
.pm-side{background:var(--gx-bg2);border-left:1px solid var(--gx-line);padding:20px;display:flex;flex-direction:column;min-height:340px;color:var(--gx-ink)}
@media (max-width:760px){.pm-side{border-left:none;border-top:1px solid var(--gx-line)}}
.pm-side-kick{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gx-dim);font-weight:600;margin-bottom:11px}
.pm-side-empty{font-size:12.5px;color:var(--gx-dim);font-style:italic;line-height:1.65}
.pm-side-name{font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.25;color:var(--gx-ink)}
.pm-side-role{font-size:12px;color:var(--gx-dim);font-weight:500;margin-top:4px}
.pm-side-tag{display:inline-flex;align-items:center;gap:5px;font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;padding:4px 9px 4px 7px;border-radius:20px;margin-top:12px;width:fit-content;border:1px solid color-mix(in srgb, currentColor 45%, transparent);background:color-mix(in srgb, currentColor 12%, transparent)}
.pm-side-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;box-shadow:0 0 6px currentColor}
.pm-side-desc{font-size:12.5px;line-height:1.7;color:var(--gx-dim);margin-top:15px}
.pm-side-cross{margin-top:15px;padding-top:15px;border-top:1px solid var(--gx-line)}
.pm-side-note{margin-top:auto;padding-top:14px;font-size:11.5px;color:var(--gx-dim);line-height:1.6}
.pm-side-note b{color:var(--warn)}
.pm-sourcing{background:linear-gradient(160deg,#181c26,#141821);border:1px solid var(--gx-line);border-radius:8px;padding:13px 14px;font-size:11px;line-height:1.65;color:var(--gx-dim);margin-top:18px;position:relative}
.pm-sourcing b{color:var(--gx-ink);font-weight:600}
.pm-legend{display:flex;gap:16px;padding:11px 16px;flex-wrap:wrap;font-size:10px;color:var(--gx-dim);border-top:1px solid var(--gx-line);background:var(--gx-bg2)}
.pm-legend span{display:flex;align-items:center;gap:6px}
.pm-lsw{width:9px;height:9px;border-radius:50%;display:inline-block;box-shadow:0 0 5px currentColor, inset 0 0 0 1px rgba(255,255,255,.25)}
.pm-lsw.ring{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, currentColor 55%, transparent), color-mix(in srgb, currentColor 18%, transparent) 70%);border:1.3px solid currentColor}
.pm-lsw.dash{background:none;border-top:1.4px dashed currentColor;width:12px;height:0;border-radius:0;box-shadow:none}
.pm-node-group{cursor:pointer}
.pm-node-group:focus{outline:none}
.pm-node-group .pm-orbit{fill:none;stroke:currentColor;opacity:.14;stroke-dasharray:1 4.5}
.pm-orbit-ring{pointer-events:none}
.pm-node-group .pm-halo{transition:opacity .25s;opacity:0}
.pm-node-group .pm-outline{transition:opacity .2s,stroke-width .2s;opacity:0}
.pm-node-group .pm-label{opacity:.92;transition:opacity .15s}
.pm-node-group .pm-role-label{opacity:.58;transition:opacity .15s}
.pm-node-group:hover .pm-halo,.pm-node-group.selected .pm-halo,.pm-node-group.related .pm-halo{opacity:.5}
.pm-node-group:hover .pm-outline,.pm-node-group.selected .pm-outline,.pm-node-group.related .pm-outline{opacity:1;stroke-width:1.8}
.pm-node-group:hover .pm-label,.pm-node-group.selected .pm-label,.pm-node-group.related .pm-label{opacity:1}
.pm-node-group:hover .pm-role-label,.pm-node-group.selected .pm-role-label,.pm-node-group.related .pm-role-label{opacity:.85}
.pm-node-group.selected .pm-outline{stroke-width:2;filter:drop-shadow(0 0 6px var(--nc)) drop-shadow(0 0 14px color-mix(in srgb, var(--nc) 60%, transparent))}
.pm-node-group.selected .pm-core{filter:brightness(1.15)}
.pm-label{font-family:var(--sans);font-weight:600;pointer-events:none;fill:#eef0f6;paint-order:stroke;stroke:#0a0a10;stroke-width:3.5px;stroke-linejoin:round}
.pm-role-label{font-family:var(--sans);font-weight:400;font-style:italic;pointer-events:none;fill:#9a9cae;paint-order:stroke;stroke:#0a0a10;stroke-width:3.5px;stroke-linejoin:round}
.pm-center-label{font-family:var(--serif);font-weight:600;pointer-events:none;fill:#f8f6ee;text-anchor:middle}
.pm-center-sub{font-family:var(--mono);font-weight:500;pointer-events:none;fill:#a3a6ba;text-anchor:middle;letter-spacing:.09em;text-transform:uppercase}
.pm-node-group,.pm-edge,.pm-tether{transition:opacity .3s}
.pm-canvas.tracing .pm-node-group{opacity:.14}
.pm-canvas.tracing .pm-node-group.selected,.pm-canvas.tracing .pm-node-group.related{opacity:1}
.pm-canvas.tracing .pm-edge,.pm-canvas.tracing .pm-tether{opacity:.04}
.pm-canvas.tracing .pm-edge.active,.pm-canvas.tracing .pm-tether.active{opacity:1;stroke:var(--gx-signal);stroke-width:1.8;filter:drop-shadow(0 0 5px var(--gx-signal))}
.pm-tether{stroke-dasharray:1 4;stroke-linecap:round;animation:pmTetherBreathe 5.5s ease-in-out infinite}
.pm-tether:nth-of-type(2n){animation-delay:-2.2s}
.pm-tether:nth-of-type(3n){animation-delay:-3.8s}
@keyframes pmTetherBreathe{0%,100%{opacity:.35}50%{opacity:.68}}
@media (prefers-reduced-motion: reduce){.pm-tether{animation:none;opacity:.5}}
.pm-flow-dot{fill:#fff;filter:drop-shadow(0 0 3px currentColor)}
.pm-center-ring{fill:none;stroke:var(--gx-signal);opacity:.28;animation:pmCenterPulse 3.4s ease-in-out infinite}
@keyframes pmCenterPulse{0%,100%{opacity:.16;stroke-width:1}50%{opacity:.4;stroke-width:1.6}}
@media (prefers-reduced-motion: reduce){.pm-center-ring{animation:none;opacity:.22}}
.pm-ping{fill:none;stroke-width:1.6;opacity:.85;animation:pmPing 1.2s cubic-bezier(.19,1,.22,1) forwards;pointer-events:none;filter:drop-shadow(0 0 5px currentColor)}
@keyframes pmPing{from{r:11;opacity:.75}to{r:34;opacity:0}}
@media (prefers-reduced-motion: reduce){.pm-ping{animation:none;display:none}}
.pm-hint{font-size:11.5px;color:var(--dim);margin-bottom:12px;display:flex;align-items:center;gap:6px}
.pm-hint::before{content:"->";color:var(--accent);font-weight:700}
.pm-conn-row{display:flex;align-items:center;gap:9px;padding:9px 11px;background:linear-gradient(160deg,#191d27,#151822);border:1px solid var(--gx-line);border-radius:6px;margin-bottom:6px;cursor:pointer;transition:background .12s,border-color .12s,transform .12s}
.pm-conn-row:hover{background:linear-gradient(160deg,#1f2430,#191d27);border-color:#3f4658;transform:translateX(2px)}
.pm-conn-dot{width:8px;height:8px;border-radius:50%;flex:none;box-shadow:0 0 5px currentColor}
.pm-conn-name{font-size:12px;font-weight:600;color:var(--gx-ink)}
.pm-conn-role{font-size:10.5px;color:var(--gx-dim)}
.pm-side .gap-link{background:#161920;color:var(--gx-ink)}
.pm-lookup{display:flex;flex-direction:column;gap:6px}
.pm-lookup-link{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;color:var(--gx-ink);text-decoration:none;padding:9px 11px;border-radius:6px;background:linear-gradient(160deg,#191d27,#141821);border:1px solid var(--gx-line);transition:background .14s,border-color .14s,transform .14s}
.pm-lookup-link:hover{background:linear-gradient(160deg,#20242f,#191d27);border-color:color-mix(in srgb, var(--gx-signal) 45%, var(--gx-line));transform:translateX(2px)}
.pm-lookup-ico{width:16px;height:16px;flex:none;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;font-family:var(--sans);color:#fff}
.pm-lookup-link[data-ico="in"] .pm-lookup-ico{background:#0a66c2}
.pm-lookup-link[data-ico="in"] .pm-lookup-ico::before{content:"in"}
.pm-lookup-link[data-ico="x"] .pm-lookup-ico{background:#15181d;border:1px solid #3a3f4a}
.pm-lookup-link[data-ico="x"] .pm-lookup-ico::before{content:"X";font-size:9px;font-family:Georgia,serif}
.pm-lookup-link[data-ico="fb"] .pm-lookup-ico{background:#1877f2}
.pm-lookup-link[data-ico="fb"] .pm-lookup-ico::before{content:"f"}
.pm-lookup-link[data-ico="gn"] .pm-lookup-ico,.pm-lookup-link[data-ico="gl"] .pm-lookup-ico{background:linear-gradient(135deg,#4285f4,#34a853 33%,#fbbc05 66%,#ea4335);color:#0a0a10}
.pm-lookup-link[data-ico="gn"] .pm-lookup-ico::before,.pm-lookup-link[data-ico="gl"] .pm-lookup-ico::before{content:"G"}
.pm-lookup-link[data-ico="nyt"] .pm-lookup-ico{background:#000}
.pm-lookup-link[data-ico="nyt"] .pm-lookup-ico::before{content:"T";font-family:Georgia,serif;font-size:11px}
.pm-lookup-arrow{margin-left:auto;color:var(--gx-dim);font-size:11px;transition:transform .14s,color .14s}
.pm-lookup-link:hover .pm-lookup-arrow{color:var(--gx-signal);transform:translate(1px,-1px)}
.pm-lookup-hint{font-size:10px;line-height:1.55;color:#5c6070;margin-top:2px;font-style:italic}

/* right rail */
.rail{display:flex;flex-direction:column;gap:16px}
@media (max-width:980px){.rail{order:-1}}
.rail-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:17px 19px;box-shadow:var(--shadow-sm);transition:box-shadow .18s}
.rail-card:hover{box-shadow:var(--shadow-md)}
.rail-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin-bottom:11px;font-weight:600}
.rail-stat{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:12px}
.rail-stat:last-child{border-bottom:none}
.rail-stat b{font-family:var(--mono);font-weight:600}
.thesis-quote{font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--ink-soft)}
.founders-line{font-size:12px;color:var(--ink-soft);line-height:1.6}
.founders-line b{color:var(--ink)}

/* modal */
.ov{position:fixed;inset:0;background:rgba(15,14,10,.55);backdrop-filter:blur(3px);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.ov.show{display:flex}
.modal.wide{max-width:min(1120px,96vw)}
.modal{background:var(--surface);border-radius:14px;max-width:560px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--line)}
.modal-head{padding:20px 24px;border-bottom:1px solid var(--line-soft);position:sticky;top:0;background:var(--surface);z-index:1}
.m-kick{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--accent);font-weight:700}
.m-date{font-family:var(--serif);font-size:20px;font-weight:600;margin-top:4px}
.m-close{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--dim)}
.m-close:hover{background:var(--surface-2)}
.mo{display:flex;gap:18px;padding:14px 24px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap;background:var(--surface-2)}
.mo span{font-size:11px;color:var(--dim);display:flex;flex-direction:column;gap:2px}
.mo span b{font-family:var(--mono);font-size:14px;color:var(--ink);font-weight:600}
.modal-body{padding:18px 24px 24px}
.m-sec-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin:16px 0 9px;font-weight:600}
.m-sec-title:first-child{margin-top:0}
.m-link{display:flex;align-items:center;gap:9px;padding:11px 13px;background:var(--surface-2);border-radius:8px;font-size:12.5px;margin-bottom:7px}
.m-link:hover{background:var(--surface-3)}
.m-jump{font-size:11px;font-weight:600;color:var(--accent);text-decoration:none;padding-left:22px}
.m-jump:hover{text-decoration:underline}
.m-summary{font-family:var(--mono);font-size:14px;font-weight:600;margin-top:8px}
.m-summary.up{color:var(--pos)}
.m-summary.down{color:var(--neg)}
.m-searchrow{display:flex;align-items:center;gap:10px;padding:11px 13px;background:var(--surface-2);border-radius:8px;font-size:12.5px;font-weight:600;margin-bottom:7px;text-decoration:none;color:var(--ink);transition:background .12s}
.m-searchrow:hover{background:var(--surface-3)}
.m-searchrow.accent{background:var(--accent-tint);color:var(--accent)}
.m-searchrow.accent:hover{background:color-mix(in srgb, var(--accent-tint) 70%, var(--accent) 15%)}
.m-searchrow .ico{color:var(--accent);font-family:var(--mono);font-size:10px;flex:none}
.m-sr-label{display:flex;flex-direction:column;gap:2px}
.m-sr-range{font-family:var(--mono);font-size:10.5px;font-weight:400;color:var(--dim)}
.m-link .ico{color:var(--accent);font-family:var(--mono);font-size:10px;flex:none}
.m-search{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;background:var(--ink);color:var(--paper);border-radius:7px;font-size:12px;font-weight:600;text-decoration:none;margin-right:8px;margin-bottom:8px}
.m-search:hover{background:var(--accent)}
.m-empty{font-size:12.5px;color:var(--dim);font-style:italic;padding:8px 0}

/* node detail modal */
.node-modal .m-role{font-size:12.5px;color:var(--accent);font-weight:600;margin-top:2px}
.node-modal .m-desc{font-size:13px;line-height:1.65;color:var(--ink-soft);margin-top:14px}
.node-tag{display:inline-block;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:3px 8px;border-radius:5px;margin-top:10px}

footer{max-width:1320px;margin:0 auto;padding:0 22px 40px;font-size:11px;color:var(--dim);text-align:center;line-height:1.7}
footer a{color:var(--accent);text-decoration:none}

@media (max-width:640px){
  .id-name{font-size:21px}
  .q-price{font-size:23px}
  .card-body{padding:16px}
}
/* Narrow viewports ---------------------------------------------------------
   The charts are drawn by JS at a fixed pixel width and cannot reflow. The
   single-column grid above uses `1fr`, which resolves to minmax(auto, 1fr) --
   and that `auto` floor is the content width, so one 856px chart widened the
   whole track to 930px and scrolled the entire page sideways on a phone.
   minmax(0,1fr) lets the track shrink to the viewport; the chart then scrolls
   inside its own card instead of dragging the layout with it. */
@media (max-width:980px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .shell > *{min-width:0}
  main,.identity,.card,.card-body{min-width:0;max-width:100%}
  /* Wide, non-reflowable blocks scroll within their own container. */
  .card-body,.kg-wrap,.cmp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* The masthead buttons sit on one line at desktop width; let them wrap. */
  .mast-actions{flex-wrap:wrap;justify-content:flex-start}
}

/* The ticker strip is deliberately many thousands of px wide -- it is animated
   by transform. Its wrapper must clip it at every width, or the marquee
   contributes its full length to the document scroll width. */
.ticker-wrap{overflow:hidden;max-width:100%}


/* Chart crosshair ----------------------------------------------------------
   Was a solid full-height #fff line, which read as a page divider and drew the
   eye harder than the data it was pointing at. Now a thin dashed guide of the
   kind a charting terminal uses: present enough to track a column, quiet
   enough to stay behind the bars. The halo underneath keeps the 1px line
   legible where it crosses a bright bar without making it thicker. */
.si-cross-halo{stroke:rgba(0,0,0,.55);stroke-width:3.5;stroke-linecap:round}
.si-cross-line{stroke:rgba(255,255,255,.62);stroke-width:1;stroke-dasharray:3 4;stroke-linecap:round}
.si-cross-pill{fill:#f2f2f0;stroke:rgba(0,0,0,.35);stroke-width:.5}
.si-cross-label{font-family:var(--sans);font-size:10.5px;font-weight:600;fill:#1a1a1a;letter-spacing:.01em}

/* Clickability ------------------------------------------------------------
   Every column opens a modal listing that day's items, but nothing said so.
   The hovered column now gets a soft tinted backdrop the full height of the
   plot, so the hit target is visible rather than guessed at, plus a keyboard
   focus ring for the same target. */
.cov-hit{fill:transparent;transition:fill .12s}
.cov-bar-g:hover .cov-hit{fill:rgba(255,255,255,.055)}
.cov-bar-g:focus-visible .cov-hit{fill:rgba(255,255,255,.08);stroke:var(--accent-soft);stroke-width:1;stroke-dasharray:2 2}
.cov-bar-g:active .cov-hit{fill:rgba(255,255,255,.1)}

/* "click for detail" hint, shown on the hovered column only */
.cov-click-hint{font-family:var(--sans);font-size:9.5px;fill:rgba(255,255,255,.62);opacity:0;transition:opacity .12s;pointer-events:none;letter-spacing:.04em}
.cov-bar-g:hover .cov-click-hint,.cov-bar-g:focus-visible .cov-click-hint{opacity:1}

/* The tooltip is information, not a control -- say what a click will do. */
.si-panel .tip .tip-click{margin-top:8px;padding-top:7px;border-top:1px solid rgba(0,0,0,.14);font-size:10.5px;font-weight:600;color:#b3371f;display:flex;align-items:center;gap:5px}

/* Board filters: native selects ------------------------------------------
   Replaced three rows of chip buttons (12 regions x 12 sectors x 9 stages
   wrapped into a wall). A real <select> gets OS keyboard handling, type-ahead
   and the mobile picker wheel for free, which a div-based menu has to fake. */
.board-fl{display:inline-flex;align-items:center;gap:7px;margin:0 14px 8px 0}
.board-sel{font-family:var(--sans);font-size:12px;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:7px;padding:5px 26px 5px 9px;cursor:pointer;
  appearance:none;-webkit-appearance:none;box-shadow:var(--shadow-sm);
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23736c58' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center;
  transition:border-color .12s,box-shadow .12s}
.board-sel:hover{border-color:var(--accent-soft)}
.board-sel:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}

/* Board -> single company ------------------------------------------------- */
.bf-top{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.bf-back{font-family:var(--sans);font-size:11.5px;color:var(--dim);background:none;border:none;
  padding:0 0 8px;cursor:pointer;transition:color .12s}
.bf-back:hover{color:var(--accent)}
.bf-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.bf-flag{font-size:22px;line-height:1}
.bf-name{font-family:var(--serif);font-size:21px;font-weight:600;letter-spacing:-.015em}
.bf-tag{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;
  color:var(--dim);border:1px solid var(--line);border-radius:100px;padding:2px 8px}
.bf-sub{font-size:12px;color:var(--dim);margin-top:4px}
.bf-what{font-size:13px;line-height:1.6;margin-bottom:14px;color:var(--ink-soft)}

.bf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}
.bf-cell{background:var(--surface-2);border-radius:8px;padding:9px 11px}
.bf-l{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim)}
.bf-v{font-size:14px;font-weight:600;margin-top:3px}
.bf-v small{font-weight:400;font-size:11px;color:var(--dim)}

/* Research note reuses the identity card's existing .id-vnote treatment
   (tinted ground, no side rule) rather than inventing a second style for the
   same content. */

.bf-sec{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;
  color:var(--dim);margin:16px 0 7px}
.bf-item{display:flex;align-items:baseline;gap:8px;padding:7px 0;border-bottom:1px solid var(--line-soft);
  font-size:12.5px;text-decoration:none;color:inherit;transition:background .12s}
.bf-item:hover{background:var(--surface-2)}
.bf-item small{margin-left:auto;font-size:10.5px;color:var(--dim);white-space:nowrap}
.bf-it{flex:1;min-width:0}
.bf-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--dim)}
.bf-dot.positive{background:var(--pos)}
.bf-dot.negative{background:var(--neg)}
.bf-empty{font-size:12px;color:var(--dim);font-style:italic}

.bf-person{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;font-size:12.5px}
.bf-person small{color:var(--dim);font-size:10.5px}
.bf-handle{font-size:10.5px;border:1px solid var(--line);border-radius:100px;padding:2px 9px;
  text-decoration:none;color:var(--dim);transition:border-color .12s,color .12s}
.bf-handle:hover{border-color:var(--accent-soft);color:var(--accent)}
.bf-actions{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}

/* Dashboard ---------------------------------------------------------------- */
.db-head{margin-bottom:16px}
.db-h1{font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:-.02em}
.db-sub{font-size:12px;color:var(--dim);margin-top:3px}

.db-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:9px;margin-bottom:18px}
.db-m{background:var(--surface-2);border-radius:9px;padding:12px 13px}
.db-mv{font-family:var(--mono);font-size:21px;font-weight:600;letter-spacing:-.02em}
.db-mv small{font-size:12px;font-weight:400;color:var(--dim)}
.db-ml{font-size:10.5px;color:var(--dim);margin-top:2px}

.db-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.db-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 15px;margin-bottom:12px}
.db-wide{grid-column:1/-1}
.db-k{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim);margin-bottom:8px}
.db-k small{text-transform:none;letter-spacing:0;font-family:var(--sans);opacity:.8}
.db-row{display:flex;align-items:baseline;gap:9px;padding:5px 0;border-bottom:1px solid var(--line-soft);font-size:12.5px}
.db-row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.db-row b{font-family:var(--mono);font-size:12.5px}
.db-row small{color:var(--dim);font-size:10.5px;font-family:var(--mono);min-width:56px;text-align:right}
.db-empty{font-size:12px;color:var(--dim);font-style:italic}
.db-caption{font-size:11.5px;line-height:1.6;color:var(--dim);background:var(--surface-2);
  border-radius:8px;padding:10px 12px;margin:2px 0 14px}

.db-dayrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.db-date{font-family:var(--sans);font-size:12px;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:7px;padding:5px 9px;cursor:pointer}
.db-date:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.db-dayhint{font-size:11px;color:var(--dim)}
.db-daysum{font-size:11.5px;color:var(--dim);margin-bottom:8px}
.db-daygrp{margin-bottom:10px}
.db-dayco{font-size:12px;font-weight:600;margin-bottom:3px}
.db-dayco small{font-family:var(--mono);color:var(--dim);font-weight:400;margin-left:4px}
.db-dayitem{display:flex;align-items:baseline;gap:7px;padding:4px 0 4px 10px;font-size:12px;
  text-decoration:none;color:inherit;border-left:1px solid var(--line-soft)}
a.db-dayitem:hover{background:var(--surface-2)}
.db-dayitem small{margin-left:auto;color:var(--dim);font-size:10px;white-space:nowrap}
.db-kind{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--dim);min-width:52px}
.db-dot{width:6px;height:6px;border-radius:50%;flex:none;background:var(--dim);position:relative;top:-1px}
.db-dot.positive{background:var(--pos)}
.db-dot.negative{background:var(--neg)}

.db-prov{display:grid;gap:8px;font-size:12px;line-height:1.6;color:var(--ink-soft)}
.db-prov code{font-family:var(--mono);font-size:11px;background:var(--surface-2);padding:1px 5px;border-radius:4px}

/* Similar businesses ------------------------------------------------------- */
.bf-peer{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;
  background:var(--surface-2);border:1px solid transparent;border-radius:8px;
  padding:9px 11px;margin-bottom:6px;cursor:pointer;font-family:inherit;
  transition:border-color .12s,background .12s}
.bf-peer:hover{border-color:var(--accent-soft);background:var(--surface-3)}
.bf-peer:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.bf-peer-n{font-size:13px;font-weight:600}
.bf-peer-w{font-size:10.5px;color:var(--accent);text-transform:capitalize}
.bf-peer-m{font-size:10.5px;color:var(--dim);font-family:var(--mono)}

/* Headlines disclosure -----------------------------------------------------
   Companies with deep history carry 30-60 headlines; rendering them all made
   card 1 tall enough to bury everything below it. Six show by default and the
   control sits in the header next to the count, where the reader is already
   looking to judge how much there is. */
.hl-more{display:inline-flex;align-items:center;gap:5px;margin-left:10px;
  font-family:var(--sans);font-size:11px;color:var(--dim);
  background:var(--surface-2);border:1px solid var(--line);border-radius:100px;
  padding:3px 10px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}
.hl-more:hover{color:var(--accent);border-color:var(--accent-soft);background:var(--surface-3)}
.hl-more:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.hl-caret{font-size:9px;line-height:1;transition:transform .15s}
.hl-more[aria-expanded="true"] .hl-caret{transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){.hl-caret{transition:none}}

/* How-to-read: collapsed by default ---------------------------------------
   This was ten always-open bullets under every chart -- a wall most readers
   skip, and it pushed the real content down. It is now a disclosure, and the
   click-a-bar modal explains that specific bar in plain words, which is where
   the question actually gets asked. */
details.si-howto{padding:0}
details.si-howto>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;
  padding:9px 14px;font-family:var(--serif);font-size:13.5px;color:var(--ink);
  border-radius:8px;transition:color .12s}
details.si-howto>summary::-webkit-details-marker{display:none}
details.si-howto>summary:hover{color:var(--accent)}
details.si-howto>summary:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-tint)}
.si-howto-caret{font-size:10px;color:var(--dim);transition:transform .15s}
details.si-howto[open] .si-howto-caret{transform:rotate(90deg)}
details.si-howto ul{padding:0 14px 0 32px}
details.si-howto .si-howto-note{padding:0 14px 12px}
@media (prefers-reduced-motion:reduce){.si-howto-caret{transition:none}}

/* Plain-English reading of the bar the user just clicked */
.m-explain{margin-top:9px;padding:9px 11px;background:var(--surface-2);border-radius:7px;
  font-size:12px;line-height:1.6;color:var(--ink-soft)}
.m-explain b{color:var(--ink)}

/* Quiet-day markers --------------------------------------------------------
   A day inside the scanned window that produced nothing gets a small neutral
   tick on the line and a stub in the volume strip, so long calm stretches read
   as "checked, nothing published" rather than as a hole in the chart.
   Deliberately dim and flat: it must never be mistaken for a move. Days BEFORE
   a source was first scanned get no marker at all -- that blank is information
   too, and filling it would claim coverage that never happened. */
.quiet-bar{fill:#6f6f7a;opacity:.5}
.quiet-vol{fill:#6f6f7a;opacity:.34}
.cov-bar-g:hover .quiet-bar,.cov-bar-g.col-on .quiet-bar{opacity:.85}
.cov-bar-g:hover .quiet-vol,.cov-bar-g.col-on .quiet-vol{opacity:.6}

/* ==========================================================================
   EDITORIAL TERMINAL -- 2026-09-22
   Reference: FT Markets (serif display at 32px+ on tinted paper, tight sans
   for labels) and Bloomberg (mono numerics, dense rules). The page already
   had Newsreader + IBM Plex; this commits to them instead of using both at
   near-identical sizes, which is what made every block read the same weight.
   Appended as an override block so the working 60KB of layout CSS is
   untouched and this can be reverted by deleting one block.
   ========================================================================== */

/* --- masthead: a dark band, so the instrument announces itself ---------- */
.mast{
  background:linear-gradient(180deg,#171612,#12110e 60%,#100f0c);
  border-bottom:2px solid var(--accent);
  box-shadow:0 1px 0 rgba(0,0,0,.4),0 10px 30px -18px rgba(0,0,0,.6);
}
.mast-top{padding:16px 22px;border-bottom:1px solid rgba(255,255,255,.07)}
.brand-mark{
  background:linear-gradient(155deg,var(--accent),#8c3616);
  color:#fff;border-radius:3px;width:34px;height:34px;font-size:18px;
  box-shadow:0 2px 8px -2px rgba(168,71,31,.6),inset 0 1px 0 rgba(255,255,255,.22);
}
.brand-name{
  font-family:var(--sans);font-size:15px;font-weight:600;color:#f2efe6;
  letter-spacing:.14em;text-transform:uppercase;
}
.brand-sub{color:#8d8574;letter-spacing:.16em;font-size:9.5px;margin-top:3px}
.mast .pill{
  background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.14);color:#b8b0a0;
  border-radius:3px;box-shadow:none;font-size:10.5px;letter-spacing:.04em;
}
.mast .pill b{color:#f2efe6}
.mast .theme-btn,.mast .compare-btn{
  background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.14);
  color:#e8e2d4;border-radius:3px;box-shadow:none;
}
.mast .theme-btn:hover,.mast .compare-btn:hover{
  background:rgba(255,255,255,.11);border-color:var(--accent-soft);
}
.ticker-wrap{
  background:#0d0c0a;border-bottom:1px solid rgba(255,255,255,.08);
}
.ticker-wrap::before{background:linear-gradient(90deg,#0d0c0a,transparent)}
.ticker-wrap::after{background:linear-gradient(270deg,#0d0c0a,transparent)}
.tick-item{border-right:1px solid rgba(255,255,255,.07);color:#cfc8b8;font-size:11px}
.tick-sym{color:#8d8574}

/* --- the switcher rail below the masthead -------------------------------
   It renders INSIDE .mast, so the default ink-on-paper colours vanish against
   the new dark band. Everything here is re-set for a dark ground. */
.switcher{padding:18px 22px 20px;background:transparent}
.co-current-name{color:#f2efe6}
.co-current-kick{color:#8d8574}
.co-current-region{
  color:#cfc8b8;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.05);
}
.co-current-sym{color:#8d8574}
.co-search-input{
  background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#f2efe6;
}
.co-search-input::placeholder{color:#8d8574}
.co-search-input:focus{
  border-color:var(--accent-soft);
  box-shadow:0 0 0 3px rgba(168,71,31,.22);
}
.co-search-ico{color:#8d8574}
.co-search-input{
  border-radius:3px;border-color:var(--line);
  font-size:13px;letter-spacing:.01em;
}
.co-current-kick{letter-spacing:.14em;font-size:9.5px}
.co-current-name{font-family:var(--serif);font-size:17px}
.co-current-region{border-radius:3px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}

/* --- company identity: the single biggest thing on the page ------------- */
.identity{
  border:none;border-top:3px solid var(--ink);border-bottom:1px solid var(--line);
  border-radius:0;background:transparent;box-shadow:none;
  padding:26px 0 24px;margin-bottom:30px;
}
.id-name{
  font-family:var(--serif);font-size:clamp(34px,4.4vw,52px);font-weight:600;
  line-height:1.02;letter-spacing:-.025em;
}
.id-flag{font-size:30px;filter:none}
.id-meta{
  font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--dim);margin-top:9px;
}
.badge{border-radius:2px;letter-spacing:.09em;font-size:9.5px}

/* --- cards become ruled sections, not boxes ----------------------------- */
.card{
  border:none;border-radius:0;background:transparent;box-shadow:none;
  border-top:1px solid var(--line);margin-bottom:34px;overflow:visible;
}
.card:hover{box-shadow:none}
.card-head{
  background:transparent;border-bottom:1px solid var(--line-soft);
  padding:18px 0 12px;align-items:baseline;gap:14px;
}
.card-num{
  font-family:var(--mono);font-size:22px;font-weight:600;color:var(--accent);
  background:none;padding:0;border-radius:0;box-shadow:none;
  letter-spacing:-.02em;line-height:1;
}
.card-title{
  font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:-.018em;
}
.card-sub{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.card-body{padding:20px 0 4px}

/* --- headlines read as a wire, with a rule per item --------------------- */
.hl-row{padding:15px 0;border-bottom:1px solid var(--line-soft);gap:18px}
.hl-date{
  font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--dim);
  width:58px;text-transform:uppercase;
}
.hl-title{font-size:15px;line-height:1.45;font-weight:500;letter-spacing:-.006em}
.hl-src{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;margin-top:5px}
.hl-reaction{border-radius:2px;font-size:9.5px;letter-spacing:.06em}
.hl-topic{border-radius:2px;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase}

/* --- the chart panel: sit on the paper, not fight it -------------------- */
.si-panel{
  background:linear-gradient(180deg,#121110,#0c0b0a);
  border-radius:0;margin:0;padding:22px 20px 12px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 24px 60px -30px rgba(21,20,15,.55);
  border-top:2px solid var(--accent);
}
.si-t1{font-family:var(--serif);font-size:23px;font-weight:600;letter-spacing:-.015em}
.si-t2{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9a927f}
.si-zoom .range-btn{border-radius:2px;letter-spacing:.05em}
.si-range{font-family:var(--mono);font-size:11px;letter-spacing:.04em}

/* --- rail cards: quiet, ruled ------------------------------------------ */
.rail-card{
  border:none;border-top:1px solid var(--line);border-radius:0;
  background:transparent;box-shadow:none;padding:16px 0 4px;
}
.rail-card:hover{box-shadow:none}
.rail-title{letter-spacing:.14em;font-size:9.5px;color:var(--dim);font-weight:600}
.thesis-quote{font-family:var(--serif);font-size:17px;line-height:1.5}
.rail-stat{font-size:12px;padding:8px 0}
.rail-stat b{font-family:var(--mono)}

/* --- numbers everywhere get the mono treatment -------------------------- */
.q-price{font-family:var(--mono);font-size:34px;letter-spacing:-.02em}
.fact-l,.mom-l{letter-spacing:.11em;font-size:9.5px}
.fact-v{font-size:14px}
.mom-cell{border-radius:2px}
.mom-v{font-family:var(--mono)}

/* --- buttons and pills: square, deliberate ------------------------------ */
.range-btn,.gap-filter-btn,.m-search,.m-searchrow,.pill{border-radius:2px}
.range-group{border-radius:3px}

/* --- footer ------------------------------------------------------------- */
footer{border-top:1px solid var(--line);padding-top:22px;margin-top:10px}

@media (max-width:640px){
  .id-name{font-size:30px}
  .card-title{font-size:20px}
  .card-num{font-size:18px}
  .q-price{font-size:26px}
  /* At phone width the uppercase tracked brand name wrapped onto three lines
     and shoved the action buttons down. Shrink the tracking and let the
     lockup sit on one line, with the strapline hidden -- the masthead only
     needs to identify the app, not explain it, on a 390px screen. */
  .brand-name{font-size:12px;letter-spacing:.08em;white-space:nowrap}
  .brand-sub{display:none}
  .brand-mark{width:28px;height:28px;font-size:15px}
  .mast-top{padding:12px 16px;gap:10px}
  .mast .pill{font-size:9.5px;padding:4px 8px}
  .switcher{padding:14px 16px 16px}
}

/* Founder panel -- Milan asked for "where they post" and "who talks about
   them" to be first-class, not buried tags. */
.sis-mtitle{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;color:#a9a294;
  text-transform:uppercase;margin:9px 0 4px;padding-top:7px;
  border-top:1px solid #1c1c22;
}
.sis-fr .sis-mtitle:first-of-type{border-top:none;padding-top:0;margin-top:6px}
.sis-primary{
  font-style:normal;font-size:8.5px;letter-spacing:.07em;text-transform:uppercase;
  background:#1d3325;color:#8fd6a2;border-radius:2px;padding:2px 6px;margin-left:6px;
  font-weight:600;
}
.sis-handle{font-size:11px;padding:4px 0}
.sis-mention{font-size:11px;padding:4px 0;border-bottom:1px solid #16161c}
.sis-mention:last-of-type{border-bottom:none}

/* ==========================================================================
   CRAFT PASS -- 2026-09-23
   The editorial structure is right; this is the detail layer: entrance motion,
   interaction states that feel considered, optical typography fixes, and
   depth. Everything respects prefers-reduced-motion.
   ========================================================================== */

/* --- typography: the details that separate "styled" from "designed" ------ */
.id-name{
  /* Real display typography: tighter tracking at size, old-style figures off
     so a year like 2014 sits on the baseline, and optical sizing where the
     variable font supports it. */
  font-variation-settings:"opsz" 48;
  font-feature-settings:"kern" 1,"liga" 1,"calt" 1;
  text-rendering:optimizeLegibility;
}
.card-title,.si-t1,.thesis-quote,.m-date,.pm-side-name{
  font-feature-settings:"kern" 1,"liga" 1;
  text-rendering:optimizeLegibility;
}
.mono,.q-price,.card-num,.rail-stat b,.fact-v,.hl-date,.tick-item{
  font-variant-numeric:tabular-nums lining-nums;
}
/* hanging punctuation on the pull quote, so the opening mark sits in the margin */
.thesis-quote{hanging-punctuation:first last;text-wrap:pretty}
.hl-title,.card-sub,.id-meta{text-wrap:pretty}

/* --- paper texture: a barely-there grain so the cream is not flat -------- */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.035'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
:root[data-theme="dark"] body::before{mix-blend-mode:screen;opacity:.35}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) body::before{mix-blend-mode:screen;opacity:.35}
}

/* --- entrance: sections settle in rather than snapping ------------------- */
@media (prefers-reduced-motion:no-preference){
  .identity,.card,.rail-card{
    animation:riseIn .55s cubic-bezier(.16,1,.3,1) both;
  }
  .card:nth-of-type(1){animation-delay:.04s}
  .card:nth-of-type(2){animation-delay:.08s}
  .card:nth-of-type(3){animation-delay:.12s}
  .card:nth-of-type(4){animation-delay:.16s}
  .rail-card:nth-of-type(2){animation-delay:.06s}
  .rail-card:nth-of-type(3){animation-delay:.1s}
}
@keyframes riseIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:none}
}

/* --- headlines: a considered hover, not a colour swap ------------------- */
.hl-row{
  position:relative;
  transition:background .2s cubic-bezier(.16,1,.3,1);
}
.hl-row::before{
  content:"";position:absolute;left:-14px;top:0;bottom:0;width:2px;
  background:var(--accent);transform:scaleY(0);transform-origin:50% 50%;
  transition:transform .25s cubic-bezier(.16,1,.3,1);
}
.hl-row:hover::before{transform:scaleY(1)}
.hl-row:hover{background:linear-gradient(90deg,var(--accent-tint),transparent 55%)}
.hl-title{
  background-image:linear-gradient(var(--accent),var(--accent));
  background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;
  transition:background-size .3s cubic-bezier(.16,1,.3,1),color .2s;
  padding-bottom:1px;
}
.hl-row:hover .hl-title{background-size:100% 1px;color:var(--accent)}

/* --- the section number gets a rule that draws itself ------------------- */
.card-head{position:relative}
.card-head::after{
  content:"";position:absolute;left:0;bottom:-1px;height:2px;width:0;
  background:var(--accent);transition:width .5s cubic-bezier(.16,1,.3,1);
}
.card:hover .card-head::after{width:54px}

/* --- buttons: weight shift on press, so they feel physical -------------- */
.range-btn,.gap-filter-btn,.board-modes .range-btn,.compare-btn,.theme-btn{
  transition:background .16s,color .16s,border-color .16s,transform .1s;
}
.range-btn:active,.gap-filter-btn:active,.compare-btn:active,.theme-btn:active{
  transform:translateY(1px) scale(.985);
}
.range-btn.active{
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 2px 6px -2px rgba(0,0,0,.4);
}

/* --- rail stats: numbers tick up on hover ------------------------------- */
.rail-stat{transition:padding-left .2s cubic-bezier(.16,1,.3,1)}
.rail-stat:hover{padding-left:5px}
.rail-stat:hover b{color:var(--accent)}

/* --- outlet bars grow from the left ------------------------------------- */
.outlet-row{transition:padding-left .18s}
.outlet-row:hover{padding-left:4px}
.outlet-bar{transition:filter .18s,opacity .18s}
.outlet-row:hover .outlet-bar{opacity:1;filter:brightness(1.15)}

/* --- the masthead accent rule breathes with the live dot ---------------- */
@media (prefers-reduced-motion:no-preference){
  .mast{position:relative}
  .mast::after{
    content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;
    background:linear-gradient(90deg,transparent,var(--accent-soft),transparent);
    opacity:.55;animation:sweep 9s ease-in-out infinite;
  }
}
@keyframes sweep{
  0%,100%{transform:translateX(-30%) scaleX(.5);opacity:.25}
  50%{transform:translateX(30%) scaleX(1);opacity:.6}
}

/* --- arrival rows: a quiet lift ----------------------------------------- */
.arrival-row{transition:background .2s,padding-left .2s}
.arrival-row:hover{background:var(--surface-2);padding-left:3px}

/* --- link affordance on the website line -------------------------------- */
.id-website a{
  background-image:linear-gradient(var(--accent),var(--accent));
  background-size:100% 1px;background-position:0 100%;background-repeat:no-repeat;
  transition:background-size .28s cubic-bezier(.16,1,.3,1);
  text-decoration:none;
}
.id-website a:hover{background-size:0% 1px}

/* --- board rows ---------------------------------------------------------- */
.board-row{transition:background .16s,box-shadow .16s}
.board-row:hover td{background:var(--surface-2)}
.board-row:hover td:first-child{box-shadow:inset 2px 0 0 var(--accent)}

/* --- scrollbar, because details count ----------------------------------- */
::-webkit-scrollbar-thumb{background:var(--line);border-radius:0}
::-webkit-scrollbar-thumb:hover{background:var(--accent-soft)}

@media (prefers-reduced-motion:reduce){
  .identity,.card,.rail-card{animation:none}
  .mast::after{animation:none;opacity:.4}
}

/* ==========================================================================
   LOGO -- 2026-09-23
   Three candlesticks: down / hollow-neutral / up. The product measures
   sentiment as candles, so the mark is the instrument rather than a letter in
   a box. The middle candle is hollow, which is the terminal's own symbol for
   "covered but unchanged".
   ========================================================================== */
.brand-logo{
  width:34px;height:34px;flex:none;display:block;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.45));
}
.bl-plate{fill:#100f0c;stroke:rgba(255,255,255,.10);stroke-width:1}
.bl-wick{stroke-width:1.4;stroke-linecap:round}
.bl-body{stroke-width:1.4}
.bl-neg{stroke:#c9452f}    .bl-neg-f{fill:#c9452f;stroke:#e0664e}
.bl-neu{stroke:#9a9aa8}    .bl-neu-f{fill:none;stroke:#c2c2cc}
.bl-pos{stroke:#3fa46a}    .bl-pos-f{fill:#3fa46a;stroke:#6cc994}

/* the up-candle lifts a touch on hover of the whole lockup */
.brand{cursor:default}
.brand .bl-pos-f,.brand .bl-pos{transition:transform .35s cubic-bezier(.16,1,.3,1)}
.brand:hover .bl-pos-f,.brand:hover .bl-pos{transform:translateY(-1.5px)}
.brand .bl-neg-f,.brand .bl-neg{transition:transform .35s cubic-bezier(.16,1,.3,1)}
.brand:hover .bl-neg-f,.brand:hover .bl-neg{transform:translateY(1.5px)}

@media (max-width:640px){ .brand-logo{width:28px;height:28px} }
@media (prefers-reduced-motion:reduce){
  .brand:hover .bl-pos-f,.brand:hover .bl-pos,
  .brand:hover .bl-neg-f,.brand:hover .bl-neg{transform:none}
}

/* ==========================================================================
   PALETTE REFINEMENT -- 2026-09-23
   Problems with the inherited scheme: the paper was a yellowish beige that
   read as aged newsprint rather than considered stock; the accent (#a8471f)
   was a muddy brick that muddied against the warm ground; and --pos/--neg sat
   at such similar value and saturation that a green and a red candle did not
   separate at a glance, which matters when they carry the whole meaning.

   This keeps the editorial warmth but cools the paper toward a true off-white,
   moves the accent to a cleaner burnt sienna with more chroma, and pushes
   pos/neg apart in BOTH hue and value so they are distinguishable even in
   greyscale.
   ========================================================================== */
:root{
  --paper:#f7f5f0; --ink:#12110f; --ink-soft:#3c3830; --dim:#6f6a5e;
  --line:#ded9cc; --line-soft:#ebe7dd;
  --surface:#ffffff; --surface-2:#f0ece2; --surface-3:#e5e0d3;
  --accent:#b5502a; --accent-soft:#d47549; --accent-tint:#f7e6db;
  --pos:#2d6b4f; --pos-tint:#dcece2;
  --neg:#b03a28; --neg-tint:#f8e3de;
  --warn:#96690f; --warn-tint:#f5ead1;
  --focus:#2a6f8c;
  --shadow-sm:0 1px 2px rgba(35,28,18,.05), 0 1px 1px rgba(35,28,18,.035);
  --shadow-md:0 10px 28px -10px rgba(35,28,18,.16), 0 2px 6px rgba(35,28,18,.05);
  --shadow-lg:0 28px 70px -18px rgba(35,28,18,.30), 0 8px 24px -8px rgba(35,28,18,.14);
}
:root[data-theme="dark"]{
  --paper:#111110; --ink:#efebe0; --ink-soft:#cdc7b6; --dim:#918a79;
  --line:#33302a; --line-soft:#26241f;
  --surface:#191815; --surface-2:#211f1a; --surface-3:#2b2823;
  --accent:#e28551; --accent-soft:#efa176; --accent-tint:#2e2017;
  --pos:#5fc48c; --pos-tint:#152620;
  --neg:#e87a5e; --neg-tint:#2c1a16;
  --warn:#e0bc63; --warn-tint:#2c2515;
  --focus:#63b9dc;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#111110; --ink:#efebe0; --ink-soft:#cdc7b6; --dim:#918a79;
    --line:#33302a; --line-soft:#26241f;
    --surface:#191815; --surface-2:#211f1a; --surface-3:#2b2823;
    --accent:#e28551; --accent-soft:#efa176; --accent-tint:#2e2017;
    --pos:#5fc48c; --pos-tint:#152620;
    --neg:#e87a5e; --neg-tint:#2c1a16;
    --warn:#e0bc63; --warn-tint:#2c2515;
    --focus:#63b9dc;
  }
}

/* ==========================================================================
   PERFORMANCE -- 2026-09-23
   Measured causes of the lag, not guesses:
   1. The grain overlay used mix-blend-mode across the whole viewport. A blend
      mode forces the compositor to re-read the backdrop on every scroll frame,
      which is the single most expensive thing on the page. Replaced with a
      plain low-opacity overlay -- visually near-identical, no backdrop read.
   2. The ticker strip is ~34,800px wide and animates transform forever, so the
      compositor holds an enormous layer. Capped with content-visibility and
      paused when it is not on screen.
   3. Infinite animations (people-map tethers, centre pulse, masthead sweep)
      kept running while scrolled far away. They now stop when off-screen.
   4. Long sections get content-visibility so the browser can skip layout and
      paint for anything below the fold.
   ========================================================================== */

/* 1. grain: no blend mode, no backdrop read */
body::before{
  mix-blend-mode:normal !important;
  opacity:.16;
  will-change:auto;
}
:root[data-theme="dark"] body::before{opacity:.10}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) body::before{opacity:.10}
}

/* 2. ticker: give it its own layer, and stop compositing when off-screen */
.ticker-wrap{
  content-visibility:auto;
  contain-intrinsic-size:auto 34px;
}
.ticker{
  will-change:transform;
  backface-visibility:hidden;
}

/* 3+4. skip work for anything below the fold. The sizes are the real rendered
   heights, so the scrollbar does not jump as sections come into view. */
.card{content-visibility:auto;contain-intrinsic-size:auto 640px}
.rail-card{content-visibility:auto;contain-intrinsic-size:auto 220px}
.pm-layout{content-visibility:auto;contain-intrinsic-size:auto 560px}
.si-panel{content-visibility:auto;contain-intrinsic-size:auto 700px}

/* the chart and people map own their paint, so hovering a bar cannot force a
   relayout of the whole page */
.si-panel,.pm-layout,.kg-scroll,.cmp-scroll{contain:paint}

/* 5. hover transitions were declared as `all`, which makes the browser watch
   every property. Name only what actually changes. */
.hl-row{transition:background-color .2s cubic-bezier(.16,1,.3,1)}
.rail-stat{transition:padding-left .2s cubic-bezier(.16,1,.3,1)}
.outlet-row{transition:padding-left .18s}
.arrival-row{transition:background-color .2s,padding-left .2s}
.board-row{transition:background-color .16s}

/* 6. the entrance animation held a compositor layer forever. Release it. */
@media (prefers-reduced-motion:no-preference){
  .identity,.card,.rail-card{animation-fill-mode:both}
}

/* 7. huge tables paint lazily too */
.cmp-table.board tbody tr{content-visibility:auto;contain-intrinsic-size:auto 34px}

/* --- mobile overflow fix, 2026-09-24 -------------------------------------
   .hl-src is a flex row whose children (.hl-reaction, .hl-topic) are
   white-space:nowrap. On a 390px screen a long topic label pushed the row
   past the viewport and produced 114px of horizontal page scroll. Let the
   row wrap and let the label itself break if it must. */
.hl-src{flex-wrap:wrap;row-gap:4px;min-width:0}
.hl-topic{white-space:normal;overflow-wrap:anywhere;max-width:100%}
.hl-reaction{white-space:nowrap;margin-left:0}
.hl-row{min-width:0}
.hl-body{min-width:0;flex:1}

@media (max-width:640px){
  /* the knowledge grid and comparison tables are wide by nature -- they scroll
     inside their own container rather than widening the page */
  .kg-scroll,.cmp-scroll,.cov-chart-wrap,.chart-wrap{
    max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
  }
  .hl-date{width:52px}
}

/* ==========================================================================
   MOBILE -- 2026-09-24
   Measured problems on a 390px screen: the chart rendered 428px wide inside a
   297px window so it had to be scrolled sideways; zoom buttons were 24px tall
   against a 44px minimum tap target; panel captions ran off the edge; and the
   date range wrapped into a clipped vertical stack.
   ========================================================================== */
@media (max-width:640px){

  /* --- chart panel: edge to edge, no wasted gutter --------------------- */
  .si-panel{
    margin-left:-12px;margin-right:-12px;
    width:auto;max-width:none;padding:16px 10px 10px;
    border-radius:0;box-sizing:border-box;
  }
  .si-panel .cov-chart-wrap{padding:0;overflow-x:hidden}
  .si-panel svg{width:100%;height:auto}

  /* title block: smaller, and the date range on its own line rather than
     squeezed against the zoom buttons */
  .si-t1{font-size:17px;line-height:1.2}
  .si-t2{font-size:9.5px;letter-spacing:.1em}
  .si-zoom{flex-wrap:wrap;gap:6px;margin:12px 0 8px}
  .si-zoom-l{width:100%;margin-bottom:2px;font-size:11px}
  .si-range{
    margin-left:0;width:100%;order:99;font-size:11px;
    padding-top:6px;border-top:1px solid #1f1f26;
  }

  /* --- tap targets: 24px was below the 44px minimum ------------------- */
  .si-zoom .range-group{width:100%;display:flex;gap:5px}
  .si-zoom .range-btn{
    flex:1;min-height:40px;padding:10px 4px;font-size:12px;
  }
  .range-btn,.gap-filter-btn,.board-modes .range-btn{min-height:40px;padding:10px 12px}
  .theme-btn,.compare-btn,.m-close{min-height:40px;min-width:40px}
  .co-result-row{min-height:44px}
  .arrival-row-head{min-height:48px}
  .board-row td{padding:12px 10px}

  /* --- the navigator strip is unusable at this width ------------------ */
  #siNav{display:none}

  /* --- side panels stack instead of cramming into three columns ------- */
  .si-side{grid-template-columns:1fr;gap:8px}
  .sis-sec{padding:12px 13px}

  /* --- legend and how-to read as a list, not a wrapped row ------------ */
  .cov-chart-legend{padding:10px 4px 14px;gap:8px 14px;font-size:10.5px}
  .si-howto{font-size:12px;padding:11px 12px}

  /* --- identity block ------------------------------------------------- */
  .id-name{font-size:clamp(26px,8vw,34px);line-height:1.05}
  .id-meta{font-size:10px;letter-spacing:.07em}
  .id-facts{grid-template-columns:1fr 1fr;gap:12px 16px}
  .quote-row{gap:10px}

  /* --- section heads -------------------------------------------------- */
  .card-title{font-size:19px}
  .card-num{font-size:16px}
  .card-sub{margin-left:0;text-align:left;width:100%;margin-top:4px}
  .card-head{gap:9px}

  /* --- momentum + rail ------------------------------------------------ */
  .mom-grid{grid-template-columns:1fr}
  .rail{gap:12px}
  .thesis-quote{font-size:15px}

  /* --- knowledge grid scrolls in place, with a hint ------------------- */
  .kg-scroll{position:relative}
  .kg{min-width:560px}

  /* --- modals fill the screen on a phone ------------------------------ */
  .ov{padding:0;align-items:flex-end}
  .modal{max-height:92vh;border-radius:12px 12px 0 0;max-width:100%}
  .modal.wide{max-width:100%}
  .modal-head{padding:18px 18px 14px}
  .modal-body{padding:16px 18px 24px}
  .m-date{font-size:20px}
}

/* very small phones */
@media (max-width:380px){
  .si-zoom .range-btn{font-size:11px;padding:10px 2px}
  .id-name{font-size:24px}
}

/* The ticker strip is ~34,800px wide and animated by transform. Its wrapper
   must clip it unconditionally: `content-visibility:auto` from the performance
   pass can defer the wrapper's own layout, which briefly let the strip
   contribute its full length to the document scroll width (38px of desktop
   overflow). `contain:strict` pins the clip regardless. */
.ticker-wrap{overflow:hidden;max-width:100%;contain:layout paint size style}
.ticker-wrap{contain-intrinsic-size:auto 34px}

/* --- mobile overflow, round 2 (2026-09-24) -------------------------------
   Two offenders survived the first pass and only appear once the Board is
   opened or the founder panel renders:
   1. SVG <text> pane captions are laid out at full string length (665px) and
      an SVG does not clip its children by default. overflow:hidden on the svg
      confines them to the viewBox.
   2. .sis-primary (the "most active" badge) is a nowrap inline element at the
      end of a flex row, so a long handle pushed it past the edge. */
.si-panel svg,.pm-canvas svg{overflow:hidden}

@media (max-width:640px){
  .sis-handle{flex-wrap:wrap;row-gap:3px}
  .sis-primary{margin-left:0;flex:none}
  .sis-handle b{margin-left:auto;white-space:nowrap}
  /* wide tables inside modals scroll in place rather than widening the page */
  .cmp-scroll,.kg-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .modal,.modal.wide{overflow-x:hidden}
}

/* ===== ACCESSIBILITY PASS (2026-09-28) =====================================
   axe-core WCAG AA: range buttons 4.08:1, glossary toggle 4.29:1, range flag
   4.11:1 in the light theme (min 4.5:1). Dark theme already passes. */
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]) .range-btn[data-r]:not(.active){color:#57523f}
  :root:not([data-theme="dark"]) .arrival-glossary>summary{color:#9a4322}
  :root:not([data-theme="dark"]) #rangeFlag{color:#7a560c}
  :root:not([data-theme="dark"]) .badge[style*="warn"],:root:not([data-theme="dark"]) .neu.hl-reaction{color:#57523f}
}
:root[data-theme="light"] .range-btn[data-r]:not(.active){color:#57523f}
:root[data-theme="light"] .arrival-glossary>summary{color:#9a4322}
:root[data-theme="light"] #rangeFlag{color:#7a560c}
:root[data-theme="light"] .neu.hl-reaction{color:#57523f}
#chartWrap:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* dark theme (axe, 2026-09-28): the busiest knowledge-grid cell is painted
   var(--ink), which is LIGHT in dark mode, under white text (1.69:1). */
.kg-cell[style*="var(--ink)"] span{color:var(--paper)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .neu.hl-reaction{color:#aaa391}
  :root:not([data-theme="light"]) .sis-sec span[title] > span{color:#9a9aa6}
}
:root[data-theme="dark"] .neu.hl-reaction{color:#aaa391}
:root[data-theme="dark"] .sis-sec span[title] > span{color:#9a9aa6}
/* the social-row platform label carries an inline #6f6f7a on an always-dark
   panel (3.9:1), so only !important can lift it */
.sis-sec span[title] > span[style*="#6f6f7a"]{color:#9a9aa6!important}
.sis-sec .sis-down{color:#f0524d}
/* the masthead's underline sweep (translateX up to +30%) pushed the page wider
   than the screen every 9s, so phones could be dragged sideways. clip, not
   hidden: it keeps the sticky masthead working and the line visible below. */
.mast{overflow-x:clip}
/* the search dropdown lives inside the masthead; the sticky section tabs
   (z-index 40) were painting over it (Milan, 2026-10-13 screenshot) */
.mast{position:relative;z-index:60}
.co-search-results{z-index:70}
/* light theme warn (#96690f on #f5ead1 = 4.06:1): one step darker */
@media (prefers-color-scheme: light){ :root:not([data-theme="dark"]){--warn:#7a560c} }
:root[data-theme="light"]{--warn:#7a560c}
/* dark theme price-range buttons (#918a79 on #2b2823 = 4.27:1) */
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .range-btn[data-r]:not(.active){color:#aaa391} }
:root[data-theme="dark"] .range-btn[data-r]:not(.active){color:#aaa391}
/* dark theme knowledge grid: dense green/red cells are bright, so white digits
   fell to 2.97:1 / 3.88:1. Cells at 80 percent opacity or more get dark digits (60-70 percent read worse either way). */
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .kg-cell[style*="var(--pos)"][style*="opacity:0.8"] span,:root:not([data-theme="light"]) .kg-cell[style*="var(--pos)"][style*="opacity:0.9"] span,:root:not([data-theme="light"]) .kg-cell[style*="var(--pos)"][style*="opacity:1.0"] span,:root:not([data-theme="light"]) .kg-cell[style*="var(--neg)"][style*="opacity:0.8"] span,:root:not([data-theme="light"]) .kg-cell[style*="var(--neg)"][style*="opacity:0.9"] span,:root:not([data-theme="light"]) .kg-cell[style*="var(--neg)"][style*="opacity:1.0"] span{color:#0f0f0c} }
:root[data-theme="dark"] .kg-cell[style*="var(--pos)"][style*="opacity:0.8"] span,:root[data-theme="dark"] .kg-cell[style*="var(--pos)"][style*="opacity:0.9"] span,:root[data-theme="dark"] .kg-cell[style*="var(--pos)"][style*="opacity:1.0"] span,:root[data-theme="dark"] .kg-cell[style*="var(--neg)"][style*="opacity:0.8"] span,:root[data-theme="dark"] .kg-cell[style*="var(--neg)"][style*="opacity:0.9"] span,:root[data-theme="dark"] .kg-cell[style*="var(--neg)"][style*="opacity:1.0"] span{color:#0f0f0c}

/* ===== LOOK-THEM-UP v2 (2026-09-28): direct profiles + articles ============ */
.pm-lookup{gap:14px}
.pm-block{display:flex;flex-direction:column;gap:6px}
.pm-block-h{display:flex;align-items:center;gap:8px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gx-dim);font-weight:600;margin-bottom:2px}
.pm-block-h b{font:600 10px var(--mono);letter-spacing:0;color:var(--gx-ink);background:#1d212c;border:1px solid var(--gx-line);border-radius:999px;padding:1px 7px}
.pm-direct{padding:10px 12px;align-items:center}
.pm-l-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.pm-l-pf{font:500 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gx-dim)}
.pm-l-handle{font:600 13px var(--sans);color:var(--gx-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-verified{color:#8fd6a6;font-weight:600;white-space:nowrap}
.pm-direct .pm-l-main{flex:1}
.pm-direct .pm-l-pf{text-transform:none;letter-spacing:.02em;font-size:10.5px}
.pm-direct .pm-lookup-ico{width:20px;height:20px;font-size:10px}
.pm-direct .pm-lookup-arrow{margin-left:10px}
/* the card header already states the people/investor counts */
.pm-titlebar{display:none}
.pm-art{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border-radius:6px;text-decoration:none;
  background:linear-gradient(160deg,#171a23,#131620);border:1px solid var(--gx-line);transition:border-color .14s,transform .14s,background .14s}
.pm-art:hover{border-color:color-mix(in srgb, var(--gx-signal) 45%, var(--gx-line));transform:translateX(2px);background:linear-gradient(160deg,#1d212c,#171a23)}
.pm-art-t{font:500 13.5px/1.35 var(--serif);color:var(--gx-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pm-art-meta{display:flex;align-items:center;gap:7px;font:400 10.5px var(--mono);color:var(--gx-dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-tone{flex:none;width:7px;height:7px;border-radius:2px;background:#6c7080}
.pm-tone.up{background:#35c46f}.pm-tone.down{background:#e05544}
.pm-more{font:400 10.5px var(--mono);color:var(--gx-dim);padding:2px 2px 0}
.pm-search-row{display:flex;flex-wrap:wrap;gap:6px}
.pm-search{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:6px 11px 6px 8px;border-radius:999px;text-decoration:none;
  font:500 12px var(--sans);color:#c8cad4;border:1px dashed #3a3f4c;background:transparent;transition:border-color .14s,color .14s,background .14s}
.pm-search:hover{color:var(--gx-ink);border-style:solid;border-color:#565c6c;background:#161922}
.pm-search .pm-lookup-ico{width:15px;height:15px}
.pm-lookup-link:focus-visible,.pm-art:focus-visible,.pm-search:focus-visible{outline:2px solid #5cb3d6;outline-offset:2px}
[data-ico="in"] .pm-lookup-ico{background:#0a66c2}[data-ico="in"] .pm-lookup-ico::before{content:"in"}
[data-ico="x"] .pm-lookup-ico{background:#15181d;border:1px solid #3a3f4a}[data-ico="x"] .pm-lookup-ico::before{content:"X";font-family:Georgia,serif}
[data-ico="fb"] .pm-lookup-ico{background:#1877f2}[data-ico="fb"] .pm-lookup-ico::before{content:"f"}
[data-ico="ig"] .pm-lookup-ico{background:radial-gradient(circle at 30% 110%,#fdf497 0 8%,#fd5949 45%,#d6249f 60%,#285aeb 95%)}[data-ico="ig"] .pm-lookup-ico::before{content:"ig";font-size:8px}
[data-ico="tt"] .pm-lookup-ico{background:#000;border:1px solid #3a3f4a}[data-ico="tt"] .pm-lookup-ico::before{content:"t"}
[data-ico="yt"] .pm-lookup-ico{background:#ff0033}[data-ico="yt"] .pm-lookup-ico::before{content:"\25B6";font-size:7px}
[data-ico="rd"] .pm-lookup-ico{background:#ff4500}[data-ico="rd"] .pm-lookup-ico::before{content:"r"}
[data-ico="web"] .pm-lookup-ico{background:#2a2e3a}[data-ico="web"] .pm-lookup-ico::before{content:"\2197"}
[data-ico="gn"] .pm-lookup-ico{background:linear-gradient(135deg,#4285f4,#34a853 33%,#fbbc05 66%,#ea4335);color:#0a0a10}[data-ico="gn"] .pm-lookup-ico::before{content:"G"}
.pm-lookup-hint{color:#7d8192;font-style:normal;font-size:10.5px}
@media (max-width:640px){ .pm-direct,.pm-art{min-height:44px} .pm-search{min-height:40px} }

/* ===== PRO LAYER (2026-09-30): analyst-grade presentation ================= */
:root{--pro-r:14px;--pro-gap:10px}
.identity .id-name{letter-spacing:-.02em}
/* KPI strip */
.pro-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(124px,1fr));gap:var(--pro-gap);margin:18px 0 20px}
.pro-kpi{position:relative;display:flex;flex-direction:column;gap:4px;padding:13px 14px 12px;border-radius:12px;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);overflow:hidden;
  transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,border-color .25s}
.pro-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line)}
.pro-kpi.is-up::before{background:var(--pos)}.pro-kpi.is-down::before{background:var(--neg)}.pro-kpi.is-stale::before{background:var(--warn)}
.pro-kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.pro-kpi-l{font:600 10px/1.2 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}
.pro-kpi-v{font:500 27px/1.05 var(--serif);color:var(--ink);font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.01em}
.pro-kpi-v .up,.pro-kpi-s .up,.pro-chg.up{color:var(--pos)}.pro-kpi-v .down,.pro-kpi-s .down,.pro-chg.down{color:var(--neg)}
.pro-slash{color:var(--dim);font-size:.7em}
.pro-small{font-size:17px}
.pro-kpi-s{font:400 11.5px/1.35 var(--sans);color:var(--ink-soft)}
.pro-kpi-s b{font-weight:600}
.pro-chg{font:600 13px var(--mono)}
.pro-spark{display:block;width:100%;height:28px;margin-top:2px}
.pro-spark rect{fill:color-mix(in srgb,var(--accent) 38%,transparent)}.pro-spark rect.now{fill:var(--accent)}
.pro-tonebar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--surface-2);margin:3px 0 1px}
.pro-tonebar i{display:block;height:100%}.pro-tonebar .up{background:var(--pos)}.pro-tonebar .down{background:var(--neg)}
.pro-tonebar .neu{background:color-mix(in srgb,var(--dim) 45%,transparent)}
.pro-range{position:relative;height:6px;border-radius:3px;margin:8px 0 3px;
  background:linear-gradient(90deg,var(--neg-tint),var(--surface-2) 50%,var(--pos-tint));border:1px solid var(--line)}
.pro-range i{position:absolute;top:50%;width:11px;height:11px;border-radius:50%;background:var(--ink);transform:translate(-50%,-50%);
  box-shadow:0 0 0 3px var(--surface)}
/* section tabs */
.pro-nav{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none;
  margin:0 0 14px;padding:8px 6px;background:color-mix(in srgb,var(--paper) 88%,transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--line);grid-column:1/-1}
.pro-nav::-webkit-scrollbar{display:none}
.pro-nav-co{flex:none;font:600 12.5px var(--sans);color:var(--ink);padding:0 10px 0 4px;margin-right:4px;border-right:1px solid var(--line);white-space:nowrap}
.pro-nav a{flex:none;display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border-radius:999px;text-decoration:none;
  font:500 13px var(--sans);color:var(--ink-soft);transition:background .2s,color .2s}
.pro-nav a:hover{background:var(--surface-2);color:var(--ink)}
.pro-nav a.on{background:var(--ink);color:var(--paper)}
.pro-nav a:focus-visible,.pro-more:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
#main .identity,#main>[id^="sec"]{scroll-margin-top:64px}
/* clamps */
.pro-clamp{max-height:4.7em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.id-vnote.pro-clamp{max-height:8.2em}
.no-data-box.pro-clamp{max-height:9.5em}
.pro-clamp.open{max-height:none;-webkit-mask-image:none;mask-image:none}
.pro-more{margin:4px 0 0;padding:4px 0;border:0;background:none;color:var(--accent);font:600 12px var(--sans);cursor:pointer;min-height:32px}
.pro-more:hover{text-decoration:underline}
.pro-hide{display:none!important}
.hl-title{text-decoration:none!important;font-weight:600;transition:color .15s}
.hl-title:hover{color:var(--accent);text-decoration:underline!important;text-underline-offset:3px}
.id-facts .fact-v{font-weight:500}
/* cards: one consistent system */
#main .card{border-radius:var(--pro-r)}
#main .card-num{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;
  font:600 11px var(--mono);color:color-mix(in srgb,var(--accent) 78%,var(--ink));background:var(--accent-tint)}
.pro-kpis:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:12px}

/* ---------- phone ---------- */
@media (max-width:900px){
  .shell{display:flex!important;flex-direction:column}
  .shell>#main{order:1;min-width:0}.shell>.rail{order:2}.shell>.pro-nav{order:0}
  #main{display:flex;flex-direction:column}
  #main>#secArrivals{order:9}
  .pro-kpis{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:12px;gap:8px;margin:14px -12px 16px;padding:2px 12px 6px;scrollbar-width:none}
  .pro-kpis::-webkit-scrollbar{display:none}
  .pro-kpi{flex:0 0 46%;scroll-snap-align:start;min-width:150px}
  .pro-kpi-v{font-size:24px}
  .pro-nav{margin:0 -12px 12px;padding:7px 12px;top:0}
  .pro-nav-co{display:none}
}
@media (max-width:640px){
  .mast-top{flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important;gap:8px!important;padding-top:10px!important;padding-bottom:10px!important}
  .mast-top .brand{min-width:0!important;flex:1 1 auto!important;overflow:hidden}
  .mast-top .brand>div{min-width:0;overflow:hidden}
  .mast-top .brand-name{font-size:11.5px!important;letter-spacing:.06em!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
  .mast-top .brand-sub{display:none!important}
  .mast-top .brand-name{font-size:0!important}
  .mast-top .brand-name::after{content:"EM Terminal";font:600 13px var(--sans);letter-spacing:.02em;text-transform:none}
  .mast-actions{flex-wrap:nowrap!important;gap:6px!important;flex:none}
  .mast-actions>.pill:not(.compare-btn){display:none!important}
  .mast-actions .compare-btn,.mast-actions .theme-btn{min-height:36px!important;padding:0 10px!important;font-size:12px!important}
  .identity .id-name{font-size:40px!important;line-height:1}
  .id-facts{grid-template-columns:1fr!important;gap:14px!important}
  .id-facts .fact-v{font-size:14.5px!important;line-height:1.5}
  .si-panel .si-zoom{padding-left:12px!important;padding-right:12px!important}
  #secHeadlines .hl-row:not([hidden]){display:block!important;padding-left:0!important}
  #secHeadlines .hl-date{display:block;width:auto!important;margin:0 0 5px;font-size:10.5px;color:var(--accent)}
}

/* ===== CHART MOBILE (2026-09-30): swipeable, full-size chart on phones ===== */
.si-panel .cov-chart-wrap.cov-swipe{overflow-x:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  scrollbar-width:thin;scroll-behavior:auto;touch-action:pan-x pan-y}
.si-panel .cov-chart-wrap.cov-swipe svg.cov-wide{width:auto!important;max-width:none!important;height:auto}
.si-panel .cov-chart-wrap.cov-swipe::after{content:"";position:sticky;right:0;top:0;float:right;width:18px;height:100%;
  margin-top:-100%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(0,0,0,.35))}
.cov-swipe-hint{display:none}
#covChartWrap svg>rect,#covChartWrap svg>text,#covChartWrap svg>line,#covChartWrap svg>polyline{pointer-events:none}
.cov-swipe svg.cov-wide text.cov-cap{display:none}
.cov-cap-layer{position:absolute;pointer-events:none;z-index:2}
.cov-cap-layer span{position:absolute;left:2px;white-space:nowrap;font:600 10px/1 var(--mono);letter-spacing:.07em;color:#c4c4cc;
  background:rgba(14,14,16,.82);padding:3px 6px;border-radius:4px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
@media (max-width:640px){
  .cov-swipe-hint{display:flex;align-items:center;gap:6px;margin:6px 2px 2px;font:500 11px var(--sans);color:#a3a3ae}
  .cov-bar-g{cursor:pointer}
}

/* ===== INSIGHTS LAYER (2026-10-13) ======================================== */
.ins-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--pro-gap,10px);margin:-6px 0 20px}
.ins-col{padding:13px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);min-width:0}
.ins-flags{border-left:3px solid var(--neg)}
.ins-h{display:flex;align-items:center;gap:8px;font:600 10px/1.2 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--dim);margin-bottom:9px}
.ins-h b{margin-left:auto;font:600 12px var(--mono);color:var(--ink);letter-spacing:0}
.ins-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.ins-dot.neg{background:var(--neg)}
.ins-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.ins-tag{font:500 10.5px var(--mono);color:var(--neg);background:var(--neg-tint);padding:2px 7px;border-radius:999px}
.ins-list{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.ins-list a{display:grid;gap:2px;color:var(--ink);text-decoration:none;font:500 13px/1.35 var(--sans)}
.ins-list a:hover{color:var(--accent)}
.ins-date{font:500 10.5px var(--mono);color:var(--dim)}
.ins-more,.ins-note,.ins-empty{margin:7px 0 0;font:400 11.5px/1.45 var(--sans);color:var(--ink-soft)}
.ins-chips{display:flex;flex-wrap:wrap;gap:6px}
.ins-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 6px 4px 10px;border-radius:999px;border:1px solid var(--line);
  background:var(--surface-2);color:var(--ink);text-decoration:none;font:500 12.5px var(--sans);transition:border-color .15s,transform .15s}
.ins-chip b{font:600 11px var(--mono);background:var(--surface);border-radius:999px;padding:2px 7px}
.ins-chip:hover{border-color:var(--accent);transform:translateY(-1px)}
.ins-chip:focus-visible,.ins-list a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ins-b{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:4px;font:600 9.5px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;vertical-align:1px}
.ins-new{background:var(--accent);color:#fff}
.ins-major{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}
.ins-pr{background:var(--warn-tint);color:var(--warn)}
.ins-ai{background:transparent;color:var(--dim);border:1px dashed var(--line)}
.ins-why{margin:5px 0 0;font:400 12px/1.45 var(--sans);color:var(--ink-soft)}
.ins-why b{font-weight:600;color:var(--dim)}
@media (max-width:640px){ .ins-panel{grid-template-columns:1fr;margin-top:-4px} .ins-b{margin:3px 6px 0 0} }

/* ===== NEWSROOM LAYER (2026-10-14) ======================================== */
:root{--nr-holo:#5fd6e0;--nr-holo-2:#2a8f9c;--nr-r-sm:6px;--nr-r:12px}
/* city strip under the masthead (Semafor-style) */
.nr-cities{display:flex;gap:18px;overflow-x:auto;scrollbar-width:none;padding:7px 2px 0;font:500 10.5px/1 var(--mono);letter-spacing:.08em;color:#8f8a7c;text-transform:uppercase;white-space:nowrap}
.nr-cities::-webkit-scrollbar{display:none}
.nr-cities b{color:#cfc9b6;font-weight:600}
/* the coverage desk (hero) */
.nr-hero{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(1200px 520px at 78% 30%,rgba(42,143,156,.20),transparent 60%),#0d0e10;
  border-bottom:1px solid #22252a;color:#efebe0}
.nr-hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.35;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:22px 22px}
.nr-hero-in{max-width:1320px;margin:0 auto;padding:clamp(26px,4vw,52px) clamp(16px,4vw,48px) clamp(20px,3vw,34px);
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-areas:"copy holo" "copy cap";gap:0 clamp(20px,4vw,56px);align-items:center}
.nr-copy{grid-area:copy;min-width:0}
.nr-kicker{display:flex;align-items:center;gap:9px;margin:0 0 14px;font:600 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#a9a391}
.nr-live{width:7px;height:7px;border-radius:50%;background:var(--nr-holo);box-shadow:0 0 0 0 rgba(95,214,224,.6);animation:nrPulse 2.4s ease-out infinite}
@keyframes nrPulse{0%{box-shadow:0 0 0 0 rgba(95,214,224,.55)}70%{box-shadow:0 0 0 9px rgba(95,214,224,0)}100%{box-shadow:0 0 0 0 rgba(95,214,224,0)}}
.nr-h{margin:0;font:500 clamp(30px,4.2vw,58px)/1.02 var(--serif);letter-spacing:-.022em;color:#f5f1e6;max-width:17ch;text-wrap:balance}
.nr-h em{font-style:italic;color:var(--nr-holo)}
.nr-ribbon{margin:16px 0 20px;font:500 12px/1.5 var(--mono);letter-spacing:.02em;color:#b7b09c}
.nr-ribbon b{color:#f5f1e6;font-weight:600}.nr-ribbon b.up{color:#6fd39a}.nr-ribbon b.down{color:#f08a73}.nr-ribbon span{color:#5b574d;margin:0 3px}
.nr-sigs{display:grid;gap:8px;max-width:640px}
.nr-sig{display:grid;gap:4px;padding:11px 14px;border-radius:var(--nr-r);text-decoration:none;color:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);
  transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s,background .25s}
.nr-sig:nth-child(3){opacity:.82}.nr-sig:nth-child(4){opacity:.6}
.nr-sig.first{border-color:rgba(95,214,224,.45);box-shadow:0 0 0 1px rgba(95,214,224,.12),0 12px 34px -16px rgba(95,214,224,.45)}
.nr-sig:hover{transform:translateX(3px);border-color:rgba(95,214,224,.5);opacity:1}
.nr-sig:focus-visible{outline:2px solid var(--nr-holo);outline-offset:2px}
.nr-sig-top{display:flex;align-items:center;gap:8px;font:500 12px var(--sans);min-width:0}
.nr-sig-top b{font-weight:600;color:#efebe0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nr-dot{width:7px;height:7px;border-radius:50%;flex:none}.nr-dot.up{background:#5fc48c}.nr-dot.down{background:#e87a5e}
.nr-sig-tone{font:600 9.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:4px}
.nr-sig-tone.up{color:#8fe0b0;background:rgba(95,196,140,.14)}.nr-sig-tone.down{color:#f5a28d;background:rgba(232,122,94,.14)}
.nr-sig-age{margin-left:auto;flex:none;font:400 11px var(--mono);color:#8a8578}
.nr-sig-title{font:500 15px/1.35 var(--serif);color:#f2eee3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nr-sig-src{font:400 10.5px var(--mono);color:#8a8578;text-transform:lowercase}
/* the hologram: projected globe */
.nr-holo{grid-area:holo;position:relative;width:min(100%,400px);aspect-ratio:1/1.12;justify-self:center;
  transform:translateY(var(--nr-drift,0px));transition:transform .2s linear}
.nr-globe{position:absolute;left:6%;top:0;width:88%;height:auto;aspect-ratio:1;opacity:0;transition:opacity 1.2s ease;
  filter:drop-shadow(0 0 24px rgba(95,214,224,.35))}
.nr-ready .nr-globe{opacity:.95}
.nr-holo-glow{position:absolute;left:6%;top:0;width:88%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(95,214,224,.16),rgba(95,214,224,0) 66%)}
.nr-holo-scan{position:absolute;left:6%;top:0;width:88%;aspect-ratio:1;border-radius:50%;pointer-events:none;mix-blend-mode:screen;opacity:.35;
  background:repeating-linear-gradient(0deg,rgba(95,214,224,.18) 0 1px,transparent 1px 4px);
  -webkit-mask-image:radial-gradient(circle,#000 60%,transparent 71%);mask-image:radial-gradient(circle,#000 60%,transparent 71%);
  animation:nrScan 6s linear infinite}
@keyframes nrScan{from{background-position:0 0}to{background-position:0 40px}}
.nr-beam{position:absolute;left:18%;right:18%;bottom:6%;height:26%;
  background:linear-gradient(0deg,rgba(95,214,224,.32),rgba(95,214,224,0));clip-path:polygon(38% 100%,62% 100%,100% 0,0 0);opacity:.55;filter:blur(2px)}
.nr-pad{position:absolute;left:32%;right:32%;bottom:4%;height:3.2%;border-radius:50%;background:radial-gradient(closest-side,rgba(95,214,224,.9),rgba(95,214,224,.12) 70%,transparent);
  box-shadow:0 0 22px rgba(95,214,224,.6)}
.nr-static .nr-globe{display:none}
.nr-static .nr-holo-glow{background:radial-gradient(circle at 38% 34%,rgba(170,240,245,.55),rgba(42,143,156,.35) 38%,rgba(13,14,16,.2) 70%);
  box-shadow:inset -18px -22px 40px rgba(0,0,0,.45),0 0 40px rgba(95,214,224,.25)}
.nr-holo-cap{grid-area:cap;margin:4px 0 0;text-align:center;font:400 11px/1.4 var(--mono);color:#7d786c}
@media (prefers-reduced-motion: reduce){ .nr-live,.nr-holo-scan{animation:none} .nr-holo{transform:none} }
/* company page as a news story */
.nr-kick{margin:0 0 6px;font:600 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.nr-dek{margin:10px 0 2px}
.nr-dek-line{margin:0 0 8px;font:500 12px/1.5 var(--mono);color:var(--dim)}.nr-dek-line span{opacity:.5;margin:0 2px}
.nr-bar{display:flex;height:22px;border-radius:var(--nr-r-sm);overflow:hidden;gap:2px;font:600 10.5px/22px var(--mono);letter-spacing:.03em}
.nr-bar i{display:block;min-width:0;overflow:hidden;white-space:nowrap;font-style:normal;padding:0 8px}
.nr-bar i span{display:inline-block}
.nr-bar .up{background:color-mix(in srgb,var(--pos) 85%,#000);color:#f2fff6}
.nr-bar .neu{background:color-mix(in srgb,var(--dim) 45%,var(--surface-2));color:var(--ink)}
.nr-bar .down{background:color-mix(in srgb,var(--neg) 88%,#000);color:#fff3ef}
/* headline river grouped by day */
.nr-daybreak{display:flex;align-items:center;gap:12px;margin:18px 0 4px;font:600 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.nr-daybreak::after{content:"";flex:1;height:1px;background:var(--line)}
.nr-daybreak:first-child{margin-top:4px}
/* harmony: one radius scale */
.pro-kpi,.ins-col,#main .card{border-radius:var(--nr-r)}
.pro-nav a,.ins-chip,.sync-btn{border-radius:999px}
@media (max-width:900px){
  .nr-hero-in{grid-template-columns:minmax(0,1fr) 128px;grid-template-areas:"kick kick" "h holo" "rib rib" "sigs sigs";align-items:center;gap:8px 12px}
  .nr-copy{display:contents}
  .nr-kicker{grid-area:kick;margin:0 0 4px;font-size:10px;letter-spacing:.1em;line-height:1.4;flex-wrap:wrap}
  .nr-h{grid-area:h;font-size:clamp(26px,7.4vw,40px);max-width:none}
  .nr-holo{grid-area:holo;width:128px;transform:none}
  .nr-ribbon{grid-area:rib;margin:4px 0 6px;font-size:11.5px}
  .nr-sigs{grid-area:sigs}
  .nr-holo-cap{display:none}
  .nr-sig:nth-child(n+3){display:none}
  .nr-cities{display:none}
}

/* ===== PLANET LAYER (2026-10-14) + ATLAS PALETTE ========================== */
:root{--chrome:#0a0f19;--chrome-2:#0e1521;--chrome-line:rgba(150,185,230,.13);--holo:#62d8e4;--amber:#f2a35e;--on-accent:#fff}
:root[data-theme="dark"]{
  --paper:#0a0e16;--ink:#f0ece2;--ink-soft:#c6c9d1;--dim:#8c95a6;
  --line:#232d3d;--line-soft:#19212e;
  --surface:#10161f;--surface-2:#151d29;--surface-3:#1d2735;
  --accent:#f2a35e;--accent-soft:#f7bd86;--accent-tint:#2a1e14;--on-accent:#1b1007;
  --pos:#5fd39a;--pos-tint:#10261c;--neg:#ff806b;--neg-tint:#2c1714;
  --warn:#f0c661;--warn-tint:#2a2414;--focus:#62d8e4;
  --shadow-sm:0 1px 2px rgba(0,0,0,.45);--shadow-md:0 14px 34px -14px rgba(0,0,0,.7);--shadow-lg:0 30px 80px -20px rgba(0,0,0,.8);
}
:root[data-theme="light"]{--paper:#f6f2ea;--focus:#1f7a8c;
  --shadow-md:0 12px 30px -14px rgba(16,24,40,.20),0 2px 6px rgba(16,24,40,.05);--shadow-lg:0 28px 70px -18px rgba(16,24,40,.30),0 8px 24px -8px rgba(16,24,40,.12)}
::selection{background:rgba(98,216,228,.32);color:inherit}
/* atmosphere behind the dark theme: cool top, warm left, faint violet low */
:root[data-theme="dark"] body{background-color:var(--paper);
  background-image:radial-gradient(1100px 700px at 100% 0%,rgba(98,216,228,.075),transparent 60%),
    radial-gradient(900px 700px at 0% 50%,rgba(242,163,94,.05),transparent 60%),
    radial-gradient(1000px 800px at 60% 100%,rgba(140,120,255,.05),transparent 62%);background-attachment:fixed}
/* chrome: one midnight band in both themes */
.mast{background:linear-gradient(180deg,var(--chrome-2),var(--chrome));border-bottom:1px solid var(--chrome-line)}
.mast::after{background:linear-gradient(90deg,transparent,var(--holo) 30%,var(--amber) 70%,transparent);opacity:.6}
.ticker-wrap{background:var(--chrome);border-bottom:1px solid var(--chrome-line)}
.ticker-wrap::before{background:linear-gradient(90deg,var(--chrome),transparent)}
.ticker-wrap::after{background:linear-gradient(270deg,var(--chrome),transparent)}
.mast .pill{color:#aab4c4}.mast .pill b{color:#f3efe6}
.co-search-input::placeholder,.co-search-ico{color:#8893a6}
.co-search-input:focus{border-color:var(--holo);box-shadow:0 0 0 3px rgba(98,216,228,.22)}
.nr-cities{color:#7f8aa0}.nr-cities b{color:#d7dce6}
/* hero: deep space, starfield, teal light behind the planet */
.nr-hero{background:radial-gradient(760px 560px at 76% 44%,rgba(42,143,170,.24),transparent 62%),
  radial-gradient(640px 420px at 6% 100%,rgba(242,163,94,.09),transparent 62%),linear-gradient(180deg,#0b111c,#080c14);
  border-bottom:1px solid var(--chrome-line)}
.nr-hero::before{opacity:1;background-size:auto;background-image:
  radial-gradient(1.2px 1.2px at 8% 18%,rgba(255,255,255,.75),transparent 70%),radial-gradient(1px 1px at 23% 64%,rgba(255,255,255,.5),transparent 70%),
  radial-gradient(1.4px 1.4px at 41% 12%,rgba(200,235,255,.7),transparent 70%),radial-gradient(1px 1px at 57% 82%,rgba(255,255,255,.45),transparent 70%),
  radial-gradient(1.3px 1.3px at 63% 28%,rgba(255,240,220,.7),transparent 70%),radial-gradient(1px 1px at 71% 9%,rgba(255,255,255,.55),transparent 70%),
  radial-gradient(1.5px 1.5px at 92% 22%,rgba(200,235,255,.8),transparent 70%),radial-gradient(1px 1px at 96% 71%,rgba(255,255,255,.5),transparent 70%),
  radial-gradient(1.1px 1.1px at 84% 90%,rgba(255,255,255,.55),transparent 70%),radial-gradient(1px 1px at 52% 50%,rgba(255,255,255,.35),transparent 70%),
  radial-gradient(1px 1px at 33% 92%,rgba(255,255,255,.4),transparent 70%),radial-gradient(1.2px 1.2px at 14% 80%,rgba(255,230,210,.55),transparent 70%)}
.nr-kicker{color:#9aa5b8}
.nr-h em{color:transparent;background:linear-gradient(100deg,#7fe6ef 10%,#62d8e4 45%,#f2a35e 100%);-webkit-background-clip:text;background-clip:text}
.nr-ribbon{color:#aab3c2}.nr-ribbon span{color:#4a5568}.nr-ribbon b.up{color:#6fe0a6}.nr-ribbon b.down{color:#ff8f7a}
.nr-sig{background:linear-gradient(180deg,rgba(150,190,240,.06),rgba(150,190,240,.02));border-color:rgba(150,190,240,.12);backdrop-filter:blur(3px)}
.nr-sig.first{border-color:rgba(98,216,228,.5)}
.nr-sig-age,.nr-sig-src{color:#8893a6}
/* the planet */
.nr-holo{width:min(100%,480px)}
.nr-globe{filter:none;cursor:grab;touch-action:pan-y}
.nr-ready .nr-globe{opacity:1}
.nr-holo-glow{background:radial-gradient(circle at 50% 50%,rgba(98,216,228,.14),rgba(98,216,228,0) 68%)}
.nr-holo-scan{display:none}   /* scanlines over the planet softened it; the shader keeps a faint scan band */
.nr-beam{opacity:.42}
.nr-static .nr-holo-glow{left:13%;top:7%;width:74%;background-color:#0d2a3a;background-size:200% 100%;background-position:28% 50%;
  box-shadow:inset -26px -30px 60px rgba(0,0,0,.7),inset 10px 10px 34px rgba(140,210,255,.22),0 0 46px rgba(98,216,228,.28)}
.nr-tip{position:fixed;z-index:120;pointer-events:none;display:grid;gap:3px;max-width:min(300px,calc(100vw - 16px));
  padding:9px 12px;border-radius:12px;background:rgba(8,13,21,.92);border:1px solid rgba(98,216,228,.38);
  box-shadow:0 14px 34px -10px rgba(0,0,0,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  font:500 11px/1.4 var(--mono);color:#c9d3e2}
.nr-tip[hidden]{display:none}
.nr-tip b{font:600 13.5px/1.25 var(--sans);color:#fff}
.nr-tip em{font-style:normal;color:var(--amber)}
.nr-tip i{font-style:normal}.nr-tip i.up{color:#6fe0a6}.nr-tip i.down{color:#ff8f7a}
.nr-tip.is-list{pointer-events:auto;padding:8px;gap:4px}
.nr-tip p{margin:0 4px 2px;font:600 10px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#8893a6}
.nr-tip button{display:grid;gap:2px;text-align:left;padding:8px 10px;border-radius:9px;border:1px solid rgba(150,190,240,.12);
  background:rgba(150,190,240,.05);color:inherit;font:inherit;cursor:pointer;min-height:44px}
.nr-tip button:active{background:rgba(98,216,228,.16)}
.nr-holo-cap{color:#7f8aa0;max-width:46ch;justify-self:center}
.nr-holo-cap b{color:#c9d3e2;font-weight:500}
.nr-holo-cap .lg{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 4px 0 6px;vertical-align:0}
.nr-holo-cap .lg.up{background:#5fd39a}.nr-holo-cap .lg.down{background:#ff806b}.nr-holo-cap .lg.mixed{background:#f2a35e}.nr-holo-cap .lg.quiet{background:#9eb0c7}
/* surfaces: glassy depth instead of flat slabs */
:root[data-theme="dark"] #main .card,:root[data-theme="dark"] .pro-kpi,:root[data-theme="dark"] .ins-col{
  background:linear-gradient(180deg,rgba(160,195,240,.035),rgba(160,195,240,0) 45%),var(--surface);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 18px 40px -26px rgba(0,0,0,.85)}
/* KPI tiles: the glow colour carries the meaning (cyan = data, green/coral = tone, gold = stale) */
.pro-kpi{--kc:var(--holo)}
.pro-kpi.is-up{--kc:var(--pos)}.pro-kpi.is-down{--kc:var(--neg)}.pro-kpi.is-stale{--kc:var(--warn)}
.pro-kpi::before{background:var(--kc)}
.pro-kpi::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(160px 70px at 0 0,color-mix(in srgb,var(--kc) 16%,transparent),transparent 70%)}
:root[data-theme="light"] .pro-kpi:not(.is-up):not(.is-down):not(.is-stale){--kc:#1f7a8c}
/* section tabs: amber pill for where you are */
.pro-nav a.on{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 72%,#d9583a));color:var(--on-accent);
  box-shadow:0 8px 20px -10px color-mix(in srgb,var(--accent) 80%,transparent)}
@media (max-width:900px){
  .nr-hero-in{grid-template-columns:minmax(0,1fr) 150px}
  .nr-holo{width:150px}
  .nr-holo-scan{display:none}
}

/* ===== HARMONY LAYER (2026-10-15) ========================================= */
@property --sy{syntax:'<color>';inherits:true;initial-value:#62d8e4}
@property --sy2{syntax:'<color>';inherits:true;initial-value:#f2a35e}
/* the walk: same brightness, hue steps from the hero's cyan round to its amber */
:root{--hu-cyan:#62d8e4;--hu-sky:#6cc6f5;--hu-blue:#7aa7ff;--hu-violet:#9b8cff;--hu-orchid:#cc8cf0;--hu-rose:#f08cb8;--hu-amber:#f2a35e;
  --on-sy:#0a0f19;--sy:var(--hu-cyan);--sy2:var(--hu-amber);transition:--sy .9s ease,--sy2 .9s ease}
:root[data-theme="light"]{--hu-cyan:#1b8796;--hu-sky:#1f7fb5;--hu-blue:#3d63d1;--hu-violet:#6450cf;--hu-orchid:#8f46b5;--hu-rose:#b23f78;--hu-amber:#b5602a;--on-sy:#fff}
:root[data-sync="hero"]{--sy:var(--hu-cyan);--sy2:var(--hu-amber)}
:root[data-sync="overview"]{--sy:var(--hu-cyan);--sy2:var(--hu-sky)}
:root[data-sync="runups"]{--sy:var(--hu-sky);--sy2:var(--hu-blue)}
:root[data-sync="headlines"]{--sy:var(--hu-blue);--sy2:var(--hu-violet)}
:root[data-sync="chart"]{--sy:var(--hu-violet);--sy2:var(--hu-orchid)}
:root[data-sync="topics"]{--sy:var(--hu-orchid);--sy2:var(--hu-rose)}
:root[data-sync="events"]{--sy:var(--hu-rose);--sy2:var(--hu-amber)}
:root[data-sync="people"]{--sy:var(--hu-amber);--sy2:var(--hu-rose)}
:root[data-sync="next"]{--sy:var(--hu-amber);--sy2:var(--hu-cyan)}
:root[data-sync="foot"]{--sy:var(--hu-cyan);--sy2:var(--hu-amber)}
/* each section owns its hue */
[data-hue]{--sec:var(--hu-cyan)}
[data-hue="runups"]{--sec:var(--hu-sky)}[data-hue="headlines"]{--sec:var(--hu-blue)}[data-hue="chart"]{--sec:var(--hu-violet)}
[data-hue="topics"]{--sec:var(--hu-orchid)}[data-hue="events"]{--sec:var(--hu-rose)}[data-hue="people"],[data-hue="next"]{--sec:var(--hu-amber)}
/* page atmosphere follows the section in view */
:root[data-theme="dark"] body{background-color:var(--paper);background-attachment:fixed;
  background-image:radial-gradient(1100px 760px at 100% 0%,color-mix(in srgb,var(--sy) 12%,transparent),transparent 62%),
    radial-gradient(900px 760px at 0% 100%,color-mix(in srgb,var(--sy2) 9%,transparent),transparent 62%),
    radial-gradient(1000px 800px at 55% 55%,color-mix(in srgb,var(--sy) 4%,transparent),transparent 70%)}
:root[data-theme="light"] body{background-attachment:fixed;
  background-image:radial-gradient(1100px 760px at 100% 0%,color-mix(in srgb,var(--sy) 9%,transparent),transparent 62%),
    radial-gradient(900px 760px at 0% 100%,color-mix(in srgb,var(--sy2) 7%,transparent),transparent 62%)}
/* section cards: hue hairline on top, soft glow in the corner */
:root[data-theme="dark"] #main [data-hue] > .card{
  background:linear-gradient(90deg,color-mix(in srgb,var(--sec) 85%,transparent),transparent 62%) top left/100% 2px no-repeat,
    radial-gradient(640px 200px at 0 0,color-mix(in srgb,var(--sec) 9%,transparent),transparent 70%),
    linear-gradient(180deg,rgba(160,195,240,.035),rgba(160,195,240,0) 45%),var(--surface)}
:root[data-theme="light"] #main [data-hue] > .card{
  background:linear-gradient(90deg,var(--sec),transparent 62%) top left/100% 2px no-repeat,
    radial-gradient(640px 200px at 0 0,color-mix(in srgb,var(--sec) 7%,transparent),transparent 70%),var(--surface)}
#main [data-hue] .card-num{color:var(--sec);background:color-mix(in srgb,var(--sec) 14%,transparent);border-color:color-mix(in srgb,var(--sec) 45%,transparent)}
#main [data-hue] .nr-daybreak{color:var(--sec)}
#main [data-hue] .nr-daybreak::after{background:linear-gradient(90deg,color-mix(in srgb,var(--sec) 45%,transparent),var(--line) 40%)}
#main [data-hue="overview"] .nr-kick{color:var(--sec)}
#fxNext .fx-kick{color:var(--sec)}
/* synced chrome: tab pill, progress, masthead hairline, now-reading card */
.pro-nav a.on{background:linear-gradient(135deg,var(--sy),var(--sy2));color:var(--on-sy);
  box-shadow:0 8px 22px -10px color-mix(in srgb,var(--sy) 85%,transparent)}
.mx-progress{background:linear-gradient(90deg,var(--sy2),var(--sy));box-shadow:0 0 12px color-mix(in srgb,var(--sy) 60%,transparent)}
.mast::after{background:linear-gradient(90deg,transparent,var(--sy) 30%,var(--sy2) 70%,transparent)}
.fx-follow{background:linear-gradient(180deg,color-mix(in srgb,var(--sy) 9%,var(--surface)),var(--surface));
  border-color:color-mix(in srgb,var(--sy) 28%,var(--line))}
.fx-follow .nr-live{background:var(--sy);box-shadow:0 0 0 0 color-mix(in srgb,var(--sy) 60%,transparent)}
.fx-f-index a.on{background:color-mix(in srgb,var(--sy) 14%,transparent)}
.fx-f-index a.on::after{background:var(--sy)}
.fx-f-nav a:hover,.fx-f-top:hover{border-color:var(--sy)}
/* chart and people map: from neutral/brown black to the hero's navy (dark in both themes) */
#main .si-panel{background:linear-gradient(180deg,#0e1522,#0a0f19);border-top-color:var(--sec,var(--hu-violet));
  box-shadow:inset 0 0 0 1px rgba(150,190,240,.08),0 24px 60px -30px rgba(0,0,0,.6)}
.si-panel svg rect[fill="#0e0e0e"]{fill:#0a0f19}
.si-zoom .range-btn{background:#152033;border-color:#26324a;color:#cfd7e6}
.si-zoom .range-btn:hover{background:#1d2a42;color:#fff}
.sis-sec{background:#0c1320;border-color:#1e2a3c}
.sis-flag,.sis-fr{border-bottom-color:#1a2434}
.sis-mtitle{border-top-color:#1a2434;color:#9aa5b8}
.sis-mention{border-bottom-color:#141d2b}
.sis-cov-quiet{background:#18212f;color:#b8c2d2}
.pm-layout{--gx-bg:#0a0f19;--gx-bg2:#0f1622;--gx-line:#243042;--gx-dim:#8893a6}
#pmSvg text{stroke:var(--gx-bg,#0a0f19)}
@media (prefers-reduced-motion: reduce){ :root{transition:none} }

/* ===== MOTION LAYER (2026-10-15) ========================================== */
:root{--mo-ease:cubic-bezier(.16,1,.3,1)}
.mx-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:200;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--holo,#62d8e4),var(--amber,#f2a35e));box-shadow:0 0 12px rgba(98,216,228,.55)}
@keyframes moUp{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:none}}
@keyframes moWord{from{opacity:0;transform:translate3d(0,.42em,0);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes moBar{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.nr-kicker{animation:moUp .8s var(--mo-ease) backwards}
.nr-ribbon{animation:moUp .8s var(--mo-ease) .55s backwards}
.nr-sig{animation:moUp .9s var(--mo-ease) backwards}
.nr-sig:nth-child(1){animation-delay:.7s}.nr-sig:nth-child(2){animation-delay:.8s}.nr-sig:nth-child(3){animation-delay:.9s}
.mx-w{display:inline-block;animation:moWord 1s var(--mo-ease) backwards;animation-delay:calc(var(--i) * 55ms + .12s)}
.nr-globe{transform:scale(.94);transition:opacity 1.4s ease,transform 1.8s var(--mo-ease)}
.nr-ready .nr-globe{transform:none}
.nr-copy{will-change:transform}
/* reveal on scroll */
.mx-rv{opacity:0;transform:translate3d(0,24px,0);transition:opacity .75s var(--mo-ease),transform 1s var(--mo-ease)}
#main > .mx-rv{transform:translate3d(0,40px,0)}
.rail-card.mx-rv{transform:translate3d(16px,0,0)}
.hl-row.mx-rv,.nr-daybreak.mx-rv{transform:translate3d(0,14px,0)}
.mx-rv.mx-in{opacity:1;transform:none}
.nr-dek.mx-in .nr-bar{animation:moBar 1.2s var(--mo-ease) .2s backwards}
@media (prefers-reduced-motion: reduce){
  .nr-kicker,.nr-ribbon,.nr-sig,.mx-w,.nr-dek .nr-bar{animation:none}
  .nr-globe{transform:none;transition:opacity .3s}
  .mx-rv{opacity:1;transform:none;transition:none}
}

/* ===== COMPACT LAYER (2026-10-15) ========================================= */
.nr-mom{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink);white-space:nowrap}
.nr-mom svg{width:56px;height:14px;flex:none}
.nr-mom i{font-style:normal;font-weight:600;color:var(--holo,#62d8e4)}   /* volume change, not tone: never green/red */
.nr-dek{margin-bottom:18px}

/* ===== SUMMARY LAYER (2026-10-15) ========================================= */
.hl-sum{margin:6px 0 4px;padding:8px 12px;border-left:2px solid color-mix(in srgb,var(--sec,var(--holo,#62d8e4)) 70%,transparent);
  border-radius:0 8px 8px 0;background:color-mix(in srgb,var(--sec,var(--holo,#62d8e4)) 6%,transparent);
  font:400 13.5px/1.55 var(--sans);color:var(--ink-soft);max-width:78ch}
.hl-sum-k{display:inline-block;margin-right:8px;font:600 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--sec,var(--holo,#62d8e4));vertical-align:1px}
.hl-sum-no{font-style:italic;color:var(--dim);background:none;border-left-color:var(--line)}
.hl-sum-no .hl-sum-k{color:var(--dim)}
#secHeadlines.sum-off .hl-sum{display:none}
.hl-sumtog{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:0 11px;border-radius:999px;cursor:pointer;
  font:600 11.5px var(--sans);color:var(--ink-soft);background:none;border:1px solid var(--line);margin-left:auto;margin-right:8px}
.hl-sumtog i{position:relative;width:24px;height:14px;border-radius:999px;background:var(--line);transition:background .2s}
.hl-sumtog i::after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#fff;transition:transform .2s}
.hl-sumtog[aria-pressed="true"]{color:var(--ink);border-color:color-mix(in srgb,var(--sec,var(--holo,#62d8e4)) 55%,var(--line))}
.hl-sumtog[aria-pressed="true"] i{background:var(--sec,var(--holo,#62d8e4))}
.hl-sumtog[aria-pressed="true"] i::after{transform:translateX(10px)}
.hl-sumtog:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.fx-story-sum{font:400 12.5px/1.5 var(--sans);color:var(--dim);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:640px){ .hl-sum{font-size:13px;padding:7px 10px} .hl-sumtog{margin-right:4px} }
@media (prefers-reduced-motion: reduce){ .hl-sumtog i,.hl-sumtog i::after{transition:none} }

/* ===== FINALE LAYER (2026-10-15) ========================================== */
/* people map: the centre name sits on a halo instead of overprinting its ring */
#pmSvg text{paint-order:stroke;stroke:var(--surface);stroke-width:5px;stroke-linejoin:round}
#pmSvg .pm-center-label{stroke-width:7px}
/* sticky "Now reading" card, filling the long empty rail */
.fx-follow{position:sticky;top:70px;margin-top:22px;padding:16px 16px 14px;border-radius:14px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--holo) 6%,var(--surface)),var(--surface));border:1px solid var(--line);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 22px 50px -30px rgba(0,0,0,.7)}
.fx-f-k{display:flex;align-items:center;gap:8px;margin:0 0 8px;font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.fx-f-name{margin:0;font:500 22px/1.15 var(--serif);color:var(--ink);letter-spacing:-.01em}
.fx-f-meta{margin:4px 0 10px;font:500 11px/1.4 var(--mono);color:var(--dim)}
.fx-mini{display:flex;gap:2px;height:6px;border-radius:3px;overflow:hidden;margin:0 0 12px}
.fx-mini i{display:block;min-width:3px}.fx-mini .up{background:var(--pos)}.fx-mini .neu{background:color-mix(in srgb,var(--dim) 45%,var(--surface-3))}
.fx-mini .down{background:var(--neg)}.fx-mini.empty i{background:var(--line)}
.fx-f-index{list-style:none;margin:0 0 12px;padding:10px 0 0;border-top:1px solid var(--line-soft);display:grid;gap:1px;counter-reset:fx}
.fx-f-index a{position:relative;display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;text-decoration:none;
  font:500 13px var(--sans);color:var(--ink-soft);transition:background .2s,color .2s}
.fx-f-index a::before{counter-increment:fx;content:counter(fx,decimal-leading-zero);font:500 10.5px var(--mono);color:var(--dim);width:18px}
.fx-f-index a:hover{background:var(--surface-2);color:var(--ink)}
.fx-f-index a.on{color:var(--ink);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.fx-f-index a.on::after{content:"";position:absolute;left:0;top:7px;bottom:7px;width:2px;border-radius:2px;background:var(--accent)}
.fx-f-nav{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 8px}
.fx-f-nav a{display:grid;gap:2px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);text-decoration:none;min-width:0;transition:border-color .2s,transform .25s var(--mo-ease,ease)}
.fx-f-nav a span{font:600 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.fx-f-nav a b{font:600 12.5px var(--sans);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-f-nav a.nx{text-align:right}
.fx-f-nav a:hover{border-color:var(--accent);transform:translateY(-1px)}
.fx-f-top{width:100%;padding:8px;border-radius:999px;border:1px dashed var(--line);background:none;color:var(--dim);font:500 12px var(--sans);cursor:pointer}
.fx-f-top:hover{color:var(--ink);border-style:solid;border-color:var(--holo)}
.fx-f-nav a:focus-visible,.fx-f-index a:focus-visible,.fx-f-top:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (max-width:980px){ .fx-follow{display:none} }
/* keep reading */
.fx-next{margin:44px 0 8px;padding-top:28px;border-top:1px solid var(--line)}
.fx-next-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0 0 16px}
.fx-kick{display:flex;align-items:center;gap:9px;margin:0;font:600 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.fx-next-head h2{margin:0;font:500 clamp(24px,2.6vw,32px)/1.1 var(--serif);letter-spacing:-.015em;color:var(--ink)}
.fx-next-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);gap:12px}
.fx-feature{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;padding:20px 20px 18px;border-radius:16px;text-decoration:none;
  color:#eef1f6;background:radial-gradient(420px 220px at 100% 0%,rgba(98,216,228,.22),transparent 60%),
  radial-gradient(360px 220px at 0% 100%,rgba(242,163,94,.16),transparent 62%),linear-gradient(160deg,#101a2a,#0a0f19);
  border:1px solid rgba(150,190,240,.16);box-shadow:0 26px 60px -34px rgba(0,0,0,.9);transition:transform .35s var(--mo-ease,ease),border-color .3s}
.fx-feature:hover{transform:translateY(-3px);border-color:rgba(98,216,228,.5)}
.fx-feature-k{font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#7fe6ef}
.fx-feature-n{font:500 30px/1.05 var(--serif);letter-spacing:-.015em;color:#fff;margin-top:4px}
.fx-feature-s{font:500 11px/1.4 var(--mono);color:#94a0b4;text-transform:uppercase;letter-spacing:.06em}
.fx-feature .fx-mini{margin:8px 0 2px}
.fx-feature .fx-mini .neu{background:rgba(160,180,210,.35)}.fx-feature .fx-mini .up{background:#5fd39a}.fx-feature .fx-mini .down{background:#ff806b}
.fx-feature-m{font:500 11.5px var(--mono);color:#b7c1d1}.fx-feature-m i{font-style:normal}.fx-feature-m .up{color:#6fe0a6}.fx-feature-m .down{color:#ff8f7a}
.fx-feature-l{font:500 14px/1.4 var(--serif);color:#dde3ec;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:4px}
.fx-feature-go{margin-top:auto;padding-top:12px;font:600 13px var(--sans);color:#f2a35e}
.fx-feature:focus-visible,.fx-story:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.fx-stories{display:grid;gap:8px}
.fx-story{display:grid;gap:4px;padding:12px 14px;border-radius:12px;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--line);
  transition:transform .3s var(--mo-ease,ease),border-color .25s}
.fx-story:hover{transform:translateX(4px);border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.fx-story-top{display:flex;align-items:center;gap:8px;min-width:0;font:500 12px var(--sans)}
.fx-story-top b{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-story-top .nr-sig-tone.up{color:var(--pos);background:var(--pos-tint)}.fx-story-top .nr-sig-tone.down{color:var(--neg);background:var(--neg-tint)}
.fx-story-age{margin-left:auto;flex:none;font:400 11px var(--mono);color:var(--dim)}
.fx-story-t{font:500 15px/1.35 var(--serif);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fx-story-src{font:400 10.5px var(--mono);color:var(--dim);text-transform:lowercase}
@media (max-width:760px){ .fx-next-grid{grid-template-columns:minmax(0,1fr)} .fx-feature-n{font-size:26px} }
/* footer: starfield, planet horizon, wordmark -- navy in both themes like the masthead */
footer.fx-foot{position:relative;overflow:hidden;isolation:isolate;margin:0;padding:0;max-width:none;text-align:left;
  background:linear-gradient(180deg,#0a0f19,#070b12);color:#c9d1dd;border-top:1px solid var(--chrome-line,rgba(150,185,230,.13))}
.fx-sky{position:absolute;inset:0;z-index:-2;pointer-events:none;background-image:
  radial-gradient(1.2px 1.2px at 6% 14%,rgba(255,255,255,.7),transparent 70%),radial-gradient(1px 1px at 19% 38%,rgba(255,255,255,.45),transparent 70%),
  radial-gradient(1.4px 1.4px at 33% 9%,rgba(200,235,255,.7),transparent 70%),radial-gradient(1px 1px at 47% 30%,rgba(255,255,255,.4),transparent 70%),
  radial-gradient(1.3px 1.3px at 61% 16%,rgba(255,240,220,.65),transparent 70%),radial-gradient(1px 1px at 74% 41%,rgba(255,255,255,.5),transparent 70%),
  radial-gradient(1.5px 1.5px at 88% 11%,rgba(200,235,255,.8),transparent 70%),radial-gradient(1px 1px at 95% 52%,rgba(255,255,255,.45),transparent 70%),
  radial-gradient(1px 1px at 11% 58%,rgba(255,255,255,.4),transparent 70%),radial-gradient(1.1px 1.1px at 54% 55%,rgba(255,255,255,.4),transparent 70%)}
.fx-horizon{position:absolute;z-index:-1;left:50%;width:3200px;height:3200px;margin-left:-1600px;bottom:calc(196px - 3200px);border-radius:50%;pointer-events:none;
  background:radial-gradient(4px 4px at 48.6% .9%,rgba(255,190,120,.85),transparent 70%),radial-gradient(3px 3px at 50.9% 1.4%,rgba(255,200,130,.7),transparent 70%),
    radial-gradient(3px 3px at 46.8% 2.1%,rgba(255,180,110,.6),transparent 70%),radial-gradient(4px 4px at 53.2% 2.6%,rgba(255,200,140,.65),transparent 70%),
    radial-gradient(3px 3px at 44.9% 3.4%,rgba(255,190,120,.5),transparent 70%),radial-gradient(3px 3px at 55.6% 1.2%,rgba(255,190,120,.55),transparent 70%),
    radial-gradient(farthest-side at 50% 50%,#0b1626 0,#0a1322 92%,#0c1b2e 100%);
  box-shadow:0 0 0 1px rgba(170,230,255,.55),0 -6px 26px rgba(98,216,228,.42),0 -30px 90px rgba(70,150,230,.30),0 -90px 200px rgba(60,120,220,.18),
    inset 0 26px 70px rgba(98,216,228,.16)}
.fx-in{max-width:1320px;margin:0 auto;padding:clamp(48px,7vw,96px) clamp(16px,4vw,48px) 0}
.fx-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:end}
.fx-foot .fx-kick{color:#9aa5b8}
.fx-h{margin:14px 0 10px;font:500 clamp(36px,5vw,68px)/.98 var(--serif);letter-spacing:-.025em;color:#f5f1e6}
.fx-h em{font-style:italic;color:transparent;background:linear-gradient(100deg,#7fe6ef 10%,#62d8e4 45%,#f2a35e 100%);-webkit-background-clip:text;background-clip:text}
.fx-sub{margin:0 0 20px;font:500 13px/1.5 var(--mono);color:#94a0b4}
.fx-actions{display:flex;gap:10px;flex-wrap:wrap}
.fx-btn{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 18px;border-radius:999px;cursor:pointer;font:600 13px var(--sans);
  color:#1b1007;background:linear-gradient(135deg,#f2a35e,#e2774a);border:0;box-shadow:0 10px 26px -12px rgba(242,163,94,.8);transition:transform .25s var(--mo-ease,ease)}
.fx-btn:hover{transform:translateY(-2px)}
.fx-btn.ghost{color:#e6ebf2;background:rgba(150,190,240,.06);border:1px solid rgba(150,190,240,.22);box-shadow:none}
.fx-btn.ghost:hover{border-color:#62d8e4}
.fx-btn:focus-visible,.fx-chips a:focus-visible{outline:2px solid #62d8e4;outline-offset:2px}
.fx-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;border-radius:14px;overflow:hidden;
  background:rgba(150,190,240,.12);border:1px solid rgba(150,190,240,.12)}
.fx-stats div{padding:14px 16px;background:rgba(10,15,25,.86)}
.fx-stats dt{font:600 9.5px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#8893a6}
.fx-stats dd{margin:6px 0 0;font:500 30px/1 var(--serif);color:#f5f1e6;font-variant-numeric:tabular-nums lining-nums}
.fx-stats dd.sm{font-size:19px;line-height:1.15}
.fx-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);margin:clamp(36px,5vw,56px) 0 0;padding-top:28px;border-top:1px solid rgba(150,190,240,.12)}
.fx-cols h3{margin:0 0 12px;font:600 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#f2a35e}
.fx-chips{display:flex;flex-wrap:wrap;gap:6px}
.fx-chips a{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;text-decoration:none;font:500 12.5px var(--sans);
  color:#dfe5ee;background:rgba(150,190,240,.06);border:1px solid rgba(150,190,240,.14);transition:border-color .2s,background .2s,transform .25s var(--mo-ease,ease)}
.fx-chips a span{font:600 10.5px var(--mono);color:#8893a6}
.fx-chips a:hover{border-color:#62d8e4;background:rgba(98,216,228,.10);transform:translateY(-1px)}
.fx-chips a[aria-expanded="true"]{border-color:#62d8e4;background:rgba(98,216,228,.14)}
.fx-pop{position:fixed;z-index:130;width:min(360px,calc(100vw - 16px));max-height:420px;display:flex;flex-direction:column;
  border-radius:14px;background:rgba(8,13,21,.96);border:1px solid rgba(98,216,228,.35);box-shadow:0 24px 60px -18px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#c9d3e2;overflow:hidden}
.fx-pop[hidden]{display:none}
.fx-pop-head{display:flex;align-items:center;gap:10px;padding:12px 12px 10px 14px;border-bottom:1px solid rgba(150,190,240,.12)}
.fx-pop-head b{font:600 14px var(--sans);color:#fff;white-space:nowrap}
.fx-pop-head span{flex:1;min-width:0;font:500 10.5px var(--mono);color:#8893a6;letter-spacing:.04em}
.fx-pop-x{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid rgba(150,190,240,.18);background:none;color:#c9d3e2;font-size:18px;line-height:1;cursor:pointer}
.fx-pop-x:hover{border-color:#62d8e4;color:#fff}
.fx-pop-list{overflow-y:auto;padding:6px;display:grid;gap:2px;overscroll-behavior:contain}
.fx-pop-list button{display:grid;grid-template-columns:10px minmax(0,1fr) auto;grid-template-areas:"dot name meta" "dot sector meta";
  align-items:center;column-gap:10px;min-height:46px;padding:7px 10px;border-radius:10px;border:0;background:none;color:inherit;text-align:left;cursor:pointer;font:inherit}
.fx-pop-list button:hover,.fx-pop-list button:focus-visible{background:rgba(98,216,228,.10);outline:none}
.fx-pop-list button:focus-visible{box-shadow:inset 0 0 0 2px #62d8e4}
.fx-pop-list b{grid-area:name;font:600 13px var(--sans);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-pop-list span{grid-area:sector;font:400 11px var(--sans);color:#8893a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-pop-list em{grid-area:meta;font:500 10.5px var(--mono);font-style:normal;color:#aab3c2;white-space:nowrap}
.fx-dot{grid-area:dot;width:9px;height:9px;border-radius:50%;align-self:center}
.fx-dot.up{background:#5fd39a}.fx-dot.down{background:#ff806b}.fx-dot.mixed{background:#f2a35e}.fx-dot.quiet{background:#9eb0c7}
.fx-how ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.fx-how li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:baseline;font:400 13px/1.45 var(--sans);color:#aeb8c7}
.fx-how li b{font:600 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#e6ebf2}
.fx-legal{margin:clamp(32px,4vw,48px) 0 0;padding:18px 0 0;border-top:1px solid rgba(150,190,240,.10);font:400 11.5px/1.65 var(--sans);color:#7f8aa0;max-width:110ch}
.fx-legal a{color:#f2a35e}
.fx-copy{margin:14px 0 0;font:500 11.5px/1.6 var(--sans);color:#9aa5b8;max-width:110ch}
.fx-word{margin:clamp(30px,5vw,60px) 0 0;padding:0 0 clamp(26px,3vw,40px);text-align:center;white-space:nowrap;
  font:500 min(8.6vw,128px)/.9 var(--serif);letter-spacing:-.035em;color:transparent;
  background:linear-gradient(180deg,rgba(235,242,250,.55),rgba(98,216,228,.22) 70%,rgba(98,216,228,0));-webkit-background-clip:text;background-clip:text;
  -webkit-text-stroke:1px rgba(170,215,240,.22)}
@media (max-width:900px){
  .fx-top,.fx-cols{grid-template-columns:minmax(0,1fr)}
  .fx-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fx-horizon{width:2200px;height:2200px;margin-left:-1100px;bottom:calc(92px - 2200px)}
  .fx-word{font-size:9.2vw}
}

/* ===== VOICES LAYER (2026-10-22) ========================================== */
[data-hue="voices"]{--sec:var(--hu-violet)}
:root[data-sync="voices"]{--sy:var(--hu-blue);--sy2:var(--hu-violet)}
.vc-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:34px;align-items:start}
.vc-body > :only-child{grid-column:1 / -1}
.vc-side{display:flex;flex-direction:column;gap:34px;min-width:0}
@media (max-width:860px){.vc-body{grid-template-columns:1fr;gap:28px}}
.vc-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--sec,var(--accent));
  display:flex;gap:10px;align-items:baseline;margin-bottom:14px}
.vc-k span{color:var(--dim);letter-spacing:.06em}
.vc-score{display:flex;gap:18px;align-items:flex-start}
.vc-score b{font-family:var(--serif);font-size:54px;line-height:.9;font-weight:600;letter-spacing:-.03em;color:var(--ink)}
.vc-score b small{font-size:.42em;color:var(--sec,var(--accent));margin-left:3px;vertical-align:.9em}
.vc-score p{margin:2px 0 0;font-size:13px;line-height:1.55;color:var(--dim);max-width:46ch}
.vc-score p strong{color:var(--ink)}
.vc-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;margin:18px 0 8px;gap:2px;background:var(--line-soft)}
.vc-bar i{display:block;min-width:3px}
.vc-bar .p{background:var(--pos)}.vc-bar .u{background:color-mix(in srgb,var(--dim) 55%,transparent)}.vc-bar .n{background:var(--neg)}
.vc-legend{display:flex;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:var(--dim)}
.vc-legend span::before,.vc-yt-sum span::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px;background:currentColor}
.vc-legend .p,.vc-yt-sum .p{color:var(--pos)}.vc-legend .n,.vc-yt-sum .n{color:var(--neg)}
.vc-stores{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 4px}
.vc-store{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:12px;text-decoration:none;color:var(--ink);
  background:color-mix(in srgb,var(--sec,var(--accent)) 7%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sec,var(--accent)) 22%,transparent);
  transition:transform .2s ease,box-shadow .2s ease}
.vc-store:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sec,var(--accent)) 50%,transparent)}
.vc-store:focus-visible{outline:2px solid var(--sec,var(--accent));outline-offset:2px}
.vc-store b{font-size:12.5px}.vc-store span{font-size:11.5px;color:var(--dim)}
.vc-store .vc-store-n{font-family:var(--mono);font-size:10px}
.vc-note{font-size:12px;line-height:1.55;color:var(--dim);margin:12px 0 0;max-width:60ch}
.vc-sub{font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--dim);margin:22px 0 8px}
.vc-qs,.vc-vs{list-style:none;margin:0;padding:0}
.vc-q{padding:12px 0 12px 14px;border-left:2px solid var(--line-soft);margin-bottom:6px}
.vc-q.vc-r1,.vc-q.vc-r2{border-left-color:color-mix(in srgb,var(--neg) 70%,transparent)}
.vc-q.vc-r4,.vc-q.vc-r5{border-left-color:color-mix(in srgb,var(--pos) 70%,transparent)}
.vc-q p{margin:5px 0 4px;font-size:13.5px;line-height:1.55;color:var(--ink);overflow-wrap:anywhere}
.vc-q-meta,.vc-v-meta{font-family:var(--mono);font-size:10.5px;color:var(--dim)}
.vc-stars{display:inline-flex;gap:2px}
.vc-stars i{width:9px;height:9px;background:color-mix(in srgb,var(--dim) 35%,transparent);
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.vc-stars i.on{background:var(--hu-amber,#f2a35e)}
.vc-yt-sum{font-size:13px;line-height:1.6;color:var(--dim);margin:0 0 10px}
.vc-yt-sum strong{color:var(--ink);font-size:15px}
.vc-yt-sum span{white-space:nowrap}
.vc-all{margin-top:12px;font:inherit;font-size:12px;font-family:var(--mono);letter-spacing:.04em;color:var(--sec,var(--accent));
  background:none;border:1px solid color-mix(in srgb,var(--sec,var(--accent)) 35%,transparent);border-radius:99px;padding:7px 14px;cursor:pointer;
  transition:background .2s ease,border-color .2s ease}
.vc-all:hover{background:color-mix(in srgb,var(--sec,var(--accent)) 10%,transparent);border-color:var(--sec,var(--accent))}
.vc-all:focus-visible{outline:2px solid var(--sec,var(--accent));outline-offset:2px}
.vc-v{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.vc-v:last-child{border-bottom:none}
.vc-v a{display:block;font-size:14px;line-height:1.45;color:var(--ink);text-decoration:none;font-weight:500;overflow-wrap:anywhere}
.vc-v a:hover{color:var(--sec,var(--accent))}
.vc-v a:focus-visible{outline:2px solid var(--sec,var(--accent));outline-offset:2px;border-radius:3px}
.vc-dot{flex:none;width:8px;height:8px;border-radius:50%;margin-top:7px;background:color-mix(in srgb,var(--dim) 60%,transparent)}
.vc-dot.p{background:var(--pos)}.vc-dot.n{background:var(--neg)}

/* ===== CRITERIA LAYER (2026-10-15) ======================================== */
.cr-dialog{width:min(720px,calc(100vw - 32px));max-height:min(88vh,860px);padding:0;border:1px solid rgba(150,190,240,.18);border-radius:16px;
  background:#0b111b;color:#c9d3e2;box-shadow:0 40px 120px -30px rgba(0,0,0,.9);overflow:hidden}
.cr-dialog[open]{display:flex;flex-direction:column}
.cr-head{flex:none}.cr-body{flex:1 1 auto;min-height:0}
.cr-dialog::backdrop{background:rgba(4,7,12,.70);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.cr-head{display:flex;gap:20px;align-items:flex-start;padding:26px 28px 6px}
.cr-kick{margin:0 0 8px;font:600 10.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#62d8e4}
.cr-head h2{margin:0;font:500 clamp(24px,3.2vw,32px)/1.12 var(--serif);letter-spacing:-.02em;color:#f5f1e6;max-width:20ch}
.cr-x{margin-left:auto;flex:none;width:36px;height:36px;border-radius:10px;border:1px solid rgba(150,190,240,.22);background:none;color:#c9d3e2;font-size:20px;line-height:1;cursor:pointer}
.cr-x:hover{border-color:#62d8e4;color:#fff}
.cr-x:focus-visible{outline:2px solid #62d8e4;outline-offset:2px}
.cr-body{overflow-y:auto;padding:16px 28px 26px;overscroll-behavior:contain}
.cr-short{margin:0 0 22px;padding:16px 18px;border-radius:12px;border-left:3px solid #62d8e4;
  background:linear-gradient(90deg,rgba(98,216,228,.10),rgba(98,216,228,.02))}
.cr-short span{display:block;margin-bottom:6px;font:600 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#62d8e4}
.cr-short p{margin:0;font:400 16px/1.55 var(--serif);color:#f0ece2}
.cr-body h3{margin:22px 0 10px;font:600 11px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#f2a35e}
.cr-reqs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cr-reqs li{display:flex;gap:12px;padding:14px;border-radius:12px;background:rgba(150,190,240,.035);border:1px solid rgba(150,190,240,.10)}
.cr-num{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font:600 12px var(--mono);color:#0a0f19;
  background:linear-gradient(135deg,#62d8e4,#f2a35e)}
.cr-reqs b{display:block;font:600 14px/1.35 var(--sans);color:#f5f1e6}
.cr-reqs p{margin:4px 0 0;font:400 13px/1.5 var(--sans);color:#aab3c2}
.cr-dots{margin:0;padding:0 0 0 18px;display:grid;gap:7px}
.cr-dots li{font:400 13.5px/1.5 var(--sans);color:#aab3c2}
.cr-dots li::marker{color:#62d8e4}
.cr-dots b{color:#f0ece2;font-weight:600}
.cr-dots-muted li::marker{color:#7f8aa0}
.cr-fine{margin:22px 0 0;padding-top:14px;border-top:1px solid rgba(150,190,240,.10);font:400 12px/1.55 var(--sans);color:#8893a6}
.fx-how a[data-cr]{color:#f2a35e;text-decoration:none;font-weight:600}
.fx-how a[data-cr]:hover{text-decoration:underline}
@media (max-width:720px){ .cr-reqs{grid-template-columns:minmax(0,1fr)} }
@media (max-width:480px){
  .mast #boardBtn .mb-lbl,.mast #compareBtn .mb-lbl{display:none}
  .mast #boardBtn,.mast #compareBtn{min-width:38px;justify-content:center;padding-left:0;padding-right:0}
}
@media (max-width:640px){
  .cr-dialog{width:100vw;max-width:100vw;max-height:92vh;margin:auto 0 0;border-radius:18px 18px 0 0}
  .cr-head{padding:18px 16px 4px}.cr-body{padding:12px 16px 22px}
  .cr-short p{font-size:15px}
}

/* ===== DECK LAYER (2026-10-26) ============================================ */
[data-hue="deck"]{--sec:var(--hu-sky)}
:root[data-sync="deck"]{--sy:var(--hu-sky);--sy2:var(--hu-blue)}
.dk-note{margin:0 0 16px;font-size:13px;line-height:1.55;color:var(--dim);max-width:72ch;padding:10px 14px;border-radius:10px;
  background:color-mix(in srgb,var(--hu-amber,#f2a35e) 9%,transparent);box-shadow:inset 3px 0 0 color-mix(in srgb,var(--hu-amber,#f2a35e) 70%,transparent)}
.dk-note b{color:var(--ink)}
.dk-stage{position:relative;margin:0;border-radius:14px;overflow:hidden;background:#05060a;aspect-ratio:16/9;
  box-shadow:0 18px 50px -24px rgba(0,0,0,.7),inset 0 0 0 1px color-mix(in srgb,var(--sec,var(--accent)) 25%,transparent)}
.dk-stage:focus-visible{outline:2px solid var(--sec,var(--accent));outline-offset:3px}
.dk-img{display:block;width:100%;height:100%;object-fit:contain}
.dk-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;
  font-size:18px;color:#fff;background:rgba(10,14,24,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);opacity:.85;transition:opacity .2s ease,transform .2s ease,background .2s ease}
.dk-nav:hover{opacity:1;background:rgba(10,14,24,.85);transform:translateY(-50%) scale(1.06)}
.dk-nav:focus-visible{outline:2px solid var(--sec,var(--accent));outline-offset:2px;opacity:1}
.dk-prev{left:12px}.dk-next{right:12px}
.dk-stage figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;gap:12px;align-items:baseline;padding:22px 16px 12px;
  background:linear-gradient(transparent,rgba(5,6,10,.88));color:#e8ecf4;font-size:12.5px}
.dk-count{font-family:var(--mono);font-size:11px;color:var(--hu-sky,#6cc6f5);flex:none}
.dk-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:12px}
.dk-th{position:relative;padding:0;border:0;border-radius:8px;overflow:hidden;cursor:pointer;background:#05060a;aspect-ratio:16/9;
  box-shadow:inset 0 0 0 1px var(--line-soft);opacity:.62;transition:opacity .2s ease,box-shadow .2s ease,transform .2s ease}
.dk-th img{display:block;width:100%;height:100%;object-fit:cover}
.dk-th span{position:absolute;left:6px;bottom:4px;font-family:var(--mono);font-size:10px;color:#fff;text-shadow:0 1px 3px #000}
.dk-th:hover{opacity:.9;transform:translateY(-1px)}
.dk-th[aria-selected="true"]{opacity:1;box-shadow:0 0 0 2px var(--sec,var(--accent))}
.dk-th:focus-visible{outline:2px solid var(--sec,var(--accent));outline-offset:2px}
@media (max-width:560px){.dk-nav{width:34px;height:34px;font-size:15px;top:calc(50% - 22px)}
  .dk-stage{aspect-ratio:auto}.dk-img{height:auto;aspect-ratio:16/9}
  .dk-stage figcaption{position:static;font-size:11.5px;line-height:1.45;padding:9px 12px 11px;background:#05060a}
  .dk-thumbs{grid-template-columns:repeat(5,1fr);gap:6px}}

/* ===== SHELL: skip link, sr-only, sync notice (site_shell.py, 2026-09-28) === */
.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ink);color:var(--paper);
  padding:10px 14px;border-radius:var(--radius-sm);font:500 13px var(--sans);text-decoration:none;transition:top .2s}
.skip-link:focus{top:12px;outline:2px solid var(--focus);outline-offset:2px}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* sync notice */
.sync-bar{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:300;
  display:flex;align-items:center;gap:12px;padding:10px 10px 10px 16px;max-width:calc(100vw - 24px);
  background:var(--ink);color:var(--paper);border-radius:999px;box-shadow:var(--shadow-lg);font:500 13px var(--sans);
  animation:syncIn .45s cubic-bezier(.16,1,.3,1) both}
@keyframes syncIn{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--pos);flex:none}
.sync-btn{border:0;border-radius:999px;padding:8px 14px;background:var(--accent);color:#fff;font:600 12.5px var(--sans);cursor:pointer;min-height:36px}
.sync-btn:hover{filter:brightness(1.08)}
.sync-x{border:0;background:transparent;color:inherit;opacity:.6;font-size:20px;line-height:1;cursor:pointer;padding:4px 8px;min-height:36px}
.sync-x:hover{opacity:1}
.sync-btn:focus-visible,.sync-x:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
