/* Portfolio mobile experience. Desktop layouts remain under existing styles. */
.mx-mobile-header,.mx-mobile-bottom { display:none; }
.mx-mobile-menu:not([open]) { display:none; }
@media (max-width:980px) {
  :root { --mx-accent:#ee6b98; --mx-bg:#0b101b; --mx-line:#ffffff20; }
  html { width:100%; max-width:100%; scroll-padding-top:80px; }
  body { min-width:0!important; width:100%!important; max-width:100%!important; margin:0!important; overflow-x:clip; }
  *,*::before,*::after { box-sizing:border-box; }
  html:root .site-shell,html:root .app-shell,html:root .page-shell,html:root .layout,html:root .page-layout { min-width:0!important; max-width:100%!important; width:100%!important; }
  html:root main,html:root .main { min-width:0!important; width:100%!important; max-width:100%!important; flex:1 1 0%!important; margin-left:0!important; }
  html:root .main { padding:10px!important; }
  main>:where(section,div,a),.main>:where(section,div,a) { min-width:0; max-width:100%; }
  html:root .hero-link,html:root .hero,html:root .hero-content,html:root .hero-copy,html:root .hero-inner { min-width:0!important; width:100%!important; max-width:100%!important; }
  .hero { border-radius:16px!important; }
  html:root .hero-content { padding:18px!important; }
  .hero-title,.hero h1,.hero-content h1 { font-size:clamp(20px,6vw,27px)!important; line-height:1.18!important; white-space:normal!important; overflow-wrap:anywhere; }
  .hero-sub,.hero p { font-size:14px!important; line-height:1.5!important; white-space:normal!important; min-width:0!important; max-width:100%!important; }
  .hero-button { min-height:46px!important; white-space:normal!important; max-width:100%!important; text-align:center; }
  html:root .grid,html:root #homepageGrid,html:root .models-grid,html:root .model-grid { min-width:0!important; width:100%!important; max-width:100%!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:10px!important; }
  .grid>*,#homepageGrid>*,.models-grid>*,.model-grid>* { min-width:0!important; max-width:100%!important; }
  .model-card,.card { min-width:0!important; border-radius:14px!important; overflow:hidden; }
  .model-card img,.card img { max-width:100%; }
  .model-card :where(.name,.model-name,.card-name),.card :where(.name,.model-name,.card-name) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px!important; }
  .model-card :where(.btn,.chat-button,.chat-btn,.profile-button,.model-chat-button,.model-profile-button),.card :where(.btn,.chat-button,.chat-btn,.profile-button) { min-height:42px; display:inline-flex; align-items:center; justify-content:center; }
  .trust-row { min-width:0!important; max-width:100%!important; flex-wrap:nowrap!important; overflow-x:auto!important; scrollbar-width:none; gap:8px!important; padding:10px!important; scroll-snap-type:x proximity; }
  .trust-row>* { flex:0 0 auto; scroll-snap-align:start; font-size:12px!important; }
  .trust-row::-webkit-scrollbar { display:none; }
  .promo-row { grid-template-columns:minmax(0,1fr)!important; max-width:100%!important; }
  .profile-hero,.profile-layout,.profile-grid,.meta-grid { min-width:0!important; max-width:100%!important; }
  .profile-hero,.profile-layout { grid-template-columns:minmax(0,1fr)!important; }
  html:root .hero-image-wrap { width:100%!important; max-width:100%!important; min-width:0!important; }
  .hero-image,.profile-image { max-width:100%!important; }
  .hero-title { font-size:26px!important; }
  .cta-row { display:flex!important; flex-wrap:wrap!important; gap:8px!important; }
  .cta-row>a,.cta-row>button { flex:1 1 auto; min-height:46px; display:inline-flex; align-items:center; justify-content:center; }
  .meta-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px!important; }
  .meta-grid>* { min-width:0; overflow-wrap:anywhere; }
  .gallery-modal { padding:8px!important; }
  .gallery-modal-panel { width:100%!important; max-width:100%!important; max-height:94dvh!important; padding:12px!important; border-radius:16px!important; }
  .gallery-modal img,.gallery-modal video { max-width:100%!important; object-fit:contain; }
  .filters,.filter-row,.toolbar,.controls { min-width:0; max-width:100%; flex-wrap:wrap!important; gap:8px!important; }
  input:not([type=checkbox]):not([type=radio]),select,textarea { font-size:16px!important; max-width:100%; min-height:44px; }
  button,summary { touch-action:manipulation; }
  .filter-row button,.filters button,.toolbar button { min-height:44px; }
  .seo-content,.profile-details,.description,.intro { min-width:0!important; max-width:100%!important; overflow-wrap:anywhere; line-height:1.6; }
  .table-wrap,.table-responsive { max-width:100%; overflow-x:auto; }
  .mx-mobile-ready body { padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))!important; }
  .mx-mobile-ready .sidebar,.mx-mobile-ready .profile-sidebar { display:none!important; }
  .mx-mobile-ready .xcams-floating-favorites { display:none!important; }
  .mx-mobile-ready .profit-mobile-cta { display:none!important; }
  .mx-mobile-header { display:flex; position:sticky; top:var(--mx-age-offset,0px); z-index:950; align-items:center; justify-content:space-between; gap:10px; min-height:58px; padding:8px 14px; width:100%; background:var(--mx-bg); border-bottom:1px solid var(--mx-line); }
  .mx-mobile-brand { display:flex; align-items:center; min-width:0; text-decoration:none; color:#fff; font-size:15px; font-weight:800; letter-spacing:-.025em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mx-mobile-brand::before { content:''; width:8px; height:8px; margin-right:9px; flex:none; border-radius:50%; background:var(--mx-accent); box-shadow:0 0 12px color-mix(in srgb,var(--mx-accent),transparent 55%); }
  .mx-menu-button { display:flex; align-items:center; justify-content:center; gap:7px; min-width:70px; min-height:42px; border:1px solid var(--mx-line); border-radius:12px; background:#ffffff09; color:#fff; font-size:13px; font-weight:650; }
  .mx-icon { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .mx-mobile-bottom { display:flex; position:fixed; z-index:940; left:0; right:0; bottom:0; align-items:center; gap:3px; padding:6px 8px; padding-bottom:calc(6px + env(safe-area-inset-bottom,0px)); border-top:1px solid var(--mx-line); background:var(--mx-bg); box-shadow:0 -8px 24px #0003; }
  .mx-mobile-bottom>a,.mx-mobile-bottom>button { display:flex; flex:1 1 0; min-width:0; min-height:52px; flex-direction:column; align-items:center; justify-content:center; gap:3px; border:0; border-radius:12px; text-decoration:none; background:transparent; color:#a8b1c2; font:600 11px/1.2 system-ui,sans-serif; }
  .mx-mobile-bottom>[aria-current=page] { color:var(--mx-accent); background:#ffffff06; }
  .mx-mobile-bottom>.mx-primary-action { flex:1.65 1 0; background:var(--mx-accent); color:#fff; padding:7px 10px; font-size:12px; font-weight:750; text-align:center; line-height:1.25; }
  .mx-mobile-menu { width:min(90vw,380px); height:100dvh; max-height:100dvh; max-width:100vw; margin:0; border:0; border-right:1px solid var(--mx-line); padding:0; background:var(--mx-bg); color:#fff; }
  .mx-mobile-menu[open] { display:flex; flex-direction:column; }
  .mx-mobile-menu::backdrop { background:#0009; backdrop-filter:blur(4px); }
  .mx-menu-top { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px; border-bottom:1px solid var(--mx-line); font-size:16px; font-weight:750; }
  .mx-menu-close { min-height:44px; min-width:44px; border:1px solid var(--mx-line); border-radius:12px; background:#ffffff09; color:#fff; font-size:23px; }
  .mx-menu-content { padding:12px; overflow-y:auto; overscroll-behavior:contain; flex:1; }
  .mx-menu-content nav,.mx-menu-content .side-nav { display:flex!important; flex-direction:column!important; position:static!important; width:100%!important; max-width:100%!important; padding:0!important; margin:0!important; gap:5px!important; transform:none!important; }
  .mx-menu-content a,.mx-menu-content summary { display:flex!important; align-items:center; min-height:46px!important; padding:11px 12px!important; color:#e5eaf2!important; text-decoration:none; border-radius:10px; font-size:14px!important; line-height:1.3!important; white-space:normal!important; }
  .mx-menu-content a:hover,.mx-menu-content a:focus-visible { background:#ffffff0b; }
  .mx-menu-content details { border-bottom:1px solid var(--mx-line); padding-bottom:6px; margin-bottom:6px; }
  .mx-menu-content .sidebar-heading {margin:18px 12px 8px;color:#97a3b8;font-size:12px;font-weight:750;text-transform:uppercase;}
  .xcams-profile-title-row {min-width:0!important;max-width:100%!important;flex-wrap:wrap!important;}
  .mx-menu-content summary { font-weight:750; cursor:pointer; }
  .mx-menu-content details>nav { padding-left:8px!important; }
  .mx-menu-content details:not([open])>:not(summary) { display:none!important; }
  .mx-menu-content .side-hint { display:none; }
  .mx-menu-content .side-nav .nav-promo,.mx-menu-content .sidebar-ad { max-width:100%; }
  .mx-mobile-header :focus-visible,.mx-mobile-bottom :focus-visible { outline:2px solid #fff; outline-offset:2px; }
}
@media (prefers-reduced-motion:reduce) { .mx-mobile-header,.mx-mobile-menu,.mx-mobile-bottom { scroll-behavior:auto; transition:none; } }

@media (min-width:600px) and (max-width:980px) { html:root .grid,html:root #homepageGrid,html:root .models-grid,html:root .model-grid {grid-template-columns:repeat(3,minmax(0,1fr))!important;} }
