:root{--bg:#101414;--paper:#171d1c;--line:#2a3431;--ink:#edf2ec;--muted:#a6b4ad;--lime:#c8ed68;--coral:#fd826d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Inter,ui-sans-serif,system-ui,sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}aside{border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;gap:24px;background:#121817}.brand{display:grid;grid-template-columns:36px 1fr;text-decoration:none;color:var(--ink);line-height:1.1}.brand span{grid-row:span 2;font-size:27px}.brand b{font-size:17px}.brand small{color:var(--muted);font-size:12px;margin-top:4px}nav{display:grid;gap:4px}nav a{padding:11px 12px;border-radius:10px;color:var(--muted);text-decoration:none;display:flex;justify-content:space-between}nav a:hover,nav a.active{background:#202926;color:var(--ink)}nav i{font-style:normal;color:var(--lime);font-size:12px}.search input{width:100%;border:1px solid var(--line);border-radius:9px;background:#17201e;color:var(--ink);padding:10px 12px}.link{margin-top:auto;background:none;border:0;color:var(--muted);padding:8px;cursor:pointer;text-align:left}main{max-width:1100px;width:100%;padding:80px clamp(25px,7vw,100px)}header{max-width:760px}.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--lime);font-weight:800}h1{font-size:clamp(37px,5vw,64px);line-height:1.03;letter-spacing:-.055em;margin:8px 0 21px}h1 em{font-family:Georgia,serif;color:var(--lime);font-weight:400}.lead{color:var(--muted);font-size:19px;max-width:600px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:54px}.card{min-height:220px;border:1px solid var(--line);background:var(--paper);border-radius:15px;padding:23px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:.2s}.card:hover{border-color:var(--lime);transform:translateY(-2px)}.card>span{color:var(--coral);font:24px Georgia,serif}.card h2{margin:30px 0 7px;font-size:22px}.card p{color:var(--muted);font-size:14px;margin:0}.card b{margin-top:auto;color:var(--lime);font-size:13px}.note{margin-top:25px;border-left:3px solid var(--coral);padding:15px 20px;background:#1b211f;max-width:700px}.note p{color:var(--muted);margin:5px 0 0}.lessons{margin-top:48px;border-top:1px solid var(--line)}.lesson{display:flex;gap:20px;align-items:center;padding:22px 5px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.lesson:hover h2{color:var(--lime)}.lesson>span{color:var(--coral);font:19px Georgia,serif}.lesson div{flex:1}.lesson h2{margin:0;font-size:20px}.lesson p{margin:4px 0 0;color:var(--muted);font-size:14px}.lesson small{color:var(--muted);white-space:nowrap}.lesson b{color:var(--lime)}.back{color:var(--lime);text-decoration:none}article{max-width:760px;margin-top:70px}.lesson-body{border-top:1px solid var(--line);margin-top:45px;padding:30px 0;color:#d8e0da;font-size:18px}.next{background:#1c2522;border-radius:14px;padding:20px 23px}.next p{margin:6px 0 0;color:var(--muted)}.login-page{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 50% 0,#29342c,var(--bg) 48%)}.login-card{width:min(430px,calc(100% - 36px));border:1px solid var(--line);border-radius:18px;background:rgba(23,29,28,.9);padding:42px}.compass{font-size:37px}.login-card h1{font-size:40px}.login-card>p{color:var(--muted)}label{display:grid;gap:7px;font-size:13px;margin-top:17px;color:var(--muted)}input{font:inherit}label input{border:1px solid var(--line);border-radius:9px;padding:12px;background:#111817;color:var(--ink)}button{border:0;border-radius:9px;background:var(--lime);color:#172015;font-weight:800;padding:13px 18px;font:inherit;cursor:pointer}.login-card button{width:100%;margin-top:25px}.error{margin-top:16px;padding:10px;border-radius:8px;background:#482822;color:#ffc7ba;font-size:14px}@media(max-width:720px){.shell{display:block}aside{position:sticky;top:0;z-index:2;padding:14px;display:flex;flex-direction:row;align-items:center}.brand{display:none}nav{display:flex;overflow:auto}.search{display:none}.link{margin:0}.grid{grid-template-columns:1fr}main{padding:45px 24px}.lesson small{display:none}}
/* Imported lesson content */
.lesson-body h2{margin:46px 0 15px;font-size:28px;line-height:1.18}.lesson-body h3{margin:30px 0 12px;font-size:21px}.lesson-body p,.lesson-body li{max-width:760px}.lesson-body li{margin:8px 0}.lesson-body a{color:var(--lime)}.lesson-body blockquote{margin:25px 0;padding:16px 20px;border-left:3px solid var(--coral);background:#1d2623;color:#dce5de}.lesson-body img,.lesson-body video{max-width:100%;height:auto;border-radius:12px}.lesson-body .video-wrapper{margin:28px 0}

/* Светлая система edvidenin.ru */
@font-face{font-family:TTNorms;src:url('https://static.tildacdn.com/tild3038-3430-4063-b233-373537656335/TT_Norms_Pro_Light.woff') format('woff');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:TTNorms;src:url('https://static.tildacdn.com/tild6231-3339-4164-a437-326533663735/TT_Norms_Pro_Normal.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:TTNorms;src:url('https://static.tildacdn.com/tild6237-3135-4539-b536-623732666431/TT_Norms_Pro_Medium.woff') format('woff');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:TTNorms;src:url('https://static.tildacdn.com/tild6163-3262-4762-a334-306264343334/TT_Norms_Pro_Bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}
:root{--bg:#ede8e0;--paper:#f8f6f1;--line:#d3cec6;--ink:#343633;--muted:#696b67;--lime:#36557b;--coral:#ff8562}body{background:var(--bg);color:var(--ink);font-family:TTNorms,Arial,sans-serif;font-weight:400}.shell{background:var(--bg)}aside{background:#f6f2eb;border-color:var(--line)}.brand{color:var(--ink)}.brand small{color:var(--muted)}nav a{color:var(--ink);font-weight:400}nav a:hover,nav a.active{background:#e4dfd6;color:var(--lime)}nav i{color:var(--lime)}.search input{background:#fffdfa;border-color:var(--line);color:var(--ink)}.link{color:var(--muted)}.eyebrow{color:var(--lime);letter-spacing:.13em}h1{font-weight:500;letter-spacing:-.04em}h1 em{font-family:TTNorms,Arial,sans-serif;color:var(--lime);font-weight:300}.lead{color:var(--muted)}.card{background:var(--paper);border-color:var(--line);box-shadow:0 2px 12px rgba(52,54,51,.04)}.card:hover{border-color:var(--lime);box-shadow:0 10px 26px rgba(54,85,123,.12)}.card>span{color:var(--coral)}.card p,.note p,.lesson p,.next p{color:var(--muted)}.card b{color:var(--lime)}.note{background:#f6f2eb;border-color:var(--coral)}.lessons{border-color:var(--line)}.lesson{border-color:var(--line)}.lesson>span{color:var(--coral)}.lesson:hover h2{color:var(--lime)}.lesson b,.back,.lesson-body a{color:var(--lime)}.lesson-body{color:var(--ink);border-color:var(--line)}.lesson-body blockquote{background:#f6f2eb;color:var(--ink);border-color:var(--coral)}.next{background:#f6f2eb}.login-page{background:radial-gradient(circle at 50% 0,#fffdfa 0,var(--bg) 62%)}.login-card{background:rgba(248,246,241,.94);border-color:var(--line);box-shadow:0 20px 50px rgba(52,54,51,.12)}.login-card>p{color:var(--muted)}label{color:var(--muted)}label input{background:#fffdfa;border-color:var(--line);color:var(--ink)}button{background:var(--lime);color:#fff}.error{background:#fff0eb;color:#963d2a}
.nav-module{border-bottom:1px solid var(--line)}.nav-module summary{list-style:none;cursor:pointer;padding:11px 12px;display:flex;justify-content:space-between;align-items:center;color:var(--ink);border-radius:9px}.nav-module summary::-webkit-details-marker{display:none}.nav-module summary span{display:flex;gap:8px;align-items:center}.nav-module summary em{font-style:normal;font-size:11px;color:var(--coral);letter-spacing:.08em}.nav-module summary:after{content:'›';font-size:21px;color:var(--muted);line-height:1;transform:rotate(0);transition:transform .18s}.nav-module[open] summary{background:#e4dfd6;color:var(--lime)}.nav-module[open] summary:after{transform:rotate(90deg);color:var(--lime)}.nav-lessons{padding:3px 7px 11px}.nav-lessons a{display:block;padding:6px 10px 6px 23px;color:var(--muted);text-decoration:none;font-size:13px;line-height:1.25;border-radius:7px}.nav-lessons a:hover{background:#ebe6de;color:var(--lime)}
.shell{grid-template-columns:390px 1fr}.nav-module summary span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:17px;letter-spacing:.01em}.nav-module summary:after{flex:0 0 auto;margin-left:12px}.nav-module summary{min-height:51px}.nav-lessons a{white-space:normal}
html{scroll-behavior:smooth}.lesson-body h2[id]{scroll-margin-top:28px}
.lesson-layout{display:grid;grid-template-columns:minmax(0,760px) 210px;gap:50px;align-items:start;margin-top:38px}.lesson-layout .reader{margin-top:0}.toc{position:sticky;top:26px;padding:17px 0;opacity:.68}.toc:hover{opacity:1}.toc .eyebrow{margin:0 0 14px}.toc a{display:block;color:var(--muted);text-decoration:none;font-size:15px;line-height:1.32;padding:8px 10px;border-left:2px solid transparent;border-radius:0 8px 8px 0;transition:background .16s,color .16s,border-color .16s,opacity .16s}.toc a:hover,.toc a.is-active{background:rgba(255,255,255,.68);color:var(--ink);border-left-color:var(--coral);opacity:1}.lesson-body p,.lesson-body li,.toc a{hyphens:auto;text-wrap:pretty}@media(max-width:980px){.lesson-layout{grid-template-columns:1fr;gap:20px}.toc{position:static;order:2;padding:18px;background:rgba(246,242,235,.65);border:1px solid var(--line);border-radius:12px;opacity:1}.lesson-layout .reader{order:1}}
.lesson-body p{font-size:20px;line-height:1.5}.reader h1{font-size:52px;line-height:1.05}.nav-module summary span{font-size:16px}.toc{padding:17px 0;background:transparent;border:0}.toc a{margin:2px 0;padding:9px 12px;border:1px solid transparent;border-left:2px solid transparent;border-radius:10px;background:rgba(255,255,255,.22);box-shadow:inset 0 0 0 1px rgba(52,54,51,.025)}.toc a:hover,.toc a.is-active{background:rgba(255,255,255,.72);border-color:rgba(54,85,123,.13);border-left-color:var(--coral);box-shadow:0 7px 18px rgba(52,54,51,.06);color:var(--ink)}@media(max-width:980px){.toc{background:transparent;border:0;padding:8px 0}.reader h1{font-size:42px}.lesson-body p{font-size:18px}}
.nav-module summary{min-height:44px;padding:7px 12px}.nav-module{margin:0}.nav-lessons{padding:1px 7px 7px}.nav-lessons a{padding-top:4px;padding-bottom:4px;line-height:1.18}
.toc a{margin:0;padding:6px 10px;background:transparent;box-shadow:none;line-height:1.25}.toc a:hover,.toc a.is-active{background:rgba(255,255,255,.72);padding-top:7px;padding-bottom:7px}
.toc a{padding:4px 10px;line-height:1.22}.toc a:hover,.toc a.is-active{padding:4px 10px}
.toc a,.toc a:hover,.toc a.is-active{margin:0;padding:2px 10px;line-height:1.2}
.toc{position:sticky}.toc:before{content:'';position:absolute;left:0;top:47px;bottom:8px;width:1px;background:rgba(54,85,123,.16)}.toc .eyebrow{position:relative}.toc a,.toc a:hover,.toc a.is-active{position:relative;margin:0 0 1px 0;padding:6px 10px 6px 14px;border:0;border-left:2px solid transparent;border-radius:8px;background:transparent;box-shadow:none;color:rgba(52,54,51,.62);font-size:14px;line-height:1.2;transition:background .16s,color .16s,border-color .16s}.toc a:hover{background:rgba(255,255,255,.35);color:var(--ink);border-left-color:rgba(54,85,123,.45)}.toc a.is-active{background:rgba(255,255,255,.76);color:var(--ink);border-left-color:var(--coral);box-shadow:0 6px 16px rgba(52,54,51,.05)}@media(max-width:980px){.toc:before{display:none}}
.toc{display:flex;flex-direction:column;gap:0}.toc a,.toc a:hover,.toc a.is-active{margin:0;padding-top:2px;padding-bottom:2px}.toc .eyebrow{margin:0 0 14px}
.toc a{isolation:isolate}.toc a:hover,.toc a.is-active{background:transparent;box-shadow:none}.toc a:hover:before,.toc a.is-active:before{content:'';position:absolute;z-index:-1;inset:-6px -1px;border-radius:11px;background:rgba(255,255,255,.74);box-shadow:0 6px 16px rgba(52,54,51,.045)}.toc a:hover:before{background:rgba(255,255,255,.48)}
.toc a:hover:before,.toc a.is-active:before{display:none}.toc a,.toc a:hover,.toc a.is-active{box-sizing:border-box;min-height:42px;margin:0 0 1px;padding:10px 14px;display:flex;align-items:center;background:transparent;border-left:2px solid transparent;border-radius:12px}.toc a:hover{background:rgba(255,255,255,.46);border-left-color:rgba(54,85,123,.45)}.toc a.is-active{background:rgba(255,255,255,.78);border-left-color:var(--coral);box-shadow:0 6px 16px rgba(52,54,51,.045)}
.lesson-body p,.lesson-body li,.toc a{hyphens:none;overflow-wrap:normal;word-break:normal}
@media(min-width:721px){body{overflow:hidden}.shell{height:100dvh;min-height:0;overflow:hidden}.shell>aside{min-height:0;overflow-y:auto;overscroll-behavior:contain}.shell>main{height:100dvh;max-height:100dvh;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth}}
.continue-card{max-width:760px;margin:40px 0 66px;padding:28px 30px;border:1px solid rgba(54,85,123,.2);border-radius:18px;background:linear-gradient(120deg,#fffdfa,rgba(248,246,241,.72));box-shadow:0 14px 30px rgba(52,54,51,.06);display:flex;gap:24px;align-items:end;justify-content:space-between}.continue-card h2{font-size:28px;line-height:1.1;margin:6px 0 10px}.continue-card>div>p:not(.eyebrow){margin:0;color:var(--muted);max-width:510px}.continue-meta{display:flex;gap:12px;margin-top:18px;color:var(--muted);font-size:14px}.continue-meta span+span:before{content:'·';margin-right:12px;color:var(--coral)}.continue-card>a,.next>a{display:inline-flex;white-space:nowrap;text-decoration:none;border-radius:9px;padding:11px 15px;background:var(--lime);color:#fff;font-weight:500}.section-head{max-width:1060px;display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.section-head h2{margin:4px 0 0;font-size:28px}.section-head>p{margin:0;color:var(--muted);font-size:14px}.lesson.is-read>span{color:var(--lime)}.lesson.is-read h2:after{content:' · открыто';font-size:13px;font-weight:400;color:var(--muted)}.next>a{margin-top:8px}@media(max-width:720px){.continue-card{margin:28px 0 48px;padding:22px;display:block}.continue-card>a{margin-top:20px}.section-head{display:block}.section-head>p{margin-top:8px}.continue-meta{display:block}.continue-meta span{display:block}.continue-meta span+span:before{display:none}}
.nav-lessons a.active-lesson{background:rgba(255,255,255,.78);color:var(--ink);border-left:2px solid var(--coral);font-weight:500;box-shadow:0 3px 10px rgba(52,54,51,.04)}.breadcrumbs{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:8px;min-height:44px;margin:-80px -100px 30px;padding:0 clamp(25px,7vw,100px);background:rgba(237,232,224,.78);border-bottom:1px solid rgba(211,206,198,.7);backdrop-filter:blur(12px);font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden}.breadcrumbs a{color:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.breadcrumbs a:last-child{color:var(--ink)}.breadcrumbs span{color:var(--coral)}.search{position:relative;z-index:7}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:310px;overflow:auto;padding:6px;background:#fffdfa;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 28px rgba(52,54,51,.13)}.search-results a{display:block;padding:8px 9px;border-radius:7px;color:var(--ink);text-decoration:none}.search-results a:hover{background:#f1ede6}.search-results small,.search-results b{display:block}.search-results small{font-size:11px;color:var(--muted);margin-bottom:1px}.search-results b{font-size:13px;line-height:1.2;font-weight:500}.search-results p{margin:8px;color:var(--muted);font-size:13px}@media(min-width:721px){.shell>main{max-width:none;width:auto}.shell>main::-webkit-scrollbar{width:12px}.shell>main::-webkit-scrollbar-track{background:transparent}.shell>main::-webkit-scrollbar-thumb{background:rgba(52,54,51,.28);border:3px solid var(--bg);border-radius:20px}.shell>main{scrollbar-color:rgba(52,54,51,.35) var(--bg);scrollbar-width:thin}}@media(max-width:720px){.breadcrumbs{position:static;margin:-45px -24px 28px;padding:0 24px;min-height:40px}.search-results{position:fixed;left:14px;right:14px;top:65px}}
.nav-lessons{display:flex;flex-direction:column;gap:1px}.nav-lessons a{margin:0}.to-top{position:fixed;right:28px;bottom:28px;z-index:8;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:rgba(255,253,250,.9);border:1px solid rgba(54,85,123,.2);box-shadow:0 8px 20px rgba(52,54,51,.12);color:var(--lime);font-size:23px;line-height:1;text-decoration:none;backdrop-filter:blur(8px);transition:transform .16s,background .16s}.to-top:hover{background:#fffdfa;transform:translateY(-2px)}#lesson-top{scroll-margin-top:55px}@media(max-width:720px){.to-top{right:16px;bottom:16px}}
.nav-module summary{margin-bottom:10px}.nav-lessons{gap:2px}.to-top{right:43px;bottom:350px}.breadcrumbs{top:0;margin:0 -100px 30px;min-height:52px;font-size:14px}.lesson-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:48px;padding-top:22px;border-top:1px solid var(--line)}.lesson-nav a{min-height:92px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:rgba(255,253,250,.56);text-decoration:none;color:var(--ink);display:flex;flex-direction:column;justify-content:center;gap:5px;transition:background .16s,border-color .16s}.lesson-nav a:hover{background:#fffdfa;border-color:rgba(54,85,123,.4)}.lesson-nav .following{text-align:right}.lesson-nav span{font-size:13px;color:var(--lime)}.lesson-nav b{font-size:17px;line-height:1.2}@media(min-width:721px){.shell>main{padding-top:0}}@media(max-width:720px){.to-top{right:16px;bottom:24px}.breadcrumbs{margin:0 -24px 28px;font-size:12px}.lesson-nav{grid-template-columns:1fr}.lesson-nav .following{text-align:left}}
.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:25px;line-height:1;z-index:1}.search-clear:hover{background:#e8e2d9;color:var(--ink)}.search input{padding-right:40px}.breadcrumbs{min-height:70px;margin:0 -100px 30px;padding-right:calc(clamp(25px,7vw,100px) + 66px);font-size:16px}.theme-toggle{position:absolute;right:clamp(25px,7vw,100px);top:50%;transform:translateY(-50%);width:38px;height:38px;padding:0;border:1px solid rgba(54,85,123,.2);border-radius:50%;background:rgba(255,253,250,.72);color:var(--lime);font-size:20px;line-height:1}.theme-toggle:hover{background:#fffdfa}.scroll-progress{position:absolute;left:0;right:0;bottom:-1px;height:3px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--coral),var(--lime));transition:transform .08s linear}.toc{opacity:1;padding:18px 16px;background:rgba(255,253,250,.42);border:1px solid rgba(54,85,123,.13);border-radius:16px;box-shadow:0 8px 24px rgba(52,54,51,.035)}.toc .eyebrow{margin-bottom:13px}.toc:before{left:15px;top:57px;bottom:17px}.toc a,.toc a:hover,.toc a.is-active{padding-left:16px}.toc a.is-active{background:rgba(255,255,255,.84)}body.dark{--bg:#16191e;--paper:#1e242a;--line:#38424c;--ink:#edf2f5;--muted:#a7b0b8;--lime:#8fb3ff;--coral:#ff9b7d}body.dark aside,body.dark .shell{background:#171c22}body.dark .search input,body.dark .search-results,body.dark .breadcrumbs,body.dark .continue-card,body.dark .toc,body.dark .lesson-nav a{background:rgba(29,35,42,.88)}body.dark .card,body.dark .next{background:#1e242a}body.dark .search-results a:hover,body.dark .nav-module[open] summary{background:#29313a}body.dark .theme-toggle{background:#252d36;color:#ffd274;border-color:#465565}body.dark .toc a.is-active{background:#2a333d}body.dark .toc a:hover{background:#232b34}body.dark .to-top{background:#252d36;border-color:#465565}body.dark .lesson-nav a:hover{background:#27313b}body.dark .scroll-progress{background:linear-gradient(90deg,#ff9b7d,#8fb3ff)}@media(max-width:720px){.breadcrumbs{min-height:54px;margin:0 -24px 28px;padding-right:70px;font-size:14px}.theme-toggle{right:18px}.toc{padding:16px}.toc:before{left:15px}}
@media(min-width:721px){.lesson-layout{grid-template-columns:minmax(0,760px) 210px}.lesson-layout>.toc{position:sticky;order:initial;top:96px}}body.dark{--bg:#30343a;--paper:#42484f;--line:#5b626b;--ink:#f1eee9;--muted:#c5c0ba;--lime:#a8c3ff;--coral:#f5a087}body.dark aside,body.dark .shell{background:#343941}body.dark .search input,body.dark .search-results,body.dark .breadcrumbs,body.dark .continue-card,body.dark .toc,body.dark .lesson-nav a{background:rgba(62,68,76,.9)}body.dark .card,body.dark .next{background:#42484f}body.dark .search-results a:hover,body.dark .nav-module[open] summary{background:#515864}body.dark .theme-toggle{background:#565d66;color:#ffe0a0;border-color:#767e89}body.dark .toc a.is-active{background:#59616c}body.dark .toc a:hover{background:#4c535d}body.dark .to-top{background:#565d66;border-color:#767e89}body.dark .lesson-nav a:hover{background:#505863}
@media(min-width:721px){.lesson-layout{display:grid!important;grid-template-columns:minmax(0,1fr) 250px!important;align-items:start!important;gap:46px!important}.lesson-layout>.reader{grid-column:1;min-width:0}.lesson-layout>.toc{grid-column:2;grid-row:1;display:block!important;position:sticky!important;order:0!important;top:96px!important;width:250px!important;min-width:0!important}}.lesson-body mark{padding:0 2px;border-radius:3px;background:#ffe4a8;color:#40392d;box-shadow:0 0 0 1px rgba(255,184,82,.25)}body.dark .lesson-body blockquote{background:#454c54;color:var(--ink);border-color:var(--coral)}body.dark .lesson-body mark{background:#5b4e32;color:#fff2c4;box-shadow:0 0 0 1px rgba(255,214,118,.35)}
@media(min-width:480px){.lesson-layout{display:grid!important;grid-template-columns:minmax(0,1fr) 250px!important;align-items:start!important;gap:46px!important}.lesson-layout>.reader{grid-column:1!important;grid-row:1!important;min-width:0!important}.lesson-layout>.toc{grid-column:2!important;grid-row:1!important;display:block!important;position:sticky!important;order:0!important;top:96px!important;width:250px!important;min-width:0!important}}
@media(min-width:960px){.lesson-layout{grid-template-columns:minmax(0,1fr)!important}.lesson-layout>.toc{position:fixed!important;top:112px!important;right:43px!important;width:250px!important;max-height:calc(100dvh - 145px);overflow-y:auto;z-index:3}.lesson-layout>.reader{max-width:760px}}
@media(min-width:480px){.lesson-layout{grid-template-columns:minmax(0,1fr)!important}.lesson-layout>.toc{position:fixed!important;top:112px!important;right:43px!important;width:250px!important;max-height:calc(100dvh - 145px)!important;overflow-y:auto!important;z-index:12!important}}
/* Desktop reader proportions: a focused seven-column reading measure, compact ToC and a separate return control. */
@media(min-width:721px){main .lesson-layout>.reader{max-width:520px!important;width:520px!important}.lesson-layout>.toc{right:62px!important;width:180px!important}.to-top{right:8px!important}}
/* Lesson reading frame: anchors clear the sticky breadcrumb bar, while the side index stays clear of the final navigation. */
.lesson-body h2[id]{scroll-margin-top:106px!important}
@media(min-width:721px){
  main .lesson-layout>.reader{max-width:570px!important;width:570px!important}
  .lesson-layout>.toc{right:62px!important;width:200px!important;max-height:min(400px,calc(100dvh - 360px))!important}
  .to-top{right:8px!important}
}
body.dark .toc{background:#444c56!important;border-color:#687587!important;box-shadow:0 12px 30px rgba(0,0,0,.18)!important}
body.dark .toc .eyebrow{color:#bdd0ff!important}
body.dark .toc a{color:#e9edf1!important;opacity:1!important;background:transparent!important}
body.dark .toc a:hover,body.dark .toc a.is-active{color:#fff!important;background:#667384!important;border-left-color:#ffad96!important}

/* Desktop lesson balance: give the article more room and pull the index toward it. */
@media(min-width:721px){
  main .lesson-layout>.reader{max-width:740px!important;width:740px!important}
  .lesson-layout>.toc{right:clamp(90px,10vw,150px)!important;width:200px!important}
  .to-top{right:clamp(24px,3vw,48px)!important}
}

/* Keep the controls inside the reading area instead of stranded at the viewport edge. */
@media(min-width:721px){
  .lesson-layout>.toc{right:clamp(150px,15vw,210px)!important}
  .to-top{right:clamp(56px,5vw,82px)!important}
}

/* The lesson pager never extends into the fixed table-of-contents column. */
@media(min-width:721px){
  main .lesson-layout>.reader .lesson-nav{
    width:100%;
    max-width:min(740px,calc(100vw - 270px - clamp(25px,7vw,100px) - clamp(120px,11vw,160px) - 200px - 24px));
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(min-width:721px) and (max-width:1050px){
  main .lesson-layout>.reader .lesson-nav{grid-template-columns:1fr;}
  main .lesson-layout>.reader .lesson-nav .following{text-align:left;}
}

/* Fixed desktop controls: stable at browser zoom and clear of one another. */
@media(min-width:721px){
  .lesson-layout>.toc{right:clamp(100px,7vw,130px)!important;width:280px!important}
  main .lesson-layout>.reader .lesson-nav{width:660px!important;max-width:calc(100vw - 760px)!important}
}

/* Some imported lessons close their article wrapper early; the pager still keeps its safe frame. */
@media(min-width:721px){
  main .lesson-nav{
    width:660px!important;
    max-width:calc(100vw - 760px)!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  main .lesson-nav>a{min-width:0!important;}
}
@media(min-width:721px) and (max-width:1050px){
  main .lesson-nav{grid-template-columns:1fr!important;}
  main .lesson-nav .following{text-align:left!important;}
}

/* Keep the full ToC available; its own scrollbar handles genuinely long lessons. */
@media(min-width:721px){
  .lesson-layout>.toc{max-height:calc(100dvh - 145px)!important;overflow-y:auto!important}
}

/* At high zoom or a compact desktop, a side index would cover the reader. */
@media(min-width:721px) and (max-width:1150px){
  main .lesson-layout>.reader{width:100%!important;max-width:740px!important}
  .lesson-layout{grid-template-columns:minmax(0,1fr)!important}
  .lesson-layout>.toc{
    position:static!important;
    grid-column:1!important;
    grid-row:2!important;
    width:100%!important;
    max-height:none!important;
    overflow:visible!important;
    margin-top:28px!important;
  }
}

@media(min-width:1151px){
  .to-top{right:calc(clamp(100px,7vw,130px) / 2 - 21px)!important}
}

.editor-toolbar .editor-save-top{margin-left:auto;background:var(--lime);border-color:var(--lime);color:#fff;font-weight:700;padding-left:14px;padding-right:14px}

/* Student navigator: results are rendered in the browser from a server-validated source list. */
.navigator-link{display:block;margin:7px 7px 12px;padding:10px 12px!important;border:1px solid rgba(54,85,123,.22);border-radius:10px;background:rgba(255,253,250,.55);color:var(--ink)!important;font-weight:650;text-decoration:none}.navigator-link:hover{background:#fffdfa;border-color:var(--coral)}.navigator-teaser{max-width:760px;margin:34px 0;padding:26px 30px;display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid rgba(54,85,123,.22);border-radius:18px;background:linear-gradient(120deg,rgba(255,253,250,.98),rgba(232,244,214,.7));box-shadow:0 14px 30px rgba(52,54,51,.05)}.navigator-teaser h2{margin:4px 0 8px;font-size:27px}.navigator-teaser p:not(.eyebrow){margin:0;color:var(--muted)}.navigator-teaser a,.navigator-form button{border:0;border-radius:10px;padding:12px 16px;background:var(--lime);color:#fff;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}.navigator{max-width:820px;margin:36px 0 80px}.navigator-form{padding:25px;border:1px solid var(--line);border-radius:18px;background:rgba(255,253,250,.54)}.navigator-form label{display:block;margin-bottom:10px;font-size:17px;font-weight:650}.navigator-form textarea{display:block;box-sizing:border-box;width:100%;min-height:140px;margin-bottom:15px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fffdfa;color:var(--ink);font:inherit;line-height:1.45;resize:vertical}.navigator-form textarea:focus{outline:2px solid rgba(54,85,123,.3);border-color:rgba(54,85,123,.55)}.navigator-form button:disabled{opacity:.65;cursor:wait}.navigator-examples{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0}.navigator-examples button{border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:transparent;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}.navigator-examples button:hover{border-color:var(--coral);background:rgba(255,253,250,.72)}.navigator-note{margin:13px 4px;color:var(--muted);font-size:13px}.navigator-result{margin-top:28px;padding:28px 30px;border:1px solid var(--line);border-radius:18px;background:rgba(255,253,250,.64)}.navigator-result h2{margin:0 0 9px;font-size:29px}.navigator-result>p{margin:0;color:var(--muted);line-height:1.5}.navigator-result ol{margin:25px 0 0;padding-left:25px}.navigator-result li{padding:0 0 20px 11px}.navigator-result h3{margin:0 0 6px;font-size:19px}.navigator-result li p{margin:0;line-height:1.5}.navigator-result .navigator-sources{margin-top:8px;color:var(--muted);font-size:14px}.navigator-sources a{color:var(--lime);font-weight:600;text-decoration:none}.navigator-sources a:hover{text-decoration:underline}.navigator-today{margin-top:12px!important;padding:13px 15px;border-left:3px solid var(--coral);border-radius:0 9px 9px 0;background:rgba(200,237,104,.15);color:var(--ink)!important;font-weight:600}@media(max-width:720px){.navigator-teaser{display:block;padding:22px}.navigator-teaser a{display:inline-block;margin-top:18px}.navigator-form,.navigator-result{padding:20px}.navigator-result h2{font-size:25px}}

/* The table of contents should remain a light navigation aid, without a panel background. */
.toc,
body.dark .toc{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}

/* Local lesson editor. It edits only the cabinet copy and keeps prior versions server-side. */
.lesson-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.lesson-title-row h1{margin-top:0}.edit-lesson,.editor-back{flex:0 0 auto;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14px;background:rgba(255,253,250,.62)}.edit-lesson:hover,.editor-back:hover{background:#fffdfa}.editor-head{max-width:900px;display:flex;justify-content:space-between;gap:22px;align-items:flex-start}.editor-head h1{margin:4px 0 10px}.editor-head p:not(.eyebrow){margin:0;color:var(--muted);max-width:630px}.editor-notice{max-width:900px;padding:12px 15px;border-radius:10px;background:rgba(200,237,104,.22);border:1px solid rgba(54,85,123,.16)}.editor-form{max-width:900px;margin-top:28px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(255,253,250,.45)}.editor-toolbar{display:flex;flex-wrap:wrap;gap:7px;padding:12px;border-bottom:1px solid var(--line);background:rgba(255,253,250,.7)}.editor-toolbar button,.editor-history button{padding:7px 10px;border-radius:8px;border:1px solid var(--line);background:#fffdfa;color:var(--ink);cursor:pointer;font-size:13px}.editor-toolbar button:hover,.editor-history button:hover{border-color:var(--coral)}.editor-canvas{min-height:440px;padding:34px 38px;outline:0;font-size:18px;line-height:1.55}.editor-canvas:focus{box-shadow:inset 0 0 0 2px rgba(54,85,123,.16)}.editor-actions{display:flex;gap:16px;align-items:center;padding:15px 18px;border-top:1px solid var(--line)}.editor-actions button{border:0;border-radius:9px;padding:11px 16px;cursor:pointer;font-weight:700}.editor-actions span{font-size:13px;color:var(--muted)}.editor-history{max-width:900px;margin:34px 0 80px}.editor-history h2{font-size:22px}.editor-history ul{margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:13px;overflow:hidden}.editor-history li{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 15px;border-bottom:1px solid var(--line);font-size:14px}.editor-history li:last-child{border-bottom:0}.editor-history span{color:var(--muted)}body.dark .editor-form,body.dark .editor-toolbar{background:rgba(62,68,76,.9)}body.dark .editor-toolbar button,body.dark .editor-history button,body.dark .edit-lesson,body.dark .editor-back{background:#4b535e;color:var(--ink);border-color:#687587}@media(max-width:720px){.lesson-title-row,.editor-head{display:block}.edit-lesson,.editor-back{display:inline-block;margin-top:10px}.editor-canvas{padding:22px 18px;font-size:17px}.editor-actions{display:block}.editor-actions span{display:block;margin-top:9px}.editor-history li{display:block}.editor-history form{margin-top:9px}}

/* Mobile navigation: a compact header and one intentional menu panel. */
.menu-toggle{display:none}
@media(max-width:720px){
  .shell>aside{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0;padding:12px 16px;background:rgba(246,242,235,.97);backdrop-filter:blur(12px);border-right:0;border-bottom:1px solid var(--line)}
  .shell>aside .brand{display:flex;align-items:center;gap:8px;min-width:0;color:var(--ink)}
  .shell>aside .brand span{font-size:20px;grid-row:auto}.shell>aside .brand b{font-size:16px}.shell>aside .brand small{display:none}
  .menu-toggle{display:block;align-self:center;padding:8px 11px;border:1px solid rgba(54,85,123,.24);border-radius:8px;background:rgba(255,253,250,.72);color:var(--lime);font-size:14px;font-weight:500}
  .shell>aside .search,.shell>aside>form:last-child{display:none}
  .shell>aside nav{display:none;grid-column:1/-1;max-height:calc(100dvh - 64px);margin:12px -16px -12px;padding:10px 16px 18px;overflow:auto;border-top:1px solid var(--line);background:var(--bg)}
  .shell>aside.menu-open nav{display:grid}
  .shell>aside nav .navigator-link{margin:0 0 8px;padding:11px 12px!important}
  .shell>aside .nav-module{border-bottom:1px solid var(--line)}
  .shell>aside .nav-module summary{min-height:46px;margin:0;padding:10px 4px;border-radius:0}
  .shell>aside .nav-module summary span{font-size:16px;white-space:normal;overflow:visible}
  .shell>aside .nav-lessons{padding:2px 0 10px}
  .shell>aside .nav-lessons a{padding:9px 12px 9px 18px;font-size:15px;line-height:1.3}
  main{min-width:0;padding:34px 20px}
  .breadcrumbs{margin:0 -20px 26px!important;padding-left:20px!important;padding-right:66px!important}
  h1{font-size:clamp(36px,12vw,50px)}
  .lead{font-size:18px}
}
