.dsa{--board:#f4c430;--board-deep:#e2ae12;--board-pale:#fdf3cf;--ink:#141414;--ink-2:#3a3a37;--ink-3:#66655f;--ground:#fff;--ground-2:#f3f3f0;--ground-3:#e9e9e4;--rule-soft:#d6d5cf;--blue:#1e5aa8;--blue-deep:#164683;--blue-pale:#e6eef8;--red:#b3282d;--red-pale:#fbeaea;--f-board:var(--font-board), "Arial Narrow", sans-serif;--f-read:var(--font-read), Georgia, serif;--f-code:var(--font-code), ui-monospace, Consolas, monospace;--wrap:1240px;--gutter:32px;--ease:cubic-bezier(.16, 1, .3, 1);--move:.22s;--slide:.42s;background:var(--ground);color:var(--ink);font-family:var(--f-board);font-variation-settings:"wdth" 100;min-height:100vh;caret-color:var(--blue);scrollbar-color:var(--ink-3) var(--ground-2)}.dsa code,.dsa pre,.dsa .cm-content,.dsa .cell,.dsa .train__body{font-variant-ligatures:none}.dsa ::selection{background:var(--board);color:var(--ink)}.dsa :focus-visible{outline:3px solid var(--blue);outline-offset:2px}.dsa a{color:inherit}.dsa .wrap{max-width:var(--wrap);padding-left:var(--gutter);padding-right:var(--gutter);margin-left:auto;margin-right:auto}.dsa .num{font-variant-numeric:tabular-nums}.dsa .visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:760px){.dsa{--gutter:16px}}.kv-bar{font-variation-settings:normal;background:#fff;border-bottom:1px solid #e3e3e3;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.kv-bar__row{align-items:center;gap:24px;height:46px;display:flex}.kv-bar__mark{letter-spacing:-.01em;color:#1a1a1a;font-size:15px;font-weight:650;text-decoration:none}.kv-bar__nav{gap:18px;margin-left:auto;font-size:14px;display:flex}.kv-bar__nav a{color:#555;text-decoration:none}.kv-bar__nav a[aria-current=page],.kv-bar__nav a:hover{color:#111}.kv-crumbs{color:#666;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px;display:flex}.kv-crumbs a{color:#444;text-decoration:none}.kv-crumbs a:hover{text-underline-offset:3px;text-decoration:underline}.kv-crumbs [aria-current]{color:#111;font-weight:550}.board{background:var(--board);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);color:var(--ink)}.board__inner{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 24px;padding-top:26px;padding-bottom:24px;display:grid}.plate{background:var(--ink);color:var(--board);font-family:var(--f-board);font-variation-settings:"wdth" 125;letter-spacing:.06em;justify-content:center;align-items:center;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.plate--lg{padding:14px 16px 13px;font-size:26px}.plate--md{padding:7px 9px 6px;font-size:15px}.plate--sm{padding:5px 6px 4px;font-size:12px}.plate--muted{background:var(--ground);color:var(--ink-3);box-shadow:inset 0 0 0 1.5px var(--rule-soft)}.plate--blue{background:var(--blue);color:#fff}.board__title{font-family:var(--f-board);font-variation-settings:"wdth" 116;text-transform:uppercase;letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:3rem;font-weight:800;line-height:1.02}.board__sub{flex-wrap:wrap;grid-column:2/3;gap:4px 18px;margin:0;font-size:16px;font-weight:550;display:flex}.board__sub span+span:before{content:"";background:var(--ink);vertical-align:middle;width:5px;height:5px;margin-right:18px;display:inline-block;transform:translateY(-1px)}.board__aside{grid-area:1/3/3;align-self:center}.board--compact .board__inner{padding-top:14px;padding-bottom:13px}.board--compact .board__title{font-size:1.75rem}@media (max-width:760px){.board__inner{grid-template-columns:minmax(0,1fr);padding-top:18px;padding-bottom:18px}.board__title{font-size:2rem}.board__sub,.board__aside{grid-area:auto/1}.board__sub{gap:2px 14px;font-size:14px}.board__sub span+span:before{display:none}.plate--lg{padding:9px 11px 8px;font-size:18px}.board__inner>.plate{justify-self:start}}.route{border-bottom:1px solid var(--rule-soft);background:var(--ground)}.route__inner{grid-template-columns:minmax(0,200px) minmax(0,1fr) minmax(0,200px);align-items:center;gap:24px;padding-top:16px;padding-bottom:14px;display:grid}.route__end{align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.route__end--next{text-align:right;justify-content:flex-end}.route__end small{color:var(--ink-3);text-wrap:balance;font-size:13px;font-weight:500;line-height:1.25;display:block}a.route__end:hover .plate{background:var(--blue);color:#fff}.route__stops{justify-content:space-between;margin:0;padding:0;list-style:none;display:flex;position:relative}.route__stops:before{content:"";background:var(--ink);height:3px;position:absolute;top:8px;left:8px;right:8px}.route__stop{flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex;position:relative}.route__stop a{flex-direction:column;align-items:center;gap:6px;text-decoration:none;display:flex}.route__dot{border:3px solid var(--ink);background:var(--ground);box-sizing:border-box;border-radius:50%;width:19px;height:19px}.route__stop.is-done .route__dot{background:var(--ink)}.route__stop.is-here .route__dot{background:var(--blue);border-color:var(--blue);outline:3px solid var(--ground);box-shadow:0 0 0 6px var(--blue)}.route__label{letter-spacing:.04em;font-variation-settings:"wdth" 112;color:var(--ink-2);white-space:nowrap;font-size:12px;font-weight:700}.route__stop.is-here .route__label{color:var(--blue)}.route__stop a:hover .route__label{text-underline-offset:3px;text-decoration:underline}@media (max-width:760px){.route__inner{grid-template-columns:auto minmax(0,1fr) auto;gap:12px}.route__end small{display:none}.route__label{font-size:0}.route__stop.is-here .route__label{font-size:11px}}.btn{border:1.5px solid var(--ink);background:var(--ground);height:40px;color:var(--ink);font-family:var(--f-board);font-variation-settings:"wdth" 104;cursor:pointer;white-space:nowrap;border-radius:2px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:650;line-height:1;text-decoration:none;transition:background-color .12s,color .12s;display:inline-flex}.btn:hover{background:var(--ground-2)}.btn:active{background:var(--ground-3)}.btn--board{background:var(--board)}.btn--board:hover{background:var(--board-deep)}.btn--ink,.dsa a.btn--ink{background:var(--ink);color:var(--board)}.btn--ink:hover{background:#2c2c2a}.btn--icon{width:40px;padding:0}.btn--sm{height:32px;padding:0 11px;font-size:14px}.btn:disabled,.btn[aria-disabled=true]{opacity:.38;cursor:not-allowed;background:var(--ground)}.btn--board:disabled{background:var(--board-pale)}.btn svg{flex:none}.link{color:var(--blue);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.link:hover{text-decoration-thickness:2px}.lesson{grid-template-columns:200px minmax(0,66ch) minmax(0,1fr);column-gap:48px;padding-top:44px;padding-bottom:96px;display:grid}.lesson__rail{grid-area:1/1/99}.lesson__rail nav{position:sticky;top:24px}.rail-title{color:var(--ink-3);margin:0 0 10px;font-size:13px;font-weight:700}.rail-list{border-left:3px solid var(--ink);margin:0;padding:0;list-style:none}.rail-list a{color:var(--ink-2);padding:6px 0 6px 14px;font-size:14px;line-height:1.3;text-decoration:none;display:block;position:relative}.rail-list a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.rail-list a[aria-current=true]{color:var(--blue);font-weight:700}.rail-list a[aria-current=true]:before{content:"";background:var(--blue);width:9px;height:9px;box-shadow:0 0 0 3px var(--ground);border-radius:50%;position:absolute;top:10px;left:-9px}.lesson__body{grid-column:2/4;grid-template-columns:minmax(0,66ch) minmax(0,1fr);column-gap:48px;display:grid}.lesson__body>*{grid-column:1}.lesson__body>.wide{grid-column:1/3;max-width:940px}.lesson__body>.margin-note{grid-area:span 3/2;align-self:start}@media (max-width:1120px){.lesson{grid-template-columns:minmax(0,1fr);padding-top:28px}.lesson__rail{grid-row:auto;margin-bottom:8px}.lesson__rail nav{position:static}.lesson__body{grid-column:1;grid-template-columns:minmax(0,1fr);max-width:72ch}.lesson__body>.wide,.lesson__body>.margin-note{grid-area:auto/1;max-width:none}}.rail-details summary{display:none}@media (max-width:1120px){.rail-details{border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft)}.rail-details summary{cursor:pointer;justify-content:space-between;align-items:center;padding:12px 0;font-size:15px;font-weight:650;list-style:none;display:flex}.rail-details summary::-webkit-details-marker{display:none}.rail-details .rail-title{display:none}.rail-details .rail-list{margin-bottom:14px}.rail-details[open] summary svg{transform:rotate(180deg)}}.prose{font-family:var(--f-read);color:var(--ink);font-size:1.125rem;line-height:1.65}.lesson__body p,.lesson__body li{font-family:var(--f-read);font-size:1.125rem;line-height:1.66}.lesson__body p{margin:0 0 1.05em}.lesson__body ul,.lesson__body ol{margin:0 0 1.2em;padding-left:1.3em}.lesson__body li{margin-bottom:.4em}.lesson__body li::marker{color:var(--ink-3);font-family:var(--f-board);font-weight:700}.lesson__lede{color:var(--ink-2);font-size:1.3rem!important;line-height:1.55!important}.lesson__body h2{font-family:var(--f-board);font-variation-settings:"wdth" 110;letter-spacing:-.005em;text-wrap:balance;margin:2.6rem 0 .8rem;scroll-margin-top:24px;font-size:1.65rem;font-weight:800;line-height:1.15}.lesson__body h3{font-family:var(--f-board);font-variation-settings:"wdth" 104;margin:2rem 0 .5rem;font-size:1.2rem;font-weight:750}.lesson__body strong{font-weight:700}.lesson__body em{font-style:italic}.lesson__body a:not(.btn):not(.plate):not(.depart){color:var(--blue);text-underline-offset:3px;text-decoration-thickness:1px}.lesson__body code,.inline-code{font-family:var(--f-code);background:var(--ground-2);white-space:nowrap;border-radius:2px;padding:.08em .32em;font-size:.86em}.math{font-family:var(--f-read);white-space:nowrap;font-style:normal}.code{border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);background:var(--ground-2);margin:1.4rem 0 1.8rem}.code__head{border-bottom:1px solid var(--rule-soft);color:var(--ink-2);justify-content:space-between;align-items:center;padding:7px 14px;font-size:13px;font-weight:650;display:flex}.code pre{font-family:var(--f-code);counter-reset:line;margin:0;padding:14px 0;font-size:14.5px;line-height:1.6;overflow-x:auto}.code pre code{white-space:pre;font-size:inherit;background:0 0;border-radius:0;padding:0}.code .ln{min-height:1.6em;padding:0 18px 0 0;display:block}.code .ln:before{counter-increment:line;content:counter(line);text-align:right;color:#9a9992;-webkit-user-select:none;user-select:none;width:2.6em;padding-right:1em;display:inline-block}.code .ln.is-mark{background:var(--board-pale);box-shadow:inset 0 1.5px 0 var(--ink), inset 0 -1.5px 0 var(--ink)}.tk-kw{color:var(--blue);font-weight:600}.tk-str{color:#8a5300}.tk-com{color:#74736c;font-style:italic}.tk-num{color:#7a2f8f}.tk-fn{color:var(--ink);font-weight:600}.tk-bi{color:#0d6b6b}.invariant{background:var(--board);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:18px;margin:2rem 0 2.2rem;padding:22px 26px 24px;display:grid}.invariant__text{font-variation-settings:"wdth" 106;text-wrap:balance;font-weight:750;font-family:var(--f-board)!important;margin:0!important;font-size:1.55rem!important;line-height:1.28!important}.invariant__text code{background:#ffffff8c;font-size:.82em}@media (max-width:760px){.invariant{grid-template-columns:minmax(0,1fr);padding:18px}.invariant .plate{justify-self:start}.invariant__text{font-size:1.28rem!important}}.note{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin:1.8rem 0;padding:12px 0 10px}.note__title{font-variation-settings:"wdth" 108;color:var(--ink);font-weight:800;font-family:var(--f-board)!important;margin:0 0 4px!important;font-size:15px!important}.note p{margin-bottom:.6em!important;font-size:1.02rem!important}.note p:last-child{margin-bottom:0!important}.note--warn{border-top:2px solid var(--red)}.note--warn .note__title{color:var(--red)}.margin-note{font-family:var(--f-board);color:var(--ink-2);border-top:3px solid var(--ink);margin-top:.4rem;padding-top:10px;font-size:14px;line-height:1.5}.margin-note p{font-family:var(--f-board)!important;margin:0 0 .6em!important;font-size:14px!important;line-height:1.5!important}.tt{border-collapse:collapse;width:100%;font-family:var(--f-board);font-variant-numeric:tabular-nums;font-size:15px}.tt-wrap{border-top:3px solid var(--ink);border-bottom:1.5px solid var(--ink);margin:1.2rem 0 1.8rem;overflow-x:auto}.tt th{text-align:left;letter-spacing:.02em;color:var(--ink-2);border-bottom:1.5px solid var(--ink);white-space:nowrap;vertical-align:bottom;padding:9px 12px;font-size:12.5px;font-weight:750}.tt td{border-bottom:1px solid var(--rule-soft);vertical-align:top;padding:9px 12px}.tt tr:last-child td{border-bottom:0}.tt .r{text-align:right}.tt tr.is-current td{background:var(--board-pale);box-shadow:inset 0 2px 0 var(--ink), inset 0 -2px 0 var(--ink);font-weight:700}.tt tr.is-path td{background:var(--board-pale)}.tt tr.is-future td{color:#0000}.tt code{font-family:var(--f-code);background:0 0;padding:0;font-size:13.5px}.fig{border:1.5px solid var(--ink);background:var(--ground);margin:2rem 0 2.4rem;scroll-margin-top:24px}.fig:focus-visible{outline-offset:4px}.fig__head{background:var(--ink);color:#fff;flex-wrap:wrap;align-items:baseline;gap:14px;padding:9px 16px 8px;display:flex}.fig__code{color:var(--board);font-variation-settings:"wdth" 120;letter-spacing:.05em;font-size:13px;font-weight:800}.fig__title{font-size:15px;font-weight:650;font-family:var(--f-board);margin:0}.fig__keys{color:#c9c8c2;margin-left:auto;font-size:12.5px;font-weight:500}.fig__variants{border-bottom:1px solid var(--rule-soft);background:var(--ground-2);flex-wrap:wrap;align-items:center;gap:8px 14px;padding:12px 16px;font-size:14px;display:flex}.fig__variants-label{color:var(--ink-2);font-weight:650}.seg{border:1.5px solid var(--ink);border-radius:2px;flex-wrap:wrap;display:inline-flex}.seg button{font-family:var(--f-board);border:0;border-left:1.5px solid var(--ink);background:var(--ground);color:var(--ink);cursor:pointer;padding:6px 11px;font-size:14px;font-weight:600}.seg button:first-child{border-left:0}.seg button:hover{background:var(--ground-3)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--board)}@media (max-width:760px){.seg:has(>:nth-child(3)){background:var(--ink);grid-template-columns:1fr 1fr;gap:1.5px;width:100%;display:grid}.seg:has(>:nth-child(3)) button{border-left:0}.seg:has(>:nth-child(3)) button:last-child:nth-child(odd){grid-column:1/-1}}.fig__stage{padding:26px 22px 18px;overflow-x:auto}.fig__caption{border-top:1px solid var(--rule-soft);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;min-height:4.6em;padding:14px 18px 15px;display:grid}.fig__caption p{font-family:var(--f-read);margin:0!important;font-size:1.05rem!important;line-height:1.5!important}.fig__stepno{font-variation-settings:"wdth" 112;background:var(--blue);color:#fff;white-space:nowrap;margin-top:2px;padding:5px 7px 4px;font-size:13px;font-weight:800}.fig__controls{border-top:1.5px solid var(--ink);background:var(--ground);align-items:center;gap:8px;padding:10px 12px;display:flex}.fig__count{text-align:right;font-variant-numeric:tabular-nums;min-width:7.5em;font-size:14px;font-weight:650}.scrub{appearance:none;cursor:pointer;background:0 0;flex:1;min-width:80px;height:28px;margin:0 6px}.scrub::-webkit-slider-runnable-track{background:linear-gradient(var(--ink), var(--ink)) 0 0 / 100% 2px no-repeat, linear-gradient(var(--ink), var(--ink)) 0 100% / 100% 2px no-repeat, repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 10px);height:8px}.scrub::-moz-range-track{background:linear-gradient(var(--ink), var(--ink)) 0 0 / 100% 2px no-repeat, linear-gradient(var(--ink), var(--ink)) 0 100% / 100% 2px no-repeat, repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 10px);height:8px}.scrub::-webkit-slider-thumb{-webkit-appearance:none;background:var(--blue);border:2px solid var(--ink);border-radius:2px;width:22px;height:18px;margin-top:-5px}.scrub::-moz-range-thumb{background:var(--blue);border:2px solid var(--ink);border-radius:2px;width:18px;height:14px}@media (max-width:760px){.fig__keys{display:none}.fig__stage{padding:22px 12px 14px}.fig__controls{flex-wrap:wrap}.scrub{flex-basis:100%;order:5;margin:4px 0 0}.fig__count{min-width:0;margin-left:auto}.fig__next-label{display:none}}.track{--cw:48px;--n:16;width:calc((var(--n) + 1) * var(--cw) + 44px);font-family:var(--f-board);margin:0 auto;padding-left:44px;position:relative}@media (max-width:760px){.track{--cw:36px;width:calc((var(--n) + 1) * var(--cw) + 34px);padding-left:34px}}.track__window{height:26px;margin-bottom:4px;position:relative}.track__window-bar{width:calc(var(--n) * var(--cw));background:var(--blue);height:2px;clip-path:inset(0 var(--clip-r) 0 var(--clip-l));transition:clip-path var(--move) var(--ease);position:absolute;top:6px;left:0}.track__window-label{color:var(--blue);white-space:nowrap;transform:translateX(calc(var(--at) * var(--cw)));transition:transform var(--move) var(--ease);font-size:12px;font-weight:700;position:absolute;top:-10px;left:0}.track__window-end{background:var(--blue);width:2px;height:12px;transform:translateX(var(--x));transition:transform var(--move) var(--ease);position:absolute;top:6px;left:0}.track__window.is-bad .track__window-bar,.track__window.is-bad .track__window-end{background:var(--red)}.track__window.is-bad .track__window-label{color:var(--red)}.track__row{grid-template-columns:repeat(var(--n), var(--cw));display:grid}.track__idx{justify-content:center;padding-bottom:6px;display:flex}.track__idx span{background:var(--blue);color:#fff;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;min-width:22px;height:20px;padding:0 4px;font-size:12px;font-weight:700;display:inline-flex}.track__idx.is-out span{background:var(--ground-3);color:var(--ink-3)}.cell{border:1.5px solid var(--ink);background:var(--ground);height:52px;font-family:var(--f-code);font-variant-numeric:tabular-nums;transition:background-color var(--move) var(--ease), color var(--move) var(--ease);justify-content:center;align-items:center;margin-left:-1.5px;font-size:18px;font-weight:500;display:flex;position:relative}.track__row .cell:first-child{margin-left:0}.cell.is-out{color:#8f8e87;background:repeating-linear-gradient(135deg, var(--ground-2) 0 5px, #dedcd5 5px 6.5px)}.cell.is-mid{background:var(--board);box-shadow:inset 0 0 0 3px var(--ink);z-index:1;font-weight:700}.cell.is-found{background:var(--board);box-shadow:inset 0 0 0 3px var(--ink), inset 0 0 0 6px var(--board), inset 0 0 0 7.5px var(--ink);z-index:1;font-weight:700}.cell.is-violated{background:var(--red-pale);color:var(--red);text-decoration:line-through;text-decoration-thickness:2px}.cell.is-target{outline:2px dashed var(--ink);outline-offset:-7px}.cell__flag{background:var(--ink);width:20px;height:20px;color:var(--board);z-index:2;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-9px;right:-7px}@media (max-width:760px){.cell{height:42px;font-size:15px}}.track__pred{grid-template-columns:repeat(var(--n), var(--cw));margin-top:6px;display:grid}.pred{font-variation-settings:"wdth" 110;justify-content:center;font-size:12px;font-weight:750;display:flex}.pred span{text-align:center;border:1.5px solid var(--ink-3);min-width:28px;color:var(--ink-3);background:var(--ground);padding:3px 0 2px}.pred.is-true span{border-color:var(--ink);background:var(--ink);color:var(--board)}.pred.is-unknown span{color:#a3a29b;border-style:dashed;border-color:#b9b8b1}@media (max-width:760px){.pred span{min-width:24px;font-size:10px}}.rails{gap:4px;margin-top:12px;display:grid}.rail{height:30px;position:relative}.rail:before{content:"";background:linear-gradient(var(--ink), var(--ink)) 0 0 / 100% 1.5px no-repeat, linear-gradient(var(--ink), var(--ink)) 0 100% / 100% 1.5px no-repeat, repeating-linear-gradient(90deg, #8f8e87 0 1.5px, transparent 1.5px 8px);opacity:.85;height:6px;position:absolute;top:22px;left:0;right:0}.rail__name{color:var(--ink-2);font-size:13px;font-weight:750;font-family:var(--f-code);margin-right:10px;position:absolute;top:4px;right:100%}.follow__box .rail{display:flex}.follow__box .rail__name{z-index:2;text-align:right;background:var(--ground);flex:none;align-self:flex-start;width:44px;margin:4px 0 0 -44px;padding-right:8px;line-height:1.3;position:sticky;left:0}@media (max-width:760px){.follow__box .rail__name{width:34px;margin-left:-34px;padding-right:5px}}.train{width:var(--cw);transform:translateX(calc(var(--at) * var(--cw)));transition:transform var(--move) var(--ease), opacity .12s ease;justify-content:center;display:flex;position:absolute;top:0;left:0}.train__body{background:var(--ground);border:2px solid var(--ink);min-width:34px;height:21px;font-family:var(--f-code);border-radius:6px 6px 2px 2px;justify-content:center;align-items:center;padding:0 6px;font-size:12.5px;font-weight:700;display:inline-flex;position:relative}.train__body:before{content:"";border:6px solid #0000;border-top:0;border-bottom:6px solid var(--ink);margin-left:-6px;position:absolute;top:-7px;left:50%}.train--mid .train__body{background:var(--ink);color:var(--board)}.train--blue .train__body{background:var(--blue);border-color:var(--blue);color:#fff}.train--blue .train__body:before{border-bottom-color:var(--blue)}.train.is-off{opacity:0}@media (max-width:760px){.train__body{min-width:28px;padding:0 3px;font-size:11px}.rail__name{margin-right:6px;font-size:11px}}.readout{font-family:var(--f-code);color:var(--ink-2);flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-top:18px;font-size:14px;display:flex}.readout b{color:var(--ink);font-weight:700}.verdict{font-family:var(--f-board);border:1.5px solid;align-items:center;gap:6px;padding:3px 9px 2px;font-size:13.5px;font-weight:700;display:inline-flex}.verdict--ok{color:var(--ink);background:var(--ground);border:4px double var(--ink);padding:1px 8px 0}.verdict--bad{color:var(--red);background:var(--red-pale)}.verdict--info{color:var(--blue-deep);background:var(--blue-pale)}.nline{--n:12;margin:0 auto;position:relative}.nline__ticks{grid-template-columns:repeat(var(--n), var(--cw));border-top:3px solid var(--ink);display:grid}.nline__tick{font-family:var(--f-code);color:var(--ink-2);flex-direction:column;align-items:center;padding-top:6px;font-size:13px;display:flex;position:relative}.nline__tick:before{content:"";background:var(--ink);width:1.5px;height:9px;position:absolute;top:-3px}.nline__tick.is-out{color:#a3a29b}.nline__tick.is-mid{color:var(--ink);font-weight:700}.parcels{flex-wrap:wrap;justify-content:center;gap:4px 0;margin-bottom:22px;display:flex}.parcel-day{flex-direction:column;align-items:stretch;padding:0 6px;display:flex}.parcel-day__boxes{gap:3px;display:flex}.parcel{border:1.5px solid var(--ink);background:var(--ground);min-width:36px;height:36px;font-family:var(--f-code);place-items:center;font-size:15px;font-weight:600;display:grid}.parcel-day__label{border-top:3px solid var(--ink);text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:6px;padding-top:4px;font-size:12px;font-weight:700}.parcel-day.is-over .parcel-day__label{border-top-color:var(--red);color:var(--red)}.vs{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (max-width:760px){.vs{grid-template-columns:1fr}}.close{border-top:3px solid var(--ink);margin-top:3rem;padding-top:22px}.close__status .mark{white-space:normal;align-items:flex-start}.close__status .mark__glyph{margin-top:3px}.close__status{font-family:var(--f-board);color:var(--ink-2);align-items:center;gap:10px;font-size:15px;display:flex;margin:0 0 18px!important}.close__grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.depart{border:1.5px solid var(--ink);background:var(--ground);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;transition:background-color .12s;display:grid}.depart:hover{background:var(--ground-2)}.depart--board{background:var(--board)}.depart--board:hover{background:var(--board-deep)}.depart__name{font-size:18px;font-weight:750;line-height:1.25;display:block}@media (max-width:760px){.close__grid{grid-template-columns:1fr}}.map{grid-template-columns:minmax(0,1fr) 320px;gap:56px;padding-top:40px;padding-bottom:96px;display:grid}.map__line{grid-area:1/1;min-width:0}.map__aside{grid-area:1/2;align-self:start;gap:22px;display:grid;position:sticky;top:24px}@media (max-width:1020px){.map{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:24px}.map__aside{grid-area:1/1;position:static}.map__line{grid-row:2}}.status-card{border:1.5px solid var(--ink)}.status-card__head{background:var(--ink);color:var(--board);letter-spacing:.01em;padding:8px 14px;font-size:14px;font-weight:750}.status-card__body{padding:16px 16px 18px;font-size:15px;line-height:1.45}.status-card__body p{margin:0 0 12px}.status-card__big{font-variation-settings:"wdth" 112;margin-bottom:2px;font-size:22px;font-weight:800;display:block}.legend{gap:8px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.legend li{align-items:center;gap:10px;display:flex}.leg{margin-bottom:44px}.leg__head{border-bottom:3px solid var(--ink);flex-wrap:wrap;align-items:center;gap:14px;padding-bottom:12px;scroll-margin-top:16px;display:flex}.leg__letter{background:var(--blue);color:#fff;font-variation-settings:"wdth" 112;place-items:center;width:40px;height:40px;font-size:22px;font-weight:800;display:grid}.leg.is-later .leg__letter{background:var(--ground-3);color:var(--ink-3)}.leg__name{font-variation-settings:"wdth" 110;margin:0;font-size:1.6rem;font-weight:800;line-height:1.1}.leg__meta{color:var(--ink-2);margin-left:auto;font-size:14px;font-weight:550}.tag{border:1.5px solid var(--ink-3);color:var(--ink-2);white-space:nowrap;align-items:center;gap:6px;padding:3px 8px 2px;font-size:12.5px;font-weight:700;display:inline-flex}.tag--live{border-color:var(--ink);color:var(--board);background:var(--ink)}.stations{margin:0;padding:0;list-style:none}.station{grid-template-columns:52px minmax(0,1fr);scroll-margin-top:16px;display:grid}.station__rail{position:relative}.station__rail:before{content:"";background:var(--ink);width:6px;position:absolute;top:0;bottom:0;left:22px}.station:first-child .station__rail:before{top:26px}.leg:last-child .station:last-child .station__rail:before{bottom:calc(100% - 30px)}.leg.is-later .station__rail:before{background:repeating-linear-gradient(180deg, var(--ink-3) 0 10px, transparent 10px 16px);width:4px;left:23px}.station__node{background:var(--ground);border:4px solid var(--ink);box-sizing:border-box;border-radius:50%;width:24px;height:24px;position:absolute;top:17px;left:13px}.station.is-open .station__node{border-width:5px;width:30px;height:30px;top:14px;left:10px}.station.is-done .station__node{background:var(--ink)}.station.is-here .station__node{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 4px var(--ground), 0 0 0 7px var(--blue)}.leg.is-later .station__node,.station.is-shut .station__node{border-color:var(--ink-3);border-width:3px}.station__main{border-bottom:1px solid var(--rule-soft);min-width:0;padding:12px 0 13px}.station__line{grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.station__name{margin:0;font-size:1.2rem;font-weight:700;line-height:1.2}.station__name a{text-decoration:none}.station__name a:hover{text-underline-offset:3px;text-decoration:underline}.station__name small{color:var(--ink-3);margin-left:8px;font-size:13px;font-weight:550}.station__meta{color:var(--ink-2);text-align:right;white-space:nowrap;font-size:13.5px;font-weight:550}.leg.is-later .station__name{color:var(--ink-2);font-size:1.05rem;font-weight:600}.leg.is-later .station__main{padding:8px 0 9px}.leg.is-later .station__node{width:20px;height:20px;top:12px;left:15px}.station.is-open .station__main{padding-bottom:20px}.station__toggle{font-family:var(--f-board);color:var(--blue);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-top:4px;padding:4px 0;font-size:14px;font-weight:650;display:inline-flex}.station__meta .station__toggle{color:var(--ink-2);margin-top:0;padding:0;font-size:13.5px;font-weight:550}.station__toggle:hover{text-underline-offset:3px;text-decoration:underline}.station__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.lessons-tt{max-width:760px;margin:12px 0 0 90px}.lessons-tt .tt-wrap{margin:0}.lessons-tt td a{font-weight:650;text-decoration:none}.lessons-tt td a:hover{text-underline-offset:3px;text-decoration:underline}.lessons-tt .tt td{padding-top:8px;padding-bottom:8px}.mark{white-space:nowrap;align-items:center;gap:7px;font-size:13.5px;font-weight:650;display:inline-flex}.mark__glyph{border:2px solid var(--ink);box-sizing:border-box;flex:none;width:13px;height:13px}.mark--done .mark__glyph{background:var(--ink)}.mark--part .mark__glyph{background:linear-gradient(90deg, var(--ink) 50%, transparent 50%)}.mark--todo{color:var(--ink-3)}.mark--todo .mark__glyph{border-color:var(--ink-3)}.mark--solved .mark__glyph{background:var(--ink);box-shadow:inset 0 0 0 2px var(--board)}@media (max-width:760px){.station{grid-template-columns:40px minmax(0,1fr)}.station__rail:before{left:16px}.station__node{left:7px}.station.is-open .station__node{left:4px}.leg.is-later .station__node{left:9px}.leg.is-later .station__rail:before{left:17px}.station__line{grid-template-columns:auto minmax(0,1fr)}.station__meta{text-align:left;grid-column:2}.lessons-tt{margin-left:0}.lessons-tt .hide-sm{display:none}.lessons-tt .mark__label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.lessons-tt .tt td:first-child{white-space:nowrap}}.practice{border-bottom:1px solid var(--rule-soft);grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);min-height:calc(100vh - 160px);display:grid}.practice__problem{padding:30px 40px 60px var(--gutter);border-right:1.5px solid var(--ink);min-width:0}.practice__work{background:var(--ground-2);flex-direction:column;min-width:0;display:flex}.practice-wrap{max-width:1480px;margin:0 auto}.practice__problem .prose p,.practice__problem .prose li{font-size:1.06rem;line-height:1.62}.practice__problem .prose p{margin:0 0 .95em}.practice__problem .prose code{font-family:var(--f-code);background:var(--ground-2);border-radius:2px;padding:.08em .32em;font-size:.86em}.practice__problem h2{margin:1.8rem 0 .6rem;font-size:1.15rem;font-weight:750}.sample-flag{margin-bottom:16px;display:inline-flex}.editor-bar{border-bottom:1.5px solid var(--ink);background:var(--ground);align-items:center;gap:10px;padding:10px 14px;display:flex}.editor-bar__file{font-family:var(--f-code);background:var(--ground-2);padding:4px 8px;font-size:13.5px;font-weight:600}.runtime{color:var(--ink-2);align-items:center;gap:8px;min-width:0;margin-right:auto;font-size:13.5px;font-weight:550;display:flex}.runtime__dot{border:2px solid var(--ink-3);border-radius:50%;flex:none;width:10px;height:10px}.runtime.is-ready .runtime__dot{background:var(--ink);border-color:var(--ink)}.runtime.is-loading .runtime__dot{border-color:var(--board-deep);background:var(--board);animation:1s steps(2,jump-none) infinite dsa-blink}.runtime.is-error .runtime__dot{border-color:var(--red);background:var(--red)}@keyframes dsa-blink{50%{opacity:.25}}.editor{background:var(--ground);border-bottom:1.5px solid var(--ink);height:380px;overflow:hidden}.editor .cm-editor{height:100%;font-size:14.5px}.editor .cm-editor.cm-focused{outline:none}.editor .cm-scroller{font-family:var(--f-code);line-height:1.6}.editor .cm-gutters{background:var(--ground-2);border-right:1px solid var(--rule-soft);color:#9a9992}.editor .cm-activeLine{background:#f4c43021}.editor .cm-activeLineGutter{background:var(--board-pale);color:var(--ink)}.editor .cm-cursor{border-left:2px solid var(--blue)}.editor .cm-selectionBackground,.editor .cm-focused .cm-selectionBackground{background:#f4c43073!important}.editor .cm-matchingBracket{background:var(--blue-pale);outline:1px solid var(--blue)}.boot{border:1.5px dashed var(--ink-3);background:var(--ground);margin:16px 14px 0;padding:14px 16px;font-size:14.5px;line-height:1.5}.boot--error{border:1.5px solid var(--red);background:var(--red-pale)}.boot__bar{background:repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 10px);opacity:.25;height:8px;margin-top:10px;position:relative}.boot__bar i{background:var(--board-deep);transform-origin:0;transition:transform .4s var(--ease);position:absolute;inset:0}.tests{padding:16px 14px 40px}.tests__summary{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;font-size:15px;font-weight:700;display:flex}.tests .tt-wrap{background:var(--ground);margin:0}.test-row td{cursor:default}.test-row.is-fail td{background:var(--red-pale)}.test-row button.row-toggle{all:unset;cursor:pointer;align-items:center;gap:6px;font-weight:650;display:inline-flex}.test-row button.row-toggle:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.test-row button.row-toggle svg{transition:transform .15s}.test-row button.row-toggle[aria-expanded=true] svg{transform:rotate(90deg)}.test-detail td{background:var(--red-pale);padding:4px 14px 18px 40px!important}.test-detail dl{grid-template-columns:auto minmax(0,1fr);gap:6px 16px;margin:8px 0 14px;font-size:14px;display:grid}.test-detail dt{color:var(--ink-2);font-weight:700}.test-detail dd{font-family:var(--f-code);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13.5px}.test-detail .why{font-family:var(--f-read);max-width:64ch;margin:0 0 12px;font-size:1rem;line-height:1.55}.test-detail pre{background:var(--ground);border:1px solid var(--rule-soft);font-family:var(--f-code);white-space:pre-wrap;max-height:220px;margin:0 0 12px;padding:10px 12px;font-size:13px;overflow:auto}.state{white-space:nowrap;align-items:center;gap:6px;font-size:13.5px;font-weight:700;display:inline-flex}.state--pass{color:var(--ink)}.state--fail,.state--error,.state--timeout{color:var(--red)}.state--idle,.state--skipped{color:var(--ink-3)}.state--running{color:var(--ink)}.solved{background:var(--board);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);flex-wrap:wrap;align-items:center;gap:16px;margin:0 14px;padding:16px 18px;display:flex}.solved p{margin:0 auto 0 0;font-size:17px;font-weight:750}.ladder{border-top:3px solid var(--ink);margin-top:2rem}.ladder__title{justify-content:space-between;align-items:baseline;gap:12px;display:flex;margin:14px 0 6px!important}.ladder__title span{color:var(--ink-3);font-size:13.5px;font-weight:550}.rungs{margin:0;padding:0;list-style:none}.rung{border-bottom:1px solid var(--rule-soft);grid-template-columns:34px minmax(0,1fr);gap:12px;padding:14px 0;display:grid}.rung__n{border:2px solid var(--ink);font-variant-numeric:tabular-nums;place-items:center;width:30px;height:30px;font-size:14px;font-weight:800;display:grid}.rung.is-open .rung__n{background:var(--ink);color:var(--board)}.rung.is-locked .rung__n{border-color:var(--ink-3);color:var(--ink-3)}.rung__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:30px;display:flex}.rung__name{font-size:15.5px;font-weight:700}.rung__name small{color:var(--ink-3);margin-left:6px;font-size:13.5px;font-weight:550}.rung__body{margin-top:8px}.rung__body p{font-family:var(--f-read);margin:0 0 .7em;font-size:1.02rem;line-height:1.6}.rung__body p code,.rung__body li code{font-family:var(--f-code);background:var(--ground-2);padding:.05em .3em;font-size:.86em}.rung__body .code{margin:.6rem 0 .8rem}.rung__locked-why{color:var(--ink-3);align-items:center;gap:6px;font-size:13.5px;display:inline-flex}.instructor{color:var(--ink-3);margin-top:26px;font-size:13.5px}.instructor button.quiet{all:unset;cursor:pointer;color:var(--ink-3);text-underline-offset:3px;text-decoration:underline}.instructor button.quiet:focus-visible{outline:3px solid var(--blue)}.instructor form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.field{border:1.5px solid var(--ink);height:34px;font-family:var(--f-board);background:var(--ground);color:var(--ink);border-radius:2px;min-width:200px;padding:0 10px;font-size:14px}.field::placeholder{color:#7d7c75}.laptop-only{display:none}@media (max-width:860px){.practice{grid-template-columns:minmax(0,1fr)}.practice__problem{padding:22px var(--gutter) 30px;border-right:0}.practice__work{display:none}.laptop-only{border:1.5px solid var(--ink);background:var(--board-pale);margin:22px 0 0;padding:18px;display:block}.laptop-only p{margin:0 0 8px;font-size:15px;line-height:1.5}}@media (prefers-reduced-motion:reduce){.dsa *,.dsa :before,.dsa :after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}}.home-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.dsa-card{border:1.5px solid var(--ink);background:var(--ground);min-height:250px;transition:transform .16s var(--ease), box-shadow .16s var(--ease);flex-direction:column;text-decoration:none;display:flex}.dsa-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px -12px #14141459}.dsa-card__board{background:var(--board);border-bottom:3px solid var(--ink);justify-items:start;gap:12px;padding:18px 18px 16px;display:grid}.dsa-card__title{font-variation-settings:"wdth" 114;font-size:22px;font-weight:800;line-height:1.1}.dsa-card__body{flex:1;align-content:space-between;gap:12px;padding:16px 18px 18px;display:grid}.dsa-card__line{justify-content:space-between;align-items:center;height:14px;display:flex;position:relative}.dsa-card__line:before{content:"";background:var(--ink);height:4px;position:absolute;top:5px;left:0;right:0}.dsa-card__line i{border:3px solid var(--ink);background:var(--ground);box-sizing:border-box;border-radius:50%;width:14px;height:14px;position:relative}.dsa-card__line i.is-open{background:var(--blue);border-color:var(--blue)}.dsa-card__meta{color:var(--ink-2);font-size:14px;font-weight:550}.dsa-card__cta{align-items:center;gap:8px;font-size:15px;font-weight:750;display:inline-flex}.dsa-card:hover .dsa-card__cta{text-underline-offset:3px;text-decoration:underline}.ghost-card{text-align:center;color:#888;font-variation-settings:normal;background:#fff;border:1.5px dashed #c8c8c8;place-content:center;min-height:250px;font-family:system-ui,sans-serif;font-size:15px;display:grid}.ghost-card small{margin-top:4px;font-size:12.5px;display:block}.spin{animation:.9s linear infinite dsa-spin}@keyframes dsa-spin{to{transform:rotate(360deg)}}.lesson__body a.depart{color:var(--ink);text-decoration:none}.lesson__body .close__status{font-family:var(--f-board);font-size:15px}.rung__body ul{margin:0 0 .7em;padding-left:1.2em}.rung__body li{font-family:var(--f-read);margin-bottom:.3em;font-size:1.02rem;line-height:1.6}@media (max-width:760px){.route--practice .route__inner{grid-template-columns:auto auto;justify-content:space-between;row-gap:14px}.route--practice .route__stops{grid-area:2/1/auto/-1;margin:0 8px}}.ctrace{grid-template-columns:minmax(0,1.35fr) minmax(220px,1fr);align-items:start;gap:22px;max-width:860px;margin:0 auto;display:grid}.ctrace--solo{grid-template-columns:minmax(0,1fr);width:100%;max-width:560px}.ctrace__code{border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);background:var(--ground-2);font-family:var(--f-code);counter-reset:line;margin:0;padding:12px 0;font-size:14px;line-height:1.6;overflow-x:auto}.ctrace__code code{white-space:pre;font-size:inherit;background:0 0;padding:0}.ctrace__code .ln{min-height:1.6em;padding-right:16px;display:block}.ctrace__code .ln:before{counter-increment:line;content:counter(line);text-align:right;color:#9a9992;-webkit-user-select:none;user-select:none;width:2.4em;padding-right:.9em;display:inline-block}.ctrace__code .ln.is-mark{background:var(--board-pale);box-shadow:inset 0 1.5px 0 var(--ink), inset 0 -1.5px 0 var(--ink)}.ctrace__code .ln.is-mark:before{color:#fff;background:var(--blue);font-weight:700}.ctrace__main{min-width:0}.dsa .ctrace__main .code__hint{padding:6px 0 0}.ctrace__side{gap:16px;min-width:0;display:grid}.tt.vars{width:100%;margin:0}.tt.vars td code{white-space:pre-wrap;word-break:break-word}@media (max-width:760px){.ctrace{grid-template-columns:minmax(0,1fr);gap:14px}.ctrace__code{font-size:13px}}.stack{gap:6px;width:min(100%,440px);margin:0 auto;display:grid}.stack__head{letter-spacing:.02em;color:var(--ink-2);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:12.5px;font-weight:750;display:flex}.stack__empty{color:var(--ink-3);text-align:center;border:1.5px dashed #b9b8b1;padding:12px 14px;font-size:14px}.frame{border:1.5px solid var(--ink);background:var(--ground);min-height:44px;transition:background-color var(--move) var(--ease);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 12px;display:grid}.frame__name{font-family:var(--f-code);font-size:15px;font-weight:700}.frame__main{flex-wrap:wrap;align-items:baseline;gap:2px 12px;min-width:0;display:flex}.frame__vars{font-family:var(--f-code);color:var(--ink-2);font-size:13.5px}.frame__state{color:var(--ink-3);font-size:12.5px;font-weight:700}.frame.is-cur{background:var(--board);box-shadow:inset 0 0 0 1.5px var(--ink)}.frame.is-cur .frame__state{color:var(--ink)}.frame.is-wait .frame__name,.frame.is-wait .frame__vars{color:var(--ink-2)}.stack__floor{border-top:3px solid var(--ink);height:0;margin-top:2px}.tree{font-family:var(--f-code);margin:0 auto;display:block;overflow:visible}.tnode rect:first-child{fill:var(--ground);stroke:var(--ink);stroke-width:1.5px}.tnode text{fill:var(--ink);font-size:13px;font-weight:600}.tnode.is-cur rect:first-child{fill:var(--board);stroke-width:3px}.tnode.is-cur text{font-weight:800}.tnode.is-done rect:first-child{fill:var(--ink)}.tnode.is-done>text:not(.tnode__note){fill:var(--board)}.tnode.is-found rect:first-child{fill:var(--board);stroke-width:3px}.tnode__inner{fill:none;stroke:var(--ink);stroke-width:1.5px}.tnode.is-found text{font-weight:800}.tnode.is-out rect:first-child{stroke:#8f8e87}.tnode.is-out>text:not(.tnode__note){fill:#8f8e87;text-decoration:line-through}.tnode.is-bad rect:first-child{fill:var(--red-pale);stroke:var(--red)}.tnode.is-bad>text:not(.tnode__note){fill:var(--red);text-decoration:line-through}.tnode.is-todo rect:first-child{stroke:#a3a29b;stroke-dasharray:4 3}.tnode.is-todo>text:not(.tnode__note){fill:#8f8e87}.tnode.is-dup rect:first-child{fill:var(--ground-2)}.tnode__tag{fill:var(--ink)}.tnode text.tnode__tagtext{font-family:var(--f-board);letter-spacing:.06em;fill:var(--board);font-size:9.5px;font-weight:800}.tnode text.tnode__note{fill:var(--ink-2);font-size:12px;font-weight:500}.tree__edge{font-family:var(--f-board);fill:var(--ink);paint-order:stroke;stroke:var(--ground);stroke-width:4px;stroke-linejoin:round;font-size:11.5px;font-weight:700}.grid2{--cw:48px;width:max-content;font-family:var(--f-board);margin:0 auto;padding-right:8px}.grid2__row{grid-template-columns:var(--rh,30px) repeat(var(--cols), var(--cw));display:grid}.grid2__row+.grid2__row .cell{margin-top:-1.5px}.grid2__ridx{align-items:center;display:flex}.grid2__ridx span{background:var(--blue);color:#fff;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;min-width:22px;height:20px;padding:0 4px;font-size:12px;font-weight:700;display:inline-flex}.grid2 .cell{height:48px}.grid2__row>.cell:nth-child(2){margin-left:0}.cell.is-done{background:var(--ink);color:var(--board);font-weight:700}.cell__tag{font-family:var(--f-board);color:var(--ink-3);font-size:10.5px;font-weight:750;text-decoration:none;position:absolute;top:2px;left:4px}.cell.is-done .cell__tag{color:var(--board-pale)}.cell.is-target .cell__tag{z-index:2;background:inherit;padding:0 2px}@media (max-width:760px){.cell__tag{font-size:11.5px}}:is(.grid2 .cell.is-mid:has(.cell__from--up),.grid2 .cell.is-mid:has(.cell__from--diag)){padding-top:10px}.grid2 .cell.is-small{letter-spacing:-.02em;font-size:14px}@media (max-width:760px){.grid2 .cell.is-small{font-size:12.5px}.grid2 .cell.is-small.is-mid{letter-spacing:-.04em;font-size:11.5px}}.cell__from{fill:none;width:12px;height:12px;stroke:var(--ink);stroke-width:2px;stroke-linecap:square;pointer-events:none;position:absolute}.cell__from--up{top:2px;left:calc(50% - 6px)}.cell__from--left{bottom:3px;left:2px}.cell__from--diag{top:2px;left:2px}.cell.is-done .cell__from{stroke:var(--board)}.cell.is-mid .cell__from--up,.cell.is-mid .cell__from--diag{top:4px}.cell.is-mid .cell__from--left,.cell.is-mid .cell__from--diag{left:4px}.cell.is-mid .cell__from--left{bottom:4px}@media (max-width:760px){.track-tight{margin-inline:-12px}.track-tight .track{--cw:33px}}.cell.is-path{background:var(--board-pale);font-weight:700}.cell.is-target .cell__from{opacity:.3}.cell.is-target{z-index:1}.cell.is-done.is-target{outline-color:var(--board)}.grid2 .cell.is-blank{z-index:0;background:0 0;border-color:#0000}.grid2 .track__idx span.is-empty,.grid2__ridx span.is-empty{background:var(--ground-3);color:var(--ink-3)}@media (max-width:760px){.grid2{--cw:38px}.grid2 .cell{height:40px}.grid2--wide{--cw:36px}.grid2__row{grid-template-columns:var(--rh,26px) repeat(var(--cols), var(--cw))}.cell__from{width:10px;height:10px}.cell__from--up{top:1px;left:calc(50% - 5px)}.cell__from--left{bottom:1px;left:1px}.cell__from--diag{top:1px;left:1px}:is(.grid2 .cell:has(.cell__from--up),.grid2 .cell:has(.cell__from--diag)){padding-top:8px}}.chain{--cw:106px;width:max-content;margin:0 auto;padding-left:44px}.chain__row{align-items:center;display:flex}.chain__item{width:var(--cw);align-items:center;display:flex}.chain__node{border:1.5px solid var(--ink);background:var(--ground);height:46px;transition:background-color var(--move) var(--ease);grid-template-columns:48px 26px;display:grid}.chain__node.is-mid{background:var(--board);box-shadow:inset 0 0 0 1.5px var(--ink)}.chain__node.is-out{background:repeating-linear-gradient(135deg, var(--ground-2) 0 5px, #dedcd5 5px 6.5px);color:#8f8e87}.chain__node.is-found{background:var(--board);box-shadow:inset 0 0 0 1.5px var(--ink), inset 0 0 0 4.5px var(--board), inset 0 0 0 6px var(--ink)}.chain__val{font-family:var(--f-code);border-right:1.5px solid var(--ink);place-items:center;font-size:17px;font-weight:600;display:grid}.chain__next{position:relative}.chain__next:after{content:"";background:var(--ink);border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;top:50%;left:50%}.chain__arrow{background:var(--ink);flex:1;height:2px;margin-left:-13px;margin-right:4px;position:relative}.chain__arrow:after{content:"";border:6px solid #0000;border-right:0;border-left:8px solid var(--ink);position:absolute;top:-5px;right:-1px}.chain__none{margin-left:2px}.chain__rails{width:calc(var(--n) * var(--cw))}.chain__rails .train{width:74px}@media (max-width:760px){.chain{--cw:76px;padding-left:34px}.chain__node{grid-template-columns:34px 18px;height:40px}.chain__val{font-size:15px}.chain__arrow{margin-left:-9px}.chain__rails .train{width:52px}}.tbar{vertical-align:middle;border-left:1.5px solid var(--ink);width:150px;height:12px;display:inline-block;position:relative}.tbar__fill{background:var(--ink);transform-origin:0;width:100%;transition:transform var(--move) var(--ease);position:absolute;top:0;bottom:0;left:0}.tbar.is-off .tbar__fill{background:repeating-linear-gradient(135deg, var(--ink) 0 5px, var(--ink-3) 5px 7px)}.tbar__off{white-space:nowrap;color:var(--ink-2);font-size:12px;font-weight:700;position:absolute;top:-2px;left:calc(100% + 8px)}@media (max-width:760px){.tbar{width:64px}.tbar__off{display:none}}.stage-stack{justify-items:center;gap:18px;display:grid}.stage-label{letter-spacing:.02em;color:var(--ink-2);text-align:center;margin:0 0 4px;font-size:12.5px;font-weight:750}.stage-row{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:18px 36px;display:flex}@media (prefers-reduced-motion:reduce){.frame,.chain__node,.tbar__fill{transition:none}}.outbox{border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}.outbox__head{border-bottom:1px solid var(--rule-soft);letter-spacing:.02em;color:var(--ink-2);padding:6px 10px 5px;font-size:12.5px;font-weight:750;display:block}.outbox pre{min-height:2.2em;font-family:var(--f-code);white-space:pre-wrap;margin:0;padding:8px 10px;font-size:14px}.named-track{justify-items:center;gap:4px;max-width:100%;display:grid}.named-track__body{max-width:100%;overflow-x:auto}.links{margin:0 auto;display:block;overflow:visible}.lnode,.links__none,.links__train{transition:transform var(--move) var(--ease)}.lnode .lnode__val{font-family:var(--f-code);font-size:16px;font-weight:600}.lnode .lnode__val.is-small{font-size:12.5px}.lnode__div{stroke:var(--ink);stroke-width:1.5px}.lnode__dot{fill:var(--ink)}.lnode.is-done .lnode__div{stroke:var(--board)}.lnode.is-done .lnode__dot{fill:var(--board)}.lnode.is-out .lnode__div,.lnode.is-todo .lnode__div{stroke:#a3a29b}.lnode.is-out .lnode__dot,.lnode.is-todo .lnode__dot{fill:#a3a29b}.lnode.is-bad .lnode__div{stroke:var(--red)}.lnode.is-bad .lnode__dot{fill:var(--red)}.links__edge{stroke:var(--ink);stroke-width:1.75px}.links__edge.is-cur{stroke-width:3px}.links__edge.is-old{stroke:#a3a29b;stroke-dasharray:5 4}.links__edge.is-bad{stroke:var(--red);stroke-width:2px}.links__none rect,.links__off rect{fill:var(--ground);stroke:var(--ink-3);stroke-width:1px}.links__none text,.links__off text{font-family:var(--f-board);fill:var(--ink-3);font-size:12px;font-weight:750}.links__rail line{stroke:var(--ink-3);stroke-width:1px}.links__railname{font-family:var(--f-code);fill:var(--ink);font-size:13px;font-weight:600}.links__train rect{fill:var(--ground);stroke:var(--ink);stroke-width:1.5px}.links__train text{font-family:var(--f-code);fill:var(--ink);font-size:12.5px;font-weight:700}.links__train--mid rect{fill:var(--ink)}.links__train--mid text{fill:var(--board)}.links__train--blue rect{fill:var(--blue);stroke:var(--blue)}.links__train--blue text{fill:#fff}@media (prefers-reduced-motion:reduce){.lnode,.links__none,.links__train{transition:none}}.named-track__body>.track:has(>.track__window){padding-top:12px}.htable{gap:6px;width:max-content;padding:4px 10px 10px 2px;display:grid}.htable__row{align-items:center;gap:8px;min-height:36px;display:flex}.htable__mark{flex:none;justify-content:flex-end;width:46px;display:flex}.htable__train{background:var(--blue);color:#fff;min-width:34px;height:22px;font-family:var(--f-code);justify-content:center;align-items:center;padding:0 6px;font-size:12.5px;font-weight:700;display:inline-flex;position:relative}.htable__train:after{content:"";border-left:7px solid var(--blue);border-top:7px solid #0000;border-bottom:7px solid #0000;position:absolute;top:4px;right:-7px}.htable__idx{flex:none;width:30px;padding-bottom:0}.htable__idx.is-here span{box-shadow:0 0 0 2px var(--ground), 0 0 0 4px var(--blue)}.htable__slot{border:1.5px solid var(--ink);background:var(--ground);width:96px;height:36px;font-family:var(--f-code);transition:background-color var(--move) var(--ease);flex:none;justify-content:center;align-items:center;gap:6px;font-size:15px;font-weight:500;display:flex;position:relative}.htable__slot.is-tomb{background:repeating-linear-gradient(135deg, var(--ground-2) 0 5px, #dedcd5 5px 6.5px)}.htable__tomb{font-family:var(--f-board);color:var(--ink-3);background:var(--ground);padding:0 4px;font-size:12px;font-weight:750}.htable__chain{align-items:center;display:flex}.htable__head{border:1.5px solid var(--ink);background:var(--ground-2);flex:none;width:26px;height:36px;position:relative}.htable__head.is-full:after{content:"";background:var(--ink);border-radius:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;position:absolute;top:50%;left:50%}.htable__head.is-cur{background:var(--board);box-shadow:inset 0 0 0 2px var(--ink)}.htable__arrow{background:var(--ink);flex:none;width:24px;height:2px;margin-left:-9px;position:relative}.htable__arrow:after{content:"";border-left:7px solid var(--ink);border-top:5px solid #0000;border-bottom:5px solid #0000;position:absolute;top:-4px;right:-1px}.htable__node{border:1.5px solid var(--ink);background:var(--ground);min-width:52px;height:36px;font-family:var(--f-code);transition:background-color var(--move) var(--ease);flex:none;justify-content:center;align-items:center;gap:6px;margin-left:0;padding:0 8px;font-size:15px;font-weight:500;display:flex;position:relative}.htable__node+.htable__arrow{margin-left:0}.htable__sub{color:var(--ink-3);font-size:12.5px}.htable__slot.is-cur,.htable__node.is-cur{background:var(--board);box-shadow:inset 0 0 0 3px var(--ink);font-weight:700}.htable__slot.is-found,.htable__node.is-found{background:var(--board);box-shadow:inset 0 0 0 3px var(--ink), inset 0 0 0 6px var(--board), inset 0 0 0 7.5px var(--ink);font-weight:700}.htable__slot.is-done,.htable__node.is-done{background:var(--ink);color:var(--board)}.htable__slot.is-done .htable__sub,.htable__node.is-done .htable__sub{color:var(--board-pale)}.htable__slot.is-out,.htable__node.is-out{color:#8f8e87;background:repeating-linear-gradient(135deg, var(--ground-2) 0 5px, #dedcd5 5px 6.5px)}.htable__slot.is-bad,.htable__node.is-bad{background:var(--red-pale);border-color:var(--red);color:var(--red);text-decoration:line-through;text-decoration-thickness:2px}.htable__slot.is-todo,.htable__node.is-todo{color:#8f8e87;border-style:dashed;border-color:#a3a29b}@media (max-width:760px){.htable__slot{width:78px}.htable__node{min-width:44px;padding:0 6px}}@media (prefers-reduced-motion:reduce){.htable__slot,.htable__node{transition:none}}.follow{justify-items:center;max-width:100%;display:grid}.follow__box{max-width:100%;overflow-x:auto}.dsa .follow__hint{font-family:var(--f-board);color:var(--ink-3);text-align:center;margin:6px 0 0;font-size:12.5px;font-weight:700;line-height:1.3}.dsa .table__hint{text-align:left;margin:-1.4rem 0 1.8rem}.dsa .code__hint{text-align:left;margin:0;padding:0 14px 10px}.nowrap{white-space:nowrap}.tree .tnode .tnode__flag rect{fill:var(--ink);stroke:var(--ink);stroke-width:1.5px}.tree .tnode .tnode__flag text{font-family:var(--f-board);fill:var(--board);font-size:10px;font-weight:800}.tree .tnode .tnode__flag--plain rect{fill:var(--ground)}.tree .tnode .tnode__flag--plain text{fill:var(--ink)}.tree .tnode .tnode__flag--bad rect{fill:var(--red-pale);stroke:var(--red)}.tree .tnode .tnode__flag--bad text{fill:var(--red)}.tree--slide .tnode{transition:transform var(--slide) var(--ease)}.tree--slide .tree__line{transition:d var(--slide) var(--ease)}.skip{font-family:var(--f-code);margin:0 auto;display:block;overflow:visible}.skip__lvl rect{fill:var(--blue)}.skip__lvl text{font-family:var(--f-board);fill:#fff;font-variant-numeric:tabular-nums;font-size:12px;font-weight:750}.skip__head rect{fill:var(--ground-2);stroke:var(--ink);stroke-width:1.5px}.skip__head circle{fill:var(--ink)}.skip__head.is-cur rect{fill:var(--board);stroke-width:3px}.skip__head.is-done rect{fill:var(--ink)}.skip__head.is-done circle{fill:var(--board)}.skip .skip__foot{font-family:var(--f-board);fill:var(--ink-2);font-size:12px;font-weight:750}.spans{--cw:48px;width:calc((var(--n) + 1) * var(--cw) + 44px);gap:7px;margin:0 auto;padding-left:44px;display:grid;position:relative}.named-track__body>.spans{margin-bottom:10px}.spans__row{grid-template-columns:repeat(var(--n), var(--cw));height:30px;display:grid;position:relative}.spans__name{height:30px;font-family:var(--f-code);color:var(--ink-2);white-space:nowrap;align-items:center;padding-right:8px;font-size:12px;font-weight:600;display:flex;position:absolute;top:0;right:100%}.spans__bar{border:1.5px solid var(--ink);background:var(--ground);font-family:var(--f-code);font-variant-numeric:tabular-nums;white-space:nowrap;transition:background-color var(--move) var(--ease), color var(--move) var(--ease);justify-content:center;align-items:center;margin:0 3px;font-size:13.5px;font-weight:600;display:flex;position:relative}.spans__bar.is-cur{background:var(--board);box-shadow:inset 0 0 0 1.5px var(--ink);font-weight:800}.spans__bar.is-found{background:var(--board);box-shadow:inset 0 0 0 1.5px var(--ink), inset 0 0 0 4px var(--board), inset 0 0 0 5.5px var(--ink);font-weight:800}.spans__bar.is-done{background:var(--ink);color:var(--board)}.spans__bar.is-out{color:#8f8e87;background:repeating-linear-gradient(135deg, var(--ground-2) 0 5px, #dedcd5 5px 6.5px);border-color:#8f8e87}.spans__bar.is-todo{color:#8f8e87;border-style:dashed;border-color:#a3a29b}.spans__bar.is-bad{border-color:var(--red);background:var(--red-pale);color:var(--red)}.spans__tag{background:var(--ink);height:15px;color:var(--board);font-family:var(--f-board);letter-spacing:.02em;z-index:1;align-items:center;padding:0 4px;font-size:10px;font-weight:800;display:inline-flex;position:absolute;top:-8px;right:-4px}@media (max-width:760px){.spans{--cw:36px;width:calc((var(--n) + 1) * var(--cw) + 34px);padding-left:34px}.spans__bar{margin:0 2px;font-size:12px}}@media (prefers-reduced-motion:reduce){.spans__bar{transition:none}}.tline{--name:52px;width:min(100%, calc(var(--span) * 60px + var(--name) + 14px));padding:0 14px 0 var(--name);margin:0 auto}.tline--marks{padding-top:22px}.tline__plot{gap:6px;display:grid;position:relative}.tline__row{height:30px;position:relative}.tline__name{height:30px;font-family:var(--f-code);color:var(--ink-2);white-space:nowrap;align-items:center;padding-right:8px;font-size:12px;font-weight:600;display:flex;position:absolute;top:0;right:100%}.tline__bar{border:1.5px solid var(--ink);background:var(--ground);height:30px;font-family:var(--f-code);white-space:nowrap;transition:left var(--slide) var(--ease), width var(--slide) var(--ease), background-color var(--move) var(--ease), color var(--move) var(--ease);justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex;position:absolute;top:0}.tline__label{text-overflow:clip;padding:0 2px;overflow:hidden}.tline__bar.is-cur{background:var(--board);box-shadow:inset 0 0 0 1.5px var(--ink);z-index:1;font-weight:800}.tline__bar.is-found{background:var(--board);box-shadow:inset 0 0 0 1.5px var(--ink), inset 0 0 0 4px var(--board), inset 0 0 0 5.5px var(--ink);font-weight:800}.tline__bar.is-done{background:var(--ink);color:var(--board)}.tline__bar.is-out{color:#8f8e87;background:repeating-linear-gradient(135deg, var(--ground-2) 0 5px, #dedcd5 5px 6.5px);border-color:#8f8e87}.tline__bar.is-todo{color:#8f8e87;border-style:dashed;border-color:#a3a29b}.tline__bar.is-bad{border-color:var(--red);background:var(--red-pale);color:var(--red);z-index:1}.tline__tag{background:var(--ink);height:15px;color:var(--board);font-family:var(--f-board);letter-spacing:.02em;white-space:nowrap;z-index:2;align-items:center;padding:0 4px;font-size:10px;font-weight:800;display:inline-flex;position:absolute;top:-8px;right:-4px}.tline__tag--end{top:50%;left:calc(100% + 5px);right:auto;transform:translateY(-50%)}.tline__tag--plain{background:var(--ground);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.tline__tag--bad{background:var(--red);color:#fff}.tline__mark{border-left:2px solid var(--blue);z-index:3;pointer-events:none;width:0;transition:left var(--slide) var(--ease);margin-left:-1px;position:absolute;top:-6px;bottom:18px}.tline__mark--dash{border-left:2px dashed var(--ink-3);z-index:0}.tline__marklabel{font-family:var(--f-code);white-space:nowrap;background:var(--blue);color:#fff;padding:1px 4px;font-size:11px;font-weight:700;line-height:14px;position:absolute;bottom:100%;left:0;transform:translate(-50%)}.tline__mark--dash .tline__marklabel{background:var(--ground);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--ink-3)}.tline__axis{border-top:1.5px solid var(--ink);height:18px;margin-top:2px;position:relative}.tline__tick{border-left:1px solid var(--ink);height:5px;position:absolute;top:0}.tline__num{font-family:var(--f-code);font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:11px;position:absolute;top:4px;left:0;transform:translate(-50%)}@media (max-width:760px){.tline{--name:50px;padding-right:8px}.tline__bar{font-size:12px}.tline--dense .tline__tick.is-odd .tline__num{display:none}}@media (prefers-reduced-motion:reduce){.tline__bar,.tline__mark{transition:none}}.plane{justify-self:stretch;width:100%;min-width:0;max-width:640px;margin:0 auto}.plane svg{width:100%;height:auto;display:block;overflow:visible}.plane__grid line{stroke:var(--rule-soft);stroke-width:1px}.plane__axis line{stroke:var(--ink);stroke-width:1.5px}.plane__axis text{font-family:var(--f-code);font-variant-numeric:tabular-nums;fill:var(--ink-3);font-size:10.5px}@media (max-width:760px){.plane__axis text{font-size:11.5px}}.plane__shade{fill:var(--ground-2)}.plane__strip{fill:var(--board-pale)}.plane__frame{fill:none;stroke:var(--ink);stroke-width:1.5px}.plane__cell{stroke:var(--ink-2);stroke-width:1px;stroke-dasharray:3 3}.plane__boxlabel{font-family:var(--f-board);fill:var(--ink-2);font-size:11.5px;font-weight:700}.plane__line line{stroke:var(--blue);stroke-width:2px}.plane__line--dash line{stroke:var(--ink-3);stroke-dasharray:5 4}.plane__plate rect{fill:var(--blue)}.plane__plate text{font-family:var(--f-code);fill:#fff;font-size:11px;font-weight:700}.plane__line--dash .plane__plate rect{fill:var(--ground);stroke:var(--ink-3);stroke-width:1px}.plane__line--dash .plane__plate text{fill:var(--ink-2)}.plane__seg line{stroke:var(--ink-3);stroke-width:1.5px}.plane__seg.is-cur line,.plane__seg.is-found line{stroke:var(--ink);stroke-width:2px}.plane__seg.is-found line.plane__under{stroke:var(--board);stroke-width:9px}.plane__seg.is-old line{stroke:#a3a29b;stroke-width:1.5px;stroke-dasharray:4 4}.plane__seg.is-bad line{stroke:var(--red);stroke-width:2px}.plane__head{fill:var(--ink-3)}.plane__seg.is-cur .plane__head,.plane__seg.is-found .plane__head{fill:var(--ink)}.plane__seg.is-old .plane__head{fill:#a3a29b}.plane__seg.is-bad .plane__head{fill:var(--red)}.plane__poly--pale{fill:var(--board-pale)}.plane__poly--shade{fill:var(--ground-2)}.plane__dist rect{fill:var(--ground);stroke:var(--ink);stroke-width:1px}.plane__dist text{font-family:var(--f-code);fill:var(--ink);font-size:11px;font-weight:700}.plane__seg.is-old .plane__dist rect{stroke:#a3a29b}.plane__seg.is-old .plane__dist text{fill:var(--ink-3)}.plane__seg.is-bad .plane__dist rect{fill:var(--red-pale);stroke:var(--red)}.plane__seg.is-bad .plane__dist text{fill:var(--red)}.plane__pt rect:first-child{fill:var(--ground);stroke:var(--ink);stroke-width:1.5px}.plane__pt text{font-family:var(--f-board);fill:var(--ink);paint-order:stroke;stroke:var(--ground);stroke-width:3px;stroke-linejoin:round;font-size:12.5px;font-weight:800}.plane__pt.is-cur rect:first-child{fill:var(--board);stroke-width:3px}.plane__pt.is-found rect:first-child{fill:var(--board);stroke-width:1.5px}.plane__inner{fill:none;stroke:var(--ink);stroke-width:1.5px}.plane__pt.is-done rect:first-child{fill:var(--ink)}.plane__pt.is-out rect:first-child{stroke:#8f8e87}.plane__pt.is-out text{fill:#8f8e87}.plane__pt.is-todo rect:first-child{stroke:#a3a29b;stroke-dasharray:3 2}.plane__pt.is-bad rect:first-child{fill:var(--red-pale);stroke:var(--red)}.plane__pt.is-bad text{fill:var(--red)}.tt.vars.dynp-items{width:min(100%,280px)}.dynp-items th,.dynp-items td{padding-top:5px;padding-bottom:5px}.graph{justify-self:stretch;width:100%;min-width:0;max-width:560px;margin:0 auto}.graph svg{height:auto;margin:0 auto;display:block;overflow:visible}.gedge__line{fill:none;stroke:var(--ink);stroke-width:1.75px}.gedge.is-cur .gedge__line{stroke-width:3px}.gedge.is-tree .gedge__line,.gedge.is-found .gedge__line{stroke-width:2px}.gedge__under{fill:none;stroke:var(--board-pale);stroke-width:9px;stroke-linecap:round}.gedge.is-found .gedge__under{stroke:var(--board)}.gedge.is-old .gedge__line{stroke:#a3a29b;stroke-width:1.5px;stroke-dasharray:5 4}.gedge.is-todo .gedge__line{stroke:#c4c3bc;stroke-width:1.5px;stroke-dasharray:3 4}.gedge.is-bad .gedge__line{stroke:var(--red);stroke-width:2px}.gedge__plate rect{fill:var(--ground);stroke:var(--ink);stroke-width:1px}.gedge__plate text{font-family:var(--f-code);font-variant-numeric:tabular-nums;fill:var(--ink);font-size:11px;font-weight:700}.gedge__plate.is-old rect,.gedge__plate.is-todo rect{stroke:#a3a29b}.gedge__plate.is-old text,.gedge__plate.is-todo text{fill:var(--ink-3)}.gedge__plate.is-bad rect{fill:var(--red-pale);stroke:var(--red)}.gedge__plate.is-bad text{fill:var(--red)}.gnode>rect:first-child{fill:var(--ground);stroke:var(--ink);stroke-width:1.5px}.gnode text{font-family:var(--f-code);fill:var(--ink);font-size:13.5px;font-weight:700}.gnode.is-seen>rect:first-child{fill:var(--board-pale)}.gnode.is-cur>rect:first-child{fill:var(--board);stroke-width:3px}.gnode.is-cur>text,.gnode.is-found>text{font-weight:800}.gnode.is-done>rect:first-child{fill:var(--ink)}.gnode.is-done>text{fill:var(--board)}.gnode.is-found>rect:first-child{fill:var(--board);stroke-width:1.5px}.gnode__inner{fill:none;stroke:var(--ink);stroke-width:1.5px}.gnode.is-out>rect:first-child{stroke:#8f8e87}.gnode.is-out>text{fill:#8f8e87}.gnode.is-todo>rect:first-child{stroke:#a3a29b;stroke-dasharray:4 3}.gnode.is-todo>text{fill:#8f8e87}.gnode.is-bad>rect:first-child{fill:var(--red-pale);stroke:var(--red)}.gnode.is-bad>text{fill:var(--red)}.gnode__tag rect{fill:var(--ink);stroke:var(--ink);stroke-width:1.5px}.gnode__tag text{font-family:var(--f-board);font-variant-numeric:tabular-nums;fill:var(--board);font-size:10px;font-weight:800}.gnode__tag--plain rect{fill:var(--ground)}.gnode__tag--plain text{fill:var(--ink)}.gnode__tag--bad rect{fill:var(--red-pale);stroke:var(--red)}.gnode__tag--bad text{fill:var(--red)}.graph-row{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:18px 32px;width:100%;display:grid}.graph-row>.graph{max-width:520px}@media (max-width:760px){.graph-row{grid-template-columns:minmax(0,1fr)}}.gq{justify-items:center;gap:4px;max-width:100%;display:grid}.gq__box{max-width:100%;padding-bottom:2px;display:grid;overflow-x:auto}.gq__row{min-height:36px;display:flex}.gq__item{border:1.5px solid var(--ink);background:var(--ground);min-width:36px;height:36px;font-family:var(--f-code);font-variant-numeric:tabular-nums;place-items:center;margin-left:-1.5px;padding:0 6px;font-size:15px;font-weight:600;display:grid}.gq__item:first-child{margin-left:0}.gq__item.is-seen{background:var(--board-pale)}.gq__item.is-cur{background:var(--board);box-shadow:inset 0 0 0 1.5px var(--ink);font-weight:800}.gq__item.is-done{background:var(--ink);color:var(--board)}.gq__item.is-out{background:repeating-linear-gradient(135deg, var(--ground-2) 0 4.6px, #dedcd5 4.6px 6.1px);color:#8f8e87}.dsa .tt-skip{background:repeating-linear-gradient(135deg, var(--ground-2) 0 4.6px, #dedcd5 4.6px 6.1px);color:var(--ink-2);font-family:var(--font-board);padding:0 6px;font-size:12px;font-weight:700;display:inline-block}.gq__item.is-bad{background:var(--red-pale);border-color:var(--red);color:var(--red);z-index:1;position:relative}.gq__empty{height:36px;font-family:var(--f-board);color:var(--ink-3);border:1.5px dashed #a3a29b;place-items:center;padding:0 12px;font-size:12.5px;font-weight:650;display:grid}.gq__end{font-family:var(--f-board);color:var(--ink-3);margin-top:3px;font-size:11.5px;font-weight:700}.gq__end--top{justify-self:end}.graph-side{align-content:start;justify-items:center;gap:14px;min-width:0;display:grid}.graph-side .tt.vars{width:min(100%,260px)}.graph-side .tt.vars th,.graph-side .tt.vars td{padding-top:5px;padding-bottom:5px}
