/* Shared school identity. Scoped names keep the course engines and diagrams isolated. */
:root{--fs-bg:#f7f5f0;--fs-paper:#fffefa;--fs-ink:#282923;--fs-muted:#74766b;--fs-line:#ddded4;--fs-accent:#763c40;--fs-gold:#ac8c53;--fs-soft:#eeece4;--fs-sans:'Golos Text',Arial,sans-serif;--fs-serif:'Cormorant',Georgia,serif}
:root[data-theme=dark]{--fs-bg:#20221f;--fs-paper:#2a2c27;--fs-ink:#f1efe7;--fs-muted:#b1b4a6;--fs-line:#40453b;--fs-accent:#dbabad;--fs-gold:#d0b57c;--fs-soft:#2a2e27}
.fsh-shell,.fsh-footer,.fsh-dialog,.fsh-outline,.fsh-directory{font:400 14px/1.6 var(--fs-sans);color:var(--fs-ink);box-sizing:border-box}
.fsh-shell *,.fsh-footer *,.fsh-dialog *,.fsh-outline *{box-sizing:border-box}
.fsh-shell a,.fsh-footer a,.fsh-outline a,.fsh-dialog a{color:inherit;text-decoration:none;border:0}
.fsh-shell button,.fsh-dialog button,.fsh-outline button{font:inherit;cursor:pointer}
.fsh-inner{width:min(1280px,100% - 80px);margin-inline:auto}
.fsh-header{background:var(--fs-bg);border-bottom:1px solid var(--fs-line)}
.fsh-header>.fsh-inner{display:flex;align-items:center;gap:36px;min-height:94px}
.fsh-brand{display:flex!important;align-items:center;gap:12px;flex:none;font:600 39px/.82 var(--fs-serif);letter-spacing:-.04em;white-space:nowrap}
.fsh-brand svg{display:block;flex:none;width:42px;height:42px;stroke:var(--fs-gold);stroke-width:1.2}
.fsh-brand small{display:block;margin-top:9px;font:500 7px/1 var(--fs-sans);letter-spacing:.19em;color:var(--fs-muted)}
.fsh-nav{display:flex;gap:28px;align-items:center;margin-left:auto}
.fsh-nav a{font-size:13px;white-space:nowrap;padding-block:12px}
.fsh-nav a:hover,.fsh-nav a[aria-current],.fsh-footer a:hover{color:var(--fs-accent)}
.fsh-actions{display:flex;align-items:center;gap:10px}
.fsh-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:10px;border:1px solid transparent;border-radius:50%;background:none;color:var(--fs-ink);font:24px/1 var(--fs-sans)}
.fsh-icon svg{display:block;width:21px;height:21px;stroke:currentColor;stroke-width:1.5;flex:none}
.fsh-icon:hover{background:var(--fs-soft);border-color:var(--fs-line)}
.fsh-button{display:inline-flex;gap:20px;align-items:center;justify-content:center;background:var(--fs-accent);color:var(--fs-bg)!important;border-radius:7px;padding:12px 20px;font-size:12px;font-weight:500;white-space:nowrap;transition:transform .18s,filter .18s}
.fsh-button:hover{filter:brightness(.95);transform:translateY(-1px)}
.fsh-menu{display:none}
.fsh-skip{position:fixed;top:8px;left:8px;transform:translateY(-150%);z-index:200;background:var(--fs-paper);padding:12px 20px}
.fsh-skip:focus{transform:none}
:is(.fsh-shell,.fsh-footer,.fsh-dialog,.fsh-outline) :focus-visible{outline:2px solid var(--fs-gold);outline-offset:4px}
.fsh-course{border-bottom:1px solid var(--fs-line);background:var(--fs-bg)}
.fsh-course .fsh-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:58px}
.fsh-course-name{font-size:14px;font-weight:500;min-width:0}
.fsh-course-progress{display:inline-block;font:400 10px/1.6 var(--fs-sans);color:var(--fs-muted);margin-left:14px;white-space:nowrap}
.fsh-course-links{display:flex;gap:24px;align-items:center;flex:none;font-size:12px}
.fsh-course-links a,.fsh-course-links button{padding:16px 0;background:none;border:0;color:var(--fs-muted);white-space:nowrap}
.fsh-course-links :is(a,button):hover,.fsh-course-links [aria-current]{color:var(--fs-accent)}
.fsh-course-links [data-fsh-toc]{display:none}
body.fsh-reader:has(#menubtn) [data-fsh-toc]{display:inline-block}
body.fsh-reader>.top,body.fsh-reader>header.top{display:none}
body.fsh-reader>.skip{display:none}
body.fsh-reader .toc{z-index:120;background:var(--fs-paper);box-shadow:12px 0 60px #0002;padding:64px 0 28px;border-right:1px solid var(--fs-line)}
body.fsh-reader .scrim{z-index:110}
body.fsh-reader .toc a{font:13px/1.6 var(--fs-sans);padding:10px 24px}
body.fsh-reader .toc h4{font:500 11px/1.6 var(--fs-sans);text-transform:none;letter-spacing:0;margin:24px}
body.fsh-reader .toc-close{top:18px;right:18px}
.fsh-footer{margin-top:64px;background:var(--fs-soft);border-top:1px solid var(--fs-line);padding:56px 0 30px}
.fsh-footer-top{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-bottom:40px}
.fsh-footer-top p{font:400 14px/1.8 var(--fs-sans);color:var(--fs-muted);margin:0}
.fsh-footer-top>a:last-child{font-size:13px}
.fsh-footer-top>a:last-child span{margin-left:16px}
.fsh-footer-links{border-top:1px solid var(--fs-line);padding-top:24px;display:flex;gap:24px;flex-wrap:wrap;font-size:11px;color:var(--fs-muted)}
.fsh-footer-links>span:last-child{margin-left:auto}
.fsh-directory{width:min(1040px,100% - 48px);margin:24px auto 0;border-top:1px solid var(--fs-line);padding-top:18px;color:var(--fs-muted)}
.fsh-directory summary{cursor:pointer}
.fsh-directory .bot{font:12px/1.7 var(--fs-sans);padding-top:24px}
.fsh-directory .bot a{color:var(--fs-muted)}
.fsh-dialog{width:min(600px,calc(100% - 32px));max-height:85dvh;margin:auto;padding:40px;background:var(--fs-paper);border:1px solid var(--fs-line);border-radius:20px;box-shadow:0 24px 100px #0003;overflow:auto}
.fsh-dialog::backdrop{background:#13171088;backdrop-filter:blur(6px)}
.fsh-dialog form{position:absolute;top:14px;right:14px}
.fsh-dialog h2{font:600 42px/1.05 var(--fs-serif);letter-spacing:-.025em;margin:16px 0 24px;padding:0}
.fsh-eyebrow{font:500 10px/1.5 var(--fs-sans);letter-spacing:.12em;color:var(--fs-gold)}
.fsh-dialog label{display:block;font-size:12px;margin:0 0 8px;color:var(--fs-muted)}
.fsh-dialog input{width:100%;font:16px/1.5 var(--fs-sans);padding:14px 16px;border:1px solid var(--fs-line);border-radius:8px;background:var(--fs-bg);color:var(--fs-ink)}
.fsh-results{margin-top:20px}.fsh-results a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 4px;border-bottom:1px solid var(--fs-line);font-size:14px}.fsh-results a:hover{color:var(--fs-accent)}.fsh-results small{display:block;margin-top:3px;font-size:11px;color:var(--fs-muted)}
/* Reader: a quiet reading column, with navigation outside the text. */
.fsh-reader #view{padding-top:36px}
.fsh-reader #view>.page{row-gap:0}
.fsh-reader #view>.page>h1{font:600 clamp(38px,4.5vw,60px)/1.05 var(--fs-serif);letter-spacing:-.035em}
.fsh-reader .crumb{font:11px/1.8 var(--fs-sans);color:var(--fs-muted);margin-bottom:24px}
.fsh-reader article.lesson{--read:760px;--wrap:900px}
.fsh-reader article.lesson h1{font:600 clamp(38px,4.5vw,60px)/1.04 var(--fs-serif);letter-spacing:-.035em;margin:0 0 22px;text-wrap:balance}
.fsh-reader article.lesson>.subtitle{font:400 17px/1.7 var(--fs-sans);color:var(--fs-muted);margin-bottom:22px}
.fsh-reader article.lesson>.lead{font:400 18px/1.7 var(--fs-sans);color:var(--fs-ink);margin-bottom:24px}
.fsh-reader article.lesson>.prov{font:11px/1.8 var(--fs-sans);color:var(--fs-muted);padding-bottom:24px;margin-bottom:30px}
.fsh-reader article.lesson .objectives{background:var(--fs-paper);border:1px solid var(--fs-line);border-radius:14px;padding:28px 30px;margin-bottom:40px}
.fsh-reader article.lesson .objectives h4{font:500 13px/1.5 var(--fs-sans);letter-spacing:0;text-transform:none;color:var(--fs-ink);margin:0 0 14px}
.fsh-reader article.lesson .objectives h4::after{display:none}
.fsh-reader article.lesson .objectives li{font:13px/1.8 var(--fs-sans);padding-left:20px;margin:8px 0}
.fsh-reader article.lesson :is(h2,h3){scroll-margin-top:32px}
.fsh-reader article.lesson h2{font:600 36px/1.16 var(--fs-serif);letter-spacing:-.02em;margin:54px 0 22px;padding-top:24px;text-wrap:balance}
.fsh-reader article.lesson h2::before{width:28px;height:2px;top:0}.fsh-reader article.lesson h2::after{font-size:10px;top:-5px}
.fsh-reader article.lesson>p:not([class]),.fsh-reader .lesson-body>p{font:400 18px/1.85 'PT Serif',Georgia,serif;margin:0 0 22px}
.fsh-reader article.lesson .callout{border-radius:12px;padding:26px 28px;background:var(--fs-paper);margin-block:30px}
.fsh-reader article.lesson .callout .ct{font:500 10px/1.6 var(--fs-sans);letter-spacing:.06em}.fsh-reader article.lesson .callout .ch{font:500 16px/1.5 var(--fs-sans);margin:12px 0}.fsh-reader article.lesson .callout p{font:14px/1.85 var(--fs-sans)}
.fsh-reader .pager{gap:18px;margin:40px 0 64px}.fsh-reader .pager a{border:1px solid var(--fs-line);border-radius:12px;background:var(--fs-paper);padding:22px 26px;transition:transform .18s,border-color .18s}.fsh-reader .pager a:hover{transform:translateY(-2px);border-color:var(--fs-gold)}.fsh-reader .pager a.next{background:var(--fs-soft)}
.fsh-reader .pager small{font:10px/1.6 var(--fs-sans);letter-spacing:.04em}.fsh-reader .pager span{font:500 14px/1.6 var(--fs-sans)}
.fsh-reader .module{border:1px solid var(--fs-line);background:var(--fs-paper);padding:26px;border-radius:14px;margin-bottom:20px}
.fsh-reader .lcard{border-radius:9px;padding:16px 18px}.fsh-reader .lcard:hover{background:var(--fs-soft)}
.fsh-reader .mod-h h3{font:600 29px/1.2 var(--fs-serif)}
.fsh-reader :is(.exam-card,.practice,.quiz){border-radius:12px}
.fsh-reader .quiz .q{padding-block:24px}.fsh-reader .qopts button{border-radius:8px}
.fsh-outline{display:none}
.fsh-reading .fsh-outline{display:block}
.fsh-outline summary{cursor:pointer;font-weight:500;list-style:none}.fsh-outline summary::-webkit-details-marker{display:none}.fsh-outline>details>summary::after{content:'+';float:right}.fsh-outline>details[open]>summary::after{content:'−'}
.fsh-outline>details{border:1px solid var(--fs-line);border-radius:12px;padding:20px;background:var(--fs-paper)}
.fsh-outline-nav{display:grid;gap:3px;margin-top:16px}
.fsh-outline-nav button{display:block;width:100%;text-align:left;font:400 12px/1.65 var(--fs-sans);border:0;border-left:2px solid transparent;background:none;color:var(--fs-muted);padding:8px 10px}
.fsh-outline-nav button:hover{color:var(--fs-ink);background:var(--fs-soft)}
.fsh-outline-nav button[aria-current]{border-color:var(--fs-accent);color:var(--fs-accent);background:var(--fs-soft)}
.fsh-outline .fsh-reading-label{font-size:10px;color:var(--fs-muted);margin:20px 0 7px}
.fsh-reading-meter{height:3px;background:var(--fs-line);border-radius:4px;overflow:hidden}.fsh-reading-meter i{display:block;height:100%;width:0;background:var(--fs-gold)}
.fsh-outline .fsh-back{display:block;border-top:1px solid var(--fs-line);padding-top:16px;margin-top:20px;font-size:11px;color:var(--fs-accent)}
.fsh-outline .fsh-section-title{font:600 24px/1.1 var(--fs-serif);margin:8px 0 18px;letter-spacing:-.02em}
.fsh-reading #view>.page{max-width:100%;min-width:0}
@media(min-width:1160px){
 .fsh-reading #view{display:grid;grid-template-columns:238px minmax(0,1fr);gap:40px;width:min(1240px,100% - 80px);margin-inline:auto;align-items:start}
 .fsh-reading #view>.page{grid-column:2;grid-row:1;display:block}
 .fsh-reading article.lesson{display:block;padding:0 0 32px;max-width:800px;margin-inline:auto}
 .fsh-reading article.lesson>.lesson-body{display:block}
 .fsh-reading .fsh-outline{grid-column:1;grid-row:1;position:sticky;top:28px;max-height:calc(100dvh - 56px);overflow:auto;scrollbar-width:thin}
 .fsh-reading .fsh-outline>details{background:none;border:0;border-radius:0;padding:0}
 .fsh-reading .fsh-outline>details>summary{pointer-events:none;font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--fs-muted);text-transform:uppercase}
 .fsh-reading .fsh-outline>details>summary::after{display:none}
}
@media(max-width:1159px){.fsh-reading .fsh-outline{width:min(790px,100% - 48px);margin:0 auto 28px}.fsh-outline .fsh-section-title{display:none}.fsh-outline .fsh-reading-label,.fsh-outline .fsh-reading-meter{display:none}}
@media(max-width:980px){.fsh-inner{width:calc(100% - 48px)}.fsh-header>.fsh-inner{gap:22px}.fsh-nav{gap:20px}.fsh-catalogue{display:none}.fsh-actions{gap:4px}.fsh-course-links{gap:18px}}
@media(max-width:700px){
 .fsh-inner{width:calc(100% - 36px)}.fsh-header>.fsh-inner{min-height:76px;gap:12px}.fsh-brand{font-size:33px;gap:9px}.fsh-brand svg{width:34px;height:34px}.fsh-brand small{font-size:6px;margin-top:8px}.fsh-actions{margin-left:auto;gap:0}.fsh-icon{width:40px;height:40px}.fsh-menu{display:inline-flex}
 .fsh-nav{display:none;position:absolute;top:76px;left:0;right:0;z-index:90;background:var(--fs-paper);padding:18px;border-bottom:1px solid var(--fs-line);box-shadow:0 12px 30px #0001;margin:0}.fsh-nav.open{display:flex;flex-direction:column;gap:0;align-items:stretch}.fsh-nav a{padding:12px 10px}
 .fsh-course .fsh-inner{display:block;padding-block:14px 0;min-height:0}.fsh-course-name{display:block;font-size:13px}.fsh-course-links{gap:22px;overflow:auto;scrollbar-width:none;font-size:11px}.fsh-course-links a,.fsh-course-links button{padding:12px 0}
 .fsh-course-progress{margin-left:10px;font-size:9px}
 .fsh-footer{padding:36px 0 24px;margin-top:36px}.fsh-footer-top{display:grid;gap:24px;padding-bottom:28px}.fsh-footer-links{gap:16px 22px}.fsh-footer-links>span:last-child{margin-left:0;width:100%}
 .fsh-reader #view{padding-top:24px}.fsh-reader .crumb{margin-bottom:22px;font-size:10px}.fsh-reader article.lesson h1{font-size:38px}.fsh-reader article.lesson>.subtitle,.fsh-reader article.lesson>.lead{font-size:15px;line-height:1.75}
 .fsh-reader article.lesson .objectives{padding:22px;margin-bottom:32px}.fsh-reader article.lesson h2{font-size:30px;margin-top:40px}.fsh-reader article.lesson>p:not([class]),.fsh-reader .lesson-body>p{font-size:17px;line-height:1.85}.fsh-reader article.lesson .callout{padding:22px}.fsh-reader .pager{flex-direction:column;gap:12px;margin-bottom:48px}.fsh-reader .pager a{padding:20px}
 .fsh-reader .module{padding:18px}.fsh-dialog{padding:30px 22px}.fsh-dialog h2{font-size:36px}.fsh-outline>details{padding:16px 18px}.fsh-reading .fsh-outline{width:calc(100% - 36px)}
}
@media(prefers-reduced-motion:reduce){.fsh-shell *,.fsh-reader *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.fsh-course-progress,.fsh-reading-label,.fsh-reader .modnav i,.fsh-reader .stat b{font-variant-numeric:lining-nums tabular-nums}
.fsh-course-progress,.fsh-course-links,.fsh-footer-links,.fsh-results small,.fsh-eyebrow,
.fsh-reader .crumb,.fsh-reader article.lesson>.prov,.fsh-reader article.lesson .callout .ct,
.fsh-reader .pager small,.fsh-outline .fsh-reading-label,.fsh-outline .fsh-back,
.fsh-reading .fsh-outline>details>summary{font-size:12px;line-height:1.7}
.fsh-outline-nav button{font-size:13px;line-height:1.7}
