@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.lrn{--f-display:"Bricolage Grotesque Variable", ui-sans-serif, sans-serif;--f-text:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--f-mono:"Geist Mono Variable", ui-monospace, "SFMono-Regular", monospace;--cv:#55300b;--cv-2:#4a2909;--cv-ink:#f7ead7;--cv-ink-2:#ead3b2;--cv-ink-3:#cfb089;--cv-line:#f7ead733;--cv-line-2:#f7ead75c;--amber:#f2a23c;--amber-hi:#ffd58a;--bg:#f3f0e9;--surface:#fbfaf7;--surface-2:#f4f1ea;--stage:#ebe6dc;--stage-dot:#15171c21;--fg:#15171c;--fg-2:#454850;--fg-3:#5c5f67;--line:#15171c1f;--line-2:#15171c38;--accent:#8f4f08;--accent-soft:#8f4f081a;--token-edge:#8f4f08;--focus:#15171c;--hdr:#fbfaf7cc;--lift:0 1px 2px #281e1414, 0 18px 40px -22px #281e1459;--float:0 1px 2px #281e1414, 0 12px 32px -14px #281e1452;--gutter:clamp(16px, 5vw, 64px);--container:1240px;--rail:176px;--rail-gap:clamp(28px, 3.6vw, 60px);--hdr-h:58px;--hdr-top:12px;--ease:cubic-bezier(.16, 1, .3, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){.lrn{--cv:#4a2909;--cv-2:#3f2308;--bg:#0b0d11;--surface:#111419;--surface-2:#151920;--stage:#0f1216;--stage-dot:#ede8de1a;--fg:#ede8de;--fg-2:#bab5ab;--fg-3:#8f8b82;--line:#ede8de17;--line-2:#ede8de2b;--accent:#f2a23c;--accent-soft:#f2a23c1f;--token-edge:#f2a23c;--focus:#ede8de;--hdr:#111419c7;--lift:0 1px 2px #0006, 0 24px 48px -26px #000000e6;--float:0 1px 2px #00000080, 0 14px 34px -14px #000000d9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:is(html:has(.lrn-page),html:has(.lrn-hub)){scrollbar-color:#15171c38 transparent;scroll-padding-top:90px}@media (prefers-color-scheme:dark){:is(html:has(.lrn-page),html:has(.lrn-hub)){scrollbar-color:#ede8de2b transparent}}.lrn-page,.lrn-hub{background:var(--bg);color:var(--fg);font:400 17px/1.62 var(--f-text);font-feature-settings:"ss01";caret-color:var(--accent);-webkit-font-smoothing:antialiased;overflow-x:clip}.lrn ::selection{background:var(--fg);color:var(--bg)}.lrn ::-webkit-scrollbar{width:10px;height:10px}.lrn ::-webkit-scrollbar-thumb{background:var(--line-2);background-clip:padding-box;border:3px solid #0000;border-radius:10px}.lrn a{color:inherit;text-underline-offset:.24em;text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);transition:text-decoration-color .2s}.lrn a:hover{text-decoration-color:currentColor}.lrn :focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}.lrn h1,.lrn h2,.lrn h3{text-wrap:balance;margin:0}.lrn p{margin:0}.lrn p,.lrn li,.lrn dd{text-wrap:pretty}.lrn ul,.lrn ol{margin:0;padding:0}.lrn code,.lrn kbd,.lrn .m{font-family:var(--f-mono);font-feature-settings:"tnum"}.lrn code{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);overflow-wrap:anywhere;border-radius:5px;padding:.06em .32em;font-size:.86em}.lrn .m{font-size:.92em}.lrn kbd{box-shadow:inset 0 0 0 1px var(--line-2), inset 0 -1px 0 var(--line-2);border-radius:5px;padding:1px 6px;font-size:12px}.lrn dfn{color:var(--fg);font-style:normal;font-weight:600}.lrn dfn[title]{cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--fg-3);text-decoration-color:var(--fg-3);text-underline-offset:.28em}.lrn .sr{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.lrn .wrap{width:100%;max-width:calc(var(--container) + 2 * var(--gutter));padding:0 var(--gutter);margin:0 auto}.lrn .ico{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}.lrn .shield-body{fill:currentColor}.lrn .shield-check{fill:none;stroke:var(--surface);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.lrn .hdr{z-index:50;top:var(--hdr-top);padding:0 calc(var(--gutter) - 8px);pointer-events:none;position:fixed;left:0;right:0}.lrn .hdr-bar{pointer-events:auto;max-width:calc(var(--container) + 16px);height:var(--hdr-h);background:var(--hdr);-webkit-backdrop-filter:blur(16px)saturate(1.4);box-shadow:inset 0 0 0 1px var(--line), var(--float);border-radius:14px;align-items:center;gap:18px;margin:0 auto;padding:0 10px 0 16px;display:flex;position:relative;overflow:hidden}.lrn .brand{font:650 17px/1 var(--f-text);letter-spacing:-.02em;color:var(--fg);flex:none;align-items:center;gap:9px;text-decoration:none;display:inline-flex}.lrn .brand svg{width:24px;height:24px}.lrn .nav{gap:2px;list-style:none;display:flex}.lrn .nav a{color:var(--fg-2);border-radius:8px;padding:7px 10px;font-size:14.5px;font-weight:500;text-decoration:none;transition:color .2s,background-color .2s;display:block}.lrn .nav a:hover{color:var(--fg);background:var(--accent-soft)}.lrn .nav a[aria-current]{color:var(--fg)}.lrn .nav a[aria-current]:after{content:"";background:var(--accent);border-radius:2px;height:1.5px;margin-top:3px;display:block}.lrn .hdr-tools{align-items:center;gap:10px;margin-left:auto;display:flex}.lrn .signin{color:var(--fg);box-shadow:inset 0 0 0 1px var(--line-2);border-radius:8px;padding:7px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:box-shadow .2s}.lrn .signin:hover{box-shadow:inset 0 0 0 1px var(--fg-3)}.lrn .progress{background:var(--accent);transform-origin:0;height:2px;transform:scaleX(var(--read,0));opacity:.85;border-radius:2px;position:absolute;bottom:0;left:14px;right:14px}.lrn .menu-btn{width:38px;height:38px;color:var(--fg);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line-2);background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;display:none}.lrn .menu-btn svg{width:18px;height:18px}.lrn .menu{pointer-events:auto;max-width:calc(var(--container) + 16px);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line), var(--float);border-radius:14px;margin:8px auto 0;padding:8px;list-style:none}.lrn .menu[hidden]{display:none}.lrn .menu a{border-radius:8px;padding:11px 12px;font-weight:500;text-decoration:none;display:block}.lrn .menu a:hover{background:var(--surface-2)}@media (width<=899px){.lrn .nav,.lrn .signin{display:none}.lrn .menu-btn{display:inline-flex}}@media (width<=560px){.lrn{--hdr-h:52px;--hdr-top:8px}.lrn .hdr{padding:0 8px}.lrn .hdr-bar{gap:8px;padding:0 6px 0 12px}.lrn .brand .brand-name{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}.lrn .cover{background:var(--cv);color:var(--cv-ink);isolation:isolate;position:relative;overflow:hidden}.lrn .cover ::selection{background:var(--cv-ink);color:var(--cv)}.lrn .cover :focus-visible{outline-color:var(--cv-ink)}.lrn .crumbs{color:var(--cv-ink-3);margin-bottom:clamp(18px,2.4vw,28px);font-size:14px}.lrn .crumbs ol{flex-wrap:wrap;gap:4px 0;list-style:none;display:flex}.lrn .crumbs li+li:before{content:"/";opacity:.6;margin:0 9px}.lrn .crumbs a{-webkit-text-decoration-color:var(--cv-line-2);text-decoration-color:var(--cv-line-2)}.lrn .crumbs a:hover{color:var(--cv-ink)}.lrn .cover h1{font:800 clamp(3rem, 8.4vw, 6rem) / .9 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.04em;color:var(--cv-ink);max-width:9.5em}.lrn .cover h1 .soft{color:var(--cv-ink-3)}.lrn .dek{color:var(--cv-ink-2);max-width:34em;margin-top:clamp(20px,2.4vw,30px);font-size:clamp(18px,1.5vw,21px);line-height:1.5}.lrn .byline{color:var(--cv-ink-3);flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:26px;font-size:14px;display:flex}.lrn .byline b{color:var(--cv-ink);font-weight:600}@media (width<=560px){.lrn .byline .sep{display:none}}.lrn .byline .sep{background:var(--cv-line-2);width:1px;height:14px}.lrn .ids{flex-wrap:wrap;gap:8px;margin-top:18px;list-style:none;display:flex}.lrn .ids li{font:500 12.5px/1 var(--f-mono);font-feature-settings:"tnum";color:var(--cv-ink-2);box-shadow:inset 0 0 0 1px var(--cv-line-2);border-radius:7px;padding:7px 9px}.lrn .ids li b{color:var(--cv-ink);font-weight:600}.lrn .ids li.live{background:var(--amber);color:#2a1604;box-shadow:none;align-items:center;gap:7px;display:inline-flex}.lrn .ids li.live:before{content:"";background:#2a1604;border-radius:50%;width:6px;height:6px}.lrn .answer{z-index:2;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line), var(--lift);border-radius:16px;grid-template-columns:minmax(0,.95fr) minmax(0,1.35fr) minmax(0,1fr);margin-top:clamp(-120px,-9vw,-72px);display:grid;position:relative}.lrn .answer>section{min-width:0;padding:clamp(22px,2.6vw,34px)}.lrn .answer>section+section{border-left:1px solid var(--line)}.lrn .answer h2{font:600 19px/1.25 var(--f-text);letter-spacing:-.015em;align-items:center;gap:10px;margin-bottom:14px;display:flex}.lrn .answer h2 svg{width:20px;height:20px;color:var(--accent)}.lrn .answer .a>*+*{margin-top:14px}.lrn .answer p{color:var(--fg-2);font-size:16px}.lrn .answer p b,.lrn .answer p strong{color:var(--fg);font-weight:600}.lrn .answer .vb-key{color:var(--fg-3);font-size:13px}.lrn .answer .lead{color:var(--fg);font-size:17.5px;line-height:1.5}.lrn .answer .fine{color:var(--fg-3);font-size:14px}@media (width<=1099px){.lrn .answer{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lrn .answer>section:first-child{grid-column:1/-1}.lrn .answer>section:nth-child(2){border-left:0;border-top:1px solid var(--line)}.lrn .answer>section:nth-child(3){border-top:1px solid var(--line)}}@media (width<=759px){.lrn .answer{grid-template-columns:minmax(0,1fr)}.lrn .answer>section+section{border-left:0;border-top:1px solid var(--line)}}.lrn .kv{background:var(--line);box-shadow:inset 0 0 0 1px var(--line);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:1px;list-style:none;display:grid;overflow:hidden}.lrn .kv li{background:var(--surface);align-content:start;gap:2px;padding:10px 12px;display:grid}.lrn .kv .k{color:var(--fg-3);font-size:12.5px}.lrn .kv .v{color:var(--fg);font-size:15.5px;font-weight:600;line-height:1.3}.lrn .kv .v.m{font-size:14.5px;font-weight:500}.lrn .kv .hot .v{color:var(--accent)}.lrn .vbar{gap:10px;display:grid}.lrn .vb-row{grid-template-columns:54px minmax(0,1fr);align-items:center;gap:10px;display:grid}.lrn .vb-line{font:500 13px var(--f-mono);color:var(--fg-2)}.lrn .vb-track{height:26px;box-shadow:inset 0 0 0 1px var(--line-2);font:500 12px/26px var(--f-mono);font-feature-settings:"tnum";border-radius:7px;display:flex;position:relative;overflow:hidden}.lrn .vb-track span{white-space:nowrap;text-overflow:ellipsis;padding:0 8px;overflow:hidden}.lrn .vb-bad{background:var(--accent-soft);color:var(--accent);background-image:repeating-linear-gradient(135deg,#0000 0 6px,#8f4f0814 6px 7px);flex:1 1 0}.lrn .vb-mid{color:var(--fg-2);border-left:1px solid var(--line-2);flex:1.2 1 0}.lrn .vb-ok{color:var(--fg);border-left:1px solid var(--line-2);background:var(--surface-2);flex:1 1 0;font-weight:600}.lrn .vb-key{color:var(--fg-3);flex-wrap:wrap;gap:4px 16px;font-size:13px;display:flex}.lrn .vb-key i{vertical-align:-1px;width:10px;height:10px;box-shadow:inset 0 0 0 1px var(--line-2);border-radius:3px;margin-right:6px;display:inline-block}.lrn .vb-key .i-bad{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.lrn .vb-key .i-ok{background:var(--surface-2)}.lrn .checker{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;gap:12px;padding:14px;display:grid}.lrn .checker form{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.lrn .field{gap:5px;min-width:0;display:grid}.lrn .field label{color:var(--fg-3);font-size:13px}.lrn .field select,.lrn .field input{font:400 14px/1.2 var(--f-mono);font-feature-settings:"tnum";color:var(--fg);background:var(--surface);border:1px solid var(--line-2);appearance:none;border-radius:8px;width:100%;min-width:0;height:40px;padding:0 12px;transition:border-color .2s}.lrn .field select{text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%238f8b82' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.lrn .field input::placeholder{color:var(--fg-3)}.lrn .field select:hover,.lrn .field input:hover{border-color:var(--fg-3)}.lrn .field input[aria-invalid=true]{border-color:var(--accent)}.lrn .btn{font:600 14.5px/1 var(--f-text);cursor:pointer;background:var(--fg);height:40px;color:var(--bg);transition:transform .25s var(--ease), background-color .2s;border:0;border-radius:9px;padding:0 16px}.lrn .btn:hover{transform:translateY(-1px)}.lrn .verdict{gap:8px;display:grid}.lrn .verdict:empty{display:none}.lrn .verdict .v-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.lrn .verdict .v-state{font:500 12.5px/1 var(--f-mono);box-shadow:inset 0 0 0 1px var(--line-2);white-space:nowrap;border-radius:6px;padding:5px 8px}.lrn .verdict[data-state=bad] .v-state{background:var(--accent-soft);color:var(--accent);box-shadow:none}.lrn .verdict .v-title{color:var(--fg);font-size:15px;font-weight:600}.lrn .verdict p{color:var(--fg-2);font-size:14.5px}.lrn .cmd{background:var(--surface);border:1px solid var(--line);border-radius:8px;align-items:center;gap:8px;min-width:0;padding:4px 4px 4px 12px;display:flex}.lrn .cmd code{box-shadow:none;white-space:nowrap;overflow-wrap:normal;scrollbar-width:thin;background:0 0;flex:1;padding:0;font-size:13.5px;overflow-x:auto}.lrn .copy{font:500 12.5px/1 var(--f-text);height:30px;color:var(--fg-2);box-shadow:inset 0 0 0 1px var(--line-2);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;padding:0 10px;transition:color .2s,box-shadow .2s}.lrn .copy:hover{color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg-3)}.lrn .note{color:var(--fg-3);font-size:13.5px}.lrn .note .copy{height:26px;font-family:var(--f-mono);margin:2px 2px 0 0;font-size:12px}@media (width<=1240px) and (width>=1100px),(width<=640px){.lrn .checker form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lrn .checker .btn{grid-column:1/-1;width:100%}}@media (width<=400px){.lrn .checker form{grid-template-columns:minmax(0,1fr)}}.lrn details.more>summary{cursor:pointer;color:var(--fg-2);border-radius:6px;align-items:center;gap:9px;font-size:14px;list-style:none;display:inline-flex}.lrn details.more>summary::-webkit-details-marker{display:none}.lrn details.more>summary:before{content:"";width:7px;height:7px;transition:transform .2s var(--ease);border-bottom:1.5px solid;border-right:1.5px solid;transform:rotate(-45deg)}.lrn details.more[open]>summary:before{transform:rotate(45deg)}.lrn details.more>summary:hover{color:var(--fg)}.lrn details.more>*+*{margin-top:14px}.lrn .do{gap:12px;list-style:none;display:grid}.lrn .do li{color:var(--fg-2);grid-template-columns:30px minmax(0,1fr);align-items:start;gap:10px;font-size:15.5px;line-height:1.5;display:grid}.lrn .do li b{color:var(--fg);font-weight:600}.lrn .do .di{background:var(--surface-2);width:30px;height:30px;box-shadow:inset 0 0 0 1px var(--line);color:var(--fg-2);border-radius:8px;place-items:center;display:grid}.lrn .do .di svg{width:16px;height:16px}.lrn .do li.urgent .di{background:var(--accent-soft);box-shadow:none;color:var(--accent)}.lrn .art{grid-template-columns:minmax(0,1fr);padding-top:clamp(56px,7vw,96px);display:grid}@media (width>=1100px){.lrn .art{grid-template-columns:var(--rail) minmax(0, 1fr);column-gap:var(--rail-gap)}}.lrn .toc-rail{display:none}@media (width>=1100px){.lrn .toc-rail{top:calc(var(--hdr-h) + var(--hdr-top) + 28px);transition:opacity .35s var(--ease), visibility .35s;align-self:start;font-size:14px;display:block;position:sticky}.lrn .toc-rail.under{opacity:0;visibility:hidden}}.lrn .toc-rail h2{font:600 13px/1.3 var(--f-text);color:var(--fg-3);margin-bottom:10px}.lrn .toc ol{gap:1px;list-style:none;display:grid}.lrn .toc a{color:var(--fg-3);box-shadow:inset 1px 0 0 var(--line-2);transition:color .2s, box-shadow .25s var(--ease);padding:5px 0 5px 12px;line-height:1.35;text-decoration:none;display:block}.lrn .toc a:hover{color:var(--fg)}.lrn .toc a.is-here{color:var(--fg);box-shadow:inset 1.5px 0 0 var(--accent)}.lrn .toc-mobile{box-shadow:inset 0 0 0 1px var(--line-2);background:var(--surface);border-radius:10px;margin-bottom:8px}.lrn .toc-mobile summary{cursor:pointer;justify-content:space-between;align-items:center;padding:12px 14px;font-size:15px;font-weight:600;list-style:none;display:flex}.lrn .toc-mobile summary::-webkit-details-marker{display:none}.lrn .toc-mobile summary:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;margin-right:4px;transform:rotate(45deg)}.lrn .toc-mobile ol{padding:0 14px 12px}@media (width>=1100px){.lrn .toc-mobile{display:none}}.lrn .sec{max-width:820px;padding:clamp(56px,7vw,92px) 0 0}.lrn .sec.wide,.lrn .sec-stage{max-width:none}.lrn .sec>h2{font:600 clamp(1.7rem, 2.7vw, 2.4rem) / 1.1 var(--f-text);letter-spacing:-.032em;max-width:19em}.lrn .sec>h2+*{margin-top:16px}.lrn .sec-lede{color:var(--fg-2);max-width:38em;font-size:18px;line-height:1.55}.lrn .sec>*+*{margin-top:22px}.lrn .prose{max-width:66ch}.lrn .prose>*+*{margin-top:14px}.lrn .prose p,.lrn .prose li{color:var(--fg-2)}.lrn .prose strong,.lrn .prose b{color:var(--fg);font-weight:600}.lrn .prose h3{font:600 17px/1.35 var(--f-text);margin-top:26px}.lrn .prose ul,.lrn .prose ol{gap:8px;padding-left:1.2em;display:grid}.lrn .prose li::marker{color:var(--fg-3)}.lrn .flag{font:500 11.5px/1 var(--f-mono);color:var(--fg-3);box-shadow:inset 0 0 0 1px var(--line-2);vertical-align:1px;white-space:nowrap;border-radius:5px;padding:3px 6px;display:inline-block}.lrn .fn{font:500 11px/1 var(--f-mono);vertical-align:super;color:var(--accent);margin-left:1px;text-decoration:none}.lrn .side{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;grid-template-columns:34px minmax(0,1fr);gap:4px 14px;max-width:66ch;padding:18px 20px;display:grid}.lrn .side .si{background:var(--surface);width:34px;height:34px;box-shadow:inset 0 0 0 1px var(--line);color:var(--accent);border-radius:9px;grid-row:span 2;place-items:center;display:grid}.lrn .side .si svg{width:18px;height:18px}.lrn .side h3{font:600 15px/1.35 var(--f-text);color:var(--fg);align-self:center}.lrn .side p{color:var(--fg-2);font-size:16px}.lrn .pq{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);gap:0 clamp(14px,2vw,26px);max-width:820px;margin:clamp(30px,4vw,48px) 0;padding:clamp(22px,3vw,34px) 0;display:grid}.lrn .pq:before{content:"“";font:800 clamp(4.2rem, 7vw, 5.6rem) / .7 var(--f-display);color:var(--accent);grid-row:span 2;padding-top:.12em}.lrn .pq blockquote{margin:0}.lrn .pq blockquote p{font:500 clamp(1.4rem, 2.3vw, 1.95rem) / 1.28 var(--f-text);letter-spacing:-.022em;color:var(--fg);text-wrap:balance}.lrn .pq figcaption{color:var(--fg-3);margin-top:14px;font-size:14px}.lrn .pq figcaption a{color:var(--fg-2)}.lrn .nums{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:clamp(20px,3vw,40px);max-width:980px;list-style:none;display:grid}.lrn .nums li{border-top:1px solid var(--line-2);align-content:start;gap:8px;padding-top:14px;display:grid}.lrn .nums .n{font:800 clamp(2.8rem, 5.2vw, 4.2rem) / .92 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.04em;color:var(--fg);font-feature-settings:"tnum"}.lrn .nums .n small{letter-spacing:-.01em;color:var(--fg-3);margin-left:.08em;font-size:.42em}.lrn .nums li.hot .n{color:var(--accent)}.lrn .nums p{color:var(--fg-2);max-width:24em;font-size:15px;line-height:1.45}.lrn .terms{max-width:820px;color:var(--fg-2);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 28px;font-size:14.5px;list-style:none;display:grid}.lrn .terms li{border-top:1px solid var(--line);padding-top:10px}.lrn .terms b{color:var(--fg);font-size:14.5px;font-weight:600;display:block}.lrn .has-ib{grid-template-columns:minmax(0,1fr);gap:22px clamp(28px,3.4vw,52px);max-width:none;display:grid}.lrn .has-ib>*+*{margin-top:0}@media (width>=1000px){.lrn .has-ib{grid-template-columns:minmax(0,1fr) 300px}.lrn .has-ib>:not(.infobox){grid-column:1}.lrn .has-ib>.infobox{grid-area:1/2/span 6;align-self:start}}.lrn .infobox{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2);border-radius:14px;padding:18px 18px 8px;font-size:14px}.lrn .ib-name{font:600 16px/1.3 var(--f-text);margin-bottom:4px}.lrn .infobox dl{margin:0}.lrn .ib-row{border-top:1px solid var(--line);grid-template-columns:92px minmax(0,1fr);gap:10px;padding:9px 0;display:grid}.lrn .infobox dt{color:var(--fg-3)}.lrn .infobox dd{color:var(--fg);overflow-wrap:anywhere;min-width:0;margin:0}.lrn .ib-sub{color:var(--fg-3);margin-top:2px;font-size:13px;display:block}.lrn .ib-hot{font-weight:600;color:var(--accent)!important}.lrn figure{margin:0}.lrn .fig{max-width:none}.lrn .fig-frame{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2);border-radius:14px;padding:clamp(14px,2vw,24px)}.lrn .fig figcaption{color:var(--fg-3);max-width:82ch;margin:12px 2px 0;font-size:14px;line-height:1.5}.lrn .fig figcaption b{color:var(--fg);font-weight:600}.lrn .scroller{overscroll-behavior-x:contain;position:relative;overflow-x:auto}.lrn .scroller>svg{width:100%;min-width:860px;height:auto;display:block}.lrn .scroller>svg text{font-family:var(--f-text)}.lrn .scroll-hint{color:var(--fg-3);align-items:center;gap:8px;margin:10px 0 0;font-size:13px;display:none}.lrn .scroll-hint svg{width:26px;height:10px}@media (width<=899px){.lrn .scroll-hint{display:flex}.lrn .scroller{-webkit-mask-image:linear-gradient(90deg,#000 82%,#0000);mask-image:linear-gradient(90deg,#000 82%,#0000)}.lrn .scroller.at-end{-webkit-mask-image:none;mask-image:none}}.lrn .k{fill:none;stroke:var(--fg);stroke-width:1.15px;stroke-linecap:round;stroke-linejoin:round}.lrn .k2{fill:none;stroke:var(--fg-3);stroke-width:.9px;stroke-linecap:round}.lrn .k3{fill:none;stroke:var(--line-2);stroke-width:.8px}.lrn .kd{stroke-dasharray:4 4}.lrn .kf{fill:var(--fg)}.lrn .kbg{fill:var(--surface)}.lrn .kbg2{fill:var(--surface-2)}.lrn .ka{stroke:var(--accent)}.lrn .kaf{fill:var(--accent)}.lrn .kasoft{fill:var(--accent-soft)}.lrn .tx{fill:var(--fg-2);font-size:13px}.lrn .tx-s{fill:var(--fg-3);font-size:12px}.lrn .tx-h{fill:var(--fg);font-size:13.5px;font-weight:600}.lrn .tx-m{fill:var(--fg-2);font-size:12px;font-family:var(--f-mono)!important}.lrn .tx-a{fill:var(--accent)}.lrn .tx-end{text-anchor:end}.lrn .tx-mid{text-anchor:middle}.lrn .tbl-wrap{overflow-x:auto}.lrn table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14.5px;line-height:1.4}.lrn caption{caption-side:top;text-align:left;color:var(--fg-3);padding:0 0 8px;font-size:13.5px}.lrn th{text-align:left;vertical-align:bottom;font:500 11px/1.3 var(--f-text);letter-spacing:.07em;text-transform:uppercase;color:var(--fg-3);border-bottom:1px solid var(--line-2);padding:0 14px 7px 0}.lrn tbody th{text-transform:none;letter-spacing:0;font:500 14px/1.4 var(--f-text);color:var(--fg);vertical-align:top;border-bottom:1px solid var(--line);padding:9px 14px 9px 0}.lrn td{border-bottom:1px solid var(--line);vertical-align:top;color:var(--fg-2);padding:9px 14px 9px 0}.lrn td.m,.lrn th.m{font-family:var(--f-mono);font-feature-settings:"tnum";white-space:nowrap;font-size:13px}.lrn .t-fix{color:var(--fg);font-weight:500}.lrn .t-floor{color:var(--accent);font-weight:600}@media (width<=640px){.lrn .stack thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.lrn .stack tr{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:2px 12px;padding:10px 0;display:grid}.lrn .stack tbody th{border:0;grid-column:1/-1;padding:0 0 4px}.lrn .stack td{white-space:normal;border:0;padding:0}.lrn .def.stack td:last-child{grid-column:1/-1;margin-top:6px}.lrn .stack td:before{content:attr(data-l);font:500 11px/1.4 var(--f-text);letter-spacing:.07em;text-transform:uppercase;color:var(--fg-3);display:block}}.lrn .eff{color:var(--fg);white-space:nowrap;font-weight:500}.lrn .eff svg{vertical-align:-2px;width:14px;height:14px;margin-right:6px}.lrn .e-limit{color:var(--fg-2)}.lrn .e-no{color:var(--fg-3);font-weight:400}.lrn .def td:last-child{max-width:50ch}.lrn .rel{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 clamp(20px,2.6vw,36px);max-width:980px;list-style:none;display:grid}.lrn .rel li{border-top:1px solid var(--line);padding:12px 0}.lrn .rel a{color:var(--fg);font-weight:600}.lrn .rel .kind{color:var(--fg-3);margin-top:2px;font-size:14px;display:block}.lrn .src-h{font:600 15px/1.3 var(--f-text);margin-top:26px}.lrn .src-h span{color:var(--fg-3);font-weight:400}.lrn .src{max-width:900px;margin-top:8px;list-style:none}.lrn .src li{border-top:1px solid var(--line);grid-template-columns:210px minmax(0,1fr);gap:4px 20px;padding:10px 0;font-size:14.5px;display:grid}.lrn .src .who{color:var(--fg);font-weight:500}.lrn .src time{font:400 12.5px/1.5 var(--f-mono);color:var(--fg-3);display:block}.lrn .src p{color:var(--fg-3);margin-top:2px;font-size:14px}@media (width<=640px){.lrn .src li{grid-template-columns:minmax(0,1fr)}}.lrn .rev{color:var(--fg-3);max-width:76ch;margin-top:22px;font-size:14px}.lrn .kovo-note{border-top:1px solid var(--line-2);max-width:820px;color:var(--fg-2);grid-template-columns:30px minmax(0,1fr);gap:16px;margin:clamp(56px,7vw,88px) 0 clamp(64px,8vw,110px);padding-top:22px;font-size:15px;display:grid}.lrn .kovo-note svg{width:26px;height:26px;color:var(--fg)}.lrn .kovo-note p+p{margin-top:10px}.lrn .kovo-note b{color:var(--fg)}.lrn .illus{border:1px dashed var(--line-2);color:var(--fg-3);border-radius:6px;margin-right:4px;padding:1px 7px;font-size:12px;display:inline-block}.lrn .sec-stage .intro{max-width:820px}.lrn .cine{margin-top:30px;position:relative}.lrn .cine-frame{background:var(--stage);box-shadow:inset 0 0 0 1px var(--line);border-radius:18px;outline:none;position:relative;overflow:hidden}.lrn .cine-frame:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.lrn .cine-canvas{position:relative}.lrn .cine-canvas svg.dia{width:100%;height:auto;display:block}.lrn .cine-hud{display:none}.lrn .cine-steps{counter-reset:st;list-style:none}.lrn .cine-steps>li{border-top:1px solid var(--line);grid-template-columns:54px minmax(0,1fr);gap:0 16px;padding:22px 0;display:grid}.lrn .st-n{font:800 2.6rem/.9 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.04em;color:var(--fg-3);font-feature-settings:"tnum"}.lrn .st-body>*+*{margin-top:10px}.lrn .st-body h3{font:600 19px/1.3 var(--f-text);letter-spacing:-.015em}.lrn .st-body .cap{color:var(--fg-2);font-size:16px}.lrn .st-body .when{font:500 12.5px/1.4 var(--f-mono);color:var(--accent)}.lrn .st-body .full p{color:var(--fg-2);font-size:15.5px}.lrn .st-body .full p+p{margin-top:10px}.lrn .fields{box-shadow:inset 0 0 0 1px var(--line);background:var(--surface);border-radius:10px;grid-template-columns:max-content minmax(0,1fr);gap:0;margin:0;font-size:13.5px;display:grid;overflow:hidden}.lrn .fields dt,.lrn .fields dd{border-top:1px solid var(--line);margin:0;padding:6px 12px}.lrn .fields dt:first-of-type,.lrn .fields dt:first-of-type+dd{border-top:0}.lrn .fields dt{color:var(--fg-3);font-family:var(--f-mono);font-size:12.5px}.lrn .fields dd{font-family:var(--f-mono);color:var(--fg);overflow-wrap:break-word;min-width:0;font-size:12.5px}.lrn .fields dd.hot{color:var(--accent);font-weight:600}.lrn .dia text{font-family:var(--f-text);fill:var(--fg)}.lrn .dia .xl{font:800 36px var(--f-display);letter-spacing:-.03em;fill:var(--fg-3)}.lrn .dia .l{letter-spacing:-.015em;font-size:20px;font-weight:600}.lrn .dia .s{fill:var(--fg-2);font-size:14px}.lrn .dia .xs{fill:var(--fg-3);font-size:10.5px}.lrn .dia .mo{font-family:var(--f-mono);font-feature-settings:"tnum"}.lrn .dia .s.mo{font-size:13px}.lrn .dia .xs.mo{font-size:10px}.lrn .dia .hot{fill:var(--accent)}.lrn .dia .on-ink{fill:var(--bg)}.lrn .dia .box{fill:var(--surface);stroke:var(--line-2);stroke-width:1.2px}.lrn .dia .box.soft{fill:var(--surface-2)}.lrn .dia .box.ghost{fill:none;stroke-dasharray:5 5}.lrn .dia .box.hotbox{stroke:var(--accent);stroke-width:1.6px}.lrn .dia .box.ink{fill:var(--fg);stroke:none}.lrn .dia .zone{fill:none;stroke:var(--line-2);stroke-width:1.2px}.lrn .dia .zone.untrusted{stroke-dasharray:7 6}.lrn .dia .rule{stroke:var(--line-2);stroke-width:1px}.lrn .dia .wire{fill:none;stroke:var(--fg-3);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.lrn .dia .arrow{fill:var(--fg-3)}.lrn .dia .trail{fill:none;stroke:var(--amber);stroke-width:2.2px;stroke-dasharray:2 7;stroke-linecap:round}.lrn .dia .gate{fill:var(--surface);stroke:var(--fg);stroke-width:2px}.lrn .dia .tick{fill:none;stroke:var(--fg);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.lrn .dia .grid-dot{fill:var(--stage-dot)}.lrn .dia .mk circle{fill:var(--fg)}.lrn .dia .mk text{fill:var(--bg);font:600 13px var(--f-text);text-anchor:middle;dominant-baseline:central}.lrn .dia .token .core{fill:var(--amber);stroke:var(--token-edge);stroke-width:1.5px}.lrn .dia .token .halo{fill:var(--amber);opacity:.26}.lrn .dia .xs,.lrn .dia [data-show]{opacity:0}.lrn .is-live .cine-frame{top:calc(var(--hdr-h) + var(--hdr-top) + 12px);height:calc(100svh - var(--hdr-h) - var(--hdr-top) - 24px);z-index:1;min-height:460px;max-height:900px;position:sticky}.lrn .is-live .cine-canvas{position:absolute;inset:0}.lrn .is-live .cine-canvas svg.dia{width:100%;height:100%}.lrn .is-live .dia text,.lrn .is-live .dia .mk,.lrn .is-live .dia [data-show]{transition:opacity .35s}.lrn .is-live .dia [data-part]{transition:opacity .5s var(--ease)}.lrn .is-live .dia.focus [data-part]:not(.on){opacity:.2}.lrn .is-live .dia [data-show].show{opacity:1}.lrn .is-live .dia .xl,.lrn .is-live .dia .l,.lrn .is-live .dia .s,.lrn .is-live .dia .mk{opacity:0}.lrn .is-live .dia.z-xl .xl,.lrn .is-live .dia.z-l .l,.lrn .is-live .dia.z-s .s,.lrn .is-live .dia.z-xs .xs,.lrn .is-live .dia.overview .mk{opacity:1}.lrn .is-live .dia .token{transition:transform .85s cubic-bezier(.65,0,.25,1)}.lrn .is-live .dia.moving .token .halo{opacity:.4}@media (prefers-reduced-motion:reduce){.lrn .is-live .dia .token,.lrn .is-live .dia text,.lrn .is-live .dia [data-part],.lrn .is-live .dia [data-show]{transition:none}}.lrn .is-live .cine-hud{pointer-events:none;display:block;position:absolute;inset:0}.lrn .hud-panel{width:var(--panel,420px);background:var(--stage);box-shadow:1px 0 0 var(--line), 18px 0 32px -18px #1e140a2e;pointer-events:auto;flex-direction:column;gap:14px;padding:clamp(22px,2.4vw,32px);display:flex;position:absolute;top:0;bottom:0;left:0}.lrn .hud-num{font:800 clamp(4rem, 7vw, 5.6rem) / .82 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.05em;color:var(--fg);font-feature-settings:"tnum";align-items:baseline;gap:10px;display:flex}.lrn .hud-num small{font:500 14px/1 var(--f-mono);letter-spacing:0;color:var(--fg-3)}.lrn .hud-title{font:600 clamp(1.3rem, 1.9vw, 1.6rem) / 1.18 var(--f-text);letter-spacing:-.025em;max-width:15em}.lrn .hud-when{font:500 12.5px/1.4 var(--f-mono);color:var(--accent)}.lrn .hud-when:empty{display:none}.lrn .hud-full{color:var(--fg-2);max-width:26em;font-size:14.5px;line-height:1.55}.lrn .hud-full p+p{margin-top:8px}.lrn .hud-call{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2), var(--lift);border-radius:12px;padding:10px 2px 2px;position:relative}.lrn .hud-call:empty{display:none}.lrn .hud-call .c-title{color:var(--fg);align-items:center;gap:8px;padding:0 12px 8px;font-size:13px;font-weight:600;display:flex}.lrn .hud-call .c-title svg{width:15px;height:15px;color:var(--accent)}.lrn .hud-call .fields{box-shadow:none;border-top:1px solid var(--line);border-radius:0 0 10px 10px;font-size:13px}.lrn .hud-call .fields dt,.lrn .hud-call .fields dd{padding:5px 12px;font-size:12.5px}.lrn .hud-bar{color:var(--fg-3);align-items:center;gap:8px;margin-top:auto;font-size:13.5px;display:flex}.lrn .hud-bar .count{font-feature-settings:"tnum";margin-right:4px}.lrn .hud-bar .count b{color:var(--fg);font-weight:600}.lrn .hud-bar .hint{margin-left:8px}.lrn .dots{gap:5px;margin-right:auto;display:flex}.lrn .dots i{background:var(--line-2);width:16px;height:3px;transition:background-color .3s, width .4s var(--ease);border-radius:2px}.lrn .dots i.on{background:var(--accent);width:26px}.lrn .icon-btn{cursor:pointer;background:var(--surface);width:36px;height:36px;color:var(--fg);box-shadow:inset 0 0 0 1px var(--line-2);border:0;border-radius:10px;place-items:center;transition:box-shadow .2s,opacity .2s;display:grid}.lrn .icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.lrn .icon-btn:hover{box-shadow:inset 0 0 0 1px var(--fg-3)}.lrn .icon-btn:disabled{opacity:.35;cursor:default}.lrn .hud-lead{opacity:0;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0;overflow:visible}.lrn .hud-lead.show{opacity:1}.lrn .hud-lead path{fill:none;stroke:var(--accent);stroke-width:1.3px;stroke-dasharray:3 4}.lrn .hud-lead circle{fill:var(--accent)}.lrn .hud-lead rect{fill:none;stroke:var(--accent);stroke-width:1.5px}.lrn .hud-mini{display:none}@media (width>=900px){.lrn .is-live .cine-steps{z-index:0;margin-top:calc(-1 * (100svh - var(--hdr-h) - var(--hdr-top) - 24px));pointer-events:none;position:relative}.lrn .is-live .cine-steps>li{border:0;height:92svh;padding:0;display:block}.lrn .is-live .cine-steps>li:last-child{height:calc(100svh - var(--hdr-h) - var(--hdr-top) - 24px)}.lrn .is-live .cine-steps>li>*{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=899px){.lrn .is-live .cine-frame{height:min(50svh,440px);min-height:300px}.lrn .hud-panel,.lrn .hud-lead{display:none}.lrn .hud-mini{pointer-events:auto;align-items:center;gap:8px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.lrn .hud-mini .count{color:var(--fg-3);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font-feature-settings:"tnum";border-radius:9px;margin-right:auto;padding:7px 10px;font-size:13px}.lrn .hud-mini .count b{color:var(--fg)}.lrn .is-live .cine-steps>li{transition:opacity .3s}.lrn .cine-steps>li{grid-template-columns:34px minmax(0,1fr);gap:0 10px}.lrn .st-n{font-size:2rem}.lrn .fields dt{white-space:nowrap}.lrn .is-live .cine-steps>li:not(.on){opacity:.5}.lrn .is-live .cine-steps>li.on .st-n{color:var(--accent)}}.lrn .no-js-only{color:var(--fg-3);margin:10px 2px 0;font-size:14px}.lrn .is-live .no-js-only{display:none}@media (width>=1100px){.lrn .cine{margin-left:calc(-1 * (var(--rail) + var(--rail-gap)))}}@media (width<=899px){.lrn .cine-frame{margin-inline:calc(-1 * var(--gutter));box-shadow:inset 0 1px 0 var(--line), inset 0 -1px 0 var(--line);border-radius:0}}.lrn .is-live .dia [data-show]:not(.show){opacity:0!important}.lrn .src .fn-n{min-width:1.6em;font:500 12px var(--f-mono);color:var(--accent);display:inline-block}.lrn .src li:target{background:var(--accent-soft);border-radius:8px}.lrn .sec-stage .after{margin-top:28px}.lrn .pq-wrap{max-width:820px}.lrn .c1--code{--cv:#7a4206;--cv-ink:#f7ead7;--cv-ink-2:#f0dcbf;--cv-ink-3:#e4c7a0;--cv-line:#f7ead729;--cv-line-2:#f7ead757;--c1-deep:#240e0029;--c1-field:linear-gradient(168deg, #84480a 0%, #7a4206 46%, #6c3a05 100%)}.lrn .c1--mal{--cv:#13224a;--cv-ink:#f4ecdd;--cv-ink-2:#dcdcdf;--cv-ink-3:#b0b8cd;--cv-line:#d6def426;--cv-line-2:#d6def452;--c1-deep:#02061447;--c1-field:linear-gradient(180deg, #0a1530 0%, #13224a 58%, #1c2d5a 100%)}@media (prefers-color-scheme:dark){.lrn .c1--code{--cv:#58300a;--c1-field:linear-gradient(168deg, #5f350b 0%, #58300a 46%, #4a2808 100%)}.lrn .c1--mal{--cv:#0a1530;--c1-field:linear-gradient(180deg, #060b19 0%, #0a1530 55%, #13224a 100%)}}.lrn .cover.c1{background:var(--c1-field)}.lrn .c1-in{z-index:2;min-height:min(100svh,940px);padding-top:calc(var(--hdr-h) + var(--hdr-top) + clamp(96px, 12vw, 172px));padding-bottom:clamp(150px,15vw,196px);display:block;position:relative}.lrn .c1-text{max-width:820px}.lrn .c1 h1{text-wrap:balance;text-shadow:0 2px 28px var(--cv)}.lrn .c1 .dek{text-wrap:pretty;max-width:31em}.lrn .c1-fig{z-index:1;pointer-events:none;margin:0;position:absolute;inset:0}.lrn .c1-art{width:min(78vw,1140px);height:auto;position:absolute;top:34px;left:calc(50% - 290px);overflow:visible;-webkit-mask-image:linear-gradient(90deg,#0000006b 0%,#000 30%);mask-image:linear-gradient(90deg,#0000006b 0%,#000 30%)}.lrn .c1-l{fill:var(--c1-deep);stroke:var(--cv-line-2);stroke-width:1.3px}.lrn .c1-l--fork{stroke-dasharray:6 7}.lrn .c1-l--hot{stroke:#ffd58a80}.lrn .c1-l--core{stroke:var(--cv-ink);stroke-width:1.5px}.lrn .c1-lbl{font:500 15px var(--f-mono);letter-spacing:.01em;fill:var(--cv-ink-3)}.lrn .c1-lbl--hot{fill:var(--amber-hi)}.lrn .c1-lbl--core{fill:var(--cv-ink)}.lrn .c1-run{fill:none;stroke-linecap:round;stroke-linejoin:round}.lrn .c1-run--cold{stroke:var(--cv-ink);stroke-opacity:.55;stroke-width:2.4px}.lrn .c1-run--hot{stroke:var(--amber);stroke-width:4px}.lrn .c1-run--glow{stroke:var(--amber);stroke-width:18px;opacity:.42;filter:blur(9px)}.lrn .c1-tick{stroke:var(--amber-hi);stroke-width:3px;stroke-linecap:round}.lrn .c1-gate-lbl{font:600 16px var(--f-text);fill:var(--amber-hi)}.lrn .c1-node{fill:var(--cv);stroke:var(--cv-ink);stroke-opacity:.6;stroke-width:2px}.lrn .c1-node--hot{fill:var(--amber-hi);stroke:var(--amber);stroke-opacity:1}.lrn .c1-loop{fill:none;stroke:var(--amber);stroke-width:2.4px;stroke-dasharray:2 9;stroke-linecap:round}.lrn .c1-dot{fill:var(--amber-hi);stroke:var(--amber);stroke-width:4px}.lrn .c1-halo{fill:var(--amber);opacity:.3}.lrn .c1-end-lbl{font:600 16px var(--f-text);fill:var(--cv-ink)}.lrn .c1-cap{max-width:46ch;color:var(--cv-ink-3);text-wrap:pretty;margin-top:22px;font-size:13.5px;line-height:1.5}@media (prefers-reduced-motion:no-preference){.lrn .c1-run{stroke-dasharray:1 1;stroke-dashoffset:1px;animation:2.6s cubic-bezier(.45,0,.2,1) .2s forwards lrn-c1-run}.lrn .c1-gate,.lrn .c1-end{opacity:0;animation:lrn-c1-in .7s var(--ease) forwards}.lrn .c1-gate{animation-delay:1.6s}.lrn .c1-end{animation-delay:2.5s}.lrn .c1-halo{transform-box:fill-box;transform-origin:50%;animation:3.6s ease-in-out 3.2s infinite lrn-c1-breathe}}@keyframes lrn-c1-run{to{stroke-dashoffset:0}}@keyframes lrn-c1-in{to{opacity:1}}@keyframes lrn-c1-breathe{50%{opacity:.16;transform:scale(1.35)}}@media (width<=899px){.lrn .c1-in{min-height:0;padding-top:calc(52px + min(78vw,560px));padding-bottom:104px}.lrn .c1-art{width:min(134vw,960px);top:52px;left:-7%;-webkit-mask-image:linear-gradient(#000 64%,#0000 86%);mask-image:linear-gradient(#000 64%,#0000 86%)}.lrn .c1-lbl,.lrn .c1-gate-lbl{font-size:20px}}@media (width<=600px){.lrn .c1-lbl,.lrn .c1-gate-lbl{font-size:24px}.lrn .c1-end-lbl,.lrn .c1--code .c1-lbls text:nth-child(-n+2){display:none}}.lrn .prose ul{list-style:outside}.lrn .prose ol{list-style:decimal}.lrn .eff svg{display:inline-block}.lrn .hdr{font:400 17px/1.62 var(--f-text);font-feature-settings:"ss01";color:var(--fg);-webkit-font-smoothing:antialiased}.lrn .brand .shield-check{stroke:var(--surface)}.lrn .intro .terms{margin-top:18px}.lrn .tbl-def{max-width:980px}.lrn .tbl-gap{margin-top:16px}.lrn .note-gap{margin-top:10px}.lrn .fig-gap{margin-top:28px}.lrn .kv-wide{max-width:820px}.lrn .tx-fg,.lrn .dia .tx-fg{fill:var(--fg)}.lrn .tx-strong{font-weight:600}@media (scripting:none){.lrn .checker{display:none}}.lrn .hub-in{padding-top:calc(var(--hdr-h) + var(--hdr-top) + clamp(56px, 8vw, 112px));padding-bottom:clamp(72px,9vw,128px)}.lrn .hub-head{max-width:880px}.lrn .hub-head h1{font:800 clamp(3rem, 7.4vw, 5.6rem) / .92 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.04em;max-width:10em}.lrn .hub-dek{color:var(--fg-2);max-width:36em;margin-top:clamp(18px,2.2vw,28px);font-size:clamp(18px,1.5vw,21px);line-height:1.5}.lrn .hub-key{color:var(--fg-2);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px clamp(20px,3vw,40px);margin-top:clamp(28px,3.4vw,40px);font-size:15px;line-height:1.5;display:grid}.lrn .hub-key li{border-top:1px solid var(--line-2);grid-template-columns:26px minmax(0,1fr);align-items:start;gap:12px;padding-top:14px;display:grid}.lrn .hub-key b{color:var(--fg);font-weight:600;display:block}.lrn .hub-swatch{background:var(--c1-field);border-radius:7px;width:26px;height:26px;margin-top:1px;box-shadow:inset 0 0 0 1px #ffffff14}.lrn .hub-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,480px),1fr));gap:clamp(18px,2.4vw,32px);margin-top:clamp(44px,5.6vw,72px);display:grid}.lrn .hub-list>li{display:flex}.lrn .hub-card{isolation:isolate;background:var(--c1-field);min-height:clamp(440px,40vw,540px);color:var(--cv-ink);box-shadow:var(--lift);transition:transform .4s var(--ease), box-shadow .4s var(--ease);border-radius:18px;flex-direction:column;flex:1;justify-content:flex-end;padding:clamp(22px,2.6vw,34px);display:flex;position:relative;overflow:hidden}.lrn .hub-card ::selection{background:var(--cv-ink);color:var(--cv)}.lrn .hub-card:hover{transform:translateY(-3px);box-shadow:0 1px 2px #281e141a,0 26px 48px -24px #281e1480}.lrn .hub-card:has(.hc-link:focus-visible){outline:2px solid var(--focus);outline-offset:3px}.lrn .hc-art{z-index:-1;width:104%;height:auto;position:absolute;top:-4%;left:14%;overflow:visible;-webkit-mask-image:linear-gradient(#000 34%,#0000002e 72%);mask-image:linear-gradient(#000 34%,#0000002e 72%)}.lrn .hub-card .c1-lbls,.lrn .hub-card .c1-gate-lbl,.lrn .hub-card .c1-end-lbl{display:none}.lrn .hub-card .c1-run,.lrn .hub-card .c1-gate,.lrn .hub-card .c1-end,.lrn .hub-card .c1-halo{opacity:1;stroke-dashoffset:0;animation:none}.lrn .hub-card .c1-run--glow{opacity:.42}.lrn .hc-title{font:800 clamp(2.1rem, 3.4vw, 3rem) / .94 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.035em;text-wrap:balance;max-width:11em;text-shadow:0 2px 24px var(--cv)}.lrn .hc-link{color:inherit;text-decoration:none}.lrn .hc-link:focus-visible{outline:none}.lrn .hc-link:after{content:"";z-index:1;position:absolute;inset:0}.lrn .hc-dek{max-width:34em;color:var(--cv-ink-2);margin-top:14px;font-size:15.5px;line-height:1.5}.lrn .hub-card .ids{margin-top:16px}.lrn .hc-meta{color:var(--cv-ink-3);flex-wrap:wrap;gap:4px 8px;margin-top:16px;font-size:13.5px;display:flex}@media (width<=600px){.lrn .hub-card{min-height:0;padding-top:54vw}.lrn .hc-art{width:124%;top:-8%;left:-6%;-webkit-mask-image:linear-gradient(#000 42%,#0000 68%);mask-image:linear-gradient(#000 42%,#0000 68%)}.lrn .hc-meta{flex-direction:column}.lrn .hc-meta>[aria-hidden]{display:none}}@media (prefers-reduced-motion:reduce){.lrn .hub-card{transition:none}.lrn .hub-card:hover{transform:none}}
