html{color-scheme:dark;--mat-sys-background: #0f1418;--mat-sys-error: #ffb4ab;--mat-sys-error-container: #93000a;--mat-sys-inverse-on-surface: #2c3135;--mat-sys-inverse-primary: #00658d;--mat-sys-inverse-surface: #dee3e9;--mat-sys-on-background: #dee3e9;--mat-sys-on-error: #690005;--mat-sys-on-error-container: #ffdad6;--mat-sys-on-primary: #00344b;--mat-sys-on-primary-container: #c6e7ff;--mat-sys-on-primary-fixed: #001e2e;--mat-sys-on-primary-fixed-variant: #004c6c;--mat-sys-on-secondary: #00344b;--mat-sys-on-secondary-container: #c6e7ff;--mat-sys-on-secondary-fixed: #001e2e;--mat-sys-on-secondary-fixed-variant: #204b63;--mat-sys-on-surface: #dee3e9;--mat-sys-on-surface-variant: #d9e4ee;--mat-sys-on-tertiary: #00344b;--mat-sys-on-tertiary-container: #c6e7ff;--mat-sys-on-tertiary-fixed: #001e2e;--mat-sys-on-tertiary-fixed-variant: #004c6c;--mat-sys-outline: #87929b;--mat-sys-outline-variant: #3e4850;--mat-sys-primary: #83cfff;--mat-sys-primary-container: #004c6c;--mat-sys-primary-fixed: #c6e7ff;--mat-sys-primary-fixed-dim: #83cfff;--mat-sys-scrim: #000000;--mat-sys-secondary: #a3cce9;--mat-sys-secondary-container: #204b63;--mat-sys-secondary-fixed: #c6e7ff;--mat-sys-secondary-fixed-dim: #a3cce9;--mat-sys-shadow: #000000;--mat-sys-surface: #0f1418;--mat-sys-surface-bright: #343a3e;--mat-sys-surface-container: #1b2024;--mat-sys-surface-container-high: #252b2f;--mat-sys-surface-container-highest: #30353a;--mat-sys-surface-container-low: #171c20;--mat-sys-surface-container-lowest: #090f13;--mat-sys-surface-dim: #0f1418;--mat-sys-surface-tint: #83cfff;--mat-sys-surface-variant: #3e4850;--mat-sys-tertiary: #83cfff;--mat-sys-tertiary-container: #004c6c;--mat-sys-tertiary-fixed: #c6e7ff;--mat-sys-tertiary-fixed-dim: #83cfff;--mat-sys-neutral-variant20: #273239;--mat-sys-neutral10: #171c20;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-body-large-font: IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-body-medium-font: IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-body-small-font: IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-display-large-font: Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-display-medium-font: Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-display-small-font: Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-headline-large-font: Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-headline-medium-font: Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-headline-small-font: Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-label-large-font: IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 600;--mat-sys-label-medium: 500 .75rem / 1rem IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-label-medium-font: IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 600;--mat-sys-label-small: 500 .688rem / 1rem IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-label-small-font: IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-title-large-font: Bricolage Grotesque, IBM Plex Sans, sans-serif;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-title-medium-font: IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-title-small-font: IBM Plex Sans, Segoe UI, sans-serif;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}:root{--ink-950: #04090f;--ink-900: #060e18;--ink-800: #0a1826;--ink-700: #0e2438;--brand: #00adef;--brand-soft: #83cfff;--brand-deep: #007fb1;--text: #e8f1f8;--text-dim: #9fb5c6;--text-faint: #6f8699;--glass-bg: linear-gradient(157deg, rgba(255, 255, 255, .078), rgba(255, 255, 255, .026));--glass-line: rgba(255, 255, 255, .11);--glass-line-strong: rgba(255, 255, 255, .2);--glass-blur: blur(18px) saturate(135%);--glass-shadow: 0 18px 48px -24px rgba(0, 0, 0, .9);--r-panel: 10px;--r-chip: 4px;--shell: 1180px;--gutter: clamp(1.25rem, 4vw, 3.5rem);--ease: cubic-bezier(.22, .68, .36, 1);--dur: .22s;--z-bg: 0;--z-content: 10;--z-nav: 40;--z-overlay: 60;--mat-sys-primary: var(--brand)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}html{overscroll-behavior-y:none}body{background:var(--ink-900);color:var(--text);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::selection{background:#00adef4d;color:#fff}h1,h2,h3,h4{font-family:Bricolage Grotesque,IBM Plex Sans,sans-serif;font-weight:600;line-height:1.05;letter-spacing:-.022em;margin:0;text-wrap:balance}h1{font-size:clamp(2.7rem,7vw,5.1rem)}h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}h3{font-size:clamp(1.25rem,2vw,1.6rem)}p{margin:0 0 1.1em;max-width:68ch}a{color:var(--brand-soft);text-decoration-color:#83cfff59;text-underline-offset:3px;transition:color var(--dur) var(--ease)}a:hover{color:var(--brand)}.meta{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}.text-gradient-cyan{background:linear-gradient(96deg,var(--brand) 0%,var(--brand-soft) 68%);-webkit-background-clip:text;background-clip:text;color:transparent}.accent{color:var(--brand)}main{display:flex;flex-direction:column;min-height:100svh}main>*:not(router-outlet){display:flex;flex-direction:column;flex:1}.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gutter)}.page{position:relative;z-index:var(--z-content);padding-top:clamp(6.5rem,12vw,9rem);padding-bottom:clamp(4rem,8vw,7rem);flex:1}.section-head{margin-bottom:clamp(1.75rem,4vw,3rem)}.section-head .section-rule{display:block;height:1px;background:linear-gradient(90deg,var(--glass-line-strong),transparent 72%);margin-top:.9rem}.section-head h2{min-width:0;overflow-wrap:break-word;hyphens:auto}.glass-panel{position:relative;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--r-panel);box-shadow:var(--glass-shadow);overflow:hidden;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.glass-panel:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42) 22%,rgba(255,255,255,.42) 72%,transparent);pointer-events:none}.glass-panel--interactive{cursor:pointer}.glass-panel--interactive:hover,.glass-panel--interactive:focus-visible{transform:translateY(-4px);border-color:#00adef6b;box-shadow:var(--glass-shadow),0 0 0 1px #00adef1f,0 22px 50px -30px #00adefbf}.glass-chip{display:inline-flex;align-items:center;gap:.55rem;padding:.45rem .85rem;background:#ffffff0b;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-line);border-radius:var(--r-chip);font-size:.86rem;color:var(--text-dim);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}.glass-chip:hover{border-color:#00adef66;color:var(--text);background:#00adef14}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:2px}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.rise{animation:rise .62s var(--ease) backwards}.rise-1{animation-delay:70ms}.rise-2{animation-delay:.14s}.rise-3{animation-delay:.21s}.rise-4{animation-delay:.28s}.rise-5{animation-delay:.35s}.rise-6{animation-delay:.42s}.rise-7{animation-delay:.49s}.rise-8{animation-delay:.56s}html{--mat-button-filled-container-shape: 4px;--mat-button-outlined-container-shape: 4px;--mat-button-text-container-shape: 4px;--mat-button-protected-container-shape: 4px;--mat-button-tonal-container-shape: 4px;--mat-button-filled-container-color: #00adef;--mat-button-filled-label-text-color: #04212f;--mat-button-filled-disabled-container-color: rgba(255, 255, 255, .08);--mat-button-filled-disabled-label-text-color: rgba(255, 255, 255, .36)}.mat-mdc-raised-button,.mat-mdc-unelevated-button,.mat-mdc-outlined-button,.mat-mdc-button{font-family:IBM Plex Sans,sans-serif;font-weight:500;letter-spacing:.01em}.mat-mdc-form-field{width:100%;--mdc-outlined-text-field-outline-color: rgba(255, 255, 255, .16);--mdc-outlined-text-field-hover-outline-color: rgba(255, 255, 255, .3);--mdc-outlined-text-field-focus-outline-color: var(--brand);--mdc-outlined-text-field-label-text-color: var(--text-faint);--mdc-outlined-text-field-focus-label-text-color: var(--brand);--mdc-outlined-text-field-input-text-color: var(--text);--mdc-outlined-text-field-caret-color: var(--brand);--mdc-outlined-text-field-container-shape: var(--r-chip)}.mat-mdc-snack-bar-container{--mdc-snackbar-container-color: #0e2438;--mdc-snackbar-supporting-text-color: var(--text);--mat-snack-bar-button-color: var(--brand)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 200,"GRAD" 0,"opsz" 24}.mat-icon.material-symbols-outlined{overflow:visible}.mat-mdc-menu-panel{--mat-menu-container-color: rgba(10, 24, 38, .9);--mat-menu-container-shape: var(--r-panel);--mat-menu-item-label-text-color: var(--text-dim);--mat-menu-item-label-text-font: "IBM Plex Sans", sans-serif;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border:1px solid var(--glass-line);min-width:220px!important}.mat-mdc-menu-panel .mat-mdc-menu-item:hover{--mat-menu-item-label-text-color: var(--text);background:#00adef1a}.mat-mdc-menu-panel .mat-mdc-menu-item.is-active{--mat-menu-item-label-text-color: var(--brand);box-shadow:inset 2px 0 0 var(--brand)}
