:root{--accent:#ff5e1f;--accent-hover:#ff7038;--on-accent:#fff;--canvas:#fff;--elevated:#fafafa;--recessed:#f5f5f5;--line:#1717171a;--line-strong:#1717172e;--text:#262626;--text-strong:#404040;--text-muted:#666;--text-subtle:gray;--cat-ai:#00bd7d;--cat-compute:#0a95ff;--cat-storage:#ee0ddb;--cat-security:#ff5b66;--cat-warn:#e08a00;--cat-media:#9616ff;--cat-sase:#2dd4bf;--sec:var(--accent);--font-sans:"FT Kunst Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Apercu Mono Pro", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius-card:18px;--radius-pill:9999px;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in:cubic-bezier(.5, 0, 1, 1);--ease-reveal:cubic-bezier(.22, 1, .36, 1);--ease-button:cubic-bezier(.25, .46, .45, .94);--shadow-card:0 1px 2px #17171708, 0 8px 24px -10px #1717171a;--nav-h:60px;--rail-w:290px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1, "liga" 1}[data-theme=dark]{--canvas:#0f0f0f;--elevated:#171717;--recessed:#1a1a1a;--line:#f0e3de21;--line-strong:#f0e3de3d;--text:#f0e3de;--text-strong:#f0e3de;--text-muted:#9a9390;--text-subtle:#7a7370;--accent:#ff6a2c;--shadow-card:0 1px 2px #0000004d, 0 10px 26px -12px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--canvas);color:var(--text);margin:0;font-size:16px;line-height:1.5;overflow:hidden}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--sec);outline-offset:3px;border-radius:4px}a{color:var(--sec);text-decoration:none}.app{flex-direction:column;height:100%;display:flex}.nav{height:var(--nav-h);border-bottom:1px solid var(--line);background:var(--canvas);z-index:20;flex:none;align-items:center;gap:8px;padding:0 22px;display:flex}.nav__home{cursor:pointer;color:var(--text);font-family:var(--font-sans);transition:background .15s var(--ease-out);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;margin-right:6px;padding:6px 10px 6px 4px;display:inline-flex}.nav__home:hover{background:var(--recessed)}.nav__wordmark{letter-spacing:-.01em;text-align:left;font-size:14.5px;font-weight:500;line-height:1.15}.nav__wordmark small{font-family:var(--font-mono);color:var(--text-subtle);font-size:11px;font-weight:400;display:block}.nav__tabs{align-items:center;gap:4px;margin-left:10px;display:flex}.tab{border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font-sans);letter-spacing:-.01em;color:var(--text-muted);white-space:nowrap;transition:all .16s var(--ease-button);background:0 0;border:1px solid #0000;align-items:center;gap:9px;padding:7px 15px;font-size:14.5px;font-weight:500;display:inline-flex}.tab svg{color:var(--tab);opacity:.75;transition:opacity .16s var(--ease-out)}.tab:hover{color:var(--text);background:var(--recessed)}.tab:hover svg{opacity:1}.tab[aria-current]{color:var(--tab);border-color:color-mix(in srgb, var(--tab) 40%, transparent);background:color-mix(in srgb, var(--tab) 10%, transparent)}.tab[aria-current] svg{opacity:1}.nav__spacer{flex:auto}.icon-btn{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--canvas);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:all .16s var(--ease-button);flex:none;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--sec);border-color:var(--sec);background:var(--recessed)}.icon-btn:active{transform:translateY(1px)scale(.98)}.view{flex:auto;min-height:0;position:relative}.sheet{z-index:50;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.sheet__scrim{cursor:pointer;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:sheet-in .18s var(--ease-out);background:#17171766;border:0;padding:0;position:absolute;inset:0}.sheet__panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--canvas);width:min(620px,100%);max-height:100%;animation:sheet-rise .22s var(--ease-out);padding:22px 26px 20px;position:relative;overflow-y:auto;box-shadow:0 24px 60px -20px #17171766}@keyframes sheet-in{0%{opacity:0}}@keyframes sheet-rise{0%{opacity:0;transform:translateY(10px)}}.sheet__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet__label{font-family:var(--font-mono);color:var(--accent);margin:0;font-size:12.5px}.sheet__lead{color:var(--text-muted);text-wrap:pretty;margin:12px 0 18px;font-size:14px;line-height:1.5}.sheet__list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.sheet__list a{color:var(--text);transition:background .14s var(--ease-out), color .14s var(--ease-out);border-radius:10px;align-items:center;gap:11px;padding:9px 12px;font-size:14.5px;display:flex}.sheet__list a svg{color:var(--text-subtle);transition:color .14s var(--ease-out);flex:none}.sheet__list a:hover{background:var(--recessed);color:var(--accent)}.sheet__list a:hover svg{color:var(--accent)}.sheet__foot{font-family:var(--font-mono);color:var(--text-subtle);border-top:1px solid var(--line);margin:18px 0 0;padding-top:14px;font-size:11.5px}.landing{flex-direction:column;height:100%;padding:26px 40px 22px;display:flex;position:relative;overflow:hidden}.landing:after{content:"";background:radial-gradient(900px 460px at 50% 0%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 68%);pointer-events:none;z-index:0;height:70%;position:absolute;inset:-20% -10% auto}.landing__head{z-index:1;text-align:center;flex:none;position:relative}.landing__eyebrow{font-family:var(--font-mono);color:var(--accent);margin:0 0 10px;font-size:12.5px}.landing__title{letter-spacing:-.028em;color:var(--text);text-wrap:balance;margin:0;font-size:clamp(28px,3.4vw,46px);font-weight:500;line-height:1.04}.landing__figure{z-index:1;flex:auto;min-height:0;margin-top:14px;position:relative}.landing__figure svg{width:100%;height:100%;display:block;overflow:visible}.landing__hint{text-align:center;font-family:var(--font-mono);color:var(--text-subtle);z-index:1;flex:none;margin:6px 0 0;font-size:12px;position:relative}.hot{cursor:pointer}.hot__box{fill:color-mix(in srgb, var(--hot) 11%, var(--canvas));stroke:var(--hot);stroke-width:1.8px;transition:fill .2s var(--ease-out), stroke-width .2s var(--ease-out)}.hot__glow{fill:none;stroke:var(--hot);stroke-width:1.4px;opacity:.14;animation:hot-breathe 3.8s var(--ease-out) infinite}@keyframes hot-breathe{0%,to{opacity:.1;stroke-width:1.3px}50%{opacity:.26;stroke-width:2.2px}}.hot .d-ic-accent{color:var(--hot)}.hot__label{font-family:var(--font-sans);letter-spacing:-.02em;fill:var(--text);font-size:23px;font-weight:500}.hot__chip{font-family:var(--font-mono);fill:var(--text);transition:fill .18s var(--ease-out)}.hot__badge{fill:color-mix(in srgb, var(--hot) 18%, var(--canvas));stroke:var(--hot);stroke-width:1.6px;transition:fill .18s var(--ease-out), stroke-width .18s var(--ease-out)}.hot__num{font-family:var(--font-mono);fill:var(--hot);letter-spacing:0;transition:fill .18s var(--ease-out);font-weight:600}.hot__ping{fill:none;stroke:var(--hot);stroke-width:1.6px;transform-box:fill-box;transform-origin:50%;animation:hot-ping 3.4s var(--ease-out) infinite}@keyframes hot-ping{0%{opacity:.4;transform:scale(1)}70%,to{opacity:0;transform:scale(1.45)}}.hot__cursor{fill:var(--canvas);stroke:var(--hot);stroke-width:1.5px;stroke-linejoin:round;opacity:.7;transform-box:fill-box;transform-origin:50%;animation:hot-click 4s var(--ease-out) infinite;transition:opacity .18s var(--ease-out)}@keyframes hot-click{0%,58%,to{transform:translate(0)}64%{transform:translate(-2.4px,-2.4px)}70%{transform:translate(0)}76%{transform:translate(-2.4px,-2.4px)}82%{transform:translate(0)}}.hot:hover .hot__cursor,.hot:focus-visible .hot__cursor{opacity:1}.hot:hover .hot__badge,.hot:focus-visible .hot__badge{fill:var(--hot);stroke-width:2.2px}.hot:hover .hot__num,.hot:focus-visible .hot__num{fill:var(--canvas)}.hot:hover .hot__box,.hot:focus-visible .hot__box{fill:color-mix(in srgb, var(--hot) 22%, var(--canvas));stroke-width:2.6px}.hot:hover .hot__glow,.hot:focus-visible .hot__glow{opacity:.6;stroke-width:3.4px}.hot:hover .hot__chip,.hot:focus-visible .hot__chip{fill:var(--hot)}.hot:focus-visible{outline:none}.hot:focus-visible .hot__box{stroke-dasharray:6 4}.section-view{grid-template-columns:var(--rail-w) minmax(0, 1fr);height:100%;display:grid}.rail{border-right:1px solid var(--line);background:var(--elevated);flex-direction:column;min-height:0;display:flex}.rail__head{border-bottom:1px solid var(--line);flex:none;padding:18px 20px 14px}.rail__label{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--sec);align-items:center;gap:8px;margin:0 0 7px;font-size:11.5px;display:flex}.rail__badge{border:1px solid var(--sec);background:color-mix(in srgb, var(--sec) 18%, var(--canvas));width:19px;height:19px;color:var(--sec);letter-spacing:0;border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.rail__title{letter-spacing:-.018em;color:var(--text);margin:0;font-size:19px;font-weight:500;line-height:1.2}.rail__steps{counter-reset:step;flex:auto;min-height:0;margin:0;padding:12px 12px 16px;list-style:none;overflow-y:auto}.rail__steps[data-dense]{padding:8px 10px 12px}.rail__steps[data-dense] .rail__btn{gap:10px;padding:6px 10px}.rail__steps[data-dense] .rail__name{font-size:13.5px}.rail__item{padding-left:14px;position:relative}.rail__item:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:25px}.rail__item:first-child:before{top:50%}.rail__item:last-child:before{bottom:50%}.rail__btn{text-align:left;cursor:pointer;width:100%;font-family:var(--font-sans);color:var(--text-muted);transition:background .15s var(--ease-out), color .15s var(--ease-out);background:0 0;border:0;border-radius:10px;grid-template-columns:22px 1fr;align-items:start;gap:12px;padding:10px 11px;display:grid;position:relative}.rail__btn:hover{background:var(--recessed);color:var(--text)}.rail__num{z-index:1;border:1px solid var(--line-strong);background:var(--elevated);width:22px;height:22px;font-family:var(--font-mono);color:var(--text-subtle);transition:all .16s var(--ease-button);border-radius:50%;place-items:center;font-size:11px;display:grid;position:relative}.rail__name{letter-spacing:-.01em;padding-top:2px;font-size:14.5px;font-weight:500;line-height:1.3}.rail__btn[aria-current]{background:color-mix(in srgb, var(--sec) 10%, transparent);color:var(--text)}.rail__btn[aria-current] .rail__num{background:var(--sec);border-color:var(--sec);color:#fff}.rail__btn[data-done=true] .rail__num{border-color:color-mix(in srgb, var(--sec) 55%, var(--line-strong));color:var(--sec)}.rail__foot{border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--text-subtle);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:11px 16px;font-size:11.5px;display:flex}.rail__nav{gap:6px;display:flex}.rail__arrow{border:1px solid var(--line);background:var(--canvas);width:26px;height:26px;color:var(--text-muted);cursor:pointer;transition:all .16s var(--ease-button);border-radius:50%;place-items:center;display:inline-grid}.rail__arrow:hover:not(:disabled){color:var(--sec);border-color:var(--sec)}.rail__arrow:disabled{opacity:.35;cursor:not-allowed}.stage{flex-direction:column;min-height:0;padding:26px 40px 22px;display:flex;position:relative;overflow:hidden}.stage__head{flex:none}.stage__eyebrow{font-family:var(--font-mono);color:var(--sec);margin:0 0 9px;font-size:12.5px}.stage__title{letter-spacing:-.025em;color:var(--text);text-wrap:balance;max-width:34ch;margin:0;font-size:clamp(22px,2.3vw,33px);font-weight:500;line-height:1.1}.stage__figure{flex:auto;justify-content:center;align-items:center;min-height:0;margin:16px 0 0;display:flex}.stage__figure svg{width:100%;height:100%;max-height:100%;display:block;overflow:visible}.stage code,.rail code{font-family:var(--font-mono);color:var(--text);background:var(--recessed);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:.88em}.todo{border:1px dashed color-mix(in srgb, var(--sec) 55%, var(--line));background:color-mix(in srgb, var(--sec) 6%, transparent);font-family:var(--font-mono);color:var(--text-muted);border-radius:12px;flex:none;align-items:center;gap:10px;margin-top:14px;padding:10px 15px;font-size:12.5px;display:flex}.todo svg{color:var(--sec);flex:none}.dgm{color:var(--text);overflow:visible}.d-box{stroke-width:1.5px}.ic{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.ic .ic-fill{fill:currentColor;stroke:none}.d-ic-default,.d-ic-muted{color:var(--text-muted)}.d-ic-accent{color:var(--sec)}.d-ic-solid{color:var(--canvas)}.d-ic-danger{color:var(--cat-security)}.d-ic-good{color:var(--cat-ai)}.view[data-section=waf]{--cat-compute:#6b4df6}.view[data-section=overview]{--cat-security:#d81b43}.d-ic-warn{color:var(--cat-warn)}.d-ic-info{color:var(--cat-compute)}.d-good-box{fill:color-mix(in srgb, var(--cat-ai) 12%, var(--canvas));stroke:var(--cat-ai)}.d-warn-box{fill:color-mix(in srgb, var(--cat-warn) 12%, var(--canvas));stroke:var(--cat-warn)}.d-info-box{fill:color-mix(in srgb, var(--cat-compute) 12%, var(--canvas));stroke:var(--cat-compute)}.d-default-box{fill:var(--canvas);stroke:var(--line-strong)}.d-muted-box{fill:var(--recessed);stroke:var(--line)}.d-accent-box{fill:color-mix(in srgb, var(--sec) 11%, var(--canvas));stroke:var(--sec)}.d-solid-box{fill:var(--text);stroke:var(--text)}.d-danger-box{fill:color-mix(in srgb, var(--cat-security) 10%, var(--canvas));stroke:var(--cat-security)}.d-label{font-family:var(--font-sans);letter-spacing:-.01em;font-size:16px;font-weight:500}.d-sub,.d-arrow-label,.d-boundary-label{font-family:var(--font-mono);font-size:12.5px}.d-arrow-label,.d-boundary-label{font-size:13px}.d-group-tag{font-family:var(--font-sans);letter-spacing:-.015em;font-size:17px;font-weight:600}.d-default-text,.d-muted-text,.d-danger-text,.d-good-text,.d-warn-text,.d-info-text,.d-accent-text{fill:var(--text)}.d-solid-text{fill:var(--canvas)}.d-default-sub,.d-muted-sub,.d-accent-sub,.d-danger-sub,.d-good-sub,.d-warn-sub,.d-info-sub{fill:var(--text-muted)}.d-solid-sub{fill:var(--canvas);opacity:.66}.d-default-arrowtext,.d-muted-arrowtext,.d-solid-arrowtext{fill:var(--text-subtle)}.d-good-arrowtext{fill:var(--cat-ai)}.d-warn-arrowtext{fill:var(--cat-warn)}.d-info-arrowtext{fill:var(--cat-compute)}.d-accent-arrowtext{fill:var(--sec)}.d-danger-arrowtext{fill:var(--cat-security)}.d-line{fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.d-default-line,.d-muted-line,.d-solid-line{stroke:currentColor;opacity:.38}.d-good-line{stroke:var(--cat-ai)}.d-warn-line{stroke:var(--cat-warn)}.d-info-line{stroke:var(--cat-compute)}.d-accent-line{stroke:var(--sec);opacity:1}.d-danger-line{stroke:var(--cat-security);opacity:1}.d-head{stroke:none}.d-default-head,.d-muted-head,.d-solid-head{fill:currentColor;opacity:.38}.d-good-head{fill:var(--cat-ai)}.d-warn-head{fill:var(--cat-warn)}.d-info-head{fill:var(--cat-compute)}.d-accent-head{fill:var(--sec)}.d-danger-head{fill:var(--cat-security)}.d-boundary{fill:none;stroke-width:1.5px;stroke-dasharray:7 6}.d-default-boundary,.d-muted-boundary,.d-solid-boundary{stroke:currentColor;opacity:.28}.d-good-boundary{stroke:var(--cat-ai);opacity:.75}.d-warn-boundary{stroke:var(--cat-warn);opacity:.75}.d-info-boundary{stroke:var(--cat-compute);opacity:.7}.d-accent-boundary{stroke:var(--sec);opacity:.8}.d-danger-boundary{stroke:var(--cat-security);opacity:.75}.d-edge{stroke:none}.d-rule{fill:none;stroke-width:1.5px;stroke-linecap:round;opacity:.32}.d-rule.d-default-edge,.d-rule.d-muted-edge,.d-rule.d-solid-edge{stroke:currentColor}.d-rule.d-good-edge{stroke:var(--cat-ai)}.d-rule.d-warn-edge{stroke:var(--cat-warn)}.d-rule.d-info-edge{stroke:var(--cat-compute)}.d-rule.d-accent-edge{stroke:var(--sec)}.d-rule.d-danger-edge{stroke:var(--cat-security)}.d-default-edge,.d-muted-edge,.d-solid-edge{fill:currentColor;opacity:.3}.d-good-edge{fill:var(--cat-ai)}.d-warn-edge{fill:var(--cat-warn)}.d-info-edge{fill:var(--cat-compute)}.d-accent-edge{fill:var(--sec)}.d-danger-edge{fill:var(--cat-security)}.d-blocked circle{fill:var(--canvas);stroke:var(--cat-security);stroke-width:1.8px}.d-blocked line{stroke:var(--cat-security);stroke-width:1.8px;stroke-linecap:round}.d-flowline{fill:none;stroke-width:2.6px;stroke-linecap:round;stroke-dasharray:2 17;animation:1.9s linear infinite dgm-flow}@keyframes dgm-flow{0%{stroke-dashoffset:19px}to{stroke-dashoffset:0}}.d-flow-default,.d-flow-muted,.d-flow-solid{stroke:var(--text-subtle)}.d-flow-accent{stroke:var(--sec)}.d-flow-danger{stroke:var(--cat-security)}.d-flow-good{stroke:var(--cat-ai)}.d-flow-warn{stroke:var(--cat-warn)}.d-flow-info{stroke:var(--cat-compute)}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.d-flowline{display:none}.hot__glow{opacity:.4;stroke-width:2.4px}.hot__ping{opacity:.4;transform:scale(1.4)}}@media (height<=800px){:root{--nav-h:52px}.landing,.stage{padding-top:16px;padding-bottom:14px}.landing__eyebrow,.stage__eyebrow{margin-bottom:5px}.landing__lead{margin-top:8px}.landing__figure,.stage__figure{margin-top:10px}.landing__hint{display:none}.todo{margin-top:10px;padding:8px 13px}.rail__head{padding:13px 20px 11px}.rail__steps{padding:8px 10px 10px}.rail__btn{padding:8px 11px}}@media (width<=1240px){:root{--rail-w:252px}.stage,.landing{padding-left:26px;padding-right:26px}.tab{padding:7px 12px;font-size:13.5px}}@media (width<=1020px){.tab span{display:none}.tab{padding:7px 11px}}@media (width<=840px){.section-view{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.rail{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;gap:10px;padding:0 12px}.rail__head,.rail__foot{display:none}.rail__steps{gap:6px;padding:10px 0;display:flex;overflow:auto hidden}.rail__item{flex:none;padding-left:0}.rail__item:before{display:none}.rail__name{white-space:nowrap}}html[data-vt=enter]::view-transition-old(root){mix-blend-mode:normal}html[data-vt=enter]::view-transition-new(root){mix-blend-mode:normal}html[data-vt=exit]::view-transition-old(root){mix-blend-mode:normal}html[data-vt=exit]::view-transition-new(root){mix-blend-mode:normal}html[data-vt=enter]::view-transition-new(root){z-index:2;animation:vt-open .58s var(--ease-reveal) both}html[data-vt=enter]::view-transition-old(root){z-index:1;animation:vt-recede .58s var(--ease-out) both}@keyframes vt-open{0%{clip-path:circle(0px at var(--vt-x,50%) var(--vt-y,50%))}to{clip-path:circle(var(--vt-r,150%) at var(--vt-x,50%) var(--vt-y,50%))}}@keyframes vt-recede{to{opacity:.3;transform:scale(.94)}}html[data-vt=exit]::view-transition-old(root){z-index:2;animation:vt-shrink .34s var(--ease-in) both}html[data-vt=exit]::view-transition-new(root){z-index:1;animation:vt-advance .34s var(--ease-out) both}@keyframes vt-shrink{to{opacity:0;transform:scale(.93)}}@keyframes vt-advance{0%{opacity:.2;transform:scale(1.03)}}html[data-vt=step] .stage{view-transition-name:stage}html[data-vt=step]::view-transition-old(stage){animation:vt-step-out .2s var(--ease-in) both}html[data-vt=step]::view-transition-new(stage){animation:vt-step-in .42s var(--ease-reveal) both}html{--vt-way:1}html[data-vt-back]{--vt-way:-1}@keyframes vt-step-out{to{opacity:0;transform:translateX(calc(var(--vt-way) * -26px))}}@keyframes vt-step-in{0%{opacity:0;transform:translateX(calc(var(--vt-way) * 38px))}}
