@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(../media/schibsted-grotesk-latin-ext-wght-normal.1mn47ffbmm65q.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(../media/schibsted-grotesk-latin-wght-normal.1n5gamcxs9g-p.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-ext-wght-normal.1ladf10s224e1.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-wght-normal.0x7cg5h5x34js.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-greek-wght-normal.1k07jbkicvzf3.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-vietnamese-wght-normal.0a13tgqsi9z78.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-ext-wght-normal.3rxtet6g9i1k3.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-wght-normal.2rmhnsrc80fag.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:400;src:url(../media/kalam-devanagari-400-normal.1auyvic40g0h2.woff2)format("woff2"),url(../media/kalam-devanagari-400-normal.1u9d3hhjcqy44.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:400;src:url(../media/kalam-latin-ext-400-normal.2tuah9gsb36-i.woff2)format("woff2"),url(../media/kalam-latin-ext-400-normal.0-ppf4drhx8la.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Kalam;font-style:normal;font-display:swap;font-weight:400;src:url(../media/kalam-latin-400-normal.1-9e4vl8a8-if.woff2)format("woff2"),url(../media/kalam-latin-400-normal.0c2u9btsv1byy.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(../media/kalam-devanagari-700-normal.066296j0mdg9u.woff2)format("woff2"),url(../media/kalam-devanagari-700-normal.1dei8wbf0seoq.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(../media/kalam-latin-ext-700-normal.1anzhv-4dr2sa.woff2)format("woff2"),url(../media/kalam-latin-ext-700-normal.1zkm6x8i5obgk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(../media/kalam-latin-700-normal.41yr755lkswx3.woff2)format("woff2"),url(../media/kalam-latin-700-normal.2iuhv1zyq6zeb.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root,:root[data-theme=grafite]{--bg:#1e1e1e;--bg-side:#181818;--bg-raise:#252526;--bg-node:#2d2d30;--bg-hover:#2a2d2e;--bg-input:#313131;--border:#2b2b2b;--border-strong:#454545;--fg:#ccc;--fg-strong:#fff;--fg-dim:#a0a0a0;--fg-mute:#858585;--accent:#3794ff;--accent-bg:#0e639c;--accent-bg-hover:#17b;--accent-fg:#fff;--status-bg:#007acc;--status-fg:#fff;--select:#264f78;--line-active:#282828;--guide:#404040;--danger:#f48771;--danger-bg:#3b1f1c;--ok:#89d185;--b0:gold;--b1:orchid;--b2:#179fff;--br1:gold;--br2:orchid;--br3:#179fff;--tk-kw:#c586c0;--tk-dir:#569cd6;--tk-id:#9cdcfe;--tk-label:#ce9178;--tk-elabel:#dcdcaa;--tk-str:#ce9178;--tk-comment:#6a9955;--ar-solid:#4ec9b0;--ar-dotted:#ff9e64;--ar-thick:#ff6b81;--ar-plain:#8b949e;--sans:"Schibsted Grotesk Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;--radius-sm:4px;--radius:6px;--radius-lg:10px;--ease:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.12s;--dur:.2s;--dur-slow:.32s;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 6px 18px #00000052, 0 1px 3px #0000003d;--shadow-lg:0 24px 64px #00000080, 0 4px 12px #0000004d;--overlay:#00000094;--ring:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=tokyo]{--bg:#1a1b26;--bg-side:#16161e;--bg-raise:#1f2335;--bg-node:#24283b;--bg-hover:#292e42;--bg-input:#24283b;--border:#101014;--border-strong:#3b4261;--fg:#c0caf5;--fg-strong:#e6ebff;--fg-dim:#9aa5ce;--fg-mute:#7982a9;--accent:#7aa2f7;--accent-bg:#3d59a1;--accent-bg-hover:#4a69bd;--accent-fg:#fff;--status-bg:#3d59a1;--status-fg:#fff;--select:#33467c;--line-active:#1f2335;--guide:#2f334d;--danger:#f7768e;--danger-bg:#36202b;--ok:#9ece6a;--b0:#e0af68;--b1:#bb9af7;--b2:#7dcfff;--br1:#e0af68;--br2:#bb9af7;--br3:#7dcfff;--tk-kw:#bb9af7;--tk-dir:#7aa2f7;--tk-id:#7dcfff;--tk-label:#9ece6a;--tk-elabel:#e0af68;--tk-str:#9ece6a;--tk-comment:#7982a9;--ar-solid:#73daca;--ar-dotted:#ff9e64;--ar-thick:#f7768e;--ar-plain:#8089b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=nord]{--bg:#2e3440;--bg-side:#292e39;--bg-raise:#3b4252;--bg-node:#3b4252;--bg-hover:#434c5e;--bg-input:#3b4252;--border:#232831;--border-strong:#4c566a;--fg:#d8dee9;--fg-strong:#eceff4;--fg-dim:#aab3c5;--fg-mute:#8c97ad;--accent:#88c0d0;--accent-bg:#5e81ac;--accent-bg-hover:#6d90bb;--accent-fg:#fff;--status-bg:#5e81ac;--status-fg:#fff;--select:#434c5e;--line-active:#333a47;--guide:#434c5e;--danger:#e08a92;--danger-bg:#43303a;--ok:#a3be8c;--b0:#ebcb8b;--b1:#b48ead;--b2:#81a1c1;--br1:#ebcb8b;--br2:#b48ead;--br3:#81a1c1;--tk-kw:#b48ead;--tk-dir:#81a1c1;--tk-id:#88c0d0;--tk-label:#a3be8c;--tk-elabel:#ebcb8b;--tk-str:#a3be8c;--tk-comment:#8a96ad;--ar-solid:#8fbcbb;--ar-dotted:#d08770;--ar-thick:#e07b86;--ar-plain:#98a2b6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=claro]{--bg:#fff;--bg-side:#f3f3f3;--bg-raise:#f8f8f8;--bg-node:#fff;--bg-hover:#e8e8e8;--bg-input:#fff;--border:#e0e0e0;--border-strong:#c4c4c4;--fg:#3b3b3b;--fg-strong:#000;--fg-dim:#616161;--fg-mute:#767676;--accent:#0066b8;--accent-bg:#005fb8;--accent-bg-hover:#0a52a0;--accent-fg:#fff;--status-bg:#005fb8;--status-fg:#fff;--select:#cce4ff;--line-active:#f3f3f3;--guide:#d4d4d4;--danger:#c4251f;--danger-bg:#fdecea;--ok:#2e7d32;--b0:#986801;--b1:#a626a4;--b2:#4078f2;--br1:#986801;--br2:#a626a4;--br3:#4078f2;--tk-kw:#a626a4;--tk-dir:#4078f2;--tk-id:#0369a1;--tk-label:#3f7a37;--tk-elabel:#986801;--tk-str:#3f7a37;--tk-comment:#6b6f76;--ar-solid:#0f7f6d;--ar-dotted:#b85400;--ar-thick:#c8243f;--ar-plain:#696c77;--shadow-sm:0 1px 2px #0f172a14;--shadow-md:0 6px 18px #0f172a1a, 0 1px 3px #0f172a14;--shadow-lg:0 24px 64px #0f172a2e, 0 4px 12px #0f172a14;--overlay:#0f172a61;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=mono]{--bg:#fff;--bg-side:#f5f5f5;--bg-raise:#fff;--bg-node:#fff;--bg-hover:#e9e9e9;--bg-input:#fff;--border:#bdbdbd;--border-strong:#6b6b6b;--fg:#111;--fg-strong:#000;--fg-dim:#333;--fg-mute:#5a5a5a;--accent:#000;--accent-bg:#000;--accent-bg-hover:#333;--accent-fg:#fff;--status-bg:#000;--status-fg:#fff;--select:#d9d9d9;--line-active:#f0f0f0;--guide:#c8c8c8;--danger:#000;--danger-bg:#eee;--ok:#000;--b0:#000;--b1:#454545;--b2:#6b6b6b;--br1:#000;--br2:#454545;--br3:#000;--tk-kw:#000;--tk-dir:#000;--tk-id:#222;--tk-label:#444;--tk-elabel:#444;--tk-str:#444;--tk-comment:#6b6b6b;--ar-solid:#000;--ar-dotted:#000;--ar-thick:#000;--ar-plain:#6b6b6b;--shadow-sm:none;--shadow-md:0 0 0 1px #000;--shadow-lg:0 0 0 2px #000;--overlay:#fffc;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=mono] .tk-b1{font-weight:800}:root[data-theme=mono] .tk-b2{text-decoration:underline}:root[data-theme=mono] .tk-arrow-dotted{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:root[data-theme=mono] .tk-kw{font-weight:700}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:76px}body{background:var(--bg);color:var(--fg);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}::selection{background:var(--select);color:var(--fg-strong)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit;text-decoration:none}h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}code,kbd,pre{font-family:var(--mono)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:min(1180px,100% - 48px);margin-inline:auto}.kbd{border:1px solid var(--border-strong);background:var(--bg-raise);color:var(--fg);font:11px/1.6 var(--mono);border-bottom-width:2px;border-radius:3px;padding:0 5px;display:inline-block}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}body :not(.mm-svg *):not([id^=dnexograph-mmd]):not([id^=dnexograph-mmd] *):not(.sketch):not(.sketch *){transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-raise);min-height:32px;color:var(--fg);white-space:nowrap;box-shadow:var(--shadow-sm);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur-fast) var(--ease);justify-content:center;align-items:center;gap:6px;padding:7px 12px;font-weight:500;line-height:1.2;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--fg-mute);color:var(--fg-strong)}.btn:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.btn svg{flex:none}.btn-sm{min-height:28px;padding:5px 10px;font-size:12.5px}.btn-lg{border-radius:var(--radius-lg);min-height:44px;padding:12px 22px;font-size:15px}.btn-primary{background:var(--accent-bg);border-color:var(--accent-bg);color:var(--accent-fg)}.btn-primary:hover:not(:disabled){background:var(--accent-bg-hover);border-color:var(--accent-bg-hover);color:var(--accent-fg);box-shadow:0 4px 14px color-mix(in srgb, var(--accent-bg) 35%, transparent)}.btn-danger{color:var(--danger)}.btn-danger:hover:not(:disabled){border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.full{width:100%}.icon-btn{border-radius:var(--radius);width:30px;height:30px;color:var(--fg-dim);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);background:0 0;border:1px solid #0000;flex:none;place-items:center;padding:0;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--fg-strong)}.icon-btn:active:not(:disabled){transform:scale(.94)}.field{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-input);width:100%;min-height:32px;color:var(--fg);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur) var(--ease);padding:6px 9px}.field:hover{border-color:var(--fg-mute)}.field:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.field.mono{font-family:var(--mono)}textarea.field{resize:vertical;line-height:1.5}.search-box{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-input);min-height:32px;color:var(--fg-dim);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur) var(--ease);align-items:center;gap:7px;padding:0 9px;display:flex}.search-box:hover{border-color:var(--fg-mute)}.search-box:focus-within{border-color:var(--accent);box-shadow:var(--ring);color:var(--accent)}.search-box input{min-width:0;color:var(--fg);background:0 0;border:0;outline:none;flex:1;padding:6px 0}.brand{letter-spacing:-.02em;white-space:nowrap;color:var(--fg-strong);align-items:center;gap:9px;font-size:17px;font-weight:700;display:inline-flex}.brand-mark{font:700 16px/1 var(--mono);letter-spacing:-.04em;align-items:baseline;display:inline-flex}.brand-mark .b1{color:var(--b0)}.brand-mark .b2{color:var(--b1)}.brand-mark .n{color:var(--b2)}.brand-name span{color:var(--fg-dim);font-weight:400}.theme-switcher{position:relative}.theme-menu{z-index:200;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-raise);width:290px;box-shadow:var(--shadow-lg);transform-origin:100% 0;animation:pop-in var(--dur) var(--ease-out);padding:5px;position:absolute;top:calc(100% + 8px);right:0}.theme-option{border-radius:var(--radius);text-align:left;width:100%;transition:background var(--dur-fast) var(--ease);background:0 0;border:0;grid-template-columns:auto 1fr 16px;align-items:center;gap:12px;padding:8px;display:grid}.theme-option:hover{background:var(--bg-hover)}.theme-option .swatch{border:1px solid var(--border-strong);border-radius:3px;width:40px;height:22px;display:flex;overflow:hidden}.theme-option .swatch i{flex:1}.theme-option strong{color:var(--fg-strong);font-weight:600;display:block}.theme-option small{color:var(--fg-dim);font-size:12px;display:block}.theme-option .check{color:var(--accent)}.tk-kw{color:var(--tk-kw)}.tk-dir{color:var(--tk-dir)}.tk-id{color:var(--tk-id)}.tk-label{color:var(--tk-label)}.tk-elabel{color:var(--tk-elabel)}.tk-str{color:var(--tk-str)}.tk-comment{color:var(--tk-comment);font-style:italic}.tk-b0{color:var(--b0);font-weight:600}.tk-b1{color:var(--b1);font-weight:600}.tk-b2{color:var(--b2);font-weight:600}.tk-bad{color:var(--danger);-webkit-text-decoration:underline wavy var(--danger);text-decoration:underline wavy var(--danger);text-underline-offset:3px;font-weight:700}.tk-match{background:var(--select);outline-offset:-1px;border-radius:2px;outline:1px solid}.tk-arrow-solid{color:var(--ar-solid);font-weight:700}.tk-arrow-dotted{color:var(--ar-dotted);font-weight:700}.tk-arrow-thick{color:var(--ar-thick);font-weight:800}.tk-arrow-plain{color:var(--ar-plain);font-weight:700}.ce-guide{vertical-align:top;width:2ch;height:20px;box-shadow:inset 1px 0 0 var(--guide);display:inline-block}.ce{background:var(--bg);height:100%;min-height:0;font:13px/20px var(--mono);display:flex;position:relative;overflow:hidden}.ce-gutter{border-right:1px solid var(--border);background:var(--bg);text-align:right;-webkit-user-select:none;user-select:none;flex:none;overflow:hidden}.ce-gutter-inner{padding-top:8px}.ce-num{height:20px;color:var(--fg-mute);padding-right:12px}.ce-num.is-active{color:var(--fg-strong)}.ce-num.has-error{color:var(--danger);font-weight:700}.ce-body{flex:1;min-width:0;position:relative;overflow:hidden}.ce-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.ce-content{min-width:100%;position:absolute;top:8px;left:0}.ce-active-line{background:var(--line-active);height:20px;box-shadow:inset 0 0 0 1px var(--border);position:absolute;left:0;right:0}.ce-line{white-space:pre;height:20px;padding:0 12px;position:relative}.ce-line.has-error{background:var(--danger-bg);box-shadow:inset 2px 0 0 var(--danger)}.ce-input{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--fg-strong);font:inherit;white-space:pre;tab-size:2;background:0 0;border:0;outline:none;margin:0;padding:8px 12px;line-height:20px;position:absolute;inset:0;overflow:auto}.ce-input::placeholder{color:var(--fg-mute)}.ce-input::selection{background:var(--select);color:#0000}.studio{background:var(--bg);grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);height:100dvh;display:grid}.titlebar{border-bottom:1px solid var(--border);background:var(--bg-side);align-items:center;gap:14px;min-height:46px;padding:6px 12px;display:flex}.doc-title{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.doc-title input{border-radius:var(--radius);width:100%;min-width:120px;max-width:360px;color:var(--fg-strong);text-overflow:ellipsis;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur) var(--ease);background:0 0;border:1px solid #0000;padding:5px 9px;font-weight:600}.doc-title input:hover{border-color:var(--border-strong)}.doc-title input:focus{border-color:var(--accent);background:var(--bg-input);box-shadow:var(--ring);outline:none}.saved{color:var(--fg-dim);white-space:nowrap;transition:color var(--dur) var(--ease);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.saved svg{color:var(--ok);transition:color var(--dur) var(--ease)}.saved.is-saving svg{color:var(--fg-mute);animation:.9s linear infinite spin}.saved.is-error,.saved.is-error svg{color:var(--danger)}.titlebar-actions{align-items:center;gap:6px;display:flex}.tabs{border-bottom:1px solid var(--border);background:var(--bg-side);align-items:flex-end;display:flex;overflow-x:auto}.tab{border:0;border-top:2px solid #0000;border-right:1px solid var(--border);background:var(--bg-side);color:var(--fg-dim);white-space:nowrap;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), border-color var(--dur) var(--ease);align-items:center;gap:8px;margin-bottom:-1px;padding:10px 18px;font-size:13.5px;display:inline-flex;position:relative}.tab:hover{color:var(--fg-strong);background:var(--bg-hover)}.tab svg{transition:color var(--dur) var(--ease)}.tab[aria-selected=true] svg{color:var(--accent)}.tab[aria-selected=true]{border-top-color:var(--accent);border-bottom:1px solid var(--bg);background:var(--bg);color:var(--fg-strong);font-weight:600}.tabs-hint{color:var(--fg-dim);white-space:nowrap;align-self:center;margin-left:auto;padding:0 16px;font-size:13px}.tabpanel{min-height:0;animation:fade-in var(--dur) var(--ease);overflow:hidden}.statusbar{background:var(--status-bg);min-height:24px;color:var(--status-fg);font:12px/1 var(--mono);white-space:nowrap;align-items:center;padding:0 4px;display:flex;overflow:hidden}.status-item{align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.status-item.push{margin-left:auto}.status-item.has-error{background:var(--danger);color:#000;font-weight:700}.toast-region{z-index:300;pointer-events:none;justify-content:center;width:max-content;max-width:calc(100% - 24px);display:flex;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-raise);color:var(--fg-strong);box-shadow:var(--shadow-lg);animation:toast-in var(--dur-slow) var(--ease-out), toast-out .24s var(--ease) 2.95s forwards;align-items:center;gap:9px;padding:10px 16px 10px 13px;font-size:13px;display:inline-flex}.toast svg{background:color-mix(in srgb, var(--ok) 18%, transparent);color:var(--ok);box-sizing:content-box;border-radius:50%;flex:none;padding:3px}.side-block{border-bottom:1px solid var(--border);padding:14px 14px 16px}.side-title{color:var(--fg-dim);align-items:center;gap:6px;margin-bottom:10px;font-size:12.5px;font-weight:600;display:flex}.side-help{color:var(--fg-dim);font-size:12.5px;line-height:1.55}.side-help b{color:var(--fg);font-weight:600}.board{grid-template-columns:260px minmax(0,1fr) 270px;height:100%;min-height:0;display:grid}.board-left,.board-right{background:var(--bg-side);min-height:0;overflow:auto}.board-left{border-right:1px solid var(--border)}.board-right{border-left:1px solid var(--border)}.shape-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.shape-tool{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-raise);text-align:center;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), color var(--dur-fast) var(--ease);flex-direction:column;align-items:center;gap:7px;padding:11px 4px;font-size:12px;line-height:1.2;display:flex}.shape-tool svg{color:var(--fg-dim);transition:color var(--dur-fast) var(--ease), transform var(--dur) var(--ease-out)}.shape-tool:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--fg-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.shape-tool:hover svg{color:var(--accent);transform:scale(1.08)}.shape-tool:active{box-shadow:none;transform:translateY(0)}.connect-btn{width:100%;margin-bottom:8px}.connect-btn.is-on{background:var(--accent-bg);border-color:var(--accent-bg);color:var(--accent-fg)}.catalog-block .search-box{margin-bottom:6px}.catalog-block select{margin-bottom:8px}.catalog-list{max-height:340px;margin:0 -6px;overflow:auto}.catalog-item{border-radius:var(--radius);text-align:left;width:100%;transition:background var(--dur-fast) var(--ease);background:0 0;border:0;padding:8px 9px;display:block}.catalog-item:hover{background:var(--bg-hover)}.catalog-item strong{color:var(--fg-strong);font-size:13px;font-weight:500;display:block}.catalog-item small{color:var(--fg-dim);font-size:12px;line-height:1.4;display:block}.catalog-empty{color:var(--fg-dim);padding:8px;font-size:12.5px}.board-main{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.hint-strip{border-bottom:1px solid var(--border);background:var(--bg-raise);flex-wrap:wrap;align-items:center;gap:8px 18px;padding:9px 14px;font-size:13px;display:flex}.hint-strip ol{counter-reset:hint;flex-wrap:wrap;flex:1;gap:6px 18px;display:flex}.hint-strip li{counter-increment:hint;color:var(--fg-dim);align-items:center;gap:7px;display:flex}.hint-strip li:before{content:counter(hint);background:var(--accent-bg);width:18px;height:18px;color:var(--accent-fg);font:600 11px/1 var(--mono);border-radius:50%;place-items:center;display:inline-grid}.hint-strip b{color:var(--fg-strong)}.board-toolbar{border-bottom:1px solid var(--border);background:var(--bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:8px 14px;display:flex}.crumb{min-width:0;color:var(--fg-dim);align-items:center;gap:7px;font-size:13px;display:flex}.crumb strong{color:var(--fg-strong);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.crumb-count{border-left:1px solid var(--border-strong);white-space:nowrap;margin-left:8px;padding-left:10px}.board-actions{flex-wrap:wrap;gap:6px;display:flex}.canvas-wrap{flex:1;min-height:0;display:flex;position:relative}.canvas-viewport{background:var(--bg);overscroll-behavior:contain;flex:1;min-width:0;min-height:0;position:relative;overflow:auto}.canvas-viewport.is-connecting .canvas-stage{cursor:crosshair}.canvas-viewport.is-panning,.canvas-viewport.is-panning *{cursor:grabbing!important}.canvas-stage{cursor:grab;-webkit-user-select:none;user-select:none;min-width:100%;min-height:100%;position:relative}.canvas-world{transform-origin:0 0;position:absolute;top:0;left:0}.canvas-grid{position:absolute;inset:0}.canvas-grid circle{fill:var(--guide)}.connections-layer{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:visible}.edge{cursor:pointer;pointer-events:auto}.edge-line{transition:stroke var(--dur-fast) var(--ease), stroke-width var(--dur-fast) var(--ease)}.edge:hover .edge-line{stroke-width:3px}.edge-tag rect{fill:var(--bg-raise);stroke:var(--border-strong);stroke-width:1px;transition:stroke var(--dur-fast) var(--ease)}.edge-tag text{fill:var(--fg);pointer-events:none;font-size:12px;font-weight:500}.edge.is-selected .edge-tag rect,.edge:hover .edge-tag rect{stroke:var(--accent)}.edge-hit{stroke:#0000;stroke-width:16px;pointer-events:stroke}.edge-line{stroke:var(--ar-solid);stroke-width:2px;stroke-linecap:round}.edge.is-selected .edge-line{stroke:var(--accent);stroke-width:3px}.edge-label{fill:var(--fg);paint-order:stroke;stroke:var(--bg);stroke-width:5px;stroke-linejoin:round;pointer-events:none;font-size:12.5px}.arrow-fill{fill:var(--ar-solid)}.arrow-fill-sel{fill:var(--accent)}.canvas-node{z-index:2;border:2px solid var(--node-accent);background:var(--bg-node);color:var(--fg-strong);text-align:center;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;overflow-wrap:anywhere;box-shadow:var(--shadow-sm);transition:box-shadow var(--dur) var(--ease), outline-color var(--dur-fast) var(--ease), outline-offset var(--dur) var(--ease-out), background var(--dur-fast) var(--ease);animation:node-in var(--dur-slow) var(--ease-out);border-radius:8px;justify-content:center;align-items:center;padding:8px 12px;font-size:14px;line-height:1.25;display:flex;position:absolute}.canvas-node:hover{box-shadow:var(--shadow-md)}.canvas-node:active{cursor:grabbing}.canvas-node.is-connectable{cursor:crosshair}.canvas-node.is-selected{outline:2px solid var(--accent);outline-offset:4px;box-shadow:var(--shadow-md)}.canvas-node:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.canvas-node.is-origin{outline:2px dashed var(--accent);outline-offset:3px}.node-text{z-index:1;position:relative}.canvas-node input{z-index:2;border:1px solid var(--accent);background:var(--bg-input);width:100%;color:var(--fg-strong);text-align:center;border-radius:3px;outline:none;padding:3px 6px;position:relative}.node-decision{box-shadow:none;background:0 0;border:0;padding:0 24px}.node-decision:hover{box-shadow:none}.node-shape{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.node-shape polygon{fill:var(--bg-node);stroke:var(--node-accent);stroke-width:2px}.node-database{border-radius:14px/10px;padding-top:16px}.node-db-cap{border:2px solid var(--node-accent);background:var(--bg-node);pointer-events:none;border-radius:50%;height:22px;position:absolute;top:-2px;left:-2px;right:-2px}.node-note{background:var(--bg-raise);border-style:dashed;border-radius:2px}.node-terminator{border-radius:999px}.node-actor{border-radius:18px;padding-top:22px}.actor-symbol{color:var(--node-accent);position:absolute;top:6px;left:50%;transform:translate(-50%)}.empty-canvas{z-index:5;pointer-events:none;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--bg-side) 92%, transparent);text-align:center;width:min(380px,90%);color:var(--fg-dim);animation:empty-in var(--dur-slow) var(--ease-out);flex-direction:column;align-items:center;gap:12px;padding:32px 28px;line-height:1.55;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-canvas .btn{pointer-events:auto}.empty-icon{background:color-mix(in srgb, var(--accent) 16%, transparent);width:46px;height:46px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.empty-canvas h2{color:var(--fg-strong);letter-spacing:-.01em;font-size:20px}.props{flex-direction:column;gap:12px;display:flex}.props-sub{color:var(--fg-dim);font-size:13px}.props-sub strong{color:var(--fg-strong)}.prop-field{color:var(--fg-dim);flex-direction:column;gap:5px;font-size:12.5px;display:flex}.prop-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.prop-actions{flex-wrap:wrap;gap:6px;display:flex}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch-dot{border:2px solid var(--bg-side);width:26px;height:26px;box-shadow:0 0 0 1px var(--border-strong);transition:transform var(--dur) var(--ease-out), box-shadow var(--dur-fast) var(--ease);border-radius:50%;padding:0}.swatch-dot:hover{transform:scale(1.12)}.swatch-dot.is-active{box-shadow:0 0 0 2px var(--fg-strong);transform:scale(1.08)}.edge-list{flex-direction:column;display:flex}.edge-list button{width:100%;color:var(--fg-dim);text-align:left;background:0 0;border:0;border-radius:3px;padding:4px 6px;font-size:12.5px}.edge-list button:hover{background:var(--bg-hover);color:var(--fg)}.edge-list em{color:var(--fg-mute);margin-left:6px}.layers ul{flex-direction:column;margin:0 -6px;display:flex}.layers button{border-radius:var(--radius);text-align:left;width:100%;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:0;align-items:center;gap:8px;padding:6px 7px;font-size:13px;display:flex}.layers button:hover{background:var(--bg-hover)}.layers button.is-active{background:var(--select);color:var(--fg-strong)}.layers button span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layers button i{border-radius:50%;width:8px;height:8px}.clear-selection{color:var(--fg-dim);background:0 0;border:0;align-items:center;gap:5px;margin:10px 14px;padding:0;font-size:12.5px;display:flex}.clear-selection:hover{color:var(--fg-strong)}.mm{grid-template-columns:250px minmax(0,1fr) minmax(0,1fr);height:100%;min-height:0;display:grid}.mm-side{border-right:1px solid var(--border);background:var(--bg-side);min-height:0;overflow:auto}.mm-block{border-bottom:1px solid var(--border);padding:14px 14px 16px}.mm-title{color:var(--fg-dim);margin-bottom:10px;font-size:12.5px;font-weight:600}.mm-example{border-radius:var(--radius-sm);text-align:left;width:100%;transition:background var(--dur-fast) var(--ease), border-color var(--dur) var(--ease);background:0 0;border:0;border-left:2px solid #0000;margin-bottom:2px;padding:8px 9px;display:block}.mm-example:hover{background:var(--bg-hover)}.mm-example.is-active{border-left-color:var(--accent);background:var(--select)}.mm-example strong{color:var(--fg-strong);font-size:13px;font-weight:500;display:block}.mm-example small{color:var(--fg-dim);font-size:12px;line-height:1.4;display:block}.mm-snippets{flex-wrap:wrap;gap:6px;display:flex}.mm-snippet{border:1px solid var(--border-strong);background:var(--bg-raise);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);border-radius:99px;padding:5px 10px;font-size:12.5px}.mm-snippet:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--fg-strong)}.mm-snippet:active{transform:translateY(1px)}.mm-help{color:var(--fg-dim);margin-bottom:8px;font-size:12.5px;line-height:1.55}.mm-legend{border:1px solid var(--border);background:var(--bg);color:var(--fg-dim);white-space:pre-wrap;border-radius:4px;margin:0 0 10px;padding:8px 10px;font-size:12.5px;line-height:1.8}.mm-arrows{flex-direction:column;gap:6px;display:flex}.mm-arrows li{color:var(--fg-dim);align-items:baseline;gap:10px;font-size:12.5px;display:flex}.mm-arrows code{min-width:46px;font-size:13px}.mm-keys{color:var(--fg-dim);flex-direction:column;gap:7px;font-size:12.5px;display:flex}.mm-pane{flex-direction:column;min-width:0;min-height:0;display:flex}.mm-editor{border-right:1px solid var(--border)}.mm-tabs{border-bottom:1px solid var(--border);background:var(--bg-side);justify-content:space-between;align-items:center;gap:8px;min-height:40px;padding:0 8px 0 0;display:flex}.mm-file{border-top:2px solid var(--accent);background:var(--bg);color:var(--fg-strong);white-space:nowrap;align-self:stretch;align-items:center;gap:7px;padding:0 16px;font-size:13px;display:inline-flex}.mm-actions{align-items:center;gap:4px;display:flex}.mm-sep{background:var(--border-strong);width:1px;height:18px;margin:0 4px}.mm-zoom{min-width:74px}.mm-note{border-bottom:1px solid var(--border);background:var(--bg-raise);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;font-size:12.5px;line-height:1.55;display:flex}.mm-note details{color:var(--fg-dim);margin-top:4px}.mm-note summary{cursor:pointer}.mm-note-actions{flex:none;align-items:center;gap:4px;display:flex}.mm-code{flex:1;min-height:0}.mm-problems{border-top:1px solid var(--border);background:var(--bg-side);flex:none}.mm-problems-head{text-align:left;background:0 0;border:0;align-items:center;gap:6px;width:100%;padding:6px 12px;font-size:12.5px;font-weight:600;display:flex}.mm-count{background:var(--bg-hover);min-width:20px;color:var(--fg);font:600 11px/18px var(--mono);text-align:center;border-radius:99px;padding:0 6px}.mm-count.has-error{background:var(--danger);color:#000}.mm-problems-body{max-height:150px;padding:0 12px 10px;overflow:auto}.mm-ok{color:var(--fg-dim);align-items:center;gap:7px;font-size:12.5px;display:flex}.mm-ok svg{color:var(--ok)}.mm-problem{width:100%;color:var(--fg);text-align:left;background:0 0;border:0;border-radius:3px;align-items:flex-start;gap:8px;padding:4px 6px;font-size:12.5px;display:flex}.mm-problem:hover{background:var(--bg-hover)}.mm-problem svg{color:var(--danger);flex:none;margin-top:2px}.mm-problem span{flex:1}.mm-problem code{color:var(--fg-mute);white-space:nowrap;font-size:11.5px}.mm-detail{color:var(--fg-dim);margin-top:6px;font-size:12px}.mm-detail pre{border:1px solid var(--border);background:var(--bg);white-space:pre-wrap;word-break:break-word;border-radius:4px;margin:6px 0 0;padding:8px;overflow:auto}.mm-dot{background:var(--fg-mute);border-radius:50%;width:8px;height:8px;display:inline-block}.mm-dot.is-ok{background:var(--ok)}.mm-dot.is-error{background:var(--danger)}.mm-dot.is-rendering{background:var(--b0);animation:pulse 1s var(--ease) infinite}.mm-dot.is-ok{box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 22%, transparent)}.mm-stage{background:var(--bg);cursor:grab;touch-action:none;flex:1;min-height:0;padding:24px;display:flex;overflow:auto}.mm-stage:active{cursor:grabbing}.mm-svg{transition:opacity var(--dur) var(--ease);animation:fade-in var(--dur-slow) var(--ease);margin:auto}.mm-svg.is-stale{opacity:.45;filter:grayscale(.4)}.mm-svg svg{width:100%;max-width:none;height:auto;display:block}.mm-svg .edge-pattern-dotted{stroke:var(--ar-dotted)!important}.mm-svg .edge-thickness-thick{stroke:var(--ar-thick)!important}.mm-empty{max-width:320px;color:var(--fg-dim);text-align:center;margin:auto;line-height:1.6}.mm-empty code{color:var(--tk-kw)}.mm-foot{border-top:1px solid var(--border);background:var(--bg-side);color:var(--fg-mute);padding:6px 12px;font-size:12px}.lesson{grid-template-columns:280px minmax(0,1fr);height:100%;min-height:0;display:grid}.lesson-side{border-right:1px solid var(--border);background:var(--bg-side);min-height:0;overflow:auto}.lesson-side .btn.full{margin-bottom:6px}.slide-list{flex-direction:column;gap:3px;margin-bottom:10px;display:flex}.slide-item{border-radius:var(--radius);text-align:left;background:0 0;border:1px solid #0000;grid-template-columns:20px minmax(0,1fr) 4px;align-items:start;gap:8px;width:100%;padding:7px 8px;display:grid}.slide-item:hover{background:var(--bg-hover)}.slide-item.is-active{border-color:var(--border-strong);background:var(--select)}.slide-n{color:var(--fg-mute);font:12px/1.6 var(--mono)}.slide-item strong{color:var(--fg-strong);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;display:block;overflow:hidden}.slide-item small{color:var(--fg-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.slide-item i{border-radius:2px;align-self:stretch}.lesson-main{flex-direction:column;min-width:0;min-height:0;display:flex}.lesson-stage{flex:1;min-height:0;position:relative;overflow:auto}.slide-form{flex-direction:column;gap:14px;max-width:620px;padding:24px;display:flex}.slide-form h2{letter-spacing:-.01em;font-size:20px}.slide-form label{color:var(--fg-dim);flex-direction:column;gap:5px;font-size:12.5px;display:flex}.slide-form .btn{align-self:flex-start}.lesson-controls{border-top:1px solid var(--border);background:var(--bg);align-items:center;gap:12px;padding:8px 14px;display:flex}.progress-dots{align-items:center;gap:6px;margin:0 auto;display:flex}.progress-dots button{background:var(--border-strong);width:22px;height:6px;transition:width var(--dur-slow) var(--ease-out), background var(--dur) var(--ease);border:0;border-radius:99px;padding:0}.progress-dots button:hover:not(.is-active){background:var(--fg-dim)}.progress-dots button.is-done{background:var(--fg-mute)}.progress-dots button.is-active{background:var(--accent);width:34px}.presentation{z-index:150;animation:fade-in var(--dur-slow) var(--ease);background:var(--bg);grid-template-rows:auto minmax(0,1fr) auto;gap:16px;padding:20px 28px;display:grid;position:fixed;inset:0}.presentation-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.presentation-head h1{letter-spacing:-.02em;color:var(--fg-strong);margin-top:2px;font-size:clamp(22px,3vw,34px);line-height:1.15}.presentation-kicker{color:var(--fg-dim);font-size:13px}.presentation-tools{align-items:center;gap:12px;display:flex}.presentation-count{color:var(--fg-dim);font:12.5px var(--mono)}.presentation-stage{border:1px solid var(--border-strong);background:var(--bg);border-radius:8px;min-height:0;overflow:hidden}.presentation-controls{align-items:center;gap:16px;display:flex}.presentation-bar{background:var(--border-strong);border-radius:99px;flex:1;height:4px;overflow:hidden}.presentation-bar span{background:var(--accent);height:100%;transition:width .25s;display:block}.modal-backdrop{z-index:180;background:var(--overlay);-webkit-backdrop-filter:blur(3px);animation:fade-in var(--dur) var(--ease);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg);width:min(1040px,100%);max-height:min(88vh,860px);box-shadow:var(--shadow-lg);animation:modal-in var(--dur-slow) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.modal-md{width:min(820px,100%)}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;display:flex}.modal-head h2{color:var(--fg-strong);letter-spacing:-.01em;margin-bottom:3px;font-size:20px}.modal-head p{color:var(--fg-dim)}.modal-filters{border-bottom:1px solid var(--border);background:var(--bg-side);grid-template-columns:minmax(0,1fr) 200px;gap:10px;padding:12px 20px;display:grid}.modal-count{color:var(--fg-dim);padding:10px 20px 0;font-size:12.5px}.modal-grid{overscroll-behavior:contain;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px;padding:12px 20px 20px;display:grid;overflow:auto}.modal-empty{color:var(--fg-dim);text-align:center;flex-direction:column;grid-column:1/-1;align-items:center;gap:12px;padding:40px 0;display:flex}.modal-foot{border-top:1px solid var(--border);background:var(--bg-side);color:var(--fg-dim);justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;font-size:12.5px;display:flex}.modal-foot code{color:var(--fg)}.pattern{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-raise);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease-out);flex-direction:column;gap:8px;padding:16px;display:flex}.pattern:hover{border-color:var(--fg-mute);box-shadow:var(--shadow-md);transform:translateY(-2px)}.pattern-tags{flex-wrap:wrap;gap:6px;display:flex}.pattern-tags span{border:1px solid var(--border-strong);color:var(--fg-dim);border-radius:3px;padding:0 7px;font-size:11.5px}.pattern h3{color:var(--fg-strong);letter-spacing:-.01em;font-size:16px}.pattern p{color:var(--fg);font-size:13px;line-height:1.55}.pattern small{color:var(--fg-dim);font-size:12.5px;line-height:1.5}.pattern-actions{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px;display:flex}.help-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;padding:18px 20px 22px;display:grid;overflow:auto}.help-grid h3{color:var(--fg-strong);margin-bottom:6px;font-size:14px}.help-grid p,.help-grid li{color:var(--fg-dim);font-size:13px;line-height:1.6}.help-grid ul{flex-direction:column;gap:6px;display:flex}.nav{z-index:50;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);position:sticky;top:0}.nav-in{align-items:center;gap:20px;height:58px;display:flex}.nav-links{color:var(--fg-dim);gap:24px;margin-left:24px;font-size:14px;display:flex}.nav-links a{transition:color var(--dur-fast) var(--ease);padding:4px 0;position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform var(--dur) var(--ease-out);border-radius:2px;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover{color:var(--fg-strong)}.nav-links a:hover:after{transform:scaleX(1)}.nav-right{align-items:center;gap:10px;margin-left:auto;display:flex}.hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:32px 56px;padding-block:72px 44px;display:grid}.hero h1{animation:fade-up .6s var(--ease-out) both;color:var(--fg-strong);letter-spacing:-.04em;text-wrap:balance;font-size:clamp(40px,5.6vw,76px);font-weight:700;line-height:1.02}.hero-side{animation:fade-up .6s var(--ease-out) 80ms both;flex-direction:column;gap:22px;padding-bottom:6px;display:flex}.hero-side>p{max-width:46ch;color:var(--fg);font-size:17px;line-height:1.65}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.hero-points{color:var(--fg-dim);flex-direction:column;gap:6px;font-size:14px;display:flex}.hero-points li{align-items:center;gap:8px;display:flex}.hero-points svg{color:var(--ok);flex:none}.win{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg);box-shadow:var(--shadow-lg);overflow:hidden}.win-tabs{border-bottom:1px solid var(--border);background:var(--bg-side);align-items:stretch;min-height:38px;display:flex;overflow-x:auto}.win-tab{border:0;border-top:2px solid #0000;border-right:1px solid var(--border);background:var(--bg-side);color:var(--fg-dim);font:13px var(--mono);white-space:nowrap;align-items:center;gap:7px;padding:0 16px;display:inline-flex}.win-tab[aria-selected=true],.win-tab[aria-current=true]{border-top-color:var(--accent);background:var(--bg);color:var(--fg-strong)}.win-tab:hover{color:var(--fg-strong)}.win-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.win-code{border-right:1px solid var(--border);min-width:0;font:14px/24px var(--mono);padding:14px 0 0}.hl-line{white-space:pre;cursor:default;border-left:2px solid #0000;align-items:center;gap:14px;padding:0 16px 0 10px;display:flex}.hl-line:hover,.hl-line.is-focus{border-left-color:var(--accent);background:var(--line-active)}.hl-num{width:2ch;color:var(--fg-mute);text-align:right;-webkit-user-select:none;user-select:none}.hl-text{overflow:hidden}.win-legend{color:var(--fg-dim);font:13px var(--sans);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:14px 16px 0;display:flex}.chip{border:1px solid var(--border-strong);color:var(--fg-dim);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border-radius:99px;align-items:center;gap:8px;padding:3px 10px;font-size:12.5px;display:inline-flex}span.chip{cursor:default}.win-legend+.win-legend{padding-top:8px;padding-bottom:16px}.chip:hover,.chip[aria-pressed=true]{border-color:var(--fg-mute);background:var(--bg-hover);color:var(--fg-strong)}.chip code{font-size:13px}.win-view{background:var(--bg-side);justify-content:center;align-items:center;min-width:0;padding:20px;display:flex}.dg{width:100%;height:auto;max-height:360px}.dg-el{transition:opacity .15s}.dg-el.is-dim{opacity:.2}.dg-node rect,.dg-node path.shape{fill:var(--bg-node);stroke:var(--br3);stroke-width:1.5px}.dg-node path.line{fill:none;stroke:var(--br3);stroke-width:1.5px}.dg-node text{fill:var(--fg-strong);font:13px var(--sans)}.dg-label{fill:var(--fg-dim);font:12px var(--sans);paint-order:stroke;stroke:var(--bg-side);stroke-width:4px}.dg-edge{fill:none;stroke-width:2px;stroke-linecap:round}.dg-edge.solid{stroke:var(--ar-solid)}.dg-edge.dotted{stroke:var(--ar-dotted);stroke-dasharray:2 6;stroke-width:2.5px}.dg-edge.thick{stroke:var(--ar-thick);stroke-width:4.5px}.dg-head.solid{fill:var(--ar-solid)}.dg-head.dotted{fill:var(--ar-dotted)}.dg-head.thick{fill:var(--ar-thick)}.dg-hit{fill:none;stroke:#0000;stroke-width:18px;pointer-events:stroke}.win-status{background:var(--status-bg);color:var(--status-fg);font:12px/1 var(--mono);align-items:center;display:flex}.win-status span{padding:6px 10px}.win-status span:last-child{margin-left:auto}.hero-caption{color:var(--fg-dim);margin-top:12px;font-size:13.5px}.section{padding-block:88px 0}.section h2{max-width:22ch;color:var(--fg-strong);letter-spacing:-.03em;text-wrap:balance;font-size:clamp(28px,3.4vw,42px);font-weight:700;line-height:1.1}.section-lead{max-width:58ch;color:var(--fg);margin-top:14px;font-size:16.5px;line-height:1.65}.section .win{margin-top:32px}.wb-body{grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:380px;display:grid}.wb-text{flex-direction:column;gap:14px;padding:28px;display:flex}.wb-text h3{color:var(--fg-strong);letter-spacing:-.02em;font-size:24px;line-height:1.15}.wb-text p{color:var(--fg);line-height:1.65}.wb-text ul{color:var(--fg-dim);flex-direction:column;gap:8px;display:flex}.wb-text li{gap:9px;line-height:1.5;display:flex}.wb-text li svg{color:var(--ok);flex:none;margin-top:3px}.wb-text .btn{align-self:flex-start;margin-top:auto}.wb-visual{border-left:1px solid var(--border);background:var(--bg-side);flex-direction:column;justify-content:center;gap:14px;min-width:0;padding:24px;display:flex}.wb-code{border:1px solid var(--border);background:var(--bg);font:13.5px/22px var(--mono);border-radius:6px;padding:10px 0;overflow:hidden}.wb-problem{border:1px solid var(--danger);background:var(--danger-bg);color:var(--fg);border-radius:6px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:13px;line-height:1.5;display:flex}.wb-problem svg{color:var(--danger);flex:none;margin-top:2px}.wb-levels{color:var(--fg-dim);flex-wrap:wrap;gap:8px 16px;font-size:13px;display:flex}.wb-levels span{align-items:center;gap:6px;display:inline-flex}.wb-levels code{font-size:15px;font-weight:700}.mini-board{width:100%;height:auto}.mini-board .node{fill:var(--bg-node);stroke-width:2px}.mini-board text{fill:var(--fg-strong);font:13px var(--sans);text-anchor:middle}.mini-board .edge{fill:none;stroke:var(--ar-solid);stroke-width:2px}.mini-board .head{fill:var(--ar-solid)}.mini-board .sel{fill:none;stroke:var(--accent);stroke-width:2px}.mini-board .handle{fill:var(--accent)}.models-bar{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.model-grid{border:1px solid var(--border-strong);border-radius:var(--radius-lg);overscroll-behavior:contain;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));max-height:440px;margin-top:14px;display:grid;overflow:auto}.model-item{border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:background var(--dur-fast) var(--ease);padding:13px 16px;display:block;position:relative}.model-item:before{content:"";background:var(--accent);width:2px;transition:transform var(--dur) var(--ease-out);border-radius:2px;position:absolute;top:10px;bottom:10px;left:0;transform:scaleY(0)}.model-item:hover{background:var(--bg-hover)}.model-item:hover:before{transform:scaleY(1)}.model-item strong{color:var(--fg-strong);font-size:14px;font-weight:600;display:block}.model-item small{color:var(--fg-dim);margin-top:2px;font-size:12.5px;line-height:1.45;display:block}.model-note{color:var(--fg-dim);margin-top:12px;font-size:13.5px}.cta{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-side);box-shadow:var(--shadow-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 32px;margin-top:96px;padding:44px 40px;display:flex}.cta h2{max-width:20ch;color:var(--fg-strong);letter-spacing:-.03em;font-size:clamp(24px,3vw,34px);line-height:1.15}.cta p{color:var(--fg-dim);margin-top:8px}.footbar{margin-top:72px}@media (max-width:1180px){.board{grid-template-columns:230px minmax(0,1fr) 240px}.mm{grid-template-columns:210px minmax(0,1fr) minmax(0,1fr)}}@media (max-width:1000px){.hero{grid-template-columns:1fr;padding-block:48px 32px}.win-body,.wb-body{grid-template-columns:1fr}.win-code{border-right:0;border-bottom:1px solid var(--border)}.wb-visual{border-left:0;border-top:1px solid var(--border)}.nav-links,.tabs-hint{display:none}.studio{grid-template-rows:auto auto auto auto;height:auto;min-height:100dvh}.tabpanel{overflow:visible}.board,.mm,.lesson{flex-direction:column;height:auto;display:flex}.board-left,.board-right,.mm-side,.lesson-side{border:0;border-bottom:1px solid var(--border);overflow:visible}.board-main{order:-1}.canvas-wrap{flex:none;height:62vh}.mm-editor{border-right:0;border-bottom:1px solid var(--border);height:440px}.mm-preview{height:440px}.mm-side{order:3}.lesson-stage{flex:none;height:56vh}.modal-filters{grid-template-columns:1fr}}@media (max-width:640px){.wrap{width:min(1180px,100% - 32px)}.titlebar{flex-wrap:wrap}.saved span,.btn-label{display:none}.hero h1{font-size:40px}.section{padding-top:64px}.wb-text,.wb-visual{padding:18px}.presentation{padding:14px}.cta{padding:26px 20px}}code,kbd,pre,.ce,.ce-input,.win-code,.wb-code,.mm-legend,.win-status,.statusbar{font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0}.boot-warning{z-index:200;border:1px solid var(--danger,#f48771);background:var(--bg-raise,#252526);max-width:560px;color:var(--fg-strong,#fff);opacity:0;pointer-events:none;border-radius:6px;margin:0 auto;padding:12px 14px;font-size:14px;line-height:1.5;animation:0s 4s forwards boot-show;position:fixed;bottom:40px;left:16px;right:16px}:root[data-hydrated] .boot-warning{display:none}@keyframes boot-show{to{opacity:1;pointer-events:auto}}.sketch{--hand:"Kalam", "Segoe Print", "Bradley Hand", cursive;--ink:var(--fg-strong);background:var(--bg);width:100%;height:100%;position:relative;overflow:hidden}.sketch-viewport{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.sketch-viewport.is-dragging{cursor:grabbing}.sketch-world{transform-origin:0 0;width:0;height:0;transition:transform .7s cubic-bezier(.3,.7,.2,1);position:absolute;top:0;left:0}.sketch-world.no-ease{transition:none}.sketch-step{position:absolute;top:0;left:0}.sketch-card{animation:.45s ease-out .35s both sk-pop;position:absolute}.sketch-box{place-items:center;padding:10px 22px;display:grid;position:relative}.sketch-box svg{pointer-events:none;position:absolute;top:-6px;left:-6px;overflow:visible}.sk-hatch{fill:none;stroke:var(--step-accent);stroke-width:1.3px;opacity:.22}.sk-box-line{fill:none;stroke:var(--step-accent);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.sk-box-line.is-second{stroke-width:1.6px;opacity:.7}.sketch-box h2{color:var(--ink);font:700 34px/1.12 var(--hand);letter-spacing:0;text-align:center;text-wrap:balance;margin:0;position:relative}.sketch-num{background:var(--bg);width:28px;height:28px;color:var(--step-accent);font:700 15px var(--hand);box-shadow:0 0 0 2px var(--step-accent) inset;border-radius:50%;place-items:center;display:grid;position:absolute;top:-14px;left:-12px}.sketch-note{background:color-mix(in srgb, var(--step-accent) 32%, #fffdf2);color:#1d1b16;font:400 18px/1.35 var(--hand);margin:26px 8px 0 14px;padding:14px 16px 16px;position:relative;box-shadow:2px 4px #00000047}.sketch-note:before{content:"";background:#fff9;width:64px;height:18px;margin-left:-32px;position:absolute;top:-9px;left:50%;transform:rotate(-2deg);box-shadow:0 0 0 1px #0000001f}.sketch-sub{margin:0 0 8px;font-weight:700}.sketch-note ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sketch-note li{padding-left:20px;font-size:17px;position:relative}.sketch-note li:before{content:"~";color:var(--step-accent);filter:brightness(.6);font-weight:700;position:absolute;top:0;left:2px}.sketch-arrow{pointer-events:none;position:absolute;overflow:visible}.sk-stroke{fill:none;stroke:var(--ink);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.sk-draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:.7s ease-out .1s forwards sk-draw}.sk-head{opacity:0;animation:.2s ease-out .7s forwards sk-fade}:root[data-theme=mono] .sketch .sk-box-line,:root[data-theme=mono] .sketch .sk-hatch{stroke:#000}@keyframes sk-draw{to{stroke-dashoffset:0}}@keyframes sk-fade{to{opacity:1}}@keyframes sk-pop{0%{opacity:0;transform:scale(.92)rotate(-1deg)}to{opacity:1;transform:none}}.sketch-tip{color:var(--fg-mute);font:400 15px var(--hand);pointer-events:none;margin:0;position:absolute;bottom:12px;left:14px}.sketch-tools{gap:6px;display:flex;position:absolute;bottom:12px;right:14px}.sketch-tool{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-raise);width:34px;height:34px;color:var(--fg);box-shadow:var(--shadow-sm);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);place-items:center;padding:0;display:grid}.sketch-tool:active{transform:scale(.94)}.sketch-tool:hover{background:var(--bg-hover);color:var(--fg-strong)}.sketch-nav{border:1px solid var(--border-strong);background:var(--bg-raise);box-shadow:var(--shadow-md);border-radius:99px;align-items:center;gap:14px;padding:6px 14px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.sketch-nav>button{width:34px;height:34px;color:var(--fg-strong);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.sketch-nav>button:hover:not(:disabled){background:var(--bg-hover)}.sketch-nav>button:disabled{opacity:.3}.sketch-dots{align-items:center;gap:7px;display:flex}.sketch-dots button{background:var(--border-strong);width:9px;height:9px;transition:transform var(--dur) var(--ease-out), background var(--dur) var(--ease);border:0;border-radius:50%;padding:0}.sketch-dots button.is-done{background:var(--fg-mute)}.sketch-dots button.is-active{background:var(--accent);transform:scale(1.35)}.is-large .sketch-tools,.is-large .sketch-tip{bottom:70px}@media (prefers-reduced-motion:reduce){.sketch-world{transition:none}.sketch-card{animation:.6s ease-out .1s both sk-appear}.sk-head{animation:.2s ease-out .7s forwards sk-fade}}@keyframes sk-appear{0%{opacity:0}to{opacity:1}}.lesson{background:var(--bg)}.lesson-side{background:var(--bg-side)}.lesson-intro{background:color-mix(in srgb, var(--bg-raise) 58%, var(--bg-side));padding:18px 15px 17px}.lesson-eyebrow{color:var(--fg-mute);font:600 10px/1.3 var(--mono);letter-spacing:.08em;align-items:center;gap:7px;display:inline-flex}.lesson-intro .side-title{color:var(--fg-strong);margin-top:11px;margin-bottom:8px;font-size:14px}.lesson-hint-chip{color:var(--fg-mute);align-items:center;gap:7px;margin-top:13px;font-size:10.5px;display:flex}.lesson-hint-chip span{background:var(--ok);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 15%, transparent);border-radius:50%}.lesson-list-heading{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.lesson-list-heading .side-title{color:var(--fg-dim);margin:0}.lesson-count{border:1px solid var(--border-strong);min-width:25px;height:22px;color:var(--fg-dim);font:11px var(--mono);border-radius:5px;place-items:center;padding:0 6px;display:grid}.slide-item{border-radius:5px;min-height:54px;padding:9px 8px;transition:background .15s,border-color .15s}.slide-item.is-active{border-color:color-mix(in srgb, var(--accent) 55%, var(--border-strong));background:color-mix(in srgb, var(--accent) 12%, var(--select));box-shadow:inset 2px 0 var(--accent)}.slide-n{padding-top:1px;font-size:11px}.slide-item-copy{min-width:0}.slide-item strong{font-size:12.5px}.slide-item small{margin-top:3px;font-size:11px}.lesson-add{border-style:dashed;justify-content:center;min-height:32px}.lesson-utilities{gap:7px;display:grid}.lesson-utilities .btn{margin:0}.lesson-toolbar{gap:9px 12px;min-height:54px;padding:9px 16px}.lesson-layout-switch{border:1px solid var(--border);background:var(--bg-side);border-radius:7px;flex:0 auto;align-items:center;gap:2px;padding:3px;display:inline-flex}.lesson-layout-switch button{min-height:29px;color:var(--fg-dim);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:6px;padding:0 9px;font-size:11.5px;display:inline-flex}.lesson-layout-switch button:hover{background:var(--bg-hover);color:var(--fg-strong)}.lesson-layout-switch button.is-active{border-color:var(--border-strong);background:var(--bg-raise);color:var(--fg-strong);box-shadow:0 1px 2px #0000001f}.lesson-layout-switch button.is-active svg{color:var(--accent)}.lesson-stage{background:var(--bg)}.slide-form{gap:16px;width:min(680px,100%);padding:clamp(18px,3vw,34px)}.slide-form-heading{flex-direction:column;align-items:flex-start;gap:7px;padding-bottom:7px;display:flex}.slide-form-heading h2{letter-spacing:-.03em;font-size:clamp(21px,2.5vw,26px)}.slide-form-heading p{max-width:480px;color:var(--fg-dim);font-size:12.5px;line-height:1.55}.slide-form label{color:var(--fg);gap:7px;font-size:12px;font-weight:550}.slide-form label .field{font-weight:400}.field-help{color:var(--fg-mute);font-size:11px;font-weight:400;line-height:1.5}.lesson-controls{gap:12px;min-height:48px;padding:8px 16px}.progress-summary{flex-direction:column;gap:2px;min-width:66px;display:flex}.progress-summary span{color:var(--fg-mute);font:9px var(--mono);letter-spacing:.08em}.progress-summary strong{color:var(--fg-strong);font:12px var(--mono)}.progress-summary i{color:var(--fg-mute);font-style:normal}.lesson-controls .progress-dots{flex:1;justify-content:center;gap:5px;margin:0}.lesson-controls .progress-dots button{width:18px;height:4px}.lesson-controls .progress-dots button.is-active{width:30px}.sketch.is-tree .sketch-world{min-width:0}.sketch-root-label{border:1px solid var(--step-accent);background:var(--bg);color:var(--step-accent);font:700 9px/1.2 var(--mono);letter-spacing:.08em;border-radius:4px;padding:3px 7px;position:absolute;top:-10px;right:-13px}.sketch.is-tree .sketch-tip{font-family:var(--sans);font-size:11px}.sketch.is-tree .sketch-arrow .sk-stroke{stroke-width:2.7px}.sketch.is-root-tree .sketch-root-label{top:-12px;right:-13px}.sketch.is-root-tree .sketch-arrow .sk-stroke{stroke-width:2.9px}.presentation{background:var(--bg);gap:14px;padding:22px 28px 18px}.presentation-head{border-bottom:1px solid var(--border);align-items:center;min-height:62px;padding:0 1px 14px}.presentation-brand{align-items:center;gap:12px;min-width:0;display:flex}.presentation-mark{border:1px solid var(--border-strong);background:var(--bg-raise);width:40px;height:40px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.presentation-brand>div:last-child{min-width:0}.presentation-kicker{color:var(--fg-mute);font:10px var(--mono);letter-spacing:.12em;margin-bottom:4px;display:block}.presentation-head h1{text-overflow:ellipsis;white-space:nowrap;max-width:min(70vw,850px);margin:0;font-size:clamp(20px,2.5vw,30px);overflow:hidden}.presentation-tools{flex-wrap:wrap;justify-content:flex-end;gap:9px}.presentation-layout-label{border:1px solid var(--border);color:var(--fg-dim);font:9px var(--mono);letter-spacing:.06em;border-radius:5px;padding:6px 8px}.presentation-count{min-width:55px;color:var(--fg-strong);text-align:center;font-size:12px}.presentation-stage{border:1px solid var(--border-strong);background:var(--bg-side);border-radius:9px;position:relative;box-shadow:inset 0 1px #ffffff05}.presentation-stage .sketch{background:0 0}.presentation-stage .sketch-viewport{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='25'%3E%3Ccircle cx='12.5' cy='12.5' r='.8' fill='%23808080' fill-opacity='.4'/%3E%3C/svg%3E");background-position:50%;background-size:25px 25px}.presentation-controls{gap:14px;min-height:44px}.presentation-progress{background:var(--border-strong);border-radius:99px;flex:1;height:4px;overflow:hidden}.presentation-progress span{border-radius:inherit;background:var(--accent);height:100%;transition:width .25s;display:block}.presentation-step{color:var(--fg-mute);font:9px var(--mono);letter-spacing:.1em;white-space:nowrap}.presentation-controls .btn{min-height:34px}@media (max-width:1200px){.lesson-toolbar{align-items:flex-start}.lesson-layout-switch{order:3}.lesson-toolbar .board-actions{margin-left:auto}}@media (max-width:760px){.lesson-toolbar{padding:10px}.lesson-layout-switch{order:3;width:100%}.lesson-layout-switch button{flex:1;padding-inline:5px}.lesson-toolbar .board-actions{width:100%;margin:0}.lesson-toolbar .board-actions .btn{flex:1;justify-content:center}.lesson-controls{flex-wrap:wrap}.progress-summary{display:none}.lesson-controls .progress-dots{flex-basis:100%;order:3;padding:4px 0}.presentation{gap:10px;padding:12px}.presentation-head{flex-direction:column;align-items:flex-start;gap:12px;padding-bottom:12px}.presentation-tools{justify-content:flex-start;width:100%}.presentation-stage{min-height:0}.presentation-controls{flex-wrap:wrap}.presentation-progress{flex-basis:100%;order:5}}.mini-sketch{border:1px solid var(--border-strong);background:var(--bg);border-radius:6px;height:400px;position:relative;overflow:hidden}.mini-sketch .sketch-world{transition:none}.mini-sketch .sketch-card,.mini-sketch .sk-draw,.mini-sketch .sk-head{stroke-dashoffset:0;opacity:1;animation:none}.mini-sketch .sketch-viewport{cursor:default}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.btn-group .btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.btn-group .btn+.btn{margin-left:-1px}.btn-group .btn:hover:not(:disabled){z-index:1;position:relative}.canvas-zoom{z-index:6;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-raise);box-shadow:var(--shadow-md);align-items:center;gap:2px;padding:3px;display:flex;position:absolute;bottom:20px;right:20px}.canvas-zoom .icon-btn{width:28px;height:28px}.canvas-zoom-value{border-radius:var(--radius);min-width:54px;height:28px;color:var(--fg);font:600 12px/1 var(--mono);transition:background var(--dur-fast) var(--ease);background:0 0;border:0;padding:0 6px}.canvas-zoom-value:hover{background:var(--bg-hover);color:var(--fg-strong)}.canvas-zoom-sep{background:var(--border-strong);width:1px;height:18px;margin:0 3px}.modal-body{padding:16px 20px;overflow:auto}.modal-preview{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-side);color:var(--fg-dim);white-space:pre;margin:0;padding:12px 14px;font-size:12.5px;line-height:1.6;overflow:auto}.modal-foot-actions{flex-wrap:wrap;gap:8px;display:flex}.props-empty{flex-direction:column;gap:14px;display:flex}.shortcut-list{flex-direction:column;gap:7px;display:flex}.shortcut-list li{color:var(--fg-dim);justify-content:space-between;align-items:center;gap:12px;font-size:12.5px;display:flex}.shortcut-list li>span:last-child{color:var(--fg-mute);text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:3px;font-size:12px;display:inline-flex}.studio-loading{grid-template-rows:auto minmax(0,1fr)}.studio-loading-body{color:var(--fg-dim);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:13.5px;display:flex}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}.board-left,.board-right,.mm-side,.lesson-side{scrollbar-gutter:stable}.catalog-item:hover strong,.mm-example:hover strong{color:var(--accent)}.status-item{transition:background var(--dur) var(--ease)}a.status-item:hover{background:color-mix(in srgb, var(--status-fg) 14%, transparent)}.hint-strip{animation:fade-in var(--dur-slow) var(--ease)}.prop-field>span:first-child{font-weight:500}.props{animation:fade-in var(--dur) var(--ease)}.layers button.is-active{box-shadow:inset 2px 0 0 var(--accent)}.footbar .status-item:last-child{padding-right:14px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)translateY(-4px)}to{opacity:1;transform:none}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes empty-in{0%{opacity:0;transform:translate(-50%,calc(10px - 50%))}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes node-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}@media (max-width:640px){.canvas-zoom{bottom:12px;right:12px}.toast-region{bottom:32px}.hint-strip{align-items:flex-start}.hint-strip ol{flex-direction:column;flex-basis:100%;gap:6px}.hint-strip li{align-items:flex-start}.hint-strip li:before{flex:none}.modal-backdrop{place-items:end center;padding:12px}.modal{max-height:92vh}}@media (prefers-reduced-motion:reduce){.toast,.modal,.modal-backdrop,.canvas-node,.tabpanel,.hero h1,.hero-side,.theme-menu,.empty-canvas,.presentation{animation:none!important}}
