/* ==========================================================================
   Mobile responsiveness hardening layer
   Global safety net so no page can trigger horizontal scrolling / layout
   breakage on small screens, regardless of fixed-pixel utilities used
   further down the page (w-[Npx], min-h-[Npx], etc).
   ========================================================================== */
html {
    max-width: 100%;
    overflow-x: hidden;
}
body {
    max-width: 100%;
    overflow-x: hidden;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
img, svg, video, canvas, iframe {
    max-width: 100%;
    height: auto;
}
/* Elements that intentionally set an explicit fixed/percentage height
   (hero media, background photos, three.js canvases, etc.) keep that
   height instead of collapsing from the max-width/height:auto reset above. */
img.h-full, img.object-cover, video.h-full, video.object-cover {
    height: 100%;
}
table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
/* Decorative blurred/glow blobs are frequently sized with fixed px
   utilities (e.g. w-[500px]); clamp them so they can never force the
   page wider than the viewport on small phones. */
[class*="blur-"][class*="w-["] {
    max-width: 100vw;
}

@media (max-width: 640px) {
    .max-w-container-max {
        padding-left: 16px;
        padding-right: 16px;
    }
    h1, h2, h3 {
        word-break: break-word;
    }
    /* Long fixed pixel hero widths degrade gracefully on very small phones */
    [class~="w-[500px]"] {
        width: 60vw !important;
        max-width: 60vw !important;
    }
}

*, ::before, ::after {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style: ;
}
::backdrop {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style: ;
}
/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */
*, ::after, ::before {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: #e5e7eb;
}
::after, ::before {
    --tw-content: '';
}
:host, html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    tab-size: 4;
    font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-feature-settings: normal;
    font-variation-settings: normal;
    -webkit-tap-highlight-color: transparent;
}
body {
    margin: 0;
    line-height: inherit;
}
hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
}
abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
}
h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
}
a {
    color: inherit;
    text-decoration: inherit;
}
b, strong {
    font-weight: bolder;
}
code, kbd, pre, samp {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-feature-settings: normal;
    font-variation-settings: normal;
    font-size: 1em;
}
small {
    font-size: 80%;
}
sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}
sub {
    bottom: -.25em;
}
sup {
    top: -.5em;
}
table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
}
button, input, optgroup, select, textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}
button, select {
    text-transform: none;
}
button, input:where([type=button]), input:where([type=reset]), input:where([type=submit]) {
    -webkit-appearance: button;
    background-color: transparent;
    background-image: none;
}
:-moz-focusring {
    outline: auto;
}
:-moz-ui-invalid {
    box-shadow: none;
}
progress {
    vertical-align: baseline;
}
::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
}
[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px;
}
::-webkit-search-decoration {
    -webkit-appearance: none;
}
::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}
summary {
    display: list-item;
}
blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre {
    margin: 0;
}
fieldset {
    margin: 0;
    padding: 0;
}
legend {
    padding: 0;
}
menu, ol, ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
dialog {
    padding: 0;
}
textarea {
    resize: vertical;
}
input::placeholder, textarea::placeholder {
    opacity: 1;
    color: #9ca3af;
}
[role=button], button {
    cursor: pointer;
}
:disabled {
    cursor: default;
}
audio, canvas, embed, iframe, img, object, svg, video {
    display: block;
    vertical-align: middle;
}
img, video {
    max-width: 100%;
    height: auto;
}
[hidden]:where(:not([hidden=until-found])) {
    display: none;
}
[type='text'], input:where(:not([type])), [type='email'], [type='url'], [type='password'], [type='number'], [type='date'], [type='datetime-local'], [type='month'], [type='search'], [type='tel'], [type='time'], [type='week'], [multiple], textarea, select {
    -webkit-appearance: none;
    appearance: none;
    background-color: #fff;
    border-color: #6b7280;
    border-width: 1px;
    border-radius: 0px;
    padding-top: 0.5rem;
    padding-right: 0.75rem;
    padding-bottom: 0.5rem;
    padding-left: 0.75rem;
    font-size: 1rem;
    line-height: 1.5rem;
    --tw-shadow: 0 0 #0000;
}
[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/ );
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: #2563eb;
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    border-color: #2563eb;
}
input::placeholder, textarea::placeholder {
    color: #6b7280;
    opacity: 1;
}
::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
}
::-webkit-date-and-time-value {
    min-height: 1.5em;
    text-align: inherit;
}
::-webkit-datetime-edit {
    display: inline-flex;
}
::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-top: 0;
    padding-bottom: 0;
}
select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    padding-right: 2.5rem;
    print-color-adjust: exact;
}
[multiple], [size]:where(select:not([size="1"])) {
    background-image: initial;
    background-position: initial;
    background-repeat: unset;
    background-size: initial;
    padding-right: 0.75rem;
    print-color-adjust: unset;
}
[type='checkbox'], [type='radio'] {
    -webkit-appearance: none;
    appearance: none;
    padding: 0;
    print-color-adjust: exact;
    display: inline-block;
    vertical-align: middle;
    background-origin: border-box;
    -webkit-user-select: none;
    user-select: none;
    flex-shrink: 0;
    height: 1rem;
    width: 1rem;
    color: #2563eb;
    background-color: #fff;
    border-color: #6b7280;
    border-width: 1px;
    --tw-shadow: 0 0 #0000;
}
[type='checkbox'] {
    border-radius: 0px;
}
[type='radio'] {
    border-radius: 100%;
}
[type='checkbox']:focus, [type='radio']:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/ );
    --tw-ring-offset-width: 2px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: #2563eb;
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
[type='checkbox']:checked, [type='radio']:checked {
    border-color: transparent;
    background-color: currentColor;
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
}
[type='checkbox']:checked {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
}
@media (forced-colors: active) {
    [type='checkbox']:checked {
        -webkit-appearance: auto;
        appearance: auto;
    }
}
[type='radio']:checked {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
}
@media (forced-colors: active) {
    [type='radio']:checked {
        -webkit-appearance: auto;
        appearance: auto;
    }
}
[type='checkbox']:checked:hover, [type='checkbox']:checked:focus, [type='radio']:checked:hover, [type='radio']:checked:focus {
    border-color: transparent;
    background-color: currentColor;
}
[type='checkbox']:indeterminate {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");
    border-color: transparent;
    background-color: currentColor;
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
}
@media (forced-colors: active) {
    [type='checkbox']:indeterminate {
        -webkit-appearance: auto;
        appearance: auto;
    }
}
[type='checkbox']:indeterminate:hover, [type='checkbox']:indeterminate:focus {
    border-color: transparent;
    background-color: currentColor;
}
[type='file'] {
    background: unset;
    border-color: inherit;
    border-width: 0;
    border-radius: 0;
    padding: 0;
    font-size: unset;
    line-height: inherit;
}
[type='file']:focus {
    outline: 1px solid ButtonText;
    outline: 1px auto -webkit-focus-ring-color;
}
.pointer-events-none {
    pointer-events: none;
}
.fixed {
    position: fixed;
}
.absolute {
    position: absolute;
}
.relative {
    position: relative;
}
.inset-0 {
    inset: 0px;
}
.top-0 {
    top: 0px;
}
.-right-1\/4 {
    right: -25%;
}
.top-1\/4 {
    top: 25%;
}
.-left-10 {
    left: -2.5rem;
}
.-top-10 {
    top: -2.5rem;
}
.right-0 {
    right: 0px;
}
.-bottom-20 {
    bottom: -5rem;
}
.-right-20 {
    right: -5rem;
}
.z-50 {
    z-index: 50;
}
.-z-10 {
    z-index: -10;
}
.z-10 {
    z-index: 10;
}
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}
.mb-6 {
    margin-bottom: 1.5rem;
}
.mb-10 {
    margin-bottom: 2.5rem;
}
.mb-4 {
    margin-bottom: 1rem;
}
.mb-2 {
    margin-bottom: 0.5rem;
}
.mb-16 {
    margin-bottom: 4rem;
}
.mb-12 {
    margin-bottom: 3rem;
}
.mb-8 {
    margin-bottom: 2rem;
}
.mb-1 {
    margin-bottom: 0.25rem;
}
.mb-3 {
    margin-bottom: 0.75rem;
}
.mt-20 {
    margin-top: 5rem;
}
.mt-auto {
    margin-top: auto;
}
.block {
    display: block;
}
.flex {
    display: flex;
}
.inline-flex {
    display: inline-flex;
}
.grid {
    display: grid;
}
.hidden {
    display: none;
}
.aspect-square {
    aspect-ratio: 1 / 1;
}
.h-10 {
    height: 2.5rem;
}
.h-full {
    height: 100%;
}
.h-\[500px\] {
    height: 500px;
}
.h-2 {
    height: 0.5rem;
}
.h-auto {
    height: auto;
}
.h-40 {
    height: 10rem;
}
.h-12 {
    height: 3rem;
}
.h-32 {
    height: 8rem;
}
.h-8 {
    height: 2rem;
}
.h-80 {
    height: 20rem;
}
.min-h-\[1024px\] {
    min-height: 1024px;
}
.w-full {
    width: 100%;
}
.w-10 {
    width: 2.5rem;
}
.w-\[500px\] {
    width: 500px;
}
.w-2 {
    width: 0.5rem;
}
.w-40 {
    width: 10rem;
}
.w-1\/2 {
    width: 50%;
}
.w-12 {
    width: 3rem;
}
.w-32 {
    width: 8rem;
}
.w-8 {
    width: 2rem;
}
.w-80 {
    width: 20rem;
}
.max-w-container-max {
    max-width: 1280px;
}
.max-w-xl {
    max-width: 36rem;
}
.max-w-3xl {
    max-width: 48rem;
}
.max-w-lg {
    max-width: 32rem;
}
.max-w-2xl {
    max-width: 42rem;
}
.flex-1 {
    flex: 1 1 0%;
}
.shrink-0 {
    flex-shrink: 0;
}
@keyframes pulse {
    50% {
        opacity: .5;
    }
}
.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.cursor-pointer {
    cursor: pointer;
}
.list-none {
    list-style-type: none;
}
.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}
.flex-col {
    flex-direction: column;
}
.flex-wrap {
    flex-wrap: wrap;
}
.items-start {
    align-items: flex-start;
}
.items-end {
    align-items: flex-end;
}
.items-center {
    align-items: center;
}
.justify-center {
    justify-content: center;
}
.justify-between {
    justify-content: space-between;
}
.gap-2 {
    gap: 0.5rem;
}
.gap-8 {
    gap: 2rem;
}
.gap-16 {
    gap: 4rem;
}
.gap-4 {
    gap: 1rem;
}
.gap-20 {
    gap: 5rem;
}
.gap-6 {
    gap: 1.5rem;
}
.gap-3 {
    gap: 0.75rem;
}
.gap-1 {
    gap: 0.25rem;
}
.gap-gutter {
    gap: 24px;
}
.space-y-8 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.overflow-hidden {
    overflow: hidden;
}
.rounded-sm {
    border-radius: 0.125rem;
}
.rounded-full {
    border-radius: 0.75rem;
}
.rounded-xl {
    border-radius: 0.5rem;
}
.rounded-lg {
    border-radius: 0.25rem;
}
.rounded-2xl {
    border-radius: 1rem;
}
.rounded {
    border-radius: 0.125rem;
}
.rounded-l {
    border-top-left-radius: 0.125rem;
    border-bottom-left-radius: 0.125rem;
}
.rounded-r {
    border-top-right-radius: 0.125rem;
    border-bottom-right-radius: 0.125rem;
}
.border {
    border-width: 1px;
}
.border-b {
    border-bottom-width: 1px;
}
.border-b-2 {
    border-bottom-width: 2px;
}
.border-l-4 {
    border-left-width: 4px;
}
.border-t {
    border-top-width: 1px;
}
.border-white\/10 {
    border-color: rgb(255 255 255 / 0.1);
}
.border-primary {
    --tw-border-opacity: 1;
    border-color: rgb(0 85 254 / var(--tw-border-opacity, 1));
}
.border-white\/5 {
    border-color: rgb(255 255 255 / 0.05);
}
.border-primary\/20 {
    border-color: rgb(0 85 254 / 0.2);
}
.border-l-primary {
    --tw-border-opacity: 1;
    border-left-color: rgb(0 85 254 / var(--tw-border-opacity, 1));
}
.border-l-secondary-container {
    --tw-border-opacity: 1;
    border-left-color: rgb(43 65 141 / var(--tw-border-opacity, 1));
}
.border-l-secondary-fixed {
    --tw-border-opacity: 1;
    border-left-color: rgb(220 225 255 / var(--tw-border-opacity, 1));
}
.bg-obsidian-deep\/90 {
    background-color: rgb(12 14 18 / 0.9);
}
.bg-primary\/10 {
    background-color: rgb(0 85 254 / 0.1);
}
.bg-white\/5 {
    background-color: rgb(255 255 255 / 0.05);
}
.bg-primary {
    --tw-bg-opacity: 1;
    background-color: rgb(0 85 254 / var(--tw-bg-opacity, 1));
}
.bg-primary\/20 {
    background-color: rgb(0 85 254 / 0.2);
}
.bg-obsidian-deep {
    --tw-bg-opacity: 1;
    background-color: rgb(12 14 18 / var(--tw-bg-opacity, 1));
}
.bg-surface {
    --tw-bg-opacity: 1;
    background-color: rgb(17 19 23 / var(--tw-bg-opacity, 1));
}
.bg-primary\/5 {
    background-color: rgb(0 85 254 / 0.05);
}
.bg-surface-container-high {
    --tw-bg-opacity: 1;
    background-color: rgb(40 42 46 / var(--tw-bg-opacity, 1));
}
.bg-surface-container-lowest {
    --tw-bg-opacity: 1;
    background-color: rgb(12 14 18 / var(--tw-bg-opacity, 1));
}
.bg-gradient-to-l {
    background-image: linear-gradient(to left, var(--tw-gradient-stops));
}
.bg-\[radial-gradient\(circle_at_80\%_20\%\2c _rgba\(0\2c 85\2c 254\2c 0\.05\)_0\%\2c _transparent_50\%\)\] {
    background-image: radial-gradient(circle at 80% 20%, rgba(0,85,254,0.05) 0%, transparent 50%);
}
.from-primary\/5 {
    --tw-gradient-from: rgb(0 85 254 / 0.05) var(--tw-gradient-from-position);
    --tw-gradient-to: rgb(0 85 254 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.to-transparent {
    --tw-gradient-to: transparent var(--tw-gradient-to-position);
}
.object-cover {
    object-fit: cover;
}
.p-4 {
    padding: 1rem;
}
.p-6 {
    padding: 1.5rem;
}
.p-10 {
    padding: 2.5rem;
}
.p-8 {
    padding: 2rem;
}
.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
.px-gutter {
    padding-left: 24px;
    padding-right: 24px;
}
.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}
.px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.py-2\.5 {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
}
.px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}
.py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}
.px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
}
.py-24 {
    padding-top: 6rem;
    padding-bottom: 6rem;
}
.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}
.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.px-12 {
    padding-left: 3rem;
    padding-right: 3rem;
}
.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}
.py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}
.pb-1 {
    padding-bottom: 0.25rem;
}
.pt-24 {
    padding-top: 6rem;
}
.pt-12 {
    padding-top: 3rem;
}
.pb-6 {
    padding-bottom: 1.5rem;
}
.pt-4 {
    padding-top: 1rem;
}
.pt-8 {
    padding-top: 2rem;
}
.text-center {
    text-align: center;
}
.font-body-md {
    font-family: Geist;
}
.font-headline-md {
    font-family: Geist;
}
.font-label-md {
    font-family: JetBrains Mono;
}
.font-headline-lg {
    font-family: Geist;
}
.font-body-lg {
    font-family: Geist;
}
.text-headline-lg {
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -0.02em;
    font-weight: 600;
}
.text-body-md {
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
    font-weight: 400;
}
.text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
}
.text-5xl {
    font-size: 3rem;
    line-height: 1;
}
.text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
}
.text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.text-\[10px\] {
    font-size: 10px;
}
.text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
}
.text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}
.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
}
.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
}
.font-bold {
    font-weight: 700;
}
.font-medium {
    font-weight: 500;
}
.uppercase {
    text-transform: uppercase;
}
.italic {
    font-style: italic;
}
.leading-tight {
    line-height: 1.25;
}
.leading-relaxed {
    line-height: 1.625;
}
.tracking-tight {
    letter-spacing: -0.025em;
}
.tracking-widest {
    letter-spacing: 0.1em;
}
.tracking-\[0\.2em\] {
    letter-spacing: 0.2em;
}
.text-primary {
    --tw-text-opacity: 1;
    color: rgb(0 85 254 / var(--tw-text-opacity, 1));
}
.text-on-surface-variant {
    --tw-text-opacity: 1;
    color: rgb(195 197 217 / var(--tw-text-opacity, 1));
}
.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-secondary-container {
    --tw-text-opacity: 1;
    color: rgb(43 65 141 / var(--tw-text-opacity, 1));
}
.text-secondary-fixed {
    --tw-text-opacity: 1;
    color: rgb(220 225 255 / var(--tw-text-opacity, 1));
}
.opacity-5 {
    opacity: 0.05;
}
.shadow-sm {
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-2xl {
    --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_0_40px_rgba\(0\2c 85\2c 254\2c 0\.2\)\] {
    --tw-shadow: 0 0 40px rgba(0,85,254,0.2);
    --tw-shadow-colored: 0 0 40px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.blur-\[120px\] {
    --tw-blur: blur(120px);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-3xl {
    --tw-blur: blur(64px);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-md {
    --tw-backdrop-blur: blur(12px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.transition-colors {
    transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.duration-300 {
    transition-duration: 300ms;
}
.selection\:bg-primary *::selection {
    --tw-bg-opacity: 1;
    background-color: rgb(0 85 254 / var(--tw-bg-opacity, 1));
}
.selection\:text-white *::selection {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.selection\:bg-primary::selection {
    --tw-bg-opacity: 1;
    background-color: rgb(0 85 254 / var(--tw-bg-opacity, 1));
}
.selection\:text-white::selection {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hover\:border-primary:hover {
    --tw-border-opacity: 1;
    border-color: rgb(0 85 254 / var(--tw-border-opacity, 1));
}
.hover\:bg-white\/10:hover {
    background-color: rgb(255 255 255 / 0.1);
}
.hover\:bg-white\/5:hover {
    background-color: rgb(255 255 255 / 0.05);
}
.hover\:text-primary:hover {
    --tw-text-opacity: 1;
    color: rgb(0 85 254 / var(--tw-text-opacity, 1));
}
.hover\:shadow-\[0_0_20px_rgba\(0\2c 85\2c 254\2c 0\.4\)\]:hover {
    --tw-shadow: 0 0 20px rgba(0,85,254,0.4);
    --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-\[0_0_30px_rgba\(0\2c 85\2c 254\2c 0\.5\)\]:hover {
    --tw-shadow: 0 0 30px rgba(0,85,254,0.5);
    --tw-shadow-colored: 0 0 30px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-\[0_0_40px_rgba\(0\2c 85\2c 254\2c 0\.4\)\]:hover {
    --tw-shadow: 0 0 40px rgba(0,85,254,0.4);
    --tw-shadow-colored: 0 0 40px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.focus\:border-primary:focus {
    --tw-border-opacity: 1;
    border-color: rgb(0 85 254 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
}
.active\:scale-95:active {
    --tw-scale-x: .95;
    --tw-scale-y: .95;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group[open] .group-open\:rotate-180 {
    --tw-rotate: 180deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:translate-x-1 {
    --tw-translate-x: 0.25rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:border-primary\/30 {
    border-color: rgb(0 85 254 / 0.3);
}
@media (min-width: 640px) {
    .sm\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 768px) {
    .md\:col-span-8 {
        grid-column: span 8 / span 8;
    }
    .md\:col-span-4 {
        grid-column: span 4 / span 4;
    }
    .md\:flex {
        display: flex;
    }
    .md\:grid-cols-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .md\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .md\:flex-row {
        flex-direction: row;
    }
    .md\:p-12 {
        padding: 3rem;
    }
}
@media (min-width: 1024px) {
    .lg\:block {
        display: block;
    }
    .lg\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .lg\:text-\[72px\] {
        font-size: 72px;
    }
    .lg\:leading-\[80px\] {
        line-height: 80px;
    }
}
*, ::before, ::after {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style: ;
}
::backdrop {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style: ;
}
/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */
*, ::after, ::before {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: #e5e7eb;
}
::after, ::before {
    --tw-content: '';
}
:host, html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    tab-size: 4;
    font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-feature-settings: normal;
    font-variation-settings: normal;
    -webkit-tap-highlight-color: transparent;
}
body {
    margin: 0;
    line-height: inherit;
}
hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
}
abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
}
h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
}
a {
    color: inherit;
    text-decoration: inherit;
}
b, strong {
    font-weight: bolder;
}
code, kbd, pre, samp {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-feature-settings: normal;
    font-variation-settings: normal;
    font-size: 1em;
}
small {
    font-size: 80%;
}
sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}
sub {
    bottom: -.25em;
}
sup {
    top: -.5em;
}
table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
}
button, input, optgroup, select, textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}
button, select {
    text-transform: none;
}
button, input:where([type=button]), input:where([type=reset]), input:where([type=submit]) {
    -webkit-appearance: button;
    background-color: transparent;
    background-image: none;
}
:-moz-focusring {
    outline: auto;
}
:-moz-ui-invalid {
    box-shadow: none;
}
progress {
    vertical-align: baseline;
}
::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
}
[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px;
}
::-webkit-search-decoration {
    -webkit-appearance: none;
}
::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}
summary {
    display: list-item;
}
blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre {
    margin: 0;
}
fieldset {
    margin: 0;
    padding: 0;
}
legend {
    padding: 0;
}
menu, ol, ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
dialog {
    padding: 0;
}
textarea {
    resize: vertical;
}
input::placeholder, textarea::placeholder {
    opacity: 1;
    color: #9ca3af;
}
[role=button], button {
    cursor: pointer;
}
:disabled {
    cursor: default;
}
audio, canvas, embed, iframe, img, object, svg, video {
    display: block;
    vertical-align: middle;
}
img, video {
    max-width: 100%;
    height: auto;
}
[hidden]:where(:not([hidden=until-found])) {
    display: none;
}
[type='text'], input:where(:not([type])), [type='email'], [type='url'], [type='password'], [type='number'], [type='date'], [type='datetime-local'], [type='month'], [type='search'], [type='tel'], [type='time'], [type='week'], [multiple], textarea, select {
    -webkit-appearance: none;
    appearance: none;
    background-color: #fff;
    border-color: #6b7280;
    border-width: 1px;
    border-radius: 0px;
    padding-top: 0.5rem;
    padding-right: 0.75rem;
    padding-bottom: 0.5rem;
    padding-left: 0.75rem;
    font-size: 1rem;
    line-height: 1.5rem;
    --tw-shadow: 0 0 #0000;
}
[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/ );
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: #2563eb;
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    border-color: #2563eb;
}
input::placeholder, textarea::placeholder {
    color: #6b7280;
    opacity: 1;
}
::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
}
::-webkit-date-and-time-value {
    min-height: 1.5em;
    text-align: inherit;
}
::-webkit-datetime-edit {
    display: inline-flex;
}
::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-top: 0;
    padding-bottom: 0;
}
select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    padding-right: 2.5rem;
    print-color-adjust: exact;
}
[multiple], [size]:where(select:not([size="1"])) {
    background-image: initial;
    background-position: initial;
    background-repeat: unset;
    background-size: initial;
    padding-right: 0.75rem;
    print-color-adjust: unset;
}
[type='checkbox'], [type='radio'] {
    -webkit-appearance: none;
    appearance: none;
    padding: 0;
    print-color-adjust: exact;
    display: inline-block;
    vertical-align: middle;
    background-origin: border-box;
    -webkit-user-select: none;
    user-select: none;
    flex-shrink: 0;
    height: 1rem;
    width: 1rem;
    color: #2563eb;
    background-color: #fff;
    border-color: #6b7280;
    border-width: 1px;
    --tw-shadow: 0 0 #0000;
}
[type='checkbox'] {
    border-radius: 0px;
}
[type='radio'] {
    border-radius: 100%;
}
[type='checkbox']:focus, [type='radio']:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/ );
    --tw-ring-offset-width: 2px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: #2563eb;
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
[type='checkbox']:checked, [type='radio']:checked {
    border-color: transparent;
    background-color: currentColor;
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
}
[type='checkbox']:checked {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
}
@media (forced-colors: active) {
    [type='checkbox']:checked {
        -webkit-appearance: auto;
        appearance: auto;
    }
}
[type='radio']:checked {
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
}
@media (forced-colors: active) {
    [type='radio']:checked {
        -webkit-appearance: auto;
        appearance: auto;
    }
}
[type='checkbox']:checked:hover, [type='checkbox']:checked:focus, [type='radio']:checked:hover, [type='radio']:checked:focus {
    border-color: transparent;
    background-color: currentColor;
}
[type='checkbox']:indeterminate {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");
    border-color: transparent;
    background-color: currentColor;
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
}
@media (forced-colors: active) {
    [type='checkbox']:indeterminate {
        -webkit-appearance: auto;
        appearance: auto;
    }
}
[type='checkbox']:indeterminate:hover, [type='checkbox']:indeterminate:focus {
    border-color: transparent;
    background-color: currentColor;
}
[type='file'] {
    background: unset;
    border-color: inherit;
    border-width: 0;
    border-radius: 0;
    padding: 0;
    font-size: unset;
    line-height: inherit;
}
[type='file']:focus {
    outline: 1px solid ButtonText;
    outline: 1px auto -webkit-focus-ring-color;
}
.pointer-events-none {
    pointer-events: none;
}
.fixed {
    position: fixed;
}
.absolute {
    position: absolute;
}
.relative {
    position: relative;
}
.inset-0 {
    inset: 0px;
}
.top-0 {
    top: 0px;
}
.-right-1\/4 {
    right: -25%;
}
.top-1\/4 {
    top: 25%;
}
.-left-10 {
    left: -2.5rem;
}
.-top-10 {
    top: -2.5rem;
}
.right-0 {
    right: 0px;
}
.-bottom-20 {
    bottom: -5rem;
}
.-right-20 {
    right: -5rem;
}
.z-50 {
    z-index: 50;
}
.-z-10 {
    z-index: -10;
}
.z-10 {
    z-index: 10;
}
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}
.mb-6 {
    margin-bottom: 1.5rem;
}
.mb-10 {
    margin-bottom: 2.5rem;
}
.mb-4 {
    margin-bottom: 1rem;
}
.mb-2 {
    margin-bottom: 0.5rem;
}
.mb-16 {
    margin-bottom: 4rem;
}
.mb-12 {
    margin-bottom: 3rem;
}
.mb-8 {
    margin-bottom: 2rem;
}
.mb-1 {
    margin-bottom: 0.25rem;
}
.mb-3 {
    margin-bottom: 0.75rem;
}
.mt-20 {
    margin-top: 5rem;
}
.mt-auto {
    margin-top: auto;
}
.block {
    display: block;
}
.flex {
    display: flex;
}
.inline-flex {
    display: inline-flex;
}
.grid {
    display: grid;
}
.hidden {
    display: none;
}
.aspect-square {
    aspect-ratio: 1 / 1;
}
.h-10 {
    height: 2.5rem;
}
.h-full {
    height: 100%;
}
.h-\[500px\] {
    height: 500px;
}
.h-2 {
    height: 0.5rem;
}
.h-auto {
    height: auto;
}
.h-40 {
    height: 10rem;
}
.h-32 {
    height: 8rem;
}
.h-12 {
    height: 3rem;
}
.h-8 {
    height: 2rem;
}
.h-80 {
    height: 20rem;
}
.min-h-\[1024px\] {
    min-height: 1024px;
}
.w-full {
    width: 100%;
}
.w-10 {
    width: 2.5rem;
}
.w-\[500px\] {
    width: 500px;
}
.w-2 {
    width: 0.5rem;
}
.w-40 {
    width: 10rem;
}
.w-1\/2 {
    width: 50%;
}
.w-32 {
    width: 8rem;
}
.w-12 {
    width: 3rem;
}
.w-8 {
    width: 2rem;
}
.w-80 {
    width: 20rem;
}
.max-w-container-max {
    max-width: 1280px;
}
.max-w-xl {
    max-width: 36rem;
}
.max-w-3xl {
    max-width: 48rem;
}
.max-w-lg {
    max-width: 32rem;
}
.max-w-2xl {
    max-width: 42rem;
}
.flex-1 {
    flex: 1 1 0%;
}
.shrink-0 {
    flex-shrink: 0;
}
@keyframes pulse {
    50% {
        opacity: .5;
    }
}
.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.cursor-pointer {
    cursor: pointer;
}
.list-none {
    list-style-type: none;
}
.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}
.flex-col {
    flex-direction: column;
}
.flex-wrap {
    flex-wrap: wrap;
}
.items-start {
    align-items: flex-start;
}
.items-end {
    align-items: flex-end;
}
.items-center {
    align-items: center;
}
.justify-center {
    justify-content: center;
}
.justify-between {
    justify-content: space-between;
}
.gap-2 {
    gap: 0.5rem;
}
.gap-8 {
    gap: 2rem;
}
.gap-16 {
    gap: 4rem;
}
.gap-4 {
    gap: 1rem;
}
.gap-20 {
    gap: 5rem;
}
.gap-6 {
    gap: 1.5rem;
}
.gap-3 {
    gap: 0.75rem;
}
.gap-1 {
    gap: 0.25rem;
}
.gap-gutter {
    gap: 24px;
}
.space-y-8 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.overflow-hidden {
    overflow: hidden;
}
.rounded-sm {
    border-radius: 0.125rem;
}
.rounded-full {
    border-radius: 0.75rem;
}
.rounded-xl {
    border-radius: 0.5rem;
}
.rounded-lg {
    border-radius: 0.25rem;
}
.rounded-2xl {
    border-radius: 1rem;
}
.rounded {
    border-radius: 0.125rem;
}
.rounded-l {
    border-top-left-radius: 0.125rem;
    border-bottom-left-radius: 0.125rem;
}
.rounded-r {
    border-top-right-radius: 0.125rem;
    border-bottom-right-radius: 0.125rem;
}
.border {
    border-width: 1px;
}
.border-b {
    border-bottom-width: 1px;
}
.border-b-2 {
    border-bottom-width: 2px;
}
.border-l-4 {
    border-left-width: 4px;
}
.border-t {
    border-top-width: 1px;
}
.border-white\/10 {
    border-color: rgb(255 255 255 / 0.1);
}
.border-primary {
    --tw-border-opacity: 1;
    border-color: rgb(0 85 254 / var(--tw-border-opacity, 1));
}
.border-white\/5 {
    border-color: rgb(255 255 255 / 0.05);
}
.border-primary\/20 {
    border-color: rgb(0 85 254 / 0.2);
}
.border-l-primary {
    --tw-border-opacity: 1;
    border-left-color: rgb(0 85 254 / var(--tw-border-opacity, 1));
}
.border-l-secondary-container {
    --tw-border-opacity: 1;
    border-left-color: rgb(43 65 141 / var(--tw-border-opacity, 1));
}
.border-l-secondary-fixed {
    --tw-border-opacity: 1;
    border-left-color: rgb(220 225 255 / var(--tw-border-opacity, 1));
}
.bg-obsidian-deep\/90 {
    background-color: rgb(12 14 18 / 0.9);
}
.bg-primary\/10 {
    background-color: rgb(0 85 254 / 0.1);
}
.bg-white\/5 {
    background-color: rgb(255 255 255 / 0.05);
}
.bg-primary {
    --tw-bg-opacity: 1;
    background-color: rgb(0 85 254 / var(--tw-bg-opacity, 1));
}
.bg-primary\/20 {
    background-color: rgb(0 85 254 / 0.2);
}
.bg-obsidian-deep {
    --tw-bg-opacity: 1;
    background-color: rgb(12 14 18 / var(--tw-bg-opacity, 1));
}
.bg-surface {
    --tw-bg-opacity: 1;
    background-color: rgb(17 19 23 / var(--tw-bg-opacity, 1));
}
.bg-primary\/5 {
    background-color: rgb(0 85 254 / 0.05);
}
.bg-surface-container-high {
    --tw-bg-opacity: 1;
    background-color: rgb(40 42 46 / var(--tw-bg-opacity, 1));
}
.bg-surface-container-lowest {
    --tw-bg-opacity: 1;
    background-color: rgb(12 14 18 / var(--tw-bg-opacity, 1));
}
.bg-gradient-to-l {
    background-image: linear-gradient(to left, var(--tw-gradient-stops));
}
.bg-\[radial-gradient\(circle_at_80\%_20\%\2c _rgba\(0\2c 85\2c 254\2c 0\.05\)_0\%\2c _transparent_50\%\)\] {
    background-image: radial-gradient(circle at 80% 20%, rgba(0,85,254,0.05) 0%, transparent 50%);
}
.from-primary\/5 {
    --tw-gradient-from: rgb(0 85 254 / 0.05) var(--tw-gradient-from-position);
    --tw-gradient-to: rgb(0 85 254 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.to-transparent {
    --tw-gradient-to: transparent var(--tw-gradient-to-position);
}
.object-cover {
    object-fit: cover;
}
.p-4 {
    padding: 1rem;
}
.p-6 {
    padding: 1.5rem;
}
.p-10 {
    padding: 2.5rem;
}
.p-8 {
    padding: 2rem;
}
.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
.px-gutter {
    padding-left: 24px;
    padding-right: 24px;
}
.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}
.px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.py-2\.5 {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
}
.px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}
.py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}
.px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
}
.py-24 {
    padding-top: 6rem;
    padding-bottom: 6rem;
}
.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}
.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.px-12 {
    padding-left: 3rem;
    padding-right: 3rem;
}
.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}
.py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}
.pb-1 {
    padding-bottom: 0.25rem;
}
.pt-24 {
    padding-top: 6rem;
}
.pt-12 {
    padding-top: 3rem;
}
.pb-6 {
    padding-bottom: 1.5rem;
}
.pt-4 {
    padding-top: 1rem;
}
.pt-8 {
    padding-top: 2rem;
}
.text-center {
    text-align: center;
}
.font-body-md {
    font-family: Geist;
}
.font-headline-md {
    font-family: Geist;
}
.font-label-md {
    font-family: JetBrains Mono;
}
.font-headline-lg {
    font-family: Geist;
}
.font-body-lg {
    font-family: Geist;
}
.text-headline-lg {
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -0.02em;
    font-weight: 600;
}
.text-body-md {
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
    font-weight: 400;
}
.text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
}
.text-5xl {
    font-size: 3rem;
    line-height: 1;
}
.text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
}
.text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.text-\[10px\] {
    font-size: 10px;
}
.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
}
.text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}
.text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
}
.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
}
.font-bold {
    font-weight: 700;
}
.font-medium {
    font-weight: 500;
}
.uppercase {
    text-transform: uppercase;
}
.italic {
    font-style: italic;
}
.leading-tight {
    line-height: 1.25;
}
.leading-relaxed {
    line-height: 1.625;
}
.tracking-tight {
    letter-spacing: -0.025em;
}
.tracking-widest {
    letter-spacing: 0.1em;
}
.tracking-\[0\.2em\] {
    letter-spacing: 0.2em;
}
.text-primary {
    --tw-text-opacity: 1;
    color: rgb(0 85 254 / var(--tw-text-opacity, 1));
}
.text-on-surface-variant {
    --tw-text-opacity: 1;
    color: rgb(195 197 217 / var(--tw-text-opacity, 1));
}
.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-secondary-container {
    --tw-text-opacity: 1;
    color: rgb(43 65 141 / var(--tw-text-opacity, 1));
}
.text-secondary-fixed {
    --tw-text-opacity: 1;
    color: rgb(220 225 255 / var(--tw-text-opacity, 1));
}
.opacity-5 {
    opacity: 0.05;
}
.shadow-sm {
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-2xl {
    --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_0_40px_rgba\(0\2c 85\2c 254\2c 0\.2\)\] {
    --tw-shadow: 0 0 40px rgba(0,85,254,0.2);
    --tw-shadow-colored: 0 0 40px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.blur-\[120px\] {
    --tw-blur: blur(120px);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-3xl {
    --tw-blur: blur(64px);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-md {
    --tw-backdrop-blur: blur(12px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.transition-colors {
    transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.duration-300 {
    transition-duration: 300ms;
}
.selection\:bg-primary *::selection {
    --tw-bg-opacity: 1;
    background-color: rgb(0 85 254 / var(--tw-bg-opacity, 1));
}
.selection\:text-white *::selection {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.selection\:bg-primary::selection {
    --tw-bg-opacity: 1;
    background-color: rgb(0 85 254 / var(--tw-bg-opacity, 1));
}
.selection\:text-white::selection {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hover\:border-primary:hover {
    --tw-border-opacity: 1;
    border-color: rgb(0 85 254 / var(--tw-border-opacity, 1));
}
.hover\:bg-white\/10:hover {
    background-color: rgb(255 255 255 / 0.1);
}
.hover\:bg-white\/5:hover {
    background-color: rgb(255 255 255 / 0.05);
}
.hover\:text-primary:hover {
    --tw-text-opacity: 1;
    color: rgb(0 85 254 / var(--tw-text-opacity, 1));
}
.hover\:shadow-\[0_0_20px_rgba\(0\2c 85\2c 254\2c 0\.4\)\]:hover {
    --tw-shadow: 0 0 20px rgba(0,85,254,0.4);
    --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-\[0_0_30px_rgba\(0\2c 85\2c 254\2c 0\.5\)\]:hover {
    --tw-shadow: 0 0 30px rgba(0,85,254,0.5);
    --tw-shadow-colored: 0 0 30px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-\[0_0_40px_rgba\(0\2c 85\2c 254\2c 0\.4\)\]:hover {
    --tw-shadow: 0 0 40px rgba(0,85,254,0.4);
    --tw-shadow-colored: 0 0 40px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.focus\:border-primary:focus {
    --tw-border-opacity: 1;
    border-color: rgb(0 85 254 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
}
.active\:scale-95:active {
    --tw-scale-x: .95;
    --tw-scale-y: .95;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group[open] .group-open\:rotate-180 {
    --tw-rotate: 180deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:translate-x-1 {
    --tw-translate-x: 0.25rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:border-primary\/30 {
    border-color: rgb(0 85 254 / 0.3);
}
@media (min-width: 640px) {
    .sm\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 768px) {
    .md\:col-span-8 {
        grid-column: span 8 / span 8;
    }
    .md\:col-span-4 {
        grid-column: span 4 / span 4;
    }
    .md\:flex {
        display: flex;
    }
    .md\:grid-cols-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .md\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .md\:flex-row {
        flex-direction: row;
    }
    .md\:p-12 {
        padding: 3rem;
    }
}
@media (min-width: 1024px) {
    .lg\:block {
        display: block;
    }
    .lg\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .lg\:text-\[72px\] {
        font-size: 72px;
    }
    .lg\:leading-\[80px\] {
        line-height: 80px;
    }
}

        body {
            background-color: #0c0e12;
            color: #e2e2e8;
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
        }

        .glass-card {
            background: rgba(255, 255, 255, 0.03);
            backdrop-filter: blur(20px);
            border: 1px solid rgba(255, 255, 255, 0.08);
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .glass-card:hover {
            background: rgba(255, 255, 255, 0.05);
            border-color: #0055FE;
            box-shadow: 0 0 30px rgba(0, 85, 254, 0.1);
        }

        .primary-gradient {
            background: linear-gradient(135deg, #0055FE 0%, #004de9 100%);
        }

        .text-glow {
            text-shadow: 0 0 10px rgba(0, 85, 254, 0.5);
        }
        .site-notification-strip {
            border-block: 1px solid rgba(255, 255, 255, 0.08);
            background: rgba(0, 85, 254, 0.08);
            overflow: hidden;
            white-space: nowrap;
        }
        .site-notification-track {
            display: inline-flex;
            align-items: center;
            gap: 2rem;
            min-width: max-content;
            padding: 0.75rem 0;
            animation: semicolon-marquee 28s linear infinite;
        }
        .site-notification-item {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            color: #dce1ff;
            font-size: 0.875rem;
        }
        .course-card-fixed {
            min-height: 380px;
        }
        .course-card-copy {
            display: -webkit-box;
            -webkit-line-clamp: 4;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        @keyframes semicolon-marquee {
            from { transform: translateX(0); }
            to { transform: translateX(-50%); }
        }
        @media (max-width: 767px) {
            header nav {
                padding-left: 16px;
                padding-right: 16px;
            }
            .site-notification-strip {
                margin-top: 0;
            }
            .site-notification-track {
                animation-duration: 20s;
            }
            .course-card-fixed {
                min-height: auto;
            }
        }
 .primary-button {
            background: #0055FE;
            transition: all 0.3s ease;
        }
        .primary-button:hover {
            box-shadow: 0 0 20px rgba(0, 85, 254, 0.5);
            transform: translateY(-2px);
            filter: brightness(1.1);
        }
        .semicolon-bullet::before {
            content: ";";
            color: #0055FE;
            font-family: 'JetBrains Mono', monospace;
            margin-right: 0.75rem;
            font-weight: bold;
        }

        @keyframes float {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-10px); }
        }
  @keyframes pulse-subtle {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.8; }
        }
           .custom-scrollbar::-webkit-scrollbar {
            width: 4px;
        }
        .custom-scrollbar::-webkit-scrollbar-track {
            background: #111317;
        }
        .custom-scrollbar::-webkit-scrollbar-thumb {
            background: #434656;
        }
        .legal-gradient {
            background: linear-gradient(180deg, rgba(0, 85, 254, 0.05) 0%, rgba(17, 19, 23, 0) 100%);
        }
         .animate-pulse-subtle {
            animation: pulse-subtle 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
        }
        .float-animation {
            animation: float 6s ease-in-out infinite;
        }
 .glow-bg {
            background: radial-gradient(circle at 50% 50%, rgba(0, 85, 254, 0.1) 0%, transparent 70%);
        }
         .nav-glass {
            background: rgba(17, 19, 23, 0.8);
            backdrop-filter: blur(12px);
        }
        .bg-glow-radial {
            background: radial-gradient(circle at center, rgba(0, 85, 254, 0.08) 0%, transparent 70%);
        }
         .noir-gradient {
            background: linear-gradient(180deg, rgba(17, 19, 23, 0) 0%, rgba(12, 14, 18, 1) 100%);
        }
   .noir-scrollbar::-webkit-scrollbar { width: 4px; }
        .noir-scrollbar::-webkit-scrollbar-track { background: #1a1c20; }
        .noir-scrollbar::-webkit-scrollbar-thumb { background: #434656; }
        .material-symbols-outlined {
            font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1em;
            height: 1em;
            overflow: hidden;
            white-space: nowrap;
            vertical-align: middle;
        }
          .gradient-blur {
            backdrop-filter: blur(12px);
            background: linear-gradient(180deg, rgba(17, 19, 23, 0.8) 0%, rgba(17, 19, 23, 0) 100%);
        }
           /* Reveal Animation Styles */
        .reveal {
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
            will-change: opacity, transform;
        }
        .reveal.active {
            opacity: 1;
            transform: translateY(0);
        }
          .noir-card {
            background-color: #1a1c20;
            border: 1px solid #333539;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
         .gradient-button {
            background: #0055FE;
            transition: all 0.3s ease;
        }
          .semicolon-list li {
            position: relative;
            padding-left: 1.5rem;
        }
        .semicolon-list li::before {
            content: ";";
            position: absolute;
            left: 0;
            color: #0055FE;
            font-weight: bold;
        }
          .gradient-button:hover {
            box-shadow: 0 0 25px rgba(0, 85, 254, 0.4);
            filter: brightness(1.1);
        }
    .filter-chip.active {
            background: #0055FE;
            color: #ffffff;
            border-color: #0055FE;
        }
        #flipbook-modal {
            display: none;
        }
        #flipbook-modal.active {
            display: flex;
        }
        .noir-card:hover {
            border-color: #8d90a2;
        }
           input:focus, select:focus, textarea:focus {
            outline: none;
            box-shadow: none !important;
        }
          .glow-border:focus-within {
            box-shadow: 0 0 0 2px rgba(0, 85, 254, 0.15);
            border-color: #0055fe;
        }
         .bento-grid {
            display: grid;
            grid-template-columns: repeat(12, 1fr);
            gap: 24px;
        }
    /* Bento grid column-span utilities (base + responsive).
       These must always be full-width by default (mobile-first) so cards
       stack properly on small screens even if the Tailwind CDN script
       fails to load. */
    .col-span-1 { grid-column: span 1 / span 1; }
    .col-span-2 { grid-column: span 2 / span 2; }
    .col-span-3 { grid-column: span 3 / span 3; }
    .col-span-4 { grid-column: span 4 / span 4; }
    .col-span-5 { grid-column: span 5 / span 5; }
    .col-span-6 { grid-column: span 6 / span 6; }
    .col-span-7 { grid-column: span 7 / span 7; }
    .col-span-8 { grid-column: span 8 / span 8; }
    .col-span-9 { grid-column: span 9 / span 9; }
    .col-span-10 { grid-column: span 10 / span 10; }
    .col-span-11 { grid-column: span 11 / span 11; }
    .col-span-12 { grid-column: span 12 / span 12; }
    @media (min-width: 768px) {
        .md\:col-span-1 { grid-column: span 1 / span 1; }
        .md\:col-span-2 { grid-column: span 2 / span 2; }
        .md\:col-span-3 { grid-column: span 3 / span 3; }
        .md\:col-span-4 { grid-column: span 4 / span 4; }
        .md\:col-span-5 { grid-column: span 5 / span 5; }
        .md\:col-span-6 { grid-column: span 6 / span 6; }
        .md\:col-span-7 { grid-column: span 7 / span 7; }
        .md\:col-span-8 { grid-column: span 8 / span 8; }
        .md\:col-span-9 { grid-column: span 9 / span 9; }
        .md\:col-span-10 { grid-column: span 10 / span 10; }
        .md\:col-span-11 { grid-column: span 11 / span 11; }
        .md\:col-span-12 { grid-column: span 12 / span 12; }
    }
    @media (min-width: 1024px) {
        .lg\:col-span-1 { grid-column: span 1 / span 1; }
        .lg\:col-span-2 { grid-column: span 2 / span 2; }
        .lg\:col-span-3 { grid-column: span 3 / span 3; }
        .lg\:col-span-4 { grid-column: span 4 / span 4; }
        .lg\:col-span-5 { grid-column: span 5 / span 5; }
        .lg\:col-span-6 { grid-column: span 6 / span 6; }
        .lg\:col-span-7 { grid-column: span 7 / span 7; }
        .lg\:col-span-8 { grid-column: span 8 / span 8; }
        .lg\:col-span-9 { grid-column: span 9 / span 9; }
        .lg\:col-span-10 { grid-column: span 10 / span 10; }
        .lg\:col-span-11 { grid-column: span 11 / span 11; }
        .lg\:col-span-12 { grid-column: span 12 / span 12; }
    }
    /* flaoting whatsapp */

    /* ===============================
       Motion Enhancements (subtle)
       =============================== */

    /* Smooth page load fade-in */
    /* body {
        animation: semicolon-page-fade-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
    }
    @keyframes semicolon-page-fade-in {
        from { opacity: 0; transform: translateY(6px); }
        to { opacity: 1; transform: translateY(0); }
    } */

    /* Subtle hover lift for interactive surfaces */
    .glass-card,
    .primary-gradient,
    .primary-button,
    .gradient-button,
    .noir-card {
        transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),
                    box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1),
                    background-color 0.25s ease,
                    border-color 0.25s ease;
    }
    .glass-card:hover {
        transform: translateY(-3px);
    }
    .primary-gradient:hover,
    .primary-button:hover,
    .gradient-button:hover {
        transform: translateY(-2px);
    }
    button, a > button, .filter-chip {
        transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1),
                    box-shadow 0.2s ease,
                    background-color 0.2s ease,
                    border-color 0.2s ease,
                    color 0.2s ease;
    }
    button:active, a > button:active {
        transform: scale(0.97);
    }

    /* Scroll-reveal base state (paired with footer_script.js observer) */
    .glass-card {
        opacity: 0;
        transform: translateY(20px);
    }
    .glass-card.in-view {
        opacity: 1;
        transform: translateY(0);
    }

    /* Respect users who prefer reduced motion */
    @media (prefers-reduced-motion: reduce) {
        body { animation: none !important; }
        .glass-card,
        .primary-gradient,
        .primary-button,
        .gradient-button,
        .noir-card,
        button,
        a > button {
            transition: none !important;
            transform: none !important;
        }
        .glass-card {
            opacity: 1 !important;
            transform: none !important;
        }
    }

    /* ===============================
       Mobile Card Width Enhancement
       =============================== */
    @media (max-width: 767px) {
        /* Full width single column for all cards */
        .grid {
            grid-template-columns: 1fr !important;
        }
        
        .grid.sm\:grid-cols-2,
        .grid.grid-cols-2,
        .grid.md\:grid-cols-2,
        .grid.md\:grid-cols-3,
        .grid.lg\:grid-cols-2,
        .grid.lg\:grid-cols-3 {
            grid-template-columns: 1fr !important;
        }

        /* Bento grid */
        .bento-grid {
            grid-template-columns: 1fr !important;
            gap: 16px;
        }

        /* All Tailwind column spans */
        [class*="col-span"] {
            grid-column: span 1 / span 1 !important;
        }

        /* Glass cards */
        .glass-card {
            width: 100% !important;
            min-width: 100% !important;
        }

        /* Aspect ratio cards */
        .aspect-square {
            width: 100% !important;
        }

        /* Reviews grid */
        .md\:grid-cols-3,
        .grid-cols-3 {
            grid-template-columns: 1fr !important;
        }

        /* Services cards */
        .md\:col-span-8,
        .md\:col-span-6,
        .md\:col-span-4,
        .lg\:col-span-8,
        .lg\:col-span-6,
        .lg\:col-span-4 {
            grid-column: span 1 / span 1 !important;
        }

        /* Container padding */
        .max-w-container-max {
            padding-left: 12px !important;
            padding-right: 12px !important;
        }

        /* Flex items full width */
        .flex.flex-col.sm\:flex-row {
            flex-direction: column !important;
        }

        /* Gap adjustments */
        .gap-4,
        .gap-6,
        .gap-8 {
            gap: 16px !important;
        }
    }
/* --- Footer mobile layout safeguard ---
   Ensures "Pages" and "Our Office" always sit side by side on mobile,
   with Newsletter full-width below, regardless of Tailwind CDN load order. */
footer.bg-obsidian-deep > div.grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
footer.bg-obsidian-deep > div.grid > div:nth-child(1) { grid-column: span 2 / span 2; }
footer.bg-obsidian-deep > div.grid > div:nth-child(2) { grid-column: span 1 / span 1; }
footer.bg-obsidian-deep > div.grid > div:nth-child(3) { grid-column: span 1 / span 1; }
footer.bg-obsidian-deep > div.grid > div:nth-child(4) { grid-column: span 2 / span 2; }

@media (min-width: 768px) {
    footer.bg-obsidian-deep > div.grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    footer.bg-obsidian-deep > div.grid > div:nth-child(1),
    footer.bg-obsidian-deep > div.grid > div:nth-child(2),
    footer.bg-obsidian-deep > div.grid > div:nth-child(3),
    footer.bg-obsidian-deep > div.grid > div:nth-child(4) {
        grid-column: span 1 / span 1;
    }
}

/* --- Global mobile refinements: smaller headings, tighter paddings/gaps --- */
@media (max-width: 639px) {
    /* Big page headlines */
    .text-display-lg { font-size: 38px !important; line-height: 44px !important; }
    .text-headline-lg { font-size: 26px !important; line-height: 32px !important; }
    .text-headline-xl { font-size: 30px !important; line-height: 36px !important; }

    /* Section vertical padding */
    .py-24 { padding-top: 44px !important; padding-bottom: 44px !important; }
    .py-20 { padding-top: 36px !important; padding-bottom: 36px !important; }
    .py-section-padding-desktop { padding-top: 40px !important; padding-bottom: 40px !important; }

    /* Card/section internal padding */
    .p-10 { padding: 22px !important; }
    .p-8 { padding: 18px !important; }
    .px-8 { padding-left: 18px !important; padding-right: 18px !important; }
    .py-10 { padding-top: 22px !important; padding-bottom: 22px !important; }

    /* Heading bottom margins */
    .mb-16 { margin-bottom: 28px !important; }
    .mb-20 { margin-bottom: 32px !important; }

    /* Gaps between cards/grid items */
    .gap-6 { gap: 16px !important; }
    .gap-8 { gap: 18px !important; }
    .gap-10 { gap: 20px !important; }
    .gap-16 { gap: 24px !important; }
}