:root{
  --sol-a:#fff3a1; --sol-b:#f6c300; --sol-c:#d6a500;
  --bnb-a:#f0f0f0; --bnb-b:#cfcfcf; --bnb-c:#b5b5b5;
  --ink:#0a2540; --muted:#566b8c; --card:#ffffff; --bg:#fffef6;
}
.dl-wrap{padding:56px 16px;background:var(--bg)}
.dl-head{text-align:center;margin-bottom:16px}
.dl-head h2{margin:0 0 6px;font-size:1.8rem}
.dl-head p{margin:0;opacity:.7}

.dl-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:28px;align-items:start;max-width:980px;margin:0 auto;overflow:visible}
@media (max-width:860px){.dl-grid{grid-template-columns:1fr}}

.tank{display:flex;flex-direction:column;gap:10px;overflow:visible}
.cap{display:flex;justify-content:space-between;align-items:center}
.pill{font-weight:800;font-size:.85rem;padding:6px 10px;border-radius:999px;line-height:1;box-shadow:0 3px 10px rgba(0,0,0,.06)}
.pill.sol{background:var(--sol-b);color:#151515}
.pill.bnb{background:#ececec;color:#222}
.val{font-weight:900;font-variant-numeric:tabular-nums}

.waterbox{
  position:relative;height:200px;border:2px solid rgba(0,0,0,.08);
  border-radius:16px;background:#fff;overflow:hidden;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
@media (max-width:640px){.waterbox{height:180px}}

.water{
  position:absolute;left:0;bottom:0;width:100%;
  height:var(--level,0%);transition:height 2.25s cubic-bezier(.2,.8,.2,1);
  border-bottom-left-radius:14px;border-bottom-right-radius:14px;isolation:isolate;
}
.water.sol{background:linear-gradient(180deg,var(--sol-a),var(--sol-b) 55%,var(--sol-c))}
.water.bnb{background:linear-gradient(180deg,var(--bnb-a),var(--bnb-b) 55%,var(--bnb-c))}
.layer.wave{
  position:absolute;
  top:0;left:0;right:0;
  height:22px;opacity:.7;
  background:url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="20" viewBox="0 0 100 20">\
<path d="M0,10 Q25,20 50,10 T100,10" fill="none" stroke="rgba(255,255,255,0.35)" stroke-width="2"/></svg>') repeat-x;
  background-size:100px 20px;animation:wave 3s linear infinite;
}
.layer.wave.slow{opacity:.5;background-size:80px 20px;animation-duration:4s;animation-delay:-1.4s}
@keyframes wave{from{background-position:0 0}to{background-position:100px 0}}

/* Flüssigkeit langsamer & geschmeidiger */
@media (prefers-reduced-motion: reduce){
  .water{ transition-duration: .6s; }
}

/* Waves bleiben oben; gern minimal langsamer für Tiefe */
.layer.wave{ animation-duration: 3.8s; }
.layer.wave.slow{ animation-duration: 5.2s; }

/* Announcer */
.duel-announcer{
  display:flex; align-items:center; justify-content:center;
  gap:10px; margin:16px 0 20px;
  font-weight:800; letter-spacing:.2px;
}
.announcer-emoji{ display:none !important; font-size:1.25rem; filter: drop-shadow(0 2px 6px rgba(0,0,0,.12)); }
.announcer-text{
  padding:.35rem .7rem; border-radius:10px;
  background: #fffbe8; color:#6a5300;
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
}

/* Replay-Button (Ghost-Pill) */
.replay-ghost{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 14px; border-radius:999px;
  background: rgba(255,255,255,.75);
  border:1px solid rgba(0,0,0,.08);
  color:#0f0f0f; font-weight:700; text-decoration:none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.replay-ghost:hover{
  transform: translateY(-1px);
  background:#fff;
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
}
.re-icon{
  display:inline-block; font-size:1rem; transform-origin: 50% 60%;
  transition: transform .25s ease;
}
.replay-ghost:hover .re-icon{ transform: rotate(-12deg) }

/* Kleinigkeiten */
.dl-controls{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; justify-content:center; margin-top:14px }
.divider{ opacity:.35 }
.timer{ opacity:.85 }
.updated{ opacity:.55; font-size:.9rem; display:block }

.milestones{
  position:absolute;inset:8px 8px auto 8px;display:flex;justify-content:space-between;
  font-size:.8rem;color:var(--muted);opacity:.7;pointer-events:none;
}
.milestones span:nth-child(2){position:absolute;left:50%;transform:translateX(-50%)}

.bubbles{position:absolute;inset:0;pointer-events:none}
.bub{position:absolute;bottom:0;background:rgba(255,255,255,.35);border-radius:50%;
     animation:rise linear forwards}
@keyframes rise{0%{transform:translateY(0) scale(0);opacity:0}
10%{opacity:.9;transform:scale(1)}
90%{opacity:.8}
100%{transform:translateY(-110%) scale(1);opacity:0}}

.badge{display:inline-block;padding:6px 10px;border-radius:8px;background:#fff1a8;color:#6a5300;font-size:.9rem}
.hidden{display:none}

.dl-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center;margin-top:12px}
.dl-controls .sep{opacity:.35}

/* mini info button (inline neben Subline) */
.duel-sub{
  display:inline-flex; align-items:center; gap:10px; /* +10px Abstand zur Subline */
}
.mini-info{
  --sz: 2.1em;            /* skaliert mit Schrifthöhe, doppelte Größe */
  width: var(--sz); height: var(--sz);
  display:inline-grid; place-items:center;
  border: none; border-radius: 50%;
  background: #e9ecef; color: #6c757d;
  cursor: pointer; padding:0;
  line-height: 1; flex: 0 0 auto;
  transition: transform .15s ease, background .2s ease, color .2s ease;
}
.mini-info svg{ width: 80%; height: 80%; display:block; }
.mini-info svg circle{ fill: currentColor; opacity:.25 }
.mini-info svg rect{ fill: currentColor; opacity:.85 }
.mini-info:hover{ transform: translateY(-1px); background:#f6c300; color:#6c3800 }
.mini-info:active{ transform: translateY(0) scale(.98) }
.mini-info:focus-visible{
  outline: 2px solid #adb5bd; outline-offset: 2px; border-radius:50%;
}

/* sorgt dafür, dass Scrollen die fixe Navbar ausgleicht */
#duel-explainer{ scroll-margin-top: 88px; }
.replay{opacity:.75;text-decoration:none;font-weight:700}
.replay:hover{opacity:1;text-decoration:underline}

.tank.winner .val{text-shadow:0 0 12px rgba(246,195,0,.8)}
.tank.winner .waterbox{box-shadow:0 10px 28px rgba(246,195,0,.45)}

/* Prozentfarben */
.val.pos{ color:#1a7f37; }  /* grün */
.val.neg{ color:#c62828; }  /* rot  */

/* Winner Badges (🏆 bzw. 👏🏻😒) vorne rechts oben am Glas */
.badge-float{
  position:absolute; top:8px; right:10px;
  font-size:22px; line-height:1;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.25));
  z-index:3;
}
.hidden{ display:none }

/* =========================
   DUEL EXPLAINER (isolated)
   ========================= */
.duel-explainer{ background:rgba(255,255,255,.96); border-top:1px solid rgba(0,0,0,.06); }
.duel-explainer .dx{ width:100%; max-width:960px; margin:0 auto; padding:22px 20px 28px; }
.duel-explainer .dx-summary{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; cursor:pointer; user-select:none; list-style:none; outline:none;
  padding:14px 16px; border-radius:12px; background:rgba(255,255,255,.8);
  border:1px solid rgba(0,0,0,.06); box-shadow: 0 6px 20px rgba(0,0,0,.06);
}
.duel-explainer .dx-summary::-webkit-details-marker{ display:none }
.duel-explainer .dx-title{ font-weight:900; letter-spacing:.2px }
.duel-explainer .dx-chevron{ width:22px; height:22px; flex:0 0 auto; transition: transform .25s ease }
.duel-explainer .dx[open] .dx-chevron{ transform: rotate(180deg) }

.duel-explainer .dx-panel{
  overflow: clip; /* isolates, avoids bleed */
  transition: grid-template-rows .4s ease, opacity .25s ease;
  display:grid; grid-template-rows: 0fr; margin-top:14px;
  opacity:.98; will-change: grid-template-rows, opacity;
  content-visibility: auto; contain: content;
}
.duel-explainer .dx[open] .dx-panel{ grid-template-rows: 1fr }
.duel-explainer .dx-content{
  min-height:0; padding: 14px 16px 6px; border-left:3px solid var(--primary);
  background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,255,255,.7));
  border-radius:10px;
}
.duel-explainer h4{ margin:0 0 10px; font-size:1.05rem }
.duel-explainer ul{ padding-left: 18px; margin:0 0 8px; }
.duel-explainer li{ margin: 8px 0; }
.duel-explainer .dx-note{ margin: 10px 0 0; opacity:.8 }

/* Snapshot-Modus: Animationen/Glimmer kurz einfrieren, damit das Bild "ruhig" ist */
.duel-ultra.snapshot-mode * {
  animation: none !important;
  transition: none !important;
}

/* Optional: eine leichte Umrandung fürs Bild, die man im Screenshot gerne hat */
.duel-ultra.snapshot-mode {
  /* outline: 2px solid rgba(246,195,0,.35); outline-offset: 6px;  <-- weg */
  box-shadow: 0 0 0 2px rgba(246,195,0,.35) inset;
  border-radius: 14px;
  overflow: visible; /* wichtig: nichts clippen */
}

/* sorgt dafür, dass der Share-Button wie die anderen Buttons wirkt */
#dl-share.btn { white-space: nowrap; }

/* Disabled state for share button */
#dl-share.is-disabled, #dl-share:disabled {
  opacity: .5;
  pointer-events: none;
  cursor: not-allowed;
}

/* optional: wenn's zu eng wird, bricht nur der Share nach unten */
@media (max-width: 420px){
  #dl-share { order: 5; margin-top: 6px; }
}

/* Controls über Overlays sichern */
.dl-controls { position: relative; z-index: 5; }

/* Winner clipping fixes */
#duel-liquid { overflow-x: hidden; } /* prevent horizontal scroll */
.dl-wrap { padding-inline: clamp(20px, 4vw, 36px); }
@media (min-width: 861px){
  .dl-wrap { padding-inline: clamp(24px, 4vw, 40px); }
}
.dl-grid.win-left  { padding-left: 24px; }
.dl-grid.win-right { padding-right: 24px; }

/* Mobile-Crop fix */
@media (max-width: 768px){
  .dl-wrap, #duel-liquid, .duel-ultra { overflow: visible; }
  .dl-wrap { padding-inline: max(16px, env(safe-area-inset-left), env(safe-area-inset-right)); }
}

/* ============================================
   SHARE PICKER POPUP FIX (cross-browser center)
   ============================================ */
dialog#share-picker {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  z-index: 9999 !important;
  max-width: min(520px, 92vw);
  max-height: calc(100vh - 20px);
  overflow: hidden;
}
dialog#share-picker[open] { display: block; }
dialog#share-picker::backdrop {
  background: rgba(0,0,0,.35);
  backdrop-filter: blur(2px);
}

/* iOS: Stabilität mit vh/vw */
@supports (-webkit-touch-callout: none) {
  dialog#share-picker {
    top: 50vh !important;
    left: 50vw !important;
    transform: translate(-50%, -50%) !important;
  }
}

/* Scroll sperren während Dialog offen */
html.dialog-open, body.dialog-open { overflow: hidden !important; }

/* MOBILE PERFORMANCE FIX */
@media (max-width: 768px) {
  /* Media-Only statt * — vermeidet globalen Reflow */
  img, video, svg, iframe { max-width: 100%; }
  img, video, svg { height: auto; } /* canvas absichtlich NICHT! */

   /* Backdrop-Blur auf Mobile aus — Performance */
  dialog#share-picker::backdrop {
    backdrop-filter: none;
    -webkit-backdrop-filter: none; /* iOS Safari */
  }

  /* Optional: Deaktiviere weitere Blurs auf Mobile */
  .navbar,
  .hero-inner,
  .duel-curtains .curtain {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}
