:root{--bg:#070910;--bg2:#0c1017;--card:#141a26;--ink:#c9d1dc;--ink2:#9aa4b2;--muted:#7e8794;--acc:#2b86d9;--panel:#18202e;--meta:#171d29;--line:#232b3a;--line-2:#2e3849;--tag:#17222f;--thumb:#1c5f96;--code:#101520;--note:#13211c;--note-line:#4f8f5f;--hdr:#0a0d13;--hdr-line:#1b2230;--hdr-field:#161d2a;--hdr-nav:#c3cad1;--tile:#1b2230;--tile-link:#69b6e8;--tile-ink:#dfe5ee;--r:6px;--maxw:1200px;--maxw-wide:1800px;--gap:28px;--gap-m:18px;--font-text:Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Roboto Condensed", Roboto, sans-serif;--font-mono:Consolas, "Courier New", monospace;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-bold:700;--heading-weight:300;--body-size:16px;--body-lh:1.75;--border-width:1px;--border-width-strong:2px;--space-xs:6px;--space-s:10px;--space-m:14px;--space-l:18px;--space-xl:28px;--space-2xl:40px;--font-xs:12px;--font-sm:14px;--font-lead:20px;--font-title:34px;--radius-sm:4px;--tile-gap:8px;--rule-accent:3px;--rule-strong:4px;--cover-h:150px;--aside-w:320px;--ad-tall:250px;--ad-short:120px;--badge:44px;--num-badge:26px;--card-pad:18px;--sticky-top:20px;--font-card:20px;--font-tile:21px;--font-h3:22px;--font-h2:24px;--font-hero:28px;--font-note:18px;--font-course:19px;--header-pad-x:32px;--header-gap:22px;--nav-pad-top:13px;--nav-pad-bottom:12px;--nav-pad-x:16px;--font-nav:15px;--seg-pad:3px;--seg-radius:16px;--seg-btn-pad-y:5px;--seg-btn-pad-x:12px;--seg-btn-radius:13px;--font-seg:12px;--content-pad-top:28px;--content-pad-bottom:40px;--tile-pad-top:20px;--tile-pad-x:22px;--tile-pad-bottom:22px;--font-tile-sub:13px;--main-gap:20px;--panel-pad-y:18px;--panel-pad-x:22px;--font-panel:15px;--head-gap:16px;--chip-pad-y:7px;--chip-pad-x:14px;--chip-radius:16px;--font-chip:13px;--card-cover-w:200px;--card-gap:18px;--card-text-gap:9px;--cover-radius:4px;--font-card-meta:13px;--font-card-desc:15px;--font-card-more:14px;--aside-gap:18px;--side-pad:16px;--side-gap:8px;--side-row-pad:8px;--font-side:15px;--font-side-count:13px;--footer-pad-y:34px;--font-footer:13px;--font-footer-link:14px;--footer-bottom-pad:16px;--material-pad-y:28px;--material-pad-x:32px;--material-gap:20px;--title-pad-y:18px;--title-pad-x:22px;--badge-radius:6px;--font-badge:12px;--meta-gap:18px;--font-meta-line:14px;--note-gap:10px;--toc-gap:8px;--font-toc:15px;--font-toc-title:17px;--h2-pad-bottom:10px;--h2-margin-top:10px;--toc-indent:4px;--section-pad-top:24px;--section-gap:22px;--crumb-pad-y:12px;--crumb-pad-x:16px;--panel-sm-pad-y:16px;--panel-sm-pad-x:20px;--hint-pad-y:16px;--hint-pad-x:20px;--font-hint:18px;--font-hint-sub:13px;--course-list-gap:14px;--course-head-pad-y:14px;--course-head-pad-x:18px;--course-head-gap:12px;--font-course-count:13px;--font-course-body:15px;--num-border:1.5px;--scrollbar:6px;--download-pad:18px;--download-gap:12px;--download-icon:50px;--note-pad-y:16px;--note-pad-x:20px;--button-pad-y:10px;--button-pad-x:20px}:root[data-theme=light]{--bg:#e9eef3;--bg2:#dde4ea;--card:#fff;--ink:#22282e;--ink2:#4a545e;--muted:#7c868f;--acc:#0d84c3;--panel:#e7f1f9;--meta:#f1f5f8;--line:#e3e9ee;--line-2:#c9d3dc;--tag:#eaf3fa;--thumb:#0d84c3;--code:#f6f8fa;--note:#eef7ec;--note-line:#7bb26a;--hdr:#1d2126;--hdr-line:#2b3138;--hdr-field:#2a3037;--hdr-nav:#c3cad1;--tile:#2a3037;--tile-link:#7fc4ea;--tile-ink:#fff}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-300-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-300-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-300-latin-ext.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-300-latin.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-400-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-400-latin-ext.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-400-latin.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-500-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-500-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-500-latin-ext.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-500-latin.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-700-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-700-latin-ext.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/Roboto-700-latin.woff2)format("woff2");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:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/RobotoCondensed-400-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/RobotoCondensed-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/RobotoCondensed-400-latin-ext.woff2)format("woff2");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:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/RobotoCondensed-400-latin.woff2)format("woff2");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:Roboto Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/RobotoCondensed-700-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/RobotoCondensed-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/RobotoCondensed-700-latin-ext.woff2)format("woff2");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:Roboto Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/RobotoCondensed-700-latin.woff2)format("woff2");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}*,:before,:after{box-sizing:border-box}html{overflow-wrap:anywhere;background:var(--bg);color-scheme:dark}html[data-theme=light]{color-scheme:light}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-text);font-size:var(--body-size);line-height:var(--body-lh);flex-direction:column;margin:0;display:flex}a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,summary:focus-visible{outline:var(--border-width-strong) solid var(--tile-link);outline-offset:var(--border-width-strong)}button,summary{font:inherit}.shell-container{width:min(100%, var(--maxw));padding-inline:var(--gap);margin-inline:auto}@media (width>=1600px){.shell-container{width:min(100%, var(--maxw-wide))}}.site-header,.site-footer{background:var(--hdr);color:var(--hdr-nav)}.site-header{border-bottom:var(--border-width) solid var(--hdr-line)}.header-inner{align-items:center;gap:var(--header-gap);display:flex}.site-logo{color:var(--hdr-nav);font-family:var(--font-display);font-size:var(--font-lead);font-weight:var(--weight-bold);flex:none;line-height:1;display:none}.site-logo span{color:var(--acc)}.site-menu{flex:1}.main-nav{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.main-nav a{padding:var(--nav-pad-top) var(--nav-pad-x) var(--nav-pad-bottom);border-block-end:var(--border-width-strong) solid transparent;color:var(--hdr-nav);font-size:var(--font-nav)}.main-nav a:hover{border-block-end-color:var(--acc);text-decoration:none}.theme-switch{gap:var(--tile-gap);padding:var(--seg-pad);border-radius:var(--seg-radius);background:var(--hdr-field);flex:none;margin-inline-start:auto;display:flex}.theme-switch-button{padding:var(--seg-btn-pad-y) var(--seg-btn-pad-x);border-radius:var(--seg-btn-radius);color:var(--muted);font-size:var(--font-seg);cursor:pointer;background:0 0;border:none}.theme-switch-button[aria-pressed=true]{background:var(--acc);color:var(--tile-ink)}.visually-hidden{width:var(--border-width);height:var(--border-width);margin:calc(var(--border-width) * -1);clip-path:inset(50%);white-space:nowrap;border:0;padding:0;position:absolute;overflow:hidden}.shell-container{padding-inline:var(--header-pad-x)}.shell-grid{gap:var(--gap);padding-block:var(--content-pad-top) var(--content-pad-bottom);flex:1;grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.shell-grid-aside{grid-template-columns:minmax(0, 1fr) var(--aside-w);align-items:start}.shell-grid.showcase-page{padding-block-start:var(--section-pad-top)}.shell-main{gap:var(--main-gap);flex-direction:column;display:flex}.showcase-page .shell-main,.shell-main.showcase-page{gap:var(--section-gap)}.shell-main,.shell-aside{min-width:0}.shell-main>*{margin-block:0}.shell-aside{gap:var(--aside-gap);flex-direction:column;display:flex}h1,h2,h3{font-weight:var(--heading-weight);line-height:1.2}h1{margin-block:0 var(--space-l);font-size:var(--font-title)}h2{margin-block:var(--space-xl) var(--space-s);font-size:var(--font-lead)}h3{margin-block:var(--space-l) var(--space-s)}article,[data-showcase-page],[data-blog-author-page]{min-width:0}img{max-width:100%;height:auto}pre,table{max-width:100%;overflow:auto}pre,code{font-family:var(--font-mono)}pre{padding:var(--space-m);border:var(--border-width) solid var(--line);border-radius:var(--r);background:var(--code)}.breadcrumbs{align-items:center;gap:var(--tile-gap);color:var(--muted);font-size:var(--font-meta-line);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs-panel{padding:var(--crumb-pad-y) var(--crumb-pad-x);border:var(--border-width) solid var(--line);border-radius:var(--r);background:var(--card)}.breadcrumbs li+li:before{content:"›";color:var(--muted);margin-inline-end:var(--space-xs)}.blog-list{padding-inline-start:var(--space-l)}section+section{margin-block-start:var(--gap)}.section-tiles{gap:var(--tile-gap);border-radius:var(--r);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.section-tile a{gap:var(--tile-gap);height:100%;padding:var(--tile-pad-top) var(--tile-pad-x) var(--tile-pad-bottom);background:var(--tile);color:var(--tile-ink);flex-direction:column;display:flex}.section-tile a:hover{background:var(--hdr-field);text-decoration:none}.section-tile-title{overflow-wrap:normal;font-size:var(--font-tile);line-height:1.2}.side-list a,.material-card-title{overflow-wrap:normal}.section-tile-sub{color:var(--hdr-nav);font-size:var(--font-tile-sub);line-height:1.45}.section-tile-count{color:var(--tile-link);font-size:var(--font-xs);letter-spacing:.08em;text-transform:uppercase;margin-block-start:var(--space-xs)}.info-panel{padding:var(--panel-pad-y) var(--panel-pad-x);border-radius:var(--r);border-inline-start:var(--rule-accent) solid var(--acc);background:var(--panel);color:var(--ink2);font-size:var(--font-panel);line-height:1.6}.showcase-page .info-panel{padding:var(--panel-sm-pad-y) var(--panel-sm-pad-x)}.info-panel-note{border-inline-start-color:var(--note-line);background:var(--note)}.info-panel p{margin-block:0}.info-panel p+p{margin-block-start:var(--space-s)}.info-panel-title{color:var(--ink);font-size:var(--font-note);font-weight:var(--weight-medium);margin-block-end:var(--note-gap)}.showcase-section{gap:var(--main-gap);flex-direction:column;display:flex}.showcase-head{justify-content:space-between;align-items:center;gap:var(--head-gap);flex-wrap:wrap;display:flex}.showcase-head h2{font-size:var(--font-h3);font-weight:var(--weight-regular);margin:0}.showcase-links{gap:var(--space-xs);margin:0;display:flex}.showcase-links a{padding:var(--chip-pad-y) var(--chip-pad-x);border-radius:var(--chip-radius);background:var(--meta);color:var(--ink2);font-size:var(--font-chip)}.showcase-links a:hover,.showcase-links a[aria-current=page]{background:var(--acc);color:var(--tile-ink);text-decoration:none}.material-list{gap:var(--card-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.material-card{grid-template-columns:var(--card-cover-w) minmax(0, 1fr);gap:var(--card-gap);padding:var(--card-pad);border:var(--border-width) solid var(--line);border-radius:var(--r);background:var(--card);display:grid}.material-card-body{gap:var(--card-text-gap);flex-direction:column;display:flex}.material-card-title{color:var(--acc);font-size:var(--font-card);font-weight:var(--weight-regular);margin:0;line-height:1.3}.material-card-meta{align-items:center;gap:var(--tile-gap);color:var(--muted);font-size:var(--font-card-meta);flex-wrap:wrap;margin:0;display:flex}.material-card-description{color:var(--ink2);font-size:var(--font-card-desc);text-wrap:pretty;margin:0;line-height:1.6}.material-card-more{font-size:var(--font-card-more);margin:auto 0 0}.cover{border-radius:var(--radius-sm);background:var(--thumb);color:var(--card);font-family:var(--font-display);align-items:flex-end;display:flex}img.cover-card{width:var(--card-cover-w);height:var(--cover-h);border-radius:var(--cover-radius);object-fit:cover;padding:0;display:block}.cover-badge{width:var(--badge);height:var(--badge);border-radius:var(--badge-radius);background:var(--panel);color:var(--acc);font-size:var(--font-badge);flex:none;justify-content:center;align-items:center}.cover-mark{letter-spacing:.04em}.course-list{gap:var(--course-list-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.course-card{border-inline-start:var(--rule-strong) solid var(--tile);border-radius:0 var(--r) var(--r) 0;background:var(--card);overflow:hidden}.course-card-head{align-items:center;gap:var(--course-head-gap);padding:var(--course-head-pad-y) var(--course-head-pad-x);background:var(--acc);color:var(--tile-ink);display:flex}.course-card-num{width:var(--num-badge);height:var(--num-badge);border:var(--num-border) solid var(--tile-ink);font-size:var(--font-course-count);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.course-card-title{color:var(--tile-ink);font-size:var(--font-course)}.course-card-count{font-size:var(--font-course-count);margin-inline-start:auto}.course-card-desc{padding:var(--course-head-pad-y) var(--course-head-pad-x);border:var(--border-width) solid var(--line);color:var(--ink2);font-size:var(--font-course-body);border-block-start:none;border-inline-start:none;margin:0;line-height:1.6}.hint-tiles{gap:var(--tile-gap);border-radius:var(--r);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.hint-tile{padding:var(--hint-pad-y) var(--hint-pad-x);background:var(--acc);color:var(--tile-ink)}.hint-tiles-single{grid-template-columns:minmax(0,1fr)}.hint-tile:nth-child(2){background:var(--tile)}.hint-tile-title{font-size:var(--font-hint);display:block}.hint-tile-sub{color:var(--hdr-nav);font-size:var(--font-hint-sub);display:block}.side-panel{gap:var(--side-gap);padding:var(--side-pad);border:var(--border-width) solid var(--line);border-radius:var(--r);background:var(--card);flex-direction:column;display:flex}.side-panel-sticky{top:var(--sticky-top);position:sticky}.side-panel-title{color:var(--muted);font-family:var(--font-display);font-size:var(--font-xs);font-weight:var(--weight-bold);letter-spacing:.1em;text-transform:uppercase;margin:0}.side-list{margin:0;padding:0;list-style:none}.side-list li{justify-content:space-between;gap:var(--space-s);padding-block:var(--side-row-pad);border-block-end:var(--border-width) solid var(--line);font-size:var(--font-side);display:flex}.side-list li:last-child{border-block-end:none}.side-list span{color:var(--muted);font-size:var(--font-side-count)}.ad-slot:empty{display:none}.ad-slot-tall{min-height:var(--ad-tall)}.ad-slot-short{min-height:var(--ad-short)}.material-page{gap:var(--material-gap);padding:var(--material-pad-y) var(--material-pad-x);border:var(--border-width) solid var(--line);border-radius:var(--r);background:var(--card);flex-direction:column;display:flex}.material-page>*{margin-block:0}.article-head{align-items:center;gap:var(--head-gap);padding:var(--title-pad-y) var(--title-pad-x);border-radius:var(--r);background:var(--acc);color:var(--tile-ink);display:flex}.article-head h1{font-size:var(--font-hero);font-weight:var(--weight-regular);margin:0;line-height:1.25}.article-meta{gap:var(--meta-gap);border-block-end:var(--border-width) solid var(--line);color:var(--muted);font-size:var(--font-meta-line);flex-wrap:wrap;margin:0;padding-block-end:var(--toc-indent);display:flex}.article-meta-author{color:var(--acc)}.material-body h2{margin-block:var(--h2-margin-top) 0;border-block-end:var(--border-width) solid var(--line);font-size:var(--font-h2);font-weight:var(--weight-light);padding-block-end:var(--h2-pad-bottom)}.material-body h3{font-size:var(--font-toc-title);font-weight:var(--weight-medium);margin-block:0}.material-body figure{align-items:center;gap:var(--space-s);padding:var(--space-l);border-radius:var(--r);background:var(--meta);flex-direction:column;margin:0;display:flex}.material-body figcaption{color:var(--muted);font-size:var(--font-sm)}.material-body pre{padding:var(--space-l) var(--space-m);background:var(--code);line-height:1.7}.material-body{gap:var(--space-m);font-size:var(--body-size);line-height:var(--body-lh);flex-direction:column;display:flex}.material-body>*{margin-block:0}.toc ol{margin:0;padding:0;list-style:none}.toc-title{margin:0 0 var(--toc-gap);font-size:var(--font-toc-title);font-weight:var(--weight-medium)}.toc-inline ol{gap:var(--toc-gap);flex-direction:column;padding-inline-start:var(--toc-indent);display:flex}.toc-inline a{font-size:var(--font-toc);text-decoration:underline}.toc-aside li{padding:var(--tile-gap) var(--space-m);border-inline-start:var(--border-width-strong) solid var(--line);font-size:var(--font-meta-line);line-height:1.45}.toc-aside li[data-depth="3"]{padding-inline-start:var(--space-xl)}.material-navigation{gap:var(--space-m);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.material-navigation a{gap:var(--space-xs);padding:var(--space-m) var(--space-l);border:var(--border-width) solid var(--line);border-radius:var(--r);background:var(--card);flex-direction:column;display:flex}.material-navigation-next{text-align:end}.material-navigation-label{color:var(--muted);font-size:var(--font-xs);letter-spacing:.08em;text-transform:uppercase}.material-navigation-title{line-height:1.4}.site-footer{border-top:var(--border-width) solid var(--hdr-line)}.footer-inner{gap:var(--gap);padding-block:var(--footer-pad-y);grid-template-columns:1.4fr repeat(3,minmax(0,1fr));display:grid}.footer-intro p{color:var(--muted);font-size:var(--font-footer);margin-block:0;line-height:1.6}.footer-columns{display:contents}.footer-columns h2{margin:0 0 var(--tile-gap);color:var(--muted);font-family:var(--font-text);font-size:var(--font-footer);font-weight:var(--weight-regular);letter-spacing:.1em;text-transform:uppercase}.footer-columns ul{margin:0;padding:0;list-style:none}.footer-columns li+li{margin-block-start:var(--space-xs)}.footer-columns a{color:var(--hdr-nav);font-size:var(--font-footer-link)}.footer-bottom{border-top:var(--border-width) solid var(--hdr-line)}.footer-bottom .shell-container{justify-content:space-between;gap:var(--space-s);padding-block:var(--footer-bottom-pad);color:var(--muted);font-size:var(--font-footer);flex-wrap:wrap;display:flex}@media (width<=768px){.shell-container{padding-inline:var(--gap-m)}.header-inner{flex-wrap:wrap}.site-menu{padding-top:var(--space-xs);flex:1 0 100%;order:1;overflow-x:auto}.main-nav a{background:var(--hdr-field);white-space:nowrap}.site-logo{flex:1;display:block}.shell-grid{gap:var(--gap-m);padding-block:var(--gap-m)}.material-navigation,.footer-inner{grid-template-columns:1fr}.material-navigation{flex-direction:column}.footer-columns{gap:var(--gap-m)}}.side-course{max-height:calc(var(--ad-tall) * 2);scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;margin:0;padding:0;list-style:none;overflow:hidden auto}.side-course::-webkit-scrollbar{width:var(--scrollbar)}.side-course::-webkit-scrollbar-thumb{border-radius:var(--scrollbar);background:var(--line-2)}.side-course::-webkit-scrollbar-track{background:0 0}.side-course li{padding-block:var(--space-xs);border-block-end:var(--border-width) solid var(--line);font-size:var(--font-sm);line-height:1.35}.side-course li:last-child{border-block-end:none}.side-course [aria-current=page]{padding-inline:var(--space-s);border-inline-start:var(--border-width-strong) solid var(--acc);background:var(--panel);color:var(--ink);display:block}@media (width<=768px){.shell-grid-aside{grid-template-columns:minmax(0,1fr)}.section-tiles{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.section-tile-title{overflow-wrap:normal;hyphens:auto;font-size:var(--font-note)}.section-tile a{padding:var(--space-m)}.material-card{grid-template-columns:minmax(0,1fr);padding:0;overflow:hidden}.material-card-cover,.cover-card{width:100%}.material-card-body,.material-page,.article-head{padding:var(--space-m)}.article-head h1{font-size:var(--font-h3)}.course-card-head{flex-wrap:wrap}.course-card-count{margin-inline-start:0}}.material-body pre[data-language]{padding-block-start:var(--space-2xl);position:relative}.material-body pre[data-language]:before{content:attr(data-language);padding:var(--space-xs) var(--space-m);border-block-end:var(--border-width) solid var(--line);background:var(--meta);color:var(--muted);font-family:var(--font-text);font-size:var(--font-xs);letter-spacing:.06em;text-transform:uppercase;position:absolute;inset-block-start:0;inset-inline:0}.material-body [data-note]{padding:var(--note-pad-y) var(--note-pad-x);border-radius:var(--r);border-inline-start:var(--rule-accent) solid var(--note-line);background:var(--note);color:var(--ink2);font-size:var(--font-panel);line-height:1.6}.material-body [data-note=warn]{border-inline-start-color:var(--acc);background:var(--panel)}.material-body [data-download]{grid-template-columns:var(--download-icon) minmax(0, 1fr);gap:var(--download-gap) var(--card-gap);padding:var(--download-pad);border:var(--border-width) solid var(--line);border-radius:var(--r);background:var(--meta);align-items:start;display:grid}.material-body [data-download]:before{content:"";width:var(--download-icon);height:var(--download-icon);border-radius:var(--radius-sm);background:var(--acc);clip-path:polygon(38% 12%,62% 12%,62% 52%,82% 52%,50% 88%,18% 52%,38% 52%);grid-row:1/span 4}.material-body [data-download-name]{color:var(--acc);font-size:var(--font-note);font-weight:var(--weight-medium);grid-column:2;line-height:1.3}.material-body [data-download-description]{color:var(--ink2);font-size:var(--font-card-desc);grid-column:2;line-height:1.6}.material-body [data-download-link]{padding:var(--button-pad-y) var(--button-pad-x);border-radius:var(--radius-sm);background:var(--acc);color:var(--tile-ink);font-size:var(--font-card-more);grid-column:2;justify-self:start}.material-body [data-download-link=external]{border:var(--border-width) solid var(--line-2);color:var(--ink2);background:0 0}.material-body [data-download-link]:hover{filter:brightness(1.1);text-decoration:none}@media (width<=768px){.material-body [data-download]{grid-template-columns:minmax(0,1fr)}.material-body [data-download]:before{grid-row:auto}.material-body [data-download-name],.material-body [data-download-description],.material-body [data-download-link]{grid-column:1}.material-body [data-download-link]{text-align:center;justify-self:stretch}}.consent{z-index:2;justify-content:center;align-items:center;gap:var(--card-gap);padding:var(--note-pad-y) var(--note-pad-x);border-block-start:var(--border-width) solid var(--line);background:var(--card);color:var(--ink2);font-size:var(--font-card-meta);flex-wrap:wrap;display:flex;position:fixed;inset-block-end:0;inset-inline:0}.consent[hidden]{display:none}.consent-text{max-width:var(--maxw);margin:0;line-height:1.5}.consent-actions{gap:var(--space-s);margin:0;display:flex}.consent-accept,.consent-decline{padding:var(--button-pad-y) var(--button-pad-x);border:var(--border-width) solid var(--acc);border-radius:var(--radius-sm);background:var(--acc);color:var(--tile-ink);font-size:var(--font-card-more);cursor:pointer}.consent-decline{border-color:var(--line-2);color:var(--ink2);background:0 0}@media (width<=768px){.consent{justify-content:stretch}.consent-actions{flex:1 0 100%}.consent-accept,.consent-decline{flex:1}}
