/* ================================================================
   menubar.css — Barre de menu Mac OS Classic + page-hero + Finder
   Chargé APRÈS site.css : surcharge l'ancien style nav.
   ================================================================ */

/* ===== MENU BAR ===== */
nav.menubar {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);
  background: var(--warm-white);
  border-bottom: 1.5px solid var(--black);
  padding: 0 max(14px, env(safe-area-inset-right, 0px)) 0 max(14px, env(safe-area-inset-left, 0px));
  height: 44px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: var(--space-1-5);
}
.mb-apple {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 6px;
  flex-shrink: 0;
  text-decoration: none;
  position: relative;
}
.mb-apple::after { content: ""; position: absolute; inset: -4px; } /* cible tactile 44px (audit v13) */
.mb-apple { transition: background 0.12s var(--ease-smooth, ease-out); }
.mb-apple:hover { background: var(--paper); }
.mb-apple:active { background: var(--paper); transform: scale(0.96); } /* feedback pression (audit v13.2) */
.mb-apple:focus-visible { outline: 2px solid var(--focus-outline); outline-offset: 2px; }
.mb-menus {
  display: flex;
  align-items: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.mb-menus::-webkit-scrollbar { display: none; }
/* ===== Burger (mobile) : toutes les pages dans un menu déroulant ===== */
.mb-more { display: none; position: relative; flex-shrink: 0; }
.mb-more > summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2) var(--space-2-5);
  color: var(--black);
  cursor: var(--cur-hand, pointer);
  min-height: 44px;  /* cible 44px : la barre fait 44px (audit v10 H5) */
  min-width: 44px;
  border-radius: var(--radius-md, 8px);
}
.mb-more > summary::-webkit-details-marker { display: none; }
.mb-more > summary:hover,
.mb-more[open] > summary { background: var(--black); color: var(--cream); }
.mb-more > summary:focus-visible { outline: 2px solid var(--focus-outline); outline-offset: -2px; }
.mb-more-list {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  left: auto;
  min-width: 190px;
  margin: 0;
  padding: var(--space-1) 0;
  list-style: none;
  background: var(--cream);
  border: 1.5px solid var(--black);
  border-radius: 2px;
  box-shadow: 3px 3px 0 var(--black);
  z-index: calc(var(--z-nav, 100) + 10);
  max-height: min(80vh, calc(100dvh - 64px));
  overflow-y: auto;
}
.mb-more-list .mb-item { width: 100%; padding: 11px var(--space-3-5); }
.mb-menus.is-overflowing { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); } /* affordance de scroll (audit v7 H6) */
@media (max-width: 820px) {
  .mb-menus { display: none; }
  .mb-more { display: block; }
}
@media (max-width: 390px) {
  #btn-recruiter { padding: .32rem .58rem; }
  .mb-lang { padding: var(--space-1) var(--space-2); }
  nav.menubar { gap: 3px; }
}
.mb-item {
  display: flex;
  align-items: center;
  min-height: 44px; /* surbrillance pleine hauteur de barre, fidele au menu System 7 (audit v10 H5) */
  gap: 7px;
  padding: var(--space-2) 13px;
  font-family: var(--font-body);
  font-size: var(--text-sm); /* token (audit v7) */
  font-weight: var(--fw-medium);
  letter-spacing: 0.1px;
  color: var(--black);
  text-decoration: none;
  white-space: nowrap;
  border-radius: 0;
}
.mb-item:hover,
.mb-item[aria-current="page"] {
  background: var(--black);
  color: var(--cream);
}
.mb-item img { image-rendering: pixelated; flex-shrink: 0; }
.mb-item:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: -2px;
}
nav.menubar .nav-actions { margin-left: auto; display: flex; align-items: center; gap: var(--space-1-5); }
.mb-lang {
  display: inline-flex;
  align-items: center;
  min-height: 32px; /* cible tactile (audit v7) */
  background: none;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-md, 8px);
  padding: var(--space-1) 11px;
  font-family: var(--font-body);
  font-size: var(--text-xs, 12px);
  font-weight: var(--fw-semi);
  letter-spacing: 0.5px;
  color: var(--charcoal);
  text-decoration: none;
  cursor: var(--cur-hand, pointer);
}
.mb-lang:hover { border-color: var(--accent-hover); color: var(--accent-text); }
.mb-lang:focus-visible { outline: 2px solid var(--focus-outline); outline-offset: 2px; }
/* Cible 44px : extension invisible, pilule 32px conservee (audit v10 H5) */
.mb-lang { position: relative; }
.mb-lang::after { content: ""; position: absolute; inset: -6px -1px; border-radius: var(--radius-md, 8px); }
.mb-clock {
  font-family: var(--font-body);
  font-size: var(--text-2xs, 0.8125rem);
  font-variant-numeric: tabular-nums;
  color: var(--charcoal);
  padding-left: var(--space-2);
  white-space: nowrap;
}

@media (max-width: 820px) {
  nav.menubar { padding: 0 max(8px, env(safe-area-inset-right, 0px)) 0 max(8px, env(safe-area-inset-left, 0px)); gap: 2px; }
  .mb-item { padding: var(--space-2) 9px; font-size: var(--text-sm); /* token (audit v7) */ }
  .mb-clock { display: none; }
  .mb-lang { padding: var(--space-1) var(--space-2); }
}

/* ===== PAGE HERO (sous-pages) ===== */
.page-hero {
  background: var(--cream);
  border-bottom: 1px solid var(--border);
  padding: 56px var(--space-10) 44px;
}
.page-hero-inner { max-width: 980px; margin: 0 auto; }
.ph-crumb {
  font-family: var(--font-body);
  font-size: var(--text-2xs, 0.8125rem);
  font-weight: var(--fw-medium);
  letter-spacing: 0.3px;
  color: var(--gray);
  margin: 0 0 var(--space-3-5);
}
.ph-crumb a { color: var(--gray); text-decoration: none; display: inline-block; padding: var(--space-1-5) 2px; margin: -6px -2px; }
.ph-crumb a:hover { color: var(--accent-text); }
.ph-crumb a:focus-visible { outline: 2px solid var(--focus-outline); outline-offset: 2px; }
.ph-updated { font-size: var(--text-xs); color: var(--gray); margin-top: var(--space-2-5); } /* fraicheur visible (audit v10 L18) */
.ph-sep { padding: 0 7px; color: var(--light-gray); }
.page-hero h1 {
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  font-size: clamp(40px, 5.5vw, 54px);
  line-height: 1.1;
  letter-spacing: -1px;
  color: var(--black);
  margin: 0 0 var(--space-3);
}
.ph-lede {
  font-family: var(--font-body);
  font-size: var(--text-lede, 1.0625rem);
  line-height: 1.6;
  color: var(--charcoal);
  max-width: 62ch;
  margin: 0;
}
@media (max-width: 820px) {
  .page-hero { padding: var(--space-10) var(--space-5) var(--space-8); }
}

/* ===== FENÊTRE FINDER (accueil — explorer) ===== */
.finder {
  max-width: 760px;
  margin: 0 auto;
  border: 1.5px solid var(--black);
  border-radius: 2px;
  background: var(--cream);
  box-shadow: 3px 3px 0 var(--black);
}
.finder-titlebar {
  display: flex;
  align-items: center;
  gap: var(--space-2-5);
  height: 30px;
  padding: 0 9px;
  border-bottom: 1.5px solid var(--black);
  background:
    repeating-linear-gradient(
      to bottom,
      transparent 0 3px,
      var(--light-gray) 3px 4px
    );
  background-position: 0 6px;
  background-size: 100% calc(100% - 12px);
  background-repeat: no-repeat;
}
.finder-closebox {
  width: 13px;
  height: 13px;
  border: 1.5px solid var(--black);
  background: var(--cream);
  flex-shrink: 0;
  position: relative;
}
/* Zone tactile 24px min (WCAG 2.5.8) sans impact visuel */
.finder-closebox::after,
.egg-about-close::after {
  content: "";
  position: absolute;
  inset: -7px;
}
.finder-title {
  font-family: var(--font-body);
  font-size: var(--text-sm); /* token (audit v7) */
  font-weight: var(--fw-semi);
  letter-spacing: 0.2px;
  color: var(--black);
  background: var(--cream);
  padding: 0 var(--space-3);
  margin: 0 auto;
  white-space: nowrap;
}
.finder-cols {
  display: grid;
  grid-template-columns: 44px 1fr 130px 110px;
  padding: 5px var(--space-3-5);
  border-bottom: 1px solid var(--border);
  font-family: var(--font-body);
  font-size: var(--text-xs, 0.75rem);
  font-style: italic;
  color: var(--gray);
}
.finder-list { list-style: none; margin: 0; padding: 0; }
.finder-row {
  display: grid;
  grid-template-columns: 44px 1fr 130px 110px;
  align-items: center;
  min-height: 44px; /* cible tactile 44px (audit v13) */
  padding: 9px var(--space-3-5);
  text-decoration: none;
  color: var(--black);
  border-bottom: 1px solid var(--paper);
}
.finder-row:last-child { border-bottom: none; }
.finder-row img { width: 26px; height: 26px; image-rendering: pixelated; }
.finder-row:hover {
  background: var(--black);
  color: var(--cream);
}
.finder-row:focus-visible {
  background: var(--black);
  color: var(--cream);
  outline: 2px solid var(--focus-outline);
  outline-offset: -2px;
}
.finder-row:active { background: var(--black); color: var(--cream); } /* feedback pression tactile (audit v13) */
.finder-row:hover .fr-kind, .finder-row:focus-visible .fr-kind,
.finder-row:hover .fr-size, .finder-row:focus-visible .fr-size { color: var(--light-gray); }
.fr-name { font-family: var(--font-body); font-size: var(--text-md); /* token (audit v7) */ font-weight: var(--fw-semi); }
.fr-kind, .fr-size { font-family: var(--font-body); font-size: var(--text-xs); /* token (audit v7) */ color: var(--gray); }
@media (max-width: 640px) {
  .finder-cols { grid-template-columns: 40px 1fr 90px; }
  .finder-cols .fc-size { display: none; }
  .finder-row { grid-template-columns: 40px 1fr 90px; }
  .fr-size { display: none; }
}

/* ===== View Transitions cross-document (A5) ===== */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation-duration: 180ms; }
  ::view-transition-new(root) { animation-duration: 180ms; }
}

/* ===== Reduced motion / print ===== */
@media print {
  nav.menubar, .mb-clock { display: none; }
}

/* ===== Anti-duplication : pages mono-section ===== */
body[data-page="voyages"] #voyages .section-header,
body[data-page="publications"] #publications > .section-header {
  display: none;
}

/* ===== EASTER EGGS ===== */
.egg-rainbow-wave {
  position: fixed;
  inset: 0;
  z-index: var(--z-egg, 1500);
  pointer-events: none;
  display: flex;
  flex-direction: column;
}
.egg-rainbow-wave div {
  flex: 1;
  transform: translateX(-101%);
  opacity: 0.92;
}
@media (prefers-reduced-motion: no-preference) {
  .egg-rainbow-wave div { animation: egg-wave 1.6s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
}
@keyframes egg-wave {
  0%   { transform: translateX(-101%); }
  45%  { transform: translateX(0); }
  55%  { transform: translateX(0); }
  100% { transform: translateX(101%); }
}

html.egg-crt::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: calc(var(--z-egg, 1500) - 1);
  pointer-events: none;
  background: repeating-linear-gradient(
    to bottom,
    rgba(24, 20, 18, 0) 0 2px,
    rgba(24, 20, 18, 0.14) 2px 4px
  );
}
html.egg-crt body { filter: contrast(1.06) saturate(1.12); }

.egg-about {
  position: fixed;
  inset: 0;
  z-index: calc(var(--z-egg, 1500) + 2);
  background: rgba(24, 20, 18, 0.28);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 12vh;
}
.egg-about-win {
  width: min(380px, calc(100vw - 40px));
  background: var(--cream);
  border: 1.5px solid var(--black);
  border-radius: 2px;
  box-shadow: 3px 3px 0 var(--black);
}
.egg-about-bar {
  display: flex;
  align-items: center;
  gap: var(--space-2-5);
  height: 28px;
  padding: 0 var(--space-2);
  border-bottom: 1.5px solid var(--black);
  background: repeating-linear-gradient(to bottom, transparent 0 3px, var(--light-gray) 3px 4px);
  background-position: 0 6px;
  background-size: 100% calc(100% - 12px);
  background-repeat: no-repeat;
}
.egg-about-bar span {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: var(--fw-semi);
  background: var(--cream);
  padding: 0 var(--space-2-5);
  margin: 0 auto;
}
.egg-about-close {
  width: 13px;
  height: 13px;
  border: 1.5px solid var(--black);
  background: var(--cream);
  padding: 0;
  cursor: var(--cur-hand, pointer);
  position: relative;
  flex-shrink: 0;
}
.egg-about-close:focus-visible { outline: 2px solid var(--focus-outline); outline-offset: 2px; }
.egg-about-body { padding: var(--space-4) var(--space-4-5) var(--space-4-5); }
.egg-about-title {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: var(--fw-bold);
  margin: 0 0 var(--space-3);
  color: var(--black);
}
.egg-about-table { border-collapse: collapse; width: 100%; }
.egg-about-table td {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  color: var(--charcoal);
  padding: 3px 0;
}
.egg-about-table td:first-child { color: var(--gray); padding-right: var(--space-3-5); white-space: nowrap; }

/* ===== PAVILLONS MARITIMES (footer) ===== */
.flags {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  vertical-align: middle;
}
.flags svg {
  display: block;
  border: 1px solid var(--charcoal);
  border-radius: 1px;
}


/* ===== LOGOS (img/) ===== */
.mb-apple img { height: 26px; width: auto; display: block; }
.edu-logo { height: 40px; width: auto; display: block; margin-bottom: var(--space-3); }
/* audit v7 : hauteur unique 40px pour les logos écoles (harmonisation) */
.exp-logo {
  height: 24px;
  width: auto;
  vertical-align: middle;
  margin-right: 7px;
  display: inline-block;
}


/* ===== POLAROIDS (expériences) ===== */
.exp-photo {
  margin: var(--space-4-5) 0 0;
  width: 150px;
  background: var(--cream);
  border: 1px solid var(--border);
  padding: 7px 7px var(--space-2);
  box-shadow: 2px 3px 0 rgba(24, 20, 18, 0.12);
  transform: rotate(-2deg);
}
.exp-photo img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 190px;
  object-fit: cover; /* cap des photos portrait dans la colonne 170px (audit v9) */
}
.exp-photo figcaption {
  font-family: var(--font-body);
  font-size: var(--text-xs, 0.75rem);
  font-style: italic;
  color: var(--gray);
  text-align: center;
  padding-top: var(--space-1-5);
  line-height: 1.5;
}
@media (max-width: 820px) {
  .exp-photo { width: 110px; }
}


/* ===== GALERIE VOYAGES ===== */
.travel-gallery {
  columns: 3 240px;
  column-gap: var(--space-4-5);
}
.tg-item {
  display: block;
  position: relative;
  margin-bottom: var(--space-4-5);
  break-inside: avoid;
  background: var(--cream);
  border: 1px solid var(--border);
  padding: 7px 7px var(--space-2);
  box-shadow: 2px 3px 0 rgba(24, 20, 18, 0.12);
  text-decoration: none;
}
.tg-item:nth-child(odd) { transform: rotate(-1.2deg); }
.tg-item:nth-child(even) { transform: rotate(1deg); }
.tg-item:hover, .tg-item:focus-visible { transform: rotate(0) scale(1.02); z-index: 2; }
.tg-item:focus-visible { outline: 2px solid var(--focus-outline); outline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) {
  .tg-item { transition: transform 0.18s cubic-bezier(0.16, 1, 0.3, 1); }
}
.tg-item img { display: block; width: 100%; height: auto; }
.tg-city {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-xs, 0.75rem);
  font-style: italic;
  color: var(--gray);
  text-align: center;
  padding-top: var(--space-1-5);
}
.tg-box {
  display: none;
  position: fixed;
  inset: 0;
  z-index: var(--z-lightbox, 1400);
  background: rgba(24, 20, 18, 0.88);
  align-items: center;
  justify-content: center;
}
.tg-box:target { display: flex; }
.tg-box img {
  max-width: min(86vw, 980px);
  max-height: 84vh;
  max-height: min(84dvh, 84vh); /* barre iOS (audit v9 M23) */
  width: auto;
  height: auto;
  border: 6px solid var(--cream);
  background: var(--cream);
}
.tg-close, .tg-prev, .tg-next {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  color: var(--cream);
  background: rgba(24, 20, 18, 0.5);
  border: 1.5px solid var(--cream);
  border-radius: 50%;
  font-size: var(--text-xl-2); /* 22px */
  text-decoration: none;
}
.tg-close:hover, .tg-prev:hover, .tg-next:hover { background: var(--black); }
.tg-close:focus-visible, .tg-prev:focus-visible, .tg-next:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: 2px;
}
.tg-close { top: 18px; right: 18px; }
.tg-prev { left: 14px; top: 50%; transform: translateY(-50%); }
.tg-next { right: 14px; top: 50%; transform: translateY(-50%); }
.tg-caption {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--cream);
  background: rgba(24, 20, 18, 0.6);
  padding: var(--space-1) var(--space-3-5);
  border-radius: 14px;
}

/* Galerie : neutralise le padding "colonne de lecture" de .section */
#main-content > section#galerie {
  padding-left: clamp(20px, 4vw, 48px);
  padding-right: clamp(20px, 4vw, 48px);
}

/* ===== TIMELINE PARCOURS ===== */
#main-content > section.timeline-section {
  padding: 40px clamp(20px, 4vw, 48px) 8px;
  max-width: 1100px;
}
.timeline {
  list-style: none;
  margin: 0;
  padding: 0 var(--space-5) var(--space-2-5) 0; /* fin de piste : le dernier item respire */
  display: flex;
  position: relative;
  overflow-x: auto;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}
.timeline::before {
  content: '';
  position: absolute;
  top: 19px;
  left: 30px;
  right: 30px;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg,
    var(--r-green), var(--r-yellow), var(--r-orange),
    var(--r-red), var(--r-purple), var(--r-blue));
}
.tl-item {
  flex: 1 0 130px;
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  gap: 7px;
}
.tl-item img {
  image-rendering: pixelated;
  background: var(--cream);
  border: 1.5px solid var(--black);
  border-radius: 50%;
  padding: 5px;
  position: relative;
  z-index: 1;
  box-shadow: 0 0 0 4px var(--cream);
}
.tl-year {
  font-family: var(--font-body);
  font-size: var(--text-2xs); /* token (audit v10 L1) */
  font-weight: var(--fw-bold);
  color: var(--black);
  letter-spacing: 0.4px;
}
.tl-label {
  font-family: var(--font-body);
  font-size: var(--text-xs); /* token, 12.5 → 12px (audit v10 L1) */
  line-height: 1.45;
  color: var(--gray);
}
.tl-label a { color: var(--accent-text); font-weight: var(--fw-semi); text-decoration: none; }
.tl-label a:hover { text-decoration: underline; }
.tl-label a:focus-visible { outline: 2px solid var(--focus-outline); outline-offset: 2px; }
.tl-item--next img { border-style: dashed; }

/* ===== C6 — Le point dispo clignote "MY" en morse (-- -.--) ===== */
@media (prefers-reduced-motion: no-preference) {
  .dispo-dot {
    animation: morse-my 6s steps(1) infinite;
  }
  @keyframes morse-my {
    0%, 7%   { opacity: 1; }   /* M : dah */
    8%, 9%   { opacity: 0.25; }
    10%, 17% { opacity: 1; }   /* M : dah */
    18%, 24% { opacity: 0.25; }/* espace lettre */
    25%, 32% { opacity: 1; }   /* Y : dah */
    33%, 34% { opacity: 0.25; }
    35%, 37% { opacity: 1; }   /* Y : dit */
    38%, 39% { opacity: 0.25; }
    40%, 47% { opacity: 1; }   /* Y : dah */
    48%, 49% { opacity: 0.25; }
    50%, 57% { opacity: 1; }   /* Y : dah */
    58%, 99% { opacity: 0.25; }/* silence */
  }
}

/* ===== C15 — CV imprimable (Ctrl+P) ===== */
@media print {
  .page-hero { padding: 0 0 var(--space-3); border-bottom: 2px solid #000; }
  .ph-crumb, .timeline-section, .ef-bar, .ef-btn, .exp-filters,
  .exp-photo, .exp-badge, .section-header img, .faq-fab,
  #quiz-panel, #quiz-backdrop, .flags, .rainbow-bar,
  .rainbow-bar-progress, .egg-rainbow-wave { display: none !important; }
  body[data-page="parcours"] main::before {
    content: "Marius Yvard · marius.yvard@ensam.eu · linkedin.com/in/marius-yvard · mariusweb.fr/cv · Disponible stage 6 mois dès sept. 2026";
    display: block;
    font-family: var(--font-body, sans-serif);
    font-size: 11pt;
    padding: 8pt 0;
    border-bottom: 1pt solid #777;
  }
  .section, #main-content > section:nth-of-type(even) {
    padding: 10pt 0 !important;
    max-width: 100% !important;
    background: #fff !important;
  }
  .exp-item, .edu-card, .case-card, .skill-cat, .benev-card {
    break-inside: avoid;
  }
  .case-more, details.case-more { display: block; }
  .case-more summary { display: none; }
  .case-more[open], .case-more > div { display: block; }
  .anim-ready { opacity: 1 !important; transform: none !important; }
  a { color: #000; text-decoration: none; }
}

/* ===== La section contact garde son fond papier (alternance neutralisée) ===== */
#main-content > section.contact-section:nth-of-type(odd),
#main-content > section.contact-section:nth-of-type(even) {
  background-color: var(--paper);
}

/* ===== Croix rouge dans les cases de fermeture ===== */
.finder-closebox,
.egg-about-close {
  display: flex;
  align-items: center;
  justify-content: center;
}
.finder-closebox::before,
.egg-about-close::before {
  content: '\2715';
  font-family: var(--font-body);
  font-size: 0.5625rem; /* 9px */
  font-weight: var(--fw-bold);
  line-height: 1;
  color: var(--r-red);
}

/* ===== Finder pop-up (sous-dossiers) ===== */
.finder-popup {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal, 1100);
  display: grid;
  place-items: center;
  padding: var(--space-6);
  background: rgba(24, 20, 18, 0.45);
}
.finder-popup[hidden] { display: none; }
.finder-popup-window {
  width: min(620px, 94vw);
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  animation: finderPopIn 0.16s ease-out;
}
.finder-popup-window .finder-list { overflow-y: auto; }
.finder-popup .finder-close {
  padding: 0;
  cursor: var(--cur-hand, pointer);
}
.finder-popup .finder-close:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: 2px;
}
.finder-row[data-folder] .fr-name::after {
  content: "\25B8"; /* triangle plein : ces lignes ouvrent un sous-dossier (audit v9 M29) */
  margin-left: 7px;
  font-size: 0.85em;
  opacity: 0.55;
}
@keyframes finderPopIn {
  from { transform: scale(0.94); opacity: 0; }
  to   { transform: scale(1);    opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .finder-popup-window { animation: none; }
}

/* ===== Dark mode : le hover .finder-row inverse vers un fond clair (--black remappé),
   le texte des colonnes repasse en sombre (ordre des feuilles : menubar.css gagne sur site.css) ===== */
@media (prefers-color-scheme: dark) {
  .finder-row:hover .fr-kind, .finder-row:focus-visible .fr-kind,
  .finder-row:hover .fr-size, .finder-row:focus-visible .fr-size { color: rgba(27, 24, 21, 0.65); }
}

/* audit v7 : la closebox du Finder racine est un chrome décoratif (span), pas un contrôle.
   Estompée façon fenêtre inactive System 7 pour ne pas promettre une fermeture. */
span.finder-closebox { opacity: .45; }
span.finder-closebox::after { content: none; } /* chrome decoratif : pas de zone tactile fantome (audit v10 L11) */

/* Sous 540px : l'icône imprimante quitte la barre ; le CV PDF reste accessible
   via le modal Pressé ? et /contact/ (audit v8 L28) */
@media (max-width: 540px) {
  #btn-pdf { display: none; }
}

/* GitHub / LinkedIn visibles dans la barre au-dessus de 1020px ;
   en dessous masqués, accessibles via le menu burger. */
@media (max-width: 1020px) {
  .mb-ext { display: none; }
}
