.research-heading{max-width:850px;margin:30px 0}.research-heading h1{font:clamp(2.6rem,7vw,4.5rem)/1.2 var(--serif);margin:12px 0}.research-heading>p{font-size:1.125rem}.research-progress{margin:24px 0;max-width:700px}.research-progress strong{display:block;font:2.7rem/1.2 var(--serif);font-variant-numeric:tabular-nums}.research-progress small{font:1rem var(--sans)}.research-progress progress{width:100%;height:7px;accent-color:#315b52;display:block;margin:14px 0}.research-progress p{font-size:1rem;line-height:1.75}.research-instructions{border-block:1px solid var(--line);padding:18px 0;margin:26px 0}.research-instructions summary{font:1.1rem var(--serif);cursor:pointer}.research-instructions p{max-width:760px;font-size:1rem;line-height:1.9}.research-instructions label{display:flex;gap:12px;align-items:center;font-size:1rem}.research-instructions input{width:22px;height:22px;accent-color:#315b52}.research-tools{display:flex;gap:20px;flex-wrap:wrap;margin:30px 0 12px}.research-tools label{display:grid;gap:8px;font-size:.875rem;flex:1;min-width:160px}.research-tools input,.research-tools select{width:100%;min-height:46px;border:1px solid #a6b2ac;border-radius:0;background:#fff;padding:10px 12px;color:#243f38;font:1rem var(--sans)}.research-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}.research-card{min-width:0;padding:24px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.research-card>small{font-size:.875rem;color:#52645d}.research-card h3{font:1.2rem/1.7 var(--serif);margin:12px 0 18px}.research-card.is-complete>small{color:#245b48}.research-card.is-locked{color:#737c77;min-height:125px}.research-card.is-locked p{font-size:1rem;line-height:1.75}.research-card-actions{display:flex;flex-wrap:wrap;gap:8px}.research-card-actions button,.research-confirm button{background:transparent;border:1px solid #9aaea3;padding:10px 12px;font: .875rem/1.4 var(--sans);min-height:44px;border-radius:0;color:#284b40}.research-card-actions button[aria-pressed=true],.research-confirm [data-inspect]{background:#294f45;color:white;border-color:#294f45}.research-card-actions button:disabled{color:#727a75;border-color:#d8dfda;cursor:default}.research-hints{padding-left:1.3em;font-size:1rem;line-height:1.85}.research-hints li+li{margin-top:8px}.research-card details summary{font-size:1rem;cursor:pointer;min-height:40px}.research-card blockquote{border-left:2px solid #b6c5bb;padding-left:15px;margin:15px 0;font-size:1rem;line-height:1.9}.research-card a,.research-all,.research-lock a{color:#1e5547;text-decoration:underline;text-underline-offset:4px}.research-result-count{font-size:.875rem}.research-rewards{margin-top:64px;border-top:3px solid #304d43;max-width:860px;padding-top:25px}.research-rewards>h2{font:2rem var(--serif)}.research-rewards>p{line-height:1.9;font-size:1rem}.research-rewards details{border-bottom:1px solid var(--line);padding:22px 0}.research-rewards summary{font:1.25rem/1.6 var(--serif);cursor:pointer}.research-rewards summary>span{display:block;color:#68776d;font:.875rem var(--sans);margin-bottom:8px}.research-rewards summary small{font:.875rem var(--sans);color:#815c23}.research-rewards details p{font:1.0625rem/2 var(--serif);max-width:720px}.reward-locked{border-bottom:1px solid var(--line);padding:19px 0;color:#68776d;font-size:1rem}.research-panel,.research-confirm{box-sizing:border-box;width:min(720px,calc(100% - 32px));max-height:86dvh;border:1px solid #899c90;background:#fafbf6;color:#253c33;padding:30px;border-radius:0;overflow:auto;overscroll-behavior:contain}.research-panel::backdrop,.research-confirm::backdrop{background:rgba(15,29,23,.5)}.research-panel h2,.research-confirm h2{font:1.8rem var(--serif);margin:0 45px 12px 0}.research-close{position:sticky;top:0;float:right;width:44px;height:44px;border:1px solid #a7b7ac;background:#fafbf6;font-size:1.6rem;color:#253c33}.research-panel-body>details>summary{padding:16px 0;font-size:1.1rem;cursor:pointer}.research-panel .research-card{padding:18px 0}.research-all{display:block;margin-top:25px;padding:12px 0}.research-confirm p{font:1.1rem/1.9 var(--serif)}.research-confirm button{margin:8px 10px 0 0}.research-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:10000;background:#24493e;color:#fff;width:max-content;max-width:min(650px,calc(100vw - 32px));padding:16px 20px;box-shadow:0 5px 24px #0002;font:1rem/1.65 var(--sans);pointer-events:none}.research-lock{padding:30px 24px;margin:24px 0;background:#eef1e9;border-left:3px solid #748d78;overflow-wrap:anywhere}.research-lock>span{font:.875rem var(--sans);color:#5e7364}.research-lock h2{font:1.6rem/1.5 var(--serif);margin:12px 0}.research-lock p{font-size:1rem;line-height:1.8}.research-lock a{font-size:1rem}.research-link-lock{font:.875rem/1.5 var(--sans);display:block;color:#6b745c;text-decoration:none}.research-sentence{touch-action:manipulation}.research-sentence[role=button]:focus-visible{outline:2px solid #235f4c;outline-offset:3px}.research-storage-warning:not(:empty){padding:14px;background:#fff0d5;font:1rem/1.7 var(--sans)}
@media(max-width:1050px){.research-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.research-cards{grid-template-columns:1fr}.research-card{padding:20px 0}.research-heading{margin:22px 0}.research-tools{gap:12px}.research-tools label{min-width:130px}.research-panel{padding:22px 20px}.research-rewards{margin-top:42px}.research-toast{bottom:max(16px,env(safe-area-inset-bottom));padding:13px 16px}}

/* The state overlay and count occupy the existing box without taking layout space. */
.research-entry-locked{position:relative;isolation:isolate}
.research-entry-locked::after{content:"";position:absolute;inset:0;z-index:1;background:repeating-linear-gradient(135deg,transparent 0 7px,#747c7733 7px 8px),#939a902e;pointer-events:none}
.poster-link.research-entry-locked::after{background:repeating-linear-gradient(135deg,transparent 0 9px,#d6d9d566 9px 11px),#7d837d55}
.poster-link.research-entry-locked .poster{filter:grayscale(.7)}
.research-count-slot{position:relative;visibility:hidden}
.research-count-slot>.research-count-badge{visibility:visible;position:absolute;left:0;top:var(--research-slot-top,0px);z-index:3;font:14px/1.5 var(--sans);white-space:nowrap;color:inherit}
.poster-enter>.research-count-badge{color:white}
.research-compact-lock{color:transparent!important}
.research-compact-lock>.nav-icon{visibility:hidden}
.research-compact-caption{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;pointer-events:none;color:var(--research-label-ink);font:14px/1.2 var(--sans);white-space:nowrap;letter-spacing:normal}
.research-compact-caption small{display:block;font:12px/1.2 var(--sans);color:inherit}
.menu-spread-locked{display:block;min-height:0;padding:24px;background:#f1f2eb}
.menu-book .menu-spread-locked .research-lock{display:block;margin:0;padding:24px;color:#253c33;background:#eef1e9;opacity:1;visibility:visible}
.menu-book .menu-spread-locked .research-lock h2{display:block;font:1.6rem/1.5 var(--serif);color:#253c33;position:static;margin:12px 0}
.menu-book .menu-spread-locked .research-lock p{display:block;color:#43574a;font:1rem/1.8 var(--sans)}
.menu-book .menu-spread-locked .research-lock a{color:#1e5547;text-decoration:underline}
.research-panel,.research-welcome,.research-view-settings{position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(720px,calc(100vw - 32px));max-width:calc(100vw - 32px);height:fit-content;max-height:calc(100dvh - 40px);border:1px solid #899c90;background:#fafbf6;color:#253c33;padding:30px;overflow:auto;overscroll-behavior:contain;border-radius:0}
.research-welcome,.research-view-settings{width:min(620px,calc(100vw - 32px))}
.research-welcome::backdrop,.research-view-settings::backdrop{background:#0f1d1780}
dialog[tabindex="-1"]:focus,dialog h2[tabindex="-1"]:focus{outline:none}
.research-welcome h2,.research-view-settings h2{font:clamp(1.5rem,5vw,2rem)/1.5 var(--serif);margin:12px 45px 20px 0}
.research-welcome p,.research-view-settings p{font:1rem/1.85 var(--sans)}
.research-welcome ol{padding-left:1.4em;margin:24px 0}.research-welcome li{padding-left:5px;margin:18px 0;line-height:1.8}.research-welcome li span{display:block;font-size:.9375rem}
.research-welcome-hide{display:flex;gap:10px;align-items:center;min-height:44px;margin-top:20px}.research-welcome-hide input{width:20px;height:20px;accent-color:#315b52}
.research-welcome-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}
.research-welcome-actions button{padding:12px 20px;background:#294f45;color:#fff;border:1px solid #294f45;min-height:44px;font:1rem var(--sans)}
.research-welcome-actions a,.guide-welcome-link{text-decoration:underline;text-underline-offset:4px;padding:10px 0;min-height:44px}
.research-view-options{display:grid;gap:16px;margin:24px 0}.research-view-options button{text-align:left;padding:18px;border:1px solid #9aaea3;font:1rem/1.8 var(--sans);background:transparent;color:#253c33}.research-view-options button[aria-pressed=true]{border:2px solid #315b52;background:#eaf0e7}.research-view-options span{display:block;margin-top:8px;font-size:.9375rem}
.guide-seal{display:block;width:48px;height:48px;border:1px solid #748671;font:1.65rem var(--serif);margin-bottom:18px;touch-action:manipulation}
.research-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:12px;margin:32px 0 24px}.research-tabs button{padding:12px 16px;min-height:44px;border:1px solid #a7b7ac;background:transparent;font:1rem var(--sans);color:#284b40}.research-tabs [aria-current=page]{background:#294f45;border-color:#294f45;color:#fff}
.research-pinned{background:#edf0e7;padding:24px;margin-top:28px}.research-pinned h2{font:1.5rem var(--serif);margin:0 0 14px}.research-pinned h2 small{font:.875rem var(--sans)}.research-pinned p{font:1rem/1.8 var(--sans)}.research-pin-note{color:#52645d;font-size:.875rem!important}.research-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0}.research-pagination button,.research-free-status button{min-height:44px;padding:10px 14px;border:1px solid #9aaea3;color:#284b40;background:transparent;font:.9375rem var(--sans)}.research-pagination button:disabled{opacity:.45;cursor:default}
.research-future{border-block:1px solid var(--line);padding:18px 0;margin-top:28px}.research-future summary,.research-unlocks summary{cursor:pointer;font:1.1rem/1.7 var(--serif)}.research-future p{font:1rem/1.8 var(--sans)}.research-unlocks details{padding:20px 0;border-bottom:1px solid var(--line)}.research-unlocks li{line-height:1.8;margin:14px 0}.research-unlocks small{display:block;color:#68776d}.research-unlocks a{text-decoration:underline;text-underline-offset:4px}.research-list-area .research-rewards{margin-top:0;border-top:0;padding-top:0}
.dialog-research-button{display:block;margin:24px 0 0;padding:12px 18px;border:1px solid #8fa493;min-height:44px;font:1rem var(--sans);color:#294f45;background:#f5f7ef}
.research-reading-shortcut{position:fixed;left:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:60;min-height:44px;padding:10px 16px;border:1px solid #8fa493;background:#fafbf6ed;color:#294f45;font:.9375rem var(--sans);box-shadow:0 3px 12px #0001}.research-reading-shortcut[hidden]{display:none}
.research-toast{box-sizing:border-box}.research-toast-in-dialog{position:fixed;inset:auto 16px 16px;margin:auto;transform:none;left:16px;right:16px;max-width:min(650px,calc(100vw - 64px));max-height:35dvh;overflow:auto;pointer-events:auto}
[data-research-term]{touch-action:manipulation}
@media(max-width:650px){.research-panel,.research-welcome,.research-view-settings{padding:22px 20px;margin:auto;max-height:calc(100dvh - 32px)}.research-pinned{padding:18px}.research-tabs{gap:6px}.research-tabs button{flex:1 1 40%;padding:11px 8px;font-size:.9375rem}.research-toast-in-dialog{bottom:16px;padding:12px}.research-reading-shortcut{left:12px;bottom:14px}.menu-spread-locked{padding:12px}}

.research-toast.has-link{pointer-events:auto}.research-toast a{display:block;color:#fff;text-decoration:underline;text-underline-offset:4px;min-height:44px;padding-top:10px}

/* Concise welcome: its content fits a typical 320×568 portrait viewport at default text size. */
.research-welcome{padding:24px;width:min(540px,calc(100vw - 24px))}
.research-welcome>.research-close{position:absolute;right:8px;top:8px;float:none;width:36px;height:36px;font-size:1.4rem}
.research-welcome h2{font:1.5rem/1.4 var(--serif);margin:2px 28px 18px 0}
.research-welcome ol{margin:0;padding-left:1.4em}.research-welcome li{margin:12px 0;padding-left:2px;line-height:1.5}.research-welcome li b{font-size:1rem}.research-welcome li span{font-size:.9375rem;line-height:1.6;margin-top:3px}
.research-welcome .research-welcome-goal{font:.875rem/1.5 var(--sans);margin:14px 0 4px}
.research-welcome .research-welcome-hide{font:.9375rem var(--sans);margin-top:0;min-height:40px}
.research-welcome .research-welcome-actions{margin-top:10px;gap:16px;flex-wrap:nowrap}.research-welcome-actions button{font-size:.9375rem;padding:10px 16px}.research-welcome-actions a{font-size:.9375rem}
@media(max-width:650px){.research-welcome{padding:20px 18px;max-height:calc(100dvh - 24px)}.research-welcome h2{font-size:1.25rem;margin-bottom:14px}.research-welcome li{margin:10px 0}.research-welcome li span{font-size:.875rem;line-height:1.5}.research-welcome .research-welcome-goal{margin-top:12px}}
@media(max-height:600px){.research-welcome{padding-block:16px}.research-welcome h2{margin-bottom:10px}.research-welcome li{margin:8px 0}.research-welcome .research-welcome-goal{margin-top:8px}.research-welcome .research-welcome-actions{margin-top:4px}}
.world-book:has(>a.research-entry-locked){position:relative;isolation:isolate}
.world-book:has(>a.research-entry-locked)::after{content:"";position:absolute;inset:0;z-index:0;background:repeating-linear-gradient(135deg,transparent 0 7px,#747c7733 7px 8px),#939a902e;pointer-events:none}
.world-book:has(>a.research-entry-locked)>a{position:relative;z-index:1}
.world-book>a.research-entry-locked::after{display:none}
.header .wings a.research-entry-locked::after{height:auto;background:repeating-linear-gradient(135deg,transparent 0 7px,#747c7733 7px 8px),#939a902e}
/* Checkpoints share the reading room typography and keep choices touch-sized. */
.checkpoint-summary{margin:22px 0;padding:20px 22px;border:1px solid #798f88;background:#eef2ed;display:flex;gap:24px;align-items:center;justify-content:space-between}.checkpoint-summary strong,.checkpoint-summary small{display:block}.checkpoint-summary strong{font:500 21px/1.5 var(--serif);margin:5px 0}.checkpoint-summary small{font-size:13px;letter-spacing:.09em}.checkpoint-summary p{font-size:14px;line-height:1.8;margin:5px 0}.checkpoint-summary>a{flex-shrink:0;padding:12px;border-bottom:1px solid #486b5f;font-size:15px}.checkpoint-room{max-width:840px;margin:auto;padding:25px 0 60px}.checkpoint-room h1{font:500 clamp(27px,5vw,42px)/1.5 var(--serif);margin:16px 0}.checkpoint-room p{font-size:16px;line-height:1.9}.checkpoint-back,.checkpoint-pages{display:flex;gap:20px;align-items:center;justify-content:space-between}.checkpoint-room progress{width:100%;height:8px;accent-color:#426759}.checkpoint-question{margin:28px 0;padding-top:26px;border-top:1px solid #9fac9f}.checkpoint-question h2{font:500 23px/1.7 var(--serif);scroll-margin-top:120px}.checkpoint-question fieldset{padding:0;border:0;margin:22px 0}.checkpoint-question legend{font-size:15px;margin-bottom:12px}.checkpoint-question label{display:flex;gap:12px;align-items:flex-start;padding:15px;margin:10px 0;border:1px solid #9eada6;cursor:pointer;font-size:16px;line-height:1.8}.checkpoint-question input{margin-top:7px;flex-shrink:0;accent-color:#375e52;width:18px;height:18px}.checkpoint-question label:has(input:checked){background:#e5eee8;border-color:#375e52}.checkpoint-question fieldset:disabled label{cursor:default;opacity:.8}.checkpoint-question button,.checkpoint-pages button,.checkpoint-room>button{min-height:44px;padding:10px 18px;font-size:15px;border:1px solid #80988b;background:#f8f7ee;color:#254c3e;cursor:pointer}.checkpoint-question button:disabled,.checkpoint-pages button:disabled{opacity:.4;cursor:default}.checkpoint-submit{background:#31574a!important;color:#fff!important}.checkpoint-feedback:empty{display:none}.checkpoint-feedback{padding:16px 0;font-size:16px;line-height:1.9}.checkpoint-hints,.checkpoint-question>details{margin:15px 0;padding:12px 0;border-top:1px solid #b0bcb2}.checkpoint-question summary{font-size:16px;cursor:pointer;min-height:36px}.checkpoint-sources{display:grid;gap:12px;font-size:15px;line-height:1.8;margin:16px 0}.checkpoint-sources a{padding:9px 0;border-bottom:1px solid #b4bcb0}.checkpoint-passed{padding:22px;border:1px solid #5c7c67;background:#e7eee3;line-height:1.8;scroll-margin-top:120px}.checkpoint-passed strong{font:500 24px/1.6 var(--serif)}.checkpoint-index{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:18px}.checkpoint-index li{padding:20px;border:1px solid #a0afa5}.checkpoint-index h2{font:500 21px/1.6 var(--serif);margin:8px 0}.checkpoint-index a{display:inline-block;padding:10px 0;border-bottom:1px solid #637d6b}.checkpoint-save{font-size:14px!important;color:#526157}
@media(max-width:650px){.checkpoint-summary{display:block;padding:16px}.checkpoint-summary>a{display:inline-block;margin-top:6px}.checkpoint-index{grid-template-columns:1fr}.checkpoint-room{padding-top:18px}.checkpoint-question h2{font-size:21px}.checkpoint-question label{padding:12px;gap:10px}.checkpoint-back{font-size:14px}.checkpoint-pages{gap:10px}.checkpoint-pages button{padding:10px 14px}}
.checkpoint-comparison{width:100%;border-collapse:collapse;margin:18px 0;font-size:14px;line-height:1.7}.checkpoint-comparison caption{text-align:left;margin-bottom:9px}.checkpoint-comparison th,.checkpoint-comparison td{border:1px solid #a6b6aa;padding:10px;text-align:left;overflow-wrap:anywhere}.checkpoint-comparison th{font-weight:500;background:#e8eee5}
.research-heading .research-progress-compact{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 22px;margin:14px 0 0;max-width:850px;align-items:center}
.research-progress-compact strong{font-size:2.1rem;grid-row:1/3}
.research-progress-compact p{margin:0;line-height:1.5}
.research-progress-compact progress{margin:0}
.research-progress-compact>small{font-size:.85rem;line-height:1.5;grid-column:1/-1}
.research-support{margin:32px 0 0;border-top:1px solid #b9b6a7;padding-top:16px}
.research-tap-feedback{position:fixed;z-index:2000;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);padding:10px 16px;background:#294f45;color:#fff;font:14px/1.6 var(--sans);box-shadow:0 4px 20px #0003;pointer-events:none}
.research-ownership-note{color:#62675f;font-size:.85rem!important}
@media(max-width:600px){.research-heading .research-progress-compact{gap:5px 14px}.research-progress-compact strong{font-size:1.7rem}.research-progress-compact p{font-size:.9rem}.research-room .research-heading{margin:14px 0}.research-progress-compact strong small{font-size:.8rem}}
.record-backup-dialog{position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(640px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;padding:28px;background:#fafbf6;color:#253c33;border:1px solid #899c90}
.record-backup-dialog::backdrop{background:#0f1d1780}
.record-backup-dialog h2{font:1.8rem/1.5 var(--serif);margin:12px 40px 18px 0}
.record-backup-dialog p{font:1rem/1.8 var(--sans)}
.record-backup-dialog .record-backup-note{font-size:.875rem;color:#53635a}
.record-backup-dialog button{min-height:44px;max-width:100%;white-space:normal}
.record-backup-dialog hr{margin:24px 0;border:0;border-top:1px solid #b9b6a7}
.record-file-label{display:grid;gap:12px;font:1rem/1.6 var(--sans)}
.record-file-label input{width:100%;font:14px/1.6 var(--sans);min-height:44px}
.record-backup-preview table{border-collapse:collapse;width:100%;table-layout:fixed;font:14px/1.5 var(--sans)}
.record-backup-preview th,.record-backup-preview td{padding:10px 6px;border-bottom:1px solid #b9b6a7;text-align:left;overflow-wrap:anywhere}
.record-backup-preview td{text-align:center;font-variant-numeric:tabular-nums}
.record-backup-dialog [hidden]{display:none}
.record-backup-status{color:#335d4c}
@media(max-width:480px){.record-backup-dialog{padding:20px}.record-backup-dialog h2{font-size:1.5rem}.record-backup-preview table{font-size:12px}}

.research-first-step{font:16px/1.8 var(--sans);max-width:750px;padding:12px 0}
.research-connections{margin:20px 0;padding:16px 0;border-block:1px solid #aab5a8}.research-connections summary{font:20px/1.6 var(--serif);cursor:pointer;min-height:44px}
.research-connections article{margin:20px 0;padding:10px 0;border-top:1px solid #c2c9bd}.research-connections h3{font:21px/1.65 var(--serif)}
.research-connections p,.research-connections nav{font:16px/1.8 var(--serif)}.research-connections nav,.research-read-on{display:flex;flex-wrap:wrap;gap:10px 20px}
.research-connections button,.research-connection-selection button{min-height:44px;max-width:100%;white-space:normal;margin-top:10px;padding:8px 12px;font:14px/1.6 var(--sans)}
.research-connections small{display:block;margin-top:10px}.research-read-on{border-top:1px solid #c2c9bd;padding-top:12px;margin-top:16px}.research-read-on p{width:100%;margin:0}.research-read-on a{font-size:15px;line-height:1.8}
