@font-face{font-family:Aob Inter;src:url(/portfolio/fonts/inter-latin-variable.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:AobKrona;src:url(/fun/fonts/KronaOne-Regular-latin.woff2)format("woff2");font-display:swap;font-weight:400}@layer base{.aob-page :is(h1,h2,h3,h4,h5,h6){font-variation-settings:"wght" 600!important;font-synthesis:none!important;font-family:Aob Inter,Inter,sans-serif!important;font-weight:600!important}.aob-page h1.aob-display{text-transform:uppercase;font-variation-settings:normal!important;letter-spacing:-.8px!important;font-family:AobKrona,Krona One,sans-serif!important;font-size:40px!important;font-weight:400!important;line-height:normal!important}.aob-page h2.aob-h2md,.aob-page .aob-panel h2,.aob-page .aob-meta h2,.aob-page .aob-callout h2,.aob-page .aob-follow h2{font-variation-settings:"wght" 600!important;letter-spacing:0!important;font-size:17px!important;font-weight:600!important;line-height:normal!important}.aob-page h2.aob-h2md,.aob-page .aob-follow h2{font-size:18px!important}.aob-page h2.aob-h{font-variation-settings:"wght" 700!important;letter-spacing:-.48px!important;font-size:24px!important;font-weight:700!important;line-height:normal!important}.aob-page h2.aob-h2lg{font-variation-settings:"wght" 600!important;letter-spacing:0!important;font-size:20px!important;font-weight:600!important;line-height:normal!important}.aob-page h2.aob-h2xl{font-variation-settings:"wght" 600!important;letter-spacing:0!important;font-size:28px!important;font-weight:600!important;line-height:normal!important}.aob-page .aob-step h3{font-variation-settings:"wght" 600!important;letter-spacing:0!important;font-size:18px!important;font-weight:600!important;line-height:normal!important}@media (width<=900px){.aob-page h1.aob-display{font-size:32px!important}}.aob-page h1.aob-display.aob-display-lib,.aob-page h1.aob-display.aob-display-lesson{letter-spacing:0!important;line-height:52px!important}.aob-page h2.aob-chapter-title{font-variation-settings:"wght" 700!important;letter-spacing:0!important;font-size:32px!important;font-weight:700!important;line-height:40px!important}@media (width<=900px){.aob-page h1.aob-display{font-size:32px!important}}@media (width<=767px){.aob-page h1.aob-display{letter-spacing:-.4px!important;font-size:26px!important}.aob-page h1.aob-display.aob-display-hub{letter-spacing:-.6px!important;font-size:30px!important;line-height:normal!important}.aob-page h1.aob-display.aob-display-lib{letter-spacing:0!important;font-size:28px!important;line-height:36px!important}.aob-page h1.aob-display.aob-display-lesson{letter-spacing:0!important;font-size:26px!important;line-height:34px!important}.aob-page h2.aob-chapter-title{font-size:26px!important;line-height:34px!important}}}.aob-page{--ink:#080808;--muted:#6b6b6b;--body:#333;--line:#e5e3e0;--fill:#faf8f6;--band:#f3f2f1;--paper:#fff;background:var(--paper);color:var(--ink);font-variation-settings:"wght" 400;font-synthesis:none;-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Aob Inter,Inter,sans-serif;font-weight:400}.aob-page,.aob-page *{box-sizing:border-box}.aob-page :where(h1,h2,h3,h4,h5,h6,p,a,span,li,label,button,input,dt,dd,th,td,legend,figcaption,small,em,strong){font-family:Aob Inter,Inter,sans-serif!important}.aob-page .aob-display,.aob-page .aob-display *{text-transform:uppercase;font-variation-settings:normal!important;letter-spacing:-.8px!important;font-family:AobKrona,Krona One,sans-serif!important;font-size:40px!important;font-weight:400!important;line-height:normal!important}.aob-w4{font-variation-settings:"wght" 400!important;font-weight:400!important}.aob-w5{font-variation-settings:"wght" 500!important;font-weight:500!important}.aob-w6{font-variation-settings:"wght" 600!important;font-weight:600!important}.aob-w7{font-variation-settings:"wght" 700!important;font-weight:700!important}.aob-page :where(a){color:inherit;text-decoration:none}.aob-page :focus-visible{outline:2px solid var(--ink);outline-offset:3px}.aob-page :where(button,input){font:inherit;color:inherit}.aob-stack{flex-direction:column;gap:72px;padding-bottom:96px;display:flex}.aob-col{width:min(840px,100% - 48px);margin:0 auto}.aob-lesson-stack{flex-direction:column;gap:40px;padding-bottom:80px;display:flex}.aob-sticky{z-index:5;background:var(--paper);position:sticky;top:0}@media (width>=768px){.aob-navline{box-shadow:inset 0 -1px #e6e6e6}}.aob-navline .aob-col{white-space:nowrap;justify-content:space-between;align-items:center;gap:16px;padding-top:24px;padding-bottom:20px;font-size:12px;line-height:normal;display:flex}.aob-navline a:hover{text-underline-offset:3px;text-decoration:underline}.aob-crumb b{font-variation-settings:"wght" 700;font-weight:700}.aob-progress{background:#e5e3e0;height:3px}.aob-progress span{background:#080808;width:0;height:3px;display:block}.aob-intro{flex-direction:column;gap:16px;display:flex}.aob-see-built{font-variation-settings:"wght" 500;color:#080808;align-self:flex-start;font-size:16px;font-weight:500;line-height:normal;text-decoration:none}.aob-see-built:hover{text-decoration:none}.aob-page .aob-display{margin:0}.aob-lede{color:var(--ink);margin:0;font-size:19px;line-height:28px}.aob-lesson-stack .aob-lede{line-height:29px}.aob-byline{color:var(--muted);margin:0;font-size:13px;line-height:normal}.aob-kicker{letter-spacing:0;text-transform:none;color:var(--muted);font-variation-settings:"wght" 500;margin:0;font-size:12px;font-weight:500;line-height:normal}.aob-head{flex-direction:column;gap:12px;display:flex}.aob-section{flex-direction:column;gap:24px;display:flex}.aob-section-head{flex-direction:column;gap:8px;display:flex}.aob-page .aob-h{letter-spacing:-.48px;color:var(--ink);margin:0;font-size:24px;line-height:normal}.aob-sub{color:var(--muted);margin:0;font-size:15px;line-height:22px}.aob-note{color:var(--muted);margin:0;font-size:12px;line-height:normal}.aob-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.aob-cards a{background:var(--fill);border-radius:10px;flex-direction:column;align-items:flex-start;gap:10px;height:100%;padding:20px 18px;text-decoration:none;display:flex}.aob-cards a:hover .aob-card-title{text-underline-offset:3px;text-decoration:underline}.aob-num{letter-spacing:.96px;color:var(--muted);font-variation-settings:"wght" 500;font-size:12px;font-weight:500}.aob-card-title{font-variation-settings:"wght" 600;font-size:16px;font-weight:600;line-height:22px}.aob-card-body{color:var(--muted);margin:0;font-size:13px;line-height:19px}.aob-start{color:#333;font-variation-settings:"wght" 600;margin-top:auto;font-size:14px;font-weight:600;line-height:normal}.aob-search{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:10px;width:min(360px,100%);height:44px;padding:0 14px;display:flex}.aob-search input{background:0 0;border:0;outline:none;flex:1;min-width:0;padding:0;font-size:14px;line-height:normal}.aob-tabs{border-bottom:1px solid var(--line);align-items:flex-end;gap:4px;display:flex;overflow-x:auto}.aob-tabs button{color:var(--muted);font-variation-settings:"wght" 500;cursor:pointer;background:0 0;border:0;border-radius:6px 6px 0 0;flex:none;padding:14px 12px;font-size:14px;font-weight:500;line-height:normal}.aob-tabs button[aria-selected=true]{color:var(--ink);font-variation-settings:"wght" 600;border-radius:0;font-weight:600;box-shadow:inset 0 -2px #080808}.aob-rows{margin:0;padding:0;list-style:none}.aob-rows li{align-items:center;gap:16px;padding:18px 0;display:flex}@media (width>=768px){.aob-rows li{box-shadow:inset 0 -1px 0 var(--line)}}.aob-row-copy{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.aob-row-title{font-variation-settings:"wght" 600;flex-wrap:wrap;align-items:center;gap:10px;font-size:17px;font-weight:600;display:flex}.aob-tag{background:var(--fill);letter-spacing:0;text-transform:none;font-variation-settings:"wght" 500;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:500}.aob-row-copy p{color:var(--muted);margin:0;font-size:14px;line-height:normal}.aob-level{color:var(--muted);white-space:nowrap;font-size:12px}.aob-arrow{font-size:16px;line-height:1}.aob-log{flex-direction:column;gap:20px;margin:0;padding:0;list-style:none;display:flex}.aob-log li{align-items:flex-start;gap:24px;font-size:15px;line-height:normal;display:flex}.aob-log span{color:var(--muted);min-width:36px;font-size:13px}.aob-log p{margin:0}.aob-built{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.aob-built a{box-shadow:0 0 0 1px var(--line);border-radius:12px;flex-direction:column;gap:12px;min-width:0;text-decoration:none;display:flex;overflow:hidden}.aob-built a:hover strong{text-underline-offset:3px;text-decoration:underline}.aob-thumb{background:var(--fill);height:150px}.aob-built div{flex-direction:column;gap:6px;padding:4px 18px 20px;display:flex}.aob-built small{letter-spacing:.96px;text-transform:uppercase;color:var(--muted);font-variation-settings:"wght" 500;font-size:12px;font-weight:500}.aob-built strong{font-variation-settings:"wght" 600;font-size:17px;font-weight:600}.aob-built p{color:var(--muted);margin:0;font-size:13px;line-height:19px}.aob-follow{background:var(--fill);border-radius:12px;flex-direction:column;align-items:flex-start;gap:14px;padding:28px;display:flex}.aob-page .aob-follow h2{margin:0;font-size:18px;line-height:normal;font-variation-settings:"wght" 600!important;letter-spacing:0!important;font-weight:600!important}.aob-follow p{color:var(--muted);margin:0;font-size:14px;line-height:normal}.aob-follow form{align-items:stretch;gap:8px;display:flex}.aob-follow input[type=email]{border:1px solid var(--line);background:#fff;border-radius:0;width:min(300px,100%);padding:11px 13px;font-size:14px;line-height:normal}.aob-follow input::placeholder{color:var(--muted)}.aob-page .aob-notify{color:#faf8f6;letter-spacing:.6px;font-variation-settings:"wght" 500;cursor:pointer;white-space:nowrap;background:#4e3b31;border:0;padding:12px 18px;font-size:12px;font-weight:500}.aob-page .aob-notify:hover{background:#3a2c25}.aob-page .aob-notify:disabled{opacity:.65;cursor:progress}.aob-fine{font-size:13px!important}.aob-fine a{text-underline-offset:3px;text-decoration:underline}.aob-sr{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.aob-prereq{box-shadow:0 0 0 1px var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:14px 18px;font-size:14px;display:flex}.aob-prereq a{font-variation-settings:"wght" 600;white-space:nowrap;font-weight:600}.aob-meta,.aob-callout{background:var(--fill);border-radius:12px;flex-direction:column;gap:12px;padding:20px 22px;display:flex}.aob-page .aob-meta h2,.aob-page .aob-callout h2,.aob-page .aob-h2{margin:0;font-size:17px;line-height:normal;letter-spacing:0!important;font-variation-settings:"wght" 600!important;font-weight:600!important}.aob-page h2.aob-h2lg,.aob-page h2.aob-h2xl{font-variation-settings:"wght" 600!important;letter-spacing:0!important;font-size:20px!important;font-weight:600!important;line-height:normal!important}.aob-page h2.aob-h2xl{font-size:28px!important}.aob-label{letter-spacing:.66px;text-transform:uppercase;color:var(--muted);font-variation-settings:"wght" 500;margin:0;font-size:11px;font-weight:500;line-height:normal}.aob-meta p,.aob-callout p,.aob-prose{color:var(--ink);margin:0;font-size:15px;line-height:22px}.aob-meta .aob-label,.aob-callout .aob-label{color:var(--muted);font-size:11px;line-height:normal}.aob-callout .aob-prose,.aob-soft{color:var(--body);line-height:24px}.aob-field{flex-direction:column;gap:6px;display:flex}.aob-partpill{color:#fff;letter-spacing:.88px;font-variation-settings:"wght" 600;background:#121212;border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.aob-parthead{flex-direction:column;gap:12px;display:flex}.aob-terms{flex-direction:column;gap:0;margin:0;display:flex}.aob-pair{align-items:flex-start;gap:20px;padding:14px 0;font-size:15px;line-height:22px;display:flex}.aob-pair dt{font-variation-settings:"wght" 600;flex:0 0 150px;width:150px;font-weight:600}.aob-pair dd{min-width:0;color:var(--muted);font-variation-settings:"wght" 400;flex:1;margin:0;font-weight:400}@media (width>=768px){.aob-pair{box-shadow:inset 0 -1px 0 var(--line)}}.aob-flow{flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding-top:14px;display:flex}.aob-pill{background:var(--band);font-variation-settings:"wght" 500;color:var(--ink);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:500}.aob-flow-arrow{color:var(--muted);font-size:12px;line-height:1}.aob-steps{flex-direction:column;gap:28px;margin:0;padding:0;list-style:none;display:flex}.aob-step{flex-direction:column;gap:10px;display:flex}.aob-stephead{align-items:center;gap:12px;display:flex}.aob-numdot,.aob-numsoft{font-variation-settings:"wght" 600;border-radius:999px;flex:none;font-size:12px;font-weight:600;line-height:normal}.aob-numdot{color:#faf8f6;background:#080808;padding:5px 10px}.aob-numsoft{background:var(--fill);color:#080808;padding:4px 9px}.aob-step h3{margin:0;font-size:18px;line-height:normal;font-variation-settings:"wght" 600!important;letter-spacing:0!important;font-weight:600!important}.aob-step p,.aob-prose{color:#333;margin:0;font-size:15px;line-height:24px}.aob-prose+.aob-prose{margin-top:0}.aob-prose strong{font-variation-settings:"wght" 600;color:#080808;font-weight:600}.aob-callout .aob-prose{color:#333;line-height:24px}.aob-callout strong{font-variation-settings:"wght" 600;color:#080808;font-weight:600}.aob-stack-16{flex-direction:column;gap:16px;display:flex}.aob-stack-10{flex-direction:column;gap:10px;display:flex}.aob-partstop{flex-direction:column;align-items:flex-start;gap:16px;padding-top:32px;display:flex}@media (width>=768px){.aob-partstop{box-shadow:inset 0 1px #d9d9d9}}.aob-code{color:#faf8f6;background:#141414;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;max-width:100%;padding:12px 16px;display:flex;overflow:hidden}.aob-code-lg{padding:16px 18px}.aob-code pre{white-space:pre;font-variation-settings:"wght" 500;flex:1;width:0;min-width:0;max-width:100%;margin:0;font-size:13px;font-weight:500;line-height:normal;overflow-x:auto}.aob-code-lg pre{font-size:14px}.aob-code code{-webkit-user-select:text;user-select:text;display:block;font-family:Aob Inter,Inter,sans-serif!important}.aob-page .aob-copy{color:#b3b3b3;font-variation-settings:"wght" 500;cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:11px;font-weight:500}.aob-code-lg .aob-copy{font-size:12px}.aob-shot{flex-direction:column;gap:8px;margin:0;display:flex}.aob-shot img{background:#111;border-radius:10px;width:100%;height:auto;display:block}.aob-shot figcaption{color:var(--muted);font-size:12px;line-height:24px}.aob-shot a{text-underline-offset:3px;text-decoration:underline}.aob-panel{box-shadow:0 0 0 1px var(--line);border-radius:12px;flex-direction:column;gap:16px;padding:20px 22px;display:flex}.aob-page .aob-panel h2{margin:0;font-variation-settings:"wght" 600!important;letter-spacing:0!important;font-size:17px!important;font-weight:600!important}.aob-link{flex-direction:column;gap:2px;display:flex}.aob-link a{font-variation-settings:"wght" 600;font-size:15px;font-weight:600}.aob-link a:hover{text-underline-offset:3px;text-decoration:underline}.aob-link span{font-variation-settings:"wght" 400;color:var(--muted);font-size:14px;font-weight:400;line-height:normal}.aob-link-meta{align-items:center;gap:8px;display:flex}.aob-link-meta>span:last-child{flex:1;min-width:0}.aob-link span.aob-optional{color:#080808;font-variation-settings:"wght" 500;background:#f3f2f1;border-radius:4px;flex:none;padding:3px 8px;font-size:11px;font-weight:500;line-height:normal}.aob-pager{align-items:stretch;gap:12px;display:flex}.aob-pager a{text-align:left;min-width:0;box-shadow:0 0 0 1px var(--line);font-variation-settings:"wght" 600;border-radius:10px;flex-direction:column;flex:1;align-items:flex-start;gap:4px;max-width:none;margin:0;padding:18px 20px;font-size:15px;font-weight:600;display:flex}.aob-pager a:last-child{color:#faf8f6;box-shadow:none;background:#080808}.aob-pager a:hover{text-underline-offset:3px;text-decoration:underline}.aob-pager small{letter-spacing:.66px;text-transform:uppercase;color:var(--muted);font-variation-settings:"wght" 500;font-size:11px;font-weight:500}.aob-pager a:last-child small{color:#bfbfbf}.aob-facts{box-shadow:0 0 0 1px var(--line);border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.aob-facts div{flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.aob-facts dt{letter-spacing:.66px;text-transform:uppercase;color:var(--muted);font-variation-settings:"wght" 500;font-size:11px;font-weight:500}.aob-facts dd{font-variation-settings:"wght" 500;margin:0;font-size:14px;font-weight:500}.aob-try{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.aob-try li{align-items:flex-start;gap:14px;font-size:15px;line-height:22px;display:flex}.aob-next{grid-template-columns:1fr 1fr;gap:12px;display:grid}.aob-next a{box-shadow:0 0 0 1px var(--line);border-radius:10px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.aob-next a:hover{text-underline-offset:3px;text-decoration:underline}.aob-next small{letter-spacing:.96px;text-transform:uppercase;color:var(--muted);font-variation-settings:"wght" 500;font-size:12px;font-weight:500}.aob-next strong{font-variation-settings:"wght" 600;font-size:15px;font-weight:600}.aob-donebox{box-shadow:0 0 0 1px var(--line);cursor:pointer;border-radius:10px;align-items:center;margin:0;padding:14px 18px;display:flex}.aob-donebox span{font-variation-settings:"wght" 500;color:var(--ink);font-size:14px;font-weight:500;line-height:normal}.aob-block{flex-direction:column;gap:10px;display:flex}.aob-library{flex-direction:column;gap:20px;display:flex}.aob-controls{flex-direction:column;gap:16px;display:flex}@media (width<=900px){.aob-cards{grid-template-columns:1fr 1fr}.aob-built,.aob-facts,.aob-next{grid-template-columns:1fr}.aob-page .aob-display{white-space:normal;font-size:32px!important}}.aob-repo{flex-direction:column;gap:48px;width:min(840px,100% - 40px);margin:0 auto;padding:36px 0 96px;display:flex}.aob-navplain{white-space:nowrap;justify-content:space-between;align-items:center;gap:16px;font-size:12px;line-height:normal;display:flex}.aob-kicker-wide{letter-spacing:.96px}.aob-repo-prose{color:#333;margin:0;font-size:16px;line-height:26px}.aob-inline-terms{flex-direction:column;gap:12px;margin:0;display:flex}.aob-inline-terms div{align-items:baseline;gap:16px;font-size:14px;line-height:normal;display:flex}.aob-inline-terms dt{font-variation-settings:"wght" 600;font-weight:600}.aob-inline-terms dd{color:var(--muted);margin:0}.aob-try{gap:14px}.aob-try .aob-try-step{align-items:center;gap:14px;display:flex}.aob-try-step p{color:var(--ink);margin:0;font-size:15px;line-height:22px}.aob-words{background:var(--fill);border-radius:12px;flex-direction:column;gap:12px;padding:24px;display:flex}.aob-page h2.aob-h2md{margin:0;font-variation-settings:"wght" 600!important;letter-spacing:0!important;font-size:18px!important;font-weight:600!important;line-height:normal!important}.aob-caption{color:var(--muted);margin:0;font-size:12px;line-height:24px}@media (width<=767px){.aob-stack{gap:48px}.aob-cards{grid-template-columns:1fr}.aob-pair,.aob-prereq,.aob-follow form,.aob-pager,.aob-inline-terms div{flex-direction:column;display:flex}.aob-pair dt{flex-basis:auto;width:auto}.aob-prereq a,.aob-pager a{white-space:normal;text-align:left;align-items:flex-start;max-width:none;margin-left:0}.aob-rows li{align-items:flex-start}.aob-navline{border-bottom:0}.aob-page .aob-display{letter-spacing:-.4px!important;font-size:26px!important}.aob-thumb{height:96px}}@media (prefers-reduced-motion:reduce){.aob-page *{scroll-behavior:auto;transition:none!important}}.aob-header{z-index:30;background:#faf8f6;position:sticky;top:0}.aob-main{background:#fff;flex-direction:column;gap:72px;padding:56px 0 96px;display:flex}.aob-navrow{white-space:nowrap;justify-content:space-between;align-items:center;gap:16px;padding-top:24px;padding-bottom:20px;font-size:12px;display:flex}.aob-crumb{margin:0}.aob-crumb strong{font-variation-settings:"wght" 700;font-weight:700}.aob-dek{color:#080808;margin:0;font-size:19px;line-height:29px}.aob-sectionhead{flex-direction:column;gap:8px;display:flex}.aob-sectionhead p,.aob-block>.aob-note{color:#6b6b6b;margin:0}.aob-sectionhead p{font-size:15px;line-height:22px}.aob-banner{color:#faf8f6;background:#080808;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px;display:flex}.aob-banner strong{font-variation-settings:"wght" 600;font-size:20px;font-weight:600;display:block}.aob-banner-kicker{color:#bfbfbf;letter-spacing:0;text-transform:none;font-size:11px;display:block}.aob-banner span span:last-child{color:#bfbfbf;font-size:13px}.aob-path{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.aob-path a{background:#faf8f6;border-radius:10px;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;padding:20px 18px;display:flex}.aob-path a>span:first-child{letter-spacing:0;text-transform:none;color:#6b6b6b;font-variation-settings:"wght" 500;font-size:12px;font-weight:500}.aob-path strong{font-variation-settings:"wght" 600;font-size:16px;font-weight:600;line-height:22px}.aob-path a>span:nth-child(3){color:#6b6b6b;font-size:13px;line-height:19px}.aob-path em{font-variation-settings:"wght" 600;color:#333;margin-top:auto;font-size:14px;font-style:normal;font-weight:600}.aob-outline{font-variation-settings:"wght" 600;border-radius:10px;padding:14px 18px;font-size:14px;font-weight:600;display:inline-flex;box-shadow:0 0 0 1px #e5e3e0}.aob-built{grid-template-columns:1fr 1fr}.aob-thumb{background:#faf8f6;height:150px;display:block}.aob-built-body{flex-direction:column;gap:6px;padding:4px 18px 20px;display:flex}.aob-built-body>span:first-child{letter-spacing:0;text-transform:none;color:#6b6b6b;font-size:12px}.aob-block{gap:24px}.aob-lib{flex-direction:column;gap:32px;display:flex}.aob-search{background:#fff;border-radius:10px;align-items:center;gap:10px;width:min(360px,100%);height:44px;padding:0 14px;display:flex;box-shadow:0 0 0 1px #e5e3e0}.aob-search input{background:0 0;border:0;outline:none;width:100%;font-size:14px}.aob-search input::placeholder{color:#999}.aob-chipscroll{scrollbar-width:none;overflow-x:auto}.aob-chipscroll::-webkit-scrollbar{display:none}.aob-chips{align-items:center;gap:8px;width:max-content;display:flex}.aob-chip,.aob-chipwrap .aob-chip{color:#333;font-variation-settings:"wght" 500;cursor:pointer;white-space:nowrap;background:#fff;border:0;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;display:inline-flex;box-shadow:0 0 0 1px #e5e3e0}.aob-chipwrap{position:relative}.aob-chipwrap .aob-chip{padding:0 6px 0 0}.aob-chipwrap .aob-chip>button{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:8px 8px 8px 14px;display:inline-flex}.aob-chip-on,.aob-chipwrap .aob-chip-on{color:#faf8f6;box-shadow:none;font-variation-settings:"wght" 600;background:#080808;font-weight:600}.aob-chip span,.aob-chipwrap .aob-chip span{color:#6b6b6b;font-variation-settings:"wght" 500;font-size:13px;font-weight:500}.aob-chip-on span,.aob-chipwrap .aob-chip-on span{color:#bfbfbf}.aob-clear{color:#bfbfbf;cursor:pointer;background:0 0;border:0;border-radius:999px;width:24px;height:24px;font-size:16px;line-height:1}.aob-kind{z-index:6;background:#fff;border-radius:12px;width:180px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 12px #00000014,0 0 0 1px #e3e0dc}.aob-kind button{font-variation-settings:"wght" 500;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.aob-kind button[aria-checked=true]{font-variation-settings:"wght" 600;font-weight:600}.aob-tick{flex:0 0 12px;width:12px}.aob-kind button span:last-child{color:#6b6b6b;font-variation-settings:"wght" 500;margin-left:auto;font-weight:500}.aob-swipe{color:#6b6b6b;margin:0;font-size:12px;display:none}.aob-results{flex-direction:column;gap:36px;display:flex}.aob-count{color:#6b6b6b;font-variation-settings:"wght" 500;margin:0;font-size:13px;font-weight:500}.aob-pin{background:#f3f2f1;border-radius:12px;flex-direction:column;gap:10px;padding:22px 24px;display:flex}.aob-pin-top,.aob-pin-meta,.aob-pinned{align-items:center;gap:10px;display:flex}.aob-pin-meta{justify-content:space-between}.aob-pin h2{font-variation-settings:"wght" 600;margin:0;font-size:20px;font-weight:600}.aob-pin p{color:#333;margin:0;font-size:14px;line-height:21px}.aob-pin-meta span{color:#6b6b6b;font-variation-settings:"wght" 500;font-size:12px;font-weight:500}.aob-pin-meta a{font-variation-settings:"wght" 600;font-size:14px;font-weight:600}.aob-pinned{color:#6b6b6b;letter-spacing:.44px;font-variation-settings:"wght" 500;gap:4px;font-size:11px;font-weight:500}.aob-tag{font-variation-settings:"wght" 500;text-transform:none;letter-spacing:0;background:#f3f2f1;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:500;line-height:normal}.aob-tag-on{background:#fff}.aob-group,.aob-rows{flex-direction:column;gap:4px;display:flex}.aob-grouphead{justify-content:space-between;align-items:center;padding-bottom:6px;display:flex}.aob-grouphead h2{font-variation-settings:"wght" 600;margin:0;font-size:15px;font-weight:600}.aob-grouphead h2 span{color:#6b6b6b;font-variation-settings:"wght" 500;margin-left:8px;font-size:13px;font-weight:500}.aob-grouphead button{font-variation-settings:"wght" 600;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:600}.aob-row{align-items:flex-start;gap:24px;padding:18px 0;text-decoration:none;display:flex;box-shadow:inset 0 -1px #e5e3e0}.aob-group .aob-row:last-child,.aob-rows .aob-row:last-child{box-shadow:none}.aob-rowtext{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.aob-titleline{align-items:center;gap:10px;display:flex}.aob-rowtitle{font-variation-settings:"wght" 600;font-size:17px;font-weight:600;line-height:normal}.aob-desc{color:#6b6b6b;font-size:14px;line-height:20px}.aob-meta-line{color:#6b6b6b;font-size:12px;line-height:normal}.aob-status{font-variation-settings:"wght" 600;white-space:nowrap;border-radius:999px;flex:none;padding:4px 10px;font-size:11px;font-weight:600}.aob-status-used{color:#faf8f6;background:#080808}.aob-status-spotted{color:#333;box-shadow:0 0 0 1px #d9d9d9}.aob-status-want{color:#080808;background:#fff;box-shadow:0 0 0 1px #6b6b6b}.aob-page .aob-status-want{box-shadow:none;border:1px dashed #6b6b6b}.aob-go{font-size:16px;line-height:1}.aob-go-beside{display:none}.aob-empty{background:#f3f2f1;border-radius:12px;flex-direction:column;align-items:flex-start;gap:10px;padding:40px 32px;display:flex}.aob-empty h2{margin:0;font-size:17px}.aob-empty p{color:#333;max-width:62ch;margin:0;font-size:14px;line-height:21px}.aob-empty-actions{flex-wrap:wrap;align-items:center;gap:20px;padding-top:8px;display:flex}.aob-solid{color:#faf8f6;font-variation-settings:"wght" 600;background:#080808;border-radius:10px;padding:12px 18px;font-size:14px;font-weight:600}.aob-textlink{font-variation-settings:"wght" 600;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:600}.aob-lesson-layout{grid-template-columns:220px minmax(0,840px);justify-content:center;gap:60px;max-width:100%;padding:56px 40px 96px;display:grid}.aob-lesson-main,.aob-chapter-body,.aob-code{min-width:0;max-width:100%}.aob-rail-sticky{flex-direction:column;gap:14px;display:flex;position:sticky;top:120px}.aob-library-top{flex-direction:column;gap:12px;width:100%;padding-bottom:8px;display:flex}.aob-library-links{flex-direction:column;gap:4px;display:flex}.aob-library-link{font-variation-settings:"wght" 500;color:#333;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.aob-built-link{padding-left:46px}.aob-library-icon{flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.aob-library-rule{background:#e5e3e0;flex:0 0 1px;width:100%;height:1px;min-height:1px;display:block}.aob-rail-label{letter-spacing:.44px;text-transform:uppercase;color:#6b6b6b;font-variation-settings:"wght" 500;margin:0 0 8px;padding:10px 12px 0;font-size:11px;font-weight:500}.aob-rail ol,.aob-mobile-chapters ol{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.aob-chapter a{border-radius:8px;align-items:flex-start;gap:12px;padding:10px 12px;text-decoration:none;display:flex}.aob-chapter strong{font-variation-settings:"wght" 500;font-size:14px;font-weight:500;display:block}.aob-chapter a>span>span{color:#6b6b6b;font-size:12px;display:block}.aob-chapter-current{background:#f3f2f1}.aob-chapter-current strong{font-variation-settings:"wght" 600;color:#080808;font-weight:600}.aob-chapter-upcoming strong,.aob-chapter-upcoming a>span>span{color:#6b6b6b}.aob-chapter-done strong{color:#333}.aob-marker{border-radius:999px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:10px;font-weight:600;display:inline-flex}.aob-chapter-current .aob-marker{background:#fff;box-shadow:0 0 0 1.5px #080808}.aob-chapter-upcoming .aob-marker{color:#6b6b6b;box-shadow:0 0 0 1px #d9d9d9}.aob-chapter-done .aob-marker{color:#faf8f6;background:#080808}.aob-parts{flex-direction:column;gap:8px;margin:0;padding:4px 12px 8px 46px;list-style:none;display:flex}.aob-parts li{color:#6b6b6b;font-size:12px;line-height:16px}.aob-parts .is-on{color:#080808;font-variation-settings:"wght" 500;font-weight:500}.aob-bar{background:#e5e3e0;border-radius:999px;height:4px;display:block;overflow:hidden}.aob-bar i{background:#080808;height:4px;display:block}.aob-rail-progress{color:#6b6b6b;flex-direction:column;gap:8px;margin:0;padding:14px 12px 0;font-size:12px;display:flex}.aob-lesson-head{flex-direction:column;gap:16px;padding-bottom:56px;display:flex}.aob-lesson-head .aob-facts{box-shadow:none;border-radius:0;gap:40px;padding:8px 0;display:flex;overflow:visible}.aob-lesson-head .aob-facts div{padding:0}.aob-lesson-head .aob-facts dt{text-transform:none;letter-spacing:0;font-size:11px}.aob-lesson-head .aob-facts dd{font-variation-settings:"wght" 600;font-size:15px;font-weight:600}.aob-chapter-body{flex-direction:column;gap:40px;padding:56px 0 72px;scroll-margin-top:160px;display:flex}@media (width>=768px){.aob-chapter-body{box-shadow:inset 0 1px #e5e3e0}}.aob-chapter-head{flex-direction:column;gap:12px;display:flex}.aob-anchor{letter-spacing:0;text-transform:none;white-space:nowrap;border-radius:4px;margin-left:10px;padding:3px 8px;font-size:11px;box-shadow:0 0 0 1px #6b6b6b}.aob-hash{white-space:nowrap}.aob-chapter-end{gap:12px;display:flex}.aob-chapter-end button,.aob-chapter-end a{text-align:left;border-radius:10px;flex-direction:column;flex:1;align-items:flex-start;gap:4px;padding:18px 20px;display:flex}.aob-chapter-end button{cursor:pointer;font-variation-settings:"wght" 600;background:#fff;border:0;font-size:15px;font-weight:600;box-shadow:0 0 0 1px #e5e3e0}.aob-chapter-end a{color:#faf8f6;font-variation-settings:"wght" 600;background:#080808;font-size:15px;font-weight:600}.aob-chapter-end button span,.aob-chapter-end a span{letter-spacing:.06em;text-transform:uppercase;font-variation-settings:"wght" 500;color:#6b6b6b;font-size:11px;font-weight:500}.aob-chapter-end a span{color:#bfbfbf}.aob-panel h2 button{font:inherit;font-variation-settings:"wght" 600;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.aob-mobile-chapters{background:#faf8f6;display:none}.aob-chapter-toggle{align-items:center;gap:16px;height:59px;padding:0 24px;display:flex}.aob-chapter-id{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.aob-chapter-toggle .aob-kicker{font-variation-settings:"wght" 500;color:#6b6b6b;white-space:nowrap;font-size:11px;font-weight:500;line-height:normal}.aob-chapter-toggle strong{font-variation-settings:"wght" 600;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;line-height:normal;display:block;overflow:hidden}.aob-chapter-controls{flex:none;align-items:center;gap:10px;display:flex}.aob-kicker-plain{text-transform:none;letter-spacing:0}.aob-segs{gap:3px;display:flex}.aob-segs i{background:#d9d9d9;border-radius:999px;width:14px;height:4px}.aob-segs i.is-on{background:#080808}.aob-chapter-toggle button{cursor:pointer;background:#fff;border:0;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:500;box-shadow:0 0 0 1px #e5e3e0}@media (width<=900px){.aob-main{gap:48px;padding:32px 0 64px}.aob-path,.aob-built{grid-template-columns:1fr}.aob-banner{flex-direction:column;align-items:flex-start}.aob-lesson-layout{grid-template-columns:minmax(0,1fr);padding:32px 24px 64px}.aob-lesson-main{overflow-x:clip}.aob-lesson-head .aob-facts{flex-wrap:wrap;gap:16px 24px}.aob-navrow,.aob-crumb{white-space:normal}.aob-rail{display:none}.aob-mobile-chapters{display:block}.aob-mobile-chapters nav{padding:4px 24px 16px}.aob-library-link{font-size:15px}.aob-dek{font-size:17px;line-height:26px}.aob-chips{padding-right:70vw}.aob-search{width:100%}.aob-swipe{display:block}.aob-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.aob-chipscroll{margin-left:-24px;margin-right:-24px;padding-left:24px;-webkit-mask-image:linear-gradient(90deg,#0000,#000 28px calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#0000,#000 28px calc(100% - 40px),#0000)}.aob-chipscroll.is-start{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000)}.aob-chipscroll.is-end{-webkit-mask-image:linear-gradient(90deg,#0000,#000 28px 100%);mask-image:linear-gradient(90deg,#0000,#000 28px 100%)}.aob-chipscroll.is-start.is-end{-webkit-mask-image:none;mask-image:none}.aob-chipwrap .aob-chip{gap:6px;height:33px;padding:4.5px 6px 4.5px 14px}.aob-chipwrap .aob-chip>button{padding:0}.aob-toolrow{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:16px 0;display:grid}.aob-toolrow .aob-rowtext,.aob-toolrow .aob-titleline{display:contents}.aob-toolrow .aob-tag{grid-area:1/1;line-height:normal}.aob-toolrow .aob-status{grid-area:1/3;margin:0;line-height:normal}.aob-toolrow .aob-rowtitle{grid-area:2/1/auto/3;font-size:16px;line-height:22px}.aob-toolrow .aob-go-end{display:none}.aob-toolrow .aob-go-beside{margin-left:6px;font-size:16px;line-height:22px;display:inline}.aob-toolrow .aob-desc{grid-area:3/1/auto/-1;line-height:20px}.aob-toolrow .aob-meta-line{grid-area:4/1/auto/-1;line-height:normal}}@media (width>=901px){.aob-chipscroll{overflow:visible;-webkit-mask-image:none;mask-image:none}}.aob-page h1.aob-display{text-wrap:balance}.aob-nowrap{white-space:nowrap}@media (width<=900px){.aob-page h1.aob-display,.aob-page h1.aob-display *{font-size:32px!important;line-height:1.2!important}}@media (width<=767px){.aob-page h1.aob-display,.aob-page h1.aob-display *{letter-spacing:-.4px!important;font-size:26px!important;line-height:1.2!important}.aob-page h1.aob-display.aob-display-hub,.aob-page h1.aob-display.aob-display-hub *{letter-spacing:-.6px!important;font-size:30px!important;line-height:normal!important}.aob-page h1.aob-display.aob-display-lib,.aob-page h1.aob-display.aob-display-lib *{letter-spacing:0!important;font-size:28px!important;line-height:36px!important}.aob-page h1.aob-display.aob-display-lesson,.aob-page h1.aob-display.aob-display-lesson *{letter-spacing:0!important;font-size:26px!important;line-height:34px!important}}
