.exercise.svelte-1d2b063{isolation:isolate;border:1px solid var(--color-ink);color:var(--color-ink);font-family:var(--font-mono);background:0 0;position:relative;overflow:visible}.exercise.is-passed.svelte-1d2b063{border-width:2px}.progress.svelte-1d2b063{z-index:2;opacity:0;pointer-events:none;height:2px;transition:opacity .2s;position:absolute;inset:0 0 auto;overflow:hidden}.is-loading.svelte-1d2b063 .progress:where(.svelte-1d2b063){opacity:1}.progress.svelte-1d2b063:after{content:"";background:var(--color-ink);width:32%;animation:1.2s cubic-bezier(.4,0,.2,1) infinite svelte-1d2b063-progress-slide;position:absolute;inset:0}.head.svelte-1d2b063{border-bottom:1px solid var(--color-ink);justify-content:space-between;align-items:center;gap:1.8rem;padding:1.5rem 1.8rem;display:flex}.identity.svelte-1d2b063{align-items:center;gap:1.2rem;min-width:0;display:flex}.head.svelte-1d2b063{flex-wrap:wrap;row-gap:.8rem}.eyebrow.svelte-1d2b063{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;flex:none;font-size:.8125rem;font-weight:700;line-height:1}.exercise.svelte-1d2b063 .id:where(.svelte-1d2b063){min-width:0;font-family:var(--font-mono);color:var(--color-muted);overflow-wrap:anywhere;white-space:normal;border:0;padding:0;font-size:.9375rem;line-height:1.4;overflow:hidden}.signals.svelte-1d2b063{flex-wrap:wrap;flex:none;align-items:center;gap:.9rem;display:flex}.runtime.svelte-1d2b063{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);white-space:nowrap;align-items:center;gap:.7rem;font-size:.8125rem;display:inline-flex}.runtime-dot.svelte-1d2b063{border:1px solid;width:.6rem;height:.6rem}.runtime.ready.svelte-1d2b063{color:var(--color-ink)}.runtime.ready.svelte-1d2b063 .runtime-dot:where(.svelte-1d2b063){background:var(--color-ink)}.runtime.error.svelte-1d2b063{color:var(--color-ink);text-underline-offset:.3em;text-decoration:underline}.pass-badge.svelte-1d2b063{background:var(--color-ink);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-paper);white-space:nowrap;align-items:center;gap:.7rem;padding:.4rem .8rem .4rem .5rem;font-size:.8125rem;font-weight:700;line-height:1;display:inline-flex}.check.svelte-1d2b063{border:1px solid;place-items:center;width:1.4rem;height:1.4rem;display:grid}.check.svelte-1d2b063 svg:where(.svelte-1d2b063){fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:.9rem;height:.9rem}.shadow-wrapper.svelte-1d2b063{border:1px solid var(--color-ink);background:var(--color-paper);box-shadow:6px 6px 0px var(--color-ink);margin:1rem 1.2rem 0;transition:box-shadow 80ms linear;overflow:visible}.editor-wrapper.svelte-1d2b063:has(.frame:where(.svelte-1d2b063):focus-within){box-shadow:10px 10px 0px var(--color-ink)}.console-wrapper.svelte-1d2b063{background:var(--color-ink);margin:1rem 1.2rem 1.2rem}.shadow-wrapper.svelte-1d2b063 .frame:where(.svelte-1d2b063),.shadow-wrapper.svelte-1d2b063 .console:where(.svelte-1d2b063){box-shadow:none;background:0 0;border:0;margin:0}.frame.svelte-1d2b063{overflow:visible}.frame.svelte-1d2b063:focus-within{outline:2px solid var(--color-ink);outline-offset:2px}.editor.svelte-1d2b063{font-family:var(--font-mono)}.toolbar.svelte-1d2b063{border-top:1px solid var(--color-ink);justify-content:space-between;align-items:center;gap:1.2rem;padding:.75rem 1rem;display:flex}.shortcut.svelte-1d2b063{font-family:var(--font-mono);color:var(--color-muted);white-space:nowrap;align-items:center;gap:.6rem;font-size:.75rem;display:inline-flex}kbd.svelte-1d2b063{border:1px solid var(--color-ink);font-family:var(--font-mono);color:var(--color-ink);padding:.2rem .6rem;font-size:.75rem;line-height:1.2}.actions.svelte-1d2b063{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;display:flex}button.svelte-1d2b063{border:1px solid var(--color-ink);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:.7rem;padding:.7rem 1.2rem;font-size:.875rem;transition:background .16s,color .16s;display:inline-flex}button.svelte-1d2b063:focus-visible{outline:2px solid var(--color-ink);outline-offset:3px}button.svelte-1d2b063:disabled{cursor:default;opacity:.45}.ghost.svelte-1d2b063:hover:not(:disabled),.run.svelte-1d2b063{background:var(--color-ink);color:var(--color-paper)}.run.svelte-1d2b063:hover:not(:disabled),.run.svelte-1d2b063:focus-visible{color:var(--color-ink);background:0 0}.run.running.svelte-1d2b063{opacity:1}.spinner.svelte-1d2b063{border:1px solid;border-right-color:#0000;width:1.1rem;height:1.1rem;animation:.7s linear infinite svelte-1d2b063-spin}.console.svelte-1d2b063{background:var(--color-ink);color:var(--color-paper);-webkit-font-smoothing:antialiased;overflow:visible}.console-bar.svelte-1d2b063{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;opacity:.68;border-bottom:1px solid;justify-content:space-between;align-items:baseline;gap:1.2rem;padding:.7rem 1.4rem;font-size:.75rem;display:flex}.console-path.svelte-1d2b063{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status.svelte-1d2b063{min-height:1.8rem;font-family:var(--font-mono);align-items:center;gap:.9rem;padding:clamp(10px,1.2rem,16px) clamp(12px,1.4rem,18px);font-size:1rem;line-height:1.5;display:flex}.prompt.svelte-1d2b063{opacity:.6;-webkit-user-select:none;user-select:none;flex:none}.status-dot.svelte-1d2b063{background:0 0;border:1px solid;flex:none;width:.6rem;height:.6rem}.status.running.svelte-1d2b063 .status-dot:where(.svelte-1d2b063){animation:1.1s ease-in-out infinite svelte-1d2b063-breathe}.status.passed.svelte-1d2b063{font-weight:700}.status.passed.svelte-1d2b063 .status-dot:where(.svelte-1d2b063){background:currentColor}.status.failed.svelte-1d2b063 .status-dot:where(.svelte-1d2b063),.status.error.svelte-1d2b063 .status-dot:where(.svelte-1d2b063){border-style:dashed}.skeleton-chip.svelte-1d2b063{opacity:.22;background:currentColor;width:8.2rem;height:1rem;animation:1.2s ease-in-out infinite svelte-1d2b063-breathe;display:block}.boot.svelte-1d2b063{box-sizing:border-box;border:1px solid var(--color-ink);color:#f1f1f1;background:#000;flex:1;gap:.8rem;max-width:28rem;padding:1rem 1.2rem;display:grid}.boot-label.svelte-1d2b063{font-family:var(--font-mono);letter-spacing:.12em;font-size:.875rem;line-height:1}.boot-track.svelte-1d2b063{border:1px solid #555;height:.8rem;display:block}.boot-fill.svelte-1d2b063{transform-origin:0;background:#3cb371;height:100%;animation:2s steps(20,end) forwards svelte-1d2b063-boot-fill;display:block;transform:scaleX(0)}@keyframes svelte-1d2b063-boot-fill{to{transform:scaleX(1)}}.boot-error.svelte-1d2b063{font-family:var(--font-mono);overflow-wrap:anywhere;border:1px dashed;margin:0 1.4rem 1.2rem;padding:1rem 1.2rem;font-size:.9375rem;line-height:1.55}.result.svelte-1d2b063{padding:0 1.4rem 1.4rem;animation:.24s both svelte-1d2b063-result-in}.compare.svelte-1d2b063{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}.compare-column.svelte-1d2b063{min-width:0}.result-head.svelte-1d2b063{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;opacity:.75;justify-content:space-between;align-items:baseline;gap:1.2rem;margin-bottom:.6rem;font-size:.75rem;font-weight:700;display:flex}.result-note.svelte-1d2b063{font-family:var(--font-mono);letter-spacing:0;text-transform:none;opacity:.75;font-size:.8125rem;font-weight:400}.exercise.svelte-1d2b063 .console:where(.svelte-1d2b063) pre:where(.svelte-1d2b063){font-family:var(--font-mono);letter-spacing:0;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;margin:0;padding:1rem 1.2rem;font-size:1rem;line-height:1.65;position:static;overflow:auto}.exercise.svelte-1d2b063 .console:where(.svelte-1d2b063) .diff:where(.svelte-1d2b063){border:1px solid;gap:1rem;max-height:19rem;display:flex}.exercise.svelte-1d2b063 .console:where(.svelte-1d2b063) .diff:where(.svelte-1d2b063) .sign:where(.svelte-1d2b063){-webkit-user-select:none;user-select:none;flex:none;width:1rem;font-weight:700}.exercise.svelte-1d2b063 .console:where(.svelte-1d2b063) .diff-text:where(.svelte-1d2b063){flex:1;min-width:0}.exercise.svelte-1d2b063 .console:where(.svelte-1d2b063) .expected:where(.svelte-1d2b063){border-style:solid}.exercise.svelte-1d2b063 .console:where(.svelte-1d2b063) .stdout:where(.svelte-1d2b063){border-style:dashed}.traceback-head.svelte-1d2b063{margin-top:1.2rem}.exercise.svelte-1d2b063 .console:where(.svelte-1d2b063) .traceback:where(.svelte-1d2b063){border:1px dashed;max-height:24rem}@keyframes svelte-1d2b063-progress-slide{0%{transform:translate(-100%)}to{transform:translate(320%)}}@keyframes svelte-1d2b063-spin{to{transform:rotate(360deg)}}@keyframes svelte-1d2b063-breathe{50%{opacity:.3}}@keyframes svelte-1d2b063-result-in{0%{opacity:0}to{opacity:1}}@media (width<=640px){.compare.svelte-1d2b063{grid-template-columns:1fr}.head.svelte-1d2b063{flex-wrap:wrap;gap:1rem;padding:1.4rem 1.5rem}.identity.svelte-1d2b063{gap:.9rem}.id.svelte-1d2b063{font-size:1.2rem}.signals.svelte-1d2b063{margin-left:auto}.editor-wrapper.svelte-1d2b063{margin:1.2rem 1.2rem 0}.console-wrapper.svelte-1d2b063{margin:1rem 1.2rem 1.2rem}.toolbar.svelte-1d2b063{padding:.9rem 1rem}.shortcut.svelte-1d2b063{display:none}.actions.svelte-1d2b063{justify-content:flex-end;gap:.8rem;width:100%}button.svelte-1d2b063{padding:1rem 1.5rem}.run.svelte-1d2b063{padding:1rem 2.2rem}.status.svelte-1d2b063{padding:1.1rem 1.3rem}.console-bar.svelte-1d2b063{padding:.6rem 1.3rem}.console-path.svelte-1d2b063{display:none}.result.svelte-1d2b063{padding:0 1.3rem 1.3rem}}
