.article .lead{color:var(--muted);font-size:var(--text-20);line-height:var(--leading-32);margin:0 0 24px}.article h2{font-size:var(--text-24);font-weight:600;line-height:var(--leading-32);margin:40px 0 8px}.article h3{font-size:var(--text-20);font-weight:600;line-height:var(--leading-32);margin:24px 0 4px}.article p{margin:0 0 16px}.article ol,.article ul{margin:0 0 16px;padding-left:24px}.article li{margin-bottom:8px}.article a{color:var(--link)}.article a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.article dt{margin-top:16px;font-weight:700}.article dd{margin:4px 0 0}.article .formula{border-radius:var(--radius);background:var(--surface);font-size:var(--text-20);font-weight:700;line-height:var(--leading-32);text-align:center;margin:16px 0;padding:16px}.article .table-wrap{margin:16px 0 24px;overflow-x:auto}.article table{border-collapse:collapse;width:100%;font-size:var(--text-14);line-height:var(--leading-24);font-variant-numeric:tabular-nums}.article caption{color:var(--muted);text-align:left;padding-bottom:8px}.article th,.article td{border-bottom:1px solid var(--line);text-align:right;padding:8px 12px}.article th:first-child,.article td:first-child{text-align:left;padding-left:0}.article thead th{color:var(--muted);font-weight:600}.article .note{border-radius:var(--radius);background:var(--surface);padding:12px 16px}.article ol.moves{columns:2 180px;max-width:none;font-size:var(--text-14);line-height:var(--leading-24);font-variant-numeric:tabular-nums;column-gap:24px;margin:8px 0 24px;padding-left:32px}.article ol.moves li{break-inside:avoid;margin:0}.article pre.code{box-sizing:border-box;border-radius:var(--radius);background:var(--surface);max-width:100%;font-size:var(--text-14);line-height:var(--leading-24);white-space:pre-wrap;word-break:break-all;margin:8px 0;padding:16px;overflow-x:auto}.article .embed-preview{box-sizing:border-box;width:100%;max-width:var(--measure);border-radius:var(--radius);border:0;height:720px;margin:8px 0 24px;display:block}.article .code-tab-list{background:var(--surface);border-radius:999px;gap:4px;margin-top:8px;padding:4px;display:inline-flex}.article .code-tab-list button{background:0 0;border:0;min-height:44px}.article .code-tab-list button:is([aria-selected=true],[aria-pressed=true]){background:var(--paper);color:var(--ink);box-shadow:0 0 0 1px var(--outline), 0 1px 2px #12121314}.article .code-tabs [role=tabpanel]{margin-bottom:24px}.article pre.code.no-wrap{white-space:pre;word-break:normal}.article .recursion-player{border:1px solid var(--line);border-radius:var(--radius);margin:8px 0 24px;padding:16px}.article .recursion-panes{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:16px;display:grid}@media (width<=640px){.article .recursion-panes{grid-template-columns:minmax(0,1fr)}}.article ol.recursion-tree{font-size:var(--text-14);line-height:var(--leading-24);margin:0;padding:0;list-style:none}.article .recursion-tree li{border-radius:var(--radius-sm);margin:0}.article .recursion-tree li.move{font-weight:600}.article .recursion-tree li.is-later{color:var(--muted)}.article .recursion-tree li.is-current{background:var(--surface)}.article .recursion-board{width:100%;height:auto;display:block}.article .recursion-peg-label{fill:var(--muted);font-size:var(--text-12);font-weight:600}.article .recursion-status{min-height:48px;margin:16px 0 8px}.article .recursion-controls{flex-wrap:wrap;gap:8px;display:flex}.article .recursion-tree code{font-size:var(--text-14)}.article .embed-builder{grid-template-columns:auto 1fr;align-items:center;gap:12px 16px;margin:24px 0;display:grid}.article .embed-builder .code-tab-list{border-radius:var(--radius-lg);flex-wrap:wrap;justify-self:start;margin:0}.article .embed-builder .code-tab-list button{min-width:44px;padding:0 12px}.article .embed-label{font-weight:600}.article .embed-options{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px 16px;display:flex}.article .embed-check{cursor:pointer;align-items:center;gap:12px;min-height:44px;display:inline-flex}.article .embed-builder input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;margin:0}.article .embed-builder input:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.article .embed-copy{flex-wrap:wrap;gap:8px;display:flex}.article p.try{margin:16px 0 24px}.article a.try{border:1px solid var(--outline);background:var(--paper);min-height:44px;color:var(--ink);font-size:var(--text-16);border-radius:999px;align-items:center;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}.article a.try:hover{border-color:var(--ink)}.article a.try:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.article .worksheet-picker{margin:8px 0 24px}.article .worksheet-picker .code-tab-list{border-radius:var(--radius-lg);flex-wrap:wrap}.article .worksheet-picker p{margin:12px 0}.worksheets-print,.worksheet{display:none}@page{margin:16mm}@media print{html[data-print] :is(.skip-link,.site-header,.site-footer),html[data-print] .article>:not(.reading),html[data-print] .reading>:not(.worksheets-print){display:none}html[data-print] body{background:0 0}html[data-print] .worksheets-print,html[data-print=elementary] .worksheet[data-level=elementary],html[data-print=middle] .worksheet[data-level=middle],html[data-print=high] .worksheet[data-level=high],html[data-print=college] .worksheet[data-level=college],html[data-print=registro] .worksheet[data-level=registro]{display:block}.worksheet{color:var(--ink);font-size:var(--text-14);line-height:var(--leading-24)}.worksheet .sheet-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:16px;display:flex}.worksheet .sheet-name{flex-basis:100%}.worksheet p{margin:0}.worksheet .sheet-title{font-size:var(--text-20);font-weight:700;line-height:var(--leading-32)}.worksheet .sheet-rules,.worksheet .sheet-note{margin:12px 0}.worksheet .sheet-questions{margin:0;padding-left:24px}.worksheet .sheet-questions li{break-inside:avoid;margin-bottom:16px}.worksheet .sheet-line{margin-top:8px}.worksheet .blank{border-bottom:1px solid var(--ink);min-width:64px;display:inline-block}.worksheet .blank.wide{min-width:180px}.worksheet .blank.name{min-width:280px}.worksheet .blank.date{min-width:160px}.worksheet .work{border:1px solid var(--line);border-radius:var(--radius-sm);height:120px;margin-top:8px}.worksheet .work.small{height:64px}.worksheet .sheet-table{width:auto;font-size:var(--text-14);margin-top:8px}.worksheet .sheet-table :is(th,td){border:1px solid var(--ink);text-align:center;min-width:48px;height:32px;padding:0 8px}.worksheet .sheet-table th{color:var(--ink);text-align:left}.worksheet .sheet-code{font-size:var(--text-12);line-height:var(--leading-16);white-space:pre;margin:8px 0}.worksheet .answer-key{break-before:page}}.hanoi{--disk-h:30px;--base-h:28px;--min-levels:6}.hanoi-layout{flex-direction:column;gap:16px;display:flex}.hanoi-pick{order:1}.hanoi-board-col{order:2}.hanoi-side{flex-direction:column;order:3;gap:16px;display:flex}.hanoi-panel{order:1}.hanoi-actions{order:2}.hanoi-extra{order:3}.hanoi-extra .calendar-head{margin-top:0}.hanoi-assist{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:8px 0 16px;display:grid}.hanoi-assist button{font-size:var(--text-14);white-space:nowrap;padding:0 4px}@media (width>=900px){.hanoi-assist-foot>button{flex:100%}.hanoi{--disk-h:34px;--min-levels:9}.hanoi-layout{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px 48px;display:grid}.hanoi-pick{grid-area:1/1}.hanoi-board-col{grid-area:2/1}.hanoi-side{grid-area:2/2;align-self:stretch;min-height:392px}.hanoi-actions{margin-top:auto}.hanoi-has-extra .hanoi-board-col,.hanoi-has-extra .hanoi-side{grid-row:1}.hanoi-extra{order:0}}.hanoi-tray{border-radius:var(--radius-lg);background:var(--field);padding:16px}.hanoi-board{height:calc(max(var(--levels), var(--min-levels)) * var(--disk-h) + var(--base-h) + 36px);border-radius:var(--radius);user-select:none;--disk-h:clamp(30px, calc((100svh - var(--header-h) - 2 * var(--page-top) - 62px - 28px - 64px) / max(var(--levels), var(--min-levels))), 44px);position:relative}.hanoi-base{background:var(--base);pointer-events:none;border-radius:999px;height:12px;position:absolute;bottom:10px;left:10px;right:10px}.hanoi-peg{top:0;bottom:0;left:calc(100% / var(--pegs) * var(--peg));width:calc(100% / var(--pegs));border-radius:var(--radius-sm);touch-action:none;-webkit-tap-highlight-color:transparent;cursor:pointer;background:0 0;border:0;min-height:0;padding:0;position:absolute}.hanoi-peg:before{content:"";top:14px;left:50%;bottom:calc(var(--base-h) - 12px);background:var(--peg-fill);border-radius:999px;width:10px;position:absolute;transform:translate(-50%)}.hanoi-peg[data-goal=red]:before{background:color-mix(in srgb, var(--disk-6) 55%, var(--peg-fill))}.hanoi-peg[data-goal=blue]:before{background:color-mix(in srgb, var(--disk-2) 55%, var(--peg-fill))}.hanoi-peg:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}.hanoi-peg:disabled{opacity:1;cursor:default}.hanoi-disk{left:calc(100% / var(--pegs) * (var(--peg) + .5));bottom:calc(var(--level) * var(--disk-h) + var(--base-h) - 4.5px);width:calc(100% / var(--pegs) * var(--w));height:calc(var(--disk-h) - 3px);background:var(--fill);box-shadow:inset 0 -3px 0 #0000001f, 0 0 0 1.5px var(--disk-edge);color:var(--on-disk);font-size:var(--text-14);font-weight:700;line-height:var(--leading-16);pointer-events:none;border-radius:999px;justify-content:center;align-items:center;transition:left .18s,bottom .18s,transform .12s;display:flex;position:absolute;transform:translate(-50%)}.hanoi-disk.is-lifted{transform:translate(-50%,-12px)}.hanoi-disk.is-refused{animation:.3s ease-out refuse}@keyframes refuse{20%,60%{translate:-6px}40%,80%{translate:6px}}.hanoi-disk.is-dragging{z-index:2;transition:none}.hanoi-legal{border:2px dashed var(--disk-edge);pointer-events:none;border-radius:999px;width:34px;height:12px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.hanoi-tray.is-won .hanoi-disk{animation:80ms ease-out both settle;animation-delay:calc(var(--i,0) * 25ms)}@keyframes settle{0%{transform:translate(-50%,-6px)}to{transform:translate(-50%)}}.hanoi-stats{border-radius:var(--radius);background:var(--surface);margin:0}.hanoi-stats dt{color:var(--muted);font-size:var(--text-14);line-height:var(--leading-24);margin:0}.hanoi-stats dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.hanoi-stat-main{grid-template-rows:auto auto;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;align-items:end;column-gap:16px;padding:12px 24px 16px;display:grid}.hanoi-stat-main dd{font-family:var(--font-display);font-size:var(--text-32);line-height:var(--leading-40)}.hanoi-stat-main dd.hanoi-step{font-size:var(--text-32);line-height:var(--leading-40)}.hanoi-stats{flex-wrap:wrap;display:flex}.hanoi-stat-main{box-sizing:border-box;flex:1 0 100%}.hanoi-stat-main:not(:last-child){border-bottom:1px solid var(--line)}.hanoi-stat-pair{align-items:baseline;gap:8px;padding:12px 0 12px 24px;display:flex}.hanoi-stat-pair:last-child{padding-right:24px}.hanoi-stat-pair dd{font-size:var(--text-16);line-height:var(--leading-24)}.hanoi-seg{background:var(--surface);border-radius:999px;flex-wrap:wrap;padding:2px;display:inline-flex}.hanoi-seg :is(button,a){background:0 0;border:0;border-radius:999px;min-width:34px;min-height:44px;padding:0 4px}.hanoi-seg a{box-sizing:border-box;color:var(--ink);font-size:var(--text-16);justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.hanoi-seg a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.hanoi-seg :is(button,a)[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 0 0 1px var(--outline), 0 1px 2px #12121314}.hanoi-pick{--pick-h:36px;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hanoi-pick :is(button,a){min-height:var(--pick-h);font-size:var(--text-14)}.hanoi-pick .icon-button{width:var(--pick-h)}.hanoi-seg-pegs{order:1}.hanoi-seg-pegs :is(button,a){padding:0 12px}.hanoi-pick .sound-toggle{order:4}.hanoi-seg-disks{order:3}.hanoi-seg-mode{order:0}.hanoi-seg-mode :is(button,a){min-width:0;padding:0 6px}.hanoi-pick:has(.hanoi-seg-mode){gap:6px}.hanoi-pick:has(.hanoi-seg-mode) .hanoi-seg-disks :is(button,a){min-width:30px}.hanoi-shuffle{order:4}.icon-button{justify-content:center;align-items:center;width:44px;padding:0;display:inline-flex}.hanoi-actions{flex-wrap:wrap;gap:8px;display:flex}.hanoi-actions:not(.hanoi-assist-foot)>button{flex:1 1 0}.hanoi-speed{color:var(--muted);font-size:var(--text-14);flex:100%;align-items:center;gap:8px;font-weight:600;display:flex}.hanoi-speed .hanoi-seg{background:0 0;padding:2px}.hanoi-speed .hanoi-seg button{min-height:32px;color:var(--muted);font-size:var(--text-14);padding:0 12px;font-weight:500}.hanoi-speed .hanoi-seg button[aria-pressed=true]{background:var(--surface);color:var(--ink)}@media (prefers-reduced-motion:reduce){.hanoi-disk,.hanoi-tray.is-won .hanoi-disk{transition:none;animation:none}}@media (width<=480px){.hanoi{--disk-h:26px}.hanoi-tray{padding:8px}.hanoi-seg :is(button,a){min-width:34px;padding:0 4px}.hanoi-seg-disks{order:3}.hanoi-seg-pegs :is(button,a){padding:0 12px}}@media (width>=900px){.hanoi-seg-disks{order:2}.hanoi-shuffle{order:3}.hanoi-pick .sound-toggle{order:4}}@media (width<=899px){.hanoi-board{--disk-h:30px}}@media (width<=480px){.hanoi-board{--disk-h:26px}}@media (width<=599px){.hanoi-pick{--pick-h:40px}.hanoi-pick .hanoi-shuffle{width:var(--pick-h);order:2;padding:0}.hanoi-shuffle-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hanoi:not(.hanoi-compact) .hanoi-board{--disk-h:clamp(20px, calc((100svh - var(--header-h) - var(--page-top) - 304px - var(--base-h) - 36px) / max(var(--levels), var(--min-levels))), 26px)}.hanoi-speed .hanoi-seg button{min-height:44px}}.hanoi-actions button,.hanoi-shuffle{justify-content:center;align-items:center;gap:8px;display:inline-flex}.hanoi .icon{flex:none}.hanoi{touch-action:manipulation}.hanoi-confirm{border-radius:var(--radius);background:var(--surface);padding:16px 24px 24px}.hanoi-confirm h2{font-size:var(--text-24);line-height:var(--leading-32);margin:0 0 4px}.hanoi-confirm p{color:var(--muted);font-size:var(--text-14);line-height:var(--leading-24);margin:0}.hanoi-confirm-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.reading>.practice{max-width:none;margin:8px 0 24px}.hanoi-compact{--min-levels:4}@media (width>=900px){.hanoi-compact{--min-levels:5}.hanoi-compact .hanoi-side{min-height:0}}.hanoi-pick:empty{display:none}.hanoi-class{--min-levels:5}.hanoi-class .hanoi-board{--disk-h:clamp(30px, calc((100svh - 200px) / max(var(--levels), var(--min-levels))), 96px)}.hanoi-class .hanoi-stat-main dd,.hanoi-class .hanoi-stat-main dd.hanoi-step{font-size:var(--text-48);line-height:var(--leading-56)}.hanoi-class .hanoi-stats dt,.hanoi-class .hanoi-stat-pair dd{font-size:var(--text-20);line-height:var(--leading-32)}.hanoi-class button{min-height:56px;font-size:var(--text-20)}
