/*! ioTACTICAL design system — (c) 2026 ioTACTICAL LLC. Proprietary. */
:root{--iot-red:#be1e2d;--iot-ink:#414042;--iot-white:#fff;--iot-black:#000;--iot-red-50:#fbeaec;--iot-red-100:#f6ccd0;--iot-red-200:#eea3aa;--iot-red-300:#e37883;--iot-red-400:#d44f5c;--iot-red-500:#be1e2d;--iot-red-600:#a51726;--iot-red-700:#86121f;--iot-red-800:#660d17;--iot-red-900:#45080f;--iot-neutral-0:#fff;--iot-neutral-50:#f7f7f8;--iot-neutral-100:#ececed;--iot-neutral-200:#d8d8da;--iot-neutral-300:#b9b9bc;--iot-neutral-400:#918f93;--iot-neutral-500:#6d6b6f;--iot-neutral-600:#514f53;--iot-neutral-700:#414042;--iot-neutral-800:#2b2a2c;--iot-neutral-900:#1a191b;--iot-neutral-950:#0e0d0f;--iot-chart-black:#000;--iot-chart-orange:#e69f00;--iot-chart-skyblue:#56b4e9;--iot-chart-green:#009e73;--iot-chart-yellow:#f0e442;--iot-chart-blue:#0072b2;--iot-chart-vermillion:#d55e00;--iot-chart-purple:#cc79a7;--color-bg:var(--iot-neutral-0);--color-surface:var(--iot-neutral-50);--color-surface-raised:var(--iot-neutral-0);--color-border:var(--iot-neutral-200);--color-border-strong:var(--iot-neutral-300);--color-border-interactive:var(--iot-neutral-500);--color-text:var(--iot-neutral-800);--color-text-muted:var(--iot-neutral-500);--color-text-inverse:var(--iot-neutral-0);--color-heading:var(--iot-neutral-900);--color-primary:var(--iot-red-500);--color-primary-hover:var(--iot-red-600);--color-primary-active:var(--iot-red-700);--color-on-primary:var(--iot-white);--color-link:var(--iot-red-600);--color-link-hover:var(--iot-red-700);--color-focus-ring:var(--iot-red-500);--color-selection-bg:var(--iot-red-100);--font-sans:"Carlito", "Calibri", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-4xl:3rem;--text-5xl:3.75rem;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.6;--weight-regular:400;--weight-medium:500;--weight-bold:700;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.04em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--radius-sm:3px;--radius-md:6px;--radius-lg:12px;--radius-pill:999px;--border-width:1px;--shadow-sm:0 1px 2px #14131514;--shadow-md:0 4px 12px #1413151a;--shadow-lg:0 12px 32px #14131524;--container-max:72rem;--container-prose:42rem;--container-pad:var(--space-5);--motion-fast:.12s;--motion-base:.2s;--motion-slow:.32s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--focus-ring-width:2px;--focus-ring-offset:2px}[data-theme=dark]{--color-bg:var(--iot-neutral-950);--color-surface:var(--iot-neutral-900);--color-surface-raised:var(--iot-neutral-800);--color-border:var(--iot-neutral-800);--color-border-strong:var(--iot-neutral-700);--color-border-interactive:var(--iot-neutral-400);--color-text:var(--iot-neutral-100);--color-text-muted:var(--iot-neutral-400);--color-heading:var(--iot-neutral-0);--color-primary:var(--iot-red-400);--color-primary-hover:var(--iot-red-300);--color-primary-active:var(--iot-red-200);--color-on-primary:var(--iot-neutral-950);--color-link:var(--iot-red-300);--color-link-hover:var(--iot-red-200);--color-focus-ring:var(--iot-red-400);--color-selection-bg:var(--iot-red-800);--shadow-sm:0 1px 2px #00000080;--shadow-md:0 4px 12px #0000008c;--shadow-lg:0 12px 32px #0009}[data-theme=light]{--color-bg:var(--iot-neutral-0);--color-surface:var(--iot-neutral-50);--color-surface-raised:var(--iot-neutral-0);--color-border:var(--iot-neutral-200);--color-border-strong:var(--iot-neutral-300);--color-border-interactive:var(--iot-neutral-500);--color-text:var(--iot-neutral-800);--color-text-muted:var(--iot-neutral-500);--color-heading:var(--iot-neutral-900);--color-primary:var(--iot-red-500);--color-primary-hover:var(--iot-red-600);--color-primary-active:var(--iot-red-700);--color-on-primary:var(--iot-white);--color-link:var(--iot-red-600);--color-link-hover:var(--iot-red-700);--color-focus-ring:var(--iot-red-500);--color-selection-bg:var(--iot-red-100)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:var(--iot-neutral-950);--color-surface:var(--iot-neutral-900);--color-surface-raised:var(--iot-neutral-800);--color-border:var(--iot-neutral-800);--color-border-strong:var(--iot-neutral-700);--color-text:var(--iot-neutral-100);--color-text-muted:var(--iot-neutral-400);--color-heading:var(--iot-neutral-0);--color-primary:var(--iot-red-400);--color-primary-hover:var(--iot-red-300);--color-primary-active:var(--iot-red-200);--color-on-primary:var(--iot-neutral-950);--color-link:var(--iot-red-300);--color-link-hover:var(--iot-red-200);--color-focus-ring:var(--iot-red-400);--color-selection-bg:var(--iot-red-800)}}@font-face{font-family:Carlito;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/carlito-regular.Btpb6f3H.woff2)format("woff2")}@font-face{font-family:Carlito;font-style:italic;font-weight:400;font-display:swap;src:url(/_astro/carlito-italic.DVvbSwOu.woff2)format("woff2")}@font-face{font-family:Carlito;font-style:normal;font-weight:700;font-display:swap;src:url(/_astro/carlito-bold.ZTpBFexi.woff2)format("woff2")}@font-face{font-family:Carlito;font-style:italic;font-weight:700;font-display:swap;src:url(/_astro/carlito-bolditalic.BbUwgr2S.woff2)format("woff2")}*,:before,:after{box-sizing:border-box}html{text-size-adjust:100%;tab-size:4}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);font-weight:var(--weight-regular);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}[data-theme]{background-color:var(--color-bg);color:var(--color-text)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-4);color:var(--color-heading);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base);letter-spacing:var(--tracking-wide);text-transform:uppercase}p{margin:0 0 var(--space-4)}p,li{text-wrap:pretty}a{color:var(--color-link);text-underline-offset:.15em;text-decoration:underline from-font}a:hover{color:var(--color-link-hover)}strong,b{font-weight:var(--weight-bold)}small{font-size:var(--text-sm)}ul,ol{margin:0 0 var(--space-4);padding-left:var(--space-5)}li{margin-bottom:var(--space-2)}hr{border:0;border-top:var(--border-width) solid var(--color-border);margin:var(--space-6) 0}img,svg,video,canvas{max-width:100%;height:auto;display:block}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}code{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:.1em .35em}pre{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);overflow-x:auto}pre code{background:0 0;border:0;padding:0}blockquote{margin:0 0 var(--space-4);padding-left:var(--space-4);border-left:3px solid var(--color-primary);color:var(--color-text-muted)}::selection{background:var(--color-selection-bg)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--focus-ring-width) solid var(--color-focus-ring);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-sm)}.iot-skip-link{left:var(--space-3);z-index:100;background:var(--color-primary);color:var(--color-on-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);transition:top var(--motion-fast) var(--ease-standard);text-decoration:none;position:absolute;top:-3rem}.iot-skip-link:focus{top:var(--space-3);color:var(--color-on-primary)}.iot-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.iot-container{width:100%;max-width:var(--container-max);padding-inline:var(--container-pad);margin-inline:auto}.iot-container--prose{max-width:var(--container-prose)}.iot-section{padding-block:var(--space-8)}.iot-section--tight{padding-block:var(--space-6)}.iot-stack>*+*{margin-top:var(--space-4)}.iot-stack--lg>*+*{margin-top:var(--space-6)}.iot-cluster{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.iot-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));display:grid}.iot-eyebrow{font-size:var(--text-sm);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-2);display:inline-block}.iot-lede{font-size:var(--text-xl);line-height:var(--leading-snug);color:var(--color-text-muted)}.iot-btn{justify-content:center;align-items:center;gap:var(--space-2);font:inherit;font-weight:var(--weight-bold);border-radius:var(--radius-md);border:var(--border-width) solid transparent;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);padding:.7em 1.25em;line-height:1;text-decoration:none;display:inline-flex}.iot-btn--primary{background:var(--color-primary);color:var(--color-on-primary)}.iot-btn--primary:hover{background:var(--color-primary-hover);color:var(--color-on-primary)}.iot-btn--primary:active{background:var(--color-primary-active)}.iot-btn--secondary{color:var(--color-text);border-color:var(--color-border-interactive);background:0 0}.iot-btn--secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}.iot-btn--ghost{color:var(--color-link);padding-inline:var(--space-2);background:0 0}.iot-btn--ghost:hover{color:var(--color-link-hover)}.iot-badge{align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:var(--radius-pill);background:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);color:var(--color-text-muted);padding:.35em .7em;display:inline-flex}.iot-badge--primary{background:var(--iot-red-50);border-color:var(--iot-red-200);color:var(--iot-red-700)}.iot-card{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.iot-card--interactive{transition:box-shadow var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard)}.iot-card--interactive:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.iot-card__title{font-size:var(--text-lg);margin-bottom:var(--space-2)}.iot-prose{max-width:var(--container-prose)}.iot-prose>*+*{margin-top:var(--space-4)}.iot-prose h2{margin-top:var(--space-7)}.iot-prose h3{margin-top:var(--space-6)}.iot-rule-accent{width:var(--space-7);background:var(--color-primary);border-radius:var(--radius-pill);height:4px;margin:var(--space-4) 0;border:0}.iot-header,.iot-footer{border-block:var(--border-width) solid var(--color-border)}.iot-header__inner,.iot-footer__inner{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-4);flex-wrap:wrap;display:flex}.iot-nav{gap:var(--space-5);flex-wrap:wrap;align-items:center;display:flex}.iot-nav a{color:var(--color-text);font-weight:var(--weight-medium);text-decoration:none}.iot-nav a:hover,.iot-nav a[aria-current=page]{color:var(--color-primary)}.iot-logo{align-items:center;display:inline-flex}.iot-logo svg,.iot-logo img{width:auto;height:2rem}.iot-nav a{align-items:center;min-height:44px;padding-inline:.15rem;display:inline-flex}.iot-nav a:hover{color:var(--color-primary)}.iot-nav a[aria-current=page]{color:var(--color-heading);text-underline-offset:.28em;font-weight:700;text-decoration:underline 2px}@media (width<=767px){.iot-header__inner{flex-direction:column;align-items:flex-start}.iot-nav{gap:var(--space-3);width:100%}}
