html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
}

input,
button {
    border-width: 0px;
    outline: none;
    background: transparent
}

button {
    cursor: pointer;
}

select {
    border: 0;
    background: transparent;
    -webkit-appearance: none;
}

textarea {
    outline: none;
    border: 0px;
    resize: none;
    background: transparent;
}

* {
    font-size: inherit;
}


.has-interactions {
    /* opacity: 0; */
}


.fmod img:not(.fmod) {
    width: 100%;
    height: unset;
}

img {
    object-fit: cover;
    object-position: center;
    background-image: none !important;
    overflow: hidden !important;
}

.page>.fmod {
    width: 100% !important;
    top: unset !important;
    left: unset !important;
}

.fmod {
    flex-shrink: 1;
    flex-grow: 0;
    flex-basis: auto;
}

.web-comp-inner {
    rotate: 0 !important;
}

html main.page>.fmod.frame:not([data-sizing-x="fill"]),
html main.fmowidget>.fmod.frame:not([data-sizing-x="fill"]) {
    margin-left: auto;
    margin-right: auto;
}

.viewport,
.page,
.stage,
.fmowidget {
    & {
        --zero: 0px;
        --4xs: 1px;
        --3xs: 2px;
        --2xs: 4px;
        --xs: 8px;
        --sm: 12px;
        --md: 16px;
        --lg: 20px;
        --xl: 24px;
        --2xl: 32px;
        --3xl: 40px;
        --4xl: 48px;
        --5xl: 56px;
        --6xl: 64px;
        --7xl: 72px;
        --8xl: 80px;
        --9xl: 88px;
        --10xl: 96px;
        --full: 100%;
        --half: 50%;
        --quarter: 25%;
        --three-quarters: 75%;
        --one-third: 33.33%;
        --two-thirds: 66.66%;
        --one-fourth: 25%;
        --three-fourths: 75%;
        --one-fifth: 20%;
        --two-fifths: 40%;
        --three-fifths: 60%;
        --four-fifths: 80%;
        --one-sixth: 16.66%;
        --five-sixths: 83.33%;
        --one-seventh: 14.28%;
        --two-sevenths: 28.57%;
        --three-sevenths: 42.85%;
        --four-sevenths: 57.14%;
        --five-sevenths: 71.42%;
        --six-sevenths: 85.71%;
        --color-primitive-white: 255 255 255;
        --color-primitive-black: 0 0 0;
        --color-transparent: transparent;
        --transition-none: 0s;
        --transition-fast: 0.2s;
        --transition-medium: 0.3s;
        --transition-slow: 0.6s;
        --unset: unset;
        --thin: 100;
        --extra-light: 200;
        --light: 300;
        --normal: 400;
        --medium: 500;
        --semi-bold: 600;
        --bold: 700;
        --extra-bold: 800;
        --black: 900;
        --scrollbar-bg-color: transparent;
        --scrollbar-thumb-color: #28282887;
        --scrollbar-radius: 20px;
        --scrollbar-width: 4px;
        --text-select-color: #b2d4fd;
    }


    html *:not(.drag) {
        app-region: no-drag !important;
        -webkit-app-region: no-drag !important;
        -webkit-user-drag: none !important;
    }

    *[islink] {
        margin: 0 !important;
    }

    [x-apple-data-detectors] {
        color: inherit !important;
        text-decoration: none !important;
        font-size: inherit !important;
        font-family: inherit !important;
        font-weight: inherit !important;
        line-height: inherit !important;
    }

    * {
        box-sizing: border-box;
        transform-origin: top left;
        text-decoration: none;
    }

    svg.fmod>* {
        translate: var(--left) var(--top);
    }

    .fmod>svg {
        width: 100%;
        height: auto;
    }



    .state-anim.fmo-text[data-sizing-y="hug"],
    .state-anim .fmo-text[data-sizing-y="hug"],
    .state-anim .fmo-text[data-sizing-y="hug"]>* {
        height: max-content !important;
        max-height: max-content !important;
        grid-template-rows: auto;
    }

    .state-anim.fmo-text[data-sizing-x="hug"],
    .state-anim .fmo-text[data-sizing-x="hug"],
    .state-anim .fmo-text[data-sizing-x="hug"]>* {
        width: max-content !important;
        max-width: max-content !important;
        grid-template-columns: auto;
    }

    .swiper-marquee .swiper-wrapper {
        transition-timing-function: linear !important;
    }

    .fmod:has(> .swiper-wrapper.rtl) {
        direction: rtl !important;
    }

    .fmod .swiper-wrapper.rtl .swiper-slide {
        direction: ltr !important;
    }

    .fmod[type="file"] {
        position: static;
    }

    .flex:not(.section)>*:not(.abs):not(.fill) {
        transform-origin: center;
        flex-shrink: 0;
    }

    .flex:not(.section)>*.fill:not(.abs) {
        transform-origin: center;
        flex-shrink: 1;
    }

    html .align-content-unset {
        align-content: unset;
    }

    ul,
    ol {
        margin-block-start: 1em;
        margin-block-end: 1em;
        margin-inline-start: 0px;
        margin-inline-end: 0px;
        padding-inline-start: 40px;
        unicode-bidi: isolate;
        margin-top: 0;
        margin-bottom: 0;
    }

    html body img.fmod {
        background: none;
    }

    ul {
        list-style-type: disc;
    }

    ol {
        list-style-type: decimal;
    }

    blockquote,
    dl,
    dd,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    hr,
    figure,
    p,
    pre {
        margin: 0;
    }

    body:has(.scroll-snap:not(.preview)) {
        overflow: hidden;
        height: 100vh !important;
    }

    main.scroll-snap {
        scroll-snap-type: y mandatory !important;
        overflow-y: scroll !important;
        height: 100vh !important;
    }

    main.scroll-snap>* {
        scroll-snap-align: start;
    }

    .main_container {}

    .main_container,
    .page,
    .fmowidget {
        width: 100%;
        display: flex;
        padding: 0px;
        margin: auto;
    }

    .free-mode {
        display: grid;
        grid-template-columns: 100% 1fr;
        grid-template-rows: 100% 1fr;
        grid-area: 1 / 1 / 2 / 2;
    }

    .free-mode>.fmod {
        grid-area: 1 / 1 / 2 / 2;
    }

    .fmod:not(.free-mode)>.creation-element {
        top: 0 !important;
        left: 0 !important;
    }

    body {
        margin: 0;
        background-color: white;
    }

    * {
        background-size: cover;
    }


    main.frame {
        margin: auto;
        overflow: clip;
    }

    /* *[data-auto-layout="true"]>*[data-is-absolute="true"] {
        position: absolute;
    } */

    .rel {
        position: relative;
    }

    svg {
        position: relative;
        overflow: visible;
    }

    svg>g {
        transform: matrix(1, 0, 0, 1, 0, 0);
    }

    .lottie svg>g {
        transform: translate(0%, 0%);
    }




    input::placeholder,
    textarea::placeholder {
        opacity: 0.65;
    }

    .inner-select {
        background-color: transparent;
        position: absolute;
        z-index: 1;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
    }

    /* //get first element with kind of text inside select and hide it */
    *:has(>.inner-select)>.text:nth-child(2) {
        visibility: hidden;
    }

    .pointer {
        cursor: pointer
    }


    .transform-origin-center {
        transform-origin: center;
    }

    *[data-three-d="true"],
    *[data-3-d="true"],
    *[data-3-d="true"]>* {
        transform-style: preserve-3d;
    }

    *[data-3-d="true"]>* {
        perspective: unset !important;
    }

    .lottie canvas {
        object-fit: cover;
    }

    *:has(> .spline-canvas) {
        overflow: hidden;
    }

    .spline-canvas {
        object-fit: cover;
        width: 100%;
        height: 100%;
    }


    .z-index-top {
        z-index: 9;
    }

    .flex>.sticky {
        top: 0;
        margin: 0;

    }

    .pin-spacer>.scroll {
        max-width: 9999px !important;
        max-height: 9999px !important;
        transform-origin: center;
    }

    .swiper-marquee .swiper-wrapper {
        transition-timing-function: linear;
    }

    .swiper-slide.inner_grid {
        display: grid;
    }

    .swiper-slide.flex {
        display: flex;
    }

    .swiper-wrapper {
        height: 100%;
    }

    .swiper-wrapper .swiper-slide-active {
        visibility: visible !important;
    }

    .swiper-fade>.swiper-wrapper>*:not(.swiper-slide-visible) {
        height: 0;
    }

    .split-text.overflow-hidden>* {
        overflow: clip;
    }

    html.lenis {
        height: auto;
    }

    .lenis.lenis-smooth {
        scroll-behavior: auto !important;
    }

    .lenis.lenis-smooth [data-lenis-prevent] {
        overscroll-behavior: contain;
    }

    .lenis.lenis-stopped {
        overflow: hidden;
    }

    .lenis.lenis-scrolling iframe {
        pointer-events: none;
    }

    .fmod>iframe {
        min-width: 100% !important;
        min-height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        width: 100% !important;
        height: 100% !important;
        width: stretch !important;
        height: stretch !important;
    }

    .video_background {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .darkinvert input {
        color: var(--darkest);
    }

    * ::-webkit-scrollbar {
        width: var(--scrollbar-width);
        height: var(--scrollbar-width);
    }

    * ::-webkit-scrollbar-track {
        background: var(--scrollbar-bg-color);
        border-radius: var(--scrollbar-radius);
    }

    * ::-webkit-scrollbar-thumb {
        background: var(--scrollbar-thumb-color);
        border-radius: var(--scrollbar-radius);
    }

    * ::-webkit-scrollbar-corner {
        background: transparent;
    }

    .special-input>input[type="file"]::file-selector-button {
        opacity: 0;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .special-input:has(> input[type="file"])>.fmod:not(input[type="file"]) {
        pointer-events: none;
    }

    .special-input:has(> input[type="file"])>.fmod:not(input[type="file"])>* {
        transition: opacity 0.5s;
    }

    .special-input:has(> input[type="file"][value=""])>.fmod:not(input[type="file"])>*:first-child {
        opacity: 1;
    }

    .special-input:has(> input[type="file"][value=""])>.fmod:not(input[type="file"])>*:not(:first-child) {
        opacity: 0;
    }

    .special-input:has(> input[type="file"]:not([value=""]))>.fmod:not(input[type="file"])>*:first-child {
        opacity: 0;
    }

    .special-input:has(> input[type="file"]:not([value=""]))>.fmod:not(input[type="file"])>*:not(:first-child) {
        opacity: 1;
    }

    .special-input>input[type="radio"],
    .special-input>input[type="checkbox"] {
        opacity: 0;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .special-input>input[type="radio"]~ :last-child {
        display: grid !important;
        opacity: 0;
        transition: opacity 0.5s;
    }

    .special-input>input[type="radio"]:checked~ :last-child,
    .special-input>input[type="radio"]:checked~ :last-child.flex {
        opacity: 1;
    }

    .special-input>input[type="checkbox"]~ :last-child {
        display: grid !important;
        opacity: 0;
        transition: opacity 0.5s;
    }

    .special-input>input[type="checkbox"]:checked~ :last-child,
    .special-input>input[type="checkbox"]:checked~ :last-child.flex {
        opacity: 1;
    }

    *.fmo-text *,
    *.fmod.text * {
        max-height: 100%;
        background-clip: inherit;
        background: inherit;
        -webkit-text-fill-color: inherit;
        max-width: 100%;
    }


    *.fmod.video {
        overflow: hidden;
    }

    *.fmod.text[data-clip-content="true"] * {
        overflow: clip !important;
    }

    .w-full {
        min-width: 100%;
        width: 100%;
        max-width: 100%;
    }

    .h-full {
        min-height: 100%;
        height: 100%;
        max-height: 100%;
    }

}


video {
    background-color: transparent !important;
    min-width: 0;
}

.page,
.fmowidget {
    container-type: inline-size;
}

.page,
.stage,
.fmowidget {
    --grid-template-rows: minmax(20px, auto) 1fr;
}


@container (min-width: 1024px) {

    *[data-hide-desktop="true"],
    .desktop-hide {
        display: none !important;
    }
}

@container (min-width: 641px) and (max-width: 1023px) {

    *[data-hide-tablet="true"],
    .tablet-hide {
        display: none !important;
    }
}

@container (max-width: 640px) {

    *[data-hide-mobile="true"],
    .mobile-hide {
        display: none !important;
    }
}

@media (min-width: 1024px) {
    .stage *[data-hide-desktop="true"] {
        display: none !important;
    }
}

@media (min-width: 641px) and (max-width: 1023px) {
    .stage *[data-hide-tablet="true"] {
        display: none !important;
    }
}

@media (max-width: 640px) {
    .stage *[data-hide-mobile="true"] {
        display: none !important;
    }
}



body.antialiased {
    margin: 0;
    padding: 0;
    overflow: hidden;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
}

.fmod[style*="visibility: hidden"],
.top-ctrl[style*="visibility: hidden"] {
    pointer-events: none;
}

.abs {
    position: absolute;
}

.rel {
    position: relative;
}


.disabled {
    pointer-events: none;
    opacity: 0.5;
}

.text-element-container {
    width: 100%;
    height: 100%;
    /* pointer-events: none; */
}



/* Alignment rules for row direction (default and explicit left/right) */
/* Y-axis alignment */


.page,
.fmowidget {
    position: relative;
    width: 100%;
    min-height: 100vh;
    overflow: clip;
    display: flex;
    align-items: top;
    justify-content: center;
}

html body .swiper-wrapper>.fmod:not(.qqq > .qqq) {
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    margin-bottom: 0;
}

.swiper-fade .swiper-slide:not(.swiper-slide-active) {
    opacity: 0 !important;
}

/* [data-sizing-y="fixed"] {
    min-height: var(--height);
    max-height: var(--height);
} */

.page *[data-scroll-snap="true"],
.fmowidget *[data-scroll-snap="true"] {
    scroll-snap-type: y mandatory !important;
    overflow-y: scroll !important;
    height: 100vh !important;
}

*[data-scroll-snap="true"]>* {
    scroll-snap-align: start;
}

body:has(.page *[data-scroll-snap="true"]),
body:has(.fmowidget *[data-scroll-snap="true"]) {
    overflow: hidden;
    height: 100vh !important;
}

.swiper-initialized .swiper-slide.swiper-slide-next {
    display: grid;
}

.swiper-initialized .swiper-slide.swiper-slide-next.flex,
.swiper-initialized .swiper-slide.swiper-slide-next[data-auto-layout="true"] {
    display: flex;
}

.card-anim {
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}

.tabs-triggers-container>* {
    cursor: pointer;
}

.border-gradient {
    -webkit-mask: linear-gradient(#000 0 0) border-box, linear-gradient(#000 0 0) content-box;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}


.rect {
    background: rgb(215, 215, 215);
}

div#canvaslike-container {
    width: 100vw;
    height: 100vh;
}

.viewport.workcanvas,
#controls-container,
#top-controls-container {
    backface-visibility: hidden;
    /* perspective: 1000px; */
    /* will-change: transform, scale; */
    contain: layout;
    transform: translate3d(var(--translate, 0px 0px, 0px)) scale(var(--scale, 1));
}

.viewport,
.page,
.stage,
.fmowidget,
.variant-content,
.instance-content {

    & {
        --zero: 0px;
        --4xs: 1px;
        --3xs: 2px;
        --2xs: 4px;
        --xs: 8px;
        --sm: 12px;
        --md: 16px;
        --lg: 20px;
        --xl: 24px;
        --2xl: 32px;
        --3xl: 40px;
        --4xl: 48px;
        --5xl: 56px;
        --6xl: 64px;
        --7xl: 72px;
        --8xl: 80px;
        --9xl: 88px;
        --10xl: 96px;
        --full: 100%;
        --half: 50%;
        --quarter: 25%;
        --three-quarters: 75%;
        --one-third: 33.33%;
        --two-thirds: 66.66%;
        --one-fourth: 25%;
        --three-fourths: 75%;
        --one-fifth: 20%;
        --two-fifths: 40%;
        --three-fifths: 60%;
        --four-fifths: 80%;
        --one-sixth: 16.66%;
        --five-sixths: 83.33%;
        --one-seventh: 14.28%;
        --two-sevenths: 28.57%;
        --three-sevenths: 42.85%;
        --four-sevenths: 57.14%;
        --five-sevenths: 71.42%;
        --six-sevenths: 85.71%;
        --color-primitive-white: 255 255 255;
        --color-primitive-black: 0 0 0;
        --color-transparent: transparent;
        --transition-none: 0s;
        --transition-fast: 0.2s;
        --transition-medium: 0.3s;
        --transition-slow: 0.6s;
        --unset: unset;
        --thin: 100;
        --extra-light: 200;
        --light: 300;
        --normal: 400;
        --medium: 500;
        --semi-bold: 600;
        --bold: 700;
        --extra-bold: 800;
        --black: 900;
        --scrollbar-bg-color: transparent;
        --scrollbar-thumb-color: #28282887;
        --scrollbar-radius: 20px;
        --scrollbar-width: 4px;
        --text-select-color: #b2d4fd;
    }


    html *:not(.drag) {
        app-region: no-drag !important;
        -webkit-app-region: no-drag !important;
        -webkit-user-drag: none !important;
    }

    *[islink] {
        margin: 0 !important;
    }

    [x-apple-data-detectors] {
        color: inherit !important;
        text-decoration: none !important;
        font-size: inherit !important;
        font-family: inherit !important;
        font-weight: inherit !important;
        line-height: inherit !important;
    }

    * {
        box-sizing: border-box;
        transform-origin: top left;
        text-decoration: none;
    }

    svg.fmod>* {
        translate: var(--left) var(--top);
    }

    .fmod>svg {
        width: 100%;
        height: auto;
    }



    .state-anim.fmo-text[data-sizing-y="hug"],
    .state-anim .fmo-text[data-sizing-y="hug"],
    .state-anim .fmo-text[data-sizing-y="hug"]>* {
        height: max-content !important;
        max-height: max-content !important;
        grid-template-rows: auto;
    }

    .state-anim.fmo-text[data-sizing-x="hug"],
    .state-anim .fmo-text[data-sizing-x="hug"],
    .state-anim .fmo-text[data-sizing-x="hug"]>* {
        width: max-content !important;
        max-width: max-content !important;
        grid-template-columns: auto;
    }

    .swiper-marquee .swiper-wrapper {
        transition-timing-function: linear !important;
    }

    .fmod:has(> .swiper-wrapper.rtl) {
        direction: rtl !important;
    }

    .fmod .swiper-wrapper.rtl .swiper-slide {
        direction: ltr !important;
    }

    .fmod[type="file"] {
        position: static;
    }

    .flex:not(.section)>*:not(.abs):not(.fill) {
        transform-origin: center;
        flex-shrink: 0;
    }

    .flex:not(.section)>*.fill:not(.abs) {
        transform-origin: center;
        flex-shrink: 1;
    }

    html .align-content-unset {
        align-content: unset;
    }

    ul,
    ol {
        margin-block-start: 1em;
        margin-block-end: 1em;
        margin-inline-start: 0px;
        margin-inline-end: 0px;
        padding-inline-start: 40px;
        unicode-bidi: isolate;
        margin-top: 0;
        margin-bottom: 0;
    }

    html body img.fmod {
        background: none;
    }

    ul {
        list-style-type: disc;
    }

    ol {
        list-style-type: decimal;
    }

    blockquote,
    dl,
    dd,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    hr,
    figure,
    p,
    pre {
        margin: 0;
    }

    body:has(.scroll-snap:not(.preview)) {
        overflow: hidden;
        height: 100vh !important;
    }

    main.scroll-snap {
        scroll-snap-type: y mandatory !important;
        overflow-y: scroll !important;
        height: 100vh !important;
    }

    main.scroll-snap>* {
        scroll-snap-align: start;
    }

    .main_container {}

    .main_container,
    .page,
    .fmowidget {
        width: 100%;
        display: grid;
        grid-template-columns: 100%;
        padding: 0px;
        margin: auto;
    }






    .flex {
        display: flex;
    }

    .inner_grid {
        display: grid;
        grid-template-columns: 100% 1fr;
        grid-template-rows: 100% 1fr;
    }

    [add_link_url] {
        cursor: pointer;
    }

    body {
        margin: 0;
        background-color: white;
    }

    * {
        background-size: cover;
    }


    svg {
        position: relative;
        overflow: visible;
    }

    svg>g {
        transform: matrix(1, 0, 0, 1, 0, 0);
    }

    .lottie svg>g {
        transform: translate(0%, 0%);
    }



    input::placeholder,
    textarea::placeholder {
        opacity: 0.65;
    }

    .inner-select {
        background-color: transparent;
        position: absolute;
        z-index: 1;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
    }

    /* //get first element with kind of text inside select and hide it */
    *:has(>.inner-select)>.text:nth-child(2) {
        visibility: hidden;
    }

    .lottie canvas {
        object-fit: cover;
    }

    *:has(> .spline-canvas) {
        overflow: hidden;
    }

    .spline-canvas {
        object-fit: cover;
        width: 100%;
        height: 100%;
    }



    .swiper-marquee .swiper-wrapper {
        transition-timing-function: linear;
    }

    .swiper-slide.inner_grid {
        display: grid;
    }

    .swiper-slide.flex {
        display: flex;
    }

    .swiper-wrapper {
        height: 100%;
    }

    .swiper-wrapper .swiper-slide-active {
        visibility: visible !important;
    }

    .swiper-fade>.swiper-wrapper>*:not(.swiper-slide-visible) {
        height: 0;
    }

    .split-text.overflow-hidden>* {
        overflow: clip;
    }

    html.lenis {
        height: auto;
    }

    .lenis.lenis-smooth {
        scroll-behavior: auto !important;
    }

    .lenis.lenis-smooth [data-lenis-prevent] {
        overscroll-behavior: contain;
    }

    .lenis.lenis-stopped {
        overflow: hidden;
    }

    .lenis.lenis-scrolling iframe {
        pointer-events: none;
    }

    .fmod>iframe {
        min-width: 100% !important;
        min-height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        width: 100% !important;
        height: 100% !important;
        width: stretch !important;
        height: stretch !important;
    }

    * ::-webkit-scrollbar {
        width: var(--scrollbar-width);
        height: var(--scrollbar-width);
    }

    * ::-webkit-scrollbar-track {
        background: var(--scrollbar-bg-color);
        border-radius: var(--scrollbar-radius);
    }

    * ::-webkit-scrollbar-thumb {
        background: var(--scrollbar-thumb-color);
        border-radius: var(--scrollbar-radius);
    }

    * ::-webkit-scrollbar-corner {
        background: transparent;
    }

    .special-input>input[type="file"]::file-selector-button {
        opacity: 0;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .special-input:has(> input[type="file"])>.fmod:not(input[type="file"]) {
        pointer-events: none;
    }

    .special-input:has(> input[type="file"])>.fmod:not(input[type="file"])>* {
        transition: opacity 0.5s;
    }

    .special-input:has(> input[type="file"][value=""])>.fmod:not(input[type="file"])>*:first-child {
        opacity: 1;
    }

    .special-input:has(> input[type="file"][value=""])>.fmod:not(input[type="file"])>*:not(:first-child) {
        opacity: 0;
    }

    .special-input:has(> input[type="file"]:not([value=""]))>.fmod:not(input[type="file"])>*:first-child {
        opacity: 0;
    }

    .special-input:has(> input[type="file"]:not([value=""]))>.fmod:not(input[type="file"])>*:not(:first-child) {
        opacity: 1;
    }

    .special-input>input[type="radio"],
    .special-input>input[type="checkbox"] {
        opacity: 0;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .special-input>input[type="radio"]~ :last-child {
        display: grid !important;
        opacity: 0;
        transition: opacity 0.5s;
    }

    .special-input>input[type="radio"]:checked~ :last-child,
    .special-input>input[type="radio"]:checked~ :last-child.flex {
        opacity: 1;
    }

    .special-input>input[type="checkbox"]~ :last-child {
        display: grid !important;
        opacity: 0;
        transition: opacity 0.5s;
    }

    .special-input>input[type="checkbox"]:checked~ :last-child,
    .special-input>input[type="checkbox"]:checked~ :last-child.flex {
        opacity: 1;
    }

    *.fmo-text *,
    *.fmod.text * {
        max-height: 100%;
        background-clip: inherit;
        background: inherit;
        -webkit-text-fill-color: inherit;
        max-width: 100%;
    }

    *.fmod.video {
        overflow: hidden;
    }

    *.fmod.text[data-clip-content="true"] * {
        overflow: clip !important;
    }
}

.workcanvas {
    width: 100%;
    display: grid;
    grid-template-rows: minmax(20px, auto) 1fr;
    grid-template-columns: 100%;
    padding: 0px;
    padding: 0px;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    transform-origin: 0 0;
    contain: layout;
}

.viewport>.fmod {
    transition: 0s !important;
    transform-origin: center;
    contain: layout;
    height: max-content;
}

.viewport.afterzoom {
    width: 101% !important;
    height: 101% !important;
}

.viewport.afterzoom .fmod {}

/* //if elemment has min-width: 100%; inline style */
.viewport .fmod.frame[style*="min-width: 100%"] {
    min-width: 0 !important;
}

/* Perf fix: removed .fmod:has(.fmod.selected) — forced descendant walk + will-change: margin/width/height.
   JS updateSelectionStyles() now handles will-change: transform per selected element.
   Replaced :has(#canvaslike-container.is-zooming) with direct class (.is-zooming is toggled by JS). */
.fmod.selected {}

.pixleator.is-zooming .fmod {
    pointer-events: none;
}


.pixleator:has(.gradient-helper) .control {
    display: none;
}

.pixleator {
    overflow: clip;
    position: relative;
    width: 100%;
    height: 100%;
    transform-origin: 0 0;
    /* transform-style:flat; */
}

.element-top-overlay {
    position: absolute;
    pointer-events: auto;
    /* background-color: rgba(139, 139, 139, 0.51); */
    /* left: var(--left);
  top: var(--top); */
    grid-area: 1 / 1 / 2 / 2;
    cursor: move;
    /* border-radius: 8px; */
    padding: calc(15px / var(--scale));
    transform: translateY(calc(-100% - (10px / var(--scale))));
    width: var(--width);
    display: flex;
    gap: 10px;
    font-size: calc(12px / var(--scale));
    color: white;
}

*.element-top-overlay:hover {
    outline: 0px;
}

#canvaslike-container {
    width: 100%;
    height: 100%;
    overflow: clip;
    position: relative;
    transform-origin: 0 0;
    color: #000;
    /* scale: var(--scale); */
}

#top-controls-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* overflow: clip; */
    transform-origin: 0 0;
    z-index: 2;
    pointer-events: none;
    /* scale: var(--scale); */
    /* transform: translate3d(var(--translate, 0px 0px, 0px)); */

}

.dark #canvaslike-container .fmod.top-ctrl {
    color: #fff;
    background-color: transparent !important;
    height: max-content !important;
}

/* GPU-accelerated rendering for better performance */
/* Avoid promoting every element to its own layer to reduce GPU layer thrash */
.viewport .fmod {
    /* transform: translateZ(0); */
}

.viewport .fmod.visible {
    /* will-change removed to prevent layer thrashing */
}

/* Optimize for high element counts */
@media (min-resolution: 2dppx) {
    .viewport .fmod {
        image-rendering: optimizeQuality;
    }
}

/* Optimize rendering during interactions */
.is-zooming .viewport,
.is-panning .viewport,
.scale-low .viewport {
    image-rendering: pixelated !important;
    text-rendering: optimizeSpeed !important;
}

/* Perf fix: removed .fmod:not(:has(.selected)) * descendant bomb.
   Was the single most expensive rule — evaluated every .fmod + all children on every selection change.
   image-rendering is already handled by .scale-low .viewport above for zoom-out. */

/* Memory-efficient rendering for large canvases */
.viewport {
    contain: layout style;
    isolation: isolate;
    font-family: arial;
}

/* 
.viewport.workcanvas {
    isolation: isolate;
    contain: layout style;
}

.low-performance .work-container {
  scale: 10;
}

.low-performance .pixleator {
  isolation: isolate;
  contain: layout style;
  overflow: clip;
  width: 10vw;
  height: 10vh;
  position: absolute;
  scale: 0.1;
  transform-origin: 0 0;
  
} */

div#rbgcp-wrapper>*:last-child>div:last-child {
    justify-content: flex-start !important;
    gap: 4px;
    align-items: flex-start;
}

div#rbgcp-wrapper>*:last-child>div:last-child>div:not(:last-child) {
    border: 1px solid #8b8b8b;
}

#canvaslike-container .spline *,
#canvaslike-container .lottie * {
    pointer-events: none !important;
    object-fit: cover !important;
}

.fmod iframe,
.fmod.text:not(.text-editing) * {
    pointer-events: none !important;
}

.text-element-container,
.text-content.ProseMirror {
    -webkit-text-fill-color: inherit;
    background-image: inherit;
    background-position: inherit;
    background-size: inherit;
    background-repeat: inherit;
    background-clip: inherit;
}

/* Persistent selection highlight using decorations */
.fmod .persistent-selection-highlight {
    background: #007bff !important;
    color: white !important;
    opacity: 0.8 !important;
}

.fmod .persistent-selection-highlight.component {
    background: #7700ff !important;
}

/* Ensure decorations persist even when editor loses focus */
.fmod.text-editing .persistent-selection-highlight {
    background: #007bff !important;
    color: white !important;
    opacity: 0.8 !important;
}

/* .text-editing hightlighted text should be transparent */
.fmod.text-editing *::selection {
    background: transparent !important;
}


.preview-iframe-holder {
    max-height: calc(100vh - 80px);
}

.element-outline.selection-locked {
    outline-style: dashed !important;
    outline-width: calc(1px * var(--scale)) !important;
    outline-color: #007bff79 !important;
    box-sizing: border-box !important;
}

.overlay-name,
.preview-current-frame {
    transform-origin: left bottom;
    display: flex;
    align-items: flex-start;
}

html .top-ctrl {
    display: flex;
    justify-content: flex-start;
    gap: calc(5px/var(--scale));
    align-items: center;
    font-size: calc(12px/var(--scale));
    padding: 0px;
    height: calc(32px/var(--scale));
    transition: opacity 0.3s ease;
    z-index: 9999;
    position: absolute;
}

html .viewport:has(> .drag, > .rotate, > .resize) .top-ctrl,
.pixleator:has(.creation-element) .top-ctrl {
    opacity: 0;
    transition-delay: 0.5s;
}

.overlay-name {
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.plus-button,
.play-button {
    flex-shrink: 0;
    height: calc(22px/var(--scale));
    width: calc(22px/var(--scale));
    border-radius: calc(4px/var(--scale));
    background-color: rgb(136, 136, 136);
    color: #ffffff;
    border: none;
    cursor: pointer;
    transition: background 0.3s ease;
    /* margin-left: calc(10px/var(--scale)); */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: calc(18px/var(--scale));
}

.variant-plus-button {
    flex-shrink: 0;
    height: calc(22px/var(--scale));
    width: calc(92px/var(--scale));
    border-radius: calc(4px/var(--scale));
    background-color: rgb(136, 136, 136);
    color: #ffffff;
    border: none;
    cursor: pointer;
    transition: background 0.3s ease;
    /* margin-left: calc(10px/var(--scale)); */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: calc(12px/var(--scale));
}

.play-button:hover,
.plus-button:hover {
    background-color: rgb(59 130 246);
}

.play-button svg {
    width: calc(12px/var(--scale));
    height: calc(12px/var(--scale));
}

.preview-current-frame-overlay {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    height: calc(50px/var(--scale));
    padding: 0;
    height: max-content;
    pointer-events: none;
}

/* Perf fix: removed hover :after pseudo-element — was creating pseudo-elements
   on every .fmod hover across thousands of elements. Selection/hover indicators
   are handled by ControlManager overlays instead. */
.selected:after,
.creation-element:after {
    content: '';
    width: calc(100% * var(--scale));
    height: calc(100% * var(--scale));
    outline: 1px solid #007bff;
    outline-offset: 0px;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    scale: calc(1/var(--scale));
    transform-style: flat;
    transform-origin: top left;
}

.component.selected:after,
.creation-element.component:after {
    outline-color: #7700ff;
}

.fmod.potential-parent:after {
    content: '';
    width: calc(100% * var(--scale));
    height: calc(100% * var(--scale));
    outline: 4px solid #007bff;
    outline-offset: -4px;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    scale: calc(1/var(--scale));
    transform-style: flat;
    /* scale: calc(1/var(--scale)); */
    transform-origin: top left;
}

.fmod.component.potential-parent:after {
    outline-color: #7700ff;
}

.pixleator:has(#canvaslike-container:not(.is-panning):not(.is-zooming)):has(.element-outline) .selected:after {
    opacity: 0;
}

/* Assistant-selected element styles */
.assistant-selected:after {
    outline: 2px solid #10b981 !important;
    /* Green outline for AI-selected elements */
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2) !important;
    /* Subtle glow effect */
}

.assistant-selected.selected:after {
    outline: 2px solid #10b981 !important;
    /* Override blue selection with green */
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.3) !important;
    /* Stronger glow when both selected and assistant-selected */
}

#controls-container {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    transform-origin: top left;
    width: 100%;
    height: 100%;
    z-index: 1000;
}

#overlay-container,
#top-controls-container {
    pointer-events: none !important;
}

/* Hide overlays during active dragging for focused editing experience */
body.is-dragging #overlay-container,
body.is-dragging #top-controls-container {
    visibility: hidden;
    opacity: 0;
    pointer-events: none !important;
}

.element-outline,
.resize-handle,
.rotate-handle,
.group-selection,
.auto-layout-controls,
.shadow-dom-selection,
.padding-handle,
.gap-handle,
.border-radius-handle {
    pointer-events: auto !important;
}

#overlay-container {
    --scale: 1;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: all;
    z-index: 1;
    overflow: hidden;
}

.control {
    position: absolute;
    width: calc(10px / var(--scale));
    height: calc(10px / var(--scale));
    background-color: #007bff;
    border-radius: 50%;
    pointer-events: auto;
    cursor: pointer;
}

.fmod.component .control {
    background-color: #7700ff;
}

.rotate-control {
    top: calc(-25px / var(--scale));
    left: 50%;
    transform: translateX(-50%);
}

.resize-control {
    bottom: calc(-5px / var(--scale));
    right: calc(-5px / var(--scale));
    cursor: se-resize;
}

.selection-box {
    position: absolute;
    border: 1px solid #007bff;
    background-color: rgba(0, 123, 255, 0.1);
    pointer-events: none;
}


.element-outline {
    position: absolute;
    left: var(--ctrl-left, 0);
    top: var(--ctrl-top, 0);
    width: calc(var(--width) * var(--scale));
    height: calc(var(--height) * var(--scale));
    outline: 1px solid #007bff;
    pointer-events: none;
    scale: calc(1/var(--scale));
    transform-origin: top left;
}

.component.element-outline {
    outline-color: #7700ff;
}

.auto-layout-controls {
    scale: calc(1/var(--scale));
    transform-origin: top left;
    width: calc(var(--width) * var(--scale));
    height: calc(var(--height) * var(--scale));
}

.pixleator:has(#canvaslike-container.is-zooming) #controls-container {
    /* display: none !important; */
}

.group-selection {
    position: absolute;
    left: var(--ctrl-left, 0);
    top: var(--ctrl-top, 0);
    outline: 2px dashed #007bff;
    pointer-events: none;
    scale: calc(1/var(--scale));
    transform-origin: top left;
    width: calc(var(--width) * var(--scale));
    height: calc(var(--height) * var(--scale));
}

.control-point {
    position: absolute;
    width: calc(10px / var(--scale));
    height: calc(10px / var(--scale));
    background-color: #007bff;
    border-radius: 50%;
    cursor: pointer;
    z-index: 1000;
}

.fmod.component .control-point {
    background-color: #7700ff;
}

#controls-container .control-point {
    pointer-events: auto;
}

.resize-handle {
    position: absolute;
    width: 10px;
    height: 10px;
    background-color: rgb(93, 90, 90);
    background-color: transparent;
    z-index: 1;
}

.resize-handle:not(.n):not(.s):not(.e):not(.w):after {
    content: '';
    position: absolute;
    width: 10px;
    height: 10px;
    background-color: white;
    border: 1px solid #4285f4;
    border-radius: 50%;
    scale: 1;
    transform-origin: top left;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.resize-handle.n {
    top: -10px;
    left: 50%;
    width: 100%;
    border-radius: 0;
    background-color: transparent;
    border-color: transparent;
    transform: translateX(-50%);
    cursor: n-resize;
}

.resize-handle.s {
    bottom: -10px;
    left: 50%;
    width: 100%;
    border-radius: 0;
    background-color: transparent;
    border-color: transparent;
    transform: translateX(-50%);
    cursor: s-resize;
}

.resize-handle.e {
    right: -10px;
    top: 50%;
    height: 100%;
    border-radius: 0;
    background-color: transparent;
    border-color: transparent;
    transform: translateY(-50%);
    cursor: e-resize;
}

.resize-handle.w {
    left: -10px;
    top: 50%;
    height: 100%;
    border-radius: 0;
    transform: translateY(-50%);
    background-color: transparent;
    border-color: transparent;
    cursor: w-resize;
}

.resize-handle.ne {
    top: -10px;
    right: -10px;
    cursor: ne-resize;
    width: 20px;
    height: 20px;
}

.resize-handle.se {
    bottom: -10px;
    right: -10px;
    cursor: se-resize;
    width: 20px;
    height: 20px;
}

.resize-handle.sw {
    bottom: -10px;
    left: -10px;
    cursor: sw-resize;
    width: 20px;
    height: 20px;
}

.resize-handle.nw {
    top: -10px;
    left: -10px;
    cursor: nw-resize;
    width: 20px;
    height: 20px;
}

.rotate-handle {
    position: absolute;
    width: 10px;
    height: 10px;
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: 50%;
    cursor: pointer;
    scale: 4;
}

.rotate-handle.nw {
    top: -20px;
    left: -20px;
    cursor: url('/icons/rotTL.svg') 16 16, auto;
}

.rotate-handle.ne {
    top: -20px;
    right: -20px;
    cursor: url('/icons/rotTR.svg') 16 16, auto;
}

.rotate-handle.se {
    bottom: -20px;
    right: -20px;
    cursor: url('/icons/rotBR.svg') 16 16, auto;
}

.rotate-handle.sw {
    bottom: -20px;
    left: -20px;
    cursor: url('/icons/rotBL.svg') 16 16, auto;
}

.resize-handle.resize-from-center {
    background-color: yellow;
    /* or any other visual indicator */
}

/* Perf fix: removed .fmod * wildcard — pointer-events: none inherits from .fmod */
.is-panning,
.is-zooming,
.is-panning .fmod,
.is-zooming .fmod {
    pointer-events: none !important;
}

.is-panning .selection-box,
.is-zooming .selection-box {
    display: none;
}

.pixleator:has(.is-panning, .is-zooming) #overlay-container {
    display: none !important;
}

/* Hide children of overlay during interaction, but keep overlay itself for events */
.pixleator:has(.is-panning, .is-zooming) #overlay-container>* {
    /* display: none !important; */
    /* We use opacity in JS, or can force it here */
    opacity: 0;
    pointer-events: none;
}



/* Layer hover highlight styles */
body:has(.layers-list:hover) .layer-hover-highlight {
    outline: calc(2px / var(--scale)) solid #007bff !important;
    outline-offset: calc(2px / var(--scale));
    transition: outline 0.15s ease-in-out;
}


body:has(.layers-list:hover) .component.layer-hover-highlight {
    outline-color: #7700ff !important;
}

body:has(.layers-list:hover) .layer-hover-highlight::before {
    content: '';
    position: absolute;
    top: calc(-4px / var(--scale));
    left: calc(-4px / var(--scale));
    right: calc(-4px / var(--scale));
    bottom: calc(-4px / var(--scale));
    background-color: #007bff12;
    pointer-events: none;
    border-radius: calc(4px / var(--scale));
    transition: background-color 0.15s ease-in-out;
}

.fmod.video>img {
    pointer-events: none;
    object-fit: contain;
}

.fmod.video[data-object-fit="cover"]>img {
    object-fit: cover;
}

.child-w-full>* {
    width: 100%;
}

.hide {
    min-width: var(--width) !important;
    min-height: var(--height) !important;
    z-index: -1;
}

/* Perf fix: removed :has(.selected) from .fmod.hide — forced descendant walk.
   Use direct .selected class check instead. */
.fmod.hide:not(.selected),
.top-ctrl.hide {
    background: rgba(120, 120, 120, 0.35) !important;
}

.fmod.hide .fmod:not(.selected),
.top-ctrl.hide * {
    display: none !important;
}

.viewport {

    /* Import CSS variables */
    & {
        --scrollbar-width: 4px;
        --scrollbar-thumb-color: var(--color-fg-accent);
        --scrollbar-thumb-border-color: var(--color-fg-accent);
        --scrollbar-thumb-hover-color: var(--color-fg-accent) / 70%;
        --scrollbar-thumb-border-radius: 10px;
        --scrollbar-thumb-border-width: var(--zero);
        --scrollbar-thumb-hover-border-color: var(--color-fg-accent) / 70%;
        --scrollbar-bg-color: var(--color-fg-secondary);
        --color-primitive-primary: 40 40 40;
        --color-fg-primary: rgb(var(--color-primitive-primary));
        background-color: var(--bg-body);
    }

    ::selection {
        background-color: var(--text-selection-color);
        color: var(--color-white);
    }
}

*[role="tabpanel"][data-state="inactive"] {
    display: none;
}


.viewport>.fmod .fmod,
.viewport .top-ctrl {
    transform-origin: center;
    /* will-change: transform; */
    pointer-events: none;
}


/* Perf fix: replaced :has(.fmod:hover) with class-based .has-hovered-child.
   JS toggles this class via delegated mouseover/mouseleave on viewport. */
.viewport .fmod.has-hovered-child {
    outline: none !important;
}

.keyframe[data-state="open"]>button[type="button"] {
    margin-bottom: -20px;
}

.added-keyframes {
    padding-top: 15px;
}

/* Low resolution mode when heavily zoomed out (scale < 0.3) */
.low-performance .fmod {
    /* Force lower image quality */
    image-rendering: pixelated;
    image-rendering: -moz-crisp-edges;
    image-rendering: crisp-edges !important;
    /* Disable animations */
    animation: none !important;
    transition: none !important;

    /* Optimize rendering */
    /* Disable expensive text rendering */
    -webkit-font-smoothing: none;
    -moz-osx-font-smoothing: unset;
    text-rendering: optimizeSpeed;
}


.fmod>iframe {
    height: 100% !important;
    width: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    width: stretch !important;
    height: stretch !important;
}

.pixleator:has(.creation-mode) #overlay-container,
.creation-mode,
.creation-mode * {
    cursor: crosshair !important;
}

svg#svgroot>svg:nth-child(2)>* {
    fill: transparent !important;
    stroke: transparent !important;
}

.fmod:has(> #svg-editor-container) {
    background: transparent !important;
}

svg#svgroot #selectorParentGroup circle {
    fill: white !important;
    stroke: #4285f4 !important;
    stroke-width: 1px !important;
}

svg#svgroot #selectorParentGroup line {
    stroke: #4285f4 !important;
}

svg#svgroot #selectorParentGroup path {
    stroke: #4285f4 !important;
}

#selectorGrip_rotate {
    cursor: url('/icons/rotTL.svg') 16 16, auto !important;
}

/* //svg editor */


/* SvgEditor UI Styles */

#svg-editor-container {
    position: relative;
}

.svg-editor-ui-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.svg-editor-toolbar {
    position: absolute;
    top: -45px;
    left: 50%;
    transform: translateX(-50%) scale(var(--scale, 1));
    transform-origin: bottom center;
    background-color: #ffffff;
    padding: 8px;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    z-index: 1001;
    display: flex;
    gap: 4px;
    pointer-events: all;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.svg-editor-toolbar button {
    background: none;
    border: none;
    padding: 6px;
    border-radius: 5px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.svg-editor-toolbar button:hover {
    background-color: #f0f0f0;
}

.svg-editor-toolbar button.active {
    background-color: #e0e0e0;
}

.svg-editor-toolbar .separator {
    border-left: 1px solid #e0e0e0;
    margin: 0 4px;
}

.svg-editor-layer-panel {
    position: absolute;
    top: 0;
    right: calc(-200px * var(--scale, 1));
    width: calc(190px * var(--scale, 1));
    height: auto;
    max-height: 80%;
    background-color: #ffffff;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    z-index: 1001;
    pointer-events: all;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
}

.svg-editor-layer-panel h4 {
    margin: 0;
    padding: 10px;
    font-size: 14px;
    border-bottom: 1px solid #e0e0e0;
    color: #333;
}

.svg-editor-layer-list {
    list-style: none;
    margin: 0;
    padding: 5px;
    overflow-y: auto;
    flex-grow: 1;
}

.svg-editor-layer-item {
    padding: 8px 10px;
    font-size: 13px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}

.svg-editor-layer-item:hover {
    background-color: #f0f0f0;
}

.svg-editor-layer-item.selected {
    background-color: #dbeafe;
    color: #1e40af;
}

.svg-editor-controls-panel {
    position: absolute;
    top: 0;
    left: calc(-200px * var(--scale, 1));
    width: calc(190px * var(--scale, 1));
    background-color: #ffffff;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    z-index: 1001;
    pointer-events: all;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.control-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.control-group label {
    font-size: 13px;
    color: #333;
    margin: 0;
}

.control-group .input-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.control-group input[type="color"] {
    width: 32px;
    height: 32px;
    border: none;
    padding: 0;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
}

.control-group input[type="color"]::-webkit-color-swatch-wrapper {
    padding: 0;
}

.control-group input[type="color"]::-webkit-color-swatch {
    border: none;
    border-radius: 4px;
}

.control-group input[type="number"] {
    width: 60px;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 6px;
    font-size: 13px;
}

.control-group input[type="text"] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 6px;
    font-size: 13px;
}

/* Perf fix: removed .viewport .fmod:has(.selected) — forced descendant walk on every selection change.
   Selection indicators are handled by ControlManager overlays. */
.viewport>.fmod,
.viewport>.fmod.frame>.fmod,
.fmod[data-level="current"]>.fmod,
.viewport>.top-ctrl,
.fmod[data-level="current"]>.top-ctrl,
.viewport .fmod.selected {
    pointer-events: auto;
}

.deepselect .fmod:not([data-locked="true"]:not([data-hidden="true"])) .fmod:not([data-locked="true"]:not([data-hidden="true"]):not(.fmo-component-root)),
.deepselect .top-ctrl {
    pointer-events: auto !important;
}

/* Perf fix: simplified drag/rotate/resize pointer-events.
   Removed .fmod.drag * wildcards and :has(.drag) checks.
   Container-level event listeners handle drag events. */
.fmod.drag,
.fmod.rotate,
.fmod.resize {
    pointer-events: none !important;
}





/* Auto-layout controls styles */
.auto-layout-controls {
    pointer-events: none;
}

.padding-handle,
.gap-handle {
    position: absolute;
    pointer-events: auto;
    transition: opacity 0.2s ease;
    opacity: 0;
    /* border: 1px solid rgba(255, 255, 255, 0.3); */
    /* box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); */
}

.padding-handle:hover,
.gap-handle:hover {
    opacity: 1;
    /* transform: scale(1.1); */
}

.padding-handle-left,
.padding-handle-right,
.gap-handle-row {
    cursor: col-resize;
    max-width: 10%;
}

.gap-handle-row {
    /* height:  calc(100% * var(--scale) - 16px); */
}

.padding-handle-top,
.padding-handle-bottom,
.gap-handle-column {
    cursor: row-resize;
    max-height: 10%;
}

.gap-handle-column {
    /* width:  calc(100% * var(--scale) - 16px); */
}

.gap-handle {
    cursor: grab;
}

.gap-handle:active {
    cursor: grabbing;
}

/* Different colors for different handle types */
.padding-handle-left,
.padding-handle-right,
.padding-handle-top,
.padding-handle-bottom,
.gap-handle {
    display: flex;
    align-items: center;
    justify-content: center;
    /* background-color: #00000090 !important; */
    border-radius: 24px;
}

.padding-handle-left,
.padding-handle-right,
.padding-handle-top,
.padding-handle-bottom {
    z-index: 1002;
}

.dark .gap-handle,
.dark .padding-handle-left,
.dark .padding-handle-right,
.dark .padding-handle-top,
.dark .padding-handle-bottom {
    /* background-color: #ffffff90 !important; */
}

.fmod.text.text-editing,
.fmod.text.text-editing * {
    min-width: 2px;
    min-height: 10px;
    word-wrap: normal;
}


/* Different colors for different handle types */
.padding-handle-left:after,
.padding-handle-right:after,
.padding-handle-top:after,
.padding-handle-bottom:after,
.gap-handle:after {
    content: '';
    max-height: 45%;
    max-width: 45%;
    border-radius: 4px;
    background-color: #777777;
    border: 1px solid #eaeaea;
    transform-origin: center;
    box-sizing: content-box;
    scale: 2;
}

.dark .padding-handle-left:after,
.dark .padding-handle-right:after,
.dark .padding-handle-top:after,
.dark .padding-handle-bottom:after,
.dark .gap-handle:after {
    background-color: #eaeaea;
    border: 1px solid #777777;
}

.padding-handle-left:after,
.padding-handle-right:after,
.gap-handle-row:after {
    height: 48px;
    width: 8px;
}

.padding-handle-top:after,
.padding-handle-bottom:after,
.gap-handle-column:after {
    height: 8px;
    width: 48px;
}



/* Handle size adjustments based on scale */
.scale-low .padding-handle,
.scale-low .gap-handle {
    /* min-width: 18px;
  min-height: 18px; */
}

.scale-medium .padding-handle,
.scale-medium .gap-handle {
    /* min-width: 16px;
  min-height: 16px; */
}

.scale-high {
    image-rendering: pixelated;
}

.scale-high .padding-handle,
.scale-high .gap-handle {
    /* min-width: 14px;
  min-height: 14px; */
}

/* Visibility improvements */
/* .auto-layout-controls:hover .padding-handle,
.auto-layout-controls:hover .gap-handle {
  opacity: 0.8;
} */

/* Active state during dragging */
.padding-handle.dragging,
.gap-handle.dragging {
    /* opacity: 1 !important; */
    z-index: 1002;
}

/* Alt mode visual feedback for padding handles */
.padding-handle.alt-mode {
    background-color: #FF9500 !important;
    box-shadow: 0 2px 8px rgba(255, 149, 0, 0.4);
}

.dark .padding-handle.alt-mode {
    background-color: #FF9F0A !important;
    box-shadow: 0 2px 8px rgba(255, 159, 10, 0.4);
}

/* end of auto-layout controls */

/* Auto-layout reorder indicator styles */
.auto-layout-reorder-indicator {
    position: absolute;
    background-color: #007AFF !important;
    border-radius: 2px;
    pointer-events: none;
    z-index: 1003;
    opacity: 0;
    transition: opacity 0.2s ease;
    box-shadow: 0 0 8px rgba(0, 123, 255, 0.5);
}

.auto-layout-reorder-indicator.active {
    opacity: 1;
}

/* Dark mode support for reorder indicator */
.dark .auto-layout-reorder-indicator {
    background-color: #0A84FF !important;
    box-shadow: 0 0 8px rgba(10, 132, 255, 0.5);
}

/* end of auto-layout reorder indicator */

/* Border radius control styles */
.border-radius-handle {
    position: absolute;
    width: 8px;
    height: 8px;
    background-color: #ffffff;
    outline: 1px solid #0A84FF;
    border-radius: 50%;
    cursor: pointer;
    z-index: 1004;
    opacity: 0;
    transition: opacity 0.2s ease, transform 0.1s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* Border radius handles are now controlled by JavaScript hover events */

.border-radius-handle.dragging {
    opacity: 1 !important;
    z-index: 1005;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
    transition: box-shadow 0.1s ease;
}

/* Individual corner handle styles for visual distinction */
.border-radius-top-left {
    cursor: nw-resize;
}

.border-radius-top-right {
    cursor: ne-resize;
}

.border-radius-bottom-right {
    cursor: se-resize;
}

.border-radius-bottom-left {
    cursor: sw-resize;
}

/* Visual feedback for border radius adjustment is now handled by JavaScript */

/* Smooth movement animation for all handles during drag */
.border-radius-handle {
    transform-origin: center;
}

.border-radius-top-left {
    top: 10px;
    left: 10px;
    transform-origin: top left;
}

.border-radius-top-right {
    top: 10px;
    right: 10px;
    transform-origin: top right;
}

.border-radius-bottom-right {
    bottom: 10px;
    right: 10px;
    transform-origin: bottom right;
}

.border-radius-bottom-left {
    bottom: 10px;
    left: 10px;
    transform-origin: bottom left;
}

/* end of border radius control */

.marked {
    box-shadow: calc(1px / var(--scale)) calc(1px / var(--scale)) calc(30px / var(--scale)) #f43f5f !important;
    outline: calc(1px / var(--scale)) solid #f43f5f !important;
}

.pixleator:not(.deepselect) .border-radius-handle,
.pixleator:not(.deepselect) .padding-handle,
.pixleator:not(.deepselect) .gap-handle {
    display: none !important;
}

.auto-layout-reorder-indicator {
    position: absolute;
    background-color: #007AFF;
    border: 1px solid #ffffff;
    outline: 1px solid #007AFF;
    outline-offset: 1px;
    border-radius: 2px;
    pointer-events: none;
    z-index: 1003;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.auto-layout-reorder-indicator-row {
    width: 2px;
    height: 100%;
}

.auto-layout-reorder-indicator-column {
    width: 100%;
    height: 2px;
}

/* Visual CMS Editor Styles */
.visual-cms-mode {
    position: relative;
}

.visual-cms-status-bar {
    pointer-events: auto;
}

.visual-cms-legend {
    pointer-events: auto;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    font-size: 12px;
}

.visual-cms-legend {
    transition: all 0.3s ease;
    transform: translateY(calc(100% - 20px));
}

.visual-cms-legend:hover {
    transform: translateY(0);
}

.legend-item span {}

.legend-item:last-child {
    margin-bottom: 0;
}

/* .legend-color {
  width: 12px;
  height: 12px;
  border-radius: 2px;
} */

.contextual-action-bar {
    pointer-events: all;
    animation: slideIn 0.2s ease-out;
}

/* CMS Connection Visual Indicators */
.cms-connected-page {
    outline: calc(4px / var(--scale)) solid #3b82f6 !important;
    outline-offset: calc(4px / var(--scale));
    position: relative;
}

.cms-connected-page::before {
    content: "PAGE" !important;
    position: absolute !important;
    top: -8px !important;
    left: -2px !important;
    background: #3b82f6 !important;
    color: white !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    padding: 2px 6px !important;
    border-radius: 3px !important;
    z-index: 1000 !important;
    scale: calc(1 / var(--scale)) !important;
    width: fit-content !important;
    transform: none !important;
}

.cms-connected-post-type::before {
    content: "POST TYPE";
    background: #8b5cf6;
    scale: calc(1 / var(--scale));
}

.cms-connected-collection {
    outline: calc(4px / var(--scale)) solid #10b981 !important;
    outline-offset: calc(4px / var(--scale));
    position: relative;
}

.cms-connected-collection::before {
    content: "COLLECTION";
    position: absolute;
    top: -8px;
    left: -2px;
    background: #10b981;
    color: white;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    z-index: 1000;
    scale: calc(1 / var(--scale));
}

.cms-connected-field {
    outline: calc(4px / var(--scale)) solid #f59e0b !important;
    outline-offset: calc(4px / var(--scale));
    position: relative;
}

.cms-connected-field::before {
    content: "FIELD";
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 30px !important;
    top: -8px;
    left: -2px;
    background: #f59e0b;
    color: white;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    z-index: 1000;
    scale: calc(1 / var(--scale));
}

.cms-connected-page-part {
    outline: calc(4px / var(--scale)) solid #ec4899 !important;
    outline-offset: calc(4px / var(--scale));
    position: relative;
}

.cms-connected-page-part::before {
    content: "PAGE PART";
    position: absolute;
    top: -8px;
    left: -2px;
    background: #ec4899;
    color: white;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    z-index: 1000;
    scale: calc(1 / var(--scale));
}

.cms-connected-header::before {
    content: "HEADER";
}

.cms-connected-footer::before {
    content: "FOOTER";
}

.cms-connected-menu {
    outline: calc(4px / var(--scale)) solid #8b5cf6 !important;
    outline-offset: calc(4px / var(--scale));
    position: relative;
}

.cms-connected-menu::before {
    content: "MENU";
    position: absolute;
    top: -8px;
    left: -2px;
    background: #8b5cf6;
    color: white;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    z-index: 1000;
    scale: calc(1 / var(--scale));
}

.cms-connected-ignored {
    outline: calc(4px / var(--scale)) solid #6b7280 !important;
    outline-offset: calc(4px / var(--scale));
    position: relative;
    opacity: 0.6;
}

.cms-connected-ignored::before {
    content: "IGNORED";
    position: absolute;
    top: -8px;
    left: -2px;
    background: #6b7280;
    color: white;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    z-index: 1000;
    scale: calc(1 / var(--scale));
}

.cms-connected-repeater {
    outline: calc(4px / var(--scale)) solid #14b8a6 !important;
    outline-offset: calc(4px / var(--scale));
    position: relative;
}

.cms-connected-repeater::before {
    content: "REPEATER";
    position: absolute;
    top: -8px;
    left: -2px;
    background: #14b8a6;
    color: white;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    z-index: 1000;
    scale: calc(1 / var(--scale));
}

.cms-connected-breadcrumbs {
    outline: calc(4px / var(--scale)) solid #0ea5e9 !important;
    outline-offset: calc(4px / var(--scale));
    position: relative;
}

.cms-connected-breadcrumbs::before {
    content: "BREADCRUMBS";
    position: absolute;
    top: -8px;
    left: -2px;
    background: #0ea5e9;
    color: white;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    z-index: 1000;
    scale: calc(1 / var(--scale));
}

/* Legend indicator colors */
.cms-connected-page-indicator {
    background: #3b82f6;
}

.cms-connected-collection-indicator {
    background: #10b981;
}

.cms-connected-field-indicator {
    background: #f59e0b;
}

.cms-connected-page-part-indicator {
    background: #ec4899;
}

.cms-connected-ignored-indicator {
    background: #6b7280;
}

.cms-connected-repeater-indicator {
    background: #14b8a6;
}

.cms-connected-breadcrumbs-indicator {
    background: #0ea5e9;
}

/* Dark mode adjustments */
.dark .cms-connected-page,
.dark .cms-connected-collection,
.dark .cms-connected-field,
.dark .cms-connected-page-part,
.dark .cms-connected-menu,
.dark .cms-connected-ignored,
.dark .cms-connected-repeater,
.dark .cms-connected-breadcrumbs {
    outline-color: currentColor;
    outline-style: solid;
    outline-width: 2px;
}

/* Hover effects in visual mode */
.visual-cms-mode .fmod:hover {
    cursor: pointer;
    /* transform: scale(1.02);
  transition: transform 0.1s ease; */
}

.visual-cms-mode .fmod:not(.selected):hover:not(:has(:hover))::after {
    background: #3b82f652;
}

/* Animation for contextual bar */
@keyframes slideInDown {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

.contextual-action-bar {
    animation: slideInDown 0.2s ease-out;
}

.dimensions-display {
    position: absolute;
    bottom: -24px;
    left: 50%;
    transform: translateX(-50%);
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 11px;
    font-family: Arial, sans-serif;
    font-weight: 500;
    white-space: nowrap;
    pointer-events: none;
    z-index: 1000;
    user-select: none;
    background-color: rgba(130, 130, 130, 0.7);
    color: white;
}

.hide-grid .fmo-ui-type-grid {
    display: none !important;
}

.fmo-ui-type-grid,
.fmo-ui-item-grid {
    width: 100%;
    height: 100%;
}

.fmo-ui-type-grid {
    width: 100% !important;
    height: 100% !important;
}

/* New grid cell class */
.fmo-ui-grid-cell {
    /* Individual cell styling */
    transition: opacity 0.2s ease;
    border: 1px solid transparent;
}

.fmo-ui-grid-cell:hover {
    /* Hover effects for cells */
    opacity: 0.6 !important;
    border-color: rgba(255, 255, 255, 0.5);
}

/* Target specific cells */
.fmo-ui-grid-cell[data-grid-row="0"] {
    /* First row */
}

.fmo-ui-grid-cell[data-grid-col="0"] {
    /* First column */
}

/* UI Elements Styling Examples */

/* Base styles for all UI elements */
.fmo-ui-container {
    /* Container is already styled in JavaScript */
    font-size: inherit;
}

/* Individual UI items */
.fmo-ui-item {
    /* Base item styles - pointer-events: none is set in JS */
    pointer-events: none;
}

/* Grid items and cells */
.fmo-ui-item-grid {
    /* Grid container styling */
    border-radius: 2px;
    box-sizing: border-box;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* CSS Grid support */
.fmo-ui-item-grid[style*="display: grid"] {
    /* Ensure CSS Grid works properly */
    box-sizing: border-box;
}

.fmo-ui-item-grid[style*="display: grid"] .fmo-ui-grid-cell {
    /* CSS Grid cells should fill their grid area */
    width: 100%;
    height: 100%;
}

.fmo-ui-grid-cell {
    /* Individual grid cell styling */
    transition: opacity 0.2s ease;
    border: 1px solid transparent;
    box-sizing: border-box;
}

.fmo-ui-grid-cell:hover {
    /* Hover effect for grid cells */
    opacity: 0.6 !important;
    border-color: rgba(255, 255, 255, 0.5);
}

/* Specific grid cell targeting examples */
/* .fmo-ui-grid-cell[data-grid-row="0"] { border-top: 2px solid red; } */
/* .fmo-ui-grid-cell[data-grid-col="0"] { border-left: 2px solid blue; } */

/* Guide items */
.fmo-ui-item-guide-vertical {
    /* Vertical guide styling */
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
}

.fmo-ui-item-guide-horizontal {
    /* Horizontal guide styling */
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
}

/* Specific item targeting examples */
[data-ui-item-id="guide-1"] {
    /* Style a specific guide */
    opacity: 0.8;
}

[data-ui-item-name="Grid 2"] {
    /* Style a specific grid by name */
    border-style: dashed;
}

/* Hover effects (if you want to make them interactive) */
.fmo-ui-item:hover {
    opacity: 0.7;
}

/* Animation examples */
.fmo-ui-item-guide-vertical {
    transition: opacity 0.2s ease;
}

.fmo-ui-item-guide-horizontal {
    transition: opacity 0.2s ease;
}

/* Custom grid line styling examples */
/* .fmo-ui-item-grid::before { content: ''; position: absolute; etc... } */

/* Hidden state styling examples */
/* .fmo-ui-item[style*="display: none"] { transform: scale(0.8); } */

/* Responsive adjustments */
@media (max-width: 768px) {

    .fmo-ui-item-guide-vertical,
    .fmo-ui-item-guide-horizontal {
        opacity: 0.5;
    }
}

#selectorParentGroup {
    translate: var(--buffer-size) calc(var(--buffer-size));
}

#pathpointgrip_container circle,
#selectorParentGroup circle,
div svg#svgroot #selectorParentGroup circle {
    r: calc(4px / var(--scale));
    stroke-width: calc(2px / var(--scale)) !important;
}

#pathpointgrip_container path:not(#path_stretch_line),
#selectorParentGroup path:not(#path_stretch_line) {
    stroke-width: calc(2px / var(--scale)) !important;
    stroke-dasharray: calc(12px / var(--scale));
}

div svg#svgroot #selectorParentGroup line {
    stroke-width: calc(2px / var(--scale)) !important;
}

#path_stretch_line {
    stroke-width: calc(2px / var(--scale));
}


.svg-editing .pixleator {
    pointer-events: none !important;
}

.svg-editing .svg-editor-container {
    pointer-events: all !important;
}

.svg-editing #controls-container {
    display: none !important;
}


.fmod.fmo-component-root {
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    left: 0 !important;
    top: 0 !important;
    margin: 0 !important;
    pointer-events: none !important;
}



.fmod.class-based,
fmo-master,
fmo-variant {
    position: relative;
}

*:not(.viewport)>.fmod[data-sizing-y="fill"]:not([data-is-aspect-ratio-locked="true"]) {
    height: 100%;
    grid-template-rows: 100%;
}



.top-ctrl {
    background-color: transparent;
}

.top-ctrl {
    margin-left: 0;
    margin-top: 0;
    height: var(--height);
    width: var(--width);
    display: grid;
    grid-area: 1 / 1 / 2 / 2;
    transform-origin: center;
    rotate: var(--rotate);
}

.viewport>.fmod {
    grid-area: 1 / 1 / 2 / 2;
}


.viewport .top-ctrl {
    left: var(--left);
    top: var(--top);
}




/* .fmod {
    display: grid;
    grid-template-columns: 100% 1fr;
    grid-template-rows: 100% 1fr;
} */



*::selection {
    /* background-color: red;
  background-color: var(--text-select-color); */
}

*[data-locked="true"],
*[data-locked="true"] *,
[style*="pointer-events: none;"] *:not(.padding-handle):not(.gap-handle):not(.border-radius-handle):not(.top-ctrl):not(.element-outline):not(.top-ctrl-btn):not(.control):not(.play-button) {
    pointer-events: none !important;
}


.text-editing .text-element-container {
    pointer-events: auto;
}

div .fmod.component-group:not(.element-top-overlay) {
    border: calc(2px/var(--scale)) dashed #7700ff;
    border-radius: 12px;
    width: max-content;
    height: max-content;
    display: flex;
    flex-direction: row;
    container-type: unset;
    row-gap: 40px;
    column-gap: 40px;
    padding: calc(30px/var(--scale)) calc(20px/var(--scale)) calc(20px/var(--scale)) calc(20px/var(--scale)) !important;
}

div .fmod.page-group:not(.element-top-overlay) {
    border: calc(2px/var(--scale)) solid rgb(132 132 132 / 26%);
    background: #84848434;
    border-radius: calc(12px/var(--scale));
    width: max-content;
    height: max-content;
    display: flex;
    flex-direction: row;
    row-gap: 40px;
    column-gap: 40px;
    padding: calc(70px/var(--scale)) calc(10px/var(--scale)) calc(10px/var(--scale)) calc(10px/var(--scale)) !important;
    transition: background 0.2s ease, border-color 0.2s ease;
}

div .fmod.page-group {
    margin-top: calc(-70px/var(--scale)) !important;
    margin-left: calc(-10px/var(--scale)) !important;
}

.is-panning div .fmod.page-group,
.is-zooming div .fmod.page-group {
    background: transparent !important;
    border-color: transparent !important;
}

.is-panning .top-ctrl,
.is-zooming .top-ctrl {
    display: none !important;
}

fmo-master.fmod:before {
    content: 'master';
    transform: translateY(calc(-100% - (10px / var(--scale))));
    font-size: calc(12px / var(--scale));
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    height: fit-content;
}

.variant-content,
.instance-content {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    pointer-events: none;
    rotate: 0deg !important;
}

.variant-content *,
.instance-content * {
    pointer-events: auto;
}

fmo-variant[data-variant-name]:before {
    content: attr(data-variant-name);
    transform: translateY(calc(-100% - (10px / var(--scale))));
    font-size: calc(12px / var(--scale));
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    height: fit-content;
}

.dark .fmod[data-variant-name]:before,
.dark fmo-master.fmod:before {
    color: white;
}

div .fmod.page-group {
    flex-shrink: 0;
    container-type: normal;
    /* background: white; */
}


.fmod[data-is-page="true"] {
    container-name: page-container;
}

.fmod[data-is-page="true"],
.viewport>.main-container,
.page-group fmo-master,
.page-group fmo-variant {
    container-type: inline-size;
    contain: content;
}

div .fmod.page-group.element-top-overlay {
    transform: unset !important;
    padding: calc(20px/var(--scale)) calc(10px/var(--scale)) !important;
}

div .fmod.component-group.element-top-overlay {
    padding-left: calc(20px/var(--scale)) !important;
}

.skeleton * {
    --scale: 0.75;
}

.contextual-action-bar {
    /* add opacity 0 and then an animation to fade in ater 1 second delay*/
    opacity: 0;
    animation: contextualFadeIn 0.3s ease-in-out forwards 0.3s;
    /* 1s delay */
}

.fmod:has(>img.fill-image) {
    background: transparent !important;
}

img.fmod {
    max-width: unset;
    max-height: unset;
}



img.fmod {
    object-fit: cover;
}

@keyframes contextualFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.fmod:is([style*="filter:"], [style*="backdrop-filter:"]) {
    /* will-change removed - filters already promote to layer */
}

.fmod:is(.component-group, .page-group) .component {
    /* min-width: 0 !important; */
}

.border-gradient {
    -webkit-mask: linear-gradient(#000 0 0) border-box, linear-gradient(#000 0 0) content-box;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}

/* Optimization: Ensure top controls don't block hits during creation mode */
.creation-mode .top-ctrl,
.creation-mode .element-outline,
.creation-mode .border-radius-handle {
    pointer-events: none !important;
}

.viewport>.frame,
fmo-master,
fmo-variant,
fmo-instance {
    /* background: #fff; */
}

.rect {
    background: rgb(215, 215, 215);
}

.pixleator:has(.fmod.ProseMirror[contenteditable]) .element-outline.selection-locked {
    pointer-events: none !important;
}