/* Kids' Island — couche de performance (chargée en dernier).
   Rien n'est retiré : on allège seulement ce qui coûte cher au rendu.
   1. Les cartes de contenu (déjà opaques à 86-92 %) n'ont plus de flou d'arrière-plan : invisible à l'œil, très coûteux au défilement.
   2. Les grandes surfaces de verre (barre haute, barre latérale, bandeaux, dock, menu, assistant) sont composées sur le GPU.
   3. Sur téléphone, les flous sont réduits et la révélation givrée n'est appliquée qu'aux cartes.
   4. Les sections basses du site public ne sont mises en page qu'à l'approche de l'écran. */

/* ---------- 1. Cartes : plus de flou d'arrière-plan ---------- */
#portal-dashboard .card,
#portal-dashboard .stat-card,
#portal-dashboard .doc-item,
#portal-dashboard .children-table,
#portal-dashboard .admin-empty,
#portal-dashboard .doc-empty,
#portal-dashboard .auth-form-card,
#portal-dashboard .messaging-card,
#portal-dashboard .conversation-card,
#portal-dashboard .ki-day-widget,
#portal-dashboard .kg-kicker,
#portal-dashboard #page-settings .kg-ios-list,
#portal-dashboard #page-settings .kg-ios-profile{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
#portal-dashboard .card{ background:rgba(255,255,255,.92) !important; }

/* ---------- 2. Surfaces de verre sur le GPU ---------- */
#portal-dashboard #topbar,
#portal-dashboard #sidebar-parent,
#portal-dashboard #sidebar-equipe,
#portal-dashboard #sidebar-admin,
#portal-dashboard .kg-dock,
.kg-sheet-card,
.ka-panel,
.ka-launcher img,
#nav,
.ki-mobile-menu{
  will-change:transform;
}
#portal-dashboard::before,
#portal-dashboard::after{ will-change:transform; }
/* Le défilement du contenu ne force pas le rendu des pages masquées */
#portal-dashboard .page:not(.active){ content-visibility:hidden; }
#portal-dashboard #main{ overscroll-behavior:contain; }
#portal-dashboard .msg-conv-body{ overscroll-behavior:contain; }

/* ---------- 3. Téléphone et tablette : flous plus légers ---------- */
@media (max-width:980px){
  #portal-dashboard.ki-glass-menu #topbar,
  #portal-dashboard.ki-glass-menu #sidebar-parent,
  #portal-dashboard.ki-glass-menu #sidebar-equipe,
  #portal-dashboard.ki-glass-menu #sidebar-admin,
  #portal-dashboard.ki-glass-menu .page-header,
  #portal-dashboard.ki-glass-menu .kg-dock,
  .kg-sheet-card,
  .ka-panel,
  .ki-mobile-menu{
    -webkit-backdrop-filter:blur(14px) saturate(140%) !important;
    backdrop-filter:blur(14px) saturate(140%) !important;
  }
  .kg-sheet{ -webkit-backdrop-filter:blur(6px) !important; backdrop-filter:blur(6px) !important; }
  /* Les halos animés du fond sont fixes sur téléphone (plein écran flouté = cher) */
  #portal-dashboard::before, #portal-dashboard::after{ animation:none !important; }
}
@media (max-width:900px){
  /* Révélation givrée seulement sur les cartes ; les textes montent sans flou */
  html.kim .kim-r{ filter:none; transition:opacity .75s cubic-bezier(.22,.7,.24,1), transform .75s cubic-bezier(.22,.7,.24,1); }
  html.kim :is(.sp, .h-card, .loc-card, .testi-stat, .google-badge).kim-r{
    filter:blur(6px);
    transition:opacity .75s cubic-bezier(.22,.7,.24,1), transform .75s cubic-bezier(.22,.7,.24,1), filter .6s ease;
  }
  html.kim :is(.sp, .h-card, .loc-card, .testi-stat, .google-badge).kim-r.kim-in{ filter:blur(0); }
  .js-reveal [data-reveal=tile]:not(.is-in){ filter:blur(8px); }
}

/* ---------- 4. Site public : sections basses mises en page à l'approche ---------- */
#food, #app, #testimonials{
  content-visibility:auto;
  contain-intrinsic-size:auto 900px;
}
footer{ content-visibility:auto; contain-intrinsic-size:auto 520px; }
