/* ──────────────────────────────────────────────────────────────────────────
   KORT-X long-form article layer.
   Loaded AFTER the per-page inline <style> so it can raise readability
   without touching the site's chrome. Delete this file to revert.
   ────────────────────────────────────────────────────────────────────────── */

/* ── 1 · Readable body copy ─────────────────────────────────────────────── */
.page-content .kx-lede{
  font-size:1.02rem; line-height:1.75; opacity:.9; max-width:38em;
}
.page-content .kx-prose p{
  font-size:.97rem; line-height:1.8; opacity:.84; max-width:38em; margin-bottom:1.05em;
}
.page-content .kx-prose p b{opacity:1;}
.page-content .kx-finding-name{font-size:.82rem;}
.page-content .kx-finding-desc{font-size:.93rem; line-height:1.75; opacity:.8;}
.page-content .kx-limits li{font-size:.95rem; line-height:1.8; opacity:.82; padding-bottom:.9em;}
.page-content .kx-callout p{font-size:.94rem; line-height:1.78; opacity:.82;}
.page-content .kx-callout h2,.page-content .kx-callout h3{font-size:.66rem; letter-spacing:2.5px;}
.page-content .kx-refs li{font-size:.92rem; line-height:1.78; opacity:.8;}
.page-content .kx-thank-text{font-size:.9rem; line-height:1.75; opacity:.8;}
.page-content .kx-thank-name{font-size:.8rem;}
.page-content .kx-verdict-text{font-size:.97rem; line-height:1.8; opacity:.84; max-width:38em;}
.page-content table.kx-table td{font-size:.9rem; line-height:1.7; opacity:.86;}
.page-content table.kx-table th{font-size:.64rem; letter-spacing:1.6px; opacity:.72;}
.page-content table.kx-table caption{font-size:.64rem; letter-spacing:2.5px;}
.page-content .kx-code{font-size:.85rem; line-height:1.7; opacity:.92;}
.page-content .fx-tl-text{font-size:.94rem; line-height:1.78; opacity:.82;}
.page-content .fx-tl-phase{font-size:.78rem;}
.page-content .fx-stat-label{font-size:.62rem; line-height:1.5; opacity:.72;}
.page-content .fx-section-title{font-size:.8rem;}
.page-content .kx-prose a,.page-content .kx-refs a,.page-content .kx-callout a{
  text-underline-offset:2px;
}

/* Text should behave like text: the site-wide crosshair belongs to the chrome. */
.page-content,.page-content p,.page-content li,.page-content td,.page-content th,
.page-content dd,.page-content dt,.page-content .kx-code,.page-content h2,
.page-content .kx-lede,.page-content .fx-tl-text,.page-content .kx-finding-desc{
  cursor:auto;
}
.page-content a,.page-content a *{cursor:pointer;}

/* ── 2 · Table of contents ──────────────────────────────────────────────── */
.kx-toc{
  margin:30px 0 6px; padding:20px 22px; border:1px solid var(--glass-border);
  border-radius:10px; background:var(--card-bg);
}
.kx-toc-h{
  font-size:.6rem; letter-spacing:3px; text-transform:uppercase;
  color:var(--primary); opacity:.75; margin-bottom:12px;
}
.kx-toc-list{list-style:none; margin:0; padding:0; columns:2; column-gap:34px;}
.kx-toc-list li{break-inside:avoid; margin-bottom:7px;}
.kx-toc-list a{
  display:block; text-decoration:none; color:var(--text); opacity:.72;
  font-size:.88rem; line-height:1.45; transition:.18s;
}
.kx-toc-list a:hover{opacity:1; color:var(--primary);}
.kx-toc-n{
  font-family:'Consolas',ui-monospace,monospace; font-size:.72rem;
  color:var(--primary); opacity:.75; flex-shrink:0;
}
@media(max-width:700px){.kx-toc-list{columns:1;}}

/* ── 3 · Section permalinks ─────────────────────────────────────────────── */
.fx-section{scroll-margin-top:78px;}
.kx-permalink{
  margin-left:10px; color:var(--primary); opacity:0; text-decoration:none;
  font-size:.8rem; transition:opacity .18s;
}
.fx-section:hover .kx-permalink,.kx-permalink:focus{opacity:.55;}
.kx-permalink:hover{opacity:1;}

/* ── 4 · Evidence record ────────────────────────────────────────────────── */
.kx-evidence{
  margin:30px 0 10px; padding:20px 22px 8px;
  border:1px solid rgba(var(--kx-rgb),.32); border-radius:12px;
  background:radial-gradient(circle at 4% 0%,rgba(var(--kx-rgb),.07),transparent 60%);
}
.kx-evidence-h{
  font-size:.62rem; letter-spacing:3px; text-transform:uppercase;
  color:var(--primary); opacity:.85; margin-bottom:4px;
}
.kx-evidence .kx-table-wrap{border:none; background:none; margin-top:6px;}
.kx-evidence-table{table-layout:fixed; min-width:0;}
.kx-evidence-table th:nth-child(1),.kx-evidence-table td:nth-child(1){width:30%;}
.kx-evidence-table th:nth-child(2),.kx-evidence-table td:nth-child(2){width:16%;}
.kx-evidence-table th:nth-child(3),.kx-evidence-table td:nth-child(3){width:54%;}
.kx-evidence-table td{word-break:normal; overflow-wrap:break-word; hyphens:manual;}
.kx-evidence-table td.kx-ev-status{
  font-family:'Consolas',ui-monospace,monospace; white-space:normal;
  font-size:.76rem; color:var(--primary); opacity:.9; line-height:1.5;
}
.kx-evidence-table td.mono{font-size:.78rem; opacity:.74; line-height:1.65;}
.kx-evidence-table td code{font-size:.95em; word-break:break-all;}
@media(max-width:760px){
  .kx-evidence-table,.kx-evidence-table thead,.kx-evidence-table tbody,
  .kx-evidence-table tr,.kx-evidence-table td{display:block; width:auto!important;}
  .kx-evidence-table thead{display:none;}
  .kx-evidence-table tr{padding:12px 0; border-bottom:1px solid rgba(var(--kx-rgb),.12);}
  .kx-evidence-table td{padding:3px 0; border:none;}
}

/* ── 5 · Colophon ───────────────────────────────────────────────────────── */
.kx-colophon{
  margin:38px 0 6px; padding:20px 22px; border:1px solid var(--glass-border);
  border-left:2px solid var(--primary); border-radius:10px; background:var(--card-bg);
}
.kx-colophon-h{
  font-size:.6rem; letter-spacing:3px; text-transform:uppercase;
  color:var(--primary); opacity:.8; margin-bottom:14px;
}
.kx-colophon-dl{display:grid; grid-template-columns:auto 1fr; gap:8px 22px; margin:0;}
.kx-colophon-dl dt{
  font-size:.6rem; letter-spacing:2px; text-transform:uppercase; opacity:.55;
  white-space:nowrap; padding-top:2px;
}
.kx-colophon-dl dd{margin:0; font-size:.9rem; line-height:1.6; opacity:.82;}
.kx-colophon-dl dd.mono{font-family:'Consolas',ui-monospace,monospace; font-size:.8rem; opacity:.72;}
.kx-colophon-dl a{color:var(--primary); text-decoration:none;}
.kx-colophon-note{
  margin-top:14px; font-size:.85rem; line-height:1.7; opacity:.62; max-width:38em;
}
@media(max-width:620px){.kx-colophon-dl{grid-template-columns:1fr; gap:2px 0;}
  .kx-colophon-dl dd{margin-bottom:10px;}}

/* ── 5b · Research index: category filter ───────────────────────────────── */
.cat-bar{display:flex; flex-wrap:wrap; gap:7px; margin:-14px 0 26px;}
.cat-chip{
  display:inline-flex; align-items:center; gap:7px;
  background:transparent; border:1px solid var(--glass-border); border-radius:999px;
  color:var(--text); font-family:inherit; font-size:.62rem; letter-spacing:1.6px;
  text-transform:uppercase; padding:6px 12px; cursor:pointer; opacity:.5; transition:.2s;
}
.cat-chip:hover{opacity:.9; border-color:rgba(var(--kx-rgb),.5);}
.cat-chip.active{opacity:1; color:var(--primary); border-color:var(--primary);
  background:rgba(var(--kx-rgb),.07);}
.cat-chip.empty{opacity:.28; border-style:dashed;}
.cat-chip.empty:hover{opacity:.6;}
.cat-n{
  font-style:normal; font-family:'Consolas',ui-monospace,monospace; font-size:.85em;
  opacity:.6; border-left:1px solid var(--glass-border); padding-left:7px;
}
.cat-chip.active .cat-n{opacity:.85; border-left-color:rgba(var(--kx-rgb),.4);}
.cat-empty[hidden]{display:none!important;}
.cat-empty{
  display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center;
  padding:46px 24px; margin-bottom:26px; border:1px dashed var(--glass-border);
  border-radius:12px; background:var(--card-bg);
}
.cat-empty-icon{font-size:26px; color:var(--primary); opacity:.4;}
.cat-empty-text{font-size:.9rem; line-height:1.7; opacity:.6; max-width:34em;}

/* ── 5c · Research index: compact source links ──────────────────────────── */
.osf-direct-panel .osf-primary{
  font-size:.62rem; letter-spacing:2.2px; text-transform:uppercase; color:var(--primary);
  text-decoration:none; border:1px solid var(--primary); padding:11px 20px; border-radius:4px;
}
.osf-direct-panel .osf-primary:hover{background:rgba(var(--kx-rgb),.1);}
.src-row{display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin-top:4px;}
.src-chip{
  display:inline-flex; align-items:baseline; gap:6px; text-decoration:none;
  font-size:.56rem; letter-spacing:1.4px; text-transform:uppercase;
  color:var(--text); opacity:.45; border:1px solid var(--glass-border);
  border-radius:3px; padding:4px 9px; transition:.2s;
}
.src-chip span{
  font-family:'Consolas',ui-monospace,monospace; text-transform:none;
  letter-spacing:0; opacity:.72; font-size:1.02em;
}
.src-chip:hover{opacity:1; color:var(--primary); border-color:rgba(var(--kx-rgb),.55);}
.src-legacy{margin-top:2px; font-size:.62rem; line-height:1.6; opacity:.32; max-width:34em;}

/* ── 6 · Back to top ────────────────────────────────────────────────────── */
.kx-top{
  position:fixed; left:18px; bottom:44px; z-index:9997;
  font-size:.58rem; letter-spacing:2px; text-transform:uppercase;
  color:var(--text); text-decoration:none; opacity:.3;
  border:1px solid var(--glass-border); border-radius:3px; padding:6px 10px;
  background:var(--header-bg); backdrop-filter:blur(12px); transition:.22s;
}
.kx-top:hover{opacity:1; color:var(--primary); border-color:var(--primary);}
@media(max-width:600px){.kx-top{display:none;}}

/* ── 7 · Reduced motion ─────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important; animation-iteration-count:1!important;
    transition-duration:.001ms!important; scroll-behavior:auto!important;
  }
  .scan-glow{
    animation:none!important; background:none!important;
    -webkit-background-clip:border-box!important; background-clip:border-box!important;
    color:var(--text)!important; filter:none!important;
  }
  .status-pending{animation:none!important; opacity:.65!important;}
}

/* ── 8 · Print ──────────────────────────────────────────────────────────── */
@media print{
  header,#chat-widget,.cube-wrap,#front-menu,.kx-top,#trademark-footer,
  .skip-link,.fx-cta,.kx-permalink{display:none!important;}
  body{background:#fff!important; color:#111!important;}
  .page-main{padding-top:0;}
  .page-banner{border-bottom:1px solid #ccc; padding:0 0 18px;}
  .page-title{color:#111!important; background:none!important;
    -webkit-text-fill-color:#111!important; filter:none!important; animation:none!important;}
  .page-content{padding:0; max-width:100%;}
  .page-content .kx-prose p,.page-content .kx-limits li,.page-content .kx-finding-desc,
  .page-content table.kx-table td,.page-content .kx-callout p{opacity:1; color:#111;}
  .kx-code,.kx-table-wrap,.kx-evidence,.kx-verdict,.kx-callout,.fx-section{
    break-inside:avoid; page-break-inside:avoid;}
  a[href^="http"]::after{content:" (" attr(href) ")"; font-size:.75em; word-break:break-all;}
}
