/* BUBB — complete stabilization pass for every product section except IA and Parametres. */

:is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page{
  min-width:0!important;
  max-width:100%!important;
  overflow-x:clip!important;
}
:is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page,
:is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page *{
  box-sizing:border-box!important;
}
:is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(h1,h2,h3,h4,h5,p,span,b,strong,em,small,label,a,button,.mut,.kicker,.chip,.mini,.stat,.event,.place){
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
:is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(img,picture,video,canvas,iframe,svg,audio){
  max-width:100%!important;
}
:is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.grid,.split,.home-cards,.quick,.map-layout,.timeline,.stats,.chips,.actions){
  min-width:0!important;
  max-width:100%!important;
}
:is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.card,.panel,.stat,.event,.place,.mini,[data-memory],[data-person],[data-capsule],.caps-card-v2,.legacy-card-v2,.journal-card-v2){
  min-width:0!important;
  max-width:100%!important;
}
:is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,select){
  max-width:100%!important;
  min-width:0!important;
}

/* Keep the section browser artwork contained on all screen sizes. */
#lce-v10-journey .lce-v10-stop:not([data-page="ai"]):not([data-page="settings"]) .lce-v9-scene{
  overflow:hidden!important;
}
#lce-v10-journey .lce-v10-stop:not([data-page="ai"]):not([data-page="settings"]) .lce-v9-scene :is(img,video,svg,canvas){
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
}

@media(max-width:820px){
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="home"] #home,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="mem"] #mem,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="people"] #people,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="timeline"] #timeline,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="map"] #map,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="caps"] #caps,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="legacy"] #legacy,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="journal"] #journal,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="faith"] #faith,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="mood"] #mood,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="moi"] #moi,
  html[data-lce-platform="mobile"] body.lce-v10-detail[data-lce-detail="likes"] #likes{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:calc(100svh - var(--ll-mobile-head,96px))!important;
    max-height:calc(100svh - var(--ll-mobile-head,96px))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y pinch-zoom!important;
    scroll-behavior:auto!important;
    scroll-snap-type:none!important;
    contain:none!important;
    transform:none!important;
    filter:none!important;
    will-change:auto!important;
    padding-left:max(10px,env(safe-area-inset-left))!important;
    padding-right:max(10px,env(safe-area-inset-right))!important;
    padding-bottom:calc(70px + env(safe-area-inset-bottom))!important;
  }

  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.hero,.lce-entry,.card,.panel,.stat,.event,.place,.mini,[data-memory],[data-person],[data-capsule],.caps-card-v2,.legacy-card-v2,.journal-card-v2){
    transform:none!important;
    transition:none!important;
    animation:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    filter:none!important;
    will-change:auto!important;
    contain:none!important;
    content-visibility:visible!important;
  }

  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page>.hero{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:9px!important;
    width:100%!important;
    margin:0 0 12px!important;
    padding:6px 1px 10px!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page>.hero h1{
    margin:2px 0 6px!important;
    font-size:clamp(27px,8vw,35px)!important;
    line-height:1.02!important;
    letter-spacing:-.035em!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page>.hero p{
    margin:0!important;
    font-size:13.5px!important;
    line-height:1.45!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page>.hero :is(.primary,.soft,button){
    width:100%!important;
    min-height:42px!important;
    padding:10px 13px!important;
    white-space:normal!important;
    line-height:1.2!important;
  }

  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.grid,.split,.home-cards,.quick,.map-layout,.timeline){
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
    width:100%!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page .stats{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page .stat{
    padding:12px!important;
    border-radius:15px!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page .stat b{
    font-size:clamp(22px,6vw,29px)!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page .stat span{
    font-size:10.5px!important;
    line-height:1.25!important;
  }

  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.actions,.chips,.mini-stats){
    width:100%!important;
    gap:7px!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.chip,.caps-filter-btn-v1,.caps-summary-chip-v2,.mem-final-filterbar button,.mem-final-filterbar select){
    max-width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.card,.panel,.event,.place,.mini,.lce-entry,[data-memory],[data-person],[data-capsule],.caps-card-v2,.legacy-card-v2,.journal-card-v2){
    width:100%!important;
    margin-inline:0!important;
    border-radius:min(20px,5vw)!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.cardbody,.panel,.event,.place){
    padding:14px!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.cardbody h3,.panel h2,.panel h3,.event h3,.place h3){
    font-size:clamp(18px,5.2vw,23px)!important;
    line-height:1.12!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(.mut,p,li){
    font-size:min(13.5px,3.65vw)!important;
    line-height:1.45!important;
  }

  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page button{
    max-width:100%!important;
    min-width:0!important;
    text-overflow:clip!important;
  }
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,select){
    width:100%!important;
    font-size:16px!important;
  }

  #timeline .year{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:8px!important;
  }
  #timeline .yearlabel{
    font-size:24px!important;
    margin:0!important;
  }
  #map .map-layout{gap:10px!important}
  #map #mapbox{
    width:100%!important;
    min-height:320px!important;
    height:min(48svh,500px)!important;
    border-radius:18px!important;
  }
  #map .places{
    max-height:none!important;
    overflow:visible!important;
  }
  #home .quick{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #home .quick button{
    min-height:72px!important;
    padding:11px!important;
    font-size:12px!important;
  }

  /* Section browser visuals stay deliberately small on phone. */
  #lce-v10-journey .lce-v10-stop:not([data-page="home"]):not([data-page="ai"]):not([data-page="settings"]) .lce-v9-scene{
    width:min(100%,340px)!important;
    height:150px!important;
    min-height:150px!important;
    max-height:150px!important;
    margin:10px auto 0!important;
  }
  #lce-v10-journey .lce-v10-stop:not([data-page="home"]):not([data-page="ai"]):not([data-page="settings"]) .lce-v9-scene :is(.lce-prod-section-frame,.lce-image-session-frame,.lce-v9-visual-wrap){
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
  #lce-v10-journey .lce-v10-stop:not([data-page="home"]):not([data-page="ai"]):not([data-page="settings"]) .lce-v9-scene :is(img,video){
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
  }
}

@media(max-width:390px){
  :is(#home,#mem,#people,#timeline,#map,#caps,#legacy,#journal,#faith,#mood,#moi,#likes).page .stats{
    grid-template-columns:minmax(0,1fr)!important;
  }
  #home .quick{
    grid-template-columns:minmax(0,1fr)!important;
  }
}
