:root{--green:#104d42;--ink:#172d2a;--muted:#61756e;--lime:#d6ed84;--line:#dce6df;--paper:#f6f8f5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 "Segoe UI",Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}[hidden]{display:none!important}:focus-visible{outline:3px solid #b09320;outline-offset:4px}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}header{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:30px 0}.brand{font-size:20px;font-weight:800;line-height:1.3}.brand small{display:block;font-size:11px;letter-spacing:.12em;color:var(--muted);margin-top:4px}nav{display:flex;flex-wrap:wrap;gap:25px;font-size:14px;font-weight:650}nav a:hover,.text-link:hover{color:#25846d}.hero{border-radius:32px;background:var(--green);color:white;display:grid;grid-template-columns:1.4fr 1fr;gap:60px;padding:65px 60px;margin:12px 0 65px}.eyebrow{font-size:12px;font-weight:750;letter-spacing:.13em;color:#287763;margin:0 0 12px}.hero .eyebrow{color:var(--lime)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(36px,5vw,62px);line-height:1.1;letter-spacing:-.04em;margin-bottom:25px}h1 span{color:var(--lime)}h2{font-size:clamp(25px,3vw,35px);line-height:1.3;letter-spacing:-.025em}h3{font-size:20px;line-height:1.4}.hero>div>p:not(.eyebrow){max-width:490px;color:#d1e5df}.hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:15px;align-content:center}.hero-stats>div{background:#ffffff0c;border:1px solid #ffffff23;border-radius:18px;padding:15px 20px}.hero-stats>div:nth-child(3){grid-column:1/-1}.hero-stats strong{display:block;font-size:39px;color:var(--lime);line-height:1.2}.hero-stats span{font-size:14px}.hero-stats p{grid-column:1/-1;font-size:13px;margin:0}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:20px 0 0}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border-radius:10px;padding:11px 20px;border:1px solid var(--green);background:var(--green);color:white;font-weight:650;font-size:14px;text-align:center}.button:hover{filter:brightness(.94)}.lime{background:var(--lime);color:var(--ink);border-color:var(--lime)}.pale{background:#eaf2ed;color:var(--green);border-color:#eaf2ed}.outline{background:white;color:var(--green)}section{margin-bottom:70px}.section-title{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:25px}.section-title h2{margin:0}.section-title>p{max-width:360px;font-size:14px;color:var(--muted);margin:0}.book-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.book-card>p{margin:20px 0 12px;color:var(--muted);font-size:14px}.cover{display:flex;flex-direction:column;min-height:305px;border-radius:8px 25px 25px 8px;padding:30px;background:var(--green);color:white;box-shadow:inset 9px 0 0 #ffffff10,0 14px 30px #17382b0b;transition:transform .2s}.cover:hover{transform:translateY(-4px)}.cover small{font-size:10px;letter-spacing:.12em;opacity:.8}.cover h3{font-size:34px;line-height:1.15;margin:30px 0 18px;letter-spacing:-.025em}.cover span{font-size:12px;opacity:.8}.cover b{margin-top:auto;padding-top:28px;font-size:13px}.cost{background:#e2eadf;color:#25463a}.audit{background:#1e3544}.text-link{font-weight:700;color:var(--green)}.bank-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.bank-card{background:white;border:1px solid var(--line);border-radius:18px;padding:25px;transition:box-shadow .2s}.bank-card:hover{box-shadow:0 12px 30px #133b3010;border-color:#86b4a0}.bank-card>span{font-size:10px;font-weight:700;color:#408170;letter-spacing:.1em}.bank-card h3{margin:14px 0 7px}.bank-card p{font-size:14px;color:var(--muted)}.bank-card b{font-size:14px;color:var(--green)}.panel{border:1px solid var(--line);background:white;border-radius:23px;padding:30px}.filters{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}label{display:block;font-size:13px;font-weight:650}select,input{display:block;width:100%;border:1px solid #c7d8cc;border-radius:9px;background:white;padding:12px;color:var(--ink);margin-top:7px;min-width:0}select{font-size:14px}.muted{color:var(--muted)}.small{font-size:13px}.filters+p{margin-top:15px}.panel .small{margin:20px 0 0}.quiz-top{display:flex;justify-content:space-between;gap:15px;font-size:14px}progress{display:block;width:100%;height:8px;border:0;border-radius:5px;margin:18px 0 30px;accent-color:#267f61}progress::-webkit-progress-bar{background:#e8efea;border-radius:5px}progress::-webkit-progress-value{background:#267f61;border-radius:5px}#question{font-weight:550;font-size:20px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:20px}.answers{display:grid;gap:11px}.answer{display:flex;gap:15px;align-items:flex-start;text-align:left;padding:15px 18px;border:1px solid #cfdfd3;border-radius:12px;background:#fff;color:var(--ink);white-space:pre-wrap;font-size:16px;line-height:1.6}.answer b{background:#edf3ee;border-radius:6px;min-width:30px;text-align:center}.answer.selected{border:2px solid #176b57;background:#f2f9f4}.answer.correct{border:2px solid #298456;background:#edf8ed}.answer.wrong{border:2px solid #b74747;background:#fff1ef}.explanation{background:#edf6ef;border-left:4px solid #298456;padding:20px;margin-top:24px;border-radius:0 12px 12px 0;white-space:pre-wrap;overflow-wrap:anywhere}.explanation p:last-child{margin:0}.explanation a{color:#126653;text-decoration:underline}.quiz-actions{margin-bottom:24px}summary{cursor:pointer;font-weight:650}.question-nav{display:flex;flex-wrap:wrap;gap:7px;max-height:240px;overflow:auto;margin-top:14px}.question-nav button{width:43px;min-height:40px;background:#f0f4f1;border:1px solid #cadbd0;border-radius:7px;color:var(--ink)}.question-nav button.done{background:#d6eddb}.question-nav button.active{outline:2px solid var(--green)}#result h3{margin:32px 0 18px}.review-item{padding:18px 0;border-bottom:1px solid var(--line)}.review-item summary{font-size:15px;line-height:1.6}.review-question{white-space:pre-wrap}.reader-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.reader-controls label{display:flex;align-items:center;gap:8px}.reader-controls input{width:90px;margin:0}#pdf{display:block;border:1px solid var(--line);width:100%;height:78vh;min-height:480px;background:#e5eae7;border-radius:14px}#page-note{font-size:13px;color:var(--green)}.contact{display:flex;justify-content:space-between;gap:30px;background:#e3eee7;border-radius:25px;padding:35px;margin-top:70px}.contact p{margin:0;color:var(--muted)}.contact>div:last-child{display:flex;flex-direction:column;justify-content:center;gap:12px;font-size:24px;font-weight:750}footer{font-size:13px;color:var(--muted);padding:0 0 35px}footer p{max-width:800px;margin:15px 0 0}.skip{position:absolute;top:-100px;background:white;padding:12px}.skip:focus{top:5px}#load-status{color:var(--muted)}@media(max-width:850px){header{align-items:flex-start;flex-direction:column}.hero{gap:25px;padding:40px 30px}.book-grid{gap:15px}.cover{padding:25px 22px}.cover h3{font-size:29px}.bank-grid{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr 1fr}.filters .wide{grid-column:1/-1}.section-title{align-items:flex-start;flex-direction:column;gap:12px}}@media(max-width:600px){.wrap{width:calc(100% - 30px)}nav{gap:15px;font-size:13px}.hero{grid-template-columns:1fr;border-radius:23px;margin-bottom:45px}.hero-stats{grid-template-columns:1fr 1fr 1fr;gap:8px}.hero-stats>div{padding:13px 10px}.hero-stats>div:nth-child(3){grid-column:auto}.hero-stats strong{font-size:25px}.hero-stats span{font-size:11px}.hero-stats p{grid-column:1/-1}.book-grid,.bank-grid,.filters{grid-template-columns:1fr}.cover{min-height:270px}.panel{padding:20px 16px}.contact{flex-direction:column;padding:25px}.contact>div:last-child{font-size:21px}section{margin-bottom:45px}.reader-controls .button{flex:1;font-size:12px;padding:10px}#question{font-size:17px}.answer{font-size:15px}.quiz-actions .button{flex:1;min-width:130px}#pdf{height:65vh}}

.book-view{max-height:80vh;overflow:auto;background:#e5ece7;border:1px solid #dce6df;border-radius:14px;padding:12px;text-align:center}.book-view canvas{display:block;width:100%;height:auto;max-width:1250px;margin:auto;background:white}#book-loading{margin:0;padding:6px}.review-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}@media print{#reading,#workspace{display:none!important}}

/* Continuous reader: fixed page geometry keeps scrolling stable while nearby pages load. */
.book-view{height:80vh;max-height:none;padding:0;overflow:auto;overflow-anchor:none;scroll-behavior:auto}
#book-stream{position:relative;padding:12px}
.book-page{margin:0 auto 18px;max-width:1250px}
.page-surface{position:relative;width:100%;background:white;box-shadow:0 2px 8px #17382b10;overflow:hidden}
.page-surface canvas{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0}
.page-message{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;color:var(--muted);font-size:14px}
.page-caption{padding:7px;font-size:12px;color:var(--muted);text-align:center}
@media(max-width:600px){.book-view{height:75vh}#book-stream{padding:6px}.book-page{margin-bottom:10px}}

/* Reading accessibility controls stay outside the scrolling page area. */
.reader-shell{height:85vh;height:85dvh;min-height:430px;display:flex;flex-direction:column;background:#e5ece7;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.viewer-toolbar{flex:none;background:#fff;color:#172d2a;padding:12px 16px;border-bottom:1px solid #c7d8cc;z-index:5}
.viewer-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.viewer-tools>strong{font-size:15px;margin-right:auto}
.viewer-tools button{min-height:44px;padding:8px 13px;border:1px solid #b6c9bd;border-radius:8px;background:#f2f7f3;color:#153e32;font-size:15px;font-weight:650}
.viewer-tools button[aria-pressed="true"]{background:#104d42;color:white}.viewer-tools button:hover{border-color:#104d42}.zoom-tools{display:flex;align-items:center;gap:6px}.zoom-tools button{min-width:44px;font-size:21px}.zoom-tools output{min-width:55px;text-align:center;font-size:15px;font-weight:700}
.view-theme-label{display:flex;align-items:center;gap:7px}.view-theme-label select{margin:0;width:auto;padding:9px;font-size:14px;min-height:44px}
.viewer-tools .fullscreen-button{background:#104d42;color:white;border-color:#104d42}
.viewer-toolbar .reader-controls{margin-top:10px;gap:9px}.viewer-toolbar .reader-controls .button{min-height:42px;padding:8px 14px}.viewer-toolbar .reader-controls input{padding:9px;font-size:15px;width:75px}
.reader-shell .book-view{flex:1;min-height:0;height:auto;max-height:none;border:0;border-radius:0}
#book-stream{width:max(100%,calc(var(--page-width,100%) + 24px));padding:12px}
.book-page{width:var(--page-width,100%);max-width:none;margin:0 auto 18px}
.viewer-hint{flex:none;margin:0;padding:7px 14px;text-align:center;font-size:13px;color:#355548;background:#edf3ee}
.reader-shell:fullscreen,.reader-shell.expanded-view{width:100%;height:100vh;height:100dvh;min-height:0;max-height:none;border:0;border-radius:0;margin:0}
.expanded-view{position:fixed!important;inset:0!important;z-index:9999!important}.viewer-expanded{overflow:hidden}
.test-toolbar{position:sticky;top:0;margin-bottom:20px;border:1px solid var(--line);border-radius:12px}
#workspace{--text-scale:1.2}#workspace #question{font-size:calc(20px * var(--text-scale));line-height:1.8}#workspace .answer,#workspace .explanation,#workspace .review-question{font-size:calc(16px * var(--text-scale));line-height:1.8}#workspace .answer span{overflow-wrap:anywhere}#workspace .muted,#workspace .eyebrow{font-size:calc(13px * var(--text-scale))}
#workspace:fullscreen,#workspace.expanded-view{overflow:auto;width:100%;height:100vh;height:100dvh;margin:0;padding:22px max(18px,calc((100vw - 1250px)/2));background:var(--paper)}
[data-theme="sepia"]{background:#efe4c9!important}[data-theme="sepia"] .book-view{background:#e6d7b5}[data-theme="sepia"] canvas{filter:sepia(.38)}[data-theme="sepia"] .panel,[data-theme="sepia"] .answer{background:#fff8e6;color:#392e1d}
[data-theme="contrast"] .book-view{background:#262b29}[data-theme="contrast"] canvas{filter:grayscale(1) contrast(1.4)}#workspace[data-theme="contrast"]{background:#fff!important;color:#000}#workspace[data-theme="contrast"] .muted,#workspace[data-theme="contrast"] .eyebrow{color:#222}#workspace[data-theme="contrast"] .panel,#workspace[data-theme="contrast"] .answer{border-color:#222;color:#000}#workspace[data-theme="contrast"] .answer:disabled{opacity:1}
@media(max-width:600px){.reader-shell{height:90dvh;min-height:430px}.viewer-toolbar{padding:8px}.viewer-tools{gap:6px}.viewer-tools>strong{width:100%;font-size:14px}.viewer-tools button{font-size:13px;padding:6px 9px}.zoom-tools button{font-size:20px}.viewer-toolbar .reader-controls{gap:6px}.viewer-toolbar .reader-controls .button{flex:none}.viewer-toolbar #save-page{font-size:12px}.viewer-hint{font-size:11px}.view-theme-label{font-size:12px}.view-theme-label select{font-size:13px;padding:7px}.test-toolbar{top:0}.reader-shell .book-view{height:auto}#book-stream{padding:12px}}

/* Compact single-row controls: secondary settings are in a popover. */
.viewer-toolbar{padding:5px 10px;overflow:visible}.viewer-tools{flex-wrap:nowrap;justify-content:flex-end;gap:8px;min-height:44px}.viewer-tools>strong{display:none}
.viewer-tools button{min-height:44px;padding:5px 10px;font-size:14px;white-space:nowrap}.zoom-tools{gap:4px}.zoom-tools button{min-width:44px;font-size:22px}.zoom-tools output{min-width:48px;font-size:14px}
.viewer-more{position:relative;flex:none}.viewer-more>summary{display:grid;place-items:center;width:44px;height:44px;list-style:none;border:1px solid #b6c9bd;border-radius:8px;background:#f2f7f3;color:#153e32;font-size:23px;cursor:pointer}.viewer-more>summary::-webkit-details-marker{display:none}
.viewer-more[open]>summary{background:#dcebe1}.viewer-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:20;display:grid;gap:10px;width:245px;max-width:calc(100vw - 40px);padding:14px;background:#fff;border:1px solid #c7d8cc;border-radius:12px;box-shadow:0 12px 32px #172d2a26}.viewer-more:not([open])>.viewer-menu{display:none}.viewer-menu button{width:100%}.viewer-menu .view-theme-label{justify-content:space-between}.viewer-menu select{min-height:44px;width:165px}.fullscreen-button{display:flex;gap:7px;align-items:center;justify-content:center}
.test-toolbar{margin-bottom:10px}.reader-shell{min-height:260px}#workspace:fullscreen>.section-title,#workspace.expanded-view>.section-title{display:none}#workspace:fullscreen,#workspace.expanded-view{padding-top:6px}
@media(max-width:600px){.viewer-toolbar{padding:4px 6px}.viewer-tools{gap:5px;justify-content:space-between}.viewer-tools button{font-size:14px;min-height:44px;padding:5px 9px}.zoom-tools button{font-size:21px;min-width:44px}.zoom-tools output{min-width:45px}.viewer-tools .screen-label{display:none}.viewer-tools .fullscreen-button{font-size:22px;min-width:44px}.viewer-menu{right:-48px}.reader-shell{height:88dvh;min-height:260px}.reader-shell:fullscreen,.reader-shell.expanded-view{height:100dvh;min-height:0}#reading>.section-title,#workspace>.section-title{flex-direction:row;align-items:center;gap:10px;margin-bottom:10px}#reading>.section-title h2,#workspace>.section-title h2{font-size:20px}#reading>.section-title>a,#workspace>.section-title>a{font-size:12px;white-space:nowrap}#workspace>.section-title .eyebrow{display:none}.test-toolbar{border-radius:8px}#workspace:fullscreen,#workspace.expanded-view{padding:4px 8px}#load-status{font-size:13px;margin-bottom:10px}.viewer-menu .view-theme-label{font-size:14px}.viewer-menu select{font-size:14px}}
