:root{--paper: #eef2f5;--surface: #ffffff;--tint: #e3e9ef;--ink: #16233a;--ink-soft: #4a5870;--line: #cbd5df;--copper: #b5652b;--copper-soft: #e7c2a2;--signal: #2458e6;--signal-ink: #ffffff;--off: #9aa6b4;--tag: #13805a;--mesh-red: #c0161f;--mesh-yellow: #ffcc00;--band-bg: #16233a;--band-ink: #e8eef5;--band-soft: #a9b6c7;--band-line: #2c3c57;--font: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--wrap: 1140px;--gutter: clamp(16px, 4vw, 40px);--radius-s: 6px;--radius-m: 12px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #0e1624;--surface: #152033;--tint: #121c2d;--ink: #e6ecf3;--ink-soft: #a3b0c2;--line: #2a3850;--copper: #d9894d;--copper-soft: #6b4428;--signal: #6b93ff;--signal-ink: #0e1624;--off: #56647a;--tag: #4fcb98;--mesh-red: #ef3b45;--mesh-yellow: #ffcc00;--band-bg: #e6ecf3;--band-ink: #16233a;--band-soft: #4a5870;--band-line: #c3cdd8;color-scheme:dark}}:root[data-theme=dark]{--paper: #0e1624;--surface: #152033;--tint: #121c2d;--ink: #e6ecf3;--ink-soft: #a3b0c2;--line: #2a3850;--copper: #d9894d;--copper-soft: #6b4428;--signal: #6b93ff;--signal-ink: #0e1624;--off: #56647a;--tag: #4fcb98;--mesh-red: #ef3b45;--mesh-yellow: #ffcc00;--band-bg: #e6ecf3;--band-ink: #16233a;--band-soft: #4a5870;--band-line: #c3cdd8;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0;line-height:1.12;font-weight:700;letter-spacing:-.02em;text-wrap:balance}p{margin:0}a{color:inherit}:focus-visible{outline:3px solid var(--signal);outline-offset:3px;border-radius:4px}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}.skip-link{position:absolute;left:12px;top:-60px;background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:var(--radius-s);z-index:20}.skip-link:focus{top:12px}.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}.wordmark{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:1.25rem;letter-spacing:-.03em;text-decoration:none}.wm-badge{flex:none}.wm-frame{fill:none;stroke:var(--ink);stroke-width:1.2}.wm-node{fill:var(--ink)}.wm-gw{fill:var(--signal)}.nav-list{display:flex;gap:4px;list-style:none;margin:0;padding:0}.nav-list a{display:block;padding:8px 12px;border-radius:var(--radius-s);text-decoration:none;font-weight:500;font-size:.95rem;color:var(--ink-soft)}.nav-list a:hover{color:var(--ink);background:var(--tint)}.nav-list .nav-cta{color:var(--ink);border:1px solid var(--line)}@media (max-width: 820px){.nav-list li:not(:last-child){display:none}}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:var(--radius-s);font-weight:600;text-decoration:none;border:1px solid transparent}.button-primary{background:var(--signal);color:var(--signal-ink)}.button-primary:hover{background:color-mix(in srgb,var(--signal) 86%,var(--ink))}.button-quiet{border-color:var(--line);background:var(--surface)}.button-quiet:hover{border-color:var(--ink-soft)}.link-button{background:none;border:0;padding:0;font:inherit;color:var(--signal);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.hero{padding:clamp(40px,7vw,96px) 0 clamp(48px,7vw,88px)}.hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,5vw,64px);align-items:center}.hero h1{font-size:clamp(2.2rem,4.3vw,3.5rem);font-weight:800;letter-spacing:-.035em;line-height:1.04;max-width:15ch}.lede{margin-top:22px;font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--ink-soft);max-width:34ch;line-height:1.5}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}@media (max-width: 880px){.hero-grid{grid-template-columns:1fr}}.mesh{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:clamp(10px,2vw,18px);background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:22px 22px;background-position:11px 11px}.mesh-svg{display:block;width:100%;height:auto;touch-action:manipulation}.link{stroke:var(--mesh-yellow);stroke-width:1.5;transition:stroke .2s}.link-active{stroke:var(--mesh-red);stroke-width:3;stroke-linecap:round}.link-down{stroke:var(--line);stroke-dasharray:3 6;opacity:.6}.packet{fill:var(--signal)}.node{cursor:pointer;outline:none}.node-hit{fill:transparent}.node-body{fill:var(--surface);stroke:var(--ink);stroke-width:2.5;transition:fill .15s,stroke .15s}.node:hover .node-body{fill:var(--copper-soft)}.node:focus-visible .node-body{stroke:var(--signal);stroke-width:4}.node-hops{font-family:var(--font);font-size:13px;font-weight:700;fill:var(--ink);pointer-events:none}.node-off .node-body{fill:var(--paper);stroke:var(--off);stroke-dasharray:4 3}.node-x{stroke:var(--off);stroke-width:2.5;stroke-linecap:round}.node-isolated .node-body{stroke:var(--copper);stroke-dasharray:2 3}.node-gw{cursor:default}.node-gw .node-body,.node-gw:hover .node-body{fill:var(--signal);stroke:var(--signal)}.node-gw-label{font-family:var(--font);font-size:13px;font-weight:600;fill:var(--ink-soft)}.tag-link{stroke:var(--tag);stroke-width:1.5;stroke-dasharray:2 4;stroke-linecap:round}.packet-tag{fill:var(--tag)}.lock-ring{fill:none;stroke:var(--tag);stroke-width:2.5}.tag{cursor:grab;touch-action:none}.tag:active{cursor:grabbing}.tag-hit{fill:transparent}.tag-body{fill:var(--tag);stroke:var(--surface);stroke-width:2}.tag-searching .tag-body{fill:var(--surface);stroke:var(--tag);stroke-dasharray:2 2}.tag-label{font-family:var(--font);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;fill:var(--tag);stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;paint-order:stroke;pointer-events:none;-webkit-user-select:none;user-select:none}@media (max-width: 560px){.tag-label{display:none}}.tag-table{width:100%;margin-top:10px;border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums}.tag-table caption{text-align:left;font-size:.85rem;color:var(--ink-soft);padding-bottom:4px}.tag-table th,.tag-table td{text-align:left;padding:4px 8px 4px 0;border-bottom:1px solid var(--line)}.tag-table thead th{font-weight:600;color:var(--ink-soft)}.tag-table td:nth-child(2),.tag-table td:nth-child(3),.tag-table thead th:nth-child(2),.tag-table thead th:nth-child(3){text-align:right;padding-right:16px;width:4.5em}.tag-table tbody th{color:var(--tag);font-weight:700;width:2.5em}.mesh-caption{padding:12px 6px 4px;border-top:1px solid var(--line);margin-top:8px;background:var(--surface)}.mesh-status{font-weight:600;min-height:3.2em}.mesh-hint{margin-top:10px;color:var(--ink-soft);font-size:.95rem}.section{padding:clamp(56px,8vw,104px) 0;border-top:1px solid var(--line)}.section h2{font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:800;letter-spacing:-.03em}.section-head{max-width:62ch}.section-head p{margin-top:16px;color:var(--ink-soft);font-size:1.125rem}.muted{color:var(--ink-soft)}.service-list{list-style:none;padding:0;margin:48px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,6vw,80px)}.service-list li{padding:26px 0 30px;border-top:2px solid var(--ink)}.service-list h3{font-size:1.35rem}.service-list p{margin-top:10px;color:var(--ink-soft);max-width:48ch}@media (max-width: 720px){.service-list{grid-template-columns:1fr}}.section-ink{background:var(--band-bg);color:var(--band-ink);border-top:0}.section-ink .section-head p{color:var(--band-soft)}.fact-grid{margin:48px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(32px,6vw,80px)}.fact{padding:26px 0 30px;border-top:1px solid var(--band-line)}.fact dt{font-weight:700;font-size:1.25rem;letter-spacing:-.015em}.fact dt:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--copper);margin-right:12px;vertical-align:.1em}.fact dd{margin:10px 0 0;color:var(--band-soft);max-width:50ch}@media (max-width: 720px){.fact-grid{grid-template-columns:1fr}}.table-scroll{margin-top:44px;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface)}.protocol-table{width:100%;min-width:860px;border-collapse:collapse;font-size:.97rem}.protocol-table th,.protocol-table td{text-align:left;vertical-align:top;padding:16px 18px;border-bottom:1px solid var(--line)}.protocol-table thead th{font-size:.9rem;font-weight:600;color:var(--ink-soft);background:var(--tint);white-space:nowrap}.protocol-table tbody tr:last-child>*{border-bottom:0}.protocol-table tbody th{font-weight:700;white-space:nowrap}.protocol-table td:last-child{min-width:260px}.row-featured>*{background:color-mix(in srgb,var(--copper) 9%,var(--surface))}.row-featured th{box-shadow:inset 4px 0 0 var(--copper)}.footnote{margin-top:14px;font-size:.93rem;color:var(--ink-soft);max-width:70ch}.project-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,80px);align-items:start}.project-grid .section-head p+p{margin-top:14px}.pipeline{list-style:none;margin:0;padding:0;counter-reset:step;position:relative}.pipeline li{counter-increment:step;position:relative;padding:0 0 30px 64px}.pipeline li:before{content:counter(step);position:absolute;left:0;top:-4px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--surface);border:2.5px solid var(--ink)}.pipeline li:last-child:before{background:var(--signal);border-color:var(--signal);color:var(--signal-ink)}.pipeline li:not(:last-child):after{content:"";position:absolute;left:20px;top:40px;bottom:0;width:3px;background:var(--copper)}.pipeline h3{font-size:1.25rem}.pipeline p{margin-top:6px;color:var(--ink-soft)}@media (max-width: 880px){.project-grid{grid-template-columns:1fr}}.section-tint{background:var(--tint)}.about-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(24px,6vw,80px)}.prose p{font-size:1.15rem;line-height:1.65;max-width:62ch}.prose p+p{margin-top:1em}@media (max-width: 720px){.about-grid{grid-template-columns:1fr}}.contact h2{max-width:18ch}.contact-email{display:inline-block;margin-top:32px;font-size:clamp(1.4rem,4.4vw,2.6rem);font-weight:800;letter-spacing:-.03em;text-decoration:none;border-bottom:4px solid var(--copper);overflow-wrap:anywhere}.contact-email:hover{color:var(--signal);border-color:var(--signal)}.social{list-style:none;display:flex;gap:20px;padding:0;margin:28px 0 0;font-weight:600}.site-footer{border-top:1px solid var(--line);padding:28px 0 36px;font-size:.9rem;color:var(--ink-soft)}.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px}
