/* =====================================================================
   MINECRAFT : VERSION ALGATOR37 — feuille de style
   Meme palette que Coup de Griffe, a la lettre.
   ===================================================================== */
:root{
  --enc:#0b1220; --enc2:#111b2e; --panel:rgba(10,18,32,.94);
  --or:#ffd23f; --or2:#ff9f1c; --vert:#3ddc84; --cyan:#41e0ff;
  --rouge:#ff3b5c; --violet:#a06bff; --blanc:#dfeaff; --gris:#9fb4d0;
  --bord:#2b3a55;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden}
body{
  background:var(--enc); color:var(--blanc);
  font-family:"Trebuchet MS","Segoe UI",system-ui,sans-serif;
  -webkit-user-select:none;user-select:none;touch-action:none;
}
canvas#cv{display:block;position:fixed;inset:0;width:100%;height:100%;image-rendering:pixelated}
.imp{font-family:Impact,"Arial Black","Haettenschweiler",sans-serif;letter-spacing:.02em}
.g,.gris{color:var(--gris)}

/* ================= ECRANS ================= */
.ecran{position:fixed;inset:0;display:none;z-index:40;
  background:radial-gradient(1200px 800px at 50% -10%,#1b3358 0%,transparent 60%),var(--enc);
  overflow:auto}
.ecran.on{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.ecran h1{font-size:clamp(34px,8vw,84px);line-height:.92;text-transform:uppercase;text-align:center}
.ecran h1.p{font-size:clamp(26px,6vw,52px)}
.ecran h1 .l2{display:block;color:var(--or)}
.ecran h3{font-family:Impact,sans-serif;text-transform:uppercase;font-size:19px;
  color:var(--or);margin:20px 0 6px;letter-spacing:.03em}
.sub{font-family:Impact,sans-serif;text-transform:uppercase;font-size:clamp(15px,3vw,28px);
  color:var(--cyan);margin-top:10px;letter-spacing:.05em}
.slog{color:var(--gris);font-style:italic;margin:16px 0 24px;text-align:center;max-width:36ch}
.rangee{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}
.pied{margin-top:20px;font-size:12px;color:#4a5a75;text-align:center}

.btn{font-family:Impact,sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:19px;
  padding:13px 30px;border:2px solid var(--or);background:transparent;color:var(--or);
  cursor:pointer;margin:4px;min-width:220px;transition:transform .08s}
.btn:hover{background:var(--or);color:var(--enc)}
.btn:active{transform:translateY(2px)}
.btn.sec{border-color:var(--gris);color:var(--gris);font-size:15px;padding:9px 20px;min-width:160px}
.btn.sec:hover{background:var(--gris);color:var(--enc)}
.btn.dng{border-color:var(--rouge);color:var(--rouge)}
.btn.dng:hover{background:var(--rouge);color:var(--enc)}

.aide{max-width:660px;font-size:14.5px;color:var(--gris);line-height:1.72}
.aide p{margin-bottom:9px}
.aide b{color:var(--blanc)}
.k{display:inline-block;border:1px solid var(--bord);background:#141f33;border-radius:4px;
  padding:1px 7px;margin:0 1px;font-family:ui-monospace,monospace;font-size:12px;color:var(--blanc)}

/* ================= HUD ================= */
#hud{position:fixed;inset:0;z-index:20;pointer-events:none;display:none}
#hud.on{display:block}
#viseur{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;opacity:.85}
#viseur::before,#viseur::after{content:"";position:absolute;background:#fff;mix-blend-mode:difference}
#viseur::before{left:9px;top:0;width:2px;height:20px}
#viseur::after{left:0;top:9px;width:20px;height:2px}
#casse{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;
  border:3px solid var(--blanc);border-radius:3px;opacity:0;transition:opacity .08s}
#degat{position:fixed;inset:0;z-index:21;pointer-events:none;opacity:0;
  background:radial-gradient(circle at 50% 50%,transparent 35%,rgba(255,59,92,.55) 100%)}

#infos{position:absolute;left:14px;top:12px;font-size:13px;line-height:1.65;
  text-shadow:1px 1px 0 rgba(0,0,0,.85)}
#zone{position:absolute;right:14px;top:12px;text-align:right;font-size:13px;
  text-shadow:1px 1px 0 rgba(0,0,0,.85)}
#zone .nom{font-family:Impact,sans-serif;text-transform:uppercase;font-size:18px}

#msg{position:absolute;left:50%;top:20%;transform:translateX(-50%);text-align:center;width:min(90vw,700px)}
#msg .gros{font-family:Impact,sans-serif;text-transform:uppercase;font-size:clamp(26px,5.5vw,54px);
  line-height:1;text-shadow:3px 3px 0 rgba(0,0,0,.55)}
#msg .petit{font-size:15px;color:var(--gris);margin-top:6px;text-shadow:1px 1px 0 #000}

#journal{position:absolute;left:14px;bottom:120px;width:min(46vw,360px);font-size:12.5px;
  line-height:1.6;text-shadow:1px 1px 0 rgba(0,0,0,.9)}

#boss{position:absolute;left:50%;top:14px;transform:translateX(-50%);width:min(88vw,620px);display:none}
#boss.on{display:block}
#boss .nb{font-family:Impact,sans-serif;text-transform:uppercase;text-align:center;font-size:20px;
  text-shadow:2px 2px 0 rgba(0,0,0,.6);margin-bottom:3px}
#boss .jauge{height:12px;background:rgba(10,18,32,.8);border:2px solid var(--bord)}
#boss .jauge i{display:block;height:100%;width:100%;background:var(--rouge);transition:width .18s}

#bas{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:5px}
#nomObjet{font-family:Impact,sans-serif;text-transform:uppercase;font-size:15px;color:var(--blanc);
  text-shadow:2px 2px 0 rgba(0,0,0,.7);height:18px}
#jauges{display:flex;gap:26px;align-items:center}
#vie,#faim{display:flex;gap:3px}
.coeur,.faim{width:15px;height:15px}
.coeur{background:var(--rouge);clip-path:polygon(50% 100%,0 45%,0 20%,25% 0,50% 18%,75% 0,100% 20%,100% 45%)}
.faim{background:var(--or2);clip-path:polygon(50% 0,100% 32%,82% 100%,18% 100%,0 32%)}
.coeur.vide,.faim.vide{background:#26334a}

/* ================= CASES ================= */
.case{width:46px;height:46px;border:2px solid var(--bord);background:rgba(10,18,32,.72);
  position:relative;display:grid;place-items:center;cursor:pointer}
.case canvas{width:32px;height:32px;image-rendering:pixelated;pointer-events:none}
.case .nb{position:absolute;right:3px;bottom:0;font-size:12px;font-family:ui-monospace,monospace;
  font-weight:bold;text-shadow:1px 1px 0 #000;pointer-events:none}
.case .usure{position:absolute;left:3px;bottom:3px;height:3px;display:none;pointer-events:none}
.case .num{position:absolute;left:3px;top:0;font-size:9px;color:var(--gris);
  font-family:ui-monospace,monospace;font-style:normal;pointer-events:none}
.case:hover{border-color:var(--gris)}
#barre{display:flex;gap:3px;pointer-events:auto}
#barre .case.sel{border-color:var(--or);background:rgba(255,210,63,.16)}

/* ================= INVENTAIRE ================= */
#ecInv{background:rgba(6,10,20,.82)}
.panneau{background:var(--panel);border:2px solid var(--bord);padding:18px 20px 14px;
  max-width:min(94vw,560px);box-shadow:0 20px 60px rgba(0,0,0,.6)}
.entete{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.entete h2{font-size:24px;text-transform:uppercase;color:var(--or)}
.x{background:none;border:0;color:var(--gris);font-size:22px;cursor:pointer;line-height:1}
.x:hover{color:var(--rouge)}
#zoneCraft,#zoneFour{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:12px}
.grilleCraft{display:grid;grid-template-columns:repeat(3,46px);gap:3px}
.grilleCraft.petit{grid-template-columns:repeat(2,46px)}
.fleche{font-size:24px;color:var(--or)}
.case.res{border-color:var(--or);background:rgba(255,210,63,.1)}
.four{display:flex;align-items:center;gap:14px}
.colFour{display:flex;flex-direction:column;align-items:center;gap:4px}
.feu{width:22px;height:22px;background:var(--or2);
  clip-path:polygon(50% 0,72% 38%,62% 34%,74% 76%,50% 100%,26% 76%,38% 34%,28% 38%)}
.sep{height:1px;background:var(--bord);margin:12px 0}
#zoneInv{display:grid;grid-template-columns:repeat(9,46px);gap:3px;justify-content:center}
#zoneBarre{display:grid;grid-template-columns:repeat(9,46px);gap:3px;justify-content:center;margin-top:8px}
.astuce{margin-top:12px;font-size:11.5px;color:#5b6a85;text-align:center;line-height:1.5}
#curseur{position:fixed;z-index:60;pointer-events:none;display:none;
  transform:translate(-50%,-50%);width:36px;height:36px}
#curseur canvas{width:36px;height:36px;image-rendering:pixelated}
#curseur .nb{position:absolute;right:-2px;bottom:-4px;font-size:12px;font-family:ui-monospace,monospace;
  font-weight:bold;text-shadow:1px 1px 0 #000}

/* ================= RECETTES ================= */
#listeRecettes{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:10px;max-width:820px;width:100%;margin-bottom:18px}
.rec{display:flex;align-items:center;gap:10px;border:1px solid var(--bord);
  background:rgba(10,18,32,.6);padding:8px 10px}
.recGrille{display:grid;grid-template-columns:repeat(3,24px);gap:1px;flex:0 0 auto}
.recCase{width:24px;height:24px;border:1px solid #223047;display:grid;place-items:center}
.recCase canvas{image-rendering:pixelated}
.recRes{flex:0 0 auto}
.recRes canvas{image-rendering:pixelated}
.recNom{font-size:12px;line-height:1.35}

/* ================= COLLECTION ================= */
#grille25{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;max-width:580px;width:100%;margin:18px 0}
.gcase{border:2px solid var(--bord);background:rgba(10,18,32,.6);padding:7px 8px;font-size:11.5px;
  line-height:1.25;min-height:48px}
.gcase.ok{border-color:var(--or);background:rgba(255,210,63,.13)}
.gcase .num{font-family:ui-monospace,monospace;font-size:10px;color:var(--gris)}
.gcase.ok .num{color:var(--or)}
.gcase .nm{font-weight:bold;color:#4a5a75}
.gcase.ok .nm{color:var(--blanc)}

@media (max-width:620px){
  .case{width:38px;height:38px}
  .case canvas{width:26px;height:26px}
  #zoneInv,#zoneBarre{grid-template-columns:repeat(9,38px)}
  .grilleCraft{grid-template-columns:repeat(3,38px)}
  .grilleCraft.petit{grid-template-columns:repeat(2,38px)}
  #journal{display:none}
}
