/* Dynamic Sync — single stylesheet. No external resources, no web fonts. */

:root{
  --bg:#faf6ef;
  --surface:#fffdf9;
  --tint:#f2ecdf;
  --ink:#221a2b;
  --muted:#4f4558;
  --accent:#9c3c26;
  --accent-deep:#7a2e1c;
  --sage:#2f5b48;
  --line:#ddd1bd;
  --line-strong:#c4b49a;
  --radius:3px;
  --gap:1.5rem;
  --measure:70ch;
  --serif:Georgia,"Iowan Old Style","Times New Roman",Times,serif;
  --sans:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:1.0625rem;
  line-height:1.65;
  overflow-wrap:break-word;
}

.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 1rem}

a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--accent-deep)}
a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:3px solid var(--sage);
  outline-offset:2px;
  border-radius:var(--radius);
}

.skip{
  position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;
  padding:.7rem 1rem;z-index:50;text-decoration:none;
}
.skip:focus{left:0}

/* ---------- header ---------- */

.site-header{
  background:var(--surface);
  border-bottom:2px solid var(--line-strong);
}
.hdr{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding-top:.85rem;padding-bottom:.85rem}
.brand{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--serif);font-size:1.3rem;font-weight:700;
  color:var(--ink);text-decoration:none;letter-spacing:.01em;
  margin-right:auto;
}
.brand .mark{
  display:inline-grid;place-items:center;
  width:2.1rem;height:2.1rem;background:var(--ink);color:var(--bg);
  font-size:.9rem;letter-spacing:.04em;border-radius:var(--radius);
}
.brand .tagline{display:block;font-family:var(--sans);font-size:.72rem;font-weight:400;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}

.nav-toggle{
  display:none;
  font:inherit;font-size:.95rem;
  background:var(--tint);color:var(--ink);
  border:1px solid var(--line-strong);border-radius:var(--radius);
  padding:.5rem .9rem;cursor:pointer;
}
.site-nav{display:flex;flex-wrap:wrap;gap:.2rem .95rem;font-size:.95rem}
.site-nav a{color:var(--muted);text-decoration:none;padding:.35rem 0;border-bottom:2px solid transparent}
.site-nav a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.site-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}

@media (max-width:860px){
  .nav-toggle{display:block}
  .site-nav{display:none;width:100%;flex-direction:column;gap:0;border-top:1px solid var(--line);margin-top:.6rem;padding-top:.4rem}
  .site-nav.is-open{display:flex}
  .site-nav a{padding:.6rem .2rem;border-bottom:1px solid var(--line)}
}

/* ---------- layout ---------- */

main{display:block;padding:2.2rem 0 3rem}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:2.6rem;align-items:start}
@media (max-width:900px){.layout{grid-template-columns:minmax(0,1fr)}}

.content{max-width:var(--measure)}
.content.full{max-width:none}

h1,h2,h3,h4{font-family:var(--serif);line-height:1.22;color:var(--ink);margin:0 0 .6rem}
h1{font-size:2.15rem;letter-spacing:-.01em}
h2{font-size:1.5rem;margin-top:2.4rem;padding-bottom:.3rem;border-bottom:1px solid var(--line)}
h3{font-size:1.16rem;margin-top:1.7rem}
h4{font-size:1rem;margin-top:1.3rem;font-family:var(--sans);letter-spacing:.02em}
p,ul,ol,dl,table{margin:0 0 1.05rem}
ul,ol{padding-left:1.25rem}
li{margin-bottom:.4rem}

.kicker{
  font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sage);font-weight:700;margin:0 0 .5rem;
}
.lede{font-size:1.16rem;color:var(--muted);line-height:1.55}
.eff{font-size:.92rem;color:var(--muted);margin-bottom:1.6rem}

/* ---------- components ---------- */

.discl{
  background:#fff4e8;
  border:2px solid var(--accent);
  border-radius:var(--radius);
  padding:1.1rem 1.2rem;
  margin:1.6rem 0;
}
.discl p{margin:0 0 .7rem}
.discl p:last-child{margin-bottom:0}
.discl .discl-h{font-family:var(--serif);font-weight:700;font-size:1.05rem;display:block;margin-bottom:.35rem}

.linkline{
  font-size:1rem;color:var(--muted);
  border-left:3px solid var(--accent);
  padding-left:.8rem;margin:.6rem 0 1.4rem;
}

.visit{
  display:inline-block;
  background:var(--ink);color:#fff8ee;
  text-decoration:none;font-weight:600;
  padding:.7rem 1.15rem;border-radius:var(--radius);
  border:2px solid var(--ink);
}
.visit:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff8ee}

.panel{
  background:var(--surface);
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  padding:1.1rem 1.2rem;margin:1.6rem 0;
}
.panel h3,.panel h2{margin-top:0;border:0}

.watch{
  background:var(--tint);
  border-left:5px solid var(--sage);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:1rem 1.2rem;margin:1.6rem 0;
}
.watch h3{margin-top:0}

.quick{
  background:var(--surface);
  border:1px dashed var(--line-strong);
  border-radius:var(--radius);
  padding:1rem 1.2rem;margin:1.4rem 0 2rem;
}
.quick h2,.quick h3{margin-top:0;border:0;font-size:1.05rem}
.quick p:last-child{margin-bottom:0}

dl.defs{margin:1.2rem 0}
dl.defs dt{
  font-family:var(--serif);font-weight:700;font-size:1.08rem;
  margin-top:1.15rem;color:var(--ink);
}
dl.defs dd{margin:.25rem 0 0;padding-left:0;color:var(--ink)}
dl.defs dd + dd{margin-top:.4rem}

.term-strip{
  display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0 1.8rem;padding:0;list-style:none;
}
.term-strip li{margin:0}
.term-strip a{
  display:inline-block;background:var(--surface);border:1px solid var(--line-strong);
  border-radius:var(--radius);padding:.3rem .6rem;font-size:.9rem;text-decoration:none;color:var(--ink);
}
.term-strip a:hover{border-color:var(--accent);color:var(--accent)}

.tbl-scroll{overflow-x:auto;margin:1.3rem 0}
table{border-collapse:collapse;width:100%;font-size:.97rem;background:var(--surface)}
caption{text-align:left;font-size:.9rem;color:var(--muted);padding-bottom:.5rem}
th,td{border:1px solid var(--line-strong);padding:.6rem .7rem;text-align:left;vertical-align:top}
thead th{background:var(--tint);font-family:var(--serif)}

ul.check{list-style:none;padding-left:0}
ul.check li{position:relative;padding-left:1.7rem;margin-bottom:.6rem}
ul.check li::before{
  content:"";position:absolute;left:0;top:.5em;
  width:.7rem;height:.7rem;border:2px solid var(--sage);border-radius:2px;
}

ol.steps{counter-reset:step;list-style:none;padding-left:0}
ol.steps li{counter-increment:step;position:relative;padding-left:2.4rem;margin-bottom:.9rem}
ol.steps li::before{
  content:counter(step);position:absolute;left:0;top:0;
  width:1.7rem;height:1.7rem;display:grid;place-items:center;
  background:var(--sage);color:#fff;border-radius:50%;font-size:.85rem;font-weight:700;
}

details.qa{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);margin-bottom:.7rem}
details.qa summary{cursor:pointer;padding:.8rem 1rem;font-weight:600;font-family:var(--serif);font-size:1.05rem}
details.qa[open] summary{border-bottom:1px solid var(--line)}
details.qa .qa-body{padding:.9rem 1rem 0}
details.qa .qa-body p:last-child{margin-bottom:.9rem}

.related{margin-top:2.6rem;border-top:2px solid var(--line-strong);padding-top:1.2rem}
.related ul{list-style:none;padding-left:0}
.related li{margin-bottom:.7rem}
.related a{font-weight:600}
.related span{display:block;color:var(--muted);font-size:.95rem}

.side{position:sticky;top:1rem;font-size:.95rem}
.side .side-box{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:1rem;margin-bottom:1.2rem}
.side h2{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;border:0;margin:0 0 .6rem;font-family:var(--sans);color:var(--sage)}
.side ul{list-style:none;padding-left:0;margin:0}
.side li{margin-bottom:.5rem;line-height:1.4}
.side a{text-decoration:none}
.side a:hover{text-decoration:underline}
@media (max-width:900px){.side{position:static}}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin:1.3rem 0 2rem;padding:0;list-style:none}
.cards li{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:1rem;margin:0}
.cards a{font-weight:600;font-family:var(--serif);font-size:1.05rem;text-decoration:none}
.cards a:hover{text-decoration:underline}
.cards p{margin:.35rem 0 0;font-size:.95rem;color:var(--muted)}

figure.diagram{margin:1.6rem 0;padding:1rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius)}
figure.diagram svg{display:block;width:100%;height:auto}
figure.diagram figcaption{font-size:.9rem;color:var(--muted);margin-top:.6rem}

hr.rule{border:0;border-top:1px solid var(--line-strong);margin:2.4rem 0}

/* ---------- footer ---------- */

.site-footer{
  background:var(--ink);color:#efe6d8;
  margin-top:3rem;padding:2.4rem 0 2.6rem;font-size:.95rem;
}
.site-footer a{color:#f4c9a6}
.site-footer a:hover{color:#ffe6d0}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.6rem;margin-bottom:1.8rem}
.foot-grid h2{font-family:var(--sans);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#c9b8a3;border:0;margin:0 0 .6rem}
.foot-grid ul{list-style:none;padding:0;margin:0}
.foot-grid li{margin-bottom:.45rem}
.foot-grid a{text-decoration:none}
.foot-grid a:hover{text-decoration:underline}
.pub{border-top:1px solid #4a3f56;padding-top:1.4rem}
.pub p{margin:0 0 .25rem}
.pub .pub-name{font-family:var(--serif);font-size:1.15rem;font-weight:700;color:#fff8ee;margin-bottom:.4rem}
.foot-policies{margin:1rem 0 1.1rem}
.tm{color:#cdbfae;max-width:78ch;margin:0 0 .9rem}
.rev{color:#cdbfae;margin:0}

@media (max-width:420px){
  h1{font-size:1.8rem}
  body{font-size:1rem}
}
