/* The newsroom: one portrait language for every face.
   Same tonal treatment, same framing, same ring. */

.mhp { --face-filter: grayscale(1) contrast(1.08) brightness(1.03); }

/* ---------- Hero: the team in orbit around the founder ---------- */
.mhp-orbit { position: relative; justify-self: center; width: min(100%, 30rem); aspect-ratio: 1; }
.mhp-orbit__ring { position: absolute; inset: 6%; border-radius: 50%; border: 1px dashed rgba(242, 196, 107, .35); }
.mhp-orbit__ring--2 { inset: 21%; border-style: solid; border-color: rgba(255, 255, 255, .08); }
.mhp-orbit__lead { position: absolute; left: 50%; top: 50%; width: 46%; aspect-ratio: 1; translate: -50% -50%; z-index: 2; border-radius: 50%; overflow: hidden;
  box-shadow: 0 0 0 4px #0f1430, 0 0 0 7px #d4952a, 0 0 0 14px rgba(212, 149, 42, .15), 0 40px 70px -25px rgba(0, 0, 0, .8); }
.mhp-orbit__lead::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 50% 35%, transparent 55%, rgba(15, 20, 48, .55)); pointer-events: none; }
.mhp-orbit__disc { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 50% 30%, #4a6cf0, transparent 70%), linear-gradient(160deg, var(--mhr-majorelle), #0f1430); box-shadow: 0 0 0 3px rgba(242, 196, 107, .9), 0 30px 60px -20px rgba(0, 0, 0, .7); }
.mhp-orbit__disc::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: url("../img/zellige.svg") 50% 50% / 40px 40px; opacity: .1; }
.mhp-orbit__lead img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 18%; }
.mhp-orbit__tag { position: absolute; left: 50%; top: calc(50% + 23% - .2rem); translate: -50% 0; z-index: 3; white-space: nowrap; padding: .35rem .8rem; border-radius: 999px; background: var(--mhr-saffron); color: var(--mhr-night, #0f1430); font: 800 .72rem/1 var(--mhr-sans); }

.mhp-orbit__spin { position: absolute; inset: 6%; border-radius: 50%; animation: mhp-orbit 80s linear infinite; }
.mhp-orbit:hover .mhp-orbit__spin, .mhp-orbit:hover .mhp-orbit__face > span { animation-play-state: paused; }
.mhp-orbit__face { position: absolute; left: 50%; top: 50%; width: 22%; aspect-ratio: 1; margin: -11% 0 0 -11%;
  transform: rotate(var(--a)) translate(0, -227%) rotate(calc(var(--a) * -1)); }
.mhp-orbit__face > span { position: relative; display: block; width: 100%; height: 100%; border-radius: 50%; padding: 3px; background: conic-gradient(from 200deg, var(--mhr-saffron), #f2c46b, var(--mhr-saffron)); box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .8); animation: mhp-orbit 80s linear infinite reverse; }
.mhp-orbit__face img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; object-position: var(--o, 50% 30%); filter: var(--face-filter); border: 2px solid #0f1430; display: block; background: #222; }
.mhp-orbit__name { position: absolute; left: 50%; top: 104%; translate: -50% 0; white-space: nowrap; padding: .25rem .55rem; border-radius: 6px; background: rgba(15, 20, 48, .85); color: #fff; font: 700 .68rem/1 var(--mhr-sans); opacity: 0; transition: opacity .25s; pointer-events: none; }
.mhp-orbit__face:hover .mhp-orbit__name { opacity: 1; }
@keyframes mhp-orbit { to { rotate: 360deg; } }

.mhp-orbit__face { transition: opacity .8s ease; transition-delay: calc(var(--i, 0) * 120ms + 300ms); }
.mhr-js .mhp-hero--team:not(.is-ready) .mhp-orbit__face { opacity: 0; }

/* ---------- Team cards ---------- */
.mhp-team__grid { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 1.4rem !important; }
.mhp-team__grid > .mhp-member { flex: 0 1 calc((100% - 2.8rem) / 3); min-width: 15rem; }
.mhp-member { align-items: center; text-align: center; padding: 1.8rem 1.4rem 1.5rem !important; position: relative; overflow: hidden; }
.mhp-member::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5.2rem; background: linear-gradient(135deg, var(--mhr-majorelle-deep), #0f1430); z-index: 0; }
.mhp-member > * { position: relative; z-index: 1; }
.mhp-member__photo { overflow: hidden; width: 7.5rem !important; height: 7.5rem !important; padding: 3px !important; background: linear-gradient(135deg, #f2c46b, var(--mhr-saffron)) !important; box-shadow: 0 16px 30px -18px rgba(15, 20, 48, .9); }
.mhp-member__photo img { border: 4px solid #fff !important; object-position: var(--o, 50% 30%); transform: scale(var(--z, 1)); transform-origin: var(--o, 50% 30%); filter: var(--face-filter); transition: filter .5s ease, transform .5s var(--ease) !important; scale: none !important; }
.mhp-member:hover .mhp-member__photo img { filter: grayscale(0) contrast(1.02); transform: scale(calc(var(--z, 1) * 1.05)); }
.mhp-member__pw { position: relative; display: inline-block; }
.mhp-member__check { position: absolute; right: 2px; bottom: 6px; width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border-radius: 50%; background: var(--mhr-majorelle); border: 3px solid #fff; z-index: 2; }
.mhp-member__check svg { width: .8rem; height: .8rem; fill: none; stroke: #fff; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }
.mhp-member__name { margin-top: 1.1rem !important; }
.mhp-member__role { display: inline-block; margin-top: .45rem !important; padding: .3rem .65rem; border-radius: 999px; background: rgba(212, 149, 42, .12); color: #9a6510 !important; }
.mhp-member__bio { margin-top: .8rem !important; }
.mhp-member__more { display: inline-flex; align-items: center; gap: .35rem; text-decoration: none; }
.mhp-member__more::after { content: "\2192"; transition: translate .25s; }
.mhp-member:hover .mhp-member__more::after { translate: 4px 0; }

/* ---------- Writer pages ---------- */
.mhp-writer-role { margin: .8rem 0 0; font-family: var(--mhr-sans); font-size: .95rem; font-weight: 700; color: #f2c46b; }
.mhp-hero--writer .mhp-hero__title { font-size: clamp(2.6rem, 6vw, 4.6rem); }
.mhp-social--hero { margin-top: 1.4rem; }
.mhp-writer-photo { position: relative; justify-self: center; width: min(100%, 20rem); aspect-ratio: 1; margin: 0; border-radius: 50%; padding: 6px; background: conic-gradient(from 200deg, var(--mhr-saffron), #f2c46b, var(--mhr-majorelle), var(--mhr-saffron)); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .8); }
.mhp-writer-photo img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; object-position: var(--o, 50% 30%); filter: var(--face-filter, grayscale(1) contrast(1.08)); border: 6px solid #0f1430; display: block; }
.mhp-writer-photo figcaption { position: absolute; left: 50%; bottom: .4rem; translate: -50% 0; padding: .4rem .85rem; border-radius: 999px; background: var(--mhr-saffron); color: #0f1430; font: 800 .74rem/1 var(--mhr-sans); white-space: nowrap; }
.mhp-hero--writer + .mhr-archive { padding-top: clamp(2rem, 5vw, 3.5rem); }

@media (max-width: 860px) {
  .mhp-orbit { width: min(100%, 22rem); margin-top: 1.5rem; }
  .mhp-team__grid > .mhp-member { flex-basis: 100%; }
}
@media (min-width: 861px) and (max-width: 1100px) {
  .mhp-team__grid > .mhp-member { flex-basis: calc((100% - 1.4rem) / 2); }
}
@media (prefers-reduced-motion: reduce) {
  .mhp-orbit__spin, .mhp-orbit__face > span { animation: none; }
}