.read-mark[data-astro-cid-jzg5bcae]{margin-top:var(--space-6)}.read-mark__btn[data-astro-cid-jzg5bcae]{display:inline-flex;align-items:center;gap:var(--space-3);height:var(--btn-h-sm);padding:0 var(--space-4);border-radius:var(--r-pill);border:1px solid var(--btn-2-border);background:transparent;color:var(--fg-strong);font:500 15px/1 var(--font-text);cursor:pointer}.read-mark__btn[data-astro-cid-jzg5bcae]:hover{background:var(--btn-2-bg-hover);border-color:var(--btn-2-border-hover)}.read-mark__box[data-astro-cid-jzg5bcae]{width:16px;height:16px;border-radius:var(--r-media);border:1px solid var(--btn-2-border)}.read-mark__btn[data-astro-cid-jzg5bcae][aria-pressed=true] .read-mark__box[data-astro-cid-jzg5bcae]{background:var(--c-accent);border-color:var(--c-accent)}.lesson-page{background:var(--surface-0);color:var(--fg);font:var(--t-body)}.lesson-page :focus-visible{outline:var(--focus-w) solid var(--focus-color);outline-offset:var(--focus-offset);border-radius:var(--r-shot)}.course-bar{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--margin-desktop);border-bottom:1px solid var(--line-0);font:var(--t-mono);color:var(--fg-mute)}.course-bar__ruler{flex:1;display:flex;align-items:flex-end;gap:3px;height:var(--ruler-h-cur)}.course-bar__ruler a{flex:1 1 0;align-self:stretch;display:flex;align-items:flex-end;min-width:6px;text-decoration:none;border-radius:1px}.course-bar__ruler a:after{content:"";display:block;width:100%;height:var(--ruler-h);background:var(--ruler-rest);transition:background .15s ease,height .15s ease}.course-bar__ruler a:hover:after,.course-bar__ruler a:focus-visible:after{background:var(--fg-soft);height:var(--ruler-h-cur)}.course-bar__ruler a.is-done:after{background:var(--c-accent)}.course-bar__ruler a.is-current:after{background:var(--c-accent-text);height:var(--ruler-h-cur)}.course-bar__pos{white-space:nowrap}.lesson-layout{display:grid;grid-template-columns:var(--col-toc) minmax(0,1fr);gap:var(--space-7);max-width:calc(var(--col-toc) + var(--space-7) + var(--measure-wide));margin:0 auto;padding:var(--space-7) var(--margin-desktop) var(--space-9)}.toc{position:sticky;top:calc(var(--header-h) + var(--space-5));align-self:start;display:grid;gap:var(--space-6)}.toc h2{font:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--fg-mute);margin-bottom:var(--space-3)}.toc ol{list-style:none;padding:0;margin:0;display:grid;gap:2px}.toc a{display:flex;gap:var(--space-3);padding:7px var(--space-3);border-left:2px solid transparent;font:400 15px/1.4 var(--font-text);color:var(--fg-mute);text-decoration:none}.toc a:hover{color:var(--fg-strong)}.toc a .n{font:var(--t-mono);color:var(--fg-faint)}.toc a[aria-current=true]{border-left-color:var(--c-accent);background:var(--toc-active-bg);color:var(--fg-strong);font-weight:600}.toc__extra{border-top:1px solid var(--line-0);padding-top:var(--space-5);display:grid;gap:var(--space-3)}.toc__extra dt{font:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--fg-mute)}.toc__extra dd{margin:0;font:var(--t-mono);color:var(--fg)}.lesson h2,.lesson h3,.steps>li,.shot{scroll-margin-top:calc(var(--header-h) + var(--space-4))}.lesson{max-width:var(--measure-wide);min-width:0}.lesson>*{max-width:var(--measure-read)}.lesson>.breakout{max-width:none}.lesson__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.chip-level{display:inline-flex;align-items:center;height:26px;padding:0 var(--space-3);border-radius:var(--r-pill);background:var(--chip-level-bg);color:var(--chip-level-fg);font:600 12px/1 var(--font-ui);letter-spacing:.04em}.lesson__section-note{font:var(--t-caption);color:var(--fg-mute)}.lesson h1{font:var(--t-h1);letter-spacing:var(--ls-h1);color:var(--fg-strong);text-wrap:balance;margin:0 0 var(--space-5)}.lesson .lead{font:var(--t-body);color:var(--fg-mute);margin-bottom:var(--space-7);text-wrap:pretty}.lesson h2{font:var(--t-h2);letter-spacing:var(--ls-h2);color:var(--fg-strong);margin:var(--space-7) 0 var(--space-4)}.lesson h3{font:var(--t-h3);color:var(--fg-strong);margin:0 0 var(--space-2)}.lesson p{margin:0 0 var(--space-5)}.lesson p:last-child{margin-bottom:0}.lesson ul,.lesson ol{margin:0 0 var(--space-5);padding-left:var(--space-5)}.lesson li{margin-bottom:var(--space-2)}.lesson code{font:var(--t-mono);font-size:.85em;color:var(--fg-strong);background:var(--code-bg);padding:2px 6px;border-radius:3px}.lesson kbd{font:var(--t-mono);font-size:.8em;color:var(--fg-strong);background:var(--kbd-bg);border:1px solid var(--kbd-border);border-radius:var(--r-media);padding:2px 7px}.lesson a:not(.btn):not(.pin){color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--link-underline);text-underline-offset:var(--link-offset)}.lesson a:not(.btn):not(.pin):hover{color:var(--link-hover);text-decoration-color:var(--link-hover);background:var(--link-hover-bg)}.shot{width:100%;margin:var(--space-6) 0}.shot__mat{background:var(--shot-mat-bg);border-radius:var(--r-card);padding:var(--shot-mat-pad)}.shot__meta{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4);font:var(--t-mono);font-size:11px;letter-spacing:.04em;color:var(--shot-label-fg)}.shot__zoom{font:var(--t-mono);font-size:11px;letter-spacing:.04em;color:var(--shot-label-fg);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--shot-label-fg);white-space:nowrap}.shot__zoom:hover{color:var(--fg-strong);text-decoration-color:var(--fg-strong)}.shot__frame{position:relative;border-radius:var(--r-shot)}.shot__img{display:block;width:100%;height:auto;border:1px solid var(--shot-frame);border-radius:var(--r-shot);background:var(--surface-0)}.shot__legend{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);padding:var(--space-4) 0 0;margin:0;font:var(--t-caption);color:var(--shot-note-fg)}.shot__legend li{display:flex;align-items:center;gap:var(--space-2);list-style:none;margin:0}.shot figcaption{margin-top:var(--space-3);font:var(--t-caption);color:var(--shot-caption-fg)}.shot figcaption kbd{font-size:12px}.pin{position:absolute;width:var(--callout-size);height:var(--callout-size);margin:calc(var(--callout-size) / -2) 0 0 calc(var(--callout-size) / -2);border-radius:var(--r-pill);background:var(--callout-bg);color:var(--callout-fg);box-shadow:var(--callout-halo);font:700 13px/1 var(--font-mono);display:flex;align-items:center;justify-content:center;text-decoration:none}.pin:hover{background:var(--c-accent)}.pin--legend{position:static;margin:0;width:var(--pin-legend-size);height:var(--pin-legend-size);font-size:10px;box-shadow:none;flex-shrink:0}.shot[data-shot-mode=crop] .shot__scroller{overflow-x:auto;border-radius:var(--r-shot);padding:var(--focus-offset);margin:calc(var(--focus-offset) * -1);scrollbar-width:none}.shot[data-shot-mode=crop] .shot__scroller::-webkit-scrollbar{display:none}.shot[data-shot-mode=crop] .shot__frame{width:max(100%,var(--shot-crop-min))}.shot__scrollhint{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-3)}.shot__scrollhint[hidden]{display:none}.shot__scrollhint-track{flex:1;height:var(--scrollhint-h);border-radius:var(--r-shot);background:var(--scrollhint-track);position:relative;overflow:hidden}.shot__scrollhint-thumb{position:absolute;top:0;bottom:0;left:0;width:40%;border-radius:var(--r-shot);background:var(--scrollhint-thumb)}.shot__scrollhint-label{font:var(--t-mono);font-size:10px;color:var(--shot-label-fg);white-space:nowrap}.shot__tap{display:block;width:100%;text-align:inherit;background:none;border:none;padding:0;cursor:pointer;border-radius:var(--r-shot)}.shot__tap:hover .shot__img{border-color:var(--focus-color)}.steps{list-style:none;padding:0;counter-reset:step;display:grid;gap:var(--space-5);margin:0 0 var(--space-5)}.steps>li{display:flex;gap:var(--space-4);align-items:flex-start;margin:0}.steps__num{counter-increment:step;flex-shrink:0;width:var(--step-size);height:var(--step-size);margin-top:3px;border:var(--step-border);border-radius:var(--r-pill);color:var(--c-pencil);font:700 14px/1 var(--font-mono);display:flex;align-items:center;justify-content:center}.steps__num:before{content:counter(step)}.steps h3{font:600 20px/1.4 var(--font-text);color:var(--fg-strong);margin-bottom:var(--space-2)}.steps p{font:400 19px/1.6 var(--font-text);color:var(--fg-soft);margin:0}.aside-note,.aside-warn{border-radius:0 var(--r-card) var(--r-card) 0;padding:var(--space-5) var(--aside-pad-x);margin:var(--space-6) 0}.aside-note{background:var(--note-bg);border-left:var(--aside-bar-w) solid var(--note-bar);color:var(--note-fg)}.aside-warn{background:var(--warn-bg);border-left:var(--aside-bar-w) solid var(--warn-bar);color:var(--warn-fg)}.aside-note h3,.aside-warn h3{font:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;margin:0 0 var(--space-2)}.aside-note h3{color:var(--note-title)}.aside-warn h3{color:var(--warn-title)}.aside-note p,.aside-warn p{font:400 19px/1.6 var(--font-text);margin:0}.tbl{width:100%;border:1px solid var(--line-1);border-radius:var(--r-card);overflow:hidden;display:block}.tbl table{width:100%;border-collapse:collapse}.tbl caption{caption-side:bottom;text-align:left;padding-top:var(--space-3);font:var(--t-caption);color:var(--fg-mute)}.tbl th{background:var(--tbl-head-bg);font:700 12px/1.2 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-mute);text-align:left;padding:var(--tbl-pad);border-bottom:1px solid var(--line-1)}.tbl td{padding:var(--tbl-pad);border-bottom:1px solid var(--tbl-line);font:400 17px/1.4 var(--font-text);color:var(--fg-strong);background:var(--tbl-row)}.tbl tbody tr:nth-child(2n) td{background:var(--tbl-row-alt)}.tbl tbody tr:last-child td{border-bottom:none}.tbl td.num{font:var(--t-mono);font-size:15px;color:var(--tbl-num-fg)}.video__stage{aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--surface-0);border:1px solid var(--shot-frame);border-radius:var(--r-shot)}.video__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:none;border-radius:0}.video__play{position:relative;width:var(--video-play-size);height:var(--video-play-size);border-radius:var(--r-pill);background:var(--fg-strong);border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.video__play:before{content:"";width:0;height:0;margin-left:4px;border-left:14px solid var(--surface-0);border-top:9px solid transparent;border-bottom:9px solid transparent}.video__play:hover{background:var(--focus-color)}.video__stage iframe,.video__stage video{position:absolute;inset:0;width:100%;height:100%;border:0}.lesson-nav{display:flex;flex-wrap:wrap;gap:var(--space-3);border-top:1px solid var(--line-0);padding-top:var(--space-6);margin-top:var(--space-7)}.lesson-nav a{flex:1 1 var(--lesson-nav-min);display:grid;gap:var(--space-2);padding:18px var(--space-5);border-radius:var(--r-card);border:1px solid var(--line-1);background:var(--surface-2);color:inherit;text-decoration:none}.lesson-nav a:hover{border-color:var(--border-ui)}.lesson-nav .dir{font:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-mute)}.lesson-nav .ttl{font:600 19px/1.3 var(--font-text);color:var(--fg-strong)}.lesson-nav a.next{border-color:var(--c-accent);background:var(--note-bg);text-align:right}.lesson-nav a.next .dir{color:var(--note-title)}.lesson-nav a.next:hover{border-color:var(--btn-2-border-hover)}.shot-dialog{border:none;padding:0;margin:auto;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;background:var(--shot-fullscreen-bg);color:var(--fg)}.shot-dialog::backdrop{background:var(--shot-fullscreen-bg)}.shot-dialog__inner{display:flex;flex-direction:column;height:100%}.shot-dialog__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);font:var(--t-mono);font-size:11px;color:var(--shot-label-fg)}.shot-dialog__close{font:var(--t-mono);font-size:12px;color:var(--fg-strong);padding:var(--space-2) var(--space-3);border:1px solid var(--border-ui);border-radius:var(--r-pill);background:none;cursor:pointer}.shot-dialog__close:hover{border-color:var(--btn-2-border-hover);background:var(--btn-2-bg-hover)}.shot-dialog__stage{flex:1;min-height:0;overflow:auto;display:grid;place-items:center;padding:var(--space-4)}.shot-dialog__img{width:min(1600px,96vw);height:auto;border:1px solid var(--shot-frame);border-radius:var(--r-shot);transform-origin:center center;transition:transform .15s ease}.shot-dialog__controls{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4)}.zoom-btn{width:var(--zoom-btn-size);height:var(--zoom-btn-size);border-radius:var(--r-pill);background:var(--surface-3);color:var(--fg-strong);border:none;cursor:pointer;font:500 18px/1 var(--font-mono);display:flex;align-items:center;justify-content:center}.zoom-btn:hover{background:var(--line-1)}.zoom-btn:disabled{color:var(--fg-faint);cursor:not-allowed}.shot-dialog__zoomval{font:var(--t-mono);font-size:12px;color:var(--shot-label-fg);min-width:44px;text-align:center}@media(max-width:1100px){.course-bar{padding-left:var(--margin-tablet);padding-right:var(--margin-tablet)}.lesson-layout{grid-template-columns:1fr;gap:var(--space-6);padding:var(--space-6) var(--margin-tablet) var(--space-8)}.toc{position:static}.toc ol{max-width:var(--measure-read)}}@media(max-width:600px){.course-bar{padding-left:var(--margin-mobile);padding-right:var(--margin-mobile)}.lesson-layout{padding:var(--space-6) var(--margin-mobile) var(--space-8)}.course-bar__level{display:none}.lesson .shot{width:auto;margin-left:calc(var(--margin-mobile) * -1);margin-right:calc(var(--margin-mobile) * -1)}.lesson .shot .shot__mat{border-radius:0;padding:var(--shot-mat-pad-sm)}.lesson .shot figcaption{padding:0 var(--margin-mobile)}.lesson-nav a.next{text-align:left}}@media(prefers-reduced-motion:reduce){.lesson-page *,.lesson-page *:before,.lesson-page *:after{transition:none!important;animation:none!important}}
