/* EDITED IN PLACE (10/11, docs/GRADES-ON-PAGES.md: generators are retired for built pages). This file is no longer
   generated: mocks/src/history/make_css.py made its first build and now refuses to overwrite it without --force.
   Edit the rules here; tools/css_lint.py guards them (a rule two pages share goes in core.css). The note below is history. */
/* TG history.css: History page (merged direction). Part 1 is generated by mocks/src/history/make_css.py:
   the live TownTapestry History rules the merged pages use (tools/css_audit.py, @media wrappers kept), minus every
   rule core.css already has and every top-level rule another page file already holds (see Core requests in
   docs/design/history.md). Part 2 is this page's additions (mocks/src/history/additions.css). */
.lm .ph{height:130px;background:var(--surface)}
.qa{display:flex;flex-direction:column;gap:8px}
.hi-hero{position:relative;border-radius:18px;overflow:hidden;background:var(--night);color:#fff;min-height:440px;display:flex;align-items:flex-end}
.hi-mosaic{position:absolute;inset:0;display:grid;gap:3px}
.hi-mosaic img{width:100%;height:100%;object-fit:cover;filter:sepia(.18) saturate(.9);min-height:0}
.hi-mosaic.n1{grid-template-columns:1fr}
.hi-mosaic.n3{grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr}
.hi-mosaic.n3 img:first-child{grid-row:span 2}
.hi-mosaic.n5{grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:1fr 1fr}
.hi-mosaic.n5 img:first-child{grid-row:span 2}
.hi-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,16,24,.94) 0%,rgba(12,16,24,.8) 42%,rgba(12,16,24,.25) 100%),linear-gradient(0deg,rgba(12,16,24,.6),transparent 50%)}
.hi-in{position:relative;z-index:1;max-width:640px;padding:36px}
.hi-in .kick{color:#f2c879}
.hi-in h1{font-size:46px;letter-spacing:-.04em;line-height:1.03;margin-top:8px}
.hi-in h1 em{font-style:normal;color:#f2c879}
.hi-in > p{color:#d5dbe5;font-size:16px;margin:12px 0 0;max-width:560px}
.hi-stats{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:22px}
.hi-stats div{display:flex;flex-direction:column}
.hi-stats b{font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.hi-stats small{font-size:12.5px;color:#aeb7c6}
.hi-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hi-credit{position:absolute;right:14px;bottom:10px;z-index:1;font-size:11.5px;color:rgba(255,255,255,.7)}
.hi-text p.sig-src{margin:16px 0 0}
.hi-text p.sig-src .link{color:inherit;font-weight:500;text-decoration:underline;text-underline-offset:2px}
.hi-chap{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 6px}
.hi-chap .kick{margin-right:6px}
.qa-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:16px}
.qa-grid.one{grid-template-columns:1fr}
@media (max-width:820px){
  .qa-grid{grid-template-columns:1fr}
}
.qa{border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px;background:#fff;display:flex;flex-direction:column;gap:10px}
.qa.when{background:#fbf8f2;border-color:#eee6d6}
.qa h3{font-size:15px;font-weight:600;color:var(--muted);margin:0;letter-spacing:-.01em}
.qa .big{font-size:56px;line-height:1;font-weight:800;letter-spacing:-.04em;color:var(--ink)}
.qa p{margin:0;color:var(--ink-2);line-height:1.55}
.qa .qa-ans{font-size:19px;line-height:1.4;font-weight:600;color:var(--ink);letter-spacing:-.015em}
.qa .alt{border-top:1px solid var(--hair);padding-top:12px;margin-top:2px}
.qa .alt b{display:block;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.qa-mini{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px}
.qa-mini span{font-size:13px;background:#fff;border:1px solid #eee6d6;border-radius:999px;padding:5px 11px;color:var(--ink-2)}
.qa-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:13px;color:var(--faint)}
.qa-foot a{color:var(--accent-ink);font-weight:600}
.hi-tl{list-style:none;margin:0;padding:0;position:relative}
.hi-tl::before{content:"";position:absolute;left:79px;top:6px;bottom:6px;width:2px;background:#eadfca}
.hi-cent{padding:14px 0 6px 102px}
.hi-cent span{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#b7791f}
.hi-ev{display:grid;grid-template-columns:62px 36px minmax(0,1fr);gap:0 12px;align-items:center;padding:5px 0}
.hi-ev > b{text-align:right;font-size:16px;color:var(--ink)}
.hi-dot{width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid #eadfca;display:grid;place-items:center;color:#9c6a13;position:relative;z-index:1}
.hi-dot .ic{width:15px;height:15px}
.hi-ev.k-h .hi-dot{color:#6b4bc4;border-color:#ddd3f3}
.hi-ev.k-b .hi-dot, .hi-ev.k-n .hi-dot{color:var(--accent-ink);border-color:#cdebd9}
.hi-ev > a, .hi-ev > div{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--r);padding:8px 12px;background:#fff;min-width:0}
.hi-ev > a:hover{border-color:#d9c9a6;box-shadow:0 4px 16px rgba(15,22,35,.06)}
.hi-ev img{width:54px;height:40px;object-fit:cover;border-radius:6px;flex:none;filter:sepia(.15)}
.hi-ev span{font-size:14.5px;line-height:1.35;min-width:0}
.hi-ev small{display:block;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.hi-rows{display:flex;flex-direction:column;gap:14px}
.hi-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:stretch}
.hi-era{display:flex;flex-direction:column;justify-content:center;border-right:3px solid #eadfca;padding-right:10px}
.hi-era b{font-size:20px;letter-spacing:-.03em;line-height:1.1}
.hi-era small{font-size:12px;color:var(--muted)}
.hi-era.gap{border-color:#eef0f3}
.hi-era.gap b{font-size:14px;color:var(--muted)}
.hi-era.ask{border-color:#f2c879}
.hi-tns{display:grid;gap:16px}
.hi-tns.n3{grid-template-columns:1.6fr 1fr;grid-template-rows:auto auto}
.hi-tns.n3 figure:first-child{grid-row:span 2}
.hi-tns figure{margin:0;display:flex;flex-direction:column;gap:8px}
.hi-tns figcaption a{font-weight:700;font-size:15px}
.hi-tns figcaption a:hover{color:var(--accent-ink)}
.hi-retake{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:center;border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;background:#fff}
.hi-retake img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);filter:sepia(.15)}
.hi-retake b{display:block;font-size:19px;letter-spacing:-.02em;margin:4px 0 6px}
.hi-retake p{color:var(--ink-2);font-size:14.5px;margin:0 0 14px}
.hi-nrk{margin-top:0}
.hi-nrmid{margin-top:18px}
.hi-nrmap{border:1px solid var(--line);border-radius:14px;background:#fafbfc;padding:10px}
.hi-nrmap svg{width:100%;height:auto;display:block;max-height:440px}
.hi-town{fill:#f1ece2;stroke:#d9c9a6;stroke-width:1.5;vector-effect:non-scaling-stroke}
.hi-pt{stroke:#fff;stroke-width:2;fill-opacity:.9}
.hi-nrmap a:hover .hi-pt{stroke:var(--ink)}
.hi-star{font-size:11px;fill:#fff;pointer-events:none;font-weight:700}
.hi-lm{margin-top:18px}
.hi-lm .ph{position:relative}
.hi-nhl{position:absolute;left:8px;top:8px;font-style:normal;font-size:11.5px;font-weight:700;background:#fff7e3;color:#8a5a00;padding:2px 8px;border-radius:999px}
.hi-all{margin-top:14px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.hi-all summary{cursor:pointer;padding:12px 16px;font-weight:700;font-size:14px}
.hi-allg{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 18px;padding:0 16px 12px}
.hi-allg a{display:grid;grid-template-columns:10px minmax(0,1fr);gap:0 10px;align-items:center;padding:8px 0;border-top:1px solid var(--hair)}
.hi-allg a i{width:10px;height:10px;border-radius:50%;grid-row:span 2}
.hi-allg b{font-size:14px}
.hi-allg small{font-size:12px;color:var(--muted)}
.hi-allg a:hover b{color:var(--accent-ink)}
.hi-people{grid-template-columns:repeat(6,minmax(0,1fr))}
.hi-help{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;align-items:start}
.hi-cells{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin:12px 0 8px}
.hi-cells span{height:44px;border-radius:8px;background:#eef0f3;color:var(--faint);font-size:11px;font-weight:700;display:grid;place-items:end center;padding-bottom:4px}
.hi-cells span.on{background:#b7791f;color:#fff}
.hi-cov small{font-size:12.5px;color:var(--muted)}
.hi-missions{display:flex;flex-direction:column;gap:10px}
.hi-m{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff}
.hi-m:hover{border-color:#d9c9a6;box-shadow:0 4px 16px rgba(15,22,35,.06)}
.hi-mi{width:40px;height:40px;border-radius:var(--r);background:#fbf2df;color:#9c6a13;display:grid;place-items:center}
.hi-m b{display:block;font-size:15px}
.hi-m small{font-size:13px;color:var(--muted)}
.hi-m > i{font-style:normal;font-size:12px;font-weight:800;color:var(--accent-ink);background:var(--accent-tint);padding:3px 8px;border-radius:999px}
.hi-near{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.hi-near a{display:grid;grid-template-columns:22px minmax(0,1fr);gap:0 10px;align-items:center;border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;background:#fff}
.hi-near a .ic{grid-row:span 2;color:#b7791f}
.hi-near b{font-size:14.5px}
.hi-near small{font-size:12.5px;color:var(--muted)}
.hi-near a:hover{border-color:#d9c9a6}
.hi-mapv{max-width:880px}
.hi-pin{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:3px solid #e2483d;box-shadow:0 0 0 4px rgba(226,72,61,.25);transition:left .45s,top .45s;pointer-events:none}
.hi-yr{position:absolute;left:14px;top:14px;background:rgba(15,22,35,.82);color:#fff;border-radius:10px;padding:6px 12px;font-weight:800;font-size:22px;font-variant-numeric:tabular-nums;line-height:1.15}
.hi-yr small{display:block;font-weight:500;font-size:11.5px;opacity:.85}
.hi-years .play{margin-left:auto;font-weight:600;color:var(--accent-ink)}
.hi-pop{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:24px;align-items:center}
.hi-pop svg{width:100%;height:auto;display:block}
.hi-pop .g{stroke:var(--hair)}
.hi-pop .ax{font-size:11px;fill:var(--faint)}
.hi-pop .a{fill:rgba(14,159,87,.08)}
.hi-pop .l{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}
.hi-pop .d{fill:var(--accent)}
.hi-pop .n{fill:#fff;stroke:#b7791f;stroke-width:2.5}
.hi-pop .nt{font-size:12px;font-weight:700;fill:var(--ink)}
.hi-read{font-size:18px;line-height:1.45;font-weight:600;color:var(--ink);margin:0 0 8px}
.hi-lost{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start}
.hi-po{display:grid;gap:8px}
.hi-por{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;font-size:14px}
.hi-por b{font-weight:600}
.hi-por .tr{position:relative;height:22px;background:var(--surface);border-radius:6px}
.hi-por .bar{position:absolute;top:0;bottom:0;border-radius:6px;background:#c9b48a;display:flex;align-items:center;padding:0 8px;font-size:11.5px;font-weight:600;color:#3d2f12;white-space:nowrap}
.hi-por .bar.live{background:var(--accent-soft);color:#064b29}
.hi-axis{display:flex;justify-content:space-between;margin:6px 0 0 162px;font-size:11px;color:var(--faint)}
.hi-vill{margin-top:18px}
.hi-vill .kick{display:block;margin-bottom:8px}
.hi-chips{display:flex;flex-wrap:wrap;gap:6px}
.hi-chips span{font-size:13px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:5px 11px;background:var(--surface)}
.hi-chips small{font-weight:500;color:var(--muted);margin-left:5px}
.hi-cem>b{display:block;font-size:40px;line-height:1;font-weight:800;color:#5b4a2a}
.hi-cem>span{display:block;margin:6px 0 10px;font-size:15px;font-weight:600}
.hi-cemn{display:flex;flex-wrap:wrap;gap:5px;max-height:150px;overflow:hidden;position:relative}
.hi-cemn span{font-size:12px;background:#fff;border:1px solid #eadfc8;border-radius:6px;padding:3px 7px;color:#5b4a2a}
.hi-cemn.fade::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(transparent,#fbf8f2)}
.hi-cemall{margin-top:8px;font-size:13px}
.hi-sb{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:16px;align-items:start}
.hi-sbm{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#efe8d8;display:grid;place-items:center;min-height:420px}
.hi-sbm img{display:block;max-width:100%;max-height:780px;object-fit:contain}
.hi-sbs{display:grid;gap:12px}
.hi-sbs .kick{display:block;margin-bottom:6px}
.hi-sbt{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hi-sbt button{padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#efe8d8;cursor:pointer;aspect-ratio:3/3.6}
.hi-sbt button[aria-pressed="true"]{border-color:var(--accent)}
.hi-sbt a{display:grid;place-items:center;border:1px dashed var(--line);border-radius:8px;font-size:12px;font-weight:600;color:var(--accent-ink);text-align:center;padding:6px;aspect-ratio:3/3.6}
.hi-sbl{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.hi-sbl i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-2px}
.hi-bk{display:grid;gap:18px}
.hi-bkq{margin:0;border:1px solid #eadfc8;border-radius:var(--r-lg);overflow:hidden;background:#fbf8f2}
.hi-bks{background:#f4ecd9;padding:14px 16px;border-bottom:1px solid #eadfc8}
.hi-bks img{display:block;width:100%;max-width:680px;height:auto;margin:0 auto;mix-blend-mode:multiply}
.hi-bkm{padding:12px 16px;display:grid;gap:8px}
.hi-bkc{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}
.hi-bkc b{display:block;font-size:14.5px}
.hi-bkc small{color:var(--muted);font-size:12.5px}
.hi-bkc a{font-size:13px;color:var(--accent-ink);font-weight:600;white-space:nowrap}
.hi-bkt summary{cursor:pointer;font-size:12.5px;color:var(--muted);font-weight:600}
.hi-bkt p{margin:8px 0 4px;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.hi-bkt small{font-size:11.5px;color:var(--faint)}
@media (max-width:820px){
  .hi-sb{grid-template-columns:1fr}
  .hi-sbt{grid-template-columns:repeat(6,1fr)}
  .hi-sbm{min-height:260px}
}
.hi-cemall summary{cursor:pointer;color:var(--accent-ink);font-weight:600}
.hi-cemall p{color:var(--muted);margin:8px 0 0}
@media (max-width:820px){
  .hi-pop, .hi-lost{grid-template-columns:1fr}
  .hi-por{grid-template-columns:104px 1fr}
  .hi-axis{margin-left:116px}
  .hi-yr{font-size:18px}
}
@media (max-width:1100px){
  .hi-story{grid-template-columns:1fr}
  .hi-help{grid-template-columns:1fr}
  .hi-people{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .hi-hero{min-height:0;display:block}
  .hi-mosaic{position:relative;height:200px}
  .hi-mosaic.n5{grid-template-columns:1.4fr 1fr}
  .hi-mosaic.n5 img:nth-child(n+4){display:none}
  .hi-scrim{display:none}
  .hi-in{padding:20px}
  .hi-in h1{font-size:30px}
  .hi-stats b{font-size:21px}
  .hi-credit{top:176px;bottom:auto}
  .hi-tl::before{left:55px}
  .hi-cent{padding-left:76px}
  .hi-ev{grid-template-columns:44px 28px minmax(0,1fr);gap:0 8px}
  .hi-ev > b{font-size:14px}
  .hi-dot{width:26px;height:26px}
  .hi-ev img{display:none}
  .hi-row{grid-template-columns:1fr;gap:6px}
  .hi-era{flex-direction:row;align-items:baseline;gap:8px;border-right:0;border-bottom:2px solid #eadfca;padding:0 0 4px}
        .hi-tns.n3{grid-template-columns:1fr}
  .hi-retake{grid-template-columns:1fr}
  .hi-cells span{height:34px;font-size:10px}
  .hi-people{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ===== Part 2: History additions, styled like the live cards (prefix hx-) ===== */
/* hero: Health's separate badge (core .he-top/.he-hbadge) on live's dark photo mosaic */
.hi-in .he-top{align-items:flex-start}
.hi-in .he-hbadge{margin-top:6px}
.hi-in .he-hbadge small{color:#d5dbe5}
.hi-in .he-top h1{font-size:36px;line-height:1.08;margin-top:6px}
.hi-in .hx-line{margin:14px 0 0;font-size:15px;color:#fff;font-weight:600}
.hi-in .hx-line a{color:#f2c879;font-weight:600;margin-left:6px}
@media (max-width:900px){.hi-in .he-top h1{font-size:30px}}
@media (max-width:640px){
  .hi-in .he-top{gap:12px}
  .hi-in .he-top h1{font-size:24px}
}
/* Quick answers: "How historic is X?" beside the founding card */
.qa-grid.hx-three{grid-template-columns:1fr 1.35fr 1fr}
@media (max-width:1100px){.qa-grid.hx-three{grid-template-columns:1fr 1fr}}
@media (max-width:820px){.qa-grid.hx-three{grid-template-columns:1fr}}
.hx-qa-b{display:flex;gap:14px;align-items:center}
.hx-qa .link{font-size:14px}
/* the grade card */
.hx-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.hx-head > div{display:flex;flex-direction:column}
.hx-head b{font-size:17px}
.hx-head small{font-size:13px;color:var(--muted)}
.hx-gs .gs-row{grid-template-columns:170px minmax(0,1fr) 110px 46px}
.hx-gs .gs-d{white-space:normal;line-height:1.45}
@media (max-width:760px){.hx-gs .gs-row{grid-template-columns:minmax(0,1fr) 46px}}
.hx-row{margin-top:16px}
.hx-say{margin:14px 0 0;font-size:14.5px;line-height:1.55;color:var(--ink-2)}
.hx-conf{margin-top:16px;padding:12px 14px;border-radius:10px;background:var(--surface);font-size:13.5px;color:var(--ink-2);line-height:1.5}
.hx-src{margin:12px 0 0}
/* Stories next door: each neighbor's letter */
.hi-near.hx-near a{grid-template-columns:22px minmax(0,1fr) auto}
.hx-near a .badge{grid-row:1 / span 2;grid-column:3}
.hx-why{grid-column:2;font-size:11.5px;color:var(--faint);line-height:1.3}
/* Memory lane without the vote: the conversation starters alone */
.hx-talk{max-width:760px}
/* Then & now labels: the same rules sit in landing.css (the landing page's then-and-now), so they're scoped to this
   section here until core.css takes them (Core request 2 in docs/design/history.md) */

/* The History archive (docs/build/history-archive.md): the add-an-old-photo dialog, from the live app.css. */
