:root{--surface:#fcfcfb;--page:#f9f9f7;--ink:#0b0b0b;--ink-2:#45443f;--muted:#6d6b64;--hairline:#e1e0d9;--border:rgba(11,11,11,0.1);--accent:#2a78d6;--link:#1f6ec7;--link-hover:#15549b;--on-accent:#ffffff;--danger:#b42318;--modal-scrim:rgba(0,0,0,0.52);--shadow-color:#000000;--print-page:#ffffff;--print-ink:#000000;--theme-swatch-system:linear-gradient(135deg,#f9f9f7 0 50%,#1d1e20 50% 100%);--theme-swatch:#f9f9f7;--gauge-basic:#6da7ec;--gauge-advanced:#2a78d6;--gauge-applied:#184f95;--unlock:#1baf7a;--thm-tint:rgba(42,120,214,0.05);--column-tint:rgba(27,175,122,0.05);--article-assertion:#1769aa;--article-assertion-tint:#e7f2fc;--article-example:#197546;--article-example-tint:#e7f6ec;--article-remark:#956600;--article-remark-tint:#fff6d2;--article-warning:#b53a35;--article-warning-tint:#ffeae8;--article-marker:#f4d45b;--content-font-size:15px;--text-scale:1;--header-h:72px;--main-gap-top:20px;--main-pad:24px;--page-width:960px;--reading-width:760px;--aside-width:312px;--aside-gap:24px;--reading-main-width:calc(var(--reading-width) + 2 * var(--main-pad));--reading-pair-width:calc(var(--reading-main-width) + var(--aside-gap) + var(--aside-width));--scene-gutter:max(64px,(100vw - var(--reading-pair-width))/2);--scene-inset:8px}@media (max-width:720px){:root{--header-h:48px}}@media (max-width:1179.98px){:root{--scene-gutter:max(64px,(100vw - var(--reading-main-width))/2)}}@media (max-width:640px){:root{--scene-gutter:34vw}}:root:not([data-app-theme]){--claim-tint:rgba(128,128,128,0.045)}*{box-sizing:border-box}html{scroll-padding-top:16px;text-size-adjust:100%}@supports (-webkit-touch-callout:none){html{-webkit-text-size-adjust:none}}:root.header-editing{scroll-padding-top:0}:root{--body-weight:400;--body-weight-min:100}@media (max-width:640px){:root{--body-weight-min:400}}:root[data-text-size=small]{--text-scale:0.9}:root[data-text-size=large]{--text-scale:1.15}:root[data-text-size=xlarge]{--text-scale:1.3}body{margin:0;background:var(--page);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;font-weight:max(var(--body-weight),var(--body-weight-min));line-height:1.7;overflow-wrap:break-word}:where(a){color:var(--link);text-decoration:none;text-underline-offset:2px;text-decoration-thickness:1px}:where(a:hover){text-decoration:underline}b,strong{font-weight:700}.site-header{position:relative;z-index:60;display:grid;grid-template-columns:minmax(max-content,1fr) minmax(200px,310px) minmax(max-content,1fr);container:site-header/inline-size;align-items:center;grid-gap:24px;gap:24px;min-height:var(--header-h);--header-inset:max(var(--main-pad),calc(50% - var(--page-width) / 2 + var(--main-pad)));padding:10px var(--header-inset);border-bottom:1px solid var(--hairline);background:var(--surface)}body:has(.lesson-aside) .site-header{--header-inset:max(var(--main-pad),calc(50% - var(--reading-main-width) / 2 + var(--main-pad)))}@media (min-width:1180px){body:has(.lesson-aside) .site-header{padding-left:calc(max(0px, 50% - var(--reading-pair-width) / 2) + var(--main-pad));padding-right:calc(100% - max(0px, 50% - var(--reading-pair-width) / 2) - var(--reading-pair-width) + 8px)}body:has(.lesson-aside) .site-header{grid-template-columns:minmax(max-content,1fr) minmax(200px,360px) calc(var(--main-pad) + var(--aside-gap) + var(--aside-width) - 8px);column-gap:0}}.site-title{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:12px;justify-self:start}.site-logo{display:inline-block;height:22px;aspect-ratio:7125.86/860.84;background-color:currentColor;-webkit-mask:url(/logo.svg) left center/contain no-repeat;mask:url(/logo.svg) left center/contain no-repeat}.site-brand-en{display:flex;flex-direction:column;color:var(--muted);font-size:10px;line-height:1.2;letter-spacing:.01em;white-space:nowrap}.site-brand-en>span:last-child{margin-left:.13em}.site-progress-link{font-size:13px;white-space:nowrap;color:var(--ink-2);text-decoration:none}.site-progress-link:hover{color:var(--ink)}.site-search-inline{width:100%}.site-header.site-header--search-end{grid-template-columns:minmax(max-content,1fr) minmax(200px,310px) max-content}@container site-header (max-width: 712px){.site-brand-en{display:none}}.site-menu-trigger:focus-visible,.site-menu>a:focus-visible,.site-mobile-search-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-menu-trigger svg,.site-mobile-search-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.site-subnav{display:flex;align-items:center;justify-self:end;gap:16px}.site-menu,.site-menu-trigger,.site-mobile-search,.site-mobile-search-trigger{display:none}.site-mobile-search:has(>.site-mobile-search-panel){display:block}.site-mobile-search-panel{position:fixed;z-index:70;top:max(4px,env(safe-area-inset-top));left:max(6px,calc(50% - 320px));right:max(6px,calc(50% - 320px));padding:6px;border:1.5px solid var(--frame-edge);border-radius:12px;background:var(--surface);box-shadow:0 12px 30px color-mix(in srgb,var(--shadow-color) 18%,transparent)}.site-mobile-search-panel .site-search-results{width:100%;max-height:65dvh}.site-search{position:relative;width:100%;margin:0}.site-search-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-search-field{position:relative}.site-search-field input{width:100%;padding:7px 34px 7px 12px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface) 86%,transparent);color:var(--ink);font:inherit;font-size:13px;outline:none}.site-search-field input::placeholder{color:var(--muted)}.site-search-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.site-search-icon{position:absolute;top:50%;right:12px;color:var(--muted);font-size:19px;line-height:1;transform:translateY(-53%);pointer-events:none}.site-search-results{position:absolute;z-index:40;top:calc(100% + 7px);right:0;left:0;padding:6px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface);box-shadow:0 12px 30px var(--border);width:min(560px,calc(100vw - 40px));left:auto;max-height:min(680px,75dvh);overflow-y:auto;overscroll-behavior:contain}.site-search-result{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:13px}.site-search-result:focus-visible,.site-search-result:hover,.site-search-result[aria-selected=true]{background:var(--page);outline:none}.site-search-result small{color:var(--muted);font-size:11px}.site-search-empty{margin:6px 10px;color:var(--muted);font-size:12px}@media (max-width:720px){body.site-menu-open{overflow:hidden;overscroll-behavior:none}.site-header{display:flex;padding:6px 12px;gap:8px}.site-title{margin-right:auto}.site-title .site-logo{height:19px}.site-search-inline,.site-subnav,.site-title .site-brand-en{display:none}.site-mobile-search{position:relative;display:block}.site-menu-trigger,.site-mobile-search-trigger{position:relative;display:grid;width:36px;height:36px;place-items:center;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--ink-2);cursor:pointer}.site-menu-trigger:before,.site-mobile-search-trigger:before{content:"";position:absolute;inset:-4px}.site-mobile-search-trigger{font:inherit;font-size:25px;line-height:1}.site-menu{position:absolute;z-index:50;top:calc(100% + 8px);right:12px;display:grid;width:min(260px,calc(100vw - 24px));padding:8px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface);box-shadow:0 12px 30px color-mix(in srgb,var(--shadow-color) 18%,transparent)}.site-menu-backdrop{position:fixed;z-index:40;inset:0;background:color-mix(in srgb,var(--ink) 8%,transparent);touch-action:none;cursor:pointer}.site-menu-trigger.is-open{position:relative;z-index:51}.site-menu>a{display:block;min-height:44px;padding:10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px}.site-menu>a:focus-visible,.site-menu>a:hover{background:var(--page)}}.site-main{margin:var(--main-gap-top) auto 0;padding:var(--main-pad)}.site-footer,.site-main{max-width:var(--page-width)}.site-footer{margin:48px auto 0;padding:16px var(--main-pad);color:var(--muted);font-size:12px;border-top:1px solid var(--hairline)}.site-footer-brand{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;color:var(--ink-2);text-decoration:none}.site-footer-brand:hover{color:var(--ink)}.site-footer-brand .site-logo{height:18px}.site-footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;font-size:12.5px}.site-footer-links a{color:var(--ink-2);text-decoration:none}.site-footer-links a:hover{color:var(--ink);text-decoration:underline}.site-footer-x{display:inline-flex;align-items:center;gap:5px}.site-footer-x svg{width:13px;height:13px;fill:currentColor}.site-footer-copy{margin:10px 0 0}.about-page{max-width:var(--reading-width);margin:0 auto}.about-page h1{margin-bottom:18px}.about-page p{color:var(--ink-2)}.about-page .about-lead{color:var(--ink);font-size:16px}.not-found-page{max-width:var(--reading-width);margin:0 auto}.not-found-eyebrow{margin:14px 0 0;color:var(--muted);font-size:12px;letter-spacing:.14em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.not-found-page h1{margin:2px 0 20px}.not-found-path{font-size:.92em;padding:1px 6px;border-radius:4px;background:color-mix(in srgb,var(--ink) 6%,transparent);overflow-wrap:anywhere}.not-found-search{max-width:440px;margin:26px 0 14px}.not-found-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;font-size:14px}.btn{font:inherit;font-size:13px;padding:4px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink);cursor:pointer}.btn:hover{border-color:var(--accent)}.btn-ghost{border-color:transparent;color:var(--accent);background:transparent}.site-search-result-title{font-weight:600}.site-search-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:var(--ink-2);font-size:12px;line-height:1.65;margin-top:4px;overflow-wrap:anywhere}.site-search-all{display:flex;justify-content:space-between;gap:10px;padding:6px 10px 10px;margin-bottom:4px;border-bottom:1px solid var(--hairline);color:var(--link);font-size:12px}.search-message button,.site-search-empty button{margin-left:8px;padding:4px 10px;border:1px solid var(--border);border-radius:5px;color:var(--link);background:var(--page);font:inherit;cursor:pointer}.search-page{max-width:840px;margin:0 auto;padding:12px 0 32px}.search-page h1{margin:24px 0 8px;font-size:28px}.search-lead{color:var(--ink-2);line-height:1.8}.search-page-form{margin:28px 0 8px}.search-page-form label{display:block;margin-bottom:8px;font-size:13px}.search-page-field{display:flex;gap:10px}.search-page-field input{flex:1 1;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:16px;padding:12px 14px}.search-page-field button{border:0;border-radius:8px;padding:10px 22px;background:var(--accent);color:var(--on-accent);font:inherit;cursor:pointer}.search-help{color:var(--muted);font-size:12px;line-height:1.8}.search-examples{margin:32px 0;color:var(--ink-2);line-height:1.8}.search-examples nav{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:14px}.search-filters{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--hairline);margin-top:30px;padding-bottom:16px}.search-filters a{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--hairline);border-radius:999px;color:var(--ink-2);text-decoration:none;font-size:13px}.search-filters a[aria-current]{border-color:var(--accent);color:var(--link);background:var(--thm-tint)}.search-filters a span{color:var(--muted);font-size:11px}.search-count,.search-message{color:var(--muted);font-size:13px;margin:20px 0}.search-result-card{padding:20px 0;border-bottom:1px solid var(--hairline);min-width:0}.search-result-context{margin:0 0 6px;color:var(--muted);font-size:12px}.search-result-card h2{margin:0 0 12px;font-size:17px;line-height:1.6}.search-result-excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;line-height:1.9;font-size:14px;color:var(--ink-2);overflow-wrap:anywhere}.search-result-full{margin-top:10px;font-size:13px}.search-result-full summary{width:-moz-fit-content;width:fit-content;color:var(--link);cursor:pointer;padding:6px 0}.search-result-statement{margin:10px 0 16px;padding:16px;border-left:2px solid var(--accent);background:var(--thm-tint);white-space:pre-line;line-height:2;font-size:14px;overflow-wrap:anywhere;overflow-x:auto}.search-math{max-width:100%}.search-math .katex{font-size:1.05em}.search-math .katex-display{overflow-x:auto;overflow-y:hidden;padding:2px 0}.search-result-excerpt .katex-display,.site-search-preview .katex-display{display:inline;margin:0}.search-page mark,.site-search mark{background:var(--article-marker);color:var(--print-ink);border-radius:2px}.search-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:28px;gap:16px;font-size:13px}.search-page a:focus-visible,.search-page button:focus-visible,.search-page input:focus-visible,.search-page summary:focus-visible,.site-search-all:focus-visible,.site-search-empty button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (max-width:600px){.site-search-field input{font-size:16px}.search-page h1{font-size:24px}.search-page-field button{padding:10px 16px}.search-filters{gap:6px}.search-filters a{padding:7px 10px;font-size:12px}.search-result-card h2{font-size:16px}}.roadmap-intro{margin:4px 0 22px}.roadmap-intro h1{margin:0 0 4px;font-size:22px;font-weight:700;color:var(--ink)}.roadmap-intro p{margin:0;font-size:13.5px;color:var(--ink-2)}.roadmap-row{border-top:1px solid var(--hairline);padding:12px 0 20px}.roadmap-year{display:flex;align-items:baseline;gap:10px;margin:0 0 10px}.roadmap-stage{font-size:15px;font-weight:700;letter-spacing:.04em;color:var(--ink)}.roadmap-year-hint{margin-left:auto;font-size:12px;font-weight:max(var(--body-weight),var(--body-weight-min));color:var(--muted)}.roadmap-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px;gap:12px}.polish-gauge,.unit-card{--polish-hue:var(--polish-base,var(--unlock));--polish-color:var(--polish-fill,color-mix(in srgb,var(--polish-hue) 13%,transparent))}.unit-card{display:block;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(to right,var(--polish-color) calc(var(--polish, 0) * 100%),transparent 0),var(--surface);color:var(--ink);text-decoration:none;transition:border-color .15s}.unit-card:hover{border-color:var(--accent)}.unit-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.unit-card-title{font-weight:600;font-size:14px}.unit-card-polish{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.unit-card-arrow{flex:none;color:var(--muted);font-size:13px}.unit-card:hover .unit-card-arrow{color:var(--accent)}.polish-gauge{display:inline-block;flex:none;width:48px;height:8px;border-radius:4px;background:linear-gradient(to right,var(--polish-hue) calc(var(--polish, 0) * 100%),transparent 0),var(--hairline)}.home-page{max-width:640px;margin:8px 0 24px}.home-page h1{margin:0 0 8px;font-size:24px;font-weight:700;color:var(--ink)}.home-entry{display:grid;grid-template-columns:1fr auto;grid-column-gap:12px;column-gap:12px;align-items:center;padding:16px 18px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);color:var(--ink);text-decoration:none}.home-entry:hover{border-color:var(--accent)}.home-entry-title{font-size:18px;font-weight:700}.home-entry-arrow{grid-column:2;grid-row:1/span 2;color:var(--muted);font-size:18px}.unit-summary{color:var(--ink-2);line-height:1.7}.unit-polish{margin:-6px 0 12px;font-size:12px;color:var(--muted)}.unit-polish a{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none}.unit-polish a:hover{color:var(--link-hover)}.unit-syllabus-inline{margin-top:34px}.unit-code{font:inherit;color:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.02em;margin-right:.4em;white-space:nowrap}.level-section{margin-top:26px}.level-section:first-of-type{margin-top:16px}.unit-title-count{margin-left:1.5em;font-size:13px;font-weight:400;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;vertical-align:.15em}.unit-excludes-block{margin-top:34px;padding:13px 15px;border:1px solid var(--hairline);border-left:3px solid var(--muted);border-radius:8px;background:color-mix(in srgb,var(--surface) 78%,transparent);color:var(--ink-2);font-size:13px;line-height:1.7}.unit-excludes-block>h2{margin:0 0 7px;color:var(--ink-2);font-size:14px;font-weight:700}.unit-excludes-block .unit-excludes{margin:0;padding-left:1.35em}.unit-excludes-block .unit-excludes li{margin:4px 0}.checklist{margin-top:8px}.unit-page{counter-reset:lesson}.lesson-list{list-style:none;padding:0;margin:0}.content-group-section+.content-group-section{margin-top:22px}.content-group-title{margin:14px 0 5px;padding:0 2px 5px;border-bottom:1px solid var(--hairline);color:var(--ink-2);font-size:14px;font-weight:600;letter-spacing:.02em}.lesson{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;padding:5px 2px;counter-increment:lesson}.lesson:before{content:counter(lesson) ".";flex:none;min-width:1.5em;color:var(--ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-main{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px}.lesson-link{flex:0 1 auto;min-width:0;font-weight:500;color:var(--link);text-decoration:none}.lesson-link:hover{text-decoration:underline}.lesson-link.is-planned{color:var(--muted);font-weight:400}.lesson-link.is-planned:hover{text-decoration:none}.lesson-tail{flex:none;display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-wip{color:var(--ink-2)}.pager{margin-top:28px;padding-top:14px;border-top:1px solid var(--hairline)}.pager-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;grid-gap:10px;gap:10px}.pager-center,.pager-side{display:flex;flex-direction:column;gap:3px;padding:9px 12px;border:1px solid var(--hairline);border-radius:8px;text-decoration:none;color:var(--ink);background:transparent}a.pager-center:hover,a.pager-side:hover{border-color:var(--accent);background:color-mix(in srgb,var(--surface) 55%,transparent)}.pager-empty{border-color:transparent;background:transparent}.pager-kind{font-size:11px;color:var(--muted);letter-spacing:.04em}.pager-label{font-size:14px;line-height:1.4}.pager-arrow{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pager-arrow-lead{margin-right:.4em}.pager-arrow-trail{margin-left:.4em}.pager-next{text-align:right;align-items:flex-end}.pager-center{align-items:center;text-align:center;max-width:260px}.lesson-aside{display:none}.site-main:has(.lesson-aside),body:has(.lesson-aside) .site-footer{max-width:var(--reading-main-width)}.site-main:has(>.lesson-after){--panel-pad-y:var(--main-pad);--panel-pad-x:var(--main-pad)}@media (max-width:640px){.site-main:has(>.lesson-after){--panel-pad-y:16px;--panel-pad-x:12px}}.site-main>.lesson-page:has(~.lesson-after){width:auto;max-width:none;margin:var(--panel-pad-y) calc(-1 * var(--panel-pad-x));padding:var(--panel-pad-y) var(--panel-pad-x)}.site-main>.lesson-page:has(~.lesson-after)>.lesson-content:first-child>.article-body,.site-main>.lesson-page:has(~.lesson-after)>.lesson-content:first-child>.article-body>:first-child{margin-top:0}.lesson-after>:first-child{margin-top:0;padding-top:0;border-top:0}@media (min-width:1180px){.site-main:has(.lesson-aside){position:relative;margin-left:max(0px,calc(50% - var(--reading-pair-width) / 2));margin-right:0}.site-main:has(.lesson-aside) .pager{margin-right:calc(-1 * (var(--main-pad) + var(--aside-gap) + var(--aside-width) - 8px))}body:has(.lesson-aside) .site-footer{margin-left:max(0px,calc(50% - var(--reading-pair-width) / 2));margin-right:0}.lesson-before>.ad-slot{display:none}.lesson-aside{display:block;position:absolute;top:var(--main-pad);bottom:var(--pager-block,var(--main-pad));left:calc(100% + var(--aside-gap));width:var(--aside-width)}.lesson-aside-inner{position:-webkit-sticky;position:sticky;top:calc(var(--header-h) + var(--main-gap-top) + var(--main-pad));max-height:calc(100vh - (var(--header-h) + var(--main-gap-top) + var(--main-pad)) - 16px);overflow-y:auto;overscroll-behavior:contain;font-size:calc(13px * var(--text-scale));line-height:1.5;padding-right:8px;padding-left:8px;margin-left:-8px}@supports (animation-timeline:scroll()){.lesson-aside-inner{--aside-top-start:calc(var(--header-h) + var(--main-gap-top) + var(--main-pad));--aside-top-stuck:16px;top:var(--aside-top-stuck);animation:lesson-aside-grow linear both;animation-timeline:scroll(root);animation-range:0 calc(var(--aside-top-start) - var(--aside-top-stuck))}}}@media (max-width:1179.98px){:root[data-toc-open] .lesson-aside{display:block;position:fixed;z-index:39;top:calc(var(--header-h) + 12px);bottom:16px;width:min(420px,calc(100vw - 73px));overflow-y:auto;overscroll-behavior:contain;padding:16px 8px 16px 14px;border:1.5px solid var(--frame-edge);border-radius:14px;background:var(--surface);box-shadow:0 12px 40px color-mix(in srgb,var(--shadow-color,#000) 22%,transparent);font-size:calc(14px * var(--text-scale));line-height:1.5}:root[data-toc-open=r] .lesson-aside{left:auto;right:72px}:root[data-toc-open=l] .lesson-aside{left:72px;right:auto}:root[data-toc-open] .lesson-aside .ad-slot{display:none}}@keyframes lesson-aside-grow{0%{max-height:calc(100vh - var(--aside-top-start) - 16px)}to{max-height:calc(100vh - var(--aside-top-stuck) - 16px)}}.lesson-aside .ad-slot{margin:0 0 20px;min-height:250px}.lesson-toc-unit{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-weight:700;font-size:calc(14px * var(--text-scale));color:var(--ink);text-decoration:none;padding-bottom:8px;border-bottom:1px solid var(--hairline);transition:color .12s,border-color .12s}.lesson-toc-unit:focus-visible,.lesson-toc-unit:hover{color:var(--link);border-bottom-color:var(--link)}.lesson-toc-unit .lesson-toc-unit-count{flex:none;font-size:calc(11px * var(--text-scale));font-weight:400;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-toc-group{margin-top:14px}.lesson-toc-level{margin:0 0 5px;font-size:calc(11px * var(--text-scale));letter-spacing:.06em;color:var(--muted)}.lesson-toc-list{list-style:none;margin:0;padding:0}.lesson-toc-list :is(a,.is-planned){display:flex;gap:7px;margin-left:-8px;padding:3px 8px 3px 6px;border-radius:0;color:var(--ink-2);text-decoration:none;border-left:2px solid transparent}.lesson-toc-list a:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.lesson-toc-no{flex:none;min-width:1.4em;text-align:left;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-toc-list .is-planned .lesson-toc-title,.lesson-toc-no{color:var(--muted)}.lesson-toc-list .is-current a{color:var(--ink);font-weight:700;border-left-color:var(--accent);background:color-mix(in srgb,var(--ink) 5%,transparent)}.lesson-toc-list .is-current a:hover{background:color-mix(in srgb,var(--ink) 9%,transparent)}.gallery-item{counter-increment:none}.gallery-item:before{content:"・";min-width:1.2em;color:var(--muted)}.lesson-after,.lesson-before,.lesson-page{width:100%;max-width:var(--reading-width);min-width:0;margin:0 auto}.article-body,.lesson-after>*,.lesson-before>*,.lesson-content,.lesson-page>*,.lesson-problems,.problem,.problem-set{min-width:0;max-width:100%}.article-body{margin-top:8px;font-size:calc(var(--content-font-size) * var(--text-scale));line-height:1.85}.article-full{margin-top:16px}.lesson-problems>h2,.worked-examples>h2{font-size:17px;margin:28px 0 8px}.problem-group-prompt{font-size:14px;margin:6px 0}.problem-group-prompt.lead{margin-bottom:12px}.problem-shared-prompt{font-size:14px;margin:6px 0}.worked-examples-lead{font-size:13px;color:var(--ink-2);margin:0 0 10px}.example-cards{display:grid;grid-gap:0;gap:0;list-style:none;margin:0;padding:0}.example-card{min-width:0;max-width:100%;padding:9px 0}.example-card+.example-card{border-top:1px solid var(--hairline)}.example-card-label{margin:0 0 5px;color:var(--accent);font-size:12px;font-weight:700}.worked-example-group+.worked-example-group{margin-top:18px;padding-top:14px;border-top:1px solid var(--hairline)}.table-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;scrollbar-width:thin}.drill-grid{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(var(--drill-cols,1),minmax(0,1fr));grid-column-gap:24px;column-gap:24px}.drill-cell{display:flex;align-items:center;gap:10px;min-width:0;padding:7px 0;border-bottom:1px solid var(--hairline);font-size:15px}.drill-index{flex:none;color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.drill-prompt{max-width:28rem}.drill-expression,.drill-prompt{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.drill-grid--prompted .drill-expression{flex:0 1 auto}.drill-answer-btn{flex:none;margin-left:auto;padding:0 6px;font-size:12px;white-space:nowrap}.example-quick-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}.example-quick-row .problem-prompt{flex:1 1 auto;min-width:0}.example-explain-button{flex:none;white-space:nowrap}.example-card .tex-display{margin:3px 0 0;padding:0 0 3px}.problem-set-actions{display:inline-flex;gap:6px;align-items:center;min-width:0;flex-wrap:wrap;justify-content:flex-end}.lesson-after .problem-set,.lesson-page .problem-set{margin-left:0}.lesson-references{margin:28px 0 0;padding-top:12px;border-top:1px solid var(--hairline);font-size:13px;color:var(--ink-2)}.lesson-references>h2{font-size:14px;margin:0 0 6px}.lesson-references ol{margin:0;padding-left:0;list-style:none;counter-reset:reference}.lesson-references ol>li{position:relative;padding-left:2.4em;counter-increment:reference}.lesson-references ol>li:before{content:"[" counter(reference) "]";position:absolute;left:0;color:var(--ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-references li{margin:2px 0}.lesson-references a.ref-journal,.lesson-references a.ref-publisher,.lesson-references a.ref-series{color:inherit}.lesson-prereq-end .lesson-prereq-list{margin:0;padding-left:0;list-style:none}.lesson-prereq-end .lesson-prereq-list li{margin:2px 0}.lesson-prereq-list .is-planned{color:var(--muted)}.lesson-prereq-end summary{cursor:pointer;color:var(--muted);width:-moz-fit-content;width:fit-content;list-style:none}.lesson-prereq-end summary::-webkit-details-marker{display:none}.lesson-prereq-end summary:after{content:"▶";display:inline-block;margin-left:.45em;font-size:.9em;line-height:1}.lesson-prereq-end details[open]>summary:after{content:"▼"}.lesson-prereq-end details[open]>summary{margin-bottom:4px}.lesson-share{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.lesson-share--footer{margin:28px 0 0;padding-top:14px;border-top:1px solid var(--hairline)}.lesson-share-status{flex-basis:100%;margin:0;color:var(--muted);font-size:12px}.share-panel{--share-slot:64px;--share-disc:46px;--share-gap-x:6px;--share-dark:calc(var(--dark-scheme, 0) * 100%);--share-fill:color-mix(in srgb,color-mix(in srgb,color-mix(in srgb,var(--accent) 8%,var(--surface)) 60%,transparent) var(--share-dark),color-mix(in srgb,color-mix(in srgb,var(--accent) 4%,#fff) 50%,transparent));--share-fill-hover:color-mix(in srgb,color-mix(in srgb,color-mix(in srgb,var(--accent) 18%,color-mix(in srgb,var(--ink) 22%,var(--surface))) 90%,transparent) var(--share-dark),color-mix(in srgb,color-mix(in srgb,var(--accent) 16%,#fff) 88%,transparent));--share-edge:color-mix(in srgb,var(--ink) 10%,transparent);display:flex;flex-direction:column;align-items:flex-start;gap:14px;flex-basis:100%}.share-primary{display:flex;flex-wrap:wrap;gap:10px calc(var(--share-slot) - var(--share-disc) + var(--share-gap-x))}.share-copy,.share-x{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:calc(var(--share-slot) + var(--share-gap-x) + var(--share-disc));height:var(--share-disc);padding:0;border:0;border-radius:999px;color:var(--ink);font:inherit;font-size:14px;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer}.share-copy,.share-target-disc,.share-x{background:var(--share-fill);box-shadow:inset 0 0 0 1px var(--share-edge);transition:background-color .15s,color .15s,box-shadow .15s}.share-copy:focus-visible,.share-copy:hover,.share-target:focus-visible .share-target-disc,.share-target:hover .share-target-disc,.share-x:focus-visible,.share-x:hover{background:var(--share-fill-hover)}.share-copy-logo,.share-x-logo{flex:none;width:16px;height:16px;fill:currentColor}.share-copy[data-copied],.share-copy[data-copied]:focus-visible,.share-copy[data-copied]:hover{background:var(--accent);color:var(--on-accent);box-shadow:none}.share-targets{display:flex;flex-wrap:wrap;gap:10px var(--share-gap-x);margin:0 calc((var(--share-disc) - var(--share-slot)) / 2);padding:0;list-style:none}.share-target{display:flex;justify-content:center;width:var(--share-slot);padding:0;border:0;background:none;color:var(--ink-2);font:inherit;text-decoration:none;cursor:pointer}.share-target-disc{display:grid;place-items:center;width:var(--share-disc);height:var(--share-disc);border-radius:50%}.share-target-logo{width:22px;height:22px;fill:var(--brand,currentColor)}.share-target--line{--brand:#06c755}.share-target--hatena{--brand:#00a4de}.share-target--linkedin{--brand:#0a66c2}.share-target--facebook{--brand:#0866ff}.share-target--reddit{--brand:#ff4500}.share-target--weibo{--brand:#e6162d}.share-target--naver{--brand:#03c75a}.share-dialog{width:min(600px,calc(100vw - 32px));max-width:none;padding:16px 18px 20px;border:1.5px solid var(--frame-edge);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 12px 40px color-mix(in srgb,var(--ink) 18%,transparent)}.share-dialog::-webkit-backdrop{background:color-mix(in srgb,#000 40%,transparent)}.share-dialog::backdrop{background:color-mix(in srgb,#000 40%,transparent)}.share-dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.share-dialog-title{margin:0;font-weight:600}.share-dialog-close{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:none;color:var(--ink-2);cursor:pointer}.share-dialog-close:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.share-dialog-close svg{width:20px;height:20px;fill:currentColor}.title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.title-row>h1{min-width:0}.share-button{position:relative;flex:none}.share-button-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:13px;line-height:1.4;white-space:nowrap;cursor:pointer}.share-button-btn:hover,.share-button-btn[aria-expanded=true]{border-color:var(--accent);color:var(--ink)}.share-button-btn svg{width:15px;height:15px;fill:currentColor}.share-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:41;width:min(360px,calc(100vw - 32px));padding:14px 16px 16px;border:1.5px solid var(--frame-edge);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 12px 40px color-mix(in srgb,var(--shadow-color,#000) 22%,transparent)}.share-popover .share-panel{--share-slot:54px;--share-disc:40px;--share-gap-x:2px;gap:10px}.share-popover .share-targets{row-gap:8px}.share-popover .share-target-logo{width:20px;height:20px}.share-popover .share-copy,.share-popover .share-x{font-size:13px}