/* lesson-skin.css — re-theme the legacy AMBER lesson components with micro tokens so converted
   amber lessons match the common theme. Pair with micro.css (provides the tokens) + micro.js. */

/* policy-gradients — re-skinned from the legacy amber format to the common micro theme.
   Body content/structure is unchanged; the amber component classes are restyled with micro
   tokens (fonts var(--font-*), colors var(--warm)/--teal/--blue/--purple/--green/--red,
   surfaces var(--bg)/--surface/--border). Token-driven theme; no gold or serif-display swap-ins. */
html{scroll-behavior:smooth}
body{font-size:17px;line-height:1.8}
::selection{background:var(--warm);color:var(--bg)}
.back-link,.nav,.nav-brand,.nav-links{display:none!important}   /* universal header + Mode Dock replace these */
.progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--warm),var(--warm2));z-index:1001;width:0;transition:width .15s}

.hero{min-height:88vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:6rem 2rem 4rem;position:relative}
.hero-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--warm);margin-bottom:1.4rem;background:color-mix(in srgb,var(--warm) 9%,transparent);padding:6px 16px;border-radius:20px;border:1px solid color-mix(in srgb,var(--warm) 22%,transparent)}
.hero h1{font-family:var(--font-display);font-size:clamp(2.3rem,6vw,4.4rem);font-weight:400;line-height:1.12;max-width:760px;color:var(--text)}
.hero h1 em{font-style:italic;color:var(--warm)}
.hero-sub{max-width:560px;margin-top:1.5rem;color:var(--text2);font-size:1.05rem;line-height:1.7;font-weight:300}
.hero-chips{margin-top:2rem;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.hero-chips span{font-family:var(--font-mono);font-size:.72rem;color:var(--text2);background:var(--surface);border:1px solid var(--border);padding:7px 14px;border-radius:8px}

.container{max-width:780px;margin:0 auto;padding:0 1.6rem}
section{padding:4.5rem 0;border-top:1px solid var(--border);scroll-margin-top:72px}
section:first-of-type{border-top:none}

.toc{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:2rem 0}
.toc a{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:8px;background:var(--surface);border:1px solid var(--border);text-decoration:none;color:var(--text2);font-size:.85rem;font-weight:500;transition:all .2s}
.toc a:hover{border-color:var(--warm);color:var(--text)}
.toc .num{color:var(--warm);font-family:var(--font-mono);font-weight:700;font-size:.72rem;min-width:22px}

.sec-num{font-family:var(--font-mono);font-size:.72rem;color:var(--warm);letter-spacing:.18em;text-transform:uppercase;display:block;margin-bottom:.6rem;font-weight:600}
h2{font-family:var(--font-display);font-size:clamp(1.7rem,4vw,2.4rem);font-weight:400;color:var(--text);line-height:1.2;margin-bottom:1.4rem}
h2 em{font-style:italic;color:var(--warm)}
h3{font-size:1.2rem;font-weight:700;color:var(--blue);margin:2.6rem 0 1rem}
p{margin-bottom:1.1rem;color:var(--text2)}
strong{color:var(--text);font-weight:600}

.math{background:var(--bg-code,var(--surface));border:1px solid var(--border);border-left:3px solid var(--warm);border-radius:8px;padding:1.3rem 1.5rem;margin:1.5rem 0;font-family:var(--font-mono);font-size:.9rem;line-height:2;color:var(--text);overflow-x:auto}
.math .tag{display:block;font-family:var(--font-body);font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;color:var(--warm);margin-bottom:.6rem;font-weight:700}
.math .note{color:var(--text3);font-style:italic;font-family:var(--font-body);font-size:.88rem}

.box{border-radius:10px;padding:1.3rem 1.5rem;margin:1.5rem 0;border:1px solid var(--border);background:var(--surface)}
.box .label{font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;display:block;margin-bottom:.5rem}
.box p{color:var(--text2)}
.box.def{background:color-mix(in srgb,var(--blue) 7%,var(--surface));border-color:color-mix(in srgb,var(--blue) 30%,transparent)}
.box.def .label{color:var(--blue)} .box.def .term{font-weight:700;color:var(--blue);margin-bottom:.3rem;font-size:1.05rem}
.box.idea{background:color-mix(in srgb,var(--warm) 8%,var(--surface));border-color:color-mix(in srgb,var(--warm) 26%,transparent)} .box.idea .label{color:var(--warm)}
.box.warn{background:color-mix(in srgb,var(--red) 8%,var(--surface));border-color:color-mix(in srgb,var(--red) 26%,transparent)} .box.warn .label{color:var(--red)}
.box.ex{background:color-mix(in srgb,var(--green) 7%,var(--surface));border-color:color-mix(in srgb,var(--green) 26%,transparent)} .box.ex .label{color:var(--green)}
.box.deriv{background:color-mix(in srgb,var(--purple) 8%,var(--surface));border-color:color-mix(in srgb,var(--purple) 26%,transparent)} .box.deriv .label{color:var(--purple)}

.algo{background:var(--surface);border:2px solid var(--warm);border-radius:12px;padding:1.7rem;margin:2rem 0}
.algo-title{font-weight:700;font-size:1rem;color:var(--warm);padding-bottom:.8rem;margin-bottom:1rem;border-bottom:1px solid var(--border)}
.algo ol{padding-left:1.3rem} .algo li{margin-bottom:.6rem;font-size:.92rem;color:var(--text2)} .algo li strong{color:var(--text)}

.ctable{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.88rem}
.ctable th{text-align:left;padding:.7rem 1rem;background:var(--surface);color:var(--warm);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;border-bottom:2px solid var(--warm);font-weight:700}
.ctable td{padding:.65rem 1rem;border-bottom:1px solid var(--border);color:var(--text2);vertical-align:top}
.ctable tr:hover td{background:color-mix(in srgb,var(--text) 4%,transparent)}

code{font-family:var(--font-mono);font-size:.82em;background:var(--bg2,var(--surface));padding:2px 7px;border-radius:4px;color:var(--blue);border:1px solid var(--border)}
footer{text-align:center;padding:4rem 2rem;border-top:1px solid var(--border);font-size:.75rem;color:var(--text3)} footer a{color:var(--warm);text-decoration:none}

@media(max-width:700px){.toc{grid-template-columns:1fr}.hero-chips{flex-direction:column;align-items:center}.math{font-size:.78rem;padding:1rem 1.2rem}section{padding:3rem 0}body{font-size:15px}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.fade{opacity:0;animation:fadeUp .7s ease forwards}.fade.d1{animation-delay:.1s}.fade.d2{animation-delay:.2s}.fade.d3{animation-delay:.3s}.fade.d4{animation-delay:.4s}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.challenge{border:1px solid var(--border);border-radius:14px;margin:2rem 0;overflow:hidden;background:var(--surface)}
.challenge-head{display:flex;align-items:center;gap:.6rem;padding:1rem 1.3rem;cursor:pointer;user-select:none;transition:background .2s} .challenge-head:hover{background:color-mix(in srgb,var(--warm) 5%,transparent)}
.challenge-icon{font-size:1rem;line-height:1;flex-shrink:0}
.challenge-type{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--warm);flex-shrink:0}
.challenge-title{font-family:var(--font-body);font-weight:600;font-size:.95rem;color:var(--text);flex:1;margin-left:.3rem}
.challenge-chevron{color:var(--text3);transition:transform .25s;font-size:.8rem;flex-shrink:0} .challenge.open .challenge-chevron{transform:rotate(90deg)}
.challenge-body{display:none;padding:0 1.3rem 1.3rem} .challenge.open .challenge-body{display:block;animation:fadeIn .3s ease}
.challenge-done{display:inline-block;font-family:var(--font-mono);font-size:.6rem;color:var(--green);letter-spacing:.08em;margin-left:.5rem;opacity:0;transition:opacity .3s} .challenge.attempted .challenge-done{opacity:1}
.derivation-challenge{border-left:3px solid var(--warm)} .derivation-challenge.open .challenge-head{border-bottom:1px solid var(--border)}
.derive-prompt{font-size:.95rem;color:var(--text2);margin-bottom:1rem;line-height:1.7}
.derive-hint{margin:.6rem 0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg2,var(--surface))}
.derive-hint-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.7rem 1rem;background:none;border:none;color:var(--text3);font-family:var(--font-mono);font-size:.75rem;cursor:pointer;transition:all .2s;text-align:left} .derive-hint-btn:hover{color:var(--warm);background:color-mix(in srgb,var(--warm) 3%,transparent)}
.derive-hint-btn .hint-n{color:var(--warm);font-weight:600}
.derive-hint-content{display:none;padding:.6rem 1rem 1rem;font-size:.92rem;color:var(--text2);line-height:1.7;border-top:1px solid var(--border)} .derive-hint.revealed .derive-hint-content{display:block;animation:fadeIn .3s ease} .derive-hint.revealed .derive-hint-btn{color:var(--warm);opacity:.6}
.derive-reveal{margin-top:1rem}
.derive-reveal-btn{display:flex;align-items:center;gap:.5rem;padding:.7rem 1.2rem;background:color-mix(in srgb,var(--warm) 12%,transparent);border:1px solid color-mix(in srgb,var(--warm) 50%,transparent);border-radius:8px;color:var(--warm);font-family:var(--font-mono);font-size:.78rem;cursor:pointer;transition:all .2s} .derive-reveal-btn:hover{background:color-mix(in srgb,var(--warm) 20%,transparent);transform:translateY(-1px)}
.derive-answer{display:none;margin-top:1rem;padding:1.2rem;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:10px;line-height:1.75;color:var(--text2)} .derive-answer.shown{display:block;animation:fadeIn .4s ease}
.break-lab{border-left:3px solid var(--red)} .break-lab .challenge-type{color:var(--red)}
.lab-desc{font-size:.95rem;color:var(--text2);margin-bottom:1rem;line-height:1.7}
.lab-toggles{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}
.lab-toggle{display:flex;align-items:center;gap:.8rem;padding:.65rem 1rem;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s;user-select:none} .lab-toggle:hover{border-color:var(--border2)} .lab-toggle.active{border-color:var(--red);background:color-mix(in srgb,var(--red) 6%,transparent)}
.lab-switch{width:36px;height:20px;background:var(--bg3,var(--bg2));border:1px solid var(--border2);border-radius:10px;position:relative;flex-shrink:0;transition:all .2s} .lab-switch::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--text3);border-radius:50%;transition:all .2s}
.lab-toggle.active .lab-switch{background:color-mix(in srgb,var(--red) 20%,transparent);border-color:var(--red)} .lab-toggle.active .lab-switch::after{left:18px;background:var(--red)}
.lab-label{font-family:var(--font-mono);font-size:.8rem;color:var(--text2);flex:1} .lab-toggle.active .lab-label{color:var(--red)}
.lab-status{font-family:var(--font-mono);font-size:.65rem;color:var(--green);letter-spacing:.1em} .lab-toggle.active .lab-status{color:var(--red)}
.lab-explain{display:none;margin-top:.5rem;padding:.8rem 1rem;background:color-mix(in srgb,var(--red) 4%,transparent);border:1px solid color-mix(in srgb,var(--red) 15%,transparent);border-radius:8px;font-size:.88rem;color:var(--text2);line-height:1.65} .lab-toggle.active+.lab-explain{display:block;animation:fadeIn .3s ease}
.design-challenge{border-left:3px solid var(--blue)} .design-challenge .challenge-type{color:var(--blue)}
.design-brief{font-size:1rem;line-height:1.75;margin-bottom:1rem;color:var(--text)}
.design-constraints{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem;margin-bottom:1.2rem}
.design-constraint{padding:.6rem .9rem;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:8px;font-family:var(--font-mono);font-size:.78rem} .design-constraint .dc-label{color:var(--text3);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.15rem} .design-constraint .dc-value{color:var(--blue);font-weight:500}
.design-decisions{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}
.design-decision{font-family:var(--font-body);font-size:.9rem;color:var(--text2);padding:.4rem 0} .design-decision strong{color:var(--text)}
.design-area{width:100%;min-height:120px;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:10px;padding:1rem;color:var(--text);font-family:var(--font-mono);font-size:.82rem;line-height:1.7;resize:vertical;outline:none;transition:border-color .2s} .design-area:focus{border-color:var(--blue)} .design-area::placeholder{color:var(--text3)}
.impl-checkpoint{border-left:3px solid var(--green)} .impl-checkpoint .challenge-type{color:var(--green)}
.impl-prompt{font-size:.95rem;color:var(--text);margin-bottom:1rem;line-height:1.7}
.impl-signature{background:var(--bg-code,var(--bg2));border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.3rem;margin:1rem 0;font-family:var(--font-mono);font-size:.82rem;line-height:1.8;color:var(--text2);position:relative;white-space:pre;overflow-x:auto} .impl-signature .tag{position:absolute;top:.4rem;right:.7rem;font-size:.55rem;color:var(--text3);text-transform:uppercase;letter-spacing:.12em}
.impl-test{padding:.7rem 1rem;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:8px;font-family:var(--font-mono);font-size:.78rem;color:var(--blue);margin:.8rem 0;line-height:1.7} .impl-test-label{font-size:.6rem;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.3rem}
.impl-editor{width:100%;min-height:180px;background:var(--bg-code,var(--bg2));border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.3rem;color:var(--text);font-family:var(--font-mono);font-size:.82rem;line-height:1.8;resize:vertical;outline:none;transition:border-color .2s;tab-size:4;white-space:pre;overflow-x:auto;margin:.8rem 0} .impl-editor:focus{border-color:var(--green)} .impl-editor::placeholder{color:var(--text3)}
.impl-solution{display:none;margin-top:1rem} .impl-solution.shown{display:block;animation:fadeIn .4s ease}
.impl-bonus{margin-top:1rem;padding:.8rem 1rem;background:color-mix(in srgb,var(--warm) 4%,transparent);border:1px solid color-mix(in srgb,var(--warm) 15%,transparent);border-radius:8px;font-size:.9rem;color:var(--text2);line-height:1.65} .impl-bonus strong{color:var(--warm)}
.bridge{border-left:3px solid var(--blue);background:color-mix(in srgb,var(--blue) 4%,transparent);padding:1.2rem 1.4rem;border-radius:0 12px 12px 0;margin:2rem 0;position:relative;overflow:hidden}
.bridge-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.7rem} .bridge-icon{font-size:.9rem}
.bridge-label{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;color:var(--blue)}
.bridge-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--blue);margin-bottom:.5rem}
.bridge-body{font-size:.95rem;line-height:1.75;color:var(--text2)} .bridge-body strong{color:var(--blue)}
.bridge-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:.8rem 0}
.bridge-side{padding:.7rem .9rem;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:8px;font-size:.88rem;line-height:1.6;color:var(--text2)} .bridge-side-label{font-family:var(--font-mono);font-size:.6rem;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.3rem}
.bridge-question{font-style:italic;color:var(--blue);margin-top:.6rem;font-size:.92rem} .bridge a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.gate{border:1px solid var(--border);border-radius:14px;margin:2rem 0;overflow:hidden;background:var(--surface)}
.gate-head{padding:1.2rem 1.3rem;border-bottom:1px solid var(--border)}
.gate-label{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--warm);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}
.gate-label::before{content:'';display:inline-block;width:6px;height:6px;background:var(--warm);border-radius:50%;animation:gatePulse 2s ease-in-out infinite} @keyframes gatePulse{0%,100%{opacity:.4}50%{opacity:1}}
.gate-question{font-family:var(--font-body);font-weight:600;font-size:1rem;color:var(--text);line-height:1.5}
.gate-body{padding:1.2rem 1.3rem}
.gate-area{width:100%;min-height:100px;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:10px;padding:1rem;color:var(--text);font-family:var(--font-body);font-size:.95rem;line-height:1.75;resize:vertical;outline:none;transition:border-color .2s} .gate-area:focus{border-color:var(--warm)} .gate-area::placeholder{color:var(--text3);font-style:italic}
.gate-actions{display:flex;align-items:center;gap:.8rem;margin-top:1rem;flex-wrap:wrap}
.gate-check{padding:.6rem 1.3rem;background:linear-gradient(135deg,var(--warm),var(--warm2));border:none;border-radius:8px;color:var(--bg);font-family:var(--font-mono);font-size:.78rem;font-weight:600;cursor:pointer;transition:all .2s} .gate-check:hover{transform:translateY(-1px)}
.gate-skip{padding:.5rem 1rem;background:none;border:1px solid var(--border2);border-radius:8px;color:var(--text3);font-family:var(--font-mono);font-size:.72rem;cursor:pointer;transition:all .2s} .gate-skip:hover{border-color:var(--text3);color:var(--text2)}
.gate-model{display:none;margin-top:1rem;padding:1rem;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:10px;font-size:.92rem;line-height:1.75;color:var(--text2)} .gate-model.shown{display:block;animation:fadeIn .4s ease}
.gate-model-label{font-family:var(--font-mono);font-size:.6rem;color:var(--blue);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.4rem}
.gate-passed{display:none;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.72rem;color:var(--green)} .gate.cleared .gate-passed{display:flex} .gate.cleared .gate-area{border-color:var(--green);opacity:.7} .gate.cleared .gate-check{opacity:.5;pointer-events:none}
.adv-quiz{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.3rem;margin:1.5rem 0;border-left:3px solid var(--purple)}
.adv-quiz .quiz-q{color:var(--text);margin-bottom:.6rem;font-weight:600}
.adv-scenario{font-size:.92rem;color:var(--text2);margin-bottom:1rem;padding:.7rem 1rem;background:var(--bg2,var(--surface));border-radius:8px;line-height:1.65;border-left:2px solid var(--purple)}
.adv-followup{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)} .adv-followup-q{font-family:var(--font-body);font-weight:600;font-size:.9rem;color:var(--text2);margin-bottom:.6rem}
.adv-text-input{width:100%;padding:.6rem 1rem;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-mono);font-size:.82rem;outline:none;margin-bottom:.5rem} .adv-text-input:focus{border-color:var(--purple)}
.adv-reveal-btn{padding:.5rem 1rem;background:none;border:1px solid var(--purple);border-radius:6px;color:var(--purple);font-family:var(--font-mono);font-size:.72rem;cursor:pointer;transition:all .2s} .adv-reveal-btn:hover{background:color-mix(in srgb,var(--purple) 8%,transparent)}
.adv-model-answer{display:none;margin-top:.8rem;padding:.8rem 1rem;background:var(--bg2,var(--surface));border:1px solid var(--border);border-radius:8px;font-size:.88rem;color:var(--text2);line-height:1.7} .adv-model-answer.shown{display:block;animation:fadeIn .3s ease}
@media(max-width:700px){.bridge-pair{grid-template-columns:1fr}.design-constraints{grid-template-columns:1fr}.challenge-title{font-size:.85rem}}
