/* self-hosted fonts (Google Fonts, OFL) — no third-party calls */
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/archivo-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/archivo-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/archivo-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/archivo-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/archivo-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/archivo-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-display:swap;src:url('fonts/archivo-800-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-display:swap;src:url('fonts/archivo-800-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/public-sans-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/public-sans-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/public-sans-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/public-sans-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/public-sans-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/public-sans-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/space-mono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/space-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/space-mono-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/space-mono-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

:root{
  --ink:#20241a;
  --paper:#e9e1cd;
  --panel:#f2ecdc;
  --pine:#254a34;
  --pine-soft:#436a51;
  --line:#cec3a8;
  --muted:#7a725d;
  --blaze:#c9491a;
  --blaze-tint:#f3e0cd;
  --wrap:56rem;
  --read:40rem;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Public Sans",system-ui,sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--pine);text-underline-offset:3px;text-decoration-thickness:1px;}
a:focus-visible,button:focus-visible{outline:2.5px solid var(--blaze);outline-offset:3px;border-radius:2px;}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1.1rem,4vw,2.5rem);}

/* top bar */
.top{border-bottom:1px solid var(--line);}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:56px;}
.brand{font-family:"Archivo",sans-serif;font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.82rem;color:var(--pine);text-decoration:none;}
a.brand:hover{color:var(--ink);}
.crumbs{font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.02em;color:var(--muted);}
.crumbs b{color:var(--ink);font-weight:700;}
.crumbs a{color:inherit;text-decoration:none;}
.crumbs a:hover{color:var(--pine);text-decoration:underline;}
.crumbs .sep{opacity:.5;padding:0 .35em;}
.dir-group{scroll-margin-top:5rem;}

/* hero */
header.hero{padding:clamp(2.4rem,7vw,4rem) 0 clamp(1.6rem,4vw,2.4rem);border-bottom:1px solid var(--line);}
.eyebrow{font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blaze);margin:0 0 .9rem;}
h1{font-family:"Archivo",sans-serif;font-weight:800;font-size:clamp(2.9rem,10vw,5rem);line-height:.94;letter-spacing:-.02em;margin:0;}
.say{font-family:"Space Mono",monospace;color:var(--muted);font-size:.85rem;margin:.5rem 0 0;letter-spacing:.04em;}
.lede{max-width:var(--read);font-size:clamp(1.12rem,3.4vw,1.32rem);line-height:1.5;margin:1.4rem 0 0;color:var(--pine);font-weight:500;}

/* spec strip */
.spec{border-bottom:1px solid var(--line);background:var(--panel);}
.spec .wrap{display:grid;grid-template-columns:repeat(2,1fr);gap:0;}
.spec dl{margin:0;padding:1rem 0;display:contents;}
.cell{padding:1rem clamp(1.1rem,4vw,2.5rem);border-top:1px solid var(--line);}
.cell:nth-child(-n+2){border-top:none;}
.cell dt{font-family:"Space Mono",monospace;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 .3rem;}
.cell dd{margin:0;font-family:"Archivo",sans-serif;font-weight:600;font-size:1.02rem;}
@media(min-width:640px){
  .spec .wrap{grid-template-columns:repeat(4,1fr);}
  .cell{border-top:none;border-left:1px solid var(--line);}
  .cell:first-child{border-left:none;}
}

/* sections */
main .wrap{max-width:var(--read);}
section{padding:clamp(2.2rem,6vw,3.2rem) 0;border-bottom:1px solid var(--line);}
.sec-label{font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:.7rem;margin:0 0 1.4rem;}
.sec-label::before{content:"";width:1.6rem;height:2px;background:var(--pine);display:inline-block;}
h2{font-family:"Archivo",sans-serif;font-weight:700;font-size:1.05rem;margin:0;display:inline;}

/* step rail — the rope run */
ol.steps{list-style:none;margin:0;padding:0;position:relative;}
ol.steps::before{content:"";position:absolute;left:15px;top:12px;bottom:12px;width:2px;background:var(--line);}
ol.steps li{position:relative;padding:0 0 1.5rem 3rem;}
ol.steps li:last-child{padding-bottom:0;}
ol.steps li .n{position:absolute;left:0;top:-2px;width:32px;height:32px;border-radius:50%;background:var(--pine);color:#fff;font-family:"Space Mono",monospace;font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center;}
ol.steps li .cue{color:var(--pine-soft);font-style:italic;}

.mnemonic{margin:1.8rem 0 0;padding:1.1rem 1.3rem;background:var(--pine);color:#eef3ec;border-radius:8px;}
.mnemonic span{font-family:"Space Mono",monospace;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:#9fc0b0;display:block;margin-bottom:.35rem;}
.mnemonic p{margin:0;font-family:"Archivo",sans-serif;font-weight:600;font-size:1.15rem;}

ul.uses{list-style:none;margin:0;padding:0;}
ul.uses li{padding:0 0 .9rem 1.5rem;position:relative;}
ul.uses li:last-child{padding-bottom:0;}
ul.uses li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;background:var(--blaze);transform:rotate(45deg);}
ul.uses b{font-weight:600;}

/* safety */
.safety{background:var(--blaze-tint);border-left:3px solid var(--blaze);border-radius:0 8px 8px 0;padding:1.2rem 1.4rem;}
.safety .sec-label{color:var(--blaze);}
.safety .sec-label::before{background:var(--blaze);}
.safety ul{margin:0;padding:0;list-style:none;}
.safety li{padding:0 0 .8rem 0;}
.safety li:last-child{padding-bottom:0;}
.safety li b{font-weight:600;}

/* going deeper — long-tail reference depth (extra bucket). kept quiet, no blaze */
ul.deeper{list-style:none;margin:0;padding:0;}
ul.deeper li{padding:0 0 1rem 1.1rem;border-left:2px solid var(--line);}
ul.deeper li:last-child{padding-bottom:0;}
ul.deeper li b{font-weight:600;color:var(--pine);}

/* source + related */
.source a{font-family:"Public Sans",sans-serif;font-weight:600;}
.source p{margin:.4rem 0 0;font-size:.9rem;color:var(--muted);}
.related{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-top:.4rem;}
@media(min-width:560px){.related{grid-template-columns:repeat(3,1fr);}}
.related a{display:block;padding:.85rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink);font-weight:500;font-size:.95rem;transition:border-color .15s,transform .15s;}
.related a:hover{border-color:var(--pine);transform:translateY(-1px);}
.related a span{display:block;font-family:"Space Mono",monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem;}

footer{padding:2.2rem 0 3rem;}
footer .wrap{max-width:var(--wrap);}
.foot-row{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center;justify-content:space-between;}
.disclaimer{font-family:"Space Mono",monospace;font-size:.68rem;color:var(--muted);letter-spacing:.02em;max-width:34rem;}

/* category emblem in the hero */
.hero-art{width:58px;height:58px;margin:0 0 1.4rem;background:no-repeat left center/contain;}
@media(min-width:800px){
  header.hero .wrap{position:relative;}
  .hero-art{position:absolute;top:clamp(2.4rem,7vw,4rem);right:clamp(1.1rem,4vw,2.5rem);width:118px;height:118px;margin:0;opacity:.95;}
  header.hero h1{padding-right:150px;}
  header.hero .eyebrow{padding-right:150px;}
}
body[data-cat="nature"] .hero-art{background-image:url("emblems/nature.svg");}
body[data-cat="first-aid"] .hero-art{background-image:url("emblems/first-aid.svg");}
body[data-cat="troop"] .hero-art{background-image:url("emblems/troop.svg");}
body[data-cat="advancement"] .hero-art{background-image:url("emblems/advancement.svg");}
body[data-cat="eagle"] .hero-art{background-image:url("emblems/eagle.svg");}
body[data-cat="camping"] .hero-art{background-image:url("emblems/camping.svg");}
body[data-cat="navigation"] .hero-art{background-image:url("emblems/navigation.svg");}
body[data-cat="pioneering"] .hero-art{background-image:url("emblems/pioneering.svg");}
body[data-cat="knots"] .hero-art{background-image:url("emblems/knots.svg");}
body[data-cat="rope"] .hero-art{background-image:url("emblems/rope.svg");}
body[data-cat="cooking"] .hero-art{background-image:url("emblems/cooking.svg");}
body[data-cat="aquatics"] .hero-art{background-image:url("emblems/aquatics.svg");}
body[data-cat="hiking"] .hero-art{background-image:url("emblems/hiking.svg");}
body[data-cat="fire"] .hero-art{background-image:url("emblems/fire.svg");}
body[data-cat="emergency"] .hero-art{background-image:url("emblems/emergency.svg");}
body[data-cat="gear"] .hero-art{background-image:url("emblems/gear.svg");}
body[data-cat="woods-tools"] .hero-art{background-image:url("emblems/woods-tools.svg");}
body[data-cat="ideals"] .hero-art{background-image:url("emblems/ideals.svg");}
body[data-cat="uniform"] .hero-art{background-image:url("emblems/uniform.svg");}
body[data-cat="history"] .hero-art{background-image:url("emblems/history.svg");}
body[data-cat="safety"] .hero-art{background-image:url("emblems/safety.svg");}
body[data-cat="reference"] .hero-art{background-image:url("emblems/reference.svg");}

/* teaching diagrams (topic-specific inline SVG) */
figure.diagram{margin:0 0 .4rem;padding:1.4rem;background:var(--panel);border:1px solid var(--line);border-radius:10px;}
figure.diagram svg{display:block;width:100%;height:auto;}
figure.diagram figcaption{font-family:"Space Mono",monospace;font-size:.68rem;letter-spacing:.04em;color:var(--muted);margin-top:.9rem;text-align:center;}

@media(prefers-reduced-motion:reduce){*{transition:none!important;}}
