/* AI Daily (test): stone board + floating modules + comment rail. Type follows AI Daily: Noto Sans SC for all reading text,
   Noto Serif SC 900 for headlines only, IBM Plex Mono for numbers/dates/tags. Scoped to body.v2. ASCII only. */
body.v2{
  --board:#E7E9EC; --card:#FFFFFF; --rail:#F4F5F7; --edge:rgba(16,24,40,.07); --edge2:rgba(16,24,40,.12);
  --ink:#14161B; --body:#2A2D33; --ink-soft:#585E6B; --ink-faint:#8B909B;
  --shadow:0 0 0 1px rgba(16,24,40,.045),0 1px 1px rgba(16,24,40,.03),0 10px 20px -12px rgba(16,24,40,.10),0 36px 64px -36px rgba(16,24,40,.22);
  --shadow-sm:0 0 0 1px rgba(16,24,40,.05),0 1px 2px rgba(16,24,40,.05),0 6px 14px -8px rgba(16,24,40,.12);
  --t-tech:#2F4F9E; --t-prod:#2D6A55; --t-ind:#9A5A2C; --t-pol:#9C3F3F; --t-talent:#63489A; --t-grey:#7D828D;
  --g-core:#2563A8; --g-s:#2E7A4F; --g-ss:#B0631E; --n-tech:#1F3F8F; --n-prod:#3A86D1; --n-ind:#D9822B; --n-pol:#C2412D; --n-talent:#3B3F46;
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .055 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background:var(--grain),linear-gradient(180deg,#EEF0F2 0,var(--board) 520px);background-color:var(--board);
  -webkit-font-smoothing:antialiased;
}
[data-theme="dark"] body.v2{
  --board:#0D1016; --card:#161A22; --rail:#1B2029; --edge:rgba(255,255,255,.06); --edge2:rgba(255,255,255,.1);
  --ink:#EDEEF0; --body:#CDD0D6; --ink-soft:#9DA3AE; --ink-faint:#6E7480;
  --shadow:0 0 0 1px rgba(255,255,255,.05),0 36px 64px -36px rgba(0,0,0,.8);
  --shadow-sm:0 0 0 1px rgba(255,255,255,.05),0 6px 14px -8px rgba(0,0,0,.6);
  --t-tech:#8EA6E6; --t-prod:#7CC3A6; --t-ind:#E0A67A; --t-pol:#E39A9A; --t-talent:#B9A1E3; --t-grey:#8D93A0;
  --g-core:#7FAEE6; --g-s:#7CC39B; --g-ss:#E3A066; --n-tech:#7F9CE8; --n-prod:#7DC0F0; --n-ind:#F0A35E; --n-pol:#EE7E6A; --n-talent:#C4C8D0;
  background:var(--grain),var(--board);
}
body.v2 .topbar{background:color-mix(in srgb,var(--card) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);border-bottom-color:var(--edge)}
body.v2 .sidebar{background:color-mix(in srgb,var(--card) 70%,transparent);border-right-color:var(--edge)}
body.v2 .wrap{max-width:1140px;padding:0 40px 80px}
body.v2 ::selection{background:color-mix(in srgb,var(--blue) 18%,transparent)}

/* masthead */
body.v2 .mh{padding:64px 2px 0}
body.v2 .mh .mast-date{font-size:11px;letter-spacing:.24em}
body.v2 .mh .mast-date::after{background:var(--edge2)}
body.v2 h1.mast-title{font-family:"Noto Serif SC",serif;font-weight:900;font-size:40px;line-height:1.2;
  letter-spacing:.02em;margin:14px 0 22px;color:var(--ink)}
body.v2 .brief{display:flex;flex-wrap:wrap;gap:8px 40px;max-width:none;border:none;padding:0;font-size:13px}
body.v2 .brief>span{display:flex;align-items:baseline;gap:10px;padding:0;border:none}
body.v2 .brief .k{color:var(--ink-faint);letter-spacing:.04em}
body.v2 .brief .v{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:16px;line-height:1;color:var(--blue)}

/* section heads */
body.v2 .section-head{margin:84px 2px 28px;gap:14px}
body.v2 .section-head h2{font-size:22px;letter-spacing:.04em;color:var(--ink)}
body.v2 .section-head::after{background:var(--edge2);order:2}
body.v2 .section-head .count{order:3}

/* the module */
body.v2 .mod{background:var(--card);border-radius:14px;box-shadow:var(--shadow);margin:0 0 32px;scroll-margin-top:76px}
body.v2 .mod-main{padding:30px 46px 30px;min-width:0}
body.v2 .mod-hd{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-bottom:18px}
body.v2 .mod-hd .dept-row{margin:0;gap:6px;display:flex;flex-wrap:wrap;align-items:center}
body.v2 .mod-hd .ghost{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:22px;line-height:1;color:var(--blue);letter-spacing:-.02em}
body.v2 .mod-hd .hr{flex:1;min-width:24px;height:1px;background:var(--edge2)}
body.v2 .mod-hd .meta{margin:0;font-size:11.5px;letter-spacing:.08em;color:var(--ink-faint)}
body.v2 .mod h3{font-family:"Noto Serif SC",serif;font-weight:900;font-size:20px;line-height:1.65;letter-spacing:.01em;color:var(--ink);text-wrap:pretty}
body.v2 .mod h3 .hl{background:linear-gradient(transparent 52%,rgba(250,204,21,.45) 52%,rgba(250,204,21,.45) 92%,transparent 92%);color:inherit;padding:0 2px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
body.v2 .mod h3 .dek{display:block;margin-top:2px;font-weight:600;font-size:17px;color:var(--ink-soft)}
body.v2 .txt{margin-top:14px}
body.v2 .txt p{font-size:15.5px;line-height:1.9;color:var(--body);margin:0 0 12px;text-align:justify;text-wrap:pretty}
body.v2 .txt p:last-child{margin-bottom:0}
body.v2 .txt ul.evb{margin:4px 0 10px 18px}
body.v2 .txt ul.evb li{font-size:15.5px;line-height:1.9;color:var(--body)}
body.v2 .txt b.nm{font-weight:700}
body.v2 a.src{font-size:13.5px;color:var(--ink-faint);border-bottom:1px solid var(--edge2);white-space:normal;transition:color .15s}
body.v2 a.src:hover{color:var(--blue);border-bottom-color:currentColor}
body.v2 mark{background:linear-gradient(transparent 60%,var(--hl) 60%);color:inherit;padding:0 1px}

/* tags (v6.5): department = tinted pill, coloured text, dot (blue / green / orange by department);
   domain = light grey pill, ink text, coloured dot (tech deep blue, product sky blue, industry orange,
   policy vermilion, talent graphite). Department first, then domain, as in the filter card. */
body.v2 .dept-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0}
body.v2 .dept-row button{font:inherit;cursor:pointer;margin:0;transition:box-shadow .15s,background .15s}
body.v2 .dept-row .nat-tag,body.v2 .dept-row .dept-tag{display:inline-flex;align-items:center;gap:6px;font-family:"Noto Sans SC",sans-serif;font-size:12px;font-weight:600;
  line-height:18px;padding:3px 11px;border-radius:999px;letter-spacing:0;white-space:nowrap;border:none}
body.v2 .dept-row .nat-tag::before,body.v2 .dept-row .dept-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--tc);flex:none}
body.v2 .dept-row i{margin:0;font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:10.5px;font-weight:500;opacity:.8}
body.v2 .dept-row .dept-tag{color:var(--tc);background:color-mix(in srgb,var(--tc) 9%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 24%,transparent)}
body.v2 .dept-row .nat-tag{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,var(--card))}
body.v2 .dept-row .tsep{width:1px;height:16px;background:var(--edge2);margin:0 4px}
body.v2 .dept-row button:hover,body.v2 .dept-row .on{box-shadow:0 0 0 3px color-mix(in srgb,var(--tc) 22%,transparent)}
body.v2 .dept-row .dept-tag:hover,body.v2 .dept-row .dept-tag.on{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 24%,transparent),0 0 0 3px color-mix(in srgb,var(--tc) 22%,transparent)}
body.v2 .dept-row button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
body.v2 .g-core{--tc:var(--g-core)} body.v2 .g-s{--tc:var(--g-s)} body.v2 .g-ss{--tc:var(--g-ss)} body.v2 .g-oth{--tc:var(--t-grey)}
body.v2 .n-tech{--tc:var(--n-tech)} body.v2 .n-prod{--tc:var(--n-prod)} body.v2 .n-ind{--tc:var(--n-ind)}
body.v2 .n-pol{--tc:var(--n-pol)} body.v2 .n-talent{--tc:var(--n-talent)} body.v2 .n-x{--tc:var(--t-grey)}
/* v6.6 capsules: one capsule per department (its sub-departments as segments), one grey capsule for all domains */
body.v2 .dept-row .tg{display:inline-flex;align-items:stretch;border-radius:999px;overflow:hidden;white-space:nowrap}
body.v2 .dept-row .tg-d{background:color-mix(in srgb,var(--tc) 9%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 24%,transparent)}
body.v2 .dept-row .tg-n{background:color-mix(in srgb,var(--ink) 6%,var(--card))}
body.v2 .dept-row .tg button{display:inline-flex;align-items:center;gap:6px;border:none;background:none;font-family:"Noto Sans SC",sans-serif;font-size:12px;font-weight:600;
  line-height:18px;padding:3px 11px;letter-spacing:0;transition:background .15s}
body.v2 .dept-row .tg button+button{padding-left:10px;box-shadow:inset 1px 0 0 color-mix(in srgb,var(--tc,var(--ink)) 18%,transparent)}
body.v2 .dept-row .tg-n button+button{box-shadow:inset 1px 0 0 var(--edge2)}
body.v2 .dept-row .tg button::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--tc);flex:none}
body.v2 .dept-row .tg-d button{color:var(--tc)}
body.v2 .dept-row .tg-n button{color:var(--ink)}
body.v2 .dept-row .tg button:hover,body.v2 .dept-row .tg button.on{background:color-mix(in srgb,var(--tc) 14%,transparent);box-shadow:none}
body.v2 .dept-row .tg button+button:hover,body.v2 .dept-row .tg button+button.on{box-shadow:inset 1px 0 0 var(--edge2)}
body.v2 .dept-row.sm .tg{background:none}
body.v2 .dept-row.sm .tg-d{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 30%,transparent)}
body.v2 .dept-row.sm .tg-n{box-shadow:inset 0 0 0 1px var(--edge2)}
body.v2 .dept-row.sm .tg button{font-size:11px;font-weight:500;line-height:16px;padding:1px 8px;gap:5px}
body.v2 .dept-row.sm .tg-n button{color:var(--ink-soft)}
body.v2 .dept-row.sm .tg button::before{width:6px;height:6px}
/* small rows on quotes, podcasts, market items: no ground, quieter */
body.v2 .dept-row.sm{margin:10px 0 0;gap:5px}
body.v2 .dept-row.sm .nat-tag,body.v2 .dept-row.sm .dept-tag{font-size:11px;font-weight:500;line-height:16px;padding:1px 8px;gap:5px;background:none}
body.v2 .dept-row.sm .nat-tag{color:var(--ink-soft);box-shadow:inset 0 0 0 1px var(--edge2)}
body.v2 .dept-row.sm .nat-tag::before,body.v2 .dept-row.sm .dept-tag::before{width:6px;height:6px}
body.v2 .dept-row.sm i{font-size:10px}
body.v2 .dept-row.sm .tsep{height:12px;margin:0 2px}
body.v2 .mk-list li .dept-row.sm{margin-top:8px}

/* ---- front signals: story left, Tracking rail right (as before v6.4) ---- */
body.v2 .sig{display:grid;grid-template-columns:minmax(0,1fr) 360px;overflow:hidden}
body.v2 .sig.solo{grid-template-columns:minmax(0,1fr);max-width:calc(100% - 360px)}
body.v2 .mod-hd .meta{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.04em;color:var(--ink-faint)}
body.v2 .mod-hd .dept-row{gap:6px}
body.v2 .main{container-type:inline-size}
@container (max-width:1040px){
  body.v2.peek .sig{grid-template-columns:minmax(0,1fr)}
  body.v2.peek .sig.solo{max-width:none}
  body.v2.peek .rail{box-shadow:inset 0 1px 0 var(--edge);min-height:0}
  body.v2.peek .rail-box{max-height:380px;overflow-y:auto}
  body.v2.peek .rail-scroll{position:static}
  body.v2.peek .rail-box::after{display:none}
}

/* tracking rail */
body.v2 .rail{display:flex;flex-direction:column;background:var(--rail);box-shadow:inset 1px 0 0 var(--edge);min-height:320px}
body.v2 .rail-hd{display:flex;align-items:baseline;gap:10px;padding:26px 24px 14px}
body.v2 .rail-hd .lbl{font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:600;letter-spacing:.18em;color:var(--blue)}
body.v2 .rail-hd .cnt{font-size:13px;color:var(--ink-soft)}
body.v2 .rail-box{position:relative;flex:1;min-height:0}
body.v2 .rail-scroll{position:absolute;inset:0;overflow-y:auto;padding:2px 20px 26px;scrollbar-width:thin;scrollbar-color:var(--edge2) transparent}
body.v2 .rail-scroll::-webkit-scrollbar{width:6px}
body.v2 .rail-scroll::-webkit-scrollbar-thumb{background:var(--edge2);border-radius:3px}
body.v2 .rail-box::after{content:"";position:absolute;left:0;right:0;bottom:0;height:56px;pointer-events:none;opacity:0;
  background:linear-gradient(color-mix(in srgb,var(--rail) 0%,transparent),var(--rail));transition:opacity .25s}
body.v2 .rail-box.ovf::after{opacity:1}

body.v2 .cm{display:grid;grid-template-columns:30px minmax(0,1fr);gap:11px;margin-bottom:14px}
body.v2 .cm .ava{margin-top:2px}
body.v2 .bub{background:var(--card);border-radius:3px 12px 12px 12px;padding:10px 14px 11px;box-shadow:var(--shadow-sm)}
body.v2 .bub .hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 4px;line-height:1.5;margin-bottom:3px}
body.v2 .bub .nm{font-size:14px;font-weight:700;color:var(--ink)}
body.v2 .bub .role{font-size:12.5px;color:var(--ink-faint)}
body.v2 .bub .say{font-size:14.5px;line-height:1.85;color:var(--body)}

/* little people: chibi pixel portraits, one colour */
body.v2 .ava{display:block;width:40px;height:40px;border-radius:12px;overflow:hidden;flex:none;color:var(--ink);
  background:var(--card);box-shadow:inset 0 0 0 1px var(--edge2)}
body.v2 .ava svg{display:block;width:100%;height:100%}
body.v2 .cm{grid-template-columns:40px minmax(0,1fr);gap:10px}
body.v2 .cm .ava{margin-top:0}

/* insights: one card per person; names in a fixed left column so every quote starts on the same line */
body.v2{--lc:232px}
body.v2 .mod.q{display:grid;grid-template-columns:var(--lc) minmax(0,1fr);margin:0 0 16px;overflow:hidden}
body.v2 .qwho{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:start;padding:22px 20px 22px 30px;line-height:1.5;
  background:var(--rail);box-shadow:inset -1px 0 0 var(--edge)}
body.v2 .qwho .nm{display:block;font-size:14px;font-weight:700;color:var(--ink)}
body.v2 .qwho .role{display:block;margin-top:2px;font-size:12.5px;line-height:1.55;color:var(--ink-faint)}
body.v2 .q blockquote{margin:0;padding:22px 40px 22px 30px;font-size:15px;line-height:1.85;color:var(--body);align-self:center}

/* stats */
body.v2 .mod.stats{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden}
body.v2 .st{padding:24px 26px;box-shadow:inset 1px 0 0 var(--edge),inset 0 1px 0 var(--edge)}
body.v2 .st b{display:block;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:22px;line-height:1.2;color:var(--blue)}
body.v2 .st span{display:block;margin-top:8px;font-size:13px;line-height:1.6;color:var(--ink-soft)}

/* podcast (from 2026-10-02): one card per episode, same left column as insights and market */
body.v2 .mod.pc{display:grid;grid-template-columns:var(--lc) minmax(0,1fr);margin:0 0 20px;overflow:hidden}
body.v2 .pc-side{display:flex;flex-direction:column;gap:6px;padding:28px 22px 26px 30px;background:var(--rail);box-shadow:inset -1px 0 0 var(--edge)}
body.v2 .pc-show{font-size:13.5px;font-weight:700;line-height:1.5;color:var(--blue)}
body.v2 .pc-len{font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;color:var(--ink-faint)}
body.v2 .pc-guests{display:flex;flex-direction:column;gap:12px;margin-top:18px;padding-top:16px;box-shadow:inset 0 1px 0 var(--edge2)}
body.v2 .pc-guests .k{font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;letter-spacing:.12em;color:var(--ink-faint)}
body.v2 .pg{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:start;line-height:1.5}
body.v2 .pg .nm{display:block;font-size:14px;font-weight:700;color:var(--ink)}
body.v2 .pg .role{display:block;margin-top:2px;font-size:12.5px;line-height:1.55;color:var(--ink-faint)}
body.v2 .pc-main{padding:28px 40px 28px;min-width:0;display:flex;flex-direction:column}
body.v2 .mod.pc h3{font-size:18px;line-height:1.6;margin:0}
body.v2 .mod.pc .txt p{font-size:15px;line-height:1.85;margin:0 0 12px}
body.v2 .mod.pc .txt .note{font-size:12.5px;color:var(--ink-faint);margin-left:2px}
body.v2 a.pc-src{align-self:flex-start;margin-top:8px;font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;letter-spacing:.04em;
  color:var(--ink-soft);padding:5px 14px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--edge2);transition:color .2s,box-shadow .2s,background .2s}
body.v2 a.pc-src:hover{color:var(--blue);background:color-mix(in srgb,var(--blue) 7%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue) 30%,transparent)}

/* market news (from 2026-10-02): one card per group, group name on top, list full width */
body.v2 .mod.mk{display:block;margin:0 0 20px;overflow:hidden}
body.v2 .mk-hd{display:flex;align-items:baseline;gap:10px;padding:22px 40px 16px;box-shadow:inset 0 -1px 0 var(--edge)}
body.v2 .mk-hd h3{font-family:"Noto Serif SC",serif;font-weight:900;font-size:17px;line-height:1.5;color:var(--ink);margin:0}
body.v2 .mk-hd .n{font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;color:var(--blue)}
body.v2 .mk-list{list-style:none;margin:0;padding:4px 40px 6px}
body.v2 .mk-list li{font-size:15px;line-height:1.85;color:var(--body);padding:16px 0;box-shadow:inset 0 -1px 0 var(--edge)}
body.v2 .mk-list li:last-child{box-shadow:none}
body.v2 .mk-list li b.nm{font-weight:700;color:var(--ink)}

/* charts (from 2026-10-13): small thumbnails where the md places them; click -> .figbox */
body.v2 .figs{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 16px}
body.v2 a.fig{display:block;width:300px;max-width:100%;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px var(--edge2);cursor:zoom-in;transition:box-shadow .2s}
body.v2 a.fig:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--blue) 45%,transparent),0 6px 18px rgba(0,0,0,.08)}
body.v2 a.fig img{display:block;width:100%;height:auto}
.figbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:32px;background:rgba(15,17,22,.78);cursor:zoom-out}
.figbox img{max-width:min(1400px,100%);max-height:100%;border-radius:8px;background:#fff;box-shadow:0 12px 40px rgba(0,0,0,.35)}

/* data & analysis (from 2026-10-13): one card per piece */
body.v2 .mod.an{display:block;margin:0 0 20px;padding:26px 40px 14px;overflow:hidden}
body.v2 .an-hd{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:10px}
body.v2 .an-hd .meta{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.04em;color:var(--ink-faint)}
body.v2 .an-src{font-size:13.5px;font-weight:700;line-height:1.5;color:var(--blue)}
body.v2 .mod.an h3{font-family:"Noto Serif SC",serif;font-weight:900;font-size:18px;line-height:1.6;color:var(--ink);margin:0 0 10px}
body.v2 .mod.an .txt p{font-size:15px;line-height:1.85;color:var(--body);margin:0 0 12px}
@media (max-width:920px){ body.v2 .mod.an{padding:22px} body.v2 a.fig{width:min(100%,360px)} }

/* ---------- motion: only when JS sets html.mo (never under reduced motion) ---------- */
body.v2 .rdprog{position:fixed;top:0;left:0;right:0;height:2px;z-index:70;background:var(--blue);transform-origin:0 50%;transform:scaleX(0);pointer-events:none;opacity:.85}
body.v2 .topbar{transition:box-shadow .3s}
body.v2.scrolled .topbar{box-shadow:0 8px 24px -18px rgba(16,24,40,.35)}
html.mo body.v2 .rv{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--dl,0s),transform .8s cubic-bezier(.2,.7,.2,1) var(--dl,0s)}
html.mo body.v2 .rv.in{opacity:1;transform:none}
html.mo body.v2 .section-head.rv{transform:none}
html.mo body.v2 .section-head.rv::after{transform:scaleX(0);transform-origin:0 50%;transition:transform 1.1s cubic-bezier(.2,.7,.2,1) .15s}
html.mo body.v2 .section-head.rv.in::after{transform:scaleX(1)}
/* highlighter sweeps in once the card arrives */
body.v2 .mod h3 .hl,body.v2 .mod mark{background-repeat:no-repeat;background-size:100% 100%}
html.mo body.v2 .rv .hl,html.mo body.v2 .rv mark{background-size:0% 100%;transition:background-size .9s cubic-bezier(.3,.6,.2,1) calc(var(--dl,0s) + .35s)}
html.mo body.v2 .rv.in .hl,html.mo body.v2 .rv.in mark{background-size:100% 100%}
/* tracking comments drop in one after another */
html.mo body.v2 .rv .cm{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--dl,0s) + .3s + var(--ci,0) * 90ms)}
html.mo body.v2 .rv.in .cm{opacity:1;transform:none}
/* answer the pointer */
@media (hover:hover){
  body.v2 .mod.sig,body.v2 .mod.pc,body.v2 .mod.mk,body.v2 .mod.q{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
  html.mo body.v2 .mod.rv.done{transition:opacity .7s,transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
  html body.v2 .mod.sig:hover,html body.v2 .mod.pc:hover,html body.v2 .mod.mk:hover,html body.v2 .mod.q:hover,
  html.mo body.v2 .mod.rv.done:not(.stats):not(.quotes):not(.fq-a):not(.vcb):not(.flt):hover{transform:translateY(-3px);
    box-shadow:0 0 0 1px rgba(16,24,40,.05),0 2px 4px rgba(16,24,40,.04),0 18px 32px -16px rgba(16,24,40,.16),0 48px 80px -40px rgba(16,24,40,.28)}
  body.v2 .cm:hover .ava,body.v2 .q:hover .ava,body.v2 .pg:hover .ava{animation:hop .5s steps(2,end) 2}
  body.v2 .bub{transition:box-shadow .25s}
  body.v2 .cm:hover .bub{box-shadow:0 0 0 1px color-mix(in srgb,var(--blue) 22%,transparent),0 6px 14px -8px rgba(16,24,40,.16)}
}
@keyframes hop{0%{transform:translateY(0)}50%{transform:translateY(-4px)}100%{transform:translateY(0)}}
/* jump target glows briefly */
body.v2 .mod:target{animation:ring 1.8s ease-out}
@keyframes ring{0%{box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 45%,transparent),var(--shadow)}100%{box-shadow:0 0 0 3px transparent,var(--shadow)}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body.v2 .mod,body.v2 .ava{transition:none!important;animation:none!important;transform:none!important}
}

body.v2 .daynav{margin-top:56px}
body.v2 footer{border-top:1px solid var(--edge2)}

@media (max-width:1180px){
  body.v2 .sig{grid-template-columns:minmax(0,1fr) 320px}
  body.v2 .sig.solo{max-width:none}
  body.v2 h1.mast-title{font-size:36px}
}
@media (max-width:920px){
  body.v2 .wrap{padding:0 14px 56px}
  body.v2 .mh{padding-top:40px}
  body.v2 h1.mast-title{font-size:30px}
  body.v2 .brief{gap:8px 28px}
  body.v2 .sig{grid-template-columns:1fr}
  body.v2 .mod-main{padding:24px 22px 24px}
  body.v2 .rail{box-shadow:inset 0 1px 0 var(--edge);min-height:0}
  body.v2 .rail-box{max-height:380px;overflow-y:auto}
  body.v2 .rail-scroll{position:static}
  body.v2 .rail-box::after{display:none}
  body.v2 .txt p{text-align:left}
  body.v2 .mod.stats{grid-template-columns:1fr 1fr}
  body.v2 .mod.q,body.v2 .mod.pc{grid-template-columns:1fr}
  body.v2 .qwho{padding:18px 22px;box-shadow:inset 0 -1px 0 var(--edge)}
  body.v2 .q blockquote{padding:16px 22px 20px}
  body.v2 .pc-side{padding:20px 22px;box-shadow:inset 0 -1px 0 var(--edge)}
  body.v2 .pc-main{padding:22px}
  body.v2 .mk-hd{padding:16px 22px 12px}
  body.v2 .mk-list{padding:4px 22px}
}
@media (prefers-reduced-motion:reduce){body.v2 .rail-box::after,body.v2 a.src{transition:none}}

/* ===== side panel: open X / YouTube sources next to the text (v5.21) ===== */
body.v2{--pw:clamp(400px,36vw,540px);--pk-in:cubic-bezier(.22,1,.36,1);--pk-out:cubic-bezier(.4,0,.7,.2)}
body.v2.peek .layout{padding-right:var(--pw)}
body.v2.peek .rtoc{display:none}
/* layout changes happen in one frame; motion is added back with transforms */
html.pk-snap{overflow-anchor:none}
html.pk-snap .sidebar,html.pk-snap body.v2 .layout{transition:none!important}

#peek{position:fixed;top:48px;right:0;bottom:0;width:var(--pw);z-index:58;display:flex;flex-direction:column;
  background:var(--card);box-shadow:-1px 0 0 var(--edge2),-28px 0 56px -36px rgba(16,24,40,.38);
  transform:translate3d(100%,0,0);visibility:hidden;will-change:transform;contain:layout paint;overscroll-behavior:contain;
  transition:transform .3s var(--pk-out),visibility 0s linear .3s}
body.v2.peek #peek{transform:none;visibility:visible;transition:transform .5s var(--pk-in),visibility 0s}
#peek>*{opacity:0;transform:translate3d(14px,0,0);transition:opacity .15s,transform .15s}
body.v2.peek #peek>*{opacity:1;transform:none;transition:opacity .36s .12s,transform .5s var(--pk-in) .1s}
#peek .pk-hd{display:flex;align-items:center;gap:10px;padding:12px 14px 12px 18px;box-shadow:inset 0 -1px 0 var(--edge)}
#peek .pk-who{flex:1;min-width:0;font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:600;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s}
#peek .pk-btn{font-size:12.5px;color:var(--ink-soft);background:none;border:none;cursor:pointer;padding:5px 10px;border-radius:999px;
  box-shadow:inset 0 0 0 1px var(--edge2);text-decoration:none;white-space:nowrap;font-family:inherit;line-height:1.4;
  transition:color .15s,box-shadow .15s,transform .15s}
#peek .pk-btn:hover{color:var(--blue);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue) 35%,transparent)}
#peek .pk-btn:active{transform:scale(.95)}
#peek .pk-x{width:30px;height:30px;padding:0;font-size:17px;line-height:30px;text-align:center}
#peek .pk-tip{padding:10px 18px 0;font-size:12px;line-height:1.6;color:var(--ink-faint)}
#peek .pk-tip:empty{display:none}
/* panel open and the text column gets narrow: Tracking moves under the text */
body.v2 .main{container-type:inline-size}

#peek .pk-body{position:relative;flex:1;min-height:0;margin-top:8px;background:var(--rail);overflow:hidden}
#peek iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;opacity:0;transform:translate3d(0,8px,0);
  transition:opacity .32s ease,transform .45s var(--pk-in)}
#peek iframe.ok{opacity:1;transform:none}
#peek iframe.gone{opacity:0;transform:none;transition:opacity .2s}
/* skeleton while the post loads */
#peek .pk-skel{position:absolute;left:18px;right:18px;top:16px;padding:18px;border-radius:14px;background:var(--card);
  box-shadow:0 0 0 1px var(--edge);transition:opacity .25s}
#peek .pk-skel.hide{opacity:0}
#peek .pk-skel i{display:block;height:11px;border-radius:6px;margin-top:12px;
  background:linear-gradient(90deg,var(--rail) 0,var(--edge) 40%,var(--rail) 80%) 0 0/300% 100%;animation:pkshim 1.3s linear infinite}
#peek .pk-skel i:first-child{width:42px;height:42px;border-radius:50%;margin-top:0}
#peek .pk-skel i:nth-child(2){width:38%}
#peek .pk-skel i:nth-child(3){width:96%;margin-top:20px}
#peek .pk-skel i:nth-child(4){width:88%}
#peek .pk-skel i:nth-child(5){width:64%}
#peek .pk-skel i:nth-child(6){height:150px;border-radius:10px;margin-top:20px}
@keyframes pkshim{to{background-position:-300% 0}}

/* the clicked source and the sentence it backs */
body.v2 a.peeking{color:#fff!important;background:var(--blue);border-radius:4px;box-shadow:0 0 0 3px var(--blue);border-bottom-color:transparent!important;
  transition:background .2s,box-shadow .2s,color .2s}
body.v2 .pk-mk{background-image:linear-gradient(color-mix(in srgb,var(--blue) 13%,transparent),color-mix(in srgb,var(--blue) 13%,transparent));
  background-repeat:no-repeat;background-size:0 100%;background-position:0 0;color:var(--ink);transition:background-size .6s var(--pk-in)}
body.v2 .pk-mk.on{background-size:100% 100%}
body.v2 .pk-mk.off{background-size:0 100%;background-position:100% 0;transition:background-size .3s ease}
body.v2 .pk-blk{position:relative}
body.v2 .pk-blk::after{content:"";position:absolute;left:-14px;top:.35em;bottom:.35em;width:3px;border-radius:2px;background:var(--blue);
  transform:scaleY(0);transform-origin:50% 0;transition:transform .45s var(--pk-in)}
body.v2 .pk-blk.on::after{transform:none}
body.v2 .pk-dim,body.v2 .pk-undim{transition:opacity .35s ease!important}
body.v2 .pk-dim{opacity:.42!important}

@media (max-width:919px){#peek{display:none}body.v2.peek .layout{padding-right:0}}
@media (prefers-reduced-motion:reduce){#peek,#peek>*,#peek iframe,body.v2 .pk-mk,body.v2 .pk-blk::after{transition:none!important}#peek .pk-skel i{animation:none}}

/* ---- one shell for every board (Daily 2.0, Weekly, Venture, Reads, FAQ): same board, sidebar, column, masthead, cards (v5.24) ---- */
body.v2{--paper:var(--card);--rule:var(--edge2);--rule-soft:var(--edge)}
body.v2 .main>.wrap{max-width:1140px;padding:0 40px 80px}

/* AI Weekly: subtabs as one pill switch under the title */
body.wk .subtabs{display:inline-flex;gap:4px;margin:22px 0 0;padding:4px;border:none;border-radius:999px;background:var(--card);box-shadow:var(--shadow-sm);overflow:visible}
body.wk .subtabs a,body.wk .subtabs span{padding:6px 18px;border-radius:999px;border:none!important;font-size:13.5px;color:var(--ink-soft)}
body.wk .mh+.section-head{margin-top:60px}
body.wk .subtabs a:hover{background:var(--blue-wash);color:var(--blue)}
body.wk .subtabs a.active{background:var(--blue);color:#fff}
[data-theme="dark"] body.wk .subtabs a.active{color:#0E1118}

/* AI Weekly stories: a daily module; views sit in a grey footer like the Tracking rail */
body.wk .wstory{overflow:hidden}
body.wk .wstory h3{margin:0}
body.wk .w-sub{border-left:none;padding:0;margin:6px 0 0;font-weight:600;font-size:16px;line-height:1.75;color:var(--ink-soft)}
body.wk .w-lbl{margin:28px 0 10px;font-size:13px;letter-spacing:.12em}
body.wk .w-lbl::after{content:"";flex:1;height:1px;background:var(--edge2);order:2}
body.wk .w-lbl .n{order:1}
body.wk .w-lbl .xall{order:3;margin-left:0;border-radius:999px}
body.wk .w-ins p{font-size:15.5px;line-height:1.9;color:var(--body);text-align:justify}
body.wk .wevs{border-top:1px solid var(--edge)}
body.wk details.wev{border-bottom:1px solid var(--edge)}
body.wk details.wev>summary{padding:12px 10px;margin:0 -10px;border-radius:8px}
body.wk details.wev>summary:hover{background:var(--rail)}
body.wk .wev-d{font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:600}
body.wk .wev-body{padding:2px 10px 16px 100px}
body.wk .wev-body p{font-size:15px;line-height:1.85;color:var(--body)}
body.wk .wstory details.tracking{margin:0;padding:6px 46px 10px;border-left:none;background:var(--rail);box-shadow:inset 0 1px 0 var(--edge)}
body.wk .wstory details.tracking::before{display:none}
body.wk .wstory details.tracking summary{padding:10px 0;margin:0}
body.wk .wstory details.tracking summary:hover{background:none}
body.wk .wstory details.tracking summary .lbl{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.18em}
body.wk .t-item{font-size:14.5px;line-height:1.8;border-top-style:solid;border-top-color:var(--edge)}
body.wk .w-xref{margin-top:18px}

/* AI Weekly venture board: each block is a card */
body.wk .vcb{padding:30px 46px}
body.wk .vc .summary{font-size:15.5px}
body.wk .vc .charts{background:none;padding:0;border-radius:0}
body.wk .vc .chart-panel+.chart-panel{border-left-color:var(--edge2)}
body.wk .vc .bar-track{background:var(--rail);border-radius:2px}
body.wk .vc .bar-fill{border-radius:2px}
body.wk .vc .section-note{margin:-12px 2px 18px}
body.wk .vc .deal-table th{border-top:none}
body.wk .vc .deal-table tr:last-child td{border-bottom:none}
body.wk .vc .sector-tag,body.wk .vc .academic-tag{border-radius:999px;padding:1px 10px}
body.wk .vc .profile-part.finance{background:var(--rail);border-radius:10px}
body.wk .vc dialog{border-left:none;box-shadow:-30px 0 60px -30px rgba(16,24,40,.35),0 0 0 1px var(--edge)}
body.wk .vc .drawer-top{border-bottom-color:var(--edge)}

/* AI Reads: masthead tools sit where the daily brief sits */
body.v2 .brief i.k{font-style:normal}
body.rdp .rd-tools{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
body.rdp .rd-tools .rd-search{position:static}
body.rdp .rd-stat{margin:0}
body.rdp .rs-grid{margin-top:56px}

@media (max-width:920px){
  body.v2 .main>.wrap{padding:0 14px 56px}
  body.wk .vcb{padding:22px}
  body.wk .wstory details.tracking{padding:4px 22px 8px}
  body.wk .wev-body{padding:2px 0 14px}
  body.rdp .rs-grid{margin-top:36px}
}

/* ---- daily filter (v6.2): everything ticked by default; untick to narrow. Sidebar keeps only dates. ---- */
body.v2 .f-off{display:none!important}
body.v2 .mod.flt{margin:40px 0 0;padding:0;overflow:hidden}
body.v2 .flt-row{display:grid;grid-template-columns:var(--lc) minmax(0,1fr);align-items:start}
body.v2 .flt-row+.flt-row{box-shadow:inset 0 1px 0 var(--edge)}
body.v2 .flt-h{padding:22px 20px 20px 46px;display:flex;flex-direction:column;gap:6px}
body.v2 .flt-h b{font-size:14px;font-weight:700;line-height:24px;color:var(--ink)}
body.v2 .flt-act{display:flex;gap:12px}
body.v2 .flt-act button{font:inherit;font-size:12px;color:var(--blue);background:none;border:none;padding:0;cursor:pointer}
body.v2 .flt-act button:disabled{color:var(--ink-faint);opacity:.5;cursor:default}
body.v2 .flt-body{padding:18px 46px 18px 10px;display:flex;flex-direction:column;gap:12px}
body.v2 .flt-grp{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:start;gap:12px}
body.v2 .flt-chips{display:flex;flex-wrap:wrap;gap:8px}
/* a checkbox: square box + label; ticked = tinted chip, unticked = plain text */
body.v2 .flt .bx{width:13px;height:13px;border-radius:3px;flex:none;align-self:center;box-shadow:inset 0 0 0 1.5px var(--edge2);position:relative;transition:background .15s,box-shadow .15s}
body.v2 .flt [aria-pressed="true"] .bx{background:var(--tc);box-shadow:none}
body.v2 .flt [aria-pressed="true"] .bx::after{content:"";position:absolute;left:4px;top:1.5px;width:3px;height:6.5px;border:solid #fff;border-width:0 1.8px 1.8px 0;transform:rotate(45deg)}
body.v2 .flt [aria-pressed="mixed"] .bx{background:var(--tc);box-shadow:none}
body.v2 .flt [aria-pressed="mixed"] .bx::after{content:"";position:absolute;left:3px;right:3px;top:5.5px;height:2px;border-radius:1px;background:#fff}
body.v2 .flt .fg,body.v2 .flt .fk{font:inherit;cursor:pointer;border:none;background:none;display:inline-flex;align-items:baseline;gap:7px;line-height:20px;transition:background .15s,color .15s,box-shadow .15s}
body.v2 .flt .fg{padding:4px 0;color:var(--tc)}
body.v2 .flt .fg em{font-style:normal;font-size:13.5px;font-weight:700}
body.v2 .flt .fk{padding:3px 11px 3px 9px;border-radius:999px;color:var(--ink-faint);box-shadow:inset 0 0 0 1px var(--edge2)}
body.v2 .flt .fk em{font-style:normal;font-size:13px}
body.v2 .flt .fk i{font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:11px;opacity:.75}
body.v2 .flt .fk .c{font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:var(--ink-faint)}
body.v2 .flt .fk[aria-pressed="true"]{color:var(--tc);background:color-mix(in srgb,var(--tc) 9%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 24%,transparent)}
body.v2 .flt-nat .fk[aria-pressed="true"]{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,var(--card));box-shadow:none}
body.v2 .flt .fk[aria-pressed="true"] i{color:inherit;opacity:.8}
body.v2 .flt .fk:hover{box-shadow:inset 0 0 0 1px var(--tc)}
body.v2 .flt .fk.z{opacity:.45}
body.v2 .flt .fg:focus-visible,body.v2 .flt .fk:focus-visible,body.v2 .flt-act button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
body.v2 .flt-grp.g-core{--tc:var(--g-core)} body.v2 .flt-grp.g-s{--tc:var(--g-s)} body.v2 .flt-grp.g-ss{--tc:var(--g-ss)}
body.v2 .flt-sum{display:flex;align-items:center;gap:16px;min-height:46px;padding:8px 46px 8px calc(var(--lc) + 10px);background:var(--rail);box-shadow:inset 0 1px 0 var(--edge)}
body.v2 .fb-n{font-size:13px;color:var(--ink-faint)}
body.v2 .flt-sum.act .fb-n{color:var(--ink-soft)}
body.v2 .fb-n b{font-family:"IBM Plex Mono",monospace;color:var(--blue)}
body.v2 .flt-clr{display:none;margin-left:auto;font:inherit;font-size:13px;color:var(--blue);background:var(--card);border:1px solid color-mix(in srgb,var(--blue) 30%,transparent);border-radius:999px;padding:4px 14px;cursor:pointer}
body.v2 .flt-sum.act .flt-clr{display:inline-block}
body.v2 .flt-clr:hover{background:var(--blue-wash)}
body.v2 .fempty[hidden]{display:none}
body.v2 .flt-tg{display:none;font:inherit;font-size:13px;color:var(--blue);background:none;border:none;padding:4px 0;cursor:pointer}
@media (max-width:920px){
  body.v2 .flt-row{grid-template-columns:1fr}
  body.v2 .flt-h{padding:16px 22px 0;flex-direction:row;align-items:baseline;justify-content:space-between}
  body.v2 .flt-body{padding:12px 22px 16px}
  body.v2 .flt-grp{grid-template-columns:1fr;gap:6px}
  body.v2 .flt-sum{padding:8px 22px}
  body.v2 .flt:not(.open) .flt-row{display:none}
  body.v2 .flt:not(.open) .flt-sum{box-shadow:none}
  body.v2 .flt-tg{display:inline-block;margin-left:auto}
  body.v2 .flt-sum.act .flt-clr{margin-left:0}
  body.v2 .flt-sum.act .flt-tg{margin-left:auto}
}
/* archive while filtering */
body.v2 .day-link .fc{margin-left:auto;font-family:"IBM Plex Mono",monospace;font-size:10.5px;font-weight:600;color:var(--blue)}
body.v2 .day-link.active .fc{color:rgba(255,255,255,.85)}
body.v2 .day-link.f-zero{opacity:.38}
body.v2.filtering .section-head{margin-top:56px}
body.v2 .fempty{margin:56px 0 0;padding:44px 40px;text-align:center;background:var(--card);border-radius:14px;box-shadow:var(--shadow);color:var(--ink-soft);font-size:15px}
body.v2 .fempty p{margin:0}
body.v2 .fe-nav{display:flex;justify-content:center;gap:28px;margin-top:14px;font-family:"IBM Plex Mono",monospace;font-size:13px}
body.v2 .fe-nav span:empty{display:none}


/* internal edition: lab link + lab page; public edition brand */
.lab-link{font-size:12.5px;color:var(--ink-faint);border:none;padding:4px 10px;border-radius:999px;margin-right:8px}
.lab-link:hover{color:var(--blue);background:var(--blue-wash);border:none}
.lab-link.active{color:var(--blue);background:var(--blue-ghost);font-weight:600}
@media (max-width:520px){.lab-link.pub{display:inline-flex;align-items:center;gap:6px}
.lab-link.pub .ic{font-size:14px;line-height:1}
@media (max-width:640px){.lab-link.pub .t{display:none}}
body.v2 .brand.pub{display:inline}}
body.v2 .brand.pub{font-family:"Noto Serif SC",serif;font-weight:900;font-size:15px;letter-spacing:.04em}
body.labp .lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:56px}
body.labp .lab-card{display:block;margin:0;padding:28px 32px;border:none;color:inherit;transition:transform .25s,box-shadow .25s}
body.labp .lab-card:hover{transform:translateY(-3px);border:none}
body.labp .lab-hd{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
body.labp .lab-nm{font-family:"Noto Serif SC",serif;font-weight:900;font-size:20px;color:var(--ink)}
body.labp .lab-st{font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;color:var(--ink-faint);background:var(--rail);padding:2px 9px;border-radius:999px}
body.labp .lab-card p{margin:0;font-size:14.5px;line-height:1.8;color:var(--ink-soft)}
@media (max-width:920px){
  body.labp .lab-grid{grid-template-columns:1fr;margin-top:36px}
}

/* topbar with two tabs (v6.8): never wrap; public lab link shrinks to its icon earlier */
.topbar .tabs a,.lab-link{white-space:nowrap}
.topbar .tabs{flex:0 1 auto}
@media (max-width:900px){.lab-link.pub{display:inline-flex;align-items:center;gap:6px}.lab-link.pub .t{display:none}}
@media (max-width:600px){body.v2 .brand.pub{font-size:13px;letter-spacing:0}}
