@font-face{font-family:open sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/open-sans-latin-ext-400.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:open sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/open-sans-latin-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#ffffff;--surface:#f4f7fa;--text:#0f172a;--muted:#475569;--line:#dfe6ee;--accent:#0074bc;--accent-text:#ffffff;--accent-soft:#e6f1f8;--ok:#15803d;--shape:rgba(0, 116, 188, 0.07);--logo-tile:transparent;--show-sun:none;--show-moon:block;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1220;--surface:#111b2e;--text:#e2e8f0;--muted:#a3b1c6;--line:#1f2c44;--accent:#5cb8f2;--accent-text:#0b1220;--accent-soft:#14304b;--ok:#4ade80;--shape:rgba(255, 255, 255, 0.05);--logo-tile:#ffffff;--show-sun:block;--show-moon:none;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b1220;--surface:#111b2e;--text:#e2e8f0;--muted:#a3b1c6;--line:#1f2c44;--accent:#5cb8f2;--accent-text:#0b1220;--accent-soft:#14304b;--ok:#4ade80;--shape:rgba(255, 255, 255, 0.05);--logo-tile:#ffffff;--show-sun:block;--show-moon:none;color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:1.0625rem/1.65 open sans,system-ui,sans-serif}img,svg{max-width:100%;height:auto}a{color:var(--accent);text-underline-offset:.15em}h1,h2,h3{line-height:1.2;font-weight:700}h2{font-size:1.6rem;margin:0 0 1.25rem}h3{font-size:1.1rem;margin:0 0 .4rem}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.icon{width:1.25em;height:1.25em;flex:none}.wrap{max-width:68rem;margin-inline:auto;padding-inline:1rem}main>section,main>article{margin-block:3.5rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:var(--bg);padding:.5rem 1rem;z-index:10}.site-header{border-bottom:1px solid var(--line)}.bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;padding-block:.75rem}.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--text);text-decoration:none;font-weight:700;font-size:1.15rem}.logo-mark{display:block;width:52px;height:36px}nav{display:flex;align-items:center;gap:.75rem 1.25rem;flex-wrap:wrap}.menu{display:flex;gap:1.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}.menu a{color:var(--text);text-decoration:none;font-weight:600}.menu a:hover,.menu a[aria-current]{color:var(--accent)}.menu a[aria-current]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.4em}.tools{display:flex;align-items:center;gap:.5rem}.lang,.theme-toggle{display:inline-flex;align-items:center;gap:.35rem;font:inherit;font-size:.9rem;font-weight:600;color:var(--muted);background:0 0;border:1px solid var(--line);border-radius:999px;padding:.25rem .75rem;text-decoration:none;cursor:pointer}.lang:hover,.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle{display:none;padding:.35rem}.js .theme-toggle{display:inline-flex}.theme-toggle .sun{display:var(--show-sun)}.theme-toggle .moon{display:var(--show-moon)}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0 0}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.3rem;border-radius:8px;font-weight:600;text-decoration:none;background:var(--accent);color:var(--accent-text);border:2px solid var(--accent)}.btn:hover{filter:brightness(1.1)}.btn.ghost{background:0 0;color:var(--accent)}.hero{display:grid;grid-template-columns:1fr minmax(0,360px);gap:2.5rem;align-items:center}.hero h1{font-size:clamp(2.2rem,6vw,3.4rem);margin:0}.headline{font-size:1.3rem;color:var(--accent);font-weight:600;margin:.25rem 0 1rem}.status{display:inline-flex;align-items:center;gap:.5rem;margin:0;font-size:.95rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.3rem .9rem}.dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--ok);flex:none}.intro{color:var(--muted);max-width:40rem}.cluster{display:block;width:100%;height:auto}.cluster .bg-shapes{fill:var(--shape)}.cluster .led{animation:blink 1.5s infinite ease-in-out}.cluster .led-2{animation-delay:.3s}.cluster .led-3{animation-delay:.8s}.cluster .conn-line{stroke-width:2.5;stroke-linecap:round;fill:none;stroke-dasharray:10 15;animation:dash 2s linear infinite}.cluster .conn-1{stroke:#4299e1;animation-duration:2.5s}.cluster .conn-2{stroke:#48bb78;animation-duration:3s;animation-delay:-.5s}.cluster .conn-3{stroke:#f56565;animation-duration:2s;animation-delay:-1s}@keyframes blink{0%,40%,100%{opacity:1}50%,90%{opacity:.3}}@keyframes dash{to{stroke-dashoffset:-100}}@media(prefers-reduced-motion:reduce){.cluster *{animation:none!important}}.about{display:grid;grid-template-columns:180px 1fr;gap:1.5rem 2rem;align-items:center}.about .glance{grid-column:1/-1}.portrait{width:180px;border-radius:50%}.about p{margin:0;color:var(--muted);max-width:46rem}.glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1px;margin:0;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.glance div{background:var(--surface);padding:.9rem 1.1rem}.glance dt{font-size:.85rem;color:var(--muted)}.glance dd{margin:.15rem 0 0;font-weight:600}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.25rem;list-style:none;margin:0;padding:0}.card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.4rem}.card>p{margin:0;color:var(--muted)}.card .chips{margin-top:auto;padding-top:1rem}.badge{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:10px;background:var(--accent-soft);color:var(--accent);margin-bottom:.9rem}.card-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem}.card-head .badge{margin:0}.card-head h2,.card-head h3{margin:0;font-size:1.15rem}.chips{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}.chips li{font-size:.85rem;padding:.15rem .6rem;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--text)}.list{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.5rem;list-style:none;margin:0;padding:0}.list li{border-left:3px solid var(--accent);padding-left:1rem}.list p{margin:0;color:var(--muted)}.logos{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem;list-style:none;margin:3rem 0 0;padding:0}.logos li{background:var(--logo-tile);border-radius:10px;padding:.4rem}.logos img{display:block;width:48px;height:48px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:2rem 1.5rem}.panel p{margin:0;color:var(--muted);max-width:46rem}.page-head{margin-bottom:2rem}.page-head h1{font-size:clamp(2rem,5vw,2.6rem);margin:0 0 .5rem}.lead{font-size:1.15rem;color:var(--muted);margin:0;max-width:46rem}.further{margin-top:2.5rem}.further h2{font-size:1.1rem;margin-bottom:.5rem}.further p{font-size:.9rem;color:var(--muted);margin:0}.contact-value{font-weight:600;font-size:1.05rem;margin:0 0 .75rem}.contact-value a{text-decoration:none}.card .actions{margin-top:auto;padding-top:.5rem}.prose{max-width:46rem}.prose h1{font-size:2.2rem;margin:0 0 1.5rem}.prose h2{font-size:1.3rem;margin:2rem 0 .5rem}.prose h3{margin-top:1.5rem}.prose h4,.prose h5{font-size:1rem;margin:1.25rem 0 .25rem}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.95rem;margin-top:4rem}.foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem;padding-block:1.75rem}.foot p{margin:.4rem 0 0}.foot ul{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;list-style:none;margin:0;padding:0}.logo-full{display:block;width:220px;box-sizing:content-box;background:var(--logo-tile);border-radius:8px;padding:.4rem .6rem;margin-left:-.6rem}@media(max-width:44rem){.hero{grid-template-columns:1fr;gap:1.5rem}.cluster{max-width:320px}.about{grid-template-columns:1fr;gap:1.25rem}.portrait{width:140px}.status{border-radius:12px}}@media(min-width:44rem){.cards.cols-2{grid-template-columns:repeat(2,1fr)}}.card-head+.chips{margin-top:0;padding-top:0}.panel .actions{margin-top:1.25rem}