:root{color-scheme:light;--ink:#182b24;--muted:#4f6459;--green:#215740;--paper:#f6f7f1;--line:#d9e2d8}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 "Segoe UI",system-ui,sans-serif}
[hidden]{display:none!important}
a{color:var(--green);text-underline-offset:.22em}
a:focus-visible{outline:3px solid #368461;outline-offset:4px}
.shell{width:min(960px,calc(100% - 32px));margin-inline:auto}
header{background:#fff;border-bottom:1px solid var(--line)}
.mast,.brand,.badge{display:flex;align-items:center}
.mast{justify-content:space-between;min-height:64px;gap:8px}
.brand{gap:8px;text-decoration:none;font-weight:850;letter-spacing:.035em}
.brand em{font-size:.72em;font-style:normal;color:var(--muted);margin-left:.4em}
.mark{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--green);color:white;font-size:20px;font-style:italic}
.badge{gap:7px;font-size:.74rem;padding:4px 9px;border:1px solid var(--line);border-radius:20px;color:var(--muted);white-space:nowrap}
.badge i{width:7px;height:7px;border-radius:50%;background:#438359}
.cycle{margin:20px 0;padding:clamp(16px,3vw,30px) 0 12px;text-align:center;background:radial-gradient(ellipse at 50% 63%,#e1ead7,#edf1e5 70%);border:1px solid var(--line);border-radius:20px}
.eyebrow{margin:0;color:var(--green);font-size:.72rem;font-weight:800;letter-spacing:.12em}
h1{font-size:clamp(1.95rem,6vw,3.6rem);line-height:1.1;letter-spacing:-.045em;margin:5px 8px 9px}
.lead,.hint{margin:0 14px;color:var(--muted);font-size:.9rem}
.wheel{position:relative;width:min(100%,590px);aspect-ratio:1;margin:-12px auto -9px}
.track{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.track circle{fill:none;stroke:#b9cdbb;stroke-width:.28;stroke-dasharray:.6 .65}
.track>path{fill:none;stroke:#4e7860;stroke-width:.52}
.track>path.return{stroke:#a26312;stroke-width:.67}
.hub{position:absolute;inset:31%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:#17382b;color:#fff;line-height:1.1;box-shadow:0 0 0 6px #ffffff76}
.hub span,.hub small{color:#e0eea4;font-weight:750;font-size:clamp(.49rem,1.3vw,.78rem);letter-spacing:.06em}
.hub strong{font-size:clamp(1rem,4.1vw,2rem);margin:.38em 0}
.node{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:grid;place-content:center;justify-items:center;width:clamp(40px,15%,88px);min-height:54px;padding:4px 2px;border:1px solid #9eb4a2;border-radius:10px;background:#fff;color:var(--green);text-decoration:none;line-height:1.12;box-shadow:0 2px 7px #17382b12}
.node b{font-size:1.1rem;font-variant-numeric:tabular-nums}
.node span{font-size:.71rem;font-weight:700;margin-top:3px}
.node:hover{background:#e1eddb;border-color:var(--green)}
.node[aria-current="step"]{background:var(--green);border-color:var(--green);color:white;box-shadow:0 0 0 3px #b0c6a4}
.step{background:#fff;border:1px solid #a5bbab;border-radius:13px;scroll-margin-top:15px}
.step-head{display:flex;gap:14px;align-items:center;padding:16px 18px}
.num{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:9px;background:var(--green);color:#fff;font-weight:800}
.step-head h2{margin:0;font-size:1.18rem}
.step-head p{margin:2px 0 0;color:var(--muted);font-size:.91rem}
.steps:not(:has(:target)) .step:not(:first-child),.steps:has(:target) .step:not(:target){display:none}
.steps[data-ready] .step:not([hidden]){display:block}
.body{padding:0 18px 19px 74px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:5px 0 14px}
.chips span{background:#ecf3ea;color:var(--green);border-radius:5px;font-size:.79rem;padding:3px 8px}
.practice{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.practice section{padding:12px;background:#f5f7f2;border-radius:8px}
.practice h3,.practice p{margin:0}
.practice h3{font-size:.88rem;margin-bottom:4px}
.practice p,.ref,.gap{font-size:.88rem}
.step-overview{margin:0 0 16px;padding:15px 18px;border-radius:10px;background:#edf5e9}
.step-overview h3{margin:3px 0 10px;font-size:1.12rem}
.step-overview ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;counter-reset:action}
.step-overview li{display:flex;align-items:flex-start;gap:7px;font-size:.92rem;counter-increment:action}
.step-overview li::before{content:counter(action);flex:0 0 24px;text-align:center;line-height:24px;border-radius:50%;background:var(--green);color:white;font-size:.78rem;font-weight:800}
.source-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:12px;margin:0 0 16px}
.source-figures figure{margin:0;border:1px solid var(--line);border-radius:10px;background:#f8faf7}
.source-figures figure>a{display:grid;place-items:center;padding:8px}
.source-figures img{display:block;width:100%;height:clamp(155px,28vw,245px);object-fit:contain}
.source-figures figcaption{padding:10px 13px;border-top:1px solid var(--line);font-size:.88rem}
.learning-path{max-width:700px;margin:16px auto;padding:12px 16px;border-radius:10px;background:#edf5e9;text-align:left;font-size:.92rem}
.learning-path p,.step-handoff p{margin:0}
.learning-path p+p{margin-top:8px}
.step-handoff{margin-top:14px;padding:12px 15px;border-left:3px solid var(--green);background:#edf5e9;font-size:.92rem}
.step-handoff h3{margin:0 0 5px;font-size:1rem}
.step-handoff p+p{margin-top:7px}
.next-step{display:inline-block;margin-top:7px;font-weight:750}
.source-figures p{margin:4px 0 0}
.skill-guide{margin:0 0 18px;border:1px solid var(--line);border-radius:8px;font-size:.94rem}
.skill-guide summary{padding:12px;color:var(--green);font-weight:750;cursor:pointer}
.skill-guide-content{padding:0 12px 10px}
.wheel-back{margin:14px 0 0;font-size:.86rem;font-weight:700}
@media(max-width:600px){.step-overview ol{grid-template-columns:1fr;gap:8px}}
.skill-guide h4{margin:16px 0 5px;font-size:.96rem}
.skill-guide p,.skill-guide ul,.skill-guide ol{margin:0 0 9px}
.skill-guide ul,.skill-guide ol{padding-left:22px}
.skill-guide li+li{margin-top:5px}
.skill-table{overflow-x:auto;margin:10px 0}
.skill-table table{width:100%;border-collapse:collapse}
.skill-table th,.skill-table td{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}
.skill-table th{background:#f5f7f2}
.ref,.gap{margin:11px 0 0;color:var(--muted)}
.gap strong{color:#674d18}
.sources{margin:22px 0 0;padding:16px 19px;border:1px solid var(--line);border-radius:12px}
.sources h2{font-size:1.12rem;margin:0 0 6px}
.sources p{font-size:.88rem;color:var(--muted);margin:0 0 8px}
.sources p:last-child{margin:0}
footer{display:flex;justify-content:space-between;gap:8px;padding-block:20px;font-size:.78rem;color:var(--muted)}
@media(max-width:600px){.wheel{margin:0 auto}.node{min-height:40px}.node b{font-size:.86rem}.node span{font-size:.59rem}.body{padding-left:18px}}
@media(max-width:380px){.shell{width:calc(100% - 20px)}.node{min-height:35px}.node span{font-size:.53rem}.practice{grid-template-columns:1fr}.brand em{display:none}}

.home-docs{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 16px;margin-top:12px;font-size:.88rem;font-weight:700}.chips a{background:#ecf3ea;color:var(--green);border-radius:5px;font-size:.79rem;padding:3px 8px;text-underline-offset:.15em}.chips a:hover{background:#dcebd8}
