@keyframes dsa-btn-sort{0%{background:var(--y)}25%{background:var(--g)}50%{background:var(--b)}75%{background:var(--p)}}@keyframes dsa-underline-sort{0%{text-decoration-color:var(--y)}25%{text-decoration-color:var(--g)}50%{text-decoration-color:var(--b)}75%{text-decoration-color:var(--p)}}.dsa-board{max-width:56rem;margin:0 auto}.dsa-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.dsa-tile{border:1.5px solid var(--ink);background:var(--fill,var(--tile));min-height:6.4rem;color:var(--ink);font-family:var(--sans);letter-spacing:.03em;box-shadow:3px 3px 0 var(--ink);cursor:pointer;touch-action:manipulation;user-select:none;border-radius:.3rem;padding:.4rem;font-size:clamp(1.1rem,2.8vw,1.6rem);font-weight:700;transition:transform 70ms,box-shadow 70ms,background-color .12s}.dsa-tile:active{box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}.dsa-wells{justify-content:center;gap:.4rem;margin-top:1.6rem;display:flex}.dsa-well{min-width:5.6rem;min-height:6.4rem;color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:1.5px solid #0000;border-radius:.3rem;justify-items:center;gap:.3rem;padding:.6rem .2rem;display:grid}.dsa-well[aria-checked=true]{border-color:var(--ink);background:var(--tile)}.dsa-dot{border:1.5px solid var(--ink);background:var(--fill,transparent);border-radius:50%;width:3rem;height:3rem}.is-erase .dsa-dot{background:repeating-linear-gradient(45deg,#0000 0 4px,#24201d40 4px 6px)}.dsa-well-count{font-size:1.3rem;font-style:italic}.dsa-board-actions{justify-content:center;align-items:center;gap:2.4rem;margin-top:1.6rem;display:flex}@media (hover:hover){.dsa-link:hover{text-decoration-thickness:3px;animation:1.6s step-end infinite dsa-underline-sort}}.dsa-link:focus-visible{text-decoration-thickness:3px;animation:1.6s step-end infinite dsa-underline-sort}@media (prefers-reduced-motion:reduce){.dsa-link:hover,.dsa-link:focus-visible{text-decoration-color:var(--y);animation:none}}.dsa-link{min-height:4.4rem;color:var(--ink);font-family:var(--serif);text-underline-offset:.3rem;cursor:pointer;background:0 0;border:none;font-size:1.7rem;font-style:italic;text-decoration:underline}.dsa-btn{transition:transform .12s,box-shadow .12s}@media (hover:hover){.dsa-btn:hover{box-shadow:4.5px 4.5px 0 var(--ink);animation:1.6s step-end infinite dsa-btn-sort;transform:translate(-1.5px,-1.5px)rotate(-1.5deg);color:var(--ink)!important}}@media (hover:hover) and (prefers-reduced-motion:reduce){.dsa-btn:hover{background:var(--y);animation:none;transform:none}}.dsa-btn:focus-visible{box-shadow:4.5px 4.5px 0 var(--ink);animation:1.6s step-end infinite dsa-btn-sort;transform:translate(-1.5px,-1.5px)rotate(-1.5deg);color:var(--ink)!important}@media (prefers-reduced-motion:reduce){.dsa-btn:focus-visible{background:var(--y);animation:none;transform:none}}.dsa-btn{background:var(--ink);min-height:4.8rem;color:var(--paper);font-family:var(--sans);letter-spacing:.04em;cursor:pointer;border:none;padding:0 2.4rem;font-size:1.5rem;font-weight:700;box-shadow:3px 3px #24201d59}.dsa-bar{transition:transform .12s,box-shadow .12s}@media (hover:hover){.dsa-bar:hover{box-shadow:4.5px 4.5px 0 var(--ink);animation:1.6s step-end infinite dsa-btn-sort;transform:translate(-1.5px,-1.5px)rotate(-.6deg);color:var(--ink)!important}}@media (hover:hover) and (prefers-reduced-motion:reduce){.dsa-bar:hover{background:var(--y);animation:none;transform:none}}.dsa-bar:focus-visible{box-shadow:4.5px 4.5px 0 var(--ink);animation:1.6s step-end infinite dsa-btn-sort;transform:translate(-1.5px,-1.5px)rotate(-.6deg);color:var(--ink)!important}@media (prefers-reduced-motion:reduce){.dsa-bar:focus-visible{background:var(--y);animation:none;transform:none}}.dsa-solved{gap:.8rem;display:grid}.dsa-bar,.dsa-group{border:1.5px solid var(--ink);background:var(--fill);box-shadow:3px 3px 0 var(--ink);color:var(--ink);text-align:center;border-radius:.3rem;place-items:center;gap:.2rem;padding:1.4rem 1.2rem;text-decoration:none;display:grid}.dsa-bar-cat,.dsa-group-cat{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:1.6rem;font-weight:700}.dsa-bar-words,.dsa-group-words{font-family:var(--sans);letter-spacing:.06em;margin:0;font-size:1.4rem}@media (prefers-reduced-motion:reduce){.dsa-tile{transition:none}}body.dsa-body{--ink:#24201d;--paper:#f4ecdc;--tile:#fbf7ef;--quiet:#24201dad;--rule:#24201d40;--y:#f5d565;--g:#9dbd62;--b:#a9bde8;--p:#b98bc6;--serif:var(--font-source-serif), Georgia, serif;--sans:var(--font-poppins), ui-sans-serif, system-ui, sans-serif;--text-color:var(--ink);--background-color:var(--paper);--link-color:var(--ink);color-scheme:light;background:repeating-linear-gradient(0deg, #3c280a06 0 1px, transparent 1px 3px), var(--paper)}body.dsa-body .theme-li{display:none}body.dsa-body .logo-link.logo-link{transition:transform .12s}body.dsa-body .logo-link.logo-link svg{transition:filter .12s;overflow:visible}body.dsa-body .logo-link.logo-link .outer-box{transition:rx .18s,ry .18s}body.dsa-body .logo-link.logo-link:hover,body.dsa-body .logo-link.logo-link:focus-visible{transform:translate(-2px,-2px)rotate(-3deg)}body.dsa-body .logo-link.logo-link:hover svg,body.dsa-body .logo-link.logo-link:focus-visible svg{filter:drop-shadow(4px 4px 0 var(--ink))}body.dsa-body .logo-link.logo-link:hover .outer-box,body.dsa-body .logo-link.logo-link:focus-visible .outer-box{rx:10px;ry:10px;stroke-width:4px;animation:1.6s step-end infinite dsa-logo-sort}body.dsa-body .logo-link.logo-link:hover path.letter.letter,body.dsa-body .logo-link.logo-link:focus-visible path.letter.letter{fill:var(--ink);stroke:var(--ink)}body.dsa-body .logo-link.logo-link:active{transform:translate(1px,1px)}body.dsa-body .logo-link.logo-link:active svg{filter:none}@media (prefers-reduced-motion:reduce){body.dsa-body .logo-link.logo-link{transition:none}body.dsa-body .logo-link.logo-link:hover,body.dsa-body .logo-link.logo-link:focus-visible{transform:none}body.dsa-body .logo-link.logo-link:hover .outer-box,body.dsa-body .logo-link.logo-link:focus-visible .outer-box{fill:var(--y);animation:none}}body.dsa-body .nav-links a:after{border:1.5px solid var(--ink);background:var(--y);height:.6rem;box-shadow:none;border-radius:.2rem}body.dsa-body .nav-links a.active:after{box-shadow:2px 2px 0 var(--ink);animation:4.8s step-end infinite dsa-bar-sort}body.dsa-body .nav-links a:hover{color:var(--ink)}@media (hover:hover){body.dsa-body .nav-links a:hover:after{animation:1.6s step-end infinite dsa-bar-sort}}body.dsa-body .nav-links a:focus-visible:after{animation:1.6s step-end infinite dsa-bar-sort}@media (prefers-reduced-motion:reduce){body.dsa-body .nav-links a:after{animation:none!important}}body.dsa-body .is-yellow{--fill:var(--y)}body.dsa-body .is-green{--fill:var(--g)}body.dsa-body .is-blue{--fill:var(--b)}body.dsa-body .is-purple{--fill:var(--p)}@keyframes dsa-bar-sort{0%{background:var(--y)}25%{background:var(--g)}50%{background:var(--b)}75%{background:var(--p)}}.dsa{max-width:72rem;font-family:var(--serif);color:var(--ink);margin:0 auto;padding:1.6rem 1.6rem 8rem}.dsa h1,.dsa h2,.dsa h3{font-family:var(--serif)}.dsa>p,.dsa section>p{font-size:1.9rem;line-height:1.6}.dsa section>h3{margin:4rem 0 1rem;font-size:2.2rem;font-weight:600}.dsa section>h3 .dsa-word{vertical-align:.25em;font-size:.6em}.dsa :not(pre)>code{white-space:normal;overflow-wrap:anywhere;background:#24201d12;border:none;padding:0 .3em;font-size:.88em}.dsa a{color:inherit}.dsa-head{text-align:center;border-bottom:5px double var(--ink);padding-bottom:2.4rem}.dsa-edition{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;justify-content:space-between;gap:1.2rem;margin:0;padding:.8rem 0;font-size:1.1rem;display:flex}.dsa-title{letter-spacing:-.03em;text-wrap:balance;margin:2.4rem 0 1.2rem;font-size:clamp(4rem,9vw,7.2rem);font-weight:700;line-height:1}.dsa-deck{max-width:52rem;color:var(--quiet);margin:0 auto;font-size:clamp(1.8rem,2.6vw,2.1rem);font-style:italic;line-height:1.5}.dsa-cta{margin:2.4rem 0 0}.dsa-cta a{transition:transform .12s,box-shadow .12s}@media (hover:hover){.dsa-cta a:hover{box-shadow:4.5px 4.5px 0 var(--ink);animation:1.6s step-end infinite dsa-btn-sort;transform:translate(-1.5px,-1.5px)rotate(-1deg);color:var(--ink)!important}}@media (hover:hover) and (prefers-reduced-motion:reduce){.dsa-cta a:hover{background:var(--y);animation:none;transform:none}}.dsa-cta a:focus-visible{box-shadow:4.5px 4.5px 0 var(--ink);animation:1.6s step-end infinite dsa-btn-sort;transform:translate(-1.5px,-1.5px)rotate(-1deg);color:var(--ink)!important}@media (prefers-reduced-motion:reduce){.dsa-cta a:focus-visible{background:var(--y);animation:none;transform:none}}.dsa-cta a{border:1.5px solid var(--ink);background:var(--y);min-height:4.8rem;box-shadow:3px 3px 0 var(--ink);color:var(--ink);font-family:var(--sans);letter-spacing:.04em;align-items:center;padding:0 2rem;font-size:1.5rem;font-weight:700;text-decoration:none;display:inline-flex}.dsa-cta a:active{box-shadow:none;transform:translate(3px,3px)}.dsa-cta-end{text-align:center;margin-top:6.4rem}.dsa-toc{text-align:center;margin:4rem 0 2.4rem}.dsa-toc>p{max-width:48rem;color:var(--quiet);margin:0 auto 1.6rem;font-size:1.7rem;font-style:italic}.dsa-group{margin:6.4rem 0 2.4rem;scroll-margin-top:2.4rem}.dsa-word{color:var(--ink);cursor:pointer;touch-action:manipulation;border:1px solid var(--ink);background:var(--fill,var(--tile));box-shadow:1.5px 1.5px 0 var(--ink);font-family:var(--sans);letter-spacing:.06em;vertical-align:.12em;white-space:nowrap;border-radius:.2rem;margin:0;padding:0 .4em;font-size:.72em;font-weight:700;line-height:1.5;display:inline-block}.dsa-figure{border:1px solid var(--ink);box-shadow:0 0 0 4px var(--paper), 0 0 0 5px var(--ink);text-align:left;background:#ffffff4d;margin:3.2rem 0;padding:2.4rem 2rem 2rem}@media (width<=600px){.dsa-figure{padding:2rem 1.4rem 1.6rem}}.dsa-figure figcaption{color:var(--quiet);margin-top:1.4rem;font-size:1.5rem;font-style:italic;line-height:1.5}.dsa-fig-n{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);font-size:1.1rem;font-style:normal;font-weight:700}.dsa-chip{color:var(--ink);cursor:pointer;touch-action:manipulation;border:1.5px solid var(--ink);background:var(--fill,var(--tile));min-width:6.4rem;box-shadow:2px 2px 0 var(--ink);font-family:var(--sans);letter-spacing:.05em;white-space:nowrap;border-radius:.3rem;place-items:center;margin:0;padding:.6rem 1rem;font-size:1.3rem;font-weight:700;display:inline-grid}.dsa-chip.is-total{background:var(--ink);color:var(--paper)}.dsa-toggle{transition:background-color .12s,color .12s}.dsa-toggle.is-popping{animation:.18s ease-out dsa-pop}.dsa-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}@keyframes dsa-pop{50%{transform:scale(1.12)rotate(-2deg)}}@media (prefers-reduced-motion:reduce){.dsa-toggle{transition:none}.dsa-toggle.is-popping{animation:none}}.dsa-paths{gap:2.4rem;display:grid}.dsa-path-name{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;margin:0 0 1rem;font-size:1.2rem;font-weight:700}.dsa-chain{flex-wrap:wrap;gap:1.2rem 0;margin:0;padding:0;list-style:none;display:flex}.dsa-chain li{justify-items:center;gap:.6rem;padding-right:2.6rem;display:grid;position:relative}.dsa-chain li:not(:last-child):after{content:"→";font-family:var(--sans);font-size:1.6rem;position:absolute;top:.6rem;right:.6rem}.dsa-chain small{text-align:center;max-width:8.4rem;color:var(--quiet);font-size:1.25rem;font-style:italic;line-height:1.3}@media (width<=600px){.dsa-chain{flex-direction:column;gap:0}.dsa-chain li{grid-template-columns:9rem minmax(0,1fr);place-items:center start;gap:1.2rem;padding:0 0 2.6rem}.dsa-chain li:not(:last-child):after{content:"↓";inset:auto auto .4rem 3.6rem}.dsa-chain small{text-align:left;max-width:none}}.dsa-path-aside{color:var(--quiet);margin:1.2rem 0 0;font-size:1.5rem;font-style:italic}.dsa-wire{--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}.dsa-wire .ds-wire{margin-top:0}.dsa-cost{gap:1.6rem;display:grid}.dsa-cost-row{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.dsa-cost-row small{color:var(--quiet);flex-basis:100%;font-size:1.3rem;font-style:italic}.dsa-code{margin:2.4rem 0}.dsa-code .code-block{margin:0}.dsa-code pre{margin:0;padding:1.6rem;font-size:1.35rem;line-height:1.55;overflow-x:auto;border-radius:0 0 .3rem .3rem!important}.dsa-code-file{border:1.5px solid var(--ink);background:var(--b);overflow-wrap:anywhere;border-bottom:none;border-radius:.3rem .3rem 0 0;margin:0;padding:.6rem 1.2rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:1.25rem;font-weight:700}.dsa-files{gap:0;margin:0;padding:0;list-style:none;display:grid}.dsa-files li{border-bottom:1px solid var(--rule);gap:.3rem;padding:1rem 0;display:grid}.dsa-files code{background:var(--tile);border:1px solid var(--ink);white-space:normal;overflow-wrap:normal;justify-self:start;padding:.2rem .6rem;font-size:1.25rem}.dsa-files span{font-size:1.55rem;line-height:1.45}.dsa-files .is-ai code{background:var(--b);box-shadow:2px 2px 0 var(--ink);font-weight:700}.dsa-broke{margin:0;padding-left:2.4rem;font-size:1.8rem;line-height:1.55}.dsa-broke li+li{margin-top:1rem}.dsa-plain-h{border-top:1px solid var(--ink);margin:6.4rem 0 1.6rem;padding-top:1.6rem;font-size:2.6rem;font-weight:600}.dsa-fine{border-top:5px double var(--ink);color:var(--quiet);margin-top:6.4rem;padding-top:1.6rem;font-size:1.5rem;font-style:italic}@keyframes dsa-logo-sort{0%{fill:var(--y)}25%{fill:var(--g)}50%{fill:var(--b)}75%{fill:var(--p)}}
