
  body.page-hub{ margin:0; background:var(--bg); color:var(--text);
    font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
  #sky{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;--cs:clamp(120px,13vw,214px)}
  @media(max-width:560px){ #sky{--cs:clamp(92px,26vw,124px)} }
  #sky-stars{position:absolute;inset:0;width:100%;height:100%;display:block}
  #sky-sun{position:absolute;width:var(--cs);height:var(--cs);border-radius:50%;
    transform:translate(-50%,calc(-50% + 80vh));opacity:0;
    transition:transform 1.7s cubic-bezier(.16,.78,.29,1),opacity 1.25s ease}
  #sky[data-sky="day"] #sky-sun{transform:translate(-50%,-50%);opacity:1}
  #sky-sun{background:radial-gradient(circle at 50% 50%,#fffdf7 0%,#fff2cc 20%,#ffd87f 40%,#ffb84d 58%,rgba(255,156,54,.34) 76%,transparent 84%);
    box-shadow:0 0 46px 6px rgba(255,226,150,.6),0 0 110px 28px rgba(255,192,92,.38),0 0 220px 86px rgba(255,170,68,.18)}
  .hub-wrap{ max-width:1240px; margin:0 auto; padding:10px 18px 72px; position:relative; z-index:1; }
  body.page-hub > .site-nav{ max-width:1240px; margin:14px auto 8px; padding:0 18px; }
  .ic-svg{ width:15px;height:15px;flex:none;vertical-align:middle; }
  /* hero */
  .hh{ margin:14px 0 8px; }
  .hh .eyebrow{ display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;color:var(--muted);
    padding:4px 12px;border-radius:999px;background:color-mix(in srgb,var(--panel) 70%,transparent);
    border:1px solid color-mix(in srgb,var(--line) 75%,transparent);backdrop-filter:blur(8px); }
  .hh .live{ width:7px;height:7px;border-radius:50%;background:var(--ok);position:relative; }
  .hh .live::after{ content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--ok);opacity:.5;animation:hp 2.4s ease-out infinite; }
  @keyframes hp{0%{transform:scale(.6);opacity:.6}100%{transform:scale(1.7);opacity:0}}
  .hh h1{ font-size:clamp(30px,4.6vw,50px);font-weight:800;letter-spacing:-.022em;margin:11px 0 5px;
    background:linear-gradient(110deg,var(--text),color-mix(in srgb,var(--info) 65%,var(--text)) 60%,color-mix(in srgb,var(--text) 50%,transparent));
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
    text-shadow:0 1px 36px color-mix(in srgb,var(--info) 24%,transparent); }
  .hh p{ margin:0;color:var(--muted);max-width:720px;font-size:14.5px;line-height:1.5; }
  /* macro command bar */
  .cmdbar{ display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px; }
  .cmdbar .mc{ font-size:12px;font-weight:600;padding:6px 12px;border-radius:10px;display:inline-flex;gap:7px;align-items:center;
    background:color-mix(in srgb,var(--panel) 72%,transparent);border:1px solid color-mix(in srgb,var(--line) 75%,transparent); }
  .cmdbar .mc b{ color:var(--text);font-weight:700; } .cmdbar .mc span{ color:var(--muted); }
  .cmdbar .mc.hot{ border-color:color-mix(in srgb,var(--up) 50%,var(--line));color:var(--up); }
  /* desk status board — 176px floor keeps the widest ledger chip (ACCRUING · NN/25 DATES)
     inside the card padding; the .ql-chip ellipsis guard below is the never-bleed backstop */
  .desks{ display:grid;gap:11px;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));margin:16px 0 6px; }
  .desk{ padding:13px 14px;border-radius:14px;text-decoration:none;display:block;transition:.16s ease;
    background:color-mix(in srgb,var(--panel) 80%,transparent);border:1px solid color-mix(in srgb,var(--line) 80%,transparent); }
  .desk:hover{ transform:translateY(-3px);border-color:color-mix(in srgb,var(--info) 45%,var(--line)); }
  .desk .dh{ display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--text); }
  .desk .dh .dot{ width:7px;height:7px;border-radius:50%;margin-left:auto;background:var(--down); }
  .desk .dh .dot.on{ background:var(--ok);box-shadow:0 0 8px color-mix(in srgb,var(--ok) 70%,transparent); }
  .desk small{ display:block;margin-top:5px;color:var(--muted);font-size:11.5px; }
  /* band header */
  .band{ display:flex;align-items:center;gap:12px;margin:30px 0 13px; }
  .band h2{ font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;
    white-space:nowrap;display:flex;align-items:center;gap:7px; }
  .band h2 .ic-svg{ color:var(--accent,var(--info)); }
  .band .ln{ flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent); }
  .band .cnt{ font-size:11.5px;color:color-mix(in srgb,var(--text) 52%,transparent);white-space:nowrap; }
  /* glass */
  .glass{ background:color-mix(in srgb,var(--panel) 82%,transparent);border:1px solid color-mix(in srgb,var(--line) 82%,transparent);
    border-radius:15px;backdrop-filter:blur(13px) saturate(1.08);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 6%,transparent),0 8px 26px -18px rgba(0,0,0,.5); }
  .acc{ position:relative;overflow:hidden; }
  .acc::before{ content:"";position:absolute;top:0;left:0;right:0;height:2.5px;background:linear-gradient(90deg,var(--accent,var(--info)),transparent 78%);opacity:.85; }
  /* alert cards */
  .alerts{ display:grid;gap:13px;grid-template-columns:1fr 1fr; }
  @media(max-width:760px){ .alerts{ grid-template-columns:1fr; } }
  .alert{ padding:14px 15px; }
  .alert h3{ font-size:13px;font-weight:700;margin:0 0 10px;display:flex;align-items:center;gap:8px; }
  .alert h3 .ic-svg{ width:16px;height:16px; }
  /* .arow layout/type is row-scoped (not .alert-scoped) so it survives the .lst-wrap
     "View all" overlay moving the list node out of the panel; borders stay in-flow-only
     because the overlay draws its own separators */
  .arow{ display:flex;align-items:center;gap:9px;padding:8px 0; }
  .alert .arow{ border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent); }
  .alert .arow:first-of-type{ border-top:0; }
  .arow .tk{ font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:12.5px;min-width:52px; }
  .arow .rd{ font-size:12px;color:color-mix(in srgb,var(--text) 70%,transparent);line-height:1.35; }
  /* command list */
  .cmd{ display:flex;flex-direction:column;gap:8px; }
  .row{ display:grid;grid-template-columns:122px 52px 86px 1fr;gap:12px;align-items:center;padding:11px 14px; }
  @media(max-width:760px){ .row{ grid-template-columns:92px 46px 1fr;gap:9px; } .row .conv{ display:none; } }
  .row .id .tk{ font-family:ui-monospace,Menlo,monospace;font-weight:800;font-size:14px; }
  .row .id .nm{ font-size:10.5px;color:var(--muted);display:block;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px; }
  .convbar{ position:relative;height:7px;border-radius:99px;background:color-mix(in srgb,var(--line) 60%,transparent);overflow:hidden; }
  .convbar i{ position:absolute;inset:0 auto 0 0;border-radius:99px;background:linear-gradient(90deg,var(--info),var(--up)); }
  .convbar.dn i{ background:linear-gradient(90deg,var(--warn),var(--down)); }
  .convn{ font-size:11px;color:var(--muted);margin-top:3px;text-align:right; }
  .conf{ font-size:11px;font-weight:700;text-align:center;color:var(--muted); }
  .conf b{ font-size:15px;color:var(--text);display:block; }
  .rd2{ font-size:12.5px;color:color-mix(in srgb,var(--text) 76%,transparent);line-height:1.4; }
  .flags{ display:flex;gap:5px;flex-wrap:wrap;margin-top:5px; }
  .fl{ font-size:9.5px;font-weight:700;letter-spacing:.02em;padding:1px 7px;border-radius:6px;text-transform:uppercase;
    background:color-mix(in srgb,var(--text) 9%,transparent);color:var(--muted); }
  .fl.edge,.fl.stealth{ background:color-mix(in srgb,var(--info) 22%,transparent);color:var(--info); }
  .fl.crowd{ background:color-mix(in srgb,var(--warn) 24%,transparent);color:var(--warn); }
  .fl.conf{ background:color-mix(in srgb,var(--up) 20%,transparent);color:var(--up); }
  .fl.fade,.fl.conflict{ background:color-mix(in srgb,var(--down) 20%,transparent);color:var(--down); }
  .fl.pol{ background:color-mix(in srgb,#8b5cf6 22%,transparent);color:#a78bfa; }
  .fl.iso{ background:color-mix(in srgb,var(--orange,var(--warn)) 18%,transparent);color:var(--orange,var(--warn)); }
  .peers{ font-size:9.5px;font-weight:600;color:color-mix(in srgb,var(--text) 50%,transparent);
    font-family:ui-monospace,Menlo,monospace;padding:1px 4px; }
  /* agreement matrix */
  .mtx{ display:inline-flex;gap:3px;align-items:center; }
  .mtx .cell{ width:9px;height:14px;border-radius:3px;background:color-mix(in srgb,var(--line) 70%,transparent); }
  .mtx .cell.up{ background:var(--up); } .mtx .cell.dn{ background:var(--down); }
  .mtx .cell.nz{ background:color-mix(in srgb,var(--muted) 60%,transparent); }
  .mtx .cell.off{ background:color-mix(in srgb,var(--line) 45%,transparent);opacity:.5; }
  .fal{ font-size:10.5px;color:color-mix(in srgb,var(--text) 50%,transparent);margin-top:4px; }
  .fal b{ color:color-mix(in srgb,var(--down) 80%,var(--text));font-weight:600; }
  /* sector heat */
  .heat{ display:grid;gap:9px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }
  .sec{ padding:11px 13px; }
  .sec .sh{ display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700; }
  .sec .etf{ font-family:ui-monospace,Menlo,monospace;font-size:10px;padding:1px 6px;border-radius:6px;
    background:color-mix(in srgb,var(--info) 16%,transparent);color:var(--info); }
  .sec .pol{ margin-left:auto;font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:6px; }
  .sec .pol.up{ background:color-mix(in srgb,var(--up) 20%,transparent);color:var(--up); }
  .sec .pol.dn{ background:color-mix(in srgb,var(--down) 20%,transparent);color:var(--down); }
  .sec .meter{ height:6px;border-radius:99px;margin:8px 0 6px;background:color-mix(in srgb,var(--line) 60%,transparent);overflow:hidden; }
  .sec .meter i{ display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--info),var(--up)); }
  .sec small{ font-size:10.5px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap; }
  .sec small b{ color:var(--text); }
  .disc{ font-size:11px;color:color-mix(in srgb,var(--text) 48%,transparent);margin-top:14px;line-height:1.5; }
  .empty{ font-size:12.5px;color:var(--muted);padding:9px 0; }
  /* ── V2: lifecycle stage chip + edge-remaining + opportunity ── */
  .stage{ font-size:9.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:6px;white-space:nowrap; }
  .stage.emerging{ background:color-mix(in srgb,var(--info) 26%,transparent);color:var(--info);box-shadow:0 0 0 1px color-mix(in srgb,var(--info) 35%,transparent) inset; }
  .stage.early{ background:color-mix(in srgb,var(--up) 20%,transparent);color:var(--up); }
  .stage.consensus{ background:color-mix(in srgb,var(--muted) 22%,transparent);color:var(--muted); }
  .stage.exhausted{ background:color-mix(in srgb,var(--down) 20%,transparent);color:var(--down); }
  .stage.distribution{ background:color-mix(in srgb,var(--down) 16%,transparent);color:var(--down); }
  .stage.faltering{ background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn);box-shadow:0 0 0 1px color-mix(in srgb,var(--warn) 30%,transparent) inset; }
  .stage.discovery{ background:color-mix(in srgb,var(--info) 24%,transparent);color:var(--info);box-shadow:0 0 0 1px color-mix(in srgb,var(--info) 35%,transparent) inset; }
  .stage.building{ background:color-mix(in srgb,var(--text) 10%,transparent);color:var(--muted); }
  /* ⚡ prime-entry badge (validated T1-T4 confluence) + honest price chips */
  .egate{ display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:800;letter-spacing:.03em;
    padding:2px 6px;border-radius:6px;white-space:nowrap;cursor:default; }
  .egate.buy{ background:color-mix(in srgb,var(--up) 24%,transparent);color:var(--up);box-shadow:0 0 0 1px color-mix(in srgb,var(--up) 40%,transparent) inset; }
  .egate.no{ background:color-mix(in srgb,var(--muted) 16%,transparent);color:var(--muted); }
  .tchips{ display:flex;flex-wrap:wrap;gap:5px;margin-top:5px; }
  .tchip{ font-size:9px;font-weight:700;padding:1.5px 6px;border-radius:5px;white-space:nowrap;
    background:color-mix(in srgb,var(--line) 55%,transparent);color:color-mix(in srgb,var(--text) 70%,transparent); }
  .tchip.bad{ background:color-mix(in srgb,var(--down) 16%,transparent);color:var(--down); }
  .tchip.good{ background:color-mix(in srgb,var(--up) 16%,transparent);color:var(--up); }
  /* discovery cards */
  .dcard .et .src{ font-size:8.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:5px;
    background:color-mix(in srgb,var(--info) 16%,transparent);color:var(--info); }
  .dcard .off{ font-size:8.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:5px;
    background:color-mix(in srgb,var(--up) 18%,transparent);color:var(--up);margin-left:4px; }
  .dcard .dscore{ margin-left:auto;font-size:15px;font-weight:800;color:var(--info); }
  .dcard .dchan{ font-size:10.5px;color:color-mix(in srgb,var(--text) 64%,transparent);line-height:1.4;margin-top:5px; }
  .opp{ display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:46px; }
  .opp b{ font-size:19px;font-weight:800;line-height:1;letter-spacing:-.02em;
    background:linear-gradient(120deg,var(--info),var(--up));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent; }
  .opp small{ font-size:8.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:2px; }
  .edge{ display:flex;align-items:center;gap:7px;margin-top:5px; }
  .edge .lab{ font-size:9.5px;color:var(--muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.03em; }
  .edge .ebar{ position:relative;flex:1;height:5px;border-radius:99px;background:color-mix(in srgb,var(--line) 60%,transparent);overflow:hidden;max-width:120px; }
  .edge .ebar i{ position:absolute;inset:0 auto 0 0;border-radius:99px;background:linear-gradient(90deg,var(--warn),var(--up)); }
  .edge .ev{ font-size:9.5px;font-weight:700;color:color-mix(in srgb,var(--text) 70%,transparent);min-width:26px; }
  .drv{ font-size:10px;color:color-mix(in srgb,var(--text) 55%,transparent);margin-top:3px;line-height:1.3; }
  .drv b{ color:color-mix(in srgb,var(--up) 80%,var(--text));font-weight:600; }
  /* emerging hero cards */
  .ecards{ display:grid;gap:11px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }
  .ecard{ padding:13px 14px;position:relative; }
  .ecard .et{ display:flex;align-items:center;gap:8px;margin-bottom:3px; }
  .ecard .et .tk{ font-family:ui-monospace,Menlo,monospace;font-weight:800;font-size:15px; }
  .ecard .et .nm{ font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
  .ecard .et .oppn{ margin-left:auto;font-size:17px;font-weight:800;
    background:linear-gradient(120deg,var(--info),var(--up));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent; }
  .ecard .erd{ font-size:11.5px;color:color-mix(in srgb,var(--text) 74%,transparent);line-height:1.4;margin:6px 0 2px; }
  /* catalyst rows */
  .cats{ display:grid;gap:8px;grid-template-columns:1fr 1fr; }
  @media(max-width:760px){ .cats{ grid-template-columns:1fr; } }
  .catrow{ display:flex;align-items:flex-start;gap:9px;padding:9px 12px; }
  .catrow .tk{ font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:12.5px;min-width:50px; }
  .catrow .cb{ font-size:11px;color:color-mix(in srgb,var(--text) 68%,transparent);line-height:1.35; }
  .catrow .ct{ font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;border-radius:6px;white-space:nowrap;
    background:color-mix(in srgb,#8b5cf6 20%,transparent);color:#a78bfa; }
  .catrow .age{ font-size:9.5px;color:var(--muted);white-space:nowrap;margin-left:auto; }
  /* live price chip (patched intraday by live.js) */
  .nb-px{ font-family:ui-monospace,Menlo,monospace;font-size:10.5px;font-weight:700;
    color:color-mix(in srgb,var(--text) 72%,transparent);white-space:nowrap; }
  .ecard .et .nb-px, .dcard .et .nb-px{ margin-left:2px; }
  footer.hf{ margin-top:30px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);font-size:11px;color:var(--muted);line-height:1.6; }
  @media (prefers-reduced-motion:reduce){ .desk,.row{transition:none} .hh .live::after{animation:none} }
  /* qledger honesty chips (D10) */
  .ql-chip { display:inline-block; font:700 9px/1.4 ui-monospace,Menlo,monospace;
    letter-spacing:.05em; text-transform:uppercase; padding:2px 7px; border-radius:6px;
    border:1px solid; white-space:nowrap; vertical-align:middle;
    min-width:0; max-width:100%; overflow:hidden; text-overflow:ellipsis; box-sizing:border-box; }
  .ql-chip-ungraded { background:color-mix(in srgb,var(--muted) 12%,transparent);
    color:var(--muted); border-color:color-mix(in srgb,var(--muted) 28%,transparent); }
  .ql-chip-accruing { background:color-mix(in srgb,var(--warn) 14%,transparent);
    color:var(--warn); border-color:color-mix(in srgb,var(--warn) 35%,transparent); }
  .ql-chip-graded-pos { background:color-mix(in srgb,var(--up) 14%,transparent);
    color:var(--up); border-color:color-mix(in srgb,var(--up) 35%,transparent); }
  .ql-chip-graded-neg { background:color-mix(in srgb,var(--down) 14%,transparent);
    color:var(--down); border-color:color-mix(in srgb,var(--down) 35%,transparent); }
  .desk-chips { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:5px; }
  /* signal scorecard horizon cards — labelled stat cells (no chip cramming) */
  .heat.trh-heat{ grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); }
  .trh .sh{ flex-wrap:nowrap; }
  .trh .trh-h{ white-space:nowrap; }
  .trh .pol.mea{ background:color-mix(in srgb,var(--muted) 22%,transparent);color:var(--muted); }
  .trh-grid{ display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:9px; }
  .trh-cell{ min-width:0; }
  .trh-lab{ display:block;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
    color:var(--muted);margin-bottom:2px;line-height:1.35; }
  .trh-val{ font-size:14px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums; }
  .trh-val.pos{ color:var(--up); } .trh-val.neg{ color:var(--down); }
  /* plain-word answer to the question-framed stage labels — the word carries the verdict,
     the colour only reinforces it (sign convention on the number itself stays untouched) */
  .trh-ans{ font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em; }
  .trh-ans.ok{ color:var(--up); } .trh-ans.bad{ color:var(--down); }
