:root{--code-background-color:#0a0a0a;--code-text-color:#dadbdf}:root .st-keyword,:root .st-keywordLiteral,:root .st-modifier{color:#4d9375}:root .st-comment{color:#758575dd;font-style:italic}:root .st-string,:root .st-escapeSequence,:root .st-regexp{color:#c98a7d}:root .st-number{color:#4c9a91}:root .st-type,:root .st-typeParameter,:root .st-class,:root .st-enum,:root .st-interface,:root .st-struct,:root .st-namespace{color:#5da994}:root .st-function,:root .st-method{color:#80a665}:root .st-method{font-style:italic}:root .st-builtin,:root .st-operator,:root .st-macro{color:#cb7676}:root .st-variable,:root .st-property,:root .st-parameter,:root .st-enumMember,:root .st-event,:root .st-decorator{color:#bd976a}:root .st-parameter,:root .st-enumMember{font-style:italic}:root .st-label{color:#999;font-style:italic}:root .st-errorTag{color:#fdaeb7}.st-escapeSequence .st-string{color:inherit}:root{--canvas:#0a0a0a;--canvas-soft:#1a1c20;--canvas-mid:#363a3f;--hairline:#212327;--hairline-bright:#ffffff2e;--ink:#fff;--body:#dadbdf;--body-mid:#7d8187;--accent:#ff7a17;--status-idle:#7d8187;--status-busy:#a89050;--status-ok:#5a8f6e;--status-err:#a66b6b;--zig-yellow:#f7a41d;--pane-toolbar-background:var(--canvas);--pane-toolbar-border:var(--hairline);--output-background:var(--canvas);--output-text:var(--body);--resizer-color:var(--hairline);--resizer-hover:var(--accent);--autocomplete-bg:#12141a;--autocomplete-border:var(--hairline-bright);--autocomplete-selected-bg:#ffffff14;--autocomplete-selected-text:var(--ink);--autocomplete-info-bg:#12141a;--autocomplete-detail-text:var(--body-mid);--autocomplete-match:var(--zig-yellow);--editor-font-mono:ui-monospace, "SFMono-Regular", Menlo, Monaco, "Cascadia Code", "Fira Code", "Consolas", monospace;--editor-font-size:16px;--editor-line-height:1.55;--editor-code-padding-x:12px;--editor-code-padding-y:4px;--editor-line-number-min-width:20px;--editor-line-number-padding-left:24px;--editor-line-number-padding-right:16px;--editor-text-tertiary:var(--body-mid);--editor-surface:#ffffff09;--editor-focus-ring:#ffffff24}body,button,select{font-family:var(--editor-font-mono)}*{box-sizing:border-box}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--canvas-mid);border:none}::-webkit-scrollbar-thumb:hover{background:#4a4f55}*{scrollbar-width:thin;scrollbar-color:var(--canvas-mid) transparent}html,body{background:var(--canvas);height:100%;color:var(--body);margin:0;padding:0;font-size:15px}body{flex-direction:column;height:100vh;display:flex;overflow:hidden}p{margin:1rem 0}strong{font-weight:700}i{font-style:italic}a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--hairline-bright);text-decoration-color:var(--hairline-bright)}code{font-family:var(--editor-font-mono)}ul{margin-left:2rem;line-height:1.5;list-style:circle}main{flex:auto;min-height:0;overflow:hidden;container:playground/inline-size}#split-pane{--editor-size-percent:73.108%;flex-direction:row;height:100%;display:flex;overflow:hidden}#editor-pane{flex:0 0 var(--editor-size-percent);width:var(--editor-size-percent);flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}#preview-pane{flex-direction:column;flex:1 1 0;min-width:0;height:100%;display:flex;overflow:hidden}.pane-toolbar{border:none;border-bottom:1px solid var(--pane-toolbar-border);background-color:var(--pane-toolbar-background);flex-shrink:0;align-items:center;gap:.75rem;height:2.75rem;padding:0 1rem;display:flex}#editor-pane .pane-toolbar,#preview-pane .pane-toolbar{justify-content:space-between}.pane-toolbar-left{min-width:0;color:var(--body-mid);letter-spacing:.02em;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.pane-toolbar-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}#version-select,#example-select{max-width:16rem;height:auto;color:var(--body-mid);font-size:.85rem;font-family:var(--editor-font-mono);cursor:pointer;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;appearance:none;background:0 0;border:none;border-radius:0;margin:0;padding:.2rem 0;line-height:1.4}#version-select{max-width:8rem;color:var(--ink)}#version-select:hover,#version-select:focus,#example-select:hover,#example-select:focus{color:var(--ink);outline:none}#version-select option,#example-select option{background:var(--canvas-soft);color:var(--body)}#run,#reset,#share-toggle{height:auto;font-size:.85rem;font-weight:400;font-family:var(--editor-font-mono);cursor:pointer;color:var(--body-mid);background:0 0;border:none;border-radius:0;margin:0;padding:.2rem 0;line-height:1.4}#run:hover,#reset:hover,#share-toggle:hover,#share-toggle:focus-visible,.share-menu.open #share-toggle{color:var(--ink);background:0 0;outline:none}#share-toggle.share-flash{color:var(--status-ok)}.share-menu{align-items:center;display:inline-flex;position:relative}.share-dropdown{z-index:40;background:var(--canvas-soft);border:1px solid var(--hairline-bright);min-width:7.5rem;box-shadow:none;flex-direction:column;padding:.25rem 0;display:flex;position:fixed}.share-dropdown[hidden]{display:none}.share-dropdown button{width:100%;color:var(--body-mid);font-family:var(--editor-font-mono);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;margin:0;padding:.4rem .85rem;font-size:.85rem;line-height:1.4;display:block}.share-dropdown button:hover,.share-dropdown button:focus-visible{color:var(--ink);background:#ffffff0f;outline:none}#run-status{font-family:var(--editor-font-mono);color:var(--status-idle);white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:.45rem;font-size:.85rem;display:inline-flex}#run-status.idle{color:var(--status-idle)}#run-status.busy{color:var(--status-busy)}#run-status.ok{color:var(--status-ok)}#run-status.err{color:var(--status-err)}.status-spinner{border:1.5px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:.7em;height:.7em;animation:.7s linear infinite status-spin;display:none}#run-status.busy .status-spinner{display:inline-block}@keyframes status-spin{to{transform:rotate(360deg)}}#editor{flex:auto;min-height:0;overflow:hidden}#output-container{background-color:var(--output-background);min-width:0;min-height:0;color:var(--output-text);flex:auto;overflow:auto}#output-pad{box-sizing:border-box;vertical-align:top;min-width:100%;padding:1rem 1.25rem;display:inline-block}#output-pad>.zig-output,#output-pad>.runner-output{white-space:pre;font-family:var(--editor-font-mono);font-size:var(--editor-font-size);line-height:var(--editor-line-height);color:var(--output-text);margin:0}#output-pad>.zig-output{color:var(--status-err)}#resize-bar{cursor:col-resize;background-color:var(--resizer-color);width:1px;box-shadow:none;flex-shrink:0;transition:background-color .12s;position:relative}#resize-bar:before{content:"";z-index:1;position:absolute;inset:0 -4px}#resize-bar:hover,#resize-bar.dragging{background-color:var(--resizer-hover)}@container playground (width<=960px){#split-pane{flex-direction:column}#editor-pane{flex:0 0 var(--editor-size-percent);width:100%;height:var(--editor-size-percent);min-height:8rem}#preview-pane{flex:1 1 0;width:100%;min-width:0;height:auto;min-height:0}#resize-bar{cursor:row-resize;width:100%;height:1px}#resize-bar:before{inset:-4px 0}}html.embed,body.embed{height:100%;overflow:hidden}body.embed .pane-toolbar{display:none}body.embed #editor-pane,body.embed #preview-pane{position:relative}body.embed:not(.has-run) #resize-bar,body.embed:not(.has-run) #preview-pane{display:none}body.embed:not(.has-run) #editor-pane{flex:100%;width:100%;height:100%}#embed-run{z-index:2;background:var(--canvas-soft);width:2.6rem;height:2.6rem;color:var(--ink);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0 0 0 .15rem;font-size:1rem;line-height:1;transition:transform .12s;display:inline-flex;position:absolute;bottom:1.1rem;right:1.1rem;box-shadow:0 2px 10px #00000059}#embed-run:hover{transform:scale(1.06)}#embed-run:active{transform:scale(.97)}#embed-run[hidden]{display:none}#run-status.embed-status{z-index:2;background:color-mix(in srgb, var(--canvas) 82%, transparent);border:1px solid var(--hairline);pointer-events:none;gap:.35rem;padding:.15rem .45rem;font-size:.75rem;position:absolute;top:.45rem;right:.55rem}.cm-editor{background:var(--code-background-color);height:100%;color:var(--code-text-color);font-family:var(--editor-font-mono);font-size:var(--editor-font-size);line-height:var(--editor-line-height)}.cm-scroller{line-height:var(--editor-line-height);font-family:var(--editor-font-mono)!important}.cm-editor .cm-content{caret-color:var(--code-text-color)}.cm-line{padding:0 var(--editor-code-padding-x);line-height:var(--editor-line-height)}.cm-cursor,.cm-dropCursor{border-left-color:var(--code-text-color)!important}.cm-gutters{background:var(--code-background-color)!important;color:var(--editor-text-tertiary)!important;border-right:none!important}.cm-lineNumbers .cm-gutterElement{min-width:var(--editor-line-number-min-width);padding:0 var(--editor-line-number-padding-right) 0 var(--editor-line-number-padding-left)!important}.cm-activeLine,.cm-activeLineGutter{background:var(--editor-surface)!important}.cm-activeLine-pad-top,.cm-activeLineGutter-pad-top{box-shadow:0 calc(-1 * var(--editor-code-padding-y)) 0 0 var(--editor-surface)}.cm-focused{outline:none!important}.cm-focused .cm-selectionBackground,.cm-selectionBackground{background:var(--editor-focus-ring)!important}.cm-content ::selection{background:var(--editor-focus-ring)!important}.cm-matchingBracket{font-weight:700;color:var(--code-text-color)!important}.cm-tooltip{background-color:var(--autocomplete-bg)!important;color:var(--code-text-color)!important;border:1px solid var(--autocomplete-border)!important;box-shadow:none!important;border-radius:0!important;padding:0!important}.cm-tooltip-autocomplete{min-width:180px;overflow:hidden;max-width:min(360px,55vw)!important}.cm-tooltip-autocomplete>ul{max-width:min(360px,55vw)!important;font-family:var(--editor-font-mono)!important;font-size:calc(var(--editor-font-size) - 1px)!important;margin:0!important;padding:.25rem 0!important}.cm-tooltip-autocomplete>ul>li{justify-content:flex-start;align-items:baseline;gap:1em;line-height:1.45;display:flex;color:var(--body)!important;padding:.3rem .75rem!important}.cm-tooltip-autocomplete ul li[aria-selected]{background-color:var(--autocomplete-selected-bg)!important;color:var(--autocomplete-selected-text)!important}.cm-tooltip-autocomplete>ul>li[aria-selected] .cm-completionDetail{color:#fff6!important}.cm-completionIcon{display:none!important}.cm-completionLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);flex:auto;overflow:hidden}.cm-completionMatchedText{font-weight:500;color:var(--autocomplete-match)!important;text-decoration:none!important}.cm-completionDetail{opacity:.55;text-overflow:ellipsis;white-space:nowrap;text-align:right;flex:0 10em;max-width:10em;font-size:.8em;font-style:normal;overflow:hidden;color:var(--autocomplete-detail-text)!important;margin-left:0!important;display:none!important}.cm-tooltip-autocomplete ul li[aria-selected] .cm-completionDetail{display:block!important}.cm-completionDetail:empty{display:none!important}.cm-tooltip.cm-completionInfo{font-family:var(--editor-font-mono);font-size:calc(var(--editor-font-size) - 1px);white-space:pre-line;line-height:1.45;background-color:var(--autocomplete-info-bg)!important;width:max-content!important;max-width:min(300px,45vw)!important;color:var(--body)!important;border:1px solid var(--autocomplete-border)!important;box-shadow:none!important;border-radius:0!important;padding:.55rem .75rem!important}.cm-tooltip.cm-completionInfo:empty{display:none!important}.cm-lsp-completion-documentation:empty{display:none}.cm-tooltip.cm-completionInfo:has(>.cm-lsp-completion-documentation:empty){display:none!important}.cm-lsp-documentation p,.cm-lsp-documentation pre{line-height:1.2}.cm-lsp-documentation :not(pre) code{background:var(--canvas-mid);border:none}.cm-foldGutter{flex-shrink:0;width:1.25em!important;min-width:1.25em!important}.cm-foldGutter .cm-gutterElement{text-align:center;width:1.25em!important;min-width:1.25em!important;padding:0!important}.cm-foldGutter span{text-align:center;cursor:pointer;width:1em;height:100%;color:var(--editor-text-tertiary);justify-content:center;align-items:center;line-height:1;display:inline-flex;padding:0!important}.cm-foldGutter .cm-fold-open{transform:translateY(-.14em)}.cm-foldGutter .cm-fold-closed{transform:translateY(.04em)}.cm-foldGutter span:hover{color:var(--ink)}.cm-foldPlaceholder{cursor:pointer;font-family:var(--editor-font-mono);border-radius:2px;margin:0 2px;padding:0 4px;background-color:var(--canvas-soft)!important;border:1px solid var(--hairline)!important;color:var(--body-mid)!important}.cm-foldPlaceholder:hover{color:var(--ink)!important;border-color:var(--body-mid)!important}body{background:var(--canvas);color:var(--body);flex-direction:column;min-height:100vh;margin:0;font-family:system-ui,-apple-system,sans-serif;display:flex}.topbar{background:var(--canvas);border-bottom:1px solid var(--hairline);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:8px 16px;display:flex}.topbar-left{color:var(--ink);align-items:baseline;gap:12px;display:flex}.topbar-left strong{font-size:15px}.current-exercise{color:var(--body-mid);font-family:var(--editor-font-mono);font-size:13px}.topbar-right{gap:8px;display:flex}.topbar button{background:var(--canvas-soft);color:var(--body);border:1px solid var(--hairline);cursor:pointer;border-radius:4px;padding:5px 12px;font-size:13px}.topbar button:hover{border-color:var(--body-mid);color:var(--ink)}.progress-wrap{color:var(--body-mid);align-items:center;gap:10px;font-size:13px;display:flex}.progress-track{background:var(--canvas-soft);border-radius:3px;width:160px;height:6px;overflow:hidden}#progress-fill{background:var(--status-ok);width:0;height:100%;transition:width .2s}.shell{flex:auto;grid-template-columns:220px 1fr 360px;min-height:0;display:grid}.pane{border-right:1px solid var(--hairline);min-height:0}.pane-list{overflow-y:auto}.pane-editor{border-right:1px solid var(--hairline)}.pane-context{border-right:none;flex-direction:column;display:flex;overflow-y:auto}#exercise-list{flex-direction:column;padding:8px 0;display:flex}.ex-row{width:100%;color:var(--body-mid);text-align:left;cursor:pointer;font-size:13px;font-family:var(--editor-font-mono);background:0 0;border:none;align-items:center;gap:10px;padding:5px 14px;display:flex}.ex-row:hover{background:var(--canvas-soft);color:var(--body)}.ex-row.current{background:var(--canvas-soft);color:var(--ink)}.ex-row.solved{color:var(--status-ok)}.ex-row.not-runnable{color:var(--body-mid);opacity:.6;cursor:not-allowed}.ex-mark{text-align:center;width:14px}.ex-row.solved .ex-mark{color:var(--status-ok)}.ex-row.current .ex-mark{color:var(--accent)}.pane-editor{background:var(--canvas)}#editor{height:100%}.context-section{padding:14px 16px}.context-section h2{color:var(--body-mid);text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px;font-size:13px;font-weight:600}.context-section hr{border:none;border-top:1px solid var(--hairline);margin:0}#problem-body p{margin:0 0 10px;line-height:1.55}#problem-body code{background:var(--canvas-soft);font-family:var(--editor-font-mono);border-radius:3px;padding:1px 5px;font-size:13px}#problem-body ul{margin:0 0 10px;padding-left:20px}#problem-body li{margin-bottom:4px;line-height:1.55}.meta{color:var(--body-mid);font-size:12px}.meta code{font-family:var(--editor-font-mono)}.meta .warn{color:var(--status-err)}.verdict-box{min-height:20px;font-size:14px;line-height:1.5}.verdict-box .pass{color:var(--status-ok);margin:0 0 8px;font-weight:600}.verdict-box .err{color:var(--status-err);margin:0 0 8px;font-weight:600}.verdict-box .muted{color:var(--body-mid)}.verdict-box .banner{color:var(--body);background:var(--canvas-soft);border-left:3px solid var(--accent);border-radius:4px;padding:10px}.verdict-box .hint{color:var(--body);background:var(--canvas-soft);white-space:pre-wrap;border-radius:4px;padding:10px}.verdict-box .healed{background:var(--canvas-soft);font-family:var(--editor-font-mono);color:var(--body);border-radius:4px;padding:10px;font-size:13px;overflow-x:auto}.diff{border-collapse:collapse;width:100%;margin-top:8px;font-size:12px}.diff th{text-align:left;color:var(--body-mid);border-bottom:1px solid var(--hairline);padding:4px 8px;font-weight:600}.diff td{vertical-align:top;width:50%;padding:0}.diff td pre{font-family:var(--editor-font-mono);white-space:pre-wrap;word-break:break-word;color:var(--body);margin:0;padding:2px 8px}.diff-row td pre{background:#a66b6b26}.verdict-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.check-row{gap:8px;margin-top:12px;display:flex}#check,#next,#hint,#reveal{background:var(--canvas-soft);color:var(--body);border:1px solid var(--hairline);cursor:pointer;border-radius:4px;padding:7px 16px;font-size:13px}#check{background:var(--accent);color:#1a1a1a;border-color:var(--accent);font-weight:600}#check:hover{opacity:.9}#check:disabled{background:var(--canvas-mid);color:var(--body-mid);border-color:var(--hairline);cursor:not-allowed}#next{background:var(--status-ok);color:#0a0a0a;border-color:var(--status-ok);font-weight:600}.output-pane{border-top:1px solid var(--hairline);background:var(--canvas);flex-direction:column;flex:none;height:180px;display:flex}.output-header{color:var(--body-mid);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--hairline);padding:6px 16px;font-size:12px}#output-pad{font-family:var(--editor-font-mono);flex:auto;padding:8px 16px;font-size:13px;overflow:auto}.output-block{white-space:pre-wrap;word-break:break-word}.output-block.stderr{color:var(--body)}.output-block.stdout{color:var(--zig-yellow)}.attribution{color:var(--body-mid);border-top:1px solid var(--hairline);flex:none;padding:8px 16px;font-size:11px}@media (width<=900px){.shell{grid-template-columns:1fr}.pane-list,.pane-context{max-height:30vh;overflow-y:auto}.pane{border-right:none;border-bottom:1px solid var(--hairline)}}
