/* =========================================================
   Univers MARC'HOSS — Dépôt sauvage
   Lichen clair, formes organiques, étiquettes de spécimen
   ========================================================= */
body.u-marchoss {
  --bg: #e9ece4;
  --bg-2: #dfe4d7;
  --panel: #f5f7f1;
  --panel-2: #ffffff;
  --line: rgba(29, 42, 31, .12);
  --line-2: rgba(29, 42, 31, .24);
  --text: #1d2a1f;
  --muted: #5b685c;
  --faint: #8a968a;
  --magenta: #c2185b;
  --ochre: #c98f10;
  --verdigris: #2f8f83;
  --red: var(--magenta);
  --cyan: var(--verdigris);
  --serif: 'Bricolage Grotesque', 'Manrope', system-ui, sans-serif;
  --sans: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
  --radius: 22px;
  --tsep-base: 0px;
  background: var(--bg);
  color: var(--text);
  color-scheme: light;
}
body.u-marchoss::before { opacity: .12; mix-blend-mode: multiply; }
.u-marchoss ::selection { background: var(--magenta); color: #fff; }
.u-marchoss :focus-visible { outline-color: var(--magenta); }
.u-marchoss .ana::before, .u-marchoss .ana::after { content: none; }

/* Typo */
.u-marchoss .section__title { font-style: normal; font-weight: 800; letter-spacing: -.045em; line-height: .9; font-size: clamp(2.8rem, 8vw, 6.6rem); }
.u-marchoss .section__title .ana::after { content: '.'; position: static; transform: none; color: var(--magenta); mix-blend-mode: normal; width: auto; }
.u-marchoss .section__num { color: var(--muted); display: flex; align-items: center; gap: 12px; }
.u-marchoss .section__num .track {
  display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%;
  border: 1.5px solid var(--text); font-weight: 500; color: var(--text); letter-spacing: 0;
  background: radial-gradient(circle at 35% 35%, rgba(194,24,91,.25) 0 18%, transparent 19%), radial-gradient(circle at 65% 62%, rgba(47,143,131,.3) 0 14%, transparent 15%), radial-gradient(circle at 60% 30%, rgba(201,143,16,.35) 0 9%, transparent 10%);
}
.u-marchoss .lead { font-family: var(--serif); font-weight: 500; letter-spacing: -.02em; font-size: clamp(1.5rem, 2.5vw, 2.1rem); line-height: 1.2; }
.u-marchoss .prose p { color: #3c4a3e; font-size: 1.04rem; }
.u-marchoss .section + .section { border-top: 0; }

/* Navigation */
.u-marchoss .nav.is-scrolled { background: rgba(233, 236, 228, .85); border-color: var(--line); }
.u-marchoss .logo-mh { font-family: var(--serif); font-weight: 800; font-size: 1.5rem; letter-spacing: -.04em; font-style: normal; }
.u-marchoss .logo-mh::after { content: '.'; color: var(--magenta); }
.u-marchoss .nav__links a { color: var(--muted); }
.u-marchoss .nav__links a:hover, .u-marchoss .nav__links a.is-active { color: var(--text); }
.u-marchoss .nav__links a::after { background: var(--magenta); box-shadow: none; height: 2px; border-radius: 2px; }
.u-marchoss .burger span { background: var(--text); box-shadow: none !important; }

/* Boutons */
.u-marchoss .btn { border-color: var(--text); border-radius: 999px; }
.u-marchoss .btn--primary { background: var(--text); color: var(--bg); }
.u-marchoss .btn:hover { box-shadow: none; background: var(--magenta); border-color: var(--magenta); color: #fff; border-radius: 42% 58% 55% 45% / 60% 40% 60% 40%; }
.u-marchoss .link { color: var(--text); border-color: var(--line-2); }
.u-marchoss .link:hover { color: var(--magenta); border-color: var(--magenta); }

/* ---------- Hero : œuvre en déliquescence ---------- */
.hero--moss { color: #fff; background: #1d2a1f; align-items: flex-end; }
.hero--moss .hero__media { position: absolute; inset: -3%; filter: url(#deliquescence) saturate(1.15); }
.hero--moss .hero__media img { width: 100%; height: 100%; object-fit: cover; }
.hero--moss::after { content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(20,28,21,.72) 0%, rgba(20,28,21,0) 26%),
    linear-gradient(90deg, rgba(20,28,21,.78) 0%, rgba(20,28,21,.45) 45%, rgba(20,28,21,0) 75%),
    linear-gradient(0deg, rgba(20,28,21,.6) 0%, rgba(20,28,21,0) 40%); }
.u-marchoss .nav:not(.is-scrolled) .logo-mh,
.u-marchoss .nav:not(.is-scrolled) .nav__links > a { color: rgba(255,255,255,.9); }
.u-marchoss .nav:not(.is-scrolled) .nav__links > a:hover { color: #fff; }
.u-marchoss .nav:not(.is-scrolled) .nav__worlds a { color: rgba(255,255,255,.8); }
.u-marchoss .nav:not(.is-scrolled) .nav__worlds a.is-current, .u-marchoss .nav:not(.is-scrolled) .nav__worlds a:hover { color: #fff; }
.u-marchoss .nav:not(.is-scrolled) .burger span { background: #fff; }
.u-marchoss .nav:not(.is-scrolled) .nav__worlds { border-color: rgba(255,255,255,.35); }
.hero--moss .defs { position: absolute; }
.spores { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; mix-blend-mode: screen; }
.hero--moss .hero__content { z-index: 2; }
.hero--moss .kicker { color: #fff; text-shadow: 0 1px 12px rgba(0,0,0,.6); }
.hero--moss .hero__subtitle { text-shadow: 0 1px 14px rgba(0,0,0,.55); }
.hero--moss .hero__title { font-family: var(--serif); font-weight: 800; letter-spacing: -.06em; line-height: .82; font-size: clamp(4rem, 15vw, 14rem); text-shadow: 0 6px 40px rgba(0,0,0,.35); }
.hero--moss .hero__title::after { content: '.'; color: var(--magenta); }
.hero--moss .hero__subtitle { color: rgba(255,255,255,.92); max-width: 36rem; }
.hero--moss .btn { border-color: #fff; color: #fff; }
.hero--moss .btn--primary { background: #fff; color: var(--text); }

/* ---------- Bio ---------- */
.frame-card { position: relative; }
.u-marchoss .media--frame { border-radius: 58% 42% 55% 45% / 45% 55% 45% 55%; animation: moss-blob 16s ease-in-out infinite alternate; box-shadow: 0 40px 70px -40px rgba(29,42,31,.6); }
.u-marchoss .bio__figure { position: sticky; top: 110px; }
.u-marchoss .technique__steps li { background: var(--panel-2); border: 1px solid var(--line); border-radius: var(--radius); }
.u-marchoss .technique__steps li:nth-child(1) { border-radius: 28px 28px 28px 8px; }
.u-marchoss .technique__steps li:nth-child(2) { border-radius: 8px 28px 28px 28px; }
.u-marchoss .technique__steps li:nth-child(3) { border-radius: 28px 8px 28px 28px; }
.u-marchoss .technique__n { font-family: var(--mono); font-style: normal; font-size: .8rem; color: var(--magenta); -webkit-text-stroke: 0; text-shadow: none; letter-spacing: .1em; }
.u-marchoss .technique__n::before { content: 'ÉTAPE '; }
.u-marchoss .technique__steps h4 { font-weight: 800; letter-spacing: -.03em; font-size: 2rem; }
.u-marchoss .technique__steps p { color: var(--muted); }

@keyframes moss-blob {
  0%   { border-radius: 58% 42% 55% 45% / 45% 55% 45% 55%; }
  50%  { border-radius: 42% 58% 38% 62% / 58% 38% 62% 42%; }
  100% { border-radius: 63% 37% 48% 52% / 39% 61% 39% 61%; }
}

/* ---------- Galerie : spécimens ---------- */
.u-marchoss .filter { border-color: var(--line-2); color: var(--muted); }
.u-marchoss .filter.is-active { background: var(--text); color: var(--bg); border-color: var(--text); }
.u-marchoss .masonry { column-gap: 28px; }
.u-marchoss .tile { margin-bottom: 34px; }
.u-marchoss .media--tile { border-radius: 26px; transition: border-radius 1.2s var(--ease), box-shadow .6s; box-shadow: 0 20px 40px -30px rgba(29,42,31,.6); }
.u-marchoss .tile:nth-child(3n+1) .media--tile { border-radius: 30px 30px 30px 6px; }
.u-marchoss .tile:nth-child(3n+2) .media--tile { border-radius: 6px 36px 36px 36px; }
.u-marchoss .tile__btn:hover .media--tile { border-radius: 48% 52% 44% 56% / 40% 46% 54% 60%; box-shadow: 0 30px 60px -30px rgba(194,24,91,.55); }
.u-marchoss .tile__btn:hover .media img { transform: scale(1.08); filter: saturate(1.25); }
.u-marchoss .tile__cap { padding-top: 14px; }
.u-marchoss .tile__no { font-family: var(--mono); color: var(--magenta); }
.u-marchoss .tile__no::before { content: 'Échantillon · '; color: var(--faint); }
.u-marchoss .tile__title { font-family: var(--serif); font-weight: 700; letter-spacing: -.02em; }
.u-marchoss .vthumb { border-radius: 26px; }

/* ---------- Expositions & presse ---------- */
.u-marchoss .pulse { background: var(--magenta); }
.u-marchoss .event__date { color: var(--verdigris); }
.u-marchoss .event__title { font-family: var(--serif); font-weight: 700; letter-spacing: -.02em; }
.u-marchoss .event--next { background: var(--panel-2); border-color: var(--line); border-radius: var(--radius); }
.u-marchoss .timeline::before { background: var(--line-2); }
.u-marchoss .timeline__item::before { border-color: var(--magenta); background: var(--bg); box-shadow: none; }
.u-marchoss .timeline__year { font-family: var(--serif); font-style: normal; font-weight: 700; }
.u-marchoss .empty { color: var(--muted); }
.u-marchoss .empty a { color: var(--magenta); }
.u-marchoss .clip { background: var(--panel-2); border-color: var(--line); border-radius: var(--radius); }
.u-marchoss .clip:hover { box-shadow: 0 24px 40px -28px rgba(29,42,31,.45); border-color: var(--line-2); }
.u-marchoss .clip__title { font-family: var(--serif); font-weight: 700; letter-spacing: -.02em; }

/* ---------- Contact ---------- */
.u-marchoss .form { background: var(--panel-2); border-color: var(--line); border-radius: 28px; }
.u-marchoss .field input, .u-marchoss .field textarea { background: var(--bg); border-color: var(--line); border-radius: 14px; }
.u-marchoss .field input:focus, .u-marchoss .field textarea:focus { border-color: var(--magenta); box-shadow: 0 0 0 3px rgba(194,24,91,.15); }
.u-marchoss .form__status { color: var(--verdigris); }
.u-marchoss .form__status.is-error { color: var(--magenta); }
.u-marchoss .contact__list a:hover { color: var(--magenta); }
.u-marchoss .stats strong { font-family: var(--serif); font-weight: 800; }

/* ---------- Pied & visionneuse ---------- */
.u-marchoss .footer { background: #1d2a1f; color: #e9ece4; border-top: 0; }
.u-marchoss .footer p { color: #a9b5a9; }
.u-marchoss .footer__name { font-family: var(--serif); font-weight: 800; font-style: normal; letter-spacing: -.04em; color: #e9ece4 !important; }
.u-marchoss .footer__name::after { content: '.'; color: var(--magenta); }
.u-marchoss .footer__worlds a { color: #a9b5a9; }
.u-marchoss .footer__worlds a:hover, .u-marchoss .footer__worlds a[aria-current] { color: #fff; }
.u-marchoss .footer__bottom { border-color: rgba(233,236,228,.14); }
.u-marchoss .footer__small, .u-marchoss .footer__credit { color: #7f8c80 !important; }
.u-marchoss .footer__credit a { color: #c9d3c9; border-color: rgba(233,236,228,.25); }
.u-marchoss .footer__credit a:hover { color: #fff; text-shadow: none; border-color: var(--magenta); }
.u-marchoss .viewer { background: #151d16; color: #e9ece4; }
.u-marchoss .viewer__meta, .u-marchoss .viewer__desc { color: #a9b5a9; }
.u-marchoss .viewer__nav, .u-marchoss .viewer__close { border-color: rgba(233,236,228,.3); color: #e9ece4; }
.u-marchoss .viewer__nav:hover { box-shadow: 0 0 0 3px rgba(194,24,91,.45); }
.u-marchoss .viewer .link { color: #e9ece4; }
.u-marchoss .toast { background: #1d2a1f; color: #e9ece4; }

@media (max-width: 860px) {
  .u-marchoss .nav__links { background: rgba(233, 236, 228, .98); }
  .u-marchoss .nav__links a { font-family: var(--serif); font-style: normal; font-weight: 800; letter-spacing: -.03em; color: var(--text); }
  .u-marchoss .nav.is-open .nav__links a { animation-name: menuInMoss; }
  @keyframes menuInMoss { from { opacity: 0; transform: translateY(12px); } }
  .u-marchoss .bio__figure { position: static; max-width: 420px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero--moss .hero__media { filter: none; }
  .u-marchoss .media--frame { animation: none; }
}
@media (max-width: 860px) {
  .u-marchoss .nav.is-open .logo-mh, .u-marchoss .nav.is-open .nav__links > a, .u-marchoss .nav.is-open .nav__worlds a { color: var(--text); }
  .u-marchoss .nav.is-open .burger span { background: var(--text); }
}
@media (max-width: 860px) {
  .hero--moss::after { background: linear-gradient(180deg, rgba(20,28,21,.6) 0%, rgba(20,28,21,.1) 22%, rgba(20,28,21,.55) 45%, rgba(20,28,21,.88) 100%); }
}
@media (max-width: 860px) {
  .u-marchoss .nav.is-open .nav__worlds a.is-current { color: var(--text); }
}
