@font-face{font-family:Shell Mono;src:url(/fonts/shell.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Shell Mono;src:url(/fonts/shell-hangul.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block;unicode-range:U+11??,U+3130-318F,U+AC00-D7A3}@font-face{font-family:Shell Mono;src:url(/fonts/shell-cjk.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block;unicode-range:U+3000-303F,U+4E00-9FFF,U+FF01-FF20}:root{--cell-font-size:16px;--cell-w:8px;--cell-h:20px;--shell-max-cols:160}@media (width<=480px){:root{--cell-font-size:14px;--cell-w:7px;--cell-h:18px}}html{font-size:var(--cell-font-size)}body{font-family:Shell Mono,ui-monospace,monospace;font-size:var(--cell-font-size);line-height:var(--cell-h);font-synthesis:none;font-kerning:none;font-variant-ligatures:none;text-rendering:geometricprecision}.hold-rows{min-height:calc(var(--cell-h) * var(--rows,0))}@media (width<=900px){.hold-rows{min-height:calc(var(--cell-h) * var(--rows-narrow,var(--rows,0)))}}@media (width<=480px){.hold-rows{min-height:calc(var(--cell-h) * var(--rows-tiny,var(--rows-narrow,var(--rows,0))))}}.cells-w-full{width:100%}.grid-snap{width:round(down, 100%, var(--cell-w));margin-inline:auto}:root{--c-bg:#080a0e;--c-bg-raised:#0e1218;--c-frame:#38434f;--c-frame-dim:#1c232b;--c-text:#ccd4dc;--c-dim:#74818f;--c-accent:#79c9b4;--c-hot:#e8a94b;--c-inv-bg:#ccd4dc;--c-inv-fg:#080a0e;--shell-mono:"Shell Mono", ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace;--nav-cols:30}*{box-sizing:border-box}html,body{background:var(--c-bg);color:var(--c-text);margin:0;padding:0}body{padding-block:var(--cell-h) 0;min-height:100vh}::selection{background:var(--c-inv-bg);color:var(--c-inv-fg)}.tui-frame{width:100%;color:var(--c-frame)}.shell{width:100%;width:round(down, 100%, var(--cell-w));max-width:calc(var(--cell-w) * var(--shell-cols,var(--shell-max-cols)));margin-inline:auto}.tui-border{height:var(--cell-h);line-height:var(--cell-h);white-space:pre;user-select:none;align-items:center;display:flex;overflow:hidden}.tui-corner{flex:none}.tui-cap{white-space:pre;flex:none}.tui-cap-text{background:var(--c-frame-dim);color:var(--c-accent);font-weight:400}.tui-cap-link:hover,.tui-cap-link:focus-visible{background:var(--c-accent);color:var(--c-inv-fg);outline:none}.tui-fill{flex:1 1 0;min-width:0;overflow:hidden}.tui-pane{padding-inline:var(--cell-w);position:relative}.tui-vrule{width:var(--cell-w);white-space:pre;line-height:var(--cell-h);color:var(--c-frame);user-select:none;pointer-events:none;position:absolute;top:0;bottom:0;overflow:hidden}.tui-pane>.tui-vrule:first-child{left:0}.tui-pane>.tui-vrule:last-child{right:0}.tui-pane-body{color:var(--c-text);min-width:0}.tui-pane-body.pad{padding:0 var(--cell-w)}.tui-pane-body>:last-child{margin-block-end:0}.shell-cols{grid-template-columns:calc(var(--cell-w) * var(--nav-cols)) minmax(0, 1fr);align-items:start;display:grid}.nav-frame,.sound-frame,.logo-frame,.content-frame{min-width:0;overflow:hidden}.main-frame{min-width:0}.nav-col{grid-area:1/1;min-width:0;position:sticky;top:0}.main-col{grid-area:1/2;min-width:0}.status-bar{grid-area:2/2}.logo{height:var(--cell-h);line-height:var(--cell-h);text-align:center;color:var(--c-accent);white-space:nowrap;text-decoration:none;display:block}.logo:hover,.logo:focus-visible{background:var(--c-inv-bg);color:var(--c-inv-fg);outline:none}.nav-tree{flex-direction:column;display:flex}.nav-root{height:var(--cell-h);line-height:var(--cell-h);color:var(--c-accent);margin:0;display:flex;overflow:hidden}.nav-root-name{white-space:pre;flex:none}.nav-root>.nav-toggle{color:var(--c-hot);flex:none;margin-left:auto}.nav-row{height:var(--cell-h);line-height:var(--cell-h);white-space:pre;color:var(--c-text);cursor:pointer;display:flex;overflow:hidden}.nav-group>summary{list-style:none}.nav-group>summary::-webkit-details-marker{display:none}.nav-mark{color:var(--c-hot);flex:none}.nav-mark:before{content:"+ "}.nav-group[open]>.nav-row .nav-mark:before{content:"- "}.nav-row.leaf .nav-mark:before{content:"  "}.nav-prefix{color:var(--c-frame);flex:none}.nav-label{min-width:0;overflow:hidden}.nav-row.branch .nav-label{color:var(--c-accent)}.nav-row.nav-sep{cursor:default;margin:0}.nav-sep-label{color:var(--c-dim);flex:none}.nav-row:not(.nav-sep):hover,.nav-row:focus-visible{background:var(--c-inv-bg);color:var(--c-inv-fg);outline:none}.nav-row:not(.nav-sep):hover .nav-prefix,.nav-row:focus-visible .nav-prefix,.nav-row:not(.nav-sep):hover .nav-mark,.nav-row:focus-visible .nav-mark,.nav-row:not(.nav-sep):hover .nav-label,.nav-row:focus-visible .nav-label{color:inherit}.nav-row.active{background:var(--c-hot);color:var(--c-inv-fg)}.nav-row.active .nav-prefix,.nav-row.active .nav-mark,.nav-row.active .nav-label{color:var(--c-inv-fg)}.sound-panel .ctrl{grid-template-columns:minmax(0, 1fr) calc(var(--cell-w) * 4);grid-auto-rows:var(--cell-h);gap:0 var(--cell-w);height:auto;display:grid}.sound-panel .ctrl>label{grid-column:1/-1}.sound-switch{min-height:var(--cell-h);justify-content:space-between;align-items:center;display:flex}.sound-pack-slot{min-width:0;display:flex}.ctrl-field.label-hidden>.ctrl-field-name{clip-path:inset(50%);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.sound-toggle.off{color:var(--c-dim)}.theme-list{flex-direction:column;display:flex}.theme-option{height:var(--cell-h);line-height:var(--cell-h);padding:0 var(--cell-w);font:inherit;text-align:start;white-space:pre;cursor:pointer;border:0;border-radius:0;align-items:center;display:flex;overflow:hidden}.theme-option:before{content:"  ";flex:none}.theme-option:hover:before,.theme-option:focus-visible:before,.theme-option.active:before{content:"> "}.theme-option:focus-visible{outline-offset:-1px;outline:1px solid}.theme-name,.theme-preview{flex:none}.shell-head{align-items:center;gap:calc(var(--cell-w) * 2);height:var(--cell-h);line-height:var(--cell-h);white-space:pre;display:flex}.shell-brand{min-width:0;color:var(--c-accent);overflow:hidden}.shell-nav{gap:calc(var(--cell-w) * 2);margin-inline-start:auto;display:flex}a{color:var(--c-text);text-decoration:none}a:hover,a:focus-visible{background:var(--c-inv-bg);color:var(--c-inv-fg);outline:none}.status-bar{align-items:center;gap:calc(var(--cell-w) * 2);height:var(--cell-h);line-height:var(--cell-h);padding-inline:var(--cell-w);background:var(--c-inv-bg);color:var(--c-inv-fg);white-space:pre;display:flex;overflow:hidden}.status-bar b{font-weight:400}.status-bar .spacer{margin-inline-start:auto}.logline{height:var(--cell-h);line-height:var(--cell-h);color:var(--c-dim);white-space:pre;margin:0;overflow:hidden}.logline .caret{color:var(--c-accent)}.stage{height:calc(var(--cell-h) * var(--stage-rows,26));background:var(--c-bg-raised);position:relative}.stage canvas{width:100%;height:100%;display:block}.stage canvas.camera-on{touch-action:pan-y;cursor:grab}.stage canvas.camera-on.dragging{cursor:grabbing}.stage-hint{inset:auto auto var(--cell-h) var(--cell-w);height:var(--cell-h);line-height:var(--cell-h);color:var(--c-dim);font:inherit;white-space:pre;cursor:pointer;background:0 0;border:0;padding:0;position:absolute}.stage-hint:before{content:"> ";color:var(--c-frame)}.stage-hint:hover,.stage-hint:focus-visible{background:var(--c-inv-bg);color:var(--c-inv-fg);outline:none}.stage-hint:hover:before,.stage-hint:focus-visible:before{color:var(--c-inv-fg)}.stage-hint[hidden]{display:none}.stats{gap:calc(var(--cell-w) * 2);height:var(--cell-h);line-height:var(--cell-h);white-space:pre;flex-wrap:wrap;display:flex;overflow:hidden}.stats b{color:var(--c-hot);font-weight:400}.ctrl{align-items:center;gap:var(--cell-w);height:var(--cell-h);line-height:var(--cell-h);display:flex}.ctrl>label{flex:0 0 calc(var(--cell-w) * 14);color:var(--c-dim);white-space:pre;overflow:hidden}.ctrl-commands{height:auto;min-height:var(--cell-h);flex-wrap:wrap}.ctrl-value{flex:0 0 calc(var(--cell-w) * 14);height:var(--cell-h);line-height:var(--cell-h);text-align:right;color:var(--c-hot);white-space:pre;overflow:hidden}.ctrl-value[role=button]{cursor:text}.ctrl-value[role=button]:hover,.ctrl-value[role=button]:focus-visible{background:var(--c-inv-bg);color:var(--c-inv-fg);outline:none}.ctrl>input.ctrl-value-edit{flex:0 0 calc(var(--cell-w) * 14);min-width:0;height:var(--cell-h);line-height:var(--cell-h);background:var(--c-bg-raised);color:var(--c-hot);font:inherit;text-align:right;border:0;border-radius:0;padding:0}input[type=range]{min-width:0;height:var(--cell-h);appearance:none;cursor:pointer;background:0 0;flex:auto;margin:0}input[type=range]::-webkit-slider-runnable-track{height:var(--cell-h);background:linear-gradient(var(--c-frame), var(--c-frame)) center / 100% 1px no-repeat}input[type=range]::-moz-range-track{height:var(--cell-h);background:linear-gradient(var(--c-frame), var(--c-frame)) center / 100% 1px no-repeat}input[type=range]::-webkit-slider-thumb{appearance:none;width:var(--cell-w);height:calc(var(--cell-h) - 6px);background:var(--c-hot);border:0;border-radius:0;margin-top:3px}input[type=range]::-moz-range-thumb{width:var(--cell-w);height:calc(var(--cell-h) - 6px);background:var(--c-hot);border:0;border-radius:0}input[type=range]:focus-visible{outline:1px solid var(--c-accent);outline-offset:-1px}input[type=text],input[type=file]{min-width:0;height:var(--cell-h);line-height:var(--cell-h);padding:0 var(--cell-w);background:var(--c-bg-raised);color:var(--c-text);font:inherit;border:0;border-radius:0;flex:auto}input:focus-visible{outline:1px solid var(--c-accent);outline-offset:-1px}.ctrl-row{align-items:center;gap:0 calc(var(--cell-w) * 2);flex-wrap:wrap;display:flex}.cell-center{overflow:clip visible}.cell-center>*{width:fit-content;max-width:100%}.ctrl-field{align-items:center;gap:var(--cell-w);height:var(--cell-h);line-height:var(--cell-h);display:flex}.ctrl-field-name{color:var(--c-dim);white-space:pre;flex:none}.tui-select{height:var(--cell-h);position:relative}.tui-trigger{align-items:center;list-style:none;display:flex}.tui-trigger::-webkit-details-marker{display:none}.tui-trigger-value{flex:none;overflow:hidden}.tui-trigger-mark:before{content:" ▼";color:var(--c-frame)}.tui-select[open] .tui-trigger-mark:before{content:" ▲"}.tui-trigger:hover .tui-trigger-mark:before,.tui-trigger:focus-visible .tui-trigger-mark:before{color:var(--c-inv-fg)}.tui-pop{top:var(--cell-h);z-index:30;width:calc(var(--cell-w) * var(--pop-cols,20));background:var(--c-bg);position:absolute;left:0}.tui-pop.floats{position:fixed;top:auto;left:auto}.tui-pop.from-right{left:auto;right:0}.tui-pop-line{height:var(--cell-h);line-height:var(--cell-h);color:var(--c-frame);white-space:pre;user-select:none;overflow:hidden}.tui-pop-body{position:relative}.tui-pop-rail{width:var(--cell-w);line-height:var(--cell-h);background:var(--c-bg);color:var(--c-frame);white-space:pre;pointer-events:none;user-select:none;position:absolute;top:0;right:0}.tui-pop-thumb{width:var(--cell-w);line-height:var(--cell-h);background:var(--c-bg);color:var(--c-text);white-space:pre;position:absolute;right:0}.tui-pop-list{max-height:calc(var(--cell-h) * var(--pop-rows,10));overscroll-behavior:contain;scrollbar-width:none;flex-direction:column;display:flex;overflow-y:auto}.tui-pop-list::-webkit-scrollbar{display:none}.tui-pop-item{width:100%;height:var(--cell-h);line-height:var(--cell-h);background:var(--c-bg);color:var(--c-text);font:inherit;text-align:start;white-space:pre;cursor:pointer;border:0;border-radius:0;flex:none;align-items:center;padding:0;display:flex;overflow:hidden}.tui-pop-item:before,.tui-pop-item:after{content:"│";background:var(--c-bg);color:var(--c-frame);flex:none}.tui-pop-mark{flex:none}.tui-pop-mark:before{content:"  "}.tui-pop-text{flex:auto;min-width:0;overflow:hidden}.tui-pop-item[aria-selected=true],.tui-pop-item[aria-current=true]{color:var(--c-hot)}.tui-pop-item[aria-selected=true] .tui-pop-mark:before,.tui-pop-item[aria-current=true] .tui-pop-mark:before{content:"> "}.tui-pop-item:hover,.tui-pop-item:focus-visible{background:var(--c-inv-bg);color:var(--c-inv-fg);outline:none}.tui-pop-item:hover .tui-pop-mark:before,.tui-pop-item:focus-visible .tui-pop-mark:before{content:"> "}.input-grid{gap:0 calc(var(--cell-w) * 2);grid-template-columns:1fr 1fr;display:grid}.input-grid:has(>.input-col:only-of-type){grid-template-columns:1fr}.input-col{flex-direction:column;min-width:0;display:flex}.input-head{justify-content:space-between;align-items:center;gap:0 calc(var(--cell-w) * 2);height:var(--cell-h);display:flex}.input-title{height:var(--cell-h);line-height:var(--cell-h);color:var(--c-accent);font-size:inherit;font-weight:inherit;white-space:pre;margin:0;overflow:hidden}.input-title:before{content:"> ";color:var(--c-frame)}.input-text,.ctrl-value-edit{caret-color:var(--c-hot);caret-shape:block}.input-text{height:calc(var(--cell-h) * 4);padding:0 var(--cell-w);background:var(--c-bg-raised);color:var(--c-text);font:inherit;line-height:var(--cell-h);resize:none;border:0;border-radius:0}.input-thumb{height:calc(var(--cell-h) * 4);background:var(--c-bg-raised);color:var(--c-accent);font:inherit;cursor:pointer;border:0;border-radius:0;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}.input-thumb:hover,.input-thumb:focus-visible{color:var(--c-inv-fg);background:var(--c-hot);outline:none}.input-thumb-image{object-fit:contain;max-width:100%;max-height:100%}.input-thumb-hint:before{content:"[ ";color:var(--c-frame)}.input-thumb-hint:after{content:" ]";color:var(--c-frame)}@media (width<=900px){.input-grid{grid-template-columns:1fr}}.ctrl-file-input{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ctrl-note{color:var(--c-dim);white-space:pre;flex:none;margin-inline-start:calc(var(--cell-w) * 2)}.btn-row{gap:0 calc(var(--cell-w) * 2);min-height:var(--cell-h);flex-wrap:wrap;display:flex}.btn{height:var(--cell-h);line-height:var(--cell-h);color:var(--c-text);font:inherit;white-space:pre;cursor:pointer;background:0 0;border:0;border-radius:0;padding:0}.btn:before{content:"[ ";color:var(--c-frame)}.btn:after{content:" ]";color:var(--c-frame)}.btn:disabled{color:var(--c-frame-dim);cursor:default}.btn:disabled:before,.btn:disabled:after{color:var(--c-frame-dim)}.btn:hover:not(:disabled),.btn:focus-visible{background:var(--c-inv-bg);color:var(--c-inv-fg);outline:none}.btn:hover:before,.btn:hover:after,.btn:focus-visible:before,.btn:focus-visible:after{color:var(--c-inv-fg)}.btn.active{background:var(--c-hot);color:var(--c-inv-fg)}.btn.active:before,.btn.active:after{color:var(--c-inv-fg)}.btn.primary{color:var(--c-accent)}.btn.primary:hover,.btn.primary:focus-visible{background:var(--c-accent);color:var(--c-inv-fg)}.thumb-grid{grid-template-columns:repeat(auto-fill, minmax(calc(var(--cell-w) * 26), 1fr));gap:var(--cell-w);padding-block:var(--cell-h);display:grid}.thumb-section{height:calc(var(--cell-h) * 2);line-height:calc(var(--cell-h) * 2);font-size:inherit;font-weight:inherit;color:var(--c-dim);white-space:pre;grid-column:1/-1;margin:0;overflow:hidden}.thumb-section:before{content:"-- ";color:var(--c-frame)}.tile{background:var(--c-bg-raised);color:inherit;display:block}.tile:hover,.tile:focus-visible{outline:1px solid var(--c-accent);background:var(--c-bg-raised);color:inherit}.tile canvas{width:100%;height:calc(var(--cell-h) * 6);display:block}.tile-name{gap:var(--cell-w);height:var(--cell-h);line-height:var(--cell-h);padding-inline:var(--cell-w);white-space:pre;color:var(--c-accent);display:flex;overflow:hidden}.page-heading{height:var(--cell-h);line-height:var(--cell-h)}.spec{gap:0 calc(var(--cell-w) * 2);margin:0 0 var(--cell-h);flex-wrap:wrap;display:flex}.spec dt{color:var(--c-dim);height:var(--cell-h);line-height:var(--cell-h);white-space:pre}.spec dd{margin:0 var(--cell-w) 0 0;color:var(--c-text);height:var(--cell-h);line-height:var(--cell-h);white-space:pre}.spec-note{color:var(--c-dim)}.prose{max-width:calc(var(--cell-w) * 76);color:var(--c-dim)}.home-note{line-height:var(--cell-h);color:var(--c-dim);text-align:center;margin:0}.code-radio{clip-path:inset(50%);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.code-tabs{gap:0 calc(var(--cell-w) * 2);min-height:var(--cell-h);flex-wrap:wrap;display:flex}.code-panels{margin-top:var(--cell-h);padding:var(--cell-h) var(--cell-w);background:var(--c-bg-raised)}.code-radio:checked~.code-panels{min-height:calc(var(--cell-h) * (var(--code-rows) + 3))}.code-hint{line-height:var(--cell-h);margin:0}.code-radio:checked~.code-panels .code-hint{display:none}.code-block{font:inherit;line-height:var(--cell-h);white-space:pre;color:var(--c-text);margin:0;padding:0;display:none;overflow-x:auto}.t-kw{color:var(--c-accent)}.t-type{color:color-mix(in oklab, var(--c-accent) 55%, var(--c-text))}.t-fn{color:color-mix(in oklab, var(--c-hot) 45%, var(--c-text))}.t-num{color:var(--c-hot)}.t-str{color:color-mix(in oklab, var(--c-hot) 65%, var(--c-text))}.t-com{color:var(--c-dim)}.t-punct{color:color-mix(in oklab, var(--c-text) 62%, var(--c-bg))}#code-lang-python:checked~.code-panels [data-lang=python],#code-lang-javascript:checked~.code-panels [data-lang=javascript],#code-lang-c:checked~.code-panels [data-lang=c],#code-lang-cpp:checked~.code-panels [data-lang=cpp],#code-lang-csharp:checked~.code-panels [data-lang=csharp],#code-lang-java:checked~.code-panels [data-lang=java]{display:block}#code-lang-python:checked~.code-tabs [data-lang=python],#code-lang-javascript:checked~.code-tabs [data-lang=javascript],#code-lang-c:checked~.code-tabs [data-lang=c],#code-lang-cpp:checked~.code-tabs [data-lang=cpp],#code-lang-csharp:checked~.code-tabs [data-lang=csharp],#code-lang-java:checked~.code-tabs [data-lang=java]{background:var(--c-hot);color:var(--c-inv-fg)}#code-lang-python:checked~.code-tabs [data-lang=python]:before,#code-lang-python:checked~.code-tabs [data-lang=python]:after,#code-lang-javascript:checked~.code-tabs [data-lang=javascript]:before,#code-lang-javascript:checked~.code-tabs [data-lang=javascript]:after,#code-lang-c:checked~.code-tabs [data-lang=c]:before,#code-lang-c:checked~.code-tabs [data-lang=c]:after,#code-lang-cpp:checked~.code-tabs [data-lang=cpp]:before,#code-lang-cpp:checked~.code-tabs [data-lang=cpp]:after,#code-lang-csharp:checked~.code-tabs [data-lang=csharp]:before,#code-lang-csharp:checked~.code-tabs [data-lang=csharp]:after,#code-lang-java:checked~.code-tabs [data-lang=java]:before,#code-lang-java:checked~.code-tabs [data-lang=java]:after{color:var(--c-inv-fg)}#code-lang-python:focus-visible~.code-tabs [data-lang=python],#code-lang-javascript:focus-visible~.code-tabs [data-lang=javascript],#code-lang-c:focus-visible~.code-tabs [data-lang=c],#code-lang-cpp:focus-visible~.code-tabs [data-lang=cpp],#code-lang-csharp:focus-visible~.code-tabs [data-lang=csharp],#code-lang-java:focus-visible~.code-tabs [data-lang=java]{outline:1px solid var(--c-accent);outline-offset:-1px}.ad-slot{min-height:calc(var(--cell-h) * 14);padding:var(--cell-h) var(--cell-w);color:var(--c-dim);justify-content:center;align-items:center;display:flex}h1,h2,h3{font-size:inherit;font-weight:400;line-height:var(--cell-h);color:var(--c-accent);margin:0}p{margin:0 0 var(--cell-h);color:var(--c-text)}.dim{color:var(--c-dim)}.shell-drawer-btn,.shell-drawer-close{display:none}@media (width<=900px){.shell-cols{grid-template-columns:minmax(0,1fr)}.main-col{grid-area:1/1}.status-bar{grid-area:2/1}.shell-head{flex-wrap:wrap;align-items:flex-start;row-gap:0;height:auto}.shell-brand{flex:1 0 100%}.shell-nav{row-gap:0;column-gap:var(--cell-w);flex-wrap:wrap;width:100%;margin-inline-start:0}.nav-col{display:none}.nav-col.is-open,.nav-col.is-sound{z-index:20;display:block;position:fixed;inset:0;overflow-y:auto}.nav-col.is-open{background:var(--c-bg)}.nav-col.is-open .nav-frame{display:block}.nav-col.is-open .sound-frame{display:none}.nav-col.is-sound{background:#000000b8;background:color-mix(in srgb, var(--c-bg) 88%, transparent)}.nav-col.is-sound .logo-frame,.nav-col.is-sound .nav-frame{display:none}.nav-col.is-sound .sound-frame{background:var(--c-bg)}.shell-drawer-btn,.shell-drawer-close{display:inline-block}body.shell-drawer-open{overflow:hidden}}@media (width<=480px){.stage{height:calc(var(--cell-h) * var(--stage-rows,18))}.shell-brand{display:none}}
