/* ===================================================================
   DragonLoot express — écran du mini-jeu (préfixe dl-)
   Univers volontairement sombre (aperçu de DragonLoot.ca), peu importe
   le thème clair/sombre du carnet.
   =================================================================== */
.dl-shell{
  --dl-bg:#0c0e11; --dl-panel:rgba(21,24,29,0.9); --dl-panel-2:#1c2026; --dl-line:#2a2f37;
  --dl-ink:#EFE8D8; --dl-soft:#B5AC9B; --dl-faint:#7F786C;
  --dl-gold:#F4B942; --dl-gold-deep:#E89B2C;
  min-height:100vh; color:var(--dl-ink);
  background:radial-gradient(120% 70% at 50% 0%, #1d2129 0%, var(--dl-bg) 65%);
  padding-bottom:48px; position:relative; isolation:isolate;
}
.dl-shell > .dl-wrap{position:relative; z-index:1;}
.dl-wrap{max-width:960px; margin:0 auto; padding:0 18px;}

/* ---------- barre du haut ---------- */
.dl-top{position:sticky; top:0; z-index:20; background:rgba(12,14,17,0.82); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--dl-line); padding-top:env(safe-area-inset-top, 0px);}
.dl-top-inner{display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:60px;}
.dl-back{background:transparent; color:var(--dl-soft); border:1px solid var(--dl-line); border-radius:999px;
  padding:7px 14px; font-size:0.85rem; cursor:pointer; display:inline-flex; align-items:center; gap:8px; white-space:nowrap;}
.dl-back:hover,.dl-back:focus-visible{color:var(--dl-ink); border-color:var(--dl-gold);}
.dl-brand{font-size:1.15rem; display:flex; align-items:center; gap:8px; color:var(--dl-ink);}
.dl-brand-dragon{display:inline-flex; color:#D7263D; filter:drop-shadow(0 0 6px rgba(215,38,61,0.5));
  cursor:default; user-select:none; -webkit-user-select:none; -webkit-tap-highlight-color:transparent;}
.dl-brand-text{display:inline-flex; align-items:center; gap:8px;}
.dl-brand-short{display:none; letter-spacing:0.06em;}
.dl-cheater{font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color:#fff; background:linear-gradient(135deg,#D7263D,#7a1020);
  border-radius:999px; padding:3px 9px; display:inline-flex; align-items:center; gap:5px; box-shadow:0 0 10px rgba(215,38,61,0.5);}
.dl-cheater[hidden]{display:none;}
.dl-brand-tag{font-size:0.62rem; letter-spacing:0.12em; text-transform:uppercase; color:#2A1F0B;
  background:var(--dl-gold); border-radius:999px; padding:3px 8px;}
.dl-wallet{display:flex; gap:8px;}
.dl-chip{display:inline-flex; align-items:center; gap:6px; background:var(--dl-panel); border:1px solid var(--dl-line);
  border-radius:999px; padding:6px 12px; font-size:0.9rem; transition:transform .2s ease, border-color .2s ease;}
.dl-chip :is(i,svg){color:#C9D2DE;}
.dl-chip small{color:var(--dl-faint); font-size:0.75rem;}
.dl-chip-gold :is(i,svg){color:var(--dl-gold);}
.dl-chip-bump{transform:scale(1.12); border-color:var(--dl-gold);}

/* ---------- onglets ---------- */
.dl-tabs{display:flex; gap:6px; justify-content:center; margin:20px 0 18px;}
.dl-tabs button{background:var(--dl-panel); color:var(--dl-soft); border:1px solid var(--dl-line); border-radius:999px;
  padding:9px 20px; font-size:0.92rem; cursor:pointer; display:inline-flex; align-items:center; gap:8px;}
.dl-tabs button:hover{color:var(--dl-ink);}
.dl-tabs button[aria-selected="true"]{background:var(--dl-gold); color:#2A1F0B; border-color:var(--dl-gold);}
.dl-panel{display:none;}
.dl-panel.active{display:block; animation:dl-fade .25s ease;}
@keyframes dl-fade{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}

/* ---------- clés ---------- */
.dl-keybar{background:var(--dl-panel); border:1px solid var(--dl-line); border-radius:16px; padding:14px 16px; margin-bottom:14px;}
.dl-keybar-head{display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:0.95rem; flex-wrap:wrap;}
.dl-keybar-head :is(i,svg){color:#C9D2DE;}
.dl-keybar-next{color:var(--dl-soft); font-size:0.85rem; font-variant-numeric:tabular-nums;}
.dl-keybar-track{height:8px; background:#0b0d10; border-radius:999px; margin:10px 0 8px; overflow:hidden; border:1px solid var(--dl-line);}
.dl-keybar-fill{height:100%; width:0; border-radius:999px; background:linear-gradient(90deg, var(--dl-gold-deep), var(--dl-gold)); transition:width .9s linear;}
.dl-keybar-fill.full{background:linear-gradient(90deg, #3ddc4a, #9be86b);}
.dl-keybar-sub{margin:0; color:var(--dl-faint); font-size:0.8rem;}

/* ---------- scène du coffre ---------- */
.dl-stage.coffre-stage{min-height:min(60vh, 500px); border-radius:20px; border:1px solid var(--dl-line);}
.dl-stage .coffre{transform-origin:50% 60%;}
.dl-stage-caption{position:absolute; left:0; right:0; bottom:22px; z-index:5; text-align:center; pointer-events:none;
  display:flex; flex-direction:column; align-items:center; gap:8px; padding:0 12px;}
.dl-stage .coffre-rarete{min-height:1.2em; font-size:clamp(22px, 4vh, 34px);}
.dl-result{opacity:0; transform:translateY(8px); transition:opacity .35s ease, transform .35s ease;
  display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center; font-size:1.1rem; color:#FFE9B0;
  text-shadow:0 2px 10px rgba(0,0,0,0.7);}
.dl-result.show{opacity:1; transform:none;}
.dl-result > :is(i,svg){color:var(--dl-gold); filter:drop-shadow(0 0 6px rgba(244,185,66,0.7));}
.dl-golden-tag{font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase; color:#6b4a05;
  background:linear-gradient(180deg,#ffe680,#ffd700 45%,#d9a520); border-radius:999px; padding:3px 10px; box-shadow:0 0 12px #ffd70088;}

/* ---------- boutons ---------- */
.dl-actions{display:flex; justify-content:center; gap:10px; margin-top:16px; flex-wrap:wrap;}
.dl-btn{border:none; border-radius:999px; padding:12px 24px; font-size:1rem; cursor:pointer; display:inline-flex; align-items:center; gap:10px;
  text-decoration:none; transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease;}
.dl-btn[hidden]{display:none;}
.dl-btn-primary{background:var(--dl-gold); color:#2A1F0B; box-shadow:0 5px 0 0 var(--dl-gold-deep);}
.dl-btn-primary:hover{transform:translateY(-1px); color:#2A1F0B;}
.dl-btn-primary:active{transform:translateY(3px); box-shadow:0 2px 0 0 var(--dl-gold-deep);}
.dl-btn-primary:disabled{opacity:0.45; cursor:not-allowed; transform:none;}
.dl-btn-cost{background:rgba(42,31,11,0.14); border-radius:999px; padding:2px 10px; font-size:0.85rem;}
.dl-btn-ghost{background:transparent; color:var(--dl-ink); border:1px solid var(--dl-line);}
.dl-btn-ghost:hover{border-color:var(--dl-gold);}
.dl-btn:focus-visible,.dl-tabs button:focus-visible{outline:2px solid var(--dl-gold); outline-offset:3px;}

/* ---------- butin : statistiques ---------- */
.dl-stats{display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; margin-bottom:26px;}
.dl-stat{background:var(--dl-panel); border:1px solid var(--dl-line); border-radius:16px; padding:14px 10px;
  display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center;}
.dl-stat > :is(i,svg){color:var(--dl-soft); font-size:1.05rem;}
.dl-stat b{font-size:1.35rem; font-variant-numeric:tabular-nums;}
.dl-stat span{color:var(--dl-faint); font-size:0.78rem;}
.dl-stat-gold > :is(i,svg), .dl-stat-gold b{color:var(--dl-gold);}
.dl-stat .dl-best{font-size:1.35rem; font-variant-numeric:tabular-nums;}
.dl-stat .dl-best.coffre-rarete{font-size:1.35rem; letter-spacing:0; text-transform:none; font-weight:700;}

/* ---------- bandeau « express » ---------- */
.dl-express{margin:-12px 0 26px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-radius:18px; padding:16px 18px; border:1px solid #5a4418;
  background:linear-gradient(120deg, rgba(244,185,66,0.16), rgba(215,38,61,0.12) 60%, rgba(107,63,160,0.14));}
.dl-express-text{flex:1 1 320px;}
.dl-express-text p{margin:6px 0 0; color:var(--dl-soft); font-size:0.9rem; line-height:1.5;}
.dl-express-tag{font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--dl-gold);}

/* ---------- butin : cartes foil ---------- */
.dl-hoard-title{font-size:1.25rem; margin:0; color:var(--dl-ink);}
.dl-hoard-sub{color:var(--dl-faint); font-size:0.85rem; margin:4px 0 14px;}
.dl-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:14px;}
.dl-card-wrap{display:flex;}
.dl-card{flex:1 1 auto; box-sizing:border-box; min-height:180px; border-radius:16px; padding:14px;
  background:linear-gradient(160deg, color-mix(in oklab, var(--rar) 22%, #14171b) 0%, #0e1013 78%);
  border:1px solid color-mix(in oklab, var(--rar) 45%, transparent);
  display:flex; flex-direction:column; --foil-glyph-size:11px;}
.dl-card .foil-content{display:flex; flex-direction:column; flex:1 1 auto; gap:8px;}
.dl-card-top{display:flex; justify-content:space-between; align-items:center;}
.dl-card-icon{width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  font-size:1.15rem; color:#15181d; background-image:var(--rar-bg); box-shadow:0 0 14px color-mix(in oklab, var(--rar) 45%, transparent);}
.dl-card-count{font-size:1.4rem; font-weight:700; font-variant-numeric:tabular-nums; color:var(--dl-ink); text-shadow:0 2px 8px rgba(0,0,0,0.6);}
.dl-card-name{font-size:1rem; letter-spacing:0.1em; text-transform:uppercase; margin-top:auto; color:var(--dl-soft);}
.dl-card-name.coffre-rarete{font-size:1rem;}
.dl-card-meta{display:flex; justify-content:space-between; gap:6px; flex-wrap:wrap; font-size:0.72rem; color:var(--dl-faint);}
.dl-card-meta :is(i,svg){color:var(--dl-gold); opacity:0.8;}
.dl-card-empty{filter:grayscale(0.85); opacity:0.55; background:linear-gradient(160deg, #181b20, #0e1013); border-color:var(--dl-line);}
.dl-card-empty .dl-card-icon{background:#2a2f37; color:var(--dl-faint); box-shadow:none;}

@media (max-width:600px){
  .dl-brand-long{display:none;}
  .dl-brand-short{display:inline;}
  .dl-brand{font-size:1.05rem; gap:6px;}
  .dl-brand-text{gap:5px;}
  .dl-brand-tag{font-size:0.55rem; padding:2px 6px; letter-spacing:0.08em;}
  .dl-tabs button{padding:9px 14px;}
  .dl-tab-label{display:none;}
  .dl-top .dl-wrap{padding:0 10px;}
  .dl-top-inner{gap:6px;}
  .dl-wallet{gap:5px;}
  .dl-chip{padding:5px 9px; font-size:0.82rem; gap:5px;}
  .dl-chip small{display:none;}
  .dl-back span{display:none;}
  .dl-back{padding:7px 10px;}
  .dl-stage.coffre-stage{min-height:480px;}
  .dl-stage .coffre{scale:0.82;}
  .dl-grid{grid-template-columns:repeat(2, 1fr); gap:10px;}
  .dl-stat b{font-size:1.1rem;}
}
@media (max-width:380px){
  .dl-top .dl-wrap{padding:0 8px;}
  .dl-top-inner{gap:4px;}
  .dl-back{padding:6px 8px;}
  .dl-brand{font-size:0.95rem; gap:4px;}
  .dl-brand-tag{font-size:0.5rem; padding:2px 5px;}
  .dl-chip{padding:4px 7px; font-size:0.78rem; gap:4px;}
}
@media (prefers-reduced-motion: reduce){
  .dl-panel.active{animation:none;}
  .dl-keybar-fill{transition:none;}
}

/* ---------- tas d'or (arrière-plan) ---------- */
.dl-heap{position:fixed; left:50%; bottom:0; z-index:0; pointer-events:none;
  height:min(44vh, 440px); aspect-ratio:2/1; max-width:150vw; --heap:0;
  transform:translateX(-50%) scale(calc(0.04 + var(--heap) * 0.96)); transform-origin:50% 100%;
  opacity:clamp(0, calc(var(--heap) * 40), 0.34);
  transition:transform 1.4s cubic-bezier(.2,1.2,.3,1), opacity .6s ease;
  filter:drop-shadow(0 -10px 40px rgba(244,185,66,0.35));}
.dl-heap svg{width:100%; height:100%; display:block;}
.dl-heap-max{opacity:0.42; filter:drop-shadow(0 -10px 60px rgba(255,215,0,0.55));}
.dl-heap-glint{opacity:0; transform-box:fill-box; transform-origin:center; animation:dl-glint 4.9s ease-in-out infinite;}
@keyframes dl-glint{0%,100%{opacity:0; transform:scale(0.3);} 8%{opacity:1; transform:scale(1.2);} 16%{opacity:0; transform:scale(0.3);}}

/* ---------- carte « coffre doré » (apparaît au 1er coffre doré) ---------- */
.dl-card-golden{border-color:#ffd700; box-shadow:0 0 0 1px #ffd70055, 0 0 24px #ffd70044;
  background:linear-gradient(160deg, #4a3706 0%, #1a1405 70%);}
.dl-card-icon-golden{background:linear-gradient(180deg,#ffe680,#ffd700 45%,#b8860b) !important; color:#6b4a05 !important;}
.dl-card-golden .dl-card-name.coffre-rarete{--rar-bg:linear-gradient(90deg,#fff3b0,#ffd700,#e8a317);}
.dl-card-wrap:has(.dl-card-golden){animation:dl-pop-in .6s cubic-bezier(.2,1.4,.4,1);}
@keyframes dl-pop-in{from{transform:scale(0.7); opacity:0;} to{transform:none; opacity:1;}}

/* ---------- menu triche ---------- */
.dl-cheats{position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:16px;
  background:rgba(5,6,8,0.6); backdrop-filter:blur(3px); opacity:0; transition:opacity .2s ease;}
.dl-cheats[hidden]{display:none;}
.dl-cheats.open{opacity:1;}
.dl-cheats-box{width:min(420px, 100%); background:#16191e; border:1px solid #D7263D66; border-radius:18px; padding:18px;
  box-shadow:0 20px 60px rgba(0,0,0,0.6), 0 0 30px rgba(215,38,61,0.15); color:var(--dl-ink);}
.dl-cheats-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:6px;}
.dl-cheats-head h3{font-size:1.15rem; margin:0;}
.dl-cheats-head h3 :is(i,svg){color:#D7263D;}
.dl-cheats-x{background:none; border:none; color:var(--dl-faint); font-size:1rem; cursor:pointer; padding:4px 8px; border-radius:8px;}
.dl-cheats-x:hover{color:var(--dl-ink); background:#22262d;}
.dl-cheats-warn{font-size:0.8rem; color:var(--dl-soft); margin:0 0 10px; line-height:1.45;}
.dl-cheats-warn :is(i,svg){color:var(--dl-gold);}
.dl-cheats-status{font-size:0.8rem; margin:0 0 10px; color:#ff8b98; background:#D7263D22; border-radius:10px; padding:7px 10px;}
.dl-cheats-status[hidden]{display:none;}
.dl-cheat-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 0; border-top:1px solid var(--dl-line); font-size:0.9rem; cursor:default;}
.dl-cheat-row small{display:block; color:var(--dl-faint); font-size:0.74rem; margin-top:2px;}
.dl-btn-sm{padding:7px 14px; font-size:0.85rem; gap:6px;}
.dl-btn-danger{background:#D7263D; color:#fff; box-shadow:0 4px 0 0 #8e1627;}
.dl-btn-danger:hover{transform:translateY(-1px);}
.dl-select{background:#0e1013; color:var(--dl-ink); border:1px solid var(--dl-line); border-radius:10px; padding:7px 10px; font:inherit; font-size:0.85rem;}
.dl-select:focus{outline:2px solid var(--dl-gold); outline-offset:1px;}
.dl-check{width:20px; height:20px; accent-color:var(--dl-gold); cursor:pointer;}
.dl-flash{box-shadow:0 0 0 3px var(--dl-gold) !important;}
@media (prefers-reduced-motion: reduce){
  .dl-heap{transition:none;} .dl-heap-glint{animation:none;}
  .dl-card-wrap:has(.dl-card-golden){animation:none;}
}

.dl-heap[hidden], .dl-express[hidden]{display:none !important;}

/* ---------- paramètres ---------- */
.dl-settings{background:var(--dl-panel); border:1px solid var(--dl-line); border-radius:18px; padding:4px 18px;}
.dl-set-row{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 0; cursor:pointer; margin:0;}
.dl-set-row + .dl-set-row{border-top:1px solid var(--dl-line);}
.dl-set-label{display:block; font-weight:600; font-size:0.95rem; color:var(--dl-ink);}
.dl-set-row small{display:block; color:var(--dl-faint); font-size:0.8rem; margin-top:3px; line-height:1.4;}
.dl-set-danger{cursor:default;}
.dl-switch{position:relative; flex:0 0 auto; width:46px; height:26px;}
.dl-switch input{position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; z-index:1;}
.dl-switch-slider{position:absolute; inset:0; border-radius:999px; background:#2a2f37; border:1px solid var(--dl-line); transition:background .2s ease;}
.dl-switch-slider::after{content:""; position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%; background:#cfc7b6; transition:transform .2s ease, background .2s ease;}
.dl-switch input:checked + .dl-switch-slider{background:var(--dl-gold); border-color:var(--dl-gold-deep);}
.dl-switch input:checked + .dl-switch-slider::after{transform:translateX(20px); background:#2A1F0B;}
.dl-switch input:focus-visible + .dl-switch-slider{outline:2px solid var(--dl-gold); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){ .dl-switch-slider, .dl-switch-slider::after{transition:none;} }

/* =================================================================
   v2 : forge, boutique, dragon endormi, objets, œuf, pitié,
        statistiques, événements
   ================================================================= */
.dl-tabs{flex-wrap:wrap;}
.dl-cheats-box{max-height:90vh; overflow-y:auto;}
.dl-hoard-title{margin-top:28px;}
.dl-hoard-title .dl-coll-count{font-family:'Inter', sans-serif; font-size:0.85rem; color:var(--dl-gold); margin-left:6px;}

/* ---------- pitié ---------- */
.dl-pity{margin:6px 0 0; font-size:0.8rem; color:#9fd8ff;}
.dl-pity :is(i,svg){color:#6ec1ff;}

/* ---------- résultat enrichi ---------- */
.dl-result{flex-direction:column; gap:6px;}
.dl-res-line small{font-size:0.75rem; color:#ffd9a0; font-weight:500;}
.dl-res-chip{font-size:0.78rem; border-radius:999px; padding:4px 11px; background:rgba(12,14,17,0.75);
  border:1px solid color-mix(in oklab, var(--rar, #888) 70%, transparent); color:#fff; display:inline-flex; align-items:center; gap:6px;}
.dl-res-chip :is(i,svg){color:var(--rar, #fff);}
.dl-res-pity{border-color:#6ec1ff;} .dl-res-pity :is(i,svg){color:#6ec1ff;}
.dl-res-egg{border-color:#ffd700; background:rgba(60,45,5,0.8);} .dl-res-egg :is(i,svg){color:#fff3b0;}
.dl-new{color:#2A1F0B; background:var(--dl-gold); border-radius:999px; padding:1px 7px; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.06em;}

/* ---------- événements ---------- */
.dl-event-banner{display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; margin-bottom:12px;
  border-radius:14px; padding:10px 14px; font-size:0.9rem; border:1px solid var(--dl-line);}
.dl-event-banner[hidden]{display:none;}
.dl-event-banner .dl-ev-bonus{font-size:0.78rem; border-radius:999px; padding:2px 9px; background:rgba(0,0,0,0.3);}
.dl-event-layer{position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:1;}
.dl-event-drop{opacity:0;}
.dl-stage[data-event="halloween"]{background:radial-gradient(120% 90% at 50% 40%, #2a1a2e, #0c0a10);}
.dl-stage[data-event="noel"]{background:radial-gradient(120% 90% at 50% 40%, #16242e, #070b10);}
.dl-stage[data-event="valentin"]{background:radial-gradient(120% 90% at 50% 40%, #2e1822, #100a0d);}
.dl-shell:has(.dl-stage[data-event="halloween"]) .dl-event-banner{background:linear-gradient(90deg,#3a1d06,#2a1636); border-color:#ff8a1f66; color:#ffc58a;}
.dl-shell:has(.dl-stage[data-event="noel"]) .dl-event-banner{background:linear-gradient(90deg,#0f2a1c,#2a0f14); border-color:#3ddc8466; color:#d9fbe7;}
.dl-shell:has(.dl-stage[data-event="valentin"]) .dl-event-banner{background:linear-gradient(90deg,#3a0f22,#2a1020); border-color:#ff4d8d66; color:#ffc2d4;}

/* ---------- apparences du coffre (la couleur de rareté reste visible) ---------- */
.dl-stage .coffre-lid::after, .dl-stage .coffre-body::after{content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0;}
.dl-stage[data-skin="wood"] .coffre-lid, .dl-stage[data-skin="wood"] .coffre-body{border-color:#3b2412;}
.dl-stage[data-skin="wood"] .coffre-lid::after, .dl-stage[data-skin="wood"] .coffre-body::after{opacity:.55; mix-blend-mode:multiply;
  background:repeating-linear-gradient(90deg, #8a5a2b 0 3px, #b07a44 3px 9px, #7a4d22 9px 11px, #a36f3c 11px 18px);}
.dl-stage[data-skin="wood"] .coffre-band{background:#6b4526;}
.dl-stage[data-skin="wood"] .coffre-belt{background:#4a2e17;}
.dl-stage[data-skin="obsidian"] .coffre-lid, .dl-stage[data-skin="obsidian"] .coffre-body{border-color:#0d0714; box-shadow:0 0 18px #7b3fd066;}
.dl-stage[data-skin="obsidian"] .coffre-lid::after, .dl-stage[data-skin="obsidian"] .coffre-body::after{opacity:.6; mix-blend-mode:multiply;
  background:linear-gradient(135deg, #3a2a4a 0%, #120a1a 45%, #2d1f3d 60%, #0d0714 100%);}
.dl-stage[data-skin="obsidian"] .coffre-band{background:#b98cff; box-shadow:0 0 10px #b98cff;}
.dl-stage[data-skin="obsidian"] .coffre-belt, .dl-stage[data-skin="obsidian"] .coffre-lock{background:#1a0f24; color:#d9c2ff;}
.dl-stage[data-skin="crystal"] .coffre-lid, .dl-stage[data-skin="crystal"] .coffre-body{border-color:rgba(255,255,255,0.85); box-shadow:0 0 22px rgba(190,240,255,0.45);}
.dl-stage[data-skin="crystal"] .coffre-lid::after, .dl-stage[data-skin="crystal"] .coffre-body::after{opacity:.75; mix-blend-mode:screen;
  background:linear-gradient(120deg, transparent 20%, rgba(255,255,255,0.7) 32%, transparent 40%, transparent 60%, rgba(255,255,255,0.45) 70%, transparent 78%);}
.dl-stage[data-skin="crystal"] .coffre-band{background:rgba(255,255,255,0.75);}
.dl-stage[data-skin="crystal"] .coffre-belt, .dl-stage[data-skin="crystal"] .coffre-lock{background:rgba(220,245,255,0.9); color:#2a4a5a;}
.dl-stage[data-skin="dragon"] .coffre-lid, .dl-stage[data-skin="dragon"] .coffre-body{border-color:#5a0b16;}
.dl-stage[data-skin="dragon"] .coffre-lid::after, .dl-stage[data-skin="dragon"] .coffre-body::after{opacity:.55; mix-blend-mode:multiply; background-size:16px 12px;
  background-image:radial-gradient(circle at 50% 110%, #ffffff 0 45%, #7a1020 46% 60%, #c02a3c 61% 100%);}
.dl-stage[data-skin="dragon"] .coffre-band{background:#ffd700;}
.dl-stage[data-skin="dragon"] .coffre-belt{background:#5a0b16;}
.dl-stage[data-skin="dragon"] .coffre-lock{background:linear-gradient(180deg,#ffe680,#ffd700 45%,#b8860b); color:#5a0b16;}

/* ---------- forge ---------- */
.dl-forge-grid, .dl-shop-grid{display:grid; gap:12px; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));}
.dl-shop-grid{grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); margin-bottom:6px;}
.dl-forge-card, .dl-shop-card{background:var(--dl-panel); border:1px solid var(--dl-line); border-radius:16px; padding:14px;
  display:flex; flex-direction:column; gap:8px;}
.dl-forge-card p{margin:0; color:var(--dl-faint); font-size:0.8rem;}
.dl-forge-head{display:flex; align-items:center; gap:8px; font-size:1rem;}
.dl-forge-head :is(i,svg){color:var(--dl-gold);}
.dl-pips{display:flex; gap:5px;}
.dl-pip{flex:1; height:6px; border-radius:999px; background:#2a2f37;}
.dl-pip.on{background:linear-gradient(90deg, var(--dl-gold-deep), var(--dl-gold));}
.dl-forge-vals{font-size:0.95rem; color:var(--dl-soft); display:flex; align-items:center; gap:8px; font-variant-numeric:tabular-nums;}
.dl-forge-vals b{color:var(--dl-ink);}
.dl-forge-vals :is(i,svg){font-size:0.75rem; color:var(--dl-faint);}
.dl-forge-card .dl-btn, .dl-shop-card .dl-btn{align-self:flex-start;}
.dl-maxed, .dl-equipped{font-size:0.85rem; color:#7be38c; display:inline-flex; align-items:center; gap:6px;}
.dl-locked{font-size:0.78rem; color:var(--dl-faint); display:inline-flex; align-items:center; gap:6px;}
.dl-shop-card{align-items:center; text-align:center;}
.dl-shop-card b{font-size:0.9rem;}
.dl-shop-card.eq{border-color:var(--dl-gold);}
.dl-shop-card .dl-btn{align-self:center;}
.dl-decor-prev{width:64px; height:52px; display:flex; align-items:center; justify-content:center; font-size:1.6rem; color:var(--dl-gold);
  background:radial-gradient(circle at 50% 80%, #6b4a0e, transparent 70%);}
.dl-mini-switch{display:flex; align-items:center; gap:8px; font-size:0.8rem; color:var(--dl-soft); cursor:pointer; margin:0;}
/* mini aperçu de coffre */
.dl-skin-prev{position:relative; width:64px; height:52px;}
.dl-sp-lid, .dl-sp-body{position:absolute; left:0; width:100%; border:2px solid #2b2b2e; box-sizing:border-box; background-image:var(--rar-bg); overflow:hidden;}
.dl-sp-lid{top:0; height:22px; border-radius:26px 26px 3px 3px;}
.dl-sp-body{top:22px; height:30px; border-radius:3px;}
.dl-sp-lid::after, .dl-sp-body::after{content:""; position:absolute; inset:0;}
.dl-sp-body::before{content:""; position:absolute; left:50%; top:0; width:6px; height:100%; transform:translateX(-50%); background:#ffffffcc; z-index:1;}
.dl-skin-prev[data-skin="wood"] :is(.dl-sp-lid,.dl-sp-body){border-color:#3b2412;}
.dl-skin-prev[data-skin="wood"] :is(.dl-sp-lid,.dl-sp-body)::after{opacity:.55; mix-blend-mode:multiply; background:repeating-linear-gradient(90deg,#8a5a2b 0 2px,#b07a44 2px 5px,#7a4d22 5px 6px);}
.dl-skin-prev[data-skin="wood"] .dl-sp-body::before{background:#6b4526;}
.dl-skin-prev[data-skin="obsidian"] :is(.dl-sp-lid,.dl-sp-body){border-color:#0d0714; box-shadow:0 0 8px #7b3fd088;}
.dl-skin-prev[data-skin="obsidian"] :is(.dl-sp-lid,.dl-sp-body)::after{opacity:.6; mix-blend-mode:multiply; background:linear-gradient(135deg,#3a2a4a,#120a1a 45%,#2d1f3d 60%,#0d0714);}
.dl-skin-prev[data-skin="obsidian"] .dl-sp-body::before{background:#b98cff; box-shadow:0 0 6px #b98cff;}
.dl-skin-prev[data-skin="crystal"] :is(.dl-sp-lid,.dl-sp-body){border-color:rgba(255,255,255,0.85); box-shadow:0 0 10px rgba(190,240,255,0.5);}
.dl-skin-prev[data-skin="crystal"] :is(.dl-sp-lid,.dl-sp-body)::after{opacity:.75; mix-blend-mode:screen; background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.8) 32%,transparent 42%);}
.dl-skin-prev[data-skin="dragon"] :is(.dl-sp-lid,.dl-sp-body){border-color:#5a0b16;}
.dl-skin-prev[data-skin="dragon"] :is(.dl-sp-lid,.dl-sp-body)::after{opacity:.55; mix-blend-mode:multiply; background-size:8px 6px; background-image:radial-gradient(circle at 50% 110%,#fff 0 45%,#7a1020 46% 60%,#c02a3c 61%);}
.dl-skin-prev[data-skin="dragon"] .dl-sp-body::before{background:#ffd700;}

/* ---------- nid, œuf, dragon ---------- */
.dl-nest{display:flex; align-items:center; gap:18px; background:linear-gradient(135deg, color-mix(in oklab, var(--rar) 14%, #14171b), #0e1013 75%);
  border:1px solid color-mix(in oklab, var(--rar) 40%, transparent); border-radius:18px; padding:16px 18px;}
.dl-nest-info{flex:1; display:flex; flex-direction:column; gap:6px; min-width:0;}
.dl-nest-info > span{font-size:0.82rem; color:var(--dl-soft);}
.dl-nest-info .dl-keybar-track{margin:2px 0 0;}
.dl-egg, .dl-pet{flex:0 0 auto; width:88px; height:88px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(circle at 50% 70%, color-mix(in oklab, var(--rar) 35%, #2a1c08), transparent 70%);}
.dl-egg :is(i,svg){font-size:3rem; color:color-mix(in oklab, var(--rar) 55%, #fff3dc); filter:drop-shadow(0 0 10px color-mix(in oklab, var(--rar) 60%, transparent));
  animation:dl-wobble 2.6s ease-in-out infinite; transform-origin:50% 90%;}
.dl-egg.cracked :is(i,svg){animation-duration:1.4s;}
.dl-egg.cracked2 :is(i,svg){animation-duration:0.7s;}
@keyframes dl-wobble{0%,70%,100%{transform:rotate(0);} 76%{transform:rotate(-9deg);} 84%{transform:rotate(8deg);} 92%{transform:rotate(-4deg);}}
.dl-pet :is(i,svg){color:var(--rar); filter:drop-shadow(0 0 12px color-mix(in oklab, var(--rar) 60%, transparent)); animation:dl-breathe 3.2s ease-in-out infinite;}
.dl-pet-0 :is(i,svg){font-size:1.6rem;} .dl-pet-1 :is(i,svg){font-size:2.2rem;} .dl-pet-2 :is(i,svg){font-size:2.9rem;} .dl-pet-3 :is(i,svg){font-size:3.5rem;}
@keyframes dl-breathe{0%,100%{transform:scale(1);} 50%{transform:scale(1.06);}}
.dl-pet-name{font-size:1.1rem; display:flex; align-items:center; gap:8px;}
.dl-pet-stage{font-size:0.8rem !important; letter-spacing:0.08em; text-transform:uppercase; font-weight:600;}
.dl-rename{background:none; border:none; color:var(--dl-faint); cursor:pointer; padding:2px 6px; border-radius:6px; font-size:0.8rem;}
.dl-rename:hover{color:var(--dl-gold);}
.dl-hatch{position:fixed; inset:0; z-index:900; display:flex; align-items:center; justify-content:center; padding:16px;
  background:rgba(5,6,8,0.7); backdrop-filter:blur(3px); opacity:0; transition:opacity .3s ease;}
.dl-hatch[hidden]{display:none;}
.dl-hatch.open{opacity:1;}
.dl-hatch-box{width:min(380px,100%); text-align:center; background:#16191e; border:1px solid color-mix(in oklab, var(--rar) 60%, transparent);
  border-radius:20px; padding:26px 22px; box-shadow:0 0 50px color-mix(in oklab, var(--rar) 35%, transparent);}
.dl-hatch-icon{font-size:4rem; color:var(--rar); filter:drop-shadow(0 0 18px var(--rar)); animation:dl-pop-in .7s cubic-bezier(.2,1.5,.4,1);}
.dl-hatch-box h3{font-size:1.6rem; margin:10px 0 8px;}
.dl-hatch-box p{color:var(--dl-soft); font-size:0.9rem; line-height:1.5;}

/* ---------- collection ---------- */
.dl-coll{background:var(--dl-panel); border:1px solid var(--dl-line); border-radius:16px; padding:8px 14px;}
.dl-coll-row{display:flex; align-items:center; gap:12px; padding:8px 0;}
.dl-coll-row + .dl-coll-row{border-top:1px solid var(--dl-line);}
.dl-coll-slot{flex:0 0 96px; font-size:0.82rem; color:var(--dl-soft); display:flex; align-items:center; gap:6px;}
.dl-coll-slot :is(i,svg){color:var(--dl-faint);}
.dl-coll-row.complete .dl-coll-slot{color:var(--dl-gold);}
.dl-coll-check{color:#7be38c !important;}
.dl-coll-cells{flex:1; display:grid; grid-template-columns:repeat(9, minmax(0, 46px)); gap:6px;}
.dl-item{position:relative; aspect-ratio:1; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:0.8rem;
  background:#0e1013; border:1px solid var(--dl-line); color:#3a3f48;}
.dl-item.got{background:linear-gradient(160deg, color-mix(in oklab, var(--rar) 35%, #14171b), #0e1013); border-color:color-mix(in oklab, var(--rar) 70%, transparent);
  color:var(--rar); box-shadow:0 0 8px color-mix(in oklab, var(--rar) 25%, transparent);}
.dl-item small{position:absolute; right:2px; bottom:0; font-size:0.55rem; color:var(--dl-ink); font-weight:700;}

/* ---------- statistiques ---------- */
.dl-stats-4{grid-template-columns:repeat(4, 1fr);}
.dl-odds{background:var(--dl-panel); border:1px solid var(--dl-line); border-radius:16px; padding:10px 14px;}
.dl-odds-row{display:grid; grid-template-columns:110px 1fr 120px; align-items:center; gap:12px; padding:7px 0;}
.dl-odds-name{font-size:0.8rem; letter-spacing:0.06em; text-transform:uppercase;}
.dl-odds-bars{display:flex; flex-direction:column; gap:3px;}
.dl-odds-bar{height:6px; border-radius:999px; min-width:2px;}
.dl-odds-bar.real{background:var(--rar);}
.dl-odds-bar.theo{background:#3a3f48;}
.dl-odds-vals{text-align:right; font-variant-numeric:tabular-nums; display:flex; flex-direction:column; line-height:1.15;}
.dl-odds-vals b{font-size:0.85rem;} .dl-odds-vals small{font-size:0.7rem; color:var(--dl-faint);}
.dl-odds-legend{display:flex; gap:16px; justify-content:flex-end; font-size:0.74rem; color:var(--dl-faint); padding-top:6px; border-top:1px solid var(--dl-line); margin-top:4px;}
.dl-lg{display:inline-block; width:14px; height:6px; border-radius:999px; vertical-align:middle; margin-right:4px;}
.dl-lg.real{background:linear-gradient(90deg,#00ff00,#4763ff,#ffd700);} .dl-lg.theo{background:#3a3f48;}
.dl-hist{list-style:none; margin:0; padding:6px 14px; background:var(--dl-panel); border:1px solid var(--dl-line); border-radius:16px;}
.dl-hist li{display:grid; grid-template-columns:12px 1fr auto auto 90px; align-items:center; gap:10px; padding:8px 0; font-size:0.85rem;}
.dl-hist li + li{border-top:1px solid var(--dl-line);}
.dl-h-dot{width:10px; height:10px; border-radius:50%; background-image:var(--rar-bg); box-shadow:0 0 6px var(--rar);}
.dl-h-name{font-size:0.82rem; letter-spacing:0.06em; text-transform:uppercase;}
.dl-h-extra{display:flex; gap:6px; color:var(--dl-soft);}
.dl-h-gold{color:#ffd700;} .dl-h-pity{color:#6ec1ff;} .dl-h-egg{color:#fff3b0;} .dl-h-item{color:var(--rar);} .dl-h-ev{color:#ff8a1f;}
.dl-h-gold-amt{font-variant-numeric:tabular-nums; color:var(--dl-ink);}
.dl-h-gold-amt :is(i,svg){color:var(--dl-gold);}
.dl-h-time{color:var(--dl-faint); font-size:0.75rem; text-align:right;}

/* ---------- tas d'or : décors & dragon endormi ---------- */
.dl-heap .dl-decor{display:none;}
.dl-heap.dl-show-gems .dl-decor-gems, .dl-heap.dl-show-sword .dl-decor-sword, .dl-heap.dl-show-crown .dl-decor-crown,
.dl-heap.dl-show-shield .dl-decor-shield, .dl-heap.dl-show-chalice .dl-decor-chalice, .dl-heap.dl-show-chest .dl-decor-chest,
.dl-heap.dl-show-potions .dl-decor-potions, .dl-heap.dl-show-scepter .dl-decor-scepter, .dl-heap.dl-show-candle .dl-decor-candle, .dl-heap.dl-show-map .dl-decor-map{display:inline;}
.dl-heap .dl-sleeper{display:none;}
.dl-heap.dl-heap-max .dl-sleeper{display:inline;}
.dl-heap .dl-sleeper{transform-box:fill-box; transform-origin:50% 100%; animation:dl-sleep 4s ease-in-out infinite;}
@keyframes dl-sleep{0%,100%{transform:scaleY(1);} 50%{transform:scaleY(1.035);}}
.dl-zzz{font:700 12px 'Fraunces', serif; fill:#fff8d6; opacity:0; animation:dl-zzz 3.6s ease-in-out infinite;}
.dl-zzz2{animation-delay:.6s; font-size:14px;} .dl-zzz3{animation-delay:1.2s; font-size:17px;}
@keyframes dl-zzz{0%{opacity:0; transform:translateY(4px);} 30%{opacity:1;} 80%{opacity:.8;} 100%{opacity:0; transform:translateY(-8px);}}
.dl-heap.dl-heap-max{opacity:0.4;}

/* ---------- mobile ---------- */
@media (max-width:600px){
  .dl-tabs{gap:5px;}
  .dl-tabs button{padding:9px 13px;}
  .dl-tabs button[aria-selected="true"] .dl-tab-label{display:inline;}
  .dl-stats-4{grid-template-columns:repeat(2, 1fr);}
  .dl-coll-row{flex-direction:column; align-items:stretch; gap:6px;}
  .dl-coll-slot{flex:none;}
  .dl-odds-row{grid-template-columns:84px 1fr 60px; gap:8px;}
  .dl-hist li{grid-template-columns:10px 1fr auto 64px; gap:8px;}
  .dl-hist .dl-h-extra{grid-column:2 / 3; grid-row:2;}
  .dl-nest{gap:12px; padding:14px;}
  .dl-egg, .dl-pet{width:70px; height:70px;}
}
@media (prefers-reduced-motion: reduce){
  .dl-egg :is(i,svg), .dl-pet :is(i,svg), .dl-heap .dl-sleeper, .dl-zzz, .dl-hatch-icon{animation:none;}
  .dl-zzz{opacity:.8;}
}

/* ---------- « Ton trésor » (butin) ---------- */
.dl-treasure{display:flex; align-items:center; gap:18px; margin:-12px 0 14px; padding:14px 18px; border-radius:18px;
  background:radial-gradient(120% 140% at 20% 100%, rgba(244,185,66,0.16), transparent 60%), var(--dl-panel); border:1px solid #5a4418;}
.dl-treasure-art{flex:0 0 auto; width:340px; max-width:48%; height:190px; display:flex; align-items:flex-end; justify-content:center; overflow:visible;}
.dl-treasure-art svg{width:100%; height:100%; transform:scale(calc(0.25 + var(--heap) * 0.75)); transform-origin:50% 100%;
  filter:drop-shadow(0 -4px 16px rgba(244,185,66,0.35)); overflow:visible;}
.dl-treasure-art .dl-decor, .dl-treasure-art .dl-sleeper{display:none;}
.dl-treasure-art.dl-show-gems .dl-decor-gems, .dl-treasure-art.dl-show-sword .dl-decor-sword,
.dl-treasure-art.dl-show-crown .dl-decor-crown, .dl-treasure-art.dl-heap-max .dl-sleeper,
.dl-treasure-art.dl-show-shield .dl-decor-shield, .dl-treasure-art.dl-show-chalice .dl-decor-chalice, .dl-treasure-art.dl-show-chest .dl-decor-chest,
.dl-treasure-art.dl-show-potions .dl-decor-potions, .dl-treasure-art.dl-show-scepter .dl-decor-scepter, .dl-treasure-art.dl-show-candle .dl-decor-candle, .dl-treasure-art.dl-show-map .dl-decor-map{display:inline;}
.dl-treasure-art .dl-sleeper{transform-box:fill-box; transform-origin:50% 100%; animation:dl-sleep 4s ease-in-out infinite;}
.dl-treasure-info{flex:1; display:flex; flex-direction:column; gap:6px; min-width:0;}
.dl-treasure-info b{font-size:1.1rem; color:var(--dl-ink);}
.dl-treasure-info span{font-size:0.85rem; color:var(--dl-soft);}
.dl-treasure.max .dl-treasure-info span{color:#ffe9b0;}
#dl-treasure:not(:empty) + .dl-express{margin-top:0;}
.dl-rar-solid{color:var(--rar);}
.dl-forge-grid{grid-template-columns:repeat(2, 1fr);}
.dl-shop-grid + .dl-hoard-sub{margin-top:16px;}
@media (max-width:600px){
  .dl-forge-grid{grid-template-columns:1fr;}
  .dl-treasure{flex-direction:column; align-items:stretch; text-align:center; gap:10px;}
  .dl-treasure-art{width:100%; max-width:none; height:170px;}
}
@media (prefers-reduced-motion: reduce){ .dl-treasure-art .dl-sleeper{animation:none;} }

/* ---------- l'objet sort du coffre ---------- */
.dl-item-pop{position:absolute; left:50%; top:50%; z-index:4; width:74px; height:74px; margin:-37px 0 0 -37px; pointer-events:auto;
  opacity:0; transform:translate(0, 10px) scale(0.2) rotate(-20deg);}
.dl-item-pop.go{animation:dl-item-out 1s cubic-bezier(.2,1.4,.4,1) forwards, dl-item-float 2.6s ease-in-out 1s infinite;}
.dl-item-pop-card{position:relative; z-index:1; width:100%; height:100%; border-radius:18px; display:flex; align-items:center; justify-content:center;
  font-size:2.1rem; color:#fff; background:linear-gradient(160deg, color-mix(in oklab, var(--rar) 55%, #1a1d22), #0e1013);
  border:2px solid var(--rar); box-shadow:0 0 22px color-mix(in oklab, var(--rar) 70%, transparent), inset 0 0 14px color-mix(in oklab, var(--rar) 40%, transparent);}
.dl-item-pop-card :is(i,svg){color:var(--rar); filter:drop-shadow(0 0 8px var(--rar));}
.dl-item-pop-rays{position:absolute; left:50%; top:50%; width:190px; height:190px; margin:-95px 0 0 -95px; border-radius:50%; opacity:.8;
  background:repeating-conic-gradient(from 0deg, color-mix(in oklab, var(--rar) 70%, transparent) 0deg 8deg, transparent 8deg 22deg);
  -webkit-mask:radial-gradient(circle, #000 18%, transparent 68%); mask:radial-gradient(circle, #000 18%, transparent 68%);
  animation:coffre-spin 7s linear infinite;}
@keyframes dl-item-out{
  0%{opacity:0; transform:translate(0, 10px) scale(0.2) rotate(-20deg);}
  35%{opacity:1; transform:translate(0, -175px) scale(1.25) rotate(8deg);}
  70%{transform:translate(0, -140px) scale(0.95) rotate(-3deg);}
  100%{opacity:1; transform:translate(0, -150px) scale(1) rotate(0);}
}
@keyframes dl-item-float{0%,100%{transform:translate(0, -150px);} 50%{transform:translate(0, -160px);}}
@media (max-width:600px){
  .dl-item-pop{width:60px; height:60px; margin:-30px 0 0 -30px;}
  .dl-item-pop-card{font-size:1.7rem;}
  @keyframes dl-item-out{
    0%{opacity:0; transform:translate(0, 10px) scale(0.2) rotate(-20deg);}
    35%{opacity:1; transform:translate(0, -150px) scale(1.25) rotate(8deg);}
    70%{transform:translate(0, -118px) scale(0.95) rotate(-3deg);}
    100%{opacity:1; transform:translate(0, -128px) scale(1) rotate(0);}
  }
  @keyframes dl-item-float{0%,100%{transform:translate(0, -128px);} 50%{transform:translate(0, -136px);}}
}
@media (prefers-reduced-motion: reduce){
  .dl-item-pop.go{animation:none; opacity:1; transform:translate(0, -150px);}
  .dl-item-pop-rays{animation:none;}
}

/* ---------- roi de la montagne (10 M) ---------- */
.dl-heap .dl-king, .dl-treasure-art .dl-king{display:none;}
.dl-heap.dl-heap-king .dl-king, .dl-treasure-art.dl-heap-king .dl-king{display:inline;}
.dl-heap.dl-heap-king{opacity:0.4;}
.dl-king{transform-box:fill-box; transform-origin:50% 100%; animation:dl-breathe 3.6s ease-in-out infinite;}
.dl-arken{animation:dl-arken 2.4s ease-in-out infinite;}
@keyframes dl-arken{0%,100%{opacity:1; filter:drop-shadow(0 0 4px #bfe6ff);} 50%{opacity:.85; filter:drop-shadow(0 0 12px #ffffff) hue-rotate(40deg);}}
.dl-treasure.king{border-color:#bfe6ff66; background:radial-gradient(120% 140% at 20% 100%, rgba(191,230,255,0.14), transparent 60%), radial-gradient(120% 140% at 80% 0%, rgba(244,185,66,0.16), transparent 60%), var(--dl-panel);}
.dl-treasure.king .dl-treasure-info b{color:#ffe27a;}

/* ---------- plusieurs œufs / dragons ---------- */
.dl-nest-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px;}
.dl-hatch-icons{display:flex; justify-content:center; gap:14px;}
.dl-hatch-icon{font-size:4rem; color:var(--rar); filter:drop-shadow(0 0 18px var(--rar)); animation:dl-pop-in .7s cubic-bezier(.2,1.5,.4,1);}
.dl-hatch-icons .dl-hatch-icon + .dl-hatch-icon{font-size:3rem; align-self:flex-end;}
.dl-cheat-btns{display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end;}
.dl-cheats .dl-btn:disabled{opacity:.4; cursor:not-allowed;}
@media (max-width:600px){ .dl-nest-grid{grid-template-columns:1fr;} }
@media (prefers-reduced-motion: reduce){ .dl-king, .dl-arken{animation:none;} }
#dl-nest, #dl-collection, #dl-dragons{scroll-margin-top:90px;}

/* ---------- en-tête mobile : or compact + ligne « Tricheur » ---------- */
.dl-gold-short{display:none;}
.dl-cheater-line{display:none;}
@media (max-width:600px){
  .dl-gold-full{display:none;}
  .dl-gold-short{display:inline;}
  .dl-brand .dl-cheater{display:none !important;}
  .dl-cheater-line:not([hidden]){display:flex; align-items:center; justify-content:center; gap:6px; padding:5px 12px;
    font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:#fff;
    background:linear-gradient(90deg,#7a1020,#D7263D,#7a1020); box-shadow:0 2px 10px rgba(215,38,61,0.35);}
  .dl-cheater-line small{text-transform:none; letter-spacing:0; opacity:.8; font-size:0.68rem; font-weight:500;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0;}
}

/* ---------- apparence « Nébuleuse » ---------- */
.dl-stage[data-skin="nebula"] .coffre-lid, .dl-stage[data-skin="nebula"] .coffre-body{border-color:#140f3a; box-shadow:0 0 22px #7b5cff88;}
.dl-stage[data-skin="nebula"] .coffre-lid::after, .dl-stage[data-skin="nebula"] .coffre-body::after{opacity:.72; mix-blend-mode:multiply;
  background:
    radial-gradient(1.5px 1.5px at 18% 30%, #fff 60%, transparent), radial-gradient(1.2px 1.2px at 62% 18%, #fff 60%, transparent),
    radial-gradient(1.8px 1.8px at 80% 64%, #fff 60%, transparent), radial-gradient(1.2px 1.2px at 40% 78%, #fff 60%, transparent),
    radial-gradient(1.4px 1.4px at 90% 22%, #fff 60%, transparent), radial-gradient(1px 1px at 8% 70%, #fff 60%, transparent),
    radial-gradient(60% 80% at 30% 40%, #6a3fb8 0%, transparent 70%), radial-gradient(60% 80% at 75% 70%, #1d4fa8 0%, transparent 70%),
    linear-gradient(135deg, #241a55, #0b0d2a 55%, #2e1446);}
.dl-stage[data-skin="nebula"] .coffre-band{background:#cfd8ff; box-shadow:0 0 10px #9fb4ff;}
.dl-stage[data-skin="nebula"] .coffre-belt, .dl-stage[data-skin="nebula"] .coffre-lock{background:#140f3a; color:#cfd8ff;}
.dl-skin-prev[data-skin="nebula"] :is(.dl-sp-lid,.dl-sp-body){border-color:#140f3a; box-shadow:0 0 8px #7b5cff99;}
.dl-skin-prev[data-skin="nebula"] :is(.dl-sp-lid,.dl-sp-body)::after{opacity:.72; mix-blend-mode:multiply;
  background:radial-gradient(1px 1px at 20% 30%, #fff 60%, transparent), radial-gradient(1px 1px at 70% 60%, #fff 60%, transparent),
    radial-gradient(1px 1px at 45% 80%, #fff 60%, transparent), radial-gradient(60% 80% at 30% 40%, #6a3fb8, transparent 70%), linear-gradient(135deg,#241a55,#0b0d2a 55%,#2e1446);}
.dl-skin-prev[data-skin="nebula"] .dl-sp-body::before{background:#cfd8ff; box-shadow:0 0 6px #9fb4ff;}

/* ---------- clé de gratitude ---------- */
.dl-gratkey{margin:4px 0 0; font-size:0.8rem; color:#e8c98a;}
.dl-gratkey :is(i,svg){color:var(--dl-gold);}
.dl-gratkey.done{color:#9be8a8;} .dl-gratkey.done :is(i,svg){color:#7be38c;}

/* ---------- icône SVG maison (fleur-de-lys) ---------- */
.dl-svg-icon{display:inline-block; width:1em; height:1em; line-height:1; vertical-align:-0.125em;}
.dl-svg-icon svg{width:100%; height:100%; display:block;}

/* ---------- nouveaux événements ---------- */
.dl-stage[data-event="saintjean"]{background:radial-gradient(120% 90% at 50% 40%, #0f2a66, #06122e);}
.dl-stage[data-event="darix"]{background:radial-gradient(120% 90% at 50% 40%, #3a1410, #120606);}
.dl-stage[data-event="ete"]{background:radial-gradient(120% 90% at 50% 40%, #13333d, #0a1418);}
.dl-shell:has(.dl-stage[data-event="saintjean"]) .dl-event-banner{background:linear-gradient(90deg,#003da5,#0a2a78); border-color:#ffffff55; color:#fff;}
.dl-shell:has(.dl-stage[data-event="darix"]) .dl-event-banner{background:linear-gradient(90deg,#7a1a14,#b8453a 50%,#8a4a10); border-color:#f2c46d66; color:#ffe9c2;}
.dl-shell:has(.dl-stage[data-event="ete"]) .dl-event-banner{background:linear-gradient(90deg,#0d4a5a,#6a5a10); border-color:#ffd23f66; color:#fff6c9;}

/* ---------- chances réelles v2 : un trait = l'annoncé, la barre = l'obtenu ---------- */
.dl-odds-empty{margin:4px 0 8px; font-size:0.82rem; color:var(--dl-faint);}
.dl-odds-track{position:relative; height:10px; border-radius:999px; background:#0b0d10; border:1px solid var(--dl-line); overflow:visible;}
.dl-odds-fill{height:100%; border-radius:999px; background:var(--rar); box-shadow:0 0 8px color-mix(in oklab, var(--rar) 50%, transparent); transition:width .6s ease;}
.dl-odds-track.unlucky .dl-odds-fill{opacity:.55;}
.dl-odds-mark{position:absolute; left:50%; top:-4px; bottom:-4px; width:2px; margin-left:-1px; border-radius:2px; background:#d9d2c3; box-shadow:0 0 0 1px rgba(0,0,0,.5);}
.dl-odds-vals b{font-size:0.88rem;} .dl-odds-n{font-weight:400; color:var(--dl-faint); font-size:0.72rem;}
.dl-odds-vals{text-align:right;}
.dl-lg.real{background:linear-gradient(90deg,#00ff00,#4763ff,#ffd700); width:18px;}
.dl-lg.mark{width:2px; height:12px; background:#d9d2c3; border-radius:2px;}
@media (max-width:600px){ .dl-odds-row{grid-template-columns:84px 1fr 92px; gap:8px;} .dl-odds-vals small{font-size:0.66rem;}
  .dl-odds-name{font-size:0.68rem; letter-spacing:0.02em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;} }

/* ---------- bougeoir ---------- */
.dl-flame{transform-box:fill-box; transform-origin:50% 100%; animation:dl-flicker 1.4s ease-in-out infinite;}
@keyframes dl-flicker{0%,100%{transform:scale(1,1);} 30%{transform:scale(.9,1.08);} 60%{transform:scale(1.06,.94);}}
@media (prefers-reduced-motion: reduce){ .dl-flame{animation:none;} }

/* ---------- 4 nouvelles apparences ---------- */
/* Givre */
.dl-stage[data-skin="frost"] .coffre-lid, .dl-stage[data-skin="frost"] .coffre-body{border-color:#bfe6ff; box-shadow:0 0 20px rgba(160,220,255,0.55);}
.dl-stage[data-skin="frost"] .coffre-lid::after, .dl-stage[data-skin="frost"] .coffre-body::after{opacity:.8; mix-blend-mode:screen;
  background:radial-gradient(circle at 15% 20%, rgba(255,255,255,.9) 0 3px, transparent 4px), radial-gradient(circle at 70% 35%, rgba(255,255,255,.8) 0 2px, transparent 3px),
    radial-gradient(circle at 40% 75%, rgba(255,255,255,.8) 0 2.5px, transparent 3.5px), radial-gradient(circle at 88% 80%, rgba(255,255,255,.9) 0 2px, transparent 3px),
    linear-gradient(180deg, rgba(210,240,255,.65), rgba(120,190,255,.15) 45%, rgba(210,240,255,.4));}
.dl-stage[data-skin="frost"] .coffre-band{background:#eaf7ff; box-shadow:0 0 8px #bfe6ff;}
.dl-stage[data-skin="frost"] .coffre-belt, .dl-stage[data-skin="frost"] .coffre-lock{background:#9fd6ff; color:#0d3350;}
/* Magma */
.dl-stage[data-skin="magma"] .coffre-lid, .dl-stage[data-skin="magma"] .coffre-body{border-color:#1a0a06; box-shadow:0 0 24px rgba(255,106,0,0.55);}
.dl-stage[data-skin="magma"] .coffre-lid::after, .dl-stage[data-skin="magma"] .coffre-body::after{opacity:.8; mix-blend-mode:multiply;
  background:linear-gradient(115deg, transparent 0 22%, #ffb347 22% 24%, transparent 24% 58%, #ff8a1f 58% 60%, transparent 60%),
    linear-gradient(35deg, transparent 0 40%, #ffb347 40% 41.5%, transparent 41.5%), linear-gradient(180deg, #4a2016, #1c0a06);}
.dl-stage[data-skin="magma"] .coffre-band{background:#ff6a00; box-shadow:0 0 12px #ff6a00;}
.dl-stage[data-skin="magma"] .coffre-belt, .dl-stage[data-skin="magma"] .coffre-lock{background:#1c0a06; color:#ffb347;}
/* Royal */
.dl-stage[data-skin="royal"] .coffre-lid, .dl-stage[data-skin="royal"] .coffre-body{border-color:#b8860b; border-width:5px; box-shadow:0 0 18px rgba(255,215,0,0.45);}
.dl-stage[data-skin="royal"] .coffre-lid::after, .dl-stage[data-skin="royal"] .coffre-body::after{opacity:.55; mix-blend-mode:screen; background-size:22px 22px;
  background-image:radial-gradient(circle at 50% 50%, rgba(255,230,140,.9) 0 2px, transparent 2.5px), linear-gradient(45deg, transparent 46%, rgba(255,215,0,.5) 48% 52%, transparent 54%),
    linear-gradient(-45deg, transparent 46%, rgba(255,215,0,.5) 48% 52%, transparent 54%);}
.dl-stage[data-skin="royal"] .coffre-band{background:#5a1a7a; box-shadow:inset 0 0 0 2px #ffd700;}
.dl-stage[data-skin="royal"] .coffre-belt{background:#5a1a7a;}
.dl-stage[data-skin="royal"] .coffre-lock{background:linear-gradient(180deg,#ffe680,#ffd700 45%,#b8860b); color:#5a1a7a;}
/* Fleurdelisé (drapeau du Québec : la couleur de rareté forme la croix) */
.dl-stage[data-skin="quebec"] .coffre-lid, .dl-stage[data-skin="quebec"] .coffre-body{border-color:#002a75;}
.dl-stage[data-skin="quebec"] .coffre-lid::after, .dl-stage[data-skin="quebec"] .coffre-body::after{opacity:.9; mix-blend-mode:multiply;
  background:linear-gradient(90deg, transparent 0 44%, #fff 44% 56%, transparent 56%), linear-gradient(0deg, transparent 0 40%, #fff 40% 60%, transparent 60%), #003da5;}
.dl-stage[data-skin="quebec"] .coffre-band{background:#ffffff;}
.dl-stage[data-skin="quebec"] .coffre-belt, .dl-stage[data-skin="quebec"] .coffre-lock{background:#003da5; color:#fff;}
/* aperçus boutique */
.dl-skin-prev[data-skin="frost"] :is(.dl-sp-lid,.dl-sp-body){border-color:#bfe6ff; box-shadow:0 0 8px rgba(160,220,255,.6);}
.dl-skin-prev[data-skin="frost"] :is(.dl-sp-lid,.dl-sp-body)::after{opacity:.8; mix-blend-mode:screen; background:radial-gradient(circle at 25% 30%, #fff 0 1.5px, transparent 2px), radial-gradient(circle at 70% 60%, #fff 0 1.5px, transparent 2px), linear-gradient(180deg, rgba(210,240,255,.65), rgba(120,190,255,.15));}
.dl-skin-prev[data-skin="frost"] .dl-sp-body::before{background:#eaf7ff;}
.dl-skin-prev[data-skin="magma"] :is(.dl-sp-lid,.dl-sp-body){border-color:#1a0a06; box-shadow:0 0 8px rgba(255,106,0,.6);}
.dl-skin-prev[data-skin="magma"] :is(.dl-sp-lid,.dl-sp-body)::after{opacity:.8; mix-blend-mode:multiply; background:linear-gradient(115deg, transparent 0 30%, #ffb347 30% 34%, transparent 34%), linear-gradient(180deg,#4a2016,#1c0a06);}
.dl-skin-prev[data-skin="magma"] .dl-sp-body::before{background:#ff6a00; box-shadow:0 0 6px #ff6a00;}
.dl-skin-prev[data-skin="royal"] :is(.dl-sp-lid,.dl-sp-body){border-color:#b8860b; border-width:3px; box-shadow:0 0 8px rgba(255,215,0,.5);}
.dl-skin-prev[data-skin="royal"] :is(.dl-sp-lid,.dl-sp-body)::after{opacity:.55; mix-blend-mode:screen; background-size:10px 10px; background-image:radial-gradient(circle, rgba(255,230,140,.9) 0 1.2px, transparent 1.6px);}
.dl-skin-prev[data-skin="royal"] .dl-sp-body::before{background:#5a1a7a; box-shadow:inset 0 0 0 1px #ffd700;}
.dl-skin-prev[data-skin="quebec"] :is(.dl-sp-lid,.dl-sp-body){border-color:#002a75;}
.dl-skin-prev[data-skin="quebec"] :is(.dl-sp-lid,.dl-sp-body)::after{opacity:.9; mix-blend-mode:multiply; background:linear-gradient(90deg, transparent 0 44%, #fff 44% 56%, transparent 56%), linear-gradient(0deg, transparent 0 40%, #fff 40% 60%, transparent 60%), #003da5;}
.dl-skin-prev[data-skin="quebec"] .dl-sp-body::before{background:#fff;}

/* très petits écrans : onglets en icônes seulement (même l'actif), sur une seule ligne */
@media (max-width:420px){
  .dl-tabs{flex-wrap:nowrap;}
  .dl-tabs button[aria-selected="true"] .dl-tab-label{display:none;}
  .dl-tabs button{padding:9px 14px;}
}
