/* Procedure pages — the same design system as the front page, carried by the
   same tokens, in a stylesheet the browser caches once and reuses across all
   six. Inlining 60KB into every page would defeat the point of having pages. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Jost:wght@400;500;600&display=swap');

:root{
  --ivory:#F7F3ED; --cream:#F5EFE7; --sand:#EDE6DC; --deep:#1D1A17; --ink:#1D1A17;
  --muted:#554E45; --muted-2:#6E665C; --line:#DCD3C7; --line-2:#C8BCAB;
  --accent:#8E6A43; --accent-2:#B08A5E; --accent-deep:#CDA271; --accent-ink:#7A5936;
  --on-deep:#F3EDE4; --on-deep-dim:#B3A899;
  --serif:"Fraunces",Palatino,Georgia,serif;
  --sans:"Jost","Century Gothic",Futura,system-ui,sans-serif;
  --pad:clamp(1.1rem,4vw,2.5rem);
  --e-out:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:5.5rem;-webkit-text-size-adjust:100%}
body{background:var(--cream);color:var(--ink);font-family:var(--serif);
  font-size:1.06rem;line-height:1.65;text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:var(--accent-ink)}
.wrap{width:min(64rem,100% - var(--pad)*2);margin-inline:auto}
/* The reading column is centred inside the page, not stranded against the left
   edge of a 72rem container with nothing to balance it. */
.narrow{width:min(46rem,100%);margin-inline:auto}

/* masthead */
.mast{position:sticky;top:0;z-index:60;background:rgba(245,239,231,.94);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.mast .wrap{display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding-block:.75rem}
.mast a.home{text-decoration:none;color:inherit;display:inline-block;
  min-height:44px;padding-block:.15rem}
.mast b{display:block;font-family:var(--serif);font-weight:400;font-size:1.22rem;line-height:1.15}
.mast small{display:block;font-family:var(--sans);font-size:.75rem;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--muted-2);margin-top:.1rem}
.mast nav{display:flex;gap:.2rem;flex-wrap:wrap;justify-content:flex-end}
.mast nav a{font-family:var(--sans);font-size:.75rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);text-decoration:none;padding:.55rem .6rem;
  min-height:44px;display:inline-flex;align-items:center;transition:color .25s var(--e-out)}
.mast nav a:hover,.mast nav a[aria-current]{color:var(--accent-ink)}

/* hero */
.top{background:var(--deep);color:var(--on-deep);padding-block:clamp(3rem,8vw,5.5rem)}
.crumb{font-family:var(--sans);font-size:.76rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent-deep)}
.crumb a{color:var(--accent-deep);text-decoration:none}
.crumb a:hover{text-decoration:underline}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,5.5vw,3.5rem);
  line-height:1.06;letter-spacing:-.015em;margin-top:.7rem;max-width:20ch}
h1 em{font-style:italic;color:var(--accent-deep)}
.lede{color:var(--on-deep-dim);font-size:clamp(1.08rem,2vw,1.3rem);line-height:1.55;
  max-width:56ch;margin-top:1.2rem}
.acts{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem}
.btn{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;text-decoration:none;padding:.95rem 1.5rem;min-height:48px;
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--accent);color:#fff;border:1px solid var(--accent);
  transition:background .25s var(--e-out),color .25s var(--e-out)}
.btn:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.btn.ghost{background:transparent;color:var(--on-deep);border-color:rgba(243,237,228,.45)}
.btn.ghost:hover{background:var(--on-deep);color:var(--deep)}

/* body */
main{padding-block:clamp(2.6rem,6vw,4.5rem)}
/* the masthead is sticky, so anything an anchor jumps to has to clear it */
section,h2,details{scroll-margin-top:6rem}
section+section{margin-top:clamp(2.4rem,5vw,3.6rem)}
h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,3.2vw,2.1rem);
  line-height:1.18;letter-spacing:-.01em}
h2+p,h3+p{margin-top:.7rem}
h3{font-family:var(--serif);font-weight:400;font-size:1.25rem;margin-top:1.6rem}
p{max-width:64ch;margin-top:1rem;text-wrap:pretty}
p:first-child{margin-top:0}
.kicker{font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.2em;
  /* the lighter bronze measures 4.28:1 on cream — below AA at this size */
  text-transform:uppercase;color:var(--accent-ink);margin-bottom:.5rem}
.rule{height:1px;background:var(--line-2);margin-block:clamp(2rem,4vw,3rem)}

ul.plain{list-style:none;margin-top:1rem;max-width:64ch}
ul.plain li{position:relative;padding-left:1.6rem;margin-top:.6rem}
ul.plain li::before{content:"";position:absolute;left:0;top:.72em;width:.42rem;height:.42rem;
  border:1px solid var(--accent);border-radius:50%}

/* recovery timeline */
.tl{display:grid;gap:1.1rem;margin-top:1.6rem}
@media(min-width:760px){.tl{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1.4rem}}
.tl div{border-top:1px solid var(--line-2);padding-top:.9rem}
.tl h3{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent-ink);margin:0 0 .35rem}
.tl b{display:block;font-family:var(--serif);font-weight:400;font-size:1.12rem;margin-bottom:.3rem}
.tl p{font-size:.97rem;color:var(--muted);margin:0;max-width:none}

/* results */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line-2);
  background:var(--ivory);margin-top:1.4rem;overflow:hidden}
.pair figure{margin:0}
.pair figure+figure{border-left:1px solid var(--line)}
.pair img{width:100%;aspect-ratio:2/1;object-fit:cover}
.pair figcaption{font-family:var(--serif);font-style:italic;font-size:.95rem;color:var(--muted);
  text-align:center;padding:.6rem .5rem;border-top:1px solid var(--line)}
.pair figure+figure figcaption{color:var(--accent)}
.note{font-family:var(--serif);font-style:italic;color:var(--muted-2);font-size:.98rem;margin-top:.8rem}

/* sheet card */
.sheet{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap;
  border:1px solid var(--line-2);background:var(--ivory);padding:clamp(1.2rem,3vw,1.8rem);
  margin-top:1.6rem;text-decoration:none;color:inherit;
  transition:transform .3s var(--e-out),box-shadow .3s var(--e-out)}
.sheet:hover{transform:translateY(-3px);box-shadow:0 18px 34px -24px rgba(29,26,23,.5)}
.sheet img{width:104px;border:1px solid var(--line-2);background:#fff;flex:0 0 auto}
.sheet b{display:block;font-family:var(--serif);font-weight:400;font-size:1.28rem}
.sheet span{display:block;font-family:var(--sans);font-size:.75rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);margin-top:.5rem}
.sheet p{font-size:.98rem;color:var(--muted);margin-top:.35rem}

/* faq */
details{border-top:1px solid var(--line-2);padding-block:1rem;max-width:64ch}
details summary{font-family:var(--serif);font-size:1.14rem;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;gap:1rem;align-items:baseline;
  min-height:44px;padding-block:.35rem}
details summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";font-family:var(--sans);color:var(--accent-ink);font-size:1.1rem}
details[open] summary::after{content:"–"}
details p{font-size:1rem;color:var(--muted);margin-top:.7rem}

/* closing */
.close{background:var(--deep);color:var(--on-deep);padding-block:clamp(2.6rem,6vw,4rem);
  margin-top:clamp(3rem,7vw,5rem)}
.close h2{color:var(--on-deep)}
.close p{color:var(--on-deep-dim)}
.close .btn.ghost{color:var(--on-deep)}
.others{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.others a{font-family:var(--sans);font-size:.75rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--on-deep-dim);text-decoration:none;
  border:1px solid rgba(243,237,228,.28);padding:.7rem 1rem;min-height:44px;
  display:inline-flex;align-items:center}
.others a:hover{color:var(--deep);background:var(--on-deep);border-color:var(--on-deep)}
footer{background:var(--deep);color:var(--on-deep-dim);padding-block:2rem;
  border-top:1px solid rgba(243,237,228,.14);font-size:.92rem}
footer a{color:var(--on-deep-dim)}
footer .wrap{display:flex;flex-wrap:wrap;gap:.8rem 2rem;justify-content:space-between}

/* ---------- small screens ----------
   The name was wrapping onto four lines and the nav onto three rows, which
   turned a sticky header into a third of the screen. Same pattern as the front
   page: the name holds one line, the chapters become one quiet swipeable row. */
@media(max-width:820px){
  .mast .wrap{flex-wrap:wrap;row-gap:.25rem;padding-block:.6rem}
  .mast a.home{flex:1 1 100%;min-height:0}
  .mast b{font-size:1.06rem;white-space:nowrap}
  .mast small{font-size:.75rem;letter-spacing:.16em}
  .mast nav{flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;
    gap:.05rem;scrollbar-width:none;-ms-overflow-style:none;
    margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
  .mast nav::-webkit-scrollbar{display:none}
  .mast nav a{white-space:nowrap;padding:.5rem .55rem;min-height:40px}
  html{scroll-padding-top:8rem}
  section,h2,details{scroll-margin-top:8rem}
  .sheet img{width:84px}
}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}}
