@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/instrument-sans-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/instrument-sans-400-latin.woff2) format("woff2");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:Instrument Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/instrument-sans-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/instrument-sans-500-latin.woff2) format("woff2");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:Instrument Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/instrument-sans-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/instrument-sans-600-latin.woff2) format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin.woff2) format("woff2");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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-latin.woff2) format("woff2");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:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin.woff2) format("woff2");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}:root{--canvas: #0B0B0F;--surface: #14131A;--surface-2: #191821;--rule: #1E1D26;--rule-soft: #17161d;--rule-strong: #2E2D38;--code-bg: #08080C;--overlay: rgba(5, 5, 8, .94);--ink: #DBDADF;--ink-muted: #8A8A93;--ink-dim: #66666D;--accent: #2BE39B;--accent-deep: #11B97A;--accent-quiet: #0F2A20;--accent-glow: rgba(43, 227, 155, .35);--glitch-a: #1FD8FF;--glitch-b: #FF3D9A;--map: #3C5A82;--attack: #2BE39B;--attack-deep: #11B97A;--attack-screen: #0F2A20;--face-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--face-text: "Instrument Sans", system-ui, sans-serif;--face-ascii: ui-monospace, "Cascadia Mono", "Menlo", Consolas, "DejaVu Sans Mono", monospace;--size-xs: .75rem;--size-sm: .8125rem;--size-base: .875rem;--size-md: .9375rem;--size-lg: 1.0625rem;--size-xl: clamp(1.25rem, 1.1rem + .7vw, 1.5rem);--leading-tight: 1.2;--leading-text: 1.6;--leading-loose: 1.75;--measure-prose: 74ch;--measure-note: 60ch;--space-tight: .75rem;--space-step: 1.75rem;--space-gap: 4.5rem;--column: 74rem;--radius: 6px;--radius-sm: 3px;--focus-ring: #2BE39B;--duration: .14s;--easing: cubic-bezier(.2, .7, .2, 1);--duration-enter: .2s;--stagger: 70ms}html{background:var(--canvas);color-scheme:dark}body{margin:0;background:var(--canvas);color:var(--ink-muted);font-family:var(--face-mono);font-size:var(--size-base);line-height:var(--leading-text);-webkit-font-smoothing:antialiased}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after,::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}*,*:before,*:after{box-sizing:border-box}::selection{background:var(--accent-quiet);color:var(--ink)}a{color:var(--accent);text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--canvas)}::-webkit-scrollbar-thumb{background:var(--rule)}::-webkit-scrollbar-thumb:hover{background:var(--accent-deep)}.skip{position:absolute;left:-100vw;top:0;z-index:300;padding:var(--space-tight) var(--space-step);background:var(--accent);color:var(--canvas);font-size:var(--size-sm)}.skip:focus{left:0}.bar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:var(--space-tight) var(--space-step);flex-wrap:wrap;padding:1rem clamp(1rem,3vw,2.5rem);border-bottom:1px solid var(--rule);background:var(--canvas);view-transition-name:bar}.bar-mark{font-size:var(--size-lg);font-weight:700;color:var(--ink)}.bar-nav{display:flex;flex-wrap:wrap;gap:.35rem clamp(.75rem,2vw,1.75rem)}.bar-link{color:var(--ink-muted);padding-bottom:.25rem;border-bottom:2px solid transparent;transition:color var(--duration) var(--easing),border-color var(--duration) var(--easing)}.bar-link:hover{color:var(--ink);border-bottom-color:var(--rule-strong)}.bar-link[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent);text-shadow:0 0 14px var(--accent-glow)}.wrap{width:100%;max-width:var(--column);margin:0 auto;padding:0 clamp(1rem,3vw,2.5rem)}main{display:block}body{min-height:100dvh;display:flex;flex-direction:column}.wrap{flex:1 0 auto;display:flex;flex-direction:column}main{flex:1 0 auto}main:not(.is-cover){padding-bottom:clamp(3rem,8vh,6rem)}main.is-cover{display:flex;flex-direction:column;justify-content:center;justify-content:safe center}main.is-cover .hero{padding-top:0}.rule{height:0;margin:var(--space-step) 0;border-top:1px dashed var(--rule)}.hero{padding:clamp(2.5rem,7vw,5rem) 0 0}.hero-centred{text-align:center}.logo{text-align:left}.logo-wrap{position:relative;display:inline-block}.logo,.logo-tear pre{margin:0;font-family:var(--face-ascii);font-size:clamp(.55rem,3.4vw,1.05rem);font-weight:700;line-height:1.12;white-space:pre;text-align:left}.logo{position:relative;color:var(--accent);text-shadow:0 0 22px var(--accent-glow);animation:flicker 7s infinite steps(1)}.logo:before,.logo:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;white-space:pre;pointer-events:none;text-shadow:none}.logo:before{color:var(--glitch-a);animation:glitch-a 6.5s infinite steps(1)}.logo:after{color:var(--glitch-b);animation:glitch-b 5.9s infinite steps(1)}@keyframes glitch-a{0%,8%{clip-path:inset(100% 0 0 0);transform:none}9%{clip-path:inset(18% 0 62% 0);transform:translate(-.35ch)}11%{clip-path:inset(52% 0 30% 0);transform:translate(.5ch)}13%,45%{clip-path:inset(100% 0 0 0);transform:none}46%{clip-path:inset(72% 0 12% 0);transform:translate(.7ch)}48%,78%{clip-path:inset(100% 0 0 0);transform:none}79%{clip-path:inset(6% 0 78% 0);transform:translate(-.6ch)}81%,to{clip-path:inset(100% 0 0 0);transform:none}}@keyframes glitch-b{0%,9%{clip-path:inset(100% 0 0 0);transform:none}10%{clip-path:inset(34% 0 48% 0);transform:translate(.55ch)}12%,44%{clip-path:inset(100% 0 0 0);transform:none}45%{clip-path:inset(60% 0 22% 0);transform:translate(-.75ch)}47%{clip-path:inset(12% 0 70% 0);transform:translate(.3ch)}49%,80%{clip-path:inset(100% 0 0 0);transform:none}81%{clip-path:inset(44% 0 40% 0);transform:translate(-.4ch)}83%,to{clip-path:inset(100% 0 0 0);transform:none}}@keyframes flicker{0%,8.4%{opacity:1}8.5%{opacity:.72}9.5%{opacity:1}45.4%{opacity:1}45.5%{opacity:.8}46.5%,to{opacity:1}}main .hero.hero-botnet{position:relative;padding-block:clamp(5.5rem,17vh,10rem)}@media(max-width:40rem){main .hero.hero-botnet{padding-block:clamp(5rem,16vh,9rem)}}.botnet-map,.botnet{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.botnet-map{z-index:0}.hero-botnet .logo-wrap{z-index:1}.botnet{z-index:2}.logo-tear{position:absolute;inset:0;background:var(--canvas);pointer-events:none}.logo-tear pre{position:absolute;top:0;left:0}.logo-tear-text{color:var(--accent);text-shadow:0 0 22px var(--accent-glow)}.logo-tear-ghost{mix-blend-mode:screen;opacity:.8}.logo-tear-ghost.is-a{color:var(--glitch-a)}.logo-tear-ghost.is-b{color:var(--glitch-b)}.logo-wrap.is-flooded{transform:translate(1px,-1px) skew(-2deg)}.ddos-switch{position:absolute;top:.9rem;right:.9rem;z-index:3;display:inline-flex;align-items:baseline;gap:.15ch;padding:.3rem .65rem;font-family:var(--face-mono);font-size:.72rem;line-height:1;letter-spacing:.06em;color:var(--ink-dim);background:color-mix(in srgb,var(--code-bg) 82%,transparent);border:1px solid var(--rule-strong);border-radius:2px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.ddos-switch:hover{border-color:var(--accent-deep)}.ddos-switch:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.ddos-switch-sep{color:var(--ink-dim)}.ddos-switch-state{font-weight:600;text-transform:uppercase}.ddos-switch[aria-pressed=true] .ddos-switch-state{color:var(--accent);text-shadow:0 0 10px var(--accent-glow)}.ddos-switch[aria-pressed=false] .ddos-switch-state{color:var(--ink-dim)}@media(max-width:40rem){.ddos-switch{top:.5rem;right:.5rem;font-size:.68rem}}.head{margin:0;font-size:var(--size-xs);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}.section{margin-top:var(--space-gap)}main>.section:first-child{margin-top:clamp(2rem,5vw,3.25rem)}.section>.rule{margin-top:var(--space-tight)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));gap:clamp(.75rem,1.6vw,1.25rem)}.card{position:relative;isolation:isolate;display:block;padding:1.6rem 1.75rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);overflow:hidden;transition:border-color var(--duration) var(--easing)}.card:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-enter) var(--easing)}.card:hover,.card:focus-visible{border-color:var(--accent)}.card:hover:before,.card:focus-visible:before{transform:scaleX(1)}.card:hover :is(.card-name,.card-note,.card-arrow),.card:focus-visible :is(.card-name,.card-note,.card-arrow){color:var(--canvas);text-shadow:none}main.is-cover .card{animation:card-in var(--duration-enter) var(--easing) both;animation-delay:calc(.12s + var(--i, 0) * var(--stagger))}@keyframes card-in{0%{opacity:0}}.card-name{margin:0;font-size:var(--size-md);font-weight:700;color:var(--accent);text-shadow:0 0 16px var(--accent-glow);transition:color var(--duration) var(--easing) 40ms}.card-arrow{position:absolute;top:1.6rem;right:1.75rem;color:var(--ink-dim);transition:transform var(--duration) var(--easing),color var(--duration) var(--easing) 40ms}.card:hover .card-arrow,.card:focus-visible .card-arrow{transform:translate(3px)}.card-note{margin:1rem 0 0;max-width:var(--measure-note);font-size:var(--size-sm);line-height:var(--leading-text);color:var(--ink-muted);transition:color var(--duration) var(--easing) 40ms}.rows{border-top:1px solid var(--rule-soft)}.row{display:grid;grid-template-columns:7.5rem minmax(0,1fr) auto;align-items:baseline;gap:.35rem var(--space-step);padding:1rem .75rem;border-bottom:1px solid var(--rule-soft);color:inherit;transition:background var(--duration) var(--easing)}a.row:hover{background:var(--surface)}.row-date{font-size:var(--size-xs);color:var(--ink-dim)}.row-body{min-width:0}.row-name{display:block;font-size:var(--size-md);font-weight:700;color:var(--ink);transition:color var(--duration) var(--easing)}a.row:hover .row-name{color:var(--accent)}.row-note{display:block;margin-top:.3rem;font-size:var(--size-sm);line-height:var(--leading-text);color:var(--ink-muted)}.row-tag{justify-self:end;padding:.1rem .5rem;border:1px solid var(--rule);border-radius:var(--radius-sm);font-size:var(--size-xs);color:var(--accent-deep)}.row-more{display:inline-block;margin-top:var(--space-step);font-size:var(--size-sm);color:var(--accent)}.row-more:hover{text-decoration:underline;text-underline-offset:3px}.record{margin:0;border-top:1px solid var(--rule-soft)}.rec{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:.2rem var(--space-step);align-items:baseline;padding:.8rem .75rem;border-bottom:1px solid var(--rule-soft)}.rec dt{font-size:var(--size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.rec dd{margin:0;min-width:0;font-size:var(--size-sm);color:var(--ink)}.rec dd a{text-decoration:none}.rec dd a:hover{text-decoration:underline;text-underline-offset:3px}.nf{min-height:48vh}.nf-line{margin:0;font-size:var(--size-lg);font-weight:700;color:var(--accent)}.nf-note{margin:var(--space-tight) 0 0;max-width:var(--measure-note);font-family:var(--face-text);font-size:var(--size-lg);line-height:var(--leading-text);color:var(--ink-muted)}.note{max-width:var(--measure-prose);font-family:var(--face-text);font-size:var(--size-lg);line-height:var(--leading-loose);color:var(--ink-muted)}.note p{margin:0 0 var(--space-step)}.note p:last-child{margin-bottom:0}.note strong{color:var(--ink);font-weight:600}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:var(--space-step)}.tag{padding:.25rem .7rem;border:1px solid var(--rule);border-radius:var(--radius-sm);font-size:var(--size-xs);color:var(--accent-deep)}.shot{margin:0}.shot-narrow{max-width:26rem}.cert-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;aspect-ratio:1200 / 927;border:1px dashed var(--rule-strong);border-radius:var(--radius);background:var(--surface)}.cert-slot-name{font-size:var(--size-md);font-weight:700;letter-spacing:.04em;color:var(--ink-muted)}.cert-slot-status{font-size:var(--size-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}.shot img{display:block;max-width:100%;height:auto;border:1px solid var(--rule);border-radius:var(--radius)}.shot figcaption{margin-top:var(--space-tight);max-width:var(--measure-note);font-family:var(--face-text);font-size:var(--size-sm);line-height:var(--leading-text);color:var(--ink-dim)}.keyblock{margin:var(--space-step) 0 0;padding:1rem;border:1px solid var(--rule);border-left:2px solid var(--accent-deep);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--size-xs);line-height:1.5;color:var(--ink-dim);white-space:pre-wrap;word-break:break-all}.copy-btn{margin-left:var(--space-tight);padding:0;font-family:var(--face-mono);font-size:var(--size-xs);color:var(--ink-dim);background:none;border:none;border-bottom:1px solid var(--rule);cursor:pointer}.copy-btn:hover{color:var(--accent);border-bottom-color:var(--accent)}.empty{padding:1rem .75rem;font-size:var(--size-sm);color:var(--ink-dim)}@media(max-width:46rem){.bar{padding:.8rem 1rem}.bar-nav{gap:.3rem .9rem;font-size:var(--size-xs)}.row{grid-template-columns:minmax(0,1fr) auto;gap:.25rem .75rem}.row-date{grid-column:1;grid-row:1}.row-tag{grid-column:2;grid-row:1}.row-body{grid-column:1 / -1;grid-row:2}.rec{grid-template-columns:minmax(0,1fr)}.card{padding:1.25rem}.card-arrow{top:1.25rem;right:1.25rem}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
