@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:PP Neue Montreal;src:url(/assets/PPNeueMontreal-Thin-D_9qmDJ5.woff2) format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/assets/PPNeueMontreal-ThinItalic-Z1coOvHh.woff2) format("woff2");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/assets/PPNeueMontreal-Light-lpjvidLk.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/assets/PPNeueMontreal-Book-D41FGcRQ.woff2) format("woff2");font-weight:350;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/assets/PPNeueMontreal-Regular-CJilGUkR.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/assets/PPNeueMontreal-Italic-DUCxtETt.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/assets/PPNeueMontreal-Medium-4Q3aZZ18.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/assets/PPNeueMontreal-Bold-CAfhibNQ.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/assets/PPNeueMontreal-BoldItalic-jjcTrahV.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(/assets/IBMPlexSansArabic-Thin-DeeQg9FF.woff2) format("woff2");font-weight:100;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(/assets/IBMPlexSansArabic-ExtraLight-D5b5GsX-.woff2) format("woff2");font-weight:200;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(/assets/IBMPlexSansArabic-Light-Bqg3MZri.woff2) format("woff2");font-weight:300;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(/assets/IBMPlexSansArabic-Regular-JOfZ22lT.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(/assets/IBMPlexSansArabic-Medium-CRow2O-q.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(/assets/IBMPlexSansArabic-SemiBold-BwK1y77m.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(/assets/IBMPlexSansArabic-Bold-DPzMg9d2.woff2) format("woff2");font-weight:700;font-display:swap}:root{--pill-h: 34px;--pill-pad: 10px;--pill-gap: 9px;--pill-bg: rgba(0, 0, 0, .22);--pill-bg-hover: rgba(0, 0, 0, .22);--pill-bg-dark: rgba(255, 255, 255, .15);--pill-bg-dark-hover: rgba(255, 255, 255, .2);--pill-bg-nav-dark: rgba(56, 56, 56, .62);--pill-bg-nav-dark-hover: rgba(72, 72, 72, .7)}.pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;margin:0;height:var(--pill-h);padding:0 var(--pill-pad);display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--pill-bg);-webkit-backdrop-filter:blur(24px) saturate(1.2);backdrop-filter:blur(24px) saturate(1.2);color:#fff;font:400 15px/16.8px var(--font-mono);letter-spacing:0;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;transition:border-radius .7s var(--ease-out-expo),background-color .4s var(--ease-out-expo)}.pill:hover{border-radius:calc(var(--pill-h) / 2);background:var(--pill-bg-hover)}.pill:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.pill--on-dark{background:var(--pill-bg-dark)}.pill--on-dark:hover{background:var(--pill-bg-dark-hover)}.pill--on-dark:focus-visible{outline-color:#fff}.pill--icon{width:var(--pill-h);padding:0}.pill--icon svg{width:20px;height:20px;overflow:visible}.pill--icon .snd-wave{transition:opacity .2s,transform .25s cubic-bezier(.2,.8,.2,1);transform-origin:10px 10px}.pill--icon .snd-off{opacity:0;transition:opacity .2s}.pill--icon[aria-pressed=false] .snd-wave{opacity:0;transform:scale(.7)}.pill--icon[aria-pressed=false] .snd-off{opacity:1}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--pill-gap);padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));pointer-events:none}.nav>*{pointer-events:auto}[data-nav=dark] .nav .pill,[data-nav-tone=dark] .nav .pill{background:var(--pill-bg-nav-dark)}[data-nav=dark] .nav .pill:hover,[data-nav-tone=dark] .nav .pill:hover{background:var(--pill-bg-nav-dark-hover)}[data-nav=dark] .nav .pill:focus-visible,[data-nav-tone=dark] .nav .pill:focus-visible{outline-color:#fff}.nav__logo{justify-self:start;position:relative;display:block;width:52px;height:59px;margin:-12px 0 -13px -3px;border-radius:8px}.nav__logo img,.nav__logo canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.nav__logo img{object-fit:contain;transition:opacity .3s}.nav__logo.is-3d img{opacity:0}.nav__logo canvas{opacity:0;transition:opacity .3s}.nav__logo.is-3d canvas{opacity:1}[data-logo-dock] .nav__logo>*{visibility:hidden}[data-logo-dock].logo-docked .nav__logo>*{visibility:visible}.nav__pills,.nav__end{display:flex;gap:var(--pill-gap)}.nav__end{justify-self:end}.nav__m-only,.nav__menu,.nav__big{display:none}@media (max-width: 860px){.nav{grid-template-columns:1fr auto;padding-left:var(--gutter);padding-right:var(--gutter)}.nav__menu{display:inline-flex;min-width:var(--pill-h)}.nav__end .pill--contact,.nav__d-only{display:none}.nav__m-only{display:inline-flex}.nav__pills{position:fixed;top:calc(16px + env(safe-area-inset-top,0px));left:var(--gutter);right:calc(var(--gutter) + var(--pill-h) + 12px);flex-wrap:wrap;align-content:flex-start;gap:6px;pointer-events:none}.nav__pills .pill{opacity:0;transform:translateY(-6px);transition:opacity .35s var(--ease-out-expo),transform .5s var(--ease-out-expo),border-radius .7s var(--ease-out-expo),background-color .4s var(--ease-out-expo)}.nav:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:#fff;opacity:0;transition:opacity .35s var(--ease-out-expo)}.nav__logo,.nav__end .pill--icon{transition:opacity .25s}.nav.is-open:before{opacity:1;pointer-events:auto}.nav.is-open .nav__logo{opacity:0;pointer-events:none}.nav.is-open .nav__end .pill--icon{display:none}.nav.is-open .nav__pills{pointer-events:auto}.nav.is-open .pill,[data-nav=dark] .nav.is-open .pill,[data-nav-tone=dark] .nav.is-open .pill{background:var(--pill-bg)}.nav.is-open .nav__pills .pill{opacity:1;transform:none}.nav.is-open .nav__pills .pill:nth-child(2){transition-delay:.03s}.nav.is-open .nav__pills .pill:nth-child(3){transition-delay:.06s}.nav.is-open .nav__pills .pill:nth-child(4){transition-delay:.09s}.nav.is-open .nav__pills .pill:nth-child(5){transition-delay:.12s}.nav.is-open .nav__pills .pill:nth-child(6){transition-delay:.15s}.nav.is-open .nav__menu{width:var(--pill-h);padding:0;font-size:18px}.nav__big{display:block;position:fixed;left:var(--gutter);right:var(--gutter);bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:1;font:400 calc((100vw - 2 * var(--gutter)) * .2527)/.8 var(--font-display);letter-spacing:-.03em;text-decoration:none;color:#c7c7c7;white-space:nowrap;opacity:0;transform:translateY(20%);pointer-events:none;transition:opacity .4s var(--ease-out-expo),transform .7s var(--ease-out-expo)}.nav.is-open .nav__big{opacity:1;transform:none;pointer-events:auto;transition-delay:.08s}}.curtain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0b0b0c;transform:translateY(100%);pointer-events:none;will-change:transform}.curtain-covered .curtain{transform:translateY(0)}:root{--paper: #ffffff;--ink: #0b0b0c;--mute: #8b8b90;--font-display: "PP Neue Montreal", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-plex: "IBM Plex Sans Arabic", "PP Neue Montreal", sans-serif;--gutter: max(16px, env(safe-area-inset-left, 0px));--ease-out-expo: cubic-bezier(.16, 1, .3, 1);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{background:var(--paper);-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.4 var(--font-display);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,canvas,svg{display:block}.cursor-dot{position:fixed;left:0;top:0;z-index:2000;pointer-events:none;width:8px;height:8px;margin:-4px 0 0 -4px;mix-blend-mode:difference;opacity:0;transition:opacity .25s}.cursor-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#fff;transition:transform .45s var(--ease-out-expo)}.cursor-dot.is-on{opacity:1}.cursor-dot.is-link:after{transform:scale(2.3)}.cursor-dot.is-down:after{transform:scale(.75)}.cursor-dot.is-link.is-down:after{transform:scale(1.8)}
