@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,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(./jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");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{--line2:#cbd2db;--mono:"JetBrains Mono Variable","JetBrains Mono",ui-monospace,Menlo,monospace;--bg:#fafaf7;--panel:#fff;--ink:#1c1e21;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--bronze:#b4743c;--silver:#7b8794;--gold:#c99a1a;--ok:#16a34a;--bad:#dc2626;--code:#f3f4f6}:root[data-theme=dark]{--line2:#3b4252;--bg:#0f1115;--panel:#171a21;--ink:#e6e8eb;--muted:#9aa3af;--line:#2a2f3a;--accent:#6ea8ff;--bronze:#d08a50;--silver:#a3adb9;--gold:#e6b93a;--ok:#4ade80;--bad:#f87171;--code:#1f232c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:1.0625rem/1.7 Inter Variable,Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}code,pre{background:var(--code);border-radius:6px;font-family:JetBrains Mono Variable,JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.9em}code{padding:.1em .35em}pre{padding:12px 14px;overflow:auto}.app-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{color:var(--ink);font-weight:700}.brand span{color:var(--accent)}.grow{flex:1}.burger{display:none}.app-pill{font-size:.8rem;padding:2px 10px;border:1px solid var(--line);border-radius:99px;color:var(--muted)}button{font:inherit;cursor:pointer}.ghost{background:none;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:2px 10px}.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:8px 16px}.btn.on{background:var(--ok)}.shell{display:grid;grid-template-columns:290px minmax(0,1fr);min-height:calc(100vh - 53px)}.app-side{border-right:1px solid var(--line);padding:12px;overflow:auto;position:sticky;top:53px;height:calc(100vh - 53px);background:var(--panel)}.app-grp h4{margin:14px 6px 4px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.app-item{display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:6px;color:var(--ink);font-size:.9rem}.app-item:hover{background:var(--code)}.app-item.active{background:var(--accent);color:#fff}.app-item.soon .app-t{opacity:.55}.app-chk{width:14px;color:var(--ok)}.app-item.active .app-chk{color:#fff}.tag{font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:5px;background:var(--code);color:var(--ink)}.tag.arch{background:var(--gold);color:#222}.main{padding:28px clamp(16px,4vw,48px);max-width:960px;width:100%}.hero{padding:24px 0}.hero h1{font-size:2.2rem;margin:0 0 8px}.muted,small{color:var(--muted)}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.card h3{margin:0 0 4px}.tracks,.fam,.app-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.tracks{grid-template-columns:1fr 1fr}.mod{color:var(--ink);display:block}.mod:hover{border-color:var(--accent)}.mod.soon{opacity:.6}.mod em{display:block;font-size:.8rem;color:var(--muted);margin-top:4px}.app-bar{height:8px;background:var(--code);border-radius:99px;margin:8px 0;overflow:hidden}.app-bar i{display:block;height:100%;background:var(--accent)}.app-bar.arch i{background:var(--gold)}.lh{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.lh h1{margin:0;flex:1}.lesson h2{margin-top:2rem}.pn{display:flex;justify-content:space-between;margin-top:3rem;padding-top:1rem;border-top:1px solid var(--line)}.callout{border-left:4px solid var(--accent);background:var(--panel);padding:10px 14px;border-radius:0 8px 8px 0;margin:14px 0}.callout b{display:block}.callout.warn{border-color:var(--bad)}.callout.tip{border-color:var(--ok)}.callout.critique{border-color:var(--gold)}.quiz .q{margin:14px 0}.opt{display:block;width:100%;text-align:left;margin:4px 0;padding:8px 12px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px}.opt.ok{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,transparent)}.opt.bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 15%,transparent)}.why{color:var(--muted);font-size:.9rem}.demo{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:18px 0}.demo>h3{margin-top:0}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{border:1px solid var(--line);padding:5px 8px;text-align:left}th{background:var(--code)}@media(max-width:800px){.shell{grid-template-columns:minmax(0,1fr)}.burger{display:block}.app-side{display:none;position:fixed;top:53px;right:0;bottom:0;left:0;height:auto;z-index:4}.app-side.open{display:block}.tracks{grid-template-columns:1fr}}.main{min-width:0;overflow-wrap:break-word}.lesson,.lesson>*{min-width:0;max-width:100%}pre{max-width:100%}.lesson table{display:block;max-width:100%;overflow-x:auto}.demo{max-width:100%;overflow-x:auto}.lesson svg,.lesson img{max-width:100%;height:auto}.lh h1{min-width:0;font-size:clamp(1.4rem,5vw,2rem)}@media(max-width:800px){.main{padding:20px 16px}.hero h1{font-size:1.7rem}.lh .btn{width:100%}.app-top{padding:8px 12px}.brand{font-size:.95rem}}.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:6px}.app-item.back{color:var(--muted)}input,select,textarea{font:inherit}textarea,input.mono{font-family:var(--mono)}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:70px}body{text-rendering:optimizeLegibility}:root{--measure:68ch}:root[data-theme=dark]{--ink:#e8eaed;--muted:#a6afbb}.main{max-width:920px;padding-top:24px}.lesson>p,.lesson>ul,.lesson>ol,.lesson>details,.lesson>h2,.lesson>h3,.lesson>h4,.lesson>.callout{max-width:var(--measure)}.lesson>.callout,.lesson>.demo,.lesson>pre,.lesson>table,.lesson>.quiz{max-width:100%}.lesson p,.lesson li{line-height:1.75}.lesson li{margin:.35em 0}.lesson ul,.lesson ol{padding-left:1.35em}.lesson h2{font-size:1.55rem;line-height:1.3;margin:2.6rem 0 .8rem;padding-top:1.3rem;border-top:1px solid var(--line);letter-spacing:-.01em}.lesson h3{font-size:1.2rem;line-height:1.35;margin:1.9rem 0 .5rem}.lesson h4{font-size:1.02rem;margin:1.3rem 0 .3rem}.lesson .lh+*:is(h2){border-top:0;margin-top:1.6rem;padding-top:0}.lesson .lh{margin:.4rem 0 1rem}.lesson hr{border:0;border-top:1px solid var(--line);margin:2rem 0}.lesson a{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.lesson mark,.lesson kbd{border-radius:4px;padding:.05em .35em}kbd{background:var(--code);border:1px solid var(--line);font-family:var(--mono);font-size:.85em}pre{font-size:.86rem;line-height:1.6;padding:14px 16px;border:1px solid var(--line);-moz-tab-size:2;tab-size:2}pre code{background:none;padding:0;font-size:inherit}code{font-size:.88em}.lesson table{font-size:.93rem;line-height:1.5;border:1px solid var(--line);border-radius:8px}.lesson th,.lesson td{padding:8px 12px;vertical-align:top}.lesson tbody tr:nth-child(2n){background:color-mix(in srgb,var(--code) 55%,transparent)}.lesson th{position:sticky;top:0;white-space:nowrap}.callout{padding:12px 16px;line-height:1.65;border:1px solid var(--line);border-left-width:4px}.callout b{margin-bottom:2px}details{margin:.7rem 0}details>summary{cursor:pointer;font-weight:600;padding:6px 0}.demo{padding:16px 18px;margin:22px 0}.opt{line-height:1.5;padding:10px 14px}.app-side .app-item{line-height:1.35;padding:6px 8px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.sizer{display:flex;gap:4px}.sizer .ghost{padding:2px 9px;min-width:34px}@media(max-width:800px){html{scroll-padding-top:62px}body{font-size:1.0625rem}.app-top{padding:8px max(12px,env(safe-area-inset-left)) 8px max(12px,env(safe-area-inset-right));gap:8px}.main{padding:18px max(16px,env(safe-area-inset-left)) 40px max(16px,env(safe-area-inset-right))}.lesson>p,.lesson>ul,.lesson>ol,.lesson>details,.lesson>h2,.lesson>h3,.lesson>h4,.lesson>.callout{max-width:100%}.lesson h2{font-size:1.35rem;margin-top:2.2rem}.lesson h3{font-size:1.12rem}.lh{gap:8px}.lh h1{flex-basis:100%;order:2}.lh .tag{order:1}.lh .btn{order:3;min-height:46px}.hero h1{font-size:1.65rem}.btn,.ghost,.burger,.opt,.app-side .app-item,.tabs button,.ex button{min-height:44px}.burger{display:flex;align-items:center;justify-content:center;width:44px;background:none;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:1.1rem}.ghost{display:inline-flex;align-items:center;justify-content:center}.app-side{padding:10px max(12px,env(safe-area-inset-left)) calc(24px + env(safe-area-inset-bottom));overscroll-behavior:contain}.app-side .app-item{padding:10px;font-size:1rem;display:flex}.app-grp h4{margin-top:18px}pre{font-size:.8rem;padding:12px;margin-left:-4px;margin-right:-4px;border-radius:8px}.demo{padding:12px;margin-left:-4px;margin-right:-4px;border-radius:10px}.lesson table{font-size:.86rem}.lesson th,.lesson td{padding:7px 9px}.app-grid,.fam{grid-template-columns:1fr}.brand{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:48vw}.app-pill{display:none}.pn{flex-direction:column;gap:10px}.pn a{padding:10px 0;min-height:44px;display:block}input,select,textarea{font-size:16px}}@media(max-width:380px){.sizer{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.lesson table .rt-note{display:none}@media(max-width:700px){.lesson table.rt{display:block;border:0;border-radius:0;font-size:.95rem;overflow:visible}.lesson table.rt thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lesson table.rt tbody,.lesson table.rt tr,.lesson table.rt td{display:block;width:100%}.lesson table.rt tr{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin:0 0 12px;padding:4px 14px}.lesson table.rt tbody tr:nth-child(2n){background:var(--panel)}.lesson table.rt td{border:0;border-bottom:1px dashed var(--line);padding:8px 0;display:grid;grid-template-columns:minmax(84px,32%) minmax(0,1fr);gap:4px 12px;align-items:start;overflow-wrap:anywhere}.lesson table.rt td:last-child{border-bottom:0}.lesson table.rt td:before{content:attr(data-label);font-weight:600;font-size:.78rem;line-height:1.5;color:var(--muted);padding-top:2px}.lesson table.rt td:first-child{display:block;font-weight:700;font-size:1.02rem;padding-top:10px}.lesson table.rt td:first-child:before{display:none}.lesson table.rt td:not([data-label]){display:block}.lesson table.rt td:not([data-label]):before{display:none}}.demo table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:700px){.lesson table.rt{width:100%;min-width:0;max-width:100%}.lesson :is(.scroll,.tbl,.wrap,.table-wrap):has(>table.rt){overflow:visible}.lesson table.rt-plain td:not(:first-child){padding:6px 0;border-bottom:0}}.example{border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--panel));border-radius:12px;margin:18px 0;overflow:hidden;max-width:100%}.ex-h{display:flex;align-items:center;gap:7px;padding:7px 14px;font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,var(--panel));border-bottom:1px solid color-mix(in srgb,var(--accent) 22%,var(--line))}.ex-b{padding:12px 16px}.ex-b>:first-child{margin-top:0}.ex-b>:last-child{margin-bottom:0}.ex-b pre{background:var(--code)}.cloud{display:inline-flex;align-items:center;gap:6px;vertical-align:baseline;white-space:nowrap}.cl-tag{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:800;letter-spacing:.05em;padding:1px 7px 1px 6px;border-radius:99px;line-height:1.5;border:1px solid}.cloud.aws .cl-tag{color:#9a5b00;background:#fff3dc;border-color:#ffb84d}.cloud.gcp .cl-tag{color:#1a56c4;background:#e6efff;border-color:#8ab4f8}:root[data-theme=dark] .cloud.aws .cl-tag{color:#ffc766;background:#3a2a0b;border-color:#8a5a12}:root[data-theme=dark] .cloud.gcp .cl-tag{color:#a8c7fa;background:#12264a;border-color:#2f5ba8}.cl-name{font-weight:600;white-space:normal}.cl-name:empty{display:none}.cloudnote{border:1px solid var(--line);border-radius:12px;background:var(--panel);margin:18px 0;overflow:hidden}.cn-h{padding:7px 14px;font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);background:var(--code);border-bottom:1px solid var(--line)}.cn-grid{display:grid;grid-template-columns:1fr 1fr}.cn-col{padding:12px 16px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.cn-col.aws{border-right:1px solid var(--line);border-top:3px solid #ff9900}.cn-col.gcp{border-top:3px solid #4285f4}.cn-v{font-size:.95rem;line-height:1.55}.cn-cap{margin:0;padding:10px 16px 12px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}@media(max-width:700px){.cn-grid{grid-template-columns:1fr}.cn-col.aws{border-right:0;border-bottom:1px solid var(--line)}}.flowfig,.dgfig{margin:20px 0;max-width:100%}.flowfig figcaption,.dgfig figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--muted);font-size:.88rem;margin-top:8px}.flow{display:flex;align-items:stretch;flex-wrap:wrap;gap:8px 0}.fnode{flex:1 1 130px;min-width:120px;border:1.5px solid var(--line2);border-radius:12px;padding:10px 12px;background:var(--panel);display:flex;flex-direction:column;gap:3px;text-align:center;justify-content:center}.fnode b{font-size:.98rem;line-height:1.3}.fsub{font-size:.82rem;line-height:1.4;color:var(--muted)}.ftags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:3px}.ftags i{font-style:normal;font-size:.68rem;font-weight:700;padding:1px 7px;border-radius:99px;background:var(--code);color:var(--muted)}.fnode.bronze{background:color-mix(in srgb,var(--bronze) 16%,var(--panel));border-color:var(--bronze)}.fnode.silver{background:color-mix(in srgb,var(--silver) 20%,var(--panel));border-color:var(--silver)}.fnode.gold{background:color-mix(in srgb,var(--gold) 20%,var(--panel));border-color:var(--gold)}.fnode.accent{background:color-mix(in srgb,var(--accent) 12%,var(--panel));border-color:var(--accent)}.fnode.gate{border-style:dashed;border-color:var(--accent);background:transparent;flex:0 1 112px;min-width:100px}.farrow{display:flex;align-items:center;justify-content:center;color:var(--muted);flex:0 0 28px}@media(max-width:700px){.flow{flex-direction:column;flex-wrap:nowrap;gap:0}.fnode,.fnode.gate{flex:none;width:100%;text-align:left;min-width:0}.farrow{flex:0 0 28px;transform:rotate(90deg);height:28px}}.dg-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:10px}.dg-in{width:100%}.dg{display:block;width:100%;height:auto;overflow:visible}.dg text{fill:var(--ink);font-family:inherit;font-size:14px}.dg .t-b{font-weight:700}.dg .t-s{font-size:12.5px}.dg .t-muted{fill:var(--muted)}.dg .t-c{text-anchor:middle}.dg .n{fill:var(--panel);stroke:var(--line2);stroke-width:1.6}.dg .n-bronze{fill:color-mix(in srgb,var(--bronze) 18%,var(--panel));stroke:var(--bronze)}.dg .n-silver{fill:color-mix(in srgb,var(--silver) 22%,var(--panel));stroke:var(--silver)}.dg .n-gold{fill:color-mix(in srgb,var(--gold) 22%,var(--panel));stroke:var(--gold)}.dg .n-accent{fill:color-mix(in srgb,var(--accent) 12%,var(--panel));stroke:var(--accent)}.dg .n-zone{fill:color-mix(in srgb,var(--code) 70%,transparent);stroke:var(--line2);stroke-dasharray:6 4}.dg .n-gate{fill:var(--panel);stroke:var(--accent);stroke-dasharray:5 4}.dg .e{fill:none;stroke:var(--muted);stroke-width:1.8;marker-end:url(#dg-arrow)}.dg .e-dash{stroke-dasharray:6 5}.dg .e-plain{marker-end:none}.dg .halo{paint-order:stroke;stroke:var(--panel);stroke-width:5px;stroke-linejoin:round}#dg-arrow path{fill:var(--muted)}.dg-enlarge{font-size:.78rem;padding:3px 10px;white-space:nowrap}.dg-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0000009e;display:flex;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top)) 12px 12px}.dg-modal-box{background:var(--panel);color:var(--ink);border-radius:14px;max-width:min(1100px,100%);max-height:100%;width:100%;display:flex;flex-direction:column;padding:10px 12px 12px;gap:8px}.dg-close{align-self:flex-end;min-height:40px}.dg-modal-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.flow{flex-wrap:nowrap}.flow.wrap{flex-wrap:wrap}.fnode{flex:1 1 0;min-width:0}.fnode.gate{flex:.72 1 0;min-width:0}.cloud{flex-wrap:wrap}.cl-name{overflow-wrap:normal;word-break:normal}.dg-hint{font-size:.8rem;color:var(--muted)}@media(max-width:700px){.flow.wrap{flex-wrap:nowrap}.fnode,.fnode.gate{flex:none}.dgfig figcaption{flex-wrap:wrap}}@media(max-width:700px){.dg-scroll{padding:6px}}
