@charset "UTF-8";
:root{color-scheme:light;--ink:#183b49;--text:#2c414b;--muted:#64777e;--teal:#176b6a;--line:#dbe5e7;--soft:#edf7f5;--blue:#285db2;--red:#b42f4d;--practice:#245891;--practice-bg:#edf4fc;--supplement:#68548b;--supplement-bg:#f5f2fa;--proposal:#875012;--proposal-bg:#fff8e9;font-family:Meiryo,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;font-synthesis:none}
*{box-sizing:border-box}
html{scroll-padding-top:100px;scrollbar-gutter:stable}
body{margin:0;background:#fff;color:var(--text);font-size:18px;line-height:1.9;overflow-wrap:anywhere}
a{color:var(--teal);text-underline-offset:.23em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
button,summary,a{touch-action:manipulation}
button{font:inherit;cursor:pointer}
button:disabled{cursor:default}
:focus-visible{outline:3px solid #dd9130;outline-offset:4px}
[tabindex="-1"]:focus{outline:none}
p,figure,h1,h2,h3,h4,ol{margin:0}
strong,h1,h2,h3,h4{color:var(--ink)}
h1,h2,h3,h4{line-height:1.65;overflow-wrap:anywhere}
h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:700;font-size:clamp(30px,3.8vw,44px);letter-spacing:.025em;line-height:1.55}
h2{font-size:25px;letter-spacing:.012em;font-weight:700}
h3{font-size:21px;font-weight:700;margin:34px 0 18px;padding-left:14px;border-left:3px solid var(--teal)}
h4{font-size:18px;margin:20px 0 8px}
p+p{margin-top:16px}
img{max-width:100%;height:auto;display:block}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link{position:fixed;z-index:100;top:-120px;left:12px;padding:12px 22px;background:var(--ink);color:white}
.skip-link:focus{top:8px}
.site-header{position:sticky;z-index:30;top:0;display:flex;align-items:center;gap:24px;min-height:78px;padding:14px max(28px,calc((100vw - 1240px)/2));border-bottom:1px solid var(--line);background:rgba(255,255,255,.97)}
.brand{display:flex;align-items:center;gap:18px;color:var(--ink);text-decoration:none;line-height:1.4;font-size:21px;font-weight:700;white-space:normal;min-width:0;max-width:100%}
.brand>span:last-child{min-width:0}
.brand-mark{font-size:20px;letter-spacing:.08em;color:var(--teal);padding-right:18px;border-right:1px solid var(--line);white-space:nowrap;flex-shrink:0}
.brand-sub{font-size:15px;font-weight:400;margin-left:12px;letter-spacing:.06em}
.book-credit{margin-left:auto;font-size:14px;color:var(--muted);letter-spacing:.03em}
.book-layout{display:grid;grid-template-columns:236px minmax(0,760px);gap:64px;max-width:1176px;margin:auto;padding:0 28px}
.book-sidebar{position:sticky;align-self:start;top:110px;max-height:calc(100dvh - 136px);overflow-y:auto;padding:10px 20px 16px 0;border-right:1px solid var(--line);font-size:15px;line-height:1.7;scrollbar-width:thin}
.sidebar-label{font-size:12px;letter-spacing:.15em;font-weight:700;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:20px}
.sidebar-label span{font-size:13px;font-weight:400;letter-spacing:0}
.book-sidebar ol,.mobile-contents ol{padding:0;list-style:none}
.book-sidebar nav>ol>li{margin:5px 0}
.book-sidebar nav>ol>li>a,.mobile-contents nav>ol>li>a{display:flex;align-items:center;gap:13px;min-height:46px;color:var(--muted);text-decoration:none;padding:8px 6px}
.nav-number{font-family:Georgia,serif;letter-spacing:.03em;font-size:16px;flex-shrink:0;color:#7b8f95}
.book-sidebar nav>ol>li>a[aria-current],.mobile-contents nav>ol>li>a[aria-current]{font-weight:700;color:var(--teal);background:var(--soft);box-shadow:inset 3px 0 var(--teal);padding-left:12px}
.book-sidebar [aria-current] .nav-number,.mobile-contents [aria-current] .nav-number{color:var(--teal)}
.section-links{margin:0 0 14px 29px!important;border-left:1px solid #a9c6c6;padding-left:13px!important}
.section-links a{display:block;padding:7px 0;color:var(--muted);text-decoration:none;font-size:14px;line-height:1.65}
.section-links a:hover,.section-links a[aria-current="location"]{color:var(--teal);text-decoration:underline}
.original-link{display:inline-block;margin-top:20px;font-size:14px}
.mobile-contents{display:none}
main{min-width:0;padding-bottom:50px}
.pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:52px 0 0;line-height:1.65;font-size:15px}
.pager a{display:flex;align-items:center;gap:14px;min-height:48px;text-decoration:none;color:var(--ink)}
.pager a:last-child{justify-content:flex-end;text-align:right}
.pager a:hover{color:var(--teal)}
.pager a small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.pager a>span[aria-hidden]{color:var(--teal);font-size:20px}
.pager-start{color:var(--muted);font-size:13px}
.page-position{font:19px Georgia,serif;color:var(--teal);white-space:nowrap}
.page-position span{font-size:14px;color:#87979c;margin-left:4px}
.pager-top{border-top:0;margin:0;padding:14px 0;gap:10px;font-size:14px}
.pager-top a{min-height:40px;gap:8px}
.pager-top a small{display:inline;margin-right:8px;font-size:13px}
.pager-top .pager-start{font-size:13px}
.chapter-header{padding:34px 0 29px;border-bottom:3px solid var(--ink);margin-bottom:28px}
.chapter-kicker{display:flex;align-items:center;gap:16px;font-weight:700;letter-spacing:.08em;color:var(--teal);font-size:14px;margin-bottom:12px}
.chapter-kicker span{font-size:13px;font-weight:400;color:var(--muted);letter-spacing:.04em}
.chapter-deck{margin-top:14px;color:var(--muted);font-size:17px;line-height:1.9}
.source-resource{font-size:14px;margin:0 0 22px}
.lesson-section{padding:30px 0 38px;scroll-margin-top:0}
.lesson-section+.lesson-section{border-top:1px solid var(--line)}
.lesson-section>h2{margin:0 0 26px;padding:17px 20px 18px;border-left:5px solid var(--ink);background:#eef3f6}
.section-number{display:block;font-family:Georgia,serif;font-size:13px;font-weight:400;letter-spacing:.12em;line-height:1.5;margin-bottom:5px;color:#526f80}
.lesson-section>p:not(:first-child){margin-top:17px}
.source-figure{margin:28px 0 24px;padding:16px 16px 10px;background:#fff;border:1px solid var(--line);border-radius:3px}
.image-surface{position:relative;width:min(100%,var(--natural-width));margin-inline:auto}
.image-link{display:block}
.image-link img{margin-inline:auto;width:100%;height:auto}
.source-figure figcaption{display:flex;justify-content:space-between;align-items:center;gap:16px;line-height:1.5;padding:8px 0 0;margin-top:8px;border-top:1px solid #eef1f2}
.figure-number{font-size:12px;letter-spacing:.08em;color:var(--muted)}
.zoom-link{font-size:14px;display:inline-flex;align-items:center;min-height:36px;gap:8px;text-decoration:none}
.zoom-link:hover{text-decoration:underline}
.small-figure{width:fit-content;min-width:210px;max-width:100%;display:inline-block;vertical-align:middle;margin:18px 12px 18px 0}
.small-figure .image-surface{min-width:0}
.answer-cover{position:absolute;top:10%;right:0;width:16.5%;height:90%;background:#f3f7f8;border-left:1px solid #d5e1e3;display:flex;flex-direction:column;justify-content:space-around;align-items:center;pointer-events:none;color:#668286;font-family:Georgia,serif;font-size:clamp(13px,2vw,25px)}
.has-answer-cover:has(.image-answer[open]) .answer-cover{display:none}
details{min-width:0}
summary{cursor:pointer;position:relative;list-style:none;line-height:1.75;padding:16px 42px 16px 18px;min-height:52px;font-size:16px;font-weight:700;color:var(--ink)}
summary::-webkit-details-marker{display:none}
summary::after{content:"＋";position:absolute;right:14px;top:15px;color:var(--teal);font-weight:400;font-size:19px;line-height:1.6}
details[open]>summary::after{content:"−"}
details[open]>summary{border-bottom:1px solid var(--line)}
.details-body{padding:22px 20px 25px}
.details-body>p+p{margin-top:16px}
.details-body>p:first-child{margin-top:0}
.details-body>p:last-child{margin-bottom:0}
.details-body .source-figure{padding:10px 10px 6px;margin:20px 0}
.answer,.digression{border:1px solid var(--line);border-left:4px solid var(--practice);margin:26px 0;background:#fff;border-radius:2px}
.answer>summary{background:var(--practice-bg);color:var(--practice)}
.answer>summary:hover{background:#e2edfb}
.digression>summary:hover{background:#edf1f3}
.answer>summary::after,.image-answer>summary::after{color:var(--practice)}
.digression{border-left-color:#879da4}
.digression>summary{background:#f7f9fa}
.image-answer{border-top:1px solid #ccdced;margin-top:8px}
.image-answer>summary{padding:12px 36px 12px 10px;min-height:48px;color:var(--practice);background:var(--practice-bg)}
.image-answer>summary::after{top:10px;right:2px}
.image-answer p{font-size:16px;padding:16px 4px 10px}
.author-note{border:1px solid #e0d9ec;border-left:4px solid var(--supplement);background:#fff;margin:22px 0;font-size:16px;line-height:1.95}
.author-note>summary{padding-top:13px;padding-bottom:13px;font-weight:400;font-size:15px}
.author-note>summary>span{display:block}
.note-label{font-size:12px;font-weight:700;letter-spacing:.07em;color:var(--supplement);margin-bottom:4px}
.author-note>summary{background:var(--supplement-bg)}
.author-note>summary::after{color:var(--supplement)}
.author-note>summary:hover{background:#ede7f7}
.author-note>.details-body{padding:18px 20px 22px}
.annotated-text{text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:#a18cb7;text-decoration-thickness:1px;text-underline-offset:.28em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.annotated-text.is-annotated-open{background:#eee5fa;text-decoration-style:solid;text-decoration-color:var(--supplement)}
.note-ref,.sample-note-ref{display:inline-flex;align-items:center;justify-content:center;vertical-align:baseline;margin:0 .25em;padding:0 .45em;border:1px solid #cbbcdf;border-radius:4px;background:#f4eefb;color:#5b427d;font-size:12px;font-weight:700;line-height:1.6;min-width:32px;min-height:28px;white-space:nowrap;text-decoration:none;letter-spacing:0}
.note-ref:hover,.note-ref[aria-expanded="true"]{background:#68548b;border-color:#68548b;color:white}
.note-ref:focus-visible{outline-offset:3px}
.annotation-guide{font-size:13px;color:var(--muted);margin:0 0 13px;line-height:1.9}
.sample-note-ref{min-height:24px;font-size:11px;min-width:28px;margin-inline:5px}
.js-annotations .anchored-note:not([open]){display:none}
.anchored-note{margin:18px 0 25px;scroll-margin-top:8px}
.anchored-note:has(+.anchored-note){margin-bottom:12px}
.details-body>.anchored-note+p{margin-top:16px}
.anchored-note .note-quote{border-left:3px solid #b6a3cf;background:var(--supplement-bg);padding:10px 14px;margin:0 0 20px;font-size:15px;color:var(--ink)}
.note-quote>span{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--supplement);margin-bottom:4px}
.note-quote q{quotes:'「' '」';font-weight:700}
.anchored-note .note-context{font-size:12px;line-height:1.9;color:var(--muted);padding-top:12px;border-top:1px solid var(--line);margin-top:20px}
.note-back{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--supplement);margin-top:14px}
.chapter-kicker .note-ref{font-size:12px;letter-spacing:0}
.editor-note{border-left:2px solid #b4c7cc;padding:0 0 0 16px;margin:22px 0;font-size:15px;color:#506a76;line-height:1.95}
.editor-note>span{font-size:12px;letter-spacing:.07em;color:#526e78;font-weight:700}
.editor-note>p{margin-top:4px}
.important{padding:18px 20px;border-left:5px solid var(--teal);background:var(--soft);line-height:2;margin:24px 0}
.role-label{display:block;font-size:12px;font-weight:700;letter-spacing:.07em;line-height:1.65;margin-bottom:6px}
.important>.role-label{color:var(--teal)}
.exercise-prompt{padding:15px 18px;border-left:4px solid var(--practice);background:var(--practice-bg);margin:24px 0 18px;line-height:1.9}
.exercise-prompt>.role-label{color:var(--practice)}
.formula{font-family:Meiryo,sans-serif;letter-spacing:.03em;color:var(--ink);display:block;font-size:22px;line-height:1.8}
.type-table{margin:26px 0 0}
.type-table table{border-collapse:collapse;width:100%;font-size:16px;line-height:1.75;table-layout:fixed}
.type-table th,.type-table td{padding:18px 16px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.type-table thead th{font-size:13px;color:var(--muted);font-weight:400;padding-top:9px;padding-bottom:9px;border-top:1px solid var(--line)}
.type-table th:first-child{width:44%}
.type-table tbody th{font-weight:700}
.type-table tbody tr:nth-child(odd){background:#f6f9fa}
.type-table small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-bottom:5px}
.type-table tbody th a{text-decoration:none}
.type-table tbody th a:hover{text-decoration:underline}
.type-table td>span:last-child{display:block;font-size:14px;margin-top:5px;color:var(--muted)}
.chapter-transition{font-size:17px;color:var(--muted)}
.chapter-transition+p{margin-top:16px}
.time-jump{text-align:center;font-size:14px;letter-spacing:.14em;color:var(--muted)}
.rule-pair{background:var(--soft);padding:8px 22px 25px;margin:24px 0;border-left:5px solid var(--teal)}
.shape-list{padding:8px 20px;background:var(--soft);margin:22px 0}
.shape-list p{padding:10px 0;border-bottom:1px solid var(--line);font-size:17px;margin:0}
.shape-list p:last-child{border:0}
.find-path{padding:4px 24px 24px;background:var(--soft);margin-bottom:28px}
.find-path h3{margin-top:24px}
.arrow-blue{color:var(--blue);font-weight:700}
.arrow-red{color:var(--red);font-weight:700}
.arrow-name{font-size:.82em}
.resource-list{margin:30px 0 0;border-top:1px solid var(--line)}
.resource-list a{display:block;padding:17px 0;text-decoration:none;border-bottom:1px solid var(--line);font-size:16px}
.resource-list a:hover{text-decoration:underline}
.resource-list span{display:block;font-size:12px;color:var(--muted)}
.book-footer{font-size:14px;line-height:1.9;color:var(--muted);padding:32px 0 0}
.book-footer .edition{font-size:12px;margin-top:10px}
.print-button{margin-top:18px;padding:8px 14px;background:#fff;border:1px solid var(--line);font-size:14px;color:var(--teal);min-height:44px}
.image-dialog{padding:0;border:0;border-radius:4px;box-shadow:0 10px 80px #122d4655;width:min(1200px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 28px);color:var(--ink);overflow:hidden}
.image-dialog::backdrop{background:rgba(11,28,37,.78)}
.dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);background:white;position:relative;z-index:2}
.dialog-title{font-size:15px;font-weight:700;line-height:1.6}
.dialog-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.dialog-actions button{min-height:44px;padding:8px 12px;border:1px solid var(--line);background:#fff;color:var(--teal);font-size:14px;line-height:1.5;border-radius:2px}
.dialog-actions [data-dialog-close]{background:var(--ink);color:white;border-color:var(--ink)}
.zoom-viewport{overflow:auto;max-height:calc(100dvh - 165px);padding:16px;overscroll-behavior:contain;min-height:90px;background:#f2f5f6}
.zoom-canvas{position:relative;margin:auto;width:fit-content;max-width:100%}
.zoom-canvas img{max-width:100%;width:auto;max-height:calc(100dvh - 208px);object-fit:contain;background:white}
.image-dialog.is-original .zoom-canvas{max-width:none;width:var(--zoom-width)}
.image-dialog.is-original .zoom-image{max-width:none;max-height:none;width:var(--zoom-width)}
.dialog-cover{position:absolute;top:10%;right:0;width:16.5%;height:90%;background:#eef4f4;border-left:1px solid var(--line)}
.dialog-cover[hidden]{display:none}
.dialog-caption{margin:0;padding:10px 18px 14px;line-height:1.7;font-size:13px;background:white}
.chapter-header{border-top:4px solid var(--ink)}
.reading-guide{display:flex;align-items:center;flex-wrap:wrap;gap:9px 22px;padding:16px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.7;color:#526570}
.reading-guide>span{display:flex;align-items:center;gap:7px}
.reading-guide>span::before{content:"";width:4px;height:17px;flex-shrink:0;background:var(--teal)}
.reading-guide>.legend-practice::before{background:var(--practice)}
.reading-guide>.legend-note::before{background:var(--supplement)}
.review-control{margin:0 0 20px;border-block:1px solid #e4d8bf;font-size:14px;line-height:1.8}
.review-switch{display:flex;align-items:center;gap:11px;padding:12px 4px;min-height:48px;cursor:pointer;color:var(--proposal)}
.review-switch input{width:20px;height:20px;flex-shrink:0;accent-color:var(--proposal);margin:0}
.review-switch>span{min-width:0}
.review-switch small{font-size:12px;margin-left:10px;white-space:nowrap;color:#766749}
.review-index{display:none;padding:3px 4px 17px}
.review-index p{color:#766749;font-size:13px}
.review-index ol{list-style:none;padding:0;margin-top:9px}
.review-index a{color:var(--proposal);font-size:14px;text-decoration:none;display:flex;align-items:baseline;gap:10px;padding:8px 0;min-height:44px;border-bottom:1px solid #efe5d3}
.review-index a:hover{text-decoration:underline}
.review-index a>span{font-family:Georgia,serif;font-size:13px;flex-shrink:0}
.review-note{display:none;margin:28px 0 4px;border:1px solid #e3d1ac;border-left:4px solid #b47823;background:#fff;font-size:16px;line-height:1.95;scroll-margin-top:10px}
main:has(#review-toggle:checked) .review-note,main:has(#review-toggle:checked) .review-index{display:block}
.review-note>summary{background:var(--proposal-bg);color:var(--proposal)}
.review-note>summary::after{color:var(--proposal)}
.review-note>summary:hover{background:#fff0ce}
.proposal-example{border-left:2px solid #cbac76;background:#fffbf3;padding:13px 16px;margin:20px 0 16px}
.proposal-example>span{display:block;color:var(--proposal);font-size:12px;font-weight:700;margin-bottom:5px}
.proposal-status{color:#766749;font-size:12px}
.proposal-link{color:var(--proposal);display:inline-block;font-size:13px;padding-top:7px;min-height:40px}
@media(min-width:1600px){.book-layout{max-width:1220px;grid-template-columns:248px minmax(0,760px);gap:88px}}
@media(max-width:1050px){.book-layout{grid-template-columns:210px minmax(0,760px);gap:36px;padding-inline:24px}.book-sidebar{padding-right:16px;font-size:14px}.book-sidebar .section-links a{font-size:13px}.site-header{padding-inline:24px}}
@media(max-width:850px){
  .site-header{min-height:68px;padding:12px 22px;gap:16px;flex-wrap:wrap}
  .brand{font-size:19px;gap:12px}.brand-mark{font-size:17px;padding-right:12px}.brand-sub{font-size:14px;margin-left:10px}.book-credit{display:none}
  .book-layout{display:block;max-width:804px;padding-inline:22px}.book-sidebar{display:none}
  .mobile-contents{display:block;margin-left:auto;font-size:15px;position:static}
  .mobile-contents>summary{padding:5px 0 5px 12px;min-height:44px;display:flex;gap:16px;align-items:center;font-size:15px}
  .mobile-contents>summary::after{display:none}.mobile-contents>summary>span{font-size:21px}
  .mobile-contents[open]>summary{border:0}.mobile-contents[open]{width:100%;margin-left:0;order:3}
  .mobile-contents[open]>summary>span{font-size:0}.mobile-contents[open]>summary>span::before{content:"−";font-size:21px}
  .mobile-contents[open]>summary{justify-content:flex-end;border-bottom:1px solid var(--line)}
  .mobile-contents nav{max-height:min(65dvh,600px);overflow:auto;padding:12px 4px 8px;background:white;scrollbar-width:thin}
  .mobile-contents nav>ol>li>a{min-height:46px;font-size:16px}.mobile-contents .section-links a{font-size:15px;min-height:42px}
  .mobile-contents .section-links{margin-left:30px!important}
  body:has(.mobile-contents[open]) .site-header{position:relative}
  .chapter-header{padding-top:26px}.chapter-deck{font-size:17px}.lesson-section{padding-top:26px}.pager-top{padding-top:10px}
}
@media(max-width:500px){
  html{scroll-padding-top:80px}
  body{font-size:17px;line-height:1.95}
  .site-header{padding:9px 16px;gap:8px;min-height:62px}.brand{font-size:18px;gap:10px}.brand-mark{font-size:15px;letter-spacing:0;padding-right:10px}.brand-sub{font-size:12px;margin-left:7px;letter-spacing:0}
  .mobile-contents>summary{font-size:14px;gap:9px;padding-left:7px}
  .book-layout{padding-inline:18px}.chapter-header{padding:23px 0 23px}.chapter-kicker{font-size:13px;gap:12px;margin-bottom:11px}.chapter-kicker span{font-size:12px}.chapter-deck{font-size:16px}
  h1{font-size:30px;line-height:1.55}h2{font-size:22px;line-height:1.65}h3{font-size:19px;padding-left:11px}h4{font-size:17px}
  .lesson-section>h2{margin-bottom:22px;padding:13px 13px 15px;border-left-width:4px}.section-number{font-size:12px}.lesson-section{padding:25px 0 31px}
  .source-figure{margin:23px -6px;padding:8px 8px 4px}.source-figure figcaption{margin-top:6px;padding-top:3px}.source-figure .zoom-link{font-size:13px}
  .small-figure{min-width:190px;display:block;margin-inline:auto}
  summary{font-size:15px;padding:14px 34px 14px 14px}.details-body{padding:18px 14px 21px}.details-body .source-figure{padding:6px;margin:18px -6px}
  .author-note>summary{font-size:14px}.author-note>.details-body{padding:16px 14px 20px}.author-note{font-size:15px}.note-label{font-size:12px}
  .important{padding:15px 15px;line-height:1.95}.formula{font-size:20px;letter-spacing:0}.editor-note{padding-left:13px;font-size:14px}
  .exercise-prompt{padding:13px 14px}.reading-guide{gap:9px 16px}.review-switch small{margin-left:7px}.review-note{font-size:15px}.proposal-example{padding:12px}.review-index a{font-size:13px}
  .type-table table{font-size:14px}.type-table th,.type-table td{padding:14px 8px}.type-table th:first-child{width:46%}.type-table small{font-size:12px}.type-table td>span:last-child{font-size:13px}.type-table .formula{font-size:19px;line-height:1.7}
  .pager{gap:12px;font-size:13px;padding:18px 0}.pager a{gap:7px}.pager a small{font-size:12px}.page-position{font-size:17px}.page-position span{font-size:12px;margin-left:2px}.pager-top{font-size:13px;padding:7px 0}.pager-top a{gap:5px}.pager-top a small{display:block;margin-right:0;font-size:12px}
  .find-path{padding:2px 16px 20px}.rule-pair{padding-inline:16px}.shape-list{padding-inline:14px}.shape-list p{font-size:15px}
  .book-footer{font-size:13px}.book-footer a{font-size:13px}.resource-list a{font-size:15px}
  .image-dialog{width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}
  .dialog-toolbar{padding:8px;gap:6px;align-items:flex-start;flex-wrap:wrap}.dialog-title{font-size:13px;padding:6px 2px}.dialog-actions{gap:5px;margin-left:auto;flex-wrap:wrap}.dialog-actions button{padding:8px;font-size:12px;min-height:44px}.dialog-caption{font-size:12px;padding:10px 12px}.zoom-viewport{padding:8px;max-height:calc(100dvh - 190px)}
  .zoom-canvas img{max-height:calc(100dvh - 210px)}
}
@media(prefers-reduced-motion:no-preference){a,button,summary{transition:background-color .15s,color .15s}}
@media print{
  @page{margin:16mm 14mm}
  html{scrollbar-gutter:auto}body{font-size:11pt;line-height:1.7;color:#111;background:#fff}
  .site-header,.book-sidebar,.mobile-contents,.pager,.print-button,.skip-link,.zoom-link,.image-dialog,.reading-guide,.review-control,.proposal-link{display:none!important}
  .book-layout{display:block;max-width:none;padding:0}main{padding:0}.chapter-header{padding:0 0 16px;margin-bottom:20px}
  h1{font-size:25pt}h2{font-size:17pt}h3{font-size:13pt}h2,h3,h4,summary{break-after:avoid}
  .lesson-section{padding:15px 0}.source-figure{break-inside:avoid;padding:8px;margin:16px 0}.image-surface{max-width:100%}.source-figure img{max-height:220mm;width:auto;max-width:100%;margin:auto}
  details,details[open]{display:block!important}details::details-content{content-visibility:visible!important;display:block!important;height:auto!important}details>:not(summary){display:block!important}
  .js-annotations .anchored-note{display:block!important}.note-ref{min-height:0;min-width:0;padding:0 3px;border:0;font-size:8pt}.annotated-text{background:none!important}.note-back,.annotation-guide{display:none!important}.anchored-note .note-quote{font-size:10pt}.note-quote>span{font-size:8pt}
  .review-note{display:none!important}main:has(#review-toggle:checked) .review-note{display:block!important}
  summary{font-size:11pt;padding:8px 12px;border-bottom:1px solid #ccc;break-after:avoid}summary::after{display:none}.details-body{padding:10px 12px}
  .answer-cover,.dialog-cover{display:none!important}.author-note{font-size:10pt}.important,.editor-note,.find-path,.rule-pair{background:#fff;border-left:2px solid #555}.book-footer{font-size:9pt}.type-table table{font-size:10pt}.formula{font-size:14pt}
  a{color:inherit}.chapter-deck{font-size:11pt}.figure-number{font-size:8pt}.source-figure figcaption{display:block}.answer,.digression{margin:16px 0}
  .lesson-section>h2{background:#fff;padding:8px 12px}.review-note,.exercise-prompt{font-size:10pt}.role-label,.section-number{font-size:8pt}.proposal-example{background:#fff}.review-note>summary{background:#fff}
}
