@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.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:ibm plex mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.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}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.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:ibm plex mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.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}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin-ext.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:ibm plex mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin.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{--brand-600:#3b6fe0;--brand-700:#2f58b8;--brand-500:#5b86e5;--brand-50:#eef3fe;--brand-100:#dce6fc;--ink-950:#151515;--ink-900:#1f1f1d;--ink-800:#2b2b29;--ink-700:#3e3d3a;--ink-500:#6d6c67;--ink-400:#9a9893;--ink-300:#c8c7c1;--ink-200:#dcdcd7;--ink-100:#ededea;--ink-50:#f5f5f3;--paper:#fafaf8;--white:#ffffff;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--radius-sm:0;--radius-md:0;--radius-lg:0;--radius-xl:0;--radius-artifact:10px;--radius-pill:999px;--shadow-xs:0 1px 2px 0 rgba(21, 21, 21, 0.04);--shadow-sm:0 1px 3px 0 rgba(21, 21, 21, 0.06),
    0 1px 2px -1px rgba(21, 21, 21, 0.04);--shadow-md:0 4px 12px -2px rgba(21, 21, 21, 0.08),
    0 2px 4px -2px rgba(21, 21, 21, 0.04);--shadow-lg:0 12px 32px -8px rgba(21, 21, 21, 0.14),
    0 4px 8px -4px rgba(21, 21, 21, 0.06);--shadow-artifact:0 30px 80px -24px rgba(21, 21, 21, 0.5),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06);--shadow-focus:0 0 0 3px rgba(91, 134, 229, 0.3);--mock-bg:#161616;--mock-bar:#121212;--mock-panel:#1d1d1c;--mock-line:#2c2c2a;--mock-fg:#e9e7e2;--mock-dim:#8a8883;--ease-out:cubic-bezier(0.4, 0, 0.2, 1);--ease-in-out:cubic-bezier(0.4, 0, 0.6, 1);--ease-rise:cubic-bezier(0.2, 0.7, 0.2, 1);--duration-fast:120ms;--duration-base:180ms;--duration-slow:240ms;--font-sans:"Uncut Sans", "Inter", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, sans-serif;--font-display:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas,
    monospace;--font-mono:var(--font-display);--text-display:clamp(2.25rem, 4.3vw, 3.5rem);--text-h2:clamp(1.625rem, 2.6vw, 2.125rem);--text-h3:1.3125rem;--text-ui:0.8125rem;--text-eyebrow:0.75rem;--track-display:-0.035em;--track-h2:-0.03em;--track-h3:-0.02em;--track-eyebrow:0.08em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--space-10:64px;--space-12:96px;--space-16:128px;--nav-h:73px;--frame-max:1296px;--cell-pad-y:var(--space-12);--cell-pad-x:var(--space-8)}@media(max-width:1023.98px){:root{--cell-pad-y:var(--space-10)}}@media(max-width:639.98px){:root{--cell-pad-x:var(--space-5)}}.bp,.bp-nav{--ink-950:#0b0f19;--ink-900:#111827;--ink-800:#1f2937;--ink-700:#374151;--ink-500:#6b7280;--ink-400:#9ca3af;--ink-300:#d1d5db;--ink-200:#e5e7eb;--ink-100:#f1f3f7;--ink-50:#f7f8fa;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-focus:0 0 0 3px rgba(91, 134, 229, 0.25);--font-mono:"JetBrains Mono", "SF Mono", ui-monospace, Menlo, Consolas,
    monospace}.ribbon-element img{width:2.5em;filter:grayscale(1);opacity:.7;transition:filter var(--duration-fast)var(--ease-out),opacity var(--duration-fast)var(--ease-out)}.ribbon-element:hover img,.ribbon-element:focus-visible img{filter:none;opacity:1}.marquee{width:100%;overflow:hidden;position:relative;padding-inline:1rem}.marquee-content{display:flex;align-items:center;gap:4rem;animation:scrolling 40s linear infinite}.marquee-content:hover{animation-play-state:paused}@keyframes scrolling{0%{transform:translateX(0)}100%{transform:translateX(-280em)}}.badge-marquee{width:100%;overflow:hidden;-webkit-mask-image:linear-gradient( to right,transparent,black 10%,black 90%,transparent );mask-image:linear-gradient( to right,transparent,black 10%,black 90%,transparent )}.badge-marquee-track{display:flex;width:max-content;animation:badge-scrolling 50s linear infinite}.badge-marquee:hover .badge-marquee-track{animation-play-state:paused}.badge-marquee-group{display:flex;align-items:center;gap:2.5rem;padding-right:2.5rem}.badge-marquee img{display:block;height:42px;width:auto;filter:grayscale(1);opacity:.55;transition:filter var(--duration-fast)var(--ease-out),opacity var(--duration-fast)var(--ease-out)}.badge-marquee a:hover img,.badge-marquee a:focus-visible img{filter:none;opacity:1}@keyframes badge-scrolling{to{transform:translateX(-50%)}}.marquee{-webkit-mask-image:linear-gradient( to right,transparent,black 8%,black 92%,transparent );mask-image:linear-gradient( to right,transparent,black 8%,black 92%,transparent )}html{background:var(--ink-50)}body{font-family:var(--font-sans);color:var(--ink-700);background-color:initial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--brand-100);color:var(--ink-950)}:where(body:not(.blog)) :where(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6){font-family:var(--font-display);font-weight:600;color:var(--ink-950)}:where(body:not(.blog)) :where(h1,.h1){letter-spacing:var(--track-display);line-height:1.1}:where(body:not(.blog)) :where(h2,.h2,h3,.h3){letter-spacing:var(--track-h2);line-height:1.2}:where(body:not(.blog)) :where(h4,.h4,h5,.h5,h6,.h6){letter-spacing:var(--track-h3);line-height:1.3}:where(body:not(.blog)) :where(.btn,.nav-link,.dropdown-item,.badge,.form-label,th,.accordion-button,.eyebrow,.modal-title){font-family:var(--font-display)}.biggestheader{font-family:var(--font-display);font-size:var(--text-display);font-weight:600;line-height:1.1;letter-spacing:var(--track-display);color:var(--ink-950)}.eyebrow{display:inline-block;font-family:var(--font-display);font-size:var(--text-eyebrow);font-weight:400;line-height:1.6;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-500)}code,kbd,pre,samp,.font-mono{font-family:var(--font-mono);font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}body:not(.blog) :is(.btn,.card,.card-header,.alert,.badge,.dropdown-menu,.modal-content,.accordion-item,.accordion-button,.list-group,.list-group-item,.input-group-text,.page-link,.nav-tabs .nav-link,.toast,.popover,.tooltip-inner){border-radius:0}body:not(.blog) :is(.card,.modal-content){border-color:var(--ink-200)}body:not(.blog) :is(.shadow,.shadow-sm,.shadow-lg){box-shadow:none!important}body:not(.blog) .bg-gradient{background-image:none!important}body:not(.blog) .modal-content{box-shadow:var(--shadow-lg)}body:not(.blog) .modal-header{border-bottom-color:var(--ink-200)}body:not(.blog) .modal-title{font-size:.875rem;font-weight:600;color:var(--ink-950)}.blog-sort-row{gap:12px;margin:24px 0}.blog-sort-label{font-size:14px;font-weight:500;color:var(--ink-500)}.blog-sort{position:relative;display:inline-flex;padding:3px;background:var(--ink-100);border:1px solid var(--ink-200);border-radius:var(--radius-pill)}.blog-sort__thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);background:var(--white);border-radius:var(--radius-pill);box-shadow:var(--shadow-xs);transition:transform var(--duration-slow)var(--ease-out)}.blog-sort[data-active=updated] .blog-sort__thumb{transform:translateX(100%)}.blog-sort__btn{position:relative;z-index:1;flex:1;border:none;background:0 0;color:var(--ink-500);font-size:13px;font-weight:600;padding:5px 14px;border-radius:var(--radius-pill);white-space:nowrap;text-align:center;text-decoration:none;cursor:pointer;transition:color var(--duration-fast)var(--ease-out)}.blog-sort__btn:hover{text-decoration:none}.blog-sort__btn:hover:not(.is-active){color:var(--ink-700)}.blog-sort__btn.is-active{color:var(--ink-900)}.blog-sort__btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.blog-card{display:flex;gap:20px;align-items:flex-start;padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--ink-200)}.blog-card:last-child{border-bottom:none}.blog-card__media{flex:none;display:block;width:180px;height:120px;overflow:hidden;border:1px solid var(--ink-200);border-radius:var(--radius-lg);background:var(--ink-100)}.blog-card__media img{width:100%;height:100%;display:block;object-fit:cover}.blog-card__placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--ink-300);font-size:32px}.blog-card__body{flex:auto;min-width:0}.blog-card__titlelink{text-decoration:none}.blog-card__title{margin:0 0 6px;font-size:1.25rem;font-weight:700;line-height:1.3;letter-spacing:-.01em;color:var(--ink-900);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.blog-card__titlelink:hover .blog-card__title{color:var(--brand-700)}.blog-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:.8125rem;color:var(--ink-500)}.blog-card__tag{display:inline-block;padding:2px 8px;background:var(--ink-100);color:var(--ink-700);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.blog-card__excerpt{margin:0;color:var(--ink-500);font-size:.9375rem;line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}@media(max-width:575.98px){.blog-card{gap:14px}.blog-card__media{width:116px;height:88px;border-radius:var(--radius-md)}.blog-card__title{font-size:1.0625rem}.blog-card__excerpt{-webkit-line-clamp:3;line-clamp:3}}@media(prefers-reduced-motion:reduce){.blog-sort__thumb{transition:none}}a{color:var(--brand-600);transition:color var(--duration-fast)var(--ease-out)}a:hover{color:var(--brand-700)}.text-brand{color:var(--brand-600)}body:not(.blog) .text-muted,body:not(.blog) .text-secondary{color:var(--ink-500)!important}.link-rule,.pinggy-link{display:inline-flex;align-items:center;gap:.4em;padding:0 0 2px;border:0;border-bottom:1px solid;background:0 0;font-family:var(--font-display);font-size:.875rem;font-weight:500;line-height:1.4;color:var(--ink-950);text-decoration:none;cursor:pointer;transition:color var(--duration-fast)var(--ease-out),border-color var(--duration-fast)var(--ease-out)}.link-rule:hover,.link-rule:focus,.pinggy-link:hover,.pinggy-link:focus{color:var(--brand-700);text-decoration:none}.link-rule:focus-visible,.pinggy-link:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.link-rule>i,.pinggy-link>i{transition:transform var(--duration-fast)var(--ease-out)}.link-rule:hover>i,.pinggy-link:hover>i{transform:translateX(2px)}.alert.alert-info{display:inline-block;width:auto;max-width:fit-content;margin-left:auto;margin-right:auto;background-color:var(--brand-50);border:1px solid var(--brand-100);border-radius:var(--radius-pill);color:var(--ink-700);font-size:.875rem;font-weight:500;padding:8px 16px!important}body:not(.blog) .alert.alert-info{border-radius:0}.alert.alert-info b,.alert.alert-info strong{color:var(--ink-900);font-weight:600}.alert.alert-info a{color:var(--brand-700);text-decoration:none;font-weight:600}.alert.alert-info a:hover{color:var(--brand-700);text-decoration:underline}.tag{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:10px 18px;background:var(--white);border:1px solid var(--ink-200);font-family:var(--font-display);font-size:var(--text-ui);line-height:1.5;color:var(--ink-950);text-decoration:none;transition:border-color var(--duration-fast)var(--ease-out)}.tag:hover{color:var(--ink-950);border-color:var(--ink-950)}.tag:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.tag__new{padding:1px 6px;background:var(--brand-600);color:#fff;font-size:.6875rem;font-weight:500;letter-spacing:var(--track-eyebrow);text-transform:uppercase}.chip{display:inline-block;padding:3px 10px;background:var(--brand-50);border:1px solid var(--brand-100);border-radius:0;color:var(--brand-700);font-family:var(--font-display);font-size:var(--text-eyebrow);font-weight:500;line-height:1.5;white-space:nowrap}.chip--muted{background:var(--ink-100);border-color:var(--ink-200);color:var(--ink-950)}.cli-card{background:var(--white);border:1px solid var(--ink-200)}.install-callout{background-color:var(--brand-50);border:1px solid var(--brand-100);border-left:3px solid var(--brand-600);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin:1.25rem 0}.install-callout>p:first-child{margin:0 0 .5rem;font-family:var(--font-display);font-size:var(--text-eyebrow);font-weight:500;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--brand-700)}.install-callout pre,.install-callout .chroma{margin-bottom:0}@keyframes heroFadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero .tag,.biggestheader,.hero__sub,#lead2,.hero__trial,#bigcodecolumn{animation:heroFadeUp 400ms var(--ease-out)both}.biggestheader{animation-delay:60ms}.hero__sub{animation-delay:120ms}#lead2{animation-delay:180ms}.hero__trial{animation-delay:240ms}#bigcodecolumn{animation-delay:120ms}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.marquee-content,.badge-marquee-track{animation:none!important}}.form-control,.form-select{border:1px solid var(--ink-200);background-color:#fff;color:var(--ink-900);font-size:.9375rem;padding:.625rem .875rem;border-radius:var(--radius-md);transition:border-color var(--duration-fast)var(--ease-out),box-shadow var(--duration-fast)var(--ease-out)}.form-select{padding-right:2.25rem;min-width:5.5rem;background-position:right .75rem center;background-size:14px 10px}.seat-spinner{display:inline-flex;align-items:stretch;width:fit-content;border:1px solid var(--ink-300);border-radius:var(--radius-md);background-color:#fff}.seat-spinner .form-control{padding:.375rem .25rem;max-width:3.5rem;font-weight:600;border:none;border-left:1px solid var(--ink-300);border-right:1px solid var(--ink-300);border-radius:0;background-color:initial}.seat-spinner .btn{padding:.375rem 0;width:2.25rem;flex:none;font-weight:600;font-size:1rem;line-height:1;border:none;border-radius:0;color:var(--ink-800);background-color:initial;display:inline-flex;align-items:center;justify-content:center}.seat-spinner .btn:first-child{border-top-left-radius:calc(var(--radius-md) - 1px);border-bottom-left-radius:calc(var(--radius-md) - 1px)}.seat-spinner .btn:last-child{border-top-right-radius:calc(var(--radius-md) - 1px);border-bottom-right-radius:calc(var(--radius-md) - 1px)}.seat-spinner .btn:hover{background-color:var(--ink-100);color:var(--ink-900)}.seat-spinner .btn:focus-visible{box-shadow:var(--shadow-focus);outline:none;z-index:2;position:relative}#compareSelect{padding-top:.375rem;padding-bottom:.375rem}.form-control::placeholder{color:var(--ink-400)}.form-control:focus,.form-select:focus{border-color:var(--brand-500);box-shadow:var(--shadow-focus);outline:none}.input-group .form-control,.input-group .form-select{border-radius:var(--radius-md)}.input-group>:not(:last-child),.input-group>.input-group-prepend>.form-control,.input-group>.input-group-prepend>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child),.input-group>.input-group-append>.form-control,.input-group>.input-group-append>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.custom-button{background-color:var(--brand-600);border-color:var(--brand-600);color:#fff;font-weight:600;border-radius:var(--radius-md);transition:background-color var(--duration-fast)var(--ease-out),border-color var(--duration-fast)var(--ease-out),transform var(--duration-fast)var(--ease-out)}.custom-button:hover{background-color:var(--brand-700);border-color:var(--brand-700);color:#fff}.custom-button:active{transform:translateY(1px)}.custom-button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.reset-button{color:var(--brand-600);border-color:var(--brand-600)}.reset-button:hover{color:var(--brand-700);background-color:initial}input[type=number]{-moz-appearance:textfield}.contentcontainer{margin-top:4.8em}.youtube-container{display:block;width:100%}.youtube-container>iframe{aspect-ratio:16/9;width:100%}#portcommand{background:0 0;color:var(--paper)!important;font-size:.875rem;font-weight:500;font-family:var(--font-mono);line-height:1.6;border:0;border-radius:0;padding:14px 16px;resize:none;field-sizing:content;min-height:calc(2 * 1.6em + 28px)}@supports not (field-sizing:content){@media(max-width:639.98px){#portcommand{min-height:calc(4 * 1.6em + 28px)}}}#portcommand:focus{background:0 0;box-shadow:none}.page-link{color:var(--ink-900)}.page-item.active .page-link{background-color:var(--ink-100);border-color:var(--ink-900);color:var(--ink-900)}.btn-pinggy,.btn-pinggy-blue,.btn-outline-pinggy{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 22px;border:1px solid transparent;border-radius:0;font-family:var(--font-display);font-size:var(--text-ui);font-weight:500;line-height:1.4;box-shadow:none;transition:background-color var(--duration-fast)var(--ease-out),border-color var(--duration-fast)var(--ease-out),color var(--duration-fast)var(--ease-out),transform var(--duration-fast)var(--ease-out)}.btn-pinggy.btn-lg,.btn-pinggy-blue.btn-lg,.btn-outline-pinggy.btn-lg{padding:15px 24px;font-size:.875rem}.btn-pinggy-blue{background-color:var(--brand-600);border-color:var(--brand-600);color:#fff}.btn-pinggy-blue:hover,.btn-pinggy-blue:focus{background-color:var(--brand-700);border-color:var(--brand-700);color:#fff}.btn-pinggy{background-color:var(--ink-950);border-color:var(--ink-950);color:#fff}.btn-pinggy:hover,.btn-pinggy:focus{background-color:var(--ink-800);border-color:var(--ink-800);color:#fff}.btn-outline-pinggy{background-color:var(--paper);border-color:var(--ink-200);color:var(--ink-950)}.btn-outline-pinggy:hover,.btn-outline-pinggy:focus{background-color:var(--paper);border-color:var(--ink-950);color:var(--ink-950)}.btn-pinggy:active,.btn-pinggy-blue:active,.btn-outline-pinggy:active{transform:translateY(1px)}.btn-pinggy:focus-visible,.btn-pinggy-blue:focus-visible,.btn-outline-pinggy:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.bg-subtlegray{background:var(--ink-50)}.bg-gray{background-color:var(--ink-950)}.border-gray{border-color:var(--ink-950);border-width:1px;border-style:solid}.border-subtlegray{border-color:var(--ink-200);border-width:1px;border-style:solid}.border-color-subtlegray{border-color:var(--ink-300)!important}#webdebugurl{display:block}.enablewebdebuglabel{font-family:var(--font-display);font-size:var(--text-ui);font-weight:500;color:var(--ink-950)}.featureimage{display:block;border:1px solid var(--ink-200);border-radius:var(--radius-artifact);overflow:hidden}.featurecard{min-height:18em;margin-bottom:1.6em;background-color:var(--white);border:1px solid var(--ink-200);border-radius:0;box-shadow:none;padding:24px;transition:background-color var(--duration-base)var(--ease-out),border-color var(--duration-base)var(--ease-out)}.featurecard:hover{background-color:var(--paper);border-color:var(--ink-300)}.featurecard h3{color:var(--ink-950);font-size:var(--text-h3)}.featurecard b,.featurecard strong{font-weight:600;color:var(--ink-900)}.featurecard p{margin-bottom:0;color:var(--ink-500);font-size:.9375rem;line-height:1.5}.featurelist li{color:var(--ink-700);font-size:.9375rem;line-height:1.55;padding:.2rem 0}.featurelist li .bi-check2-circle{color:var(--brand-600)}body:not(.blog) :not(pre)>code{padding:.125em .4em;background-color:var(--ink-100);color:var(--ink-900);font-size:.875em}.sidebar{border-right:1px solid var(--ink-200);width:100%;padding-right:1em;min-height:100vh}#sidebarexpandbtn{cursor:pointer;display:none;width:2em;background-color:var(--ink-50);border:1px solid var(--ink-200);border-radius:var(--radius-md);position:fixed;top:4.1em;left:11px}#sidebarclosebtn{display:none;cursor:pointer}@media only screen and (max-width:700px){.sidebarcol{display:none;position:fixed;background:#fff;border-right:1px solid var(--ink-200);box-shadow:var(--shadow-lg);top:4.5em;bottom:0;left:0;overflow:scroll;z-index:9999}#sidebarexpandbtn{display:block;z-index:100}.doccontent{margin-top:2em}#sidebarclosebtn{display:inline}}.btn-toggle,.btn-non-toggle{display:inline-flex;align-items:center;padding:6px 10px;width:100%;font-family:var(--font-sans);font-weight:500;font-size:.9375rem;color:var(--ink-700);background-color:initial;border:0;border-radius:var(--radius-md);transition:background-color var(--duration-fast)var(--ease-out),color var(--duration-fast)var(--ease-out)}.btn-toggle:hover,.btn-non-toggle:hover,.btn-non-toggle:focus,.btn-toggle:focus{color:var(--ink-900);background-color:var(--ink-100)}li.doclink.active>a{color:var(--ink-950);background-color:var(--ink-100);box-shadow:inset 2px 0 0 var(--brand-600);font-weight:600}.btn-toggle::after{width:1.25em;margin-left:auto;line-height:0;content:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");transition:transform var(--duration-slow)var(--ease-out);transform-origin:.5em 50%}.btn-toggle[aria-expanded=true]{color:var(--ink-900)}.btn-toggle[aria-expanded=true]::after{transform:rotate(90deg)}.btn-toggle-nav a{display:inline-flex;padding:5px 10px;margin-top:2px;margin-left:1.25rem;text-decoration:none;color:var(--ink-500);font-size:.875rem;border-radius:var(--radius-sm);transition:background-color var(--duration-fast)var(--ease-out),color var(--duration-fast)var(--ease-out)}.btn-toggle-nav a:hover,.btn-toggle-nav a:focus{background-color:var(--ink-100);color:var(--ink-900)}.scrollarea{overflow-y:auto}.fw-semibold{font-weight:600}.lh-tight{line-height:1.25}.doccontent{max-width:50em}.maincontent{min-height:100vh}pre>code{background-color:var(--ink-50);color:var(--ink-700)!important}.bg{background-color:var(--ink-50)}.chroma{background-color:var(--ink-50)}.navbar.navbar-expand-lg{font-size:1rem;display:block;padding:0;border-bottom:1px solid var(--ink-200);background-color:rgba(245,245,243,.9)!important;-webkit-backdrop-filter:saturate(160%)blur(12px);backdrop-filter:saturate(160%)blur(12px);transition:border-color var(--duration-base)var(--ease-out)}body.home:not(.is-scrolled) .navbar.navbar-expand-lg{border-bottom-color:transparent}@supports not (backdrop-filter:blur(12px)){.navbar.navbar-expand-lg{background-color:var(--ink-50)!important}}.navbar>.navbar__inner{min-height:72px;max-width:calc(var(--frame-max) + 24px);padding:8px 12px}.navbar .logo{padding:0;margin-right:20px}.navbar .logo img{height:30px!important;width:auto}@media(min-width:992px){.navbar .navbar-collapse{flex-grow:1}.navbar .navbar-collapse .navbar-nav{margin-left:auto}.navbar .nav-button{margin-left:var(--space-4)}}.navbar .navbar-collapse .navbar-nav{align-items:center}.navbar .nav-item.mx-2{margin-left:2px!important;margin-right:2px!important}.nav-link{padding:6px 10px!important;border-radius:0;color:var(--ink-950);transition:color var(--duration-fast)var(--ease-out)}.nav-link span{font-family:var(--font-display);color:var(--ink-950);font-weight:400;font-size:.875rem;text-decoration-thickness:1px;text-underline-offset:5px}.nav-link:hover span,.nav-link:focus span{color:var(--ink-950);text-decoration:underline}.nav-link.active span,.nav-item .active span{color:var(--ink-950);font-weight:600}.nav-link:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.nav-item{border-radius:0}.navbar .dropdown-toggle::after{vertical-align:.15em;margin-left:.35em;border-top-width:.28em;border-right-width:.28em;border-left-width:.28em;color:var(--ink-500)}.navbar .dropdown-menu{border:1px solid var(--ink-200);border-radius:0;box-shadow:var(--shadow-lg);padding:6px;margin-top:10px;background:var(--white)}.navbar .dropdown-item{border-radius:0;padding:8px 12px;font-size:.875rem;color:var(--ink-700);font-weight:400;transition:background-color var(--duration-fast)var(--ease-out),color var(--duration-fast)var(--ease-out)}.navbar .dropdown-item:hover,.navbar .dropdown-item:focus{background-color:var(--ink-100);color:var(--ink-950)}.navbar #LoginBtn{display:inline-flex;align-items:center;gap:10px;padding:10px 20px!important;margin:0!important;border:1px solid var(--ink-950);border-radius:0;background-color:var(--ink-950);color:#fff;font-family:var(--font-display);font-size:var(--text-ui);font-weight:500;text-decoration:none;transition:background-color var(--duration-fast)var(--ease-out),border-color var(--duration-fast)var(--ease-out)}.navbar #LoginBtn::after{content:"\2197";font-size:.875rem;line-height:1}.navbar #LoginBtn:hover,.navbar #LoginBtn:focus{background-color:var(--ink-800);border-color:var(--ink-800);color:#fff}.navbar #LoginBtn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}@media(max-width:991.98px){.navbar .navbar-collapse{padding:8px 0 16px}.navbar .navbar-collapse .navbar-nav{align-items:flex-start}.navbar .navbar-toggler{border-radius:0;border-color:var(--ink-200)}.navbar .navbar-toggler:focus{box-shadow:var(--shadow-focus)}}.frame{max-width:var(--frame-max);margin:var(--nav-h)auto 0;border:1px solid var(--ink-200);border-bottom:0;background:var(--ink-50)}.cell{position:relative;padding:var(--cell-pad-y)var(--cell-pad-x);border-bottom:1px solid var(--ink-200)}.cell--flush{padding:0}.cell__head{max-width:44rem}.cell__head h2,.split h2{margin:12px 0 0;font-size:var(--text-h2);letter-spacing:var(--track-h2);line-height:1.15;max-width:22ch}.cell__head--split{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1fr);align-items:end;gap:var(--space-8);max-width:none}.cell--flush>.cell__head{padding:var(--cell-pad-y)var(--cell-pad-x)var(--space-8)}.cell__head--center{max-width:none;display:flex;flex-direction:column;align-items:center;text-align:center;text-wrap:balance}.cell__head--center h2{margin-top:var(--space-2);max-width:26ch}.cell__head--center .prose{margin-top:var(--space-3)}.cell--flush>.cell__head--center{padding:var(--space-8)var(--cell-pad-x)var(--space-6)}.prose{font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--ink-700);max-width:50ch;margin:0}.featurelist{list-style:none;padding:0}.featurelist li{display:flex;align-items:baseline;gap:.5rem}.featurelist li>.bi{flex:none;margin-right:0!important;font-size:.875rem}.hero{display:grid;grid-template-columns:minmax(0,1.05fr)minmax(0,1fr);grid-template-rows:minmax(var(--space-8),auto);align-items:center;gap:var(--space-8);padding:0 var(--cell-pad-x)var(--space-10)}@media(min-width:1280px){.hero{padding-left:var(--space-12);padding-right:var(--space-12)}}.hero>.tag{grid-column:1/-1;justify-self:center;align-self:center;margin:4px 0;padding:7px 16px}.hero>.tag,.hero__left,.hero__right{position:relative;z-index:1}.hero__grid{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;pointer-events:none;-webkit-mask-image:radial-gradient( ellipse 70% 100% at 50% 0%,#000 25%,rgba(0,0,0,.4) 60%,transparent 100% );mask-image:radial-gradient( ellipse 70% 100% at 50% 0%,#000 25%,rgba(0,0,0,.4) 60%,transparent 100% )}@media(max-width:767.98px){.hero__grid{display:none}}.hero .biggestheader{display:block;max-width:14ch;margin:0}.hero__sub{margin:16px 0 0;font-family:var(--font-display);font-size:var(--text-h3);font-weight:500;letter-spacing:var(--track-h3);line-height:1.3;color:var(--ink-500)}#lead2{margin-top:var(--space-5);font-size:1.0625rem;line-height:1.6;color:var(--ink-700);max-width:46ch}.hero__trial{margin-top:var(--space-8);max-width:30rem}.trial-block{max-width:30rem;margin:0 auto}.hero__trial .eyebrow,.trial-block .eyebrow{display:block;margin-bottom:var(--space-2)}.hero__trial mark,.trial-block mark{padding:0 3px;background:var(--brand-50);color:var(--brand-700)}.trial-group{flex-wrap:wrap;border:1px solid var(--ink-200);background:var(--white);transition:border-color var(--duration-fast)var(--ease-out),box-shadow var(--duration-fast)var(--ease-out)}.trial-group:focus-within{border-color:var(--brand-500);box-shadow:var(--shadow-focus)}.trial-group .form-control{border:0;background:0 0;padding:13px 16px;font-size:.9375rem}.trial-group .form-control:focus{box-shadow:none}.trial-group .btn-pinggy-blue{margin:-1px -1px -1px 0!important;padding:13px 20px;white-space:nowrap}.trial-group .invalid-tooltip{position:static;order:3;flex:none;width:calc(100% + 2px);margin:0 -1px -1px;padding:6px 16px;border-radius:0;font-family:var(--font-display);font-size:.75rem}#trynow{width:auto;margin-top:var(--space-4);font-size:var(--text-ui);color:var(--ink-950)}#trynow:hover{color:var(--brand-700)}@media(max-width:1023.98px){.hero{grid-template-columns:minmax(0,1fr);gap:var(--space-8)}}@media(max-width:639.98px){.trial-group .form-control{width:100%;flex:1 1 100%}.trial-group .btn-pinggy-blue{width:calc(100% + 2px);margin:0 -1px -1px!important}}.spec-card{display:block;margin:0;background:var(--white);border:1px solid var(--ink-200);color:inherit;text-decoration:none}a.spec-card:hover{color:inherit;border-color:var(--ink-300)}.spec-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:12px 16px;border-bottom:1px solid var(--ink-200);font-family:var(--font-display);font-size:var(--text-eyebrow);font-weight:500;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-950)}.spec-card__head>:first-child{flex:none;white-space:nowrap}.spec-card__meta{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ink-500);font-weight:400;letter-spacing:0;text-transform:none}.spec-card__body{display:block;padding:var(--space-4)}.spec-card__body>img,.spec-card__body>.videocontainer{display:block;width:100%;height:auto;border-radius:calc(var(--radius-artifact) - 4px);overflow:hidden}#bigcodecolumn{padding:0;border:1px solid var(--ink-200);border-radius:0;background-color:var(--white);box-shadow:none;transition:outline-color var(--duration-slow)var(--ease-out),border-color var(--duration-slow)var(--ease-out);outline:2px solid transparent;outline-offset:4px}#bigcodecolumn.shadowhighlight{outline-color:var(--brand-500)}.configurator__body{padding:20px 20px 4px}#bigcodecolumn label,#bigcodecolumn strong{font-family:var(--font-display);color:var(--ink-950);font-size:var(--text-ui);font-weight:500}#bigcodecolumn .form-select,#bigcodecolumn #localaddress{font-family:var(--font-display);font-size:.875rem;background-color:var(--white)}#bigcodecolumn .form-select{flex:none;width:auto;min-width:6.5rem;font-weight:500}.configurator__label,.configurator__note{display:block}.configurator__note{margin-bottom:8px}#webdebugurl{font-size:.8125rem;color:var(--ink-500)}#webdebugurl a{font-family:var(--font-mono)}.configurator__toggles{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:18px;padding:14px 0;border-top:1px solid var(--ink-200)}.configurator__toggles>div{display:flex;align-items:center}.configurator__toggles .bi-info-circle{color:var(--ink-500);margin-left:4px}#bigcodecolumn .alert-warning{border-radius:0;font-size:.875rem;margin-bottom:16px!important}#finalcommand{padding:20px!important;margin:0;border:0;border-top:1px solid var(--ink-200);border-radius:0;background-color:var(--paper);box-shadow:none}.cmd{display:flex;align-items:stretch;flex-wrap:nowrap;background:var(--ink-950);border:1px solid var(--ink-950)}.cmd>.form-control,.cmd__text{flex:auto;min-width:0}.cmd__text{padding:15px 18px;border:0;background:0 0;color:var(--paper);font-family:var(--font-mono);font-size:.875rem;font-weight:500;line-height:1.5;outline:none;text-overflow:ellipsis}.cmd>.btn,.cmd__copy{flex:none;display:inline-flex;align-items:center;justify-content:center;width:48px;margin:0!important;border:0;border-left:1px solid rgba(255,255,255,.14);border-radius:0;background:0 0;color:var(--paper);transition:background-color var(--duration-fast)var(--ease-out)}.cmd>.btn:hover,.cmd__copy:hover{background:var(--ink-800);color:#fff}.cmd>.btn:focus-visible,.cmd__copy:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--brand-500)}.cmd:focus-within{box-shadow:var(--shadow-focus)}#instructions{color:var(--ink-500);font-size:.8125rem}.configurator__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.configurator__actions .btn-outline-pinggy{width:100%}.stage{padding:16px 16px 0;background:var(--ink-100);overflow:hidden}.stage__art{display:block;width:100%;height:560px;object-fit:fill;image-rendering:pixelated;image-rendering:crisp-edges;user-select:none}.stage__mock{position:absolute;top:96px;left:50%;width:min(820px,100% - 64px);transform:translateX(-50%)}.stage__tag{position:absolute;right:16px;bottom:0;margin:0;padding:16px 24px;background:var(--white);font-family:var(--font-display);font-size:.875rem;color:var(--ink-700)}#textchanger{color:var(--ink-950);font-weight:600}@media(max-width:1023.98px){.stage{padding:56px 24px}.stage__art{position:absolute;inset:16px;width:calc(100% - 32px);height:calc(100% - 16px)}.stage__mock{position:relative;top:auto;left:auto;width:100%;transform:none}.stage__tag{display:none}}.termgif-terminal{display:flex;flex-direction:column;margin:0 auto;overflow:hidden;border:1px solid #000;border-radius:var(--radius-artifact);background-color:var(--mock-bg);box-shadow:var(--shadow-artifact);animation:mockRise .6s var(--ease-rise)both}.termgif-header{position:relative;display:flex;align-items:center;gap:12px;height:40px;padding:0 14px;background:var(--mock-bar);border-bottom:1px solid var(--mock-line)}.termgif-dots{display:flex;gap:7px}.termgif-dot{width:11px;height:11px;border-radius:50%}.termgif-dot.red{background-color:#ff5f57}.termgif-dot.yellow{background-color:#febc2e}.termgif-dot.green{background-color:#28c840}.termgif-title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-mono);font-size:.75rem;color:var(--mock-dim)}.termgif-title b{color:var(--mock-fg);font-weight:500}@media(max-width:479.98px){.termgif-pill{display:none}}.termgif-pill{padding:1px 8px;border:1px solid var(--mock-line);border-radius:4px;font-family:var(--font-mono);font-size:.75rem;color:var(--mock-dim)}.termgif-content{min-height:260px;padding:22px 24px;background-color:var(--mock-bg);color:var(--mock-fg);font-family:var(--font-mono);font-size:.875rem;line-height:1.75}.termgif-step{opacity:0;animation:fadeIn .5s forwards;font-family:var(--font-mono);font-size:.875rem;color:var(--mock-fg);line-height:1.75;white-space:pre-wrap;word-break:break-word}.termgif-step .t-prompt{color:#7ee2a8}.termgif-step .t-dim{color:var(--mock-dim)}.termgif-step .t-url{color:#9bb8f4}.termgif-step .t-method{color:#9bb8f4}.termgif-step .t-ok{color:#7ee2a8}@keyframes fadeIn{to{opacity:1}}@keyframes mockRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.blink{animation:blink 1s step-end infinite;color:var(--mock-fg)}@keyframes blink{50%{opacity:0}}.logos{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:var(--space-6);padding-top:var(--space-6);padding-bottom:var(--space-6)}.logos__label{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.logos__label .link-rule{font-size:var(--text-ui)}@media(max-width:767.98px){.logos{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}}.split{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1.15fr);align-items:center;gap:var(--space-10)}.split--flip{grid-template-columns:minmax(0,1.15fr)minmax(0,1fr)}.split--flip>.split__text{order:2}.split__text>.prose{margin-top:var(--space-4)}.split__text>.featurelist{margin:var(--space-5)0 0}.split__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5);margin-top:var(--space-6)}.split__sub{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--ink-200)}.split__sub h3{margin:0;font-size:var(--text-h3);letter-spacing:var(--track-h3)}.split__sub .featurelist{margin:var(--space-3)0 var(--space-4)}.videocontainer{cursor:pointer;background:var(--mock-bg)}.videocontainer::after{content:"Watch the demo";position:absolute;top:50%;left:50%;display:flex;align-items:center;width:auto;height:auto;padding:14px 22px 14px 46px;transform:translate(-50%,-50%);background:var(--brand-600)url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath d='M4 2.5v11l9-5.5z'/%3e%3c/svg%3e")20px/16px no-repeat;border:1px solid var(--brand-600);color:#fff;font-family:var(--font-display);font-size:var(--text-ui);font-weight:500;line-height:1.4;white-space:nowrap;pointer-events:none;transition:background-color var(--duration-fast)var(--ease-out),opacity var(--duration-fast)var(--ease-out)}.videocontainer:hover::after{background-color:var(--brand-700);border-color:var(--brand-700)}.videocontainer.is-playing::after{opacity:0}.videocontainer>video{object-fit:cover}.videocontainer .videoposter{object-fit:cover}.videocontainer .videoposter[hidden]{display:none}@media(max-width:1023.98px){.split,.split--flip{grid-template-columns:minmax(0,1fr);gap:var(--space-8)}.split--flip>.split__text{order:0}}.tui-card .spec-card__head{padding-top:7px;padding-bottom:7px}.tui-card__nav{display:flex;gap:4px}.tui-card__btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--ink-200);border-radius:0;background:var(--paper);color:var(--ink-950);font-size:.75rem;transition:border-color var(--duration-fast)var(--ease-out)}.tui-card__btn:hover{border-color:var(--ink-950)}.tui-card__btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.tui-card .carousel-item img{display:block;width:100%;height:auto;border:1px solid var(--ink-950);border-radius:calc(var(--radius-artifact) - 4px)}.tui-card__caption{margin:12px 0 0;font-family:var(--font-display);font-size:.75rem;color:var(--ink-500)}.tui-card__caption span{margin-right:10px;color:var(--ink-950)}.nd-tabs{margin-top:var(--space-6);border-top:1px solid var(--ink-200)}.nd-tab{position:relative;display:grid;grid-template-columns:2.25rem 3.75rem minmax(0,1fr);align-items:center;width:100%;min-height:48px;padding:0 var(--space-4);border:0;border-bottom:1px solid var(--ink-200);background:0 0;color:var(--ink-700);font-family:var(--font-display);font-size:var(--text-ui);text-align:left;cursor:pointer;transition:background-color var(--duration-fast)var(--ease-out),box-shadow var(--duration-fast)var(--ease-out),color var(--duration-fast)var(--ease-out)}.nd-tab:hover{background:var(--paper);color:var(--ink-950)}.nd-tab__n{font-size:var(--text-eyebrow);color:var(--ink-400)}.nd-tab__name{font-weight:600;letter-spacing:.02em}.nd-tab__use{overflow:hidden;font-family:var(--font-sans);font-size:.875rem;color:var(--ink-500);white-space:nowrap;text-overflow:ellipsis}.nd-tab[aria-selected=true]{background:var(--white);color:var(--ink-950);box-shadow:inset 2px 0 0 var(--brand-600)}.nd-tab[aria-selected=true] .nd-tab__n{color:var(--brand-600)}.nd-tabs.is-rotating .nd-tab[aria-selected=true]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand-600);transform:scaleX(var(--nd-progress,0));transform-origin:left center;transition:transform 100ms linear}.nd-tab:focus-visible{outline:none;box-shadow:inset 2px 0 0 var(--brand-600),var(--shadow-focus);position:relative;z-index:1}.netdiagram-card .nd-p{display:none}.netdiagram-card[data-proto=https] .nd-p.nd-for-https,.netdiagram-card[data-proto=tcp] .nd-p.nd-for-tcp,.netdiagram-card[data-proto=tls] .nd-p.nd-for-tls,.netdiagram-card[data-proto=udp] .nd-p.nd-for-udp,.netdiagram-card[data-proto=tlstcp] .nd-p.nd-for-tlstcp{display:inline;animation:ndIn var(--duration-slow)var(--ease-out)}.netdiagram-card .nd-x{grid-area:1/1;visibility:hidden}.netdiagram-card[data-proto=https] .nd-x.nd-for-https,.netdiagram-card[data-proto=tcp] .nd-x.nd-for-tcp,.netdiagram-card[data-proto=tls] .nd-x.nd-for-tls,.netdiagram-card[data-proto=udp] .nd-x.nd-for-udp,.netdiagram-card[data-proto=tlstcp] .nd-x.nd-for-tlstcp{visibility:visible}.nd-cmds{display:grid}.nd-cmds>.nd-x{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nd-foot{display:grid;padding:14px 16px;border-top:1px solid var(--ink-200)}.netdiagram-card .nd-foot p{margin:0;font-family:var(--font-sans);font-size:.875rem;line-height:1.55;color:var(--ink-700)}.netdiagram{display:block;width:100%;height:auto}.netdiagram-card--single{max-width:40rem;margin:var(--space-6)0}.netdiagram--wide{--ux:-1;--uy:0;--b:83;--c:210;--d:291}.netdiagram--tall{display:none;--ux:0;--uy:-1;--b:90;--c:201;--d:290}@media(max-width:639.98px){.netdiagram--wide{display:none}.netdiagram--tall{display:block}}.netdiagram-card .spec-card__meta{font-family:var(--font-mono)}.netdiagram text{font-family:var(--font-display)}.netdiagram .nd-box{fill:var(--paper);stroke:var(--ink-300);stroke-width:1}.netdiagram .nd-box--edge{fill:var(--ink-950);stroke:var(--ink-950)}.netdiagram .nd-label{font-size:11px;letter-spacing:.08em;fill:var(--ink-500)}.netdiagram .nd-title{font-size:15px;font-weight:600;fill:var(--ink-950)}.netdiagram .nd-meta{font-size:12px;fill:var(--ink-500)}.netdiagram .nd-on-dark{fill:var(--mock-dim)}.netdiagram .nd-on-dark.nd-title{fill:var(--paper)}.netdiagram .nd-pipe{fill:var(--brand-50)}.netdiagram .nd-pipe-rule{fill:none;stroke:var(--brand-600);stroke-width:1}.netdiagram .nd-pipe-rule--dark{stroke:var(--brand-500)}.netdiagram .nd-raw{fill:none;stroke:var(--ink-950);stroke-width:1}.netdiagram .nd-icon{fill:none;stroke:var(--ink-500);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.netdiagram .nd-icon--edge{stroke:var(--brand-500)}.netdiagram .nd-icon--lock{stroke:var(--brand-600);stroke-width:1.4}.netdiagram .nd-grid{stroke:var(--ink-100);stroke-width:1}.netdiagram .nd-led{fill:var(--brand-500);opacity:0;animation:ndLed 4.2s linear infinite}.netdiagram .nd-led--stream{animation:ndLedStream 2.4s var(--ease-in-out)infinite alternate}.netdiagram .nd-pk{animation-delay:var(--lag,0s);animation-iteration-count:infinite}.netdiagram .nd-pk--req,.netdiagram .nd-pk--resp{fill:var(--brand-600);animation-duration:4.2s;animation-timing-function:var(--ease-in-out)}.netdiagram .nd-pk--req{animation-name:ndHttpsReq}.netdiagram .nd-pk--resp{animation-name:ndHttpsResp}.netdiagram .nd-pk--tin,.netdiagram .nd-pk--tout{animation-duration:2.4s;animation-timing-function:linear}.netdiagram .nd-pk--tin{fill:var(--nd-raw-fill,var(--ink-950));animation-name:ndTcpIn}.netdiagram .nd-pk--tout{fill:var(--brand-600);animation-name:ndTcpOut}.netdiagram .nd-p--sealed .nd-pk{--nd-raw-fill:var(--brand-600)}.netdiagram .nd-pk--uin,.netdiagram .nd-pk--uout{stroke-width:1.2;animation-duration:3.2s;animation-timing-function:linear;animation-fill-mode:backwards}.netdiagram .nd-pk--uin{fill:var(--paper);stroke:var(--ink-950);animation-name:ndUdpIn}.netdiagram .nd-pk--uout{fill:var(--brand-50);stroke:var(--brand-600);animation-name:ndUdpOut}.netdiagram .nd-seal{fill:var(--brand-600)}.netdiagram .nd-seal__core{fill:var(--paper)}.netdiagram .nd-pk--sreq,.netdiagram .nd-pk--sresp{animation-duration:4s;animation-timing-function:linear}.netdiagram .nd-pk--sreq{animation-name:ndTlsReq}.netdiagram .nd-pk--sresp{animation-name:ndTlsResp}@keyframes ndIn{from{opacity:0}}@keyframes ndLed{0%,15.5%{opacity:0}16.5%,30%{opacity:1}31%,65.5%{opacity:0}66.5%,76%{opacity:1}77%,100%{opacity:0}}@keyframes ndLedStream{from{opacity:.35}to{opacity:1}}@keyframes ndHttpsReq{0%{transform:translate(0,0)}16%{transform:translate(calc(var(--ux) * var(--b) * 1px),calc(var(--uy) * var(--b) * 1px))}30%{transform:translate(calc(var(--ux) * var(--b) * 1px),calc(var(--uy) * var(--b) * 1px))}31%{transform:translate(calc(var(--ux) * var(--c) * 1px),calc(var(--uy) * var(--c) * 1px))}46%{transform:translate(calc(var(--ux) * var(--d) * 1px),calc(var(--uy) * var(--d) * 1px))}100%{transform:translate(calc(var(--ux) * var(--d) * 1px),calc(var(--uy) * var(--d) * 1px))}}@keyframes ndHttpsResp{0%,52%{transform:translate(calc(var(--ux) * var(--d) * 1px),calc(var(--uy) * var(--d) * 1px))}66%{transform:translate(calc(var(--ux) * var(--c) * 1px),calc(var(--uy) * var(--c) * 1px))}76%{transform:translate(calc(var(--ux) * var(--c) * 1px),calc(var(--uy) * var(--c) * 1px))}77%{transform:translate(calc(var(--ux) * var(--b) * 1px),calc(var(--uy) * var(--b) * 1px))}92%,100%{transform:translate(0,0)}}@keyframes ndTcpIn{0%{transform:translate(0,0);fill:var(--nd-raw-fill,var(--ink-950))}40%{transform:translate(calc(var(--ux) * var(--b) * 1px),calc(var(--uy) * var(--b) * 1px));fill:var(--nd-raw-fill,var(--ink-950))}47%{fill:var(--brand-600)}55%{transform:translate(calc(var(--ux) * var(--c) * 1px),calc(var(--uy) * var(--c) * 1px))}100%{transform:translate(calc(var(--ux) * var(--d) * 1px),calc(var(--uy) * var(--d) * 1px));fill:var(--brand-600)}}@keyframes ndTcpOut{0%{transform:translate(calc(var(--ux) * var(--d) * 1px),calc(var(--uy) * var(--d) * 1px));fill:var(--brand-600)}45%{transform:translate(calc(var(--ux) * var(--c) * 1px),calc(var(--uy) * var(--c) * 1px));fill:var(--brand-600)}53%{fill:var(--nd-raw-fill,var(--ink-950))}60%{transform:translate(calc(var(--ux) * var(--b) * 1px),calc(var(--uy) * var(--b) * 1px))}100%{transform:translate(0,0);fill:var(--nd-raw-fill,var(--ink-950))}}@keyframes ndUdpIn{0%{transform:translate(0,0);fill:var(--paper);stroke:var(--ink-950)}14%{transform:translate(calc(var(--ux) * var(--b) * 1px),calc(var(--uy) * var(--b) * 1px));fill:var(--paper);stroke:var(--ink-950)}16%{fill:var(--brand-50);stroke:var(--brand-600)}18%{transform:translate(calc(var(--ux) * var(--c) * 1px),calc(var(--uy) * var(--c) * 1px))}32%,100%{transform:translate(calc(var(--ux) * var(--d) * 1px),calc(var(--uy) * var(--d) * 1px));fill:var(--brand-50);stroke:var(--brand-600)}}@keyframes ndUdpOut{0%{transform:translate(calc(var(--ux) * var(--d) * 1px),calc(var(--uy) * var(--d) * 1px));fill:var(--brand-50);stroke:var(--brand-600)}14%{transform:translate(calc(var(--ux) * var(--c) * 1px),calc(var(--uy) * var(--c) * 1px));fill:var(--brand-50);stroke:var(--brand-600)}16%{fill:var(--paper);stroke:var(--ink-950)}18%{transform:translate(calc(var(--ux) * var(--b) * 1px),calc(var(--uy) * var(--b) * 1px))}32%,100%{transform:translate(0,0);fill:var(--paper);stroke:var(--ink-950)}}@keyframes ndTlsReq{0%{transform:translate(0,0)}42%,100%{transform:translate(calc(var(--ux) * var(--d) * 1px),calc(var(--uy) * var(--d) * 1px))}}@keyframes ndTlsResp{0%,50%{transform:translate(calc(var(--ux) * var(--d) * 1px),calc(var(--uy) * var(--d) * 1px))}92%,100%{transform:translate(0,0)}}@media(prefers-reduced-motion:reduce){.netdiagram .nd-pk,.netdiagram .nd-led{display:none}.netdiagram-card .nd-p.nd-for-https,.netdiagram-card .nd-p.nd-for-tcp,.netdiagram-card .nd-p.nd-for-tls,.netdiagram-card .nd-p.nd-for-udp,.netdiagram-card .nd-p.nd-for-tlstcp{animation:none}}.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink-200)}.pillar{display:flex;flex-direction:column;gap:12px;padding:var(--space-8)var(--space-6)var(--space-6);border-bottom:1px solid var(--ink-200);transition:background-color var(--duration-base)var(--ease-out)}.pillar:not(:nth-child(3n+1)){border-left:1px solid var(--ink-200)}.pillar:nth-last-child(-n+3):nth-child(3n+1),.pillar:nth-last-child(-n+3):nth-child(3n+1)~.pillar{border-bottom:0}.pillar:hover{background-color:var(--paper)}.pillar__n{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:var(--text-eyebrow);color:var(--ink-500)}.pillar__n .bi{font-size:.9375rem}.pillar h3{margin:0;font-size:var(--text-h3);letter-spacing:var(--track-h3);line-height:1.25}.pillar__sub{margin:-6px 0 0;font-size:.875rem;color:var(--ink-500)}.pillar .featurelist{margin:0}.pillar .featurelist strong{color:var(--ink-950);font-weight:600}.pillar__cols{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}@media(max-width:1023.98px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}.pillar,.pillar:nth-last-child(-n+3):nth-child(3n+1),.pillar:nth-last-child(-n+3):nth-child(3n+1)~.pillar{border-left:0;border-bottom:1px solid var(--ink-200)}.pillar:nth-child(2n){border-left:1px solid var(--ink-200)}.pillar:nth-last-child(-n+2):nth-child(2n+1),.pillar:nth-last-child(-n+2):nth-child(2n+1)~.pillar{border-bottom:0}}@media(max-width:639.98px){.pillars{grid-template-columns:minmax(0,1fr)}.pillar,.pillar:nth-child(2n),.pillar:nth-last-child(-n+2):nth-child(2n+1){border-left:0;border-bottom:1px solid var(--ink-200)}.pillar:last-child{border-bottom:0}}.featured{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:var(--space-6);padding-top:var(--space-6);padding-bottom:var(--space-6)}@media(max-width:767.98px){.featured{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}}.faq{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,2fr);gap:var(--space-8);align-items:start}.faq__head h2{margin:0 0 var(--space-5);font-size:clamp(1.5rem,2.2vw,1.875rem);letter-spacing:var(--track-h2);max-width:14ch}.faq__head .form-control{max-width:20rem;font-family:var(--font-display);font-size:.875rem}.faq .accordion{border-bottom:1px solid var(--ink-200)}.faq .accordion-item,.faq .accordion-item:first-of-type,.faq .accordion-item:last-of-type{border:0;border-top:1px solid var(--ink-200);border-radius:0;background:0 0}.faq .accordion-item:first-of-type .accordion-button,.faq .accordion-item:last-of-type .accordion-button.collapsed,.faq .accordion-button{border-radius:0}.faq .accordion-header{margin:0}.faq .accordion-button{gap:var(--space-4);padding:18px 0;background:0 0;box-shadow:none;font-family:var(--font-display);font-size:.875rem;font-weight:500;line-height:1.5;color:var(--ink-950)}.faq .accordion-button:not(.collapsed){background:0 0;color:var(--ink-950);box-shadow:none}.faq .accordion-button:hover{color:var(--brand-700)}.faq .accordion-button:focus{box-shadow:none}.faq .accordion-button:focus-visible{box-shadow:var(--shadow-focus)}.faq .accordion-button::after,.faq .accordion-button:not(.collapsed)::after{content:"+";width:auto;height:auto;background-image:none;transform:none;font-family:var(--font-display);font-size:1rem;font-weight:400;color:var(--ink-500)}.faq .accordion-button:not(.collapsed)::after{content:"\2212"}.faq .accordion-body{padding:0 0 20px;max-width:62ch;font-size:.96875rem;line-height:1.6;color:var(--ink-700)}.faq .accordion-body p:last-child{margin-bottom:0}@media(max-width:1023.98px){.faq{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}.faq__head h2{max-width:none}}.cta{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);text-align:center;padding-top:var(--space-12);padding-bottom:var(--space-12)}.cta h2{margin:0;font-size:clamp(1.75rem,3.4vw,2.75rem);letter-spacing:var(--track-display);line-height:1.15}.cta h2 span{display:block;color:var(--ink-500)}.cta__actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:var(--space-3);width:100%}.cta__actions .cmd{width:min(30rem,100%)}.frame .container{max-width:none;padding:0}.monthly{display:none}.pricing-toggle{display:grid;grid-template-columns:minmax(0,1fr)auto minmax(0,1fr);align-items:center;column-gap:var(--space-3);width:100%;margin-top:var(--space-5);font-family:var(--font-display);font-size:var(--text-ui);color:var(--ink-950)}.pricing-toggle .toggler{font-weight:500}.pricing-toggle>.toggler{justify-self:end}.pricing-toggle .switch{margin:0}.pricing-toggle__yearly{justify-self:start;display:inline-flex;align-items:center;gap:var(--space-3)}@media(max-width:479.98px){.pricing-toggle__yearly{display:contents}.pricing-toggle__yearly .toggler{justify-self:start}.pricing-toggle__savings{grid-column:1/-1;justify-self:center;margin-top:var(--space-3)}}.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink-200)}.pricing-grid>*+*{border-left:1px solid var(--ink-200)}.pricecard{position:relative;display:flex;flex-direction:column;height:100%;border:0;border-radius:0;background-color:initial;transition:background-color var(--duration-base)var(--ease-out)}.pricecard:hover{background-color:var(--paper)}.pricecard .card-header{display:flex;align-items:center;justify-content:space-between;min-height:60px;padding:16px var(--space-6);background-color:initial;border-bottom:1px solid var(--ink-200)}.pricecard .card-header h3{margin:0;font-size:.875rem;font-weight:600;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-950)}.pricecard .card-body{display:flex;flex-direction:column;padding:var(--space-6)}.pricecard--featured,.pricecard--featured:hover{background-color:var(--white);box-shadow:inset 0 2px 0 var(--brand-600)}.pricing-badge{padding:3px 8px;background:var(--brand-600);color:#fff;font-family:var(--font-display);font-size:.6875rem;font-weight:500;letter-spacing:var(--track-eyebrow);text-transform:uppercase;white-space:nowrap}.pricing-price-block{min-height:5.75rem}.pricing-card-title{margin:0 0 4px;font-family:var(--font-display);font-size:2rem;font-weight:600;line-height:1.15;letter-spacing:-.03em;color:var(--ink-950);font-variant-numeric:tabular-nums}.pricing-card-title small{font-size:.875rem;font-weight:400;letter-spacing:0;color:var(--ink-500)}.pricing-note{margin:0;font-size:.875rem;color:var(--ink-500)}.pricing-features{margin:0;padding:0}.pricing-features li{display:flex;align-items:flex-start;gap:.5rem;padding:.22rem 0;font-size:.9rem;font-weight:400;color:var(--ink-800);line-height:1.45}.pricing-features .link-dark{color:var(--ink-500)!important}.pricing-check{color:var(--brand-600);font-size:1rem;flex-shrink:0;margin-top:.05rem}.pricing-check--featured{color:var(--brand-600)}.seat-selector{display:flex;flex-direction:row;align-items:center;gap:12px}.seat-selector__label{font-family:var(--font-display);font-size:var(--text-ui);color:var(--ink-500);font-weight:500}.pricecard .btn-lg{width:100%}@media(max-width:1023.98px){.cell__head--split{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}}@media(max-width:1023.98px){.pricing-grid{grid-template-columns:minmax(0,1fr)}.pricing-grid>*+*{border-left:0;border-top:1px solid var(--ink-200)}}.form-check-input:checked{background-color:var(--brand-600);border-color:var(--brand-700)}.switch{position:relative;display:inline-block;width:40px;height:20px;vertical-align:middle;margin-right:10px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--ink-200);-webkit-transition:background-color var(--duration-slow)var(--ease-out);transition:background-color var(--duration-slow)var(--ease-out);border-radius:var(--radius-pill)}.slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:1px;background-color:#fff;box-shadow:var(--shadow-xs);-webkit-transition:transform var(--duration-slow)var(--ease-out);transition:transform var(--duration-slow)var(--ease-out);border-radius:var(--radius-pill)}input:checked+.slider{background-color:var(--brand-600)}input:focus+.slider{box-shadow:var(--shadow-focus)}input:checked+.slider:before{-webkit-transform:translateX(18px);-ms-transform:translateX(18px);transform:translateX(18px)}.pg-ico{display:inline-block;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0}.pg-ico-btn[data-bs-toggle=tooltip]{cursor:help}.highlight{position:relative}.copy-to-clipboard{top:-1px;display:inline-block;vertical-align:middle;position:relative;color:var(--ink-900);margin-left:-.2rem;cursor:pointer;margin-bottom:1px;background-color:var(--ink-100);border-radius:var(--radius-sm);padding:.2em}span.copy-to-clipboard.clicked{background-color:#f4f8f0!important;border:1px solid #d1e5cf}.copy-to-clipboard>i{padding:.1em}.copy-to-clipboard:hover{background-color:#e8e2cd}pre .copy-to-clipboard{position:absolute;right:4px;top:4px;border-radius:2px}pre .copy-to-clipboard:hover{background-color:#565656;color:#fff}pre{color:var(--ink-700);padding:1.2em;margin:1em 0;border:1px solid var(--ink-200);background-color:var(--ink-50);border-radius:var(--radius-md)}.tab-nav-button{border-width:1px!important;border-color:var(--ink-200)!important;border-radius:var(--radius-sm)var(--radius-sm)0 0!important;background-color:var(--ink-100)!important;float:left;display:block;position:relative;margin-left:4px;bottom:-1px;font-family:var(--font-display);font-size:var(--text-ui);color:var(--ink-700)}.tab-nav-button:first-child{margin-left:0}.tab-nav-button.active{background-color:var(--white)!important;border-bottom-color:var(--white)!important;color:var(--ink-950)}.tab-panel{margin-top:32px;margin-bottom:32px}#advancedSettingsTabContent{border:0}.tab-content{display:block;clear:both;padding:8px;border-width:1px;border-style:solid;border-color:var(--ink-200);border-radius:0 var(--radius-sm)var(--radius-sm)var(--radius-sm)}.tab-content .tab-item{display:none}.tab-content .tab-item.active{display:block}.tab-item pre{margin-bottom:0;margin-top:0}.page-frame{max-width:var(--frame-max);min-height:calc(100vh - var(--nav-h));margin:var(--nav-h)auto 0;border-left:1px solid var(--ink-200);border-right:1px solid var(--ink-200)}.page-frame>.contentcontainer{margin-top:0;padding-bottom:var(--space-10)!important}.page-frame+.pgf{margin-top:0}.page-frame .cell{padding-right:0;padding-bottom:0;padding-left:0;border-bottom:0}.comparison-container{padding:var(--space-8)0}.compare__hero{padding:var(--space-10)0 var(--space-8);margin-bottom:var(--space-6);border-bottom:1px solid var(--ink-200)}.compare__title{margin:0 0 var(--space-3);font-size:var(--text-display);letter-spacing:var(--track-display);line-height:1.1}.compare__sub{max-width:60ch;margin:0 0 var(--space-6);font-family:var(--font-sans);font-size:1.0625rem;font-weight:400;letter-spacing:0;line-height:1.6;color:var(--ink-700)}.compare__picker{display:inline-flex;align-items:stretch;max-width:100%;border:1px solid var(--ink-200);background:var(--white)}.compare__picker-label{display:flex;align-items:center;margin:0;padding:0 14px;border-right:1px solid var(--ink-200);background:var(--ink-100);font-family:var(--font-display);font-size:var(--text-ui);font-weight:500;color:var(--ink-950);white-space:nowrap}.compare__picker .form-select{width:auto;min-width:14rem;border:0;font-family:var(--font-display);font-size:var(--text-ui);font-weight:500}.comparison-table{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--ink-200)}.comparison-table th,.comparison-table td{padding:14px 16px;border:1px solid var(--ink-200);vertical-align:middle}.comparison-table th{background:var(--ink-950);border-color:var(--ink-950);color:var(--paper);font-family:var(--font-display);font-size:var(--text-ui);font-weight:500;letter-spacing:var(--track-eyebrow);text-transform:uppercase;text-align:left}.comparison-table td{font-size:.9375rem;color:var(--ink-700)}.comparison-table td:first-child{background:var(--paper);font-weight:600;color:var(--ink-950)}.comparison-table tbody tr:hover td{background:var(--ink-50)}.comparison-table .pinggy-better{background:var(--brand-50);box-shadow:inset 2px 0 0 var(--brand-600);color:var(--ink-950);font-weight:600}.comparison-table tbody tr:hover .pinggy-better{background:var(--brand-100)}.tag-yes,.tag-no,.tag-partial{display:inline-block;padding:2px 8px;border:1px solid;font-family:var(--font-display);font-size:.75rem;font-weight:500;line-height:1.5}.tag-yes{background:color-mix(in srgb,var(--success) 12%,var(--white));border-color:color-mix(in srgb,var(--success) 35%,var(--white));color:color-mix(in srgb,var(--success) 55%,var(--ink-950))}.tag-no{background:color-mix(in srgb,var(--danger) 10%,var(--white));border-color:color-mix(in srgb,var(--danger) 30%,var(--white));color:color-mix(in srgb,var(--danger) 60%,var(--ink-950))}.tag-partial{background:color-mix(in srgb,var(--warning) 14%,var(--white));border-color:color-mix(in srgb,var(--warning) 40%,var(--white));color:color-mix(in srgb,var(--warning) 45%,var(--ink-950))}@media(max-width:767.98px){.comparison-container{padding:var(--space-4)0}.compare__hero{padding-top:var(--space-6)}.comparison-table th,.comparison-table td{padding:10px 12px;font-size:.8125rem}.compare__picker .form-select{min-width:0}}.pgf{margin-top:72px;border-top:1px solid var(--ink-200);background:var(--ink-50);font-family:var(--font-sans)}body.home .pgf{margin-top:0;border-top:0}.pgf__inner,.pgf__bar{width:min(var(--frame-max),100% - 48px);margin:0 auto}.pgf__inner{padding:56px 0 40px;display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:40px}.pgf__logo{display:inline-flex;align-items:center;text-decoration:none}.pgf__logo img{height:28px;width:auto;transform:translate(-6px,0)}.pgf__tag{font-size:14px;line-height:1.55;color:var(--ink-500);margin:14px 0 18px;max-width:240px}.pgf__social{display:flex;flex-wrap:wrap;gap:8px}.pgf__social a{width:34px;height:34px;border-radius:0;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-700);background:var(--paper);border:1px solid var(--ink-200);transition:color var(--duration-fast)var(--ease-out),border-color var(--duration-fast)var(--ease-out)}.pgf__social a:hover{color:var(--ink-950);border-color:var(--ink-950)}.pgf__social a:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.pgf__social svg{width:15px;height:15px}.pgf__forum-icon{width:15px;height:15px;background-color:currentColor;-webkit-mask:url(/assets/pinggy_forum_logo.png)center/contain no-repeat;mask:url(/assets/pinggy_forum_logo.png)center/contain no-repeat}.pgf__h{font-family:var(--font-display);font-weight:400;font-size:var(--text-eyebrow);letter-spacing:var(--track-eyebrow);line-height:1.6;text-transform:uppercase;color:var(--ink-500);margin:0 0 16px}.pgf__col ul{list-style:none;margin:0;padding:0}.pgf__col li{margin:0 0 10px;padding:0}.pgf__col li a{font-size:14.5px;color:var(--ink-700);text-decoration:none;text-underline-offset:4px;text-decoration-thickness:1px;transition:color var(--duration-fast)var(--ease-out)}.pgf__col li a:hover{color:var(--ink-950);text-decoration:underline}.pgf__col li a:focus-visible,.pgf__legal a:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.pgf__bar{border-top:1px solid var(--ink-200);padding:20px 0 32px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 24px;font-family:var(--font-display)}.pgf__bar>span{font-size:12.5px;color:var(--ink-500)}.pgf__legal{display:flex;flex-wrap:wrap;gap:8px 18px}.pgf__legal a{font-size:12.5px;color:var(--ink-500);text-decoration:none;transition:color var(--duration-fast)var(--ease-out)}.pgf__legal a:hover{color:var(--ink-950)}@media(max-width:860px){.pgf__inner{grid-template-columns:1fr 1fr;gap:32px}}@media(max-width:520px){.pgf__inner{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.pgf *{transition:none!important}}.lang-switch{position:relative}.lang-switch__toggle{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 9px;border:1px solid var(--ink-200);border-radius:var(--radius-md);background:var(--ink-50);font-size:13px;font-weight:600;line-height:1;color:var(--ink-500);cursor:pointer;transition:color var(--duration-fast),background var(--duration-fast),border-color var(--duration-fast)}.lang-switch__toggle:hover,.lang-switch__toggle[aria-expanded=true]{color:var(--ink-900);background:var(--brand-50);border-color:var(--brand-100)}.lang-switch__toggle:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.lang-switch__flag{display:block;border-radius:2px;flex:none}.lang-switch__chev{width:13px;height:13px;flex:none;opacity:.7;transition:transform var(--duration-fast)}.lang-switch__toggle[aria-expanded=true] .lang-switch__chev{transform:rotate(180deg)}.lang-switch__menu.dropdown-menu{min-width:168px;padding:5px;margin:0;border:1px solid var(--ink-200);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-lg)}.lang-switch__item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;line-height:1;color:var(--ink-700);text-decoration:none;white-space:nowrap;transition:color var(--duration-fast),background var(--duration-fast)}.lang-switch__item:hover{color:var(--ink-900);background:var(--ink-50)}.lang-switch__item.is-active{color:var(--brand-700)}.lang-switch__item:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.lang-switch__check{width:15px;height:15px;margin-left:auto;flex:none;opacity:0;color:var(--brand-600)}.lang-switch__item.is-active .lang-switch__check{opacity:1}@media(prefers-reduced-motion:reduce){.lang-switch__toggle,.lang-switch__chev,.lang-switch__item{transition:none}}@media(max-width:420px){.lang-switch__cur{display:none}.lang-switch__toggle{gap:4px;padding:0 7px}}.kyp,.kyp-index{margin:0 auto;padding:48px 0 96px;color:var(--ink-700)}.kyp{max-width:800px}.kyp-index{max-width:1200px}.kyp-eyebrow{display:inline-block;margin-bottom:16px;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500);text-decoration:none;transition:color var(--duration-fast)var(--ease-out)}a.kyp-eyebrow:hover{color:var(--ink-900)}a.kyp-eyebrow:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}.kyp-title,.kyp-index__title{margin:0;color:var(--ink-950);font-size:clamp(2.5rem,4.5vw,3.75rem);font-weight:700;line-height:1.05;letter-spacing:-.025em}.kyp-title__port{display:inline-block;font-family:var(--font-mono);font-weight:600;letter-spacing:-.04em;color:inherit;text-decoration:none;border-radius:var(--radius-md)}.kyp-title__port:hover{color:inherit}.kyp-title__port:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.kyp-title__port::after{content:"\2197";display:inline-block;margin-left:.1em;font-family:var(--font-sans);font-size:.4em;font-weight:500;letter-spacing:0;vertical-align:1.2em;color:var(--ink-400);opacity:0;transform:translate(-4px,4px);transition:opacity var(--duration-fast)var(--ease-out),transform var(--duration-base)var(--ease-out)}.kyp-title__port:hover::after,.kyp-title__port:focus-visible::after{opacity:1;transform:none}@media(hover:none){.kyp-title__port::after{opacity:.6;transform:none}}.kyp-title__rest,.kyp-index__intro{display:block;margin-top:12px;font-size:1.25rem;font-weight:500;line-height:1.5;letter-spacing:-.005em;color:var(--ink-500)}.kyp-index__intro{max-width:560px;margin-bottom:0}.kyp-meta{margin:16px 0 32px;font-size:.875rem;color:var(--ink-500)}.kyp-body{font-size:1rem;line-height:1.6}.kyp-body p,.kyp-body ul,.kyp-body ol{margin:0 0 16px}.kyp-body li{margin-bottom:4px}.kyp-body h2{margin:48px 0 16px;font-size:1.5rem;font-weight:700;line-height:1.25;letter-spacing:-.015em;color:var(--ink-900)}.kyp-body h3{margin:0 0 8px;font-size:1.125rem;font-weight:600;line-height:1.4;letter-spacing:-.01em;color:var(--ink-900)}.kyp-body hr{margin:48px 0;border:0;border-top:1px solid var(--ink-200);opacity:1}.kyp-body hr+h2{margin-top:0}.kyp-body strong{font-weight:600;color:var(--ink-900)}.kyp-body a{color:var(--brand-600);text-decoration:underline;text-decoration-color:var(--brand-100);text-underline-offset:3px;transition:color var(--duration-fast)var(--ease-out),text-decoration-color var(--duration-fast)var(--ease-out)}.kyp-body a:hover{color:var(--brand-700);text-decoration-color:initial}.kyp-body :not(pre)>code:not([x-text]){padding:2px 6px;border-radius:var(--radius-sm);background:var(--ink-100);color:var(--ink-900);font-family:var(--font-mono);font-size:.875em;word-break:break-word}.kyp-body .kyp-hero{display:grid;grid-template-columns:1fr auto;column-gap:24px;align-items:center;margin:0 0 32px;padding:24px 28px;background:#fff;border:1px solid var(--ink-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.kyp-body .kyp-hero>*{grid-column:1;margin:0}.kyp-body .kyp-hero__port{font-family:var(--font-mono);font-size:.875rem;font-weight:500;color:var(--ink-500)}.kyp-body .kyp-hero__sub{margin-top:4px;font-size:1.125rem;font-weight:600;line-height:1.4;letter-spacing:-.01em;color:var(--ink-900)}.kyp-body .kyp-hero__note{margin-top:4px;font-size:.875rem;line-height:1.5;color:var(--ink-500)}.kyp-body a.kyp-hero__btn{grid-column:2;grid-row:1/span 3;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-md);background:var(--brand-600);color:#fff;font-size:.875rem;font-weight:600;line-height:1.4;text-decoration:none;white-space:nowrap;transition:background-color var(--duration-fast)var(--ease-out),box-shadow var(--duration-fast)var(--ease-out),transform var(--duration-fast)var(--ease-out)}.kyp-body a.kyp-hero__btn::after{content:"\2197";font-weight:400}.kyp-body a.kyp-hero__btn:hover{background:var(--brand-700);color:#fff}.kyp-body a.kyp-hero__btn:active{transform:translateY(1px)}.kyp-body a.kyp-hero__btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.kyp-body .kyp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:24px 0 32px}.kyp-body .kyp-card{padding:24px;background:#fff;border:1px solid var(--ink-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.kyp-body .kyp-card h3{margin-bottom:12px}.kyp-body .kyp-card ul{margin:0;padding:0;list-style:none;font-size:.9375rem;line-height:1.5}.kyp-body .kyp-card li{margin:0;padding:10px 0;border-top:1px solid var(--ink-100)}.kyp-body .kyp-card li:first-child{padding-top:0;border-top:0}.kyp-body .kyp-card li:last-child{padding-bottom:0}.kyp-body .kyp-step{position:relative;margin:0 0 0 6px;padding:0 0 32px 28px;border-left:1px solid var(--ink-200);font-size:.9375rem}.kyp-body .kyp-step::before{content:"";position:absolute;top:7px;left:-6px;width:11px;height:11px;border:2px solid var(--ink-300);border-radius:var(--radius-pill);background:#fff}.kyp-body .kyp-step:not(:has(+.kyp-step)){padding-bottom:8px;border-left-color:transparent}.kyp-body .kyp-step p{margin-bottom:4px}.kyp-body .kyp-step p:last-child,.kyp-body .kyp-step ul:last-child{margin-bottom:0}.kyp-body .kyp-step ul{margin:8px 0 0;padding-left:20px}.kyp-body .kyp-problems{margin:24px 0 32px;background:#fff;border:1px solid var(--ink-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.kyp-body .kyp-problem{padding:20px 24px;font-size:.9375rem}.kyp-body .kyp-problem+.kyp-problem{border-top:1px solid var(--ink-200)}.kyp-body .kyp-problem p{margin-bottom:4px}.kyp-body .kyp-problem p:last-child{margin-bottom:0}.kyp-body .kyp-quick{margin:48px 0 32px;background:#0e1116;border:1px solid var(--ink-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.kyp-body .kyp-quick h3{margin:0;padding:8px 20px;background:#fff;border-bottom:1px solid var(--ink-200);font-size:.8125rem;font-weight:500;line-height:20px;letter-spacing:0;color:var(--ink-500)}.kyp-body .kyp-quick__code{margin:0;padding:20px 24px;overflow-x:auto}.kyp-body .kyp-quick .kyp-quick__code code{display:block;padding:0;background:0 0;color:#e5e7eb;font-family:var(--font-mono);font-size:.875rem;line-height:1.7}.kyp-body .kyp-quick__note{margin:0;padding:12px 24px;background:#fff;border-top:1px solid var(--ink-200);font-size:.875rem;color:var(--ink-500)}.kyp-ports{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:48px}.kyp-port{display:flex;flex-direction:column;gap:4px;padding:20px 24px;background:#fff;border:1px solid var(--ink-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--ink-700);text-decoration:none;transition:box-shadow var(--duration-slow)var(--ease-out),transform var(--duration-base)var(--ease-out),border-color var(--duration-fast)var(--ease-out)}.kyp-port:hover{border-color:var(--ink-300);box-shadow:var(--shadow-md);transform:translateY(-2px);color:var(--ink-700)}.kyp-port:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.kyp-port__num{font-family:var(--font-mono);font-size:1.125rem;font-weight:600;letter-spacing:-.02em;color:var(--ink-950)}.kyp-port__host{color:var(--ink-400);font-weight:500}.kyp-port__name{font-size:.9375rem;font-weight:600;line-height:1.4;color:var(--ink-900)}.kyp-port__desc{display:-webkit-box;margin-top:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.875rem;line-height:1.5;color:var(--ink-500)}@media(max-width:640px){.kyp,.kyp-index{padding-top:32px}.kyp-title,.kyp-index__title{font-size:2.25rem}.kyp-body .kyp-hero{grid-template-columns:1fr;padding:20px}.kyp-body a.kyp-hero__btn{grid-column:1;grid-row:auto;justify-content:center;margin-top:16px}}@media(prefers-reduced-motion:reduce){.kyp-eyebrow,.kyp-title__port::after,.kyp-body a,.kyp-body a.kyp-hero__btn,.kyp-port{transition:none}.kyp-port:hover{transform:none}}