@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #e9e2d2;--dim: rgba(233,226,210,.38)}html,body{margin:0;height:100%;background:#050403;overflow:hidden}body{font-family:IBM Plex Mono,ui-monospace,monospace;color:var(--ink)}canvas#c{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;outline:none}#vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,#0000 45%,#0000008c)}#grain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.045}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}to{transform:translate(0)}}#intro{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#050403;transition:opacity .5s ease;cursor:pointer;z-index:5}#intro.gone{opacity:0!important;pointer-events:none}#intro .intro-main{display:flex;flex-direction:column;align-items:center;gap:18px;padding:0 16px;text-align:center}#intro h1{margin:6px 0 0;font:500 13px/1 IBM Plex Mono,monospace;letter-spacing:.55em;text-indent:.55em;color:var(--ink)}#intro .about span{display:block}#intro .about{margin:0;max-width:44em;font-size:12px;line-height:1.9;color:#e9e2d29e;letter-spacing:.02em}#intro .prompt{margin:8px 0 0;font-size:11px;color:var(--dim);letter-spacing:.1em}#intro:not(.loading) .prompt{animation:pulse 2.6s ease-in-out infinite}#intro .credit{position:absolute;left:16px;right:16px;bottom:20px;text-align:center;font-size:11px;letter-spacing:.06em;color:var(--dim)}#intro .credit a{color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(233,226,210,.25);padding-bottom:1px}#intro .credit a:hover{border-bottom-color:var(--ink)}#intro .credit a:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}@keyframes pulse{50%{opacity:.35}}#intro .mark{width:44px;height:44px;overflow:visible;margin-bottom:-6px}#intro .mark .roller{fill:#c8452f;transform-origin:20px 20px;opacity:0;transform:scale(.86);animation:roll 1.1s .35s cubic-bezier(.2,.7,.2,1) forwards}#intro .mark .shaft{fill:none;stroke:#f6f0e4e6;stroke-width:1.2;opacity:0;animation:markIn .6s 1s ease forwards}#intro h1{opacity:0;animation:markIn .9s 1.05s ease forwards}@keyframes roll{to{opacity:1;transform:scale(1)}}@keyframes feed{to{stroke-dashoffset:0}}@keyframes markIn{to{opacity:1}}@media(prefers-reduced-motion:reduce){#intro .mark *,#intro h1{animation:none!important;opacity:1!important;transform:none!important}#intro .prompt{animation:none!important}}#help{position:fixed;left:16px;bottom:14px;right:16px;font-size:11px;line-height:1.9;color:var(--dim);letter-spacing:.03em;pointer-events:none;transition:opacity .8s;opacity:0;z-index:2}#help.on{opacity:1}#help kbd{font:inherit;color:var(--ink);border:1px solid rgba(233,226,210,.18);border-radius:3px;padding:0 4px;margin-right:3px}#help span{margin-right:16px;white-space:nowrap;display:inline-block}#views{position:fixed;right:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:2;pointer-events:none}#views div{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:10px;letter-spacing:.08em;color:transparent;transition:color .4s}#views div.on{color:var(--dim)}#views i{width:5px;height:5px;border-radius:50%;background:#e9e2d22e;transition:background .4s,transform .4s}#views div.on i{background:var(--ink);transform:scale(1.3)}#actions{position:fixed;right:16px;bottom:14px;display:flex;gap:8px;z-index:4;opacity:0;pointer-events:none;transition:opacity .5s}#actions.on{opacity:1;pointer-events:auto}#actions button{font:500 11px IBM Plex Mono,monospace;letter-spacing:.05em;color:var(--ink);background:#0c0b0ab8;border:1px solid rgba(233,226,210,.22);border-radius:4px;padding:7px 12px;cursor:pointer}#actions button:hover{border-color:#e9e2d280}#actions button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}#toast{position:fixed;top:18px;left:50%;transform:translate(-50%);font-size:11px;letter-spacing:.1em;color:var(--ink);background:#0a0908b3;border:1px solid rgba(233,226,210,.14);padding:6px 12px;border-radius:4px;opacity:0;transition:opacity .4s;pointer-events:none;z-index:3}#toast.on{opacity:1}#mute{position:fixed;top:14px;right:14px;z-index:4;width:34px;height:34px;display:grid;place-items:center;color:var(--dim);background:transparent;border:1px solid transparent;border-radius:50%;cursor:pointer;transition:color .3s,border-color .3s}#mute:hover{color:var(--ink);border-color:#e9e2d233}#mute:focus-visible{outline:2px solid var(--ink);outline-offset:2px}#mute .cross,#mute.off .wave{display:none}#mute.off .cross{display:inline}#tools{position:fixed;left:50%;bottom:18px;transform:translate(-50%,8px);z-index:4;display:flex;gap:4px;padding:4px;background:#0e0d0cb8;border:1px solid rgba(233,226,210,.12);border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .4s,transform .4s}#tools.on{opacity:1;pointer-events:auto;transform:translate(-50%)}#tools button{display:flex;align-items:center;gap:7px;padding:7px 14px 7px 11px;border:0;border-radius:999px;cursor:pointer;font:500 11px IBM Plex Mono,monospace;letter-spacing:.06em;color:var(--dim);background:transparent;transition:color .2s,background .2s}#tools button:hover{color:var(--ink)}#tools button[aria-pressed=true]{color:var(--ink);background:#e9e2d21a}#tools button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}#tools .tip{fill:#d4583a}canvas#c.marking{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='11' cy='11' r='7' fill='none' stroke='%23f2ede1' stroke-opacity='.8' stroke-width='1.2'/%3E%3Ccircle cx='11' cy='11' r='2.4' fill='rgb(212,88,58)'/%3E%3C/svg%3E") 11 11,crosshair}#intro .device{margin:10px 0 0;max-width:26em;font-size:12px;line-height:1.8;color:var(--ink);opacity:.8}#intro.phone{cursor:default}@media(max-width:520px){#intro .about span{display:inline}#intro .about{font-size:12px}}canvas#c{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#views{pointer-events:auto}#views div{cursor:pointer;padding:4px 0}#kbd{position:fixed;left:0;bottom:0;width:1px;height:1px;opacity:0;border:0;padding:0;resize:none;font-size:16px;pointer-events:none}#touchbar{position:fixed;left:50%;bottom:18px;transform:translate(-50%,8px);z-index:4;display:flex;gap:4px;padding:4px;background:#0e0d0cb8;border:1px solid rgba(233,226,210,.12);border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .4s,transform .4s}#touchbar.on{opacity:1;pointer-events:auto;transform:translate(-50%)}#touchbar button,#tools button{min-height:36px}#touchbar button{display:flex;align-items:center;gap:6px;padding:7px 14px;border:0;border-radius:999px;cursor:pointer;font:500 12px IBM Plex Mono,monospace;letter-spacing:.05em;color:var(--dim);background:transparent}#touchbar button[aria-pressed=true]{color:var(--ink);background:#e9e2d21a}#touchbar button b{font-weight:700}#touchbar button u{text-underline-offset:3px}#tools kbd{font:500 10px IBM Plex Mono,monospace;color:var(--dim);border:1px solid rgba(233,226,210,.18);border-radius:3px;padding:0 4px;margin-left:2px}@media(pointer:coarse){#tools kbd{display:none}#touchbar button,#tools button{min-height:44px;padding-left:16px;padding-right:16px}#views{gap:18px}#views div{padding:8px 0 8px 18px}#views div span{color:var(--dim)}#mute{width:44px;height:44px}}#help{right:auto;max-width:calc(50% - 200px)}@media(max-width:900px){#help{max-width:calc(50% - 170px)}}#tools .sep{width:1px;margin:6px 4px;background:#e9e2d224}#tools button:disabled{opacity:.35;cursor:default}#tools button:disabled:hover{color:var(--dim)}#confirm{max-width:360px;padding:22px 22px 18px;border:1px solid rgba(233,226,210,.16);border-radius:10px;background:#121110;color:var(--ink);font:12px/1.7 IBM Plex Mono,monospace;box-shadow:0 20px 60px #0009}#confirm::backdrop{background:#0302028c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#confirm p{margin:0 0 18px}#confirm .row{display:flex;justify-content:flex-end;gap:8px}#confirm button{font:500 11px IBM Plex Mono,monospace;letter-spacing:.05em;padding:8px 14px;border-radius:6px;cursor:pointer;color:var(--ink);background:transparent;border:1px solid rgba(233,226,210,.2);min-height:36px}#confirm button.danger{background:#c8452f;border-color:#c8452f;color:#fff6ee}#confirm button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}#actions button[data-act=bin]{color:#e9a592}#tools button,#touchbar button,#confirm button{white-space:nowrap}
