/* ===== Investor login: background video =====
   Mirrors the gate screen on the hub site: the reel fills the screen, a
   three-stop scrim keeps the card and the header legible over it, and the
   gradient from styles.css stays underneath as the poster/fallback while the
   file loads (or when it never plays, e.g. Low Power Mode).

   Class is doubled up (.inv-login.inv-login--video) so these win over the
   compiled .inv-login rules in styles.css whatever order the bundle lands in. */
.inv-login.inv-login--video {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.inv-login__video,
.inv-login__scrim {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.inv-login__video {
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.87);
}

.inv-login__scrim {
    z-index: 1;
    background:
        linear-gradient(rgba(0, 0, 0, 0.13), rgba(0, 0, 0, 0.13)),
        linear-gradient(to bottom, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.18) 18%, rgba(0, 0, 0, 0) 35%),
        linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.58) 22%, rgba(0, 0, 0, 0.28) 48%, rgba(0, 0, 0, 0) 78%);
}

/* Everything the page actually shows sits above both layers. */
.inv-login--video > .inv-login__card,
.inv-login--video > .inv-login__links {
    position: relative;
    z-index: 2;
}

/* Motion-sensitive visitors get the gradient underneath, not a looping reel. */
@media (prefers-reduced-motion: reduce) {
    .inv-login__video {
        display: none;
    }
}

/* Heading and lede are centred together — centring the lede alone under a
   left-aligned title reads as a mistake. */
.inv-login__intro {
    text-align: center;
}

/* The contact hint sits under the form, centred beneath the full-width submit
   button, with no rule above it. Class is doubled so `border-top` beats the
   compiled `.inv-login__hint` in styles.css — that file sorts after this one
   in the bundle, so equal specificity would lose. */
.inv-login__hint.inv-login__hint {
    text-align: center;
    border-top: none;
    padding-top: 0;
}

/* ===== Access request form =====
   Five fields need more room than the password card, and each one needs a
   visible label — the login card gets away with placeholders because it has a
   single field. `.inv-login input` in styles.css already covers the text
   inputs; only the label and the textarea are new. */
.inv-login__card--wide {
    max-width: 520px;
}

.inv-field__label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--fg-muted);
}

.inv-textarea {
    display: block;
    width: 100%;
    margin-bottom: 1rem;
    padding: 0.75rem 0.875rem;
    font: inherit;
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--fg);
    background: #fff;
    border: 1px solid var(--border-muted);
    border-radius: 7px;
    resize: vertical;
}
.inv-textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft-hi);
}