
:root{
  --paper:#FBF9F6; --ink:#1F1B16; --muted:#5B5248; --accent:#C13A00;
  --brand:#ff5000; --brand-hover:#e5152c; --on-brand:#1F1B16;
  --line:#E3DDD3; --card:#FFFFFF; --stub:#F3EEE6;
  --g-written:#1F1B16; --g-written-bg:#EDE7DF; --g-written-fg:#1F1B16;
  --g-reference:#8A5A00; --g-reference-bg:#F7EBD4; --g-reference-fg:#6E4800;
  --g-third:#2F4858; --g-third-bg:#DCE8EE; --g-third-fg:#253A47;
  --g-unver:#5B5248; --g-unver-bg:#E8E4DE; --g-unver-fg:#4A423A;
  --rail:248px; --measure:72ch; --wideimg:780px; --radius:3px;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#15120E; --ink:#F2EDE6; --muted:#A79E92; --accent:#FF7A3D;
    --line:#332C24; --card:#1D1915; --stub:#221D18;
    --g-written:#F2EDE6; --g-written-bg:#2A251F; --g-written-fg:#F2EDE6;
    --g-reference:#E0A83D; --g-reference-bg:#2E2517; --g-reference-fg:#E0A83D;
    --g-third:#8FB3C4; --g-third-bg:#1C2730; --g-third-fg:#8FB3C4;
    --g-unver:#A79E92; --g-unver-bg:#262119; --g-unver-fg:#A79E92;
  }
}
*{box-sizing:border-box}
html{overflow-x:clip}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:17px; line-height:1.65; -webkit-text-size-adjust:100%;
}
h1,h2,h3{font-family:'Newsreader',Georgia,'Times New Roman',serif; font-weight:600; line-height:1.18;
  letter-spacing:-0.012em; margin:0 0 .5em}
h1{font-size:clamp(1.95rem,1.3rem + 2.4vw,3.05rem)}
h2{font-size:clamp(1.42rem,1.1rem + 1.1vw,1.95rem); margin-top:0}
h3{font-size:1.12rem; font-weight:600}
p,li{max-width:var(--measure)}
a{color:var(--accent); text-underline-offset:.18em}
a:hover{color:var(--brand-hover)}
:focus-visible{outline:3px solid var(--accent); outline-offset:2px}
img,svg{max-width:100%}
main svg,main img{max-width:100%; height:auto}
.ks-skip{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);
  clip-path:inset(50%); min-height:44px; min-width:44px}
.ks-skip:focus{position:static; width:auto; height:auto; clip:auto; clip-path:none; display:inline-block; padding:.6rem}
.ks-wrap{max-width:1180px; margin:0 auto; padding:0 20px}
.ks-col{max-width:var(--measure)}


.ks-top{border-bottom:1px solid var(--line); background:var(--paper)}
.ks-topin{display:flex; align-items:center; gap:18px; min-height:64px; flex-wrap:wrap}
.ks-mark{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);
  font-weight:600; min-height:44px}
.ks-mark img{display:block; height:26px; width:auto}
.ks-mark b{font-family:'Newsreader',serif; font-size:1.06rem; font-weight:600; letter-spacing:-.01em}
.ks-nav{margin-left:auto}
.ks-nav ul{display:flex; flex-wrap:wrap; gap:2px; list-style:none; margin:0; padding:0}
.ks-nav a{display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; min-width:44px; padding:0 11px; font-size:.95rem;
  color:var(--ink); text-decoration:none; border-radius:var(--radius)}
.ks-nav a:hover{background:var(--stub); color:var(--accent)}
.ks-nav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--brand); font-weight:600}


.ks-hero{padding:48px 0 10px; border-bottom:1px solid var(--line)}
.ks-lede{font-size:1.14rem; color:var(--muted); max-width:58ch; margin:0 0 26px}
.ks-find{display:flex; gap:10px; flex-wrap:wrap; align-items:stretch; margin:0 0 14px; max-width:760px}
.ks-find label{flex:1 0 100%; font-size:.86rem; color:var(--muted); margin-bottom:2px}
.ks-find input{flex:1 1 320px; min-width:0; min-height:56px; padding:0 16px; font-size:1.02rem;
  font-family:inherit; color:var(--ink); background:var(--card);
  border:1.5px solid var(--ink); border-radius:var(--radius)}
.ks-find input::placeholder{color:var(--muted)}
.ks-find button{min-height:56px; padding:0 30px; font-size:1.02rem; font-weight:600; font-family:inherit;
  color:var(--on-brand); background:var(--brand); border:1.5px solid var(--brand);
  border-radius:var(--radius); cursor:pointer}
.ks-find button:hover{background:var(--brand-hover); border-color:var(--brand-hover); color:#fff}
.ks-sub{display:flex; flex-wrap:wrap; gap:0 20px; margin:0 0 30px; padding:0; list-style:none}
.ks-sub li{margin:0}
.ks-sub a{display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; min-width:44px; font-size:.93rem; color:var(--muted)}
.ks-sub a:hover{color:var(--accent)}


.ks-wall{padding:34px 0}
.ks-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; list-style:none; margin:18px 0 0; padding:0}
.ks-grid li{margin:0; min-width:0}
.ks-tile{display:block; text-decoration:none; color:var(--ink); background:var(--card);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; height:100%}
.ks-tile:hover{border-color:var(--brand)}
.ks-tile img{display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover}
.ks-tilet{display:flex; align-items:center; justify-content:space-between; gap:6px;
  padding:10px 12px; min-height:44px; flex-wrap:wrap}
.ks-tilet span{font-size:.95rem; font-weight:500; min-width:0; overflow-wrap:anywhere}
.ks-kind{font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  border:1px solid var(--line); border-radius:2px; padding:2px 5px; white-space:nowrap}


.ks-sec{padding:40px 0; border-top:1px solid var(--line)}
.ks-sec:first-of-type{border-top:0}
.ks-withrail{display:grid; grid-template-columns:minmax(0,1fr) var(--rail); gap:34px; align-items:start}

.ks-withrail > *{min-width:0}
.ks-rail{border-left:2px solid var(--line); padding-left:16px; font-size:.88rem; color:var(--muted)}
.ks-rail p{max-width:none; margin:0 0 14px}
.ks-rail b{display:block; color:var(--ink); font-weight:600}
.ks-split{display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:stretch}
.ks-split > *{min-width:0}
.ks-split figure{height:100%; margin:0; display:flex; flex-direction:column}

.ks-split figure img{width:100%; height:auto; object-fit:contain}


figure{margin:26px 0}
figure img{display:block; width:auto; max-width:100%; height:auto;
  border:1px solid var(--line); border-radius:var(--radius); background:var(--card)}
figcaption{font-size:.86rem; color:var(--muted); margin-top:8px; max-width:68ch}

.ks-wide img{width:100%}
.ks-wide{width:min(var(--wideimg),calc(100vw - 40px)); max-width:none}

.ks-col > .ks-split{width:min(1140px,calc(100vw - 40px)); max-width:none}


.ks-grade{display:inline-flex; align-items:center; gap:6px; font-size:.74rem; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase; padding:3px 8px; border-radius:2px; white-space:nowrap}
.ks-grade i{width:10px; height:10px; display:inline-block; flex:0 0 auto}
.ks-g-written{background:var(--g-written-bg); color:var(--g-written-fg)}
.ks-g-written i{background:var(--g-written); border-radius:1px}
.ks-g-for-reference{background:var(--g-reference-bg); color:var(--g-reference-fg)}
.ks-g-for-reference i{border:2px dashed var(--g-reference)}
.ks-g-third-party{background:var(--g-third-bg); color:var(--g-third-fg)}
.ks-g-third-party i{border:1.5px solid var(--g-third);
  background:repeating-linear-gradient(45deg,var(--g-third) 0 2px,transparent 2px 4px)}
.ks-g-unverifiable{background:var(--g-unver-bg); color:var(--g-unver-fg)}
.ks-g-unverifiable i{border:1.5px solid var(--g-unver); position:relative}
.ks-g-unverifiable i::after{content:""; position:absolute; left:-2px; right:-2px; top:3px;
  height:1.5px; background:var(--g-unver); transform:rotate(-45deg)}


.ks-stubs{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; margin:22px 0}
.ks-stub{background:var(--stub); border:1px solid var(--line); border-left:3px solid var(--brand);
  border-radius:var(--radius); padding:16px 18px; display:flex; flex-direction:column; gap:8px}
.ks-stub .ks-q{font-size:.92rem; color:var(--muted); max-width:none; margin:0}
.ks-num{font-family:'Azeret Mono',ui-monospace,'Cascadia Mono',Consolas,monospace;
  font-size:1.44rem; font-weight:600; letter-spacing:-.02em; line-height:1.15}
.ks-unit{font-size:.86rem; color:var(--muted); max-width:none; margin:0}
.ks-when{font-family:'Azeret Mono',ui-monospace,monospace; font-size:.74rem; color:var(--muted);
  margin-top:auto; padding-top:8px}


.ks-pair{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; margin:20px 0; align-items:stretch}
.ks-pair > div{padding:16px 18px; background:var(--card); display:flex; flex-direction:column; gap:6px}
.ks-pair > div + div{border-left:1px solid var(--line); background:var(--stub)}
.ks-pair p{max-width:none; margin:0}
.ks-pairv{font-family:'Azeret Mono',ui-monospace,monospace; font-size:1.1rem; font-weight:600}
.ks-pairw{font-size:.84rem; color:var(--muted)}
.ks-pairnote{font-size:.9rem; margin:10px 0 24px; padding-left:14px; border-left:2px solid var(--brand)}


.ks-probe{border:1px solid var(--line); border-radius:var(--radius); background:var(--card); padding:20px}
.ks-probe label{display:block; font-size:.9rem; color:var(--muted); margin-bottom:6px}
.ks-probe select{width:100%; max-width:640px; min-height:48px; padding:0 12px; font-size:1rem;
  font-family:inherit; color:var(--ink); background:var(--paper);
  border:1.5px solid var(--ink); border-radius:var(--radius)}
.ks-out{margin-top:18px; display:grid; gap:12px}
.ks-out[hidden]{display:none}
.ks-outrow{display:grid; grid-template-columns:minmax(120px,160px) 1fr; gap:14px;
  padding-top:12px; border-top:1px solid var(--line)}
.ks-outrow:first-child{border-top:0; padding-top:0}
.ks-outk{font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted)}
.ks-outv{max-width:none}
.ks-quote{font-family:'Newsreader',serif; font-size:1.02rem; font-style:italic}


.ks-tablewrap{overflow-x:auto; margin:20px 0}
table{border-collapse:collapse; width:100%; font-size:.95rem}
th,td{text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top}
th{font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-weight:600}
td b{font-weight:600}


.ks-faq{margin:18px 0 0}
.ks-faq details{border-top:1px solid var(--line); padding:4px 0}
.ks-faq summary{cursor:pointer; padding:12px 0; min-height:44px; display:flex; align-items:center;
  font-weight:600; font-family:'Newsreader',serif; font-size:1.06rem}
.ks-faq summary::marker{color:var(--brand)}
.ks-faq p{margin:0 0 14px}


.ks-strip{border:1px solid var(--line); border-left:3px solid var(--brand); background:var(--stub);
  border-radius:var(--radius); padding:16px 20px; display:flex; flex-wrap:wrap; gap:12px 22px;
  align-items:center; margin:26px 0}
.ks-strip p{margin:0; max-width:52ch}
.ks-strip a{display:inline-flex; align-items:center; min-height:44px; font-weight:600}
.ks-act a{display:inline-flex; align-items:center; min-height:44px; font-weight:600}
.ks-skip:focus{min-height:44px; align-items:center}


.ks-foot{border-top:1px solid var(--line); margin-top:48px; padding:30px 0 44px;
  font-size:.92rem; color:var(--muted)}
.ks-footgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px}
.ks-foot ul{list-style:none; margin:8px 0 0; padding:0}
.ks-foot li{margin:0 0 2px}
.ks-foot ul a{display:inline-flex; align-items:center; min-height:44px; min-width:44px}
.ks-foot a{color:var(--muted)}
.ks-foot a:hover{color:var(--accent)}
.ks-foot h2{font-size:.78rem; letter-spacing:.06em; text-transform:uppercase;
  font-family:'Archivo',sans-serif; font-weight:600; color:var(--ink); margin:0}
.ks-fine{margin-top:26px; padding-top:18px; border-top:1px solid var(--line); max-width:78ch}

@media (max-width:1000px){
  .ks-withrail{grid-template-columns:1fr; gap:18px}
  .ks-rail{border-left:0; border-top:2px solid var(--line); padding-left:0; padding-top:14px}
  .ks-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:760px){
  body{font-size:16px}
  .ks-grid{grid-template-columns:repeat(2,1fr)}
  .ks-split{grid-template-columns:1fr; gap:20px}
  .ks-split figure img{height:auto}
  .ks-pair{grid-template-columns:1fr}
  .ks-pair > div + div{border-left:0; border-top:1px solid var(--line)}
  .ks-outrow{grid-template-columns:1fr; gap:4px}
  .ks-hero{padding:34px 0 6px}
  .ks-find input,.ks-find button{min-height:52px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto !important}
}
