.section[data-astro-cid-75vcsabj]{padding-top:var(--space-section);position:relative}.section__body[data-astro-cid-75vcsabj]{padding-left:var(--rail-offset);position:relative}.section__header[data-astro-cid-75vcsabj]{max-width:46rem;margin-bottom:clamp(2.5rem,1.5rem + 3vw,4rem)}.section__label[data-astro-cid-75vcsabj]{margin-bottom:var(--space-5);align-items:center;gap:.75rem;display:flex;position:relative}.section__index[data-astro-cid-75vcsabj]{color:var(--c-green)}.section__node[data-astro-cid-75vcsabj]{border:1px solid var(--c-line-strong);background:var(--c-bg);width:9px;height:9px;transition:background-color var(--duration) ease, border-color var(--duration) ease, box-shadow var(--duration) ease;border-radius:50%;flex:none}.section[data-astro-cid-75vcsabj][data-active] .section__node[data-astro-cid-75vcsabj]{border-color:var(--c-green);background:var(--c-green);box-shadow:0 0 0 4px var(--c-green-soft), 0 0 14px #3dffa299}.section__title[data-astro-cid-75vcsabj]{font-size:var(--text-2xl)}.section__lead[data-astro-cid-75vcsabj]{margin-top:var(--space-5);max-width:40rem;font-size:var(--text-lg);color:var(--c-text-soft)}@media (width>=48rem){.section__body[data-astro-cid-75vcsabj]:before{content:"";top:calc(-1 * var(--space-section));background:var(--c-line);width:1px;position:absolute;bottom:0;left:0}.section--first[data-astro-cid-75vcsabj] .section__body[data-astro-cid-75vcsabj]:before{background:linear-gradient(to bottom, transparent, var(--c-line) 7rem)}.section--last[data-astro-cid-75vcsabj] .section__body[data-astro-cid-75vcsabj]:before{height:calc(var(--space-section) + .5rem);bottom:auto}.section__node[data-astro-cid-75vcsabj]{top:50%;left:calc(-1 * var(--rail-offset));position:absolute;transform:translate(-50%,-50%)}}.about[data-astro-cid-5gtlsymu]{gap:var(--space-7);align-items:start;display:grid}.about__text[data-astro-cid-5gtlsymu]{gap:var(--space-5);max-width:40rem;color:var(--c-text-soft);display:grid}.about__intro[data-astro-cid-5gtlsymu]{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.01em;color:var(--c-text);font-weight:400;line-height:1.45}.facts[data-astro-cid-5gtlsymu]{border:1px solid var(--c-line);border-radius:var(--radius-lg);background:linear-gradient(160deg, var(--c-surface-raised), var(--c-surface) 60%)}.facts__title[data-astro-cid-5gtlsymu]{border-bottom:1px solid var(--c-line);font-family:var(--font-mono);letter-spacing:.08em;align-items:center;gap:.625rem;padding:1rem 1.25rem;display:flex}.facts__led[data-astro-cid-5gtlsymu]{background:var(--c-green);width:7px;height:7px;box-shadow:0 0 10px var(--c-green);border-radius:50%}.facts__row[data-astro-cid-5gtlsymu]{gap:.25rem;padding:.875rem 1.25rem;display:grid}.facts__row[data-astro-cid-5gtlsymu]+.facts__row[data-astro-cid-5gtlsymu]{border-top:1px solid var(--c-line)}dt[data-astro-cid-5gtlsymu]{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--c-text-faint)}dd[data-astro-cid-5gtlsymu]{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;font-weight:500;display:flex}dd[data-astro-cid-5gtlsymu] time[data-astro-cid-5gtlsymu]{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--c-text-faint);font-weight:400}@media (width>=62rem){.about[data-astro-cid-5gtlsymu]{grid-template-columns:minmax(0,1.5fr) minmax(17rem,1fr);gap:clamp(3rem,6vw,6rem)}.facts[data-astro-cid-5gtlsymu]{top:calc(var(--header-height) + 2rem);position:sticky}}.channels[data-astro-cid-d56ov33j]{border-top:1px solid var(--c-line)}.channel[data-astro-cid-d56ov33j]{gap:var(--space-3);padding-block:var(--space-6);border-bottom:1px solid var(--c-line);display:grid}.channel__value[data-astro-cid-d56ov33j]{font-family:var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere;font-size:clamp(1.25rem,.9rem + 2.2vw,2.25rem);font-weight:500;line-height:1.2}.channel__actions[data-astro-cid-d56ov33j]{margin-top:var(--space-3);flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.copy[data-astro-cid-d56ov33j]{border:1px solid var(--c-line-strong);border-radius:var(--radius-md);min-height:2.875rem;transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, color var(--duration-fast) ease;align-items:center;gap:.625rem;padding:.625rem 1.25rem;font-size:.9375rem;font-weight:550;display:inline-flex}.copy[data-astro-cid-d56ov33j]:hover,.copy[data-astro-cid-d56ov33j]:focus-visible,.copy[data-astro-cid-d56ov33j][data-state=done]{border-color:var(--c-green-line);background:var(--c-green-soft)}.copy[data-astro-cid-d56ov33j][data-state=done]{color:var(--c-green)}.copy[data-astro-cid-d56ov33j][data-state=failed]{white-space:normal;text-align:left}.copy__icons[data-astro-cid-d56ov33j]{width:18px;height:18px;display:grid;position:relative}.copy__icons[data-astro-cid-d56ov33j] .copy__icon{transition:opacity var(--duration-fast) ease, transform var(--duration) var(--ease-out);grid-area:1/1}.copy__icons[data-astro-cid-d56ov33j] .copy__icon--done,.copy[data-astro-cid-d56ov33j][data-state=done] .copy__icon--idle{opacity:0;transform:scale(.5)}.copy[data-astro-cid-d56ov33j][data-state=done] .copy__icon--done{opacity:1;transform:scale(1)}@media (width>=56rem){.channel[data-astro-cid-d56ov33j]{align-items:center;gap:var(--space-5);grid-template-columns:8rem minmax(0,1fr) auto}.channel__actions[data-astro-cid-d56ov33j]{justify-content:flex-end;margin-top:0}}.graph[data-astro-cid-b6vd6zzf]{width:100%;height:auto;overflow:visible}.stop--green[data-astro-cid-b6vd6zzf]{stop-color:var(--c-green)}.stop--blue[data-astro-cid-b6vd6zzf]{stop-color:var(--c-blue)}.stop--neutral[data-astro-cid-b6vd6zzf]{stop-color:var(--c-text)}.tone--green[data-astro-cid-b6vd6zzf]{--tone:var(--c-green);fill:var(--c-green)}.tone--blue[data-astro-cid-b6vd6zzf]{--tone:var(--c-blue);fill:var(--c-blue)}.tone--neutral[data-astro-cid-b6vd6zzf]{--tone:var(--c-text);fill:var(--c-text)}.graph__rings[data-astro-cid-b6vd6zzf] circle[data-astro-cid-b6vd6zzf]{stroke:var(--c-line);stroke-dasharray:2 7}.graph__rings[data-astro-cid-b6vd6zzf] .graph__ring--inner[data-astro-cid-b6vd6zzf]{stroke-dasharray:none;opacity:.7}.graph__mesh[data-astro-cid-b6vd6zzf] line[data-astro-cid-b6vd6zzf]{stroke:var(--c-line-strong);stroke-width:1px}.graph__mesh[data-astro-cid-b6vd6zzf] .graph__spoke[data-astro-cid-b6vd6zzf]{stroke:var(--c-line);stroke-dasharray:3 5}.graph__links[data-astro-cid-b6vd6zzf] line[data-astro-cid-b6vd6zzf]{stroke-width:1.5px;stroke-dasharray:1}.graph__minor[data-astro-cid-b6vd6zzf] circle[data-astro-cid-b6vd6zzf]{fill:var(--c-text-faint)}.graph__tile[data-astro-cid-b6vd6zzf] rect[data-astro-cid-b6vd6zzf]{fill:var(--c-surface);stroke:var(--c-line-strong)}.graph__glyph[data-astro-cid-b6vd6zzf]{stroke:var(--c-text)}.graph__glyph-node[data-astro-cid-b6vd6zzf]{fill:var(--c-surface);stroke:var(--c-text)}.graph__glyph-node--blue[data-astro-cid-b6vd6zzf]{stroke:var(--c-blue)}.graph__node-ring[data-astro-cid-b6vd6zzf]{fill:var(--c-bg);stroke:var(--tone);stroke-opacity:.45}.graph__label[data-astro-cid-b6vd6zzf]{fill:var(--c-text-soft);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:14px;font-weight:500}.graph__packet[data-astro-cid-b6vd6zzf]{opacity:0;filter:drop-shadow(0 0 5px var(--tone))}@media (prefers-reduced-motion:no-preference){.graph__tile[data-astro-cid-b6vd6zzf]{transform-box:fill-box;transform-origin:50%;animation:graph-pop .7s var(--ease-out) .15s both}.graph__glow[data-astro-cid-b6vd6zzf],.graph__rings[data-astro-cid-b6vd6zzf]{animation:1.2s .3s both graph-fade}.graph__links[data-astro-cid-b6vd6zzf] line[data-astro-cid-b6vd6zzf]{animation:graph-draw .8s var(--ease-in-out) both}.graph__links[data-astro-cid-b6vd6zzf] line[data-astro-cid-b6vd6zzf]:first-child{animation-delay:.45s}.graph__links[data-astro-cid-b6vd6zzf] line[data-astro-cid-b6vd6zzf]:nth-child(2){animation-delay:.6s}.graph__links[data-astro-cid-b6vd6zzf] line[data-astro-cid-b6vd6zzf]:nth-child(3){animation-delay:.75s}.graph__node[data-astro-cid-b6vd6zzf]{transform-box:fill-box;transform-origin:50%;animation:.5s both graph-fade}.graph__node[data-astro-cid-b6vd6zzf]:first-child{animation-delay:1s}.graph__node[data-astro-cid-b6vd6zzf]:nth-child(2){animation-delay:1.15s}.graph__node[data-astro-cid-b6vd6zzf]:nth-child(3){animation-delay:1.3s}.graph__mesh[data-astro-cid-b6vd6zzf],.graph__minor[data-astro-cid-b6vd6zzf]{animation:.9s 1.35s both graph-fade}.graph__node[data-astro-cid-b6vd6zzf].tone--green .graph__node-ring[data-astro-cid-b6vd6zzf]{transform-box:fill-box;transform-origin:50%;animation:3.2s ease-out 2s infinite graph-pulse}}@media (prefers-reduced-motion:reduce){.graph__packets[data-astro-cid-b6vd6zzf]{display:none}}@keyframes graph-pop{0%{opacity:0;transform:scale(.82)}}@keyframes graph-fade{0%{opacity:0}}@keyframes graph-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes graph-pulse{0%{stroke-opacity:.7;transform:scale(1)}70%,to{stroke-opacity:0;transform:scale(2.1)}}.hero[data-astro-cid-yodha2z4]{min-height:min(100svh,58rem);padding-top:calc(var(--header-height) + clamp(2rem, 7vh, 5rem));align-items:center;padding-bottom:clamp(3rem,8vh,6rem);display:flex;position:relative;overflow:clip}.hero__backdrop[data-astro-cid-yodha2z4]{pointer-events:none;background:radial-gradient(50% 45% at 78% 38%,#3dffa212,#0000 70%),radial-gradient(45% 50% at 12% 88%,#4d94ff12,#0000 70%);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 55%,#0000);mask-image:linear-gradient(#000 55%,#0000)}.hero__backdrop[data-astro-cid-yodha2z4]:before{content:"";background-image:radial-gradient(circle at 1px 1px,#a0b4d233 1px,#0000 0);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 62% at 72% 42%,#000 5%,#0000 78%);mask-image:radial-gradient(60% 62% at 72% 42%,#000 5%,#0000 78%)}.hero__grid[data-astro-cid-yodha2z4]{align-items:center;gap:var(--space-7);display:grid;position:relative}.hero__content[data-astro-cid-yodha2z4]{z-index:1;max-width:40rem;position:relative}.hero__handle[data-astro-cid-yodha2z4]{margin-bottom:var(--space-5);color:var(--c-text-soft);align-items:center;gap:.625rem;display:inline-flex}.hero__status[data-astro-cid-yodha2z4]{background:var(--c-green);width:7px;height:7px;box-shadow:0 0 10px var(--c-green);border-radius:50%;position:relative}.hero__name[data-astro-cid-yodha2z4]{font-size:var(--text-hero);letter-spacing:-.03em;font-weight:600;line-height:1}.hero__role[data-astro-cid-yodha2z4]{margin-top:var(--space-5);font-family:var(--font-display);font-size:var(--text-xl);color:var(--c-text);font-weight:400;line-height:1.3}.hero__tagline[data-astro-cid-yodha2z4]{margin-top:var(--space-3);width:fit-content;font-family:var(--font-mono);letter-spacing:.01em;color:var(--c-green);background:var(--gradient-signal);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(.875rem,.8rem + .3vw,1rem);font-weight:500}.hero__intro[data-astro-cid-yodha2z4]{margin-top:var(--space-5);max-width:34rem;font-size:var(--text-lg);color:var(--c-text-soft)}.hero__actions[data-astro-cid-yodha2z4]{margin-top:var(--space-6);flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.hero__visual[data-astro-cid-yodha2z4]{opacity:.3;pointer-events:none;width:min(36rem,130vw);position:absolute;top:0;right:0;transform:translate(46%,-6%);-webkit-mask-image:linear-gradient(270deg,#000 35%,#0000 80%);mask-image:linear-gradient(270deg,#000 35%,#0000 80%)}.hero__visual[data-astro-cid-yodha2z4] .graph__label,.hero__visual[data-astro-cid-yodha2z4] .graph__tile{display:none}@media (width>=44rem){.hero__visual[data-astro-cid-yodha2z4]{opacity:.55;width:33rem;top:50%;transform:translate(34%,-46%);-webkit-mask-image:linear-gradient(270deg,#000 45%,#0000 92%);mask-image:linear-gradient(270deg,#000 45%,#0000 92%)}.hero__visual[data-astro-cid-yodha2z4] .graph__tile{display:block}}@media (width>=64rem){.hero__grid[data-astro-cid-yodha2z4]{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,5rem)}.hero__visual[data-astro-cid-yodha2z4]{opacity:1;justify-self:end;width:100%;max-width:34rem;position:static;transform:none;-webkit-mask-image:none;mask-image:none}.hero__visual[data-astro-cid-yodha2z4] .graph__label,.hero__visual[data-astro-cid-yodha2z4] .graph__tile{display:block}}@media (prefers-reduced-motion:no-preference){.hero__content[data-astro-cid-yodha2z4]>[data-astro-cid-yodha2z4]{animation:hero-rise .9s var(--ease-out) both}.hero__content[data-astro-cid-yodha2z4]>[data-astro-cid-yodha2z4]:first-child{animation-delay:80ms}.hero__content[data-astro-cid-yodha2z4]>[data-astro-cid-yodha2z4]:nth-child(2){animation-delay:.16s}.hero__content[data-astro-cid-yodha2z4]>[data-astro-cid-yodha2z4]:nth-child(3){animation-delay:.26s}.hero__content[data-astro-cid-yodha2z4]>[data-astro-cid-yodha2z4]:nth-child(4){animation-delay:.34s}.hero__content[data-astro-cid-yodha2z4]>[data-astro-cid-yodha2z4]:nth-child(5){animation-delay:.42s}.hero__content[data-astro-cid-yodha2z4]>[data-astro-cid-yodha2z4]:nth-child(6){animation-delay:.52s}.hero__status[data-astro-cid-yodha2z4]:after{content:"";border:1px solid var(--c-green);border-radius:50%;animation:2.6s ease-out 1.2s infinite hero-ping;position:absolute;inset:0}}@keyframes hero-rise{0%{opacity:0;transform:translateY(1.25rem)}}@keyframes hero-ping{0%{opacity:.8;transform:scale(1)}70%,to{opacity:0;transform:scale(3.4)}}.broker[data-astro-cid-mcvvzkuf]{width:100%;height:auto}text[data-astro-cid-mcvvzkuf]{font-family:var(--font-mono);fill:var(--c-text);font-size:11px;font-weight:500}.broker__port[data-astro-cid-mcvvzkuf],.broker__client[data-astro-cid-mcvvzkuf] text[data-astro-cid-mcvvzkuf]{fill:var(--c-text-faint);letter-spacing:.04em;font-size:9px;font-weight:400}.broker__box[data-astro-cid-mcvvzkuf] rect[data-astro-cid-mcvvzkuf],.broker__container[data-astro-cid-mcvvzkuf] rect[data-astro-cid-mcvvzkuf]{fill:var(--c-surface);stroke:var(--c-line-strong)}.broker__control[data-astro-cid-mcvvzkuf] rect[data-astro-cid-mcvvzkuf]{fill:#3dffa20d;stroke:var(--c-green-line);stroke-dasharray:4 4}.broker__control[data-astro-cid-mcvvzkuf] path[data-astro-cid-mcvvzkuf]{stroke:var(--c-green-line);stroke-dasharray:2 4}.broker__control[data-astro-cid-mcvvzkuf] text[data-astro-cid-mcvvzkuf]{fill:var(--c-green)}.broker__idle[data-astro-cid-mcvvzkuf] path[data-astro-cid-mcvvzkuf]{stroke:var(--c-line-strong);stroke-dasharray:2 5}.broker__flow[data-astro-cid-mcvvzkuf] path[data-astro-cid-mcvvzkuf]{stroke-width:1.5px;stroke-dasharray:5 7;stroke-linecap:round}.broker__flow--tcp[data-astro-cid-mcvvzkuf] path[data-astro-cid-mcvvzkuf]{stroke:var(--c-green)}.broker__flow--udp[data-astro-cid-mcvvzkuf] path[data-astro-cid-mcvvzkuf]{stroke:var(--c-blue)}.broker__client[data-astro-cid-mcvvzkuf] circle[data-astro-cid-mcvvzkuf]{fill:var(--c-surface);stroke:var(--c-line-strong)}.broker__client[data-astro-cid-mcvvzkuf] .broker__client-core[data-astro-cid-mcvvzkuf]{fill:var(--c-text);stroke:none}.broker__led[data-astro-cid-mcvvzkuf]{fill:none;stroke:var(--c-text-faint);stroke-width:1.5px}[data-astro-cid-mcvvzkuf][data-state=busy] .broker__led[data-astro-cid-mcvvzkuf]{fill:var(--c-green);stroke:var(--c-green);filter:drop-shadow(0 0 4px var(--c-green))}[data-astro-cid-mcvvzkuf][data-state=busy] rect[data-astro-cid-mcvvzkuf]{stroke:var(--c-green-line)}[data-astro-cid-mcvvzkuf][data-state=recycling] .broker__led[data-astro-cid-mcvvzkuf]{stroke:var(--c-blue);stroke-dasharray:3 3}@media (prefers-reduced-motion:no-preference){.broker__flow[data-astro-cid-mcvvzkuf] path[data-astro-cid-mcvvzkuf]{animation:1.4s linear infinite broker-flow}.broker__flow--udp[data-astro-cid-mcvvzkuf] path[data-astro-cid-mcvvzkuf]{animation-duration:.9s}[data-astro-cid-mcvvzkuf][data-state=recycling] .broker__led[data-astro-cid-mcvvzkuf]{transform-box:fill-box;transform-origin:50%;animation:2.4s linear infinite broker-spin}}@keyframes broker-flow{to{stroke-dashoffset:-24px}}@keyframes broker-spin{to{transform:rotate(360deg)}}.ohm[data-astro-cid-ysbjw6gi]{width:100%;height:auto}.ohm__wire[data-astro-cid-ysbjw6gi]{stroke:var(--c-line-strong);stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round}.ohm__battery[data-astro-cid-ysbjw6gi] path[data-astro-cid-ysbjw6gi]{stroke:var(--c-text);stroke-width:2px;stroke-linecap:round}.ohm__battery[data-astro-cid-ysbjw6gi] .ohm__battery-short[data-astro-cid-ysbjw6gi]{stroke-width:4px}.ohm__charges[data-astro-cid-ysbjw6gi] circle[data-astro-cid-ysbjw6gi]{fill:var(--c-green);filter:drop-shadow(0 0 4px var(--c-green))}.ohm__formula[data-astro-cid-ysbjw6gi]{font-family:var(--font-display);letter-spacing:-.02em;fill:var(--c-text);font-size:38px;font-weight:600}.ohm__value[data-astro-cid-ysbjw6gi]{font-family:var(--font-mono);letter-spacing:.04em;fill:var(--c-text-faint);font-size:11px;font-weight:500}.ohm__value--current[data-astro-cid-ysbjw6gi]{fill:var(--c-green)}@media (prefers-reduced-motion:reduce){.ohm__charges[data-astro-cid-ysbjw6gi]{display:none}}.pattern[data-astro-cid-2i6usjgh]{width:100%;height:auto}.pattern__links[data-astro-cid-2i6usjgh] line[data-astro-cid-2i6usjgh]{stroke:var(--c-line-strong)}.pattern__nodes[data-astro-cid-2i6usjgh] circle[data-astro-cid-2i6usjgh]{fill:var(--c-surface);stroke:var(--c-text-faint);stroke-width:1.5px}.pattern__nodes[data-astro-cid-2i6usjgh] .pattern__node--active[data-astro-cid-2i6usjgh]{fill:var(--c-green);stroke:var(--c-green);filter:drop-shadow(0 0 6px var(--c-green))}.sensor[data-astro-cid-pndo2g76]{width:100%;height:auto}text[data-astro-cid-pndo2g76]{font-family:var(--font-mono);letter-spacing:.04em;fill:var(--c-text-faint);font-size:10px;font-weight:500}.sensor__board[data-astro-cid-pndo2g76] text[data-astro-cid-pndo2g76]{fill:var(--c-text);font-size:11px}.sensor__probes[data-astro-cid-pndo2g76] path[data-astro-cid-pndo2g76],.sensor__board[data-astro-cid-pndo2g76] path[data-astro-cid-pndo2g76]{stroke:var(--c-line-strong);stroke-width:1.5px;stroke-linecap:round}.sensor__probes[data-astro-cid-pndo2g76] rect[data-astro-cid-pndo2g76],.sensor__board[data-astro-cid-pndo2g76] rect[data-astro-cid-pndo2g76],.sensor__phone[data-astro-cid-pndo2g76] rect[data-astro-cid-pndo2g76]{fill:var(--c-surface);stroke:var(--c-line-strong)}.sensor__board[data-astro-cid-pndo2g76] .sensor__chip[data-astro-cid-pndo2g76]{fill:#3dffa20f;stroke:var(--c-green-line)}.sensor__waves[data-astro-cid-pndo2g76] path[data-astro-cid-pndo2g76]{stroke:var(--c-blue);stroke-width:2px;stroke-linecap:round}.sensor__waves[data-astro-cid-pndo2g76] path[data-astro-cid-pndo2g76]:nth-child(2){opacity:.65}.sensor__waves[data-astro-cid-pndo2g76] path[data-astro-cid-pndo2g76]:nth-child(3){opacity:.35}.sensor__phone[data-astro-cid-pndo2g76] path[data-astro-cid-pndo2g76]{stroke:var(--c-line-strong);stroke-width:2px;stroke-linecap:round}.sensor__unit[data-astro-cid-pndo2g76]{letter-spacing:.12em;font-size:8.5px}.sensor__reading[data-astro-cid-pndo2g76]{font-family:var(--font-display);letter-spacing:-.02em;fill:var(--c-text);font-size:26px;font-weight:600}.sensor__reading--humidity[data-astro-cid-pndo2g76]{fill:var(--c-blue);font-size:21px}@media (prefers-reduced-motion:no-preference){.sensor__waves[data-astro-cid-pndo2g76] path[data-astro-cid-pndo2g76]{animation:2.4s ease-in-out infinite sensor-wave}.sensor__waves[data-astro-cid-pndo2g76] path[data-astro-cid-pndo2g76]:nth-child(2){animation-delay:.3s}.sensor__waves[data-astro-cid-pndo2g76] path[data-astro-cid-pndo2g76]:nth-child(3){animation-delay:.6s}}@keyframes sensor-wave{0%,to{opacity:.15}40%{opacity:1}}.visual[data-astro-cid-sj4zvoh4]{background:radial-gradient(ellipse 70% 70% at 50% 45%, #3dffa20d, transparent 70%), var(--c-surface-raised);place-items:center;height:100%;min-height:13rem;padding:clamp(1rem,.5rem + 2vw,2rem);display:grid;position:relative;overflow:hidden}.visual[data-astro-cid-sj4zvoh4]:before{content:"";background-image:radial-gradient(circle at 1px 1px,#a0b4d221 1px,#0000 0);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(75% 75%,#000,#0000);mask-image:radial-gradient(75% 75%,#000,#0000)}.visual[data-astro-cid-sj4zvoh4]>*{max-width:30rem;position:relative}.visual--image[data-astro-cid-sj4zvoh4]{padding:0}.visual--image[data-astro-cid-sj4zvoh4] img{object-fit:cover;width:100%;max-width:none;height:100%}.card[data-astro-cid-4yu5y2jt]{border:1px solid var(--c-line);border-radius:var(--radius-lg);background:var(--c-surface);min-width:0;transition:border-color var(--duration) ease, background-color var(--duration) ease, transform var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out);flex-direction:column;grid-column:span 12;display:flex;position:relative;overflow:hidden}.card[data-astro-cid-4yu5y2jt]:before{content:"";z-index:1;background:var(--gradient-signal);transform-origin:0;height:1px;transition:transform var(--duration-slow) var(--ease-out);position:absolute;inset:0 0 auto;transform:scaleX(0)}.card[data-astro-cid-4yu5y2jt]:hover,.card[data-astro-cid-4yu5y2jt]:focus-within{border-color:var(--c-line-strong)}.card[data-astro-cid-4yu5y2jt]:hover:before,.card[data-astro-cid-4yu5y2jt]:focus-within:before{transform:scaleX(1)}.card[data-astro-cid-4yu5y2jt]:target{border-color:var(--c-green-line);box-shadow:0 0 0 4px var(--c-green-soft)}.card__body[data-astro-cid-4yu5y2jt]{gap:var(--space-4);flex-direction:column;flex:1;padding:clamp(1.25rem,1rem + 1vw,1.75rem);display:flex}.card__eyebrow[data-astro-cid-4yu5y2jt]{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.card__flag[data-astro-cid-4yu5y2jt],.card__badge[data-astro-cid-4yu5y2jt]{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.125rem .5rem;font-size:.6875rem;font-weight:500}.card__flag[data-astro-cid-4yu5y2jt]{border:1px solid var(--c-green-line);background:var(--c-green-soft);color:var(--c-green)}.card__badge[data-astro-cid-4yu5y2jt]{border:1px solid var(--c-line-strong);color:var(--c-text-soft)}.card__title[data-astro-cid-4yu5y2jt]{letter-spacing:-.015em;overflow-wrap:anywhere;font-size:1.25rem}.card__title[data-astro-cid-4yu5y2jt] a[data-astro-cid-4yu5y2jt]{transition:color var(--duration-fast) ease;align-items:baseline;gap:.5rem;display:inline-flex}.card[data-astro-cid-4yu5y2jt]:not(.card--featured) .card__title[data-astro-cid-4yu5y2jt] a[data-astro-cid-4yu5y2jt]:after{content:"";position:absolute;inset:0}.card__title[data-astro-cid-4yu5y2jt] .card__arrow{color:var(--c-text-faint);transition:transform var(--duration) var(--ease-out), color var(--duration-fast) ease;flex:none;align-self:center}.card__title[data-astro-cid-4yu5y2jt] a[data-astro-cid-4yu5y2jt]:hover,.card__title[data-astro-cid-4yu5y2jt] a[data-astro-cid-4yu5y2jt]:focus-visible{color:var(--c-green)}.card[data-astro-cid-4yu5y2jt]:hover .card__title[data-astro-cid-4yu5y2jt] .card__arrow,.card__title[data-astro-cid-4yu5y2jt] a[data-astro-cid-4yu5y2jt]:focus-visible .card__arrow{color:var(--c-green);transform:translate(2px,-2px)}.card__description[data-astro-cid-4yu5y2jt]{color:var(--c-text-soft);font-size:.9375rem}.card__description[data-astro-cid-4yu5y2jt][data-empty]{color:var(--c-text-faint);font-style:italic}.card__highlights[data-astro-cid-4yu5y2jt]{color:var(--c-text-soft);gap:.625rem;font-size:.9375rem;display:grid}.card__highlights[data-astro-cid-4yu5y2jt] li[data-astro-cid-4yu5y2jt]{padding-left:1.5rem;position:relative}.card__highlights[data-astro-cid-4yu5y2jt] li[data-astro-cid-4yu5y2jt]:before{content:"";border:1px solid var(--c-green);border-radius:50%;width:6px;height:6px;position:absolute;top:.6em;left:.125rem}.card__highlights[data-astro-cid-4yu5y2jt] li[data-astro-cid-4yu5y2jt]:not(:last-child):after{content:"";background:var(--c-line-strong);width:1px;position:absolute;top:calc(.6em + 9px);bottom:calc(-.625rem - .6em + 3px);left:calc(.125rem + 3px)}.card__tags[data-astro-cid-4yu5y2jt]{flex-wrap:wrap;gap:.375rem;display:flex}.card__tags[data-astro-cid-4yu5y2jt] li[data-astro-cid-4yu5y2jt]{border:1px solid var(--c-line);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--c-text-soft);background:#a0b4d20a;padding:.1875rem .5625rem;font-size:.75rem}.card__footer[data-astro-cid-4yu5y2jt]{padding-top:var(--space-4);border-top:1px solid var(--c-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-top:auto;display:flex}.card__meta[data-astro-cid-4yu5y2jt]{font-family:var(--font-mono);color:var(--c-text-faint);flex-wrap:wrap;align-items:center;gap:.375rem 1rem;font-size:.75rem;display:flex}.card__meta[data-astro-cid-4yu5y2jt] li[data-astro-cid-4yu5y2jt]{align-items:center;gap:.4375rem;display:inline-flex}.card__meta[data-astro-cid-4yu5y2jt] [data-astro-cid-4yu5y2jt][data-field=language]{color:var(--c-text-soft)}.card__dot[data-astro-cid-4yu5y2jt]{flex:none}.card__links[data-astro-cid-4yu5y2jt]{z-index:1;flex-wrap:wrap;gap:.25rem 1rem;font-size:.8125rem;font-weight:550;display:flex;position:relative}.card__links[data-astro-cid-4yu5y2jt] a[data-astro-cid-4yu5y2jt]{min-height:1.75rem;color:var(--c-text);text-decoration:underline;text-decoration-color:var(--c-line-strong);text-underline-offset:.3em;transition:color var(--duration-fast) ease, text-decoration-color var(--duration-fast) ease;align-items:center;display:inline-flex}.card__links[data-astro-cid-4yu5y2jt] a[data-astro-cid-4yu5y2jt]:hover,.card__links[data-astro-cid-4yu5y2jt] a[data-astro-cid-4yu5y2jt]:focus-visible{color:var(--c-green);text-decoration-color:var(--c-green)}.card__actions[data-astro-cid-4yu5y2jt]{flex-wrap:wrap;gap:.625rem;display:flex}.card__related[data-astro-cid-4yu5y2jt]{font-family:var(--font-mono);color:var(--c-text-soft);flex-wrap:wrap;align-items:baseline;gap:.25rem .875rem;font-size:.8125rem;display:flex}.card--featured[data-astro-cid-4yu5y2jt] .card__title[data-astro-cid-4yu5y2jt]{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem)}.card--featured[data-astro-cid-4yu5y2jt] .card__description[data-astro-cid-4yu5y2jt]{font-size:var(--text-base);max-width:38rem}.card--featured[data-astro-cid-4yu5y2jt] .card__footer[data-astro-cid-4yu5y2jt]{align-items:flex-start;gap:var(--space-4);flex-direction:column}.card__visual[data-astro-cid-4yu5y2jt]{border-bottom:1px solid var(--c-line)}@media (hover:hover){.card[data-astro-cid-4yu5y2jt]:not(.card--featured):hover{background:var(--c-surface-raised);transform:translateY(-4px);box-shadow:0 18px 40px -24px #000000e6}}@media (width>=40rem){.card[data-astro-cid-4yu5y2jt]:not(.card--featured){grid-column:span 6}}@media (width>=62rem){.card--featured[data-astro-cid-4yu5y2jt]{grid-template-columns:minmax(0,5fr) minmax(0,6fr);display:grid}.card__visual[data-astro-cid-4yu5y2jt]{border-right:1px solid var(--c-line);border-bottom:0}.card--featured[data-astro-cid-4yu5y2jt] .card__body[data-astro-cid-4yu5y2jt]{padding:clamp(1.75rem,1rem + 2vw,2.75rem)}.card--featured[data-astro-cid-4yu5y2jt]:nth-child(2n of .card--featured:not([hidden])) .card__visual[data-astro-cid-4yu5y2jt]{border-right:0;border-left:1px solid var(--c-line);order:2}.card--featured[data-astro-cid-4yu5y2jt]:nth-child(2n of .card--featured:not([hidden])){grid-template-columns:minmax(0,6fr) minmax(0,5fr)}}@media (width>=72rem){.card[data-astro-cid-4yu5y2jt]:not(.card--featured){grid-column:span 4}}.projects__toolbar[data-astro-cid-resrq4zz]{gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:column;display:flex}.filters[data-astro-cid-resrq4zz]{flex-wrap:wrap;gap:.5rem;display:flex}.filter[data-astro-cid-resrq4zz]{border:1px solid var(--c-line);min-height:2.5rem;font-size:var(--text-sm);color:var(--c-text-soft);transition:color var(--duration-fast) ease, border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;border-radius:999px;align-items:center;gap:.5rem;padding:.375rem .875rem;font-weight:500;display:inline-flex}.filter[data-astro-cid-resrq4zz]:hover,.filter[data-astro-cid-resrq4zz]:focus-visible{border-color:var(--c-line-strong);color:var(--c-text)}.filter[data-astro-cid-resrq4zz][aria-pressed=true]{border-color:var(--c-green-line);background:var(--c-green-soft);color:var(--c-green)}.filter__count[data-astro-cid-resrq4zz]{font-family:var(--font-mono);color:var(--c-text-faint);font-size:.6875rem}.filter[data-astro-cid-resrq4zz][aria-pressed=true] .filter__count[data-astro-cid-resrq4zz]{color:inherit;opacity:.75}.projects__status[data-astro-cid-resrq4zz]{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--c-text-faint);flex-wrap:wrap;align-items:center;gap:.375rem 1.25rem;display:flex}.projects__count[data-astro-cid-resrq4zz]{color:var(--c-text-soft)}.sync[data-astro-cid-resrq4zz]{align-items:center;gap:.5rem;display:inline-flex}.sync__dot[data-astro-cid-resrq4zz]{border:1px solid var(--c-text-faint);width:7px;height:7px;transition:background-color var(--duration) ease, border-color var(--duration) ease, box-shadow var(--duration) ease;border-radius:50%}.sync[data-astro-cid-resrq4zz][data-sync=live] .sync__dot[data-astro-cid-resrq4zz]{border-color:var(--c-green);background:var(--c-green);box-shadow:0 0 8px var(--c-green)}.projects__grid[data-astro-cid-resrq4zz]{gap:var(--space-5);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.projects__empty[data-astro-cid-resrq4zz]{padding:var(--space-7) var(--space-5);border:1px dashed var(--c-line-strong);border-radius:var(--radius-lg);text-align:center;color:var(--c-text-soft)}.projects__more[data-astro-cid-resrq4zz]{margin-top:var(--space-6);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--c-text-soft)}.projects__more[data-astro-cid-resrq4zz] a[data-astro-cid-resrq4zz]{align-items:center;gap:.5rem;min-height:2.75rem;display:inline-flex}@media (width>=56rem){.projects__toolbar[data-astro-cid-resrq4zz]{flex-direction:row;justify-content:space-between;align-items:center}}.marker[data-astro-cid-hsdsz7qj]{border:1.5px solid var(--marker-color);border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.marker[data-astro-cid-hsdsz7qj][data-level=solid]{--marker-color:var(--c-green);background:var(--c-green);box-shadow:0 0 8px #3dffa280}.marker[data-astro-cid-hsdsz7qj][data-level=practiced]{--marker-color:var(--c-blue);background:linear-gradient(90deg, var(--c-blue) 50%, transparent 50%)}.marker[data-astro-cid-hsdsz7qj][data-level=learning]{--marker-color:var(--c-text-faint);border-style:dashed}.legend[data-astro-cid-hsdsz7qj]{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--c-line);gap:.75rem 2rem;display:grid}.legend[data-astro-cid-hsdsz7qj] li[data-astro-cid-hsdsz7qj]{grid-template-columns:auto 1fr;align-content:start;align-items:center;column-gap:.75rem;display:grid}.legend__label[data-astro-cid-hsdsz7qj]{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--c-text);font-weight:500}.legend__hint[data-astro-cid-hsdsz7qj]{font-size:var(--text-sm);color:var(--c-text-faint);grid-column:2}.skills[data-astro-cid-hsdsz7qj]{gap:var(--space-5);display:grid}.domain[data-astro-cid-hsdsz7qj]{--domain-tone:var(--c-text);gap:var(--space-5);border:1px solid var(--c-line);border-radius:var(--radius-lg);background:var(--c-surface);flex-direction:column;padding:clamp(1.25rem,1rem + 1vw,1.75rem);display:flex;position:relative;overflow:hidden}.domain[data-astro-cid-hsdsz7qj][data-domain=network]{--domain-tone:var(--c-green)}.domain[data-astro-cid-hsdsz7qj][data-domain=systems]{--domain-tone:var(--c-blue)}.domain[data-astro-cid-hsdsz7qj]:before{content:"";background:linear-gradient(90deg, var(--domain-tone), transparent 70%);opacity:.7;height:1px;position:absolute;inset:0 0 auto}.domain__header[data-astro-cid-hsdsz7qj]{gap:.5rem;display:grid}.domain__icon[data-astro-cid-hsdsz7qj]{border:1px solid var(--c-line-strong);border-radius:var(--radius-md);width:2.75rem;height:2.75rem;color:var(--domain-tone);background:#a0b4d20a;place-items:center;margin-bottom:.5rem;display:grid}.domain__title[data-astro-cid-hsdsz7qj]{font-size:var(--text-xl)}.domain__description[data-astro-cid-hsdsz7qj]{font-size:var(--text-sm);color:var(--c-text-soft)}.group[data-astro-cid-hsdsz7qj]{padding-top:var(--space-4);border-top:1px solid var(--c-line);gap:.75rem;display:grid}.group__title[data-astro-cid-hsdsz7qj]{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-faint);align-items:center;gap:.625rem;font-weight:500;display:flex}.group__list[data-astro-cid-hsdsz7qj]{gap:.875rem;display:grid}.skill__label[data-astro-cid-hsdsz7qj]{font-weight:550;line-height:1.35}.skill__note[data-astro-cid-hsdsz7qj]{font-size:var(--text-sm);color:var(--c-text-soft);margin-top:.125rem;line-height:1.45}.skill__evidence[data-astro-cid-hsdsz7qj]{flex-wrap:wrap;gap:.375rem;margin-top:.5rem;display:flex}.skill__evidence[data-astro-cid-hsdsz7qj] a[data-astro-cid-hsdsz7qj],.skill__evidence[data-astro-cid-hsdsz7qj]>span[data-astro-cid-hsdsz7qj]:not(.sr-only){border:1px solid var(--c-line);font-family:var(--font-mono);color:var(--c-text-faint);transition:color var(--duration-fast) ease, border-color var(--duration-fast) ease;border-radius:999px;padding:.125rem .5rem;font-size:.6875rem}.skill__evidence[data-astro-cid-hsdsz7qj] a[data-astro-cid-hsdsz7qj]:before{content:"↳ "}.skill__evidence[data-astro-cid-hsdsz7qj] a[data-astro-cid-hsdsz7qj]:hover,.skill__evidence[data-astro-cid-hsdsz7qj] a[data-astro-cid-hsdsz7qj]:focus-visible{color:var(--c-green);border-color:var(--c-green-line)}@media (width>=40rem){.legend[data-astro-cid-hsdsz7qj]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=40rem) and (width<=61.999rem){.domain[data-astro-cid-hsdsz7qj]{align-items:start;column-gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.domain__header[data-astro-cid-hsdsz7qj]{grid-column:1/-1}}@media (width>=62rem){.skills[data-astro-cid-hsdsz7qj]{grid-template-columns:repeat(3,minmax(0,1fr))}}
