.library-page{min-height:100vh;display:flex;flex-direction:column;background:var(--cf-color-bg);color:var(--cf-color-text);font-family:var(--cf-font-sans);font-size:var(--cf-font-size-350);line-height:var(--cf-line-height-170);-webkit-font-smoothing:antialiased}.library-page a{color:inherit;text-decoration:none}.library-page a,.library-page button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.library-page button{font:inherit;cursor:pointer}.library-page a:focus-visible,.library-page button:focus-visible{outline:2px solid var(--cf-color-focus-ring);outline-offset:4px}.library-page .brand-mark{display:grid;grid-template-columns:auto auto;align-content:center;justify-content:center;width:33px;height:33px;border:1px solid var(--cf-color-primary-border);background:var(--cf-color-primary-subtle);border-radius:var(--cf-radius-200);font-size:var(--cf-font-size-550);line-height:var(--cf-line-height-100);font-weight:var(--cf-font-weight-heavy);letter-spacing:var(--cf-letter-spacing-tighter)}.library-page .brand-mark span{color:var(--cf-color-accent)}.library-page .brand-light{font-weight:var(--cf-font-weight-regular);color:var(--cf-color-brand-soft)}.library-page .library-main{flex:1 1;width:100%;max-width:1080px;margin:0 auto;padding:var(--cf-space-1200) var(--cf-space-600) var(--cf-space-800)}.library-page .library-intro{max-width:640px;padding-bottom:var(--cf-space-700)}.library-page .library-label{display:flex;align-items:center;gap:var(--cf-space-200);font:var(--cf-font-size-225)/var(--cf-line-height-160) var(--cf-font-mono);letter-spacing:var(--cf-letter-spacing-widest);color:var(--cf-color-text-tertiary)}.library-page .library-label>span{font-size:var(--cf-font-size-400);letter-spacing:var(--cf-letter-spacing-tight);color:var(--cf-color-accent)}.library-page h1{font-size:var(--cf-font-size-700);line-height:var(--cf-line-height-140);font-weight:var(--cf-font-weight-bold);letter-spacing:var(--cf-letter-spacing-snug);margin:var(--cf-space-400) 0 0;text-wrap:balance}.library-page .library-intro p{color:var(--cf-color-text-secondary);line-height:var(--cf-line-height-170);margin:var(--cf-space-250) 0 0}.library-page .library-intro-link{display:inline-flex;align-items:center;gap:var(--cf-space-150);margin-top:var(--cf-space-400);color:var(--cf-color-primary);font-weight:var(--cf-font-weight-semibold)}.library-page .library-intro-link:hover{color:var(--cf-color-primary-hover)}.library-page .library-intro-actions{display:flex;flex-wrap:wrap;column-gap:var(--cf-space-600)}.library-page .library-section{padding-top:var(--cf-space-700);border-top:1px solid var(--cf-color-border);scroll-margin-top:84px}.library-page .library-section+.library-section{margin-top:var(--cf-space-900)}.library-page h2{font-size:var(--cf-font-size-500);font-weight:var(--cf-font-weight-strong);letter-spacing:var(--cf-letter-spacing-slight);line-height:var(--cf-line-height-150);margin:0}.library-page .section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--cf-space-300);flex-wrap:wrap;margin-bottom:var(--cf-space-400)}.library-page .section-heading>span{font-size:var(--cf-font-size-250);color:var(--cf-color-text-tertiary)}.library-page .topic-logo{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--cf-radius-200);background:var(--cf-color-surface-raised);border:1px solid var(--cf-color-border-control)}.library-page .topic-logo svg{display:block}.library-page .topic-status{font-size:var(--cf-font-size-200);font-weight:var(--cf-font-weight-strong);letter-spacing:var(--cf-letter-spacing-wide);color:var(--cf-color-text-tertiary);border:1px solid var(--cf-color-border-control);padding:var(--cf-space-050) var(--cf-space-150);border-radius:var(--cf-radius-100);white-space:nowrap}.library-page .library-breadcrumb{display:flex;flex-wrap:wrap;gap:var(--cf-space-200);margin-bottom:var(--cf-space-600);font-size:var(--cf-font-size-250);color:var(--cf-color-text-tertiary)}.library-page .library-breadcrumb a:hover{color:var(--cf-color-primary)}.library-page .library-breadcrumb>span:last-child{color:var(--cf-color-text)}.library-page .technology-intro{display:flex;align-items:flex-start;gap:var(--cf-space-500);max-width:720px}.library-page .technology-intro .topic-logo{width:56px;height:56px;border-radius:var(--cf-radius-300);border-color:var(--cf-color-primary-border)}.library-page .technology-intro .topic-logo svg{width:32px;height:32px}.library-page .technology-meta{display:flex;flex-wrap:wrap;gap:var(--cf-space-200);margin-top:var(--cf-space-400)}.library-page .technology-meta>span{font-size:var(--cf-font-size-250);color:var(--cf-color-text-secondary);border:1px solid var(--cf-color-border-control);background:var(--cf-color-surface-raised);padding:var(--cf-space-050) var(--cf-space-200);border-radius:var(--cf-radius-100)}.library-page .featured-lesson{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--cf-space-600);padding:var(--cf-space-500);border:1px solid var(--cf-color-primary-border);border-radius:var(--cf-radius-250);background:var(--cf-color-surface);transition:background-color var(--cf-duration-fast),border-color var(--cf-duration-fast)}.library-page .featured-lesson h3{font-size:var(--cf-font-size-450);font-weight:var(--cf-font-weight-semibold);line-height:var(--cf-line-height-140);margin:var(--cf-space-150) 0 var(--cf-space-100)}.library-page .featured-lesson p{max-width:580px;margin:0;font-size:var(--cf-font-size-325);line-height:var(--cf-line-height-170);color:var(--cf-color-text-secondary)}.library-page .featured-lesson:hover{background:var(--cf-color-surface-raised);border-color:var(--cf-color-primary-border-hover)}.library-page .featured-lesson:hover .featured-cta{color:var(--cf-color-primary-hover)}.library-page .featured-kicker{font:var(--cf-font-size-225)/var(--cf-line-height-160) var(--cf-font-mono);letter-spacing:var(--cf-letter-spacing-wider);color:var(--cf-color-text-tertiary)}.library-page .lesson-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cf-space-150) var(--cf-space-300);margin-top:var(--cf-space-300);font-size:var(--cf-font-size-250);color:var(--cf-color-text-tertiary)}.library-page .lesson-meta>span{display:flex;align-items:center;gap:var(--cf-space-150)}.library-page .lesson-meta svg{width:13px;height:13px}.library-page .featured-cta{display:flex;align-items:center;gap:var(--cf-space-200);flex-shrink:0;font-size:var(--cf-font-size-275);color:var(--cf-color-primary)}.library-page .featured-cta svg{width:13px;height:13px}.library-page .lesson-list,.library-page .module-list{list-style:none;margin:0;padding:0}.library-page .curriculum-stage{--stage-pad:var(--cf-space-450);--stage-node:28px;--stage-gap:var(--cf-space-350);--tree-line:var(--cf-color-border-strong)}.library-page .module-list{display:flex;flex-direction:column;gap:var(--cf-space-250);padding:var(--cf-space-100) var(--cf-space-450) var(--cf-space-450) calc(var(--stage-pad) + var(--stage-node) + var(--stage-gap))}.library-page .module{--module-pad:var(--cf-space-450);--module-gap:var(--cf-space-350);--lesson-indent:calc(var(--module-pad) + 22px + var(--module-gap));--module-branch:25px;position:relative}.library-page .module>details{border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-250);background:var(--cf-color-surface);overflow:hidden}.library-page .module:before{content:"";position:absolute;top:calc(-1*var(--cf-space-250));left:calc(-1*(var(--stage-node)/2 + var(--stage-gap)));width:calc(var(--stage-node)/2 + var(--stage-gap));height:calc(var(--cf-space-250) + var(--module-branch));border-left:1px solid var(--tree-line);border-bottom:1px solid var(--tree-line);border-bottom-left-radius:var(--cf-radius-200);pointer-events:none}.library-page .module:first-child:before{top:calc(-1*var(--cf-space-100));height:calc(var(--cf-space-100) + var(--module-branch))}.library-page .module:not(:last-child):after{content:"";position:absolute;top:var(--module-branch);bottom:0;left:calc(-1*(var(--stage-node)/2 + var(--stage-gap)));border-left:1px solid var(--tree-line);pointer-events:none}.library-page .module-heading{display:grid;grid-template-columns:22px minmax(0,1fr) auto;grid-column-gap:var(--module-gap);column-gap:var(--module-gap);align-items:baseline;padding:var(--cf-space-350) var(--module-pad);cursor:pointer;list-style:none;transition:background-color var(--cf-duration-fast)}.library-page .module-heading::-webkit-details-marker{display:none}.library-page .module-heading:hover{background:var(--cf-color-surface-raised)}.library-page .module-heading:focus-visible{outline:2px solid var(--cf-color-focus-ring);outline-offset:-2px;border-radius:var(--cf-radius-250)}.library-page .module-heading h4{grid-column:2;font-size:var(--cf-font-size-350);font-weight:var(--cf-font-weight-strong);line-height:var(--cf-line-height-150);margin:0}.library-page .module-heading>.module-number{grid-column:1;grid-row:1}.library-page .module-heading>.module-count{grid-column:3;grid-row:1}.library-page .module-description,.library-page .module-preview{grid-column:2;display:block}.library-page .module-description{margin-top:1px;font-size:var(--cf-font-size-300);line-height:var(--cf-line-height-170);color:var(--cf-color-text-secondary)}.library-page .module-preview{margin-top:var(--cf-space-150);font-size:var(--cf-font-size-275);line-height:var(--cf-line-height-170);color:var(--cf-color-text-tertiary)}.library-page .module-count,.library-page .stage-status{display:flex;align-items:center;gap:var(--cf-space-200);font-size:var(--cf-font-size-250);color:var(--cf-color-text-tertiary);white-space:nowrap}.library-page .module-count>svg,.library-page .stage-status>svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--cf-duration-fast)}.library-page .module-published{color:var(--cf-color-text-tertiary);border:1px solid var(--cf-color-border-control);background:var(--cf-color-surface-raised);padding:0 var(--cf-space-150);border-radius:var(--cf-radius-100)}.library-page details[open]>.module-heading{border-bottom:1px solid var(--cf-color-border)}.library-page details[open]>.module-heading .module-count>svg,.library-page details[open]>.stage-heading .stage-status>svg{transform:rotate(180deg)}.library-page .lesson-index,.library-page .module-number{flex-shrink:0;font:var(--cf-font-size-225)/var(--cf-line-height-160) var(--cf-font-mono);color:var(--cf-color-text-tertiary)}.library-page .lesson-list>li{--lesson-branch:23px;position:relative}.library-page .lesson-list>li:before{top:0;width:calc(var(--lesson-indent) - var(--module-pad) - 11px - var(--cf-space-150));height:var(--lesson-branch);border-left:1px solid var(--tree-line);border-bottom:1px solid var(--tree-line);border-bottom-left-radius:var(--cf-radius-200)}.library-page .lesson-list>li:before,.library-page .lesson-list>li:not(:last-child):after{content:"";position:absolute;z-index:1;left:calc(var(--module-pad) + 11px);pointer-events:none}.library-page .lesson-list>li:not(:last-child):after{top:var(--lesson-branch);bottom:0;border-left:1px solid var(--tree-line)}.library-page .lesson-list>li+li>.lesson-row:before{content:"";position:absolute;top:0;right:0;left:var(--lesson-indent);border-top:1px solid var(--cf-color-border)}.library-page .lesson-row{position:relative;display:flex;align-items:baseline;gap:var(--cf-space-350);padding:var(--cf-space-300) var(--cf-space-450) var(--cf-space-300) var(--lesson-indent)}.library-page .lesson-index{width:22px}.library-page .lesson-text{flex:1 1;min-width:0}.library-page .lesson-text strong{display:block;font-size:var(--cf-font-size-325);font-weight:var(--cf-font-weight-medium)}.library-page .lesson-text>span{display:block;font-size:var(--cf-font-size-275);line-height:var(--cf-line-height-170);color:var(--cf-color-text-tertiary)}.library-page .lesson-text>.lesson-topics{margin-top:var(--cf-space-050);font-size:var(--cf-font-size-250);line-height:var(--cf-line-height-170);color:var(--cf-color-text-muted)}.library-page .lesson-video-mark{display:inline-flex;align-items:center;gap:var(--cf-space-100);margin-left:var(--cf-space-200);padding:0 var(--cf-space-150);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-full);color:var(--cf-color-text-secondary);font-size:var(--cf-font-size-250);font-weight:var(--cf-font-weight-medium);vertical-align:middle}.library-page .lesson-video-mark svg{width:13px;height:13px}.library-page .lesson-row.is-available{transition:background-color var(--cf-duration-fast)}.library-page .lesson-row.is-available:hover{background:var(--cf-color-surface-raised)}.library-page .lesson-row.is-available:hover .lesson-aside{color:var(--cf-color-primary)}.library-page .lesson-row.is-locked .lesson-text strong{color:var(--cf-color-text-secondary)}.library-page .lesson-aside{display:flex;align-items:center;gap:var(--cf-space-200);flex-shrink:0;font-size:var(--cf-font-size-250);color:var(--cf-color-text-tertiary);white-space:nowrap}.library-page .lesson-aside svg{width:13px;height:13px}.library-page .section-intro{max-width:640px;margin:calc(-1*var(--cf-space-150)) 0 var(--cf-space-450);font-size:var(--cf-font-size-325);line-height:var(--cf-line-height-170);color:var(--cf-color-text-secondary)}.library-page .stage-overview{list-style:none;margin:0 0 var(--cf-space-700);padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));grid-gap:var(--cf-space-250);gap:var(--cf-space-250)}.library-page .stage-card{height:100%;display:flex;flex-direction:column;gap:var(--cf-space-050);padding:var(--cf-space-300) var(--cf-space-350);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-200);background:var(--cf-color-surface);transition:background-color var(--cf-duration-fast),border-color var(--cf-duration-fast)}.library-page .stage-card strong{font-size:var(--cf-font-size-325);font-weight:var(--cf-font-weight-strong);line-height:var(--cf-line-height-140)}.library-page .stage-card:hover{background:var(--cf-color-surface-raised);border-color:var(--cf-color-primary-border-hover)}.library-page .stage-card-kicker{font:var(--cf-font-size-225)/var(--cf-line-height-160) var(--cf-font-mono);letter-spacing:var(--cf-letter-spacing-wider);color:var(--cf-color-text-tertiary)}.library-page .stage-card-count{margin-top:auto;padding-top:var(--cf-space-150);font-size:var(--cf-font-size-250);color:var(--cf-color-text-tertiary)}.library-page .curriculum-toolbar{position:-webkit-sticky;position:sticky;top:68px;z-index:5;display:flex;align-items:center;gap:var(--cf-space-250);padding:var(--cf-space-250) 0;background:var(--cf-color-bg)}.library-page .curriculum-search{position:relative;flex:1 1;min-width:0}.library-page .curriculum-search>svg{position:absolute;left:11px;top:50%;width:15px;height:15px;transform:translateY(-50%);fill:none;stroke:var(--cf-color-text-tertiary);stroke-width:1.8;stroke-linecap:round;pointer-events:none}.library-page .curriculum-search input{width:100%;height:38px;padding:0 var(--cf-space-900) 0 var(--cf-space-800);border:1px solid var(--cf-color-border-control);border-radius:var(--cf-radius-200);background:var(--cf-color-surface);color:var(--cf-color-text);font:inherit;font-size:var(--cf-font-size-325)}.library-page .curriculum-search input::placeholder{color:var(--cf-color-text-muted)}.library-page .curriculum-search input::-webkit-search-cancel-button{display:none}.library-page .curriculum-search input:focus-visible{outline:2px solid var(--cf-color-focus-ring);outline-offset:1px}.library-page .curriculum-clear{position:absolute;right:5px;top:50%;display:grid;place-items:center;width:28px;height:28px;transform:translateY(-50%);border:0;border-radius:var(--cf-radius-150);background:rgba(0,0,0,0);color:var(--cf-color-text-tertiary)}.library-page .curriculum-clear:hover{color:var(--cf-color-text);background:var(--cf-color-surface-raised)}.library-page .curriculum-clear svg{width:14px;height:14px}.library-page .curriculum-empty button,.library-page .curriculum-toggle-all{flex-shrink:0;border:1px solid var(--cf-color-border-control);border-radius:var(--cf-radius-200);background:var(--cf-color-surface-raised);color:var(--cf-color-text-secondary);font-size:var(--cf-font-size-275);transition:color var(--cf-duration-fast),border-color var(--cf-duration-fast)}.library-page .curriculum-empty button:hover:not(:disabled),.library-page .curriculum-toggle-all:hover:not(:disabled){color:var(--cf-color-text);border-color:var(--cf-color-primary-border-hover)}.library-page .curriculum-empty button:disabled,.library-page .curriculum-toggle-all:disabled{opacity:.5;cursor:default}.library-page .curriculum-toggle-all{height:38px;padding:0 var(--cf-space-350)}.library-page .curriculum-status{margin:var(--cf-space-050) 0 0;font-size:var(--cf-font-size-275);color:var(--cf-color-text-tertiary)}.library-page .curriculum-empty{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cf-space-200);margin-top:var(--cf-space-350);font-size:var(--cf-font-size-300);color:var(--cf-color-text-secondary)}.library-page .curriculum-empty button{padding:var(--cf-space-100) var(--cf-space-250)}.library-page .curriculum-stage{margin-top:var(--cf-space-400);scroll-margin-top:136px}.library-page .curriculum-stage>details{border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-300);background:var(--cf-color-bg-subtle);overflow:hidden}.library-page .curriculum-status+.curriculum-stage{margin-top:var(--cf-space-500)}.library-page .stage-heading{position:relative;display:grid;grid-template-columns:var(--stage-node) minmax(0,1fr) auto;grid-column-gap:var(--stage-gap);column-gap:var(--stage-gap);padding:var(--cf-space-400) var(--stage-pad);cursor:pointer;list-style:none;transition:background-color var(--cf-duration-fast)}.library-page .stage-heading::-webkit-details-marker{display:none}.library-page .stage-heading:hover{background:var(--cf-color-surface-hover)}.library-page .stage-heading:focus-visible{outline:2px solid var(--cf-color-focus-ring);outline-offset:-2px;border-radius:var(--cf-radius-300)}.library-page .stage-heading>*{grid-column:2}.library-page .stage-heading h3{font-size:var(--cf-font-size-450);font-weight:var(--cf-font-weight-semibold);line-height:var(--cf-line-height-140);letter-spacing:var(--cf-letter-spacing-slight);margin:var(--cf-space-050) 0}.library-page .stage-node{grid-column:1;grid-row:1/span 2;display:grid;place-items:center;width:var(--stage-node);height:var(--stage-node);border:1px solid var(--cf-color-border-strong);border-radius:var(--cf-radius-round);background:var(--cf-color-surface);font:var(--cf-font-weight-semibold) var(--cf-font-size-300)/var(--cf-line-height-100) var(--cf-font-mono);color:var(--cf-color-text-secondary)}.library-page details[open]>.stage-heading:after{content:"";position:absolute;top:calc(var(--cf-space-400) + var(--stage-node));bottom:0;left:calc(var(--stage-pad) + var(--stage-node)/2);border-left:1px solid var(--tree-line);pointer-events:none}.library-page .stage-kicker{font:var(--cf-font-size-225)/var(--cf-line-height-160) var(--cf-font-mono);letter-spacing:var(--cf-letter-spacing-wider);color:var(--cf-color-text-tertiary)}.library-page .stage-description{max-width:640px;font-size:var(--cf-font-size-325);line-height:var(--cf-line-height-170);color:var(--cf-color-text-secondary)}.library-page .stage-count{margin-top:var(--cf-space-100);font-size:var(--cf-font-size-250);color:var(--cf-color-text-tertiary)}.library-page .stage-heading>.stage-status{grid-column:3;grid-row:1/span 2;align-self:center}.library-page .stage-progress{display:flex;align-items:center;gap:var(--cf-space-200);color:var(--cf-color-success)}.library-page .stage-progress .progress-meter{width:64px}.library-page .library-intro .process-byline{margin-top:var(--cf-space-400);font-size:var(--cf-font-size-300);color:var(--cf-color-text-tertiary)}.library-page .library-intro .process-byline a{color:var(--cf-color-text-secondary)}.library-page .library-intro .process-byline a:hover{color:var(--cf-color-primary)}.library-page .process-section h2{margin-bottom:var(--cf-space-400)}.library-page .process-section p{max-width:720px;margin:0 0 var(--cf-space-400);font-size:var(--cf-font-size-325);line-height:var(--cf-line-height-180);color:var(--cf-color-text-secondary)}.library-page .process-section strong{color:var(--cf-color-text);font-weight:var(--cf-font-weight-semibold)}.library-page .process-section a{color:var(--cf-color-primary)}.library-page .process-section a:hover{color:var(--cf-color-primary-hover)}.library-page .process-section code{font-family:var(--cf-font-mono);font-size:.92em;padding:0 var(--cf-space-100);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-100);background:var(--cf-color-surface-raised)}.library-page .process-list{display:grid;grid-gap:var(--cf-space-300);gap:var(--cf-space-300);max-width:720px;margin:0 0 var(--cf-space-400);padding-left:var(--cf-space-500);font-size:var(--cf-font-size-325);line-height:var(--cf-line-height-180);color:var(--cf-color-text-secondary)}.library-page .process-steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));grid-gap:var(--cf-space-250);gap:var(--cf-space-250);margin:0 0 var(--cf-space-500);padding:0}.library-page .process-steps>li{display:flex;gap:var(--cf-space-300);padding:var(--cf-space-350) var(--cf-space-400);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-200);background:var(--cf-color-surface)}.library-page .process-steps strong{display:block;font-size:var(--cf-font-size-300)}.library-page .process-steps div>span{display:block;margin-top:var(--cf-space-100);font-size:var(--cf-font-size-275);line-height:var(--cf-line-height-170);color:var(--cf-color-text-secondary)}.library-page .process-step-number{flex-shrink:0;font:var(--cf-font-size-225)/var(--cf-line-height-180) var(--cf-font-mono);color:var(--cf-color-text-tertiary)}.library-page .author-card{display:flex;align-items:center;gap:var(--cf-space-600);padding:var(--cf-space-500);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-250);background:var(--cf-color-surface)}.library-page .author-photo{flex-shrink:0;width:160px;height:200px;object-fit:cover;object-position:45% 30%;border:1px solid var(--cf-color-border-control);border-radius:var(--cf-radius-200)}.library-page .author-text{min-width:0;max-width:620px}.library-page .author-text h3{font-size:var(--cf-font-size-450);font-weight:var(--cf-font-weight-semibold);line-height:var(--cf-line-height-140);margin:0}.library-page .author-text p{margin:var(--cf-space-250) 0 0;font-size:var(--cf-font-size-325);line-height:var(--cf-line-height-180);color:var(--cf-color-text-secondary)}.library-page .author-role{display:block;margin-top:var(--cf-space-050);font-size:var(--cf-font-size-275);color:var(--cf-color-text-secondary)}.library-page .author-links{display:flex;flex-wrap:wrap;gap:var(--cf-space-250);margin-top:var(--cf-space-400)}.library-page .author-links a{display:inline-flex;align-items:center;gap:var(--cf-space-200);padding:var(--cf-space-150) var(--cf-space-300);border:1px solid var(--cf-color-border-control);border-radius:var(--cf-radius-150);background:var(--cf-color-surface-raised);font-size:var(--cf-font-size-275);color:var(--cf-color-text-secondary);transition:color var(--cf-duration-fast),border-color var(--cf-duration-fast)}.library-page .author-links a:hover{color:var(--cf-color-text);border-color:var(--cf-color-primary-border-hover)}.library-page .author-links svg{flex-shrink:0}.library-page .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:768px){.library-page .library-main{padding:var(--cf-space-800) var(--cf-space-450) var(--cf-space-600)}.library-page h1{font-size:var(--cf-font-size-650)}.library-page h2{font-size:var(--cf-font-size-475)}.library-page .library-intro p{font-size:var(--cf-font-size-325)}.library-page .featured-lesson{flex-direction:column;align-items:flex-start;gap:var(--cf-space-400);padding:var(--cf-space-400)}.library-page .curriculum-toolbar{top:58px}.library-page .curriculum-stage{scroll-margin-top:124px}}@media(max-width:560px){.library-page .technology-intro{flex-direction:column;gap:var(--cf-space-400)}.library-page .stage-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cf-space-200)}.library-page .stage-card{padding:var(--cf-space-250) var(--cf-space-300)}.library-page .curriculum-toggle-all{padding:0 var(--cf-space-250)}.library-page .curriculum-stage{--stage-pad:var(--cf-space-300);--stage-node:24px;--stage-gap:var(--cf-space-200)}.library-page .stage-heading{grid-template-columns:var(--stage-node) minmax(0,1fr);padding:var(--cf-space-350) var(--stage-pad)}.library-page .stage-heading>.stage-status{grid-column:2;grid-row:auto;margin-top:var(--cf-space-150)}.library-page details[open]>.stage-heading:after{top:calc(var(--cf-space-350) + var(--stage-node))}.library-page .module-list{padding-right:var(--cf-space-300);padding-bottom:var(--cf-space-350)}.library-page .module{--module-pad:var(--cf-space-350);--module-gap:var(--cf-space-250);--lesson-indent:calc(var(--module-pad) + 11px + var(--cf-space-400))}.library-page .module-heading{grid-template-columns:22px minmax(0,1fr)}.library-page .module-heading>.module-count{grid-column:2;grid-row:auto;margin-top:var(--cf-space-150)}.library-page .lesson-row{flex-wrap:wrap;gap:var(--cf-space-150) var(--cf-space-300);padding:var(--cf-space-300) var(--cf-space-350) var(--cf-space-300) var(--lesson-indent)}.library-page .lesson-text{flex-basis:calc(100% - 34px)}.library-page .lesson-aside,.library-page .lesson-row>.topic-status{margin-left:var(--cf-space-800)}.library-page .author-card{flex-direction:column;align-items:flex-start;gap:var(--cf-space-400);padding:var(--cf-space-400)}.library-page .author-photo{width:120px;height:150px}}@media(prefers-reduced-motion:reduce){.library-page *,.library-page :after,.library-page :before{transition:none!important}}