:root {
  --bg: #050915;
  --bg-2: #081225;
  --panel: rgba(10, 22, 43, .72);
  --panel-strong: rgba(11, 25, 49, .94);
  --line: rgba(151, 191, 255, .16);
  --line-strong: rgba(86, 210, 255, .36);
  --text: #f4f8ff;
  --muted: #98a9c4;
  --cyan: #5ee4ff;
  --blue: #6a8cff;
  --violet: #ad72ff;
  --gold: #e7c177;
  --danger: #ff7f9a;
  --success: #6fffc1;
  --shadow: 0 28px 80px rgba(0, 0, 0, .38);
  --radius: 26px;
  --radius-sm: 16px;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body { margin: 0; min-height: 100vh; color: var(--text); background: radial-gradient(circle at 72% 18%, rgba(80, 105, 255, .12), transparent 30%), radial-gradient(circle at 14% 82%, rgba(89, 227, 255, .08), transparent 30%), linear-gradient(150deg, #040813, #07101f 48%, #050916); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; overflow-x: hidden; }
a { color: inherit; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
[hidden] { display: none !important; }
.ambient { position: fixed; width: 36rem; height: 36rem; border-radius: 50%; filter: blur(110px); opacity: .14; pointer-events: none; z-index: -2; }
.ambient-one { top: -12rem; right: -8rem; background: var(--blue); }
.ambient-two { bottom: -18rem; left: -12rem; background: var(--violet); }
.grid-layer { position: fixed; inset: 0; z-index: -3; pointer-events: none; opacity: .3; background-image: linear-gradient(rgba(98, 151, 222, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(98, 151, 222, .06) 1px, transparent 1px); background-size: 48px 48px; mask-image: linear-gradient(to bottom, rgba(0,0,0,.8), transparent 90%); }
.site-header { max-width: var(--max); margin: 0 auto; padding: 28px 28px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.brand-mark { position: relative; width: 42px; height: 42px; border: 1px solid rgba(94, 228, 255, .55); border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 22px rgba(94, 228, 255, .08), 0 0 28px rgba(94, 228, 255, .08); }
.brand-mark::before, .brand-mark::after { content: ""; position: absolute; inset: 5px; border: 1px dashed rgba(231, 193, 119, .4); border-radius: 50%; }
.brand-mark::after { inset: -5px; border-color: rgba(94, 228, 255, .18); }
.brand-mark span { font-weight: 800; color: var(--gold); letter-spacing: .04em; }
.brand-copy { line-height: 1; display: grid; gap: 3px; }
.brand-copy strong { font-size: 14px; text-transform: uppercase; letter-spacing: .13em; }
.brand-copy small { color: var(--muted); font-size: 12px; letter-spacing: .08em; }
.site-nav { display: flex; align-items: center; gap: 8px; }
.site-nav a { text-decoration: none; color: #b8c7dc; font-size: 14px; font-weight: 650; padding: 11px 14px; border-radius: 999px; border: 1px solid transparent; transition: .2s ease; }
.site-nav a:hover, .site-nav a.active { color: var(--text); background: rgba(255,255,255,.04); border-color: var(--line); }
.site-nav .nav-cta { color: #06101e; background: linear-gradient(120deg, var(--cyan), #96f3ff); box-shadow: 0 8px 30px rgba(94,228,255,.12); }
.site-nav .nav-cta:hover, .site-nav .nav-cta.active { color: #06101e; background: linear-gradient(120deg, #8aeeff, #c5f9ff); border-color: transparent; }
.site-main { max-width: var(--max); margin: 0 auto; padding: 32px 28px 80px; }
.hero { min-height: 690px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); gap: 76px; align-items: center; padding: 56px 0 82px; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #a9bed8; font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.pulse-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 5px rgba(94,228,255,.08), 0 0 18px rgba(94,228,255,.72); }
.hero h1, .registration-heading h1, .auth-intro h1 { margin: 24px 0 22px; font-size: clamp(54px, 7vw, 96px); line-height: .92; letter-spacing: -.055em; font-weight: 770; }
.hero h1 span, .registration-heading h1 span { color: transparent; -webkit-text-stroke: 1px rgba(167, 223, 255, .7); text-shadow: 0 0 40px rgba(94,228,255,.08); }
.hero-lead, .registration-heading p, .auth-intro > p { max-width: 650px; color: var(--muted); font-size: 18px; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button { min-height: 50px; padding: 0 20px; border-radius: 14px; border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 14px; text-decoration: none; font-weight: 780; cursor: pointer; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: #06101d; background: linear-gradient(120deg, var(--cyan), #9bf2ff 52%, #b7f7ff); box-shadow: 0 14px 40px rgba(94,228,255,.16); }
.button-primary:hover { box-shadow: 0 17px 48px rgba(94,228,255,.24); }
.button-ghost { color: var(--text); background: rgba(255,255,255,.035); border-color: var(--line); }
.button-ghost:hover { border-color: var(--line-strong); background: rgba(255,255,255,.06); }
.button.full { width: 100%; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 26px; margin-top: 38px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.hero-meta strong { color: var(--text); font-size: 18px; margin-right: 5px; }
.mission-card { position: relative; min-height: 560px; border: 1px solid rgba(102, 189, 255, .2); border-radius: 34px; padding: 22px; background: linear-gradient(145deg, rgba(9, 21, 42, .82), rgba(9, 14, 31, .58)); box-shadow: var(--shadow), inset 0 1px rgba(255,255,255,.04); overflow: hidden; }
.mission-card::before { content: ""; position: absolute; inset: 0; background: repeating-radial-gradient(circle at 55% 42%, transparent 0 35px, rgba(94,228,255,.035) 36px 37px); opacity: .6; }
.mission-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 0 48%, rgba(94,228,255,.035) 49%, transparent 50% 100%); background-size: 26px 26px; pointer-events: none; }
.mission-topline { position: relative; z-index: 2; display: flex; justify-content: space-between; color: #8ea5c5; font-size: 10px; letter-spacing: .18em; font-weight: 800; }
.signal { color: var(--gold); }
.map-orbit { position: relative; height: 330px; display: grid; place-items: center; }
.orbit { position: absolute; border: 1px solid rgba(94,228,255,.16); border-radius: 50%; animation: spin 22s linear infinite; }
.orbit::after { content: ""; position: absolute; width: 7px; height: 7px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 18px var(--cyan); top: 14%; left: 14%; }
.orbit-a { width: 270px; height: 270px; }
.orbit-b { width: 205px; height: 205px; border-style: dashed; animation-direction: reverse; animation-duration: 28s; }
.map-core { width: 124px; height: 124px; border-radius: 50%; display: grid; place-items: center; color: var(--gold); font-size: 42px; font-weight: 800; border: 1px solid rgba(231,193,119,.48); background: radial-gradient(circle, rgba(231,193,119,.08), rgba(7,17,32,.88) 68%); box-shadow: 0 0 55px rgba(94,228,255,.08), inset 0 0 30px rgba(231,193,119,.04); }
.coordinate { position: absolute; font: 700 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; color: rgba(152,169,196,.6); }
.c1 { top: 76px; left: 30px; }.c2 { right: 24px; bottom: 72px; }
.mission-info { position: relative; z-index: 2; border-top: 1px solid var(--line); padding-top: 20px; }
.mission-info .label { margin: 0 0 8px; color: #8499b7; font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.mission-info h2 { margin: 0 0 20px; font-size: 24px; letter-spacing: -.03em; }
.progress { height: 4px; background: rgba(255,255,255,.06); border-radius: 999px; overflow: hidden; }.progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--blue), var(--cyan)); box-shadow: 0 0 16px rgba(94,228,255,.35); }
.mission-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 18px; }.mission-stats span { display: grid; gap: 4px; }.mission-stats small { color: #748aa9; font-size: 9px; letter-spacing: .16em; }.mission-stats strong { font-size: 13px; }
.section-block { padding: 92px 0; border-top: 1px solid var(--line); }
.section-heading { max-width: 700px; margin-bottom: 34px; }.section-heading.compact { margin-bottom: 42px; }.section-heading h2 { margin: 12px 0 12px; font-size: clamp(34px, 5vw, 58px); letter-spacing: -.045em; }.section-heading p { color: var(--muted); font-size: 17px; line-height: 1.7; }
.category-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }.glass-card { position: relative; min-height: 260px; padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.025); overflow: hidden; }.glass-card::after { content: ""; position: absolute; width: 180px; height: 180px; border-radius: 50%; top: -90px; right: -70px; background: rgba(94,228,255,.08); filter: blur(20px); }.glass-card.accent-card::after { background: rgba(173,114,255,.1); }.card-index { color: var(--gold); font: 700 11px/1 ui-monospace, monospace; letter-spacing: .16em; }.glass-card h3 { margin: 54px 0 10px; font-size: 28px; letter-spacing: -.03em; }.glass-card p { color: var(--muted); line-height: 1.7; }.text-link { display: inline-flex; gap: 10px; margin-top: 12px; color: var(--cyan); font-weight: 750; text-decoration: none; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }.feature-grid article { border-top: 1px solid var(--line-strong); padding: 24px 8px 0 0; }.feature-number { color: var(--gold); font: 700 10px/1 ui-monospace, monospace; letter-spacing: .14em; }.feature-grid h3 { margin: 20px 0 8px; font-size: 21px; }.feature-grid p { color: var(--muted); line-height: 1.7; font-size: 15px; }
.auth-shell { min-height: 680px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 86px; align-items: center; padding: 70px 0; }.auth-intro h1 { font-size: clamp(52px, 6vw, 82px); }.security-note { display: flex; gap: 15px; margin-top: 34px; padding: 18px 20px; border: 1px solid var(--line); background: rgba(255,255,255,.025); border-radius: 16px; color: var(--muted); font-size: 13px; line-height: 1.55; }.security-note p { margin: 0; }.security-note strong { color: var(--text); }.security-icon { color: var(--cyan); font-size: 20px; }
.auth-card, .registration-panel { border: 1px solid rgba(120,176,255,.2); background: linear-gradient(145deg, rgba(12,27,51,.88), rgba(7,14,29,.86)); border-radius: 30px; padding: 34px; box-shadow: var(--shadow); }.panel-kicker { color: var(--gold); font-size: 10px; letter-spacing: .18em; font-weight: 800; }.panel-heading h2 { margin: 8px 0 28px; font-size: 30px; letter-spacing: -.035em; }.form-stack { display: grid; gap: 20px; }.choice-fieldset { border: 0; padding: 0; margin: 0; }.choice-fieldset legend { color: #b8c7dc; font-size: 13px; font-weight: 700; margin-bottom: 9px; }.segmented-control { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; padding: 6px; border: 1px solid var(--line); border-radius: 16px; background: rgba(3,8,18,.55); }.segmented-control label { cursor: pointer; }.segmented-control input { position: absolute; opacity: 0; pointer-events: none; }.segmented-control span { min-height: 46px; display: flex; align-items: center; justify-content: center; border-radius: 11px; padding: 10px; color: var(--muted); font-size: 13px; font-weight: 750; text-align: center; transition: .18s ease; }.segmented-control input:checked + span { color: var(--text); background: linear-gradient(130deg, rgba(80,139,255,.22), rgba(94,228,255,.10)); box-shadow: inset 0 0 0 1px rgba(94,228,255,.22); }.segmented-control.large span { min-height: 74px; display: grid; place-content: center; gap: 4px; }.segmented-control.large strong { font-size: 14px; }.segmented-control.large small { color: #8ba0be; font-weight: 550; font-size: 11px; }.segmented-control.large input:checked + span small { color: #abc4df; }
.field { display: grid; gap: 8px; }.field > span:first-child { color: #c0cee1; font-size: 13px; font-weight: 700; }.field em { color: #7f91aa; font-style: normal; font-weight: 550; }.field input, .field select { width: 100%; min-height: 50px; border: 1px solid var(--line); border-radius: 13px; color: var(--text); background: rgba(3,8,18,.56); padding: 0 15px; outline: none; transition: .2s ease; }.field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #9eb3ce 50%), linear-gradient(135deg, #9eb3ce 50%, transparent 50%); background-position: calc(100% - 18px) 21px, calc(100% - 13px) 21px; background-size: 5px 5px; background-repeat: no-repeat; }.field input:focus, .field select:focus { border-color: rgba(94,228,255,.6); box-shadow: 0 0 0 4px rgba(94,228,255,.07); }.field input::placeholder { color: #536783; }.field small { color: #7186a4; font-size: 11px; line-height: 1.5; }.password-wrap { position: relative; display: block; }.password-wrap input { padding-right: 86px; }.icon-button { position: absolute; right: 8px; top: 8px; height: 34px; border: 0; border-radius: 9px; padding: 0 9px; color: #9eb5d2; background: rgba(255,255,255,.05); cursor: pointer; font-size: 11px; font-weight: 700; }.form-row { display: flex; align-items: center; gap: 14px; }.spread { justify-content: space-between; }.subtle-link, .form-foot a { color: var(--cyan); text-decoration: none; }.beta-chip { color: var(--gold); border: 1px solid rgba(231,193,119,.24); border-radius: 999px; padding: 5px 8px; font-size: 9px; letter-spacing: .14em; font-weight: 800; }.form-foot { color: var(--muted); text-align: center; font-size: 13px; margin: 22px 0 0; }
.registration-shell { padding: 64px 0 80px; }.registration-heading { max-width: 760px; margin-bottom: 46px; }.registration-heading h1 { font-size: clamp(54px, 7vw, 88px); }.registration-panel { padding: 18px 34px 34px; }.form-section { padding: 30px 0; border-bottom: 1px solid var(--line); }.form-section:last-child { border-bottom: 0; padding-bottom: 0; }.form-section-title { display: flex; gap: 16px; margin-bottom: 24px; }.form-section-title > span { color: var(--gold); font: 750 11px/1 ui-monospace, monospace; padding-top: 7px; }.form-section-title h2 { margin: 0 0 5px; font-size: 22px; }.form-section-title p { margin: 0; color: var(--muted); font-size: 13px; }.personnel-code { margin-top: 18px; }.personnel-code small strong { color: var(--gold); }.two-cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }.email-explainer { display: flex; gap: 14px; margin: 18px 0; padding: 16px; border: 1px solid rgba(94,228,255,.15); border-radius: 15px; background: rgba(94,228,255,.035); }.info-icon { flex: 0 0 auto; width: 24px; height: 24px; border: 1px solid rgba(94,228,255,.36); color: var(--cyan); border-radius: 50%; display: grid; place-items: center; font: 800 12px/1 ui-monospace, monospace; }.email-explainer strong { font-size: 13px; }.email-explainer p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }.checkbox-line { display: flex; align-items: flex-start; gap: 10px; color: #a9b9cf; font-size: 12px; line-height: 1.55; cursor: pointer; }.checkbox-line input { accent-color: #69e7ff; margin-top: 2px; }.compact-field { width: 220px; }.players-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 20px; }.player-card { border: 1px solid var(--line); border-radius: 18px; padding: 18px; background: rgba(255,255,255,.02); }.player-heading { display: flex; justify-content: space-between; padding-bottom: 14px; margin-bottom: 16px; border-bottom: 1px solid var(--line); color: #91a7c5; font: 750 10px/1 ui-monospace, monospace; letter-spacing: .12em; }.player-state { color: var(--cyan); }.player-fields { display: grid; gap: 12px; }.rules-line { margin-bottom: 18px; }.microcopy { margin: 10px 0 0; color: #70839f; text-align: center; font-size: 11px; }.notice { margin: 12px 0 8px; border-radius: 15px; padding: 16px 18px; font-size: 13px; line-height: 1.6; }.notice p { margin: 4px 0 0; }.notice ul { margin: 8px 0 0 20px; padding: 0; }.success-notice { border: 1px solid rgba(111,255,193,.22); background: rgba(111,255,193,.055); color: #c9ffe9; }.error-notice { border: 1px solid rgba(255,127,154,.25); background: rgba(255,127,154,.055); color: #ffd2dc; }.recovery-explainer { margin-top: 0; }
.site-footer { max-width: var(--max); margin: 0 auto; padding: 28px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 24px; color: #788ca8; font-size: 12px; }.site-footer p { margin: 0; }.site-footer .muted { color: #526782; }
.beta-toast { position: fixed; left: 50%; bottom: 26px; transform: translate(-50%, 20px); opacity: 0; z-index: 50; width: min(560px, calc(100% - 30px)); padding: 15px 18px; border: 1px solid rgba(94,228,255,.35); border-radius: 14px; color: #dffbff; background: rgba(8,21,40,.96); box-shadow: var(--shadow); transition: .25s ease; font-size: 13px; text-align: center; }.beta-toast.show { transform: translate(-50%, 0); opacity: 1; }
.reveal { opacity: 1; transform: none; }.js .reveal { opacity: 0; transform: translateY(14px); transition: .65s ease; }.js .reveal.visible { opacity: 1; transform: none; }.js .delay-1 { transition-delay: .12s; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: 0.01ms !important; } .js .reveal { opacity: 1; transform: none; } }
@media (max-width: 900px) {
  .site-header { padding: 22px 20px; }
  .site-main { padding: 20px 20px 60px; }
  .hero, .auth-shell { grid-template-columns: 1fr; gap: 42px; min-height: auto; }
  .hero { padding-top: 48px; }.mission-card { max-width: 620px; width: 100%; justify-self: center; }
  .category-grid, .feature-grid { grid-template-columns: 1fr; }
  .section-block { padding: 70px 0; }
  .auth-shell { padding: 48px 0; }.auth-card { max-width: 650px; width: 100%; }
  .players-grid { grid-template-columns: 1fr; }
  .site-footer { padding: 24px 20px; }
}
@media (max-width: 620px) {
  .site-header { align-items: flex-start; }.brand-copy { display: none; }.site-nav { gap: 3px; }.site-nav a { padding: 9px 10px; font-size: 12px; }.site-nav .nav-cta { padding-inline: 12px; }
  .hero { padding: 36px 0 60px; }.hero h1, .registration-heading h1, .auth-intro h1 { font-size: 52px; }.hero-lead, .registration-heading p, .auth-intro > p { font-size: 16px; }.hero-actions { display: grid; }.hero-actions .button { width: 100%; }.hero-meta { gap: 14px 20px; }
  .mission-card { min-height: 500px; border-radius: 24px; }.map-orbit { height: 300px; }.orbit-a { width: 235px; height: 235px; }.orbit-b { width: 175px; height: 175px; }
  .glass-card { padding: 26px; }.glass-card h3 { margin-top: 42px; }
  .auth-card, .registration-panel { padding: 24px 18px; border-radius: 22px; }.segmented-control, .segmented-control.large { grid-template-columns: 1fr; }.two-cols { grid-template-columns: 1fr; }.compact-field { width: 100%; }
  .form-section-title { gap: 10px; }.site-footer { display: grid; }.mission-stats { grid-template-columns: 1fr 1fr; }
}

.recovery-links { display: flex; align-items: center; gap: 14px 18px; flex-wrap: wrap; }
.recovery-links .beta-chip { margin-left: auto; }
.duplicate-explainer { margin-top: 4px; margin-bottom: 20px; border-color: rgba(111,255,193,.18); background: rgba(111,255,193,.035); }
.duplicate-explainer .info-icon { border-color: rgba(111,255,193,.35); color: var(--success); }
@media (max-width: 620px) { .recovery-links { align-items: flex-start; flex-direction: column; } .recovery-links .beta-chip { margin-left: 0; } }

.segmented-control.compact span { min-height: 40px; padding: 8px 10px; font-size: 12px; }
.member-type-field { margin-bottom: 2px; }
.recovery-student-options { margin-top: 2px; }
.recovery-class-field[hidden], .recovery-student-options[hidden], .member-type-field[hidden], .class-field[hidden] { display: none !important; }

/* Ajustements après retour utilisateur — aperçu bêta */
.brand-copy strong,
.brand-copy small {
  color: var(--text);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.brand-copy small { line-height: 1; }
.site-nav .nav-cta {
  color: #b8c7dc;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}
.site-nav .nav-cta:hover {
  color: var(--text);
  background: rgba(255,255,255,.04);
  border-color: var(--line);
}
.site-nav .nav-cta.active {
  color: #06101e;
  background: linear-gradient(120deg, var(--cyan), #96f3ff);
  border-color: transparent;
  box-shadow: 0 8px 30px rgba(94,228,255,.12);
}
.player-card { transition: opacity .2s ease, filter .2s ease, border-color .2s ease, background .2s ease; }
.player-card.is-disabled {
  opacity: .38;
  filter: grayscale(.45);
  background: rgba(255,255,255,.01);
  border-color: rgba(132,153,185,.10);
}
.player-card.is-disabled .player-state { color: #788aa2; }
.player-card.is-disabled input,
.player-card.is-disabled select,
.player-card.is-disabled button { cursor: not-allowed; }

/* Retours 2 — accueil épuré, portrait de Belleyme et formulaire adaptatif */
.home-hero { padding-bottom: 72px; }
.brand-mark { overflow: visible; }
.brand-mark span { font-size: 22px; line-height: 1; text-shadow: 0 0 18px rgba(231,193,119,.22); }
.brand-mark::before { animation: spin 16s linear infinite; }
.brand-mark::after { border-style: solid; opacity: .7; }

.mission-card.is-open { border-color: rgba(111,255,193,.28); box-shadow: var(--shadow), 0 0 45px rgba(111,255,193,.045), inset 0 1px rgba(255,255,255,.04); }
.mission-card.is-open .signal { color: var(--success); }
.mission-card.is-open .map-core { border-color: rgba(111,255,193,.48); box-shadow: 0 0 55px rgba(111,255,193,.08), inset 0 0 30px rgba(231,193,119,.04); }
.mission-card.is-open .progress span { background: linear-gradient(90deg, var(--blue), var(--success)); }

.belleyme-portrait { position: relative; z-index: 2; display: flex; align-items: center; gap: 12px; margin-top: 18px; padding: 11px 13px; border: 1px solid rgba(231,193,119,.16); border-radius: 15px; background: linear-gradient(100deg, rgba(231,193,119,.045), rgba(255,255,255,.018)); }
.belleyme-portrait img { width: 48px; height: 56px; object-fit: cover; border-radius: 10px; filter: grayscale(1) sepia(.18) contrast(1.04); opacity: .88; box-shadow: 0 0 0 1px rgba(231,193,119,.18), 0 8px 24px rgba(0,0,0,.22); }
.belleyme-portrait div { display: grid; gap: 3px; }
.belleyme-portrait strong { font-size: 12px; letter-spacing: .02em; color: #e8edf6; }
.belleyme-portrait small { font-size: 10px; color: #8194af; }

.personnel-only[hidden],
.function-field[hidden],
.recovery-function-field[hidden] { display: none !important; }

@media (max-width: 620px) {
  .home-hero { padding-bottom: 48px; }
  .belleyme-portrait { margin-top: 14px; }
  .belleyme-portrait img { width: 44px; height: 52px; }
}


/* Retours 3 — navigation active, identité, orbites et inscription */
.site-nav a.active,
.site-nav .nav-cta.active {
  color: #06101e;
  background: linear-gradient(120deg, var(--cyan), #96f3ff);
  border-color: transparent;
  box-shadow: 0 8px 30px rgba(94,228,255,.14);
}
.site-nav a.active:hover,
.site-nav .nav-cta.active:hover {
  color: #06101e;
  background: linear-gradient(120deg, #8aeeff, #c5f9ff);
  border-color: transparent;
}

.brand { gap: 14px; }
.brand-mark {
  width: 50px;
  height: 50px;
  border-color: rgba(94,228,255,.46);
  background: radial-gradient(circle at 50% 50%, rgba(94,228,255,.08), rgba(5,12,25,.4) 68%);
  box-shadow: inset 0 0 22px rgba(94,228,255,.08), 0 0 30px rgba(94,228,255,.10);
}
.brand-mark::before { inset: 4px; border-style: solid; border-color: rgba(231,193,119,.22); animation: none; }
.brand-mark::after { inset: -5px; border-style: dashed; border-color: rgba(94,228,255,.18); animation: spin 22s linear infinite; }
.brain-lines {
  width: 78%;
  height: 78%;
  fill: none;
  stroke: rgba(94,228,255,.62);
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 7px rgba(94,228,255,.16));
}
.brand-question {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  color: var(--gold);
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
  text-shadow: 0 0 12px rgba(231,193,119,.32);
}
.brand-copy { gap: 2px; }
.brand-copy strong,
.brand-copy small {
  font-size: 16px;
  letter-spacing: .115em;
}
.brand-copy small { font-size: 15px; }

.map-orbit { overflow: visible; }
.orbit {
  transform-origin: 50% 50%;
  border-color: rgba(94,228,255,.18);
}
.orbit::after {
  width: 9px;
  height: 9px;
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
  border: 1px solid rgba(224,250,255,.75);
  background: radial-gradient(circle at 35% 30%, #e8fcff 0 20%, var(--cyan) 25% 55%, #3988ff 100%);
  box-shadow: 0 0 6px rgba(94,228,255,.85), 0 0 18px rgba(94,228,255,.58);
}
.orbit-b { border-style: solid; border-color: rgba(231,193,119,.15); }
.orbit-b::after {
  width: 7px;
  height: 7px;
  top: -4px;
  background: radial-gradient(circle at 35% 30%, #fff7dd 0 20%, var(--gold) 30% 60%, #9a6b2d 100%);
  border-color: rgba(255,244,211,.72);
  box-shadow: 0 0 7px rgba(231,193,119,.85), 0 0 18px rgba(231,193,119,.44);
}
.orbit-c {
  width: 146px;
  height: 146px;
  border-color: rgba(173,114,255,.18);
  animation-duration: 16s;
}
.orbit-c::after {
  width: 6px;
  height: 6px;
  top: -3px;
  background: radial-gradient(circle at 35% 30%, #f5eaff 0 20%, var(--violet) 32% 62%, #7549bd 100%);
  border-color: rgba(242,228,255,.7);
  box-shadow: 0 0 6px rgba(173,114,255,.9), 0 0 16px rgba(173,114,255,.48);
}
.brain-core { position: relative; overflow: hidden; }
.brain-core .brain-lines { width: 70%; height: 70%; stroke: rgba(94,228,255,.52); }
.brain-core .brand-question { width: 24px; height: 24px; font-size: 21px; }

.belleyme-hologram {
  position: absolute;
  right: 2px;
  bottom: 2px;
  z-index: 1;
  width: 142px;
  pointer-events: none;
  opacity: .78;
}
.hologram-frame {
  position: relative;
  width: 116px;
  height: 142px;
  margin-left: auto;
  border: 1px solid rgba(94,228,255,.18);
  border-radius: 10px 10px 26px 10px;
  overflow: hidden;
  background: rgba(7,18,34,.3);
  box-shadow: inset 0 0 30px rgba(94,228,255,.04), 0 0 24px rgba(94,228,255,.05);
  -webkit-mask-image: linear-gradient(to bottom, #000 0 78%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0 78%, transparent 100%);
}
.hologram-frame::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: repeating-linear-gradient(to bottom, rgba(94,228,255,.08) 0 1px, transparent 1px 4px);
  mix-blend-mode: screen;
}
.hologram-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  background: linear-gradient(90deg, transparent 0 45%, rgba(94,228,255,.08) 49%, transparent 53% 100%);
}
.hologram-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: grayscale(1) sepia(1) saturate(3.4) hue-rotate(135deg) brightness(1.18) contrast(1.18);
  opacity: .45;
  mix-blend-mode: screen;
}
.hologram-caption {
  margin-top: -14px;
  display: grid;
  justify-items: end;
  gap: 3px;
  position: relative;
  z-index: 4;
  text-align: right;
  text-shadow: 0 0 10px rgba(5,9,21,.9);
}
.hologram-caption span { color: rgba(94,228,255,.72); font: 800 8px/1 ui-monospace, monospace; letter-spacing: .18em; }
.hologram-caption strong { color: rgba(225,242,255,.82); font-size: 9px; letter-spacing: .08em; }

.compact-explainer { align-items: center; }
.compact-explainer p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.compact-explainer p strong { color: #d9e7f7; }
.email-notification-choice { margin-bottom: 12px; }
.password-row { margin-top: 10px; }

/* L'ancien petit portrait est volontairement neutralisé si une version en cache le conserve. */
.belleyme-portrait { display: none !important; }
.coordinate { display: none !important; }

@media (max-width: 620px) {
  .brand-mark { width: 44px; height: 44px; }
  .orbit-c { width: 126px; height: 126px; }
  .belleyme-hologram { width: 102px; right: -2px; bottom: 8px; opacity: .62; }
  .hologram-frame { width: 86px; height: 108px; }
  .hologram-caption strong { font-size: 7px; }
  .hologram-caption span { font-size: 7px; }
}


/* Retours 4 — édition annuelle + profils d'inscription */
.home-kickers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}
.edition-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 10px;
  border: 1px solid rgba(231,193,119,.24);
  border-radius: 999px;
  background: rgba(231,193,119,.045);
  color: var(--gold);
  font: 800 10px/1 ui-monospace, monospace;
  letter-spacing: .14em;
  white-space: nowrap;
}
.member-type-field .segmented-control.compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.member-type-field .segmented-control.compact span {
  min-height: 46px;
  padding-inline: 7px;
}
.password-row { margin-top: 24px; }

@media (max-width: 760px) {
  .member-type-field .segmented-control.compact { grid-template-columns: 1fr; }
}


/* Retours 5 — logo tête/cerveau, orbites précises, mobile et compte à rebours */
.brand-copy strong,
.brand-copy small {
  font-size: 18px;
  letter-spacing: .085em;
}
.brand-copy small { font-size: 17px; }

.brand-mark {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(94,228,255,.075), rgba(173,114,255,.045));
  border-color: rgba(94,228,255,.32);
  transform: rotate(-2deg);
}
.brand-mark::before {
  inset: 5px;
  border-radius: 14px;
  border-color: rgba(231,193,119,.16);
}
.brand-mark::after {
  inset: -4px;
  border-radius: 21px;
  border-style: solid;
  border-color: rgba(94,228,255,.10);
  animation: none;
}
.mind-logo { width: 82%; height: 82%; overflow: visible; }
.mind-head,
.mind-detail {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.mind-head { stroke: rgba(226,244,255,.88); stroke-width: 1.9; filter: drop-shadow(0 0 6px rgba(94,228,255,.22)); }
.mind-detail { stroke: rgba(94,228,255,.74); stroke-width: 1.45; }
.mind-node { fill: var(--gold); stroke: rgba(255,247,222,.75); stroke-width: .55; filter: drop-shadow(0 0 3px rgba(231,193,119,.55)); }

/* Toutes les orbites ont exactement le même centre. */
.map-orbit { position: relative; }
.orbit { top: 50%; left: 50%; }
.orbit-a { width: 270px; height: 270px; margin: -135px 0 0 -135px; }
.orbit-b { width: 205px; height: 205px; margin: -102.5px 0 0 -102.5px; }
.orbit-c { width: 146px; height: 146px; margin: -73px 0 0 -73px; }
.orbit::after { top: -5px; left: 50%; transform: translateX(-50%); }
.orbit-b::after { top: -4px; }
.orbit-c::after { top: -3px; }
.mind-core { position: relative; z-index: 2; overflow: visible; }
.mind-core .mind-logo { width: 72%; height: 72%; }
.mission-card.is-open .mind-head { stroke: rgba(226,255,243,.90); }
.mission-card.is-open .mind-detail { stroke: rgba(111,255,193,.75); }

/* Le portrait de Pierre de Belleyme est retiré pour l'instant : on réintégrera
   éventuellement le logo du collège ou un visuel retravaillé plus tard. */
.belleyme-hologram,
.belleyme-portrait { display: none !important; }

.progress span { transition: width .7s ease; }
.mission-info h2 { max-width: 420px; }

@media (max-width: 620px) {
  .hero h1,
  .registration-heading h1,
  .auth-intro h1 {
    font-size: clamp(42px, 13.2vw, 52px);
    line-height: 1.01;
    letter-spacing: -.018em;
    overflow-wrap: normal;
    word-break: normal;
  }
  .hero h1 span,
  .registration-heading h1 span { letter-spacing: -.012em; }

  .orbit-a { width: 235px; height: 235px; margin: -117.5px 0 0 -117.5px; }
  .orbit-b { width: 175px; height: 175px; margin: -87.5px 0 0 -87.5px; }
  .orbit-c { width: 126px; height: 126px; margin: -63px 0 0 -63px; }
  .mission-topline { gap: 12px; line-height: 1.35; }
  .mission-topline > span:first-child { max-width: 62%; }
  .mission-info h2 { font-size: 21px; line-height: 1.18; }
}


/* Retours 6 — logo choisi, vraie progression et typographie mobile */
.brand-mark {
  width: 58px;
  height: 58px;
  padding: 0;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(94,228,255,.30);
  background: #06101f;
  transform: none;
  box-shadow: 0 0 28px rgba(94,228,255,.12);
}
.brand-mark::before,
.brand-mark::after { display: none !important; }
.brand-logo-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: inherit;
}

.map-core.mind-core {
  width: 152px;
  height: 152px;
  border: 0;
  border-radius: 34px;
  padding: 0;
  overflow: hidden;
  background: #06101f;
  box-shadow: 0 0 40px rgba(94,228,255,.13), 0 0 0 1px rgba(94,228,255,.15);
}
.mission-logo-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: inherit;
}
.mission-card.is-open .map-core { border: 0; box-shadow: 0 0 42px rgba(111,255,193,.10), 0 0 0 1px rgba(111,255,193,.20); }

/* Les points sont centrés exactement sur le trait de leur orbite. */
.orbit-a { width: 286px; height: 286px; margin: -143px 0 0 -143px; }
.orbit-b { width: 222px; height: 222px; margin: -111px 0 0 -111px; }
.orbit-c { width: 172px; height: 172px; margin: -86px 0 0 -86px; }
.orbit::after { top: -4.5px; }
.orbit-b::after { top: -3.5px; }
.orbit-c::after { top: -3px; }

.outline-word { display: inline-block; white-space: nowrap; }
.progress { height: 6px; }
.progress span { min-width: 0; }

@media (max-width: 620px) {
  .brand-mark { width: 52px; height: 52px; border-radius: 16px; }
  .brand-copy { display: none; }

  .hero h1,
  .registration-heading h1,
  .auth-intro h1 {
    font-size: clamp(40px, 12.5vw, 48px);
    line-height: 1.03;
    letter-spacing: -.012em;
  }
  .hero h1 .outline-word,
  .registration-heading h1 .outline-word {
    font-size: .82em;
    letter-spacing: .01em;
    -webkit-text-stroke-width: .8px;
  }

  .map-core.mind-core { width: 118px; height: 118px; border-radius: 27px; }
  .orbit-a { width: 238px; height: 238px; margin: -119px 0 0 -119px; }
  .orbit-b { width: 184px; height: 184px; margin: -92px 0 0 -92px; }
  .orbit-c { width: 142px; height: 142px; margin: -71px 0 0 -71px; }
}


/* Retours 7 corrigé — UNIQUE changement visuel : logo rond. */
.brand-mark { border-radius: 50% !important; }
.brand-logo-image { border-radius: 50% !important; }
.map-core.mind-core { border-radius: 50% !important; }
.mission-logo-image { border-radius: 50% !important; }


/* Retours 8 corrigé — logo réellement circulaire et intégré aux orbites. */
.brand-mark {
  border-radius: 50% !important;
  overflow: hidden !important;
  background: transparent !important;
}
.brand-logo-image {
  border-radius: 50% !important;
  object-fit: cover !important;
}
.map-core.mind-core {
  width: 148px !important;
  height: 148px !important;
  padding: 8px !important;
  border-radius: 50% !important;
  overflow: visible !important;
  background: radial-gradient(circle, rgba(94,228,255,.085), rgba(5,13,27,.025) 64%, transparent 72%) !important;
  box-shadow: none !important;
}
.map-core.mind-core::before {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  border: 1px solid rgba(94,228,255,.22);
  box-shadow: 0 0 30px rgba(94,228,255,.13), inset 0 0 24px rgba(94,228,255,.055);
  pointer-events: none;
}
.mission-logo-image {
  position: relative;
  z-index: 2;
  width: 116px !important;
  height: 116px !important;
  margin: auto;
  border-radius: 50% !important;
  object-fit: cover !important;
  box-shadow: 0 0 26px rgba(94,228,255,.16);
}
.mission-info h2 { max-width: 390px; }
@media (max-width: 620px) {
  .map-core.mind-core { width: 124px !important; height: 124px !important; padding: 7px !important; }
  .mission-logo-image { width: 96px !important; height: 96px !important; }
}


/* Retours 9 — tête/cerveau transparente directement intégrée aux orbites. */
.map-core.mind-core {
  width: 160px !important;
  height: 160px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  box-shadow: none !important;
}
.map-core.mind-core::before,
.map-core.mind-core::after { display: none !important; }
.mission-neural-head {
  width: 154px;
  height: 154px;
  display: block;
  overflow: visible;
  filter: drop-shadow(0 0 16px rgba(94,228,255,.28));
}
.neural-head-outline,
.neural-neck {
  stroke: url(#headStroke);
  stroke-width: 3.2;
}
.brain-line {
  stroke: rgba(89,228,255,.95);
  stroke-width: 2.45;
}
.brain-line.faint {
  stroke: rgba(119,165,255,.58);
  stroke-width: 1.8;
}
.neural-tail {
  stroke: rgba(91,217,255,.72);
  stroke-width: 2.2;
}
.neural-nodes circle {
  fill: #eafcff;
  stroke: #5ee4ff;
  stroke-width: 1.6;
}
.mission-card.is-open .mission-neural-head {
  filter: drop-shadow(0 0 18px rgba(111,255,193,.30));
}
@media (max-width: 620px) {
  .map-core.mind-core { width: 132px !important; height: 132px !important; }
  .mission-neural-head { width: 128px; height: 128px; }
}


/* Retours 10 — vrai visuel tête + cerveau transparent au centre. */
.map-core.mind-core {
  width: 176px !important;
  height: 176px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  box-shadow: none !important;
  display: grid !important;
  place-items: center !important;
}
.map-core.mind-core::before,
.map-core.mind-core::after { display: none !important; }
.mission-neural-head { display: none !important; }
.mission-neural-head-image {
  width: 158px;
  height: 158px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 0 10px rgba(94,228,255,.30)) drop-shadow(0 0 22px rgba(94,228,255,.14));
}
@media (max-width: 620px) {
  .map-core.mind-core { width: 144px !important; height: 144px !important; }
  .mission-neural-head-image { width: 132px; height: 132px; }
}
