:root {
    --blue:#007aff;
    --blue-active:#0068d8;
    --blue-bright:#0a84ff;
    --cyan:#64d2ff;

    --label:#f5f5f7;
    --label-secondary:rgba(235,235,245,.64);
    --label-tertiary:rgba(235,235,245,.38);
    --label-quaternary:rgba(235,235,245,.22);

    --bg:#000;
    --bg-raised:#0b0b0d;
    --bg-elevated:#111114;
    --bg-solid:#1c1c1e;

    --fill-thick:rgba(120,120,128,.34);
    --fill-medium:rgba(120,120,128,.24);
    --fill-thin:rgba(120,120,128,.16);

    --separator:rgba(255,255,255,.09);
    --separator-strong:rgba(255,255,255,.15);

    --font:
        -apple-system,
        BlinkMacSystemFont,
        "SF Pro Text",
        "SF Pro Display",
        "Helvetica Neue",
        "Segoe UI",
        system-ui,
        sans-serif;

    --font-mono:
        "SF Mono",
        ui-monospace,
        Menlo,
        Monaco,
        Consolas,
        "Liberation Mono",
        monospace;

    --ease-out:cubic-bezier(.23,1,.32,1);
    --ease-ios:cubic-bezier(.32,.72,0,1);
    --ease-snappy:cubic-bezier(.4,0,.2,1);

    --instant:90ms;
    --fast:180ms;
    --base:280ms;

    --r-small:8px;
    --r-medium:12px;
    --r-large:18px;
    --r-xl:24px;
    --r-pill:999px;

    --side:1.15rem;
}


*,
*::before,
*::after {
    box-sizing:border-box;
}


html {
    width:100%;

    background:#000;
    color-scheme:dark;

    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;

    scroll-behavior:smooth;
}


body {
    width:100%;
    min-width:0;
    min-height:100vh;

    margin:0;

    background:#000;
    color:var(--label);

    font-family:var(--font);
    font-size:1rem;
    line-height:1.45;

    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;

    overflow-x:hidden;
    overscroll-behavior-x:none;
}


body,
button,
input,
textarea,
select {
    font-family:var(--font);
}


button,
a {
    font:inherit;

    -webkit-tap-highlight-color:transparent;
}


button {
    padding:0;
    border:0;
}


a {
    color:inherit;
    text-decoration:none;
}


img,
svg,
video,
canvas {
    display:block;
    max-width:100%;
}


p,
h1,
h2,
h3,
h4 {
    margin-block-start:0;
}


::selection {
    background:rgba(0,122,255,.28);
    color:#fff;
}


:focus-visible {
    outline:3px solid rgba(10,132,255,.5);
    outline-offset:3px;
}


main {
    position:relative;
    display:block;

    width:100%;
}


.section-shell {
    width:100%;

    margin:0 auto;
    padding-left:var(--side);
    padding-right:var(--side);
}


.eyebrow {
    margin:0;

    color:var(--cyan);

    font-size:.68rem;
    line-height:1.25;
    font-weight:650;

    letter-spacing:.058em;
}


.button {
    min-height:48px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:.4rem;

    padding:0 1.15rem;

    border-radius:var(--r-pill);

    font-size:.9rem;
    line-height:1;
    font-weight:620;
    letter-spacing:-.012em;

    cursor:pointer;

    transform:translate3d(0,0,0);

    transition:
        transform var(--instant) var(--ease-out),
        filter var(--instant) var(--ease-out),
        background var(--fast) var(--ease-out),
        opacity var(--instant) var(--ease-out);
}


.button:active {
    transform:scale(.965) translate3d(0,0,0);
}


.button-primary {
    background:var(--blue);
    color:#fff;
}


.button-primary:active {
    background:var(--blue-active);
}


.button-secondary {
    background:rgba(255,255,255,.10);
    color:var(--label);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.055),
        inset 0 0 0 .5px rgba(255,255,255,.14);
}


.button-secondary:active {
    background:rgba(255,255,255,.14);
}


.button-light {
    background:#f5f5f7;
    color:#111114;
}


.button-light:active {
    filter:brightness(.9);
}


.text-link {
    min-height:44px;

    display:inline-flex;
    align-items:center;

    gap:.4rem;

    margin-top:1.4rem;

    color:var(--label);

    font-size:.91rem;
    line-height:1.3;
    font-weight:620;
    letter-spacing:-.012em;
}


.text-link span {
    display:inline-block;

    color:var(--blue-bright);

    transform:translate3d(0,0,0);

    transition:transform var(--fast) var(--ease-out);
}


.text-link:active {
    opacity:.58;
}


.text-link:active span {
    transform:translate3d(.2rem,0,0);
}


.site-header {
    position:fixed;

    z-index:1000;

    top:0;
    left:0;
    right:0;

    padding:
        max(.55rem,env(safe-area-inset-top))
        .55rem
        0;

    pointer-events:none;
}


.site-header::before {
    content:"";

    position:absolute;
    z-index:-1;

    top:0;
    left:0;
    right:0;

    height:8.5rem;

    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.68) 0%,
            rgba(0,0,0,.32) 58%,
            transparent 100%
        );

    opacity:0;

    pointer-events:none;

    transition:opacity 180ms var(--ease-out);
}


.nav-shell {
    width:100%;

    display:grid;
    grid-template-columns:auto 1fr auto;
    grid-template-areas:
        "brand space right"
        "nav nav nav";

    align-items:center;

    padding:.38rem .42rem .44rem .9rem;

    border-radius:1.45rem;

    background:rgba(24,24,27,.95);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.09),
        inset 0 0 0 .5px rgba(255,255,255,.045),
        0 0 0 .5px rgba(0,0,0,.72),
        0 8px 28px rgba(0,0,0,.34);

    pointer-events:auto;

    transform:translate3d(0,0,0);

    transition:
        transform 200ms var(--ease-out),
        background 180ms var(--ease-out),
        border-radius 200ms var(--ease-out);
}


.site-header.scrolled::before,
.site-header.is-scrolled::before {
    opacity:1;
}


.site-header.scrolled .nav-shell,
.site-header.is-scrolled .nav-shell {
    background:rgba(28,28,30,.98);

    transform:scale(.982) translate3d(0,0,0);
}


.brand {
    grid-area:brand;

    min-height:42px;

    display:inline-flex;
    align-items:center;

    width:fit-content;

    color:var(--label);

    font-size:1.03rem;
    line-height:1;

    font-weight:660;
    letter-spacing:-.02em;

    white-space:nowrap;
}


.brand span {
    color:var(--blue-bright);
}


.nav-right {
    grid-area:right;

    display:flex;
    align-items:center;

    margin-left:auto;
}


.nav-contact {
    display:none;
}


.nav-login {
    min-height:40px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:0 .9rem;

    border-radius:var(--r-pill);

    background:var(--blue);
    color:#fff;

    font-size:.76rem;
    line-height:1;
    font-weight:620;
    letter-spacing:-.01em;

    white-space:nowrap;

    transform:translate3d(0,0,0);

    transition:
        transform var(--instant) var(--ease-out),
        background var(--fast) var(--ease-out),
        filter var(--instant) var(--ease-out);
}


.nav-login:active {
    transform:scale(.95) translate3d(0,0,0);
    background:var(--blue-active);
}


.main-nav {
    grid-area:nav;

    display:flex;
    align-items:center;

    width:100%;

    margin-top:.15rem;

    overflow-x:auto;
    overscroll-behavior-x:contain;

    scrollbar-width:none;

    -webkit-overflow-scrolling:touch;
}


.main-nav::-webkit-scrollbar {
    display:none;
}


.main-nav a {
    min-height:37px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    flex:0 0 auto;

    padding:0 .64rem;

    color:rgba(245,245,247,.53);

    font-size:.7rem;
    line-height:1;
    font-weight:520;
    letter-spacing:.005em;

    white-space:nowrap;

    transition:
        color var(--fast) var(--ease-out),
        opacity var(--instant) var(--ease-out),
        transform var(--instant) var(--ease-out);
}


.main-nav a:first-child {
    margin-left:-.25rem;
}


.main-nav a:active {
    color:#fff;
    opacity:.62;

    transform:scale(.96);
}


.site-footer {
    width:100%;

    margin:0;
    padding:
        4rem
        var(--side)
        max(1.7rem,env(safe-area-inset-bottom));

    color:var(--label-secondary);

    background:#000;
}


.footer-top {
    padding-top:2rem;

    border-top:.5px solid var(--separator);
}


.footer-brand-block {
    width:100%;
}


.footer-brand {
    min-height:auto;

    font-size:1.12rem;
}


.footer-brand-block p {
    max-width:19rem;

    margin:.85rem 0 0;

    color:var(--label-secondary);

    font-size:.84rem;
    line-height:1.48;
}


.footer-email {
    min-height:42px;

    display:inline-flex;
    align-items:center;

    margin-top:.25rem;

    color:var(--label);

    font-size:.84rem;
    line-height:1.3;
    font-weight:520;

    transition:opacity var(--instant) var(--ease-out);
}


.footer-email:active {
    opacity:.5;
}


.footer-links {
    display:grid;
    grid-template-columns:1fr 1fr;

    gap:2.1rem 1.4rem;

    margin-top:2.8rem;
}


.footer-links > div {
    display:flex;
    flex-direction:column;

    align-items:flex-start;
}


.footer-links > div:last-child {
    grid-column:1 / -1;

    display:grid;
    grid-template-columns:auto 1fr;

    column-gap:1.2rem;
    align-items:center;
}


.footer-links > div:last-child strong {
    grid-column:1 / -1;
}


.footer-links strong {
    margin-bottom:.6rem;

    color:var(--label);

    font-size:.68rem;
    line-height:1.2;
    font-weight:650;

    letter-spacing:.025em;
}


.footer-links a {
    min-height:34px;

    display:inline-flex;
    align-items:center;

    color:rgba(235,235,245,.52);

    font-size:.77rem;
    line-height:1.3;

    transition:
        color var(--fast) var(--ease-out),
        opacity var(--instant) var(--ease-out);
}


.footer-links a:active {
    color:#fff;
    opacity:.58;
}


.footer-bottom {
    display:block;

    margin-top:3rem;
    padding-top:1rem;

    border-top:.5px solid rgba(255,255,255,.065);

    color:rgba(235,235,245,.30);

    font-size:.66rem;
    line-height:1.5;

    letter-spacing:.008em;
}


.footer-bottom p {
    margin:0;
}


.footer-bottom p + p {
    margin-top:.32rem;
}


@media (max-width:380px) {
    :root {
        --side:1rem;
    }

    .site-header {
        padding-left:.42rem;
        padding-right:.42rem;
    }

    .nav-shell {
        padding-left:.78rem;
    }

    .brand {
        font-size:.98rem;
    }

    .nav-login {
        padding-inline:.75rem;
        font-size:.72rem;
    }

    .main-nav a {
        padding-inline:.55rem;
        font-size:.68rem;
    }

    .footer-links {
        column-gap:1rem;
    }
}


@media (prefers-reduced-transparency:reduce) {
    .nav-shell,
    .site-header.scrolled .nav-shell,
    .site-header.is-scrolled .nav-shell {
        background:#1c1c1e;
    }
}


@media (prefers-contrast:more) {
    :root {
        --label-secondary:rgba(245,245,247,.84);
        --label-tertiary:rgba(245,245,247,.64);
    }

    .nav-shell {
        box-shadow:
            inset 0 0 0 1px rgba(255,255,255,.42),
            0 8px 28px rgba(0,0,0,.4);
    }

    .button-secondary {
        box-shadow:
            inset 0 0 0 1px rgba(255,255,255,.42);
    }

    .footer-top,
    .footer-bottom {
        border-color:rgba(255,255,255,.28);
    }
}


@media (prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after {
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;

        transition-duration:.01ms !important;
        transition-delay:0ms !important;

        scroll-behavior:auto !important;
    }

    .site-header.scrolled .nav-shell,
    .site-header.is-scrolled .nav-shell,
    .button:active,
    .nav-login:active,
    .main-nav a:active,
    .text-link:active span {
        transform:none;
    }
}