.learning-session{--workspace-unit:calc(100vw / 1280);border-radius:calc(12 * var(--workspace-unit));color:var(--ink);font:calc(16 * var(--workspace-unit))/1.55 var(--body);background:#fffffff0;min-width:0;margin:0;overflow:hidden}.learning-session p,.learning-session h2,.learning-session h3,.learning-session pre,.learning-session ol{margin:0}.learning-stage{padding:calc(24 * var(--workspace-unit));min-width:0;min-height:calc(100dvh - 350 * var(--workspace-unit));box-sizing:border-box;grid-template-columns:minmax(calc(250 * var(--workspace-unit)), .57fr) minmax(0, 1fr);gap:calc(32 * var(--workspace-unit));border:0;margin:0;display:grid}.learning-task{gap:calc(24 * var(--workspace-unit));flex-direction:column;min-width:0;display:flex}.learning-preview{min-width:0;padding-left:calc(32 * var(--workspace-unit));border-left:calc(1 * var(--workspace-unit)) solid #14171d59;gap:calc(18 * var(--workspace-unit));flex-direction:column;justify-content:center;display:flex}.learning-progress{gap:calc(10 * var(--workspace-unit));font-size:calc(13 * var(--workspace-unit));font-weight:600;display:grid}.learning-progress progress{width:calc(1 * var(--workspace-unit));height:calc(1 * var(--workspace-unit));clip-path:inset(50%);position:absolute;overflow:hidden}.learning-step-marks{gap:calc(7 * var(--workspace-unit));display:flex}.learning-step-marks span{width:calc(13 * var(--workspace-unit));height:calc(13 * var(--workspace-unit));background:var(--blue);opacity:.45;border-radius:50%}.learning-step-marks [data-current=true]{background:var(--yellow);opacity:1}.learning-step-marks [data-done=true]{background:var(--ink);opacity:.7}.learning-intro{gap:calc(16 * var(--workspace-unit));display:grid}.learning-session .learning-heading{font:700 calc(40 * var(--workspace-unit))/1.1 var(--display);letter-spacing:-.015em}.learning-heading:focus{outline:none}.learning-intro>p{font-size:calc(16 * var(--workspace-unit));line-height:1.65}.learning-controls{gap:calc(20 * var(--workspace-unit));display:grid}.learning-controls label{gap:calc(8 * var(--workspace-unit));min-width:0;font-size:calc(14 * var(--workspace-unit));font-weight:700;display:grid}.learning-controls label>span{justify-content:space-between;gap:calc(12 * var(--workspace-unit));align-items:baseline;display:flex}.learning-controls output{font-size:calc(13 * var(--workspace-unit));background:var(--ink);color:var(--paper);padding:calc(2 * var(--workspace-unit)) calc(8 * var(--workspace-unit));border-radius:calc(4 * var(--workspace-unit))}.learning-controls input,.learning-controls select{box-sizing:border-box;width:100%;min-width:0;font:inherit;color:inherit;accent-color:var(--ink);caret-color:var(--ink)}.learning-controls input[type=text],.learning-controls select{border:calc(1 * var(--workspace-unit)) solid var(--blue);padding:calc(12 * var(--workspace-unit));min-height:calc(46 * var(--workspace-unit));border-radius:calc(5 * var(--workspace-unit));font-size:calc(15 * var(--workspace-unit));background:#f1f6fc;font-weight:400}.learning-controls input[type=range]{min-height:calc(36 * var(--workspace-unit))}.learning-feedback{font-size:calc(13 * var(--workspace-unit));padding:calc(14 * var(--workspace-unit));border-radius:calc(6 * var(--workspace-unit));overflow-wrap:anywhere;background:#f1f6fc;margin-top:auto;line-height:1.7}.learning-feedback p{display:block}.learning-preview h3,.learning-source h3{font:700 calc(17 * var(--workspace-unit))/1.4 var(--body)}.learning-model{gap:calc(24 * var(--workspace-unit));min-width:0;display:grid}.learning-model>h3{margin-bottom:calc(16 * var(--workspace-unit))}.learning-model-row{gap:calc(16 * var(--workspace-unit));align-items:center;min-width:0;display:flex}.learning-model-row small{font-size:calc(12 * var(--workspace-unit));min-width:calc(48 * var(--workspace-unit));font-weight:600}.learning-model-row output{flex:1;min-width:0;display:block}.learning-value-list{gap:calc(12 * var(--workspace-unit));flex-wrap:wrap;display:flex}.learning-value{min-width:calc(54 * var(--workspace-unit));min-height:calc(50 * var(--workspace-unit));padding:calc(8 * var(--workspace-unit)) calc(14 * var(--workspace-unit));border:calc(1 * var(--workspace-unit)) solid var(--ink);border-radius:calc(5 * var(--workspace-unit));font:700 calc(24 * var(--workspace-unit))/1.4 var(--body);white-space:pre-wrap;overflow-wrap:anywhere;box-sizing:border-box;background:#e6f0fb;justify-content:center;align-items:center;max-width:100%;display:inline-flex}.learning-value-list>.learning-value{flex:1}.is-result .learning-value{background:var(--yellow)}.learning-value.is-empty{font-family:monospace;font-size:calc(19 * var(--workspace-unit));border-style:dashed}.learning-relations{gap:calc(12 * var(--workspace-unit));padding-left:calc(64 * var(--workspace-unit));min-height:calc(50 * var(--workspace-unit));justify-content:space-around;align-items:center;display:flex}.learning-relations>span{align-items:center;gap:calc(6 * var(--workspace-unit));font-size:calc(13 * var(--workspace-unit));flex:1;justify-content:center;display:flex}.learning-relations b{white-space:nowrap;font-weight:500}.learning-relations svg{height:calc(40 * var(--workspace-unit));width:calc(18 * var(--workspace-unit));flex-shrink:0}.learning-source{gap:calc(10 * var(--workspace-unit));border-top:calc(1 * var(--workspace-unit)) solid #14171d33;padding-top:calc(18 * var(--workspace-unit));display:grid}.learning-session pre{padding:calc(14 * var(--workspace-unit));border:calc(1 * var(--workspace-unit)) solid var(--blue);border-radius:calc(5 * var(--workspace-unit));white-space:pre-wrap;overflow-wrap:anywhere;font:calc(14 * var(--workspace-unit))/1.7 ui-monospace, SFMono-Regular, Consolas, monospace;box-sizing:border-box;background:#f1f6fc;max-width:100%}.learning-preview>pre{margin-top:auto}.learning-trace{font-size:calc(12 * var(--workspace-unit));line-height:1.7}.learning-session details summary{cursor:pointer;min-height:calc(32 * var(--workspace-unit));font-size:calc(13 * var(--workspace-unit))}.learning-session details ol{padding:calc(8 * var(--workspace-unit)) 0 0 calc(22 * var(--workspace-unit))}.learning-session button{justify-content:center;align-items:center;gap:calc(10 * var(--workspace-unit));border:calc(1 * var(--workspace-unit)) solid #14171d40;border-radius:calc(5 * var(--workspace-unit));color:inherit;padding:calc(10 * var(--workspace-unit)) calc(14 * var(--workspace-unit));min-height:calc(44 * var(--workspace-unit));font:600 calc(14 * var(--workspace-unit))/1.45 var(--body);cursor:pointer;background:0 0;display:inline-flex}.learning-session button:disabled{opacity:.4;cursor:default}.learning-session button svg{width:calc(20 * var(--workspace-unit));height:calc(20 * var(--workspace-unit));flex-shrink:0}.learning-navigation{justify-content:space-between;gap:calc(16 * var(--workspace-unit));border-top:calc(1 * var(--workspace-unit)) solid var(--blue);padding:calc(16 * var(--workspace-unit)) calc(24 * var(--workspace-unit));min-height:calc(76 * var(--workspace-unit));box-sizing:border-box;align-items:center;display:flex}.learning-navigation>div{gap:calc(10 * var(--workspace-unit));align-items:center;display:flex}.learning-session .learning-next{background:var(--yellow);border-color:var(--yellow);font:700 calc(21 * var(--workspace-unit))/1.2 var(--display);padding:calc(12 * var(--workspace-unit)) calc(20 * var(--workspace-unit));min-height:calc(46 * var(--workspace-unit));gap:calc(18 * var(--workspace-unit))}.learning-session .learning-reset{color:var(--muted);font-weight:400;font-size:calc(13 * var(--workspace-unit));border-color:#0000;padding-inline:0}.learning-finished{padding:calc(32 * var(--workspace-unit));gap:calc(24 * var(--workspace-unit));min-height:calc(380 * var(--workspace-unit));align-content:center;display:grid}.learning-finished>div{gap:calc(20 * var(--workspace-unit));flex-wrap:wrap;display:flex}.learning-finished>p{font-size:calc(17 * var(--workspace-unit));max-width:55ch;line-height:1.7}.learning-caption{font-size:calc(12 * var(--workspace-unit));color:var(--muted)}.learning-canvas{color:var(--ink);padding:calc(24 * var(--workspace-unit));min-height:calc(220 * var(--workspace-unit));box-sizing:border-box;border-radius:calc(6 * var(--workspace-unit));background:#edf3fa;align-items:center;display:grid;overflow:auto}.learning-preview-container{gap:calc(12 * var(--workspace-unit));min-height:calc(130 * var(--workspace-unit));align-items:flex-start;display:flex;position:relative}.learning-preview-layout .learning-preview-container{min-height:calc(160 * var(--workspace-unit))}.learning-subject{border:calc(2 * var(--workspace-unit)) solid;width:calc(160 * var(--workspace-unit));padding:calc(12 * var(--workspace-unit));box-sizing:content-box;flex-shrink:0}.learning-preview-text .learning-subject{width:auto;font-size:calc(26 * var(--workspace-unit));border:0;padding:0}.learning-box{border:calc(2 * var(--workspace-unit)) solid;padding:calc(12 * var(--workspace-unit));min-width:calc(48 * var(--workspace-unit));text-align:center;box-sizing:border-box;flex-shrink:0}.learning-box[style*=absolute]{top:0;right:0}.learning-canvas h2{font:800 calc(28 * var(--workspace-unit))/1.3 var(--body)}.learning-canvas p{margin:calc(8 * var(--workspace-unit)) 0}.learning-canvas ul,.learning-canvas ol{padding-left:calc(24 * var(--workspace-unit));list-style:revert}.learning-canvas .sample>div{padding-left:calc(24 * var(--workspace-unit));border-left:calc(1 * var(--workspace-unit)) dashed}.learning-match{outline:calc(2 * var(--workspace-unit)) solid var(--focus);outline-offset:calc(2 * var(--workspace-unit));background:#cddcec}.learning-flow{gap:calc(6 * var(--workspace-unit));font-size:calc(10 * var(--workspace-unit));flex-wrap:wrap;padding:0;list-style:none;display:flex}.learning-flow li{padding:calc(4 * var(--workspace-unit)) calc(6 * var(--workspace-unit));border-bottom:calc(2 * var(--workspace-unit)) solid transparent;opacity:.5}.learning-flow li[data-visited=true]{opacity:1}.learning-flow li[aria-current=step]{border-color:currentColor;font-weight:700}.learning-actions{gap:calc(10 * var(--workspace-unit));flex-wrap:wrap;display:flex}.learning-choices{gap:calc(10 * var(--workspace-unit));border:0;min-width:0;margin:0;padding:0;display:grid}.learning-choices legend{font-size:calc(13 * var(--workspace-unit));padding:0 0 calc(10 * var(--workspace-unit))}.learning-choices label{align-items:flex-start;gap:calc(10 * var(--workspace-unit));border:calc(1 * var(--workspace-unit)) solid var(--blue);border-radius:calc(5 * var(--workspace-unit));padding:calc(12 * var(--workspace-unit));cursor:pointer;overflow-wrap:anywhere;font-size:calc(14 * var(--workspace-unit));line-height:1.6;display:flex}.learning-choices label:has(input:checked){border-color:var(--ink);background:#f4f8db}.learning-choices input{margin-top:calc(4 * var(--workspace-unit));accent-color:var(--ink);flex-shrink:0}.learning-input-error{padding:calc(20 * var(--workspace-unit));border:calc(1 * var(--workspace-unit)) dashed var(--muted);font-size:calc(14 * var(--workspace-unit))}.learning-sr{width:calc(1 * var(--workspace-unit));height:calc(1 * var(--workspace-unit));clip-path:inset(50%);position:absolute;overflow:hidden}.learning-session button:focus-visible,.learning-session input:focus-visible,.learning-session select:focus-visible,.learning-session summary:focus-visible{outline:calc(3 * var(--workspace-unit)) solid var(--focus);outline-offset:calc(3 * var(--workspace-unit))}.learning-model{gap:calc(16 * var(--workspace-unit));margin-bottom:0}.learning-model-row small{min-width:calc(88 * var(--workspace-unit))}.learning-value-list{gap:calc(28 * var(--workspace-unit));max-width:calc(340 * var(--workspace-unit))}.learning-relations{padding-left:calc(104 * var(--workspace-unit));max-width:calc(340 * var(--workspace-unit));gap:calc(28 * var(--workspace-unit))}.learning-source>summary{font:700 calc(17 * var(--workspace-unit))/1.4 var(--body);cursor:pointer;min-height:32px}.learning-source[open]>summary{margin-bottom:calc(10 * var(--workspace-unit))}.learning-session button,.learning-session summary{min-height:44px}@media (width<=1100px){.learning-session{--workspace-unit:1px}.learning-stage{flex-direction:column;gap:20px;min-height:0;padding:22px;display:flex}.learning-task{display:contents}.learning-progress{order:0;align-items:center;gap:16px;font-size:12px;display:flex}.learning-step-marks span{width:10px;height:10px}.learning-intro{order:1;gap:10px}.learning-session .learning-heading{font-size:32px}.learning-intro>p{font-size:15px;line-height:1.6}.learning-controls{order:2;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:16px}.learning-controls label{font-size:13px}.learning-controls input[type=text],.learning-controls select{min-height:44px}.learning-preview{border-left:0;border-top:1px solid var(--blue);order:4;gap:14px;padding:20px 0 0}.learning-feedback{order:3;margin-top:0;padding:12px;font-size:13px}.learning-model{gap:12px}.learning-model>h3{margin-bottom:4px;font-size:14px}.learning-model-row{gap:10px}.learning-model-row small{min-width:44px;font-size:11px}.learning-value-list{gap:10px;max-width:none}.learning-value{min-width:40px;min-height:42px;padding:6px 10px;font-size:21px}.learning-relations{gap:10px;max-width:none;min-height:32px;padding-left:54px}.learning-relations svg{height:28px}.learning-relations b{font-size:11px}.learning-source{padding-top:12px}.learning-source>summary{min-height:32px;font-size:13px}.learning-session pre{padding:12px;font-size:13px}.learning-navigation{gap:12px;min-height:72px;padding:14px 22px}.learning-session .learning-next{gap:12px;min-height:44px;padding:10px 16px;font-size:20px}.learning-session .learning-reset{font-size:12px}.learning-session .learning-reset svg{width:17px}.learning-navigation>div{gap:8px}.learning-finished{min-height:300px;padding:24px}.learning-canvas{min-height:160px}.learning-flow{font-size:11px}.learning-preview>.learning-model{padding:0}.learning-session [hidden]{display:none!important}}@media (width<=600px){.learning-stage{gap:16px;padding:18px}.learning-controls{grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:12px}.learning-controls label{font-size:12px}.learning-controls input[type=text],.learning-controls select{padding:10px;font-size:14px}.learning-model{gap:10px}.learning-value-list{gap:8px}.learning-value{min-width:34px;min-height:38px;padding:6px 8px;font-size:19px}.learning-relations{gap:8px}.learning-model-row small{font-size:10px}.learning-session .learning-heading{font-size:30px}.learning-navigation{z-index:2;background:#fff;flex-wrap:wrap;align-items:center;min-height:68px;padding:12px 16px;position:sticky;bottom:0}.learning-navigation .learning-reset{gap:6px}.learning-navigation>div>button:not(.learning-next){min-height:44px;padding:8px;font-size:12px}.learning-finished>div{gap:12px}}@media (prefers-reduced-motion:no-preference){.learning-model-row.is-result{animation:.18s cubic-bezier(.16,1,.3,1) learning-result}@keyframes learning-result{0%{opacity:.75;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}}@media (width<=600px){.learning-session{overflow:visible}.learning-navigation{border-radius:0 0 12px 12px}}.learning-session{--learning-success:#23603b;--learning-success-surface:#e5f4e9;--learning-error:#94362d;--learning-error-surface:#fff0ec}.learning-feedback[data-result=correct]{background:var(--learning-success-surface);color:var(--learning-success);border:1px solid var(--learning-success)}.learning-feedback[data-result=wrong]{background:var(--learning-error-surface);color:var(--learning-error);border:1px solid var(--learning-error)}.learning-session .learning-choices label[data-result=correct]{background:var(--learning-success-surface);border-color:var(--learning-success);color:var(--learning-success)}.learning-session .learning-choices label[data-result=wrong]{background:var(--learning-error-surface);border-color:var(--learning-error);color:var(--learning-error)}.learning-answer-result{align-items:center;gap:6px;margin-inline-start:auto;font-size:12px;font-weight:700;display:flex}.learning-answer-result svg,.learning-finished h2 svg{fill:none;stroke:currentColor;stroke-width:2px;flex-shrink:0;width:22px;height:22px}.learning-choices label{flex-wrap:wrap}.learning-choices label>span:first-of-type{flex:1;min-width:100px}.learning-finished h2{color:var(--learning-success);align-items:center;gap:12px;display:flex}.learning-finished{background:var(--learning-success-surface)}.learning-controls .app-select{font-size:16px}.reader-shell{max-width:1120px;margin:auto;padding:0 32px 64px}.reader-header{border-bottom:1px solid #14171d33;justify-content:space-between;align-items:center;gap:24px;min-height:80px;display:flex}.reader-header .wordmark{font-size:38px}.reader-header .wordmark:after{height:12px}.reader-header>a:last-child{min-height:44px;padding:12px 0;font-size:14px;text-decoration:none}.reader-header>a:last-child:hover{text-decoration:underline}.reader-main{overflow-wrap:break-word;max-width:720px;margin:32px auto 0;font-size:18px;line-height:1.8}.reader-back{min-height:44px;color:var(--muted);align-items:center;gap:8px;font-size:14px;text-decoration:none;display:inline-flex}.reader-back:hover{text-decoration:underline}.reader-back svg{width:18px;height:18px}.reader-intro{margin:20px 0 40px}.reader-intro h1{font:700 40px/1.25 var(--body);letter-spacing:-.025em;text-wrap:pretty;margin:0 0 12px}.reader-position{color:var(--muted);margin:0;font-size:14px}.reader-body h2,.reader-practice h2{font:700 26px/1.4 var(--body);letter-spacing:-.015em;text-wrap:pretty;margin:40px 0 16px}.reader-body>h2:first-child{margin-top:0}.reader-body h3{font:700 21px/1.5 var(--body);margin:32px 0 12px}.reader-body .ink-heading-text{background:0 0;margin:0;padding:0;display:inline;-webkit-mask-image:none;mask-image:none}.reader-body p{margin:0 0 24px}.reader-body ul,.reader-body ol{margin:16px 0 24px;padding-left:24px}.reader-body li+li{margin-top:10px}.reader-body :not(pre)>code{background:#abbdce59;border-radius:3px;padding:2px 4px;font-size:.9em}.reader-body .lesson-code{max-width:100%;margin:24px 0 32px}.reader-body .lesson-code figcaption{display:none}.reader-body pre{white-space:pre;tab-size:2;scrollbar-color:var(--muted) transparent;border:1px solid #14171d40;border-radius:6px;max-width:100%;margin:0;padding:20px 24px;font:15px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-x:auto;background:#ffffff4d!important}.reader-body pre code{font:inherit}.reader-body pre span{color:var(--ink)!important}.reader-practice{border-top:1px solid #14171d40;margin-top:40px;padding-top:32px}.reader-practice h2{margin:0 0 12px}.reader-practice>p{margin:0 0 16px}.reader-check summary,.reader-extras>summary{cursor:pointer;min-height:48px;padding:10px 0;font-size:15px;font-weight:600}.reader-check summary:hover,.reader-extras>summary:hover{text-decoration:underline}.reader-check p{margin:8px 0 20px;font-size:16px}.reader-extras{border-block:1px solid #14171d40;margin-top:24px;padding:12px 0}.reader-extra-content{padding:12px 0 16px;font-size:16px;line-height:1.75}.reader-extra-content p{margin:0 0 20px}.reader-extra-content h2{font:700 21px/1.5 var(--body);margin:28px 0 12px}.reader-extra-content ul{padding-left:22px}.reader-extra-content li+li{margin-top:8px}.reader-resources{list-style:none;padding:0!important}.reader-resources a{min-height:44px;padding:8px 0;display:inline-block}.reader-resources small{color:var(--muted);margin-top:4px;font-size:13px;display:block}.reader-pagination{justify-content:space-between;align-items:center;gap:32px;margin-top:32px;display:flex}.reader-previous{align-items:center;min-height:44px;font-size:14px;display:inline-flex}.reader-next{text-align:right;max-width:70%;min-height:60px;padding:8px 0;text-decoration:none}.reader-next small{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.reader-next span{text-underline-offset:5px;justify-content:flex-end;align-items:center;gap:12px;font-size:18px;font-weight:700;line-height:1.5;text-decoration:underline;display:flex}.reader-next:hover span{text-decoration-thickness:3px}.reader-next svg{width:20px;height:20px}summary:focus-visible{outline:3px solid var(--focus);outline-offset:4px}@media (width<=600px){.reader-shell{padding:0 20px 40px}.reader-header{min-height:68px}.reader-header .wordmark{font-size:32px}.reader-header>a:last-child{font-size:13px}.reader-main{margin-top:24px;font-size:17px;line-height:1.8}.reader-intro{margin:16px 0 32px}.reader-intro h1{letter-spacing:-.02em;font-size:30px;line-height:1.3}.reader-body h2,.reader-practice h2{margin-top:32px;font-size:23px}.reader-body>h2:first-child{margin-top:0}.reader-body h3{font-size:20px}.reader-body pre{padding:16px;font-size:13px}.reader-practice{margin-top:32px;padding-top:24px}.reader-practice h2{margin-top:0}.reader-pagination{align-items:flex-start;gap:20px}.reader-next{max-width:68%}.reader-next span{font-size:16px}.reader-previous{font-size:13px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.reader-explanation{border-top:1px solid #14171d40;margin:24px 0 0;padding:12px 0}.reader-explanation>summary{cursor:pointer;min-height:48px;padding:10px 0;font-size:15px;font-weight:600}.reader-explanation>summary:hover{text-decoration:underline}.reader-explanation .reader-body{padding-top:24px}.activity-nojs{font-size:16px;line-height:1.7}.lesson-workspace{--workspace-unit:calc(100vw / 1280);min-height:100dvh;color:var(--ink);font-family:var(--body);grid-template-columns:22.5% minmax(0,1fr);line-height:1.5;display:grid}.workspace-outline{border-right:calc(1 * var(--workspace-unit)) solid #14171d61;flex-direction:column;min-width:0;height:100dvh;display:flex;position:sticky;top:0}.workspace-course-heading{padding:calc(20 * var(--workspace-unit)) calc(26 * var(--workspace-unit)) calc(18 * var(--workspace-unit));flex-shrink:0}.workspace-course-heading .wordmark{font-size:calc(42 * var(--workspace-unit));margin-bottom:calc(20 * var(--workspace-unit));display:inline-block}.workspace-course-heading .wordmark:after{height:calc(12 * var(--workspace-unit))}.workspace-path-back{align-items:center;gap:calc(10 * var(--workspace-unit));font-size:calc(13 * var(--workspace-unit));min-height:calc(36 * var(--workspace-unit));margin-bottom:calc(20 * var(--workspace-unit));text-decoration:none;display:flex}.workspace-path-back svg{width:calc(18 * var(--workspace-unit));height:calc(18 * var(--workspace-unit))}.workspace-path-back:hover{text-decoration:underline}.workspace-course-title{justify-content:space-between;gap:calc(8 * var(--workspace-unit));align-items:baseline;display:flex}.workspace-course-title strong{font:700 calc(20 * var(--workspace-unit))/1.2 var(--display)}.workspace-course-title>span{font-size:calc(11 * var(--workspace-unit));white-space:nowrap}.workspace-course-heading progress{width:100%;height:calc(5 * var(--workspace-unit));accent-color:var(--focus);margin-top:calc(10 * var(--workspace-unit));display:block}.workspace-course{padding:0 calc(24 * var(--workspace-unit)) calc(24 * var(--workspace-unit));scrollbar-width:thin;scrollbar-color:var(--blue) transparent;flex:1;overflow:auto}.workspace-course details{border-top:calc(1 * var(--workspace-unit)) solid #14171d40}.workspace-course summary{gap:calc(12 * var(--workspace-unit));min-height:calc(54 * var(--workspace-unit));cursor:pointer;align-items:center;list-style:none;display:flex}.workspace-course summary::-webkit-details-marker{display:none}.workspace-section-number{width:calc(34 * var(--workspace-unit));height:calc(34 * var(--workspace-unit));border:calc(1 * var(--workspace-unit)) solid currentColor;font:500 calc(22 * var(--workspace-unit))/1 var(--hand);border-radius:47%;flex-shrink:0;place-items:center;display:grid}.workspace-course summary>span:nth-child(2){flex:1;min-width:0}.workspace-course summary strong{font:700 calc(19 * var(--workspace-unit))/1.2 var(--display);display:block}.workspace-course summary small{font-size:calc(11 * var(--workspace-unit));margin-top:calc(5 * var(--workspace-unit));color:var(--muted);display:block}.workspace-course summary>svg{width:calc(16 * var(--workspace-unit));height:calc(16 * var(--workspace-unit));flex-shrink:0}.workspace-course details[open] summary>svg{transform:rotate(180deg)}.workspace-course ol{margin:0 0 calc(20 * var(--workspace-unit));padding:0;list-style:none}.workspace-course li{margin:0}.workspace-course li a{align-items:flex-start;gap:calc(10 * var(--workspace-unit));font-size:calc(12 * var(--workspace-unit));min-height:calc(36 * var(--workspace-unit));padding:calc(7 * var(--workspace-unit)) calc(4 * var(--workspace-unit));isolation:isolate;line-height:1.5;text-decoration:none;display:flex;position:relative}.workspace-course li a:is(:hover,:focus-visible):not([aria-current=page]){background:#abbdce4d;border-radius:4px}.workspace-course li a:focus-visible{outline-offset:-2px;border-radius:4px}.workspace-course [aria-current=page]{font-weight:700}.workspace-course [aria-current=page]:before{content:"";inset:calc(1 * var(--workspace-unit)) -6px;z-index:-1;background:url(/assets/zine/yellow-marker.png) 50%/100% 180% no-repeat;position:absolute}.workspace-lesson-status{width:calc(18 * var(--workspace-unit));height:calc(18 * var(--workspace-unit));border:calc(1 * var(--workspace-unit)) solid #14171d4d;font-size:calc(9 * var(--workspace-unit));margin-top:calc(1 * var(--workspace-unit));border-radius:50%;flex-shrink:0;place-items:center;display:grid}.workspace-lesson-status svg{width:calc(13 * var(--workspace-unit));height:calc(13 * var(--workspace-unit))}.workspace-lesson-status[data-complete=true]{background:var(--yellow);border-color:var(--ink)}.workspace-main{padding:calc(24 * var(--workspace-unit)) calc(26 * var(--workspace-unit)) calc(28 * var(--workspace-unit));min-width:0;scroll-margin-top:calc(16 * var(--workspace-unit))}.workspace-context{gap:calc(16 * var(--workspace-unit));min-height:calc(30 * var(--workspace-unit));font-size:calc(12 * var(--workspace-unit));color:var(--muted);align-items:center;display:flex}.workspace-context>a{font-weight:600;text-decoration:none}.workspace-context>a:hover{text-decoration:underline}.workspace-context>span{padding-left:calc(16 * var(--workspace-unit));border-left:calc(1 * var(--workspace-unit)) solid #14171d40;white-space:nowrap}.workspace-context nav{gap:calc(8 * var(--workspace-unit));margin-left:auto;display:flex}.workspace-context nav a{width:calc(30 * var(--workspace-unit));height:calc(30 * var(--workspace-unit));border:calc(1 * var(--workspace-unit)) solid #14171d40;border-radius:50%;place-items:center;display:grid}.workspace-context svg{width:calc(16 * var(--workspace-unit));height:calc(16 * var(--workspace-unit))}.workspace-main>h1{font:700 calc(56 * var(--workspace-unit))/1.04 var(--display);letter-spacing:-.015em;margin:calc(18 * var(--workspace-unit)) 0 calc(20 * var(--workspace-unit));text-wrap:pretty}.workspace-views{gap:calc(24 * var(--workspace-unit));border-bottom:calc(1 * var(--workspace-unit)) solid #14171d80;margin-bottom:calc(22 * var(--workspace-unit));display:flex}.workspace-views button{isolation:isolate;min-height:calc(42 * var(--workspace-unit));min-width:calc(70 * var(--workspace-unit));padding:calc(8 * var(--workspace-unit)) calc(12 * var(--workspace-unit)) calc(10 * var(--workspace-unit));font:700 calc(18 * var(--workspace-unit))/1.2 var(--body);color:var(--muted);cursor:pointer;background:0 0;border:0;position:relative}.workspace-views button[aria-selected=true]{color:var(--ink);border-bottom:calc(2 * var(--workspace-unit)) solid var(--ink)}.workspace-views button[aria-selected=true]:before{content:"";inset:calc(3 * var(--workspace-unit)) 0;z-index:-1;background:url(/assets/zine/yellow-marker.png) 50%/100% 180% no-repeat;position:absolute}.workspace-views button:disabled{cursor:wait}.workspace-reference,.workspace-practice{border-radius:calc(12 * var(--workspace-unit));padding:calc(32 * var(--workspace-unit));background:#ffffffe0;min-width:0}.workspace-reference .reader-body{max-width:70ch;font-size:calc(17 * var(--workspace-unit));margin:auto;line-height:1.75}.workspace-reference .reader-body>h2:first-child{margin-top:0}.workspace-notes{max-width:70ch;font-size:calc(17 * var(--workspace-unit));margin:calc(32 * var(--workspace-unit)) auto 0;border-top:1px solid #14171d33}.workspace-disclosure>summary{align-items:center;gap:calc(12 * var(--workspace-unit));box-sizing:border-box;min-height:calc(48 * var(--workspace-unit));padding:calc(12 * var(--workspace-unit)) 0;cursor:pointer;font:600 calc(16 * var(--workspace-unit)) / 1.5 var(--body);color:var(--ink);list-style:none;display:flex}.workspace-disclosure>summary::-webkit-details-marker{display:none}.workspace-disclosure>summary::marker{content:""}.workspace-disclosure>summary>svg{width:calc(20 * var(--workspace-unit));height:calc(20 * var(--workspace-unit));fill:none;stroke:currentColor;stroke-width:1.7px;flex-shrink:0}.workspace-disclosure[open]>summary>svg{transform:rotate(90deg)}.workspace-disclosure-content{gap:calc(24 * var(--workspace-unit));padding:calc(8 * var(--workspace-unit)) 0 calc(20 * var(--workspace-unit)) calc(32 * var(--workspace-unit));font-size:calc(16 * var(--workspace-unit));overflow-wrap:anywhere;line-height:1.75;display:grid}.workspace-disclosure-content section{gap:calc(10 * var(--workspace-unit));display:grid}.workspace-disclosure-content p,.workspace-disclosure-content h2,.workspace-disclosure-content ul{margin:0}.workspace-disclosure-content h2{font:700 calc(22 * var(--workspace-unit))/1.4 var(--body)}.workspace-disclosure-content ul{padding-inline-start:calc(22 * var(--workspace-unit))}.workspace-disclosure-content li+li{margin-top:calc(8 * var(--workspace-unit))}.workspace-disclosure-content .reader-resources a{padding-block:calc(4 * var(--workspace-unit))}.workspace-practice>h2{font:700 calc(36 * var(--workspace-unit))/1.15 var(--display);margin:0 0 calc(20 * var(--workspace-unit))}.workspace-practice>p{font-size:calc(18 * var(--workspace-unit));max-width:65ch;margin:0 0 calc(24 * var(--workspace-unit));line-height:1.8}.workspace-practice>.workspace-disclosure{margin-bottom:calc(28 * var(--workspace-unit));border-block:1px solid #14171d33}.workspace-practice .workspace-disclosure-content p{max-width:65ch}.workspace-completion>p{gap:calc(8 * var(--workspace-unit));font-size:calc(15 * var(--workspace-unit));display:grid}.workspace-completion>p span{font-size:calc(13 * var(--workspace-unit));color:var(--muted)}.workspace-completion>div{gap:calc(20 * var(--workspace-unit));margin-top:calc(20 * var(--workspace-unit));flex-wrap:wrap;align-items:center;display:flex}.workspace-primary{justify-content:center;align-items:center;gap:calc(18 * var(--workspace-unit));min-height:calc(48 * var(--workspace-unit));background:var(--yellow);color:var(--ink);border:calc(1 * var(--workspace-unit)) solid var(--ink);border-radius:calc(6 * var(--workspace-unit));padding:calc(10 * var(--workspace-unit)) calc(18 * var(--workspace-unit));font:700 calc(18 * var(--workspace-unit))/1.2 var(--body);cursor:pointer;text-decoration:none;display:inline-flex}.workspace-primary svg{width:calc(22 * var(--workspace-unit));height:calc(22 * var(--workspace-unit))}.workspace-primary:disabled{opacity:.4;cursor:default}.workspace-text-action{min-height:calc(44 * var(--workspace-unit));padding:calc(8 * var(--workspace-unit)) 0;font:calc(14 * var(--workspace-unit)) var(--body);color:var(--muted);cursor:pointer;background:0 0;border:0;text-decoration:underline}.workspace-warning{font-size:calc(14 * var(--workspace-unit));margin:calc(12 * var(--workspace-unit)) 0 calc(20 * var(--workspace-unit));line-height:1.6}.workspace-mobile-header{display:none}.lesson-workspace button:focus-visible,.lesson-workspace a:focus-visible,.lesson-workspace summary:focus-visible{outline:calc(3 * var(--workspace-unit)) solid var(--focus);outline-offset:calc(3 * var(--workspace-unit))}.workspace-practice>h2:focus{outline:none}.workspace-main [hidden]{display:none!important}.workspace-course details[open]>ol{max-height:calc(100dvh - 490 * var(--workspace-unit));scrollbar-width:thin;scrollbar-color:var(--blue) transparent;overflow:auto}.workspace-course-heading{padding-inline:calc(30 * var(--workspace-unit));padding-bottom:calc(23 * var(--workspace-unit))}.workspace-course-heading .wordmark,.workspace-path-back{margin-bottom:calc(14 * var(--workspace-unit))}.workspace-course-heading progress{margin-top:calc(6 * var(--workspace-unit))}.workspace-course ol{margin-left:calc(18 * var(--workspace-unit));padding-left:calc(18 * var(--workspace-unit));border-left:1px dotted var(--blue)}.workspace-course li a{min-height:calc(30 * var(--workspace-unit));padding-block:calc(5 * var(--workspace-unit))}.workspace-course [aria-current=page]:before{left:calc(-28 * var(--workspace-unit))}.workspace-views{margin-bottom:calc(28 * var(--workspace-unit))}.lesson-workspace{--workspace-unit:clamp(.85px, calc(100vw / 1280), 1.24px);grid-template-columns:clamp(240px,22.5vw,360px) minmax(0,1fr)}.workspace-main{box-sizing:border-box;width:100%;max-width:1500px}@media (width<=1100px){.lesson-workspace{--workspace-unit:1px;grid-template-columns:240px minmax(0,1fr)}.workspace-main{padding:20px}.workspace-main>h1{margin:18px 0;font-size:40px;line-height:1.1}.workspace-views{gap:16px;margin-bottom:20px}.workspace-views button{min-height:44px;font-size:16px}.workspace-context{gap:10px;font-size:11px}.workspace-context>span{padding-left:10px}.workspace-context nav{gap:6px}.workspace-context nav a{width:30px;height:30px}.workspace-course-heading{padding:16px 20px}.workspace-course-heading .wordmark{margin-bottom:16px;font-size:36px}.workspace-path-back{margin-bottom:12px}.workspace-course{padding-inline:18px}.workspace-course summary strong{font-size:18px}.workspace-course summary{gap:10px}.workspace-course ol{margin-left:16px;padding-left:14px}.workspace-course li a{gap:8px;font-size:12px}.workspace-course details[open]>ol{max-height:calc(100dvh - 470px)}.workspace-course-title strong{font-size:19px}.workspace-course-title>span{font-size:10px}.workspace-reference,.workspace-practice{padding:24px}.workspace-reference .reader-body{font-size:16px}.workspace-reference .reader-body h2{font-size:24px}.workspace-reference .reader-body h3{font-size:20px}}@media (width<=900px){.lesson-workspace{display:block}.workspace-mobile-header{box-sizing:border-box;border-bottom:1px solid #14171d40;justify-content:space-between;align-items:center;gap:8px;min-height:62px;padding:12px 20px;display:flex}.workspace-mobile-header .wordmark{font-size:28px}.workspace-mobile-header .wordmark:after{height:11px}.workspace-mobile-header button{min-height:44px;color:var(--ink);font:600 13px/1.4 var(--body);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:8px;display:inline-flex}.workspace-mobile-header svg{width:20px;height:20px}.workspace-outline{border-right:0;border-bottom:1px solid var(--ink);height:auto;max-height:65dvh;display:none;position:static}.lesson-workspace[data-ready=false] .workspace-outline{max-height:none;display:flex}.workspace-course-heading{padding:14px 20px}.workspace-course-heading>.wordmark,.workspace-course-heading>.workspace-path-back{display:none}.workspace-course-title{font-size:14px}.workspace-course{padding:0 20px 16px}.workspace-course summary{min-height:54px}.workspace-course details[open]>ol{min-height:0;max-height:200px}.workspace-main{max-width:900px;margin:auto;padding:18px 20px 28px}.workspace-main>h1{font-size:38px}.workspace-context nav{flex-shrink:0}.workspace-reference,.workspace-practice{padding:24px}.workspace-practice>h2{font-size:32px}.workspace-practice>p{font-size:16px}.workspace-primary{min-height:46px;font-size:15px}.workspace-context{flex-wrap:wrap}}@media (width<=600px){.workspace-main{padding:16px 14px 24px}.workspace-context{flex-wrap:nowrap;gap:8px;font-size:10px}.workspace-context>a{max-width:43%;line-height:1.5}.workspace-context>span{padding-left:8px}.workspace-context nav a{width:28px;height:28px}.workspace-context nav{gap:4px}.workspace-main>h1{margin:16px 0;font-size:32px;line-height:1.12}.workspace-views{gap:14px;margin-bottom:16px}.workspace-views button{min-width:60px;min-height:44px;padding:10px;font-size:15px}.workspace-reference,.workspace-practice{padding:20px}.workspace-reference .reader-body{font-size:16px}.workspace-reference .reader-body pre{padding:12px;font-size:12px}.workspace-practice>h2{font-size:30px}.workspace-notes{font-size:16px}.workspace-completion>div{gap:12px}.workspace-mobile-header{padding-inline:16px}}@media (prefers-reduced-motion:reduce){.lesson-workspace *{scroll-behavior:auto}}.workspace-reference .workspace-topic-reference{width:100%;min-width:0;max-width:none;font-size:inherit;gap:calc(16 * var(--workspace-unit));margin:0;display:grid}.workspace-topic-reference .lesson-code{min-width:0;max-width:100%;margin:0}.workspace-disclosure-content>section,.workspace-topic-reference>*{min-width:0}.workspace-reader-action{max-width:70ch;margin:calc(24 * var(--workspace-unit)) auto 0;font-size:calc(17 * var(--workspace-unit))}.workspace-main [role=tabpanel]:focus{outline:none}.practice-solution{min-width:0;margin-block:calc(28 * var(--workspace-unit));padding-top:calc(24 * var(--workspace-unit));border-top:1px solid var(--blue);font-size:calc(16 * var(--workspace-unit));line-height:1.75}.practice-solution>h3{font:700 calc(24 * var(--workspace-unit))/1.3 var(--body);margin:0 0 calc(12 * var(--workspace-unit))}.practice-solution>ul{max-width:65ch;margin:0 0 20px;padding-inline-start:24px}.practice-solution>ul li+li{margin-top:8px}.practice-solution .workspace-disclosure{border-block:1px solid var(--blue);margin-top:24px}.practice-solution .workspace-disclosure-content,.practice-file{min-width:0}.practice-file h4{font:600 15px/1.5 var(--body);overflow-wrap:anywhere;margin:0 0 8px}.practice-file pre,.practice-output{border:1px solid var(--blue);white-space:pre;tab-size:2;scrollbar-color:var(--muted) transparent;background:#f1f6fc;border-radius:6px;min-width:0;max-width:100%;max-height:32rem;margin:0;padding:16px;font:14px/1.75 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.practice-preview{min-width:0;margin:24px 0}.practice-preview figcaption{margin-bottom:12px;font-weight:700}.practice-preview iframe{border:1px solid var(--blue);box-sizing:border-box;background:#fff;border-radius:6px;width:100%;max-width:100%;display:block}.practice-preview>p{color:var(--muted);max-width:65ch;margin:12px 0 0;font-size:14px;line-height:1.6}.practice-solution pre:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media (width<=600px){.workspace-reader-action,.practice-solution{font-size:16px}.practice-file pre,.practice-output{padding:12px;font-size:13px}}.workspace-course summary strong{font-family:var(--body);font-size:calc(16 * var(--workspace-unit));line-height:1.4}.workspace-sidebar-site-links{border-top:1px solid #14171d33;flex-shrink:0;padding:12px 18px}.workspace-site-navigation{gap:4px;display:grid}.workspace-site-navigation a{min-height:64px;color:var(--ink);box-sizing:border-box;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.workspace-site-navigation a:hover{background:#d4e5f580}.workspace-site-navigation a:focus-visible,.workspace-mobile-header button:focus-visible,.workspace-menu-close:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.workspace-site-navigation strong{font:600 16px/1.5 var(--body);display:block}.workspace-site-navigation small{font:400 13px/1.5 var(--body);color:var(--muted);margin-top:3px;display:block}.workspace-site-navigation svg{fill:none;stroke:currentColor;stroke-width:1.5px;flex-shrink:0;width:20px;height:20px}.workspace-site-navigation.is-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px}.workspace-site-navigation.is-compact a{min-height:44px;padding:8px}.workspace-site-navigation.is-compact strong{font-size:12px;font-weight:500}.workspace-mobile-actions{align-items:center;gap:4px;display:flex}.workspace-mobile-menu{box-sizing:border-box;background:var(--paper);width:min(100%,420px);max-width:100%;height:100dvh;max-height:100dvh;color:var(--ink);font-family:var(--body);border:0;border-left:1px solid #14171d33;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:hidden}.workspace-mobile-menu[open]{flex-direction:column;display:flex}.workspace-mobile-menu::backdrop{background:#14171d66}.workspace-mobile-menu-heading{border-bottom:1px solid #14171d33;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.workspace-mobile-menu-heading h2{font:650 25px/1.3 var(--body);margin:0}.workspace-mobile-menu-heading p{font:400 13px/1.5 var(--body);color:var(--muted);margin:6px 0 0}.workspace-menu-close{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #14171d40;border-radius:6px;flex-shrink:0;place-items:center;display:grid}.workspace-menu-close svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:20px;height:20px}.workspace-mobile-menu-content{overscroll-behavior:contain;flex:1;min-height:0;padding:16px 20px;overflow-y:auto}.workspace-mobile-menu-footer{padding:12px 20px max(12px, env(safe-area-inset-bottom));border-top:1px solid #14171d33;flex-shrink:0;display:block}.workspace-mobile-menu-footer .workspace-path-back{min-height:44px;margin:0}.workspace-mobile-menu-footer .workspace-site-navigation strong{font-size:13px}.workspace-mobile-progress{padding-bottom:20px}.workspace-mobile-progress>div{gap:4px;margin-bottom:12px;display:grid}.workspace-mobile-progress strong{font-size:14px}.workspace-mobile-progress span{color:var(--muted);font-size:12px}.workspace-mobile-progress progress{width:100%;height:6px;accent-color:var(--blue)}.workspace-mobile-menu .workspace-course{flex:none;padding:0;overflow:visible}.workspace-mobile-menu .workspace-course details[open]>ol{min-height:0;max-height:none;overflow:visible}.workspace-mobile-menu .workspace-course a{min-height:44px;font-size:14px}.workspace-mobile-menu .workspace-course summary strong{font-size:16px}@media (width<=900px){.workspace-mobile-header{z-index:20;background:var(--paper);position:sticky;top:0}.workspace-mobile-header button:first-child{border:1px solid #14171d40;border-radius:6px;gap:6px}.workspace-mobile-header svg{stroke:currentColor;stroke-width:1.5px;fill:none}}.workspace-mobile-menu[open]{transition:transform .32s cubic-bezier(.16,1,.3,1);transform:translate(0)}.workspace-mobile-menu[open]::backdrop{opacity:1;transition:opacity .32s ease-out}@starting-style{.workspace-mobile-menu[open]{transform:translate(100%)}.workspace-mobile-menu[open]::backdrop{opacity:0}}.workspace-mobile-menu[data-closing=true]{transition-duration:.22s;transition-timing-function:cubic-bezier(.4,0,1,1);transform:translate(100%)}.workspace-mobile-menu[data-closing=true]::backdrop{opacity:0;transition-duration:.22s;transition-timing-function:ease-in}@media (prefers-reduced-motion:reduce){.workspace-mobile-menu[open],.workspace-mobile-menu[open]::backdrop{transition:none}}
