:root{--nx-void: #070914;--nx-ink: #e8eaf6;--nx-bone: #f3f4ff;--nx-dim: #8a90b4;--nx-faint: #4a5078;--nx-panel: rgba(10, 12, 27, .78);--nx-panel-2: rgba(22, 26, 54, .9);--nx-solid: #0a0c1b;--nx-line: #1f2444;--nx-line-2: #2e3563;--nx-indigo: #8f88ff;--nx-mono: "Nexus Flags", "Nexus Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--nx-display: "Nexus Flags", "Nexus Petch", "Segoe UI", system-ui, sans-serif}.nx-prompt{position:relative;display:block;font:14px/1.5 var(--nx-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-width:0;color:var(--nx-ink)}.nx-ps1{color:var(--nx-indigo)}.nx-cmd{color:var(--nx-ink)}.nx-caret{display:inline-block;width:8px;height:15px;margin-left:3px;vertical-align:-2px;background:var(--nx-indigo);animation:nx-blink 1.1s steps(1) infinite}.nx-typing .nx-caret{animation:none}@keyframes nx-blink{50%{opacity:0}}.nx-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.nx-topline{border-bottom:1px solid var(--nx-line);padding-bottom:8px;margin-bottom:14px}.nx-facts{margin:0;display:grid;grid-template-columns:repeat(3,auto);gap:4px 22px;font:13px/1.45 var(--nx-mono)}.nx-fact{display:flex;flex-direction:column;min-width:0}.nx-fact dt{color:var(--nx-dim);font-size:11px}.nx-fact dd{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--c, var(--nx-ink));font-variant-numeric:tabular-nums}.nx-numbers{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;font-family:var(--nx-mono)}.nx-stat{position:relative;display:flex;flex-direction:column;min-width:0;padding:8px 10px 8px 13px;border:1px solid var(--nx-line);background:var(--nx-panel)}.nx-stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c, var(--nx-indigo))}.nx-stat-label{color:var(--nx-dim);font-size:11px}.nx-stat-value{font:400 24px/1.15 var(--nx-display);color:var(--nx-bone);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nx-stat-note{color:var(--nx-faint);font-size:11px;min-height:1.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nx-statusline{display:flex;flex-wrap:wrap;gap:4px 18px;font:11px/1.5 var(--nx-mono);color:var(--nx-dim);border-top:1px solid var(--nx-line);padding:6px 0 10px;margin-top:16px}.nx-statusline b{color:var(--nx-ink);font-weight:500;font-variant-numeric:tabular-nums}.nx-statusline kbd{border:1px solid var(--nx-line-2);padding:0 4px;border-radius:2px;color:var(--nx-ink);font:inherit}.nx-panel{margin:0;border:1px solid var(--nx-line);background:var(--nx-panel);padding:8px 10px 10px;min-width:0}.nx-panel>figcaption,.nx-panel>h2{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 6px;font:400 13px/1.4 var(--nx-mono);color:var(--nx-dim)}.nx-panel>h2{display:block}.nx-panel>figcaption>span:first-child:before,.nx-panel>h2:before{content:"> ";color:var(--nx-indigo)}.nx-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}.nx-chart{min-height:40px;background:var(--nx-solid)}.nx-chart svg{display:block;max-width:100%}.nx-section-title{margin:22px 0 8px;font:400 22px/1 var(--nx-display);color:var(--nx-dim)}.nx-how{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:10px 18px;font:13px/1.6 var(--nx-mono);color:var(--nx-ink)}.nx-how p{margin:0 0 10px;max-width:70ch}.nx-how h3{margin:0 0 6px;font:500 16px/1.2 var(--nx-display);color:var(--nx-bone)}.nx-eq{margin:0 0 10px;padding:12px 14px;border:1px solid var(--nx-line-2);border-left:3px solid var(--nx-indigo);background:var(--nx-solid);font:400 17px/1.5 var(--nx-display);color:var(--nx-bone);overflow-x:auto;text-shadow:0 0 12px rgba(143,136,255,.35)}.nx-eq small{display:block;font:11px/1.5 var(--nx-mono);color:var(--nx-dim);text-shadow:none}.nx-why{color:var(--nx-dim);font-style:normal;border-top:1px dashed var(--nx-line-2);padding-top:8px}.nx-why:before{content:"why it is beautiful: ";color:var(--nx-indigo)}.nx-rail{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;font:13px/1.45 var(--nx-mono)}.nx-field{display:flex;align-items:center;gap:6px;color:var(--nx-dim);min-width:0}.nx-field output{color:var(--nx-ink);min-width:3ch}.nx-rail select,.nx-rail input[type=text],.nx-rail input[type=number]{background:var(--nx-panel);border:1px solid var(--nx-line-2);border-radius:2px;padding:4px 6px;color:var(--nx-ink);font:inherit;min-width:0}.nx-rail input[type=text]{width:110px}.nx-rail input[type=range]{width:110px;accent-color:var(--accent, var(--nx-indigo))}.nx-rail input[type=checkbox]{accent-color:var(--accent, var(--nx-indigo))}.nx-btn{background:var(--nx-panel);border:1px solid var(--nx-line-2);border-radius:2px;padding:4px 10px;color:var(--nx-ink);font:inherit;cursor:pointer}.nx-btn:hover{border-color:var(--nx-dim)}.nx-btn.primary{background:var(--accent, var(--nx-indigo));color:#0a0b1a;border-color:var(--accent, var(--nx-indigo));font-weight:600}.nx-btn.icon{padding:4px 8px;min-width:30px;display:inline-flex;align-items:center;justify-content:center}.nx-btn[aria-pressed=true]{border-color:var(--accent, var(--nx-indigo));color:var(--nx-bone)}.nx-btn:disabled{opacity:.5;cursor:default}.nx-hero{position:relative;border:1px solid var(--nx-line);background:#05060f;overflow:hidden;touch-action:none}.nx-hero>canvas{display:block;width:100%;height:100%}.nx-hero:before,.nx-hero:after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--nx-indigo);z-index:3;pointer-events:none}.nx-hero:before{top:6px;left:6px;border-right:0;border-bottom:0}.nx-hero:after{bottom:6px;right:6px;border-left:0;border-top:0}.nx-hud{position:absolute;z-index:4;font:12px/1.4 var(--nx-mono);pointer-events:none;font-variant-numeric:tabular-nums}.nx-hud.tl{top:14px;left:16px}.nx-hud.tr{top:14px;right:16px;text-align:right;color:var(--nx-dim)}.nx-hud.bl{bottom:12px;left:16px}.nx-hud.br{bottom:12px;right:14px;pointer-events:auto;display:flex;gap:4px}.nx-now{font:400 26px/1 var(--nx-display);color:var(--c, var(--nx-bone));text-shadow:0 0 14px rgba(143,136,255,.35)}.nx-now-sub{color:var(--nx-dim);margin-top:3px}.nx-transport{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font:13px/1.45 var(--nx-mono)}.nx-transport select{background:var(--nx-panel);border:1px solid var(--nx-line-2);border-radius:2px;padding:4px 6px;color:var(--nx-ink);font:inherit}.nx-seek{position:relative;flex:1 1 220px;min-width:0;height:30px;border:1px solid var(--nx-line);background:var(--nx-panel);cursor:pointer;user-select:none;touch-action:none;overflow:hidden}.nx-seek-segs{position:absolute;inset:0;display:flex}.nx-seek-segs>div{min-width:0;border-right:1px solid #05060f;background:color-mix(in srgb,var(--c) 18%,transparent);overflow:hidden}.nx-seek-segs span{display:block;padding:6px 5px 0;font-size:10px;white-space:nowrap;color:var(--nx-bone);overflow:hidden;text-overflow:ellipsis;position:relative;z-index:1}.nx-seek-fill{position:absolute;inset:0 auto 0 0;background:#8f88ff38;border-top:2px solid var(--nx-indigo);pointer-events:none}.nx-playhead{position:absolute;top:0;bottom:0;width:2px;background:var(--nx-bone);box-shadow:0 0 8px #f3f4ff99;pointer-events:none}.nx-clock{font:400 16px/1 var(--nx-display);color:var(--nx-bone);min-width:7.5em;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.nx-live .nx-seek,.nx-live [data-a=back],.nx-live [data-a=fwd]{display:none}.nx-seek-segs>div.on{background:color-mix(in srgb,var(--c) 40%,transparent)}.nx-badges{font:12px/1.4 var(--nx-mono)}.nx-badges-head{display:flex;justify-content:space-between;color:var(--nx-dim);margin-bottom:6px}.nx-badges-head span:first-child:before{content:"> ";color:var(--nx-indigo)}.nx-badges ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px}.nx-badges li{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;border:1px dashed var(--nx-line-2);color:var(--nx-faint);min-width:0}.nx-badges li i{flex:none;width:12px;height:12px;margin-top:2px;transform:rotate(45deg);border:1px solid var(--nx-faint)}.nx-badges li b{display:block;font-weight:500}.nx-badges li small{display:block;font-size:11px}.nx-badges li.got{border-style:solid;border-color:var(--nx-line-2);color:var(--nx-ink);background:var(--nx-panel)}.nx-badges li.got i{border-color:transparent;background:linear-gradient(135deg,#ff5d5d,#ffe066,#4fb6ff,#e383ff);box-shadow:0 0 10px #e383ff99}.nx-badges li.got small{color:var(--nx-dim)}.nx-toast{position:fixed;left:50%;bottom:24px;z-index:70;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:8px 14px;border:1px solid var(--nx-line-2);background:#0a0c1b;color:var(--nx-ink);font:12px/1.4 var(--nx-mono);box-shadow:0 0 18px #8f88ff59;transition:opacity .25s,transform .25s;max-width:calc(100vw - 32px)}.nx-toast.on{opacity:1;transform:translate(-50%)}.nx-toast b{color:var(--nx-indigo);font-weight:600}@media(max-width:1050px){.nx-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-how{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.nx-prompt{font-size:12px}.nx-facts{gap:6px 14px}.nx-numbers{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-stat-value{font-size:19px}.nx-seek{flex:1 1 100%;order:5}.nx-rail .nx-field{flex:1 1 140px}.nx-rail select,.nx-rail input[type=text]{flex:1;width:auto}.nx-clock{min-width:0}}@media(prefers-reduced-motion:reduce){.nx-caret{animation:none}.nx-toast{transition:none}}:root{--void: #070914;--ink: #e8eaf6;--dim: #8a90b4;--faint: #4a5078;--panel: rgba(10, 12, 27, .78);--line: #2e3563;--accent: var(--red);--red: #ff5d5d;--orange: #ff9f43;--yellow: #ffe066;--green: #5fe38a;--blue: #4fb6ff;--indigo: #8f88ff;--violet: #e383ff;--mono: "Nexus Flags", "Nexus Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--display: "Nexus Flags", "Nexus Petch", "Segoe UI", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}html{background:var(--void)}body{margin:0;background:transparent;color:var(--ink);font:13px/1.5 var(--mono);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.app{padding:16px max(14px,var(--nexus-gutter, 0px)) 0;max-width:calc(1400px + 2 * var(--nexus-gutter, 0px));margin:0 auto}.app>*{min-width:0}.head{display:flex;flex-wrap:wrap;gap:8px 28px;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.head>*{min-width:0}.head h1{margin:0;font:300 clamp(36px,5vw,64px) / 1 var(--display);letter-spacing:.05em;color:#f3f4ff;text-shadow:-1px 0 rgba(255,93,93,.45),1px 0 rgba(79,182,255,.45),0 0 18px rgba(143,136,255,.45)}.sub{margin:10px 0 0;color:var(--dim);max-width:64ch}.panel{margin-top:20px;padding:16px;border:1px solid var(--line);background:var(--panel)}.nx-prompt{position:relative}.toy{margin:8px 0 0;padding:4px 8px;border:1px solid rgba(255,93,93,.55);border-left-width:3px;background:#ff5d5d14;color:var(--ink);font-size:12px;display:inline-block;max-width:100%}.toy b,.toy-inline{color:var(--red);font-weight:600}sup{font-size:.7em}.hint{font-size:11px;color:var(--faint)}.stage{height:clamp(420px,66vh,700px);margin-top:10px;touch-action:pan-y}.nx-charts,.how,#badges,.spy,.mitm,.ledger-panel,.walk{margin-top:14px}#ledger-panel,#walk{margin-top:12px}.nx-hud{text-shadow:0 0 6px #05060f,0 0 2px #05060f}#hud-legend{display:flex;flex-direction:column;gap:2px;font-size:11px}#hud-legend span{display:flex;align-items:center;justify-content:flex-end;gap:6px}.sw{display:inline-block;width:14px;height:3px;border-radius:2px}.sw.dash{background:repeating-linear-gradient(90deg,#f3f4ff 0 3px,transparent 3px 6px);height:1px}#hud-maths{right:16px}.hm{display:inline-block;max-width:100%;padding:3px 8px;background:#05060fb3;border-left:2px solid var(--yellow);color:var(--ink);overflow-wrap:anywhere}.ledger{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.lg-col{min-width:0;border-top:2px solid var(--c);padding-top:6px}.lg-col.alice{--c: var(--blue)}.lg-col.public{--c: var(--yellow)}.lg-col.bob{--c: var(--green)}.lg-col h3{margin:0 0 6px;font:500 14px/1.2 var(--display);color:var(--c)}.lg-item{padding:4px 8px;margin-bottom:4px;border:1px solid #1f2444;background:#0a0c1b;overflow-wrap:anywhere;font-size:12px;transition:opacity .3s}.lg-item small{display:block;color:var(--dim);font-size:11px}.lg-item.later{color:var(--faint);opacity:.6}.lg-item.now{border-color:var(--c);box-shadow:0 0 10px color-mix(in srgb,var(--c) 35%,transparent)}.walk-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 16px;align-items:start}.walk-chart{margin:0;min-width:0}.walk-text p{margin:0 0 6px}.walk-text b{color:#f3f4ff;font-weight:500}.trace{margin:0 0 6px;padding:0;list-style:none;max-height:180px;overflow-y:auto;font-size:12px;columns:2 220px;column-gap:16px}.trace li{overflow-wrap:anywhere;break-inside:avoid}.trace .op{display:inline-block;min-width:2.4em;color:var(--faint)}.trace .op.square{color:var(--indigo)}.trace .op.multiply{color:var(--yellow)}.done-line{color:var(--green);overflow-wrap:anywhere}.bits{display:flex;flex-wrap:wrap;align-items:center;gap:3px;margin-bottom:8px}.bits-label{color:var(--dim);margin-right:6px;font-size:12px}.bits i{font-style:normal;display:inline-grid;place-items:center;width:16px;height:20px;border:1px solid #1f2444;color:var(--faint);font-size:11px}.bits i.b1{color:var(--yellow);border-color:#ffe06666}.scatter{height:170px}.scatter canvas{display:block;width:100%;height:100%}.spy p{margin:0 0 8px;color:var(--dim);max-width:86ch}.spy p b{color:var(--ink)}.spy-controls,.mitm-controls{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:10px}.spy-controls select,.mitm-controls input[type=text]{background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:4px 6px;min-width:0}.mitm-controls input[type=text]{width:220px}.mitm-controls input[type=checkbox]{accent-color:var(--accent)}.spy-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:12px;align-items:start}.spy-board{min-width:0}.spy-n{font:400 19px/1.25 var(--display);color:#f3f4ff;overflow-wrap:anywhere}.spy-n small{font:12px var(--mono);color:var(--dim)}.spy-bar{height:6px;margin:8px 0;background:#1f2444;position:relative;overflow:hidden}.spy-bar i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#ff5d5d,#ffe066);box-shadow:0 0 10px #ff5d5d99}.spy-stats{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:var(--dim)}.spy-stats b{color:var(--ink);font-weight:500}.spy-race{margin-top:8px;font-size:12px;color:var(--dim);display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px}.spy-race span{font-weight:600}.who-a{color:var(--blue)}.who-e{color:var(--red)}.spy-result{margin-top:8px;min-height:1.5em;overflow-wrap:anywhere}.spy-result b{color:var(--green)}.spy-chart{margin:0;min-width:0}.spy-chart figcaption{display:flex;justify-content:space-between;gap:10px;color:var(--dim);margin-bottom:6px}.spy-chart figcaption>span:first-child:before{content:"> ";color:var(--indigo)}.spy-note{margin-top:10px!important}.mitm-intro{margin:0 0 10px;color:var(--dim);max-width:86ch}.mitm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mc{min-width:0;padding:8px 10px;border:1px solid #1f2444;border-top:2px solid var(--c);background:#0a0c1b;font-size:12px}.mc.alice{--c: var(--blue)}.mc.bob{--c: var(--green)}.mc.mallory{--c: var(--violet);box-shadow:0 0 16px #e383ff26}.mc.wire{--c: var(--faint)}.mc h3{margin:0 0 6px;font:500 15px/1.2 var(--display);color:var(--c)}.mc p{margin:0 0 4px;overflow-wrap:anywhere;color:var(--dim)}.mc b{color:var(--ink);font-weight:500}.mc em{color:var(--violet);font-style:normal}.mc .hex{font-size:11px;color:var(--orange)}.mc .reads{color:var(--ink);font:400 16px/1.3 var(--display)}.mitm-out{margin:10px 0 0;color:var(--dim);overflow-wrap:anywhere}.mitm-out.ok{color:var(--green)}.mitm-out.bad{color:var(--red);text-shadow:0 0 10px rgba(255,93,93,.35)}.mitm-out b{color:var(--ink);font-weight:500}@media(max-width:900px){.walk-body,.spy-grid,.mitm-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.stage{height:560px}.ledger{grid-template-columns:minmax(0,1fr)}#hud-legend{display:none}.nx-now{font-size:20px}.nx-hud.bl{left:10px;right:10px;bottom:8px}.mitm-controls input[type=text]{flex:1 1 140px;width:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
