/* ============================================================
   PLUTANIA — Système visuel partagé
   Fantasy premium : or, gemmes, pierre gravée, nuit violette
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700;800;900&family=Outfit:wght@300;400;500;600;700;800&display=swap');

/* Police officielle Minecraft (in-game UI) */
@font-face{
  font-family:'Minecraft';
  src:url('https://cdn.jsdelivr.net/npm/typeface-minecraft@1.0.0/files/minecraft.woff2') format('woff2'),
      url('https://cdn.jsdelivr.net/npm/typeface-minecraft@1.0.0/files/minecraft.woff') format('woff');
  font-weight:normal; font-style:normal; font-display:swap;
}

:root{
  /* — Fonds / pierre — */
  --bg:        #18121f;
  --bg-2:      #20182b;
  --bg-3:      #281f36;
  --panel:     #271f34;
  --panel-2:   #2f2640;
  --stone:     #3a3149;
  --stone-line:#4b4060;

  /* — Or — */
  --gold:      #e8b85a;
  --gold-lt:   #f8e4ad;
  --gold-deep: #b07f2c;
  --gold-soft: rgba(232,184,90,.42);
  --gold-grad: linear-gradient(180deg,#fbeec0 0%,#e8b85a 46%,#b07f2c 100%);

  /* — Violet — */
  --purple:    #9a6fd4;
  --purple-lt: #c2a3f0;
  --purple-deep:#6b46a8;

  /* — Gemmes — */
  --cyan:      #5fd4ea;
  --emerald:   #46d17a;
  --ruby:      #e85288;
  --redstone:  #e0463c;
  --amber:     #f0a83c;

  /* — Texte — */
  --ink:       #f4eefc;
  --muted:     #b3a6cb;
  --muted-2:   #8a7da3;

  /* — Système — */
  --maxw: 1200px;
  --radius: 4px;
  --radius-lg: 8px;
  --ease: cubic-bezier(.2,.7,.2,1);
  --shadow-print: 4px 4px 0 rgba(0,0,0,.45);

  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  font-family:'Outfit',system-ui,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* Fond nuit : nébuleuse violette + dégradé vertical */
.bg-night{
  position:fixed; inset:0; z-index:-3;
  background:
    radial-gradient(1100px 700px at 78% -10%, rgba(154,111,212,.30), transparent 60%),
    radial-gradient(900px 600px at 12% 8%, rgba(95,212,234,.10), transparent 55%),
    radial-gradient(1000px 800px at 50% 120%, rgba(176,127,44,.12), transparent 60%),
    linear-gradient(180deg,#140f1b 0%, #18121f 40%, #1d1628 100%);
}
.bg-stars{ position:fixed; inset:0; z-index:-2; pointer-events:none; }
.bg-stars .star{
  position:absolute; border-radius:50%;
  background:#fff; opacity:.7;
  animation: twinkle var(--tw,4s) var(--ease) infinite alternate;
}
@keyframes twinkle{ from{opacity:.12; transform:scale(.6);} to{opacity:.9; transform:scale(1);} }
.bg-particles{ position:fixed; inset:0; z-index:-2; pointer-events:none; overflow:hidden; }
.bg-particles .mote{
  position:absolute; bottom:-12px; width:3px; height:3px; border-radius:50%;
  background:var(--gold); box-shadow:0 0 6px 1px var(--gold-soft);
  animation: rise var(--rise,16s) linear infinite;
  opacity:0;
}
@keyframes rise{
  0%{ transform:translateY(0) translateX(0); opacity:0; }
  10%{ opacity:.8; }
  90%{ opacity:.6; }
  100%{ transform:translateY(-104vh) translateX(var(--drift,20px)); opacity:0; }
}
/* Grain global */
body::after{
  content:''; position:fixed; inset:0; z-index:1000; pointer-events:none;
  background-image:var(--grain); background-size:160px; opacity:.05; mix-blend-mode:overlay;
}
@media (prefers-reduced-motion: reduce){
  .bg-stars .star, .bg-particles .mote{ animation:none !important; }
}

/* ===== Typographie ===== */
h1,h2,h3,h4{ font-family:'Cinzel',serif; font-weight:800; line-height:1.08; margin:0; letter-spacing:.02em; }
.overline{
  font-family:'Minecraft',monospace; font-size:13px; letter-spacing:.1em;
  color:var(--gold); text-transform:uppercase;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Outfit'; font-weight:600; font-size:13px; letter-spacing:.28em;
  text-transform:uppercase; color:var(--purple-lt);
}
.eyebrow::before, .eyebrow.solo::after{
  content:''; width:26px; height:1px; background:linear-gradient(90deg,transparent,var(--gold));
}
.eyebrow.solo::after{ background:linear-gradient(90deg,var(--gold),transparent); }

.gold-text{
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.lead{ font-size:clamp(17px,2vw,20px); color:var(--muted); max-width:60ch; }
a{ color:var(--gold-lt); text-decoration:none; }

/* ===== Layout ===== */
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }
.section{ padding:clamp(64px,9vw,120px) 0; position:relative; }
.section-head{ max-width:720px; margin:0 auto clamp(40px,6vw,64px); text-align:center; display:grid; gap:18px; justify-items:center; }
.section-head h2{ font-size:clamp(30px,4.6vw,50px); }
.section-head .lead{ text-align:center; }

/* Filet gravé décoratif */
.rule-gem{ display:flex; align-items:center; justify-content:center; gap:14px; color:var(--gold); }
.rule-gem::before, .rule-gem::after{
  content:''; height:1px; width:min(120px,18vw);
  background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);
}

/* ===== Gemme (puce décorative) ===== */
.gem{ width:14px; height:14px; transform:rotate(45deg); display:inline-block; position:relative;
  background:linear-gradient(135deg,#fff6,#fff0), var(--gc,var(--cyan));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.4), 0 0 10px -1px var(--gc,var(--cyan));
}
.gem::after{ content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,.65),transparent 50%); }
.gem.cy{ --gc:var(--cyan); } .gem.em{ --gc:var(--emerald); } .gem.rb{ --gc:var(--ruby); } .gem.gd{ --gc:var(--gold); } .gem.pp{ --gc:var(--purple); }

/* ===== Boutons ===== */
.btn{
  --b:var(--gold);
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:'Outfit'; font-weight:700; font-size:14px; letter-spacing:.12em; text-transform:uppercase;
  padding:14px 26px; border-radius:var(--radius); cursor:pointer; border:0;
  position:relative; transition:transform .12s var(--ease), filter .2s var(--ease), box-shadow .2s var(--ease);
  color:#21180a;
}
.btn-gold{
  background:var(--gold-grad); color:#2a1d08;
  box-shadow:0 0 0 1px var(--gold-deep), 0 10px 24px -10px var(--gold-soft);
}
.btn-gold:hover{ filter:brightness(1.06); box-shadow:0 0 0 1px var(--gold-deep), 0 14px 30px -10px var(--gold-soft); }
.btn-gold:active{ transform:translateY(1px); }
.btn-ghost{
  background:rgba(255,255,255,.03); color:var(--ink);
  box-shadow: inset 0 0 0 1px var(--stone-line);
}
.btn-ghost:hover{ box-shadow: inset 0 0 0 1px var(--gold-soft); background:rgba(232,184,90,.06); }
.btn-ghost:active{ transform:translateY(1px); }
.btn-discord{ background:#5865F2; color:#fff; box-shadow:0 10px 24px -12px #5865F2; }
.btn-discord:hover{ filter:brightness(1.08); }
.btn-discord:active{ transform:translateY(1px); }
/* Header Discord — version légère (contour) */
.nav-cta .btn-discord{
  background:transparent; color:#aab2ff;
  box-shadow:inset 0 0 0 1px rgba(88,101,242,.5);
  padding:9px 16px;
}
.nav-cta .btn-discord svg{ width:16px; height:16px; }
.nav-cta .btn-discord:hover{
  filter:none; color:#fff;
  background:rgba(88,101,242,.14);
  box-shadow:inset 0 0 0 1px rgba(88,101,242,.9);
}
.nav-cta .btn-login{
  background:transparent; color:var(--gold-lt);
  box-shadow:inset 0 0 0 1px var(--gold-soft);
  padding:9px 16px;
}
.nav-cta .btn-login svg{ width:16px; height:16px; }
.nav-cta .btn-login:hover{ filter:none; color:#fff; background:rgba(232,184,90,.12); box-shadow:inset 0 0 0 1px var(--gold-lt); }
.nav-cta .btn-login:active{ transform:translateY(1px); }
.btn-lg{ padding:13px 28px; font-size:14px; }
.btn svg{ width:18px; height:18px; }

/* ===== Carte pierre gravée ===== */
.stone-card{
  position:relative; background:
    linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--stone-line);
  border-radius:var(--radius-lg);
  padding:28px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), inset 0 0 0 1px rgba(0,0,0,.25);
  transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.stone-card.hoverable:hover{ transform:translateY(-5px); border-color:var(--gold-soft);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 18px 40px -22px rgba(0,0,0,.8); }
/* coin gravé (équerre dorée) */
.stone-card::before, .stone-card::after{
  content:''; position:absolute; width:14px; height:14px; opacity:.6;
  border:1px solid var(--gold); 
}
.stone-card::before{ top:9px; left:9px; border-right:0; border-bottom:0; }
.stone-card::after{ bottom:9px; right:9px; border-left:0; border-top:0; }

/* ===== Top bar ===== */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100; height:64px;
  display:flex; align-items:center;
  background:rgba(20,15,27,.7); backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid rgba(232,184,90,.16);
}
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; width:100%; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ width:auto; height:32px; filter:drop-shadow(0 2px 6px rgba(0,0,0,.55)); }
.brand .name{ font-family:'Cinzel'; font-weight:900; font-size:20px; letter-spacing:.16em; }
.nav-links{ display:flex; align-items:center; gap:6px; }
.nav-links a{
  font-family:'Outfit'; font-weight:600; font-size:14px; color:var(--muted);
  padding:9px 14px; border-radius:var(--radius); letter-spacing:.04em;
  transition:color .2s, background .2s;
}
.nav-links a:hover{ color:var(--ink); background:rgba(255,255,255,.04); }
.nav-links a.active{ color:var(--gold-lt); }

/* Menu déroulant (Divers) */
.nav-item.has-dropdown{ position:relative; display:flex; align-items:center; }
.dropdown-toggle{ background:none; border:0; cursor:pointer; font-family:'Outfit'; font-weight:600;
  font-size:14px; color:var(--muted); padding:9px 14px; border-radius:var(--radius); letter-spacing:.04em;
  display:inline-flex; align-items:center; gap:6px; transition:color .2s, background .2s; }
.dropdown-toggle:hover{ color:var(--ink); background:rgba(255,255,255,.04); }
.dropdown-toggle svg{ width:13px; height:13px; transition:transform .2s var(--ease); }
.dropdown-toggle.active{ color:var(--gold-lt); }
.nav-item.has-dropdown.open .dropdown-toggle{ color:var(--ink); }
.nav-item.has-dropdown.open .dropdown-toggle svg,
.nav-item.has-dropdown:hover .dropdown-toggle svg{ transform:rotate(180deg); }
.dropdown-menu{ position:absolute; top:calc(100% + 10px); left:0; min-width:172px;
  background:rgba(28,21,38,.97); backdrop-filter:blur(14px) saturate(1.1);
  border:1px solid var(--stone-line); border-radius:var(--radius-lg);
  box-shadow:0 20px 44px -22px rgba(0,0,0,.9); padding:6px;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .18s var(--ease), transform .18s var(--ease), visibility .18s; z-index:120; }
.nav-item.has-dropdown.open .dropdown-menu,
.nav-item.has-dropdown:hover .dropdown-menu{ opacity:1; visibility:visible; transform:none; }
.dropdown-menu a{ display:block; padding:10px 14px; border-radius:var(--radius);
  color:var(--muted); font-size:14px; font-weight:600; }
.dropdown-menu a:hover{ color:var(--ink); background:rgba(255,255,255,.05); }
.nav-cta{ display:flex; align-items:center; gap:12px; }
.nav-cta .btn{ padding:10px 18px; font-size:12px; }
.burger{ display:none; background:none; border:0; color:var(--ink); cursor:pointer; padding:8px; }
.burger svg{ width:26px; height:26px; }

@media (max-width: 1080px){
  .nav-links{
    position:fixed; inset:64px 0 auto 0; flex-direction:column; gap:0; align-items:stretch;
    background:rgba(20,15,27,.97); border-bottom:1px solid var(--stone-line);
    padding:8px 16px 16px; transform:translateY(-130%); transition:transform .3s var(--ease);
  }
  .nav-links.open{ transform:translateY(0); }
  .nav-links a{ padding:14px 10px; border-bottom:1px solid rgba(255,255,255,.05); }
  .burger{ display:inline-flex; }
  .nav-cta .desktop-only{ display:none; }
  /* Dropdown en mode mobile : déplié en accordéon */
  .nav-item.has-dropdown{ flex-direction:column; align-items:stretch; }
  .dropdown-toggle{ width:100%; justify-content:space-between; padding:14px 10px;
    border-bottom:1px solid rgba(255,255,255,.05); }
  .dropdown-toggle svg{ width:15px; height:15px; }
  .dropdown-menu{ position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:0; background:rgba(0,0,0,.18); padding:0; min-width:0; backdrop-filter:none;
    max-height:0; overflow:hidden; transition:max-height .25s var(--ease); }
  .nav-item.has-dropdown.open .dropdown-menu{ max-height:200px; }
  .dropdown-menu a{ padding:13px 24px; border-bottom:1px solid rgba(255,255,255,.04); border-radius:0; }
}

/* ===== Pied de page ===== */
.footer{
  border-top:1px solid rgba(232,184,90,.16); padding:56px 0 40px; margin-top:40px;
  background:linear-gradient(180deg,transparent, rgba(0,0,0,.25));
}
.footer .grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; }
.footer h4{ font-family:'Outfit',sans-serif; font-weight:700; text-transform:uppercase; font-size:13px; color:var(--gold); letter-spacing:.14em; margin-bottom:18px; }
.footer a{ display:block; color:var(--muted); font-size:14px; padding:5px 0; transition:color .2s; }
.footer a:hover{ color:var(--gold-lt); }
.footer .legal{ margin-top:40px; padding-top:24px; border-top:1px solid rgba(255,255,255,.06);
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px; color:var(--muted-2); font-size:13px; }
.footer .legal > :nth-child(1){ text-align:left; }
.footer .legal > :nth-child(2){ text-align:center; }
.footer .legal > :nth-child(3){ text-align:right; }
@media (max-width:720px){ .footer .legal{ grid-template-columns:1fr; text-align:center; }
  .footer .legal > :nth-child(1), .footer .legal > :nth-child(3){ text-align:center; } }
@media (max-width:720px){ .footer .grid{ grid-template-columns:1fr 1fr; } }

/* ===== Bandeau de page (sous-pages) ===== */
.page-hero{ padding:clamp(110px,16vw,160px) 0 clamp(40px,6vw,64px); text-align:center; position:relative; }
.page-hero h1{ font-size:clamp(38px,7vw,72px); margin:14px 0; }
.page-hero .lead{ margin:0 auto; }

/* ===== Pills / badges ===== */
.pill{
  display:inline-flex; align-items:center; gap:8px; padding:6px 13px; border-radius:999px;
  font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  font-family:'Outfit';
}
.pill-live{ background:rgba(70,209,122,.12); color:var(--emerald); box-shadow:inset 0 0 0 1px rgba(70,209,122,.4); }
.pill-live .dot{ width:8px; height:8px; border-radius:50%; background:var(--emerald); box-shadow:0 0 8px var(--emerald); animation:pulse 2s infinite; }
@keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:.4;} }
.pill-ver{ background:rgba(232,184,90,.1); color:var(--gold-lt); box-shadow:inset 0 0 0 1px var(--gold-soft); }

/* ===== Statut serveur (live) ===== */
.srv-status{ display:inline-flex; align-items:center; gap:10px; }
.srv-status .sdot{ width:9px; height:9px; border-radius:50%; background:var(--muted-2); flex:none; transition:background .3s, box-shadow .3s; }
.srv-status.is-online  .sdot{ background:var(--emerald);  box-shadow:0 0 9px var(--emerald);  animation:pulse 2s infinite; }
.srv-status.is-offline .sdot{ background:var(--redstone); box-shadow:0 0 9px var(--redstone); }
.srv-status.is-loading .sdot{ background:var(--amber);    box-shadow:0 0 9px var(--amber);    animation:pulse 1.1s infinite; }

/* Carte de statut détaillée */
.status-card{ display:flex; align-items:center; gap:18px; padding:20px 24px; }
.status-card .sdot{ width:12px; height:12px; }
.status-card .st-state{ font-family:'Cinzel'; font-weight:800; font-size:19px; letter-spacing:.02em; }
.srv-status.is-online  .st-state{ color:var(--emerald); }
.srv-status.is-offline .st-state{ color:var(--redstone); }
.srv-status.is-loading .st-state{ color:var(--amber); }
.status-card .st-sub{ color:var(--muted); font-size:14px; margin-top:2px; }
.status-card .st-sub b{ color:var(--ink); font-family:'Minecraft',monospace; letter-spacing:.04em; margin-left:5px; }
.status-card .st-players{ margin-left:auto; text-align:right; }
.status-card .st-players .num{ font-family:'Cinzel'; font-weight:900; font-size:30px; line-height:1; color:var(--gold-lt); }
.status-card .st-players .cap{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2); font-weight:700; margin-top:4px; }
@media (max-width:480px){ .status-card{ flex-wrap:wrap; gap:14px; } .status-card .st-players{ margin-left:0; text-align:left; } }

/* ===== Finition petits écrans ===== */
@media (max-width:560px){
  .wrap{ padding:0 18px; }
  .nav .wrap{ padding:0 18px; }
  .brand .name{ font-size:17px; letter-spacing:.12em; }
  .brand img{ height:28px; }
  /* Cartes et boutons pleine largeur sur mobile */
  .hero-cta{ width:100%; }
  .hero-cta .btn{ flex:1 1 auto; min-width:0; }
  .btn{ padding:13px 20px; }
  .btn-lg{ padding:13px 22px; }
  /* IP : pleine largeur, on neutralise le scale inline qui déborde */
  .ip-card{ display:flex !important; width:100%; transform:none !important; }
  .ip-card .ip-label{ flex:1 1 auto; }
  .stone-card{ padding:22px; }
  /* Bande Discord : boutons pleine largeur */
  .discord-band > div:last-child{ width:100%; }
  .discord-band > div:last-child .btn{ width:100%; }
  /* Hero un peu resserré */
  .hero{ padding:104px 0 72px !important; }
}
@media (max-width:380px){
  .wrap{ padding:0 14px; }
  .ip-card{ flex-direction:column; align-items:stretch; }
  .ip-card .ip-label{ border-right:0; border-bottom:1px solid var(--stone-line); }
  .ip-copy{ padding:12px 20px; justify-content:center; }
}

/* util */
.center{ text-align:center; } .mono{ font-family:'Minecraft',monospace; letter-spacing:.04em; }
.grid-auto{ display:grid; gap:22px; }
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
