  /* reports index; shared tokens, nav and footer come from /assets/site.css */
  header.page{padding:72px 0 24px;}
  .kicker{font-family:'JetBrains Mono',monospace;font-size:12.5px;letter-spacing:5px;color:var(--gold);text-transform:uppercase;}
  h1{font-family:'Cinzel',Georgia,serif;font-size:clamp(30px,4vw,48px);font-weight:700;line-height:1.16;margin:14px 0 16px;}
  h1 em{font-style:normal;color:var(--pink-neon);text-shadow:var(--glow-pink);}
  p.lede{font-size:17px;color:var(--dim);max-width:640px;margin-bottom:14px;}
  p.lede b{color:var(--cream);font-weight:500;}
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(310px,100%),1fr));gap:20px;padding:36px 0 90px;}   /* 3 across at desktop (Oki, 23 Sep 2026) */
  .rep{background:var(--card);border:1px solid var(--gold-line-soft);border-radius:12px;padding:22px 22px 20px;transition:transform .15s,border-color .15s;display:block;}
  .rep[hidden]{display:none;}
  .chip.chip-tag{border-color:var(--gold);color:var(--gold);}
  .chip.chip-tag.active{background:var(--gold);color:var(--bg);}
  .chips .chip-sep{width:1px;align-self:stretch;background:var(--line);margin:2px 4px;}
  .rep:hover{transform:translateY(-3px);border-color:var(--gold-line);box-shadow:0 0 26px rgba(255,201,94,.08);}
  .rep .tick{font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:700;color:var(--gold);letter-spacing:1px;}
  .rep h3{font-family:'Cinzel',Georgia,serif;font-size:15.5px;font-weight:600;margin:6px 0 8px;line-height:1.35;}
  .rep .sect{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:1.6px;color:var(--dim);}
  .rep::after{content:"READ THE REPORT \2192";display:block;margin-top:auto;padding-top:12px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:1.8px;color:var(--cyan-neon);}

  .chips{display:flex;flex-wrap:wrap;gap:9px;padding:26px 0 4px;}
  .chip{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:1.3px;background:transparent;border:1px solid var(--line);color:var(--dim);padding:7px 13px;border-radius:100px;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s;}
  .chip span{opacity:.55;margin-left:5px;}
  .chip:hover{border-color:var(--gold);color:var(--cream);}
  .chip.active{background:var(--gold);border-color:var(--gold);color:#140B0C;font-weight:700;box-shadow:var(--glow-gold);}
  .chip.active span{opacity:.7;}
  .sectors{padding-bottom:80px;}
  .sgroup{padding-top:34px;}
  .sgroup[hidden]{display:none;}
  .shead{font-family:'Cinzel',Georgia,serif;font-size:21px;font-weight:600;color:var(--cream);padding-bottom:10px;border-bottom:1px solid var(--gold-line-soft);display:flex;align-items:baseline;gap:10px;}
  .shead .scount{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:2px;color:var(--gold);}
  .sgroup .grid{padding:18px 0 0;}
  .noresult{color:var(--dim);padding:40px 0;font-size:15px;}

  /* --- search + filters --- */
  .vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
  .filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:26px 0 0;}
  .fsearch{position:relative;flex:1 1 260px;min-width:220px;}
  .fsearch svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:14px;height:14px;stroke:var(--dim);fill:none;stroke-width:2;pointer-events:none;}
  input[type=search]{width:100%;font-family:'JetBrains Mono',monospace;font-size:12.5px;letter-spacing:.5px;color:var(--cream);background:var(--card);border:1px solid var(--line);border-radius:100px;padding:10px 14px 10px 34px;appearance:none;-webkit-appearance:none;}
  input[type=search]::placeholder{color:var(--dim);opacity:.75;letter-spacing:1px;}
  input[type=search]:hover{border-color:var(--gold-line);}
  input[type=search]:focus{outline:none;border-color:var(--cyan);box-shadow:var(--glow-cyan);}
  input[type=search]:focus-visible{outline:none;}
  input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;height:12px;width:12px;background:linear-gradient(45deg,transparent 44%,var(--dim) 44%,var(--dim) 56%,transparent 56%),linear-gradient(-45deg,transparent 44%,var(--dim) 44%,var(--dim) 56%,transparent 56%);cursor:pointer;}
  .fsel{position:relative;}
  .fsel::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;margin-top:-5px;border-right:1.5px solid var(--dim);border-bottom:1.5px solid var(--dim);transform:rotate(45deg);pointer-events:none;}
  select{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:1px;color:var(--cream);background:var(--card);border:1px solid var(--line);border-radius:100px;padding:10px 34px 10px 15px;appearance:none;-webkit-appearance:none;cursor:pointer;max-width:min(74vw,320px);}
  select:hover{border-color:var(--gold);}
  select:focus{outline:none;border-color:var(--cyan);box-shadow:var(--glow-cyan);}
  select:focus-visible{outline:none;}
  select option{background:var(--bg2);color:var(--cream);}
  .fsel.on select,input[type=search].on{border-color:var(--gold);color:var(--gold-hi);}
  .fclear{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:1.5px;background:transparent;border:1px solid var(--line);color:var(--dim);padding:4px 12px;border-radius:100px;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s;}
  .fclear:hover{border-color:var(--pink);color:var(--pink-neon);}
  .fcount{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:1.3px;color:var(--dim);padding:14px 0 0;min-height:22px;}
  .fcount b{color:var(--gold);font-weight:500;}

  /* --- index badges on cards --- */
  .rep{display:flex;flex-direction:column;}
  .ixrow{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;}
  .ix{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.6px;color:var(--dim);border:1px solid var(--line);border-radius:100px;padding:2px 8px;white-space:nowrap;}
  .ix b{font-weight:500;color:var(--dim);}
  .ix i{font-style:normal;opacity:.7;}
  .ix-dow{border-color:var(--gold-line);color:var(--gold);}
  .ix-dow b{color:var(--gold);}

  /* --- flat results view --- */
  #results{display:none;}
  #results.on{display:grid;}
  .sectors.off{display:none;}
  .sgroup:nth-of-type(n+2){content-visibility:auto;contain-intrinsic-size:auto none auto 640px;}

  /* --- card tags (families: see claude/TAG_FORMULAS.md; icons drawn inline by index.js) --- */
  :root{
    /* suits follow the four-colour poker deck: clubs green, diamonds blue, hearts red, spades steel */
    --f-list:#4CC38A; --f-cash:#2F8BFF; --f-what:#FF4D6D; --f-theme:#B9C3D3;
    --f-who:#FFE34D; --f-where:#FF8433; --f-new:#D07BFF; --f-style:#1FCBE3;
  }
  .fam-list{--c:var(--f-list)} .fam-cash{--c:var(--f-cash)} .fam-what{--c:var(--f-what)} .fam-theme{--c:var(--f-theme)}
  .fam-who{--c:var(--f-who)} .fam-where{--c:var(--f-where)} .fam-new{--c:var(--f-new)} .fam-style{--c:var(--f-style)}
  /* "Their hand": the one-liner in an inset panel framed like a label on the felt */
  .play{position:relative;margin:18px 0 4px;padding:16px 16px 13px;border:1px solid var(--gold-line);border-radius:8px;
    background:linear-gradient(180deg,rgba(217,168,92,.06),rgba(217,168,92,.015)),var(--bg2);
    box-shadow:inset 0 0 0 3px var(--bg2),inset 0 0 0 4px var(--gold-line-soft);}
  .play-k{position:absolute;top:-8px;left:12px;display:inline-flex;align-items:center;gap:6px;padding:0 8px;background:var(--card);
    font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--gold);line-height:16px;}
  .play-k svg{width:14px;height:14px;fill:none;stroke:var(--pink-neon);stroke-width:1.9;filter:drop-shadow(0 0 4px rgba(255,62,154,.55));}
  .play-k svg .f{fill:var(--card);}
  .rep .play .line{margin:0;font-size:14.5px;line-height:1.55;color:var(--cream);text-wrap:pretty;}
  /* company logo on a cream playing-card plate, tilted like the brand mark */
  .rep{position:relative;padding:24px 24px 22px;}
  .rep h3{font-size:16.5px;}
  .logo{position:absolute;top:20px;right:20px;height:46px;min-width:50px;max-width:116px;padding:7px 10px;background:var(--cream);border-radius:7px;
    transform:rotate(-4deg);box-shadow:0 0 0 1px rgba(217,168,92,.55),0 6px 16px rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;}
  .logo img{height:100%;width:auto;max-width:96px;object-fit:contain;display:block;}
  .rep.has-logo h3,.rep.has-logo .sect{padding-right:112px;}
  /* stretched link: the whole card opens the report; tags and +N sit above the link layer so a tap on them never navigates */
  .rep .stretch{position:absolute;inset:0;z-index:1;border-radius:12px;}
  .rep .stretch:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;}
  .rep .tags,.rep .ixrow{position:relative;z-index:2;}
  .rep{cursor:pointer;}
  /* at most six tags besides the index badges; +N shows the rest */
  .tags .tg.x{display:none;}
  .tags.all .tg.x{display:inline-flex;}
  .tg-more{display:inline-flex;align-items:center;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:1px;padding:3px 9px;border-radius:100px;
    border:1px dashed var(--line);color:var(--dim);cursor:pointer;}
  .tg-more:hover,.tg-more:focus-visible{border-color:var(--cyan);color:var(--cyan-neon);outline:none;}
  .ix.t{display:inline-flex;align-items:center;gap:5px;cursor:help;color:var(--cream);
    border-color:color-mix(in srgb,var(--c) 55%,transparent);background:color-mix(in srgb,var(--c) 7%,transparent);}
  .ix.t b{color:var(--cream);}
  .tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
  .tg{display:inline-flex;align-items:center;gap:5px;font-size:12px;line-height:1.2;padding:3px 9px 3px 7px;border-radius:100px;white-space:nowrap;cursor:help;
    color:var(--cream);border:1px solid color-mix(in srgb,var(--c) 55%,transparent);background:color-mix(in srgb,var(--c) 7%,transparent);}
  .tg.fam-new{border-style:dashed;}
  .t .s{color:var(--c);display:inline-flex;}
  .t .s svg{width:11px;height:11px;display:block;}
  .ix.t .s svg{width:9px;height:9px;}
  .t:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;}
  #tip{position:fixed;z-index:60;max-width:min(300px,calc(100vw - 32px));background:#1A1428;color:var(--cream);
    border:1px solid color-mix(in srgb,var(--tc,var(--gold)) 60%,var(--line));border-radius:8px;padding:10px 12px;
    font-size:13px;line-height:1.45;box-shadow:0 10px 30px rgba(0,0,0,.55);pointer-events:none;}
  #tip b{display:block;font-weight:600;margin-bottom:3px;color:var(--tc,var(--cream));}

  /* --- report families: one tab per family, marked with the house chips (assets/chips) --- */
  .famwrap{padding-top:6px;}
  .fams{display:flex;gap:4px 28px;border-bottom:1px solid var(--gold-line-soft);overflow-x:auto;scrollbar-width:none;}
  .fams::-webkit-scrollbar{display:none;}
  .fam{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;padding:12px 2px 14px;margin-bottom:-1px;
    font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:.5px;color:var(--dim);border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
  .fam:hover{color:var(--cream);}
  .fam[aria-selected="true"]{color:var(--gold-hi);border-bottom-color:var(--gold);}
  .fam .fam-n{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:1px;color:var(--dim2);}
  .fam[aria-selected="true"] .fam-n{color:var(--gold);}
  .fam-chip{width:24px;height:24px;border-radius:50%;background:center/contain no-repeat;flex-shrink:0;
    filter:saturate(.55) brightness(.85);transition:filter .15s,transform .2s;}
  .fam:hover .fam-chip{filter:none;}
  .fam[aria-selected="true"] .fam-chip{filter:none;transform:rotate(-12deg);box-shadow:0 0 12px rgba(255,201,94,.35);}
  .fam[data-fam="stocks"] .fam-chip{background-image:url(/assets/chips/ttg-chip-100.svg);}
  .fam[data-fam="etf"] .fam-chip{background-image:url(/assets/chips/ttg-chip-25.svg);}
  .fam[data-fam="crypto"] .fam-chip{background-image:url(/assets/chips/ttg-chip-500.svg);}
  .fam[data-fam="fixed"] .fam-chip{background-image:url(/assets/chips/ttg-chip-1.svg);}
  .fampanel[hidden]{display:none;}
  .fampanel > .wrap > .shead{margin-top:34px;}
  .famnote{color:var(--dim);font-size:15px;margin-top:10px;max-width:640px;}
  .fampanel > .wrap > .grid{padding:22px 0 90px;}

  /* --- touch: tags and badges big enough to tap (WCAG 2.5.8 asks 24px; these are 28px) --- */
  @media(pointer:coarse){
    .tg,.ix.t,.tg-more{min-height:28px;}
    .chip{min-height:36px;}
  }

  /* --- phones: filters in a grid, sector chips on one swipeable row, compact cards --- */
  @media(max-width:640px){
    header.page{padding:44px 0 14px;}
    .fam{font-size:15.5px;gap:8px;}
    .fams{gap:4px 20px;margin:0 -18px;padding:0 18px;}
    .filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
    .fsearch{grid-column:1/-1;min-width:0;}
    .fsel:first-of-type{grid-column:1/-1;}
    .fsel select{width:100%;max-width:none;}
    .filters .fsel:last-child{grid-column:1/-1;}   /* the sort control: a full row, so "SORT: LARGEST FIRST" fits */
    .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:18px 18px 4px;scroll-snap-type:x proximity;}
    .chips::-webkit-scrollbar{display:none;}
    .chip{flex:0 0 auto;scroll-snap-align:start;}
    .grid{gap:14px;}
    .rep{padding:18px 18px 16px;}
    .rep .tick{font-size:18px;}
    .logo{top:16px;right:16px;height:38px;max-width:96px;padding:6px 8px;}
    .rep.has-logo h3,.rep.has-logo .sect{padding-right:96px;}
    .play{margin:14px 0 2px;padding:14px 13px 11px;}
    .rep .play .line{font-size:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
    .tags{max-height:62px;overflow:hidden;}
    .tags.all{max-height:none;}
    .rep::after{padding-top:10px;}
  }
  @media(prefers-reduced-motion:reduce){ .fam,.fam-chip,.rep,.chip{transition:none;} }
  @media(max-width:640px){
    .fams{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin:0;padding:0;overflow:visible;border-bottom:0;}
    .fam{border-bottom:1px solid var(--gold-line-soft);padding:12px 2px;}
    .fam[aria-selected="true"]{border-bottom:2px solid var(--gold);}
  }
  /* phones: sectors fold (index.js); the heading is the toggle */
  @media(max-width:640px){
    .sgroup .shead{padding:0;}
    .shead-btn{all:inherit;display:flex;align-items:baseline;gap:10px;width:100%;padding:14px 0 12px;cursor:pointer;border:0;}
    .shead-btn::after{content:"";align-self:center;width:9px;height:9px;margin:0 6px 0 0;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(45deg) translateY(-3px);transition:transform .2s;}
    .sgroup.folded .shead-btn::after{transform:rotate(-45deg);}
    .shead-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;}
    .sgroup.folded .grid{display:none;}
    .sgroup{padding-top:6px;}
    .shead-btn .scount{margin-left:auto;margin-right:14px;}
  }
  @media(max-width:640px) and (prefers-reduced-motion:reduce){ .shead-btn::after{transition:none;} }
  @media(max-width:640px){ .fam{white-space:nowrap;font-size:14px;gap:7px;letter-spacing:.2px;} .fam-chip{width:21px;height:21px;} }
