/* VEXMIRA v4.3.1 R15 — purple identity, stable media geometry, messaging and directory polish. */
html[data-palette="purple"]{
  --vx14-bg:#05040d;--vx14-bg2:#090616;--vx14-panel:#100a23;--vx14-panel2:#16102f;
  --vx14-card:rgba(17,10,37,.95);--vx14-line:rgba(168,83,255,.24);--vx14-line-strong:rgba(179,92,255,.5);
  --vx14-text:#f8f3ff;--vx14-muted:#aca0c7;--vx14-soft:#756a91;--vx14-primary:#8f36ff;--vx14-primary2:#c05cff;
  --vx14-success:#35e3a4;--vx14-danger:#ff5b80;--vx14-warning:#ffc65f;--vx14-shadow:0 30px 82px -42px rgba(129,38,255,.75);
  --vio:#8f36ff!important;--vio2:#c17aff!important;--cyan:#ad55ff!important;--cyan2:#debfff!important;
  --grad:linear-gradient(135deg,#6f1fe8 0%,#9636ff 52%,#c15fff 100%)!important;
  --line:rgba(164,76,255,.22)!important;--line2:rgba(213,190,255,.10)!important;
  --bg-image:radial-gradient(1050px 640px at 14% -12%,rgba(124,32,255,.24),transparent 57%),radial-gradient(900px 620px at 96% 2%,rgba(178,66,255,.14),transparent 58%)!important;
  color-scheme:dark;
}
html[data-palette="purple"] body{background:radial-gradient(1000px 580px at 78% -8%,rgba(143,54,255,.13),transparent 67%),#05040d!important;color:var(--vx14-text)!important}
html[data-palette="purple"] .btn-grad{background:linear-gradient(120deg,var(--vx14-primary),var(--vx14-primary2))!important;border-color:transparent!important;box-shadow:0 12px 32px -15px rgba(143,54,255,.82)!important;color:#fff!important}
html[data-palette="purple"] :is(.live-chat-launch,.vx14-live-mark){background:linear-gradient(145deg,#8131f4,#bb55ff)!important}

/* Brand asset — keep every surface dimensionally stable. */
:is(.vx320-brand-mark,.vx320-side-mark,.vx320-overview-mark,.vx320-auth-mark,.vx420-footer-brandmark,.brand-hex) img[src*="vexmira-mark"]{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;max-width:none!important;filter:drop-shadow(0 0 12px color-mix(in srgb,var(--vio) 50%,transparent))}
.vx400-footer-note{font-weight:700;letter-spacing:.01em}.foot-bottom .mono{font-family:Inter,system-ui,sans-serif!important;font-size:11px!important;letter-spacing:.035em!important;white-space:normal!important}

/* Crop studio: never escape the viewport, even with huge source banners. */
.vx15-crop-veil,.vx11-crop-veil{padding:clamp(10px,2.4vw,26px)!important;overflow:auto!important;overscroll-behavior:contain!important;align-items:center!important;justify-content:center!important}
.vx15-crop-card{width:min(920px,100%)!important;max-width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important;overflow:auto!important;border-radius:22px!important}
.vx15-crop-card header{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--panel) 95%,transparent);backdrop-filter:blur(14px)}
.vx15-crop-stage{position:relative!important;width:100%!important;max-width:100%!important;max-height:min(56dvh,620px)!important;overflow:hidden!important;touch-action:none!important;cursor:grab!important;background:#04040a!important;border-radius:16px!important}
.vx15-crop-stage.dragging{cursor:grabbing!important}.vx15-crop-stage>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;user-select:none!important;-webkit-user-drag:none!important;transform-origin:center!important;will-change:transform,object-position!important}
.vx15-crop-controls{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr)) auto!important;gap:10px!important;align-items:end!important}.vx15-crop-controls label{min-width:0!important}.vx15-crop-controls input{width:100%!important}.vx15-crop-help{position:absolute;right:10px;bottom:10px;padding:6px 9px;border-radius:999px;background:rgba(4,4,12,.72);border:1px solid rgba(255,255,255,.12);font-size:9px;color:#eee;pointer-events:none}
@media(max-width:680px){.vx15-crop-controls{grid-template-columns:1fr!important}.vx15-crop-card{max-height:calc(100dvh - 12px)!important}.vx15-crop-stage{max-height:48dvh!important}}

/* Avatar/frame geometry. The frame may decorate outside; the photo itself always stays square. */
:is(.nav-avatar .hexav,.profile-avatar-wrap .hexav,.profile-avatar,.vx-profile-avatar,.vx11-museum-avatar,.vx11-viewer,.str-av,.vx60-server-logo,.vx60-discord-avatar){aspect-ratio:1/1!important;flex:0 0 auto!important;min-width:0;box-sizing:border-box!important}
:is(.nav-avatar .hexav,.profile-avatar-wrap .hexav,.profile-avatar,.vx-profile-avatar,.vx11-museum-avatar,.vx11-viewer,.str-av,.vx60-server-logo,.vx60-discord-avatar)>img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center!important;transform:none!important}
#page-profile #profileWrap.vx14-profile-stable :is(.profile-banner,.vx-profile-banner,.vx400-profile-banner){contain:layout paint!important;isolation:isolate!important}
#page-profile #profileWrap.vx14-profile-stable :is(.profile-banner,.vx-profile-banner,.vx400-profile-banner)>img{position:absolute!important;inset:0!important}
#page-profile #profileWrap.vx14-profile-stable :is(.profile-top,.profile-main,.profile-main-card,.profile-card,.vx420-panel){contain:layout style!important;min-width:0!important}
#page-profile #profileWrap.vx14-profile-stable .profile-avatar-wrap{width:116px!important;height:116px!important;min-width:116px!important;min-height:116px!important;contain:layout!important}

/* Direct message controls and notifications. */
.vx15-dm-ident{min-width:0!important;display:grid!important}.vx15-dm-ident b,.vx15-dm-ident small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vx15-dm-actions{margin-left:auto;display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap;min-width:0}.vx15-dm-actions .btn{min-height:32px;padding:6px 9px!important;font-size:9.5px!important}.vx15-dm-actions .active{border-color:color-mix(in srgb,var(--vio) 55%,var(--line))!important;background:color-mix(in srgb,var(--vio) 12%,var(--panel2))!important}.vx15-dm-actions .danger{color:#ff7895}.vx15-notif{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.vx15-notif:hover{background:color-mix(in srgb,var(--vio) 7%,transparent)}
@media(max-width:720px){.vx11-chat-head{grid-template-columns:auto auto minmax(0,1fr)!important;align-items:center!important}.vx15-dm-actions{grid-column:1/-1;width:100%;justify-content:flex-start;padding-top:7px}.vx15-dm-actions .btn{flex:1 1 auto}}

/* Creator directory — consistent 16:6 cover, visible logo and readable hierarchy. */
.vx62-streamer-card{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;width:100%!important;min-height:330px!important;border-radius:20px!important;overflow:hidden!important;contain:layout paint style!important;background:linear-gradient(160deg,color-mix(in srgb,var(--panel) 94%,#110c25),var(--panel2))!important}
.vx62-streamer-card .str-banner{position:relative!important;width:100%!important;height:auto!important;aspect-ratio:16/6!important;min-height:132px!important;overflow:hidden!important;background:linear-gradient(135deg,rgba(143,54,255,.33),rgba(34,211,238,.14))!important}
.vx62-streamer-card .str-banner::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,5,15,.03) 20%,rgba(4,5,15,.62) 100%);pointer-events:none}.vx62-streamer-card .str-banner>img{position:absolute!important;inset:0!important;z-index:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center!important;display:block!important}.vx62-streamer-card :is(.str-live,.vx62-platform-pill){z-index:3!important}
.vx62-streamer-card .str-body{position:relative!important;display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;grid-template-areas:"avatar main" "bio bio" "foot foot"!important;column-gap:13px!important;row-gap:11px!important;padding:17px!important;min-width:0!important}.vx62-streamer-card .str-av{grid-area:avatar!important;position:relative!important;top:auto!important;left:auto!important;width:64px!important;height:64px!important;min-width:64px!important;margin-top:-39px!important;z-index:4!important;border:3px solid var(--panel)!important;border-radius:18px!important;overflow:hidden!important;background:linear-gradient(145deg,#241540,#0b0b18)!important;box-shadow:0 14px 32px -18px #000,0 0 0 1px color-mix(in srgb,var(--vio) 35%,transparent)!important}.vx62-streamer-card .str-av.has-custom-logo>img{border-radius:14px!important}
.vx62-streamer-card .str-main{grid-area:main!important;align-self:center!important;min-width:0!important}.vx62-streamer-card .str-name{font-size:15px!important;font-weight:850!important;line-height:1.2!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.vx62-streamer-card .str-game{display:flex!important;align-items:center!important;gap:7px!important;margin-top:6px!important;color:var(--mut)!important;font-size:10.5px!important}.vx62-streamer-card .str-bio{grid-area:bio!important;min-height:40px!important;margin:0!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;overflow-wrap:anywhere!important}.vx62-streamer-card .str-foot{grid-area:foot!important;margin-top:auto!important;padding-top:12px!important;border-top:1px solid var(--line2)!important}.vx62-streamer-card .str-followers{font-size:10px;color:var(--mut)!important}.vx62-streamer-card .str-followers b{font-size:13px;color:var(--txt)!important}
@media(max-width:560px){.vx62-streamer-card{min-height:300px!important}.vx62-streamer-card .str-banner{min-height:112px!important}.vx62-streamer-card .str-body{grid-template-columns:56px minmax(0,1fr)!important;padding:14px!important}.vx62-streamer-card .str-av{width:56px!important;height:56px!important;min-width:56px!important;margin-top:-34px!important}}

/* Giveaways and media previews. */
:is(.giveaway-card,.gv-card,.give-card) :is(.give-visual,.gv-visual,.give-banner){overflow:hidden!important;max-width:100%!important}.giveaway-card img,.gv-card img,.give-card img{max-width:100%!important}.vx420-media-previews{min-width:0!important}.vx420-media-preview{overflow:hidden!important;aspect-ratio:1!important}.vx420-media-preview.wide{grid-column:span 2;aspect-ratio:16/6!important}.vx420-media-preview>img{width:100%!important;height:100%!important;object-fit:cover!important;max-width:none!important}

/* Workspace/forms: stable save lifecycle and no visual overflow. */
.vx420-operation-shell:not([hidden]){overflow:auto!important;overscroll-behavior:contain!important}.vx420-workspace,.vx420-workspace-body,.vx420-panel,.vx420-form-grid{min-width:0!important;max-width:100%!important}.vx420-field input[type="file"]{max-width:100%!important;overflow:hidden!important}.vx420-form-actions button:disabled,.btn:disabled{cursor:wait!important;opacity:.62!important;pointer-events:none!important}

/* Live support queue/rating. */
.vx14-agent small{white-space:normal!important;line-height:1.35!important}.vx14-live-state{min-width:34px;text-align:center!important}.vx14-rating[hidden]{display:none!important}.vx14-rating{max-height:220px;overflow:auto}

/* Large screen/profile media must never alter surrounding layout after decode. */
:is(.profile-banner,.vx-profile-banner,.vx400-profile-banner,.discord-cover,.str-banner,.give-visual,.gv-visual,.item-visual){overflow:hidden!important}.discord-cover>img,.give-visual>img,.gv-visual>img,.item-visual>img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;display:block!important;max-width:none!important}
