/* Europe — ton de la page (bleu de givre, indigo de la stase, orange BrayTech, turquoise vex),
   couleurs de la coupe, pastilles propres à Europe, recette des Exos et dossiers. */

.europe {
  --frost: #9fd8ff;
  --frost-hi: #d5efff;
  --salvation: #8c97ff;
  --bray: #ff8f5a;
  --vex: #6fe3c8;
  --page-accent: var(--frost);
  --page-accent-hi: var(--frost-hi);
}
.europe ::selection { background: rgba(159, 216, 255, .3); }

/* ---------- Héros ---------- */
.europe .hero-title span:last-child { margin-top: .18em; font-size: .36em; font-weight: 500; letter-spacing: .3em; color: var(--frost-hi); }
.europe .hero-status { border-left-color: var(--frost); transition: border-color .3s; }
.europe a.hero-status:hover { border-left-color: #fff; }

/* ---------- Coupe (brique commune : css/components/depths.css) ---------- */
.depths-sec { background: linear-gradient(180deg, transparent, rgba(159, 216, 255, .04) 40%, transparent); }
.stratum--orbite { background: radial-gradient(ellipse 60% 120% at 50% 130%, rgba(120, 160, 255, .22), transparent 70%), linear-gradient(180deg, #03040a, #070b1c); }
.stratum--surface { background: radial-gradient(ellipse 34% 60% at 14% 0%, rgba(162, 141, 255, .16), transparent 70%), linear-gradient(180deg, #0a1230 0%, #1a2a55 92%, #cfe6f7 93%, #7fa6c8 100%); }
.stratum--glace { background: linear-gradient(180deg, #7fa6c8 0%, #3d6690 9%, #1d3a5e 40%, #142a47 100%); }
.stratum--profondeurs { background: linear-gradient(180deg, #142a47, #0c1a30); }
.stratum--fond { background: linear-gradient(180deg, #0c1a30, #070f20); }
.stratum--ocean { background: radial-gradient(ellipse 50% 90% at 50% 110%, rgba(60, 120, 170, .35), transparent 70%), linear-gradient(180deg, #06142a, #020812); }
.orbit-ring { fill: none; stroke: rgba(159, 216, 255, .22); stroke-width: 1; stroke-dasharray: 2 6; }
.pyramid-ship { fill: #0b0c14; stroke: rgba(255, 255, 255, .5); stroke-width: 1; }
.ocean-line { fill: none; stroke: rgba(120, 190, 240, .35); stroke-width: 1.2; stroke-dasharray: 6 5; }
.europe .ground { stroke: rgba(235, 246, 255, .85); }
.way-line { stroke: rgba(159, 216, 255, .36); }
.way-line--bray { stroke: rgba(255, 143, 90, .45); }
.way-line--salvation { stroke: rgba(140, 151, 255, .5); }
.way-line--vex { stroke: rgba(111, 227, 200, .42); }
.way-line--raid { stroke: rgba(206, 174, 51, .55); }
.way-line--pyramid { stroke: rgba(255, 255, 255, .32); stroke-dasharray: 2 5; }
.room-node--zone { color: var(--frost-hi); }
.room-node--bray { color: var(--bray); }
.room-node--bray i { transform: none; }
.room-node--salvation { color: var(--salvation); }
.room-node--vex { color: var(--vex); }
.room-node--raid, .room-node--dungeon { color: var(--exotic); }
.room-node--pyramid { color: #fff; }
.europe .stratum--glace .stratum-name { color: rgba(255, 255, 255, .8); }
.europe .stratum--glace .stratum-note { color: rgba(255, 255, 255, .5); }

/* ---------- Pastilles d'Europe ---------- */
.spot[data-secret="penguins"].found svg { animation: waddle .45s ease-in-out 2; }
@keyframes waddle { 25% { transform: rotate(-12deg); } 75% { transform: rotate(12deg); } }
.spot[data-secret="shards"] { color: #c9c2ff; border-color: rgba(140, 151, 255, .6); }
.spot[data-secret="exos"] { color: #ffd0b8; }
.spot[data-secret="augments"] { color: var(--gold-hi); }
/* inertes tant que l'outil manque (classes has-grip et has-scanner posées par js/rituals.js) */
.spot[data-needs]:not(.found) { border-style: dashed; opacity: .6; }
.has-grip .spot[data-needs="grip"], .has-scanner .spot[data-needs="scanner"] { border-style: solid; opacity: 1; }
.has-scanner .spot[data-needs="scanner"]:not(.found) { box-shadow: 0 0 14px rgba(241, 219, 164, .55); }
.spot--techno { width: 40px; height: 40px; color: var(--frost-hi); border-color: rgba(159, 216, 255, .7); animation: techno-watch 2.4s ease-in-out infinite; }
.spot--techno svg { width: 22px; height: 22px; }
.spot--techno.found { animation: none; }
@keyframes techno-watch { 50% { box-shadow: 0 0 0 6px rgba(159, 216, 255, .14); } }
/* la zone éclipsée de la semaine */
.eclipse-badge { position: absolute; left: 12px; top: 12px; z-index: 2; padding: 4px 10px; background: rgba(6, 10, 22, .78); border: 1px solid rgba(140, 151, 255, .7); font-size: .6rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #c9c2ff; }
.quarter-photo.eclipsed .photo { filter: saturate(.75) brightness(.82); }

/* colonie de pingouins, révélée quand les neuf sont réunis */
.rookery { display: flex; align-items: center; gap: 14px; margin: 18px 0 0; padding: 10px; border: 1px solid rgba(159, 216, 255, .4); background: rgba(159, 216, 255, .06); }
.rookery[hidden] { display: none; }
.rookery img { flex: none; width: 120px; aspect-ratio: 16 / 10; object-fit: cover; }
.rookery figcaption { font-size: .84rem; line-height: 1.5; color: var(--ink); }

/* ---------- Maison du Salut et Crypte ---------- */
.europe .lead-quote cite { color: var(--gold); }
.europe .voice-img img { object-position: 50% 30%; }
.europe .voices { margin-bottom: clamp(40px, 5vw, 64px); }
.tool-box { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 20px; }
.tool-box .d-btn:disabled { opacity: .5; cursor: default; pointer-events: none; }
.tool-status, .head-status { flex: 1 1 220px; margin: 0; font-size: .86rem; line-height: 1.45; color: var(--muted); }
.head-status.ok { color: var(--frost-hi); }
.head-status.bad { color: #ffb08a; }
#clovis-head.shake { animation: head-shake .4s; }
@keyframes head-shake { 25% { transform: translateX(-3px); } 75% { transform: translateX(3px); } }
#clovis-head.awake { background: var(--bray); border-color: var(--bray); color: var(--night); box-shadow: 0 0 22px rgba(255, 143, 90, .5); }

.recipe { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 0 clamp(40px, 5vw, 64px); padding: 0; list-style: none; counter-reset: none; }
.recipe li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; align-items: start; padding: 18px; background: var(--panel-solid); border: 1px solid var(--line); border-top: 3px solid var(--bray); }
.recipe .n { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line-strong); font-size: .8rem; font-weight: 800; color: var(--bray); }
.recipe h3 { margin: 4px 0 6px; font-size: 1rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--pearl); }
.recipe p { margin: 0; font-size: .86rem; line-height: 1.55; color: var(--muted); }

/* ---------- Dossiers ---------- */
.mysteries { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.mystery { position: relative; padding: 24px 24px 26px; overflow: hidden; background: var(--panel-solid); border: 1px solid var(--line); border-left: 3px solid var(--frost); transition: border-color .3s, transform .4s var(--ease); }
.mystery:hover { border-color: var(--line-strong); border-left-color: #fff; transform: translateY(-3px); }
.mystery-n { position: absolute; right: 14px; top: 2px; margin: 0; font-family: var(--font-lore); font-style: italic; font-size: 4.2rem; line-height: 1; color: rgba(159, 216, 255, .12); }
.mystery h3 { margin: 6px 0 10px; font-size: 1.15rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; color: var(--pearl); }
.mystery p:not(.tag):not(.mystery-n) { margin: 0; font-size: .9rem; line-height: 1.65; color: var(--muted); }

@media (max-width: 1020px) {
  .recipe { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mysteries { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .recipe, .mysteries { grid-template-columns: minmax(0, 1fr); }
  .spot--techno { width: 34px; height: 34px; }
}
/* huit portraits : deux rangées de quatre plutôt que cinq et trois */
@media (min-width: 1181px) { .europe .voices { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1180px) and (min-width: 681px) { .europe .voices { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
