/* Thrift Routes */
*,*::before,*::after{box-sizing:border-box}
:root{
  --bg:#f7f4ee; --ink:#1c1914; --muted:#6b6458; --accent:#3d6b4f;
  --accent-ink:#2d523c; --accent-soft:#d8e6d8; --tint:#f3efe6;
  --line:#e0d8cc; --card:#fffcf6;
  --maxw:66ch;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#14110d; --ink:#ece6dc; --muted:#a89e8e; --accent:#7dba8f;
    --accent-ink:#9fd4ae; --accent-soft:#1c2e22; --tint:#1a1712;
    --line:#2c261e; --card:#1c1914;
    color-scheme:dark;
  }
}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif; line-height:1.18; letter-spacing:-0.02em;
  text-transform:none; margin:0 0 .5em; font-weight:700}
h1{font-size:clamp(2rem,1.35rem + 2.4vw,3rem)}
h2{font-size:clamp(1.4rem,1.15rem + 1.1vw,1.85rem); margin-top:2.2em}
h3{font-size:1.15rem; margin-top:1.9em}
p,ul,ol,table{margin:0 0 1.1em}
a{color:var(--accent-ink); text-underline-offset:2px; text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--accent); outline-offset:2px; border-radius:2px}
img{max-width:100%; height:auto}
hr{border:0; border-top:1px solid var(--line); margin:2.5rem 0}
code{font-family:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace; font-size:.9em; background:var(--tint);
  padding:.12em .38em; border-radius:3px}
.wrap{max-width:1080px; margin:0 auto; padding:0 20px}
.prose{max-width:var(--maxw)}
.skip{position:absolute; left:-9999px; top:0; background:var(--accent); color:#fff;
  padding:.7rem 1rem; z-index:99; border-radius:0 0 3px 0}
.skip:focus{left:0}

/* header */
header.site{border-bottom:1px solid var(--line); background:var(--bg);
  position:sticky; top:0; z-index:20}
header.site .wrap{display:flex; align-items:center; gap:1.25rem;
  min-height:62px; flex-wrap:wrap}
.brand{font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif; font-weight:800; font-size:1.05rem; letter-spacing:-.02em;
  color:var(--ink); text-decoration:none; display:flex; align-items:center; gap:.55rem;
  margin-right:auto; padding:.4rem 0}
.brand .mk{width:22px; height:22px; flex:none}
nav.main{display:flex; gap:1.1rem; flex-wrap:wrap}
nav.main a{color:var(--muted); text-decoration:none; font-size:.94rem; padding:.4rem 0;
  border-bottom:2px solid transparent}
nav.main a:hover,nav.main a[aria-current="page"]{color:var(--ink); border-bottom-color:var(--accent)}

/* hero */
.hero{background:var(--bg); --hero-fg:var(--ink);--hero-muted:var(--muted); padding:clamp(2.5rem,6vw,4.5rem) 0; color:var(--hero-fg)}
.hero h1{max-width:19ch; color:var(--hero-fg)}
.hero .lede{font-size:clamp(1.05rem,1rem + .4vw,1.28rem); max-width:56ch;
  color:var(--hero-muted); margin-bottom:1.6rem}
.kicker{font-family:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace; font-size:.74rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent-ink); margin:0 0 .9rem; font-weight:600}
.hero .kicker{color:var(--hero-fg); opacity:.75}
.hero.underline h1{padding-bottom:.35em; border-bottom:6px solid var(--accent);
  display:inline-block; max-width:100%}
.hero.bar{padding-left:0}
.hero.bar .wrap{padding-left:34px}

/* buttons */
.btn{display:inline-block; background:var(--accent); color:#fff; padding:.72rem 1.25rem;
  border-radius:4px; text-decoration:none; font-weight:600; font-size:.97rem;
  border:1px solid transparent; cursor:pointer; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.btn:hover{filter:brightness(.93)}
.btn.ghost{background:transparent; color:var(--hero-fg); border-color:currentColor; opacity:.85}
.btn.ghost:hover{opacity:1; filter:none}
.btns{display:flex; gap:.7rem; flex-wrap:wrap}

/* layout */
main{padding:2.5rem 0 3.5rem}
.cols{display:grid; grid-template-columns:minmax(0,1fr); gap:2.5rem}
@media (min-width:900px){.cols{grid-template-columns:minmax(0,1fr) 270px; gap:3.5rem}}
.cards{display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(255px,1fr));
  padding:0; list-style:none; margin:1.6rem 0}
.card{background:var(--card); border:1px solid var(--line); border-radius:4px;
  padding:1.15rem 1.2rem; display:flex; flex-direction:column; gap:.4rem}
.card h3{margin:0; font-size:1.05rem}
.card p{margin:0; color:var(--muted); font-size:.94rem}
.card a{text-decoration:none; color:var(--ink)}
.card a:hover{color:var(--accent-ink)}
.card .rt{font-size:.8rem; color:var(--muted); font-family:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace}

/* prose furniture */
.prose h2{scroll-margin-top:80px}
.prose h3{scroll-margin-top:80px}
.prose li{margin-bottom:.4em}
.key{font-size:1.05rem; border-left:3px solid var(--accent); padding:.1rem 0 .1rem 1rem;
  margin:1.5rem 0; font-weight:500}
.note{background:var(--tint); border:1px solid var(--line); border-left:4px solid var(--accent);
  border-radius:0 4px 4px 0; padding:1rem 1.15rem; margin:1.6rem 0}
.note p{margin:0 0 .5em} .note p:last-child{margin:0}
.note-t{font-weight:700; font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif; font-size:.95rem}
.note.warn{border-left-color:#9a4d14}
blockquote{margin:1.6rem 0; padding-left:1.2rem; border-left:3px solid var(--line);
  color:var(--muted); font-style:italic}
.tw{overflow-x:auto; margin:1.6rem 0; border:1px solid var(--line); border-radius:4px}
table{border-collapse:collapse; width:100%; font-size:.93rem; margin:0}
caption{text-align:left; padding:.8rem 1rem .2rem; color:var(--muted); font-size:.86rem}
th,td{padding:.62rem .85rem; text-align:left; border-bottom:1px solid var(--line);
  vertical-align:top}
th{background:var(--tint); font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif; font-size:.86rem; letter-spacing:.01em}
tbody tr:last-child td{border-bottom:0}
ol.steps{list-style:none; counter-reset:s; padding:0; margin:1.6rem 0}
ol.steps li{counter-increment:s; position:relative; padding-left:3rem; margin-bottom:1.2rem}
ol.steps li::before{content:counter(s); position:absolute; left:0; top:0;
  width:2rem; height:2rem; border-radius:4px; background:var(--accent); color:#fff;
  display:grid; place-items:center; font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif; font-weight:700; font-size:.9rem}
ol.steps strong{display:block; font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif; margin-bottom:.15rem}
ol.steps span{color:var(--muted)}
.faq details{border-bottom:1px solid var(--line); padding:.9rem 0}
.faq summary{cursor:pointer; font-weight:600; font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif; list-style:none;
  display:flex; justify-content:space-between; gap:1rem; align-items:flex-start}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; color:var(--accent-ink); font-weight:700; flex:none}
.faq details[open] summary::after{content:"\2013"}
.faq details>div{padding-top:.6rem; color:var(--muted)}
.faq details>div p:last-child{margin:0}

/* breadcrumbs, meta, toc */
.crumbs{font-size:.85rem; color:var(--muted); margin:0 0 1.2rem}
.crumbs a{color:var(--muted)}
.crumbs span{padding:0 .4rem}
.pmeta{font-size:.86rem; color:var(--muted); font-family:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace;
  margin:0 0 1.8rem; display:flex; gap:1rem; flex-wrap:wrap}
.toc{background:var(--tint); border-radius:4px; padding:1rem 1.2rem; margin:0 0 2rem;
  border:1px solid var(--line)}
.toc p{margin:0 0 .5rem; font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif; font-weight:700; font-size:.9rem}
.toc ol{margin:0; padding-left:1.1rem; font-size:.93rem}
.toc li{margin-bottom:.28em}
aside.rail{font-size:.93rem}
aside.rail h2{font-size:.82rem; text-transform:uppercase; letter-spacing:.1em;
  color:var(--muted); margin:0 0 .8rem; font-family:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace; font-weight:600}
aside.rail ul{list-style:none; padding:0; margin:0 0 2rem}
aside.rail li{margin-bottom:.6rem; line-height:1.4}
aside.rail a{text-decoration:none; color:var(--ink)}
aside.rail a:hover{color:var(--accent-ink); text-decoration:underline}
.rail-box{background:var(--tint); border:1px solid var(--line); border-radius:4px;
  padding:1rem 1.1rem; margin-bottom:2rem}
.rail-box p{margin:0 0 .7rem; font-size:.9rem; color:var(--muted)}
.rail-box .btn{width:100%; text-align:center; font-size:.9rem; padding:.6rem 1rem}

/* tool */
.tool{background:var(--card); border:1px solid var(--line); border-radius:4px;
  padding:1.4rem; margin:2rem 0}
.tool .grid{display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.tool label{display:block; font-size:.85rem; font-weight:600; margin-bottom:.3rem;
  font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif}
.tool .hint{font-weight:400; color:var(--muted); font-size:.78rem; display:block}
.tool input,.tool select{width:100%; padding:.6rem .7rem; border:1px solid var(--line);
  border-radius:3px; background:var(--bg); color:var(--ink); font-size:1rem;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.tool input:focus,.tool select:focus{border-color:var(--accent)}
.out{margin-top:1.4rem; border-top:1px solid var(--line); padding-top:1.2rem}
.stats{display:grid; gap:.9rem; grid-template-columns:repeat(auto-fit,minmax(135px,1fr));
  margin:0 0 1rem; padding:0; list-style:none}
.stat{background:var(--tint); border-radius:3px; padding:.8rem .9rem}
.stat dt{font-size:.76rem; text-transform:uppercase; letter-spacing:.07em;
  color:var(--muted); margin-bottom:.25rem; font-family:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace}
.stat dd{margin:0; font-size:1.5rem; font-weight:700; font-family:ui-serif,Georgia,Cambria,"Iowan Old Style","Times New Roman",serif;
  letter-spacing:-.02em; line-height:1.1}
.stat dd small{font-size:.85rem; font-weight:400; color:var(--muted); display:block;
  letter-spacing:0; margin-top:.15rem}
.verdict{font-size:1rem; padding:.85rem 1rem; border-radius:3px; background:var(--accent-soft);
  color:var(--ink); margin:0}
.tool table{font-size:.88rem}

/* mention + footer */
.mention{border:1px solid var(--line); border-left:4px solid var(--accent);
  background:var(--tint); border-radius:0 4px 4px 0; padding:1rem 1.2rem; margin:2rem 0;
  font-size:.95rem}
.mention p{margin:0}
.mention .lbl{font-family:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace; font-size:.72rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); display:block; margin-bottom:.35rem}
footer.site{border-top:1px solid var(--line); background:var(--tint);
  padding:2.5rem 0; margin-top:3rem; font-size:.9rem; color:var(--muted)}
footer.site .fgrid{display:grid; gap:2rem; grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
footer.site h2{font-size:.8rem; text-transform:uppercase; letter-spacing:.1em;
  margin:0 0 .7rem; font-family:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace; color:var(--ink); font-weight:600}
footer.site ul{list-style:none; padding:0; margin:0}
footer.site li{margin-bottom:.45rem}
footer.site a{color:var(--muted); text-decoration:none}
footer.site a:hover{color:var(--accent-ink); text-decoration:underline}
.colophon{border-top:1px solid var(--line); margin-top:2rem; padding-top:1.5rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.85rem}
@media print{header.site,footer.site,aside.rail,.btns{display:none}}

header.site{position:static; border-bottom:0; padding-top:1.6rem}
header.site .wrap{align-items:flex-end; padding-bottom:.9rem;
  border-bottom:1px solid var(--line)}
.brand{flex-direction:column; align-items:flex-start; gap:.1rem; font-size:1.3rem}
.brand-tag{font-family:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace; font-size:.66rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--muted); font-weight:500}
nav.main a{border-bottom:0; font-size:.9rem}
nav.main a[aria-current="page"]{text-decoration:underline; text-underline-offset:4px;
  text-decoration-thickness:2px; text-decoration-color:var(--accent)}


ul.cards.ed{display:block}
ul.cards.ed .card{background:transparent; border:0; border-radius:0; padding:1.1rem 0 0;
  border-top:1px solid var(--line); margin-bottom:1.1rem}
ul.cards.ed .card:first-child{border-top:0; padding-top:0; padding-bottom:1.4rem;
  margin-bottom:1.6rem; border-bottom:3px solid var(--accent)}
ul.cards.ed .card:first-child h3{font-size:clamp(1.5rem,1.2rem + 1.3vw,2.05rem);
  letter-spacing:-.025em; line-height:1.15}
ul.cards.ed .card:first-child p{font-size:1.06rem; color:var(--ink); opacity:.82;
  max-width:52ch}
ul.cards.ed .card h3{font-size:1.12rem}


@media (min-width:1000px){
  .cols{grid-template-columns:minmax(0,1fr) 230px}
  .prose h2::before{content:""; position:absolute; left:-1.7rem; top:.64em;
    width:.9rem; height:2px; background:var(--accent)}
  .prose h2{position:relative}
}
.toc{background:transparent; border:0; border-left:2px solid var(--accent);
  border-radius:0; padding:.2rem 0 .2rem 1.1rem}


.tw{border:0; border-top:2px solid var(--ink); border-bottom:2px solid var(--ink);
  border-radius:0}
th{background:transparent; border-bottom:1px solid var(--ink)}


ol.steps li{padding-left:2.7rem}
ol.steps li::before{border-radius:0; background:transparent; color:var(--accent-ink);
  border-bottom:2px solid var(--accent); width:1.7rem; height:auto; display:block;
  place-items:unset; padding-bottom:.2rem; font-size:.78rem; letter-spacing:.08em}


.note{border:0; border-top:2px solid var(--accent); border-radius:0;
  background:transparent; padding:.9rem 0 0}
.note.warn{border-top-color:#9a4d14}
.key{border-left:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:.9rem 0; font-style:italic}

.tool .grid > div.wide{grid-column:1/-1}
.tool textarea{width:100%; padding:.65rem .75rem; border:1px solid var(--line);
  border-radius:var(--rs,6px); background:var(--bg); color:var(--ink);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.95rem;
  line-height:1.55; resize:vertical}
.tool textarea:focus{border-color:var(--accent)}
