/* Reading hierarchy: one entry, short overview, optional reference material. */
.reading-simple { background: #fafaf7; }
.reading-simple .module-hero::after,
.reading-simple .home-header::before,
.reading-simple .module-header::before,
.reading-simple .home-copy::before { display: none; }
.reading-simple .home-header::after,
.reading-simple .module-header::after,
.reading-simple .module-hero::before { display: none; }
body.reading-simple .home-copy > *,
body.reading-simple .module-hero > * { animation: none; opacity: 1; transform: none; }
body.reading-simple main .reveal-item { opacity: 1; transform: none; }
.reading-simple .home-copy { display: block; padding: 64px 0 58px; }
.reading-simple .home-copy h1 { max-width: 800px; font-size: clamp(34px, 5vw, 62px); line-height: 1.2; }
.reading-simple .home-copy > p { max-width: 610px; }
.reading-simple .home-copy:has(.home-welcome-art) { display: grid; grid-template-columns: 1.3fr 1fr; gap: 14px 40px; align-items: center; }
.reading-simple .home-copy:has(.home-welcome-art) > :not(.home-welcome-art) { grid-column: 1; }
.reading-simple .home-copy .home-welcome-art { grid-column: 2; grid-row: 1 / span 5; width: 100%; max-width: 400px; margin: 0; justify-self: end; }
.reading-simple .home-welcome-art figcaption { display: none; }
.reading-simple .home-welcome-art img { width: 100%; height: auto; max-height: none; object-fit: contain; }
.reading-simple .home-copy .jump { justify-self: start; }
.reading-simple .home-copy .quote { max-width: 630px; padding: 0; border: 0; background: none; font-size: 16px; color: #d3ddd7; }
.reading-simple .module-hero { display: block; padding: 38px 0 34px; }
.reading-simple .module-hero h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.3; }
.reading-simple .module-hero > p:not(.breadcrumb) { max-width: 740px; font-size: 17px; }
.reading-simple .module-hero .jump { display: none; }
.reading-simple main > section { padding: 46px 0; background: transparent !important; border-bottom: 1px solid #e3e7e1; }
.reading-simple main > section > .wrap { max-width: 1040px; }
.reading-simple main h2 { font-size: clamp(24px, 3vw, 32px); line-height: 1.4; margin-bottom: 18px; }
.reading-simple main h3 { font-size: 20px; line-height: 1.55; }
.reading-simple .lead { max-width: 780px; font-size: 17px; line-height: 1.9; }
.reading-simple .num { padding: 0; border: 0; border-radius: 0; background: none; color: #69786e; font-size: 12px; }
.reading-simple .num::before { display: none; }
.reading-simple .card,
.reading-simple .major,
.reading-simple .panel,
.reading-simple .week,
.reading-simple .module-card,
.reading-simple .subject { box-shadow: none; border: 1px solid #e0e5df; border-radius: 12px; background: #fff; }
.reading-simple .card::before,
.reading-simple .module-card::after,
.reading-simple .subject::before { display: none; }
.reading-simple .card:hover,
.reading-simple .major:hover,
.reading-simple .subject:hover { transform: none; box-shadow: none; }
.reading-simple .subject { padding: 24px; gap: 24px; }
.reading-simple .subject .tag { padding: 0; background: none; font-size: 11px; letter-spacing: .035em; }
.reading-simple .subject p { font-size: 16px; line-height: 1.9; }
.reading-simple .reading-brief { padding: 28px 0; }
.reading-simple .reading-brief-head { display: block; margin-bottom: 16px; }
.reading-simple .reading-brief-head .num { display: none; }
.reading-simple .reading-brief h2 { font-size: 22px; margin: 0; }
.reading-simple .reading-brief-grid { gap: 12px; }
.reading-simple .reading-brief-card { min-height: 0; padding: 18px; border: 1px solid #dce3da; border-radius: 10px; box-shadow: none; background: #f2f5ee; }
.reading-simple .reading-brief-card strong { font-size: 17px; }
.reading-simple .reading-brief-card > span { display: none; }
.reading-disclosure { border: 1px solid #dde3dc; border-radius: 10px; background: #fff; }
.reading-disclosure > summary { cursor: pointer; padding: 15px 18px; font-size: 15px; font-weight: 600; color: #365247; }
.reading-disclosure > summary:focus-visible { outline: 3px solid #5d8271; outline-offset: 3px; }
.reading-disclosure[open] > summary { border-bottom: 1px solid #e4e8e1; }
.reading-directory, .reading-personal-choice { margin-top: 10px; }
.reading-simple .reading-directory .module-tools { position: static; width: 100%; max-width: none; margin: 0; padding: 14px; background: none; box-shadow: none; }
.reading-simple .reading-directory .tool-row { padding: 0; border: 0; box-shadow: none; border-radius: 0; }
.reading-simple .module-toc-toggle em,
.reading-simple .module-toc-toggle b { display: none; }
.reading-simple .module-toc-toggle { min-height: 42px; padding: 10px; }
.reading-simple .module-toc-toggle small { font-size: 13px; }
.reading-simple .page-toc a { min-height: 0; box-shadow: none; padding: 12px; }
.reading-simple .reader-situation { padding: 20px 0; }
.reading-simple .reader-situation .wrap { width: calc(100% - 32px); }
.reading-simple .reader-situation-head > span,
.reading-simple .reader-situation-head .num,
.reading-simple .reader-situation-head p { display: none; }
.reading-simple .reader-situation h2 { font-size: 19px; }
.reading-save { margin-top: 24px; border: 0; border-top: 1px solid #e1e6df; border-radius: 0; background: none; }
.reading-save > summary { padding: 12px 0; font-weight: 400; font-size: 13px; color: #6c786f; }
.reading-save .reader-checkpoint { margin: 0; box-shadow: none; border: 0; background: #f2f5ee; }
.reading-save .reader-checkpoint-question { display: none; }
.reading-more { max-width: 1040px; margin: 28px auto 44px; text-align: center; }
.reading-simple footer .reader-list-button { position: static; display: inline-flex; width: auto; margin: 12px 0 0; padding: 8px 12px; border-radius: 8px; box-shadow: none; font-size: 13px; }
.reading-simple footer .wrap { display: flex; flex-direction: column; align-items: flex-start; }
.reading-simple .reader-planner-float { padding: 10px 16px; font-size: 13px; box-shadow: 0 3px 15px #173c2820; }
.reading-music { position: fixed; right: 20px; bottom: 86px; z-index: 80; box-shadow: 0 3px 15px #173c2815; }
.reading-music > summary { padding: 10px 15px; font-size: 13px; }
.reading-simple .reading-music .music-player { position: static; width: 280px; max-width: calc(100vw - 32px); margin: 0; border-radius: 0 0 10px 10px; box-shadow: none; }
.cover-active .reading-music { visibility: hidden; }
.reading-simple .home-entry-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 24px; }
.reading-simple .home-guide h2 { color: #213b2e; }
.reading-simple .home-guide .lead { color: #637568; }
.home-entry { display: block; padding: 25px; color: #223e31; background: #fff; border: 1px solid #dce4d9; border-radius: 12px; text-decoration: none; transition: border-color .2s, transform .2s; }
.home-entry:hover { border-color: #628273; transform: translateY(-3px); }
.home-entry small { font-size: 12px; color: #78877c; }
.home-entry h3 { margin: 12px 0 8px; }
.home-entry p { margin: 0 0 20px; font-size: 15px; line-height: 1.8; color: #65766c; }
.home-entry strong { font-size: 14px; }
.reading-simple #modules, .reading-simple #quick-help { padding: 24px 0; }
.reading-simple #modules > .wrap > .num,
.reading-simple #modules > .wrap > h2,
.reading-simple #modules > .wrap > .lead,
.reading-simple #quick-help > .wrap > .num,
.reading-simple #quick-help > .wrap > h2,
.reading-simple #quick-help > .wrap > .lead { display: none; }
.reading-all-modules .module-grid, .reading-help .quick-grid { padding: 20px; margin: 0; }
.reading-simple .module-card { padding: 22px; min-height: 0; }
.reading-simple .module-card h2 { font-size: 22px; }
.reading-simple .module-card p { font-size: 15px; }
@media (min-width: 781px) {
  .reading-simple main .major-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 780px) {
  .reading-simple .home-copy:has(.home-welcome-art) { display: block; }
  .reading-simple .home-copy .home-welcome-art { width: 180px; margin: 22px 0 0; }
  .reading-simple .home-copy { padding: 32px 0; }
  .reading-simple .module-hero { padding: 24px 0; }
  .reading-simple main > section { padding: 28px 0; }
  .reading-simple .home-entry-grid { grid-template-columns: 1fr; gap: 10px; }
  .reading-simple .home-entry { padding: 18px; }
  .home-entry h3 { margin: 6px 0; }
  .home-entry p { margin-bottom: 10px; }
  .reading-simple .reading-brief-grid { grid-template-columns: 1fr; gap: 8px; }
  .reading-simple .reading-brief-card { padding: 12px 16px; }
  .reading-simple .reading-brief-card strong { font-size: 16px; }
  .reading-simple .reading-directory .tool-row { display: flex; flex-wrap: wrap; gap: 8px; }
  .reading-simple .reading-directory .search-box { flex: 1 1 100%; min-width: 0; }
  .reading-simple .reading-directory .page-toc { margin: 12px 0 0; padding: 0; }
  .reading-simple .subject { padding: 20px; }
  .reading-simple .reader-situation-options { grid-template-columns: 1fr; }
  .reading-music { right: 16px; bottom: 82px; }
  .reading-simple .reader-planner-float { bottom: 18px; left: 16px; }
  .reading-more { margin: 24px 18px; }
}
@media (prefers-reduced-motion: reduce) { .home-entry { transition: none; } }
/* The reading helper is a single choice, not a planning questionnaire. */
body.reading-simple .reader-planner-progress { display: none; }
body.reading-simple .reader-planner-stage { margin-top: 22px; }
body.reading-simple .reader-plan-result h3 { font-size: clamp(22px, 4vw, 29px); }
body.reading-simple .reader-tailored { padding: 16px 20px; }
body.reading-simple .reader-tailored::before { content: '具体一点'; display: block; font-size: 12px; margin-bottom: 8px; color: #527258; }
@media (max-width: 600px) {
 body.reading-simple .reader-question-options { gap: 8px; margin-top: 16px; }
 body.reading-simple .reader-question-options button { min-height: 70px; padding: 12px; }
 body.reading-simple .reader-planner-shell { padding: 20px; }
}
/* Small-screen tools have a single resting footprint. */
.mobile-tools { display: none; }
.quiz-optional-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0; }
.quiz-end-note { padding: 16px 20px; background: #edf3ec; border-radius: 10px; line-height: 1.8; }
.quiz-flow-actions[hidden], .quiz-optional-actions button[hidden], .quiz-end-note[hidden] { display: none !important; }
#quiz[hidden] { display: none !important; }
body.reading-simple .scorebox { background: #edf3ec; color: #274334; opacity: 1; transform: none; animation: none; }
body.reading-simple .scorebox h3, body.reading-simple .scorebox p { color: #274334; opacity: 1; }
body.reading-simple.quiz-flow-ready .scorebox.flow-complete { animation: none; opacity: 1; transform: none; }
body.reading-simple .dimension-result { opacity: 1; transform: none; animation: none; }
.legal-inline { margin: 20px 0; padding: 18px 20px; border-left: 3px solid #718578; background: #f0f3ed; border-radius: 0 8px 8px 0; }
.legal-inline h3 { font-size: 16px !important; margin: 0 0 10px; }
.legal-inline blockquote { margin: 10px 0; padding: 0; border: 0; font-size: 14px; line-height: 1.85; color: #43574a; }
.legal-inline p { font-size: 14px !important; }
.legal-inline .legal-source { font-size: 12px !important; color: #68756b; }
@media (max-width: 780px) {
 .mobile-tools { display: block; position: fixed; right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); z-index: 95; }
 .cover-active .mobile-tools { visibility: hidden; }
 .mobile-tools > summary { list-style: none; cursor: pointer; padding: 11px 15px; border: 1px solid #d5dfd5; border-radius: 22px; background: #fff; color: #315747; box-shadow: 0 3px 14px #18372c18; font-size: 14px; }
 .mobile-tools > summary::-webkit-details-marker { display: none; }
 .mobile-tools-panel { position: absolute; right: 0; bottom: 56px; width: min(310px, calc(100vw - 32px)); max-height: 65dvh; overflow: auto; padding: 12px; background: #fff; border: 1px solid #d5dfd5; border-radius: 14px; box-shadow: 0 8px 28px #173d2e20; }
 body.reading-simple .mobile-tools .reader-planner-float,
 body.reading-simple .mobile-tools .reading-music,
 body.reading-simple .mobile-tools .back-top { position: static !important; inset: auto; width: 100%; margin: 0 0 8px; transform: none; opacity: 1; visibility: visible; box-shadow: none; }
 body.reading-simple .mobile-tools .reader-planner-float,
 body.reading-simple .mobile-tools .back-top { display: flex !important; justify-content: center; min-height: 44px; font-size: 14px; }
 body.reading-simple .mobile-tools .reading-music .music-player { width: 100%; max-width: 100%; }
 .mobile-tools summary:focus-visible { outline: 3px solid #698d76; outline-offset: 3px; }
}

.editorial-figure img[role="button"] { cursor: zoom-in; }
.editorial-figure img[role="button"]:focus-visible { outline: 3px solid #648d77; outline-offset: 5px; }
dialog.image-preview { position: fixed; inset: 0; width: 100%; height: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 64px 24px 60px; border: 0; border-radius: 0; background: rgba(12, 17, 15, .96); color: #fff; overflow: hidden; box-sizing: border-box; cursor: zoom-out; }
dialog.image-preview:not([open]) { display: none !important; }
dialog.image-preview[open] { display: flex; align-items: center; justify-content: center; }
.image-preview::backdrop { background: #0c110f; }
dialog.image-preview .image-preview-picture { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; flex: 0 1 auto; min-width: 0; margin: 0; border: 0; border-radius: 3px; opacity: 1; transform-origin: center; cursor: zoom-out; }
dialog.image-preview .image-preview-close { position: absolute; top: max(12px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); width: 44px; height: 44px; padding: 0; border: 1px solid #ffffff50; border-radius: 50%; background: #ffffff12; color: #fff; font: 30px/1 sans-serif; cursor: pointer; z-index: 1; }
.image-preview-close:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
dialog.image-preview .image-preview-hint { position: absolute; bottom: max(14px, env(safe-area-inset-bottom)); left: 16px; right: 16px; margin: 0; color: #d7dedb; font-size: 13px; line-height: 1.5; text-align: center; pointer-events: none; }
@media (max-width: 780px) { dialog.image-preview { padding-left: 8px; padding-right: 8px; } }
@media print { dialog.image-preview { display: none !important; } }

.image-preview-trigger { display: inline-block; margin: 6px 0 0 8px; padding: 5px 8px; border: 1px solid #81958a; border-radius: 6px; background: transparent; color: inherit; font: inherit; cursor: zoom-in; white-space: nowrap; }
.reading-simple .home-welcome-art > .image-preview-trigger { display: block; margin-left: auto; margin-right: 8px; font-size: 12px; }
dialog.image-preview .image-preview-stage { position: absolute; inset: 64px 24px 118px; display: flex; align-items: center; justify-content: center; overflow: hidden; touch-action: none; user-select: none; }
dialog.image-preview[data-zoomed="true"] .image-preview-stage,
dialog.image-preview[data-zoomed="true"] .image-preview-picture { cursor: grab; }
dialog.image-preview[data-zoomed="true"] .image-preview-stage:active { cursor: grabbing; }
dialog.image-preview .image-preview-controls { position: absolute; bottom: max(60px, calc(env(safe-area-inset-bottom) + 48px)); left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; white-space: nowrap; cursor: default; }
.image-preview-controls button { min-width: 44px; min-height: 44px; border: 1px solid #ffffff60; border-radius: 8px; padding: 8px 12px; background: #263b30; color: #fff; font-size: 16px; cursor: pointer; }
.image-preview-controls button:disabled { opacity: .4; cursor: default; }
.image-preview-controls output { min-width: 54px; text-align: center; font: 14px/1.5 sans-serif; }
.image-preview-controls button:focus-visible, .image-preview-trigger:focus-visible { outline: 2px solid #8cad98; outline-offset: 3px; }
@media (max-width: 780px) { dialog.image-preview .image-preview-stage { inset: 64px 8px 130px; } }
