/* =============================================================================
   BOOTSTRAP 5.3.0 — LANDING COMPATIBILITY SUBSET

   The public landing page intentionally does not download bootstrap.min.css.
   Only Bootstrap declarations that survive the platform CSS cascade are kept
   here. Rules overridden later by Lamha components are deliberately omitted so
   moving this subset after the core bundle cannot change computed geometry.
   ============================================================================= */

body {
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
}

b,
strong {
    font-weight: bolder;
}

.small,
small {
    font-size: .875em;
}

img,
svg {
    vertical-align: middle;
}

button {
    border-radius: 0;
}

button:focus:not(:focus-visible) {
    outline: 0;
}

button,
input,
optgroup,
select,
textarea {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

button,
select {
    text-transform: none;
}

[role="button"] {
    cursor: pointer;
}

[type="button"],
[type="reset"],
[type="submit"],
button {
    -webkit-appearance: button;
}

[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled),
button:not(:disabled) {
    cursor: pointer;
}

::-moz-focus-inner {
    padding: 0;
    border-style: none;
}

[type="search"] {
    outline-offset: -2px;
    -webkit-appearance: textfield;
}

::-webkit-search-decoration {
    -webkit-appearance: none;
}

[hidden] {
    display: none !important;
}

.container-fluid {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 0;
    width: 100%;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
    margin-right: auto;
    margin-left: auto;
}

.navbar {
    --bs-navbar-padding-x: 0;
    --bs-navbar-padding-y: .5rem;
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);
}

.navbar > .container-fluid {
    display: flex;
    flex-wrap: inherit;
    align-items: center;
    justify-content: space-between;
}

/* These are the only Bootstrap .btn declarations not replaced by style.css
   and the navbar's own button system in the original load order. */
.btn {
    text-align: center;
    vertical-align: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.d-flex {
    display: flex !important;
}

.d-none {
    display: none !important;
}

.w-100 {
    width: 100% !important;
}

.align-items-center {
    align-items: center !important;
}

.px-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
}

.py-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
}

.gap-1 {
    gap: .25rem !important;
}

.gap-2 {
    gap: .5rem !important;
}

@media (min-width: 992px) {
    .navbar-expand-lg {
        flex-wrap: nowrap;
        justify-content: flex-start;
    }

    .d-lg-block {
        display: block !important;
    }

    .d-lg-flex {
        display: flex !important;
    }

    .d-lg-none {
        display: none !important;
    }
}

/* =============================================================================
   LAMHA — LANDING NAVBAR OFFSET
   ============================================================================= */

body:has(.home-experience--landing) {
    padding-top: var(--navbar-height);
}

@media (max-width: 991.98px) {
    body:has(.home-experience--landing) #navbar {
        padding-top: var(--space-2);
    }
}

@media (max-width: 768px) {
    body:has(.home-experience--landing) {
        padding-top: var(--navbar-height-mobile);
    }
}

/* =============================================================================
   LAMHA — CINEMATIC HERO ENTRANCE

   The artwork opens through a narrow horizontal mask, then the copy follows in
   a restrained stagger. There is no loader or skeleton: the brand is the first
   thing the user sees and canvas failure never blocks readable content.
   ============================================================================= */

.home-experience--landing .home-hero__stage.has-hero-motion {
    --hero-reveal-ease: cubic-bezier(.16, 1, .3, 1);
}

.home-experience--landing .home-hero__stage.has-hero-motion .home-hero__canvas {
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    animation: none !important;
    opacity: 0;
    clip-path: inset(47% 7% 47% 7% round var(--radius-full));
    filter: blur(22px) saturate(.74) brightness(.76);
    transform: translate3d(0, 0, 0) scale(1.045);
    transform-origin: 50% 58%;
    will-change: transform, opacity, clip-path, filter;
    transition:
        opacity 1100ms var(--hero-reveal-ease),
        clip-path 1450ms var(--hero-reveal-ease),
        filter 1250ms var(--hero-reveal-ease),
        transform 1450ms var(--hero-reveal-ease);
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__canvas {
    opacity: 1;
    clip-path: inset(0 round 0);
    filter: blur(0) saturate(1) brightness(1);
    transform: translate3d(0, 0, 0) scale(1);
}

.home-experience--landing .home-hero__stage.has-hero-motion::before {
    content: '';
    position: absolute;
    z-index: 6;
    left: 50%;
    top: 58%;
    width: min(820px, 86vw);
    height: 1px;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, -50%) scaleX(.04);
    transform-origin: center;
    background: linear-gradient(
        90deg,
        transparent 0%,
        color-mix(in srgb, var(--blue-400) 20%, transparent) 16%,
        color-mix(in srgb, var(--color-white) 88%, transparent) 48%,
        color-mix(in srgb, var(--yellow-400) 24%, transparent) 70%,
        transparent 100%
    );
    box-shadow:
        0 0 18px color-mix(in srgb, var(--blue-400) 24%, transparent),
        0 0 52px color-mix(in srgb, var(--blue-500) 12%, transparent);
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready::before {
    animation: lamha-hero-glimpse 1300ms 80ms var(--hero-reveal-ease) both;
}

.home-experience--landing .home-hero__stage.has-hero-motion::after {
    content: '';
    position: absolute;
    z-index: 5;
    left: 50%;
    top: 58%;
    width: min(640px, 68vw);
    aspect-ratio: 2 / 1;
    pointer-events: none;
    opacity: 0;
    border-radius: var(--radius-full);
    transform: translate(-50%, -50%) scale(.25);
    background: radial-gradient(
        ellipse at center,
        color-mix(in srgb, var(--gray-100) 14%, transparent),
        color-mix(in srgb, var(--blue-500) 7%, transparent) 38%,
        transparent 72%
    );
    filter: blur(28px);
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready::after {
    animation: lamha-hero-bloom 1450ms 70ms var(--hero-reveal-ease) both;
}

.home-experience--landing .home-hero__stage.has-hero-motion .home-hero__atmosphere {
    opacity: 0;
    transform: scale(1.018);
    transform-origin: 50% 58%;
    transition:
        opacity 1000ms 160ms var(--hero-reveal-ease),
        transform 1300ms var(--hero-reveal-ease);
    will-change: opacity, transform;
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__atmosphere {
    opacity: 1;
    transform: scale(1);
}

.home-experience--landing .home-hero__stage.has-hero-motion .home-hero__content {
    opacity: 1;
    transform: translate(-50%, -50%);
    filter: none;
    will-change: transform, opacity, filter;
}

.home-experience--landing .home-hero__stage.has-hero-motion .home-hero__kicker,
.home-experience--landing .home-hero__stage.has-hero-motion .home-hero__title,
.home-experience--landing .home-hero__stage.has-hero-motion .home-hero__subtitle,
.home-experience--landing .home-hero__stage.has-hero-motion .homepage-hero-actions {
    opacity: 0;
    filter: blur(7px);
    transform: translate3d(0, 34px, 0);
    clip-path: inset(0 0 100% 0);
    transition:
        opacity 720ms var(--hero-reveal-ease),
        transform 880ms var(--hero-reveal-ease),
        filter 760ms var(--hero-reveal-ease),
        clip-path 900ms var(--hero-reveal-ease);
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__kicker,
.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__title,
.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__subtitle,
.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .homepage-hero-actions {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
    clip-path: inset(-10% -6% -10% -6%);
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__kicker {
    transition-delay: 260ms;
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__title {
    transition-delay: 360ms;
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__subtitle {
    transition-delay: 500ms;
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .homepage-hero-actions {
    transition-delay: 620ms;
}

.home-experience--landing .home-hero__stage.has-hero-motion .home-hero__stars {
    opacity: 0;
    transform: translate3d(0, 14px, 0) scale(.98);
    transition:
        opacity 850ms 620ms var(--hero-reveal-ease),
        transform 1000ms 620ms var(--hero-reveal-ease);
    will-change: opacity, transform;
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__stars {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

.home-experience--landing .home-hero__stage.has-hero-motion .home-hero__star {
    animation-play-state: paused;
}

.home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__star {
    animation-play-state: running;
}

@keyframes lamha-hero-glimpse {
    0% { opacity: 0; transform: translate(-50%, -50%) scaleX(.04); }
    18% { opacity: .96; }
    58% { opacity: .72; transform: translate(-50%, -50%) scaleX(1); }
    100% { opacity: 0; transform: translate(-50%, -50%) scaleX(1.12); }
}

@keyframes lamha-hero-bloom {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.22); }
    30% { opacity: .72; }
    72% { opacity: .26; transform: translate(-50%, -50%) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1.18); }
}

@media (max-width: 767.98px) {
    .home-experience--landing .home-hero__stage.has-hero-motion::before {
        width: 88vw;
    }

    .home-experience--landing .home-hero__stage.has-hero-motion::after {
        width: 78vw;
    }

    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__kicker,
    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__title,
    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__subtitle,
    .home-experience--landing .home-hero__stage.has-hero-motion .homepage-hero-actions {
        transform: translate3d(0, 24px, 0);
    }

    .home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__kicker,
    .home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__title,
    .home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__subtitle,
    .home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .homepage-hero-actions {
        transform: translate3d(0, 0, 0);
    }

    .home-experience--landing .home-hero__stage.has-hero-motion.is-hero-ready .home-hero__canvas {
        filter: blur(30px) saturate(1) brightness(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-experience--landing .home-hero__stage.has-hero-motion::before,
    .home-experience--landing .home-hero__stage.has-hero-motion::after {
        display: none;
        animation: none !important;
    }

    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__canvas,
    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__atmosphere,
    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__stars,
    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__kicker,
    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__title,
    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__subtitle,
    .home-experience--landing .home-hero__stage.has-hero-motion .homepage-hero-actions {
        opacity: 1 !important;
        filter: none !important;
        clip-path: none !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }

    .home-experience--landing .home-hero__stage.has-hero-motion .home-hero__content {
        transform: translate(-50%, -50%) !important;
    }
}
