.wrap.lesson{max-width:calc(70rem + 2 * var(--gutter));font-size:1.125rem}@media (min-width:70rem){.lesson .lesson-layout{grid-template-columns:15rem minmax(0,1fr);gap:0 3rem;display:grid}.lesson .lesson-layout--solo{grid-template-columns:minmax(0,1fr)}.lesson .toc-rail{width:auto;position:static}}.lesson-body{max-width:52rem}.lesson-body .sec>:where(p,ul,ol,h3,h4,blockquote,dl),.lesson-body>:where(p,ul,ol,h3,h4,blockquote,dl){max-width:68ch}.lesson-head{margin-bottom:clamp(1.5rem,5vw,2.25rem)}.lesson-head h1{text-wrap:balance;max-width:24ch;margin:0;font-size:clamp(1.9rem,1.45rem + 1.9vw,2.5rem);line-height:1.12}.lesson-head .lede{max-width:62ch;color:var(--ink-2);text-wrap:pretty;margin:.75rem 0 0;font-size:1.1875rem;line-height:1.55}.lesson-time{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.lesson-time .chip .icon{flex:none;width:1rem;height:1rem}.toc .opt{color:var(--ink-2);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);border-radius:.3rem;align-self:center;margin-left:.5rem;padding:0 .4rem;font-size:.6875rem;line-height:1.5}.lesson-body>p:first-child{font-size:1.1875rem;line-height:1.6}.sec{margin-block:0 clamp(1.75rem,4vw,2.5rem)}.lesson-body>.sec:first-child,.lesson-body>p+.sec{margin-top:clamp(1.75rem,5vw,2.5rem)}.prose .sec__title{text-wrap:balance;margin:0 0 .8rem;font-size:clamp(1.45rem,1.2rem + 1vw,1.85rem);line-height:1.15}.sec--minute,.sec--skills{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--ink);border-radius:0 var(--radius) var(--radius) 0;padding:clamp(1rem,3.5vw,1.4rem) clamp(1rem,3.5vw,1.6rem)}.sec--minute>p{font-size:1.1875rem;line-height:1.6}.sec--minute>:last-child,.sec--turn>:last-child,.sec--deeper>:last-child{margin-bottom:0}.sec--skills ul{gap:.55rem;padding:0;list-style:none;display:grid}.sec--skills li{margin:0;padding-left:1.6rem;position:relative}.sec--skills li:before{content:"";background:var(--ink);width:.5rem;height:.5rem;position:absolute;top:.7em;left:.2rem}.sec--skills>p:last-child{border-top:1px solid var(--line);margin:1.1rem 0 0;padding-top:.9rem}.lesson-head{margin-bottom:1rem;padding-bottom:0}.lesson-head h1{line-height:1.08}.lesson-head .lede{margin-top:.5rem;line-height:1.4}.lesson-meta{margin-top:.5rem}.lesson-layout>article>.toc--inline{margin-bottom:.75rem}.lesson-body>p:first-child{margin-bottom:.75rem;line-height:1.45}.lesson-body>p+.sec--minute{margin-top:.75rem}.sec--minute{margin-bottom:1rem;padding-block:.75rem}.sec--minute>p{margin-bottom:.75rem;line-height:1.45}.sec--minute>:last-child{margin-bottom:0}.sec--minute>.sec__title,.sec--play>.sec__title{margin-bottom:.5rem}.sec--play>.sec__title+.widget{margin-top:.5rem}.sec--how .sec__title+p,.sec--build .sec__title+p{margin-top:0}.sec--how ol:has(+h3[id=each-step-in-code]){--step:1.9rem;counter-reset:step;gap:.7rem;margin-bottom:1.6rem;padding:0;list-style:none;display:grid}.sec--how ol:has(+h3[id=each-step-in-code])>li{padding:.75rem 1rem .75rem calc(var(--step) + 1.6rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);counter-increment:step;margin:0;position:relative}.sec--how ol:has(+h3[id=each-step-in-code])>li:before{content:counter(step);width:var(--step);height:var(--step);color:var(--bg);background:var(--ink);border-radius:50%;place-items:center;font-weight:700;line-height:1;display:grid;position:absolute;top:.75rem;left:.8rem}.sec--how h3[id=each-step-in-code]~.table-wrap td{white-space:normal}.sec--how h3[id=each-step-in-code]~.table-wrap td:first-child{width:9rem;min-width:8rem;font-weight:700}.sec--how h3[id=each-step-in-code]~.table-wrap td:nth-child(2){width:42%}.sec--how h3[id=each-step-in-code]~.table-wrap td:nth-child(2) code:first-child{color:var(--ink-2);background:0 0;margin-bottom:.3rem;padding:0;font-weight:700;display:inline-block}@media (max-width:40rem){.sec--how h3[id=each-step-in-code]~.table-wrap{background:0 0;border:0;overflow:visible}.sec--how h3[id=each-step-in-code]~.table-wrap :where(table,tbody,tr,td){width:auto;min-width:0;display:block}.sec--how h3[id=each-step-in-code]~.table-wrap thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.sec--how h3[id=each-step-in-code]~.table-wrap tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:.8rem}.sec--how h3[id=each-step-in-code]~.table-wrap td{border:0;padding:.4rem .85rem}.sec--how h3[id=each-step-in-code]~.table-wrap td:first-child{width:auto;padding-top:.7rem;font-size:1.05rem}.sec--how h3[id=each-step-in-code]~.table-wrap td:nth-child(2){width:auto}.sec--how h3[id=each-step-in-code]~.table-wrap td:last-child{padding-bottom:.7rem}.sec--how h3[id=each-step-in-code]~.table-wrap tbody tr:hover{background:var(--surface)}.sec--how ol:has(+h3[id=each-step-in-code])>li{padding:.7rem .8rem .7rem calc(var(--step) + 1.2rem)}.sec--how ol:has(+h3[id=each-step-in-code])>li:before{top:.7rem;left:.6rem}}.sec--turn{background:var(--surface);border:2px dashed var(--outline);border-radius:var(--radius);padding:clamp(1rem,3.5vw,1.4rem) clamp(1rem,3.5vw,1.6rem)}.turn-tag{color:var(--bg);letter-spacing:.16em;text-transform:uppercase;background:var(--ink);border-radius:.3rem;margin:0 0 .7rem;padding:.1rem .6rem;font-size:.72rem;font-weight:700;display:inline-block}.sec--turn>.sec__title{margin-bottom:.8rem}.sec--turn details{background:var(--surface-2)}.sec--turn details>pre{margin-top:0}.sec--build ul{gap:.6rem;padding:0;list-style:none;display:grid}.sec--build li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:0;padding:.65rem 1rem .65rem 3rem;position:relative}.sec--build li:before{content:"";border:1.5px solid var(--ink);border-radius:50%;width:1.15rem;height:1.15rem;position:absolute;top:1rem;left:.95rem}.sec--build li:after{content:"";border:solid var(--ink);border-width:0 1.5px 1.5px 0;width:.3rem;height:.55rem;position:absolute;top:1.2rem;left:1.37rem;transform:rotate(40deg)}.widget{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:2.25rem 0 2.5rem;padding:.5rem;position:relative}.widget:before{content:"Interactive";z-index:1;color:var(--ink-2);letter-spacing:.16em;text-transform:uppercase;background:var(--bg);padding:0 .6rem;font-size:.72rem;line-height:1.4rem;position:absolute;top:-.7rem;left:1rem}.widget iframe{border-radius:var(--radius-sm);background:#fff;border:0;width:100%;height:44rem;display:block}.widget iframe[data-themed]{background:var(--surface)}@media (max-width:40rem){.widget iframe{height:56rem}}.sec--play .widget:before{content:none}.sec--play .widget{margin-top:1.5rem}.sec--deeper{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1rem,3.5vw,1.6rem)}.band-tag{flex-wrap:wrap;align-items:center;gap:.4rem .8rem;margin:0 0 .9rem;display:flex}.band-tag__optional{color:var(--ink-2);letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--outline);border-radius:.3rem;padding:.1rem .55rem;font-size:.72rem;font-weight:700}.band-tag__time{color:var(--ink-2);font-size:.95rem}.sec--deeper>.sec__title{margin-bottom:.7rem}.sec--deeper>.sec__title+p{color:var(--ink-2)}.sec--deeper>h3:first-of-type{margin-top:1.3em}.prereq{flex-wrap:wrap;align-items:baseline;gap:.4rem .75rem;margin-bottom:1.1rem;display:flex}.prereq h3{color:var(--ink-2);margin:0;font-size:1rem}.prereq ul{flex-wrap:wrap;gap:.4rem .5rem;margin:0;padding:0;list-style:none;display:flex}.prereq li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);margin:0;padding:.15rem .75rem;font-size:1rem;line-height:1.4}.receipts{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:36rem;margin:0 0 clamp(1.75rem,5vw,2.5rem);padding:1rem 1.25rem 1.1rem}.prose .receipts h2{align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1.15rem;display:flex}.receipts h2 svg{flex:none;width:1.3rem;height:1.3rem}.receipts ul{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.receipts li{margin:0}.receipts a{overflow-wrap:anywhere;padding:.3rem 0;font-size:1rem;line-height:1.35;display:block}.receipts a b{font-weight:700}.receipts a span{color:var(--ink-2);font-family:var(--font-mono);margin-left:.5rem;font-size:.85em}.sec--check{counter-reset:q}.sec--check ol{gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.sec--check ol+ol{margin-top:1.25rem}.sec--check ol>li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);counter-increment:q;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.5rem 1rem;margin:0;padding:1rem 1.15rem 1.15rem;display:grid}.sec--check ol>li:before{content:counter(q);border:1px solid var(--ink);border-radius:50%;place-items:center;width:2.25rem;height:2.25rem;font-size:1.05rem;font-weight:700;display:grid}.sec--check ol>li>*{grid-column:2}.sec--check ol>li>p{margin:.2rem 0 0;font-size:1.125rem;line-height:1.5}.sec--check ol>li>details{background:var(--surface-2);border-radius:var(--radius-sm);grid-column:1/-1;margin:.5rem 0 0}.sec--check ol>li>details>summary:after{content:"Flip the card";color:var(--ink-2);margin-left:auto;font-size:.9rem;font-weight:400}.sec--check ol>li>details[open]{background:var(--bg);border-color:var(--ink)}.sec--check ol>li>details[open]>summary:after{content:"Flip back"}.sec--check ol>li>details[open]>:not(summary){animation:flip-in .45s var(--ease) both;transform-origin:top}.sec--check ol>li>details>:not(summary){margin-inline:1.1rem}.sec--check ol>li>details>p:last-child{margin-bottom:1.1rem}@keyframes flip-in{0%{opacity:0;transform:perspective(700px)rotateX(-75deg)}to{opacity:1;transform:perspective(700px)rotateX(0)}}.sec--reading ul{padding-left:1.2em}.sec--reading p:has(>strong:only-child){margin:1.5em 0 .4em;font-size:1.1rem}.sec--reading li{overflow-wrap:anywhere}.code-files{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);margin-top:clamp(2.25rem,6vw,3.25rem);padding:clamp(1rem,3.5vw,1.6rem)}.code-files>h2{margin:0 0 .35rem;font-size:clamp(1.45rem,1.2rem + 1vw,1.85rem);line-height:1.15}.code-files>p:not(.band-tag){color:var(--ink-2);margin:0 0 1.25rem;font-size:1.0625rem}.code-file{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:.75rem;overflow:hidden}.code-file__bar{justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .95rem;display:flex}.code-file__name{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.95rem;font-weight:700}.code-file__tools{flex:none;align-items:center;gap:.75rem;font-size:1rem;display:flex}.code-file__lines{color:var(--ink-2);font-family:var(--font-mono);font-size:.85rem}.code-file details>summary{cursor:pointer;background:var(--surface-2);border-top:1px solid var(--line);padding:.5rem .95rem;font-weight:700}.code-file details[open]>summary{border-bottom:1px solid var(--line)}.code-file pre{max-height:36rem;font-family:var(--font-mono);tab-size:4;border:0;border-radius:0;margin:0;padding:1rem 1.15rem;font-size:.875rem;line-height:1.6;overflow:auto}.code-file pre code{font-family:inherit}@media (max-width:34rem){.code-file__bar{flex-wrap:wrap}}.next-card{color:var(--bg);background:var(--ink);border:1px solid var(--ink);border-radius:var(--radius);transition:background-color .2s var(--ease), color .2s var(--ease);gap:.5rem;margin:clamp(2.25rem,6vw,3.25rem) 0 0;padding:clamp(1.1rem,4vw,1.6rem);display:grid;position:relative}.next-card:hover{color:var(--ink);background:0 0}.next-card__label{letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.78rem}.next-card h2{margin:0;font-size:clamp(1.45rem,1.2rem + 1.2vw,2rem);line-height:1.15}.next-card h2 a{color:inherit;text-decoration:none}.next-card h2 a:after{content:"";border-radius:var(--radius);position:absolute;inset:0}.next-card:has(h2 a:focus-visible){outline:2px solid var(--focus);outline-offset:4px}.next-card h2 a:focus-visible{outline:none}.next-card p{max-width:56ch;margin:0}.next-card h2+p{margin-top:.4rem}.next-card__row{align-items:center;gap:.75rem;margin-top:.5rem;font-weight:700;display:flex}.next-card__row .go{width:1.7rem;height:1.7rem;margin-left:auto}.lesson-body a[href^="/learn/glossary/#"]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:.14em}.lesson-body a[href^="/learn/glossary/#"]:hover{text-decoration-style:solid}
