/* Housewarmly — the go-to-market guide. Print-clean, no frameworks. */
:root{
  --bg:#fbf6ef;--paper:#ffffff;--ink:#1b1512;--soft:#645850;--faint:#9c8f85;
  --rule:#eae0d3;--rule2:#dbcdba;
  --ember:#b4472a;--ember2:#d9663f;--wash:#fbeadf;
  --sage:#2f6b52;--sage-wash:#e4f0e9;
  --amber:#b7861a;--amber-wash:#fbf1d9;   /* the app's trade yellow at its readable depth */
  --red:#a8342c;--red-wash:#fae1de;
  --maxw:1090px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#141110;--paper:#1d1917;--ink:#efe8e0;--soft:#ada199;--faint:#77695f;
  --rule:#2c2622;--rule2:#3d3530;
  --ember:#f08a5f;--ember2:#f7a880;--wash:#33201a;
  --sage:#6fc79f;--sage-wash:#162c23;
  --amber:#e9b22b;--amber-wash:#2e2415;
  --red:#f18d82;--red-wash:#33191a;
}}
:root[data-theme="dark"]{
  --bg:#141110;--paper:#1d1917;--ink:#efe8e0;--soft:#ada199;--faint:#77695f;
  --rule:#2c2622;--rule2:#3d3530;
  --ember:#f08a5f;--ember2:#f7a880;--wash:#33201a;
  --sage:#6fc79f;--sage-wash:#162c23;
  --amber:#e9b22b;--amber-wash:#2e2415;
  --red:#f18d82;--red-wash:#33191a;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16.5px/1.62 'Instrument Sans',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--ember);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:var(--paper);padding:8px 12px;border-radius:6px;z-index:99}

h1,h2,h3,h4{font-family:'Newsreader',Georgia,serif;font-weight:600;letter-spacing:-.012em;line-height:1.14;margin:0;text-wrap:balance}
h1{font-size:clamp(2.1rem,5.2vw,3.15rem);font-weight:700}
h2{font-size:1.72rem;margin-top:2.9rem;padding-top:.2rem}
h3{font-size:1.2rem;margin-top:1.9rem}
h4{font-size:1.02rem;margin-top:1.25rem}
p{margin:.72rem 0;max-width:78ch}ul,ol{margin:.6rem 0 .6rem 1.25rem;padding:0;max-width:78ch}li{margin:.28rem 0}
b,strong{font-weight:600;color:var(--ink)}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.85em}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember);font-weight:600}
.lede{font-size:1.18rem;line-height:1.55;color:var(--soft);max-width:64ch;margin-top:.9rem}

/* Source markers */
a.s{font-family:'IBM Plex Mono',monospace;font-size:.62rem;font-weight:600;vertical-align:super;
  background:var(--wash);color:var(--ember);border-radius:3px;padding:1px 3px;margin-left:2px;text-decoration:none;white-space:nowrap}
a.s:hover{background:var(--ember);color:#fff;text-decoration:none}

/* Layout */
.layout{display:grid;grid-template-columns:262px 1fr;min-height:100vh}
nav.side{border-right:1px solid var(--rule);background:var(--paper);padding:26px 18px 20px;position:sticky;top:0;height:100vh;overflow:auto}
nav.side .brand{font-family:'Newsreader',serif;font-weight:700;font-size:1.32rem;line-height:1.1;display:block;color:var(--ink);letter-spacing:-.02em}
nav.side .sub{font-size:.76rem;color:var(--faint);margin:3px 0 18px}
nav.side ol{list-style:none;margin:0;padding:0;counter-reset:ch}
nav.side li{counter-increment:ch;margin:0}
nav.side li.home{counter-increment:none;margin-bottom:8px}
nav.side ol a{display:flex;gap:10px;padding:7px 9px;border-radius:7px;color:var(--soft);font-size:.9rem;line-height:1.3}
nav.side ol a::before{content:counter(ch,decimal-leading-zero);font-family:'IBM Plex Mono',monospace;font-size:.68rem;color:var(--faint);padding-top:3px;min-width:18px}
nav.side li.home a::before{content:"\2302"}
nav.side ol a:hover{background:var(--bg);text-decoration:none;color:var(--ink)}
nav.side ol a.on{background:var(--wash);color:var(--ink);font-weight:600}
nav.side ol a.on::before{color:var(--ember)}
nav.side .brand:hover{text-decoration:underline;text-underline-offset:3px}
.navfoot{margin-top:22px;padding-top:14px;border-top:1px solid var(--rule);font-size:.72rem;color:var(--faint)}
main{padding:46px 58px 96px;max-width:var(--maxw)}

/* Blocks */
.tldr{border:1px solid var(--rule2);border-left:4px solid var(--ember);background:var(--paper);padding:15px 20px;margin:24px 0;border-radius:5px}
.tldr .eyebrow{display:block;margin-bottom:7px}
.tldr ul{margin:.3rem 0 .2rem 1.1rem}
.note{border-left:3px solid var(--amber);background:var(--amber-wash);padding:9px 15px;color:var(--soft);margin:15px 0;font-size:.94rem;border-radius:0 5px 5px 0;max-width:80ch}
.note b{color:var(--ink)}
.warn{border-left-color:var(--red);background:var(--red-wash)}
.good{border-left-color:var(--sage);background:var(--sage-wash)}
.card{border:1px solid var(--rule);background:var(--paper);border-radius:7px;padding:15px 18px}
.card h3,.card h4{margin-top:0}
.card p:last-child,.card ul:last-child{margin-bottom:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}
.stat{border:1px solid var(--rule);background:var(--paper);border-radius:7px;padding:13px 15px;display:flex;flex-direction:column;gap:3px}
.stat .v{font-family:'Newsreader',serif;font-size:1.85rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}
.stat .k{font-size:.78rem;color:var(--soft);line-height:1.35}

/* Numbered steps */
.do{border:1px solid var(--rule2);background:var(--paper);border-radius:7px;padding:15px 18px;margin:14px 0;display:grid;grid-template-columns:auto 1fr;gap:6px 16px}
.do .n{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--ember);font-size:1.05rem;padding-top:3px}
.do h4{margin:0}.do p{margin:.3rem 0}
.do .meta{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--faint);text-transform:uppercase;letter-spacing:.09em}

/* Tables */
table{border-collapse:collapse;width:100%;font-size:.9rem;margin:14px 0;background:var(--paper)}
th{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);text-align:left;font-weight:600;padding:9px 10px;border-bottom:1px solid var(--rule2);vertical-align:bottom}
td{padding:9px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
td.r,th.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.hl td{background:var(--wash)}
tbody tr:last-child td{border-bottom:0}
.tablewrap{overflow-x:auto;border:1px solid var(--rule);border-radius:7px;margin:16px 0}.tablewrap table{margin:0}
.tablewrap.tight table{font-size:.82rem}
.tablewrap.tight td,.tablewrap.tight th{padding:7px 9px}

/* Pills */
.pill{display:inline-block;border-radius:999px;padding:2px 9px;font-size:.72rem;font-weight:600;background:var(--wash);color:var(--ember);white-space:nowrap}
.pill.sage{background:var(--sage-wash);color:var(--sage)}
.pill.amber{background:var(--amber-wash);color:var(--amber)}
.pill.red{background:var(--red-wash);color:var(--red)}
.pill.grey{background:var(--bg);color:var(--faint);border:1px solid var(--rule)}

figure{margin:20px 0;border:1px solid var(--rule);background:var(--paper);border-radius:7px;padding:16px 18px}
figcaption{font-size:.8rem;color:var(--soft);margin-top:10px;line-height:1.45}
.chart{width:100%;height:auto;display:block}

.timeline{list-style:none;margin:18px 0;padding:0;border-left:2px solid var(--rule2)}
.timeline li{position:relative;padding:4px 0 16px 22px}
.timeline li::before{content:"";position:absolute;left:-7px;top:10px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--ember)}
.timeline .when{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--faint);text-transform:uppercase;letter-spacing:.09em}
.timeline b{display:block;margin-top:2px}

.copy{background:var(--bg);border:1px solid var(--rule);border-left:3px solid var(--rule2);border-radius:5px;padding:14px 16px;font-size:.92rem;line-height:1.6;white-space:pre-wrap;font-family:inherit;margin:12px 0;max-width:74ch}
.copy .subj{font-weight:600;color:var(--ink)}

.filters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0;align-items:center}
.filters button,.filters select,.filters input{font:inherit;font-size:.85rem;padding:5px 11px;border:1px solid var(--rule2);border-radius:5px;background:var(--paper);color:var(--ink);cursor:pointer}
.filters button.on{background:var(--ember);border-color:var(--ember);color:#fff}
.filters .count{font-size:.8rem;color:var(--faint);margin-left:auto;font-family:'IBM Plex Mono',monospace}

.next{margin-top:52px;border-top:1px solid var(--rule2);padding-top:16px;display:flex;justify-content:space-between;gap:20px;font-size:.9rem}
.toc{font-size:.92rem;columns:2;column-gap:26px;margin:14px 0}.toc li{break-inside:avoid;margin:.3rem 0}
.dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:12px 0;font-size:.93rem}
.dl dt{font-weight:600}.dl dd{margin:0;color:var(--soft)}

.menu-btn{display:none;position:fixed;top:10px;right:10px;z-index:50;font:inherit;font-size:.82rem;padding:6px 12px;border:1px solid var(--rule2);border-radius:6px;background:var(--paper);color:var(--ink);cursor:pointer}

@media (max-width:900px){
  .layout{grid-template-columns:1fr}
  nav.side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--rule)}
  nav.side ol{display:none}nav.side.open ol{display:block}
  .menu-btn{display:block}
  main{padding:26px 18px 64px}
  .grid2,.grid3,.grid4{grid-template-columns:1fr}
  .toc{columns:1}
}
@media print{
  nav.side,.next,.filters,.menu-btn{display:none}
  .layout{display:block}main{max-width:none;padding:0}
  body{background:#fff;font-size:10.5pt}
  h2{page-break-after:avoid}.tablewrap,figure,.card{page-break-inside:avoid}
  a.s{background:none;color:#666}
}
