/* Hallsbrook. Canvas board D: board C's palette and type, board B's rising-line mark.
   Rule from Alton (2026-10-22): no eyebrows carrying context. Every headline stands on its own,
   card labels are body-size lead-ins, and commercial terms sit in body text. */
:root {
  --charcoal:#22252A; --moss:#56703F; --river:#3D7A8C; --moss-lt:#A9C08F; --river-lt:#8CC3D1;
  --graphite:#3A3E44; --slate:#5C6066; --line:#E6E4DD; --paper:#FBFBF8; --soft:#F2F1EB; --muted:#B4B8BD;
  --bg:var(--paper); --ink:var(--charcoal); --body:var(--graphite); --sub:var(--slate); --card:#FFFFFF;
  --accent:var(--river); --accent2:var(--moss); --mark-line:var(--river); --mark-base:var(--moss);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg:var(--charcoal); --ink:var(--paper); --body:#D3D5D8; --sub:var(--muted); --card:#2B2F35;
    --line:#3A3E44; --soft:#2B2F35; --accent:var(--river-lt); --accent2:var(--moss-lt);
    --mark-line:var(--river-lt); --mark-base:var(--moss-lt);
  }
}
:root[data-theme="dark"] {
  --bg:var(--charcoal); --ink:var(--paper); --body:#D3D5D8; --sub:var(--muted); --card:#2B2F35;
  --line:#3A3E44; --soft:#2B2F35; --accent:var(--river-lt); --accent2:var(--moss-lt);
  --mark-line:var(--river-lt); --mark-base:var(--moss-lt);
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--body); font-family:'Instrument Sans',system-ui,sans-serif; font-size:17px; line-height:1.6; }
.wrap { max-width:1040px; margin:0 auto; padding:28px 20px 64px; }

/* header + nav */
.site-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.wordmark { font-weight:600; font-size:24px; letter-spacing:-0.02em; color:var(--ink); }
.nav { display:flex; gap:20px; flex-wrap:wrap; font-size:15px; }
.nav a { color:var(--body); text-decoration:none; }
.nav a:hover, .nav a[aria-current="page"] { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.mark .l { stroke:var(--mark-line); } .mark .b { stroke:var(--mark-base); }

/* type */
h1, h2 { font-family:'Instrument Serif',serif; font-weight:400; color:var(--ink); }
h1 { font-size:clamp(42px,7.5vw,72px); line-height:1.03; margin:64px 0 18px; }
h2 { font-size:clamp(30px,4.6vw,42px); line-height:1.1; margin:0 0 12px; }
h3 { font-size:19px; color:var(--ink); margin:0 0 10px; line-height:1.3; }
.lede { font-size:clamp(18px,2.4vw,21px); max-width:660px; margin:0; }
.sub { max-width:680px; margin:0; }
section { margin-top:80px; }
a { color:var(--accent); }
strong { color:var(--ink); }

/* layout pieces */
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; margin-top:26px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:6px; padding:24px; }
.card p { margin:0 0 12px; }
.card .found { color:var(--ink); font-weight:600; }
.card .did { color:var(--accent2); font-weight:600; border-top:2px solid var(--accent2); padding-top:12px; margin:4px 0 0; display:inline-block; }
.band { background:var(--soft); border-radius:6px; padding:26px; margin-top:24px; display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:22px; }
.band strong { display:block; margin-bottom:4px; }
.price { font-family:'Instrument Serif',serif; color:var(--ink); font-size:44px; line-height:1; margin:4px 0 10px; }
.terms { color:var(--ink); font-weight:600; margin:0 0 14px; }
.stages { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; margin-top:26px; }
.stage h3 { border-top:3px solid var(--accent); padding-top:12px; }
.stage ul, .prose ul { margin:0; padding-left:20px; }
.stage li { margin-bottom:4px; }
.pillar .n { font-family:'IBM Plex Mono',monospace; color:var(--accent); font-weight:600; font-size:22px; }
.prose { max-width:720px; }
.prose p { margin:0 0 16px; }
.prose h2 { margin-top:56px; }
.prose h3 { margin-top:28px; }
.stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:18px; margin:28px 0; }
.stat .v { font-family:'IBM Plex Mono',monospace; font-weight:600; color:var(--ink); font-size:30px; line-height:1.1; }
.stat p { margin:6px 0 0; font-size:15px; }
details { border-top:1px solid var(--line); padding:14px 0; }
details:last-of-type { border-bottom:1px solid var(--line); }
summary { cursor:pointer; color:var(--ink); font-weight:600; }
details p { margin:10px 0 0; }
.cta { display:inline-block; margin-top:22px; padding:12px 20px; border-radius:6px; background:var(--ink); color:var(--bg); text-decoration:none; font-weight:600; }
.cta.secondary { background:transparent; color:var(--ink); border:1px solid var(--line); margin-left:10px; }
.mono { font-family:'IBM Plex Mono',monospace; }
.small { font-size:14px; color:var(--sub); }
footer { margin-top:88px; padding-top:22px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:14px; color:var(--sub); }
footer a { color:var(--sub); }
@media (max-width:520px) { .cta.secondary { margin-left:0; } .nav { gap:14px; } }
