@font-face{font-family:Koten;src:url('assets/koten.ttf') format('truetype');font-display:swap;font-weight:400 600}
:root{--paper:#f7f5fa;--white:#fffefe;--ink:#302b38;--green:#635078;--green2:#524164;--sage:#eee8f5;--line:#ded6e6;--muted:#6f6578;--red:#a92c32;--rose:#f7ece8;--gold:#594571;--serif:Koten,'Hiragino Mincho ProN','Yu Mincho',serif;--sans:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;--radius:18px;font-size:16px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);line-height:1.75;-webkit-tap-highlight-color:transparent}body.large{font-size:18px}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #755b94;outline-offset:4px}button{border:0}a{color:var(--green)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.5}h1{font-size:clamp(27px,5vw,38px);letter-spacing:.05em}h2{font-size:23px}h3{font-size:19px}small{font-size:12px}.app-head{height:81px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,calc((100vw - 1160px)/2));position:relative;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:0;background:none;text-align:left;font-family:var(--serif);font-size:18px;font-weight:500;line-height:1.3}.brand-mark{display:grid;place-items:center;color:white;background:var(--green);height:42px;width:36px;border-radius:6px 6px 12px 6px;font-size:23px}.brand small{display:block;font-family:var(--sans);font-size:10px;color:var(--muted);letter-spacing:.12em;margin-top:5px}.icon-btn{background:transparent;min-width:44px;min-height:44px;font-size:21px;border-radius:12px}.icon-btn span{font-size:12px}.icon-btn:hover{background:var(--sage)}#main{max-width:1160px;margin:auto;padding:32px 24px 120px;min-height:calc(100svh - 81px)}.loading{padding:120px 20px;text-align:center;font-family:var(--serif);font-size:22px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:24px;background:#fcfcfdf7;backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:8px 16px calc(8px + env(safe-area-inset-bottom));z-index:20}.bottom-nav button{width:132px;background:none;color:var(--muted);font-size:11px;border-radius:12px;padding:3px;line-height:1.5}.bottom-nav button.active{color:var(--green);background:var(--sage);font-weight:700}.nav-icon{display:block;font-size:23px;line-height:1.3;margin-bottom:2px}.eyebrow{font-size:11px;font-weight:650;letter-spacing:.18em;color:var(--green);margin-bottom:12px}.hero{background:linear-gradient(110deg,#e7e2ee 0,#e9e4f0 60%,#e3dee9 100%);border-radius:24px;padding:34px 40px;display:grid;grid-template-columns:1fr auto;gap:24px;overflow:hidden;position:relative}.hero:after{content:'';position:absolute;border-radius:50%;background:#c7bcd542;width:270px;height:270px;right:-40px;bottom:-180px;pointer-events:none}.hero h1{margin-bottom:12px}.hero p{font-family:var(--serif);font-size:17px;line-height:1.95;max-width:590px}.hero-mark{writing-mode:vertical-rl;font-family:var(--serif);font-size:48px;color:#6e637c4d;letter-spacing:.18em;margin:0 22px}.hero .btn{margin-top:22px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;background:var(--green);color:white;padding:10px 24px;border-radius:12px;text-decoration:none;font-size:14px;font-weight:600;line-height:1.5}.btn:hover{background:var(--green2)}.btn.secondary{background:var(--white);color:var(--green);border:1px solid var(--line)}.btn.ghost{background:transparent;color:var(--green);border:1px solid var(--green)}.btn.full{width:100%}.btn.small{min-height:42px;padding:8px 16px;font-size:13px}.text-btn{background:none;color:var(--green);padding:8px 0;min-height:40px;font-size:13px;text-underline-offset:4px}.text-btn:hover{text-decoration:underline}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0 34px;border-bottom:1px solid var(--line);padding-bottom:22px;gap:15px}.summary-strip>div{display:flex;align-items:baseline;gap:10px;font-size:12px;color:var(--muted)}.summary-strip b{font-family:var(--serif);font-size:28px;color:var(--green);font-weight:500}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-heading p,.muted{color:var(--muted);font-size:13px}.chapter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.chapter-card{display:grid;grid-template-columns:48px 1fr 24px;gap:15px;align-items:center;padding:22px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);text-align:left;width:100%;transition:transform .15s,border-color .15s}.chapter-card:hover{border-color:#9e95aa;transform:translateY(-2px)}.chapter-no{font-family:var(--serif);font-size:26px;font-weight:500;color:#83798f;align-self:start;line-height:1.5}.chapter-card h3{font-size:21px}.chapter-card .genre{font-size:11px;color:var(--muted);margin:2px 0 7px}.chapter-card .chapter-status{font-size:11px;display:flex;justify-content:space-between;margin-bottom:6px;color:var(--muted)}.progress-track{height:4px;background:#e7e4eb;border-radius:8px;overflow:hidden}.progress-track>span{display:block;background:#66547d;height:100%;border-radius:8px}.chevron{color:#918b99;font-size:23px}.foot-note{margin-top:32px;color:var(--muted);font-size:11px;line-height:1.8}.back-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.back-row button{padding:4px 0;background:none;color:var(--green);font-size:13px;min-height:36px}.chapter-heading{padding-bottom:20px}.chapter-heading h1{margin:2px 0 8px}.chapter-heading p{font-family:var(--serif);font-size:16px;line-height:1.9;max-width:900px}.chapter-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.panel h2,.panel h3{margin-bottom:15px}.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.person{padding:15px 14px;background:#efebf3;border-radius:12px}.person b{font-family:var(--serif);font-size:17px;font-weight:500;display:block;margin-bottom:4px}.person p{font-size:12px;color:#5a5264;line-height:1.7}.relationships{margin-top:14px}.relationship{padding:8px 0;font-size:13px;border-bottom:1px solid #ece8f0}.relationship:last-child{border:0}.relationship span{color:var(--muted);font-size:12px;display:block;margin-top:3px}.reading-keys{padding-left:1.2em;margin:0}.reading-keys li{padding:6px 0;font-size:14px;line-height:1.9}.source-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.step-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.step-card{padding:20px;background:var(--white);border:1px solid var(--line);border-radius:16px;text-align:left}.step-card:hover{border-color:#9e95aa}.step-card .step-no{font-size:10px;letter-spacing:.13em;color:var(--muted);margin-bottom:8px}.step-card h3{font-size:20px;margin-bottom:4px}.step-card p{font-size:12px;color:var(--muted);margin-bottom:12px}.step-card .progress-track{margin-top:10px}.study-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.study-head h1{font-size:19px;letter-spacing:.02em}.study-head .counter{font-size:12px;color:var(--muted);white-space:nowrap}.step-tabs{display:flex;gap:7px;margin:18px 0 22px;flex-wrap:wrap}.step-tabs button{background:#e8e4ed;color:#574e63;border-radius:100px;padding:7px 14px;min-height:38px;font-size:12px}.step-tabs button.active{background:var(--green);color:white}.study-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1.15fr);gap:24px;align-items:start}.passage-panel{position:sticky;top:22px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.passage-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;font-size:12px;color:var(--muted)}.quote-wrap{display:flex;justify-content:center;align-items:center;min-height:235px;padding:24px 12px;margin-bottom:14px;background:linear-gradient(130deg,#eee9f3,#f3f0f7);border-radius:12px;overflow:auto}.quote{writing-mode:vertical-rl;text-orientation:upright;font-family:var(--serif);font-size:27px;line-height:1.85;letter-spacing:.1em;max-height:330px;white-space:pre-wrap;overflow-wrap:anywhere}.quote.horizontal{writing-mode:horizontal-tb;max-height:none;font-size:23px;letter-spacing:.05em;line-height:1.8}.quote-empty{font-family:var(--serif);font-size:19px;text-align:center;color:var(--muted)}.passage-panel details{margin-top:16px;font-size:13px}.passage-panel summary{cursor:pointer;color:var(--green);min-height:35px}.passage-panel details p{color:#5a5264;font-size:13px;margin-top:10px;line-height:1.9}.question-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px}.question-meta{display:flex;justify-content:space-between;gap:16px;font-size:11px;color:var(--muted);margin-bottom:12px}.skill-tag{color:var(--green);background:var(--sage);border-radius:5px;padding:2px 9px}.question-text{font-family:var(--serif);font-size:23px;line-height:1.85;white-space:pre-line;letter-spacing:.02em;margin-bottom:24px}.options{display:grid;gap:10px}.option{border:1px solid #d1ccd7;display:flex;align-items:center;gap:14px;min-height:62px;padding:14px 17px;border-radius:12px;background:var(--white);text-align:left;font-size:17px;line-height:1.7}.option .label{flex-shrink:0;display:grid;place-items:center;width:29px;height:29px;font-size:12px;color:#675f71;border-radius:50%;border:1px solid #d1ccd7}.option.selected{border-color:var(--green);background:#eee9f3;box-shadow:inset 0 0 0 1px var(--green)}.option.correct{border-color:#57456e;background:#ede8f3;opacity:1}.option.wrong{border-color:#bd7776;background:#faeeea;opacity:1}.option.revealed{opacity:1}.option .result-mark{margin-left:auto;flex-shrink:0;font-weight:700;color:var(--green);font-size:13px}.option.wrong .result-mark{color:var(--red)}.question-actions{margin-top:20px;display:flex;gap:10px;align-items:center;justify-content:space-between}.hint-link{background:none;color:var(--gold);min-height:44px;padding:8px 0;font-size:13px}.hint-box{margin-top:15px;padding:15px 17px;border-radius:12px;background:#e9e3f0;font-size:14px;line-height:1.9}.hint-box .hint-count{display:block;font-size:10px;letter-spacing:.13em;color:#614b7b;margin-bottom:5px}.answer-input{width:100%;min-height:100px;resize:vertical;border:1px solid #bfb7c8;border-radius:12px;background:#fcfcfd;padding:15px;font-size:18px;line-height:1.8;color:var(--ink)}.answer-input:disabled{opacity:1;color:var(--ink)}.notebook-check{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);padding:13px 0 0}.notebook-check input{width:18px;height:18px;accent-color:var(--green)}.feedback{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);animation:enter .2s ease}.feedback-status{font-size:13px;font-weight:600;margin-bottom:12px;color:var(--green)}.feedback-status.retry{color:var(--red)}.answer-label{font-size:11px;color:var(--muted);margin-bottom:5px}.model-answer{font-family:var(--serif);font-size:21px;color:var(--red);white-space:pre-line;line-height:1.9;margin-bottom:18px}.explanation{font-size:15px;line-height:2;white-space:pre-line}.source-link{font-size:12px;background:none;color:var(--green);padding:8px 0;margin-top:13px;text-align:left;min-height:42px}.self-grade{margin-top:18px;padding:17px;background:#f0edf4;border-radius:12px}.self-grade p{font-size:13px;margin-bottom:12px}.grade-buttons{display:flex;flex-wrap:wrap;gap:8px}.grade-buttons button{background:white;border:1px solid #ccc6d4;border-radius:8px;min-height:44px;padding:8px 13px;font-size:13px}.grade-buttons button.active{background:var(--green);color:white;border-color:var(--green)}.checks{margin:14px 0 0;padding-left:1.3em;font-size:13px;color:#5a5264}.study-bottom{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-top:22px}.subtle{font-size:11px;color:var(--muted);line-height:1.8}.finish{max-width:720px;margin:30px auto;background:var(--white);border:1px solid var(--line);padding:36px;border-radius:24px;text-align:center}.finish .finish-symbol{font-family:var(--serif);font-size:44px;color:var(--green);margin-bottom:15px}.finish h1{font-size:28px;margin-bottom:14px}.finish p{font-size:15px;margin-bottom:22px}.finish-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0}.finish-stats div{background:#efebf3;border-radius:12px;padding:16px 4px;font-size:11px}.finish-stats b{display:block;font-family:var(--serif);font-size:25px;color:var(--green)}.finish-actions{display:flex;flex-direction:column;gap:10px}.page-title{margin-bottom:10px}.page-intro{font-size:14px;color:var(--muted);margin-bottom:26px;max-width:800px}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.chip{background:#e8e4ed;border-radius:100px;padding:9px 17px;font-size:12px;min-height:40px}.chip.active{background:var(--green);color:white}.review-list{display:grid;gap:10px}.review-row{padding:18px 20px;background:var(--white);border:1px solid var(--line);border-radius:14px;text-align:left;display:flex;justify-content:space-between;gap:18px;align-items:center}.review-row .meta{font-size:11px;color:var(--muted);margin-bottom:7px}.review-row .ask{font-family:var(--serif);font-size:17px}.empty{padding:55px 24px;text-align:center;background:var(--white);border:1px solid var(--line);border-radius:18px}.empty h2{font-size:22px;margin-bottom:12px}.empty p{font-size:14px;color:var(--muted);margin-bottom:20px}.search{width:100%;border:1px solid #cdc7d4;background:var(--white);border-radius:12px;padding:13px 16px;font-size:16px;margin-bottom:20px;color:var(--ink)}.library-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.library-card{border:1px solid var(--line);background:var(--white);border-radius:16px;padding:20px}.library-card h3{margin-bottom:7px;font-size:20px}.library-card p{font-size:11px;color:var(--muted);margin-bottom:15px}.library-card .actions{display:flex;flex-wrap:wrap;gap:8px}.reader-note{margin:22px 0;padding:20px;border-radius:16px;background:var(--sage);font-size:13px;line-height:1.9}.record-panel{margin-top:20px}.record-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.record-stat{padding:22px;background:var(--white);border:1px solid var(--line);border-radius:16px;font-size:12px;color:var(--muted)}.record-stat b{display:block;font-family:var(--serif);font-size:30px;color:var(--green);font-weight:500}.record-bars{display:grid;gap:14px}.record-bar .name{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px}.record-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.danger{color:var(--red)}.state-badge{font-size:10px;padding:3px 7px;border-radius:5px;background:#e9e5ee;color:var(--green);white-space:nowrap}.state-badge.retry{background:#f6e9e4;color:var(--red)}.state-badge.assisted{background:#e8e2f0;color:#55426c}.kbd-note{font-size:12px;color:var(--muted);margin-bottom:10px}details.author-note{margin-top:28px;font-size:12px;color:var(--muted)}details.author-note summary{cursor:pointer;padding:8px 0}details.author-note p{padding:10px 0;line-height:1.9}#toast{position:fixed;left:50%;bottom:95px;transform:translateX(-50%);border-radius:12px;color:white;background:#372b45f5;padding:12px 20px;z-index:100;max-width:calc(100vw - 40px);text-align:center;opacity:0;transition:opacity .2s;pointer-events:none;font-size:13px}#toast.show{opacity:1}
dialog#reader{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#eae7ee;color:var(--ink);z-index:50}dialog::backdrop{background:#2e2637d9}.reader-head{height:64px;display:flex;align-items:center;gap:15px;padding:8px 18px;background:var(--white);border-bottom:1px solid var(--line)}.reader-head strong{font-size:14px;font-weight:500;flex:1}.reader-back{background:none;font-size:14px;padding:7px 0;color:var(--green);min-height:44px}.reader-toolbar{height:53px;background:#f4f1f7;display:flex;gap:9px;align-items:center;padding:6px 18px;border-bottom:1px solid var(--line)}.reader-toolbar button{min-width:37px;min-height:37px;border-radius:8px;background:white;font-size:16px}.reader-toolbar span{font-size:12px}.reader-toolbar .spacer{flex:1}#zoomReset{font-size:12px;min-width:48px}#readerViewport{height:calc(100dvh - 177px - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}#readerStage{min-width:100%;min-height:100%;position:relative;display:flex;align-items:flex-start;justify-content:center;padding:16px}#readerImage{display:block;max-width:none;box-shadow:0 2px 18px #2e253a12;background:white;object-fit:contain} .reader-foot{height:calc(60px + env(safe-area-inset-bottom));display:flex;gap:16px;align-items:center;justify-content:space-between;padding:10px 18px calc(10px + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.reader-foot select{max-width:60%;font-size:13px;border:1px solid var(--line);border-radius:8px;min-height:36px;background:var(--white);padding:4px 10px;color:var(--ink)}.reader-foot span{max-width:45%}
@keyframes enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(min-width:1100px){.bottom-nav{gap:30px}.chapter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.chapter-card{padding:22px 18px;grid-template-columns:38px 1fr 16px;gap:10px}.chapter-card h3{font-size:20px}}
@media(max-width:760px){.app-head{height:72px;padding:0 20px}.brand{font-size:17px}.brand-mark{height:38px;width:33px}#main{padding:22px 18px 110px}.hero{padding:26px 24px;border-radius:20px;grid-template-columns:1fr;gap:0}.hero-mark{display:none}.hero h1{font-size:28px;line-height:1.65}.hero p{font-size:15px;line-height:1.95}.hero .btn{width:100%;margin-top:20px}.summary-strip{margin:22px 0 28px;gap:6px}.summary-strip>div{display:block;font-size:10px}.summary-strip b{display:block;font-size:26px}.section-heading h2{font-size:22px}.section-heading p{font-size:11px}.chapter-grid,.library-grid,.chapter-columns{grid-template-columns:1fr}.chapter-card{padding:19px 18px;grid-template-columns:39px 1fr 20px;gap:12px}.chapter-card h3{font-size:21px}.chapter-card .genre{margin-bottom:5px}.chapter-card .chapter-status{margin-bottom:7px}.bottom-nav{justify-content:space-between;gap:0;padding-left:14px;padding-right:14px}.bottom-nav button{width:25%;max-width:105px}.chapter-heading h1{font-size:29px}.chapter-heading p{font-size:15px}.chapter-columns{gap:16px}.panel{padding:20px}.source-buttons .btn{flex:1;font-size:12px;padding:10px}.step-list{gap:10px;margin-top:20px}.step-card{padding:17px 14px}.step-card h3{font-size:18px}.step-card p{font-size:11px}.people{grid-template-columns:repeat(2,minmax(0,1fr))}.study-layout{display:flex;flex-direction:column;gap:16px}.passage-panel{position:static;width:100%;padding:15px 18px}.passage-top{margin-bottom:9px;font-size:11px}.quote-wrap{min-height:135px;padding:16px 8px;margin-bottom:10px}.quote{font-size:24px;line-height:1.75;max-height:220px;letter-spacing:.06em}.quote.horizontal{font-size:21px}.passage-panel>.btn{min-height:40px;padding:7px 16px;font-size:12px}.passage-panel details{margin-top:9px;font-size:12px}.passage-panel summary{min-height:29px}.study-head{margin-bottom:10px}.study-head h1{font-size:18px}.step-tabs{gap:5px;margin:16px 0}.step-tabs button{font-size:10px;padding:6px 10px;min-height:34px}.question-panel{padding:22px 19px;width:100%}.question-text{font-size:21px;line-height:1.85;margin-bottom:20px}.question-meta{font-size:10px}.option{font-size:16px;padding:13px;min-height:57px;gap:11px}.option .label{width:26px;height:26px}.question-actions{gap:10px;align-items:center}.question-actions .btn{padding:12px 20px}.hint-link{font-size:12px;white-space:nowrap}.model-answer{font-size:20px}.explanation{font-size:15px}.study-bottom .btn{min-width:140px}.record-grid{grid-template-columns:repeat(2,1fr);gap:10px}.record-stat{padding:18px}.finish{padding:27px 20px;margin:10px 0}.finish h1{font-size:25px}.finish-stats b{font-size:24px}.reader-head{padding:8px 12px;gap:10px}.reader-head strong{font-size:12px}.reader-toolbar{padding:6px 12px;gap:7px}.reader-foot{padding-left:12px;padding-right:12px;gap:8px}.reader-foot span{font-size:9px}body.large .question-text{font-size:24px}body.large .option{font-size:19px}body.large .explanation{font-size:18px}.foot-note{font-size:10px}}
@media(max-width:360px){#main{padding-left:13px;padding-right:13px}.hero{padding:23px 20px}.hero h1{font-size:25px}.option{font-size:15px}.step-tabs button{padding:6px 8px}.question-panel{padding:20px 16px}}

body.large .question-text{font-size:25px}body.large .option{font-size:19px}body.large .explanation{font-size:18px}body.large .model-answer{font-size:24px}body.large .quote{font-size:30px}

/* Original-image markers share the image coordinate system, including rotation. */
dialog#reader[open]{display:flex;flex-direction:column}.reader-head,.reader-toolbar,.reader-foot{flex-shrink:0}#readerViewport{height:auto;flex:1;min-height:0}#readerCanvas{isolation:isolate}#readerImage{position:absolute;inset:0;width:100%;height:100%;transform:none}#readerHighlights{position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply}.passage-marker{position:absolute;background:rgba(186,150,222,.46);border-radius:2px;box-shadow:inset 0 0 0 1px rgba(103,74,137,.18)}#readerFocusBar{flex-shrink:0;padding:9px 18px;background:#ede9f3;border-bottom:1px solid #c9badb;display:flex;align-items:center;justify-content:space-between;gap:12px}#readerFocusBar[hidden],#readerHighlights[hidden]{display:none}#readerFocusLabel{font-family:var(--serif);font-size:15px;line-height:1.65;overflow-wrap:anywhere;max-width:65%}.reader-focus-actions{display:flex;gap:8px;flex-shrink:0}.reader-focus-actions button{background:#fcfbfd;border:1px solid #ae9dc3;border-radius:8px;min-height:36px;padding:5px 10px;font-size:12px;color:#3a2d4a}@media(max-width:600px){#readerFocusBar{padding:8px 12px;display:block}#readerFocusLabel{display:block;max-width:none;font-size:13px;max-height:44px;overflow:auto;margin-bottom:6px}.reader-focus-actions{justify-content:flex-end}.reader-focus-actions button{font-size:11px;min-height:32px}}

.guide-entry{display:flex;align-items:center;justify-content:space-between;gap:15px;text-align:left;width:100%;padding:18px 22px;border-radius:14px;border:1px solid #c9c0d3;background:#ebe6f2;color:var(--green)}.guide-entry b{font-family:var(--serif);font-size:20px;font-weight:500}.guide-entry small{display:block;font-size:12px;color:#645b6f;margin-top:3px}.guide-entry>span:last-child{font-size:26px}.guide-question-link{display:block;text-align:left;font-size:12px;width:100%;margin-top:8px}.guide-content{max-width:1000px;margin:auto}.guide-heading{margin-bottom:22px}.guide-heading h1{font-size:34px;margin-bottom:7px}.guide-subtitle{font-family:var(--serif);font-size:19px;color:var(--green);margin-bottom:16px}.guide-heading>p:last-child{line-height:2;font-size:16px;max-width:850px}.guide-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}.guide-nav button{padding:9px 17px;background:#e7e2ed;border-radius:100px;color:#4f425f;font-size:13px;min-height:42px}.guide-nav button.active{background:var(--green);color:white}.guide-section{scroll-margin-top:20px;margin:0 0 36px}.guide-section>h2{margin-bottom:17px;font-size:25px}.guide-section .people{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.guide-section .person{background:var(--white);border:1px solid #d5cede;padding:20px}.guide-section .person p{font-size:14px;line-height:1.95}.guide-relations{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.guide-relations p{padding:12px 16px;border-radius:10px;background:#ece7f1;font-size:13px}.guide-relations b{display:block;font-weight:500}.guide-relations p>span{display:block;font-size:12px;color:var(--muted);margin-top:3px}.guide-flow{counter-reset:flow;list-style:none;padding:0;margin:0;display:grid;gap:11px}.guide-flow li{counter-increment:flow;display:grid;grid-template-columns:32px 1fr;gap:14px;align-items:baseline;padding:17px 21px;background:var(--white);border:1px solid var(--line);border-radius:12px;line-height:1.95;font-size:15px}.guide-flow li:before{content:counter(flow,decimal-leading-zero);font-family:var(--serif);font-size:21px;color:#6c5e7e}.guide-focus{display:grid;gap:12px}.guide-focus article{padding:23px 26px;background:#ece8f1;border-radius:14px}.guide-focus h3{font-size:21px;margin-bottom:9px}.guide-focus article>p:last-child{font-size:15px;line-height:2}.guide-focus-quote{font-family:var(--serif);font-size:18px;margin:5px 0 9px;color:#564868}.guide-expression-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.guide-expression{background:var(--white);padding:25px;border:1px solid var(--line);border-radius:16px;min-width:0}.guide-expression h3{font-size:21px;margin-bottom:15px}.guide-expression blockquote{margin:0 0 18px;font-family:var(--serif);font-size:22px;background:#eeeaf4;border-radius:9px;padding:14px 17px;line-height:1.85;overflow-wrap:anywhere}.guide-meaning,.guide-form{font-size:15px;line-height:1.95;white-space:pre-line;margin-bottom:12px}.guide-meaning>span,.guide-form>span{display:block;font-size:10px;letter-spacing:.12em;color:var(--muted);margin-bottom:3px}.guide-point{font-size:14px;line-height:2;color:#494054}.guide-card-links{display:flex;gap:0 16px;flex-wrap:wrap;margin-top:7px}.guide-card-links .source-link{font-size:11px;margin-top:7px}.guide-construction-heading{margin-top:32px}.guide-bottom{text-align:center;padding:5px 0 20px}#guideDialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;margin:0;border:0;background:var(--paper);color:var(--ink)}#guideDialog[open]{display:flex;flex-direction:column}#guideDialogBody{flex:1;overflow:auto;padding:28px 24px 50px;overscroll-behavior:contain}#guideDialog .reader-head{flex-shrink:0}body.large .guide-point,body.large .guide-meaning,body.large .guide-form,body.large .guide-focus article>p:last-child{font-size:18px}@media(max-width:760px){.guide-entry{padding:15px 18px}.guide-entry b{font-size:18px}.guide-entry small{font-size:11px}.guide-heading h1{font-size:30px}.guide-subtitle{font-size:17px}.guide-heading>p:last-child{font-size:15px}.guide-nav{gap:6px;margin-bottom:25px}.guide-nav button{font-size:11px;padding:8px 12px;min-height:38px}.guide-section{margin-bottom:30px}.guide-section>h2{font-size:23px}.guide-section .people{grid-template-columns:1fr 1fr;gap:10px}.guide-section .person{padding:15px}.guide-section .person b{font-size:18px}.guide-section .person p{font-size:13px;line-height:1.9}.guide-relations{grid-template-columns:1fr}.guide-focus article{padding:20px}.guide-focus h3{font-size:20px}.guide-expression-grid{grid-template-columns:1fr;gap:13px}.guide-expression{padding:21px}.guide-expression h3{font-size:20px}.guide-expression blockquote{font-size:21px}.guide-form,.guide-meaning{font-size:15px}.guide-point{font-size:14px}.guide-flow li{padding:16px;gap:9px;font-size:14px}#guideDialogBody{padding:22px 18px 40px}}

#main:focus{outline:none}body.large .guide-section .person p,body.large .guide-flow li,body.large .guide-heading>p:last-child{font-size:18px}@media(max-width:760px){.guide-section .person p{font-size:14px}}

/* Story illustrations: original-source reading remains separate from generated scenes. */
.art-window{position:relative;display:block;width:100%;overflow:hidden;isolation:isolate;background:#f8f6fa}.art-window img{position:absolute;max-width:none;display:block;mix-blend-mode:multiply}.chapter-card-art .art-window{border-radius:9px;background:#f3f0f7}.chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-card{grid-template-columns:148px minmax(0,1fr) 17px;gap:22px;padding:20px}.chapter-card h3{font-size:23px;line-height:1.45;margin:3px 0 10px}.chapter-card .genre{letter-spacing:.08em;margin:0 0 5px;font-size:10px;color:#746a80}.chapter-card-copy{min-width:0}.chapter-card .chapter-status{font-size:10px}.chapter-card-art{display:block;align-self:center}.chapter-heading{padding-bottom:20px}.chapter-heading h1{font-size:39px;letter-spacing:.08em}.chapter-opening{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr);align-items:center;gap:30px;margin:0 0 28px}.chapter-opening-copy p{font-family:var(--serif);font-size:17px;line-height:2.2}.story-figure{margin:0;min-width:0}.story-art-button{display:block;position:relative;width:100%;padding:0;background:none;border-radius:14px;overflow:hidden;cursor:zoom-in}.story-art-button .scene-art{background:#f4f1f8}.story-figure figcaption{font-family:var(--serif);font-size:14px;line-height:1.9;color:#574e63;margin:12px 4px 0}.story-figure figcaption small{display:block;font-family:var(--sans);font-size:9px;color:#867d90;letter-spacing:.08em;margin-top:4px}.art-expand{display:grid;place-items:center;position:absolute;right:10px;bottom:10px;width:29px;height:29px;border-radius:50%;background:#fcfbfde8;color:#554964;font-size:20px;line-height:1;box-shadow:0 1px 6px #31283d20}.chapter-columns{grid-template-columns:1.3fr .7fr;gap:20px}.people-illustrated{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.people-illustrated .person{display:flex;gap:16px;align-items:flex-start;padding:17px 15px;background:#fcfcfd;border:1px solid #dcd6e3;border-radius:15px;min-width:0}.portrait-art{width:76px;flex:0 0 76px;border-radius:16px;background:#eee9f3}.person-copy{min-width:0;flex:1}.people-illustrated .person b{font-size:18px;line-height:1.6;margin:0 0 6px}.people-illustrated .person p{font-size:13px;line-height:1.95;color:#605a68}.guide-heading h1{font-size:38px}.guide-heading .guide-subtitle{color:#6b5b7e;font-size:18px;letter-spacing:.04em;margin-bottom:22px}.guide-opening{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}.guide-opening>p{font-family:var(--serif);font-size:17px;line-height:2.1}.guide-opening .story-figure figcaption{font-size:13px}.guide-nav{position:sticky;top:0;z-index:4;padding:12px 0;background:var(--paper);margin:12px 0 24px;box-shadow:0 7px 12px var(--paper)}.guide-nav button{background:#e6dfee}.guide-section{scroll-margin-top:78px}.guide-section .people-illustrated{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.guide-section .people-illustrated .person{padding:20px}.guide-section .portrait-art{width:94px;flex-basis:94px}.guide-section .people-illustrated .person b{font-size:20px}.guide-section .people-illustrated .person p{font-size:15px;line-height:2}.guide-relations{gap:8px}.guide-relations p{background:#ece7f1}.guide-flow li{padding:20px 24px;border-color:#dcd7e3;box-shadow:0 3px 14px #2e263703}.guide-flow li:before{font-size:23px;color:#7e639f}.guide-focus article{background:#ece7f1}.guide-expression{border-color:#d7d0df;box-shadow:0 5px 22px #382e4404}.guide-expression blockquote{background:#ece7f3}.study-scene{margin-top:13px}.study-scene .story-figure figcaption{font-size:12px}.study-scene .story-figure figcaption small{display:none}.people-compact{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}.people-compact .person{display:flex;gap:12px;align-items:flex-start;padding:13px 0;background:none;border-radius:0;border-bottom:1px solid #e3dfe9}.people-compact .person:last-child{border:0}.portrait-art.compact{width:52px;flex-basis:52px;border-radius:12px}.people-compact .person b{font-size:15px;margin-bottom:4px}.people-compact .person p{font-size:12px;line-height:1.9;margin-top:0}.study-scene .art-expand{width:24px;height:24px;font-size:17px}.chapter-columns .reading-keys li{font-size:13px;line-height:2}.chapter-columns .panel{padding:22px}#illustrationDialog{position:fixed;inset:0;width:min(100%,1100px);height:100%;max-height:100%;margin:auto;padding:0;border:0;background:var(--paper);color:var(--ink)}#illustrationDialog[open]{display:flex;flex-direction:column}#illustrationBody{flex:1;overflow:auto;min-height:0;overscroll-behavior:contain;padding:20px 28px 35px}#illustrationBody figure{margin:0}#illustrationBody img{display:block;width:100%;height:auto;mix-blend-mode:multiply}#illustrationBody figcaption{font-size:14px;line-height:2;margin-top:15px}.art-cast-legend{display:flex;flex-wrap:wrap;gap:5px 20px;margin-top:14px;color:#584d65;font-size:12px}body.large .people-illustrated .person p,body.large .guide-opening>p,body.large .chapter-opening-copy p{font-size:18px}@media(max-width:1000px){.chapter-columns{grid-template-columns:1fr}.chapter-columns .people-illustrated{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-card{grid-template-columns:108px minmax(0,1fr) 14px;gap:16px}.chapter-card h3{font-size:21px}}@media(max-width:760px){.chapter-grid{grid-template-columns:1fr;gap:13px}.chapter-card{grid-template-columns:100px minmax(0,1fr) 10px;padding:16px 14px;gap:13px;border-color:#d7d1de;border-radius:16px}.chapter-card h3{font-size:21px;margin:3px 0 8px;letter-spacing:.01em}.chapter-card .genre{font-size:9px;margin-bottom:4px;letter-spacing:.03em}.chapter-card .chapter-status{font-size:9px;gap:6px}.chapter-card-art .art-window{border-radius:8px}.chapter-heading h1{font-size:32px}.chapter-opening,.guide-opening{grid-template-columns:1fr;gap:18px;margin-bottom:24px}.chapter-opening-copy p,.guide-opening>p{font-size:16px;line-height:2.05}.story-figure figcaption{font-size:13px;margin-top:10px}.story-art-button{border-radius:12px}.chapter-columns{gap:18px}.chapter-columns .people-illustrated,.guide-section .people-illustrated{grid-template-columns:1fr;gap:11px}.people-illustrated .person,.guide-section .people-illustrated .person{gap:17px;padding:18px 16px}.portrait-art,.guide-section .portrait-art{width:82px;flex-basis:82px;border-radius:15px}.people-illustrated .person b,.guide-section .people-illustrated .person b{font-size:19px;line-height:1.55}.people-illustrated .person p,.guide-section .people-illustrated .person p{font-size:14px;line-height:1.95}.guide-heading h1{font-size:32px}.guide-heading .guide-subtitle{font-size:16px;margin-bottom:20px}.guide-nav{gap:6px;padding:10px 0;margin:4px 0 24px}.guide-nav button{font-size:11px;padding:8px 12px}.guide-section{scroll-margin-top:73px}.guide-opening .story-figure figcaption{font-size:13px}.guide-flow li{padding:17px 18px;font-size:15px;gap:13px}.guide-section>h2{margin-bottom:17px;font-size:24px}.guide-expression{border-radius:16px}.people-compact .portrait-art{width:52px;flex-basis:52px}.people-compact .person p{font-size:12px}.chapter-columns .panel{padding:19px}#illustrationBody{padding:14px 14px 30px}.art-cast-legend{gap:5px 13px;font-size:11px}#illustrationBody figcaption{font-size:13px}.chapter-card .chevron{font-size:20px}}
/* Reading support: explicit controls, passage-linked cast, compact mobile learning path. */
.font-control{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:84px;min-height:48px;padding:6px 10px;border:1px solid #cdc6d5;border-radius:12px;background:#eee9f3;line-height:1.4;flex-shrink:0}.font-control span{font-size:11px;color:#5c5169}.font-control b{font-size:13px;font-weight:600}.font-control[aria-pressed=true]{border-color:var(--green);background:#e2daeb}.app-head{gap:12px}.brand{min-width:0}.art-expand{width:auto;min-width:42px;padding:4px 9px;border-radius:8px;font-size:11px;font-family:var(--sans);height:28px}.scene-source{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;margin-top:10px;padding:8px 12px;border-radius:10px;border:1px solid #d5cedd;background:#ede8f3;color:var(--green);font-family:var(--sans);font-size:12px;text-align:left}.person-references{margin-top:12px}.person-references>small{display:block;margin-bottom:6px;color:#746b80;font-size:10px}.person-references>div{display:flex;flex-wrap:wrap;gap:7px}.reference-chip{padding:7px 9px;min-height:36px;max-width:100%;border:1px solid #d7d0df;border-radius:8px;background:#f0ebf5;color:#3f3151;font-size:12px;text-align:left;line-height:1.7;overflow-wrap:anywhere}.person-source{display:block;margin-top:8px;padding:7px 0;min-height:40px;background:none;color:var(--green);font-size:11px;text-align:left;line-height:1.8}.people-illustrated .person p.person-note,.people-compact .person p.person-note{margin-top:10px;font-size:11px;line-height:1.85;color:#5f4a78}.people-illustrated .person{align-items:flex-start}.visual-relations{display:grid;grid-template-columns:1fr;gap:12px;margin-top:22px}.relation-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 15px;background:#eee9f3;padding:15px;border-radius:12px}.relation-person{display:flex;align-items:center;gap:8px;min-width:0}.relation-person:first-child{grid-column:1;grid-row:1}.relation-person:last-child{grid-column:2;grid-row:1}.relation-person .portrait-art.compact{width:36px;flex-basis:36px;border-radius:8px}.relation-person b{font-size:12px;font-weight:500;line-height:1.7}.relation-card>p{grid-row:2;grid-column:1/-1;font-size:12px;color:#655b71;line-height:1.85}.chapter-learn-actions{display:grid;gap:12px;margin:20px 0 22px}.chapter-learn-actions .guide-entry{margin:0}.chapter-prep{border:1px solid #d6cfde;border-radius:14px;background:#fcfcfd;margin:20px 0 26px;overflow:hidden}.chapter-prep>summary{cursor:pointer;padding:16px 20px;font-size:14px;line-height:1.8;color:var(--green);min-height:54px}.chapter-prep>summary>span{float:right;margin-left:12px;font-size:11px;color:var(--muted)}.chapter-prep .chapter-columns{padding:0 14px 14px;gap:14px}.chapter-prep .panel{border:0;padding:14px 7px}.chapter-prep .people-illustrated{grid-template-columns:1fr}.step-heading{margin-top:26px;margin-bottom:14px}.step-list{margin-top:0}.option>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.people-compact .person-references>div{gap:6px}.people-compact .reference-chip{font-size:11px;min-height:35px}.people-compact .person-copy{min-width:0}.study-scene .scene-source{font-size:11px}.guide-flow li,.guide-focus article,.guide-expression{min-width:0;overflow-wrap:anywhere}body.large .question-text{font-size:27px}body.large .option{font-size:20px}body.large .explanation{font-size:18px}body.large .model-answer{font-size:25px}body.large .quote{font-size:30px}body.large .quote.horizontal{font-size:25px}body.large .guide-flow li,body.large .guide-focus p,body.large .guide-expression p,body.large .hint-box{font-size:18px}body.large .people-compact .person p{font-size:15px}body.large .reference-chip{font-size:14px}body.large .reading-keys li{font-size:17px}
@media(max-width:760px){.app-head{padding:0 15px}.brand{font-size:16px;gap:9px}.brand small{font-size:9px}.font-control{min-width:80px;padding:6px 8px}.chapter-heading h1,.guide-heading h1{font-size:29px;overflow-wrap:anywhere}.chapter-heading{padding-bottom:14px}.chapter-opening{gap:14px;margin-bottom:18px}.chapter-opening-copy p{font-size:15px;line-height:1.95}.scene-source{margin-top:8px;font-size:12px}.chapter-learn-actions{margin-top:16px}.chapter-prep>summary{padding:14px 15px;font-size:13px}.chapter-prep .chapter-columns{padding:0 9px 10px}.people-illustrated .person,.guide-section .people-illustrated .person{padding:16px 13px;gap:13px}.portrait-art,.guide-section .portrait-art{width:72px;flex-basis:72px}.person-references{margin-top:10px}.reference-chip{padding:7px 8px;min-height:38px}.guide-nav{overflow-x:auto;flex-wrap:nowrap;gap:5px;padding:8px 0}.guide-nav button{white-space:nowrap;flex-shrink:0;font-size:11px;padding:8px 10px;min-height:40px}.guide-content{min-width:0}.guide-section{scroll-margin-top:65px}.guide-question-link{font-size:12px;margin-top:6px;min-height:40px}.passage-panel .quote-wrap{min-height:95px;padding:14px 8px}.passage-panel .quote{max-height:170px;font-size:24px;line-height:1.8;letter-spacing:.03em}.passage-panel .quote.horizontal{font-size:21px;max-height:none}.passage-panel details{margin-top:7px}.passage-panel details>summary{min-height:38px;padding:6px 0}.question-text{font-size:22px;margin-bottom:20px}.question-panel{padding:22px 19px}.study-bottom{gap:10px}.study-bottom .btn{font-size:12px;padding:10px 14px}.relation-card{padding:12px;gap:9px}.relation-person{gap:6px}.relation-person b{font-size:11px}.relation-person .portrait-art.compact{width:30px;flex-basis:30px}.art-expand{font-size:10px;min-width:38px;width:auto}.study-scene .art-expand{width:auto;font-size:10px}body.large .passage-panel .quote{font-size:28px;max-height:195px}body.large .passage-panel .quote.horizontal{font-size:24px;max-height:none}body.large .question-text{font-size:25px}body.large .people-illustrated .person p.person-note{font-size:13px}}
@media(max-width:380px){#main{padding-left:14px;padding-right:14px}.chapter-card{grid-template-columns:85px minmax(0,1fr) 10px;gap:10px;padding:14px 11px}.chapter-card h3{font-size:20px}.brand{font-size:15px}.brand-mark{width:30px}.font-control{min-width:76px}.step-card h3{font-size:17px}.grade-buttons{flex-direction:column}.people-illustrated .person b,.guide-section .people-illustrated .person b{font-size:18px}}
.chapter-overview>summary{cursor:pointer;font-size:14px;color:var(--green);min-height:44px;padding:10px 0}.chapter-overview[open]>p{margin-top:6px}.chapter-overview{align-self:center}@media(max-width:760px){.chapter-overview>summary{font-size:13px;padding:5px 0;min-height:34px}.chapter-opening{gap:8px}.chapter-opening-copy p{font-size:15px}.chapter-learn-actions{margin-top:12px}}
/* Original-booklet practice uses original cropped pages and separate answer controls. */
.booklet-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;margin:20px 0 26px;background:#e8e2ef;border-radius:16px;border:1px solid #cec5da;text-align:left}.booklet-entry>div>span,.booklet-kicker{font-family:var(--sans);font-size:11px;color:#604f75;letter-spacing:.07em}.booklet-entry h2{font-size:23px;margin:5px 0}.booklet-entry p{font-size:12px;color:var(--muted)}.booklet-entry .btn{flex-shrink:0}.finish-actions .booklet-entry{margin:0;display:block;text-align:center}.finish-actions .booklet-entry .btn{margin-top:14px;width:100%}.booklet-overview{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0;color:var(--muted);font-size:13px}.booklet-overview b{font-size:27px;font-family:var(--serif);color:var(--green);font-weight:500}.booklet-start{display:flex;gap:12px;margin-bottom:24px}.booklet-group-list{display:grid;gap:10px;margin-bottom:25px}.booklet-group-list>button{display:grid;grid-template-columns:minmax(0,1fr) auto 16px;gap:15px;align-items:center;text-align:left;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--white)}.booklet-group-list>button>span:first-child{display:flex;gap:15px;align-items:baseline}.booklet-group-list b{font-family:var(--serif);font-size:20px;white-space:nowrap}.booklet-group-list small{color:var(--muted);font-size:11px}.booklet-group-list>button>span:first-child>span{font-size:14px}.booklet-note{font-size:12px;color:var(--muted);margin-top:25px;line-height:1.9}.booklet-exercise-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:18px 0}.booklet-exercise-head p{font-size:12px;color:var(--muted);margin-bottom:5px}.booklet-exercise-head h1{font-size:29px;letter-spacing:.01em}.booklet-exercise-head h1 span{font-size:18px}.booklet-exercise-head>span{font-size:12px;color:var(--muted);white-space:nowrap}.booklet-tools{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px;position:sticky;top:0;z-index:3;padding:9px 0;background:var(--paper)}.booklet-tools button{padding:8px 13px;min-height:42px;border:1px solid #cbc2d6;border-radius:9px;background:#fcfcfd;color:var(--green);font-size:12px}.booklet-exercise-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:start;gap:24px}.booklet-original,.booklet-paper-stack{min-width:0}.booklet-paper-stack figure{margin:0 0 20px}.booklet-paper{width:100%;overflow:auto;background:white;border-radius:10px;box-shadow:0 2px 15px #2c243509;-webkit-overflow-scrolling:touch}.booklet-paper img{display:block;width:100%;height:auto;max-width:none}.booklet-paper-stack.zoomed .booklet-paper img{width:200%}.booklet-paper-stack figcaption{font-size:10px;color:var(--muted);padding:6px 4px}.booklet-answers{min-width:0;scroll-margin-top:115px}.booklet-answers>h2{font-size:22px;margin-bottom:8px}.booklet-answer-instruction{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:10px}.booklet-field{padding:20px 0;border-top:1px solid #e0dce6}.booklet-field>label{display:block;font-family:var(--serif);font-size:19px;margin-bottom:14px;line-height:1.8}.booklet-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.booklet-choices.many{grid-template-columns:repeat(4,minmax(0,1fr))}.booklet-choices button{min-height:49px;min-width:0;border-radius:10px;border:1px solid #ccc5d4;background:#fcfcfd;font-size:20px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 4px}.booklet-choices button.selected{background:#e7e0ef;border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.booklet-choices button.correct{border-color:#604f74;background:#e9e3f0;opacity:1}.booklet-choices button.wrong{border-color:#b16e6c;background:#f8eae5;opacity:1}.booklet-choices small{font-size:9px;line-height:1.3;color:var(--green)}.booklet-choices button:disabled{opacity:.8}.booklet-field-feedback:empty{display:none}.booklet-field-feedback{padding-top:18px}.booklet-result{font-size:13px;color:#524069;margin-bottom:15px;font-weight:600}.booklet-result.retry{color:var(--red)}.booklet-field .model-answer{font-size:21px;line-height:1.9}.booklet-field .explanation{font-size:14px;line-height:2}.booklet-self-grade{display:flex;gap:7px;flex-wrap:wrap;margin-top:17px}.booklet-self-grade button{border:1px solid #ccc5d4;border-radius:9px;background:white;font-size:12px;min-height:44px;padding:8px 12px}.booklet-self-grade button.active{color:white;background:var(--green);border-color:var(--green);opacity:1}#bookletGrading{font-size:12px;line-height:1.8;color:var(--muted);margin-top:14px}.booklet-records{margin-top:24px}.booklet-record-row{display:flex;justify-content:space-between;gap:18px;text-align:left;min-height:48px;padding:12px 0;border-bottom:1px solid #e3deea;background:none;font-size:13px}.booklet-record-row small{white-space:nowrap}.booklet-review-switch{display:block;margin:0 0 22px;min-height:44px;font-size:13px;background:#e6e0ee;color:var(--green);border-radius:10px;padding:10px 16px}body.large .booklet-field>label{font-size:22px}body.large .booklet-field .explanation{font-size:18px}body.large .booklet-field .model-answer{font-size:24px}
@media(max-width:850px){.booklet-exercise-layout{grid-template-columns:1fr;gap:8px}.booklet-original{max-width:650px;margin:auto;width:100%}.booklet-entry{padding:19px 18px;gap:12px}.booklet-entry h2{font-size:21px}.booklet-entry .btn{font-size:12px;padding:10px 15px}}
@media(max-width:500px){.booklet-entry{display:block}.booklet-entry .btn{width:100%;margin-top:13px;font-size:14px}.booklet-group-list>button{padding:15px 14px;gap:8px;grid-template-columns:minmax(0,1fr) auto 10px}.booklet-group-list>button>span:first-child{display:block}.booklet-group-list>button>span:first-child>span{display:block;font-size:12px;margin-top:4px}.booklet-exercise-head{align-items:flex-start;gap:8px}.booklet-exercise-head h1{font-size:26px}.booklet-exercise-head h1 span{font-size:17px;display:block;margin-top:4px}.booklet-exercise-head>span{padding-top:5px;font-size:11px}.booklet-tools{gap:6px;margin:10px 0 16px;padding:7px 0}.booklet-tools button{font-size:11px;padding:8px 10px}.booklet-answers{padding:22px 18px}.booklet-start .btn{flex:1;font-size:12px;padding:10px 14px}.booklet-choices{gap:7px}.booklet-choices button{min-height:50px}.booklet-self-grade{flex-direction:column}.booklet-overview{font-size:11px;gap:9px}.booklet-field .answer-input{min-height:130px}}
.booklet-answer-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:8px}.booklet-answer-heading h2{margin:0}.booklet-answer-heading .text-btn{font-size:11px;white-space:nowrap}.booklet-original{scroll-margin-top:115px}
.booklet-paper img{width:min(100%,var(--paper-width));margin:0 auto}.booklet-paper-stack.zoomed .booklet-paper img{width:calc(var(--paper-width)*2);margin:0 auto;max-width:none}
.booklet-choices,.booklet-choices.many{grid-template-columns:repeat(var(--choice-cols,5),minmax(0,1fr))}
/* Calm wisteria palette and focused recovery from booklet mistakes. */
.learning-feedback{margin:18px 0 8px;padding:17px;background:var(--sage);border-radius:12px;font-size:14px;line-height:1.9}.learning-feedback p+p{margin-top:12px}.learning-feedback p>b{display:block;color:var(--green);font-size:12px;margin-bottom:5px}.learning-feedback .source-link{display:block;overflow-wrap:anywhere}.learning-prep-list{display:grid;gap:9px;margin-top:12px}.learning-prep-link{text-align:left;display:grid;gap:5px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--white);min-height:48px;overflow-wrap:anywhere}.learning-prep-link b{font-size:13px;color:var(--green)}.learning-prep-link span{font-family:var(--serif);font-size:17px}.learning-prep-link small{color:var(--green)}#bookletGrading .text-btn{display:block}#learningDialog{position:fixed;inset:12px;width:min(700px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line);border-radius:18px;color:var(--ink);background:var(--white);overflow:auto}#learningDialog .reader-head{height:auto;min-height:64px;position:sticky;top:0;z-index:1;flex-wrap:wrap}#learningBody{padding:25px}#learningBody h2{font-size:22px;margin:20px 0;line-height:1.8}#learningBody .options .option{font-size:17px}.learning-quote{font-family:var(--serif);font-size:24px;line-height:1.9;margin:15px 0;padding:20px;background:var(--sage);border-radius:12px}.booklet-review-section{padding:24px 0;border-bottom:1px solid var(--line)}.booklet-review-section .guide-entry{margin:10px 0}.booklet-mobile-tabs{display:none}.booklet-answers{min-width:0}.booklet-field>.source-link{display:block;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.booklet-note{overflow-wrap:anywhere}
@media(max-width:760px){.booklet-mobile-tabs{display:flex;position:sticky;top:0;z-index:4;gap:7px;background:var(--paper);padding:10px 0;margin-bottom:12px}.booklet-mobile-tabs button{flex:1;min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--green);font-size:14px}.booklet-mobile-tabs button[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}.booklet-exercise-layout[data-view=question]>.booklet-answers{display:none}.booklet-exercise-layout[data-view=answer]>.booklet-original{display:none}.booklet-original{max-height:calc(100svh - 160px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.booklet-paper-stack figure{margin-bottom:12px}.booklet-exercise-layout[data-view=answer]>.booklet-answers{display:block;width:100%}#learningBody{padding:20px}.learning-feedback{padding:14px}.learning-quote{font-size:22px;padding:16px}.booklet-tools{gap:6px}.booklet-tools button{font-size:12px}}
@media(max-width:760px){.booklet-tools [data-booklet-action="answer-jump"],.booklet-answer-heading [data-booklet-action="question-jump"]{display:none}.booklet-mobile-tabs{scroll-margin-top:0}}
@media(max-width:760px){.booklet-tools{position:static}.learning-feedback{font-size:15px}}body.large .learning-feedback{font-size:16px}body.large #learningBody .option{font-size:19px}

.brand-mark{width:42px;height:42px;border-radius:10px;overflow:hidden;background:none;flex-shrink:0}.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}@media(max-width:760px){.brand-mark{width:38px;height:38px;border-radius:9px}}
/* Original questions, continuation choices and answer controls stay together. */
.booklet-mobile-tabs{display:none!important}.booklet-original{min-width:0;max-width:100%;overflow:auto;background:var(--white);border-radius:14px}.booklet-paper-stack{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:16px;min-width:max-content;padding:12px}.booklet-paper-stack figure{flex:0 0 auto;width:max(100px,var(--paper-width));margin:0}.booklet-paper{overflow:visible;max-width:none;border-radius:0;background:none}.booklet-paper img{width:var(--paper-width);max-width:none;display:block;height:auto;margin:0 auto}.booklet-paper-stack.zoomed figure{width:max(100px,calc(var(--paper-width)*2))}.booklet-paper-stack.zoomed .booklet-paper img{width:calc(var(--paper-width)*2)}.booklet-paper-stack figcaption{font-size:10px;line-height:1.6;white-space:normal;margin-top:9px;overflow-wrap:anywhere}.booklet-answer-dock{display:none}.booklet-answer-dock[hidden]{display:none!important}.booklet-compact{padding:10px 12px;background:var(--white);min-width:0}.booklet-compact-head{display:flex;align-items:center;gap:8px;margin-bottom:7px;font-size:12px;line-height:1.5}.booklet-compact-head label{display:flex;align-items:center;gap:7px;flex:1;min-width:0}.booklet-compact-head select{min-width:0;width:100%;max-width:240px;font-size:14px;min-height:36px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}.booklet-compact-head small{margin-left:auto;white-space:nowrap;color:var(--muted);font-size:11px}.booklet-compact-head>button{background:var(--sage);color:var(--green);border-radius:8px;min-height:36px;padding:5px 10px;white-space:nowrap;font-size:12px}.booklet-compact .booklet-choices{grid-template-columns:repeat(var(--compact-cols),minmax(0,1fr));gap:6px;margin:0}.booklet-compact .booklet-choices button{min-height:42px;padding:5px;font-size:17px}.booklet-compact .answer-input{min-height:64px;height:64px;padding:8px 10px;font-size:17px;resize:vertical}.booklet-compact-submit{min-height:38px;font-size:12px;padding:7px 12px;width:100%;margin-top:8px}.booklet-answers{scroll-margin-top:20px}
#bookletReaderWorkspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);flex:1;min-height:0;overflow:hidden}#bookletReaderWorkspace #readerViewport{height:100%;min-width:0;min-height:0}#bookletReaderReference{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--white);border-left:1px solid var(--line);overflow:hidden}.booklet-reference-heading{padding:9px 13px;background:var(--sage);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0;font-size:12px;line-height:1.5}.booklet-reference-heading span{font-size:10px;white-space:nowrap;color:var(--green)}.booklet-reference-images{min-height:0;min-width:0;overflow:auto;flex:1;overscroll-behavior:contain}.booklet-reference-images .booklet-paper-stack{padding:10px}.booklet-reference-images img{width:var(--paper-width);max-width:none}#bookletReferenceAnswers{flex-shrink:0;border-top:1px solid var(--line);max-height:45%;overflow:auto}
@media(max-width:850px){.booklet-answer-dock{display:block;position:fixed;bottom:calc(72px + env(safe-area-inset-bottom));left:0;right:0;z-index:22;border-top:1px solid var(--line);box-shadow:0 -4px 20px #302b3810;max-height:42dvh;overflow:auto}.booklet-answer-dock .booklet-compact{max-width:650px;margin:auto}#main:has(.booklet-answer-dock:not([hidden])){padding-bottom:350px}.booklet-original{max-height:60svh;scroll-margin-top:15px;overscroll-behavior:contain}.booklet-tools [data-booklet-action="answer-jump"]{display:none}.booklet-exercise-layout>.booklet-answers{display:block!important;width:100%;margin-top:14px}.booklet-answer-heading [data-booklet-action="question-jump"]{display:inline-flex}.booklet-tools{position:static}}
@media(max-width:700px) and (min-height:600px){#bookletReaderWorkspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(100px,1fr) minmax(170px,1.15fr)}#bookletReaderReference{border-left:0;border-top:1px solid var(--line)}#bookletReferenceAnswers{max-height:65%}.booklet-reference-heading{padding:6px 10px;font-size:11px}.booklet-reference-heading span{font-size:9px}#reader.booklet-linked-reader .reader-head{height:48px}#reader.booklet-linked-reader .reader-toolbar{height:45px;padding:4px 10px;gap:6px}#reader.booklet-linked-reader #readerFocusBar{padding:5px 10px}#reader.booklet-linked-reader #readerFocusLabel{margin-bottom:3px;font-size:12px;max-height:24px}#reader.booklet-linked-reader .reader-foot{height:calc(46px + env(safe-area-inset-bottom));padding:5px 10px calc(5px + env(safe-area-inset-bottom))}#reader.booklet-linked-reader .reader-foot span{display:none}#reader.booklet-linked-reader .reader-foot select{max-width:100%}}
.booklet-compact-head label>span{white-space:nowrap;flex-shrink:0}

@media(max-width:850px){.booklet-tools [data-booklet-action="answer-jump"]{display:inline-flex}}.booklet-reference-heading .text-btn{font-size:12px;min-height:32px;padding:3px 9px;flex-shrink:0}

/* Continuous book commentary, compact controls and source references. */
#bookTextDialog{position:fixed;inset:0;margin:0;padding:0;width:100%;height:100%;max-width:none;max-height:none;border:0;color:var(--ink);background:var(--paper)}
#bookTextDialog[open]{display:flex;flex-direction:column}
.book-text-head{display:flex;align-items:center;gap:16px;min-height:62px;padding:8px 24px;background:var(--white);border-bottom:1px solid var(--line);flex-shrink:0}
.book-text-head h1{flex:1;min-width:0;font-family:var(--serif);font-size:21px;font-weight:500;margin:0;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.book-text-head button{min-height:44px;flex-shrink:0}
.book-text-tools{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px;min-height:46px;background:#f0ecf5;flex-shrink:0}
#bookTextLocation{font-size:12px;color:#675275;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#bookTextMenu{flex-shrink:0}
#bookTextMenu>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:7px;font-size:14px;color:#57426e;list-style:none;padding:0 10px}
#bookTextMenu>summary::-webkit-details-marker{display:none}
#bookTextMenu>summary:after{content:'⌄'}#bookTextMenu[open]>summary:after{content:'⌃'}
.book-text-menu-body{position:absolute;right:18px;top:100%;width:min(480px,calc(100vw - 36px));max-height:calc(100dvh - 150px);overflow:auto;padding:18px;background:var(--white);border:1px solid #d8cee2;border-radius:0 0 12px 12px;box-shadow:0 12px 24px #4632531a;z-index:2}
.book-text-menu-body label{display:grid;gap:6px;font-size:12px;margin-top:16px;color:var(--muted)}
.book-text-menu-body select{width:100%;min-width:0;max-width:100%;font:inherit;font-size:15px;padding:10px;background:var(--white);color:var(--ink);border:1px solid #cdc3d8;border-radius:8px;min-height:44px}
#bookTextNav{display:flex;flex-wrap:wrap;gap:7px}
#bookTextNav button{background:#f0ecf5;border-radius:22px;padding:9px 14px;min-height:44px;font-size:13px;color:#57426e}
#bookTextBody{position:relative;min-height:0;min-width:0;flex:1;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.book-text-document{max-width:760px;margin:auto;padding:32px 30px calc(70px + env(safe-area-inset-bottom));overflow-wrap:anywhere;line-break:strict}
.book-text-section{margin:0 0 48px;outline:none}
.book-text-section h2{font-size:23px;line-height:1.6;margin:0 0 8px;font-family:var(--serif);font-weight:600;color:#57416d}
.book-text-section p{font-size:18px;line-height:2;letter-spacing:.025em;margin:0 0 19px;font-family:var(--serif)}
.book-text-section .book-text-ref{font-family:inherit;font-size:11px;line-height:1.6;letter-spacing:0;color:var(--muted);margin-bottom:23px}
.book-text-section .book-text-target-label{display:inline-block;font-family:inherit;font-size:12px;padding:4px 10px;background:#e6ddee;border-radius:5px;margin-bottom:10px;letter-spacing:0;line-height:1.6;color:#57416d}
.book-text-target h2{background:#eae3f1;border-radius:6px;padding:8px 12px;margin-left:-12px;margin-right:-12px}
.book-text-focus-word{background:#e3d7ef;color:inherit;border-radius:3px;padding:1px 2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.book-text-section .book-text-point{background:#eeebf4;border-radius:9px;padding:16px 18px}
.book-text-correct,.book-text-key p{color:#a43737;font-weight:600}
.book-text-answers{margin:30px 0;padding:18px 20px;border:1px solid var(--line);border-radius:10px;background:var(--white)}
.book-text-answers>summary{font-size:15px;cursor:pointer;min-height:30px;color:#675275}
.book-text-answers[open]>summary{margin-bottom:25px}.book-text-answers .book-text-section{margin-bottom:0}
.book-text-editorial{background:#f0ecf5;border-radius:10px;padding:20px}.book-text-editorial h2{font-size:18px}.book-text-editorial p{font-size:15px}
.book-text-source{font-size:12px;color:var(--muted);line-height:1.8;margin:40px 0 0}.book-text-source>summary{cursor:pointer;min-height:35px}.book-text-source>p{margin-top:12px}
body.large .book-text-section p{font-size:21px}body.large .book-text-section h2{font-size:25px}body.large .book-text-section .book-text-ref{font-size:12px}body.large .book-text-section .book-text-target-label{font-size:13px}
@media(max-width:600px){.book-text-head{gap:8px;padding:6px 14px;min-height:54px}.book-text-head h1{font-size:16px}.book-text-head .reader-back{font-size:14px;padding:4px 0}.book-text-head .text-btn{font-size:12px;padding:4px 0}.book-text-tools{padding:0 14px;min-height:44px}.book-text-document{padding:25px 23px 65px}.book-text-section{margin-bottom:36px}.book-text-section h2{font-size:21px}.book-text-section p{font-size:18px;line-height:1.95}.book-text-section .book-text-ref{font-size:11px}.book-text-answers{padding:16px}.book-text-section .book-text-point{padding:13px 15px}}
