.links[data-v-b17ff7ed]{display:flex;flex-wrap:wrap;gap:0 20px;font-size:.9375rem}.links a[data-v-b17ff7ed]{padding:8px 0}.home-header[data-v-220bedea]{display:flex;flex-direction:column;gap:16px;font-size:1rem;line-height:1.6}.hello[data-v-220bedea]{display:flex;align-items:flex-start;gap:4px}.avatar[data-v-220bedea]{width:80px;height:80px;object-fit:cover}h1[data-v-220bedea]{margin:0;font-size:1.875rem;line-height:1.2}.intro[data-v-220bedea]{margin:0;color:var(--muted)}.post-header[data-v-22a6fa67]{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}h1[data-v-22a6fa67]{margin:0}time[data-v-22a6fa67],.tags[data-v-22a6fa67]{margin:0;color:var(--muted);font-size:.875rem}.tag[data-v-22a6fa67]{color:var(--accent);font-weight:600}.post-list[data-v-d27b27d3]{display:flex;flex-direction:column;gap:28px}h2[data-v-d27b27d3]{margin:0;color:var(--muted);font-size:.9375rem;font-weight:600}.year[data-v-d27b27d3]{display:flex;flex-direction:column}h3[data-v-d27b27d3]{margin:0 0 6px;color:var(--accent);font-size:.8125rem;font-weight:700}.row[data-v-d27b27d3]{display:flex;align-items:baseline;gap:12px;padding:10px 0;text-decoration:none}.title[data-v-d27b27d3]{flex:0 1 auto;font-size:1.0625rem;font-weight:600}.leader[data-v-d27b27d3]{flex:1 1 24px;min-width:24px;border-bottom:2px dotted var(--rule)}time[data-v-d27b27d3]{flex:0 0 auto;color:var(--muted);font-size:.875rem;font-variant-numeric:tabular-nums}.row:hover .title[data-v-d27b27d3]{color:var(--accent)}.row:hover .leader[data-v-d27b27d3]{border-color:var(--accent)}.post-nav[data-v-95a924c4]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:28px;border-top:2px dotted var(--rule);font-size:.9375rem;line-height:1.5}.post-nav[data-v-95a924c4]>*{display:flex;flex:1 1 240px;flex-direction:column;gap:4px;padding:6px 0;text-decoration:none}.right[data-v-95a924c4]{align-items:flex-end;text-align:right}.label[data-v-95a924c4]{color:var(--accent);font-size:.8125rem;font-weight:700}.title[data-v-95a924c4]{font-weight:600}a:hover .title[data-v-95a924c4]{color:var(--accent)}.none[data-v-95a924c4]{color:var(--muted)}.site-footer[data-v-010b7c6f]{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:.875rem}p[data-v-010b7c6f]{margin:0}.site-nav[data-v-1c403d40]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:.9375rem;line-height:1.4}.site-nav a[data-v-1c403d40]{padding:10px 0}.home[data-v-1c403d40]{display:flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;font-weight:700}.avatar[data-v-1c403d40]{width:36px;height:36px;object-fit:cover}.page[data-v-61fd6b51]{display:flex;flex-direction:column;gap:48px;max-width:720px;margin:0 auto;padding:48px 16px 96px}.page.home[data-v-61fd6b51]{gap:56px;padding-top:88px}@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-vietnamese-wght-normal.RvljkFvg.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:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-ext-wght-normal.B6JQhE1e.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:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-wght-normal.ci0D1wrL.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:Maple Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/maple-mono-latin-400-normal.WIx2rg0p.woff2) format("woff2"),url(/assets/maple-mono-latin-400-normal.OcfaEJ46.woff) format("woff")}@font-face{font-family:Maple Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/maple-mono-latin-400-italic.sDhTiF5o.woff2) format("woff2"),url(/assets/maple-mono-latin-400-italic.DjUHO4Fk.woff) format("woff")}@font-face{font-family:Maple Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/maple-mono-latin-700-normal.B_sC0Ion.woff2) format("woff2"),url(/assets/maple-mono-latin-700-normal.DeN56mtg.woff) format("woff")}:root{color-scheme:dark;--bg: #1c181b;--text: #f3e8ee;--muted: #b3a2ac;--rule: #4a3a44;--accent: #ff9cc4;--bubble: #3d2632;--bubbletext: #ffc0d8;--code: #26202a;--info: #a9b8ff;--tip: #8fdcb4;--warning: #f2c879;--danger: #ff8a8a;--code-block-bg: #232136;--code-block-text: #e0def4;--code-block-muted: #908caa;--code-block-highlight: #817c9c26;--font-sans: "Lexend Variable", system-ui, -apple-system, sans-serif;--font-mono: "Maple Mono", ui-monospace, Menlo, Consolas, monospace}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1.0625rem;font-weight:300;line-height:1.7;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-weight:700}h1{margin:0 0 20px;font-size:2rem;line-height:1.25}h2{margin:40px 0 20px;font-size:1.375rem;line-height:1.35}h3{margin:32px 0 16px;font-size:1.125rem;line-height:1.4}p,ul,ol,pre,blockquote,figure,table{margin:0 0 20px}ul,ol{padding-left:1.4em}li+li{margin-top:4px}b,strong{font-weight:700}small{font-size:.875rem}hr{margin:40px 0;border:0;border-top:2px dotted var(--rule)}mark{padding:0 4px;background:var(--bubble);color:var(--bubbletext)}a{color:var(--text);text-decoration:underline wavy;text-decoration-color:var(--rule);text-underline-offset:4px}a:hover{color:var(--accent);text-decoration-color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.header-anchor{text-decoration:none}code{padding:1px 6px;background:var(--code);font-family:var(--font-mono);font-size:.88em;font-feature-settings:"cv35"}pre{padding:18px 20px;background:var(--code);font-size:.875rem;line-height:1.6;overflow-x:auto}pre code{padding:0;background:none;font-size:inherit}div[class*=language-]{position:relative;margin:0 0 20px;padding-top:36px;background:var(--code-block-bg)}div[class*=language-]>pre{margin:0;padding-top:2px;background:none;color:var(--code-block-text)}div[class*=language-]>.lang{position:absolute;top:0;left:20px;color:var(--code-block-muted);font-size:.75rem;font-weight:600;line-height:36px}div[class*=language-]>.copy{position:absolute;top:6px;right:8px;padding:5px 10px;border:0;background:none;color:var(--code-block-muted);font-family:var(--font-sans);font-size:.75rem;font-weight:600;line-height:1;cursor:pointer}div[class*=language-]>.copy:before{content:"copy"}div[class*=language-]>.copy.copied:before{content:"copied!"}div[class*=language-]>.copy:hover,div[class*=language-]>.copy.copied{background:var(--bubble);color:var(--bubbletext)}div[class*=language-]>.copy:focus-visible{outline:2px solid var(--accent);outline-offset:2px}div[class*=language-].line-numbers-mode>pre{padding-left:66px}div[class*=language-]>.line-numbers-wrapper{position:absolute;top:36px;bottom:0;left:0;width:40px;padding-top:2px;background:var(--code-block-bg);color:var(--code-block-muted);font-family:var(--font-mono);font-size:.875rem;line-height:1.6;text-align:right;-webkit-user-select:none;user-select:none}div[class*=language-]>pre>code{display:block;min-width:fit-content}div[class*=language-] .line.highlighted{display:inline-block;width:calc(100% + 40px);margin:0 -20px;padding:0 20px;background:var(--code-block-highlight)}div[class*=language-].line-numbers-mode .line.highlighted{width:calc(100% + 86px);margin-left:-66px;padding-left:66px}blockquote{padding:14px 20px;border-radius:6px 6px 6px 0;background:var(--code)}blockquote>:last-child{margin-bottom:0}figure:has(>blockquote)>blockquote{margin:0}figure:has(>blockquote)>figcaption{margin-top:8px;padding-left:4px;color:var(--muted);font-size:.9375rem}.custom-block,details{--block: var(--muted);margin:0 0 20px;padding:14px 20px;background:color-mix(in srgb,var(--block) 12%,var(--bg))}.custom-block.note,.custom-block.info{--block: var(--info)}.custom-block.tip{--block: var(--tip)}.custom-block.important{--block: var(--accent)}.custom-block.warning{--block: var(--warning)}.custom-block.caution,.custom-block.danger{--block: var(--danger)}details>:last-child,.custom-block>:last-child{margin-bottom:0}.custom-block-title{margin-bottom:4px;color:var(--block);font-size:.8125rem;font-weight:700;letter-spacing:.04em}details>summary{color:var(--block);font-weight:700;cursor:pointer}details[open]>summary{margin-bottom:8px}table{display:block;width:max-content;max-width:100%;overflow-x:auto;border-collapse:collapse;background:var(--code);font-size:.9375rem;font-variant-numeric:tabular-nums}table:focus-visible{outline:2px solid var(--accent);outline-offset:2px}th,td{padding:10px 16px;border-bottom:1px solid var(--rule);text-align:left}th{color:var(--muted);font-size:.8125rem;font-weight:700;letter-spacing:.04em;border-bottom-width:2px}tbody tr:last-child td{border-bottom:0}img{max-width:100%;height:auto}.demo{--demo-rule: color-mix(in srgb, var(--rule) 65%, transparent);min-width:0;margin:28px 0;padding:16px;border-block:1px solid var(--rule);background:var(--code);font-size:.875rem;line-height:1.5;font-variant-numeric:tabular-nums}.demo-label{margin:0 0 12px;color:var(--text);font:500 .875rem / 1.4 var(--font-sans)}.demo-controls{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--demo-rule);font-size:.8125rem}.demo-controls label{display:flex;gap:6px;align-items:center;min-width:0;color:var(--muted);cursor:pointer}.demo-controls output{min-width:4ch;color:var(--text);font-family:var(--font-mono)}.demo input[type=range],.demo input[type=checkbox],.demo input[type=radio]{accent-color:var(--accent)}.demo :where(input[type=range]){width:120px;max-width:100%;height:24px;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.demo input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--rule)}.demo input[type=range]::-moz-range-track{height:2px;background:var(--rule)}.demo input[type=range]::-webkit-slider-thumb{width:12px;height:12px;margin-top:-5px;border:0;border-radius:50%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--accent)}.demo input[type=range]::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--accent)}.demo-btn{padding:5px 10px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--rule));border-radius:3px;background:var(--bubble);color:var(--bubbletext);font:500 .8125rem / 1.4 var(--font-sans);cursor:pointer}.demo-btn:hover:not(:disabled){border-color:var(--accent);color:var(--bubbletext)}.demo-btn[data-longest]:after{content:attr(data-longest);display:block;height:0;overflow:hidden;visibility:hidden}.demo button:focus-visible,.demo input:focus-visible,.demo select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.demo-btn:disabled{opacity:.45;cursor:default}.demo-btn.secondary{border-color:var(--rule);background:transparent;color:var(--text)}.demo-btn.danger{border-color:color-mix(in srgb,var(--danger) 45%,var(--rule));background:transparent;color:var(--danger)}.demo-btn.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.demo-tabs{display:flex;flex-wrap:wrap;gap:4px 16px;margin-bottom:12px;border-bottom:1px solid var(--demo-rule)}.demo-tabs button{margin-bottom:-1px;padding:4px 0;border:0;border-bottom:1px solid transparent;border-radius:0;background:none;color:var(--muted);font:400 .8125rem / 1.5 var(--font-sans);cursor:pointer}.demo-tabs button:hover{color:var(--text)}.demo-tabs button[aria-pressed=true]{border-bottom-color:var(--accent);color:var(--text)}.demo-mono{font-family:var(--font-mono)}.demo code{padding:0;background:transparent}.demo-bytes{display:flex;flex-wrap:wrap;gap:2px;font:.8125rem / 1 var(--font-mono)}.demo-bytes>*{display:grid;place-items:center;min-width:24px;height:24px;padding:0 3px}.demo-note{margin:6px 0 0;color:var(--muted);font:.8125rem / 1.45 var(--font-sans)}.demo-ok{color:var(--tip)}.demo-bad{color:var(--danger)}.demo-warn{color:var(--warning)}.demo-caption{margin-top:10px;color:var(--muted);font-size:.8125rem;line-height:1.5}@media (max-width: 520px){.demo{margin-block:24px;margin-inline:-12px;padding:14px 12px}}.pixel-sprite[data-v-ef87bff6]{display:inline-block;vertical-align:middle}.flip[data-v-ef87bff6]{transform:scaleX(-1)}.lane+.lane[data-v-c47836e2]{margin-top:18px;padding-top:18px;border-top:1px dashed var(--rule)}.lane-head[data-v-c47836e2]{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:.875rem}.lane-head span[data-v-c47836e2],.label[data-v-c47836e2],.note-line[data-v-c47836e2]{color:var(--muted);font-size:.8125rem}.lane-head .ff[data-v-c47836e2]{color:var(--warning);font-family:var(--font-mono);font-size:.75rem}.track[data-v-c47836e2]{display:flex;align-items:center;gap:8px}.wire[data-v-c47836e2]{position:relative;flex:1;min-width:0;height:64px;background:linear-gradient(var(--rule),var(--rule)) center / 100% 2px no-repeat}.packet[data-v-c47836e2]{position:absolute;top:32%;transform:translate(-50%,-50%);min-width:30px;height:22px;padding:0 4px;border:2px solid var(--accent);border-radius:0;background:var(--bubble);color:var(--bubbletext);font:700 .6875rem / 1 var(--font-mono);white-space:nowrap;cursor:pointer;transition:transform .7s ease-in,opacity .7s ease-in}.packet.low[data-v-c47836e2]{top:68%}.packet.retransmit[data-v-c47836e2]{border-style:dashed;border-color:var(--info);color:var(--info)}.packet.ack[data-v-c47836e2]{top:50%;border-color:var(--tip);background:var(--bg);color:var(--tip)}.packet.fin[data-v-c47836e2]{top:50%;border-color:var(--text);background:var(--bg);color:var(--text)}.packet.dropped[data-v-c47836e2]{transform:translate(-50%,80%) rotate(25deg);opacity:0;border-color:var(--danger);pointer-events:none}.server[data-v-c47836e2]{position:relative;line-height:0}.ring[data-v-c47836e2]{position:absolute;top:-6px;right:-6px;width:22px;height:22px;transform:rotate(-90deg)}.ring-bg[data-v-c47836e2],.ring-fg[data-v-c47836e2]{fill:var(--bg);stroke-width:4}.ring-bg[data-v-c47836e2]{stroke:var(--rule)}.ring-fg[data-v-c47836e2]{fill:none;stroke:var(--warning)}.has[data-v-c47836e2]{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin-top:6px}.has .demo-bytes[data-v-c47836e2]>*{min-width:34px;color:var(--muted);opacity:.45;outline:1px dashed var(--rule);font-size:.75rem}.has .demo-bytes>.got[data-v-c47836e2]{color:var(--text);opacity:1;outline:0}.stats[data-v-c47836e2]{display:flex;flex-wrap:wrap;gap:2px 14px;margin:8px 0 0;font-size:.8125rem}.stats b[data-v-c47836e2]{font-weight:700}.note-line[data-v-c47836e2]{min-height:1.5em;margin:2px 0 0;font-family:var(--font-mono)}@media (max-width: 520px){.track[data-v-c47836e2]{gap:4px}.packet[data-v-c47836e2]{min-width:24px;height:20px;padding:0 2px;font-size:.625rem}}.cast[data-v-36a62ec0]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:28px 0;padding:0;list-style:none}.cast li[data-v-36a62ec0]{display:flex;gap:12px;align-items:center;margin:0}.cast div[data-v-36a62ec0]{display:flex;flex-direction:column;line-height:1.4}.cast span[data-v-36a62ec0]{color:var(--muted);font-size:.875rem}.scene[data-v-5b74c586]{position:relative;height:180px;margin:4px 0 12px}.scene.replay[data-v-5b74c586]{height:260px}.lines[data-v-5b74c586]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.lines line[data-v-5b74c586]{stroke:var(--rule);stroke-width:2;vector-effect:non-scaling-stroke}.lines .faint[data-v-5b74c586]{stroke-dasharray:4 4}.lines .evil[data-v-5b74c586]{stroke:var(--danger);stroke-dasharray:4 4}.house[data-v-5b74c586]{position:absolute;width:76px;height:84px;transform:translate(-50%,-54%);border:1px dashed var(--rule);border-radius:0}.house span[data-v-5b74c586]{position:absolute;top:-.75em;left:50%;transform:translate(-50%);padding:0 4px;background:var(--code);color:var(--muted);font:.6875rem / 1.4 var(--font-mono);white-space:nowrap}.actor[data-v-5b74c586]{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%);line-height:0}.tag[data-v-5b74c586]{margin-top:4px;color:var(--muted);font:.6875rem / 1 var(--font-mono);white-space:nowrap}.bubble[data-v-5b74c586]{position:absolute;bottom:calc(100% + 2px);right:0;padding:4px 8px;border-radius:0;background:var(--bubble);color:var(--bubbletext);font:600 .75rem / 1.2 var(--font-sans);white-space:nowrap}.packet[data-v-5b74c586]{position:absolute;z-index:1;transform:translate(-50%,calc(-50% + 9px));min-width:14px;height:18px;padding:0 3px;border:2px solid var(--accent);border-radius:0;background:var(--bubble);color:var(--bubbletext);font:700 .625rem / 14px var(--font-mono);white-space:nowrap;transition:transform .7s ease-in,opacity .7s ease-in}.packet.blank[data-v-5b74c586]{width:14px;height:14px;padding:0}.packet.up[data-v-5b74c586],.packet.response[data-v-5b74c586]{transform:translate(-50%,calc(-50% - 9px));border-color:var(--info);background:var(--bg);color:var(--info)}.packet.copy[data-v-5b74c586]{border-style:dashed;border-color:var(--danger);background:var(--bg);color:var(--danger)}.packet.challenge[data-v-5b74c586],.packet.response[data-v-5b74c586]{border-color:var(--warning);color:var(--warning);background:var(--bg)}.packet.missed[data-v-5b74c586]{transform:translate(-50%,60%) rotate(25deg);opacity:0;border-color:var(--danger)}.facts[data-v-5b74c586]{display:grid;grid-template-columns:max-content 1fr;gap:2px 14px;margin:0;font-size:.8125rem}.facts dt[data-v-5b74c586]{color:var(--muted)}.facts dd[data-v-5b74c586]{margin:0}.frames[data-v-5b74c586]{color:var(--muted)}.log[data-v-5b74c586]{min-height:4.5em;padding:0;list-style:none}.log li[data-v-5b74c586]{margin:0}.log li+li[data-v-5b74c586]{opacity:.6}@media (max-width: 520px){.facts[data-v-5b74c586]{grid-template-columns:1fr}.facts dd+dt[data-v-5b74c586]{margin-top:6px}}.scene[data-v-0c82e8f9]{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"mallory in server" "victim out server";gap:10px;align-items:center}.who[data-v-0c82e8f9]{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);font-size:.6875rem;line-height:1.3;text-align:center}.mallory[data-v-0c82e8f9]{grid-area:mallory}.victim[data-v-0c82e8f9]{grid-area:victim}.server[data-v-0c82e8f9]{grid-area:server;align-self:stretch;justify-content:center}.lane[data-v-0c82e8f9]{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:56px;--thick: 2px}.lane.in[data-v-0c82e8f9]{grid-area:in}.lane.out[data-v-0c82e8f9]{grid-area:out}.lane.out.big[data-v-0c82e8f9]{--thick: 8px}.lane-label[data-v-0c82e8f9]{margin-bottom:6px;font-size:.6875rem;line-height:1.35;text-align:center}.line[data-v-0c82e8f9]{position:relative;height:var(--thick);margin:0 8px;border-radius:0;background:var(--rule);transition:height .3s}.lane.out.big .line[data-v-0c82e8f9]{background:var(--danger)}.line[data-v-0c82e8f9]:after{position:absolute;top:50%;width:0;height:0;border-top:calc(var(--thick) + 4px) solid transparent;border-bottom:calc(var(--thick) + 4px) solid transparent;content:"";transform:translateY(-50%)}.in .line[data-v-0c82e8f9]:after{right:-8px;border-left:10px solid var(--rule)}.out .line[data-v-0c82e8f9]:after{left:-8px;border-right:10px solid var(--rule)}.out.big .line[data-v-0c82e8f9]:after{border-right-color:var(--danger)}.dot[data-v-0c82e8f9]{position:absolute;top:50%;width:10px;height:10px;border:2px solid var(--accent);border-radius:0;background:var(--bubble);transform:translate(-50%,-50%);animation:fly-right-0c82e8f9 .5s linear forwards}.out .dot[data-v-0c82e8f9]{width:8px;height:8px;border-color:var(--tip);animation-name:fly-left-0c82e8f9}.out .dot.big[data-v-0c82e8f9]{width:22px;height:18px;border-color:var(--danger);background:color-mix(in srgb,var(--danger) 30%,var(--bg))}@keyframes fly-right-0c82e8f9{0%{left:0}to{left:100%}}@keyframes fly-left-0c82e8f9{0%{left:100%}to{left:0}}.stats[data-v-0c82e8f9]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 0}.stats div[data-v-0c82e8f9]{padding:6px 0;border-top:1px solid var(--rule)}.stats dt[data-v-0c82e8f9]{color:var(--muted);font-size:.6875rem;line-height:1.3}.stats dd[data-v-0c82e8f9]{margin:2px 0 0;font-size:1rem;font-weight:700;line-height:1.3}.slots-wrap[data-v-0c82e8f9]{margin-top:12px}.slots-label[data-v-0c82e8f9]{margin:0 0 6px;color:var(--muted);font-size:.75rem}.slots-label .demo-mono[data-v-0c82e8f9]{color:var(--text)}.slots[data-v-0c82e8f9]{display:grid;grid-template-columns:repeat(25,1fr);gap:2px}.slots span[data-v-0c82e8f9]{height:8px;border-radius:0;background:var(--bg)}.slots span.used[data-v-0c82e8f9]{background:var(--warning)}.ladder[data-v-0c82e8f9]{margin-top:12px;padding-top:8px;border-top:1px solid var(--demo-rule)}.ladder-head[data-v-0c82e8f9]{display:flex;gap:8px;align-items:center;margin:0 0 6px;font-size:.8125rem}.ladder ol[data-v-0c82e8f9]{margin:0;padding:0;list-style:none}.ladder .pending[data-v-0c82e8f9]{visibility:hidden;animation:none}.ladder li[data-v-0c82e8f9]{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin:0;padding:4px 0;animation:appear-0c82e8f9 .3s ease-out}.end[data-v-0c82e8f9]{color:var(--muted);font-size:.6875rem}.msg[data-v-0c82e8f9]{display:flex;flex-direction:column;align-items:center;font-size:.6875rem;line-height:1.35;text-align:center}.arrow[data-v-0c82e8f9]{position:relative;align-self:stretch;height:2px;margin:3px 6px;background:var(--accent)}.down .arrow[data-v-0c82e8f9]{background:var(--info)}.arrow[data-v-0c82e8f9]:after{position:absolute;top:-4px;border-top:5px solid transparent;border-bottom:5px solid transparent;content:""}.up .arrow[data-v-0c82e8f9]:after{right:-6px;border-left:8px solid var(--accent)}.down .arrow[data-v-0c82e8f9]:after{left:-6px;border-right:8px solid var(--info)}.nowrap[data-v-0c82e8f9]{white-space:nowrap}.step-note[data-v-0c82e8f9]{color:var(--muted)}.group[data-v-0c82e8f9]{display:flex;flex-wrap:wrap;gap:8px}@keyframes appear-0c82e8f9{0%{opacity:0;transform:translateY(-4px)}}@media (max-width: 520px){.stats[data-v-0c82e8f9]{grid-template-columns:repeat(2,1fr)}.slots[data-v-0c82e8f9]{grid-template-columns:repeat(20,1fr)}}@media (prefers-reduced-motion: reduce){.dot[data-v-0c82e8f9]{animation-timing-function:steps(3,jump-both)}.ladder li[data-v-0c82e8f9]{animation:none}.line[data-v-0c82e8f9]{transition:none}}.speaker[data-v-eb44eeaf]{display:flex;gap:10px;align-items:center;margin-bottom:12px}.speaker[data-v-eb44eeaf]>:first-child{flex:none}.bubble[data-v-eb44eeaf]{margin:0;padding-left:12px;border-left:1px solid var(--accent);color:var(--bubbletext);font-size:.9375rem;line-height:1.45}.hello-title[data-v-eb44eeaf]{margin:0 0 8px;color:var(--accent);font-size:.8125rem}.hello[data-v-eb44eeaf]{display:grid;gap:2px;margin:0;padding:0;list-style:none;font:.8125rem / 1.45 var(--font-mono)}.hello li[data-v-eb44eeaf]{display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:4px 12px;padding:5px 0 5px 10px;border-left:1px solid var(--rule)}.name[data-v-eb44eeaf]{color:var(--muted);overflow-wrap:anywhere}.value[data-v-eb44eeaf]{overflow-wrap:anywhere}.tag[data-v-eb44eeaf]{display:inline-block;margin-left:6px;padding:0 6px;border-radius:0;font-size:.6875rem;white-space:nowrap}.hello .leak[data-v-eb44eeaf]{border-left-color:var(--danger)}.leak .value[data-v-eb44eeaf]{color:var(--danger);font-weight:700}.leak .tag[data-v-eb44eeaf]{color:var(--danger);font-weight:400}.hello .public[data-v-eb44eeaf]{border-left-color:var(--warning)}.public .value[data-v-eb44eeaf],.public .tag[data-v-eb44eeaf]{color:var(--warning)}.hello .opaque[data-v-eb44eeaf]{border-left-color:var(--info)}.opaque .value[data-v-eb44eeaf]{color:var(--muted)}.opaque .tag[data-v-eb44eeaf]{color:var(--info)}.hello .secret[data-v-eb44eeaf]{border-left-color:var(--tip)}.secret .value[data-v-eb44eeaf]{color:var(--tip);font-weight:700}.secret .tag[data-v-eb44eeaf]{color:var(--tip);font-weight:400}.blob[data-v-eb44eeaf]{margin-top:12px}.payload[data-v-eb44eeaf]{margin:6px 0 0;padding:8px 10px;border-radius:0;background:var(--bg);color:var(--muted);font-size:.75rem;line-height:1.5;overflow-wrap:anywhere}@media (max-width: 520px){.hello li[data-v-eb44eeaf]{grid-template-columns:minmax(0,1fr);gap:0}}.summary[data-v-c8ea8f53]{margin:0 0 14px;font-size:.8125rem}.chips-title[data-v-c8ea8f53],.buffer-head[data-v-c8ea8f53]{margin:0 0 6px;color:var(--muted);font-size:.8125rem}.chips[data-v-c8ea8f53]{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none}.chips li[data-v-c8ea8f53]{display:flex;flex-basis:0;margin:0}.chips button[data-v-c8ea8f53]{display:flex;flex:1;flex-direction:column;gap:2px;padding:4px 8px;border:1px solid var(--rule);border-radius:0;background:var(--bg);color:var(--text);font:.6875rem / 1.3 var(--font-sans);text-align:left;white-space:nowrap}.chips button[data-v-c8ea8f53]:disabled{cursor:default}.chips button.flying[data-v-c8ea8f53]{cursor:pointer}.chip-top[data-v-c8ea8f53]{display:flex;justify-content:space-between;gap:8px;color:var(--muted)}.chip-top strong[data-v-c8ea8f53]{color:var(--text)}.chips button.flying[data-v-c8ea8f53],.chips button.queued[data-v-c8ea8f53]{border-color:var(--accent);background:var(--bubble);color:var(--bubbletext)}.chips button.retransmit.flying[data-v-c8ea8f53],.chips button.retransmit.queued[data-v-c8ea8f53]{border-style:dashed;border-color:var(--info);color:var(--info)}.chips button.lost[data-v-c8ea8f53]{border-style:dashed;border-color:var(--danger);opacity:.7}.chips button.lost .chip-top span[data-v-c8ea8f53]{color:var(--danger)}.chips button.arrived[data-v-c8ea8f53]{border-color:var(--tip)}.chips button.arrived .chip-top span[data-v-c8ea8f53]{color:var(--tip)}.track[data-v-c8ea8f53]{display:flex;align-items:center;gap:8px}.wire[data-v-c8ea8f53]{position:relative;flex:1;height:56px;background:linear-gradient(var(--rule),var(--rule)) center / 100% 2px no-repeat}.packet[data-v-c8ea8f53]{position:absolute;top:50%;transform:translate(-50%,-50%);min-width:28px;height:28px;padding:0 4px;border:2px solid var(--accent);border-radius:0;background:var(--bubble);color:var(--bubbletext);font:700 .8125rem / 1 var(--font-mono);cursor:pointer;transition:transform .7s ease-in,opacity .7s ease-in}.packet.retransmit[data-v-c8ea8f53]{border-style:dashed;border-color:var(--info);color:var(--info)}.packet.dropped[data-v-c8ea8f53]{transform:translate(-50%,80%) rotate(25deg);opacity:0;border-color:var(--danger);pointer-events:none}.buffer[data-v-c8ea8f53]{margin-top:10px}.buffer-head[data-v-c8ea8f53]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}.bar[data-v-c8ea8f53]{position:relative;height:28px;overflow:hidden;border:1px solid var(--rule);border-radius:0;background:var(--bg)}.bar.holes[data-v-c8ea8f53]{border-color:var(--danger);background:repeating-linear-gradient(-45deg,var(--bg) 0 6px,color-mix(in srgb,var(--danger) 35%,var(--bg)) 6px 9px)}.bar.done[data-v-c8ea8f53]{border-color:var(--tip)}.fill[data-v-c8ea8f53]{position:absolute;top:0;bottom:0;background:var(--tip);box-shadow:inset -1px 0 0 var(--bg)}.scale[data-v-c8ea8f53]{display:flex;justify-content:space-between;gap:8px;margin:4px 0 0;color:var(--muted);font-size:.6875rem}.order[data-v-c8ea8f53]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 520px){.track[data-v-c8ea8f53]{gap:4px}.chips button[data-v-c8ea8f53]{padding:3px 6px;font-size:.625rem}.packet[data-v-c8ea8f53]{min-width:24px;height:24px;font-size:.75rem}}@media (prefers-reduced-motion: reduce){.packet[data-v-c8ea8f53]{transition:none}.packet.dropped[data-v-c8ea8f53]{opacity:.5;transform:translate(-50%,-50%);border-style:dashed;text-decoration:line-through}}.cast[data-v-c47f8aa9]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);gap:12px;align-items:start;text-align:center}.who[data-v-c47f8aa9]{display:flex;flex-direction:column;align-items:center;gap:2px}.who>span[data-v-c47f8aa9]{color:var(--muted);font-size:.75rem}.says[data-v-c47f8aa9]{margin:6px 0 0;font-size:.8125rem;line-height:1.4}.bubble[data-v-c47f8aa9]{display:inline-block;padding:3px 10px;background:var(--bubble);color:var(--bubbletext)}.ladder[data-v-c47f8aa9]{margin:12px 0 0;padding:0;list-style:none}.empty[data-v-c47f8aa9]{padding:16px 0;border-top:2px dotted var(--rule);text-align:center}.row[data-v-c47f8aa9]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);grid-template-areas:"client wire server";gap:12px;margin:0;padding:12px 0;border-top:2px dotted var(--rule);animation:appear-c47f8aa9 .3s ease-out}@keyframes appear-c47f8aa9{0%{opacity:0;transform:translateY(-4px)}}.wire[data-v-c47f8aa9]{grid-area:wire;min-width:0}.arrow[data-v-c47f8aa9]{display:flex;align-items:center;margin:0 0 8px}.arrow .line[data-v-c47f8aa9]{flex:1;height:2px;background:var(--accent)}.arrow .head[data-v-c47f8aa9]{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid var(--accent)}.row.sc .arrow[data-v-c47f8aa9]{flex-direction:row-reverse}.row.sc .arrow .head[data-v-c47f8aa9]{border-right:9px solid var(--accent);border-left:0}.msg[data-v-c47f8aa9]{margin-top:6px;padding:6px 8px;border-left:3px solid var(--accent);background:var(--bg)}.msg.enc[data-v-c47f8aa9]{border-left-color:var(--info)}.msg.touched[data-v-c47f8aa9]{border-left-color:var(--warning)}.msg-name[data-v-c47f8aa9]{margin:0 0 2px;font:700 .8125rem / 1.4 var(--font-mono)}.msg.enc .msg-name[data-v-c47f8aa9]{color:var(--info)}.msg.touched .msg-name[data-v-c47f8aa9]{color:var(--warning)}.msg dl[data-v-c47f8aa9]{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:0 10px;margin:0;font:.75rem / 1.5 var(--font-mono)}.msg dt[data-v-c47f8aa9]{color:var(--muted)}.msg dd>del[data-v-c47f8aa9],.msg dd>span[data-v-c47f8aa9]{white-space:nowrap}.msg dd[data-v-c47f8aa9]{display:flex;flex-wrap:wrap;gap:0 8px;margin:0;overflow-wrap:anywhere}.msg del[data-v-c47f8aa9]{color:var(--danger);text-decoration-thickness:2px}.tamper[data-v-c47f8aa9]{margin:6px 0 0;color:var(--warning);font-size:.8125rem;line-height:1.45}.side[data-v-c47f8aa9]{min-width:0;font:.75rem / 1.5 var(--font-mono)}.side.client[data-v-c47f8aa9]{grid-area:client}.side.server[data-v-c47f8aa9]{grid-area:server;text-align:right}.side p[data-v-c47f8aa9]{margin:0}.side-name[data-v-c47f8aa9]{display:none;color:var(--text);font-weight:700}.k[data-v-c47f8aa9]{display:block;color:var(--muted)}.side code[data-v-c47f8aa9]{display:block;padding:0;background:none;font-size:inherit;font-family:var(--font-mono);overflow-wrap:anywhere}.checks[data-v-c47f8aa9]{margin:6px 0 0;padding:0;list-style:none}.checks li[data-v-c47f8aa9]{margin:0 0 4px}.note[data-v-c47f8aa9]{margin-top:4px;color:var(--muted)}.outcome[data-v-c47f8aa9]{margin-top:4px}.outcome[data-v-c47f8aa9]:not(:empty){padding-top:12px;border-top:2px solid var(--rule)}.verdict[data-v-c47f8aa9],.sentence[data-v-c47f8aa9]{margin:0 0 6px;font-size:.9375rem}.final[data-v-c47f8aa9]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin:10px 0 0}.final dt[data-v-c47f8aa9]{color:var(--muted);font-size:.75rem}.final dd[data-v-c47f8aa9]{margin:0;font:700 .875rem var(--font-mono);overflow-wrap:anywhere}.sr-only[data-v-c47f8aa9]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (max-width: 600px){.cast[data-v-c47f8aa9]{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);gap:6px}.row[data-v-c47f8aa9]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"wire wire" "client server";gap:10px 12px}.side-name[data-v-c47f8aa9]{display:block}.final[data-v-c47f8aa9]{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.row[data-v-c47f8aa9]{animation:none}}.pane[data-v-bdadc0f4]{min-width:0}.fields[data-v-bdadc0f4]{display:flex;flex-wrap:wrap;gap:8px}.field[data-v-bdadc0f4]{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:6px 8px;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent;color:var(--text);font:inherit;text-align:left}button.field[data-v-bdadc0f4]{cursor:pointer}.field.picked[data-v-bdadc0f4]{border-color:var(--accent);background:var(--bubble)}.field-name[data-v-bdadc0f4]{color:var(--muted);font:.75rem var(--font-mono)}.field.picked .field-name[data-v-bdadc0f4]{color:var(--bubbletext)}.field.cid .demo-bytes[data-v-bdadc0f4]>*{color:var(--info)}.field.seq .demo-bytes[data-v-bdadc0f4]>*{color:var(--tip)}.field.hidden[data-v-bdadc0f4]{border-color:var(--danger)}.field.hidden .demo-bytes[data-v-bdadc0f4]>*{color:var(--danger)}.explain[data-v-bdadc0f4]{margin:14px 0 0;font-size:.9375rem;line-height:1.5}.value[data-v-bdadc0f4]{margin:0 6px;color:var(--accent);font-size:.8125rem}.bits-wrap[data-v-bdadc0f4]{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.bits[data-v-bdadc0f4]{display:flex;gap:4px}.bit[data-v-bdadc0f4]{display:flex;flex-direction:column;align-items:center;justify-content:center;width:36px;height:44px;padding:0;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:var(--bg);color:var(--text);font:700 1rem / 1 var(--font-mono)}.bit-name[data-v-bdadc0f4]{margin-top:6px;color:var(--muted);font-size:.6875rem}.bit.fixed[data-v-bdadc0f4]{opacity:.55}.bit.epoch[data-v-bdadc0f4]{border-color:var(--warning)}.bit.toggle[data-v-bdadc0f4]{border:1px solid var(--rule);border-radius:2px;cursor:pointer}.bit.toggle.on[data-v-bdadc0f4]{border-color:var(--accent);background:var(--bubble);color:var(--bubbletext)}.epoch-step[data-v-bdadc0f4]{display:flex;gap:8px;align-items:center;font-size:.875rem}.epoch-step output[data-v-bdadc0f4]{min-width:2ch;text-align:center;font-size:1rem}.step[data-v-bdadc0f4]{width:34px;height:34px;padding:0;line-height:1}.tap-hint[data-v-bdadc0f4]{margin:6px 0 0}.row-label[data-v-bdadc0f4]{margin:12px 0 6px;color:var(--muted);font:.75rem var(--font-mono)}.payload[data-v-bdadc0f4]>*{color:var(--muted);opacity:.8}.inner[data-v-bdadc0f4]{margin-top:10px}.ct[data-v-bdadc0f4]{display:inline-block;padding:0 4px;border-radius:0;background:var(--bubble);color:var(--bubbletext)}.meter[data-v-bdadc0f4]{margin-top:12px}.count[data-v-bdadc0f4]{font-size:.9375rem}.count strong[data-v-bdadc0f4]{color:var(--accent);font:700 1.5rem var(--font-mono)}.bars[data-v-bdadc0f4]{display:grid;gap:4px;margin-top:8px;font:.75rem / 1 var(--font-mono)}.bar[data-v-bdadc0f4]{padding:5px 8px;border-radius:0;white-space:nowrap}.bar.now[data-v-bdadc0f4]{border-left:2px solid var(--accent);background:var(--bubble);color:var(--bubbletext)}.bar.old[data-v-bdadc0f4]{border-left:2px solid var(--rule);background:var(--code);color:var(--muted)}@media (prefers-reduced-motion: no-preference){.bar.now[data-v-bdadc0f4]{transition:width .3s ease}}.notes[data-v-bdadc0f4]{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:.875rem;line-height:1.5}.notes li+li[data-v-bdadc0f4]{margin-top:4px}.notes-wrap[data-v-bdadc0f4]{display:grid}.notes-wrap>.notes[data-v-bdadc0f4]{grid-area:1 / 1}.notes.ghost[data-v-bdadc0f4]{visibility:hidden}.mallory[data-v-bdadc0f4]{margin-top:16px;padding-top:12px;border-top:1px dashed var(--rule)}.mallory-head[data-v-bdadc0f4]{display:flex;gap:12px;align-items:center}.mallory-head p[data-v-bdadc0f4]{margin:0;font-size:.9375rem;line-height:1.5}.steps[data-v-bdadc0f4]{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:16px 0 0;font-size:.8125rem}.steps dt[data-v-bdadc0f4]{color:var(--muted)}.why[data-v-bdadc0f4]{font-size:.75rem;opacity:.8}.steps dd[data-v-bdadc0f4]{margin:0;overflow-wrap:anywhere}.mask-hit[data-v-bdadc0f4]{color:var(--warning);font-weight:700}.history[data-v-bdadc0f4]{margin:16px 0 0;border-collapse:collapse;font:.8125rem var(--font-mono)}.history th[data-v-bdadc0f4]{padding:4px 16px 4px 0;color:var(--muted);font-weight:400;text-align:left}.history td[data-v-bdadc0f4]{padding:3px 16px 3px 0}.visually-hidden[data-v-bdadc0f4]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (max-width: 520px){.bit[data-v-bdadc0f4]{width:30px;height:40px}.steps[data-v-bdadc0f4]{grid-template-columns:1fr;gap:2px}.steps dd[data-v-bdadc0f4]{margin-bottom:8px}}.lane+.lane[data-v-ce55e38a]{margin-top:12px;padding-top:12px;border-top:1px solid var(--demo-rule)}.lane-head[data-v-ce55e38a]{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;font-size:.875rem}.how[data-v-ce55e38a],.label[data-v-ce55e38a],.status[data-v-ce55e38a],.idle[data-v-ce55e38a],.who[data-v-ce55e38a],.as[data-v-ce55e38a]{color:var(--muted);font-size:.8125rem}.counter[data-v-ce55e38a]{margin-left:auto;color:var(--muted);font-size:.8125rem}.counter b[data-v-ce55e38a]{color:var(--text)}.counter b.demo-warn[data-v-ce55e38a]{color:var(--warning)}.track[data-v-ce55e38a]{display:flex;align-items:center;gap:8px;margin-top:4px}.wire[data-v-ce55e38a]{position:relative;flex:1;min-width:0;height:52px;background:linear-gradient(var(--rule),var(--rule)) center / 100% 2px no-repeat}.packet[data-v-ce55e38a]{position:absolute;top:50%;display:flex;align-items:stretch;height:26px;padding:0;border:2px solid var(--accent);border-radius:0;background:var(--bubble);color:var(--bubbletext);font:700 .75rem / 1 var(--font-mono);transform:translate(-50%,-50%);white-space:nowrap;cursor:pointer;transition:transform .7s ease-in,opacity .7s ease-in}.packet>span[data-v-ce55e38a]{display:flex;align-items:center;white-space:pre;padding:0 4px}.hdr[data-v-ce55e38a]{background:var(--accent);color:var(--bg)}.packet.dropped[data-v-ce55e38a]{border-color:var(--danger);opacity:0;transform:translate(-50%,80%) rotate(25deg);pointer-events:none}.received[data-v-ce55e38a]{display:flex;gap:12px;align-items:flex-start;margin-top:6px;min-height:43px}.label[data-v-ce55e38a]{flex:none;padding-top:4px}.cells[data-v-ce55e38a]{display:flex;flex-wrap:wrap;gap:3px;margin:0;padding:0;list-style:none}.cells li[data-v-ce55e38a]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:40px;padding:3px 6px;border-bottom:1px solid var(--rule);line-height:1.2}.word[data-v-ce55e38a]{font:700 .875rem var(--font-mono)}.as[data-v-ce55e38a]{font:.6875rem var(--font-mono)}.cells .bad[data-v-ce55e38a]{border-bottom-color:var(--danger);color:var(--danger)}.cells .bad .word[data-v-ce55e38a]{font-size:.75rem}.cells .pending[data-v-ce55e38a]{color:var(--muted)}.nonces[data-v-ce55e38a]{margin-top:8px;min-height:52px;font-size:.8125rem}.row[data-v-ce55e38a]{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}.row+.row[data-v-ce55e38a]{margin-top:4px}.who[data-v-ce55e38a]{min-width:16ch}.demo-bytes .diff[data-v-ce55e38a]{background:var(--danger);color:var(--bg);font-weight:700}.idle[data-v-ce55e38a]{margin:0;line-height:1.5}.status[data-v-ce55e38a]{margin:4px 0 0}@media (max-width: 520px){.track[data-v-ce55e38a]{gap:4px}.wide[data-v-ce55e38a]{display:none}.packet>span[data-v-ce55e38a]{padding:0 3px}.received[data-v-ce55e38a]{flex-direction:column;gap:4px}.label[data-v-ce55e38a]{padding-top:0}.counter[data-v-ce55e38a]{margin-left:0}}@media (prefers-reduced-motion: reduce){.packet[data-v-ce55e38a]{transition:none}.packet.dropped[data-v-ce55e38a]{opacity:.5;transform:translate(-50%,-50%);border-style:dashed;text-decoration:line-through}}.cast[data-v-6d457d25],.row[data-v-6d457d25]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cast[data-v-6d457d25]{margin-bottom:8px;text-align:center}.cast div[data-v-6d457d25]{display:flex;flex-direction:column;align-items:center;gap:2px}.cast span[data-v-6d457d25]{color:var(--muted);font-size:.75rem}.step[data-v-6d457d25]{margin:14px 0 6px;padding-top:10px;border-top:1px dashed var(--rule);color:var(--muted);font:.75rem var(--font-mono)}.cell[data-v-6d457d25]{display:flex;flex-wrap:wrap;gap:4px;align-items:center;justify-content:center;min-height:40px;color:var(--muted);font:700 .875rem var(--font-mono)}.picker.client[data-v-6d457d25]{grid-column:1;grid-row:1}.picker.server[data-v-6d457d25]{grid-column:3;grid-row:1}.mallory-cell[data-v-6d457d25]{grid-column:2;grid-row:1}.picker[data-v-6d457d25]{flex-direction:column}.unknown[data-v-6d457d25]{font-size:1.25rem}.blob[data-v-6d457d25]{display:inline-block;width:36px;height:36px;border:2px solid var(--rule);border-radius:0}.blob.sm[data-v-6d457d25]{width:24px;height:24px}.blob.sent[data-v-6d457d25]{border-color:var(--accent)}.swatches[data-v-6d457d25]{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.swatch[data-v-6d457d25]{width:22px;height:22px;padding:0;border:2px solid var(--rule);border-radius:0;cursor:pointer}.swatch[aria-pressed=true][data-v-6d457d25]{border-color:var(--text);outline:2px solid var(--accent);outline-offset:1px}.arrow[data-v-6d457d25]{color:var(--accent)}.final code[data-v-6d457d25]{flex-basis:100%;text-align:center;font:.75rem var(--font-mono)}.keys[data-v-6d457d25]{display:grid;gap:12px;margin:0}.key[data-v-6d457d25]{padding:8px 10px;border-left:3px solid var(--rule);border-radius:0;background:var(--bg)}.key dt[data-v-6d457d25]{margin-bottom:4px;font-size:.8125rem;font-weight:600}.key dt span[data-v-6d457d25]{margin-left:6px;color:var(--muted);font-weight:300}.key dt span.demo-warn[data-v-6d457d25]{color:var(--warning)}.key dd[data-v-6d457d25]{display:grid;grid-template-columns:repeat(4,max-content);gap:2px 12px;margin:0;font:.8125rem / 1.5 var(--font-mono)}.key.private dd[data-v-6d457d25]{color:var(--muted)}.key.public[data-v-6d457d25]{border-left-color:var(--warning)}.key.shared[data-v-6d457d25]{border-left-color:var(--tip)}.key.shared dd[data-v-6d457d25]{color:var(--tip)}.key.mallory[data-v-6d457d25]{border-left-color:var(--danger)}.key.mallory dd[data-v-6d457d25]{color:var(--danger)}@media (max-width: 520px){.cast[data-v-6d457d25],.row[data-v-6d457d25]{gap:4px}.blob[data-v-6d457d25]{width:28px;height:28px}.blob.sm[data-v-6d457d25]{width:18px;height:18px}.cell[data-v-6d457d25]{gap:2px;font-size:.75rem}.swatch[data-v-6d457d25]{width:18px;height:18px}.final code[data-v-6d457d25]{font-size:.6875rem}.key dt span[data-v-6d457d25]{display:block;margin-left:0}.key dd[data-v-6d457d25]{gap:2px 8px;font-size:.75rem}}.schedule[data-v-0abc6e4d]{display:flex;flex-direction:column}.stage-row[data-v-0abc6e4d]{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) 20px minmax(0,1.25fr);align-items:center;padding:8px 0}.col[data-v-0abc6e4d]{display:grid;gap:4px;min-width:0}.arrow[data-v-0abc6e4d]{position:relative;align-self:stretch}.arrow[data-v-0abc6e4d]:before{content:"";position:absolute;top:50%;left:2px;right:6px;border-top:2px solid var(--rule)}.arrow[data-v-0abc6e4d]:after{content:"";position:absolute;top:calc(50% - 4px);right:2px;border:5px solid transparent;border-left-color:var(--rule);border-right-width:0}.node[data-v-0abc6e4d]{display:grid;gap:2px;width:100%;min-width:0;padding:6px 8px;border:0;border-left:2px solid var(--rule);border-radius:0;background:transparent;color:var(--text);font:.75rem / 1.3 var(--font-mono);text-align:left;cursor:pointer;transition:opacity .2s}.node .title[data-v-0abc6e4d]{overflow-wrap:anywhere}.node.input[data-v-0abc6e4d],.node.hash[data-v-0abc6e4d]{color:var(--muted)}.node.hash[data-v-0abc6e4d]{margin-top:2px;border-left:0;border-top:1px dotted var(--rule);text-align:center}.node.hash .title[data-v-0abc6e4d]{font-size:.6875rem}.node.stage[data-v-0abc6e4d]{padding:8px 10px;border:1px solid var(--rule);border-left:2px solid var(--accent);text-align:center}.node.stage .title[data-v-0abc6e4d]{font:700 .9375rem var(--font-sans)}.kicker[data-v-0abc6e4d]{color:var(--muted);font-size:.625rem}.node.salt[data-v-0abc6e4d]{width:auto;border-left:0;border-bottom:1px dashed var(--rule);text-align:center}.val[data-v-0abc6e4d]{color:var(--muted);font:.6875rem var(--font-mono)}.node.stage .val[data-v-0abc6e4d]{color:var(--accent)}@media (prefers-reduced-motion: no-preference){.val[data-v-0abc6e4d]{animation:flash-0abc6e4d .9s ease-out}}@keyframes flash-0abc6e4d{0%{color:var(--warning)}}.meta[data-v-0abc6e4d]{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}.epoch[data-v-0abc6e4d]{color:var(--muted);font:.6875rem var(--font-mono);white-space:nowrap}.epoch.unused[data-v-0abc6e4d]{color:var(--muted)}.node.off[data-v-0abc6e4d]{border-style:dashed;color:var(--muted)}.node.picked[data-v-0abc6e4d]{border-color:var(--accent);background:var(--bubble);color:var(--bubbletext)}.node.ancestor[data-v-0abc6e4d]{border-color:var(--info);color:var(--text)}.node.ancestor .val[data-v-0abc6e4d]{color:var(--info)}.node.rest[data-v-0abc6e4d]{opacity:.55}.node.rest.stage[data-v-0abc6e4d]{opacity:.75}.derived-row[data-v-0abc6e4d]{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) 20px minmax(0,1.25fr)}.derived-row .node[data-v-0abc6e4d]{grid-column:3;justify-self:center}.updates[data-v-0abc6e4d]{padding-top:12px;border-top:1px dashed var(--rule)}.row-label[data-v-0abc6e4d]{margin:0 0 8px;color:var(--muted);font:.75rem var(--font-mono)}.update-grid[data-v-0abc6e4d]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.detail[data-v-0abc6e4d]{margin:4px 0 8px;padding:10px 0;border-block:1px solid var(--rule)}.detail p[data-v-0abc6e4d]{margin:0 0 8px}.detail-head[data-v-0abc6e4d]{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;overflow-wrap:anywhere}.formula[data-v-0abc6e4d]{color:var(--accent);font-size:.8125rem;overflow-wrap:anywhere}.about[data-v-0abc6e4d]{font-size:.9375rem;line-height:1.5}.vals[data-v-0abc6e4d]{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:8px 0;font-size:.75rem}.vals dt[data-v-0abc6e4d]{color:var(--muted)}.vals dd[data-v-0abc6e4d]{margin:0;overflow-wrap:anywhere}@media (max-width: 640px){.stage-row[data-v-0abc6e4d]{grid-template-columns:minmax(0,1fr);gap:4px;padding:6px 0}.inputs[data-v-0abc6e4d]{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.arrow[data-v-0abc6e4d]{height:14px}.arrow[data-v-0abc6e4d]:before{top:2px;bottom:6px;left:50%;right:auto;border-top:0;border-left:2px solid var(--rule)}.arrow[data-v-0abc6e4d]:after{top:auto;bottom:2px;right:auto;left:calc(50% - 4px);border:5px solid transparent;border-top-color:var(--rule);border-bottom-width:0}.derived-row[data-v-0abc6e4d]{grid-template-columns:minmax(0,1fr)}.derived-row .node[data-v-0abc6e4d]{grid-column:1}.update-grid[data-v-0abc6e4d]{grid-template-columns:minmax(0,1fr)}}.lane+.lane[data-v-adbaf5fb]{margin-top:12px;padding-top:12px;border-top:1px solid var(--demo-rule)}.lane-head[data-v-adbaf5fb]{display:flex;gap:10px;align-items:baseline;font-size:.875rem}.lane-head span[data-v-adbaf5fb],.status[data-v-adbaf5fb],.label[data-v-adbaf5fb]{color:var(--muted);font-size:.8125rem}.track[data-v-adbaf5fb]{display:flex;align-items:center;gap:8px}.wire[data-v-adbaf5fb]{position:relative;flex:1;height:56px;background:linear-gradient(var(--rule),var(--rule)) center / 100% 2px no-repeat}.packet[data-v-adbaf5fb]{position:absolute;top:50%;transform:translate(-50%,-50%);min-width:26px;height:26px;padding:0 4px;border:2px solid var(--accent);border-radius:0;background:var(--bubble);color:var(--bubbletext);font:700 .8125rem / 1 var(--font-mono);cursor:pointer;transition:transform .7s ease-in,opacity .7s ease-in}.packet.retransmit[data-v-adbaf5fb]{border-style:dashed;border-color:var(--info);color:var(--info)}.packet.dropped[data-v-adbaf5fb]{transform:translate(-50%,80%) rotate(25deg);opacity:0;border-color:var(--danger);pointer-events:none}.received[data-v-adbaf5fb]{display:flex;gap:12px;min-width:0;align-items:center;margin-top:6px;min-height:26px}.chars[data-v-adbaf5fb]{display:flex;flex-wrap:wrap;gap:3px;min-width:0;font:700 1rem / 1 var(--font-mono)}.chars span[data-v-adbaf5fb]{position:relative;display:grid;place-items:center;min-width:22px;height:26px;border-radius:0;border-bottom:1px solid var(--rule);white-space:pre}.chars .late[data-v-adbaf5fb]{color:var(--warning)}.chars .held[data-v-adbaf5fb]{opacity:.35;outline:1px dashed var(--muted)}.packet[data-n][data-v-adbaf5fb]:before,.chars [data-n][data-v-adbaf5fb]:after{content:attr(data-n);position:absolute;left:50%;transform:translate(-50%);color:var(--muted);font:400 .625rem / 1 var(--font-mono)}.packet[data-n][data-v-adbaf5fb]:before{bottom:calc(100% + 4px)}.chars [data-n][data-v-adbaf5fb]:after{top:calc(100% + 3px)}.received.numbered[data-v-adbaf5fb]{padding-bottom:14px}.numbered .chars[data-v-adbaf5fb]{row-gap:17px}.status[data-v-adbaf5fb]{margin:4px 0 0}@media (max-width: 520px){.track[data-v-adbaf5fb]{gap:4px}.packet[data-v-adbaf5fb]{min-width:20px;height:22px;padding:0 2px;font-size:.75rem}}.track[data-v-08bee3d6]{display:flex;align-items:center;gap:8px}.wire[data-v-08bee3d6]{position:relative;flex:1;height:56px;background:linear-gradient(var(--rule),var(--rule)) center / 100% 2px no-repeat}.packet[data-v-08bee3d6]{position:absolute;top:50%;left:50%;max-width:100%;padding:4px 6px;border:2px solid var(--accent);border-radius:0;background:var(--bubble);color:var(--bubbletext);font:700 .75rem / 1 var(--font-mono);white-space:pre;transform:translate(-50%,-50%);transition:left .6s ease-in-out,transform .6s ease-in-out}.packet.sealed[data-v-08bee3d6]{border-color:var(--info);color:var(--info)}.packet.tampered[data-v-08bee3d6]{border-color:var(--warning);border-style:dashed}.packet.delivered[data-v-08bee3d6]{left:100%;transform:translate(-100%,-50%)}.packet.rejected[data-v-08bee3d6]{border-color:var(--danger);opacity:.5}.drop-mark[data-v-08bee3d6]{position:absolute;top:-2px;right:4px;font:700 .875rem var(--font-mono)}.mallory[data-v-08bee3d6]{position:relative;display:flex;flex-direction:column;align-items:center;margin-top:-4px}.tap[data-v-08bee3d6]{width:0;height:10px;border-left:2px dashed var(--rule)}.says[data-v-08bee3d6]{min-height:1.6em;margin:6px 0 0;font-size:.8125rem;text-align:center}.bubble[data-v-08bee3d6]{padding:3px 10px;border-radius:0;background:var(--bubble);color:var(--bubbletext)}.panel[data-v-08bee3d6]{margin-top:16px;padding:12px;border:0;border-radius:0}.panel-head[data-v-08bee3d6]{margin:0 0 8px;font:700 .75rem var(--font-mono)}.panel-head span[data-v-08bee3d6]{color:var(--muted);font-weight:400}.tag-head[data-v-08bee3d6]{margin-top:12px}.demo-bytes.tag[data-v-08bee3d6]>*{color:var(--info)}.demo-bytes>.changed[data-v-08bee3d6],.demo-bytes.tag>.changed[data-v-08bee3d6]{outline:2px solid var(--warning);outline-offset:-2px;color:var(--warning)}.ascii[data-v-08bee3d6]{color:var(--text);white-space:pre-wrap;word-break:break-all}.ascii.noise[data-v-08bee3d6]{color:var(--muted)}.xor.idle[data-v-08bee3d6]{opacity:.4}.xor dl[data-v-08bee3d6]{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:.8125rem}.xor dt[data-v-08bee3d6]{color:var(--muted)}.xor dd[data-v-08bee3d6]{margin:0}.outcome[data-v-08bee3d6]{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:16px 0 0;font-size:.875rem}.who[data-v-08bee3d6]{color:var(--muted);font-size:.8125rem}.got[data-v-08bee3d6]{font-weight:700}@media (max-width: 520px){.track[data-v-08bee3d6]{gap:4px}.xor dl[data-v-08bee3d6]{grid-template-columns:1fr;gap:0}.xor dd+dt[data-v-08bee3d6]{margin-top:6px}.outcome[data-v-08bee3d6]{min-height:calc(2lh + 4px)}}@media (prefers-reduced-motion: reduce){.packet[data-v-08bee3d6]{transition:none}}.messages[data-v-001f8715]{display:grid;gap:8px}.messages label[data-v-001f8715]{display:grid;gap:2px;color:var(--muted);font-size:.8125rem}input[data-v-001f8715]:not([type]){width:100%;padding:6px 10px;border:1px solid var(--rule);border-radius:0;background:var(--bg);color:var(--text);font-size:.875rem}.guess-input[data-v-001f8715]{width:13ch!important}.nonce[data-v-001f8715]{word-break:break-word}.grid-scroll[data-v-001f8715]{margin-top:16px;overflow-x:auto;padding-bottom:6px;scroll-behavior:smooth}.grid[data-v-001f8715]{display:grid;grid-template-columns:max-content repeat(var(--n),21px);gap:2px;width:max-content;font:.75rem / 1 var(--font-mono)}.label[data-v-001f8715]{position:sticky;left:0;z-index:1;display:flex;gap:4px;align-items:center;padding-right:8px;background:var(--code);color:var(--text);font-weight:700}.label small[data-v-001f8715]{color:var(--muted);font-weight:400;font-size:.625rem}.label.mallory[data-v-001f8715]{color:var(--accent)}.cell[data-v-001f8715]{display:grid;place-items:center;height:22px;border-radius:0;background:transparent;white-space:pre}.cell.ch[data-v-001f8715]{font-weight:700}.cell.mallory[data-v-001f8715]{color:var(--bubbletext)}.cell.in-window[data-v-001f8715]{box-shadow:inset 0 -1px var(--accent)}.cell.mark[data-v-001f8715]{background:transparent}.cell.guess[data-v-001f8715]{background:var(--bubble);color:var(--bubbletext)}.cell.reveal[data-v-001f8715]{border-bottom:1px dashed var(--accent);color:var(--text)}.cell.junk[data-v-001f8715]{color:var(--muted)}.cell.hit[data-v-001f8715]{border-bottom:1px solid var(--tip);color:var(--tip)}.summary[data-v-001f8715]{margin-top:4px}.crib[data-v-001f8715]{display:flex;gap:12px;align-items:flex-start;margin-top:16px;padding:12px;border:0;border-radius:0}.crib-body[data-v-001f8715]{flex:1;min-width:0}.crib-line[data-v-001f8715]{display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline;margin:0;font-size:.875rem}.crib-line.full[data-v-001f8715]{margin-top:10px}.muted[data-v-001f8715]{color:var(--muted);font-size:.8125rem}.reveal-text[data-v-001f8715]{white-space:pre-wrap;word-break:break-all}.slide[data-v-001f8715]{display:flex;gap:8px;align-items:center}.slide input[data-v-001f8715]{width:140px}.arrow[data-v-001f8715]{padding:4px 10px;font-size:.75rem}@media (max-width: 520px){.slide input[data-v-001f8715]{width:120px}}@media (prefers-reduced-motion: reduce){.grid-scroll[data-v-001f8715]{scroll-behavior:auto}}.scene[data-v-9508dc7e]{display:flex;align-items:center;gap:8px}.wire[data-v-9508dc7e]{position:relative;flex:1;height:76px;background:linear-gradient(var(--rule),var(--rule)) center 22px / 100% 2px no-repeat}.mallory-sprite[data-v-9508dc7e]{position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.packet[data-v-9508dc7e]{position:absolute;top:23px;padding:3px 5px;border:2px solid var(--accent);border-radius:0;background:var(--bubble);color:var(--bubbletext);font:700 .6875rem / 1 var(--font-mono);white-space:nowrap;animation:fly-9508dc7e .65s ease-in forwards;--from: 0%}.packet.mallory[data-v-9508dc7e]{border-color:var(--danger);color:var(--danger);--from: 50%}@keyframes fly-9508dc7e{0%{left:var(--from);transform:translate(-50%,-50%)}to{left:100%;transform:translate(-100%,-50%)}}.window-head[data-v-9508dc7e]{display:flex;justify-content:space-between;margin:14px 0 4px;color:var(--muted);font-size:.75rem}.window-head .demo-mono[data-v-9508dc7e]{color:var(--text)}.strip[data-v-9508dc7e]{position:relative;height:40px;overflow:hidden}.cell[data-v-9508dc7e]{position:absolute;top:0;bottom:0;left:0;padding:4px 1px;border:0;background:none;cursor:pointer;transition:transform .35s ease}.cell span[data-v-9508dc7e]{display:block;height:100%;border:1px solid var(--rule);border-radius:0;background:var(--bg);transition:background .2s,box-shadow .2s}.cell.seen span[data-v-9508dc7e]{border-color:var(--tip);background:var(--tip)}.cell.old span[data-v-9508dc7e]{opacity:.45;background:repeating-linear-gradient(-45deg,var(--bg) 0 3px,var(--rule) 3px 5px)}.cell.future span[data-v-9508dc7e]{border-style:dashed;background:none}.cell.top span[data-v-9508dc7e]{box-shadow:0 0 0 1px var(--accent)}.cell.hit-ok span[data-v-9508dc7e]{box-shadow:0 0 0 2px var(--tip)}.cell.hit-bad span[data-v-9508dc7e]{border-color:var(--danger);background:var(--danger);box-shadow:0 0 0 2px var(--danger);opacity:1}.cell[data-v-9508dc7e]:disabled{visibility:hidden}.bracket[data-v-9508dc7e]{position:absolute;top:0;bottom:0;border:2px solid var(--accent);border-radius:0;pointer-events:none}.ticks[data-v-9508dc7e]{position:relative;height:1.4em;color:var(--muted);font-size:.6875rem}.ticks span[data-v-9508dc7e]{position:absolute;top:2px;transform:translate(-50%)}.ticks span[data-v-9508dc7e]:last-child{transform:translate(-100%)}.ticks span[data-v-9508dc7e]:first-child{transform:none}.bitmap[data-v-9508dc7e]{margin:6px 0 0;color:var(--muted);font-size:.6875rem}.log[data-v-9508dc7e]{display:flex;flex-direction:column;gap:2px;min-height:9em;margin:12px 0 0;padding:8px 10px;border-radius:0;background:var(--bg);font-size:.75rem;line-height:1.4;list-style:none}.log li[data-v-9508dc7e]{display:flex;flex-wrap:wrap;gap:0 8px;margin:0}.log li[data-v-9508dc7e]:first-child:not(.empty){font-weight:700}.log .empty[data-v-9508dc7e],.who[data-v-9508dc7e]{color:var(--muted)}.who[data-v-9508dc7e],.seq[data-v-9508dc7e]{min-width:7ch}.group[data-v-9508dc7e]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.group-label[data-v-9508dc7e]{color:var(--danger);font:700 .8125rem var(--font-mono)}@media (max-width: 520px){.scene[data-v-9508dc7e]{gap:4px}.who[data-v-9508dc7e],.seq[data-v-9508dc7e]{min-width:0}.log[data-v-9508dc7e]{min-height:16em}}@media (prefers-reduced-motion: reduce){.packet[data-v-9508dc7e]{animation-timing-function:steps(3,jump-both)}.cell[data-v-9508dc7e],.cell span[data-v-9508dc7e]{transition:none}}.demo-controls output[data-v-0d57e54a]{min-width:6ch}.race[data-v-0d57e54a]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 12px}.col[data-v-0d57e54a]{min-width:0}.head[data-v-0d57e54a]{display:flex;flex-direction:column;min-height:3em;margin:0 0 4px;font-size:.8125rem;line-height:1.35}.head span[data-v-0d57e54a],.foot[data-v-0d57e54a]{color:var(--muted);font-size:.75rem}.diagram[data-v-0d57e54a]{display:block;width:100%;height:auto;overflow:visible}.who[data-v-0d57e54a],.tick[data-v-0d57e54a],.msg text[data-v-0d57e54a]{font-family:var(--font-sans);font-size:5.5px}.who[data-v-0d57e54a]{fill:var(--muted);text-anchor:middle}.tick[data-v-0d57e54a]{fill:var(--muted);font-family:var(--font-mono);font-size:4.5px}.grid[data-v-0d57e54a]{stroke:var(--rule);stroke-width:.4;stroke-dasharray:1.5 1.5}.life[data-v-0d57e54a]{stroke:var(--muted);stroke-width:.8}.msg line[data-v-0d57e54a]{stroke:var(--accent);stroke-width:1}.msg polygon[data-v-0d57e54a]{fill:var(--accent)}.msg text[data-v-0d57e54a]{fill:var(--text);text-anchor:middle;paint-order:stroke;stroke:var(--code);stroke-width:2px}.msg.cookie line[data-v-0d57e54a]{stroke:var(--warning)}.msg.cookie polygon[data-v-0d57e54a]{fill:var(--warning)}.msg.data line[data-v-0d57e54a]{stroke:var(--tip);stroke-width:1.6}.msg.data polygon[data-v-0d57e54a]{fill:var(--tip)}.msg.data text[data-v-0d57e54a]{fill:var(--tip);font-weight:700}.now[data-v-0d57e54a]{stroke:var(--info);stroke-width:.6}.landed circle[data-v-0d57e54a]{fill:var(--tip)}.landed line[data-v-0d57e54a]{stroke:var(--tip);stroke-width:.6;stroke-dasharray:2 1.5}.foot[data-v-0d57e54a]{margin:4px 0 0}.foot b[data-v-0d57e54a]{font-size:.875rem}.replay[data-v-0d57e54a]{margin-top:16px;padding-top:12px;border-top:1px dashed var(--rule)}.replay h4[data-v-0d57e54a]{margin:0 0 10px;font-size:.9375rem}.track[data-v-0d57e54a]{display:flex;align-items:center;gap:8px}.wire[data-v-0d57e54a]{position:relative;flex:1;min-width:0;height:96px;background:linear-gradient(var(--rule),var(--rule)) center / 100% 2px no-repeat}.mallory[data-v-0d57e54a]{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);line-height:0}.packet[data-v-0d57e54a]{position:absolute;z-index:1;transform:translate(-50%,-50%);padding:2px 6px;border:2px solid var(--tip);border-radius:0;background:var(--bg);color:var(--tip);font:700 .6875rem / 1.2 var(--font-mono);white-space:nowrap}.packet.copy[data-v-0d57e54a]{border-style:dashed;border-color:var(--danger);color:var(--danger)}.replay-btn[data-v-0d57e54a]{margin-top:12px}.ledger[data-v-0d57e54a]{min-height:1.5em;margin:10px 0 0;padding-left:1.5em;font-size:.8125rem}.ledger li[data-v-0d57e54a]{margin:0}.ledger .empty[data-v-0d57e54a]{color:var(--muted);list-style:none;margin-left:-1.5em}.verdict[data-v-0d57e54a]{margin:8px 0 0;font-size:.875rem}@media (max-width: 640px){.race[data-v-0d57e54a]{grid-template-columns:repeat(2,1fr)}}.pickers[data-v-a00c2716]{display:flex;flex-wrap:wrap;gap:4px 32px;margin-bottom:8px}.picker[data-v-a00c2716]{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.picker .demo-tabs[data-v-a00c2716]{margin-bottom:10px}.who[data-v-a00c2716]{min-width:6ch;color:var(--accent);font:.8125rem var(--font-mono)}.stage[data-v-a00c2716]{display:flex;gap:8px;align-items:flex-start;margin:8px 0 16px}.end[data-v-a00c2716]{display:flex;flex:none;flex-direction:column;align-items:center;gap:4px;width:8.5rem;font-size:.75rem;text-align:center}.wire[data-v-a00c2716]{position:relative;flex:1;min-width:0;height:92px;background:linear-gradient(var(--rule),var(--rule)) center 24px / 100% 2px no-repeat}.packet[data-v-a00c2716]{position:absolute;top:24px;padding:3px 6px;border:2px solid var(--accent);background:var(--bubble);color:var(--bubbletext);width:max-content;max-width:100%;font:700 .6875rem / 1.2 var(--font-mono);transform:translateY(-50%);animation:.9s linear forwards}.packet.right[data-v-a00c2716]{animation-name:to-right-a00c2716}.packet.left[data-v-a00c2716]{animation-name:to-left-a00c2716}.packet.reply[data-v-a00c2716]{border-color:var(--info);color:var(--info)}.packet.tampered[data-v-a00c2716]{border-style:dashed;border-color:var(--warning);color:var(--warning)}.packet.alert[data-v-a00c2716]{border-color:var(--danger);color:var(--danger)}@keyframes to-right-a00c2716{0%{left:0;transform:translateY(-50%)}to{left:100%;transform:translate(-100%,-50%)}}@keyframes to-left-a00c2716{0%{left:100%;transform:translate(-100%,-50%)}to{left:0;transform:translateY(-50%)}}.mallory[data-v-a00c2716]{position:absolute;top:44px;left:50%;transform:translate(-50%)}.messages[data-v-a00c2716]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.msg-title[data-v-a00c2716]{margin:0 0 8px;color:var(--accent);font-size:.8125rem}.msg-title span[data-v-a00c2716]{color:var(--muted)}.fields[data-v-a00c2716]{display:grid;gap:4px;margin:0;padding:0;list-style:none;font:.75rem / 1.45 var(--font-mono)}.fields li[data-v-a00c2716]{display:grid;grid-template-columns:minmax(0,1fr);padding:6px 10px;border-left:3px solid var(--rule);background:var(--bg)}.fields li+li[data-v-a00c2716]{margin-top:0}.fields .v13[data-v-a00c2716]{border-left-color:var(--info)}.fields .struck[data-v-a00c2716]{border-left-color:var(--warning)}.fields .ok[data-v-a00c2716]{border-left-color:var(--tip)}.fields .ok .value[data-v-a00c2716]{color:var(--tip);font-weight:700}.fields .bad[data-v-a00c2716]{border-left-color:var(--danger)}.fields .bad .value[data-v-a00c2716]{color:var(--danger);font-weight:700}.name[data-v-a00c2716],.muted[data-v-a00c2716]{color:var(--muted)}.value[data-v-a00c2716]{overflow-wrap:anywhere}.tag[data-v-a00c2716]{display:inline-block;margin-left:6px;padding:0 6px;font-size:.6875rem;white-space:nowrap}.mallory-tag[data-v-a00c2716]{background:var(--warning);color:var(--bg)}.chips[data-v-a00c2716]{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px;min-width:0}.chip[data-v-a00c2716],.key[data-v-a00c2716]{padding:0 6px;border-left:3px solid;overflow-wrap:anywhere}.era-12[data-v-a00c2716]{border-color:var(--warning);color:var(--warning)}.era-13[data-v-a00c2716]{border-color:var(--info);color:var(--info)}.era-both[data-v-a00c2716]{border-color:var(--muted);color:var(--text)}.chip.gone[data-v-a00c2716]{border-left-style:dashed;color:var(--muted);text-decoration:line-through;text-decoration-color:var(--danger)}.legend[data-v-a00c2716]{display:flex;flex-wrap:wrap;gap:4px 12px}.random[data-v-a00c2716]{font-size:.6875rem}.random[data-v-a00c2716]>*{min-width:22px;height:20px}.random .sentinel[data-v-a00c2716]{background:var(--warning);color:var(--bg);font-weight:700}.client-alert[data-v-a00c2716]{margin:10px 0 0;font-size:.75rem}.verdict[data-v-a00c2716]{min-height:3em;margin-top:16px}.headline[data-v-a00c2716]{margin:0;font-size:1rem;font-weight:700}.why[data-v-a00c2716]{margin:4px 0 0;font-size:.9375rem;line-height:1.5}.grid-wrap[data-v-a00c2716]{margin:4px 0 14px}.grid[data-v-a00c2716]{display:grid;grid-template-columns:max-content repeat(3,minmax(0,6rem));gap:4px;align-items:center;font-size:.75rem}.corner[data-v-a00c2716],.head[data-v-a00c2716]{color:var(--muted)}.head[data-v-a00c2716]:not(.row){text-align:center}.cell[data-v-a00c2716]{height:36px;padding:0;border:2px solid transparent;border-radius:0;background:var(--bg);color:var(--muted);font:700 .875rem var(--font-mono);cursor:pointer}.cell[data-v-a00c2716]:hover{border-color:var(--rule)}.cell[data-v-a00c2716]:focus-visible{outline:2px dashed var(--accent);outline-offset:2px}.cell.current[data-v-a00c2716]{border-color:var(--accent)}.cell.ok13[data-v-a00c2716]{color:var(--tip)}.cell.ok12[data-v-a00c2716]{color:var(--info)}.cell.alert[data-v-a00c2716]{color:var(--danger)}.cell.caught[data-v-a00c2716]{color:var(--warning)}.cell sup[data-v-a00c2716]{margin-left:1px;font-size:.625rem}.danger-label[data-v-a00c2716]{color:var(--danger)}@media (max-width: 640px){.messages[data-v-a00c2716]{grid-template-columns:minmax(0,1fr)}}@media (max-width: 520px){.end[data-v-a00c2716]{width:5.5rem;font-size:.6875rem}.corner[data-v-a00c2716]{font-size:.625rem}}@media (prefers-reduced-motion: reduce){.packet[data-v-a00c2716]{animation-timing-function:steps(3,jump-both)}}
