html.fx-cur-on,
html.fx-cur-on *,
html.fx-cur-on *::before,
html.fx-cur-on *::after {
    cursor: none !important;
}

#fx-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 24px;
    height: 24px;
    pointer-events: none;
    z-index: 999999;
    mix-blend-mode: difference;
    will-change: transform;
    opacity: 1;
    transition: opacity .4s ease;
}

#fx-cursor.fx-cur-idle {
    opacity: .15;
}

#fx-cursor.fx-cur-away {
    opacity: 0;
    visibility: hidden;
}

.fx-cur-arrow {
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><defs><linearGradient id='mzg' x1='0' y1='0' x2='1' y2='1'><stop offset='0' stop-color='%23F29FFF'/><stop offset='1' stop-color='%237C99FF'/></linearGradient></defs><path d='M0 0 L18 6 L10 9 L6 18 Z' fill='url(%23mzg)'/></svg>");
    background-repeat: no-repeat;
    background-position: top left;
}

#fx-cursor.fx-cur-glitch .fx-cur-arrow {
    animation: fx-cursor-flicker .25s steps(1, start) forwards;
}

@keyframes fx-cursor-flicker {
    0% {
        opacity: 1;
        filter: none;
    }

    25% {
        opacity: .7;
        filter: drop-shadow(2px 0 #FFDA7A);
    }

    50% {
        opacity: .9;
        filter: drop-shadow(-2px 0 #43F0C7);
    }

    75% {
        opacity: .5;
        filter: drop-shadow(1px -1px #FFDA7A);
    }

    100% {
        opacity: 1;
        filter: none;
    }
}

@media (pointer: coarse) and (hover: none) {
    #fx-cursor {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #fx-cursor {
        transition: none;
    }

    #fx-cursor.fx-cur-glitch .fx-cur-arrow {
        animation: none;
    }
}

html {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}

#fx-sb {
    position: fixed;
    left: 0;
    top: 0;
    width: 9px;
    height: 100%;
    z-index: 8;
    cursor: default;
    touch-action: none;
    opacity: 0;
    transition: opacity 1s ease .9s;
}

.fx-ready #fx-sb {
    opacity: 1;
}

#fx-sb::before {

    content: "";
    position: absolute;
    left: 4px;
    top: 8px;
    bottom: 8px;
    width: 1px;
    border-radius: 1px;
    background: rgba(56, 71, 80, .28);
    transition: background .25s ease;
}

#fx-sb:hover::before {
    background: rgba(56, 71, 80, .5);
}

#fx-sb-thumb {
    position: absolute;
    left: 2px;
    top: 0;
    width: 4px;
    border-radius: 4px;
    background: linear-gradient(180deg, #FFDA7A, #FF6969 50%, #F29FFF);
    box-shadow: 0 0 10px rgba(242, 159, 255, .25);
    transform: translateY(0);
    will-change: transform;
    transition: width .2s ease, left .2s ease;
}

#fx-sb:hover #fx-sb-thumb,
#fx-sb.sb-drag #fx-sb-thumb {
    left: 1px;
    width: 6px;
    box-shadow: 0 0 14px rgba(255, 105, 105, .4);
}

#fx-sb.sb-idle #fx-sb-thumb {
    display: none;
}

#fx-sb.sb-drag,
#fx-sb-thumb {
    cursor: grab;
}

#fx-sb.sb-drag {
    cursor: grabbing;
    width: 14px;
}

@media screen and (max-width: 767px) {
    #fx-sb {
        width: 6px;
    }

    #fx-sb::before {
        left: 2.5px;
    }

    #fx-sb-thumb {
        left: 1.5px;
        width: 3px;
    }

    #fx-sb.sb-drag {
        width: 10px;
    }
}

[data-rv] {
    opacity: 0;
    transform: translateX(400px);
    transition: opacity 1s ease var(--rv-d, 0s), transform 1s cubic-bezier(.19, 1, .22, 1) var(--rv-d, 0s);
}

html.fx-anime [data-rv] {
    transition: none;
}

html.fx-warp .Container {
    will-change: transform;
}

[data-rv].rv-in {
    opacity: 1;
    transform: none;
}

@media screen and (max-width: 1024px) {
    [data-rv] {
        transform: translateX(180px);
    }
}

@media screen and (max-width: 767px) {
    [data-rv] {
        transform: translateX(110px);
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-rv] {
        opacity: 1;
        transform: none;
        transition: none;
    }

    #fx-sb {
        display: none;
    }

    .bot-trail {
        display: none;
    }

    .bot-blob {
        animation: none;
    }

    .bot-float {
        animation: none;
    }
}

#bot-goo {
    position: fixed;
    left: 0;
    top: 0;
    width: 480px;
    height: 480px;
    z-index: 95;
    pointer-events: none;
    filter: url(#mz-goo);
    -webkit-filter: url(#mz-goo);
    will-change: transform;
}

#bot-goo .bot-float {
    position: absolute;
    inset: 0;
    animation: bot-drift 6.5s ease-in-out infinite;
}

#bot-goo .bot-blob,
#bot-goo .bot-trail {
    position: absolute;
    left: 50%;
    top: 50%;
    border-radius: 50%;
    will-change: transform;
}

#bot-goo .bot-blob {
    width: 46px;
    height: 46px;
    margin: -23px 0 0 -23px;
    background:
        radial-gradient(circle at 30% 28%, rgba(255, 255, 255, .9), rgba(255, 255, 255, 0) 42%),
        radial-gradient(circle at 50% 55%, var(--mz-dot-a, #A855F7) 0%, var(--mz-dot-b, #8B5CF6) 55%, var(--mz-dot-dark, #6D28D9) 135%);
    box-shadow: 0 8px 30px var(--mz-dot-glow, rgba(139, 92, 246, .35));
    animation: bot-wobble 7s ease-in-out infinite, bot-breathe 3.4s ease-in-out infinite;
}

#bot-goo .bot-trail {
    width: 30px;
    height: 30px;
    margin: -15px 0 0 -15px;
    background:
        radial-gradient(circle at 38% 32%, rgba(255, 255, 255, .5), rgba(255, 255, 255, 0) 46%),
        linear-gradient(135deg, var(--mz-dot-a, #A855F7), var(--mz-dot-dark, #6D28D9));
}

@keyframes bot-drift {
    0%, 100% {
        transform: translate(0, 0);
    }

    50% {
        transform: translate(3.2px, -4.2px);
    }
}

@keyframes bot-breathe {
    0%, 100% {
        opacity: .92;
    }

    50% {
        opacity: 1;
    }
}

#bot-dot {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 96;
    width: 58px;
    height: 58px;
    margin: -29px 0 0 -29px;
    border: none;
    border-radius: 50%;
    background: transparent;
    padding: 0;
    cursor: grab;
    touch-action: none;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    -webkit-user-select: none;
    outline: none;
}

#bot-dot:active {
    cursor: grabbing;
}

#bot-dot:focus-visible {
    box-shadow: 0 0 0 2px rgba(168, 85, 247, .6);
}

#bot-dot::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .22);
    opacity: 0;
    transition: opacity .3s ease;
}

#bot-dot:hover::after {
    opacity: 1;
}

@keyframes bot-wobble {
    0%, 100% {
        transform: rotate(0deg) scaleX(1);
    }

    33% {
        transform: rotate(2.2deg) scaleX(1.045);
    }

    66% {
        transform: rotate(-1.8deg) scaleX(.96);
    }
}

@keyframes fx-blink {
    0%, 49% { opacity: 1; }
    50%, 100% { opacity: 0; }
}

#bot-tip {
    position: fixed;
    z-index: 94;
    background: #141d22;
    border: 1px solid #24333c;
    color: #cfe0e8;
    font-family: Montserrat, sans-serif;
    font-size: 11px;
    letter-spacing: .5px;
    padding: 8px 12px;
    border-radius: 10px;
    white-space: nowrap;
    opacity: 0;
    transform: translateY(-50%);
    pointer-events: none;
    transition: opacity .4s ease;
}

#bot-tip.bot-tip-in {
    opacity: 1;
}

#bot-panel {
    position: fixed;
    top: 50%;
    right: 30px;
    z-index: 94;
    width: min(520px, calc(100vw - 56px));
    height: min(680px, calc(100vh - 56px));
    display: flex;
    flex-direction: column;
    background: rgba(13, 19, 22, .96);
    border: 1px solid #22333d;
    border-radius: 20px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .6);
    overflow: hidden;
    transform-origin: 100% 50%;
    transform: translateY(-50%) scale(.7);
    opacity: 0;
    pointer-events: none;
    transition: transform .46s cubic-bezier(.22, 1.35, .32, 1), opacity .24s ease;
    font-family: Montserrat, sans-serif;
}

#bot-panel.side-left {
    right: auto;
    left: 30px;
    transform-origin: 0 50%;
}

#bot-panel.bot-open {
    transform: translateY(-50%) scale(1);
    opacity: 1;
    pointer-events: auto;
}

.bot-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 15px 18px;
    border-bottom: 1px solid #1c2a32;
    flex: 0 0 auto;
}

.bot-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #A855F7;
    box-shadow: 0 0 8px rgba(168, 85, 247, .8);
    animation: fx-blink 2.6s ease infinite;
    flex: 0 0 auto;
}

.bot-head-t {
    flex: 1;
    min-width: 0;
}

.bot-head-t strong {
    display: block;
    font-size: 13px;
    letter-spacing: 1.5px;
    font-weight: 600;
    color: #fff;
}

.bot-head button {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    border: 1px solid transparent;
    background: transparent;
    color: #708896;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: color .25s ease, border-color .25s ease, background .25s ease;
    flex: 0 0 auto;
}

.bot-head button:hover {
    color: #fff;
    border-color: #384750;
    background: #16222a;
}

.bot-head button svg {
    width: 15px;
    height: 15px;
}

.bot-msgs {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 20px 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    scrollbar-width: thin;
    scrollbar-color: #2c3a44 transparent;
}

.bot-msgs::-webkit-scrollbar {
    width: 5px;
}

.bot-msgs::-webkit-scrollbar-thumb {
    background: #2c3a44;
    border-radius: 4px;
}

.msg {
    max-width: 88%;
    padding: 11px 14px;
    border-radius: 13px;
    font-size: 14px;
    line-height: 1.65;
    word-wrap: break-word;
    overflow-wrap: break-word;
    animation: fx-msg-in .3s ease both;
}

@keyframes fx-msg-in {
    from { opacity: 0; transform: translateY(6px) scale(.98); }
    to { opacity: 1; transform: none; }
}

.msg--user {
    align-self: flex-end;
    background: linear-gradient(135deg, #8B5CF6, #6D28D9);
    color: #fff;
    font-weight: 500;
    border-bottom-right-radius: 4px;
}

.msg--bot {
    align-self: flex-start;
    background: #16222a;
    border: 1px solid #22333d;
    color: #e8eef1;
    border-bottom-left-radius: 4px;
}

.msg--bot a {
    color: #C4B5FD;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.msg--bot strong {
    color: #fff;
}

.msg--err {
    border-color: rgba(255, 105, 105, .45);
    color: #ffb9b9;
}

.msg--note {
    border-color: rgba(168, 85, 247, .4);
    color: #ddc9ff;
    font-size: 13px;
}

.msg--typing {
    display: flex;
    gap: 4px;
    align-items: center;
    padding: 13px 15px;
}

.msg--typing span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #A855F7;
    animation: fx-typing 1.1s ease infinite;
}

.msg--typing span:nth-child(2) { animation-delay: .15s; }
.msg--typing span:nth-child(3) { animation-delay: .3s; }

@keyframes fx-typing {
    0%, 60%, 100% { transform: translateY(0); opacity: .5; }
    30% { transform: translateY(-4px); opacity: 1; }
}

.bot-chips {
    display: flex;
    gap: 6px;
    padding: 0 14px 10px;
    overflow-x: auto;
    scrollbar-width: none;
    flex: 0 0 auto;
}

.bot-chips::-webkit-scrollbar {
    display: none;
}

.bot-chip {
    border: 1px solid #384750;
    border-radius: 999px;
    background: transparent;
    color: #b8c4cc;
    font-family: Montserrat, sans-serif;
    font-size: 10.5px;
    padding: 6px 11px;
    cursor: pointer;
    white-space: nowrap;
    transition: color .25s ease, border-color .25s ease, background .25s ease;
    flex: 0 0 auto;
}

.bot-chip:hover {
    color: #0d1316;
    border-color: transparent;
    background: linear-gradient(90deg, #6491D6, #43F0C7);
}

.bot-input-row {
    display: flex;
    gap: 9px;
    padding: 12px 14px;
    border-top: 1px solid #1c2a32;
    flex: 0 0 auto;
}

#bot-input {
    flex: 1;
    min-width: 0;
    background: #0f171b;
    border: 1px solid #22333d;
    border-radius: 11px;
    color: #fff;
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    padding: 12px 14px;
    outline: none;
    transition: border-color .25s ease, box-shadow .25s ease;
}

#bot-input::placeholder {
    color: #55666f;
}

#bot-input:focus {
    border-color: #8B5CF6;
    box-shadow: 0 0 0 3px rgba(139, 92, 246, .18);
}

#bot-send {
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    border: none;
    border-radius: 11px;
    background: linear-gradient(135deg, #A855F7, #7C3AED);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s ease, opacity .25s ease, filter .25s ease;
}

#bot-send:hover {
    transform: translateY(-1px);
    filter: brightness(1.12);
}

#bot-send:disabled {
    opacity: .35;
    cursor: not-allowed;
    transform: none;
}

#bot-send svg {
    width: 16px;
    height: 16px;
}

#bot-clear:hover {
    color: #FF6969;
    border-color: rgba(255, 105, 105, .45);
    background: rgba(255, 105, 105, .08);
}

@media screen and (max-width: 767px) {
    #bot-panel {
        left: 12px;
        right: 12px;
        top: auto;
        bottom: 12px;
        width: auto;
        height: auto;
        max-height: min(72vh, calc(100vh - 24px));
        transform-origin: 50% 100%;
        transform: translateY(14px) scale(.92);
    }

    #bot-panel.side-left {
        left: 12px;
        right: 12px;
    }

    #bot-panel.bot-open {
        transform: none;
    }

    #bot-tip {
        max-width: 44vw;
        white-space: normal;
        font-size: 10px;
    }
}
#mz-foto{position:absolute;right:clamp(28px,4.5vw,72px);top:46%;transform:translateY(-50%);height:min(34vw,60vh,540px);aspect-ratio:5/6;z-index:0;opacity:0;translate:28px 0;transition:opacity .9s ease .95s,translate .9s ease .95s}
html.fx-ready #mz-foto{opacity:1;translate:0 0}
.mz-foto-tri-wrap{position:absolute;inset:0;filter:drop-shadow(0 22px 44px rgba(0,0,0,.42));z-index:0}
.mz-foto-tri{position:absolute;left:30%;top:14%;width:74%;height:76%;background:linear-gradient(135deg,#F29FFF 0%,#7C99FF 100%);clip-path:polygon(24% 0%,100% 32%,8% 100%);transform:rotate(-7deg);transition:opacity .45s ease}
.mz-foto-tri2{position:absolute;left:4%;top:2%;width:24%;height:24%;background:linear-gradient(120deg,#FFDA7A,#FF6969);clip-path:polygon(0% 24%,100% 0%,58% 100%);transform:rotate(10deg);transition:opacity .45s ease}
.mz-foto-people{position:absolute;inset:0;z-index:1;animation:mz-foto-float 7s ease-in-out infinite}
.mz-foto-img{position:absolute;bottom:0;left:50%;transform:translateX(-50%);height:92%;width:auto;max-width:none;filter:drop-shadow(0 16px 30px rgba(0,0,0,.5));clip-path:polygon(0 0,100% 0,100% 100%,0 78%);transition:opacity .45s ease,transform .45s ease}
.mz-foto-avatar{height:78%}
.mz-foto-marcus{opacity:0;transform:translateX(-50%) translateY(12px)}
#mz-foto:hover .mz-foto-marcus,#mz-foto.mz-foto-reveal .mz-foto-marcus{opacity:1;transform:translateX(-50%) translateY(0)}
#mz-foto:hover .mz-foto-avatar,#mz-foto.mz-foto-reveal .mz-foto-avatar{opacity:0}
#mz-foto:hover .mz-foto-tri,#mz-foto.mz-foto-reveal .mz-foto-tri{opacity:.55}
#mz-foto:hover .mz-foto-tri2,#mz-foto.mz-foto-reveal .mz-foto-tri2{opacity:.5}
@keyframes mz-foto-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@media (max-width:1023px) and (min-width:768px){#mz-foto{height:min(27vw,44vh,350px);right:clamp(16px,3.2vw,40px)}}
@media (max-width:767px){#mz-foto{display:none!important}}
@media (prefers-reduced-motion:reduce){.mz-foto-people{animation:none}#mz-foto{transition-delay:0s}}
