@font-face {
    font-family:Plex;
    src:url('/assets/ibm-plex-sans.ttf') format('truetype');
    font-weight:100 700;
    font-style:normal;
    font-display:swap;
}
:root {
    color-scheme:dark;
    --bg:#080f1b;
    --surface:#101c2e;
    --text:#f1f5ff;
    --muted:#b4c1d4;
    --blue:#4b91ff;
    --line:#29394f;
    --danger:#ffb4ab;
}
* {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:32px;
}
body {
    margin:0;
    background:var(--bg);
    color:var(--text);
    font:18px/1.65 Plex,Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
}
h1,h2,h3,p,figure {
    margin:0;
}
h1,h2,h3 {
    font-weight:550;
    line-height:1.15;
    letter-spacing:-.035em;
}
h1 {
    font-size:clamp(44px,5.3vw,74px);
}
h2 {
    font-size:clamp(30px,3vw,42px);
}
h3 {
    font-size:26px;
}
p {
    color:var(--muted);
}
a {
    color:inherit;
    text-decoration:none;
    touch-action:manipulation;
}
a:hover {
    color:#91bbff;
}
a:focus-visible,button:focus-visible,input:focus-visible {
    outline:3px solid #91bbff;
    outline-offset:5px;
}
button,input {
    font:inherit;
}
button,a {
    -webkit-tap-highlight-color:transparent;
}
img {
    display:block;
    max-width:100%;
    height:auto;
}
svg {
    width:32px;
    height:32px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.6;
    stroke-linecap:round;
    stroke-linejoin:round;
    flex-shrink:0;
}
::selection {
    background:#2c5895;
    color:#fff;
}
.shell {
    width:min(1180px,calc(100% - 80px));
    margin-inline:auto;
}
.skip-link {
    position:fixed;
    top:12px;
    left:12px;
    z-index:10;
    background:var(--text);
    color:var(--bg);
    padding:12px 20px;
    transform:translateY(-200%);
}
.skip-link:focus {
    transform:none;
}
.site-header {
    border-bottom:1px solid var(--line);
}
.header-inner {
    min-height:96px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
}
.brand {
    display:inline-flex;
    align-items:center;
    gap:12px;
    font-size:28px;
    font-weight:600;
    letter-spacing:-.03em;
}
.brand img {
    width:48px;
    height:48px;
    border-radius:10px;
}
.main-nav {
    display:flex;
    align-items:center;
    gap:32px;
}
.main-nav a {
    display:inline-flex;
    align-items:center;
    min-height:48px;
}
.hero {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
    align-items:center;
    gap:80px;
    padding-block:72px 88px;
}
.hero h1 span {
    color:var(--blue);
}
.hero-description {
    font-size:22px;
    line-height:1.55;
    margin-top:30px;
    max-width:600px;
}
.hero-actions {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:24px;
    margin-top:36px;
}
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    min-height:58px;
    padding:14px 24px;
    border:1px solid transparent;
    border-radius:14px;
    font-size:18px;
    font-weight:550;
    text-align:center;
    line-height:1.45;
    cursor:pointer;
    transition:background .2s,color .2s,transform .2s;
}
.button-primary {
    background:var(--blue);
    color:#06152c;
}
.button-primary:hover {
    background:#78acff;
    color:#06152c;
}
.button:active {
    transform:translateY(1px);
}
.button-secondary {
    border-color:var(--line);
    background:var(--surface);
    color:var(--text);
}
.text-link {
    display:inline-flex;
    align-items:center;
    min-height:48px;
    text-decoration:underline;
    text-underline-offset:6px;
}
.product-shot {
    justify-self:center;
    width:min(100%,294px);
    padding:5px;
    border:1px solid #43516a;
    background:#101b2c;
    border-radius:28px;
    box-shadow:0 24px 70px #0004;
}
.product-shot img {
    border-radius:23px;
    width:100%;
}
.features-section {
    padding-block:56px 112px;
    border-top:1px solid var(--line);
}
.section-heading {
    max-width:700px;
    margin-bottom:48px;
}
.section-heading p {
    margin-top:20px;
    font-size:20px;
}
.feature-list {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 64px;
}
.feature {
    display:flex;
    align-items:flex-start;
    gap:22px;
    padding-block:34px;
    border-top:1px solid var(--line);
}
.feature svg {
    color:var(--blue);
    margin-top:3px;
}
.feature p {
    margin-top:16px;
}
.download-section {
    background:var(--surface);
    padding-block:64px;
}
.download-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:48px;
}
.download-inner p {
    max-width:610px;
    margin-top:18px;
    font-size:20px;
}
.download-inner .button {
    flex-shrink:0;
}
.site-footer {
    border-top:1px solid var(--line);
}
.footer-inner {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
    padding-block:36px;
    color:var(--muted);
}
.site-footer nav {
    display:flex;
    flex-wrap:wrap;
    gap:16px 28px;
}
.site-footer a,.simple-footer a {
    display:inline-flex;
    align-items:center;
    min-height:44px;
}
.footer-inner>span {
    padding-block:7px;
}
.simple-footer {
    width:min(1180px,calc(100% - 80px));
    margin:auto;
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:12px 28px;
    padding-block:32px;
    border-top:1px solid var(--line);
    color:var(--muted);
}
.legal-shell {
    padding-block:64px 88px;
}
.legal-hero {
    margin-bottom:48px;
    max-width:850px;
}
.legal-hero h1 {
    font-size:clamp(36px,4.6vw,60px);
    overflow-wrap:anywhere;
}
.legal-hero>p {
    margin-top:24px;
    font-size:20px;
}
.breadcrumb {
    display:inline-flex;
    align-items:center;
    min-height:44px;
    margin-bottom:24px;
    color:var(--muted);
}
.legal-layout {
    display:grid;
    grid-template-columns:220px minmax(0,1fr);
    gap:64px;
}
.legal-toc {
    align-self:start;
    position:sticky;
    top:24px;
    display:grid;
    gap:8px;
}
.legal-toc a {
    padding-block:8px;
    line-height:1.4;
}
.legal-toc p {
    margin-bottom:12px;
    color:var(--text);
}
.legal-content {
    max-width:800px;
    min-width:0;
}
.legal-content section+section {
    margin-top:44px;
}
.legal-content h2 {
    font-size:28px;
    margin-bottom:20px;
}
.legal-content p+p {
    margin-top:20px;
}
.legal-content a {
    color:#91bbff;
    text-decoration:underline;
    text-underline-offset:4px;
}
.legal-content ul,.legal-content ol {
    padding-left:24px;
    margin:20px 0;
    color:var(--muted);
}
.legal-content li+li {
    margin-top:12px;
}
.legal-content strong {
    color:var(--text);
    font-weight:550;
}
.legal-content .button {
    color:#06152c;
    text-decoration:none;
    margin-top:20px;
}
.legal-table-wrap {
    overflow-x:auto;
}
.legal-table {
    border-collapse:collapse;
    width:100%;
    min-width:520px;
}
.legal-table th,.legal-table td {
    padding:18px 16px;
    text-align:left;
    border-bottom:1px solid var(--line);
    vertical-align:top;
}
.legal-table th {
    font-weight:550;
}
.legal-table td {
    color:var(--muted);
}
.visually-hidden {
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.form-page {
    max-width:640px;
    margin:64px auto 88px;
}
.form-page h1 {
    font-size:clamp(36px,5vw,48px);
}
.form-page>p {
    margin-block:24px 32px;
}
.form-card {
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:20px;
    padding:32px;
}
.field {
    display:grid;
    gap:10px;
    margin-bottom:24px;
}
.field input:not([type=checkbox]) {
    display:block;
    width:100%;
    min-height:58px;
    padding:12px 16px;
    background:var(--bg);
    border:1px solid #526078;
    border-radius:10px;
    color:var(--text);
}
.field input[aria-invalid=true] {
    border-color:var(--danger);
}
.field input[type=checkbox] {
    width:24px;
    height:24px;
    accent-color:var(--blue);
    flex-shrink:0;
}
.form-actions {
    margin-top:24px;
    display:flex;
    flex-wrap:wrap;
    gap:16px;
}
.form-card h1+p {
    margin-top:24px;
}
.form-card p+form {
    margin-top:28px;
}
.form-card form+p {
    margin-top:28px;
}
.form-actions .button {
    flex:1 1 200px;
}
.form-actions .button:not(.button-primary):not(.button-danger) {
    border-color:var(--line);
}
.button-danger {
    background:#ffb4ab;
    color:#3d0806;
}
.button-danger:hover {
    background:#ffc7c0;
    color:#3d0806;
}
.confirmation {
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin-block:24px;
}
.confirmation input {
    width:24px;
    height:24px;
    flex-shrink:0;
    margin-top:4px;
    accent-color:var(--blue);
}
.form-error,.form-success {
    margin-block:24px;
    padding:18px 20px;
    border:1px solid var(--danger);
    border-radius:10px;
    color:var(--text);
    background:#361e27;
}
.form-success {
    border-color:#72cfa8;
    background:#112b29;
}
.form-error ul {
    padding-left:24px;
    margin:8px 0 0;
}
.form-card .button {
    width:100%;
    margin-top:12px;
}
.portal {
    padding-block:72px 88px;
    max-width:760px;
}
.portal h1 {
    font-size:clamp(40px,5vw,60px);
}
.portal p {
    font-size:20px;
    margin-top:24px;
}
.portal .button {
    margin-top:32px;
}
.portal-links {
    display:flex;
    flex-wrap:wrap;
    gap:16px 28px;
    margin-top:36px;
}
.portal-links a {
    min-height:44px;
    display:inline-flex;
    align-items:center;
    text-decoration:underline;
    text-underline-offset:5px;
}
.error-page {
    padding-block:96px;
    max-width:760px;
}
.error-page p {
    margin-block:24px 32px;
}
@media(max-width:1000px) {
    .hero {
        gap:44px;
    }
    .hero-actions {
        align-items:flex-start;
        flex-direction:column;
        gap:16px;
    }
    .feature-list {
        gap:0 36px;
    }
    .download-inner {
        align-items:flex-start;
        flex-direction:column;
        gap:28px;
    }
    .footer-inner {
        flex-direction:column;
        gap:12px;
    }
    .legal-layout {
        grid-template-columns:180px minmax(0,1fr);
        gap:36px;
    }
}
@media(max-width:700px) {
    .shell,.simple-footer {
        width:calc(100% - 40px);
    }
    .header-inner {
        min-height:84px;
        gap:16px;
        flex-wrap:wrap;
        padding-block:16px;
    }
    .brand {
        font-size:26px;
    }
    .brand img {
        width:42px;
        height:42px;
    }
    .main-nav {
        gap:20px;
        flex-wrap:wrap;
    }
    .main-nav a {
        font-size:18px;
    }
    .hero {
        grid-template-columns:1fr;
        padding-block:48px 56px;
        gap:48px;
    }
    .hero-description {
        font-size:20px;
        margin-top:24px;
    }
    .hero-actions {
        margin-top:28px;
    }
    .hero h1 {
        font-size:clamp(42px,8vw,60px);
    }
    .product-shot {
        width:264px;
    }
    .features-section {
        padding-block:40px 56px;
    }
    .section-heading {
        margin-bottom:28px;
    }
    .feature-list {
        grid-template-columns:1fr;
    }
    .feature {
        gap:18px;
        padding-block:28px;
    }
    .feature h3 {
        font-size:24px;
    }
    .feature svg {
        width:28px;
        height:28px;
    }
    .download-section {
        padding-block:44px;
    }
    .footer-inner {
        padding-block:28px;
    }
    .site-footer nav {
        gap:10px 22px;
    }
    .legal-shell {
        padding-block:40px 56px;
    }
    .legal-layout {
        display:block;
    }
    .legal-toc {
        display:none;
    }
    .legal-hero {
        margin-bottom:36px;
    }
    .legal-hero h1 {
        font-size:clamp(28px,7.6vw,36px);
        hyphens:auto;
    }
    .legal-content h2 {
        font-size:26px;
    }
    .form-page {
        margin-block:40px 56px;
    }
    .form-card {
        padding:24px 20px;
    }
    .portal {
        padding-block:48px 64px;
    }
    .portal-links {
        flex-direction:column;
        gap:8px;
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    *,*::before,*::after {
        transition:none!important;
        animation:none!important;
    }
}
