.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:var(--fs-xs)}.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:var(--radius-pill);color:var(--ink);font-size:var(--fs-md);font-weight:var(--fw-semibold);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);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}.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:var(--fw-semibold)}.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;color:var(--ink-2);line-height:1.4;white-space:nowrap;cursor:pointer}.share-button-btn:hover,.share-button-btn[aria-expanded=true]{background:color-mix(in srgb,var(--surface) 50%,transparent);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}:is(.share-popover,.reader-panel,.site-menu) .share-panel{--share-slot:54px;--share-disc:40px;--share-gap-x:2px;gap:10px}:is(.share-popover,.reader-panel,.site-menu) .share-targets{row-gap:8px}:is(.share-popover,.reader-panel,.site-menu) .share-target-logo{width:20px;height:20px}:is(.share-popover,.reader-panel,.site-menu) :is(.share-x,.share-copy){font-size:var(--fs-sm)}.breadcrumb.lesson-aside-crumbs{margin:0 0 14px;font-size:calc(var(--fs-xs) * var(--text-scale));line-height:1.6}.ad-slot{margin:20px 0;min-height:64px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--hairline);border-radius:var(--radius-md);background:var(--surface)}.ad-slot-label{font-size:var(--fs-2xs);letter-spacing:.12em;color:var(--muted)}.lesson-intro{margin-bottom:0;color:var(--ink-2)}.lesson-intro .article-body{font-size:calc(var(--content-font-size-sub) * var(--text-scale))}.lesson-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title share" "updated updated";grid-row-gap:0;row-gap:0}.lesson-head>h1{grid-area:title}.lesson-head>.share-button{grid-area:share}.lesson-head>.lesson-updated{grid-area:updated}.lesson-updated{margin:-6px 0 0;font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-head:has(>.lesson-updated){margin-bottom:18px}.site-page-before>h1{margin:0 0 12px;text-wrap:balance}.site-page-before>.breadcrumb{margin:0}.site-page-body{color:var(--ink)}.site-page-body>:first-child,.site-page-content>:first-child{margin-top:0}.site-page-content .site-content-logo{--logo-scale:0.5;width:100%;max-width:100%;height:auto;margin-inline:auto}.site-page-body .news-list{list-style:none;padding:0;margin:28px 0;border-top:1px solid var(--hairline)}.news-list{display:grid;grid-template-columns:max-content max-content minmax(0,1fr);grid-column-gap:20px;column-gap:20px}.news-list li{grid-column:1/-1;display:grid;grid-template-columns:subgrid;align-items:baseline;grid-row-gap:10px;row-gap:10px;padding:18px 0;border-bottom:1px solid var(--hairline)}.news-list time,.news-meta,.site-page-meta{color:var(--ink-2);font-size:var(--fs-md)}.news-meta,.site-page-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 20px}.news-category{display:inline-block;padding:2px 8px;border:1px solid var(--hairline);border-radius:var(--radius-xs);color:var(--ink-2);font-size:var(--fs-xs)}@media (max-width:600px){.news-list{grid-template-columns:max-content minmax(0,1fr)}.news-list .news-category{justify-self:start}.news-list li>a{grid-column:1/-1}}.article-body>:first-child{margin-top:0}.article-body p{margin:12px 0}.article-body ol,.article-body ul{margin:6px 0;padding-left:1.4em}.article-body p:has(+:is(ul,ol,.enumerate)){margin-bottom:6px}.article-body :is(ul,ol,.enumerate)+p{margin-top:6px}.article-body li,.article-body li>ol,.article-body li>ul{margin:0}.article-body :is(em,strong){font-weight:var(--fw-bold)}.article-body em{font-style:normal}.article-body code{font-size:.88em;background:var(--page);border:1px solid var(--hairline);border-radius:var(--radius-xs);padding:.08em .35em}.article-body pre{overflow-x:auto;background:var(--page);border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:.75rem .9rem;margin:1.1em 0;line-height:1.55}.article-body pre code{display:block;background:none;border:0;border-radius:0;padding:0;font-size:.85em}.article-body h1{font-size:calc(var(--content-h1-size) * var(--text-scale))}.article-body h2{display:flex;align-items:baseline;gap:.55em;font-size:calc(var(--content-h2-size) * var(--text-scale));font-weight:var(--fw-bold);letter-spacing:.01em;margin:42px 0 12px;padding:0 0 5px;border-bottom:1px solid var(--hairline);scroll-margin-top:16px}.article-body>h2:first-child{margin-top:42px}.article-body .article-heading-number{flex:none;min-width:1.4em;color:inherit;font:inherit;letter-spacing:inherit}.article-body .article-heading-text{min-width:0}.article-body h3{display:flex;align-items:baseline;gap:.5em;font-size:calc(var(--content-h3-size) * var(--text-scale));font-weight:var(--fw-bold);color:var(--ink-2);margin:28px 0 8px}.article-body blockquote{margin:16px 0;padding:6px 14px;border-left:3px solid var(--accent);background:var(--page);color:var(--ink-2)}.article-body table{width:100%;max-width:100%;margin:18px 0;border:1px solid var(--hairline);border-spacing:0;border-radius:var(--radius-md);font-size:.94em}@media (max-width:640px){.article-body table{display:block;overflow-x:auto;width:max-content;max-width:100%}}.article-body td,.article-body th{padding:8px 10px;border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);vertical-align:top}.article-body td:not([align]),.article-body th:not([align]){text-align:left}.article-body td:last-child,.article-body th:last-child{border-right:0}.article-body tbody tr:last-child>:is(th,td){border-bottom:0}.article-body thead th{background:color-mix(in srgb,var(--page) 72%,var(--surface));color:var(--ink-2);font-weight:var(--fw-bold)}.lesson-page .article-body>*{content-visibility:auto;contain-intrinsic-size:auto 100px}:root{--article-marker-height:0.32em;--article-marker-drop:0.08em}.article-body .mblock{--mblock-color:var(--article-assertion);--mblock-tint:var(--article-assertion-tint);margin:18px 0;padding:10px 12px 10px 14px;border-left:3px solid var(--mblock-color);border-radius:0 var(--radius-xs) var(--radius-xs) 0;background:color-mix(in srgb,var(--mblock-tint) 40%,transparent)}.article-body .mblock>:first-child{margin-top:0}.article-body .mblock>:last-child{margin-bottom:0}.article-body .mblock>p:first-child>strong:first-child{color:var(--ink);margin-right:.75em;padding:0;background:none}.article-body .mblock--example{--mblock-color:var(--article-example);--mblock-tint:var(--article-example-tint)}.article-body .mblock--remark{--mblock-color:var(--article-remark);--mblock-tint:var(--article-remark-tint)}.article-body :is(.mblock--warning,.mblock--remark[id*=warning i]){--mblock-color:var(--article-warning);--mblock-tint:var(--article-warning-tint)}.article-body .mblock--proof{margin:12px 0 18px;padding:0;border-left:none;border-radius:0;background:none}.article-body .mblock--proof>p:first-child>strong:first-child{color:var(--ink)}.article-body :is(.mblock--proof,.mblock--example,.mblock--remark){font-size:calc(var(--content-font-size-sub) * var(--text-scale))}.article-body .mblock--formula{border-left-width:2px;background:none}.article-body .mblock+.mblock{margin-top:12px}.article-body .mblock+.mblock--proof{margin-top:8px}.article-body .mblock-claim-group{--claim-indent:14px;--claim-top:2px;margin:12px 0;padding:var(--claim-top) 0 2px var(--claim-indent);border-left:2px solid var(--claim-rule,rgba(128,128,128,.45))}.article-body .mblock+.mblock.mblock--claim,.article-body .mblock.mblock--claim{margin:0;padding:0;border-left:none;border-radius:0;background:none}.article-body .mblock-claim-group>.mblock.mblock--claim{margin:calc(-1 * var(--claim-top)) 0 0 calc(-1 * var(--claim-indent));padding:4px 8px 4px var(--claim-indent);border-radius:0 var(--radius-xs) var(--radius-xs) 0;background:var(--claim-tint,transparent)}.article-body .mblock-claim-group>.mblock.mblock--proof{margin:9px 0 0}.article-body .mblock-claim-group p+p{margin-top:9px;margin-bottom:9px}.article-body .mblock--problem{--mblock-color:var(--article-problem,var(--article-example));--mblock-tint:var(--article-problem-tint,var(--article-example-tint))}.article-body .mblock--problem,.article-body .mblock--solution{font-size:calc(var(--content-font-size-sub) * var(--text-scale))}.article-body .mblock--solution{margin:12px 0 18px;padding:0;border-left:none;border-radius:0;background:none}.article-body .mblock--solution>summary{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:-moz-fit-content;width:fit-content}.article-body .mblock--solution>summary>strong:first-child{margin-right:.75em}.article-body .mblock--problem+.mblock--solution{margin-top:8px}.article-body .mblock-equation{align-items:center;display:grid;grid-gap:.5rem;gap:.5rem;grid-template-columns:minmax(0,1fr) auto;margin:1.25rem 0;scroll-margin-top:16px}.article-body .mblock-equation>.katex-display{margin:0;overflow-x:auto;overflow-y:hidden}.article-body .mblock-equation__tag{font-style:normal;white-space:nowrap}.article-body .mblock-equation>.mblock-equation__tag>.katex{font-size:1.1em;margin-inline:0}.article-body .mblock-align{margin:1.25rem 0}.article-body .mblock-align>.katex-display{margin:0;overflow-x:auto;overflow-y:hidden}.article-body .mblock-align__tag{scroll-margin-top:16px}.article-body :is(.mblock--proof,.mblock--solution){display:flow-root}.article-body .proof-qed{float:right;margin-left:12px;color:var(--ink-2);font-style:normal}.article-body .proof-qed-line{margin:6px 0 0;text-align:right}.article-body .proof-qed-line .proof-qed{float:none;margin-left:0}.article-body .mblock[id]{scroll-margin-top:16px}.article-body :is(.mblock-ref,.mblock-ref-pair,.mblock-ref-error){margin-inline:.2em}.article-body :is(.mblock-ref,.mblock-ref-pair,.mblock-ref-error).mblock-ref--flush-start{-webkit-margin-start:0;margin-inline-start:0}.article-body :is(.mblock-ref,.mblock-ref-pair,.mblock-ref-error).mblock-ref--flush-end{-webkit-margin-end:0;margin-inline-end:0}.article-body .mblock-ref-pair .mblock-ref{margin-inline:0}.article-body .mblock-ref-pair{font-style:normal}.article-body .mblock-ref-error{color:var(--danger);font-style:normal;font-weight:var(--fw-semibold)}.article-body .defined-term{font-style:normal;font-weight:max(var(--body-weight),var(--body-weight-min));scroll-margin-top:16px}.article-body .defined-term__japanese{font-weight:var(--fw-bold);padding:0 .06em var(--article-marker-drop);background:linear-gradient(transparent calc(100% - var(--article-marker-height)),var(--article-marker) calc(100% - var(--article-marker-height)));-webkit-box-decoration-break:clone;box-decoration-break:clone}.article-body .defined-term__english{color:var(--ink-2);font-size:.9em;font-weight:max(var(--body-weight),var(--body-weight-min))}.article-body .enumerate>ol{--enumerate-indent:2.2em;counter-reset:enumerate-item;list-style:none;padding-left:var(--enumerate-indent)}.article-body .enumerate--wide>ol,.article-body .enumerate>ol:has(>li:nth-child(10)),.article-body :is(.enumerate--roman,.enumerate--Roman)>ol{--enumerate-indent:2.8em}.article-body .enumerate>ol>li{position:relative;counter-increment:enumerate-item}.article-body .enumerate>ol>li:before{position:absolute;left:calc(-1 * var(--enumerate-indent));white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;content:"(" counter(enumerate-item,decimal) ")"}.article-body .enumerate--alphabetic>ol>li:before{content:"(" counter(enumerate-item,lower-alpha) ")"}.article-body .enumerate--Alphabetic>ol>li:before{content:"(" counter(enumerate-item,upper-alpha) ")"}.article-body .enumerate--roman>ol>li:before{content:"(" counter(enumerate-item,lower-roman) ")"}.article-body .enumerate--Roman>ol>li:before{content:"(" counter(enumerate-item,upper-roman) ")"}.article-body .enumerate--named>ol,.article-body .enumerate--named>ol:has(>li:nth-child(10)){--enumerate-indent:calc(2.2em + var(--enumerate-name-width, 0.7em))}.article-body .enumerate--named[data-enumerate-prefix]>ol>li:before{content:"(" var(--enumerate-prefix) counter(enumerate-item,decimal) ")"}.article-body .enumerate>ol>li[data-item-tag]{counter-increment:none}.article-body .enumerate>ol>li[data-item-tag]:before{content:"(" attr(data-item-tag) ")"}.article-body .enumerate--nested>ol,.article-body .enumerate--nested>ol:has(>li:nth-child(10)){--enumerate-indent:calc(2.2em + var(--enumerate-name-width, 0.7em))}.article-body .enumerate>ol>li[data-item-marker]:before{content:attr(data-item-marker)}.article-body .enumerate>ol>li[id]{scroll-margin-top:16px}.article-body .mblock--column{border-left-color:var(--unlock);background:var(--column-tint);font-size:calc(var(--content-font-size-sub) * var(--text-scale))}.article-body .mblock--column>p:first-child>strong:first-child{color:var(--unlock)}.article-body .mblock--notation,.article-body .mblock--situation{border:1px solid var(--border);border-left:3px solid var(--ink-2);border-radius:var(--radius-sm);background:var(--surface)}.article-body .mblock--notation>p:first-child>strong:first-child,.article-body .mblock--situation>p:first-child>strong:first-child{color:var(--ink)}.article-body .footnotes{margin-top:24px;padding-top:8px;border-top:1px solid var(--hairline);font-size:calc(var(--fs-sm) * var(--text-scale));color:var(--muted)}.article-body .mblock:not(.mblock--column,.mblock--situation,.mblock--notation)>:is(p,summary):first-child>strong:first-child{color:color-mix(in srgb,var(--mblock-color) var(--label-role-mix,0%),var(--label-role-base,var(--ink)))}.article-body .mblock:is(.mblock--proof,.mblock--solution)>:is(p,summary):first-child>strong:first-child{color:var(--label-plain,var(--ink))}.article-body .mblock.mblock--solution>summary:hover>strong:first-child{color:var(--mblock-color)}.ref-card-layer{position:fixed;inset:0;z-index:65;pointer-events:none}.ref-card{position:absolute;pointer-events:auto;padding:6px 8px;cursor:-webkit-grab;cursor:grab;outline:none;border:1px solid color-mix(in srgb,var(--ink) calc(var(--dark-scheme, 0) * 45%),var(--hairline));border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) calc(var(--dark-scheme, 0) * 10%),transparent),0 0 18px color-mix(in srgb,var(--ink) calc(var(--dark-scheme, 0) * 9%),transparent),0 12px 30px color-mix(in srgb,var(--shadow-color) calc(18% + var(--dark-scheme, 0) * 18%),transparent)}.ref-card-layer[data-keyboard-focus] .ref-card:focus{outline:var(--focus-ring);outline-offset:2px}.ref-card[data-dragging]{cursor:-webkit-grabbing;cursor:grabbing}.ref-card-close{position:absolute;top:4px;right:6px;z-index:1;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid color-mix(in srgb,var(--danger) 65%,var(--surface));border-radius:var(--radius-xs);background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger);box-shadow:0 2px 6px color-mix(in srgb,var(--shadow-color) 25%,transparent);font-size:20px;line-height:1;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .12s ease}.ref-card-close:focus-visible,.ref-card-layer[data-keyboard-focus] .ref-card:focus-within>.ref-card-close,.ref-card:hover>.ref-card-close{opacity:1;pointer-events:auto}.ref-card-close:hover{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 20%,var(--surface))}.ref-card-close:focus-visible{outline:var(--focus-ring);outline-offset:1px}.ref-card-resize{position:absolute;touch-action:none;outline:none}.ref-card-resize:is([data-edge=left],[data-edge=right]){top:38px;bottom:4px;width:10px;cursor:ew-resize}.ref-card-resize[data-edge=left]{left:-4px}.ref-card-resize[data-edge=right]{right:-4px}.ref-card-resize:is([data-edge=top],[data-edge=bottom]){right:12px;left:12px;height:10px;cursor:ns-resize}.ref-card-resize[data-edge=top]{top:-4px}.ref-card-resize[data-edge=bottom]{bottom:-4px}.ref-card-resize:after{content:"";position:absolute;top:50%;left:50%;width:2px;height:22px;transform:translate(-50%,-50%);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--ink) 30%,transparent)}.ref-card-resize:is([data-edge=top],[data-edge=bottom]):after{width:22px;height:2px}.ref-card-layer[data-keyboard-focus] .ref-card-resize:focus:after,.ref-card-resize:hover:after{background:var(--link)}.ref-card-layer[data-keyboard-focus] .ref-card-resize:focus{outline:var(--focus-ring);outline-offset:1px}.ref-card[data-resizing]{cursor:ew-resize}.ref-card:is([data-resizing=top],[data-resizing=bottom]){cursor:ns-resize}.ref-card>.ref-card-body{max-height:min(60vh,520px);overflow-y:auto;overscroll-behavior:contain;margin:0;font-size:calc(var(--content-font-size-sub) * var(--text-scale));line-height:1.75}.ref-card>.ref-card-body>:is(.mblock,.enumerate){margin:0}.ref-card>.ref-card-body>.mblock{padding-block:4px}.ref-card .ref-card-target{border-radius:var(--radius-xs);background:color-mix(in srgb,var(--article-marker) calc(20% + var(--dark-scheme, 0) * 15%),transparent)}@media print{.ref-card-layer{display:none}}.test-intro{margin-top:8px}.test-intro-actions{display:flex;align-items:center;gap:10px;margin-top:10px}.test-running{margin-top:8px}.test-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.test-title{font-weight:var(--fw-bold);font-size:var(--fs-md)}.test-desc{font-size:var(--fs-sm);color:var(--ink-2);margin:6px 0 10px}.test-last{font-size:var(--fs-xs);color:var(--muted)}.test-last.passed{color:var(--accent)}.test-marks{display:flex;gap:8px;margin-top:6px}.mark-correct.active{border-color:var(--accent);color:var(--accent)}.mark-wrong.active{border-color:var(--ink-2);color:var(--ink-2)}.problem-list{margin:8px 0 0;padding-left:20px;min-width:0}.problem{position:relative;padding:10px 0}.problem+.problem{border-top:1px solid var(--hairline)}.problem-prompt{margin:0;font-size:var(--fs-md);overflow-wrap:anywhere}.tex-display{display:block;margin:6px 0;padding:2px 0 6px}.tex-display,.tex-inline{max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.tex-inline{display:inline-block;vertical-align:middle}.problem-answer{margin-top:8px;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;min-width:0;font-size:var(--fs-md)}.problem-answer-label{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--accent)}.problem-answer-prose{overflow-wrap:anywhere;font-size:var(--fs-md);color:var(--ink)}.problem-note{margin:7px 0 0;color:var(--ink-2);font-size:var(--fs-sm);line-height:1.65}.problem-note-label{margin-right:6px;color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.problem-solution{margin:10px 0 4px;padding:10px 12px;min-width:0;overflow-wrap:anywhere;border-left:2px solid var(--hairline);background:var(--surface);font-size:var(--fs-md);line-height:1.7}.problem-solution>h3{margin:0 0 5px;color:var(--accent);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.problem-solution>ol{margin:0;padding-left:1.35em}.problem-solution li{margin:4px 0}.problem-step-title{margin-right:5px}.problem-loading{font-size:var(--fs-sm);color:var(--muted)}.breadcrumb{font-size:var(--fs-sm);margin-bottom:8px}.generated-set{margin:18px 0}.generated-set+.generated-set{margin-top:30px}.generated-set-header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.article-body .generated-set-title{margin:0;min-width:0;flex:1 1 14rem;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--ink-2)}.generated-reroll{flex:none}.generated-reroll:empty{display:none}.figure{margin:18px 0}.figure-canvas-wrap{width:100%}.figure-canvas{display:block;width:100%;border-radius:var(--radius-sm);touch-action:pan-y}.figure-controls{gap:8px;margin-top:10px}.figure-control,.figure-controls{display:flex;flex-direction:column}.figure-control{gap:2px;font-size:var(--fs-xs);color:var(--ink-2)}.figure-control-value{color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:var(--fw-semibold)}.figure-control input[type=range]{width:100%;accent-color:var(--accent);height:28px}.figure-island:empty{display:block;min-height:320px}.snake-trace-image-wrap{background:#fff;overflow-x:auto;overscroll-behavior-inline:contain}.snake-trace-image-wrap img{display:block;width:100%;min-width:620px;height:auto;background:#fff}.snake-trace-image{animation:snake-trace-crossfade .18s ease-out}@keyframes snake-trace-crossfade{0%{opacity:0}to{opacity:1}}.snake-trace-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.snake-trace-controls>.figure-card-controls{margin-top:0}.snake-trace-step{flex:0 0 auto;color:var(--ink-2);font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:var(--fw-bold)}.snake-trace-description{display:grid;grid-template-columns:minmax(6em,auto) minmax(0,1fr);grid-gap:10px;gap:10px;font-size:var(--fs-md);line-height:1.7}.snake-trace-description strong{color:var(--ink)}@media (max-width:560px){.snake-trace-controls{align-items:flex-start;flex-direction:column}.snake-trace-buttons{width:100%}.snake-trace-description{grid-template-columns:1fr;gap:2px}}@media (prefers-reduced-motion:reduce){.snake-trace-image{animation:none}}@media print{.snake-trace-controls,.snake-trace-motion-note{display:none}}.canvas-figure-canvas{--canvas-axis-x:var(--article-warning);--canvas-axis-y:var(--article-example);--canvas-axis-z:var(--article-assertion);display:block;width:100%;aspect-ratio:1.5;touch-action:pan-y}.canvas-figure-alt{margin:0;padding:12px;color:var(--ink-2);font-size:var(--fs-sm);line-height:1.75}.canvas-figure-spin{-webkit-margin-start:9px;margin-inline-start:9px}.canvas-figure-readout{display:flex;flex-wrap:wrap;gap:6px 18px}.canvas-figure-readout-item{display:flex;gap:6px;align-items:baseline}.canvas-figure-readout dt{margin:0}.canvas-figure-readout dd{margin:0;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:var(--fw-bold)}.canvas-figure-message{color:var(--ink-2)}.canvas-figure-message:empty{display:none}@media (max-width:560px){.canvas-figure-spin{-webkit-margin-start:0;margin-inline-start:0}.canvas-figure-readout{flex-direction:column;gap:2px}}@media print{.canvas-figure-hint{display:none}}.tikzcd-diagram{align-items:center;color:var(--ink);display:flex;gap:.5rem;margin:1.25rem 0;overflow-x:auto;padding:.25rem}.tikzcd-diagram>svg text{fill:currentColor}.tikzcd-diagram>svg{display:block;height:auto;margin-inline:auto;max-width:100%}.tikzcd-tag{flex:none}.article-body .katex{font-size:1.2em}.article-body :not(.katex-display)>.katex,.search-math>.katex{margin-inline:.35em}.article-body .katex.katex--flush-start,.search-math .katex.katex--flush-start{-webkit-margin-start:0;margin-inline-start:0}.article-body .katex.katex--flush-end,.search-math .katex.katex--flush-end{-webkit-margin-end:0;margin-inline-end:0}.article-body .katex-display{overflow-x:auto;overflow-y:hidden;padding:2px 0;margin:10px 0}.article-body .katex-display>.katex{font-size:1.1em}:root{--dock-near-edge:72px}@media (hover:none){:root{--dock-near-edge:64px}}.reader-dock{position:fixed;z-index:40;display:flex;flex-direction:column;align-items:center;padding:3px;border:var(--popover-border);border-radius:calc(var(--radius-lg) + 3px);background:var(--surface);box-shadow:var(--shadow-float);touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;cursor:-webkit-grab;cursor:grab}.reader-dock:active{cursor:-webkit-grabbing;cursor:grabbing}.reader-dock.is-folding{justify-content:flex-end}.reader-dock-btn--close .icon-menu,.reader-dock.is-folding .reader-dock-btn--close .icon-close{display:none}.reader-dock.is-folding .reader-dock-btn--close .icon-menu{display:block;width:20px;height:20px}.reader-dock.is-folding .reader-dock-btn--close{flex:none;color:var(--ink)}.reader-dock{transition:border-radius .18s ease,box-shadow .18s ease}.reader-dock.is-folding{border-radius:var(--radius-lg);box-shadow:var(--shadow-float-sm)}.reader-dock-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-lg);background:none;color:var(--ink-2);cursor:inherit}.reader-dock-btn:hover,.reader-dock-btn[aria-expanded=true]{background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink)}.reader-dock-sep{width:26px;height:1px;margin:1px 0;background:var(--hairline)}.reader-dock-icon{width:24px;height:24px;fill:currentColor}.reader-dock-text{font-weight:var(--fw-bold);line-height:1;color:currentColor}.reader-dock-text--small{font-size:15px}.reader-dock-text--standard{font-size:18px}.reader-dock-text--large{font-size:22px}.reader-dock-text--xlarge{font-size:16px;letter-spacing:-.04em}.theme-swatch.reader-dock-swatch{width:26px;height:26px}.reader-dock-icon--stroke{fill:var(--surface);stroke:currentColor;stroke-width:1.8;stroke-linecap:round}:root[data-reader-bar]{--reader-bar-bottom:16px;--reader-bar-h:53px}.reader-dock.reader-dock--bar{bottom:var(--reader-bar-bottom);flex-direction:row;translate:-50% 0;border-radius:var(--radius-pill);cursor:auto;touch-action:auto;transition:transform var(--float-reveal-duration) ease}.reader-dock--bar .reader-dock-btn{border-radius:50%;cursor:pointer}.reader-dock--bar .reader-dock-sep{width:1px;height:26px;margin:0 1px}.reader-dock--bar.is-away:not(:focus-within){transform:translateY(calc(100% + var(--reader-bar-bottom) + 24px))}@media (prefers-reduced-motion:reduce){.reader-dock.reader-dock--bar{transition:none}}:root[data-reader-bar] .site-footer{padding-bottom:calc(16px + var(--reader-bar-h) + var(--reader-bar-bottom))}.reader-panel{position:fixed;z-index:41;width:min(360px,calc(100vw - 32px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:14px 16px 16px}.reader-section+.reader-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--hairline)}.reader-section-title{margin:0 0 8px;color:var(--ink-2);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.reader-segment{display:grid;grid-template-columns:repeat(4,1fr);padding:3px;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--ink) 7%,var(--surface))}.reader-segment-opt{min-height:36px;border:0;border-radius:var(--radius-md);background:none;color:var(--ink-2);cursor:pointer}.reader-segment-opt--small{font-size:12px}.reader-segment-opt--standard{font-size:14px}.reader-segment-opt--large{font-size:17px}.reader-segment-opt--xlarge{font-size:19px}.reader-segment-opt[aria-checked=true]{background:var(--surface);color:var(--ink);font-weight:var(--fw-semibold);box-shadow:0 1px 3px color-mix(in srgb,var(--shadow-color) 18%,transparent)}.reader-themes{display:flex;flex-direction:column;gap:2px}.reader-themes .theme-opt{min-height:44px;font-size:var(--fs-lg);gap:12px}.reader-themes .theme-swatch{width:22px;height:22px}.reader-themes .theme-swatch,.theme-swatch.reader-dock-swatch{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--ink) 38%,transparent)}@media print{.reader-dock,.reader-panel{display:none}}.reader-dock.is-dragging{cursor:-webkit-grabbing;cursor:grabbing;box-shadow:0 10px 28px color-mix(in srgb,var(--shadow-color) 28%,transparent)}.reader-dock.is-collapsed,.reader-dock.is-tucked{box-shadow:var(--shadow-float-sm)}.reader-dock.is-collapsed{padding:2px;border-radius:var(--radius-lg)}.reader-dock.is-collapsed .reader-dock-btn{width:32px;height:32px;border-radius:calc(var(--radius-lg) - 2px);color:var(--ink)}.reader-dock.is-collapsed .reader-dock-icon{width:20px;height:20px}.reader-dock.is-tucked{padding:0}.reader-dock--r.is-tucked{border-right:0;border-radius:var(--radius-lg) 0 0 var(--radius-lg)}.reader-dock--l.is-tucked{border-left:0;border-radius:0 var(--radius-lg) var(--radius-lg) 0}.reader-dock-btn.reader-dock-tab{position:relative;width:10px;height:76px;border-radius:inherit;color:var(--ink-2)}.reader-dock-tab:before{content:"";position:absolute;top:0;bottom:0}.reader-dock--r .reader-dock-tab:before{left:-30px;right:0}.reader-dock--l .reader-dock-tab:before{right:-30px;left:0}.reader-dock-tab-icon{width:9px;height:9px;flex:none;fill:currentColor}@media (hover:none){.article-body .mblock[id]{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}}.share-dialog{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.article-body .mblock[id]{transition:box-shadow .3s ease}.article-body .mblock[id].is-pressing{box-shadow:inset 0 0 0 999px color-mix(in srgb,var(--ink) 7%,transparent)}@media (min-width:641px){.problem-group-prompt,.problem-prompt{font-size:var(--fs-lg)}}@media (max-width:640px){.roadmap-cards{display:block;gap:0}.unit-card{padding:5px 2px;border:none;border-radius:0;background:linear-gradient(to right,var(--polish-color) calc(var(--polish, 0) * 100%),transparent 0)}.unit-card-title{color:var(--link);font-weight:var(--fw-medium)}.pager-row{grid-template-columns:1fr;gap:8px}.pager-next{order:1}.pager-center{order:2;max-width:none}.pager-prev{order:3}.pager-empty{display:none}.pager-center,.pager-next{text-align:left;align-items:flex-start}.pager-center{flex-direction:row;align-items:center;gap:8px}.pager-center .pager-kind{flex:none}.article-body{line-height:1.72}.article-body h2{line-height:1.5}.lesson-head{grid-template-areas:"title title" "updated share";align-items:center}.lesson-head>.share-button{margin-block:-14px -8px}.site-main{padding-top:16px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.article-body .mblock{padding:8px 10px 8px 11px}.article-body :is(.mblock--proof,.mblock--solution,.mblock--example,.mblock--remark){padding:0}.article-body :is(.mblock--example,.mblock--remark){padding:8px 10px 8px 11px}.article-body .mblock--solution{padding:0}.article-body .mblock-claim-group{--claim-indent:10px}.article-body td,.article-body th{padding:7px 8px}:root[data-scene]{--scene-side-gap:10px}}@media (max-width:640px){:root[data-scene]:has(.lesson-after){--scene-side-gap:0px}:root[data-scene] :is(.site-main:not(:has(>:is(.lesson-after,.home-after,.site-page-before))),.site-main>:is(.lesson-page:has(~.lesson-after),.roadmap:has(~.home-after),.site-page-body)){border-radius:var(--radius-xl);box-shadow:0 6px 22px var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent)}}.app-scene{position:fixed;top:0;left:0;right:0;height:100lvh;z-index:-1;overflow:hidden;pointer-events:none;--scene-scale:1}@supports (-webkit-touch-callout:none){:root[data-scene] .app-scene:after,:root[data-scene] .app-scene:before{content:"";position:absolute;z-index:1;left:0;right:0}:root[data-scene] .app-scene:before{top:0;height:var(--scene-edge-fade);background:linear-gradient(var(--scene-floor),transparent)}:root[data-scene] .app-scene:after{top:calc(100svh - var(--scene-edge-fade));bottom:0;background:linear-gradient(transparent,var(--scene-floor) var(--scene-edge-fade))}}.app-scene>*{transform:scale(var(--scene-scale));transform-origin:center}@media (min-width:900px){.app-scene{--scene-scale:1.2}}@media (min-width:1300px){.app-scene{--scene-scale:1.45}}@media (min-width:1800px){.app-scene{--scene-scale:1.7}}:root[data-scene]{background:var(--scene-floor,var(--page))}:root[data-scene] .site-header,:root[data-scene] body{background:transparent}:root[data-scene].header-float .site-header{background:var(--surface)}:root[data-scene] :is(.site-main:not(:has(>:is(.lesson-after,.home-after,.site-page-before))),.site-main>:is(.lesson-page:has(~.lesson-after),.roadmap:has(~.home-after),.site-page-body)){background:color-mix(in srgb,var(--surface) 88%,transparent);border-radius:16px;box-shadow:0 10px 40px var(--border)}@media (max-width:1179.98px){:root[data-scene][data-scene][data-app-theme] :is(.site-main:not(:has(>:is(.lesson-after,.home-after,.site-page-before))),.site-main>:is(.lesson-page:has(~.lesson-after),.roadmap:has(~.home-after),.site-page-body)){background:var(--surface)}}@media (max-width:640px){.app-scene.is-live .sm-off:not(.scatter *),.app-scene.is-scattered .scatter,.app-scene:not(.is-live) .sm-off{display:none}.app-scene.is-scattered *,.app-scene.is-scattered :after,.app-scene.is-scattered :before{animation-play-state:paused!important}}.scatter{position:absolute;inset:0;pointer-events:none}.theme-opt{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);color:var(--ink);padding:8px 10px;border:none;background:none;border-radius:var(--radius-md);cursor:pointer;text-align:left;width:100%}.theme-opt:hover{background:var(--page)}.theme-opt[aria-checked=true]{color:var(--accent);font-weight:var(--fw-semibold)}.theme-swatch{width:16px;height:16px;border-radius:27%;background:var(--theme-swatch);box-shadow:inset 0 0 0 1px var(--border);flex:none}.theme-swatch[data-theme-swatch=system]{--theme-swatch:var(--theme-swatch-system)}.theme-opt .check{margin-left:auto;opacity:0;color:var(--accent)}.theme-opt[aria-checked=true] .check{opacity:1}.theme-swatch[data-theme-swatch=light],:root[data-app-theme=light]{--page:#f9f9f7;--surface:#fcfcfb;--ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;--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;--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;--claim-tint:rgba(128,128,128,0.045);--article-example:#197546;--article-example-tint:#e7f6ec;--article-remark:#956600;--article-remark-tint:#fff6d2;--article-warning:#b53a35;--article-warning-tint:#ffeae8;--article-marker:#f4d45b}:root[data-app-theme=light] .site-header{background:var(--page)}@media (prefers-color-scheme:light){:root:not([data-app-theme]) .site-header{background:var(--page)}}:root[data-app-theme=light]{--polish-base:#8fbcef}@media (prefers-color-scheme:light){:root:not([data-app-theme]){--polish-base:#8fbcef}}.theme-swatch[data-theme-swatch=dark],:root[data-app-theme=dark]{--page:#1d1e20;--surface:#26272a;--ink:#f6f5f0;--ink-2:#d4d3cd;--muted:#a8a7a1;--hairline:#343536;--border:rgba(255,255,255,0.08);--accent:#5f97dc;--dark-scheme:1;--link:#8cbcf2;--link-hover:#b3d2f8;--on-accent:#10161e;--danger:#d98a84;--modal-scrim:rgba(0,0,0,0.6);--shadow-color:#000000;--theme-swatch:#1d1e20;--gauge-basic:#8fb4e8;--gauge-advanced:#5f97dc;--gauge-applied:#3f6fb0;--unlock:#63a68c;--thm-tint:rgba(95,151,220,0.12);--column-tint:rgba(99,166,140,0.12);--polish-fill:rgba(143,180,232,0.15);--polish-base:var(--gauge-basic);--article-assertion:#7ea9db;--article-assertion-tint:#303e50;--claim-tint:rgba(128,128,128,0.041);--article-example:#98c3ae;--article-example-tint:#2b3f2c;--article-remark:#d4bf85;--article-remark-tint:#3f3820;--article-warning:#d99a94;--article-warning-tint:#4e3232;--article-marker:#6f6538;--label-role-mix:50%;--label-role-base:#ffffff;--label-plain:color-mix(in srgb,var(--ink) 50%,#ffffff);--body-weight:300}:root:is([data-app-theme=dark],:not([data-app-theme])) body:before{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px}:root[data-app-theme=dark] body:before{content:""}@media (prefers-color-scheme:dark){:root{--page:#1d1e20;--surface:#26272a;--ink:#f6f5f0;--ink-2:#d4d3cd;--muted:#a8a7a1;--hairline:#343536;--border:rgba(255,255,255,0.08);--accent:#5f97dc;--dark-scheme:1;--link:#8cbcf2;--link-hover:#b3d2f8;--on-accent:#10161e;--danger:#d98a84;--modal-scrim:rgba(0,0,0,0.6);--shadow-color:#000000;--theme-swatch:#1d1e20;--gauge-basic:#8fb4e8;--gauge-advanced:#5f97dc;--gauge-applied:#3f6fb0;--unlock:#63a68c;--thm-tint:rgba(95,151,220,0.12);--column-tint:rgba(99,166,140,0.12);--polish-fill:rgba(143,180,232,0.15);--polish-base:var(--gauge-basic);--article-assertion:#7ea9db;--article-assertion-tint:#303e50;--article-example:#98c3ae;--article-example-tint:#2b3f2c;--article-remark:#d4bf85;--article-remark-tint:#3f3820;--article-warning:#d99a94;--article-warning-tint:#4e3232;--article-marker:#6f6538}:root:not([data-app-theme]) body:before{content:""}:root:not([data-app-theme]){--body-weight:300;--label-role-mix:50%;--label-role-base:#ffffff;--label-plain:color-mix(in srgb,var(--ink) 50%,#ffffff);--claim-tint:rgba(128,128,128,0.041)}}