/* ═══════════════════════════════════════════════════════════════════════
   FRACTILIS — SHARED DESIGN SYSTEM v10.0 · ÉDITION COMPLÈTE
   Foza Studio · Cotonou, Bénin · Avril 2026
   AUTORITÉ ABSOLUE SUR TOUS LES STYLES — 700+ LIGNES
   
   Inspiré de : RSI/Star Citizen · Bungie/Destiny 2 · LegendKeeper
                Obsidian.md · Campfire · Articy:Draft · Milanote
                HitRecord · ArtStation · World Anvil
══════════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;700;800&family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600;700&display=swap');

/* ═══ SECTION 1 — TOKENS (RSI scale + Bungie dark + Magikpunk) ═══════ */
:root {
  /* Palette Principale */
  --bg:#03030B; --bg2:#08081A; --bg3:#0D0D22; --bg4:#121230; --bg5:#171740;
  --accent:#6C5CE7; --a2:#A29BFE; --a3:rgba(108,92,231,.12); --a4:rgba(108,92,231,.06);
  --cry:#00D4CF; --cry2:rgba(0,212,207,.12); --cry3:rgba(0,212,207,.06);
  --pink:#E84393; --pink2:rgba(232,67,147,.1);
  --gold:#F0C040; --gold2:rgba(240,192,64,.1);
  --tx:#E8E8F0; --tx2:#A0A0B8; --tx3:#606078; --tx4:#303050;
  --ok:#3DD68C; --warn:#F97316; --err:#E84393;
  --br:rgba(108,92,231,.2); --br2:rgba(108,92,231,.4); --br3:rgba(255,255,255,.06); --br4:rgba(108,92,231,.1);
  --r:8px; --r2:12px; --r3:4px; --r4:16px; --r5:24px;

  /* Typography (RSI scale system) */
  --font-display:'Syne',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-mono:'JetBrains Mono','Courier New',monospace;
  --fs-xs:.625rem; --fs-sm:.75rem; --fs-base:.875rem; --fs-md:1rem;
  --fs-lg:1.125rem; --fs-xl:1.25rem; --fs-2xl:1.5rem; --fs-3xl:2rem;

  /* Shadows (Bungie depth system) */
  --shadow-sm:0 1px 3px rgba(0,0,0,.4);
  --shadow-md:0 4px 16px rgba(0,0,0,.5),0 0 0 1px rgba(108,92,231,.08);
  --shadow-lg:0 8px 32px rgba(0,0,0,.6),0 0 0 1px rgba(108,92,231,.12);
  --shadow-glow:0 0 24px rgba(108,92,231,.35),0 0 48px rgba(108,92,231,.15);
  --shadow-cry:0 0 20px rgba(0,212,207,.3);
  --shadow-gold:0 0 20px rgba(240,192,64,.3);

  /* Glassmorphisme (Bungie nav) */
  --glass-bg:rgba(8,8,26,.88);
  --glass-border:rgba(108,92,231,.18);
  --glass-blur:blur(20px);

  /* Clip-paths (Bungie cut-corner / RSI angular) */
  --clip-btn:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
  --clip-card:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);
  --clip-tr:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);
  --clip-br:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%);
  --clip-both:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);
  --clip-badge:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px));
}

/* ═══ SECTION 2 — RESET & BASE ═══════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--bg);color:var(--tx);
  font-family:var(--font-body);overflow-x:hidden;max-width:100vw;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
img,video,svg,iframe{max-width:100%;height:auto;display:block;}
a{text-decoration:none;color:inherit;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
ul,ol{list-style:none;}
input,textarea,select{font-family:inherit;font-size:inherit;}

/* ═══ SECTION 3 — TEXTURE FOND (Magikpunk ambient) ══════════════════ */
body::after{
  content:'';position:fixed;top:0;left:0;width:100%;height:100%;
  background:radial-gradient(circle at 20% 80%,rgba(108,92,231,.03) 0%,transparent 50%),
            radial-gradient(circle at 80% 20%,rgba(0,212,207,.02) 0%,transparent 50%),
            radial-gradient(circle at 40% 40%,rgba(232,67,147,.01) 0%,transparent 50%);
  pointer-events:none;z-index:-1;
}

/* ═══ SECTION 4 — DEBUG PANEL (masqué par défaut — CRITIQUE) ════════ */
#__debug{
  position:fixed;left:10px;bottom:10px;z-index:99999;
  background:rgba(3,3,11,.92);border:1px solid rgba(108,92,231,.35);
  border-radius:8px;padding:8px 10px;color:#A0A0B8;
  font:11px/1.4 'JetBrains Mono',monospace;max-width:260px;
  display:none;max-height:40vh;overflow-y:auto;
}

/* ═══ SECTION 5 — NAV (Glassmorphique Bungie/LegendKeeper) ══════════ */
.nav{
  position:sticky;top:0;z-index:300;
  background:var(--glass-bg);
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border-bottom:1px solid var(--glass-border);
  height:60px;display:flex;align-items:center;justify-content:space-between;
  padding:0 5%;transition:background .3s,border-color .3s,box-shadow .3s;
}
.nav.scrolled{background:rgba(3,3,11,.97);border-bottom-color:rgba(108,92,231,.3);box-shadow:0 4px 24px rgba(0,0,0,.5);}
.nav-inner{display:flex;align-items:center;gap:28px;height:100%;flex:1;max-width:1280px;margin:0 auto;}
.nav-logo{font-family:var(--font-display);font-size:15px;font-weight:800;
  letter-spacing:.15em;text-transform:uppercase;color:var(--tx);flex-shrink:0;}
.nav-logo .dot{color:var(--accent);}
.nav-links{display:flex;list-style:none;gap:2px;flex:1;margin:0;padding:0;}
.nav-links a{
  font-family:var(--font-display);font-size:10px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tx3);
  padding:6px 12px;border-radius:4px;transition:color .2s,background .2s;
  white-space:nowrap;position:relative;
}
.nav-links a::after{content:'';position:absolute;bottom:-1px;left:12px;right:12px;
  height:1px;background:var(--accent);transform:scaleX(0);transition:transform .2s ease;}
.nav-links a:hover,.nav-links a.cur{color:var(--tx);background:rgba(108,92,231,.08);}
.nav-links a.cur::after,.nav-links a:hover::after{transform:scaleX(1);}

/* Mobile hamburger removed — keep current desktop nav visible on all breakpoints */
.hamburger{display:none;}

/* ═══ SECTION 6 — AUTH WRAP (nav component) ═════════════════════════ */
.auth-wrap{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.auth-trigger{
  display:flex;align-items:center;gap:8px;padding:4px 8px;
  border-radius:var(--r);cursor:pointer;transition:background .2s;
  border:none;background:transparent;color:var(--tx2);
}
.auth-trigger:hover{background:rgba(108,92,231,.1);}
.auth-avatar{
  width:28px;height:28px;border-radius:50%;background:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:12px;font-weight:800;color:#fff;
}
.auth-menu{
  position:absolute;top:52px;right:16px;background:var(--bg2);
  border:1px solid var(--br);border-radius:var(--r2);padding:8px;
  min-width:180px;z-index:500;display:none;
  box-shadow:var(--shadow-lg);
}
.auth-menu.open{display:block;animation:fadeIn .2s ease;}
.auth-menu-item{
  padding:8px 12px;font-size:13px;color:var(--tx2);cursor:pointer;
  border-radius:4px;transition:background .2s;
}
.auth-menu-item:hover{background:rgba(108,92,231,.1);color:var(--tx);}

/* ═══ SECTION 7 — BOUTONS (RSI animated + Bungie brutaliste) ════════ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-display);font-weight:700;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
  border:none;cursor:pointer;transition:all .2s;padding:12px 24px;border-radius:4px;
  white-space:nowrap;
}
.btn-primary{
  background:var(--accent);color:#fff;
  clip-path:var(--clip-br);box-shadow:0 0 0 1px rgba(108,92,231,.4);
}
.btn-primary:hover{
  background:var(--a2);transform:translateY(-2px);
  box-shadow:var(--shadow-glow);clip-path:var(--clip-br);
}
.btn-ghost{
  background:transparent;color:var(--a2);
  border:1px solid rgba(108,92,231,.35);clip-path:var(--clip-tr);
}
.btn-ghost:hover{background:rgba(108,92,231,.1);border-color:var(--accent);clip-path:var(--clip-tr);}
.btn-gold{background:rgba(240,192,64,.12);color:var(--gold);border:1px solid rgba(240,192,64,.3);}
.btn-gold:hover{background:rgba(240,192,64,.2);box-shadow:var(--shadow-gold);}
.btn-cry{background:rgba(0,212,207,.1);color:var(--cry);border:1px solid rgba(0,212,207,.3);}
.btn-cry:hover{background:rgba(0,212,207,.18);box-shadow:var(--shadow-cry);}
.btn-wa{background:#25D366;color:#fff;border-radius:8px;clip-path:none;}
.btn-wa:hover{background:#1ebe5d;transform:translateY(-1px);}
.btn-sm{padding:7px 14px;font-size:10px;}
.btn-lg{padding:16px 32px;font-size:13px;}

/* ═══ SECTION 8 — CARDS (ArtStation hover + Bungie depth) ═══════════ */
.card{
  background:var(--bg2);border:1px solid var(--br3);border-radius:var(--r2);
  overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s;
  position:relative;
}
.card::before{content:'';position:absolute;inset:0;opacity:0;
  background:linear-gradient(135deg,rgba(108,92,231,.06),transparent);
  transition:opacity .25s;pointer-events:none;}
.card:hover{transform:translateY(-4px);border-color:var(--br);box-shadow:var(--shadow-lg);}
.card:hover::before{opacity:1;}
.card-angular{clip-path:var(--clip-both);border-radius:0;}

/* Entry card (Forge) */
.entry-card{
  background:var(--bg2);border:1px solid var(--br3);border-radius:var(--r);
  padding:14px;transition:all .2s;cursor:pointer;
}
.entry-card:hover{border-color:var(--br);transform:translateY(-2px);}
.entry-card.list-mode{display:flex;align-items:center;gap:12px;padding:10px 14px;}
.ec-type{font-size:10px;font-family:var(--font-mono);color:var(--tx3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;}
.ec-name{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--tx);}
.ec-desc{font-size:12px;color:var(--tx2);margin-top:4px;line-height:1.5;}

/* ═══ SECTION 9 — STAT HUD (Bungie/Destiny 2 readout) ══════════════ */
.stat-hud{display:flex;gap:32px;flex-wrap:wrap;padding:20px;background:var(--bg2);border-top:2px solid var(--accent);}
.stat-block{display:flex;flex-direction:column;gap:4px;align-items:center;min-width:80px;}
.stat-value{font-family:var(--font-display);font-size:clamp(24px,5vw,40px);font-weight:800;color:var(--tx);line-height:1;}
.stat-value.accent{color:var(--accent);}
.stat-value.gold{color:var(--gold);}
.stat-value.cry{color:var(--cry);}
.stat-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--tx3);}
.stat-sep{color:var(--tx4);font-size:24px;align-self:flex-end;line-height:1.2;}

/* ═══ SECTION 10 — TERMINAL TEXT (RSI in-universe data) ════════════ */
.terminal-block{
  background:rgba(0,0,0,.4);border:1px solid rgba(0,212,207,.15);
  border-left:3px solid var(--cry);border-radius:4px;
  padding:16px 20px;
  font-family:var(--font-mono);font-size:11px;color:var(--cry);
  line-height:1.8;letter-spacing:.05em;position:relative;overflow:hidden;
}
.terminal-block::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--cry),transparent);
  animation:termScan 3s linear infinite;}
@keyframes termScan{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.terminal-ping{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cry);margin-right:8px;animation:blink 1.2s step-end infinite;}
.terminal-sep{color:var(--tx4);}
.terminal-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.term-cursor{display:inline-block;width:7px;height:13px;background:var(--cry);animation:blink 1s step-end infinite;vertical-align:text-bottom;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

/* ═══ SECTION 11 — LEGEND KEEPER MAP LAYOUT ════════════════════════ */
.nexus-map-layout{display:grid;grid-template-columns:1fr 304px;height:500px;border:1px solid var(--br);border-radius:var(--r2);overflow:hidden;}
.nexus-map-canvas-wrap{position:relative;overflow:hidden;background:var(--bg);}
.nexus-map-sidebar{background:var(--bg2);border-left:1px solid var(--br3);display:flex;flex-direction:column;}
.nexus-map-sidebar-head{padding:12px 14px;border-bottom:1px solid var(--br3);flex-shrink:0;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tx2);}
.nexus-map-tabs{display:flex;border-bottom:1px solid var(--br3);flex-shrink:0;}
.nexus-map-tab{flex:1;padding:8px;text-align:center;cursor:pointer;font-size:10px;font-family:var(--font-display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);border-bottom:2px solid transparent;transition:.2s;}
.nexus-map-tab.active{color:var(--a2);border-bottom-color:var(--accent);}
.nexus-map-toolbar{position:absolute;bottom:12px;left:12px;display:flex;gap:6px;z-index:10;}
@media(max-width:768px){.nexus-map-layout{grid-template-columns:1fr;height:auto;}.nexus-map-sidebar{border-left:none;border-top:1px solid var(--br);}}

/* ═══ SECTION 12 — HITRECORD CHALLENGE CARDS ═══════════════════════ */
.challenge-card{
  background:var(--bg2);border:1px solid var(--br3);border-radius:var(--r2);
  overflow:hidden;display:flex;flex-direction:column;
  transition:transform .2s,border-color .2s;
}
.challenge-card:hover{transform:translateY(-3px);border-color:var(--br);}
.challenge-card-pole{height:3px;}
.challenge-card-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:8px;}
.challenge-card-type{font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--tx3);}
.challenge-card-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--tx);line-height:1.3;}
.challenge-card-desc{font-size:13px;color:var(--tx2);line-height:1.6;flex:1;}
.challenge-card-footer{padding:10px 16px;border-top:1px solid var(--br3);display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--tx3);}
.challenge-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:3px;font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
.cb-disponible{background:rgba(61,214,140,.1);color:var(--ok);border:1px solid rgba(61,214,140,.3);}
.cb-encours{background:rgba(240,192,64,.1);color:var(--gold);border:1px solid rgba(240,192,64,.3);}
.cb-termine{background:rgba(108,92,231,.1);color:var(--a2);border:1px solid rgba(108,92,231,.3);}

/* ═══ SECTION 13 — ARTSTATION HALL OF FAME CARDS ═══════════════════ */
.hof-card{
  background:var(--bg2);border:1px solid var(--br3);border-radius:var(--r2);
  overflow:hidden;transition:transform .2s,border-color .2s;
}
.hof-card:hover{transform:translateY(-3px);border-color:var(--br);}
.hof-pole-bar{height:3px;}
.hof-card-body{padding:16px;}
.hof-avatar{
  width:44px;height:44px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:14px;font-weight:800;flex-shrink:0;
}
.hof-stats-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:4px;
  padding:10px 0;border-top:1px solid var(--br3);border-bottom:1px solid var(--br3);
  margin:10px 0;text-align:center;
}
.hof-stat-val{font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--tx);}
.hof-stat-lbl{font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--tx3);}
.hof-stat-sep{border-left:1px solid var(--br3);}
.hof-rang-section{margin:6px 0;}
.hof-rang-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;font-family:var(--font-display);letter-spacing:.5px;}

/* ═══ SECTION 14 — RANG BADGES (7 niveaux) ═════════════════════════ */
.rang-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:3px;font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;clip-path:var(--clip-badge);}
.rang-badge:hover{clip-path:var(--clip-badge);}
.rang-initie{background:rgba(96,96,120,.2);color:#8A8AAA;border:1px solid rgba(96,96,120,.3);}
.rang-eveille{background:rgba(0,212,207,.12);color:var(--cry);border:1px solid rgba(0,212,207,.3);}
.rang-forgeron-novice{background:rgba(240,192,64,.12);color:var(--gold);border:1px solid rgba(240,192,64,.3);}
.rang-forgeron{background:rgba(108,92,231,.15);color:var(--a2);border:1px solid rgba(108,92,231,.4);}
.rang-maitre-forgeron{background:rgba(162,155,254,.12);color:#D0CCFF;border:1px solid rgba(162,155,254,.4);}
.rang-architecte-lie{background:rgba(232,67,147,.12);color:var(--pink);border:1px solid rgba(232,67,147,.3);}
.rang-architecte{background:rgba(240,192,64,.18);color:var(--gold);border:2px solid rgba(240,192,64,.5);box-shadow:var(--shadow-gold);}

/* ═══ SECTION 15 — MILANOTE PRODUCTION BOARD ═══════════════════════ */
.prod-board{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.prod-col{background:var(--bg2);border:1px solid var(--br3);border-radius:var(--r);padding:12px;min-height:200px;display:flex;flex-direction:column;}
.prod-col-head{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tx2);padding-top:8px;padding-bottom:10px;margin-bottom:10px;border-top:3px solid;border-bottom:1px solid var(--br3);}
.prod-col-body{flex:1;display:flex;flex-direction:column;gap:6px;min-height:80px;}
.prod-card{background:var(--bg3);border:1px solid var(--br3);border-radius:6px;padding:10px 12px;cursor:grab;transition:.15s;font-size:13px;color:var(--tx2);line-height:1.5;}
.prod-card:hover{border-color:var(--br);transform:translateX(2px);color:var(--tx);}
.prod-card:active{cursor:grabbing;}
.prod-card-over{border:2px dashed var(--accent);background:var(--a4);}
@media(max-width:768px){.prod-board{grid-template-columns:1fr;}}

/* ═══ SECTION 16 — TIMELINE (Campfire + World Anvil) ═══════════════ */
.tl-container{position:relative;padding:0 0 0 32px;}
.tl-rail{position:absolute;left:5px;top:0;bottom:0;width:2px;background:var(--br3);}
.tl-item{position:relative;padding:0 0 28px 20px;}
.tl-dot{position:absolute;left:-26px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--bg3);border:2px solid var(--br);transition:.3s;z-index:1;}
.tl-item.tl-done .tl-dot{background:var(--ok);border-color:var(--ok);}
.tl-item.tl-active .tl-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px rgba(108,92,231,.5);animation:pulseGlow 2s infinite;}
.tl-card{background:var(--bg2);border:1px solid var(--br3);border-radius:var(--r2);padding:14px 18px;transition:border-color .2s;}
.tl-card:hover{border-color:var(--br);}
.tl-phase{font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--tx3);margin-bottom:4px;}
.tl-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--tx);margin-bottom:6px;}
.tl-desc{font-size:13px;color:var(--tx2);line-height:1.5;margin-bottom:8px;}
.tl-status{font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
.tl-status-done{color:var(--ok);}
.tl-status-active{color:var(--accent);}

/* ═══ SECTION 17 — GALLERY CAROUSEL ════════════════════════════════ */
.gallery-wrap{overflow:hidden;}
.gallery-track{display:flex;gap:14px;width:max-content;animation:galScroll 24s linear infinite;padding:8px 0;}
.gallery-track:hover{animation-play-state:paused;}
@keyframes galScroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 7px))}}
.gc{flex-shrink:0;width:220px;height:128px;border-radius:10px;padding:16px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;cursor:default;transition:transform .25s,box-shadow .25s;}
.gc:hover{transform:translateY(-4px);}
.gc-icn{font-size:24px;opacity:.2;align-self:flex-end;}
.gc-pole{font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.9);}
.gc-jobs{font-size:11px;color:rgba(255,255,255,.5);margin-top:3px;line-height:1.4;}
@media(max-width:480px){.gc{width:180px;height:110px;padding:13px;}}

/* ═══ SECTION 18 — DC QUOTE (Milanote card feel) ═══════════════════ */
.dc-quote-wrap{max-width:680px;margin:0 auto;padding:48px 32px;border:1px solid rgba(108,92,231,.2);border-radius:var(--r4);background:linear-gradient(135deg,rgba(108,92,231,.06),rgba(0,212,207,.04));text-align:center;position:relative;}
.dc-quote-mark{font-size:72px;line-height:.8;color:var(--accent);opacity:.25;font-family:var(--font-display);font-weight:800;margin-bottom:12px;}
.dc-quote-text{font-size:clamp(15px,2.5vw,22px);line-height:1.7;color:var(--tx);font-style:italic;margin:0 0 20px;}
.dc-quote-author{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);}

/* ═══ SECTION 19 — REVEAL ANIMATIONS (scroll-triggered) ════════════ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.reveal.visible{opacity:1;transform:none;}
.reveal-left{opacity:0;transform:translateX(-24px);transition:opacity .6s ease,transform .6s ease;}
.reveal-left.visible{opacity:1;transform:none;}
.reveal-scale{opacity:0;transform:scale(.95);transition:opacity .6s ease,transform .6s ease;}
.reveal-scale.visible{opacity:1;transform:scale(1);}

/* ═══ SECTION 20 — GLITCH EFFECT (RSI/Bungie) ══════════════════════ */
@keyframes glitch{0%,100%{clip-path:inset(0 0 100% 0);transform:translate(0)}10%{clip-path:inset(10% 0 85% 0);transform:translate(-2px,1px)}20%{clip-path:inset(40% 0 50% 0);transform:translate(2px,-1px)}30%{clip-path:inset(70% 0 20% 0);transform:translate(-1px,2px)}40%{clip-path:inset(90% 0 5% 0);transform:translate(1px,-1px)}50%{clip-path:inset(0 0 100% 0);transform:translate(0)}}
.glitch-active::after{content:attr(data-text);position:absolute;left:0;top:0;color:var(--cry);animation:glitch .3s steps(1) forwards;pointer-events:none;}

/* ═══ SECTION 21 — PUBLICATION CARDS (progression.html) ════════════ */
.pub-card{border:1px solid var(--br3);border-radius:var(--r2);overflow:hidden;background:var(--bg2);transition:border-color .2s;}
.pub-card:hover{border-color:var(--br);}
.pub-pole-bar{height:3px;}
.pub-body{padding:16px 20px;}
.pub-meta{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap;font-family:var(--font-mono);font-size:10px;color:var(--tx3);letter-spacing:.08em;text-transform:uppercase;}
.pub-pole-tag{padding:2px 8px;border-radius:3px;font-weight:700;}
.pub-title{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--tx);margin-bottom:8px;line-height:1.3;}
.pub-text{font-size:14px;color:var(--tx2);line-height:1.7;margin-bottom:12px;}
.pub-img{width:100%;max-height:340px;object-fit:cover;border-radius:var(--r);display:block;margin-bottom:12px;}
.pub-video{width:100%;aspect-ratio:16/9;border:none;border-radius:var(--r);display:block;margin-bottom:12px;}
.pub-comment-bar{padding:10px 20px;border-top:1px solid var(--br3);cursor:pointer;font-family:var(--font-mono);font-size:11px;color:var(--tx3);transition:color .2s;display:flex;align-items:center;gap:6px;letter-spacing:.05em;}
.pub-comment-bar:hover{color:var(--tx);}
.pub-comments-section{padding:12px 20px;border-top:1px solid var(--br4);display:none;}
.pub-filter{padding:6px 16px;border-radius:20px;border:1px solid var(--br3);background:var(--bg2);color:var(--tx2);font-size:11px;font-family:var(--font-display);font-weight:700;letter-spacing:.06em;cursor:pointer;transition:.2s;}
.pub-filter:hover,.pub-filter.active{border-color:var(--accent);color:var(--a2);background:rgba(108,92,231,.1);}

/* ═══ SECTION 22 — QUIZ STYLES ═════════════════════════════════════ */
.qstep-bar{display:flex;gap:6px;margin-bottom:24px;justify-content:center;}
.qstep-dot{width:24px;height:3px;border-radius:2px;background:var(--bg3);transition:.3s;}
.qstep-dot.done{background:var(--ok);}
.qstep-dot.active{background:var(--accent);box-shadow:0 0 8px rgba(108,92,231,.5);}
.qscreen{display:none;}
.qscreen.active{display:block;animation:fadeIn .25s ease;}
.qnum{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--tx3);margin-bottom:8px;}
.qtxt{font-size:clamp(15px,3vw,19px);font-weight:600;color:var(--tx);line-height:1.5;margin-bottom:20px;}
.qopts{display:flex;flex-direction:column;gap:8px;}
.qopt{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--br3);border-radius:var(--r2);cursor:pointer;transition:all .2s;background:var(--bg2);font-size:14px;color:var(--tx2);}
.qopt:hover{border-color:var(--br);color:var(--tx);transform:translateX(4px);}
.qopt.selected{border-color:var(--accent);background:var(--a3);color:var(--tx);}
.qopt-ic{color:var(--accent);font-size:8px;margin-top:5px;flex-shrink:0;}
.qres{display:none;padding:28px;border:1px solid var(--br);border-radius:var(--r2);background:var(--bg2);}
.qres.visible{display:block;animation:fadeIn .4s ease;}
.qr-role{font-family:var(--font-display);font-size:clamp(22px,5vw,32px);font-weight:800;color:var(--tx);margin-bottom:12px;}
.qr-desc{font-size:14px;color:var(--tx2);line-height:1.7;margin-bottom:20px;}

/* ═══ SECTION 23 — AUTH MODAL (centré sur l'écran actif) ═══════════ */
.auth-overlay{position:fixed;inset:0;background:rgba(3,3,11,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:800;display:none;align-items:center;justify-content:center;padding:20px;}
.auth-overlay.open{display:flex;}
.auth-modal{background:var(--bg2);border:1px solid var(--br);border-radius:var(--r4);padding:32px;width:100%;max-width:400px;max-height:90vh;overflow-y:auto;animation:slideUp .25s ease;}
.auth-tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:1px solid var(--br3);}
.auth-tab{flex:1;padding:10px;text-align:center;cursor:pointer;font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);border-bottom:2px solid transparent;transition:.2s;}
.auth-tab.active{color:var(--a2);border-bottom-color:var(--accent);}

/* ═══ SECTION 24 — FORM ELEMENTS ═══════════════════════════════════ */
.form-group{margin-bottom:20px;}
.form-label{display:block;font-family:var(--font-display);font-size:12px;color:var(--tx2);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;}
.form-input,.form-textarea,.form-select{width:100%;padding:12px;background:var(--bg3);border:1px solid var(--br);color:var(--tx);font-family:var(--font-body);border-radius:var(--r);transition:border-color .25s;}
.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 10px var(--a3);}

/* ═══ SECTION 25 — MODALS ══════════════════════════════════════════ */
.modal-overlay{position:fixed;inset:0;background:rgba(3,3,11,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:800;display:none;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--bg2);border:1px solid var(--br);border-radius:var(--r4);padding:32px;width:100%;max-width:500px;max-height:85vh;overflow-y:auto;animation:slideUp .25s ease;clip-path:var(--clip-card);}
.modal-box:hover{clip-path:var(--clip-card);}
.modal-h{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--tx);margin-bottom:16px;}
.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:24px;}

/* ═══ SECTION 26 — FORGE SPECIFIC LAYOUT ═══════════════════════════ */
.forge-app{display:flex;height:100vh;overflow:hidden;background:var(--bg);}
.forge-sidebar{width:220px;flex-shrink:0;background:var(--bg2);border-right:1px solid var(--br3);display:flex;flex-direction:column;overflow:hidden;transition:transform .3s;}
.forge-topbar{height:52px;flex-shrink:0;background:var(--bg2);border-bottom:1px solid var(--br3);display:flex;align-items:center;gap:12px;padding:0 16px;}
.forge-content{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.forge-main{flex:1;overflow:hidden;position:relative;}
.forge-view{display:none;flex-direction:column;height:100%;overflow:hidden;}
.forge-view.active{display:flex;}
.forge-vb{flex:1;overflow-y:auto;padding:16px 18px;min-height:0;}
@media(max-width:768px){.forge-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:200;transform:translateX(-100%);}.forge-sidebar.open{transform:translateX(0);}}

/* ═══ SECTION 27 — OBSIDIAN GRAPH VIEW ═════════════════════════════ */
.graph-wrap{height:100%;position:relative;background:var(--bg);}
.graph-canvas{width:100%;height:100%;cursor:grab;}
.graph-canvas:active{cursor:grabbing;}
.graph-toolbar{position:absolute;top:12px;right:12px;display:flex;gap:6px;}
.graph-legend{position:absolute;bottom:12px;left:12px;background:rgba(8,8,26,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--br3);border-radius:var(--r);padding:10px 12px;font-size:11px;color:var(--tx2);}
.graph-legend-item{display:flex;align-items:center;gap:6px;margin-bottom:4px;}
.graph-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

/* ═══ SECTION 28 — TABS ════════════════════════════════════════════ */
.tabs{display:flex;border-bottom:1px solid var(--br);}
.tab-btn{padding:12px 24px;background:none;border:none;color:var(--tx2);cursor:pointer;font-family:var(--font-display);font-size:14px;text-transform:uppercase;letter-spacing:1px;transition:color .25s;}
.tab-btn.active{color:var(--accent);border-bottom:2px solid var(--accent);}
.tab-content{padding:20px 0;}

/* ═══ SECTION 29 — BADGES & CHIPS ══════════════════════════════════ */
.badge{display:inline-block;padding:4px 8px;font-size:10px;font-family:var(--font-mono);text-transform:uppercase;border-radius:4px;}
.badge-primary{background:var(--accent);color:#fff;}
.badge-gold{background:var(--gold);color:#000;}
.badge-cry{background:var(--cry);color:#000;}
.badge-ok{background:var(--ok);color:#000;}
.badge-err{background:var(--err);color:#fff;}
.tag-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:11px;background:var(--bg3);color:var(--tx2);border:1px solid var(--br3);}
.tag-btn{padding:6px 12px;border-radius:20px;font-size:11px;background:var(--bg3);color:var(--tx2);border:1px solid var(--br3);cursor:pointer;transition:.2s;}
.tag-btn:hover,.tag-btn.active{border-color:var(--accent);color:var(--a2);background:var(--a3);}

/* ═══ SECTION 30 — LOADING & PROGRESS ══════════════════════════════ */
.loading{display:inline-block;width:20px;height:20px;border:2px solid var(--br);border-radius:50%;border-top-color:var(--accent);animation:spin 1s ease-in-out infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.progress-bar{width:100%;height:8px;background:var(--bg3);border-radius:4px;overflow:hidden;}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--cry));transition:width .5s ease;}
.ph-bar{width:100%;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden;}
.ph-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--cry));transition:width .8s cubic-bezier(.4,0,.2,1);}

/* ═══ SECTION 31 — UTILITIES ═══════════════════════════════════════ */
.text-center{text-align:center;}
.text-left{text-align:left;}
.text-right{text-align:right;}
.mb-1{margin-bottom:8px;}.mb-2{margin-bottom:16px;}.mb-3{margin-bottom:24px;}.mb-4{margin-bottom:32px;}
.mt-1{margin-top:8px;}.mt-2{margin-top:16px;}.mt-3{margin-top:24px;}.mt-4{margin-top:32px;}
.hidden{display:none!important;}
.flex{display:flex;}
.flex-center{display:flex;align-items:center;justify-content:center;}
.flex-between{display:flex;align-items:center;justify-content:space-between;}
.grid{display:grid;}
.relative{position:relative;}
.absolute{position:absolute;}
.fixed{position:fixed;}
.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;}
.empty-state{text-align:center;padding:48px 24px;color:var(--tx3);font-size:14px;}

/* ═══ SECTION 32 — SECTION LAYOUT ══════════════════════════════════ */
.sec{padding:80px 0;}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px;}
.sec-lbl{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;}
.sec-h{font-family:var(--font-display);font-size:clamp(28px,6vw,52px);font-weight:800;color:var(--tx);line-height:1.1;margin-bottom:16px;}
.sec-sub{font-size:clamp(15px,2vw,18px);color:var(--tx2);max-width:600px;line-height:1.7;}
.page-header{padding:100px 0 48px;text-align:center;}
.page-header .sec-head{font-size:clamp(28px,6vw,48px);margin-bottom:12px;}
.page-header .page-sub{color:var(--tx2);font-size:16px;}
@media(max-width:768px){.sec{padding:48px 0;}.wrap{padding:0 16px;}}

/* ═══ SECTION 33 — TOAST NOTIFICATIONS ═════════════════════════════ */
#toast{
  position:fixed;bottom:20px;right:20px;z-index:9999;
  background:var(--bg2);border:1px solid var(--br);border-radius:var(--r);
  padding:12px 18px;color:var(--tx);font-size:13px;
  box-shadow:var(--shadow-lg);transition:opacity .3s;pointer-events:none;
  max-width:320px;
}

/* ═══ SECTION 34 — ANIMATIONS ══════════════════════════════════════ */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes pulseGlow{0%,100%{box-shadow:0 0 8px rgba(108,92,231,.4)}50%{box-shadow:0 0 20px rgba(108,92,231,.8)}}
@keyframes crack{0%,100%{opacity:.3}50%{opacity:.8}}
@keyframes pageEnter{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes scanLine{from{transform:translateY(-100%)}to{transform:translateY(200%)}}

/* ═══ SECTION 35 — COLLAP CATEGORIES (HitRecord 3-steps) ══════════ */
.collab-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;}
.collab-card{padding:28px;border:1px solid var(--br3);border-radius:var(--r2);background:var(--bg2);position:relative;overflow:hidden;transition:transform .25s,border-color .25s;}
.collab-card:hover{transform:translateY(-4px);border-color:var(--br);}
.collab-num{font-family:var(--font-display);font-size:52px;font-weight:800;color:rgba(108,92,231,.1);position:absolute;top:12px;right:18px;line-height:1;user-select:none;}
.collab-title{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--tx);margin-bottom:8px;}
.collab-desc{font-size:14px;color:var(--tx2);line-height:1.6;}
@media(max-width:768px){.collab-grid{grid-template-columns:1fr;}}

/* ═══ SECTION 36 — MOBILE CRITICAL (360px priority) ════════════════ */
@media(max-width:480px){
  .nav{padding:0 16px;}
  .btn-primary,.btn-gold,.btn-cry{width:100%;text-align:center;}
  .stat-hud{gap:12px;padding:12px;}
  .stat-value{font-size:20px;}
  .challenge-card{padding:14px;}
  .pub-title{font-size:15px;}
  .dc-quote-wrap{padding:28px 18px;}
  .dc-quote-text{font-size:15px;}
  .tl-container{padding-left:24px;}
  .modal-box{padding:20px;}
  .auth-modal{padding:20px;}
  .sec-h{font-size:28px;}
  .hof-stats-row{grid-template-columns:1fr;gap:8px;}
}

/* ═══ SECTION 37 — TABLET (768px) ══════════════════════════════════ */
@media(min-width:481px) and (max-width:768px){
  .nav-inner{padding:0 16px;}
  .wrap{padding:0 16px;}
  .prod-board{grid-template-columns:1fr;}
  .nexus-map-layout{grid-template-columns:1fr;height:auto;}
  .nexus-map-sidebar{border-left:none;border-top:1px solid var(--br);display:none;}
  .forge-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:200;transform:translateX(-100%);}
  .forge-sidebar.open{transform:translateX(0);}
}

/* ═══ SECTION 38 — DESKTOP (1024px+) ═══════════════════════════════ */
@media(min-width:1024px){
  .wrap{max-width:1280px;}
  .sec{padding:100px 0;}
}

/* ═══ SECTION 39 — PRINT STYLES ════════════════════════════════════ */
@media print{
  .nav,.modal,.modal-overlay,#__debug,.auth-overlay,.toast{display:none!important;}
  body{background:white;color:black;}
  .card,.entry-card,.hof-card{border:1px solid #ccc;box-shadow:none;}
}

/* ═══ SECTION 40 — REDUCED MOTION ══════════════════════════════════ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}

/* ═══ SECTION 41 — CARDS GRID ══════════════════════════════════════ */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
@media(max-width:768px){.cards-grid{grid-template-columns:1fr;}}

/* ═══ SECTION 42 — SEARCH & INPUTS ═════════════════════════════════ */
.search-input{
  width:100%;padding:10px 16px;background:var(--bg3);
  border:1px solid var(--br);border-radius:var(--r);
  color:var(--tx);font-size:14px;transition:border-color .2s;
}
.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 10px var(--a3);}
.search-input::placeholder{color:var(--tx3);}

/* ═══ SECTION 43 — TOOLBAR BUTTONS ═════════════════════════════════ */
.tb-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 16px;font-size:12px;font-weight:600;
  border-radius:var(--r);transition:all .2s;cursor:pointer;
  border:1px solid transparent;
}
.tb-btn.primary{background:var(--accent);color:#fff;border-color:rgba(108,92,231,.4);}
.tb-btn.primary:hover{background:var(--a2);box-shadow:var(--shadow-glow);}
.tb-btn.ghost{background:transparent;color:var(--a2);border-color:rgba(108,92,231,.3);}
.tb-btn.ghost:hover{background:rgba(108,92,231,.1);border-color:var(--accent);}
.tb-btn.gold{background:rgba(240,192,64,.12);color:var(--gold);border-color:rgba(240,192,64,.3);}
.tb-btn.gold:hover{background:rgba(240,192,64,.2);box-shadow:var(--shadow-gold);}
.tb-btn.pk{background:rgba(232,67,147,.12);color:var(--pink);border-color:rgba(232,67,147,.3);}
.tb-btn.pk:hover{background:rgba(232,67,147,.2);}
.tb-btn.sm{padding:5px 10px;font-size:11px;}

/* ═══ SECTION 44 — VIEW HEADER (Forge views) ═══════════════════════ */
.vh{padding:12px 16px;border-bottom:1px solid var(--br3);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;}
.vh-info{display:flex;flex-direction:column;gap:2px;}
.vh-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--tx);}
.vh-sub{font-size:11px;color:var(--tx3);font-family:var(--font-mono);}

/* ═══ SECTION 45 — SIDEBAR ITEMS (Forge nav) ═══════════════════════ */
.sb-item{
  padding:10px 14px;font-size:12px;color:var(--tx2);cursor:pointer;
  transition:all .2s;display:flex;align-items:center;gap:8px;
  border-left:2px solid transparent;
}
.sb-item:hover{background:rgba(108,92,231,.08);color:var(--tx);}
.sb-item.active{background:var(--a3);color:var(--a2);border-left-color:var(--accent);}
.sb-sect{margin-bottom:4px;}
.sb-sect-title{
  padding:8px 14px;font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:.15em;color:var(--tx3);
  cursor:pointer;display:flex;align-items:center;gap:6px;
}
.sb-sect-title:hover{color:var(--tx);}
.sb-sect-items{overflow:hidden;transition:max-height .3s ease;}
.sb-sect-items.collapsed{max-height:0!important;}

/* ═══ SECTION 46 — AI CHAT MESSAGES ════════════════════════════════ */
.ai-msg{padding:12px 16px;border-radius:var(--r);margin-bottom:10px;max-width:85%;}
.ai-msg.user{background:var(--bg3);align-self:flex-end;color:var(--tx);}
.ai-msg.assistant{background:var(--a3);border:1px solid var(--br);color:var(--tx);}
.ai-msg.thinking{color:var(--tx3);font-style:italic;font-size:12px;}
.ai-messages{display:flex;flex-direction:column;gap:4px;}

/* ═══ SECTION 47 — TODO ITEMS ══════════════════════════════════════ */
.todo-item{
  display:flex;align-items:center;gap:10px;padding:8px 12px;
  background:var(--bg3);border-radius:var(--r);margin-bottom:6px;
  font-size:13px;color:var(--tx2);
}
.todo-item.done{opacity:.5;text-decoration:line-through;}
.todo-item input[type="checkbox"]{accent-color:var(--accent);width:16px;height:16px;}

/* ═══ SECTION 48 — WORD COUNT BAR ══════════════════════════════════ */
.wc-bar-wrap{padding:12px 16px;background:var(--bg3);border-radius:var(--r);margin-bottom:16px;}
#wcLabel{font-family:var(--font-mono);font-size:11px;color:var(--tx3);margin-bottom:6px;display:block;}
#wcBar{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;}
#wcBar::after{content:'';display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--cry));transition:width .5s ease;}

/* ═══ SECTION 49 — DC ADMIN PANEL ══════════════════════════════════ */
.dc-card{background:var(--bg2);border:1px solid var(--br3);border-radius:var(--r2);padding:20px;margin-bottom:16px;}
.dc-card-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--tx);margin-bottom:12px;}
.dc-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 16px;font-size:12px;font-weight:600;border-radius:var(--r);
  transition:all .2s;cursor:pointer;border:1px solid transparent;
  font-family:var(--font-display);letter-spacing:.05em;
}
.dc-btn{background:var(--accent);color:#fff;}
.dc-btn:hover{background:var(--a2);box-shadow:var(--shadow-glow);}
.dc-btn.ghost{background:transparent;color:var(--a2);border-color:rgba(108,92,231,.3);}
.dc-btn.ghost:hover{background:rgba(108,92,231,.1);border-color:var(--accent);}
.dc-btn.sm{padding:5px 10px;font-size:11px;}
.dc-input,.dc-textarea,.dc-select{
  width:100%;padding:10px 14px;background:var(--bg3);
  border:1px solid var(--br);border-radius:var(--r);
  color:var(--tx);font-size:13px;transition:border-color .2s;
}
.dc-input:focus,.dc-textarea:focus,.dc-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 10px var(--a3);}
.field-group{margin-bottom:16px;}
.field-group label{display:block;font-size:12px;color:var(--tx2);margin-bottom:6px;font-family:var(--font-mono);letter-spacing:.05em;}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;}
.dc-table{width:100%;border-collapse:collapse;font-size:13px;}
.dc-table th,.dc-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--br3);}
.dc-table th{font-family:var(--font-display);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--tx3);}
.dc-table tr:hover td{background:var(--bg3);}
.panel{display:none;}
.panel.active{display:block;}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--br3);}
.panel-title{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--tx);}
.panel-sub{font-size:13px;color:var(--tx2);margin-bottom:20px;}

/* ═══ SECTION 50 — HERO POSTER ELEMENTS ════════════════════════════ */
.poster-hero-bg{position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center;justify-content:center;}
.hero-svg{position:absolute;inset:0;width:100%;height:100%;z-index:-1;}
.hero-title-poster{font-family:var(--font-display);font-size:clamp(56px,15vw,128px);font-weight:800;letter-spacing:-.02em;line-height:.85;text-transform:uppercase;background:linear-gradient(135deg,#FFFFFF 0%,#C4BFFF 30%,#A29BFE 60%,#6C5CE7 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;animation:titleReveal 1.2s cubic-bezier(.16,1,.3,1) both;}
@keyframes titleReveal{from{opacity:0;transform:translateY(24px) skewY(2deg);letter-spacing:.2em}to{opacity:1;transform:translateY(0) skewY(0);letter-spacing:-.02em}}
.hero-terminal{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;}
.hero-stats-row{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:32px;}
.hero-stats-sep{color:var(--tx4);font-size:24px;line-height:1;}
@media(max-width:480px){.hero-terminal{font-size:9px;gap:8px;}.hero-stats-row{gap:16px;}.stat-value{font-size:24px;}}

/* ═══ DEBUG PANEL (masqué par défaut · Ctrl+Shift+D pour ouvrir) ═══ */
#__debug{display:none;position:fixed;bottom:0;left:0;right:0;max-height:40vh;
  overflow-y:auto;background:#0A0A14;border-top:2px solid var(--accent);
  font-family:var(--font-mono);font-size:11px;color:#A0A0B8;z-index:99999;
  padding:8px 12px;}

/* ═══ FIN DU DESIGN SYSTEM — 700+ LIGNES ═══════════════════════════ */

/* ═══════════════════════════════════════════════════════
   DESIGN SYSTEM NEXUS — Références Industry Intégrées
   RSI · Bungie · LegendKeeper · Obsidian · HitRecord
   ArtStation · Campfire · Milanote · Articy
═══════════════════════════════════════════════════════ */

/* ── DOCUMENTATION (corpus) ─────────────────────────── */
.corpus-card{background:var(--bg2);border:1px solid var(--br3,rgba(255,255,255,.06));
  border-radius:var(--r2);padding:16px;transition:border-color .2s;display:flex;flex-direction:column;gap:8px;}
.corpus-card:hover{border-color:var(--br);}
.corpus-card-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--tx);}
.corpus-card-desc{font-size:13px;color:var(--tx2);line-height:1.5;flex:1;}
.corpus-card-meta{display:flex;gap:8px;font-size:10px;color:var(--tx3);}

/* ── BOUTONS ACHAT ATTESTATION ─────────────────────── */
.purchase-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;
  border-radius:4px;font-family:var(--font-display);font-size:9px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;border:1px solid;clip-path:var(--clip-tr);}
.pb-vote{background:rgba(108,92,231,.15);color:var(--a2);border-color:rgba(108,92,231,.4);}
.pb-revshare{background:rgba(240,192,64,.15);color:var(--gold);border-color:rgba(240,192,64,.4);}
.pb-lore{background:rgba(0,212,207,.12);color:var(--cry);border-color:rgba(0,212,207,.3);}
.pb-early{background:rgba(232,67,147,.12);color:var(--pink);border-color:rgba(232,67,147,.3);}

/* ═══ GALERIE VISUELS ═══ */
.gallery-wrap {
  position: relative;
  max-width: 100%;
  margin: 40px 0;
  overflow: hidden;
}

.gallery-container {
  overflow: hidden;
  border-radius: var(--r2);
  background: var(--bg2);
  border: 1px solid var(--br3);
}

.gallery-track {
  display: flex;
  transition: transform 0.5s ease;
  width: 100%;
}

.gallery-item {
  flex: 0 0 100%;
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.gallery-item:hover img {
  transform: scale(1.05);
}

.gallery-item .caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(transparent, rgba(3,3,11,.9));
  padding: 20px;
  color: var(--tx);
  font-size: 14px;
  line-height: 1.6;
}

.gallery-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(3,3,11,.8);
  border: 1px solid var(--br);
  color: var(--tx);
  font-size: 24px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gallery-nav:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

.gallery-prev {
  left: 20px;
}

.gallery-next {
  right: 20px;
}

.gallery-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
}

.gallery-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--br3);
  cursor: pointer;
  transition: background 0.3s ease;
}

.gallery-dot.active {
  background: var(--accent);
}

@media (max-width: 768px) {
  .gallery-nav {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }

  .gallery-prev {
    left: 10px;
  }

  .gallery-next {
    right: 10px;
  }
}

/* ═══════════════════════════════════════════════════════
   DESIGN SYSTEM NEXUS — Références Industry Intégrées
   RSI · Bungie · LegendKeeper · Obsidian · HitRecord
   ArtStation · Campfire · Milanote · Articy
═══════════════════════════════════════════════════════ */

/* ── TOKENS MANQUANTS ───────────────────────────────── */
:root {
  --shadow-glow:0 0 24px rgba(108,92,231,.35),0 0 48px rgba(108,92,231,.15);
  --shadow-cry:0 0 20px rgba(0,212,207,.3);
  --shadow-gold:0 0 20px rgba(240,192,64,.3);
  --glass-bg:rgba(8,8,26,.88);
  --glass-border:rgba(108,92,231,.18);
  --glass-blur:blur(20px);
  --clip-tr:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);
  --clip-br:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%);
  --clip-both:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);
  --font-display:'Syne',sans-serif;
  --font-mono:'JetBrains Mono','Courier New',monospace;
}

/* ── RSI TERMINAL ───────────────────────────────────── */
.terminal-block{background:rgba(0,0,0,.4);border:1px solid rgba(0,212,207,.15);
  border-radius:4px;padding:12px 16px;font-family:var(--font-mono);
  font-size:11px;color:var(--cry);line-height:1.8;letter-spacing:.05em;}
.terminal-ping{color:var(--cry);opacity:.85;}
.terminal-sep{color:var(--tx4,#303050);}
.terminal-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.term-cursor{display:inline-block;width:7px;height:13px;background:var(--cry);
  animation:blink 1s step-end infinite;vertical-align:text-bottom;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

/* ── BUNGIE STAT HUD ────────────────────────────────── */
.stat-hud{display:flex;gap:32px;flex-wrap:wrap;}
.stat-block{display:flex;flex-direction:column;gap:4px;}
.stat-value{font-family:var(--font-display);font-size:clamp(24px,5vw,40px);
  font-weight:800;color:var(--tx);line-height:1;}
.stat-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--tx3);}
.stat-sep{color:var(--tx4,#303050);font-size:24px;align-self:flex-end;line-height:1.2;}

/* ── BUNGIE CLIP-PATH BOUTONS ───────────────────────── */
.btn-primary{clip-path:var(--clip-br);}
.btn-primary:hover{clip-path:var(--clip-br);}
.btn-ghost{clip-path:var(--clip-tr);}
.btn-ghost:hover{clip-path:var(--clip-tr);}
.card-angular{clip-path:var(--clip-both);border-radius:0;}

/* ── DC QUOTE Milanote card ─────────────────────────── */
.dc-quote-wrap{max-width:680px;margin:0 auto;padding:48px 32px;
  border:1px solid rgba(108,92,231,.2);border-radius:var(--r4,16px);
  background:linear-gradient(135deg,rgba(108,92,231,.06),rgba(0,212,207,.04));
  text-align:center;position:relative;}
.dc-quote-mark{font-size:72px;line-height:.8;color:var(--accent);opacity:.25;
  font-family:var(--font-display);font-weight:800;margin-bottom:12px;}
.dc-quote-text{font-size:clamp(15px,2.5vw,22px);line-height:1.7;color:var(--tx);
  font-style:italic;margin:0 0 20px;}
.dc-quote-author{font-family:var(--font-display);font-size:10px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--accent);}

/* ── HITRECORD CHALLENGE CARD ───────────────────────── */
.challenge-card{background:var(--bg2);border:1px solid var(--br3,rgba(255,255,255,.06));
  border-radius:var(--r2);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .2s,border-color .2s;}
.challenge-card:hover{transform:translateY(-3px);border-color:var(--br);}
.challenge-card-pole{height:3px;}
.challenge-card-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:8px;}
.challenge-card-type{font-family:var(--font-display);font-size:9px;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--tx3);}
.challenge-card-title{font-family:var(--font-display);font-size:15px;font-weight:700;
  color:var(--tx);line-height:1.3;}
.challenge-card-desc{font-size:13px;color:var(--tx2);line-height:1.6;flex:1;}
.challenge-card-footer{padding:10px 16px;border-top:1px solid var(--br3,rgba(255,255,255,.06));
  display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--tx3);}
.cb-disponible{background:rgba(61,214,140,.1);color:var(--ok);border:1px solid rgba(61,214,140,.3);
  display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:3px;
  font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
.cb-encours{background:rgba(240,192,64,.1);color:var(--gold);border:1px solid rgba(240,192,64,.3);
  display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:3px;
  font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
.cb-termine{background:rgba(108,92,231,.1);color:var(--a2);border:1px solid rgba(108,92,231,.3);
  display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:3px;
  font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}

/* ── ARTSTATION HOF CARD ────────────────────────────── */
.hof-card{background:var(--bg2);border:1px solid var(--br3,rgba(255,255,255,.06));
  border-radius:var(--r2);overflow:hidden;transition:transform .2s,border-color .2s;}
.hof-card:hover{transform:translateY(-3px);border-color:var(--br);}
.hof-pole-bar{height:3px;}
.hof-card-body{padding:16px;}
.hof-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-family:var(--font-display);font-size:14px;font-weight:800;flex-shrink:0;}
.hof-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;
  padding:10px 0;border-top:1px solid var(--br3,rgba(255,255,255,.06));
  border-bottom:1px solid var(--br3,rgba(255,255,255,.06));margin:10px 0;text-align:center;}
.hof-stat-val{font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--tx);}
.hof-stat-lbl{font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--tx3);}
.hof-stat-sep{border-left:1px solid var(--br3,rgba(255,255,255,.06));}

/* ── LEGENDKEEPER MAP ───────────────────────────────── */
.nexus-map-layout{display:grid;grid-template-columns:1fr 304px;height:100%;overflow:hidden;}
.nexus-map-canvas-wrap{position:relative;overflow:hidden;background:var(--bg);}
.nexus-map-sidebar{border-left:1px solid var(--br3,rgba(255,255,255,.06));
  overflow-y:auto;background:var(--bg2);display:flex;flex-direction:column;}
.nexus-map-sidebar-head{padding:12px 14px;border-bottom:1px solid var(--br3,rgba(255,255,255,.06));
  flex-shrink:0;font-family:var(--font-display);font-size:10px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tx2);}
.nexus-map-tabs{display:flex;border-bottom:1px solid var(--br3,rgba(255,255,255,.06));flex-shrink:0;}
.nexus-map-tab{flex:1;padding:8px;text-align:center;cursor:pointer;font-family:var(--font-display);
  font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--tx3);border-bottom:2px solid transparent;transition:.2s;}
.nexus-map-tab.active{color:var(--a2);border-bottom-color:var(--accent);}
.nexus-map-toolbar{position:absolute;bottom:12px;left:12px;display:flex;gap:6px;z-index:10;}
@media(max-width:768px){.nexus-map-layout{grid-template-columns:1fr;}.nexus-map-sidebar{display:none;}}

/* ── OBSIDIAN GRAPH ─────────────────────────────────── */
.graph-wrap{height:100%;position:relative;background:var(--bg);}
.graph-canvas{width:100%;height:100%;cursor:grab;display:block;}
.graph-canvas:active{cursor:grabbing;}
.graph-toolbar{position:absolute;top:12px;right:12px;display:flex;gap:6px;}
.graph-legend{position:absolute;bottom:12px;left:12px;background:rgba(8,8,26,.85);
  backdrop-filter:blur(8px);border:1px solid var(--br3,rgba(255,255,255,.06));
  border-radius:var(--r);padding:10px 12px;font-size:11px;color:var(--tx2);}
.graph-legend-item{display:flex;align-items:center;gap:6px;margin-bottom:4px;}
.graph-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

/* ── CAMPFIRE TIMELINE ──────────────────────────────── */
.tl-container{position:relative;padding:0 0 0 32px;}
.tl-rail{position:absolute;left:5px;top:0;bottom:0;width:2px;background:var(--br3,rgba(255,255,255,.06));}
.tl-item{position:relative;padding:0 0 28px 20px;}
.tl-dot{position:absolute;left:-26px;top:4px;width:12px;height:12px;border-radius:50%;
  background:var(--bg3);border:2px solid var(--br);transition:.3s;z-index:1;}
.tl-item.tl-done .tl-dot{background:var(--ok);border-color:var(--ok);}
.tl-item.tl-active .tl-dot{background:var(--accent);border-color:var(--accent);
  box-shadow:0 0 12px rgba(108,92,231,.5);animation:pulseGlow 2s infinite;}
.tl-card{background:var(--bg2);border:1px solid var(--br3,rgba(255,255,255,.06));
  border-radius:var(--r2);padding:14px 18px;transition:border-color .2s;}
.tl-card:hover{border-color:var(--br);}
.tl-phase{font-family:var(--font-display);font-size:9px;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--tx3);margin-bottom:4px;}
.tl-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--tx);margin-bottom:6px;}
.tl-desc{font-size:13px;color:var(--tx2);line-height:1.5;margin-bottom:8px;}
.tl-status{font-family:var(--font-display);font-size:9px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;}
.tl-status-done{color:var(--ok);}.tl-status-active{color:var(--accent);}

/* ── GALLERY CAROUSEL ───────────────────────────────── */
.gallery-wrap{overflow:hidden;}
.gallery-track{display:flex;gap:14px;width:max-content;
  animation:galScroll 24s linear infinite;padding:8px 0;}
.gallery-track:hover{animation-play-state:paused;}
@keyframes galScroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 7px))}}
.gc{flex-shrink:0;width:220px;height:128px;border-radius:10px;padding:16px;
  border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;
  justify-content:space-between;overflow:hidden;position:relative;cursor:default;
  transition:transform .25s,box-shadow .25s;}
.gc:hover{transform:translateY(-4px);}
.gc-icn{font-size:24px;opacity:.2;align-self:flex-end;}
.gc-pole{font-family:var(--font-display);font-size:9px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.9);}
.gc-jobs{font-size:11px;color:rgba(255,255,255,.5);margin-top:3px;line-height:1.4;}
@media(max-width:480px){.gc{width:180px;height:110px;padding:13px;}}

/* ── MILANOTE PROD BOARD ────────────────────────────── */
.prod-board{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.prod-col{background:var(--bg2);border:1px solid var(--br3,rgba(255,255,255,.06));
  border-radius:var(--r);padding:12px;min-height:200px;display:flex;flex-direction:column;}
.prod-col-head{font-family:var(--font-display);font-size:10px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tx2);
  padding-top:8px;padding-bottom:10px;margin-bottom:10px;
  border-top:3px solid;border-bottom:1px solid var(--br3,rgba(255,255,255,.06));}
.prod-col-body{flex:1;display:flex;flex-direction:column;gap:6px;min-height:80px;}
.prod-card{background:var(--bg3);border:1px solid var(--br3,rgba(255,255,255,.06));
  border-radius:6px;padding:10px 12px;cursor:grab;transition:.15s;
  font-size:13px;color:var(--tx2);line-height:1.5;}
.prod-card:hover{border-color:var(--br);transform:translateX(2px);color:var(--tx);}
.prod-card:active{cursor:grabbing;}
@media(max-width:768px){.prod-board{grid-template-columns:1fr;}}

/* ── FORGE LAYOUT ───────────────────────────────────── */
.forge-app{display:flex;height:100vh;overflow:hidden;background:var(--bg);}
.forge-sidebar{width:220px;flex-shrink:0;background:var(--bg2);
  border-right:1px solid var(--br3,rgba(255,255,255,.06));
  display:flex;flex-direction:column;overflow:hidden;transition:transform .3s;}
.forge-topbar{height:52px;flex-shrink:0;background:var(--bg2);
  border-bottom:1px solid var(--br3,rgba(255,255,255,.06));
  display:flex;align-items:center;gap:12px;padding:0 16px;}
.forge-content{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.forge-main{flex:1;overflow:hidden;position:relative;}
.forge-view{display:none;flex-direction:column;height:100%;overflow:hidden;}
.forge-view.active{display:flex;}
.forge-vb{flex:1;overflow-y:auto;padding:16px 18px;min-height:0;}
@media(max-width:768px){
  .forge-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:200;transform:translateX(-100%);}
  .forge-sidebar.open{transform:translateX(0);}
}

/* ── AUTH OVERLAY centré viewport ──────────────────── */
.auth-overlay{position:fixed;inset:0;background:rgba(3,3,11,.88);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  z-index:800;display:none;align-items:center;justify-content:center;padding:20px;}
.auth-overlay.open{display:flex;}
.auth-modal{background:var(--bg2);border:1px solid var(--br);border-radius:16px;
  padding:32px;width:100%;max-width:400px;max-height:90vh;overflow-y:auto;
  animation:slideUp .25s ease;}
.auth-tabs{display:flex;margin-bottom:24px;border-bottom:1px solid var(--br3,rgba(255,255,255,.06));}
.auth-tab{flex:1;padding:10px;text-align:center;cursor:pointer;
  font-family:var(--font-display);font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);
  border-bottom:2px solid transparent;transition:.2s;}
.auth-tab.active{color:var(--a2);border-bottom-color:var(--accent);}

/* ── PROGRESSION PUBLICATIONS ───────────────────────── */
.pub-card{border:1px solid var(--br3,rgba(255,255,255,.06));border-radius:var(--r2);
  overflow:hidden;background:var(--bg2);transition:border-color .2s;}
.pub-card:hover{border-color:var(--br);}
.pub-pole-bar{height:3px;}
.pub-body{padding:16px 20px;}
.pub-meta{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap;
  font-family:var(--font-mono);font-size:10px;color:var(--tx3);letter-spacing:.08em;text-transform:uppercase;}
.pub-title{font-family:var(--font-display);font-size:17px;font-weight:700;
  color:var(--tx);margin-bottom:8px;line-height:1.3;}
.pub-text{font-size:14px;color:var(--tx2);line-height:1.7;margin-bottom:12px;}
.pub-img{width:100%;max-height:340px;object-fit:cover;border-radius:var(--r);display:block;margin-bottom:12px;}
.pub-video{width:100%;aspect-ratio:16/9;border:none;border-radius:var(--r);display:block;margin-bottom:12px;}
.pub-comment-bar{padding:10px 20px;border-top:1px solid var(--br3,rgba(255,255,255,.06));
  cursor:pointer;font-family:var(--font-mono);font-size:11px;color:var(--tx3);
  transition:color .2s;display:flex;align-items:center;gap:6px;}
.pub-comment-bar:hover{color:var(--tx);}
.pub-comments-section{padding:12px 20px;border-top:1px solid rgba(255,255,255,.03);display:none;}
.pub-filter{padding:6px 16px;border-radius:20px;border:1px solid var(--br3,rgba(255,255,255,.06));
  background:var(--bg2);color:var(--tx2);font-size:11px;font-family:var(--font-display);
  font-weight:700;letter-spacing:.06em;cursor:pointer;transition:.2s;}
.pub-filter:hover,.pub-filter.active{border-color:var(--accent);color:var(--a2);
  background:rgba(108,92,231,.1);}

/* ── BOUTONS ACHAT ATTESTATION ─────────────────────── */
.purchase-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;
  border-radius:4px;font-family:var(--font-display);font-size:9px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;border:1px solid;clip-path:var(--clip-tr);}
.pb-vote{background:rgba(108,92,231,.15);color:var(--a2);border-color:rgba(108,92,231,.4);}
.pb-revshare{background:rgba(240,192,64,.15);color:var(--gold);border-color:rgba(240,192,64,.4);}
.pb-lore{background:rgba(0,212,207,.12);color:var(--cry);border-color:rgba(0,212,207,.3);}
.pb-early{background:rgba(232,67,147,.12);color:var(--pink);border-color:rgba(232,67,147,.3);}

/* ── ANIMATIONS MANQUANTES ──────────────────────────── */
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes pulseGlow{
  0%,100%{box-shadow:0 0 8px rgba(108,92,231,.4)}
  50%{box-shadow:0 0 20px rgba(108,92,231,.8)}}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.reveal.visible{opacity:1;transform:none;}

/* ── DEBUG PANEL (display:none toujours) ────────────── */
#__debug{display:none!important;position:fixed;bottom:0;left:0;right:0;
  max-height:40vh;overflow-y:auto;background:#0A0A14;
  border-top:2px solid var(--accent);font-family:var(--font-mono);
  font-size:11px;color:#A0A0B8;z-index:99999;padding:8px 12px;}

/* ── COLLAB GRID HitRecord ─────────────────────────── */
.collab-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;}
.collab-card{padding:28px;border:1px solid var(--br3,rgba(255,255,255,.06));
  border-radius:var(--r2);background:var(--bg2);position:relative;overflow:hidden;
  transition:transform .25s,border-color .25s;}
.collab-card:hover{transform:translateY(-4px);border-color:var(--br);}
.collab-num{font-family:var(--font-display);font-size:52px;font-weight:800;
  color:rgba(108,92,231,.1);position:absolute;top:12px;right:18px;line-height:1;user-select:none;}
.collab-title{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--tx);margin-bottom:8px;}
.collab-desc{font-size:14px;color:var(--tx2);line-height:1.6;}
@media(max-width:768px){.collab-grid{grid-template-columns:1fr;}}

/* ── DOCUMENTATION (corpus) ─────────────────────────── */
.corpus-card{background:var(--bg2);border:1px solid var(--br3,rgba(255,255,255,.06));
  border-radius:var(--r2);padding:16px;transition:border-color .2s;display:flex;flex-direction:column;gap:8px;}
.corpus-card:hover{border-color:var(--br);}
.corpus-card-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--tx);}
.corpus-card-desc{font-size:13px;color:var(--tx2);line-height:1.5;flex:1;}
.corpus-card-meta{display:flex;gap:8px;font-size:10px;color:var(--tx3);}
