.wkit{font-variant-numeric:lining-nums tabular-nums;--w-bg:#fff;--w-surface:color-mix(in srgb, var(--c-tint) 40%, #fff);--w-text:#22252a;--w-muted:#595d63;--w-line:color-mix(in srgb, var(--c-base) 25%, #fff);--w-strong:var(--c-base);--w-on-strong:#fff;--w-mark:color-mix(in srgb, var(--c-accent) 55%, #fff);--w-good:#1d6b44;--w-good-bg:#e2f3e9;--w-bad:#9c2f25;--w-bad-bg:#fbe6e3;--w-head-bg:var(--c-base);--w-head-text:#fff;--w-zebra:color-mix(in srgb, var(--c-base) 7%, #fff);--w-rule:var(--c-accent);background:var(--w-bg);color:var(--w-text);font-family:var(--font-sans);padding:clamp(1rem,.5rem + 2vw,2rem);font-size:1.0625rem;line-height:1.5;transition:background-color .3s,color .3s;position:relative}.wkit[data-theme=dark]{--w-bg:color-mix(in srgb, var(--c-base) 28%, #111316);--w-surface:color-mix(in srgb, var(--c-base) 40%, #191c20);--w-text:#eef0f2;--w-muted:#bcc1c8;--w-line:color-mix(in srgb, var(--c-accent) 35%, #2b2f34);--w-strong:color-mix(in srgb, var(--c-accent) 70%, #fff);--w-on-strong:#111316;--w-mark:color-mix(in srgb, var(--c-accent) 75%, #111316);--w-good:#8fdcb0;--w-good-bg:#163225;--w-bad:#f4a79d;--w-bad-bg:#3c1c19;--w-head-bg:color-mix(in srgb, var(--c-accent) 55%, #191c20);--w-head-text:#fff;--w-zebra:color-mix(in srgb, var(--c-accent) 12%, var(--w-bg));--w-rule:color-mix(in srgb, var(--c-accent) 70%, #fff)}.wkit-table{border-collapse:collapse;border-bottom:1.5px solid var(--w-rule)}.wkit-table th,.wkit-table td{text-align:left;white-space:nowrap;padding:.4em .9em}.wkit-table td{background:var(--w-bg)}.wkit-table td+td,.wkit-table th+th{border-left:1px solid color-mix(in srgb, var(--w-rule) 45%, transparent)}.wkit-table thead th{background:var(--w-head-bg);color:var(--w-head-text);font-family:var(--font-sans,inherit);letter-spacing:.08em;text-transform:uppercase;font-size:.8em;font-weight:700}.wkit-table :where(tbody tr:nth-child(2n)) td{background:var(--w-zebra)}.wkit *,.wkit :before,.wkit :after{box-sizing:border-box}.wkit :focus-visible{outline:3px solid var(--w-strong);outline-offset:2px}.wkit__toolbar{flex-wrap:wrap;justify-content:flex-end;gap:.6em 1em;margin-bottom:.7em;display:flex}.wkit[data-modes]>.wkit__toolbar{justify-content:space-between}.wkit-steps{flex-wrap:wrap;align-items:center;gap:.5em;display:flex}.wkit-steps__count{font-family:var(--font-mono);color:var(--w-muted);margin-left:.4em;font-size:.85em}.wkit-button{border:2px solid var(--w-strong);min-height:max(48px,2.8em);color:var(--w-text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:.5em;padding:.65em 1.3em;font-weight:600;transition:background-color .15s,opacity .15s;display:inline-flex}.wkit-button--primary{background:var(--w-strong);color:var(--w-on-strong)}.wkit-button:disabled{opacity:.45;cursor:not-allowed}.wkit-button--icon{width:max(48px,2.8em);padding:0;font-size:1.4em;line-height:1}.wkit-toggle{background:var(--w-surface);border:1px solid var(--w-line);border-radius:999px;gap:4px;padding:4px;display:inline-flex}.wkit-toggle__option{min-height:max(44px,2.6em);color:var(--w-text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.45em 1.1em;font-weight:500}.wkit-toggle__option[aria-pressed=true]{background:var(--w-strong);color:var(--w-on-strong);font-weight:600}.wkit-toggle--fill{display:flex}.wkit-toggle--fill .wkit-toggle__option{flex:1}.wkit-toggle--small .wkit-toggle__option{min-height:max(36px,2.1em);padding:.25em .85em;font-size:.82em}.wkit-field{flex-direction:column;gap:.4em;display:flex}.wkit-field__label{font-weight:600}.wkit-field__hint{color:var(--w-muted);font-size:.82em}.wkit-field__input{border:2px solid var(--w-line);background:var(--w-surface);width:100%;min-height:5.6em;color:var(--w-text);font-family:var(--font-mono);letter-spacing:.15em;resize:vertical;overflow-wrap:anywhere;border-radius:12px;padding:.7em .95em;font-size:1.3em;line-height:1.5}.wkit-field__input::placeholder{color:var(--w-muted);letter-spacing:normal;font-family:var(--font-sans);font-size:.73em}.wkit-field__input:focus{border-color:var(--w-strong);outline:none}.wkit-stepper{flex-direction:column;gap:.4em;display:flex}.wkit-stepper__label{font-weight:600}.wkit-stepper__controls{align-items:center;gap:.5em;display:inline-flex}.wkit-stepper__value{border:2px solid var(--w-line);background:var(--w-surface);min-width:3.3em;color:var(--w-text);font-family:var(--font-mono);text-align:center;appearance:textfield;border-radius:12px;padding:.33em .47em;font-size:1.4em}.wkit-stepper__value::-webkit-inner-spin-button,.wkit-stepper__value::-webkit-outer-spin-button{appearance:none;margin:0}.wkit-feedback{border-radius:12px;padding:.8em 1.05em;font-weight:600}.wkit-feedback--good{background:var(--w-good-bg);color:var(--w-good)}.wkit-feedback--bad{background:var(--w-bad-bg);color:var(--w-bad)}.wkit-feedback__detail{margin-top:.15em;font-weight:400;display:block}.wkit-panel{border:1px solid var(--w-line);background:var(--w-surface);border-radius:14px;padding:.95em 1.2em}.wkit-details{flex-direction:column;gap:.55em;display:flex}.wkit-details__heading{margin:0;font-size:1.06em}.wkit-details__words{flex-wrap:wrap;gap:.6em 1.1em;display:flex}.wkit-details__word{flex-wrap:wrap;gap:.3em;display:flex}.wkit-details__column{color:var(--w-text);font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;flex-direction:column;gap:.2em;padding:.2em;display:flex}.wkit-details__column.is-active{border-color:var(--w-strong);background:var(--w-mark)}.wkit-details__cell{background:var(--w-bg);width:1.9em;height:2.1em;font-family:var(--font-mono);border-radius:6px;justify-content:center;align-items:center;font-size:1.18em;display:flex}.wkit-details__cell--muted{color:var(--w-muted);background:0 0;height:1.6em;font-size:.95em}.wkit-details__column--wrong .wkit-details__cell--answer,.wkit-details__column--extra .wkit-details__cell--answer,.wkit-details__column--missing .wkit-details__cell--answer{background:var(--w-bad-bg);color:var(--w-bad)}.wkit-details__column--wrong .wkit-details__cell--answer,.wkit-details__column--extra .wkit-details__cell--answer{text-underline-offset:4px;text-decoration:underline wavy}.wkit-chart{width:100%;height:auto;display:block}.wkit-chart__bar rect{fill:var(--w-strong)}.wkit-chart__bar.is-highlight rect{fill:var(--w-mark);stroke:var(--w-text);stroke-width:1.5px}.wkit-chart__value,.wkit-chart__label{fill:var(--w-text);font-family:var(--font-mono);text-anchor:middle}.wkit-chart__value{fill:var(--w-muted);font-size:13px}.wkit-chart__label{font-size:16px;font-weight:600}.wkit-select{border:2px solid var(--w-line);background-color:var(--w-surface);background-image:linear-gradient(45deg, transparent 50%, var(--w-text) 50%), linear-gradient(135deg, var(--w-text) 50%, transparent 50%);width:100%;min-height:max(48px,2.8em);color:var(--w-text);font:inherit;appearance:none;cursor:pointer;background-position:calc(100% - 1.1em),calc(100% - .75em);background-repeat:no-repeat;background-size:.35em .35em;border-radius:12px;padding:.5em 2.2em .5em .9em}.wkit-select:focus{border-color:var(--w-strong);outline:none}.wkit-slider__label{justify-content:space-between;gap:1em;display:flex}.wkit-slider__value{font-family:var(--font-mono);font-weight:600}.wkit-slider{width:100%;height:2.75em;accent-color:var(--w-strong);cursor:pointer;background:0 0;margin:0}.wkit-field__input--line{resize:none;min-height:0}[data-presentation] .wkit,:fullscreen .wkit{flex-direction:column;padding:.8em 2em 1em;font-size:clamp(1rem,.2rem + 2vh,1.9rem);display:flex}[data-presentation] .wkit:not([data-modes])>.wkit__toolbar,:fullscreen .wkit:not([data-modes])>.wkit__toolbar{z-index:1;margin:0;position:absolute;top:.8em;right:1.5em}[data-presentation] .wkit-field__input:not(.wkit-field__input--line),:fullscreen .wkit-field__input:not(.wkit-field__input--line){min-height:4.2em}[data-presentation] .wkit-field__hint,:fullscreen .wkit-field__hint{display:none}.wkit-answer{flex-wrap:wrap;align-items:stretch;gap:1em 1.5em;display:flex}.wkit-answer__field{justify-content:flex-end}.wkit-answer__heading{flex:1 0 100%;margin:0;font-size:1.06em}.wkit-answer__field--small{flex:0 8em}.wkit-answer__field--medium{flex:0 14em}.wkit-answer__field--wide{flex:100%}.wkit-answer__input{font-family:var(--font-mono);letter-spacing:.04em}.wkit-answer__check{flex-wrap:wrap;flex:100%;align-items:center;gap:.8em 1em;display:flex}.wkit-answer__check .wkit-feedback{flex:min(18em,100%)}.wkit-answer [data-check=good]{border-color:var(--w-good);box-shadow:0 0 0 1px var(--w-good)}.wkit-answer [data-check=bad]{border-color:var(--w-bad);box-shadow:0 0 0 1px var(--w-bad)}.wkit-choice{border:0;margin:0;padding:0}.wkit-choice__options{flex-wrap:wrap;gap:.5em;margin-top:.35em;display:flex}.wkit-choice__option{position:relative}.wkit-choice__option input{opacity:0;pointer-events:none;position:absolute}.wkit-choice__option span{border:2px solid var(--w-line);cursor:pointer;border-radius:999px;align-items:center;min-height:44px;padding:.4em 1.1em;font-weight:600;display:inline-flex}.wkit-choice__option input:checked+span{border-color:var(--w-text);background:var(--w-text);color:var(--w-bg)}.wkit-choice__option input:focus-visible+span{outline:3px solid var(--w-strong);outline-offset:2px}.caesar{grid-template-columns:minmax(0,1fr);gap:1.65em 2.35em;display:grid}@media (width>=52rem){.caesar{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);align-items:start}.caesar .wkit-details{grid-column:1/-1}[data-presentation] .caesar,:fullscreen .caesar{flex:1;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,34em) auto;place-content:safe center center;column-gap:4em}[data-presentation] .caesar__wheel,:fullscreen .caesar__wheel{grid-area:1/2/span 2;align-self:start;padding-top:2.9em;position:sticky;top:.5em}[data-presentation] .caesar .wkit-details,:fullscreen .caesar .wkit-details{grid-area:2/1;align-self:start}[data-presentation] .caesar-wheel svg,:fullscreen .caesar-wheel svg{width:min(100dvh - 48px - 8.9em,50vw);max-width:none}[data-presentation] .caesar__form,:fullscreen .caesar__form{gap:.8em}[data-presentation] .caesar-wheel__hint,:fullscreen .caesar-wheel__hint{display:none}}.caesar__form{flex-direction:column;gap:1.2em;display:flex}.caesar__check{display:flex}.caesar-wheel{flex-direction:column;align-items:center;gap:.7em;margin:0;display:flex}.caesar-wheel svg{-webkit-user-select:none;user-select:none;width:100%;max-width:28em;height:auto}.caesar-wheel__outer{fill:var(--w-surface);stroke:var(--w-line);stroke-width:2px}.caesar-wheel__tick{stroke:var(--w-line);stroke-width:1px}.caesar-wheel__plain{cursor:pointer}.caesar-wheel__hit{fill:#0000;pointer-events:all}.caesar-wheel__mark{pointer-events:none}.caesar-wheel__letter{fill:var(--w-text);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:22px;font-weight:500}.caesar-wheel__disc{cursor:grab;touch-action:none;transition:transform .6s cubic-bezier(.3,.7,.3,1)}.caesar-wheel__disc.is-dragging{cursor:grabbing;transition-duration:.12s}.caesar-wheel__inner{fill:var(--w-strong)}.caesar-wheel__letter--cipher{fill:var(--w-on-strong)}.caesar-wheel__index{fill:var(--w-on-strong);opacity:.7;font-family:var(--font-mono);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:11px}.caesar-wheel__hub{fill:var(--w-bg);stroke:var(--w-line);stroke-width:2px}.caesar-wheel__mark{fill:var(--w-mark);stroke:var(--w-text);stroke-width:1.5px}.caesar-wheel__mark+.caesar-wheel__letter--cipher{fill:var(--w-text)}.caesar-wheel__caption{text-align:center;flex-direction:column;align-items:center;gap:.25em;font-size:.88em;display:flex}.caesar-wheel__hint{color:var(--w-muted);max-width:26em;font-size:.93em}.vsquare{flex-direction:column;align-items:center;gap:.6em;width:100%;margin:0;display:flex}.vsquare__layout{grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);gap:.3em .4em;width:100%;max-width:34em;display:grid}.vsquare__axis{color:var(--w-muted);font-size:.82em;font-weight:600}.vsquare__axis--top{text-align:center;grid-column:2}.vsquare__axis--side{writing-mode:vertical-rl;text-align:center;grid-area:2/1;transform:rotate(180deg)}.vsquare__grid{border:1px solid var(--w-line);-webkit-user-select:none;user-select:none;border-radius:8px;grid-area:2/2;grid-template-columns:repeat(27,minmax(0,1fr));display:grid;overflow:hidden;container-type:inline-size}.vsquare__corner,.vsquare__head,.vsquare__cell{aspect-ratio:1;font-family:var(--font-mono);justify-content:center;align-items:center;font-size:2.03704cqi;line-height:1;display:flex}.vsquare__corner,.vsquare__head{background:var(--w-surface);color:var(--w-text);font-weight:600}.vsquare__head.is-active{background:var(--w-strong);color:var(--w-on-strong)}.vsquare__cell{color:var(--w-muted);cursor:pointer}.vsquare__cell.is-path{background:color-mix(in srgb, var(--w-mark) 55%, var(--w-bg));color:var(--w-text)}.vsquare__cell.is-target{background:var(--w-strong);color:var(--w-on-strong);font-weight:700}.vsquare__caption{min-height:1.5em;font-family:var(--font-mono);font-size:1.05em;font-weight:600}@media (width>=52rem){[data-presentation] .vsquare__layout,:fullscreen .vsquare__layout{width:min(100dvh - 48px - 8.9em,50vw);max-width:none}}.huffman{grid-template-columns:minmax(0,1fr);gap:1.5em 2.5em;display:grid}@media (width>=52rem){.huffman{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start}.huffman__build,.huffman__results{grid-column:1/-1}}.huffman__label{margin-bottom:.4em;font-weight:600;display:block}.huffman__heading{margin:0;font-size:1.06em}.huffman__subheading{margin:.9em 0 .4em;font-size:.94em}.huffman__build{flex-direction:column;gap:.75em;display:flex}.huffman__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75em 1.5em;display:flex}.huffman__actions{flex-wrap:wrap;gap:.5em;display:flex}.huffman__hint,.huffman__empty{color:var(--w-muted);margin:0}.htree{border:1px solid var(--w-line);background:var(--w-surface);border-radius:14px;padding:.5em 0;overflow-x:auto}.htree svg{height:auto;margin-inline:auto;display:block}.htree__edge line{stroke:var(--w-line);stroke-width:3px}.htree__edge.is-path line{stroke:var(--w-strong);stroke-width:7px}.htree__bit{fill:var(--w-muted);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:central;font-size:15px;font-weight:600}.htree__edge.is-path .htree__bit{fill:var(--w-text);font-size:19px}.htree__hit{fill:#0000}.htree__circle{fill:var(--w-bg);stroke:var(--w-strong);stroke-width:3px;transition:fill .15s,stroke-width .15s}.htree__node--inner .htree__circle{fill:color-mix(in srgb, var(--w-mark) 45%, var(--w-bg))}.htree__weight{fill:var(--w-text);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:17px;font-weight:600}.htree__symbol{fill:var(--w-text);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:22px;font-weight:700}.htree__node.is-selectable{cursor:pointer}.htree__node.is-selectable:hover .htree__circle,.htree__node.is-selectable:focus-visible .htree__circle{stroke-width:5px}.htree__node:focus-visible{outline:none}.htree__node:focus-visible .htree__circle{stroke:var(--w-text)}.htree__node.is-hint .htree__circle{fill:var(--w-mark);stroke-dasharray:6 4}.htree__node.is-selected .htree__circle{fill:var(--w-strong);stroke:var(--w-text);stroke-width:4px}.htree__node.is-selected .htree__weight{fill:var(--w-on-strong)}.htree__node.is-path .htree__circle{fill:var(--w-strong)}.htree__node.is-path .htree__weight{fill:var(--w-on-strong)}.htree__node--leaf{cursor:default}.huffman__results{grid-template-columns:repeat(auto-fit,minmax(min(18em,100%),1fr));gap:1.25em;display:grid}.huffman__table{border-collapse:collapse;width:100%;margin-top:.6em}.huffman__table th,.huffman__table td{text-align:left;border-bottom:1px solid var(--w-line);padding:.35em .6em}.huffman__table th{color:var(--w-muted);font-size:.85em}.huffman__table tbody tr{cursor:pointer}.huffman__table tbody tr.is-active{background:var(--w-mark)}.huffman__symbol,.huffman__code{font-family:var(--font-mono);font-weight:600}.huffman__code{letter-spacing:.08em}.huffman__size-list{flex-direction:column;gap:.35em;margin:.6em 0 0;display:flex}.huffman__size-list>div{border-bottom:1px solid var(--w-line);justify-content:space-between;gap:1em;padding:.3em 0;display:flex}.huffman__size-list .is-huffman{font-weight:700}.huffman__size-list dd{font-family:var(--font-mono);margin:0}.huffman__encoded{font-family:var(--font-mono);word-break:break-all;margin:0;font-size:.95em;line-height:1.7}.huffman__encoded span{border-radius:4px;margin-right:.3em}.huffman__encoded span.is-active{background:var(--w-mark)}[data-presentation] .htree svg,:fullscreen .htree svg{max-height:50vh}[data-presentation] .huffman__chart .wkit-chart,:fullscreen .huffman__chart .wkit-chart{max-height:22vh}[data-presentation] .huffman__input,:fullscreen .huffman__input{padding-right:9em}.subst{flex-direction:column;gap:1.5em;display:flex}.subst__heading{margin:0;font-size:1.06em}.subst__input{flex-direction:column;gap:.75em;display:flex}.subst__buttons{flex-wrap:wrap;gap:.5em;display:flex}.subst__key{flex-direction:column;gap:.75em;display:flex}.subst__key-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5em 1em;display:flex}.subst__key-grid{grid-template-columns:repeat(auto-fill,minmax(2.6em,1fr));gap:.4em;display:grid}@media (width>=52rem){.subst__key-grid{grid-template-columns:repeat(13,minmax(0,1fr))}}@media (width>=75rem){.subst__key-grid{grid-template-columns:repeat(26,minmax(0,1fr))}}.subst__key-col{cursor:text;border-radius:10px;flex-direction:column;align-items:center;gap:.15em;padding:.3em .1em;display:flex}.subst__key-col.is-active{background:var(--w-mark)}.subst__key-col.is-unused{opacity:.45}.subst__cipher{font-family:var(--font-mono);font-size:1.15em;font-weight:700}.subst__count{color:var(--w-muted);font-size:.75em}.subst__guess{border:2px solid var(--w-line);background:var(--w-surface);width:100%;max-width:2.4em;height:2.4em;color:var(--w-text);font-family:var(--font-mono);text-align:center;text-transform:uppercase;border-radius:8px;padding:0;font-size:1.15em;font-weight:600}.subst__guess:focus{border-color:var(--w-strong);outline:none}.subst__key-col.is-conflict .subst__guess{border-color:var(--w-bad);background:var(--w-bad-bg);color:var(--w-bad)}.subst__conflict{color:var(--w-bad);margin:0;font-weight:600}.subst__text{flex-direction:column;gap:.75em;display:flex}.subst__empty{color:var(--w-muted);margin:0}.subst__words{flex-wrap:wrap;gap:.8em .9em;display:flex}.subst__break{flex-basis:100%;height:0}.subst__word{flex-wrap:wrap;display:flex}.subst__letter{min-width:1.1em;font-family:var(--font-mono);cursor:pointer;border-radius:5px;flex-direction:column;align-items:center;padding:.05em;display:flex}.subst__letter--other{cursor:default}.subst__letter.is-active{background:var(--w-mark)}.subst__letter-cipher{color:var(--w-muted);font-size:.75em}.subst__letter-plain{color:var(--w-text);font-size:1.2em;font-weight:700}.subst__letter.is-conflict .subst__letter-plain{color:var(--w-bad)}.subst__charts{grid-template-columns:minmax(0,1fr);gap:1.25em;display:grid}.subst__charts .wkit-chart{margin-top:.6em;max-width:none!important}[data-presentation] .subst__input,:fullscreen .subst__input{padding-right:9em}.sorting{flex-direction:column;gap:1.25em;display:flex}.sorting__controls{grid-template-columns:repeat(auto-fit,minmax(min(13em,100%),1fr));align-items:end;gap:1em 1.5em;display:grid}.sorting__order{flex-wrap:wrap;align-items:center;gap:.5em;display:flex}.sorting__stage{border:1px solid var(--w-line);background:var(--w-surface);border-radius:14px;padding:1em 1em .5em}.sorting__chart{width:100%;height:auto;display:block}.sorting__bar rect{fill:var(--w-strong);transition:fill .1s}.sorting__bar.is-sorted rect{fill:color-mix(in srgb, var(--w-good) 70%, var(--w-surface))}.sorting__bar.is-compare rect{fill:var(--w-mark);stroke:var(--w-text);stroke-width:2px}.sorting__bar.is-changed rect{fill:var(--w-bad)}.sorting__bar.is-pivot rect,.sorting__bar.is-min rect{fill:var(--w-text)}.sorting__value{fill:var(--w-text);font-family:var(--font-mono);text-anchor:middle;font-weight:600}.sorting__message{min-height:1.5em;font-family:var(--font-mono);text-align:center;margin:.5em 0 0;font-weight:600}.sorting__bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1em 2em;display:flex}.sorting__playback{flex-wrap:wrap;gap:.5em;display:flex}.sorting__counters{gap:1.5em;margin:0;display:flex}.sorting__counters>div{border:1px solid var(--w-line);background:var(--w-surface);border-radius:12px;flex-direction:column;align-items:center;min-width:6em;padding:.4em .9em;display:flex}.sorting__counters dt{color:var(--w-muted);font-size:.82em}.sorting__counters dd{font-family:var(--font-mono);margin:0;font-size:1.5em;font-weight:700}[data-presentation] .sorting__controls,:fullscreen .sorting__controls{padding-right:9em}[data-presentation] .sorting__chart,:fullscreen .sorting__chart{max-height:calc(100dvh - 48px - 20em)}.ns{flex-direction:column;gap:1.25em;display:flex}.ns-heading{margin:0;font-size:1.06em}.ns-controls{flex-wrap:wrap;align-items:flex-end;gap:1em 2em;display:flex}.ns-bases{flex-wrap:wrap;align-items:flex-end;gap:.75em 1em;display:flex}.ns-pow sup{font-size:.7em}.ns-num{font-family:var(--font-mono)}.ns-sub{vertical-align:-.25em;font-size:.7em}.ns-board{flex-direction:column;gap:1em;display:flex}.ns-places{flex-wrap:nowrap;justify-content:safe center;gap:.4em;padding-bottom:.2em;display:flex;overflow-x:auto}.ns-place{background:var(--w-bg);border:2px solid var(--w-line);border-radius:12px;flex-direction:column;flex-shrink:0;align-items:center;gap:.15em;min-width:3.2em;padding:.4em .2em;transition:border-color .15s,background-color .15s;display:flex}.ns-place.is-set{border-color:var(--w-strong);background:color-mix(in srgb, var(--w-mark) 30%, var(--w-bg))}.ns-place__weight{font-family:var(--font-mono);color:var(--w-muted);flex-direction:column;align-items:center;font-size:.85em;line-height:1.2;display:flex}.ns-place__value{font-size:.85em}.ns-place__digit{font-family:var(--font-mono);font-size:2em;font-weight:700;line-height:1.1}.ns-place__step{width:2.6em;height:2.2em;min-height:36px;color:var(--w-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:.85em}.ns-place__step:hover{background:var(--w-surface);color:var(--w-text)}.ns-sum{text-align:center;font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:1.15em}.ns-sum__label{font-family:var(--font-sans);color:var(--w-muted);margin-right:.75em;font-size:.8em;font-weight:600}.ns-fields{grid-template-columns:repeat(auto-fit,minmax(min(14em,100%),1fr));gap:1em;display:grid}.ns-field input{font-size:1.2em}.ns-error{color:var(--w-bad);font-size:.85em}.ns-convert{flex-direction:column;gap:.9em;display:flex}.ns-convert__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6em 1em;display:flex}.ns-task{margin:0;font-size:1.3em}.ns-table{border-collapse:collapse;font-family:var(--font-mono);font-size:1.05em}.ns-table th{font-family:var(--font-sans);color:var(--w-muted);text-align:left;padding:.3em 1em .3em 0;font-size:.8em}.ns-table td{border-top:1px solid var(--w-line);white-space:nowrap;padding:.35em 1.2em .35em 0}.ns-strong{color:var(--w-strong);font-weight:700}.ns-result{flex-wrap:wrap;align-items:baseline;gap:.75em;margin:0;display:flex}.ns-result__label{font-weight:600}.ns-result__digits{font-family:var(--font-mono);letter-spacing:.1em;font-size:1.5em;font-weight:700}.ns-result__cell.is-empty{color:var(--w-line)}.ns-note{color:var(--w-muted);margin:0;font-size:.9em}.ns-bits{flex-direction:column;gap:.75em;display:flex}.ns-bits__summary{cursor:pointer;min-height:2em;font-weight:600}.ns-bits[open] .ns-bits__summary{margin-bottom:.75em}.ns-bits__count{font-family:var(--font-mono);margin:.75em 0;font-size:1.1em}.ns-bits__list{font-family:var(--font-mono);grid-template-columns:repeat(auto-fill,minmax(5em,1fr));gap:.3em;margin:0;padding:0;list-style:none;display:grid}.ns-bits__list li{background:var(--w-bg);text-align:center;border-radius:6px;padding:.2em .4em}.ns-practice{flex-direction:column;align-items:flex-start;gap:.75em;display:flex}.ns-question{margin:0;font-size:1.4em;font-weight:600}@media (width<=40rem){.ns-places{gap:.2em}.ns-place{min-width:2.6em;padding-inline:0}.ns-place__weight{font-size:.75em}.ns-place__value{display:none}.ns-place__digit{font-size:1.6em}.ns-place__step{width:100%}}.img-tab{flex-direction:column;gap:1.25em;display:flex}.img-note,.img-bits__note{color:var(--w-muted);margin:0;font-size:.875em}.img-code{font-family:var(--font-mono);letter-spacing:.06em;overflow-wrap:anywhere;font-size:1.05em}.img-size,.img-info{font-family:var(--font-mono);color:var(--w-muted);overflow-wrap:anywhere;margin:0;font-size:.9em}.img-c0{color:#d62839}.img-c1{color:#1f8a4a}.img-c2{color:#2f62c9}.wkit[data-theme=dark] .img-c0{color:#ff8a93}.wkit[data-theme=dark] .img-c1{color:#7fdca2}.wkit[data-theme=dark] .img-c2{color:#93b4ff}.img-canvas{outline:1px solid var(--w-line);background:repeating-conic-gradient(var(--w-surface) 0 25%, var(--w-bg) 0 50%) 0 0 / 12px 12px;width:100%;position:relative}.img-canvas canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.img-canvas canvas.is-pickable{cursor:crosshair}.img-canvas__marker{pointer-events:none;outline:2px solid #e63946;min-width:6px;min-height:6px;position:absolute;box-shadow:0 0 0 3px #fff}.img-small{width:8em;max-width:100%}.img-swatch{border:1px solid var(--w-line);border-radius:6px;flex-shrink:0;width:2.6em;height:2.6em;display:inline-block}.img-swatch--large{width:4em;height:4em}.img-editor,.img-decode,.img-depth,.img-mix,.img-channels{flex-direction:column;gap:1.1em;display:flex}.img-editor__controls,.img-depth__controls{flex-wrap:wrap;align-items:flex-end;gap:1em 1.5em;display:flex}.img-depth__controls>.wkit-field{flex:min(16em,100%)}.img-depth__controls .img-info{flex:min(16em,100%);align-self:center}.img-editor__buttons{flex-wrap:wrap;gap:.4em;display:flex}.img-editor__main{grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:start;gap:1.5em 2.5em;display:grid}.img-grid{background:var(--w-line);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:4px;gap:2px;max-width:100%;padding:2px;display:grid}.img-cell{aspect-ratio:1;min-width:0;font:inherit;font-family:var(--font-mono);cursor:pointer;border:0;border-radius:1px;padding:0;font-size:.8em}.img-answer-grid{flex-direction:column;flex:100%;gap:.8em;display:flex}.img-rgb-answer{flex-wrap:wrap;align-items:flex-end;gap:1em 1.5em;display:flex}.img-cell.is-hover{outline-offset:-3px;outline:3px solid #e63946}.img-palette{flex-wrap:wrap;align-items:center;gap:.35em;display:flex}.img-palette__label{margin-right:.4em;font-weight:600}.img-palette__colour{border:1px solid var(--w-line);min-width:2.4em;height:2.4em;font:inherit;font-family:var(--font-mono);cursor:pointer;border-radius:6px;padding:0 .3em;font-size:.85em}.img-palette__colour[aria-pressed=true]{outline-offset:2px;outline:3px solid #e63946}.img-bits{flex-direction:column;gap:1em;min-width:0;display:flex}.img-bits__part{flex-direction:column;gap:.3em;display:flex}.img-bits__label{font-weight:600}.img-bits__rows{flex-direction:column;gap:.15em;display:flex;overflow-x:auto}.img-bits__row{white-space:nowrap;gap:.15em .55em;display:flex}.img-bits__row:has(.img-bit__value){padding-bottom:.25em}.img-bits__row:not(:has(.img-bit>span+span)){gap:.15em}.img-bit{cursor:default;border-radius:3px;flex-direction:column;align-items:center;padding:0 .1em;display:inline-flex}.img-bit__value{color:var(--w-muted);font-size:.75em}.img-bit.is-hover{color:#fff;background:#e63946}.img-bit.is-hover .img-bit__value{color:#fff}.img-input{flex-direction:column;gap:.6em;display:flex}.img-input__field{letter-spacing:.05em;min-height:4.5em;font-size:1em}.img-input__actions{flex-wrap:wrap;gap:.4em;display:flex}.img-decode__result{flex-wrap:wrap;align-items:flex-start;gap:1.5em 2.5em;display:flex}.img-decode__info{flex-direction:column;align-items:flex-start;gap:1em;min-width:0;display:flex}.img-decode__try{flex-wrap:wrap;align-items:flex-end;gap:.6em 1em;display:flex}.img-decode__try .img-bits__note{font-family:var(--font-mono);padding-bottom:.9em}.img-derived{color:var(--w-text)}.img-scale__strip{border:1px solid var(--w-line);border-radius:6px;height:2.2em;display:flex;overflow:hidden}.img-scale__level{min-width:0;font-family:var(--font-mono);flex:1;justify-content:center;align-items:center;font-size:.8em;display:flex}.img-scale__ends{color:var(--w-muted);justify-content:space-between;margin-top:.3em;font-size:.85em;display:flex}.img-compare{flex-direction:column;gap:1em;display:flex}.img-compare__images{grid-template-columns:repeat(auto-fit,minmax(min(16em,100%),1fr));gap:1em;display:grid}.img-compare__item{flex-direction:column;gap:.4em;margin:0;display:flex}.img-compare__item figcaption{color:var(--w-muted);font-size:.85em}.img-inspect{border:1px solid var(--w-line);border-radius:10px;flex-direction:column;gap:.5em;padding:.8em 1em;display:flex}.img-inspect__pixel{font-weight:600}.img-inspect__sides{flex-wrap:wrap;align-items:center;gap:.8em 1.5em;display:flex}.img-inspect__side{flex-direction:column;gap:.35em;display:flex}.img-inspect__title{color:var(--w-muted);font-size:.85em}.img-inspect__body{align-items:center;gap:.8em;display:flex}.img-inspect__values{font-family:var(--font-mono);flex-direction:column;gap:.1em;margin:0;font-size:.95em;display:flex}.img-inspect__values div{gap:.6em;display:flex}.img-inspect__values dt{min-width:4.5em}.img-inspect__values dd{margin:0;font-weight:700}.img-inspect__arrow{color:var(--w-muted);font-size:1.6em}.img-mix__main{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.8fr);align-items:center;gap:1.5em;display:grid}.img-mix__sliders{flex-direction:column;align-items:flex-start;gap:.3em;display:flex}.img-mix__channel{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1em;width:100%;display:grid}.img-mix__bits{font-family:var(--font-mono);padding-bottom:.8em;font-weight:700}.img-lights{width:100%;max-width:16em;margin-inline:auto;display:block}.img-mix__result{flex-direction:column;gap:.5em;display:flex}.img-mix__swatch{border:1px solid var(--w-line);border-radius:12px;width:100%;height:5em}.img-mix__name{font-size:1.15em;font-weight:700}.img-pixelbits{font-family:var(--font-mono);flex-wrap:wrap;gap:.15em .5em;font-size:1.05em;font-weight:700;display:inline-flex}.img-switches{flex-wrap:wrap;gap:.4em;display:flex}.img-switch{border:2px solid var(--w-line);min-height:44px;color:var(--w-text);font:inherit;opacity:.6;cursor:pointer;background:0 0;border-radius:999px;padding:.4em 1em;font-weight:600;text-decoration:line-through}.img-switch[aria-pressed=true]{opacity:1;text-decoration:none}.img-switch--0[aria-pressed=true]{background:#e639462e;border-color:#e63946}.img-switch--1[aria-pressed=true]{background:#2a9d552e;border-color:#2a9d55}.img-switch--2[aria-pressed=true]{background:#3a6fd82e;border-color:#3a6fd8}.img-channels__main{grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:start;gap:1.5em;display:grid}.img-channels__ball{width:20em;max-width:100%}.img-channels__photo{width:30em;max-width:100%}.img-decoded{max-width:100%}.img-practice,.img-solution{flex-direction:column;align-items:flex-start;gap:.8em;display:flex}.img-question{margin:0;font-size:1.2em;font-weight:600}.img-given{max-width:100%}.img-given__bits{font-size:1.2em;display:block}.img-step{flex-direction:column;gap:.35em;display:flex}.img-step__title{font-weight:600}.img-step__pair{flex-wrap:wrap;align-items:center;gap:1.5em;display:flex}.img-step__rows{font-family:var(--font-mono);flex-direction:column;gap:.2em;display:flex}.img-answer{font-family:var(--font-mono);margin:0;font-weight:700}@media (width<=52rem){.img-editor__main,.img-mix__main,.img-channels__main{grid-template-columns:minmax(0,1fr)}}[data-presentation] .img-grid,:fullscreen .img-grid{max-width:min(100%,50vh)}[data-presentation] .img-compare__images,:fullscreen .img-compare__images{max-width:min(100%,118vh)}[data-presentation] .img-channels__ball,:fullscreen .img-channels__ball{width:min(100%,55vh)}[data-presentation] .img-channels__photo,:fullscreen .img-channels__photo{width:min(100%,80vh)}.nm{flex-direction:column;gap:1.25em;display:flex}.nm-view,.nm-practice,.nm-solution{flex-direction:column;gap:1.1em;display:flex}.nm-practice,.nm-solution{align-items:flex-start}.nm-note{color:var(--w-muted);margin:0;font-size:.875em}.nm-code{font-family:var(--font-mono);letter-spacing:.04em;white-space:pre-wrap;overflow-wrap:anywhere}.nm-controls{flex-wrap:wrap;align-items:flex-start;gap:1em 2em;display:flex}.nm-input{flex-direction:column;flex:0 auto;gap:.3em;display:flex}.nm-input input{min-width:17ch;font-family:var(--font-mono);letter-spacing:.02em}.nm-error{color:var(--w-bad);font-size:.85em}.nm-table{grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.45em 1.2em;max-width:100%;display:grid;overflow-x:auto}.nm-row{display:contents}.nm-row__label{font-weight:600}.nm-row__dotted{min-width:15ch;font-family:var(--font-mono);text-align:right}.nm-row__prefix{color:var(--w-strong);font-size:1.15em;font-weight:700}.nm-track{touch-action:none;cursor:pointer;align-self:stretch;min-height:2.75em;display:block;position:relative}.nm-track__line,.nm-track__fill{border-radius:4px;height:8px;margin-top:-4px;position:absolute;top:50%}.nm-track__line{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--w-muted) 55%, transparent);background:color-mix(in srgb, var(--w-line) 70%, var(--w-bg))}.nm-track__fill{background:var(--w-strong)}.nm-track__knob{background:var(--w-strong);border-radius:50%;width:16px;height:16px;transition:left 80ms;position:absolute;top:50%;transform:translate(-50%,-50%)}.nm-track__knob:focus-visible{outline:3px solid var(--w-strong);outline-offset:3px}.nm-row--result .nm-row__dotted,.nm-row--result .nm-row__label{color:var(--w-strong)}.nm-bits{font-family:var(--font-mono);gap:.5em;display:inline-flex}.nm-byte{display:inline-flex}.nm-bit{width:1.15em;height:1.7em;color:inherit;font:inherit;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}button.nm-bit{cursor:pointer;border-radius:3px}button.nm-bit:hover{outline:1px solid var(--w-line)}.nm-bit.is-network{background:color-mix(in srgb, var(--w-mark) 45%, transparent)}.nm-bit.is-device{color:var(--w-muted)}.nm-bit.is-boundary{box-shadow:inset -2px 0 0 var(--w-strong)}.nm-bit.is-diff{background:var(--w-bad-bg);color:var(--w-bad);font-weight:700}.nm-row--mask .nm-bit{color:var(--w-muted)}.nm-summary{flex-wrap:wrap;gap:.6em 2.5em;margin:0;display:flex}.nm-summary dt{color:var(--w-muted);font-size:.85em}.nm-summary dd{min-width:15ch;font-family:var(--font-mono);margin:0;font-size:1.15em;font-weight:700}.nm-verdict{border:2px solid var(--w-line);border-radius:12px;flex-direction:column;gap:.2em;padding:.8em 1.05em;display:flex}.nm-verdict.is-same{border-color:var(--w-good)}.nm-verdict.is-different{border-color:var(--w-strong)}.nm-verdict span{color:var(--w-muted);font-size:.9em}.nm-question{margin:0;font-size:1.2em;font-weight:600}.nm-given{font-size:1.2em}.nm-step{flex-direction:column;gap:.35em;max-width:100%;display:flex}.nm-step__title{font-weight:600}@media (width<=40rem){.nm-table{grid-template-columns:minmax(0,1fr);gap:.15em}.nm-row__dotted{text-align:left}.nm-row__label{margin-top:.5em}.nm-bits{gap:.3em;font-size:.8em}.nm-bit{width:.72em}}.en{flex-direction:column;gap:1.25em;display:flex}.en-note{color:var(--w-muted);margin:0;font-size:.875em}.en-error{color:var(--w-bad);font-size:.85em}.en-code{font-family:var(--font-mono);letter-spacing:.12em;overflow-wrap:anywhere;font-size:1.1em}.en-settings,.en-machine,.en-tape,.en-cribview,.en-practice,.en-solution{flex-direction:column;gap:1em;display:flex}.en-practice,.en-solution{align-items:flex-start}.en-rotors{grid-template-columns:repeat(3,minmax(0,1fr));gap:1em;display:grid}.en-rotor{border:1px solid var(--w-line);border-radius:12px;flex-direction:column;gap:.6em;min-width:0;margin:0;padding:.8em 1em 1em;display:flex}.en-rotor legend{padding:0 .3em;font-weight:600}.en-rotor__number{align-items:flex-end;gap:.6em;display:flex}.en-rotor__letter{font-family:var(--font-mono);color:var(--w-muted);padding-bottom:.7em;font-weight:700}.en-settings__row{flex-wrap:wrap;align-items:flex-end;gap:1em 1.5em;display:flex}.en-reflector{flex-direction:column;gap:.3em;display:flex}.en-reflector__value{font-family:var(--font-mono);padding:.45em 0;font-weight:700}.en-plugboard{flex-direction:column;flex:min(16em,100%);gap:.3em;display:flex}.en-plugboard input{font-family:var(--font-mono);text-transform:lowercase}.en-settings__buttons{flex-wrap:wrap;align-items:center;gap:.4em .8em;display:flex}.en-settings__summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:.3em 1em;display:flex}.en-settings__title{font-weight:600}.en-settings__current{font-family:var(--font-mono);color:var(--w-muted);font-size:.9em}.en-settings[open] .en-settings__summary{margin-bottom:.4em}.en-main{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:1.25em;display:grid}.en-path-wrap{flex-direction:column;gap:.4em;display:flex}.en-windows{align-items:center;gap:.5em;display:flex}.en-windows__label{margin-right:.5em;font-weight:600}.en-window{border:2px solid var(--w-strong);background:var(--w-surface);width:2em;height:2.4em;font-family:var(--font-mono);border-radius:6px;justify-content:center;align-items:center;font-size:1.2em;font-weight:700;display:inline-flex}.en-board{flex-direction:column;align-items:center;gap:.35em;display:flex}.en-board__row{gap:.35em;display:flex}.en-lamp,.en-key{width:2.3em;height:2.3em;font-family:var(--font-mono);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.en-lamp{border:1px solid var(--w-line);background:var(--w-surface);color:var(--w-muted);transition:background .15s,color .15s,box-shadow .15s}.en-lamp.is-lit{color:#3a2a00;background:#ffd65a;border-color:#e9b949;box-shadow:0 0 .8em #ffd65a}.en-key{border:2px solid var(--w-text);background:var(--w-bg);color:var(--w-text);cursor:pointer;padding:0;font-size:1em}.en-key:active{background:var(--w-surface);transform:translateY(1px)}.en-path{flex-direction:column;gap:.5em;display:flex}.en-path__line{flex-wrap:wrap;gap:.3em;margin:0;padding:0;list-style:none;display:flex}.en-path__item{border:1px solid var(--w-line);border-radius:8px;flex-direction:column;align-items:center;min-width:4.6em;padding:.3em .4em;display:flex}.en-path__item+.en-path__item:before{content:""}.en-path__stage{color:var(--w-muted);white-space:nowrap;font-size:.72em}.en-path__letter{font-family:var(--font-mono);font-size:1.2em;font-weight:700}.en-path__line:first-child .en-path__item:first-child,.en-path__line:last-of-type .en-path__item:last-child{border-color:var(--w-strong)}.en-path__result{font-family:var(--font-mono);margin:0;font-weight:700}.en-tape__actions{gap:.4em;display:flex}.en-output{flex-direction:column;gap:.3em;display:flex}.en-crib__inputs{flex-wrap:wrap;gap:1em 1.5em;display:flex}.en-crib__inputs>*{flex:min(16em,100%)}.en-crib__inputs input{font-family:var(--font-mono)}.en-crib__scroll{max-width:100%;overflow-x:auto}.en-crib{gap:.2em;width:max-content;display:grid}.en-cell{background:var(--w-surface);height:1.7em;font-family:var(--font-mono);border-radius:4px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.en-cell--crib{background:0 0}.en-cell--crib.is-filled{background:color-mix(in srgb, var(--w-mark) 45%, transparent)}.en-cell.is-hit{background:var(--w-bad-bg);color:var(--w-bad);outline:2px solid var(--w-bad)}.en-verdict{border-radius:12px;padding:.8em 1.05em;font-weight:600}.en-verdict.is-good{background:var(--w-good-bg);color:var(--w-good)}.en-verdict.is-bad{background:var(--w-bad-bg);color:var(--w-bad)}.en-question{margin:0;font-size:1.2em;font-weight:600}.en-given{font-size:1.25em}.en-step{flex-direction:column;gap:.4em;max-width:100%;display:flex}.en-step__title{font-weight:600}.en-step__row{align-items:center;gap:.6em;margin-bottom:.4em;display:flex}.en-step__pos{min-width:1.6em;font-family:var(--font-mono);color:var(--w-muted);text-align:right}@media (width<=52rem){.en-rotors,.en-main{grid-template-columns:minmax(0,1fr)}}@media (width<=30rem){.en-lamp,.en-key{width:1.95em;height:1.95em;font-size:.95em}.en-board__row{gap:.2em}}[data-presentation] .en-lamp,[data-presentation] .en-key,:fullscreen .en-lamp,:fullscreen .en-key{width:1.95em;height:1.95em}[data-presentation] .en-machine,:fullscreen .en-machine{gap:.7em}.gs{flex-direction:column;gap:1.25em;display:flex}.gs-panel,.gs-practice{flex-direction:column;gap:1.1em;display:flex}.gs-practice{align-items:flex-start}.gs-practice__actions{flex-wrap:wrap;gap:.4em;display:flex}.gs-question{margin:0;font-size:1.15em;font-weight:600}.gs-controls{flex-wrap:wrap;align-items:flex-end;gap:.8em 1.5em;display:flex}.gs-main{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:1.5em;display:grid}.gs-side{flex-direction:column;gap:.8em;min-width:0;display:flex}.gs-message{min-height:2.6em;margin:0;font-weight:600}.gs-line{font-family:var(--font-mono);overflow-wrap:anywhere;margin:0}.gs-line--strong{color:var(--w-strong);font-weight:700}.gs-graph{width:100%;margin-inline:auto;display:block;overflow:visible}.gs-edge{stroke:var(--w-line);stroke-width:2.5px}.gs-edge.is-tree{stroke:var(--w-strong);stroke-width:5px}.gs-node circle{fill:var(--w-bg);stroke:var(--w-text);stroke-width:2px;transition:fill .2s}.gs-node text{fill:var(--w-text);font-family:var(--font-mono);pointer-events:none;font-size:16px;font-weight:700}.gs-node .gs-node__label{fill:var(--w-muted);font-size:11px;font-weight:400}.gs-node.is-visited circle{fill:var(--w-mark)}.gs-node.is-found circle{fill:var(--w-strong)}.gs-node.is-found text:first-of-type{fill:var(--w-on-strong)}.gs-node.is-current circle,.gs-node.is-work circle{stroke:#e63946;stroke-width:4px}.gs-node.is-target circle{stroke-dasharray:4 3;stroke-width:3px}.gs-node.is-clickable{cursor:pointer}.gs-node.is-clickable:hover circle,.gs-node.is-clickable:focus-visible circle{stroke:#e63946;stroke-width:4px}.gs-node:focus-visible{outline:none}.gs-table-wrap{max-width:100%;overflow-x:auto}.gs-table{border-collapse:collapse;font-family:var(--font-mono);font-size:.9em}.gs-table th,.gs-table td{border-bottom:1px solid var(--w-line);text-align:left;white-space:nowrap;padding:.25em .8em .25em 0}.gs-table th{font-family:var(--font-sans,inherit);font-weight:600}.gs-table tr.is-current td,.gs-table td.is-current{color:#e63946;font-weight:700}.gs-table--pred td{text-align:center;min-width:1.6em;padding-right:.5em}.gs-table--pred th{padding-right:1em}@media (width<=52rem){.gs-main{grid-template-columns:minmax(0,1fr)}}[data-presentation] .gs-graph,:fullscreen .gs-graph{max-height:62vh}.te{flex-direction:column;gap:1.25em;display:flex}.te-view,.te-practice,.te-solution{flex-direction:column;gap:1em;display:flex}.te-practice,.te-solution{align-items:flex-start}.te-note,.te-info{color:var(--w-muted);margin:0;font-size:.9em}.te-info{font-family:var(--font-mono)}.te-mono{font-family:var(--font-mono);letter-spacing:.04em;overflow-wrap:anywhere}.te-fields{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start;gap:1em 1.5em;display:grid}.te-fields .wkit-field__input{font-family:var(--font-mono);text-transform:none}.te-field-wrap{flex-direction:column;gap:.5em;display:flex}.te-scroll{max-width:100%;overflow-x:auto}.te-table{border-collapse:collapse;font-size:.95em}.te-table th,.te-table td{border-bottom:1px solid var(--w-line);text-align:left;white-space:nowrap;padding:.3em 1.1em .3em 0}.te-table th{font-weight:600}.te-table tr.is-bad td{color:var(--w-bad)}.te-char{font-size:1.15em;font-weight:700}.te-table--select .te-char button{min-width:2.2em;min-height:2.2em;color:inherit;font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;padding:0 .3em}.te-table--select tr.is-selected td{background:color-mix(in srgb, var(--w-mark) 30%, transparent)}.te-table--select tr.is-selected .te-char button{border-color:var(--w-strong)}.te-table-details summary{cursor:pointer;font-weight:600}.te-ascii-grid{grid-template-columns:repeat(auto-fill,minmax(3.2em,1fr));gap:.3em;margin-top:.6em;display:grid}.te-ascii-cell{border:1px solid var(--w-line);background:var(--w-bg);color:var(--w-text);font:inherit;cursor:pointer;border-radius:6px;flex-direction:column;align-items:center;padding:.25em 0;display:flex}.te-ascii-cell__char{font-family:var(--font-mono);font-weight:700}.te-ascii-cell__code{color:var(--w-muted);font-size:.75em}.te-quick{flex-wrap:wrap;align-items:flex-end;gap:.8em 1.5em;display:flex}.te-quick>.wkit-field{flex:min(18em,100%)}.te-quick input{text-transform:none}.te-quick__buttons{flex-wrap:wrap;gap:.3em;display:flex}.te-unicode{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:1.5em;display:grid}.te-derivation{flex-direction:column;gap:.6em;min-width:0;display:flex}.te-steps{flex-direction:column;gap:.8em;margin:0;padding-left:1.4em;display:flex}.te-steps li{flex-direction:column;gap:.25em;display:flex}.te-steps__title{font-weight:600}.te-patterns{border-collapse:collapse;font-size:.92em}.te-patterns td{color:var(--w-muted);padding:.2em .9em .2em .4em}.te-patterns tr.is-active td{background:color-mix(in srgb, var(--w-mark) 35%, transparent);color:var(--w-text);font-weight:700}.te-result{color:var(--w-strong);font-weight:700}.te-bytes{font-family:var(--font-mono);flex-wrap:wrap;gap:.3em .7em;font-size:1.15em;display:inline-flex}.te-byte{align-items:center;display:inline-flex}.te-bit{text-align:center;min-width:.7em;display:inline-block}.te-bit--prefix{color:var(--w-muted)}.te-bit--pad{color:var(--w-muted);font-style:italic}.te-bit--data{text-underline-offset:3px;color:var(--w-strong);font-weight:700;text-decoration:underline 2px}.te-legend{flex-wrap:wrap;gap:.3em 1.2em;margin:0;font-size:.85em;display:flex}.te-question{margin:0;font-size:1.15em;font-weight:600}.te-given{font-size:1.15em}.te-slots{flex-direction:column;gap:.4em;display:flex}.te-slot{border:2px solid var(--w-strong);background:var(--w-bg);width:1.6em;height:2em;color:var(--w-text);font:inherit;cursor:pointer;border-radius:5px;margin:0 1px;padding:0;font-weight:700}.te-slot.is-empty{color:var(--w-muted);border-style:dashed;font-weight:400}@media (width<=52rem){.te-fields,.te-unicode{grid-template-columns:minmax(0,1fr)}}[data-presentation] .te-scroll,:fullscreen .te-scroll{max-height:38vh;overflow-y:auto}[data-presentation] .te-fields textarea,:fullscreen .te-fields textarea{max-height:14vh}[data-presentation] .te-steps,:fullscreen .te-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5em 1.5em;padding-left:0;list-style:none;display:grid}[data-presentation] .te-steps li:nth-child(n+3),:fullscreen .te-steps li:nth-child(n+3){grid-column:1/-1}[data-presentation] .te-view,:fullscreen .te-view{gap:.6em}[data-presentation] .te-table--select .te-char button,:fullscreen .te-table--select .te-char button{min-height:1.8em}[data-presentation] .te-legend,:fullscreen .te-legend{display:none}[data-presentation] .te-patterns td,:fullscreen .te-patterns td{padding-block:.05em}.bs{flex-direction:column;gap:1.25em;display:flex}.bs-view,.bs-practice,.bs-solution,.bs-game{flex-direction:column;gap:1em;display:flex}.bs-practice,.bs-solution,.bs-game{align-items:flex-start}.bs-game>.bs-line,.bs-game>.wkit-feedback{align-self:stretch}.bs-note{color:var(--w-muted);margin:0;font-size:.9em}.bs-mono{font-family:var(--font-mono)}.bs-error{color:var(--w-bad);flex-wrap:wrap;align-items:center;gap:.5em;font-size:.9em;display:flex}.bs-question{margin:0;font-size:1.15em;font-weight:600}.bs-form{flex-wrap:wrap;align-items:flex-end;gap:.6em 1em;display:flex}.bs-form .wkit-field{width:8em}.bs-form input{font-family:var(--font-mono);font-size:1.2em}.bs-tries{font-family:var(--font-mono);color:var(--w-muted);padding-bottom:.75em}.bs-think{margin:0;font-weight:600}.bs-bob{flex-direction:column;gap:.4em;display:flex}.bs-bob__question{margin:0;font-size:1.5em;font-weight:700}.bs-bob__answers{flex-wrap:wrap;gap:.4em;margin-top:.3em;display:flex}.bs-line{width:100%}.bs-line__track{background:var(--w-surface);border:1px solid var(--w-line);border-radius:999px;height:1.6em;position:relative;overflow:hidden}.bs-line__range{background:color-mix(in srgb, var(--w-mark) 70%, transparent);transition:left .3s,width .3s;position:absolute;top:0;bottom:0}.bs-line__tick{background:var(--w-text);width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.bs-line__tick.is-right{background:var(--w-good);width:4px}.bs-line__labels{font-family:var(--font-mono);color:var(--w-muted);justify-content:space-between;margin-top:.25em;font-size:.85em;display:flex}.bs-line__possible{color:var(--w-text);font-weight:700}.bs-guesses{flex-direction:column;gap:.2em;margin:0;padding-left:1.6em;display:flex}.bs-guesses li{flex-wrap:wrap;gap:.2em .8em;display:flex}.bs-guesses__guess{min-width:9em;font-family:var(--font-mono);font-weight:700}.bs-guesses li.is-right{color:var(--w-good);font-weight:700}.bs-controls{flex-wrap:wrap;align-items:flex-end;gap:1em 1.5em;display:flex}.bs-list-input{flex-direction:column;flex:min(22em,100%);gap:.4em;display:flex}.bs-list-input input,.bs-target-input input{font-family:var(--font-mono)}.bs-target-input{flex:0 7em}.bs-cards{flex-wrap:wrap;gap:.4em;margin:0;padding:0;list-style:none;display:flex}.bs-card{flex-direction:column;align-items:center;gap:.2em;display:flex}.bs-card>span:first-child,.bs-card>button{border:2px solid var(--w-line);background:var(--w-bg);min-width:2.6em;height:3.4em;color:var(--w-text);font:inherit;font-family:var(--font-mono);border-radius:8px;justify-content:center;align-items:center;padding:0 .3em;font-size:1.05em;font-weight:700;transition:opacity .2s,background .2s;display:inline-flex}.bs-card>button{cursor:pointer}.bs-card>button:hover{border-color:var(--w-strong)}.bs-card.is-out>span:first-child,.bs-card.is-out>button{opacity:.3;background:var(--w-surface)}.bs-card.is-seen>span:first-child,.bs-card.is-seen>button{border-color:var(--w-strong)}.bs-card.is-current>span:first-child{border-color:var(--w-strong);background:var(--w-strong);color:var(--w-on-strong)}.bs-card.is-found>span:first-child,.bs-card.is-found>button{border-color:var(--w-good);background:var(--w-good-bg);color:var(--w-good);opacity:1}.bs-card__label{min-height:1.2em;font-family:var(--font-mono);color:var(--w-muted);font-size:.8em}.bs-message{min-height:1.5em;margin:0;font-weight:600}.bs-step{flex-direction:column;gap:.3em;display:flex}.bs-step__title{font-weight:600}.sp{flex-direction:column;gap:1.25em;display:flex}.sp-panel,.sp-practice{flex-direction:column;gap:1em;display:flex}.sp-practice{align-items:flex-start}.sp-note{color:var(--w-muted);margin:0;font-size:.9em}.sp-error{color:var(--w-bad);margin:0;font-size:.9em}.sp-question{margin:0;font-size:1.15em;font-weight:600}.sp-given{flex-wrap:wrap;gap:.4em 2em;margin:0;display:flex}.sp-given code{font-family:var(--font-mono);letter-spacing:.08em;font-size:1.15em;font-weight:700}.sp-inputs{flex-wrap:wrap;align-items:flex-end;gap:.8em 1.5em;display:flex}.sp-inputs .wkit-field{flex:0 11em}.sp-inputs .wkit-field+.wkit-field{flex-basis:19em}.sp-inputs input{font-family:var(--font-mono);letter-spacing:.06em}.sp-network,.sp-group{flex-direction:column;align-items:center;gap:.3em;display:flex}.sp-stage{flex-direction:column;align-items:center;gap:.3em;display:flex;position:relative}.sp-round{color:var(--w-strong);white-space:nowrap;font-weight:700;position:absolute;top:.2em;right:calc(100% + 1em)}.sp-block{align-items:center;display:flex;position:relative}.sp-block__label{color:var(--w-muted);white-space:nowrap;font-size:.85em;position:absolute;left:calc(100% + .8em)}.sp-block__bits{grid-template-columns:repeat(8,2.2em);display:grid}.sp-bit{height:1.9em;font-family:var(--font-mono);justify-content:center;align-items:center;font-size:1.1em;font-weight:700;display:inline-flex}.sp-block--io .sp-block__bits{border:2px solid var(--w-strong);border-radius:8px}.sp-block--io .sp-block__label{color:var(--w-strong);font-weight:700}.sp-block--key .sp-bit{color:var(--w-muted);font-weight:400}.sp-op{justify-content:center;align-items:center;display:flex;position:relative}.sp-op--s .sp-op__boxes{grid-template-columns:repeat(2,8.8em);display:grid}.sp-op--s .sp-op__boxes span{border:2px solid var(--w-line);background:color-mix(in srgb, var(--w-mark) 35%, transparent);text-align:center;border-radius:6px;margin:0 .2em;padding:.35em 0;font-weight:700}.sp-lookups{font-family:var(--font-mono);color:var(--w-muted);white-space:nowrap;flex-direction:column;font-size:.8em;display:flex;position:absolute;left:calc(100% + .8em)}.sp-op--k{border-top:1px dashed var(--w-line);padding:.1em 0}.sp-wires{width:17.6em;height:3.3em;display:block}.sp-wires__box{fill:color-mix(in srgb, var(--w-mark) 35%, transparent);stroke:var(--w-line);stroke-width:1.5px}.sp-wires__label{fill:var(--w-muted);font-size:14px;font-weight:700}.sp-wire{stroke:var(--w-muted);stroke-width:1.2px}.sp-wire.is-1{stroke:var(--w-strong);stroke-width:2.6px}.sp-tables summary{cursor:pointer;font-weight:600}.sp-scroll{max-width:100%;margin-top:.5em;overflow-x:auto}.sp-table{border-collapse:collapse;font-family:var(--font-mono);font-size:.9em}.sp-table th,.sp-table td{border:1px solid var(--w-line);text-align:center;padding:.2em .45em}.sp-table th{white-space:nowrap;font-family:inherit}.sp-answer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8em 1em;width:100%;display:grid}.sp-answer-grid input{letter-spacing:.08em}@media (width<=52rem){.sp-round,.sp-block__label,.sp-lookups{position:static}.sp-block,.sp-op--s{flex-direction:column}.sp-answer-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=30rem){.sp-block__bits{grid-template-columns:repeat(8,1.9em)}.sp-op--s .sp-op__boxes{grid-template-columns:repeat(2,7.6em)}.sp-wires{width:15.2em}}[data-presentation] .sp-network,:fullscreen .sp-network{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:0 2em;display:grid}[data-presentation] .sp-group:last-child,:fullscreen .sp-group:last-child{padding-top:2.2em}[data-presentation] .sp-lookups,:fullscreen .sp-lookups{font-size:.68em}.tcp{flex-direction:column;gap:1.25em;display:flex}.tcp-view,.tcp-practice,.tcp-solution{flex-direction:column;gap:1em;display:flex}.tcp-practice{align-items:flex-start}.tcp-solution{width:100%}.tcp-question{margin:0;font-size:1.15em;font-weight:600}.tcp-hint{color:var(--w-muted);margin:0;font-size:.875em}.tcp-error{color:var(--w-bad);margin:0}.tcp-line{font-family:var(--font-mono);margin:0}.tcp-strong{font-weight:700}.tcp-controls{flex-wrap:wrap;align-items:flex-end;gap:.8em 1.5em;display:flex}.tcp-controls .wkit-field input{width:9em;font-family:var(--font-mono)}.tcp-controls .tcp-hint{flex:14em;align-self:center}.tcp-c0{--seg:#4c78a8}.tcp-c1{--seg:#e45756}.tcp-c2{--seg:#54a24b}.tcp-c3{--seg:#b279a2}.tcp-c4{--seg:#f58518}.tcp-c5{--seg:#72b7b2}.tcp-dot{background:var(--seg);border-radius:50%;width:.7em;height:.7em;display:inline-block}.tcp-stream{width:100%}.tcp-stream__bar{border:1px solid var(--w-line);background:repeating-linear-gradient(135deg, var(--w-surface) 0 6px, var(--w-bg) 6px 12px);border-radius:6px;height:2.2em;position:relative;overflow:hidden}.tcp-stream__part{border-right:2px solid var(--w-bg);background:color-mix(in srgb, var(--seg) 70%, var(--w-bg));color:#fff;font-family:var(--font-mono);white-space:nowrap;align-items:center;padding-left:.3em;font-size:.8em;font-weight:700;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.tcp-stream__ack{background:var(--w-text);width:3px;margin-left:-1px;position:absolute;top:-2px;bottom:-2px}.tcp-stream__scale{font-family:var(--font-mono);color:var(--w-muted);justify-content:space-between;margin-top:.25em;font-size:.82em;display:flex}.tcp-stream__acklabel{color:var(--w-text);font-weight:700}.tcp-scroll{max-width:100%;overflow-x:auto}.tcp-table{border-collapse:collapse;font-family:var(--font-mono)}.tcp-table th,.tcp-table td{border-bottom:1px solid var(--w-line);text-align:left;white-space:nowrap;padding:.3em 1.4em .3em 0}.tcp-table th{font-family:var(--font-sans,inherit);font-weight:600}.tcp-main{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start;gap:1.5em;display:grid}.tcp-side{flex-direction:column;gap:.6em;min-width:0;display:flex}.tcp-diagram{width:100%;max-width:34em;display:block;overflow:visible}.tcp-party{fill:var(--w-text);font-size:14px;font-weight:700}.tcp-lifeline{stroke:var(--w-text);stroke-width:2px}.tcp-arrow{cursor:pointer}.tcp-arrow__hit{stroke:#0000;stroke-width:16px}.tcp-arrow__line{stroke:var(--seg,var(--w-muted));stroke-width:2.5px}.tcp-arrow--ack .tcp-arrow__line{stroke:var(--w-text);stroke-dasharray:6 4;stroke-width:1.8px}.tcp-arrow.is-lost .tcp-arrow__line{opacity:.7}.tcp-arrow:hover .tcp-arrow__line,.tcp-arrow:focus-visible .tcp-arrow__line{stroke-width:4px}.tcp-arrow:focus-visible{outline:none}.tcp-head{fill:var(--w-text)}.tcp-arrow__label{fill:var(--w-text);font-family:var(--font-mono);font-size:11.5px;font-weight:700}.tcp-cross{fill:var(--w-bad);font-size:22px;font-weight:700}.tcp-note{fill:var(--w-muted);font-size:11px;font-style:italic}.tcp-note--sender{fill:var(--w-bad);font-weight:600}@media (width<=52rem){.tcp-main{grid-template-columns:minmax(0,1fr)}}[data-presentation] .tcp-diagram,:fullscreen .tcp-diagram{max-height:54vh}.cb{flex-direction:column;gap:1.1em;display:flex}.cb>.wkit-field{flex-direction:row;align-items:center;gap:.8em;max-width:26em}.cb>.wkit-field .wkit-select{flex:1}.cb-encoded-row{flex-wrap:wrap;align-items:center;gap:.5em 1em;display:flex}.cb-view,.cb-practice{flex-direction:column;gap:1em;display:flex}.cb-practice{align-items:flex-start}.cb-note{color:var(--w-muted);margin:0;font-size:.875em}.cb-error{color:var(--w-bad);margin:0;font-size:.9em}.cb-mono{font-family:var(--font-mono);letter-spacing:.04em;overflow-wrap:anywhere}.cb-question{margin:0;font-size:1.15em;font-weight:600}.cb-main{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:1.5em;display:grid}.cb-side{flex-direction:column;gap:.8em;min-width:0;display:flex}.cb-tree{width:100%;display:block;overflow:visible}.cb-edge line{stroke:var(--w-line);stroke-width:2.5px}.cb-edge.is-path line{stroke:var(--w-strong);stroke-width:4px}.cb-edge__bit{fill:var(--w-muted);font-family:var(--font-mono);font-size:13px;font-weight:700}.cb-node circle{fill:var(--w-bg);stroke:var(--w-text);stroke-width:2px}.cb-node .cb-node__hit{fill:#0000;stroke:none}.cb-node.has-char circle:not(.cb-node__hit){fill:var(--w-mark)}.cb-node text{fill:var(--w-text);font-family:var(--font-mono);pointer-events:none;font-size:15px;font-weight:700}.cb-node.is-conflict circle:not(.cb-node__hit){fill:var(--w-bad-bg);stroke:var(--w-bad);stroke-width:3px}.cb-node.is-selected circle:not(.cb-node__hit),.cb-node.is-current circle:not(.cb-node__hit){stroke:#e63946;stroke-width:4px}.cb-node.is-path circle:not(.cb-node__hit){stroke:var(--w-strong);stroke-width:3px}.cb-node.is-clickable{cursor:pointer}.cb-node.is-clickable:hover circle:not(.cb-node__hit),.cb-node.is-clickable:focus-visible circle:not(.cb-node__hit){stroke:#e63946;stroke-width:3px}.cb-node:focus-visible{outline:none}.cb-editor{border:1px solid var(--w-line);border-radius:12px;flex-direction:column;align-items:flex-start;gap:.6em;padding:.8em 1em;display:flex}.cb-editor__title{font-weight:700}.cb-editor__row{flex-wrap:wrap;align-items:flex-end;gap:.5em;display:flex}.cb-editor__row .wkit-field{width:5.5em}.cb-editor__row input{font-family:var(--font-mono);text-align:center;font-size:1.15em}.cb-conflicts{margin:.3em 0 0;padding-left:1.2em;font-weight:400}.cb-words{border-collapse:collapse}.cb-words th,.cb-words td{border-bottom:1px solid var(--w-line);text-align:left;padding:.2em 1.4em .2em 0}.cb-words__char{font-weight:700}.cb-coding{grid-template-columns:repeat(2,minmax(0,1fr));gap:1em 1.5em;display:grid}.cb-coding__encode,.cb-coding__decode{flex-direction:column;align-items:flex-start;gap:.5em;display:flex}.cb-coding .wkit-field{width:100%}.cb-coding input{font-family:var(--font-mono)}.cb-encoded{flex-wrap:wrap;gap:.2em .6em;margin:0;display:flex}.cb-encoded .is-unknown{color:var(--w-bad);text-decoration:line-through}.cb-bitsrow{flex-wrap:wrap;gap:.1em;margin:0;font-size:1.15em;display:flex}.cb-bitsrow span{color:var(--w-muted);padding:0 .12em}.cb-bitsrow .is-done{color:var(--w-text)}.cb-bitsrow .is-current{background:var(--w-strong);color:var(--w-on-strong);border-radius:3px}.cb-message{min-height:1.4em;margin:0;font-weight:600}.cb-result{margin:0}.cb-given{flex-wrap:wrap;align-items:center;gap:1em 2em;display:flex}.cb-given__bits{font-size:1.2em;font-weight:700}.cb-solution{flex-direction:column;gap:.8em;width:min(100%,34em);display:flex}@media (width<=52rem){.cb-main,.cb-coding{grid-template-columns:minmax(0,1fr)}}[data-presentation] .cb-tree,:fullscreen .cb-tree{max-height:42vh}[data-presentation] .cb-side>.cb-editor__title,:fullscreen .cb-side>.cb-editor__title{display:none}[data-presentation] .cb-view,[data-presentation] .cb-side,:fullscreen .cb-view,:fullscreen .cb-side{gap:.55em}.dj{flex-direction:column;gap:1.25em;display:flex}.dj-view,.dj-practice{flex-direction:column;gap:1em;display:flex}.dj-practice{align-items:flex-start}.dj-question{margin:0;font-size:1.15em;font-weight:600}.dj-note{color:var(--w-muted);margin:0;font-size:.875em}.dj-controls{flex-wrap:wrap;align-items:flex-end;gap:.8em 1.5em;display:flex}.dj-main{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:1.5em;display:grid}.dj-side{flex-direction:column;gap:.8em;min-width:0;display:flex}.dj-graph{width:100%;max-width:32em;display:block;overflow:visible}.dj-edge line{stroke:var(--w-line);stroke-width:3px}.dj-edge.is-tree line{stroke:var(--w-strong);stroke-width:4px}.dj-edge.is-path line{stroke:#e63946;stroke-width:6px}.dj-edge__box{fill:var(--w-bg);stroke:var(--w-line)}.dj-edge__weight{fill:var(--w-text);font-family:var(--font-mono);font-size:13px;font-weight:700}.dj-node circle{fill:var(--w-bg);stroke:var(--w-text);stroke-width:2px}.dj-node text{fill:var(--w-text);font-family:var(--font-mono);pointer-events:none;font-size:16px;font-weight:700}.dj-node .dj-node__cost{fill:var(--w-strong);paint-order:stroke;stroke:var(--w-bg);stroke-width:5px;stroke-linejoin:round;font-size:14px}.dj-node.is-done circle{fill:var(--w-mark)}.dj-node.is-current circle{stroke:#e63946;stroke-width:4px}.dj-node.is-clickable{cursor:pointer}.dj-node.is-clickable:hover circle,.dj-node.is-clickable:focus-visible circle{stroke:#e63946;stroke-width:3px}.dj-node:focus-visible{outline:none}.dj-table{border-collapse:collapse;font-family:var(--font-mono)}.dj-table th,.dj-table td{border:1px solid var(--w-line);text-align:center;min-width:3.4em;padding:.25em .6em}.dj-table th{font-family:var(--font-sans,inherit);font-weight:600}.dj-table__node{font-style:italic;font-weight:700}.dj-table td span+span{margin-left:.4em}.dj-table .is-old{color:var(--w-muted);text-decoration:line-through}.dj-table tr.is-current td{background:color-mix(in srgb, var(--w-mark) 40%, transparent)}.dj-lines{flex-direction:column;gap:.2em;min-height:4em;margin:0;padding-left:1.1em;font-size:.92em;display:flex}.dj-lines li:first-child{font-weight:600}.dj-path{color:#c1121f;margin:0;font-weight:700}.dj-answer-grid{flex-direction:column;gap:.5em;width:100%;display:flex}.dj-answer-row{flex-wrap:wrap;align-items:flex-end;gap:.4em 1em;display:flex}.dj-answer-row__node{min-width:1.5em;font-family:var(--font-mono);padding-bottom:.7em;font-size:1.2em;font-weight:700}.wkit[data-theme=dark] .dj-path{color:#ff8a93}@media (width<=52rem){.dj-main{grid-template-columns:minmax(0,1fr)}}[data-presentation] .dj-graph,:fullscreen .dj-graph{max-height:50vh}[data-presentation] .dj-table th,[data-presentation] .dj-table td,:fullscreen .dj-table th,:fullscreen .dj-table td{padding-block:.1em}.bo{flex-direction:column;gap:1.25em;display:flex}.bo-view,.bo-practice{flex-direction:column;gap:1em;display:flex}.bo-practice{align-items:flex-start}.bo-question{margin:0;font-size:1.15em;font-weight:600}.bo-note{color:var(--w-muted);margin:0;font-size:.875em}.bo-error{color:var(--w-bad);margin:0}.bo-controls{flex-wrap:wrap;align-items:flex-end;gap:.8em 1.5em;display:flex}.bo-controls>.wkit-field:has(input){flex:min(14em,100%)}.bo-controls input{font-family:var(--font-mono);letter-spacing:.05em}.bo-buttons{flex-wrap:wrap;gap:.4em;display:flex}.bo-blocks{flex-wrap:wrap;gap:1.2em 3em;display:flex}.bo-block,.bo-attack{flex-direction:column;gap:.5em;min-width:0;max-width:100%;display:flex}.bo-block__title{font-weight:600}.bo-scroll{max-width:100%;overflow-x:auto}.bo-rows{flex-direction:column;gap:.15em;max-width:100%;display:flex;overflow-x:auto}.bo-row{flex-wrap:wrap;align-items:center;gap:0 .6em;display:flex}.bo-row.is-result{border-top:2px solid var(--w-text);padding-top:.15em}.bo-row__label{min-width:3.4em;font-family:var(--font-mono);text-align:right;font-weight:700}.bo-row__bits{font-family:var(--font-mono);font-size:1.1em;display:flex}.bo-bit{text-align:center;width:.95em;display:inline-block}.bo-bit.is-group{margin-left:.55em}.bo-row.is-key .bo-bit{color:var(--w-muted)}.bo-row.is-result .bo-bit{color:var(--w-strong);font-weight:700}.bo-row__note{color:var(--w-muted);white-space:nowrap;font-size:.85em}.bo-legend{font-family:var(--font-mono);color:var(--w-muted);flex-wrap:wrap;gap:.2em 1.6em;margin:0;padding:0;font-size:.9em;list-style:none;display:flex}.bo-legend .is-key-point{color:var(--w-strong);font-weight:700}.bo-reveal{margin:0;font-size:1.1em}.bo-reveal strong{font-family:var(--font-mono);color:var(--w-strong)}@media (width<=30rem){.bo-row__bits{font-size:.95em}.bo-row{flex-wrap:wrap}}.bo-scroll .bo-row{flex-wrap:nowrap}.bo-scroll .bo-bit{width:.82em}.bo-scroll .bo-bit.is-group{margin-left:.45em}.rt{flex-direction:column;gap:1.25em;display:flex}.rt-view,.rt-practice{flex-direction:column;gap:1em;display:flex}.rt-practice{align-items:flex-start}.rt-question{margin:0;font-size:1.15em;font-weight:600}.rt-muted{color:var(--w-muted);margin:0;font-size:.875em}.rt-error{color:var(--w-bad);margin:0}.rt-controls{flex-wrap:wrap;align-items:flex-end;gap:.8em 1.5em;display:flex}.rt-controls>.wkit-field{flex:0 13em}.rt-controls input{font-family:var(--font-mono)}.rt-examples{flex-direction:column;gap:.4em;display:flex}.rt-examples__buttons{flex-wrap:wrap;gap:.3em;display:flex}.rt-examples__buttons .wkit-button{font-family:var(--font-mono);font-size:.85em}.rt-message{min-height:1.4em;margin:0;font-size:.95em}.rt-scroll{max-width:100%;overflow-x:auto}.rt-table{font-family:var(--font-mono);font-size:.95em}.rt-table caption{font-family:var(--font-sans,inherit);text-align:left;padding-bottom:.4em;font-weight:600}.rt-table .rt-table__extra{border-left:2px solid var(--w-rule)}.rt-table tr.is-match td{background:var(--w-good-bg)}.rt-table tr.is-chosen td{background:color-mix(in srgb, var(--w-mark) 55%, transparent);font-weight:700}.rt-calc{color:var(--w-muted)}.rt-calc strong{color:var(--w-text)}.rt-yes{color:var(--w-good);font-weight:700}.rt-no{color:var(--w-bad)}.rt-verdict{border:2px solid var(--w-strong);border-radius:12px;margin:0;padding:.8em 1.05em;font-weight:600}[data-presentation] .rt-message,:fullscreen .rt-message{display:none}[data-presentation] .rt-table th,[data-presentation] .rt-table td,:fullscreen .rt-table th,:fullscreen .rt-table td{padding-block:.2em}.pj{--pj-mac:var(--w-strong);--pj-mac-bg:color-mix(in srgb, var(--c-accent) 20%, var(--w-bg));--pj-ip:#2f6e8f;--pj-ip-bg:#e1eef5;--pj-edge:color-mix(in srgb, var(--w-muted) 45%, var(--w-bg));flex-direction:column;gap:1.25em;display:flex}.wkit[data-theme=dark] .pj{--pj-mac-bg:color-mix(in srgb, var(--c-accent) 22%, var(--w-bg));--pj-ip:#8cc6e3;--pj-ip-bg:#17323f}.pj-view,.pj-practice{flex-direction:column;gap:1em;display:flex}.pj-practice{align-items:flex-start}.pj-question{margin:0;font-size:1.15em;font-weight:600}.pj-note{color:var(--w-muted);margin:0;font-size:.875em}.pj-controls{flex-wrap:wrap;align-items:flex-end;gap:.8em;display:flex}.pj-controls .wkit-select{font-family:var(--font-mono)}.pj-swap{padding-inline:.7em;font-size:1.15em;line-height:1}.pj-controls__view{margin-left:auto}.pj-stage{grid-template-columns:21em minmax(0,1fr);grid-template-areas:"map map""side text";align-items:start;gap:1em 1.5em;display:grid}.pj-stage>.pj-map{grid-area:map}.pj-stage>.pj-side{grid-area:side}.pj-stage>.pj-text{grid-area:text;align-self:end}.pj-side,.pj-text,.pj-answer{flex-direction:column;gap:.8em;min-width:0;display:flex}.pj-answer{flex:100%}.pj-answer__frame{flex-wrap:wrap;align-items:flex-end;gap:.8em 1.2em;display:flex}.pj-answer__frame>.pj-frame{flex:0 24em}.pj-count{color:var(--w-muted);font-size:.875em;font-weight:600}@media (width<=52em){.pj-stage{grid-template-columns:minmax(0,1fr);grid-template-areas:"map""side""text"}}.pj-map{background:var(--w-surface);border-radius:10px;max-width:100%;overflow-x:auto}.pj-map svg{width:100%;min-width:44em;height:auto;display:block}.pj-edge{stroke:var(--pj-edge);stroke-width:2px}.pj-edge.is-done{stroke:color-mix(in srgb, var(--pj-mac) 50%, var(--pj-edge));stroke-dasharray:5 4}.pj-edge.is-active{stroke:var(--pj-mac);stroke-width:4px}.pj-host rect{fill:var(--w-bg);stroke:var(--w-muted);stroke-width:1.5px}.pj-host .pj-host__screen{fill:var(--pj-ip-bg);stroke:none}.pj-switch rect{fill:var(--pj-ip-bg);stroke:var(--pj-ip);stroke-width:1.5px}.pj-switch path,.pj-router path{fill:none;stroke-width:1.6px}.pj-switch path{stroke:var(--pj-ip)}.pj-router circle{fill:var(--w-bg);stroke:var(--w-text);stroke-width:1.8px}.pj-router path{stroke:var(--w-text)}.pj-cloud path{fill:color-mix(in srgb, var(--pj-edge) 35%, var(--w-bg));stroke:var(--pj-edge);stroke-width:1.5px}.pj-cloud text{fill:var(--w-muted);font-size:13px;font-style:italic}.pj-if text{font-family:var(--font-mono);font-size:13px}.pj-if__ip{fill:var(--pj-ip);font-weight:500}.pj-if__mac{fill:var(--w-muted)}.pj-if__box{fill:none;stroke:none}.pj-if.is-hot .pj-if__box{fill:var(--pj-mac-bg);stroke:var(--pj-mac);stroke-width:1.2px}.pj-if.is-hot .pj-if__mac{fill:var(--pj-mac);font-weight:600}.pj-if.is-end .pj-if__ip{font-weight:700}.pj-if.is-end .pj-if__box{fill:var(--pj-ip-bg)}.pj-if.is-open .pj-if__box{fill:var(--w-bg);stroke:var(--w-line);stroke-dasharray:3 2}.pj-if.is-picked .pj-if__box{fill:var(--pj-mac-bg);stroke:var(--pj-mac);stroke-width:1.5px}.pj-if.is-pickable{cursor:pointer}.pj-if.is-pickable .pj-if__box{stroke-dasharray:3 2;stroke:var(--w-line)}.pj-if.is-pickable:hover .pj-if__box,.pj-if.is-pickable:focus-visible .pj-if__box{stroke:var(--w-strong);stroke-width:2px;stroke-dasharray:none}.pj-if:focus-visible{outline:none}.pj-token__frame{fill:var(--pj-mac)}.pj-token__packet{fill:var(--pj-ip);stroke:var(--w-bg);stroke-width:1.5px}.pj-marker__ring{fill:var(--w-bg);stroke:var(--pj-mac);stroke-width:3px}.pj-marker__dot{fill:var(--pj-mac)}.pj-frame{border:2px solid var(--pj-mac);background:var(--w-bg);border-radius:10px;gap:.35em;padding:.5em;display:grid}.pj-frame.is-off{border-style:dashed;border-color:color-mix(in srgb, var(--pj-mac) 45%, transparent)}.pj-frame.is-off>.pj-row--mac{color:var(--w-muted);background:0 0}.pj-frame__name,.pj-packet__name{letter-spacing:.07em;text-transform:uppercase;font-size:.72em;font-weight:700}.pj-frame__name{color:var(--pj-mac);justify-content:space-between;gap:.5em;display:flex}.pj-frame__note{color:var(--w-muted);letter-spacing:.03em}.pj-packet{border:2px solid var(--pj-ip);border-radius:8px;gap:.35em;padding:.45em;display:grid}.pj-packet__name{color:var(--pj-ip)}.pj-row{border-radius:6px;grid-template-columns:7.4em minmax(0,1fr) auto;align-items:center;gap:.5em;min-height:2.1em;padding:.2em .5em;font-size:.875em;display:grid}.pj-row--mac{background:var(--pj-mac-bg)}.pj-row--ip{background:var(--pj-ip-bg)}.pj-row--data{text-align:center;color:var(--w-muted);background:var(--w-surface);display:block}.pj-row__label{color:var(--w-muted);font-size:.9em}.pj-row__value{font-family:var(--font-mono);overflow-wrap:anywhere}.pj-row__value s{color:var(--w-muted)}.pj-unknown{font-family:var(--font-sans,inherit);color:var(--w-muted);font-style:italic}.pj-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:4px;padding:.05em .4em;font-size:.75em;font-weight:700}.pj-badge--mac{background:var(--pj-mac);color:var(--w-on-strong)}.pj-badge--ip{color:var(--pj-ip);border:1px solid}@media (prefers-reduced-motion:no-preference){.pj-frame:not(.is-off) .pj-badge--mac{animation:.5s pj-pop}}@keyframes pj-pop{0%{transform:scale(1.4)}}.pj-lines{gap:.3em;min-height:4.8em;margin:0;padding:0;list-style:none;display:grid}.pj-lines li{padding-left:1.1em;position:relative}.pj-lines li:before{content:"›";color:var(--pj-mac);font-weight:700;position:absolute;left:0}.pj-all-title{margin:0}.pj-strip-scroll{max-width:100%;overflow-x:auto}.pj-strip{border-collapse:separate;border-spacing:0 4px;font-size:.8em}.pj-strip th,.pj-strip td{white-space:nowrap;padding:.35em .45em}.pj-strip thead th{color:var(--w-muted);text-align:center;font-weight:600}.pj-strip__no{color:var(--w-text)}.pj-strip tbody th{color:var(--w-muted);text-align:left;font-weight:400}.pj-strip tbody td{font-family:var(--font-mono);text-align:center}.pj-strip__row--mac td{background:var(--pj-mac-bg);color:var(--pj-mac);border-inline:2px solid var(--w-bg)}.pj-strip__row--mac td.is-alt{background:color-mix(in srgb, var(--pj-mac-bg) 55%, var(--w-bg))}.pj-strip__row--ip td{background:var(--pj-ip-bg);color:var(--pj-ip)}.pj-strip__row--ip:nth-child(3) td{border-top:6px solid var(--w-bg)}.pj-strip td.is-unknown{font-family:var(--font-sans,inherit);color:var(--w-muted);background:repeating-linear-gradient(135deg, var(--w-surface) 0 6px, var(--w-bg) 6px 12px);font-style:italic}.pj-slot{border:1.5px dashed var(--w-line);background:var(--w-bg);width:100%;min-width:0;color:var(--w-text);font:inherit;font-family:var(--font-mono);cursor:pointer;border-radius:5px;padding:.15em .4em}.pj-slot.is-active{border-style:solid;border-color:var(--w-strong);box-shadow:0 0 0 1px var(--w-strong)}.pj-answer .pj-row{grid-template-columns:7.4em minmax(0,1fr)}.pj-answer .pj-row>:last-child:empty{display:none}.pj-solution{flex-direction:column;gap:.6em;width:min(100%,22em);display:flex}[data-presentation] .pj-note,:fullscreen .pj-note{display:none}[data-presentation] .pj-stage,:fullscreen .pj-stage{grid-template-columns:minmax(0,1fr) 19em;grid-template-areas:"map side""text side"}[data-presentation] .pj-map svg,:fullscreen .pj-map svg{max-height:40vh}[data-presentation] .pj-view>.pj-map svg,:fullscreen .pj-view>.pj-map svg{max-height:29vh}[data-presentation] .pj-lines,:fullscreen .pj-lines{min-height:3.2em}[data-presentation] .pj-row,:fullscreen .pj-row{min-height:1.8em;padding-block:.1em}[data-presentation] .pj-answer,:fullscreen .pj-answer{grid-template-columns:minmax(0,1fr) 19em;align-items:center;display:grid}[data-presentation] .pj-answer__frame>.pj-frame,:fullscreen .pj-answer__frame>.pj-frame{flex-basis:100%}[data-presentation] .pj>.pj-practice:first-child,:fullscreen .pj>.pj-practice:first-child{flex-direction:row;justify-content:space-between;align-items:center}.pj-router,.pj-host{cursor:pointer}.pj-router:focus-visible,.pj-host:focus-visible{outline:none}.pj-router:hover circle,.pj-router:focus-visible circle,.pj-router.is-shown circle,.pj-host:hover rect:not(.pj-host__screen),.pj-host:focus-visible rect:not(.pj-host__screen),.pj-host.is-shown rect:not(.pj-host__screen){stroke:var(--w-strong);stroke-width:2.6px}.pj-token,.pj-marker{pointer-events:none}.pj-conn{pointer-events:none;--pj-conn:color-mix(in srgb, var(--w-text) 55%, transparent)}.pj-conn.is-strong{--pj-conn:var(--w-strong)}.pj-conn__line{stroke:var(--pj-conn);stroke-width:1.5px;stroke-dasharray:3 3}.pj-conn__stub{stroke:var(--pj-conn);stroke-width:6px;stroke-linecap:round;opacity:.8}.pj-map svg.is-focused .pj-if:not(.is-linked):not(.is-hot){opacity:.3}.pj-if{transition:opacity .15s}.pj-conn__port{fill:var(--w-bg);stroke:var(--pj-conn);stroke-width:2px}.pj-if.is-linked .pj-if__box{fill:var(--w-bg);stroke:var(--w-strong);stroke-width:1.5px;stroke-dasharray:none}.sk{--sk-band:color-mix(in srgb, var(--c-accent) 32%, #fff);--sk-band-odd:color-mix(in srgb, var(--c-accent) 14%, #fff);--sk-rod:color-mix(in srgb, var(--c-base) 55%, #fff);flex-direction:column;gap:1.25em;display:flex}.wkit[data-theme=dark] .sk{--sk-band:color-mix(in srgb, var(--c-accent) 48%, #191c20);--sk-band-odd:color-mix(in srgb, var(--c-accent) 28%, #191c20);--sk-rod:color-mix(in srgb, var(--c-base) 55%, #7a8088)}.sk-controls{flex-direction:column;gap:1em;display:flex}.sk-controls__row{flex-wrap:wrap;align-items:flex-end;gap:1em 1.5em;display:flex}.sk-controls__row>.wkit-field{flex:min(20em,100%);min-width:0}.sk-controls textarea{font-family:var(--font-mono);letter-spacing:.05em;white-space:pre-wrap}.sk-heading{margin:0;font-size:1em;font-weight:600}.sk-note{color:var(--w-muted);margin:0;font-size:.875em}.sk-rod{flex-direction:column;gap:.5em;min-width:0;margin:0;display:flex}.sk-rod__scroll{max-width:100%;padding-block:.25em;overflow-x:auto}.sk-rod svg{cursor:grab;touch-action:pan-x;-webkit-user-select:none;user-select:none;max-width:none;height:auto;margin-inline:auto;display:block}.sk-rod svg.is-dragging{cursor:grabbing}.sk-rod__face{fill:var(--sk-rod)}.sk-rod__band{fill:var(--sk-band);stroke:color-mix(in srgb, var(--w-text) 25%, transparent);stroke-width:.6px}.sk-rod__band.is-odd{fill:var(--sk-band-odd)}.sk-rod__band.is-marked{fill:var(--w-mark)}.sk-rod__letter{fill:var(--w-text);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:22px;font-weight:500}.sk-rod__letter.is-padding{fill:var(--w-muted);font-style:italic}.sk-rod__shade{fill:#000;pointer-events:none}.sk-rod__edge{stroke:color-mix(in srgb, var(--w-text) 45%, transparent);stroke-width:1px;pointer-events:none}.sk-rod__caption{justify-content:center;align-items:center;gap:.8em;font-size:.93em;display:flex}.sk-rod__caption span{text-align:center;min-width:11em}.sk-steps{flex-wrap:wrap;align-items:center;gap:.5em 1.2em;display:flex}.sk-parts{grid-template-columns:minmax(0,1fr);gap:1.25em 2.5em;display:grid}@media (width>=52rem){.sk-parts{grid-template-columns:minmax(0,1fr) auto}}.sk-part{flex-direction:column;gap:.6em;min-width:0;display:flex}.sk-strip{flex-wrap:wrap;gap:.6em .35em;display:flex}.sk-strip__group{--sk-tile:var(--sk-band);flex-direction:column;align-items:center;gap:.15em;display:flex}.sk-strip__group.is-odd{--sk-tile:var(--sk-band-odd)}.sk-strip__group.is-hidden{visibility:hidden}.sk-strip__tiles{display:flex}.sk-strip__number{color:var(--w-muted);font-size:.75em}.sk-tile{background:var(--sk-tile);border:1px solid color-mix(in srgb, var(--w-text) 25%, transparent);width:1.6em;height:1.9em;font-family:var(--font-mono);justify-content:center;align-items:center;margin-left:-1px;font-weight:500;display:inline-flex}.sk-tile.is-padding{color:var(--w-muted);font-style:italic}.sk-tile.is-marked{background:var(--w-mark)}.sk-table__scroll{max-width:100%;overflow-x:auto}.sk-table th,.sk-table td{text-align:center;padding:.3em .55em}.sk-table tbody th{color:var(--w-muted);text-align:left;font-size:.85em;font-weight:500}.sk-table__cell{font-family:var(--font-mono);min-width:1.6em;font-weight:500}.sk-table tr.is-front th{color:var(--w-text);font-weight:700}.sk-table .sk-table__cell.is-padding{color:var(--w-muted);font-style:italic}.sk-table .sk-table__cell.is-empty{background:repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in srgb, var(--w-line) 70%, transparent) 4px 5px)}.sk-table .sk-table__cell.is-marked{background:var(--w-mark)}.sk-line{flex-wrap:wrap;align-items:baseline;gap:.3em .8em;margin:0;display:flex}.sk-line__label{font-weight:600}.sk-line__text{font-family:var(--font-mono);letter-spacing:.08em;white-space:pre-wrap;overflow-wrap:anywhere;font-size:1.1em}.sk-task{flex-direction:column;align-items:flex-start;gap:1em;display:flex}.sk-question{margin:0;font-size:1.15em;font-weight:600}.sk-trial{flex-direction:column;align-self:stretch;gap:.8em;min-width:0;display:flex}[data-presentation] .sk,:fullscreen .sk{gap:.9em}.stage[data-astro-cid-opbjwpex]{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:clip}.stage__frame[data-astro-cid-opbjwpex]{border:0;width:100%;height:max(640px,78vh);display:block}.stage--fill[data-astro-cid-opbjwpex]{border:0;border-radius:0;flex-direction:column;flex:1;display:flex}.stage--fill[data-astro-cid-opbjwpex] .stage__frame[data-astro-cid-opbjwpex]{flex:1;height:auto}.stage[data-astro-cid-opbjwpex]:fullscreen{border-radius:0}.stage[data-astro-cid-opbjwpex]:fullscreen .stage__frame[data-astro-cid-opbjwpex]{height:100vh}.stage--fill[data-astro-cid-opbjwpex]>astro-island,.stage[data-astro-cid-opbjwpex]:fullscreen>astro-island{flex-direction:column;flex:1;display:flex}.stage--fill[data-astro-cid-opbjwpex] .wkit,.stage[data-astro-cid-opbjwpex]:fullscreen .wkit{flex:1}.stage[data-astro-cid-opbjwpex]:fullscreen{flex-direction:column;display:flex;overflow:auto}
