@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}:root{font-family:IBM Plex Mono,monospace;color:#d6d3dc;background:#0b080f;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:280px}button,textarea{font:inherit}button{color:inherit;cursor:pointer;background:none;border:0;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.25;cursor:default}button:focus-visible,a:focus-visible{outline:1px solid var(--accent);outline-offset:5px}::selection{background:#ff529a;color:#0b080f}.canvas{position:relative;width:100%;min-height:100svh;height:100svh;overflow:hidden;background:var(--background);color:var(--ink);transition:background-color .3s ease}.topbar{position:absolute;top:0;left:0;right:0;z-index:3;padding:25px 29px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.wordmark{display:flex;align-items:center;font-size:12px;letter-spacing:-.3px;color:color-mix(in srgb,var(--ink) 64%,transparent);-webkit-user-select:none;user-select:none}.wordmark-symbol{font-size:11px;letter-spacing:-2px;color:var(--accent);margin-right:14px;opacity:.9}.wordmark-separator{color:var(--accent)}.quiet-actions{display:flex;gap:12px;pointer-events:auto}.icon-button{display:grid;place-items:center;width:29px;height:29px;padding:5px;color:color-mix(in srgb,var(--ink) 38%,transparent);transition:color .2s ease}.icon-button:hover{color:var(--ink)}.drawing-surface{position:absolute;top:0;right:0;bottom:0;left:0;cursor:text}.artwork{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.artwork svg{display:block;width:100%;height:100%}.canvas-input{position:absolute;top:44%;left:10%;width:80%;height:60px;resize:none;opacity:0;border:0;outline:0;padding:0;font-size:16px;pointer-events:none;caret-color:transparent}.empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(20px,3.7vw,42px);font-weight:400;letter-spacing:-1.7px;color:color-mix(in srgb,var(--ink) 28%,transparent);white-space:nowrap;pointer-events:none}.empty-state span{color:var(--accent);opacity:.8}.bottom-bar{position:absolute;bottom:0;left:0;right:0;padding:26px 29px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;pointer-events:none}.keyboard-hints{display:flex;gap:20px;font-size:10px;letter-spacing:-.2px;color:color-mix(in srgb,var(--ink) 35%,transparent);-webkit-user-select:none;user-select:none}.keyboard-hints span{white-space:nowrap}.keyboard-hints b{font-weight:400;color:color-mix(in srgb,var(--ink) 55%,transparent);margin-right:4px}.canvas-controls{display:flex;align-items:center;gap:22px;pointer-events:auto}.palettes{display:flex;gap:8px;align-items:center}.swatch{width:25px;height:25px;border:1px solid transparent;border-radius:50%;padding:5px;display:grid;place-items:center;transition:border-color .2s ease}.swatch span{display:block;width:13px;height:13px;border-radius:50%;background:var(--swatch);opacity:.6;transition:opacity .2s ease,transform .2s ease}.swatch.selected{border-color:color-mix(in srgb,var(--swatch) 65%,transparent)}.swatch.selected span,.swatch:hover span{opacity:1}.swatch:hover span{transform:scale(1.12)}.exports{display:flex;gap:7px}.exports button{font-size:10px;border:1px solid color-mix(in srgb,var(--ink) 15%,transparent);border-radius:30px;min-width:48px;padding:10px 13px;color:color-mix(in srgb,var(--ink) 48%,transparent);transition:color .2s,border-color .2s}.exports button:hover:not(:disabled){color:var(--ink);border-color:color-mix(in srgb,var(--ink) 45%,transparent)}.notice{position:absolute;bottom:90px;left:50%;transform:translate(-50%);max-width:calc(100% - 40px);color:var(--accent);font-size:10px;text-align:center;z-index:4;padding:10px 14px;background:var(--background);border:1px solid color-mix(in srgb,var(--accent) 15%,transparent);border-radius:4px}.new-trace .trace{stroke-dasharray:1;animation:connect .34s cubic-bezier(.2,.7,.3,1) both}.new-glyph{animation:decode .22s steps(3,end) both}.is-erase .networks{animation:sever .16s steps(2,end)}.is-disconnect .word-bus{animation:sever .18s steps(2,end)}@keyframes connect{0%{stroke-dashoffset:1;opacity:.1}to{stroke-dashoffset:0}}@keyframes decode{0%{opacity:.15}35%{opacity:.8}65%{opacity:.35}to{opacity:1}}@keyframes sever{0%{opacity:.25}to{opacity:1}}dialog{border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);color:var(--ink);background:var(--background);border-radius:4px;padding:0;max-width:420px;width:calc(100% - 40px)}dialog::backdrop{background:#000b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.close-help{position:absolute;top:12px;right:12px}.help-content{padding:37px 30px 27px}.help-eyebrow{font-size:8px;letter-spacing:1.1px;color:var(--accent)}.help-content h1{font-size:23px;font-weight:500;letter-spacing:-1px;margin:23px 0 18px}.help-content p{font-size:11px;line-height:1.9;color:color-mix(in srgb,var(--ink) 58%,transparent)}.help-bottom{border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);padding-top:20px;margin-top:27px;display:flex;flex-direction:column;align-items:flex-start;gap:16px;font-size:9px}.help-bottom>span{color:color-mix(in srgb,var(--ink) 35%,transparent)}.help-bottom button{padding:0;color:var(--accent);font-size:10px}.inspiration{display:inline-block;margin-top:24px;font-size:8px;color:color-mix(in srgb,var(--ink) 35%,transparent);text-decoration:none}.inspiration:hover{color:var(--ink)}@media(max-width:800px){.keyboard-hints{gap:11px;font-size:9px}.canvas-controls{gap:13px}.palettes{gap:4px}.topbar{padding:20px}.bottom-bar{padding:22px 20px;gap:15px}}@media(max-width:650px){.bottom-bar{flex-direction:column-reverse;gap:24px;padding-bottom:max(22px,env(safe-area-inset-bottom))}.canvas-controls{justify-content:space-between;width:100%}.palettes{gap:8px}.keyboard-hints{justify-content:space-between;width:100%;font-size:9px;gap:5px}.exports button{min-width:48px;padding:10px 12px}.notice{bottom:126px}.wordmark{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:360px){.palettes{gap:3px}.swatch{width:23px}.canvas-controls{gap:10px}.exports button{min-width:43px;padding:10px}.keyboard-hints{font-size:7px}}.signal-field{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.84}.artwork{transform:translate3d(var(--pan-x, 0px),var(--pan-y, 0px),0);will-change:transform}.artwork .art-background{fill:transparent}.atmosphere{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 35% 40%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 46%),radial-gradient(ellipse at 70% 58%,color-mix(in srgb,var(--secondary) 7%,transparent),transparent 43%);opacity:.75;animation:field-breath 12s ease-in-out infinite alternate}.artwork .glyphs{filter:drop-shadow(0 0 17px color-mix(in srgb,var(--accent) 10%,transparent))}.signal-flow{stroke-dasharray:.04 .96;animation:signal-travel 6s linear infinite;opacity:.8;filter:drop-shadow(0 0 2px var(--accent))}.topbar,.bottom-bar{animation:interface-in 1.1s ease both}.bottom-bar{animation-delay:.1s}.sound-button{display:flex;align-items:center;gap:7px;font-size:9px;padding:4px 11px 4px 0;margin-right:5px;color:color-mix(in srgb,var(--ink) 45%,transparent);transition:color .2s}.sound-button:hover,.sound-button.on{color:var(--accent)}.equalizer{display:none;align-items:center;gap:2px;height:13px;width:12px}.sound-button.on .equalizer{display:flex}.equalizer i{display:block;width:2px;height:7px;background:currentColor;animation:meter 1.1s ease-in-out infinite alternate}.equalizer i:nth-child(2){animation-duration:.8s;animation-delay:-.3s;height:11px}.equalizer i:nth-child(3){animation-duration:1.3s;animation-delay:-.6s;height:5px}.icon-button,.exports button{transition:color .2s,border-color .2s,transform .2s}.icon-button:hover,.exports button:hover:not(:disabled){transform:translateY(-2px)}.swatch.selected{box-shadow:0 0 15px color-mix(in srgb,var(--swatch) 12%,transparent)}.is-live .wordmark-symbol{text-shadow:0 0 10px color-mix(in srgb,var(--accent) 35%,transparent)}.is-still .atmosphere,.is-still .signal-flow,.is-still .equalizer i{animation-play-state:paused}.is-still .new-trace .trace,.is-still .new-glyph,.is-still .networks,.is-still .word-bus{animation:none}.is-still .artwork{transform:none}.is-reset .atmosphere{animation:reset-wave .8s ease-out both}@keyframes field-breath{0%{opacity:.45;transform:scale(.96)}to{opacity:.9;transform:scale(1.05)}}@keyframes signal-travel{0%{stroke-dashoffset:1}to{stroke-dashoffset:-1}}@keyframes interface-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes meter{to{transform:scaleY(.3);opacity:.5}}@keyframes reset-wave{0%{opacity:1;transform:scale(.7)}to{opacity:.45;transform:scale(1.3)}}@media(max-width:650px){.quiet-actions{gap:5px}.sound-button{margin-right:2px;padding-right:4px}.wordmark-symbol{margin-right:8px}.equalizer{display:none!important}}@media(max-width:360px){.sound-button>span:not(.equalizer){display:none}}.living-cell{animation:cell-breathe 5.8s ease-in-out infinite;animation-delay:var(--phase);transform-origin:0 -25px}.cell-hover{transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .6s;transform-origin:0 0}.cell-hit{pointer-events:all;cursor:text}.is-live .living-cell:hover .cell-hover{transform:translateY(-8px) scale(1.07);filter:drop-shadow(0 0 5px var(--accent))}.is-live .living-cell:hover .chip-orbit{animation-duration:1.5s}.is-live .living-cell:hover .signal-flow{stroke-width:2.7;opacity:1}.canopy{animation:canopy-grow 1.8s cubic-bezier(.16,.8,.2,1) both;transform-origin:0 0}.canopy .trace{stroke-dasharray:1;animation:trace-grow 1.6s ease both}.chip-bloom{animation:node-bloom .9s cubic-bezier(.16,1.4,.3,1) both;animation-delay:var(--bloom-delay)}.chip-orbit{animation:chip-turn 9s linear infinite;animation-delay:var(--phase)}.terminal-node{animation:node-light 3.4s ease-in-out infinite;animation-delay:var(--phase)}.glyph-birth{animation:glyph-hatch .85s cubic-bezier(.16,1,.3,1) both;transform-origin:0 0}.glyph{transition:fill .8s}.roots{animation:root-grow 1.6s ease both;transform-origin:0 0}.data-bit{animation:bit-stream 2.5s ease-in-out infinite;animation-delay:var(--bit-delay)}.artwork .signal-flow{animation-duration:var(--flow-speed)!important}@keyframes cell-breathe{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(var(--sway))}}@keyframes canopy-grow{0%{transform:scaleY(.03) scaleX(.3);opacity:0}18%{opacity:1}65%{transform:scaleY(.8) scaleX(.95)}to{transform:scale(1)}}@keyframes trace-grow{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes node-bloom{0%{transform:scale(0) rotate(-90deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes chip-turn{to{transform:rotate(360deg)}}@keyframes node-light{0%,to{opacity:.45}50%{opacity:1}}@keyframes glyph-hatch{0%{transform:scale(.3,.05);opacity:.1}65%{transform:scale(1.02,1.05);opacity:1}to{transform:scale(1)}}@keyframes root-grow{0%{transform:scaleY(.05);opacity:0}to{transform:scaleY(1);opacity:1}}@keyframes bit-stream{0%,to{opacity:.24}40%{opacity:.95}}.protocol-effect{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;color:var(--accent)}.protocol-effect>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.hardware-reveal{animation:hardware-materialize 1.1s cubic-bezier(.2,.8,.2,1) both}.hardware-hover{animation:hardware-hover 5s ease-in-out infinite;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 35%,transparent))}.protocol-caption{opacity:.65}.activation-wave{position:absolute;width:80vmax;height:80vmax;left:50%;top:50%;border:1px solid var(--accent);border-radius:50%;box-shadow:inset 0 0 75px color-mix(in srgb,var(--accent) 15%,transparent),0 0 60px color-mix(in srgb,var(--accent) 15%,transparent);animation:protocol-wave 1.9s cubic-bezier(.2,.6,.2,1) both}.protocol-wash{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 25%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 60%);animation:wash-in 1.7s ease both}.hardware-spin{animation:chip-turn 3s linear infinite}.hardware-counterspin{animation:chip-turn 18s linear reverse infinite}.core-die{animation:core-heat 2.8s ease-in-out infinite;transform-origin:0 0}.hardware-wire,.memory-bank{animation:memory-flow 1.6s ease-in-out infinite;animation-delay:calc(var(--i, 0) * -.11s)}.data-stream{stroke-dasharray:.1 .07;animation:signal-travel 3s linear infinite}.disk-arm{animation:disk-seek 4s ease-in-out infinite alternate;transform-origin:39px -36px}.boost-lines{stroke-dasharray:10 7;animation:boost-flow 1s linear infinite}.lock-shackle{animation:unlock 1.3s ease both;transform-origin:-24px -8px}.cipher-orbit{animation:cipher-shift 3.6s steps(2,end) infinite}.virus-body{animation:virus-drift 4s steps(5,end) infinite}.quarantine-ring{animation:chip-turn 30s linear reverse infinite}.protocol-overdrive .hardware-spin{animation-duration:.85s}.canvas[data-protocol=cpu] .signal-field,.canvas[data-protocol=overdrive] .signal-field{opacity:1}.canvas[data-protocol=gpu] .protocol-wash{background:radial-gradient(ellipse at 18% 40%,#4affcf17,transparent 50%),radial-gradient(ellipse at 82% 60%,#a575ff22,transparent 50%),radial-gradient(ellipse at 50% 10%,#6acaff12,transparent 45%);animation:prism-drift 9s ease-in-out infinite alternate}.canvas[data-protocol=gpu] .glyph{filter:drop-shadow(2px 0 4px #bd83ff55) drop-shadow(-2px 0 4px #82ffce44)}.canvas[data-protocol=virus] .cell-hover,.canvas[data-protocol=hack] .cell-hover{animation:contained-glitch 6s steps(1,end) infinite;animation-delay:var(--phase)}.canvas[data-protocol=overdrive] .living-cell{animation-duration:2.4s}.secret-hint b{color:var(--accent);font-weight:400}@keyframes hardware-materialize{0%{opacity:0;transform:translateY(20px) scale(.65)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes hardware-hover{50%{transform:translateY(-4px)}}@keyframes protocol-wave{0%{transform:translate(-50%,-50%) scale(.05);opacity:.65}to{transform:translate(-50%,-50%) scale(1.9);opacity:0}}@keyframes wash-in{0%{opacity:0}to{opacity:1}}@keyframes core-heat{0%,to{fill:transparent}50%{fill:color-mix(in srgb,var(--accent) 25%,transparent)}}@keyframes memory-flow{0%,to{opacity:.35}40%{opacity:1}}@keyframes disk-seek{to{transform:rotate(-24deg)}}@keyframes boost-flow{to{stroke-dashoffset:-34}}@keyframes unlock{0%{transform:translateY(0) rotate(0)}to{transform:translateY(-12px) rotate(-14deg)}}@keyframes cipher-shift{50%{opacity:.3;transform:translateY(3px)}}@keyframes virus-drift{25%{transform:translate(2px,-2px)}75%{transform:translate(-2px,1px)}}@keyframes prism-drift{0%{transform:scale(1);opacity:.6}to{transform:scale(1.2) rotate(8deg);opacity:1}}@keyframes contained-glitch{0%,86%,92%,to{transform:translate(0)}88%{transform:translate(3px,-1px)}90%{transform:translate(-2px,1px)}}.is-still .artwork *,.is-still .protocol-effect *{animation-play-state:paused!important;transition:none}.is-still .canopy,.is-still .canopy .trace,.is-still .chip-bloom,.is-still .glyph-birth,.is-still .roots,.is-still .hardware-reveal,.is-still .protocol-wash{animation:none!important}.is-still .activation-wave{display:none}@media(prefers-reduced-motion:reduce){.activation-wave{display:none}}
