@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/95fbe602f95f5b1d-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d7fd192484976c0a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e478c40a90656953-s.woff2) format("woff2");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:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/680964f1bd688e24-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/3e68fbb477d90635-s.p.woff2) format("woff2");unicode-range:u+00??,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:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/eba0a4e5bf800560-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6adccebe1b78ad4c-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/1ee996a2e7c8d770-s.woff2) format("woff2");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:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/581701471b17b157-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/1eedfae966de4e1c-s.p.woff2) format("woff2");unicode-range:u+00??,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:Spectral Fallback;src:local("Times New Roman");ascent-override:96.46%;descent-override:42.17%;line-gap-override:0.00%;size-adjust:109.78%}.__className_2dfbdf{font-family:Spectral,Spectral Fallback;font-style:normal}.__variable_2dfbdf{--serif:"Spectral","Spectral Fallback"}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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 Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_4b3a31{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_4b3a31{--sans:"IBM Plex Sans","IBM Plex Sans Fallback"}:root{--ink:#12161B;--graphite:#3A444E;--slate:#66717C;--line:#D9DEE3;--wash:#F3F5F7;--paper:#fff;--accent:#1D3B5C;--danger:#8C2F2F;--r:3px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans),system-ui,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--serif),Georgia,serif;font-weight:600;line-height:1.15;margin:0;letter-spacing:-.01em}a{color:var(--accent);text-underline-offset:3px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:6px 12px;cursor:pointer;line-height:1.3}button:hover:not(:disabled){border-color:var(--slate)}button:disabled{opacity:.45;cursor:default}button.pri{background:var(--ink);border-color:var(--ink);color:#fff}button.pri:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}button.danger{color:var(--danger);border-color:#E3C9C9}.wrap{max-width:1080px;margin:0 auto;padding:0 24px}.site-h{border-bottom:1px solid var(--line)}.site-h .wrap{display:flex;align-items:center;gap:24px;height:60px}.logo{font:600 19px var(--serif),Georgia,serif;color:var(--ink);text-decoration:none}.nav{display:flex;gap:20px;margin-left:auto}.nav a{color:var(--graphite);text-decoration:none;font-size:15px}.nav a:hover{color:var(--ink)}.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;padding:10px 20px;border-radius:var(--r)}.btn:hover{background:var(--accent)}.btn.ghost{background:none;color:var(--ink);border:1px solid var(--line)}.btn.ghost:hover{border-color:var(--slate)}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:56px;gap:56px;align-items:center;padding:72px 0 64px}.hero h1{font-size:clamp(34px,4.6vw,54px)}.hero p{max-width:46ch;color:var(--graphite);font-size:18px;margin:20px 0 28px}.hero .acts{display:flex;gap:12px;flex-wrap:wrap}.plate{border:1px solid var(--line);border-radius:var(--r);padding:16px;background:var(--paper);overflow:hidden}.plate svg{display:block;width:100%;height:auto;max-height:520px}.plate figcaption{font-size:13px;color:var(--slate);margin-top:10px;padding-top:8px}.plate figcaption,.sec{border-top:1px solid var(--line)}.sec{padding:56px 0}.sec h2{font-size:28px;margin-bottom:20px}.sec p{max-width:62ch;color:var(--graphite)}.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:40px;gap:40px}.cols h3{font-size:19px;margin-bottom:6px}.cols p{margin:0}.steps{counter-reset:s;padding:0;list-style:none;display:grid;grid-gap:20px;gap:20px;max-width:62ch}.steps li{counter-increment:s;padding-left:44px;position:relative}.steps li:before{content:counter(s);position:absolute;left:0;top:0;width:28px;height:28px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-size:14px}.tlist{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.tlist li{border-bottom:1px solid var(--line)}.tlist a{display:flex;justify-content:space-between;gap:24px;padding:16px 0;text-decoration:none;color:var(--ink)}.tlist a:hover{color:var(--accent)}.tlist span{color:var(--slate);font-size:15px;text-align:right;max-width:44ch}.faq details{border-bottom:1px solid var(--line);padding:14px 0}.faq summary{cursor:pointer;font-weight:500}.faq p{margin:10px 0 0}.site-f{border-top:1px solid var(--line);padding:32px 0;color:var(--slate);font-size:14px}.site-f .wrap{display:flex;gap:24px;flex-wrap:wrap;justify-content:space-between}.site-f a{color:var(--slate)}.page{padding:56px 0 72px}.page h1{font-size:clamp(30px,4vw,44px);margin-bottom:16px}.page p{max-width:62ch;color:var(--graphite)}pre.code{background:var(--wash);border:1px solid var(--line);border-radius:var(--r);padding:16px;overflow:auto;font:13px/1.5 ui-monospace,Menlo,monospace;max-width:100%}.crumb{font-size:14px;color:var(--slate);margin-bottom:24px}.app{height:100dvh;display:grid;grid-template-columns:272px minmax(0,1fr) 272px;grid-template-rows:52px minmax(0,1fr);background:var(--wash)}.bar{grid-column:1/-1;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{font:600 17px var(--serif),Georgia,serif;color:var(--ink);text-decoration:none;margin-right:8px}.title{border:1px solid transparent;border-radius:var(--r);padding:5px 8px;background:none;min-width:0;width:min(34vw,320px);font-weight:500}.title:focus,.title:hover{border-color:var(--line);background:#fff}.status{font-size:12px;color:var(--slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:30ch}.sp{flex:1 1}.bar button{font-size:14px;padding:5px 10px}.m-only{display:none}.menu{position:relative}.pop{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 24px rgba(18,22,27,.12);padding:8px;display:grid;grid-gap:2px;gap:2px;min-width:260px;max-height:calc(100dvh - 80px);overflow:auto}.pop button{border:0;text-align:left;padding:7px 10px}.pop button:hover{background:var(--wash)}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0;width:100%}.pop .f{font-size:12px;color:var(--graphite);display:grid;grid-gap:3px;gap:3px;margin-bottom:4px}.pop input[type=number],.pop select{width:100%;border:1px solid var(--line);border-radius:var(--r);padding:6px 8px;background:#fff;font-size:13px}.side{background:var(--paper);overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.left{border-right:1px solid var(--line)}.right{border-left:1px solid var(--line)}.side h2{font:600 15px var(--serif),Georgia,serif;margin:14px 0 2px}.side h2:first-child{margin-top:0}.side h3{font-family:var(--sans),system-ui,sans-serif}.f{display:grid;grid-gap:4px;gap:4px;font-size:13px;color:var(--graphite)}.f input,.f select,.f textarea,.row input{width:100%;border:1px solid var(--line);border-radius:var(--r);padding:7px 8px;background:#fff;font-size:14px;color:var(--ink)}.f textarea{resize:vertical}.wide{width:100%}.note{font-size:13px;color:var(--graphite);margin:0}.chk{display:flex;gap:8px;align-items:center;font-size:14px}.list{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px}.list button{width:100%;text-align:left;border-color:transparent;font-size:14px}.list button:hover{background:var(--wash)}.split{display:flex;justify-content:space-between;align-items:center;font-size:14px;gap:8px}.split button{font-size:12px;padding:2px 8px}.grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.grid button{font-size:13px}.row{display:flex;gap:8px}.file{font-size:14px;border:1px dashed var(--line);border-radius:var(--r);padding:8px;text-align:center;cursor:pointer;position:relative}.file input{position:absolute;inset:0;opacity:0;cursor:pointer}.file:focus-within{outline:2px solid var(--accent)}.checks{margin:0;padding-left:18px;font-size:13px;color:var(--danger)}.swatches{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.swatches .sw{width:22px;height:22px;padding:0;border-radius:4px;border:1.5px solid;cursor:pointer;transition:transform .1s}.swatches .sw:hover{transform:scale(1.12)}input.col{width:28px;height:26px;padding:0;border:1px solid var(--line);border-radius:3px;background:#fff;cursor:pointer}.canvas{min-width:0}.canvas,.mf{position:relative}.mf{display:grid;place-items:center;font-size:13px;line-height:1.3;text-align:center;padding:6px 14px}.mf:before{content:"";position:absolute;inset:0;background:#fff;border:1.5px solid var(--ink);transition:background .15s,border-color .15s}.mf-decision:before{display:none}.mf-process:before{border-radius:2px}.mf-terminator:before{border-radius:999px}.mf-data:before{transform:skewX(-14deg)}.mf-document:before{border-radius:2px 2px 45% 45%/2px 2px 14px 14px}.mf-database:before{border-radius:50%/18%}.mf-dia{position:absolute;inset:0;width:100%;height:100%}.mf-dia polygon{fill:#fff;stroke:var(--ink);stroke-width:1.5}.mf-t{position:relative;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mf.is-sel:before{border-color:var(--accent);box-shadow:0 0 0 2px rgba(29,59,92,.25)}.mf.is-sel .mf-dia polygon{stroke:var(--accent);stroke-width:2.5}.react-flow__handle{width:7px;height:7px;background:#fff;border:1.5px solid var(--accent);opacity:0}.mf.is-sel .react-flow__handle,.mf:hover .react-flow__handle{opacity:1}.scrim{position:fixed;inset:0;background:rgba(18,22,27,.4);display:grid;place-items:center;z-index:20;padding:16px}.modal{background:#fff;border-radius:var(--r);padding:20px;width:min(640px,100%);display:grid;grid-gap:12px;gap:12px}.modal h2{font-size:20px}.modal textarea{width:100%;font:13px/1.5 ui-monospace,Menlo,monospace;border:1px solid var(--line);border-radius:var(--r);padding:10px}@media(max-width:980px){.hero{padding:48px 0}.cols,.hero{grid-template-columns:1fr}.cols{gap:28px}.tlist a{flex-direction:column;gap:4px}.tlist span{text-align:left}.nav{gap:14px}}@media(max-width:900px){.app{grid-template-columns:minmax(0,1fr)}.app>.canvas{grid-column:1;grid-row:2}.side{position:fixed;top:52px;bottom:0;width:min(320px,88vw);z-index:6;box-shadow:0 8px 24px rgba(18,22,27,.15);transform:translateX(-102%);transition:transform .18s}.right{right:0;left:auto;transform:translateX(102%)}.side[data-open=true]{transform:none}.m-only{display:inline-block}.status,.title{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}