:root{--page:#efede7;--card:#fbfaf7;--paper:#f6f5f1;--text:#4f4d47;--strong:#1a1915;--muted:#8a877f;--faint:#dcd9d0;--line:#e6e3da;--red:#d23c2e;--blue:#2f6fd6;--green:#2c8a4b;--amber:#e0a020;--serif:"EB Garamond",Georgia,serif;--sans:"Inter",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;--lift:inset 0 1px 0 0 #fff,0 0 0 1px #0000000f,0 1px 1px -.5px #0000000a,0 3px 3px -1.5px #0000000a,0 8px 8px -4px #0000000a,0 16px 16px -8px #0000000a;--panel-w:430px}*{box-sizing:border-box;margin:0}html,body{height:100%}body{background:var(--page);color:var(--text);font:14.5px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--strong);outline-offset:2px}b{color:var(--strong);font-weight:600}.topbar{display:flex;border-bottom:1px solid var(--line);background:var(--card);position:relative;z-index:5;align-items: center;gap:24px;height:56px;padding:0 20px}.brand{font:600 22px/1 var(--serif);color:var(--strong);text-decoration:none;display:flex;letter-spacing:-.01em;white-space:nowrap;align-items: center;gap:10px}.mark{border:2px solid var(--strong);position:relative;border-radius:50%;width:26px;height:16px}.mark:after{content:"";position:absolute;background:#7a4a2c;border-radius:50%;inset:2px 7px;box-shadow:inset 0 0 0 2.5px #7a4a2c,inset 0 0 0 10px #1a1915}.tabs{display:flex;background:var(--page);border-radius:10px;gap:2px;padding:3px}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px 14px;font-weight:500}.tabs button[aria-current=true]{background:var(--card);color:var(--strong);box-shadow:var(--lift)}.progress{display:flex;color:var(--muted);text-decoration:none;white-space:nowrap;align-items: center;gap:10px;margin-left:auto;font-size:12.5px}.bar{background:var(--faint);overflow:hidden;border-radius:3px;width:110px;height:6px}.bar>div{background:var(--green);border-radius:3px;height:100%;transition:width .3s}.layout{display:grid;grid-template-columns:var(--panel-w)1fr;height:calc(100% - 56px)}.panel{overflow-y:auto;background:var(--card);border-right:1px solid var(--line);scrollbar-width:thin;padding:26px 26px 60px}.stage{position:relative;overflow:hidden;background:var(--paper);min-height:0}.stage canvas{display:block;touch-action:none}.label-layer{position:absolute;pointer-events:none;inset:0}.hint{position:absolute;color:var(--muted);pointer-events:none;font-size:11.5px;top:12px;left:16px}.kicker{font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}h1{font:600 32px/1.1 var(--serif);color:var(--strong);letter-spacing:-.015em;margin-bottom:12px}h2{font:600 26px/1.15 var(--serif);color:var(--strong);margin:4px 0 8px}h3{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:26px 0 12px}h4{font:600 13px/1.3 var(--sans);color:var(--strong);margin:18px 0 8px}.lede,.lede p{color:var(--text)}.lede p+p{margin-top:8px}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{font:600 11px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase}.btn{background:var(--card);box-shadow:var(--lift);border:0;border-radius:8px;padding:7px 12px;font-size:13px;font-weight:500}.btn.primary{background:var(--strong);color:#fff;box-shadow:none}.btn.ghost{box-shadow:inset 0 0 0 1px var(--line);background:0 0}.btn.on{background:var(--blue);color:#fff;box-shadow:none}.btn:disabled{opacity:.35;cursor:default}.btn.small{padding:5px 10px;font-size:12px}.row-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:var(--page);display:inline-flex;border:0;border-radius:99px;align-items: center;gap:7px;padding:5px 10px 5px 8px;font-size:12.5px}.chip i,.result i,.next-card i,.sys-head i{border-radius:50%;flex:none;width:8px;height:8px}.chip:hover{background:var(--faint)}.topic-chip.st-mastered{background:#e3f1e6}.topic-chip.st-mastered:after{content:"✓";color:var(--green);font-weight:600}.topic-chip.st-ready{box-shadow:inset 0 0 0 1.5px var(--amber)}.topic-chip.st-locked{opacity:.7}.detail{background:var(--paper);box-shadow:var(--lift);border-radius:14px;margin:18px 0 8px;padding:18px 18px 20px}.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:14px 0;font-size:13px}.facts dt{color:var(--muted)}.facts dd{color:var(--strong)}.clinical{background:var(--card);border-left:3px solid var(--red);border-radius:0 8px 8px 0;padding:8px 12px;font-size:13.5px}.status{display:inline-block;border-radius:99px;margin-bottom:8px;padding:3px 9px;font-size:11.5px;font-weight:600}.status.st-mastered{color:var(--green);background:#e3f1e6}.status.st-ready{color:#9a6a00;background:#fdf1d6}.status.st-almost{color:var(--blue);background:#eef2fb}.status.st-locked{background:var(--page);color:var(--muted)}.evidence{padding-left:18px;font-size:13.5px}.evidence li+li{margin-top:3px}.prereqs{list-style:none;display:grid;gap:8px;padding:0}.prereqs li{background:var(--card);border-radius:10px;padding:8px 10px}.prereqs li.soft{opacity:.85}.prereqs .reason{color:var(--muted);font-size:12.5px}.badge{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-left:8px;font-size:10.5px}.link{color:var(--strong);text-align:left;text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:600}.link.st-mastered:before{content:"✓ ";color:var(--green)}.link.st-ready:before{content:"● ";color:var(--amber)}.path{padding-left:20px;font-size:13.5px}.systems{display:grid;gap:14px}.sys-head{display:flex;color:var(--strong);cursor:pointer;align-items: center;gap:8px;font-size:13px;font-weight:600}.sys-head .count{color:var(--muted);margin-left:auto;font-size:12px;font-weight:400}.sys-parts{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 0 24px}.part-btn{background:var(--page);border:0;border-radius:6px;padding:4px 9px;font-size:12.5px}.part-btn:hover{background:var(--faint)}.part-btn.on{background:var(--blue);color:#fff}.controls{display:grid;background:var(--paper);border-radius:12px;gap:12px;margin-top:18px;padding:14px}.ctl{display:grid;gap:4px;font-size:13px}.ctl-top{display:flex;justify-content:space-between;gap:10px}.ctl output{font:500 12.5px var(--mono);color:var(--strong)}.tog{display:flex;align-items: center;gap:8px;font-size:13px}input[type=range]{accent-color:var(--strong);width:100%}.math{display:grid;gap:8px}.eq{background:var(--paper);border-radius:10px;padding:9px 12px}.eq-body{font:italic 500 17px/1.35 var(--serif);color:var(--strong)}.eq-note{color:var(--text);margin-top:2px;font-size:12.5px}.num{font:500 12px var(--mono);color:var(--strong);background:var(--card);box-shadow:0 0 0 1px var(--line);white-space:nowrap;border-radius:4px;padding:0 4px}.tbl{border-collapse:collapse;width:100%;margin-bottom:4px;font-size:12px}.tbl th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding:4px 6px;font-size:10.5px;font-weight:600}.tbl td{border-bottom:1px solid var(--line);font-family:var(--mono);color:var(--strong);padding:5px 6px;font-size:11.5px}.tbl td:first-child{font-family:var(--sans)}.split{display:grid;grid-template-columns:130px 1fr;align-items: center;gap:12px}.split>div{display:grid;gap:8px;min-width:0}.eq{overflow-wrap:anywhere}.observer{width:130px;height:130px}.svg-t{font:600 10px var(--sans);fill:#fff}.svg-t.muted{fill:var(--muted);font-weight:500}.practice{display:grid;gap:14px}.q p:first-child{color:var(--strong);margin-bottom:8px;font-weight:500}.choices{display:grid;gap:6px}.choice{text-align:left;background:var(--paper);border:0;border-radius:8px;padding:8px 12px;font-size:13px}.choice:hover{background:var(--faint)}.choice.right{color:var(--green);background:#e3f1e6;font-weight:600}.choice.wrong{color:var(--red);background:#fbe6e3}.why{margin-top:8px;font-size:13px}.page-nav{display:flex;justify-content:space-between;gap:10px;margin-top:26px}.page-nav .btn{font-size:12.5px}.progress-card{display:grid;gap:6px;margin:16px 0}.yr{display:grid;grid-template-columns:54px 1fr 44px;align-items: center;gap:10px;font-size:12.5px}.yr .bar{width:100%}.search{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);font:inherit;border:0;border-radius:10px;width:100%;padding:9px 12px}.results{display:grid;gap:2px;margin-top:6px}.result{text-align:left;display:flex;background:0 0;border:0;border-radius:6px;align-items: center;gap:8px;padding:6px 8px;font-size:13px}.result:hover{background:var(--paper)}.result span{color:var(--muted);margin-left:auto;font-size:11.5px}.next{display:grid;gap:6px}.next-card{background:var(--paper);text-align:left;display:grid;grid-template-columns:10px 1fr;border:0;border-radius:10px;align-items: center;column-gap:10px;padding:10px 12px;box-shadow:inset 0 0 0 1.5px #f3dfae}.next-card:hover{background:var(--faint)}.next-card i{grid-row:span 2;width:10px;height:10px}.next-card .nm{color:var(--strong);font-size:13.5px;font-weight:600}.next-card .meta{color:var(--muted);font-size:11.5px}.dock{position:absolute;z-index:3;backdrop-filter:blur(8px);box-shadow:var(--lift);background:#fbfaf7e6;border-radius:14px;max-width:calc(100% - 32px);padding:10px 16px;bottom:18px;left:50%;transform:translate(-50%)}.dock:empty{display:none}.explode{width:min(460px,100vw - 64px)}.explode-top{display:flex;color:var(--strong);justify-content:space-between;align-items:baseline;font-size:13px;font-weight:600}.explode output{font:600 20px var(--serif)}.explode output span{color:var(--muted);font-size:13px}.ends{display:flex;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;font-size:11px}.ends .cap{color:var(--strong);font-weight:600}.pager{display:flex;align-items: center;gap:6px}.dot{background:var(--page);font:600 13px var(--serif);border:0;border-radius:50%;width:30px;height:30px}.dot.on{background:var(--strong);color:#fff}.legend{display:flex;flex-wrap:wrap;align-items: center;gap:6px 16px;font-size:12px}.legend span{display:inline-flex;align-items: center;gap:6px}.lg{display:inline-block;border-radius:50%;width:10px;height:10px}.lg.st-mastered{background:#6b6860}.lg.st-ready{background:var(--amber);box-shadow:0 0 0 3px #f5b40044}.lg.st-locked{background:#d9d6ce}.ln{display:inline-block;border-top:2px solid #9a968c;width:18px;height:0}.ln.soft{border-top-style:dashed}.ln.path{border-color:var(--red)}.tip{position:absolute;z-index:4;pointer-events:none;background:var(--strong);color:#fff;border-radius:7px;max-width:280px;padding:5px 9px;font-size:12.5px;font-weight:600}.tip span{opacity:.75;font-weight:400}.part-tag,.node-tag{font:600 12px var(--sans);color:var(--strong);box-shadow:var(--lift);white-space:nowrap;background:#fbfaf7eb;border-radius:6px;padding:3px 8px}.node-tag{font-size:11.5px;font-weight:500}.node-tag.is-selected{background:var(--strong);color:#fff;font-size:13px;font-weight:600}.node-tag.is-mastered:before{content:"✓ ";color:var(--green)}.year-tag{font:600 13px var(--serif);color:var(--muted)}.domain-tag{font:600 10.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.fig-label{font:500 12px var(--sans);color:var(--strong);white-space:nowrap;text-shadow:0 0 3px var(--paper),0 0 3px var(--paper),0 0 3px var(--paper)}.fig-label.tag{box-shadow:var(--lift);text-shadow:none;background:#fbfaf7e6;border-radius:5px;padding:2px 7px;font-size:11.5px}.fig-label.muted{color:var(--muted);font-style:italic;font-family:var(--serif);font-size:14px}.fig-label.k-red{color:var(--red);font-weight:600;font-family:var(--mono);font-size:12px}.fig-label.k-blue{color:var(--blue);font-weight:600;font-family:var(--mono);font-size:12px}.fig-label.k-green{color:var(--green);font-weight:600}.fig-label.k-ink{font-weight:600;font-family:var(--serif);font-size:15px;font-style:italic}@media (max-width:860px){body{overflow:auto}.topbar{gap:12px;padding:0 12px}.brand{font-size:19px}.progress .bar{display:none}.tabs button{padding:6px 9px}.layout{display:flex;flex-direction:column-reverse;height:auto}.stage{position:sticky;z-index:2;border-bottom:1px solid var(--line);flex:none;height:58vh;top:0}.panel{overflow:visible;border-right:0;padding:20px 16px 60px}.hint{display:none}.dock{padding:8px 12px;bottom:10px}h1{font-size:27px}}@media (max-width:520px){.brand-name,.progress{display:none}.tabs button{padding:6px 8px;font-size:13.5px}}.lang,.seg{display:inline-flex;background:var(--page);border-radius:9px;gap:2px;padding:3px}.lang{margin-left:12px}.lang button,.seg button{color:var(--muted);letter-spacing:.04em;background:0 0;border:0;border-radius:7px;padding:4px 10px;font-size:12px;font-weight:600}.seg button{letter-spacing:0;padding:5px 12px;font-size:12.5px}.lang button[aria-pressed=true],.seg button[aria-pressed=true]{background:var(--card);color:var(--strong);box-shadow:var(--lift)}.iris-pick{display:flex;color:var(--muted);align-items: center;gap:8px;margin:12px 0 0;font-size:12.5px}.iris-pick span{margin-right:4px}.iris-pick button{background:radial-gradient(circle,#141310 0 28%,var(--c2)30% 48%,var(--c1)52% 100%);border:0;border-radius:50%;width:24px;height:24px;padding:0;box-shadow:0 0 0 1px #0002}.iris-pick button[aria-pressed=true]{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--strong)}@media (max-width:520px){.lang{margin-left:auto}.lang button{padding:4px 7px}}.fig-label.anat{font:500 10.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#6b675f;text-shadow:none;background:#f6f5f1d9;border-radius:4px;padding:1px 5px}
