.cap{position:relative}.cap-tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.cap-tabs::-webkit-scrollbar{display:none}.cap-tab{cursor:pointer;color:var(--tx-mute);text-align:left;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:0;flex:none;align-items:center;gap:11px;padding:16px 18px;display:flex;position:relative}.cap-tab:hover{color:var(--tx-dim)}.cap-tab.on{color:var(--tx)}.cap-tab .ic{width:22px;height:22px;color:var(--tx-mute);transition:color var(--dur-fast) var(--ease-out)}.cap-tab.on .ic{color:var(--orange)}.cap-tab .lb{line-height:1.15;font-size:var(--fs-body-sm);flex-direction:column;display:flex}.cap-tab .lb .lb1{font-family:var(--disp);font-weight:400}.cap-tab .lb .lb2{font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:.04em;color:var(--tx-mute)}.cap-tab .bar{background:0 0;width:100%;height:2px;position:absolute;bottom:-1px;left:0}.cap-tab.on .bar{background:var(--line-strong)}.cap-tab.on .bar:after{content:"";background:var(--orange);width:0;position:absolute;inset:0}.cap-tab.on.play .bar:after{animation:cap-prog var(--cap-dur,7s) var(--ease-linear) forwards}@keyframes cap-prog{to{width:100%}}.cap-stage{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 55%), radial-gradient(120% 100% at 100% 0%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 60%), var(--surface);box-shadow:var(--inset), var(--panel-sh);margin-top:18px;position:relative;overflow:hidden}.iz[data-theme=paper] .cap-stage{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 55%), var(--surface)}.cap-stage{display:grid}.cap-grid{opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur) var(--ease);grid-area:1/1;grid-template-columns:1.02fr .98fr;gap:0;display:grid}.cap-grid.on{opacity:1;visibility:visible;pointer-events:auto}.cap-left{border-right:1px solid var(--line);align-items:center;min-height:420px;padding:30px;display:flex}.cap-right{padding:36px 34px}.cap-title{font-family:var(--disp);font-weight:var(--fw-disp);letter-spacing:var(--ls-h2);font-size:clamp(24px,3vw,32px);line-height:var(--lh-h2);margin:var(--sp-3) 0 0}.cap-title em{color:var(--orange);font-style:normal;font-weight:400}.cap-sub{color:var(--tx-dim);font-size:var(--fs-body-sm);margin:var(--sp-3) 0 0;max-width:44ch;line-height:1.55}.cap-bullets{flex-direction:column;gap:14px;margin:22px 0 0;padding:0;list-style:none;display:flex}.cap-bullet{gap:var(--sp-3);grid-template-columns:22px 1fr;display:grid}.cap-bullet .bi{width:18px;height:18px;color:var(--orange);margin-top:2px}.cap-bullet .bt{font-size:var(--fs-body-sm);color:var(--tx-dim);line-height:1.5}.cap-bullet .bt b{color:var(--tx);font-weight:600;font-family:var(--body)}.cap-foot-chips{gap:var(--sp-2);flex-wrap:wrap;margin-top:22px;display:flex}.cap-cta{margin-top:var(--sp-6);flex-wrap:wrap;gap:10px;display:flex}.cap-bullet{opacity:0;animation:cap-in .45s var(--ease-out) forwards;transform:translateY(8px)}.cap-bullet:first-child{animation-delay:50ms}.cap-bullet:nth-child(2){animation-delay:.12s}.cap-bullet:nth-child(3){animation-delay:.19s}.cap-bullet:nth-child(4){animation-delay:.26s}.cap-bullet:nth-child(5){animation-delay:.33s}.cap-bullet:nth-child(6){animation-delay:.4s}@keyframes cap-in{to{opacity:1;transform:none}}.cap-arrow{border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface-2);width:38px;height:38px;color:var(--tx-dim);cursor:pointer;z-index:5;transition:all var(--dur-fast) var(--ease-out);place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.cap-arrow:hover{color:var(--orange);border-color:var(--orange)}.cap-arrow svg{width:18px;height:18px}.cap-arrow.prev{left:12px}.cap-arrow.next{right:12px}.cap-vis,.cap-vis .iz-panel{width:100%}.cap-vrow{border-bottom:1px solid var(--line);font-family:var(--mono);font-size:var(--fs-label);color:var(--tx-dim);align-items:center;gap:10px;padding:11px 14px;display:flex}.cap-vrow:last-child{border-bottom:0}.cap-vrow .dot{border-radius:var(--r-pill);background:var(--ghost);flex:none;width:8px;height:8px}.cap-vrow.ok .dot{background:var(--allow)}.cap-vrow.no .dot{background:var(--deny)}.cap-vrow .tail{margin-left:auto}.cap-vrow .pill{font-size:var(--fs-mono-xs);border-radius:var(--r-pill);padding:2px 9px}.cap-vrow .pill.allow{background:var(--allow-bg);color:var(--allow)}.cap-vrow .pill.deny{background:var(--deny-bg);color:var(--deny)}.cap-seq .cap-vrow{opacity:.35;transition:opacity var(--dur) var(--ease-out)}.cap-seq .cap-vrow .dot{background:var(--ghost)}.cap-seq.run .cap-vrow{animation:cap-rowin .4s var(--ease-out) forwards}.cap-seq.run .cap-vrow:first-child{animation-delay:.2s}.cap-seq.run .cap-vrow:nth-child(2){animation-delay:.6s}.cap-seq.run .cap-vrow:nth-child(3){animation-delay:1s}.cap-seq.run .cap-vrow:nth-child(4){animation-delay:1.4s}.cap-seq.run .cap-vrow:nth-child(5){animation-delay:1.8s}.cap-seq.run .cap-vrow:nth-child(6){animation-delay:2.2s}@keyframes cap-rowin{to{opacity:1}}.cap-tunnel{padding:14px}.cap-tunnel svg{width:100%;height:auto;display:block}.cap-packet{animation:cap-travel 2.4s var(--ease-linear) infinite}@keyframes cap-travel{0%{offset-distance:0%}to{offset-distance:100%}}.cap-blocked{animation:cap-block 2s var(--ease-out) infinite}@keyframes cap-block{0%,to{opacity:.9;transform:translate(0)}45%{opacity:1;transform:translate(26px)}55%{opacity:0;transform:translate(26px)}56%{opacity:0;transform:translate(0)}70%{opacity:.9}}.cap-chips{gap:var(--sp-2);padding:var(--sp-4);flex-wrap:wrap;display:flex}.cap-chip2{font-family:var(--mono);font-size:var(--fs-label);color:var(--tx-dim);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--bg-2);padding:6px 12px}.cap-chips.flow .cap-chip2{opacity:0;animation:cap-in .4s var(--ease-out) forwards}.cap-chips.flow .cap-chip2:nth-child(odd){animation-delay:.15s}.cap-chips.flow .cap-chip2:nth-child(2n){animation-delay:.3s}.cap-group-h{font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-mute);padding:14px 16px 2px}.cap-apps{padding:var(--sp-4);grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.cap-app{aspect-ratio:1;border:1px solid var(--line-strong);border-radius:var(--r-md);color:var(--tx-mute);background:var(--bg-2);transition:color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);place-items:center;display:grid;position:relative}.cap-app .lk,.cap-app .ck{transition:opacity var(--dur) var(--ease-out);position:absolute}.cap-app .ck{opacity:0;color:var(--allow)}.cap-apps.run .cap-app{color:var(--allow);border-color:var(--allow)}.cap-apps.run .cap-app .lk{opacity:0}.cap-apps.run .cap-app .ck{opacity:1}.cap-apps.run .cap-app:first-child{transition-delay:.3s}.cap-apps.run .cap-app:nth-child(2){transition-delay:.5s}.cap-apps.run .cap-app:nth-child(3){transition-delay:.7s}.cap-apps.run .cap-app:nth-child(4){transition-delay:.9s}.cap-apps.run .cap-app .lk,.cap-apps.run .cap-app .ck{transition-delay:inherit}.cap-vbtn{margin:var(--sp-1) var(--sp-4) var(--sp-4);font-family:var(--body);font-size:var(--fs-sm);border-radius:var(--r-pill);border:1px solid var(--orange);color:var(--orange);padding:var(--sp-2) var(--sp-4);cursor:pointer;background:0 0;font-weight:500}.cap-vbtn:hover{background:var(--orange);color:var(--btn-ink)}@media (max-width:880px){.cap-grid{grid-template-columns:1fr}.cap-left{border-right:0;border-bottom:1px solid var(--line);min-height:0}.cap-arrow{display:none}}@media (prefers-reduced-motion:reduce){.cap-tab.on.play .bar:after{width:100%;animation:none}.cap-bullet,.cap-chips.flow .cap-chip2{opacity:1;animation:none;transform:none}.cap-seq .cap-vrow{opacity:1}.cap-packet,.cap-blocked{animation:none}}
.ww{text-align:center;position:relative}.ww-toggle{align-items:center;gap:var(--sp-1);padding:var(--sp-1);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--inset);display:inline-flex}.ww-toggle button{align-items:center;gap:var(--sp-2);color:var(--tx-mute);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.04em;border-radius:var(--r-pill);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);white-space:nowrap;background:0 0;border:0;padding:9px 18px;font-weight:500;display:inline-flex}.ww-toggle button .led{border-radius:var(--r-pill);background:var(--ghost);width:7px;height:7px;transition:background var(--dur-fast) var(--ease-out)}.ww-toggle button.on-off{color:var(--btn-ink);background:var(--deny)}.ww-toggle button.on-off .led{background:var(--btn-ink)}.ww-toggle button.on-on{color:var(--btn-ink);background:var(--orange)}.ww-toggle button.on-on .led{background:var(--btn-ink)}.ww-head{font-family:var(--disp);font-weight:var(--fw-disp);letter-spacing:var(--ls-h2);margin:22px 0 0;font-size:clamp(26px,3.4vw,38px);line-height:1.12}.ww-head em{color:var(--orange);font-style:normal;font-weight:400}.ww-sub{color:var(--tx-dim);font-size:var(--fs-body);max-width:62ch;min-height:48px;margin:14px auto 0;line-height:1.55}.ww-sub b{color:var(--tx);font-weight:600}.ww-stage{text-align:left;border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg, #ff5c720f, transparent 42%), var(--surface);box-shadow:var(--inset), var(--panel-sh);transition:background var(--dur-slow) var(--ease-out);margin-top:28px;overflow:hidden}.ww.on .ww-stage{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 42%), var(--surface)}.ww-diagram{border-bottom:1px solid var(--line);justify-content:center;align-items:center;padding:30px 26px 26px;display:flex}.ww-diagram svg{width:100%;max-width:860px;height:auto;margin:0 auto;display:block}.ww-side{padding:22px 26px 26px}.ww-side .iz-ey{margin:4px 0 14px;display:inline-flex}.ww-counters{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-2);grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.ww-counter{border-right:1px solid var(--line);flex-direction:column;gap:7px;padding:13px 15px;display:flex}.ww-counter:last-child{border-right:0}.ww-counter .cl{font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:.02em;color:var(--tx-mute)}.ww-counter .cv{font-family:var(--mono);font-size:var(--fs-label);align-items:center;gap:var(--sp-2);font-weight:500;display:inline-flex}.ww-counter .cv .from{color:var(--deny)}.ww-counter .cv .to{color:var(--tx-mute);opacity:.45}.ww-counter .cv .ar{color:var(--tx-mute)}.ww.on .ww-counter .cv .from{color:var(--tx-mute);opacity:.4;text-decoration:line-through}.ww.on .ww-counter .cv .to{color:var(--allow);opacity:1}.ww-layers{grid-template-columns:1fr 1fr;gap:2px 30px;margin:18px 0 0;padding:0;list-style:none;display:grid}.ww-layer{border-radius:var(--r-sm);transition:background var(--dur-fast) var(--ease-out);grid-template-columns:26px 1fr 18px;align-items:start;gap:11px;padding:9px 6px;display:grid}.ww-layer .lx{font-family:var(--mono);font-size:var(--fs-2xs);color:var(--tx-mute);padding-top:2px}.ww-layer .lb{flex-direction:column;gap:3px;display:flex}.ww-layer .off{font-size:var(--fs-sm);color:var(--tx-dim);transition:color var(--dur) var(--ease-out);line-height:1.4}.ww-layer .on{font-size:var(--fs-sm);color:var(--tx);line-height:1.4;display:none}.ww-layer .on i{font-family:var(--mono);font-style:normal;font-size:var(--fs-mono-xs);color:var(--orange);margin-left:var(--sp-1);letter-spacing:.02em}.ww-layer .lmk{width:18px;height:18px;margin-top:3px;position:relative}.ww-layer .lmark{color:var(--allow);opacity:0;transition:opacity var(--dur) var(--ease-out);position:absolute;inset:0}.ww-layer .lmark svg{width:16px;height:16px}.ww-layer .ldot{border-radius:var(--r-pill);background:var(--deny);width:7px;height:7px;transition:opacity var(--dur) var(--ease-out);position:absolute;top:5px;left:5px}.ww.on .ww-layer .off{color:var(--tx-mute);opacity:.6;text-decoration:line-through}.ww.on .ww-layer .on{display:block}.ww.on .ww-layer .lmark{opacity:1}.ww.on .ww-layer .ldot{opacity:0}.ww-foot{margin-top:18px}.ww-node{fill:var(--surface-2);stroke:var(--line-strong);stroke-width:1.4px}.ww-glyph{color:var(--tx-dim)}.ww-nlbl{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.04em;fill:var(--tx-mute);text-anchor:middle}.ww-slab{transition:transform var(--dur-slow) cubic-bezier(.5, 0, .2, 1), opacity .45s var(--ease-out)}.ww-slab-box{fill:var(--surface-2);stroke:var(--line-strong);stroke-width:1.3px}.ww-slab-ic{color:var(--tx-dim)}.ww-slab-x{font-family:var(--mono);font-size:var(--fs-micro);fill:var(--tx-mute);text-anchor:middle}.ww-slab-dot{fill:var(--deny);transition:opacity var(--dur) var(--ease-out)}.ww.on .ww-slab{opacity:0;transform:translateY(-168px)}.ww.on .ww-slab-dot{opacity:0}.ww-risk{transition:opacity .4s var(--ease-out)}.ww.on .ww-risk{opacity:0}.ww-expose-line{stroke:var(--line-strong);stroke-width:2px;stroke-dasharray:2 5}.ww-port{fill:var(--deny)}.ww-lat{stroke:var(--deny);stroke-width:1.6px;fill:none}.ww-scan{stroke:var(--deny);stroke-width:1.4px;fill:none;opacity:.9}.ww-scan-grp{animation:ww-scan 2.6s var(--ease-out) infinite}@keyframes ww-scan{0%,to{transform:translateY(-58px)}50%{transform:translateY(58px)}}.ww-secure{opacity:0;transition:opacity .5s var(--ease-out)}.ww.on .ww-secure{opacity:1;transition-delay:.32s}.ww-tunnel{stroke:var(--allow);stroke-width:2.6px;fill:none;stroke-linecap:round;stroke-dasharray:7 8;animation:ww-flow .9s var(--ease-linear) infinite}.ww-shield-box{fill:var(--surface);stroke:var(--allow);stroke-width:1.6px}.ww-shield-ic{color:var(--allow)}.ww-packet{fill:var(--allow);offset-rotate:0deg;animation:ww-travel 1.7s var(--ease-out) infinite}@keyframes ww-flow{to{stroke-dashoffset:-30px}}@keyframes ww-travel{0%{offset-distance:0%;opacity:0}12%{opacity:1}88%{opacity:1}to{offset-distance:100%;opacity:0}}.ww-app{transition:opacity .5s var(--ease-out)}.ww-app-box{fill:var(--bg-2);stroke:var(--line-strong);stroke-width:1.3px}.ww-app-ic{color:var(--tx-mute)}.ww.on .ww-app.gone{opacity:.08}.ww.on .ww-app.keep .ww-app-box{stroke:var(--allow)}.ww.on .ww-app.keep .ww-app-ic{color:var(--allow)}@media (max-width:760px){.ww-counters{grid-template-columns:repeat(2,1fr)}.ww-counter:nth-child(2){border-right:0}.ww-counter:first-child,.ww-counter:nth-child(2){border-bottom:1px solid var(--line)}.ww-layers{grid-template-columns:1fr}.ww-toggle button{font-size:var(--fs-mono);padding:9px 14px}}@media (prefers-reduced-motion:reduce){.ww-slab,.ww-risk,.ww-secure,.ww-app,.ww-stage,.ww-layer .off,.ww-layer .lmark,.ww-layer .ldot{transition:none}.ww-tunnel,.ww-packet,.ww-scan-grp{animation:none}.ww-tunnel{stroke-dasharray:none}.ww-packet{display:none}}
