/* THE 1565 — public base layer
   Tokens, typography, hero, buttons, forms and footer for pages that do not carry their own inline stylesheet.
   Load order on a page: Google Fonts → public-base.css → activity-trail.css → public-shell.css → public-density.css → public-precision.css
   Existing pages still carry inline copies of most of this; new pages should use this file instead. */
:root{
  --ink:#14212b; --ink-2:#3b4b58; --mute:#4a5661; --paper:#f8f4ec; --paper-2:#efe9dc; --paper-3:#e6ddcb; --line:#d8cdb9;
  --navy:#0f1f2e; --navy-2:#162c3f; --navy-3:#21405a; --brass:#c9a24d; --brass-2:#e2c477; --brass-text:#7f6220; --oxblood:#8e2f2a; --sea:#2a6f74;
  --on-navy:#eef1f3; --on-navy-2:#aab8c4;
  --display:"Fraunces",Georgia,"Times New Roman",serif; --body:"Source Sans 3","Segoe UI",system-ui,sans-serif; --mono:"JetBrains Mono",Menlo,Consolas,monospace;
  --max:72rem; --gutter:clamp(1.25rem,4vw,2.5rem); --radius:6px; --prose:42rem;
}
@media (prefers-color-scheme:dark){:root{
  --ink:#ece6da; --ink-2:#c3bcae; --mute:#a9b5bf; --paper:#0c1821; --paper-2:#122330; --paper-3:#1a2f3f; --line:#27405331;
  --navy:#08141d; --navy-2:#0f1f2e; --navy-3:#1b3348; --brass-text:#d9b86a; --oxblood:#d8705f; --sea:#5fb3b8; color-scheme:dark}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--sea)}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
h1,h2,h3{font-family:var(--display);font-weight:600;color:var(--ink);margin:0;line-height:1.1;letter-spacing:-.01em;text-wrap:balance}
h2{font-size:clamp(1.5rem,3vw,2.1rem)}
h3{font-size:1.2rem}
p{margin:0 0 1rem}
.k{font-family:var(--mono);font-size:max(.74rem,12px);letter-spacing:.18em;text-transform:uppercase;color:var(--brass-text);font-weight:500}
.rule{display:flex;align-items:center;gap:1rem;margin-bottom:1.1rem}
.rule::after{content:"";flex:1;height:1px;background:var(--line)}
.lede{font-size:1.2rem;line-height:1.55;color:var(--ink-2);max-width:var(--prose)}
.small{font-size:max(.86rem,12px);color:var(--mute)}
.prose{max-width:var(--prose)}
.prose h2{margin:2rem 0 .6rem}
.prose h3{margin:1.5rem 0 .4rem}
.prose ul,.prose ol{padding-left:1.25rem}
.prose li{margin-bottom:.35rem}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.skip{position:absolute;left:-200vw;top:.5rem;z-index:2000;background:var(--navy);color:#fff;padding:.5rem .8rem;border-radius:6px;text-decoration:none}
.skip:focus{left:.5rem}
.srOnly{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* masthead: visual rules live in public-shell.css; this only guarantees the brand block renders before shell loads */
.mast .brand .bt{display:block}

/* hero */
.hero{background:var(--navy);color:var(--on-navy);position:relative;overflow:hidden}
.hero .wrap{padding-block:clamp(2.4rem,5vw,3.6rem)}
.hero h1{color:#fff;font-size:clamp(1.9rem,4vw,2.9rem);font-weight:500;line-height:1.06;max-width:24ch;letter-spacing:-.015em}
.hero h1 em{font-style:italic;font-weight:400;color:var(--brass-2)}
.hero .lede{color:var(--on-navy-2);margin-top:1rem;max-width:38rem;font-size:1.1rem}
.hero .k{color:var(--brass);margin-bottom:1rem;display:block}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-weight:600;font-size:.95rem;padding:.78rem 1.25rem;border-radius:var(--radius);transition:transform .15s,background .15s;border:1px solid transparent;cursor:pointer;font-family:inherit}
.btn:hover{transform:translateY(-1px)}
.btn.brass{background:var(--brass);color:#14212b}
.btn.brass:hover{background:var(--brass-2)}
.btn.navy{background:var(--navy);color:#fff}
.btn.navy:hover{background:var(--navy-3)}
.btn.line{color:var(--ink);border-color:var(--ink);background:transparent}
.btn:disabled{opacity:.6;cursor:wait;transform:none}

/* sections */
main>section{padding-block:clamp(2.25rem,4vw,3.6rem)}
main>section+section{border-top:1px solid var(--line)}
.two{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);align-items:start}
@media (max-width:56rem){.two{grid-template-columns:1fr}}

/* forms (panel) */
.panel{background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:1.4rem 1.4rem 1.2rem;display:grid;gap:.85rem;position:relative}
.panel.case{border-top:4px solid var(--sea)}
.panel h2,.panel h3{font-family:var(--display);font-weight:500;font-size:1.4rem;margin:0}
.panel .hint{margin:-.4rem 0 0;font-size:.9rem;color:var(--mute)}
.panel label{display:grid;gap:.3rem;font-weight:600;font-size:.9rem;color:var(--ink)}
.panel .opt{font-weight:400;color:var(--mute);font-size:max(.8rem,12px)}
.panel input,.panel select,.panel textarea{font:inherit;font-weight:400;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:.6rem .7rem;width:100%}
.panel textarea{resize:vertical;min-height:9rem}
.panel input:focus,.panel select:focus,.panel textarea:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass)}
.panel input:user-invalid,.panel textarea:user-invalid{border-color:var(--oxblood)}
.panel .row2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
@media (max-width:35rem){.panel .row2{grid-template-columns:1fr}}
.panel .chk{display:flex;gap:.55rem;align-items:flex-start;font-weight:500;line-height:1.35}
.panel .chk input{width:1.05rem;height:1.05rem;accent-color:var(--sea);margin-top:.15rem;flex:none}
.panel fieldset{border:0;padding:0;margin:0;display:grid;gap:.45rem}
.panel legend{font-weight:600;font-size:.9rem;margin-bottom:.4rem}
.panel .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.panel button{justify-self:start}
.status{margin:0;font-size:.92rem;min-height:1.2em}
.status.ok{color:var(--sea);font-weight:600}
.status.err{color:var(--oxblood);font-weight:600}
.privacy{font-size:max(.84rem,12px);color:var(--mute);margin:0}

/* side notes */
.aside{display:grid;gap:1rem}
.note{background:var(--paper-2);border:1px solid var(--line);border-left:4px solid var(--brass);border-radius:var(--radius);padding:1rem 1.1rem}
.note h3{font-size:1.05rem;margin-bottom:.4rem}
.note p:last-child,.note ul:last-child{margin-bottom:0}
.note ul{padding-left:1.1rem;margin:.3rem 0}

/* changelog list (matches research/index.html markup) */
dl.changelog{margin:0;display:grid;gap:1.25rem}
dl.changelog>div{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:.4rem 1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}
dl.changelog>div:last-child{border-bottom:0}
dl.changelog dt{font-family:var(--mono);font-size:max(.78rem,12px);letter-spacing:.04em;color:var(--ink-2);font-weight:500}
dl.changelog dd{margin:0;max-width:var(--prose)}
dl.changelog dd b{color:var(--ink)}
@media (max-width:46rem){dl.changelog>div{grid-template-columns:1fr}}

/* footer */
footer{padding-block:2.5rem 3.5rem;color:var(--mute);font-size:.88rem;border-top:1px solid var(--line)}
footer .wrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem 3rem;align-items:end}
@media (max-width:46rem){footer .wrap{grid-template-columns:1fr}}
footer .credits{grid-column:1/-1;border-top:1px solid var(--line);padding-top:1rem;margin:0;font-size:max(.78rem,12px)}
footer .big{font-family:var(--display);font-size:2.2rem;color:var(--ink);font-weight:400;line-height:1}
footer .big span{color:var(--brass)}
footer a{color:inherit}

/* 404 */
.notfound .wrap{padding-block:clamp(3rem,8vw,6rem)}
.notfound .code{font-family:var(--mono);color:var(--brass);letter-spacing:.2em;font-size:max(.8rem,12px)}
.notfound ul{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:.5rem;max-width:34rem}
.notfound li a{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.75rem 1rem;border:1px solid #ffffff2a;border-radius:var(--radius);color:#fff;text-decoration:none;background:#ffffff0a}
.notfound li a:hover{border-color:var(--brass)}
.notfound li a span{color:var(--on-navy-2);display:block;font-size:.88rem;font-weight:400}

/* Breakpoints. Five, site-wide, in every stylesheet and inline style block (the generated brief follows on its next build):
   35rem (560px)  phones
   46rem (736px)  large phones / small tablets — masthead switches to two rows here (public-shell.css)
   56rem (896px)  tablets / narrow laptops
   69rem (1104px) laptops
   1250px         wide layouts only (research county map)
   Rule: a layout collapses at or before the width it collapsed at previously; nothing was moved down. */
