.tp{padding-left:var(--gutter-l);padding-right:var(--gutter-r);position:relative}.tp-stage{min-width:0;height:calc(100dvh - var(--topbar-h) - var(--sp-5) - var(--sp-4));min-height:560px;margin-bottom:calc(var(--sp-4) - var(--sp-7));position:relative}.tp-backdrop{filter:blur(1.6px);position:absolute;inset:0}.tp-backdrop .map-zoom,.tp-backdrop .map-tip{display:none}.tp-scrim{z-index:8;background:var(--scrim-map);border-radius:var(--r-2);animation:.45s both tpFade;position:absolute;inset:0}.tp-scrim.is-leave{animation:.3s both tpFadeOut}.tp-page{z-index:10;background:var(--paper);background-image:linear-gradient(var(--grid-soft) 1px, transparent 1px), linear-gradient(90deg, var(--grid-soft) 1px, transparent 1px);border:1px solid var(--rule-strong);border-radius:var(--r-2);max-width:1320px;box-shadow:var(--shadow-page);transform-origin:50% 45%;background-size:5mm 5mm;grid-template-rows:auto minmax(0,1fr);margin:0 auto;display:grid;position:absolute;inset:18px 24px}.tp-page>.tape{z-index:3;top:-12px}.tp-page>.tape--l{left:8%}.tp-page>.tape--r{right:8%}.tp-page.is-enter{animation:.62s cubic-bezier(.2,.8,.2,1) both tpPageIn}.tp-page.is-enter>.tape{animation:.32s cubic-bezier(.2,.8,.3,1) .48s both tapeIn}.tp-page.is-flip .tp-body{animation:.42s cubic-bezier(.2,.8,.2,1) tpFlip}.tp-page.is-leave{animation:.3s cubic-bezier(.55,0,.8,.2) both tpPageOut}.tp-head{border-bottom:1.5px solid var(--ink);grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:10px 22px;padding:20px 22px 0 30px;display:grid;position:relative}.tp-id{gap:5px;min-width:0;padding-bottom:12px;display:grid}.tp-id .crumbs{gap:2px 8px}.tp-title{font:400 var(--fs-h1)/1.08 var(--f-display);color:var(--ink);text-wrap:balance}.tp-title:focus{outline:none}.tp-title:focus-visible{outline:2.5px solid var(--focus);outline-offset:3px}.tp-trail a{color:inherit;border-radius:var(--r-2);text-decoration:none}.tp-trail a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.tp-trail__tag{font:500 var(--fs-meta)/1 var(--f-mono)}.tp-head .tabs{border-bottom:0;align-self:end}.tp-close{border:1.5px solid var(--ink);border-radius:var(--r-4);background:var(--paper-hi);min-height:36px;font:700 .84375rem/1 var(--f-body);color:var(--ink);white-space:nowrap;align-self:start;align-items:center;gap:7px;padding:8px 12px;display:inline-flex}.tp-close:hover{background:var(--pen-soft)}.tp-close svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.tp-close__back{display:none}.tp-body{min-height:0;position:relative;overflow:hidden}.tp-learn{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);height:100%;display:grid}.tp-fig-col{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;gap:18px;min-width:0;min-height:0;padding:26px 26px 32px 30px;display:flex;overflow:auto}.tp-text-col{overscroll-behavior:contain;scrollbar-width:thin;border-left:1px solid var(--rule-strong);min-width:0;min-height:0;box-shadow:inset 4px 0 0 var(--paper), inset 5px 0 0 var(--rule);padding:22px 30px 40px 28px;position:relative;overflow:auto}.tp-text-col>[role=tabpanel]:focus{outline:none}.tp-worked--essay{display:none}.tp-plate .figure{margin:0}.tp-canvas-box{min-width:0;position:relative}.tp-canvas-box .fig-canvas{height:var(--fig-h,300px)}.tp-ph{text-align:center;border:1.5px dashed var(--rule-strong);border-radius:var(--r-2);background:repeating-linear-gradient(135deg, var(--grid-soft) 0 1px, transparent 1px 9px);justify-items:center;gap:8px;min-height:230px;padding:22px 18px;display:grid}.tp-ph .placeholder-stamp{justify-self:center}.tp-ph__why{font-size:var(--fs-sm);color:var(--ink);max-width:46ch;line-height:1.45}.tp-ph__does{font-size:var(--fs-sm);color:var(--ink-2);max-width:52ch;line-height:1.45}.tp-prose{gap:8px;max-width:62ch;padding:8px 2px;display:grid}.tp-controls{border-top:1.5px solid var(--ink);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px 24px;padding-top:14px;display:grid}.tp-ctl{gap:2px;min-width:0;display:grid}.tp-ctl__top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tp-ctl__top label{font-size:var(--fs-sm);color:var(--ink);font-weight:700}.tp-ctl__top label i,.tp-ctl__sym{font-family:var(--f-body);color:var(--ink-2);font-style:italic}.tp-ctl__top output{font:600 var(--fs-sm)/1 var(--f-mono);font-variant-numeric:tabular-nums;color:var(--pen);white-space:nowrap}.tp-ctl__rng{font:500 var(--fs-meta)/1.2 var(--f-mono);color:var(--ink-3);justify-content:space-between;gap:8px;display:flex}.tp-ctl .seg-field>legend{font-size:var(--fs-sm)}.tp-ctl__bound{text-align:center;min-width:0;font:italic 400 var(--fs-meta)/1.2 var(--f-body);color:var(--ink-2);flex:auto}.tp-ctl--array{border:0;grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px 24px;margin:0;padding:0}.tp-ctl--array>legend{font-size:var(--fs-sm);color:var(--ink);margin-bottom:6px;padding:0;font-weight:700}.tp-actions{--cluster:8px}.tp-fig2{border-top:1px dashed var(--rule-strong);grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;padding-top:16px;animation:.25s ease-out both tpFade;display:grid}.tp-plate2{min-width:0}@media (max-width:1099.98px){body:has(.tp-plate2) .tp-plate{position:static}}.tp-plate2 .printout{box-shadow:none;padding:10px 12px}.tp-plate2 .fig-title{overflow-wrap:anywhere}.tp-essay-head{margin-top:4px}.tp-aim{font:400 clamp(1.375rem, 1.1rem + .7vw, 1.75rem)/1.15 var(--f-display);letter-spacing:-.01em;color:var(--ink);text-wrap:balance;max-width:30ch;margin:6px 0 10px}.tp-goal{font-size:var(--fs-lede);color:var(--ink-2);max-width:46ch;line-height:1.5}.tp-extnote{font-size:var(--fs-sm);color:var(--ink-2);align-items:baseline;gap:6px;margin-top:8px;display:flex}.tp-ladder{gap:8px;margin-bottom:18px;display:grid}.tp-rungs{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tp-ladder__end{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.tp-rung{border:1px solid var(--rule-strong);border-radius:var(--r-4);background:var(--paper-hi);min-height:36px;font:700 var(--fs-sm)/1.25 var(--f-body);color:var(--ink-2);text-align:left;align-items:baseline;gap:6px;padding:6px 11px;display:inline-flex}.tp-rung:hover{border-color:var(--pen);background:var(--pen-soft);color:var(--ink)}.tp-rung__n{font:700 1.125rem/1 var(--f-hand);color:var(--pen)}.tp-rung__st{font:500 var(--fs-xs)/1.2 var(--f-mono);color:var(--ink-3)}.tp-rung.is-done{color:var(--ink)}.tp-rung.is-here{background:var(--hl);border-color:var(--ink);color:var(--ink)}.tp-rung.is-here .tp-rung__st{color:var(--ink)}.tp-rung.is-locked{color:var(--ink-3);cursor:not-allowed;background:0 0;border-style:dashed}.tp-rung.is-locked:hover{border-color:var(--rule-strong);color:var(--ink-3);background:0 0}.tp-rung.is-locked .tp-rung__n{color:var(--ink-3)}.tp-testout{border:1.5px dashed var(--pen);color:var(--pen);background:0 0}.tp-colony{font:500 var(--fs-xs)/1.2 var(--f-mono);color:var(--ink-2);align-items:center;gap:6px;display:inline-flex}.tp-ladder__note{min-height:0;font:600 var(--fs-hand)/1.15 var(--f-hand);color:var(--red)}.tp-ladder__note:empty{display:none}.tp-skipped{border-left:2px solid var(--red);margin:16px 0 0;padding:2px 0 2px 14px}.tp-skipped__hand{font:600 var(--fs-hand)/1.15 var(--f-hand);color:var(--red)}.tp-skipped__list{font-size:var(--fs-sm);gap:2px;margin:4px 0 0;padding:0;list-style:none;display:grid}.tp-skipped__list a{color:var(--pen);border-bottom:1px solid;font-weight:700;text-decoration:none}.tp-skipped__list a:hover{background:var(--pen-soft)}.tp-steps{counter-reset:step;margin:0;padding:0;list-style:none}.tp-step{border-top:1px solid var(--rule);margin-top:24px;padding-top:18px;position:relative}.tp-step.is-fresh{animation:.4s ease-out both rise}.tp-step.is-current:before{content:"";background:var(--pen);border-radius:2px;width:3px;position:absolute;top:18px;bottom:2px;left:-14px}.tp-step__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 14px;margin-bottom:6px;display:flex}.tp-step__name{font:400 1.375rem/1.2 var(--f-display);color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:2px 6px;display:flex}.tp-step__n{min-width:1.1em;font:700 1.625rem/1 var(--f-hand);color:var(--pen);display:inline-block}.tp-step__go{font:inherit;color:var(--ink-2);text-align:left;border:0;border-bottom:1.5px dashed var(--rule-strong);background:0 0;border-radius:0;padding:0}.tp-step__go:hover{color:var(--ink);border-bottom-color:var(--pen)}.tp-step__body{max-width:62ch}.tp-step:not(.is-current) .tp-step__body{color:var(--ink-2)}.tp-try{background:var(--paper-hi);border:1px solid var(--rule);border-radius:var(--r-2);max-width:62ch;margin-top:12px;padding:10px 12px}.tp-try .out.is-muted{color:var(--ink-3);font-style:italic}.tp-step-next{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:22px;display:flex}.tp-missing{border:1.5px dashed var(--red);border-radius:var(--r-3);max-width:62ch;margin-top:12px;padding:10px 12px}.tp-missing__label{font:600 var(--fs-meta)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red)}.tp-missing__text{font-size:var(--fs-sm);color:var(--ink-2);margin-top:2px;line-height:1.45}.tp-check{border:1.5px dashed var(--rule-strong);border-radius:var(--r-3);background:var(--paper-hi);max-width:680px;margin-top:30px;padding:18px 20px 22px;scroll-margin:16px}.tp-check.is-testout{border-color:var(--pen);margin-top:18px}.tp-check__hand{font:700 var(--fs-hand-lg)/1 var(--f-hand);color:var(--pen)}.tp-check__title{font:400 var(--fs-h4)/1.2 var(--f-display);color:var(--ink);margin:4px 0 6px}.tp-check__note{font-size:var(--fs-sm);color:var(--ink-2);margin-bottom:6px}.tp-check .qq{margin-top:8px}.tp-check__done{border-top:1px solid var(--rule);justify-items:start;gap:10px;margin-top:16px;padding-top:14px;display:grid}.tp-check__ok{font:700 var(--fs-hand-lg)/1.1 var(--f-hand);color:var(--pen)}.tp-check__back{font-size:var(--fs-sm);margin-top:14px}.tp-selfcheck{justify-items:start;gap:12px;margin-top:10px;display:grid}.tp-selfcheck__q{font-size:var(--fs-lede);max-width:58ch;line-height:1.5}.tp-selfcheck__a{font-size:var(--fs-body);max-width:58ch}.tp-errata{border-top:1px solid var(--rule);margin-top:30px;padding-top:16px}.tp-errata__h{font:400 var(--fs-h4)/1.2 var(--f-display);color:var(--ink);margin-bottom:10px}.tp-pn{border-top:1.5px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:36px;padding-top:14px;display:grid}.tp-pn__link{border-radius:var(--r-3);color:var(--ink);align-content:start;gap:2px;min-width:0;padding:8px 10px;text-decoration:none;display:grid}.tp-pn__link:hover{background:var(--pen-soft)}.tp-pn__link--next{text-align:right;justify-items:end}.tp-pn__dir{font:600 var(--fs-meta)/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.tp-pn__title{font:400 var(--fs-h4)/1.2 var(--f-display);overflow-wrap:anywhere}.tp-pn__note{font:600 1.0625rem/1.1 var(--f-hand);color:var(--ink-3)}.tp-pn__note.is-skipped{color:var(--red)}.tp-margin{flex-direction:column;gap:14px;min-height:100%;display:flex}.tp-margin:focus{outline:none}.tp-m-eyebrow{font:700 1.1875rem/1 var(--f-hand);color:var(--ink-3);align-items:center;gap:6px;display:flex}.tp-m-eyebrow svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:14px}.tp-m-title{font:400 1.3125rem/1.2 var(--f-display);color:var(--ink);margin:8px 0}.tp-m-title span{font:600 var(--fs-meta)/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);display:block}.tp-m-body{gap:12px;display:grid}.tp-m-figstate{border-left:2px solid var(--rule-strong);font-size:var(--fs-sm);color:var(--ink);max-width:58ch;padding-left:12px;line-height:1.5}.tp-test{overscroll-behavior:contain;scrollbar-width:thin;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:start;height:100%;display:grid;overflow:auto}.tp-test:focus{outline:none}.tp-q-col{align-content:start;gap:10px;min-width:0;padding:24px 30px 44px;display:grid}.tp-test__title{font:400 var(--fs-h2)/1.08 var(--f-display);color:var(--ink)}.tp-test__lede{max-width:58ch}.tp-test__h{font:400 var(--fs-h4)/1.2 var(--f-display);color:var(--ink);margin-top:14px}.tp-sources{border-top:1.5px solid var(--ink);margin:0;padding:0;list-style:none}.tp-source{border-bottom:1px solid var(--rule);gap:4px;padding:10px 0;display:grid}.tp-source__meta{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.tp-source__stem{font-size:var(--fs-sm);color:var(--ink-2);max-width:62ch;line-height:1.45}.tp-type{border:1px solid var(--rule-strong);border-radius:var(--r-4);min-height:28px;font:600 var(--fs-sm)/1.2 var(--f-body);color:var(--ink-2);align-items:center;padding:3px 9px;display:inline-flex}.tp-sol{border-left:1px solid var(--rule-strong);align-self:stretch;min-width:0;min-height:100%;padding:26px 30px 44px}.tp-sol__ph{font:600 1.375rem/1.15 var(--f-hand);color:var(--ink-3);align-items:flex-start;gap:8px;max-width:24ch;margin-top:40px;display:flex}.tp-sol__ph svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:44px;height:30px;margin-top:-4px}@media (max-width:1099.98px){.tp-page{inset:12px}.tp-body{overscroll-behavior:contain;overflow:auto}.tp-learn{height:auto;padding:0 22px;display:block}.tp-fig-col{display:contents}.tp-text-col{box-shadow:none;border-left:0;padding:6px 0 32px;overflow:visible}.tp-plate{background:var(--paper);margin:0 -22px;padding:12px 22px}.tp-actions{margin-top:12px}.tp-controls{margin-top:14px}.tp-fig2{margin-top:18px}.tp-fig2 .tp-actions,.tp-fig2 .tp-controls{margin-top:0}.tp-worked--fig{display:none}.tp-worked--essay{margin-top:26px;display:block}.tp-test{height:auto;display:block;overflow:visible}.tp-sol{border-left:0;border-top:1px solid var(--rule-strong);min-height:0}.tp-sol__ph{margin-top:8px}.tp-step.is-current:before{left:-12px}}@media (max-width:1099.98px) and (min-height:600px){.tp-plate{z-index:4;border-bottom:1.5px solid var(--rule-strong);position:sticky;top:0}.tp-plate .fig-foot{display:none}.tp-plate.is-tall{position:static}}@media (max-width:900px){.tp-head{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:16px 16px 0 22px}.tp-head .tabs{grid-area:2/1/auto/-1}.tp-close{grid-area:1/2}}@media (max-width:759.98px){.tp{padding:0}.tp-stage{height:auto;min-height:0;margin:0}.tp-backdrop,.tp-scrim{display:none}.tp-page{inset:0 0 var(--tabbar-offset,0px) 0;z-index:calc(var(--z-bar) + 1);max-width:none;box-shadow:none;padding-top:env(safe-area-inset-top,0px);border:0;border-radius:0;position:fixed}.tp-page>.tape{display:none}.tp-page.is-enter{animation:.3s ease-out both rise}.tp-head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 10px;padding:8px 16px 0}.tp-close{grid-area:1/1;align-self:center;padding:8px 10px}.tp-close__x{display:none}.tp-close__back{display:block}.tp-id{grid-area:1/2;gap:0;padding-bottom:4px}.tp-id .crumbs,.tp-trail{display:none}.tp-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.25rem;line-height:1.15;display:-webkit-box;overflow:hidden}.tp-head .tabs{grid-area:2/1/auto/-1;display:flex}.tp-head .tab{flex:1;justify-content:center;padding:10px 6px 12px}.tp-learn{padding:0 16px}.tp-plate{z-index:4;border-bottom:1.5px solid var(--rule-strong);margin:0 -16px;padding:8px 16px 6px;position:sticky;top:0}.tp-plate .printout{padding:8px 10px 6px}.tp-plate .printout>.tape{display:none}.tp-plate .fig-head{flex-wrap:nowrap;margin-bottom:4px}.tp-plate .fig-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tp-plate .fig-foot{display:none}.tp-plate.is-tall{position:static}.tp-plate .tp-ph{align-content:start;gap:6px;height:max(140px,40dvh - 64px);min-height:0;padding:12px;overflow:auto}.tp-plate .tp-ph__does{display:none}.tp-text-col{padding-top:4px}.tp-fig2{margin-top:14px;padding-top:12px}.tp-plate2 .printout{padding:8px 10px}.tp-rung:not(.is-here) .tp-rung__name,.tp-rung.is-locked .tp-rung__st{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tp-rung{min-height:40px}.tp-step.is-current:before{left:-10px}.tp-pn{grid-template-columns:minmax(0,1fr)}.tp-pn__link--next{text-align:left;justify-items:start}.tp-q-col{padding:18px 16px 26px}.tp-sol{padding:20px 16px 32px}.tp-check{padding:16px 14px 18px}}@media (max-width:420px){.tp-head .tab .k{display:none}}@keyframes tpPageIn{0%{opacity:0;transform:scale(.05)rotate(-5deg)}30%{opacity:1}to{opacity:1;transform:none}}@keyframes tpPageOut{to{opacity:0;transform:scale(.06)rotate(-4deg)}}@keyframes tpFlip{0%{opacity:.2;transform:translate(14px)}to{opacity:1;transform:none}}@keyframes tpFade{0%{opacity:0}to{opacity:1}}@keyframes tpFadeOut{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .tp-backdrop{filter:none}}:root[data-motion=reduce] .tp-backdrop{filter:none}.tp-test__list{margin-top:6px}.tp-test__tag{text-transform:uppercase;letter-spacing:.08em;margin-bottom:-6px}.tp-test__score{font:600 var(--fs-ui)/1.4 var(--f-mono);color:var(--pen)}.tp-sol .pr-slips{margin-top:6px}.tp-sol .cluster{margin-top:8px}.tp-m-handoff{border-left:3px solid var(--pen);background:var(--pen-soft);border-radius:0 var(--r-2) var(--r-2) 0;justify-items:start;gap:6px;margin-bottom:12px;padding:10px 12px;display:grid}.tp-fig2-toggle{flex-wrap:wrap;gap:8px;min-width:0;display:flex}@media (max-width:1099.98px){.tp-fig2-toggle{margin-top:14px}}
