.library-programs,.program-page{min-width:0;font-size:1.125rem;line-height:1.6}.library-programs :is(h2,h3),.program-page :is(h1,h2,h3){letter-spacing:-.025em;text-wrap:balance;overflow-wrap:break-word}.library-programs a,.program-page a{text-underline-offset:4px}.library-programs [hidden],.program-page [hidden]{display:none!important}.library-programs{border-bottom:1px solid var(--line);margin-bottom:32px;padding:20px 0 28px}.programs-heading{justify-content:space-between;align-items:start;gap:24px;margin-bottom:28px;display:flex}.programs-heading h2{margin:0 0 10px;font-size:1.875rem;font-weight:600;line-height:1.2}.programs-heading p{max-width:55ch;color:var(--muted);margin:0}.programs-filters{background:var(--accent-soft);border-radius:12px;flex-shrink:0;gap:4px;padding:5px;display:flex}.programs-filters button{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:10px 16px;font-size:1rem;font-weight:650;line-height:1.35}.programs-filters button[aria-pressed=true]{background:var(--card);color:var(--accent)}.programs-filters button:hover{color:var(--accent)}.program-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;display:grid}.program-card{grid-template-columns:124px minmax(0,1fr);gap:24px;min-width:0;padding:0 0 24px;display:grid;position:relative}.program-card[data-program-category=skill]+.program-card[data-program-category=skill]{border-left:1px solid var(--line);grid-template-columns:114px minmax(0,1fr);padding-left:32px}.program-card-copy{min-width:0}.program-card h3{margin:4px 0 8px;font-size:1.5rem;font-weight:600;line-height:1.25}.program-card h3 a{color:var(--ink);text-decoration:none}.program-card h3 a:after{content:"";border-radius:12px;position:absolute;inset:0 0 18px}.program-card h3 a:focus-visible{outline:none}.program-card h3 a:focus-visible:after{outline:3px solid var(--accent);outline-offset:5px}.program-card:has(a:is(:hover,:focus-visible)) h3 a{color:var(--accent);text-decoration:underline 2px}.program-card-description{color:var(--muted);max-width:48ch;margin:0 0 12px;font-size:1.125rem;line-height:1.5}.program-card-meta{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:0 8px;margin:0;font-size:.875rem;line-height:1.5;display:flex}.program-card-meta>span:not([hidden])+span:not([hidden]):before{content:"·";margin-right:8px}.program-card-status{color:var(--accent)}.program-card-action{color:var(--accent);margin-top:9px;font-size:1rem;font-weight:650;display:inline-block}.program-art{aspect-ratio:1;background:var(--subject-surface,var(--mint));color:var(--subject-ink,var(--ink));border-radius:12px;align-self:start;place-items:center;padding:14px;display:grid;overflow:hidden}.program-art svg{width:100%;max-width:300px;height:auto;display:block;overflow:visible}.program-card[data-program-category=test]{border-bottom:1px solid var(--line);grid-column:1/-1;grid-template-columns:90px minmax(0,1fr);padding:18px 0}.program-card[data-program-category=test] h3{margin-top:0;font-size:1.375rem}.program-card[data-program-category=test] .program-art{padding:10px}.program-card[data-program-category=test] .program-card-description{max-width:70ch;margin-bottom:4px}.program-card[data-program-category=test] .program-card-action{position:absolute;top:20px;right:0}.program-card[data-program-category=test] .program-card-copy{padding-right:130px}.programs-test-scope{color:var(--muted);margin:14px 0 0;font-size:.9375rem}[data-program-filter=skill] .programs-test-scope,.library-programs[data-program-filter=skill] [data-program-category=test],.library-programs[data-program-filter=test] [data-program-category=skill]{display:none}.program-back{align-items:center;gap:8px;min-height:44px;margin-bottom:20px;font-size:1rem;display:inline-flex}.program-back svg{flex:none;width:20px;height:20px}.program-hero{grid-template-columns:minmax(0,1fr) 240px;align-items:center;gap:72px;padding:0 0 36px;display:grid}.program-hero>*{min-width:0}.program-hero h1{max-width:20ch;margin:0 0 18px;font-size:clamp(2.25rem,4.3vw,3.5rem);font-weight:650;line-height:1.12}.program-lead{max-width:52ch;color:var(--muted);margin:0 0 20px;font-size:1.25rem;line-height:1.55}.program-facts{color:var(--muted);flex-wrap:wrap;gap:6px 18px;font-size:1rem;display:flex}.program-hero .program-art{align-self:center;padding:32px}.program-scope-note{color:var(--muted);max-width:76ch;margin:0 0 24px;font-size:1.0625rem}.program-launch{border-block:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:18px 30px;margin-bottom:40px;padding:25px 0;display:flex}.program-start{background:var(--accent);min-height:52px;color:var(--card);text-align:center;border-radius:12px;justify-content:center;align-items:center;padding:14px 24px;font-size:1.125rem;font-weight:650;line-height:1.4;text-decoration:none;display:inline-flex}.program-start:hover{color:var(--card);background:var(--library-action-hover,#104d3a);text-decoration:none}.program-start:active{background:var(--home-action-active,#0d3829)}.program-start[aria-disabled=true]{color:var(--control-disabled-ink,#4f5d53);background:var(--line);cursor:wait}.program-access{max-width:45ch;font-size:1rem;line-height:1.5}.program-access p{color:var(--muted);margin:0}.program-access a{align-items:center;min-height:44px;display:inline-flex}.program-progress{min-width:210px;max-width:100%;margin-left:auto}.program-progress p{color:var(--muted);font-variant-numeric:tabular-nums;margin:0 0 8px;font-size:.9375rem}.program-progress-track{gap:5px;display:flex}.program-progress-track span{background:var(--line);border-radius:3px;flex:1;height:6px}.program-progress-track :is(.filled,[data-complete=true]){background:var(--accent)}.program-storage-notice{max-width:65ch;color:var(--muted);margin:-20px 0 32px;font-size:1rem}.program-body{grid-template-columns:minmax(0,1fr) 280px;gap:64px;display:grid}.program-module-heading{margin-bottom:24px}.program-module-heading h2{margin:0 0 12px;font-size:1.875rem;font-weight:600;line-height:1.2}.program-module-heading p{color:var(--muted);margin:0}.program-modules{margin:0;padding:0;list-style:none}.program-module{border-top:1px solid var(--line);padding:22px 0;scroll-margin-top:28px}.program-module:last-child{border-bottom:1px solid var(--line)}.program-module-head{align-items:start;gap:18px;display:flex}.program-module-number{border:1px solid var(--control-border);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;margin-top:1px;font-size:1rem;font-weight:600;display:grid}.program-module:is(.done,[data-program-state=complete]) .program-module-number{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-soft)}.program-module-main{flex:1;min-width:0}.program-module h3{margin:4px 0 8px;font-size:1.3125rem;font-weight:600;line-height:1.3}.program-module-why{max-width:58ch;color:var(--muted);margin:0}.program-module-status{color:var(--accent);margin:8px 0 0;font-size:.9375rem;font-weight:600}.program-module details{margin:14px 0 0 52px;font-size:1.0625rem}.program-module summary{cursor:pointer;min-height:44px;color:var(--accent);text-underline-offset:4px;padding:8px 0;text-decoration:underline;display:list-item}.program-module-links{padding-top:8px}.program-step-pair+.program-step-pair{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.program-step{grid-template-columns:76px minmax(0,1fr);gap:10px;padding:4px 0;display:grid}.program-step>span{color:var(--muted);padding-block:9px}.program-step a{align-items:center;min-height:44px;line-height:1.5;display:inline-flex}.program-step small{color:var(--muted);margin:0 0 8px;font-size:.9375rem;line-height:1.5;display:block}.program-no-lesson{margin:0 0 6px;padding-top:9px}.program-module-note{color:var(--muted);margin:16px 0 0;font-size:.9375rem;line-height:1.6}.program-aside section{margin-bottom:32px}.program-aside h2{margin:0 0 12px;font-size:1.25rem;font-weight:600;line-height:1.35}.program-aside p{color:var(--muted);margin:0 0 16px;font-size:1rem;line-height:1.65}.program-method-steps{counter-reset:program-method;margin:0;padding:0;list-style:none}.program-method-steps li{counter-increment:program-method;gap:12px;margin:0 0 14px;font-size:1rem;line-height:1.5;display:flex}.program-method-steps li:before{content:counter(program-method);border-bottom:1px solid var(--line);width:18px;color:var(--accent);flex:none;align-self:start;padding-top:2px;font-size:.875rem}.program-recall{background:var(--subject-surface);color:var(--subject-ink);border-radius:12px;margin-top:28px;padding:24px}.program-recall h3{margin:0 0 10px;font-size:1.25rem;font-weight:600;line-height:1.3}.program-recall p{max-width:64ch;margin:0}.program-recall .program-recall-note{margin-top:12px;font-size:.9375rem}.program-complete{background:var(--accent-soft);border-radius:12px;margin-bottom:32px;padding:24px}.program-complete h2{margin:0 0 12px;font-size:1.5rem;line-height:1.25}.program-complete p{max-width:65ch;color:var(--muted);margin:0}@media (width<=950px){.program-card,.program-card[data-program-category=skill]+.program-card[data-program-category=skill]{grid-template-columns:90px minmax(0,1fr);gap:18px}.program-card[data-program-category=skill]+.program-card[data-program-category=skill]{padding-left:24px}.program-hero{grid-template-columns:minmax(0,1fr) 200px;gap:36px}.program-body{grid-template-columns:minmax(0,1fr) 240px;gap:36px}.programs-heading{flex-wrap:wrap}}@media (width<=700px){.library-programs{margin-bottom:28px;padding-top:12px}.programs-heading{gap:20px;margin-bottom:24px}.programs-heading h2{font-size:1.625rem}.program-list{grid-template-columns:minmax(0,1fr)}.program-card,.program-card[data-program-category=skill]+.program-card[data-program-category=skill]{border:0;grid-template-columns:90px minmax(0,1fr);gap:20px;padding:0 0 24px}.program-card+.program-card{border-top:1px solid var(--line);padding-top:20px}.program-card h3{font-size:1.375rem}.program-card[data-program-category=test]{border-top:0;grid-template-columns:76px minmax(0,1fr);gap:20px;padding:20px 0}.program-card[data-program-category=test] .program-card-copy{padding-right:0}.program-card[data-program-category=test] .program-card-action{margin-top:9px;position:static}.program-hero{grid-template-columns:minmax(0,1fr) 120px;align-items:start;gap:20px;padding-bottom:28px}.program-hero>div:not(.program-art){display:contents}.program-hero h1{grid-column:1/-1;font-size:clamp(2rem,6vw,2.625rem)}.program-hero .program-art{grid-area:2/2;padding:14px}.program-lead{grid-area:2/1;align-self:center;margin:0;font-size:1.125rem}.program-facts{grid-column:1/-1;gap:4px 14px;font-size:.9375rem}.program-launch{gap:14px 24px;margin-bottom:32px}.program-progress{flex:210px;margin-left:0}.program-body{grid-template-columns:minmax(0,1fr);gap:36px}.program-module-heading h2{font-size:1.625rem}.program-aside{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.program-aside section{margin-bottom:0}.program-aside section:last-child{grid-column:1/-1}.program-module details{margin-left:0}.program-step{grid-template-columns:72px minmax(0,1fr)}}@media (width<=400px){.program-card,.program-card[data-program-category=skill]+.program-card[data-program-category=skill]{grid-template-columns:72px minmax(0,1fr);gap:15px}.program-art{padding:8px}.programs-filters{width:100%}.programs-filters button{flex:1;padding-inline:10px}.program-card[data-program-category=test]{grid-template-columns:64px minmax(0,1fr);gap:14px}.program-aside{grid-template-columns:minmax(0,1fr)}}@media (width<=370px){.program-hero{grid-template-columns:minmax(0,1fr)}.program-hero>.program-art{display:none}.program-step{grid-template-columns:minmax(0,1fr);gap:0}.program-step>span{padding-bottom:0}}@media (prefers-reduced-motion:no-preference){.program-card .program-art svg{transition:transform .22s cubic-bezier(.16,1,.3,1)}.program-card:has(a:focus-visible) .program-art svg{transform:translateY(-3px)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.program-card:has(a:hover) .program-art svg{transform:translateY(-3px)}}@media (forced-colors:active){.program-art,.program-start,.programs-filters button[aria-pressed=true],.program-progress-track span{border:1px solid canvastext}.program-progress-track :is(.filled,[data-complete=true]){background:highlight}}
