/* ==========================================================================
   IMPORTS
   ========================================================================== */
@import url('https://fonts.googleapis.com');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap');

/* ==========================================================================
   CUSTOM FONTS
   ========================================================================== */
@font-face {
    font-family: 'Ivy Presto';
    src: url('./font/Ivy-Presto.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* ==========================================================================
   HEADING FONT OVERRIDES
   ========================================================================== */
h1, h2 {
    font-family: 'Ivy Presto', serif !important;
    letter-spacing: 2px !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.125;
}

/* Custom font size for main hero h1 */
.text-display-md.font-semibold.text-primary.md\:text-display-lg.lg\:text-display-xl {
    font-size: 62px;
    line-height: 78px;
}

/* Custom breakpoint for viewports below 1265px */
@media (max-width: 1264px) {
    .text-display-md.font-semibold.text-primary.md\:text-display-lg.lg\:text-display-xl {
        font-size: 4.75vw;
        line-height: 6vw;
    }
}

/* Custom breakpoint for viewports below 1120px */
@media (max-width: 1119px) {
    .text-display-md.font-semibold.text-primary.md\:text-display-lg.lg\:text-display-xl {
        font-size: 4.5vw;
        line-height: 5.75vw;
    }
    
    .text-lg.text-balance.text-tertiary_on-brand.md\:text-xl {
        font-size: 18px;
        line-height: 24px;
    }
    
    .bg-primary_alt.py-16.lg\:flex.lg\:min-h-160.lg\:items-center.lg\:py-24 {
        min-height: 30rem; /* lg:min-h-120 equivalent */
    }
}



/* ==========================================================================
   CUSTOM LG BREAKPOINT CLIP-PATH
   ========================================================================== */
/* Large Desktop (≥ 1024px) - Consolidated */
@media (min-width: 1024px) {
    /* Clip path for hero image */
    .lg\:\[clip-path\:polygon\(10\%_0\%\,_100\%_0\%\,_100\%_100\%\,_0\%_100\%\)\] {
        clip-path: polygon(10% 0%, 100% 0%, 100% 100%, 0% 100%);
    }
    
    /* Countdown loader font size */
    .countdown-percentage {
        font-size: 3.75rem;
        line-height: 1;
    }
}

/* ==========================================================================
   PAGE REVEAL ANIMATION
   ========================================================================== */

/* Prevent scrolling during loading and reveal animation */
body.loading {
    overflow: hidden;
    height: 100vh;
}

/* Countdown Loader Styles */
.countdown-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 10001;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 2rem;
    pointer-events: none;
}

.countdown-content {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    transition: opacity 0.8s ease-out;
}

.countdown-content.fade-out {
    opacity: 0;
}

.countdown-percentage {
    font-weight: 700;
    color: #ffffff;
    font-family: inherit;
}

.countdown-text {
    color: #ffffff;
    font-family: inherit;
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}

.countdown-text.fade {
    opacity: 0;
}

/* Match h1 font sizes across all viewports */
.countdown-percentage {
    font-size: 2.25rem;
    line-height: 2.5rem;
}

/* Medium Mobile (≤ 767px) - Consolidated */
@media (max-width: 767px) {
    /* Countdown loader styles */
    .countdown-percentage {
        font-size: 2.5rem;
        line-height: 2.75rem;
    }
    
    /* Reduce footer height */
    footer.py-5.md\:pt-14 {
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
    }
    
    /* Keep buttons in row layout instead of stacking */
    .mt-8.flex.w-full.flex-col-reverse.items-center.justify-center.gap-3.md\:mt-12.md\:flex-row.md\:items-start.lg\:items-start.lg\:justify-start {
        flex-direction: row !important;
    }
    
    /* H1 font size adjustments */
    .flex-1.text-display-md.font-semibold.text-primary_on-brand.md\:text-display-lg.lg\:text-display-xl.text-center.lg\:text-left {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }
    
    /* Paragraph font size adjustments */
    .mt-4.text-lg.text-tertiary.md\:mt-5.md\:text-xl {
        font-size: 16px;
        line-height: 24px;
    }
}

@media (min-width: 768px) {
    .countdown-percentage {
        font-size: 3rem;
        line-height: 1;
    }
}



/* Page Reveal Animation Styles */
.page-reveal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9999;
    pointer-events: none;
}

.reveal-rectangle {
    position: absolute;
    width: 10.1vw;
    height: 100vh;
    background-color: #ea580c; /* Orange primary color */
    transform-origin: top;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    top: 0;
}

/* Position each rectangle */
.reveal-rect-1 { left: 0vw; }
.reveal-rect-2 { left: 10vw; }
.reveal-rect-3 { left: 20vw; }
.reveal-rect-4 { left: 30vw; }
.reveal-rect-5 { left: 40vw; }
.reveal-rect-6 { left: 50vw; }
.reveal-rect-7 { left: 60vw; }
.reveal-rect-8 { left: 70vw; }
.reveal-rect-9 { left: 80vw; }
.reveal-rect-10 { left: 90vw; }

/* Animation classes */
.reveal-rectangle.animate {
    transform: scaleY(0);
}

/* Hide overlay after animation completes */
.page-reveal-overlay.animation-complete {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: -1 !important;
}

/* Mobile optimization - use only 1 rectangle on small screens */
@media (max-width: 959px) {
    /* Tighter letter spacing for Ivy Presto font on mobile */
    h1, h2 {
        letter-spacing: -0.01562em !important;
    }
    
    .reveal-rect-2,
    .reveal-rect-3,
    .reveal-rect-4,
    .reveal-rect-5,
    .reveal-rect-6,
    .reveal-rect-7,
    .reveal-rect-8,
    .reveal-rect-9,
    .reveal-rect-10 {
        display: none;
    }
    
    /* Single rectangle covers full width */
    .reveal-rectangle {
        width: 100vw;
    }
    
    /* Position single rectangle */
    .reveal-rect-1 { left: 0vw; }
}

/* ==========================================================================
   LAYOUT & STRUCTURE
   ========================================================================== */

/* Header shadow control */
.header-no-shadow {
    box-shadow: none !important;
}

/* Custom aspect ratio for industry cards */
.aspect-\[4\/5\] {
    aspect-ratio: 4/5;
}

/* ==========================================================================
   FORM ELEMENTS
   ========================================================================== */

/* Ensure textarea has visible focus state on mobile */
textarea:focus {
    outline: none !important;
}

/* Ensure textarea has visible border on mobile devices */
@media (max-width: 767px) {
    textarea {
        box-shadow: 0 0 0 1px rgb(209 213 219) !important; /* Default gray ring like other inputs */
        border: 1px solid rgb(209 213 219) !important;
    }
    
    textarea:focus {
        box-shadow: 0 0 0 2px rgb(234 88 12) !important; /* Orange brand color ring on focus */
        border-color: rgb(234 88 12) !important;
    }
}

/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */

/* Force increased line spacing for specific paragraph */
p.leading-loose {
    line-height: 1.7 !important;
}

/* ==========================================================================
   INTERACTIVE ELEMENTS & HOVER STATES
   ========================================================================== */

/* Consistent hover effects for main action buttons */
.cta-button:hover,
a.bg-utility-brand-500:hover,
a.bg-brand-solid:hover,
button[type="submit"]:hover {
    background-color: rgb(234 88 12) !important; /* Keep original brand color */
    transform: translateY(-1px) !important;
}

/* Add subtle movement to Start Your Inquiry button */
a.bg-primary_alt:hover,
a[onclick*="setSubjectAndNavigate('project')"]:hover {
    transform: translateY(-1px) !important;
}

/* Make Book A Meeting button match View Our Expertise button colors */
a.bg-brand-solid {
    background-color: rgb(234 88 12) !important; /* Match bg-utility-brand-500 default color */
}

/* Ensure Book A Meeting button overrides Tailwind hover class */
a.bg-brand-solid.hover\:bg-brand-solid_hover:hover {
    background-color: rgb(234 88 12) !important; /* Force same orange as other buttons */
}

/* Transitions for main action buttons */
.cta-button,
a.bg-utility-brand-500,
a.bg-brand-solid,
button[type="submit"] {
    transition: all 0.2s ease-in-out !important;
}

/* Navigation links hover effects - underline only, no color change */
nav ul li a:hover {
    text-decoration: underline !important;
}

/* Exclude Book A Meeting button from underline effect */
nav ul li a.bg-brand-solid:hover {
    text-decoration: none !important;
}

/* Book A Meeting button should have color change on hover like other buttons */
a.bg-brand-solid:hover {
    color: rgba(255, 255, 255, 0.9) !important; /* Slight color change */
}

/* ==========================================================================
   NAVIGATION & Z-INDEX
   ========================================================================== */

/* Fix navigation z-index to ensure Contact Us button is clickable */
.nav-desktop {
    position: relative;
    z-index: 10;
}

.header-right {
    position: relative;
    z-index: 5;
}

/* ==========================================================================
   RESPONSIVE DESIGN - MEDIA QUERIES
   Organized from highest to lowest viewport breakpoints:
   - 1264px: Large Desktop Adjustments
   - 1119px: Medium Desktop Adjustments  
   - 1023px: Tablet and Large Mobile
   - 959px: Mobile Navigation
   - 767px: Medium Mobile (Consolidated)
   - 639px: Small Mobile (Consolidated)
   - 478px: Extra Small Mobile
   ========================================================================== */

/* Tablet and Large Mobile (≤ 1023px) */
@media (max-width: 1023px) {
    /* Hero section layout adjustments */
    .flex.flex-col.items-center.lg\:items-start.md\:max-w-3xl.lg\:w-1\/2.lg\:pr-8 {
        padding-top: 0;
        padding-bottom: 0;
        max-width: 100% !important;
        width: 100% !important;
        padding-right: 0 !important;
        margin-top: 0rem !important;
        margin-bottom: 2rem !important;
    }
    
    .mt-4.text-display-md.font-semibold.text-primary.md\:text-display-lg.lg\:text-display-xl.text-center.lg\:text-left {
        margin-top: 0;
        font-size: 60px;
        line-height: 74px;
    }
    
    .mt-8.flex.w-full.flex-col-reverse.items-center.justify-center.gap-3.md\:mt-12.md\:flex-row.md\:items-start.lg\:items-start.lg\:justify-start {
        gap: 0.5rem;
        margin-top: 2rem;
    }
    
    /* Hero image natural aspect ratio */
    .relative.mt-16.h-70.w-full.px-4.md\:h-96.md\:px-8.lg\:absolute.lg\:inset-y-0.lg\:right-0.lg\:mt-0.lg\:h-full.lg\:w-1\/2.lg\:px-0 {
        height: auto !important;
        position: static !important;
        margin-top: 0 !important;
    }
    
    /* Make image display at natural aspect ratio */
    .size-full.object-cover.lg\:absolute.lg\:inset-0.lg\:-left-10.lg\:w-\[calc\(100\%\+40px\)\].lg\:max-w-none.lg\:\[clip-path\:polygon\(10\%_0\%\,_100\%_0\%\,_100\%_100\%\,_0\%_100\%\)\] {
        object-fit: contain !important;
        position: static !important;
        width: 100% !important;
        height: auto !important;
        max-width: 100% !important;
        left: auto !important;
        clip-path: none !important;
        border-radius: 0.75rem !important;
        margin-top: 1.5rem !important;
    }
}

/* Mobile Navigation (≤ 959px) */
@media (max-width: 959px) {
    .nav-desktop {
        display: none !important;
    }
    .cta-button {
        display: none !important;
    }
    .mobile-menu-button {
        display: block !important;
    }
    .mobile-menu-button svg path {
        stroke: #ea580c !important;
    }
    .header-logo {
        position: absolute !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        margin: 0 !important;
        justify-content: center !important;
        width: auto !important;
    }
    .header-container > div:first-child {
        justify-content: center !important;
        position: static !important;
    }
    .header-container {
        display: flex !important;
        justify-content: space-between !important;
        position: relative !important;
        grid-template-columns: none !important;
    }
    .header-right {
        position: absolute !important;
        right: 1rem !important;
    }
}



/* Small Mobile (≤ 639px) */
@media (max-width: 639px) {
    /* Stack buttons vertically */
    .mt-8.flex.w-full.flex-col-reverse.items-center.justify-center.gap-3.md\:mt-12.md\:flex-row.md\:items-start.lg\:items-start.lg\:justify-start {
        flex-direction: column !important;
    }
    
    /* Increase h3 font size for services label */
    .text-lg.font-semibold.text-utility-brand-500 {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }
    
    /* Center align contact ul and all elements inside */
    .grid.w-full.grid-cols-1.gap-x-8.gap-y-10.sm\:grid-cols-2.md\:gap-y-12 {
        justify-items: center !important;
        text-align: center !important;
    }
    
    /* Center align each contact li item */
    .flex.max-w-sm.flex-col.items-start {
        align-items: center !important;
        text-align: center !important;
    }
    
    /* Make hero section flex column with image on top */
    .lg\:flex.lg\:min-h-160.lg\:items-center.lg\:py-24 {
        display: flex !important;
        flex-direction: column !important;
        padding-top: 0 !important;
    }
    
    /* Remove top padding from hero section container */
    .relative.bg-primary_alt.py-16.lg\:flex.lg\:min-h-160.lg\:items-center.lg\:py-24.border-b.border-gray-100 {
        padding-top: 0 !important;
    }
    
    /* Reorder hero image to appear first */
    .relative.mt-16.h-70.w-full.px-4.md\:h-96.md\:px-8.lg\:absolute.lg\:inset-y-0.lg\:right-0.lg\:mt-0.lg\:h-full.lg\:w-1\/2.lg\:px-0 {
        order: -1 !important;
        margin-top: 0 !important;
    }
    
    /* Adjust text content container */
    .flex.flex-col.items-center.lg\:items-start.md\:max-w-3xl.lg\:w-1\/2.lg\:pr-8 {
        max-width: 100% !important;
        width: 100% !important;
        padding-right: 0 !important;
        margin-top: 2rem !important;
        margin-bottom: 1.5rem !important;
    }

    .mt-4.text-display-md.font-semibold.text-primary.md\:text-display-lg.lg\:text-display-xl.text-center.lg\:text-left {
        margin-top: 0;
        font-size: 8vw;
        line-height: 9.25vw;
    }
    
    /* Remove text-balance from paragraph */
    .text-lg.text-balance.text-tertiary_on-brand.md\:text-xl {
        text-wrap: auto;
    }
    
    /* Reduce h2 font size and adjust line height - target specific Tailwind classes */
    h2.text-display-sm,
    h2.text-display-md,
    h2.text-display-lg {
        font-size: 1.75rem !important; /* 28px, down from default */
        line-height: 2.25rem !important; /* 36px, proportional spacing */
    }
}

/* Extra Small Mobile (≤ 478px) */
@media (max-width: 478px) {
    /* Stack footer elements vertically with gap */
    .flex.flex-row.justify-between.items-center {
        flex-direction: column !important;
        gap: 0.5rem;
        align-items: center !important;
    }
    
    /* Reduce paragraph font size */
    .text-md.font-semibold.text-utility-brand-500.w-100.text-right {
        font-size: 0.875rem;
        line-height: 1.25rem;
        text-align: center !important;
    }
    
    /* Reduce main paragraph font size */
    .text-lg.text-balance.text-tertiary_on-brand.md\:text-xl {
        font-size: 1rem !important; /* Down from text-lg (1.125rem) */
        line-height: 1.5rem !important; /* Proportional line height */
    }
    
    /* Scale down logo size - target both h-9 and h-10 */
    .h-10.w-auto {
        height: 2.25rem !important;
    }

    .h1, .h2 {
        letter-spacing: 0px;
    }
}

/* Let Tailwind handle all hover states naturally - no overrides */

/* All elements now use their natural Tailwind hover classes - no custom overrides */

/* Carousel navigation buttons styling */
.carousel-nav-button {
    --tw-ring-color: rgba(0, 0, 0, 0.3) !important;
    transition: all 0.2s ease-in-out;
}

.carousel-nav-button svg {
    color: rgba(0, 0, 0, 0.6) !important;
}

.carousel-nav-button:hover {
    --tw-ring-color: #6941c6 !important;
}

.carousel-nav-button:hover svg {
    color: #6941c6 !important;
}

/* Smooth auto-scrolling carousel */
.carousel-container {
    transition: none;
    will-change: transform;
}

::selection {
    color: white;
    background: #6941c6
}

.typography:not(:where([class~=not-typography], [class~=not-typography] *)) {
    --tw-typography-body: var(--color-text-tertiary);
    --tw-typography-headings: var(--color-text-primary);
    --tw-typography-lead: var(--color-text-tertiary);
    --tw-typography-links: var(--color-text-primary);
    --tw-typography-bold: var(--color-text-primary);
    --tw-typography-counters: var(--color-text-tertiary);
    --tw-typography-bullets: var(--color-text-tertiary);
    --tw-typography-hr: var(--color-border-secondary);
    --tw-typography-quotes: var(--color-text-primary);
    --tw-typography-quote-borders: var(--color-fg-brand-primary_alt);
    --tw-typography-captions: var(--color-text-tertiary);
    --tw-typography-code: var(--color-text-primary);
    --tw-typography-pre-code: var(--color-text-tertiary);
    --tw-typography-pre-bg: var(--color-bg-primary);
    --tw-typography-th-borders: var(--color-border-primary);
    --tw-typography-td-borders: var(--color-border-secondary);
    color: var(--tw-typography-body);
    font-size: var(--text-md);
    line-height: var(--text-md--line-height)
}

.typography :not(:where([class~=not-typography], [class~=not-typography] *)) {
    &:where(p) {
        font-size: var(--text-md);
        line-height: var(--text-md--line-height);
        margin-top: calc(var(--spacing) * 4);
        margin-bottom: calc(var(--spacing) * 4);
        max-width: calc(var(--spacing) * 192)
    }

    &:where([class~=lead]) {
        font-size: var(--text-md);
        line-height: var(--text-md--line-height);
        margin-top: 1.2em;
        margin-bottom: 1.2em
    }

    &:where(strong) {
        font-weight: 600;
        color: var(--tw-typography-bold)
    }

    &:where(ol) {
        list-style-type: decimal;
        margin-top: calc(var(--spacing) * 4);
        margin-bottom: calc(var(--spacing) * 4);
        padding-inline-start: 23px
    }

    &:where(ul) {
        list-style-type: disc;
        margin-top: calc(var(--spacing) * 4);
        margin-bottom: calc(var(--spacing) * 4);
        padding-inline-start: 23px
    }

    &:where(li) {
        margin-top: 8px;
        margin-bottom: 8px
    }

    &:where(ol>li) {
        padding-inline-start: 1px;
        margin-top: 0;
        margin-bottom: 0
    }

    &:where(ul>li) {
        padding-inline-start: 1px;
        margin-top: 0;
        margin-bottom: 0
    }

    &:where(hr) {
        margin-top: calc(var(--spacing) * 8);
        margin-bottom: calc(var(--spacing) * 8)
    }

    &:where(blockquote) {
        color: var(--tw-typography-quotes);
        border-left-width: 2px;
        border-left-color: var(--tw-typography-quote-borders);
        padding-inline-start: 0;
        margin-top: calc(var(--spacing) * 10);
        margin-bottom: calc(var(--spacing) * 10)
    }

    &:where(blockquote p) {
        margin: 0;
        font-weight: 500;
        font-style: italic;
        font-size: var(--text-xl);
        line-height: var(--text-xl--line-height)
    }

    &:where(blockquote p:first-of-type:before) {
        content: open-quote
    }

    &:where(blockquote p:last-of-type:after) {
        content: close-quote
    }

    &:where(h1) {
        color: var(--tw-typography-headings);
        font-weight: 600;
        font-size: var(--text-xl);
        line-height: var(--text-xl--line-height);
        margin-top: calc(var(--spacing) * 8);
        margin-bottom: calc(var(--spacing) * 3);
        max-width: calc(var(--spacing) * 192)
    }

    &:where(h2) {
        color: var(--tw-typography-headings);
        font-weight: 600;
        font-size: var(--text-lg);
        line-height: var(--text-lg--line-height);
        margin-top: calc(var(--spacing) * 5);
        margin-bottom: calc(var(--spacing) * 2.5);
        max-width: calc(var(--spacing) * 192)
    }

    &:where(h3) {
        color: var(--tw-typography-headings);
        font-weight: 600;
        font-size: var(--text-md);
        line-height: var(--text-md--line-height);
        margin-top: calc(var(--spacing) * 5);
        margin-bottom: calc(var(--spacing) * 2);
        max-width: calc(var(--spacing) * 192)
    }

    &:where(h4) {
        color: var(--tw-typography-headings);
        font-weight: 600;
        font-size: var(--text-lg);
        line-height: var(--text-lg--line-height);
        margin-bottom: calc(var(--spacing) * 2);
        margin-top: calc(var(--spacing) * 5);
        max-width: calc(var(--spacing) * 192)
    }

    @media (width >=48rem) {
        &:where(h1) {
            font-size: var(--text-display-xs);
            line-height: var(--text-display-xs--line-height);
            margin-top: calc(var(--spacing) * 8);
            margin-bottom: calc(var(--spacing) * 3)
        }

        &:where(h2) {
            font-size: var(--text-xl);
            line-height: var(--text-xl--line-height);
            margin-top: calc(var(--spacing) * 8);
            margin-bottom: calc(var(--spacing) * 3)
        }

        &:where(h3) {
            margin-top: calc(var(--spacing) * 8);
            margin-bottom: calc(var(--spacing) * 2)
        }
    }

    &:where(h2+*) {
        margin-top: 0
    }

    &:where(h3+*) {
        margin-top: 0
    }

    &:where(h4+*) {
        margin-top: 0
    }

    &:where(h1 strong) {
        font-weight: 900;
        color: inherit
    }

    &:where(h2 strong) {
        font-weight: 800;
        color: inherit
    }

    &:where(h3 strong) {
        font-weight: 700;
        color: inherit
    }

    &:where(h4 strong) {
        font-weight: 700;
        color: inherit
    }

    &:where(img) {
        border-radius: var(--radius-xl);
        width: 100%;
        object-fit: cover;
        margin-top: calc(var(--spacing) * 8);
        margin-bottom: calc(var(--spacing) * 8)
    }

    &:where(video) {
        margin-top: calc(var(--spacing) * 8);
        margin-bottom: calc(var(--spacing) * 8)
    }

    &:where(figure) {
        margin-top: calc(var(--spacing) * 10);
        margin-bottom: calc(var(--spacing) * 10)
    }

    &:where(figure>*) {
        margin-top: 0;
        margin-bottom: 0
    }

    &:where(figure:has(>blockquote)) {
        border-left-width: 2px;
        border-left-color: var(--tw-typography-quote-borders);
        padding-top: calc(var(--spacing) * 2);
        padding-bottom: calc(var(--spacing) * 2);
        padding-inline-start: calc(var(--spacing) * 4)
    }

    &:where(figure:has(>blockquote) blockquote) {
        padding-inline-start: 0;
        border: none
    }

    &:where(img+figcaption) {
        display: flex;
        align-items: center;
        gap: calc(var(--spacing) * 1.5)
    }

    &:where(figcaption) {
        color: var(--tw-typography-captions);
        font-size: var(--text-sm);
        line-height: var(--text-sm--line-height);
        margin-top: calc(var(--spacing) * 3)
    }

    &:where(cite) {
        font-style: normal
    }

    &:where(a:not(h1 a, h2 a, h3 a, h4 a, h5 a, h6 a)) {
        font-weight: 500;
        transition: text-decoration-color .1s linear;
        color: var(--tw-typography-links);
        text-decoration: underline;
        text-decoration-color: var(--color-utility-gray-200);
        text-underline-offset: 3px;

        &:hover {
            text-decoration-color: var(--color-utility-gray-400)
        }
    }

    &:where(a:focus-visible) {
        border-radius: var(--radius-sm);
        outline: 2px solid var(--color-focus-ring);
        outline-offset: 2px
    }

    &:where(:is(h1, h2, h3) a) {
        color: var(--tw-typography-headings);
        font-weight: inherit;
        text-decoration: none
    }

    &:where(code:not(pre code)) {
        font-size: .875rem;
        line-height: 1.25rem;
        font-weight: 700;
        border-radius: 6px;
        padding: 2px 6px;
        margin: -2px 0;
        background: var(--color-bg-secondary);
        box-shadow: 0 0 0 1px var(--color-border-secondary);

        &:after,
        &:before {
            content: ""
        }
    }
}

.typography.typography-centered-quote :not(:where([class~=not-typography], [class~=not-typography] *)) {
    &:where(blockquote) {
        padding-inline-start: 0 !important;
        border-left: none;
        text-align: center
    }

    &:where(figure:has(>blockquote)) {
        border-left: none;
        padding-inline-start: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        text-align: center
    }
}

.typography.typography-minimal-quote :not(:where([class~=not-typography], [class~=not-typography] *)) {
    &:where(blockquote) {
        border-left: none;
        padding-inline-start: 0 !important
    }

    &:where(figure:has(>blockquote)) {
        border-left: none;
        padding-inline-start: 0 !important
    }
}

.typography.md\:typography-lg:not(:where([class~=not-typography], [class~=not-typography] *)) {
    @media (width >=48rem) {
        font-size: var(--text-lg);
        line-height: var(--text-lg--line-height)
    }
}

.typography.md\:typography-lg :not(:where([class~=not-typography], [class~=not-typography] *)) {
    @media (width >=48rem) {
        &:where(p) {
            margin-top: calc(var(--spacing) * 4.5);
            margin-bottom: calc(var(--spacing) * 4.5)
        }

        &:where([class~=lead]) {
            font-size: var(--text-xl);
            line-height: var(--text-xl--line-height);
            margin-top: 1.09em;
            margin-bottom: 1.09em
        }

        &:where(ol) {
            margin-top: calc(var(--spacing) * 4.5);
            margin-bottom: calc(var(--spacing) * 4.5);
            padding-inline-start: 26px
        }

        &:where(ul) {
            margin-top: calc(var(--spacing) * 4.5);
            margin-bottom: calc(var(--spacing) * 4.5);
            padding-inline-start: 26px
        }

        &:where(ol>li) {
            padding-inline-start: 1px;
            margin-top: 0;
            margin-bottom: 0
        }

        &:where(ul>li) {
            padding-inline-start: 1px;
            margin-top: 0;
            margin-bottom: 0
        }

        &:where(hr) {
            margin-top: calc(var(--spacing) * 8);
            margin-bottom: calc(var(--spacing) * 8)
        }

        &:where(blockquote) {
            padding-inline-start: 0;
            margin-top: calc(var(--spacing) * 12);
            margin-bottom: calc(var(--spacing) * 12)
        }

        &:where(blockquote p) {
            margin: 0;
            font-size: var(--text-display-xs);
            line-height: var(--text-display-xs--line-height)
        }

        &:where(h1) {
            font-size: var(--text-display-md);
            line-height: var(--text-display-md--line-height);
            margin-top: calc(var(--spacing) * 12);
            margin-bottom: calc(var(--spacing) * 6)
        }

        &:where(h2) {
            font-size: var(--text-display-sm);
            line-height: var(--text-display-sm--line-height);
            margin-top: calc(var(--spacing) * 10);
            margin-bottom: calc(var(--spacing) * 5)
        }

        &:where(h3) {
            font-size: var(--text-display-xs);
            line-height: var(--text-display-xs--line-height);
            margin-top: calc(var(--spacing) * 8);
            margin-bottom: calc(var(--spacing) * 4)
        }

        &:where(h4) {
            font-size: var(--text-xl);
            line-height: var(--text-xl--line-height);
            margin-top: calc(var(--spacing) * 8);
            margin-bottom: calc(var(--spacing) * 3)
        }

        &:where(h2+*) {
            margin-top: 0
        }

        &:where(h3+*) {
            margin-top: 0
        }

        &:where(h4+*) {
            margin-top: 0
        }

        &:where(figure) {
            margin-top: calc(var(--spacing) * 12);
            margin-bottom: calc(var(--spacing) * 12)
        }

        &:where(figure>*) {
            margin-top: 0;
            margin-bottom: 0
        }

        &:where(figure:has(>blockquote)) {
            padding-inline-start: calc(var(--spacing) * 5)
        }

        &:where(figure>blockquote+figcaption) {
            font-size: var(--text-md);
            line-height: var(--text-md--line-height)
        }

        &:where(figcaption) {
            margin-top: calc(var(--spacing) * 4)
        }

        &:where(a:not(h1 a, h2 a, h3 a, h4 a, h5 a, h6 a)) {
            font-weight: 400;
            text-decoration: underline;
            text-underline-offset: 3px
        }

        &:where(:is(h1, h2, h3) a) {
            color: var(--tw-typography-headings);
            font-weight: inherit;
            text-decoration: none
        }

        &:where(code:not(pre code)) {
            font-weight: 600;
            border-radius: 6px;
            padding: 4px 8px;
            margin: -2px 0;
            background: var(--color-bg-secondary);
            box-shadow: 0 0 0 1px var(--color-border-secondary)
        }
    }
}

.typography>:first-child:not(:where([class~=not-typography], [class~=not-typography] *)):not([data-divider]) {
    margin-top: 0
}

.typography>:last-child:not(:where([class~=not-typography], [class~=not-typography] *)) {
    margin-bottom: 0
}

@font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/react/_next/static/media/55c55f0601d81cf3-s.woff2) format("woff2");
    unicode-range: u+0460-052f, u+1c80-1c8a, u+20b4, u+2de0-2dff, u+a640-a69f, u+fe2e-fe2f
}

@font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/react/_next/static/media/26a46d62cd723877-s.woff2) format("woff2");
    unicode-range: u+0301, u+0400-045f, u+0490-0491, u+04b0-04b1, u+2116
}

@font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/react/_next/static/media/97e0cb1ae144a2a9-s.woff2) format("woff2");
    unicode-range: u+1f??
}

@font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/react/_next/static/media/581909926a08bbc8-s.woff2) format("woff2");
    unicode-range: u+0370-0377, u+037a-037f, u+0384-038a, u+038c, u+038e-03a1, u+03a3-03ff
}

@font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/react/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");
    unicode-range: u+0102-0103, u+0110-0111, u+0128-0129, u+0168-0169, u+01a0-01a1, u+01af-01b0, u+0300-0301, u+0303-0304, u+0308-0309, u+0323, u+0329, u+1ea0-1ef9, u+20ab
}

@font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/react/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");
    unicode-range: u+0100-02ba, u+02bd-02c5, u+02c7-02cc, u+02ce-02d7, u+02dd-02ff, u+0304, u+0308, u+0329, u+1d00-1dbf, u+1e00-1e9f, u+1ef2-1eff, u+2020, u+20a0-20ab, u+20ad-20c0, u+2113, u+2c60-2c7f, u+a720-a7ff
}

@font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(/react/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");
    unicode-range: u+00??, u+0131, u+0152-0153, u+02bb-02bc, u+02c6, u+02da, u+02dc, u+0304, u+0308, u+0329, u+2000-206f, u+20ac, u+2122, u+2191, u+2193, u+2212, u+2215, u+feff, u+fffd
}

@font-face {
    font-family: Inter Fallback;
    src: local("Arial");
    ascent-override: 90.44%;
    descent-override: 22.52%;
    line-gap-override: 0.00%;
    size-adjust: 107.12%
}

.__className_866408 {
    font-family: Inter, Inter Fallback;
    font-style: normal
}

.__variable_866408 {
    --font-inter: "Inter", "Inter Fallback"
}

.shiki,
.shiki .line:not(.diff) {
    background-color: var(--color-bg-primary) !important
}

.dark-mode .shiki,
.dark-mode .shiki span {
    color: var(--shiki-dark) !important
}

.shiki code .line.diff {
    position: relative;
    display: inline-block;
    width: calc(100% + 44px);
    margin: 0 -24px 0 -20px;
    padding: 0 24px 0 20px;

    &:after {
        left: 6px;
        position: absolute
    }
}

.shiki code .line.diff.remove {
    background-color: var(--color-utility-error-100);

    &:after {
        content: "-";
        color: var(--color-utility-error-700)
    }
}

.shiki code .line.diff.remove .highlighted-word {
    padding: 1px;
    margin: -1px;
    border-radius: 3px;
    background-color: var(--color-utility-error-300);
    color: var(--color-text-primary) !important
}

.shiki code .line.diff.add {
    background-color: var(--color-utility-success-100);

    &:after {
        content: "+";
        color: var(--color-utility-success-700)
    }
}

.shiki code .line.diff.add .highlighted-word {
    padding: 1px;
    margin: -1px;
    border-radius: 3px;
    background-color: var(--color-utility-success-300);
    color: var(--color-text-primary) !important
}

.shiki::-webkit-scrollbar-thumb {
    border-radius: 9999px;
    background: color-mix(in srgb, var(--color-alpha-white), transparent 85%)
}

.shiki::-webkit-scrollbar-track {
    border-radius: 9999px;
    background: transparent
}

.line-numbers .shiki {
    padding-left: 0;
    padding-top: 0;
    padding-bottom: 0
}

.line-numbers .shiki code {
    counter-reset: step;
    counter-increment: step 0;
    display: flex;
    flex-direction: column
}

.line-numbers .shiki code .line:before {
    content: counter(step);
    counter-increment: step;
    display: inline-block;
    position: sticky;
    left: 0;
    color: var(--color-text-quaternary);
    background-color: var(--color-bg-secondary);
    border-right: 1px solid var(--color-border-secondary);
    font-size: 14px;
    font-weight: 700;
    text-align: right;
    width: 48px;
    margin-right: 16px;
    padding-right: 16px
}

.line-numbers .shiki code .line:first-of-type:before {
    padding-top: 16px
}

.line-numbers .shiki code .line:last-of-type:before {
    padding-bottom: 24px
}

@media (min-width:768px) {
    .line-numbers .shiki code .line:before {
        width: 49px;
        margin-right: 20px;
        padding-right: 16px
    }

    .line-numbers .shiki code .line:first-of-type:before {
        padding-top: 20px
    }

    .line-numbers .shiki code .line:last-of-type:before {
        padding-bottom: 20px
    }
}

:root {
    --rc-drag-handle-size: 12px;
    --rc-drag-handle-mobile-size: 24px;
    --rc-drag-handle-bg-colour: rgba(0, 0, 0, 0.2);
    --rc-drag-bar-size: 6px;
    --rc-border-color: var(--color-utility-brand-600);
    --rc-focus-color: #0088ff
}

.ReactCrop {
    position: relative;
    display: inline-block;
    cursor: crosshair;
    max-width: 100%;
    background-image: linear-gradient(45deg, #808080 25%, transparent 0), linear-gradient(-45deg, #808080 25%, transparent 0), linear-gradient(45deg, transparent 75%, #808080 0), linear-gradient(-45deg, transparent 75%, #808080 0);
    background-size: 30px 30px;
    background-position: 0 0, 0 15px, 15px -15px, -15px 0;
    backdrop-filter: brightness(.7)
}

.ReactCrop *,
.ReactCrop :after,
.ReactCrop :before {
    box-sizing: border-box
}

.ReactCrop--disabled,
.ReactCrop--locked {
    cursor: inherit
}

.ReactCrop__child-wrapper {
    overflow: hidden;
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px
}

.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,
.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,
.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection {
    touch-action: none
}

.ReactCrop__crop-mask {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    border-radius: 8px
}

.ReactCrop__crop-selection {
    position: absolute;
    top: 0;
    left: 0;
    transform: translateZ(0);
    cursor: move
}

.ReactCrop--disabled .ReactCrop__crop-selection {
    cursor: inherit
}

.ReactCrop--circular-crop .ReactCrop__crop-selection {
    border-radius: 50%
}

.ReactCrop--circular-crop .ReactCrop__crop-selection:after {
    pointer-events: none;
    content: "";
    position: absolute;
    top: -1px;
    right: -1px;
    bottom: -1px;
    left: -1px;
    border: 2px solid var(--rc-border-color)
}

.ReactCrop__crop-selection {
    border: 1px solid var(--color-utility-brand-600);
    box-shadow: 0 0 0 1px inset var(--color-utility-brand-600);
    background-size: 10px 1px, 10px 1px, 1px 10px, 1px 10px;
    background-position: 0 0, 0 100%, 0 0, 100% 0;
    background-repeat: repeat-x, repeat-x, repeat-y, repeat-y
}

.ReactCrop__crop-selection:focus {
    outline: 2px solid var(--rc-focus-color);
    outline-offset: -1px
}

.ReactCrop--invisible-crop .ReactCrop__crop-mask,
.ReactCrop--invisible-crop .ReactCrop__crop-selection {
    display: none
}

.ReactCrop__rule-of-thirds-hz:after,
.ReactCrop__rule-of-thirds-hz:before,
.ReactCrop__rule-of-thirds-vt:after,
.ReactCrop__rule-of-thirds-vt:before {
    content: "";
    display: block;
    position: absolute;
    background-color: rgba(255, 255, 255, .4)
}

.ReactCrop__rule-of-thirds-vt:after,
.ReactCrop__rule-of-thirds-vt:before {
    width: 1px;
    height: 100%
}

.ReactCrop__rule-of-thirds-vt:before {
    left: 33.3333%;
    left: calc(100% / 3)
}

.ReactCrop__rule-of-thirds-vt:after {
    left: 66.6666%;
    left: calc(100% / 3 * 2)
}

.ReactCrop__rule-of-thirds-hz:after,
.ReactCrop__rule-of-thirds-hz:before {
    width: 100%;
    height: 1px
}

.ReactCrop__rule-of-thirds-hz:before {
    top: 33.3333%;
    top: calc(100% / 3)
}

.ReactCrop__rule-of-thirds-hz:after {
    top: 66.6666%;
    top: calc(100% / 3 * 2)
}

.ReactCrop__drag-handle {
    position: absolute;
    width: var(--rc-drag-handle-size);
    height: var(--rc-drag-handle-size);
    background-color: #ffffff;
    border: 2px solid var(--rc-border-color)
}

.ReactCrop .ord-nw {
    top: 0;
    left: 0;
    transform: translate(-50%, -50%);
    cursor: nw-resize
}

.ReactCrop .ord-n {
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    cursor: n-resize
}

.ReactCrop .ord-ne {
    top: 0;
    cursor: ne-resize
}

.ReactCrop .ord-e,
.ReactCrop .ord-ne {
    right: 0;
    transform: translate(50%, -50%)
}

.ReactCrop .ord-e {
    top: 50%;
    cursor: e-resize
}

.ReactCrop .ord-se {
    bottom: 0;
    right: 0;
    transform: translate(50%, 50%);
    cursor: se-resize
}

.ReactCrop .ord-s {
    left: 50%;
    cursor: s-resize
}

.ReactCrop .ord-s,
.ReactCrop .ord-sw {
    bottom: 0;
    transform: translate(-50%, 50%)
}

.ReactCrop .ord-sw {
    left: 0;
    cursor: sw-resize
}

.ReactCrop .ord-w {
    top: 50%;
    left: 0;
    transform: translate(-50%, -50%);
    cursor: w-resize
}

.ReactCrop__disabled .ReactCrop__drag-handle {
    cursor: inherit
}

.ReactCrop__drag-bar {
    position: absolute
}

.ReactCrop__drag-bar.ord-n {
    top: 0;
    left: 0;
    width: 100%;
    height: var(--rc-drag-bar-size);
    transform: translateY(-50%)
}

.ReactCrop__drag-bar.ord-e {
    right: 0;
    top: 0;
    width: var(--rc-drag-bar-size);
    height: 100%;
    transform: translateX(50%)
}

.ReactCrop__drag-bar.ord-s {
    bottom: 0;
    left: 0;
    width: 100%;
    height: var(--rc-drag-bar-size);
    transform: translateY(50%)
}

.ReactCrop__drag-bar.ord-w {
    top: 0;
    left: 0;
    width: var(--rc-drag-bar-size);
    height: 100%;
    transform: translateX(-50%)
}

.ReactCrop--fixed-aspect .ReactCrop__drag-bar,
.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,
.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,
.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,
.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w,
.ReactCrop--new-crop .ReactCrop__drag-bar,
.ReactCrop--new-crop .ReactCrop__drag-handle {
    display: none
}

@media (pointer:coarse) {

    .ReactCrop .ord-e,
    .ReactCrop .ord-n,
    .ReactCrop .ord-s,
    .ReactCrop .ord-w {
        display: none
    }

    .ReactCrop__drag-handle {
        width: var(--rc-drag-handle-mobile-size);
        height: var(--rc-drag-handle-mobile-size)
    }
}

@layer {
    [data-react-aria-pressable] {
        touch-action: pan-x pan-y pinch-zoom;
    }
}

[data-sonner-toaster][dir=ltr],
html[dir=ltr] {
    --toast-icon-margin-start: -3px;
    --toast-icon-margin-end: 4px;
    --toast-svg-margin-start: -1px;
    --toast-svg-margin-end: 0px;
    --toast-button-margin-start: auto;
    --toast-button-margin-end: 0;
    --toast-close-button-start: 0;
    --toast-close-button-end: unset;
    --toast-close-button-transform: translate(-35%, -35%)
}

[data-sonner-toaster][dir=rtl],
html[dir=rtl] {
    --toast-icon-margin-start: 4px;
    --toast-icon-margin-end: -3px;
    --toast-svg-margin-start: 0px;
    --toast-svg-margin-end: -1px;
    --toast-button-margin-start: 0;
    --toast-button-margin-end: auto;
    --toast-close-button-start: unset;
    --toast-close-button-end: 0;
    --toast-close-button-transform: translate(35%, -35%)
}

[data-sonner-toaster] {
    position: fixed;
    width: var(--width);
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
    --gray1: hsl(0, 0%, 99%);
    --gray2: hsl(0, 0%, 97.3%);
    --gray3: hsl(0, 0%, 95.1%);
    --gray4: hsl(0, 0%, 93%);
    --gray5: hsl(0, 0%, 90.9%);
    --gray6: hsl(0, 0%, 88.7%);
    --gray7: hsl(0, 0%, 85.8%);
    --gray8: hsl(0, 0%, 78%);
    --gray9: hsl(0, 0%, 56.1%);
    --gray10: hsl(0, 0%, 52.3%);
    --gray11: hsl(0, 0%, 43.5%);
    --gray12: hsl(0, 0%, 9%);
    --border-radius: 8px;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    list-style: none;
    outline: 0;
    z-index: 999999999;
    transition: transform .4s ease
}

@media (hover:none) and (pointer:coarse) {
    [data-sonner-toaster][data-lifted=true] {
        transform: none
    }
}

[data-sonner-toaster][data-x-position=right] {
    right: var(--offset-right)
}

[data-sonner-toaster][data-x-position=left] {
    left: var(--offset-left)
}

[data-sonner-toaster][data-x-position=center] {
    left: 50%;
    transform: translateX(-50%)
}

[data-sonner-toaster][data-y-position=top] {
    top: var(--offset-top)
}

[data-sonner-toaster][data-y-position=bottom] {
    bottom: var(--offset-bottom)
}

[data-sonner-toast] {
    --y: translateY(100%);
    --lift-amount: calc(var(--lift) * var(--gap));
    z-index: var(--z-index);
    position: absolute;
    opacity: 0;
    transform: var(--y);
    touch-action: none;
    transition: transform .4s, opacity .4s, height .4s, box-shadow .2s;
    box-sizing: border-box;
    outline: 0;
    overflow-wrap: anywhere
}

[data-sonner-toast][data-styled=true] {
    padding: 16px;
    background: var(--normal-bg);
    border: 1px solid var(--normal-border);
    color: var(--normal-text);
    border-radius: var(--border-radius);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .1);
    width: var(--width);
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 6px
}

[data-sonner-toast]:focus-visible {
    box-shadow: 0 4px 12px rgba(0, 0, 0, .1), 0 0 0 2px rgba(0, 0, 0, .2)
}

[data-sonner-toast][data-y-position=top] {
    top: 0;
    --y: translateY(-100%);
    --lift: 1;
    --lift-amount: calc(1 * var(--gap))
}

[data-sonner-toast][data-y-position=bottom] {
    bottom: 0;
    --y: translateY(100%);
    --lift: -1;
    --lift-amount: calc(var(--lift) * var(--gap))
}

[data-sonner-toast][data-styled=true] [data-description] {
    font-weight: 400;
    line-height: 1.4;
    color: #3f3f3f
}

[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description] {
    color: inherit
}

[data-sonner-toaster][data-sonner-theme=dark] [data-description] {
    color: #e8e8e8
}

[data-sonner-toast][data-styled=true] [data-title] {
    font-weight: 500;
    line-height: 1.5;
    color: inherit
}

[data-sonner-toast][data-styled=true] [data-icon] {
    display: flex;
    height: 16px;
    width: 16px;
    position: relative;
    justify-content: flex-start;
    align-items: center;
    flex-shrink: 0;
    margin-left: var(--toast-icon-margin-start);
    margin-right: var(--toast-icon-margin-end)
}

[data-sonner-toast][data-promise=true] [data-icon]>svg {
    opacity: 0;
    transform: scale(.8);
    transform-origin: center;
    animation: sonner-fade-in .3s ease forwards
}

[data-sonner-toast][data-styled=true] [data-icon]>* {
    flex-shrink: 0
}

[data-sonner-toast][data-styled=true] [data-icon] svg {
    margin-left: var(--toast-svg-margin-start);
    margin-right: var(--toast-svg-margin-end)
}

[data-sonner-toast][data-styled=true] [data-content] {
    display: flex;
    flex-direction: column;
    gap: 2px
}

[data-sonner-toast][data-styled=true] [data-button] {
    border-radius: 4px;
    padding-left: 8px;
    padding-right: 8px;
    height: 24px;
    font-size: 12px;
    color: var(--normal-bg);
    background: var(--normal-text);
    margin-left: var(--toast-button-margin-start);
    margin-right: var(--toast-button-margin-end);
    border: none;
    font-weight: 500;
    cursor: pointer;
    outline: 0;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    transition: opacity .4s, box-shadow .2s
}

[data-sonner-toast][data-styled=true] [data-button]:focus-visible {
    box-shadow: 0 0 0 2px rgba(0, 0, 0, .4)
}

[data-sonner-toast][data-styled=true] [data-button]:first-of-type {
    margin-left: var(--toast-button-margin-start);
    margin-right: var(--toast-button-margin-end)
}

[data-sonner-toast][data-styled=true] [data-cancel] {
    color: var(--normal-text);
    background: rgba(0, 0, 0, .08)
}

[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel] {
    background: rgba(255, 255, 255, .3)
}

[data-sonner-toast][data-styled=true] [data-close-button] {
    position: absolute;
    left: var(--toast-close-button-start);
    right: var(--toast-close-button-end);
    top: 0;
    height: 20px;
    width: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    color: var(--gray12);
    background: var(--normal-bg);
    border: 1px solid var(--gray4);
    transform: var(--toast-close-button-transform);
    border-radius: 50%;
    cursor: pointer;
    z-index: 1;
    transition: opacity .1s, background .2s, border-color .2s
}

[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible {
    box-shadow: 0 4px 12px rgba(0, 0, 0, .1), 0 0 0 2px rgba(0, 0, 0, .2)
}

[data-sonner-toast][data-styled=true] [data-disabled=true] {
    cursor: not-allowed
}

[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover {
    background: var(--gray2);
    border-color: var(--gray5)
}

[data-sonner-toast][data-swiping=true]::before {
    content: '';
    position: absolute;
    left: -100%;
    right: -100%;
    height: 100%;
    z-index: -1
}

[data-sonner-toast][data-y-position=top][data-swiping=true]::before {
    bottom: 50%;
    transform: scaleY(3) translateY(50%)
}

[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before {
    top: 50%;
    transform: scaleY(3) translateY(-50%)
}

[data-sonner-toast][data-swiping=false][data-removed=true]::before {
    content: '';
    position: absolute;
    inset: 0;
    transform: scaleY(2)
}

[data-sonner-toast][data-expanded=true]::after {
    content: '';
    position: absolute;
    left: 0;
    height: calc(var(--gap) + 1px);
    bottom: 100%;
    width: 100%
}

[data-sonner-toast][data-mounted=true] {
    --y: translateY(0);
    opacity: 1
}

[data-sonner-toast][data-expanded=false][data-front=false] {
    --scale: var(--toasts-before) * 0.05 + 1;
    --y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));
    height: var(--front-toast-height)
}

[data-sonner-toast]>* {
    transition: opacity .4s
}

[data-sonner-toast][data-x-position=right] {
    right: 0
}

[data-sonner-toast][data-x-position=left] {
    left: 0
}

[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>* {
    opacity: 0
}

[data-sonner-toast][data-visible=false] {
    opacity: 0;
    pointer-events: none
}

[data-sonner-toast][data-mounted=true][data-expanded=true] {
    --y: translateY(calc(var(--lift) * var(--offset)));
    height: var(--initial-height)
}

[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false] {
    --y: translateY(calc(var(--lift) * -100%));
    opacity: 0
}

[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true] {
    --y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));
    opacity: 0
}

[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false] {
    --y: translateY(40%);
    opacity: 0;
    transition: transform .5s, opacity .2s
}

[data-sonner-toast][data-removed=true][data-front=false]::before {
    height: calc(var(--initial-height) + 20%)
}

[data-sonner-toast][data-swiping=true] {
    transform: var(--y) translateY(var(--swipe-amount-y, 0)) translateX(var(--swipe-amount-x, 0));
    transition: none
}

[data-sonner-toast][data-swiped=true] {
    user-select: none
}

[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],
[data-sonner-toast][data-swipe-out=true][data-y-position=top] {
    animation-duration: .2s;
    animation-timing-function: ease-out;
    animation-fill-mode: forwards
}

[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left] {
    animation-name: swipe-out-left
}

[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right] {
    animation-name: swipe-out-right
}

[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up] {
    animation-name: swipe-out-up
}

[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down] {
    animation-name: swipe-out-down
}

@keyframes swipe-out-left {
    from {
        transform: var(--y) translateX(var(--swipe-amount-x));
        opacity: 1
    }

    to {
        transform: var(--y) translateX(calc(var(--swipe-amount-x) - 100%));
        opacity: 0
    }
}

@keyframes swipe-out-right {
    from {
        transform: var(--y) translateX(var(--swipe-amount-x));
        opacity: 1
    }

    to {
        transform: var(--y) translateX(calc(var(--swipe-amount-x) + 100%));
        opacity: 0
    }
}

@keyframes swipe-out-up {
    from {
        transform: var(--y) translateY(var(--swipe-amount-y));
        opacity: 1
    }

    to {
        transform: var(--y) translateY(calc(var(--swipe-amount-y) - 100%));
        opacity: 0
    }
}

@keyframes swipe-out-down {
    from {
        transform: var(--y) translateY(var(--swipe-amount-y));
        opacity: 1
    }

    to {
        transform: var(--y) translateY(calc(var(--swipe-amount-y) + 100%));
        opacity: 0
    }
}

@media (max-width:600px) {
    [data-sonner-toaster] {
        position: fixed;
        right: var(--mobile-offset-right);
        left: var(--mobile-offset-left);
        width: 100%
    }

    [data-sonner-toaster][dir=rtl] {
        left: calc(var(--mobile-offset-left) * -1)
    }

    [data-sonner-toaster] [data-sonner-toast] {
        left: 0;
        right: 0;
        width: calc(100% - var(--mobile-offset-left) * 2)
    }

    [data-sonner-toaster][data-x-position=left] {
        left: var(--mobile-offset-left)
    }

    [data-sonner-toaster][data-y-position=bottom] {
        bottom: var(--mobile-offset-bottom)
    }

    [data-sonner-toaster][data-y-position=top] {
        top: var(--mobile-offset-top)
    }

    [data-sonner-toaster][data-x-position=center] {
        left: var(--mobile-offset-left);
        right: var(--mobile-offset-right);
        transform: none
    }
}

[data-sonner-toaster][data-sonner-theme=light] {
    --normal-bg: #fff;
    --normal-border: var(--gray4);
    --normal-text: var(--gray12);
    --success-bg: hsl(143, 85%, 96%);
    --success-border: hsl(145, 92%, 87%);
    --success-text: hsl(140, 100%, 27%);
    --info-bg: hsl(208, 100%, 97%);
    --info-border: hsl(221, 91%, 93%);
    --info-text: hsl(210, 92%, 45%);
    --warning-bg: hsl(49, 100%, 97%);
    --warning-border: hsl(49, 91%, 84%);
    --warning-text: hsl(31, 92%, 45%);
    --error-bg: hsl(359, 100%, 97%);
    --error-border: hsl(359, 100%, 94%);
    --error-text: hsl(360, 100%, 45%)
}

[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true] {
    --normal-bg: #000;
    --normal-border: hsl(0, 0%, 20%);
    --normal-text: var(--gray1)
}

[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true] {
    --normal-bg: #fff;
    --normal-border: var(--gray3);
    --normal-text: var(--gray12)
}

[data-sonner-toaster][data-sonner-theme=dark] {
    --normal-bg: #000;
    --normal-bg-hover: hsl(0, 0%, 12%);
    --normal-border: hsl(0, 0%, 20%);
    --normal-border-hover: hsl(0, 0%, 25%);
    --normal-text: var(--gray1);
    --success-bg: hsl(150, 100%, 6%);
    --success-border: hsl(147, 100%, 12%);
    --success-text: hsl(150, 86%, 65%);
    --info-bg: hsl(215, 100%, 6%);
    --info-border: hsl(223, 43%, 17%);
    --info-text: hsl(216, 87%, 65%);
    --warning-bg: hsl(64, 100%, 6%);
    --warning-border: hsl(60, 100%, 9%);
    --warning-text: hsl(46, 87%, 65%);
    --error-bg: hsl(358, 76%, 10%);
    --error-border: hsl(357, 89%, 16%);
    --error-text: hsl(358, 100%, 81%)
}

[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button] {
    background: var(--normal-bg);
    border-color: var(--normal-border);
    color: var(--normal-text)
}

[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover {
    background: var(--normal-bg-hover);
    border-color: var(--normal-border-hover)
}

[data-rich-colors=true][data-sonner-toast][data-type=success] {
    background: var(--success-bg);
    border-color: var(--success-border);
    color: var(--success-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button] {
    background: var(--success-bg);
    border-color: var(--success-border);
    color: var(--success-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=info] {
    background: var(--info-bg);
    border-color: var(--info-border);
    color: var(--info-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button] {
    background: var(--info-bg);
    border-color: var(--info-border);
    color: var(--info-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=warning] {
    background: var(--warning-bg);
    border-color: var(--warning-border);
    color: var(--warning-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button] {
    background: var(--warning-bg);
    border-color: var(--warning-border);
    color: var(--warning-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=error] {
    background: var(--error-bg);
    border-color: var(--error-border);
    color: var(--error-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button] {
    background: var(--error-bg);
    border-color: var(--error-border);
    color: var(--error-text)
}

.sonner-loading-wrapper {
    --size: 16px;
    height: var(--size);
    width: var(--size);
    position: absolute;
    inset: 0;
    z-index: 10
}

.sonner-loading-wrapper[data-visible=false] {
    transform-origin: center;
    animation: sonner-fade-out .2s ease forwards
}

.sonner-spinner {
    position: relative;
    top: 50%;
    left: 50%;
    height: var(--size);
    width: var(--size)
}

.sonner-loading-bar {
    animation: sonner-spin 1.2s linear infinite;
    background: var(--gray11);
    border-radius: 6px;
    height: 8%;
    left: -10%;
    position: absolute;
    top: -3.9%;
    width: 24%
}

.sonner-loading-bar:first-child {
    animation-delay: -1.2s;
    transform: rotate(.0001deg) translate(146%)
}

.sonner-loading-bar:nth-child(2) {
    animation-delay: -1.1s;
    transform: rotate(30deg) translate(146%)
}

.sonner-loading-bar:nth-child(3) {
    animation-delay: -1s;
    transform: rotate(60deg) translate(146%)
}

.sonner-loading-bar:nth-child(4) {
    animation-delay: -.9s;
    transform: rotate(90deg) translate(146%)
}

.sonner-loading-bar:nth-child(5) {
    animation-delay: -.8s;
    transform: rotate(120deg) translate(146%)
}

.sonner-loading-bar:nth-child(6) {
    animation-delay: -.7s;
    transform: rotate(150deg) translate(146%)
}

.sonner-loading-bar:nth-child(7) {
    animation-delay: -.6s;
    transform: rotate(180deg) translate(146%)
}

.sonner-loading-bar:nth-child(8) {
    animation-delay: -.5s;
    transform: rotate(210deg) translate(146%)
}

.sonner-loading-bar:nth-child(9) {
    animation-delay: -.4s;
    transform: rotate(240deg) translate(146%)
}

.sonner-loading-bar:nth-child(10) {
    animation-delay: -.3s;
    transform: rotate(270deg) translate(146%)
}

.sonner-loading-bar:nth-child(11) {
    animation-delay: -.2s;
    transform: rotate(300deg) translate(146%)
}

.sonner-loading-bar:nth-child(12) {
    animation-delay: -.1s;
    transform: rotate(330deg) translate(146%)
}

@keyframes sonner-fade-in {
    0% {
        opacity: 0;
        transform: scale(.8)
    }

    100% {
        opacity: 1;
        transform: scale(1)
    }
}

@keyframes sonner-fade-out {
    0% {
        opacity: 1;
        transform: scale(1)
    }

    100% {
        opacity: 0;
        transform: scale(.8)
    }
}

@keyframes sonner-spin {
    0% {
        opacity: 1
    }

    100% {
        opacity: .15
    }
}

@media (prefers-reduced-motion) {

    .sonner-loading-bar,
    [data-sonner-toast],
    [data-sonner-toast]>* {
        transition: none !important;
        animation: none !important
    }
}

.sonner-loader {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transform-origin: center;
    transition: opacity .2s, transform .2s
}

.sonner-loader[data-visible=false] {
    opacity: 0;
    transform: scale(.8) translate(-50%, -50%)
}

[data-sonner-toaster][dir=ltr],
html[dir=ltr] {
    --toast-icon-margin-start: -3px;
    --toast-icon-margin-end: 4px;
    --toast-svg-margin-start: -1px;
    --toast-svg-margin-end: 0px;
    --toast-button-margin-start: auto;
    --toast-button-margin-end: 0;
    --toast-close-button-start: 0;
    --toast-close-button-end: unset;
    --toast-close-button-transform: translate(-35%, -35%)
}

[data-sonner-toaster][dir=rtl],
html[dir=rtl] {
    --toast-icon-margin-start: 4px;
    --toast-icon-margin-end: -3px;
    --toast-svg-margin-start: 0px;
    --toast-svg-margin-end: -1px;
    --toast-button-margin-start: 0;
    --toast-button-margin-end: auto;
    --toast-close-button-start: unset;
    --toast-close-button-end: 0;
    --toast-close-button-transform: translate(35%, -35%)
}

[data-sonner-toaster] {
    position: fixed;
    width: var(--width);
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
    --gray1: hsl(0, 0%, 99%);
    --gray2: hsl(0, 0%, 97.3%);
    --gray3: hsl(0, 0%, 95.1%);
    --gray4: hsl(0, 0%, 93%);
    --gray5: hsl(0, 0%, 90.9%);
    --gray6: hsl(0, 0%, 88.7%);
    --gray7: hsl(0, 0%, 85.8%);
    --gray8: hsl(0, 0%, 78%);
    --gray9: hsl(0, 0%, 56.1%);
    --gray10: hsl(0, 0%, 52.3%);
    --gray11: hsl(0, 0%, 43.5%);
    --gray12: hsl(0, 0%, 9%);
    --border-radius: 8px;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    list-style: none;
    outline: 0;
    z-index: 999999999;
    transition: transform .4s ease
}

@media (hover:none) and (pointer:coarse) {
    [data-sonner-toaster][data-lifted=true] {
        transform: none
    }
}

[data-sonner-toaster][data-x-position=right] {
    right: var(--offset-right)
}

[data-sonner-toaster][data-x-position=left] {
    left: var(--offset-left)
}

[data-sonner-toaster][data-x-position=center] {
    left: 50%;
    transform: translateX(-50%)
}

[data-sonner-toaster][data-y-position=top] {
    top: var(--offset-top)
}

[data-sonner-toaster][data-y-position=bottom] {
    bottom: var(--offset-bottom)
}

[data-sonner-toast] {
    --y: translateY(100%);
    --lift-amount: calc(var(--lift) * var(--gap));
    z-index: var(--z-index);
    position: absolute;
    opacity: 0;
    transform: var(--y);
    touch-action: none;
    transition: transform .4s, opacity .4s, height .4s, box-shadow .2s;
    box-sizing: border-box;
    outline: 0;
    overflow-wrap: anywhere
}

[data-sonner-toast][data-styled=true] {
    padding: 16px;
    background: var(--normal-bg);
    border: 1px solid var(--normal-border);
    color: var(--normal-text);
    border-radius: var(--border-radius);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .1);
    width: var(--width);
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 6px
}

[data-sonner-toast]:focus-visible {
    box-shadow: 0 4px 12px rgba(0, 0, 0, .1), 0 0 0 2px rgba(0, 0, 0, .2)
}

[data-sonner-toast][data-y-position=top] {
    top: 0;
    --y: translateY(-100%);
    --lift: 1;
    --lift-amount: calc(1 * var(--gap))
}

[data-sonner-toast][data-y-position=bottom] {
    bottom: 0;
    --y: translateY(100%);
    --lift: -1;
    --lift-amount: calc(var(--lift) * var(--gap))
}

[data-sonner-toast][data-styled=true] [data-description] {
    font-weight: 400;
    line-height: 1.4;
    color: #3f3f3f
}

[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description] {
    color: inherit
}

[data-sonner-toaster][data-sonner-theme=dark] [data-description] {
    color: #e8e8e8
}

[data-sonner-toast][data-styled=true] [data-title] {
    font-weight: 500;
    line-height: 1.5;
    color: inherit
}

[data-sonner-toast][data-styled=true] [data-icon] {
    display: flex;
    height: 16px;
    width: 16px;
    position: relative;
    justify-content: flex-start;
    align-items: center;
    flex-shrink: 0;
    margin-left: var(--toast-icon-margin-start);
    margin-right: var(--toast-icon-margin-end)
}

[data-sonner-toast][data-promise=true] [data-icon]>svg {
    opacity: 0;
    transform: scale(.8);
    transform-origin: center;
    animation: sonner-fade-in .3s ease forwards
}

[data-sonner-toast][data-styled=true] [data-icon]>* {
    flex-shrink: 0
}

[data-sonner-toast][data-styled=true] [data-icon] svg {
    margin-left: var(--toast-svg-margin-start);
    margin-right: var(--toast-svg-margin-end)
}

[data-sonner-toast][data-styled=true] [data-content] {
    display: flex;
    flex-direction: column;
    gap: 2px
}

[data-sonner-toast][data-styled=true] [data-button] {
    border-radius: 4px;
    padding-left: 8px;
    padding-right: 8px;
    height: 24px;
    font-size: 12px;
    color: var(--normal-bg);
    background: var(--normal-text);
    margin-left: var(--toast-button-margin-start);
    margin-right: var(--toast-button-margin-end);
    border: none;
    font-weight: 500;
    cursor: pointer;
    outline: 0;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    transition: opacity .4s, box-shadow .2s
}

[data-sonner-toast][data-styled=true] [data-button]:focus-visible {
    box-shadow: 0 0 0 2px rgba(0, 0, 0, .4)
}

[data-sonner-toast][data-styled=true] [data-button]:first-of-type {
    margin-left: var(--toast-button-margin-start);
    margin-right: var(--toast-button-margin-end)
}

[data-sonner-toast][data-styled=true] [data-cancel] {
    color: var(--normal-text);
    background: rgba(0, 0, 0, .08)
}

[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel] {
    background: rgba(255, 255, 255, .3)
}

[data-sonner-toast][data-styled=true] [data-close-button] {
    position: absolute;
    left: var(--toast-close-button-start);
    right: var(--toast-close-button-end);
    top: 0;
    height: 20px;
    width: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    color: var(--gray12);
    background: var(--normal-bg);
    border: 1px solid var(--gray4);
    transform: var(--toast-close-button-transform);
    border-radius: 50%;
    cursor: pointer;
    z-index: 1;
    transition: opacity .1s, background .2s, border-color .2s
}

[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible {
    box-shadow: 0 4px 12px rgba(0, 0, 0, .1), 0 0 0 2px rgba(0, 0, 0, .2)
}

[data-sonner-toast][data-styled=true] [data-disabled=true] {
    cursor: not-allowed
}

[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover {
    background: var(--gray2);
    border-color: var(--gray5)
}

[data-sonner-toast][data-swiping=true]::before {
    content: '';
    position: absolute;
    left: -100%;
    right: -100%;
    height: 100%;
    z-index: -1
}

[data-sonner-toast][data-y-position=top][data-swiping=true]::before {
    bottom: 50%;
    transform: scaleY(3) translateY(50%)
}

[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before {
    top: 50%;
    transform: scaleY(3) translateY(-50%)
}

[data-sonner-toast][data-swiping=false][data-removed=true]::before {
    content: '';
    position: absolute;
    inset: 0;
    transform: scaleY(2)
}

[data-sonner-toast][data-expanded=true]::after {
    content: '';
    position: absolute;
    left: 0;
    height: calc(var(--gap) + 1px);
    bottom: 100%;
    width: 100%
}

[data-sonner-toast][data-mounted=true] {
    --y: translateY(0);
    opacity: 1
}

[data-sonner-toast][data-expanded=false][data-front=false] {
    --scale: var(--toasts-before) * 0.05 + 1;
    --y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));
    height: var(--front-toast-height)
}

[data-sonner-toast]>* {
    transition: opacity .4s
}

[data-sonner-toast][data-x-position=right] {
    right: 0
}

[data-sonner-toast][data-x-position=left] {
    left: 0
}

[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>* {
    opacity: 0
}

[data-sonner-toast][data-visible=false] {
    opacity: 0;
    pointer-events: none
}

[data-sonner-toast][data-mounted=true][data-expanded=true] {
    --y: translateY(calc(var(--lift) * var(--offset)));
    height: var(--initial-height)
}

[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false] {
    --y: translateY(calc(var(--lift) * -100%));
    opacity: 0
}

[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true] {
    --y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));
    opacity: 0
}

[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false] {
    --y: translateY(40%);
    opacity: 0;
    transition: transform .5s, opacity .2s
}

[data-sonner-toast][data-removed=true][data-front=false]::before {
    height: calc(var(--initial-height) + 20%)
}

[data-sonner-toast][data-swiping=true] {
    transform: var(--y) translateY(var(--swipe-amount-y, 0)) translateX(var(--swipe-amount-x, 0));
    transition: none
}

[data-sonner-toast][data-swiped=true] {
    user-select: none
}

[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],
[data-sonner-toast][data-swipe-out=true][data-y-position=top] {
    animation-duration: .2s;
    animation-timing-function: ease-out;
    animation-fill-mode: forwards
}

[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left] {
    animation-name: swipe-out-left
}

[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right] {
    animation-name: swipe-out-right
}

[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up] {
    animation-name: swipe-out-up
}

[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down] {
    animation-name: swipe-out-down
}

@keyframes swipe-out-left {
    from {
        transform: var(--y) translateX(var(--swipe-amount-x));
        opacity: 1
    }

    to {
        transform: var(--y) translateX(calc(var(--swipe-amount-x) - 100%));
        opacity: 0
    }
}

@keyframes swipe-out-right {
    from {
        transform: var(--y) translateX(var(--swipe-amount-x));
        opacity: 1
    }

    to {
        transform: var(--y) translateX(calc(var(--swipe-amount-x) + 100%));
        opacity: 0
    }
}

@keyframes swipe-out-up {
    from {
        transform: var(--y) translateY(var(--swipe-amount-y));
        opacity: 1
    }

    to {
        transform: var(--y) translateY(calc(var(--swipe-amount-y) - 100%));
        opacity: 0
    }
}

@keyframes swipe-out-down {
    from {
        transform: var(--y) translateY(var(--swipe-amount-y));
        opacity: 1
    }

    to {
        transform: var(--y) translateY(calc(var(--swipe-amount-y) + 100%));
        opacity: 0
    }
}

@media (max-width:600px) {
    [data-sonner-toaster] {
        position: fixed;
        right: var(--mobile-offset-right);
        left: var(--mobile-offset-left);
        width: 100%
    }

    [data-sonner-toaster][dir=rtl] {
        left: calc(var(--mobile-offset-left) * -1)
    }

    [data-sonner-toaster] [data-sonner-toast] {
        left: 0;
        right: 0;
        width: calc(100% - var(--mobile-offset-left) * 2)
    }

    [data-sonner-toaster][data-x-position=left] {
        left: var(--mobile-offset-left)
    }

    [data-sonner-toaster][data-y-position=bottom] {
        bottom: var(--mobile-offset-bottom)
    }

    [data-sonner-toaster][data-y-position=top] {
        top: var(--mobile-offset-top)
    }

    [data-sonner-toaster][data-x-position=center] {
        left: var(--mobile-offset-left);
        right: var(--mobile-offset-right);
        transform: none
    }
}

[data-sonner-toaster][data-sonner-theme=light] {
    --normal-bg: #fff;
    --normal-border: var(--gray4);
    --normal-text: var(--gray12);
    --success-bg: hsl(143, 85%, 96%);
    --success-border: hsl(145, 92%, 87%);
    --success-text: hsl(140, 100%, 27%);
    --info-bg: hsl(208, 100%, 97%);
    --info-border: hsl(221, 91%, 93%);
    --info-text: hsl(210, 92%, 45%);
    --warning-bg: hsl(49, 100%, 97%);
    --warning-border: hsl(49, 91%, 84%);
    --warning-text: hsl(31, 92%, 45%);
    --error-bg: hsl(359, 100%, 97%);
    --error-border: hsl(359, 100%, 94%);
    --error-text: hsl(360, 100%, 45%)
}

[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true] {
    --normal-bg: #000;
    --normal-border: hsl(0, 0%, 20%);
    --normal-text: var(--gray1)
}

[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true] {
    --normal-bg: #fff;
    --normal-border: var(--gray3);
    --normal-text: var(--gray12)
}

[data-sonner-toaster][data-sonner-theme=dark] {
    --normal-bg: #000;
    --normal-bg-hover: hsl(0, 0%, 12%);
    --normal-border: hsl(0, 0%, 20%);
    --normal-border-hover: hsl(0, 0%, 25%);
    --normal-text: var(--gray1);
    --success-bg: hsl(150, 100%, 6%);
    --success-border: hsl(147, 100%, 12%);
    --success-text: hsl(150, 86%, 65%);
    --info-bg: hsl(215, 100%, 6%);
    --info-border: hsl(223, 43%, 17%);
    --info-text: hsl(216, 87%, 65%);
    --warning-bg: hsl(64, 100%, 6%);
    --warning-border: hsl(60, 100%, 9%);
    --warning-text: hsl(46, 87%, 65%);
    --error-bg: hsl(358, 76%, 10%);
    --error-border: hsl(357, 89%, 16%);
    --error-text: hsl(358, 100%, 81%)
}

[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button] {
    background: var(--normal-bg);
    border-color: var(--normal-border);
    color: var(--normal-text)
}

[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover {
    background: var(--normal-bg-hover);
    border-color: var(--normal-border-hover)
}

[data-rich-colors=true][data-sonner-toast][data-type=success] {
    background: var(--success-bg);
    border-color: var(--success-border);
    color: var(--success-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button] {
    background: var(--success-bg);
    border-color: var(--success-border);
    color: var(--success-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=info] {
    background: var(--info-bg);
    border-color: var(--info-border);
    color: var(--info-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button] {
    background: var(--info-bg);
    border-color: var(--info-border);
    color: var(--info-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=warning] {
    background: var(--warning-bg);
    border-color: var(--warning-border);
    color: var(--warning-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button] {
    background: var(--warning-bg);
    border-color: var(--warning-border);
    color: var(--warning-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=error] {
    background: var(--error-bg);
    border-color: var(--error-border);
    color: var(--error-text)
}

[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button] {
    background: var(--error-bg);
    border-color: var(--error-border);
    color: var(--error-text)
}

.sonner-loading-wrapper {
    --size: 16px;
    height: var(--size);
    width: var(--size);
    position: absolute;
    inset: 0;
    z-index: 10
}

.sonner-loading-wrapper[data-visible=false] {
    transform-origin: center;
    animation: sonner-fade-out .2s ease forwards
}

.sonner-spinner {
    position: relative;
    top: 50%;
    left: 50%;
    height: var(--size);
    width: var(--size)
}

.sonner-loading-bar {
    animation: sonner-spin 1.2s linear infinite;
    background: var(--gray11);
    border-radius: 6px;
    height: 8%;
    left: -10%;
    position: absolute;
    top: -3.9%;
    width: 24%
}

.sonner-loading-bar:first-child {
    animation-delay: -1.2s;
    transform: rotate(.0001deg) translate(146%)
}

.sonner-loading-bar:nth-child(2) {
    animation-delay: -1.1s;
    transform: rotate(30deg) translate(146%)
}

.sonner-loading-bar:nth-child(3) {
    animation-delay: -1s;
    transform: rotate(60deg) translate(146%)
}

.sonner-loading-bar:nth-child(4) {
    animation-delay: -.9s;
    transform: rotate(90deg) translate(146%)
}

.sonner-loading-bar:nth-child(5) {
    animation-delay: -.8s;
    transform: rotate(120deg) translate(146%)
}

.sonner-loading-bar:nth-child(6) {
    animation-delay: -.7s;
    transform: rotate(150deg) translate(146%)
}

.sonner-loading-bar:nth-child(7) {
    animation-delay: -.6s;
    transform: rotate(180deg) translate(146%)
}

.sonner-loading-bar:nth-child(8) {
    animation-delay: -.5s;
    transform: rotate(210deg) translate(146%)
}

.sonner-loading-bar:nth-child(9) {
    animation-delay: -.4s;
    transform: rotate(240deg) translate(146%)
}

.sonner-loading-bar:nth-child(10) {
    animation-delay: -.3s;
    transform: rotate(270deg) translate(146%)
}

.sonner-loading-bar:nth-child(11) {
    animation-delay: -.2s;
    transform: rotate(300deg) translate(146%)
}

.sonner-loading-bar:nth-child(12) {
    animation-delay: -.1s;
    transform: rotate(330deg) translate(146%)
}

@keyframes sonner-fade-in {
    0% {
        opacity: 0;
        transform: scale(.8)
    }

    100% {
        opacity: 1;
        transform: scale(1)
    }
}

@keyframes sonner-fade-out {
    0% {
        opacity: 1;
        transform: scale(1)
    }

    100% {
        opacity: 0;
        transform: scale(.8)
    }
}

@keyframes sonner-spin {
    0% {
        opacity: 1
    }

    100% {
        opacity: .15
    }
}

@media (prefers-reduced-motion) {

    .sonner-loading-bar,
    [data-sonner-toast],
    [data-sonner-toast]>* {
        transition: none !important;
        animation: none !important
    }
}

.sonner-loader {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transform-origin: center;
    transition: opacity .2s, transform .2s
}

.sonner-loader[data-visible=false] {
    opacity: 0;
    transform: scale(.8) translate(-50%, -50%)
}