@font-face {
    font-family: 'ReactCore Geist';
    src: url('../../assets/fonts/Geist-Variable.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'ReactCore IBM Plex Mono';
    src: url('../../assets/fonts/IBMPlexMono-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'ReactCore IBM Plex Mono';
    src: url('../../assets/fonts/IBMPlexMono-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'ReactCore Roboto Flex';
    src: url('../../assets/fonts/RobotoFlex-Variable.ttf') format('truetype');
    font-style: oblique -10deg 0deg;
    font-weight: 100 1000;
    font-stretch: 25% 151%;
    font-display: swap;
}

.reactcore-root,
.reactcore-root * {
    box-sizing: border-box;
}

.reactcore-root {
    isolation: isolate;
}

.reactcore-cursor-overlay {
    isolation: auto;
    pointer-events: none !important;
}

.reactcore-root canvas {
    display: block;
}

.reactcore-background,
.reactcore-mount {
    position: absolute;
    inset: 0;
}

.reactcore-background {
    z-index: 0;
}

.reactcore-mount {
    z-index: 1;
}

.reactcore-loading {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    opacity: 1;
    transition: opacity .4s ease;
}

.reactcore-loading.is-hidden {
    opacity: 0;
}

.reactcore-error {
    margin: 0;
    padding: 16px;
    color: #b91c1c;
    background: #fff1f2;
    font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.reactcore-reactext-frame {
    box-sizing: border-box;
    transform: translate(var(--reactext-offset-x, 0px), var(--reactext-offset-y, 0px));
}

.reactcore-reactext-frame::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: inherit;
    background: var(--reactext-overlay-color, #000);
    opacity: var(--reactext-overlay-opacity, 0);
    pointer-events: none;
}

.reactcore-reactext-frame > .reactcore-root {
    z-index: 1;
}

.reactcore-reduced-motion {
    display: grid;
    place-items: center;
}

.reactcore-reduced-motion::after {
    content: "";
    position: absolute;
    inset: 0;
    background: inherit;
}

/* Minimal utility subset used by bundled ReactCore components. */
.reactcore-root .w-full { width: 100% !important; }
.reactcore-root .h-full { height: 100% !important; }
.reactcore-root .h-auto { height: auto !important; }
.reactcore-root .w-0 { width: 0 !important; }
.reactcore-root .h-0 { height: 0 !important; }
.reactcore-root .object-cover { object-fit: cover !important; }
.reactcore-root .isolate { isolation: isolate !important; }
.reactcore-root .whitespace-nowrap { white-space: nowrap !important; }
.reactcore-root .w-screen { width: 100vw !important; }
.reactcore-root .h-screen { height: 100vh !important; }
.reactcore-root .size-full { width: 100% !important; height: 100% !important; }
.reactcore-root .absolute { position: absolute !important; }
.reactcore-root .relative { position: relative !important; }
.reactcore-root .fixed { position: fixed !important; }
.reactcore-root .sticky { position: sticky !important; }
.reactcore-root .inset-0 { inset: 0 !important; }
.reactcore-root .top-0 { top: 0 !important; }
.reactcore-root .left-0 { left: 0 !important; }
.reactcore-root .overflow-hidden { overflow: hidden !important; }
.reactcore-root .overflow-visible { overflow: visible !important; }
.reactcore-root .flex { display: flex !important; }
.reactcore-root .grid { display: grid !important; }
.reactcore-root .block { display: block !important; }
.reactcore-root .inline-block { display: inline-block !important; }
.reactcore-root .inline-flex { display: inline-flex !important; }
.reactcore-root .inline-grid { display: inline-grid !important; }
.reactcore-root .hidden { display: none !important; }
.reactcore-root .flex-col { flex-direction: column !important; }
.reactcore-root .flex-row { flex-direction: row !important; }
.reactcore-root .flex-1 { flex: 1 1 0% !important; }
.reactcore-root .items-center { align-items: center !important; }
.reactcore-root .place-items-center { place-items: center !important; }
.reactcore-root .justify-center { justify-content: center !important; }
.reactcore-root .pointer-events-none { pointer-events: none !important; }
.reactcore-root .pointer-events-auto { pointer-events: auto !important; }
.reactcore-root .select-none { user-select: none !important; }
.reactcore-root .whitespace-pre { white-space: pre !important; }
.reactcore-root .invisible { visibility: hidden !important; }
.reactcore-root .min-h-\[220px\] { min-height: 220px !important; }
.reactcore-root .min-h-\[240px\] { min-height: 240px !important; }
.reactcore-root .sr-only { 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; }
.reactcore-root .touch-none { touch-action: none !important; }
.reactcore-root .z-0 { z-index: 0 !important; }
.reactcore-root .z-10 { z-index: 10 !important; }
.reactcore-root .z-50 { z-index: 50 !important; }
.reactcore-root .-z-10 { z-index: -10 !important; }
.reactcore-root .bg-black { background: #000 !important; }
.reactcore-root .bg-white { background: #fff !important; }
.reactcore-root .bg-transparent { background: transparent !important; }
.reactcore-root .text-white { color: #fff !important; }
.reactcore-root .text-black { color: #000 !important; }
.reactcore-root .rounded-full { border-radius: 9999px !important; }
.reactcore-root .rounded-xl { border-radius: .75rem !important; }
.reactcore-root .mix-blend-screen { mix-blend-mode: screen !important; }
.reactcore-root .mix-blend-multiply { mix-blend-mode: multiply !important; }
.reactcore-root .mix-blend-overlay { mix-blend-mode: overlay !important; }
.reactcore-root .mix-blend-lighten { mix-blend-mode: lighten !important; }
.reactcore-root .opacity-0 { opacity: 0 !important; }
.reactcore-root .opacity-100 { opacity: 1 !important; }
.reactcore-root .brightness-95.saturate-95 { filter: brightness(.95) saturate(.95) !important; }
.reactcore-root .p-4 { padding: 1rem !important; }
.reactcore-root .border-none { border-style: none !important; }

/* The host creates a local stacking context, so its own background cannot cover the effect. */
.reactcore-effects-host { isolation: isolate; }
.reactcore-background-host > :not(.reactcore-element-layer):not(script):not(style) { position: relative; z-index: 1; }
.reactcore-element-layer { pointer-events: none !important; border-radius: inherit; }

@media (prefers-reduced-motion: reduce) {
    .reactcore-loading {
        transition: none;
    }
}

.reactcore-text-measure { display: inline-grid; visibility: hidden; max-width: 100%; white-space: pre-wrap; overflow-wrap: anywhere; pointer-events: none; vertical-align: top; }
.reactcore-text-measure > span { grid-area: 1 / 1; min-width: 0; }
.reactcore-reactext-frame[data-layout=content] { width: fit-content !important; max-width: 100%; overflow: visible !important; }
.elementor-widget-hostcore_reactext:has(.reactcore-reactext-frame[data-layout=content]) { width: fit-content !important; max-width: 100%; --container-widget-width: fit-content; --container-widget-flex-grow: 0; --container-widget-height: auto; --container-widget-align-self: flex-start; align-self: flex-start; height: auto; }
.reactcore-reactext-frame[data-layout=content] .reactcore-mount { min-width: 0; }

.reactcore-content-native > .reactcore-text-measure { display: none; }
.reactcore-content-native > .reactcore-mount { position: relative; inset: auto; width: fit-content; max-width: 100%; }
