/* ──────────────────────────────────────────────────────
   GAME SCOPED RESET + THEME VARIABLES
────────────────────────────────────────────────────── */
.hem-game-root *,.hem-game-root *::before,.hem-game-root *::after{box-sizing:border-box;margin:0;padding:0}

/* ── DEFAULT (LIGHT) THEME — site has no class on body, light is default ── */
.hem-game-root{
  /* Surfaces */
  --hg-panel-bg: linear-gradient(168deg,#fafbfd 0%,#f1f4f9 55%,#e9eef5 100%);
  --hg-panel-border: #d4dbe6;
  --hg-panel-shadow: 0 0 0 1px rgba(0,0,0,.03), 0 24px 60px rgba(20,40,90,.16), 0 0 40px rgba(40,90,180,.06);
  --hg-section-bg: #f4f7fb;
  --hg-section-border: #dde3ed;
  --hg-divider: #e2e8f1;
  --hg-stage-bg: radial-gradient(ellipse at 50% 50%,#eef2f8 0%,#dde4ef 70%);
  --hg-card-bg: #ffffff;
  --hg-card-bg-2: #f6f9fd;
  --hg-card-bg-deep: #eaf0f8;

  /* Text */
  --hg-text-primary: #0a1830;
  --hg-text-strong: #1a2540;
  --hg-text-secondary: #5a6a85;
  --hg-text-muted: #8896ad;
  --hg-text-faded: #a8b3c4;
  --hg-text-label: #6b7a92;

  /* Accents */
  --hg-accent-orange: #d6651a;
  --hg-accent-orange-strong: #c2530a;
  --hg-accent-orange-soft: rgba(214,101,26,.18);
  --hg-accent-blue: #1457c8;
  --hg-accent-blue-soft: rgba(20,87,200,.10);
  --hg-good: #16a05c;
  --hg-warn: #d68f10;
  --hg-danger: #c8302a;

  /* Stage / mold */
  --hg-stage-glow: rgba(214,101,26,.05);
  --hg-mold-tint: rgba(20,40,90,.18);
  --hg-mold-stroke: rgba(20,55,140,.55);
  --hg-scanline: rgba(0,0,0,.022);
  --hg-resize-tint: rgba(0,0,0,.04);

  /* Bubble */
  --hg-bubble-bg: radial-gradient(circle at 32% 28%,#ffffff 0%,#e4ebf6 68%);
  --hg-bubble-border: #c0cad9;
  --hg-bubble-shadow: 0 0 0 1px rgba(214,101,26,.10), 0 8px 28px rgba(15,30,60,.18), 0 0 22px rgba(40,90,180,.08);
  --hg-bubble-shadow-hov: 0 0 0 2px rgba(214,101,26,.18), 0 10px 36px rgba(15,30,60,.28), 0 0 36px rgba(40,90,180,.16);
  --hg-bubble-fill: rgba(20,40,90,.55);
  --hg-bubble-lbl: rgba(90,106,133,.7);

  /* Buttons */
  --hg-btn-bg: #ffffff;
  --hg-btn-bg-hov: #f6f9fd;
  --hg-btn-border: #c8d2e0;
  --hg-btn-border-hov: rgba(214,101,26,.55);

  /* Stage / canvas overlays */
  --hg-overlay-cool: rgba(180,200,225,.32);
  --hg-overlay-perfect: rgba(40,200,100,.14);
  --hg-overlay-spill: rgba(200,48,42,.14);

  /* Result overlay */
  --hg-result-bg: rgba(244,247,251,.94);

  /* SVG stage rect bg (light) */
  --hg-svg-bg: #e6ecf4;
}

/* ── DARK THEME — when body has class "dark-mode" ── */
body.dark-mode .hem-game-root,
:root[data-theme="dark"] .hem-game-root{
  /* Surfaces */
  --hg-panel-bg: linear-gradient(168deg,#050e1c 0%,#030a16 55%,#040c1e 100%);
  --hg-panel-border: #0e2040;
  --hg-panel-shadow: 0 0 0 1px rgba(255,255,255,.025), 0 28px 80px rgba(0,0,0,.94), 0 0 60px rgba(20,60,160,.2);
  --hg-section-bg: #030c18;
  --hg-section-border: #08182e;
  --hg-divider: #08182e;
  --hg-stage-bg: radial-gradient(ellipse at 50% 50%,#060f1e 0%,#020810 72%);
  --hg-card-bg: #020c18;
  --hg-card-bg-2: #02080e;
  --hg-card-bg-deep: #040c14;

  /* Text */
  --hg-text-primary: #c8dff5;
  --hg-text-strong: #d8e8f8;
  --hg-text-secondary: #6a9ac0;
  --hg-text-muted: #4a7aaa;
  --hg-text-faded: #2a4a70;
  --hg-text-label: #2a4a70;

  /* Accents */
  --hg-accent-orange: rgba(255,140,30,.92);
  --hg-accent-orange-strong: rgba(255,165,55,1);
  --hg-accent-orange-soft: rgba(255,140,30,.18);
  --hg-accent-blue: #4a8cff;
  --hg-accent-blue-soft: rgba(74,140,255,.14);
  --hg-good: #3cb870;
  --hg-warn: rgba(255,160,40,.9);
  --hg-danger: #e03030;

  /* Stage / mold */
  --hg-stage-glow: rgba(255,100,20,.09);
  --hg-mold-tint: #0c1e3a;
  --hg-mold-stroke: #1a50c0;
  --hg-scanline: rgba(0,0,0,.055);
  --hg-resize-tint: rgba(255,255,255,.04);

  /* Bubble */
  --hg-bubble-bg: radial-gradient(circle at 32% 28%,#0e2244 0%,#040c18 68%);
  --hg-bubble-border: #1a3a6e;
  --hg-bubble-shadow: 0 0 0 1px rgba(255,140,30,.12), 0 10px 36px rgba(0,0,0,.75), 0 0 30px rgba(30,80,200,.2);
  --hg-bubble-shadow-hov: 0 0 0 2px rgba(255,140,30,.22), 0 10px 44px rgba(0,0,0,.85), 0 0 44px rgba(40,110,240,.38);
  --hg-bubble-fill: rgba(255,255,255,0.55);
  --hg-bubble-lbl: rgba(180,205,245,.4);

  /* Buttons */
  --hg-btn-bg: #040e1c;
  --hg-btn-bg-hov: #060f1c;
  --hg-btn-border: #0e2040;
  --hg-btn-border-hov: rgba(255,160,55,.7);

  /* Overlays */
  --hg-overlay-cool: rgba(15,50,130,.2);
  --hg-overlay-perfect: rgba(40,200,100,.1);
  --hg-overlay-spill: rgba(200,30,30,.18);

  /* Result */
  --hg-result-bg: rgba(2,6,14,.92);

  /* SVG stage rect bg */
  --hg-svg-bg: #020810;
}

#HGsvgBg{fill:var(--hg-svg-bg);transition:fill .35s ease}

/* right:92px clears the site's fixed bottom-right theme toggle (.sticky-dark-btn:
   bottom:24px;right:24px;width:44px) with a visible gap, so the two floating
   buttons never overlap or crowd each other. */
.hem-game-root{position:fixed;bottom:24px;right:92px;z-index:9400;user-select:none;-webkit-user-select:none;display:none}
.hem-game-root.hg-unlocked{display:block}
/* Real-site integration: never sit above legal/cookie modals (site z-index: legal 9500, cookie 9999) */
.legal-modal-overlay.open ~ .hem-game-root{display:none!important}

/* ── Theme transitions: fade smoothly on theme change ── */
.hem-game-panel,
.hem-game-bubble,
.hg-win-hdr,
.hg-stat-strip,
.hg-stat-pill,
.hg-stage,
.hg-instruments,
.hg-inst,
.hg-status-bar,
.hg-status-msg,
.hg-score-row,
.hg-sc,
.hg-sp-val,
.hg-inst-val,
.hg-sc-val,
.hg-result-ov,
.hg-r-title,
.hg-r-sub,
.hg-r-btn,
.hg-win-btn,
.hg-win-badge,
.hg-win-logo,
.hg-win-sub,
.hg-p-col,
.hg-p-lbl,
.hg-p-state,
.hg-fill-badge,
.hg-fill-pct,
.hg-fill-sub,
.hg-lvl-strip,
.hg-lvl-slot,
.hg-resize{
  transition: background .35s ease, color .35s ease, border-color .35s ease,
              box-shadow .35s ease, fill .35s ease;
}

/* ──────────────────────────────────────────────────────
   TOAST + SEQUENCE COUNTER
────────────────────────────────────────────────────── */
.hg-toast{
  position:fixed;bottom:30px;left:50%;
  transform:translateX(-50%) translateY(16px);
  background:rgba(2,5,12,.96);
  border:1px solid rgba(255,140,30,.4);
  color:rgba(255,170,55,.95);
  font-family:'Courier New',monospace;font-size:11px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;padding:10px 22px;border-radius:7px;
  z-index:2147483646;opacity:0;pointer-events:none;
  transition:opacity .3s,transform .3s,background .35s,color .35s,border-color .35s;
  box-shadow:0 4px 28px rgba(0,0,0,.7),0 0 22px rgba(255,110,20,.14);
  white-space:nowrap;
}
body:not(.dark-mode) .hg-toast{
  background:rgba(255,255,255,.96);
  border-color:rgba(214,101,26,.5);
  color:#c2530a;
  box-shadow:0 4px 28px rgba(20,40,90,.18),0 0 22px rgba(214,101,26,.12);
}
.hg-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* (sequence counter + dot styles defined in EGG ritual block below) */

/* ──────────────────────────────────────────────────────
   EGG ACTIVATION RITUAL — node states
────────────────────────────────────────────────────── */

/* ── 1. BURST FLASH on tap (hg-node-activated, ~900ms) ──
   Hard-override the site's opacity:0 baseline.
   Specificity trick: 4-class rule beats any 3-class rule without !important. */
.hem-game-root ~ * .wwd-arm.hg-node-activated .wwd-shape,
.hem-game-root ~ * .wwd-arm.hg-node-activated .wwd-bridge-blue,
.wwd-arm.hg-node-activated .wwd-shape,
.wwd-arm.hg-node-activated .wwd-bridge-blue {
  opacity: 1 !important;
  filter: drop-shadow(0 0 14px rgba(255,170,40,1))
          drop-shadow(0 0 30px rgba(255,120,20,.85))
          drop-shadow(0 0 55px rgba(255,80,10,.6)) !important;
  transition: none !important;
}
.wwd-arm.hg-node-activated .wwd-bridge-red {
  opacity: 1 !important;
  filter: drop-shadow(0 0 14px rgba(255,70,20,1))
          drop-shadow(0 0 28px rgba(230,30,10,.85))
          drop-shadow(0 0 52px rgba(200,10,0,.6)) !important;
  transition: none !important;
}

/* ── 2. ACTIVATION RIPPLE — single transient ring at the actual pointer
   position (desktop .wwd-stage / mobile .wwd-stack), injected by EGG.spawnRipple.
   Replaces the old per-arm SVG ring, which was fixed to the arm's bbox center
   and could stack up when multiple nodes activated in quick succession. */
@keyframes wwdRippleBurst {
  0%   { transform: translate(-50%,-50%) scale(.4); opacity: .95 }
  60%  { transform: translate(-50%,-50%) scale(2.4); opacity: .5 }
  100% { transform: translate(-50%,-50%) scale(3.5); opacity: 0 }
}
.wwd-activation-ripple {
  position: absolute;
  left: 0; top: 0;
  width: 20px; height: 20px;
  border-radius: 50%;
  border: 2.5px solid rgba(255,165,40,.9);
  pointer-events: none;
  z-index: 5;
  transform: translate(-50%,-50%) scale(.4);
  animation: wwdRippleBurst .7s ease-out forwards;
}

/* ── 3. LOCKED — persistent illuminated state ──
   Stays visible until sequence breaks. */
@keyframes hgArmLockedPulse {
  0%, 100% {
    filter: drop-shadow(0 0 6px rgba(255,155,30,.78))
            drop-shadow(0 0 16px rgba(255,110,20,.50))
            drop-shadow(0 0 28px rgba(255,80,10,.28));
  }
  50% {
    filter: drop-shadow(0 0 12px rgba(255,195,55,1))
            drop-shadow(0 0 28px rgba(255,150,30,.88))
            drop-shadow(0 0 50px rgba(255,110,20,.52))
            drop-shadow(0 0 80px rgba(255,70,10,.28));
  }
}
.wwd-arm.hg-node-locked .wwd-shape,
.wwd-arm.hg-node-locked .wwd-bridge-blue {
  opacity: 1 !important;
  animation: hgArmLockedPulse 2.4s ease-in-out infinite !important;
}
.wwd-arm.hg-node-locked .wwd-bridge-red {
  opacity: 1 !important;
  filter: drop-shadow(0 0 7px rgba(255,60,20,.85))
          drop-shadow(0 0 20px rgba(220,20,0,.55)) !important;
}

/* ── 4. UNLOCK GLOW (one-shot after node 5, HEM brand colors) ── */
@keyframes hgEggUnlockBlue {
  0%   { filter: drop-shadow(0 0 0 rgba(0,80,255,0)) }
  22%  { filter: drop-shadow(0 0 24px rgba(0,110,255,.98))
                 drop-shadow(0 0 50px rgba(0,70,230,.72))
                 drop-shadow(0 0 10px rgba(255,120,20,.45)) }
  65%  { filter: drop-shadow(0 0 14px rgba(0,70,200,.62))
                 drop-shadow(0 0 30px rgba(0,50,180,.38)) }
  100% { filter: drop-shadow(0 0 5px rgba(0,40,160,.2)) }
}
@keyframes hgEggUnlockRed {
  0%   { filter: drop-shadow(0 0 0 rgba(220,0,0,0)) }
  22%  { filter: drop-shadow(0 0 22px rgba(230,0,0,.98))
                 drop-shadow(0 0 44px rgba(185,0,0,.74)) }
  100% { filter: drop-shadow(0 0 4px rgba(160,0,0,.2)) }
}
.wwd-arm.hg-egg-done .wwd-shape,
.wwd-arm.hg-egg-done .wwd-bridge-blue {
  opacity: 1 !important;
  animation: hgEggUnlockBlue 1.9s ease-out forwards !important;
}
.wwd-arm.hg-egg-done .wwd-bridge-red {
  opacity: 1 !important;
  animation: hgEggUnlockRed 1.9s ease-out forwards !important;
}

/* ── 5. IDLE settled glow after unlock ── */
@keyframes hgEggIdleBlue {
  0%, 100% { filter: drop-shadow(0 0 4px rgba(0,35,150,.22)) }
  50%       { filter: drop-shadow(0 0 8px rgba(0,55,190,.4)) }
}
.wwd-arm.hg-egg-idle .wwd-shape,
.wwd-arm.hg-egg-idle .wwd-bridge-blue {
  opacity: 1 !important;
  animation: hgEggIdleBlue 3.5s ease-in-out infinite !important;
}
.wwd-arm.hg-egg-idle .wwd-bridge-red {
  opacity: 1 !important;
  filter: drop-shadow(0 0 3px rgba(140,0,0,.22)) !important;
}

/* ── 6. SEQUENCE COUNTER — more prominent ── */
.hg-seq-counter {
  position: fixed;
  bottom: 30px; right: 110px;
  background: rgba(2,5,12,.96);
  border: 1px solid rgba(255,140,30,.4);
  border-radius: 8px;
  padding: 9px 16px;
  font-family: 'Courier New', monospace;
  font-size: 9px; font-weight: 700; letter-spacing: .1em;
  color: rgba(255,160,50,.88);
  z-index: 2147483645;
  display: none; align-items: center; gap: 10px;
  box-shadow: 0 4px 24px rgba(0,0,0,.65), 0 0 16px rgba(255,100,20,.1);
  transition: background .35s, color .35s, border-color .35s, box-shadow .35s;
}
body:not(.dark-mode) .hg-seq-counter{
  background:rgba(255,255,255,.96);
  border-color:rgba(214,101,26,.5);
  color:#c2530a;
  box-shadow:0 4px 24px rgba(20,40,90,.18),0 0 16px rgba(214,101,26,.1);
}
.hg-seq-counter.show { display: flex }
.hg-seq-dot {
  width: 10px; height: 10px; border-radius: 50%;
  border: 1.5px solid rgba(255,140,30,.28);
  transition: all .28s cubic-bezier(.34,1.56,.64,1);
}
.hg-seq-dot.lit {
  background: rgba(255,140,30,.9);
  border-color: rgba(255,170,55,1);
  box-shadow: 0 0 10px rgba(255,120,20,.75), 0 0 22px rgba(255,90,10,.45);
  transform: scale(1.22);
}

/* ── 7. MOBILE CARD STATES ── */

/* Tap burst flash on mobile card (equivalent of arm glow burst) */
@keyframes hgCardBurst {
  0%   { transform:scale(1);    border-color:rgba(255,160,45,.85); box-shadow:0 0 0 0 rgba(255,130,25,.0) }
  25%  { transform:scale(1.025);border-color:rgba(255,190,60,1);   box-shadow:0 0 0 6px rgba(255,130,25,.22),0 0 28px rgba(255,110,20,.3) }
  55%  { transform:scale(1.01); border-color:rgba(255,165,50,.9);  box-shadow:0 0 0 3px rgba(255,120,20,.14),0 0 18px rgba(255,100,18,.2) }
  100% { transform:scale(1);    border-color:rgba(255,135,30,.55); box-shadow:none }
}
.wwd-stack__item.hg-node-burst {
  animation: hgCardBurst .55s ease-out forwards !important;
}

@keyframes hgCardLockedPulse {
  0%, 100% { box-shadow: 0 0 0 1.5px rgba(255,130,30,.42), 0 3px 12px rgba(255,100,20,.1) }
  50%       { box-shadow: 0 0 0 2px  rgba(255,160,50,.68), 0 5px 20px rgba(255,120,30,.22) }
}
.wwd-stack__item.hg-node-locked {
  border-color: rgba(255,135,30,.55) !important;
  animation: hgCardLockedPulse 2.4s ease-in-out infinite;
  position: relative;
}
.wwd-stack__item.hg-node-locked .wwd-stack__num {
  background: rgba(255,105,20,.2) !important;
  border-color: rgba(255,140,35,.55) !important;
  color: rgba(255,175,58,.98) !important;
  box-shadow: 0 0 10px rgba(255,115,20,.25) !important;
}
.wwd-stack__item.hg-node-locked .wwd-stack__txt h3 { color: rgba(255,185,68,.9) !important }
.wwd-stack__item.hg-node-locked::after {
  content: '✓';
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  font-size: 13px; color: rgba(255,160,40,.85); pointer-events: none;
}
@keyframes hgNodeWrongFlash {
  0%, 100% { border-color: var(--w-border) }
  25%, 75%  { border-color: rgba(220,40,40,.7); box-shadow: 0 0 14px rgba(220,38,38,.22) }
}
.wwd-stack__item.hg-node-wrong { animation: hgNodeWrongFlash .55s ease-in-out !important }
.wwd-stack__item:not(.hg-node-locked) { cursor: pointer }

/* Mobile seq counter position: when stack is visible, move counter near cards */
@media(max-width:720px){
  .hg-seq-counter {
    bottom: auto !important;
    top: 16px !important;
    right: 16px !important;
    left: auto !important;
  }
}

/* ──────────────────────────────────────────────────────
   BUBBLE
────────────────────────────────────────────────────── */
.hem-game-bubble{width:72px;height:72px;border-radius:50%;background:var(--hg-bubble-bg);border:1.5px solid var(--hg-bubble-border);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;box-shadow:var(--hg-bubble-shadow);position:relative;overflow:hidden;transition:transform .2s,box-shadow .35s ease,border-color .35s ease,background .35s ease}
.hem-game-bubble:hover{transform:scale(1.1);border-color:var(--hg-accent-orange);box-shadow:var(--hg-bubble-shadow-hov)}
.hem-game-bubble svg{width:42px;height:auto;position:relative;z-index:1}
.hem-game-bubble-lbl{font-size:6.5px;font-weight:700;letter-spacing:.15em;color:var(--hg-bubble-lbl);text-transform:uppercase;position:relative;z-index:1}
.hg-bubble-heat{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 38% 36%,rgba(255,120,20,.18) 0%,transparent 65%);animation:hgHeatPulse 2.8s ease-in-out infinite}
@keyframes hgHeatPulse{0%,100%{opacity:.3;transform:scale(.94)}50%{opacity:1;transform:scale(1.05)}}
.hg-bubble-ring{position:absolute;inset:-4px;border-radius:50%;border:1px solid transparent;background:conic-gradient(from 0deg,transparent 0%,rgba(255,130,30,.3) 38%,transparent 68%) border-box;animation:hgRingSpin 4.5s linear infinite;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude}
@keyframes hgRingSpin{to{transform:rotate(360deg)}}

/* ──────────────────────────────────────────────────────
   PRESTIGE MATERIAL TIER SYSTEM
   Level 1–9: industrial (orange)
   Level 10–24: advanced (blue)
   Level 25–49: experimental (teal)
   Level 50–99: classified (purple)
   Level 100+: mythic (white-blue)
────────────────────────────────────────────────────── */
.hem-game-panel{
  --lvl-accent: #ff8820;
  --lvl-glow:   rgba(255,130,20,.38);
  --mat-hot1:   #ff7a20; --mat-hot2: #ff4800;
}
.hem-game-panel[data-tier="1"]{
  --lvl-accent: #1a8fff; --lvl-glow: rgba(26,143,255,.38);
  --mat-hot1:#30aaff; --mat-hot2:#0070e0;
}
.hem-game-panel[data-tier="2"]{
  --lvl-accent: #00d4aa; --lvl-glow: rgba(0,200,160,.38);
  --mat-hot1:#00e8c0; --mat-hot2:#00a880;
}
.hem-game-panel[data-tier="3"]{
  --lvl-accent: #c044ff; --lvl-glow: rgba(180,50,255,.4);
  --mat-hot1:#d060ff; --mat-hot2:#9000e0;
}
.hem-game-panel[data-tier="4"]{
  --lvl-accent: #e8f4ff; --lvl-glow: rgba(210,230,255,.5);
  --mat-hot1:#ffffff; --mat-hot2:#a0c8ff;
}

/* ──────────────────────────────────────────────────────
   PANEL — Portrait, Draggable, Resizable
────────────────────────────────────────────────────── */
.hem-game-panel{
  position:fixed;
  top:auto;bottom:106px;right:24px;
  width:500px;min-width:360px;
  background:var(--hg-panel-bg);
  border:1px solid var(--hg-panel-border);border-radius:18px;overflow:hidden;
  box-shadow:var(--hg-panel-shadow);
  display:none;flex-direction:column;
  font-family:'Courier New',Courier,monospace;
  transition:box-shadow .2s;
}
.hem-game-panel.hg-open{display:flex}
.hem-game-panel.hg-dragging{transition:none!important;cursor:grabbing!important}
/* CRT scanlines */
.hem-game-panel::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,var(--hg-scanline) 2px,var(--hg-scanline) 3px)}

/* ── Window header (drag handle) ── */
.hg-win-hdr{
  padding:13px 16px 11px;
  border-bottom:1px solid rgba(255,255,255,.045);
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(180deg,rgba(4,14,32,.72) 0%,rgba(2,8,20,.68) 100%);
  cursor:grab;
  position:relative;z-index:3;
  flex-shrink:0;
}
.hg-win-hdr:active{cursor:grabbing}
.hg-win-logo{font-size:17px;font-weight:800;letter-spacing:.06em;color:var(--hg-text-primary);line-height:1;text-shadow:0 0 18px rgba(74,140,255,.18)}
.hg-win-logo span{color:var(--hg-accent-blue);text-shadow:0 0 14px rgba(80,150,255,.4)}
.hg-win-sub{font-size:9px;color:var(--hg-text-muted);letter-spacing:.1em;margin-top:3px;text-transform:uppercase}
.hg-win-ctrls{display:flex;align-items:center;gap:6px}
.hg-win-btn{width:26px;height:26px;border-radius:50%;background:var(--hg-btn-bg);border:1px solid var(--hg-btn-border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--hg-text-muted);font-size:14px;line-height:1;transition:all .15s;font-family:inherit}
.hg-win-btn:hover{border-color:var(--hg-accent-orange);color:var(--hg-text-secondary)}
.hg-win-badge{background:linear-gradient(145deg,rgba(2,8,22,.95) 0%,rgba(4,14,32,.9) 100%);border:1px solid var(--lvl-accent);border-radius:5px;padding:4px 11px 3px;font-size:9px;font-weight:800;letter-spacing:.14em;color:var(--lvl-accent);box-shadow:0 0 10px var(--lvl-glow),inset 0 1px 0 rgba(255,255,255,.06);text-shadow:0 0 10px var(--lvl-glow);transition:color .4s,border-color .4s,box-shadow .4s}

/* ── Level Carousel ── */
.hg-lvl-strip{
  padding:9px 14px 8px;
  border-bottom:1px solid var(--hg-divider);
  overflow:hidden;
  position:relative;z-index:2;
  flex-shrink:0;
  background:rgba(0,0,0,.18);
}
.hg-lvl-track{display:flex;gap:6px;transition:transform .45s cubic-bezier(.4,0,.2,1);justify-content:center}
.hg-lvl-slot{
  flex-shrink:0;width:64px;
  padding:6px 4px 5px;
  border-radius:7px;border:1px solid var(--hg-section-border);
  text-align:center;
  font-size:8px;font-weight:700;letter-spacing:.07em;
  color:var(--hg-text-faded);background:var(--hg-card-bg-2);
  transition:all .3s;cursor:default;
  line-height:1.3;
}
.hg-lvl-slot.active{
  border-color:var(--lvl-col,var(--lvl-accent));
  color:var(--lvl-col,var(--lvl-accent));
  background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,rgba(0,0,0,.2) 100%);
  box-shadow:0 0 14px var(--lvl-glow,rgba(255,100,20,.14)),inset 0 1px 0 rgba(255,255,255,.07);
  transform:scale(1.06);
}
.hg-lvl-slot.active .hg-lvl-num{font-size:16px;letter-spacing:.02em}
.hg-lvl-slot.past{
  opacity:.55;
  border-color:rgba(60,184,112,.35);
  color:var(--hg-good);
}
.hg-lvl-slot.past .hg-lvl-num{font-size:11px}
.hg-lvl-slot.future{opacity:.18}
.hg-lvl-num{font-size:11px;font-weight:800;display:block;margin-bottom:2px}
.hg-lvl-label{font-size:6.5px;letter-spacing:.09em;text-transform:uppercase;opacity:.75}

/* ── Target Window — clean, readable, visual target bar ── */
.hg-target-window{
  border-bottom:1px solid var(--hg-divider);
  background:rgba(0,0,0,.12);
  position:relative;z-index:2;flex-shrink:0;
  padding:10px 14px 12px;
}
.hg-tw-row{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;
  margin-bottom:10px;
}
.hg-tw-cell{
  text-align:center;
  border-right:1px solid var(--hg-divider);
  padding:0 6px;
}
.hg-tw-cell:last-child{border-right:none}
.hg-tw-lbl{
  font-size:8.5px;letter-spacing:.18em;
  color:var(--hg-text-label);
  text-transform:uppercase;
  margin-bottom:5px;
}
.hg-tw-big{
  font-size:22px;font-weight:800;
  color:var(--hg-text-primary);
  line-height:1;letter-spacing:-.01em;
  transition:color .3s;
}
.hg-tw-big.hot   {color:var(--hg-accent-orange)}
.hg-tw-big.warm  {color:var(--hg-warn)}
.hg-tw-big.cold  {color:var(--hg-accent-blue)}
.hg-tw-big.danger{color:var(--hg-danger)}
.hg-tw-big.good  {color:var(--hg-good)}
.hg-tw-big.warn  {color:var(--hg-warn)}
.hg-tw-big.in-target{color:var(--hg-good);text-shadow:0 0 12px rgba(60,184,112,.4)}

/* Visual horizontal bar */
.hg-tw-bar{
  position:relative;
  height:9px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.06);
  border-radius:5px;
  overflow:hidden;
}
/* Safe zone — green band */
.hg-tw-zone-safe{
  position:absolute;top:0;bottom:0;
  background:linear-gradient(90deg,rgba(60,184,112,.18) 0%,rgba(60,184,112,.32) 100%);
  pointer-events:none;
}
/* Overfill zone — red */
.hg-tw-zone-over{
  position:absolute;top:0;bottom:0;right:0;
  background:linear-gradient(90deg,rgba(224,48,48,.22) 0%,rgba(224,48,48,.4) 100%);
  pointer-events:none;
}
/* Target marker — vertical line at goal % */
.hg-tw-target-mark{
  position:absolute;top:-3px;bottom:-3px;
  width:2px;
  background:var(--lvl-accent,#ff8820);
  box-shadow:0 0 8px var(--lvl-glow,rgba(255,130,20,.5));
  pointer-events:none;
  transition:left .3s;
}
.hg-tw-target-mark::before{
  content:'▼';
  position:absolute;top:-9px;left:50%;
  transform:translateX(-50%);
  font-size:8px;
  color:var(--lvl-accent,#ff8820);
}
/* Current fill marker — moving */
.hg-tw-current{
  position:absolute;top:0;left:0;height:100%;
  background:linear-gradient(90deg,#ff7010 0%,#ffaa44 100%);
  border-radius:4px;
  width:0%;
  transition:width .12s ease, background .3s;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3);
}
.hg-tw-current.in-target{
  background:linear-gradient(90deg,#3cb870 0%,#5ce896 100%);
  box-shadow:0 0 10px rgba(60,184,112,.5),inset 0 1px 0 rgba(255,255,255,.4);
}
.hg-tw-current.danger{
  background:linear-gradient(90deg,#e03030 0%,#ff5050 100%);
}
.hg-target-window.glow-target{
  box-shadow:inset 0 0 22px rgba(60,184,112,.18);
  transition:box-shadow .25s;
  background:rgba(60,184,112,.05);
}
@keyframes hgTwTargetPulse{
  0%,100%{box-shadow:inset 0 0 22px rgba(60,184,112,.18)}
  50%    {box-shadow:inset 0 0 32px rgba(60,184,112,.35)}
}
.hg-target-window.glow-target{animation:hgTwTargetPulse 1.4s ease-in-out infinite}

/* Light-mode tuning */
body:not(.dark-mode) .hg-target-window{background:rgba(11,74,160,.04)}
body:not(.dark-mode) .hg-tw-bar{
  background:rgba(11,30,80,.05);
  border-color:rgba(11,74,160,.12);
}
body:not(.dark-mode) .hg-tw-big{color:#0b1830}
body:not(.dark-mode) .hg-tw-big.cold{color:#0b4aa0}
body:not(.dark-mode) .hg-tw-big.hot{color:rgba(180,72,0,.92)}
body:not(.dark-mode) .hg-tw-big.danger{color:#b81200}
body:not(.dark-mode) .hg-tw-big.good{color:#1a7a40}
body:not(.dark-mode) .hg-tw-zone-safe{background:linear-gradient(90deg,rgba(26,122,64,.16) 0%,rgba(26,122,64,.28) 100%)}
body:not(.dark-mode) .hg-tw-zone-over{background:linear-gradient(90deg,rgba(184,18,0,.18) 0%,rgba(184,18,0,.32) 100%)}

/* ── Main area: pressure left + stage ── */
.hg-main-wrap{
  display:flex;
  flex:1;
  position:relative;z-index:2;
}

/* Pressure column (left) */
.hg-p-col{
  width:52px;flex-shrink:0;
  display:flex;flex-direction:column;align-items:center;
  padding:8px 0 8px 8px;
  border-right:1px solid var(--hg-divider);gap:5px;
}
.hg-p-lbl{font-size:6px;letter-spacing:.1em;color:var(--hg-text-label);text-transform:uppercase;text-align:center;line-height:1.3}
.hg-p-gauge{width:36px;flex:1}
.hg-p-state{font-size:7px;font-weight:700;letter-spacing:.07em;color:var(--hg-text-label);text-align:center;text-transform:uppercase;transition:color .2s}
.hg-p-state.flow{color:var(--hg-accent-orange)}
.hg-p-state.high{color:var(--hg-danger)}

/* Stage (center / right of p-col) */
.hg-stage{
  flex:1;
  display:flex;align-items:center;justify-content:center;
  padding:20px 14px;position:relative;overflow:hidden;
  background:var(--hg-stage-bg);
  cursor:pointer;
  min-height:300px;
}
.hg-stage-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 35%,var(--hg-stage-glow) 0%,transparent 62%);opacity:0;transition:opacity .3s}
.hg-stage-glow.on{opacity:1}
.hg-perfect-ov{position:absolute;inset:0;pointer-events:none;z-index:8;background:radial-gradient(ellipse at 50% 50%,var(--hg-overlay-perfect) 0%,transparent 58%);opacity:0}
@keyframes hgPerfPulse{0%,100%{opacity:0}35%,65%{opacity:1}}
.hg-perfect-ov.pulse{animation:hgPerfPulse 1s ease-in-out 1}
.hg-cool-ov{position:absolute;inset:0;pointer-events:none;z-index:7;background:radial-gradient(ellipse at 50% 72%,var(--hg-overlay-cool) 0%,transparent 62%);opacity:0;transition:opacity .6s}
.hg-cool-ov.on{opacity:1}
.hg-pour-canvas{position:absolute;top:0;left:50%;transform:translateX(-50%);pointer-events:none;z-index:10}

/* Fill badge */
.hg-fill-badge{position:absolute;top:8px;right:8px;background:linear-gradient(145deg,rgba(2,8,22,.96) 0%,rgba(4,12,28,.93) 100%);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:5px 11px 4px;text-align:right;z-index:9;line-height:1.15;box-shadow:0 2px 12px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.05)}
.hg-fill-pct{font-size:24px;font-weight:700;color:#d8eaff;letter-spacing:-.01em}
.hg-fill-sub{font-size:7.5px;letter-spacing:.14em;color:rgba(80,120,180,.6);text-transform:uppercase;display:block;margin-top:1px}

/* SVG */
/* HEM color reveal animation */
@keyframes hgHemReveal{0%{opacity:0}100%{opacity:1}}
#HGhemReveal.reveal{animation:hgHemReveal 1.1s ease-out forwards}

/* SVG mold — fills the stage cleanly, single source of truth for size */
#HGSVG{
  width:100%;
  max-width:380px;
  height:auto;
  display:block;
  position:relative;
  z-index:2;
}

/* Perfect cast glow — controlled, single elegant pulse, stays close to logo */
@keyframes hgHemGlowOnce{
  0%  {filter:drop-shadow(0 0 0 rgba(0,80,255,0))}
  22% {filter:drop-shadow(0 0 12px rgba(0,100,255,.85)) drop-shadow(0 0 24px rgba(0,60,220,.5))}
  58% {filter:drop-shadow(0 0 8px rgba(0,70,200,.5)) drop-shadow(0 0 16px rgba(0,50,180,.28))}
  100%{filter:drop-shadow(0 0 3px rgba(0,40,160,.18))}
}
#HGSVG.hg-hem-glow{animation:hgHemGlowOnce 1.9s ease-out forwards}

/* ── Result overlay ── */
.hg-result-ov{
  position:absolute;inset:0;
  background:var(--hg-result-bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:22px;
  opacity:0;pointer-events:none;
  transition:opacity .35s;
  z-index:20;border-radius:0;
}
.hg-result-ov.show{opacity:1;pointer-events:all}
.hg-r-icon{font-size:48px;line-height:1;margin-bottom:4px}
.hg-r-title{font-size:17px;font-weight:800;letter-spacing:.1em;text-align:center;line-height:1.35;text-transform:uppercase}
.hg-r-title.perfect{color:var(--hg-good);text-shadow:0 0 20px rgba(60,184,112,.5)}
.hg-r-title.fail{color:var(--hg-danger);text-shadow:0 0 16px rgba(224,56,56,.4)}
.hg-r-title.partial{color:var(--hg-text-secondary)}
.hg-r-sub{font-size:12px;color:var(--hg-text-secondary);text-align:center;letter-spacing:.04em;line-height:1.7;max-width:320px}
.hg-r-btn{
  margin-top:10px;
  background:linear-gradient(145deg,rgba(4,14,32,.98) 0%,rgba(2,8,20,.95) 100%);
  border:1px solid var(--lvl-accent,rgba(255,140,30,.5));
  color:var(--lvl-accent,rgba(255,165,55,.98));
  font-family:'Courier New',monospace;font-size:11px;font-weight:800;letter-spacing:.14em;
  padding:11px 28px;border-radius:6px;cursor:pointer;
  transition:all .25s;
  box-shadow:0 0 10px var(--lvl-glow,rgba(255,100,20,.14));
}
.hg-r-btn:hover{box-shadow:0 0 18px var(--lvl-glow,rgba(255,100,20,.28));border-color:var(--lvl-accent,rgba(255,165,55,.7));transform:translateY(-1px)}

/* ── Instruments row ────────────────────────────────── */
.hg-instruments{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--hg-divider);
  border-top:1px solid var(--hg-divider);
  position:relative;z-index:2;flex-shrink:0;
}
.hg-inst{background:var(--hg-card-bg);padding:9px 8px 7px;text-align:center;position:relative}
.hg-inst::before{content:'';position:absolute;top:0;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);pointer-events:none}
.hg-inst-val{font-size:16px;font-weight:700;color:var(--hg-text-secondary);line-height:1;transition:color .3s;letter-spacing:-.01em}
.hg-inst-val.hot{color:var(--hg-accent-orange)}
.hg-inst-val.good{color:var(--hg-good)}
.hg-inst-val.warn{color:var(--hg-warn)}
.hg-inst-val.danger{color:var(--hg-danger)}
.hg-inst-val.timer{color:var(--hg-text-primary);font-size:18px}
.hg-inst-lbl{font-size:9px;letter-spacing:.14em;color:var(--hg-text-label);text-transform:uppercase;margin-top:4px}

/* ── Status bar ── */
.hg-status-bar{
  padding:8px 16px 7px;
  border-top:1px solid var(--hg-divider);
  display:flex;align-items:center;gap:8px;
  background:transparent;
  position:relative;z-index:2;flex-shrink:0;
}
.hg-status-dot{width:8px;height:8px;border-radius:50%;background:var(--hg-text-faded);flex-shrink:0;transition:background .3s,box-shadow .3s}
.hg-status-dot.green{background:var(--hg-good);box-shadow:0 0 7px var(--hg-good)}
.hg-status-dot.orange{background:var(--hg-accent-orange);box-shadow:0 0 7px var(--hg-accent-orange-soft)}
.hg-status-dot.red{background:var(--hg-danger);box-shadow:0 0 7px var(--hg-danger)}
.hg-status-dot.blue{background:var(--hg-accent-blue);box-shadow:0 0 7px var(--hg-accent-blue-soft)}
.hg-status-msg{font-size:10.5px;color:var(--hg-text-faded);letter-spacing:.04em;line-height:1.4;transition:color .3s}
.hg-status-msg.active{color:var(--hg-text-strong)}

/* ── Score row — 3 columns, big readable numbers ── */
.hg-score-row{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--hg-divider);
  border-top:1px solid var(--hg-divider);
  position:relative;z-index:2;flex-shrink:0;
}
.hg-sc{background:var(--hg-card-bg-2);padding:9px 8px 8px;text-align:center}
.hg-sc-lbl{font-size:8.5px;letter-spacing:.14em;color:var(--hg-text-label);text-transform:uppercase;margin-bottom:4px}
.hg-sc-val{font-size:18px;font-weight:800;color:var(--hg-text-secondary);transition:color .3s;letter-spacing:-.01em}
.hg-sc-val.highlight{color:var(--lvl-accent,#ff8820);text-shadow:0 0 10px var(--lvl-glow,rgba(255,130,20,.3))}
.hg-sc-val.hot{color:var(--hg-accent-orange);text-shadow:0 0 10px rgba(255,140,30,.4)}

/* ── Level modifier + active challenge + compact objective line ── */
.hg-objective{
  padding:5px 16px 6px;
  border-top:1px solid var(--hg-divider);
  display:flex;flex-direction:column;gap:1px;
  position:relative;z-index:2;flex-shrink:0;
}
.hg-obj-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.hg-obj-mod{
  font-size:8.5px;font-weight:800;letter-spacing:.12em;
  color:var(--lvl-accent,#ff8820);opacity:.9;
}
.hg-obj-chal{
  font-size:7.5px;font-weight:800;letter-spacing:.1em;
  padding:2px 7px;border-radius:9px;
  border:1px solid var(--hg-section-border);
  color:var(--hg-text-secondary);background:var(--hg-card-bg-2);
  white-space:nowrap;flex-shrink:0;
}
.hg-obj-chal.live{
  color:var(--hg-warn);
  border-color:rgba(255,170,40,.35);
}
.hg-obj-txt{
  font-size:9px;font-weight:600;letter-spacing:.04em;
  color:var(--hg-text-faded);
}

/* ── Target-window readability states + Perfect Window cue ── */
.hg-target-window.hg-near{box-shadow:inset 0 0 0 1px rgba(255,170,40,.18)}
.hg-target-window.hg-danger{box-shadow:inset 0 0 0 1px rgba(220,60,40,.25)}
.hg-perfect-win{
  position:absolute;top:5px;right:12px;
  font-size:8px;font-weight:800;letter-spacing:.12em;
  color:var(--hg-good);
  text-shadow:0 0 8px rgba(60,184,112,.5);
  opacity:0;transition:opacity .25s;
  pointer-events:none;z-index:3;
}
.hg-perfect-win.on{opacity:1;animation:hgPWpulse 1s ease-in-out infinite}
@keyframes hgPWpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@media(prefers-reduced-motion:reduce){.hg-perfect-win.on{animation:none}}

/* ── Resize handle ── */
.hg-resize{
  position:absolute;bottom:0;right:0;
  width:18px;height:18px;
  cursor:se-resize;
  background:linear-gradient(135deg,transparent 50%,var(--hg-resize-tint) 50%);
  border-radius:0 0 16px 0;
}

/* ── Spill / overflow flash ── */
@keyframes hgSpillFlash{0%,100%{box-shadow:0 0 0 1px rgba(255,255,255,.025),0 28px 80px rgba(0,0,0,.94)}50%{box-shadow:0 0 0 2px rgba(224,48,48,.55),0 28px 80px rgba(0,0,0,.94),0 0 50px rgba(200,30,30,.28)}}
.hem-game-panel.spill{animation:hgSpillFlash .4s ease-in-out}

/* ── Freeze animation ── */
@keyframes hgFreezeFlash{0%,100%{box-shadow:0 0 0 1px rgba(255,255,255,.025),0 28px 80px rgba(0,0,0,.94)}50%{box-shadow:0 0 0 2px rgba(30,100,255,.55),0 28px 80px rgba(0,0,0,.94),0 0 50px rgba(20,60,200,.28)}}
.hem-game-panel.freezing{animation:hgFreezeFlash .6s ease-in-out}

/* ── Glass shine sweep ── */
@keyframes hgShineSwp{0%{opacity:0;transform:translateX(-200%)}100%{opacity:.4;transform:translateX(400%)}}
.hg-glass-shine-anim{animation:hgShineSwp 1.8s ease-in-out}

/* ──────────────────────────────────────────────────────
   MATERIAL EFFECT OVERLAYS (per-tier stage atmosphere)
────────────────────────────────────────────────────── */
.hg-mat-ov{
  position:absolute;inset:0;pointer-events:none;z-index:6;
  opacity:1;transition:opacity .5s, background .5s;
  border-radius:inherit;
}
/* Industrial: clean (no overlay) */
.material-industrial .hg-mat-ov{}
/* Advanced: cool blue edge shimmer */
.material-advanced .hg-mat-ov{
  background:radial-gradient(ellipse at 50% 5%,rgba(30,140,255,.07) 0%,transparent 55%),
             radial-gradient(ellipse at 50% 95%,rgba(0,100,200,.05) 0%,transparent 50%);
}
/* Experimental: pulsing teal rim */
.material-experimental .hg-mat-ov{
  background:radial-gradient(ellipse at 50% 50%,transparent 55%,rgba(0,200,160,.055) 78%,transparent 100%);
  animation:hgMatExpPulse 3s ease-in-out infinite;
}
@keyframes hgMatExpPulse{0%,100%{opacity:.5}50%{opacity:1}}
/* Classified: dark violet depth */
.material-classified .hg-mat-ov{
  background:radial-gradient(ellipse at 50% 50%,transparent 40%,rgba(100,0,180,.08) 78%,rgba(60,0,120,.06) 100%);
}
/* Mythic: legendary white-blue corona */
.material-mythic .hg-mat-ov{
  background:radial-gradient(ellipse at 50% 50%,rgba(180,200,255,.06) 0%,transparent 50%),
             radial-gradient(ellipse at 50% 50%,transparent 48%,rgba(140,180,255,.09) 74%,rgba(100,140,255,.04) 100%);
  animation:hgMatMythPulse 4s ease-in-out infinite;
}
@keyframes hgMatMythPulse{0%,100%{opacity:.6}50%{opacity:1}}

/* ──────────────────────────────────────────────────────
   PER-TIER PERFECT-CAST GLOW ANIMATIONS
   (one-shot on Perfect Cast — overrides default hgHemGlowOnce)
────────────────────────────────────────────────────── */
.material-advanced #HGSVG.hg-hem-glow{animation:hgHemGlowAdvanced 2.1s ease-out forwards}
@keyframes hgHemGlowAdvanced{
  0%  {filter:drop-shadow(0 0 0 rgba(0,80,255,0))}
  22% {filter:drop-shadow(0 0 12px rgba(30,150,255,.85)) drop-shadow(0 0 26px rgba(0,100,220,.5))}
  100%{filter:drop-shadow(0 0 4px rgba(10,80,200,.18))}
}
.material-experimental #HGSVG.hg-hem-glow{animation:hgHemGlowExp 2.1s ease-out forwards}
@keyframes hgHemGlowExp{
  0%  {filter:drop-shadow(0 0 0 rgba(0,200,160,0))}
  22% {filter:drop-shadow(0 0 12px rgba(0,210,160,.85)) drop-shadow(0 0 26px rgba(0,160,120,.5))}
  100%{filter:drop-shadow(0 0 4px rgba(0,150,120,.18))}
}
.material-classified #HGSVG.hg-hem-glow{animation:hgHemGlowClass 2.1s ease-out forwards}
@keyframes hgHemGlowClass{
  0%  {filter:drop-shadow(0 0 0 rgba(170,40,255,0))}
  22% {filter:drop-shadow(0 0 12px rgba(170,40,255,.85)) drop-shadow(0 0 26px rgba(120,0,220,.5))}
  100%{filter:drop-shadow(0 0 5px rgba(100,0,200,.2))}
}
.material-mythic #HGSVG.hg-hem-glow{animation:hgHemGlowMythic 2.4s ease-out forwards}
@keyframes hgHemGlowMythic{
  0%  {filter:drop-shadow(0 0 0 rgba(200,220,255,0))}
  22% {filter:drop-shadow(0 0 16px rgba(200,220,255,.95)) drop-shadow(0 0 32px rgba(160,190,255,.65)) drop-shadow(0 0 6px rgba(255,200,100,.3))}
  60% {filter:drop-shadow(0 0 8px rgba(160,190,255,.45)) drop-shadow(0 0 18px rgba(120,160,255,.28))}
  100%{filter:drop-shadow(0 0 4px rgba(140,180,255,.18))}
}

/* ── Light-mode material overlays — slightly stronger for contrast ── */
body:not(.dark-mode) .material-advanced .hg-mat-ov{
  background:radial-gradient(ellipse at 50% 5%,rgba(11,74,160,.06) 0%,transparent 55%),
             radial-gradient(ellipse at 50% 95%,rgba(11,74,160,.04) 0%,transparent 50%);
}
body:not(.dark-mode) .material-experimental .hg-mat-ov{
  background:radial-gradient(ellipse at 50% 50%,transparent 55%,rgba(0,160,130,.06) 78%,transparent 100%);
}
body:not(.dark-mode) .material-classified .hg-mat-ov{
  background:radial-gradient(ellipse at 50% 50%,transparent 40%,rgba(80,0,140,.06) 78%,transparent 100%);
}
body:not(.dark-mode) .material-mythic .hg-mat-ov{
  background:radial-gradient(ellipse at 50% 50%,rgba(11,74,160,.04) 0%,transparent 50%),
             radial-gradient(ellipse at 50% 50%,transparent 48%,rgba(80,120,220,.07) 74%,transparent 100%);
}

/* Light-mode HEM glow — softer blue/red bloom */
@keyframes hgHemGlowLight{
  0%  {filter:drop-shadow(0 0 0 rgba(11,74,160,0))}
  22% {filter:drop-shadow(0 0 14px rgba(11,74,160,.72)) drop-shadow(0 0 30px rgba(11,74,160,.45)) drop-shadow(0 0 6px rgba(180,65,0,.3))}
  60% {filter:drop-shadow(0 0 8px rgba(11,74,160,.42)) drop-shadow(0 0 18px rgba(11,74,160,.24))}
  100%{filter:drop-shadow(0 0 3px rgba(11,74,160,.14))}
}
body:not(.dark-mode) #HGSVG.hg-hem-glow{animation:hgHemGlowLight 1.9s ease-out forwards}

/* ══════════════════════════════════════════════════════════════════
   LIGHT-MODE PRESTIGE TUNING — overlays the theme variable system
   with extra v12(1) polish for buttons, badges, level slots, etc.
   ══════════════════════════════════════════════════════════════════ */
body:not(.dark-mode) .hem-game-bubble{
  background:linear-gradient(145deg,#f5f8fe 0%,#e8eef8 60%,#dce5f4 100%);
  border:1.5px solid rgba(11,74,160,.28);
  box-shadow:0 2px 10px rgba(11,30,80,.12),0 6px 24px rgba(11,30,80,.10),0 0 0 1px rgba(11,74,160,.08);
}
body:not(.dark-mode) .hem-game-bubble:hover{
  border-color:rgba(11,74,160,.55);
  box-shadow:0 4px 14px rgba(11,30,80,.16),0 8px 32px rgba(11,30,80,.14),0 0 0 2px rgba(11,74,160,.16);
}
body:not(.dark-mode) .hem-game-bubble svg{color:#0b4aa0}
body:not(.dark-mode) .hg-bubble-heat{background:radial-gradient(circle at 38% 36%,rgba(180,75,0,.10) 0%,transparent 65%)}
body:not(.dark-mode) .hg-bubble-ring{background:conic-gradient(from 0deg,transparent 0%,rgba(11,74,160,.22) 38%,transparent 68%) border-box}

body:not(.dark-mode) .hg-win-hdr{
  background:linear-gradient(180deg,rgba(235,242,255,.9) 0%,rgba(228,237,255,.85) 100%);
  border-bottom:1px solid rgba(11,74,160,.12);
}
body:not(.dark-mode) .hg-win-logo{color:#0b1830;text-shadow:0 0 14px rgba(11,74,160,.18)}
body:not(.dark-mode) .hg-win-logo span{color:#0b4aa0;text-shadow:0 0 10px rgba(11,74,160,.35)}

body:not(.dark-mode) .hg-win-badge{
  background:linear-gradient(145deg,rgba(255,255,255,.95) 0%,rgba(240,245,255,.92) 100%);
  /* keep --lvl-accent driven border + color */
  text-shadow:none;
  box-shadow:0 0 8px var(--lvl-glow,rgba(11,74,160,.18)),inset 0 1px 0 rgba(255,255,255,.7);
}
body:not(.dark-mode) .hg-fill-badge{
  background:linear-gradient(145deg,rgba(255,255,255,.97) 0%,rgba(240,246,255,.95) 100%);
  border:1px solid rgba(11,74,160,.2);
  box-shadow:0 2px 10px rgba(11,30,80,.10),inset 0 1px 0 rgba(255,255,255,.9);
}
body:not(.dark-mode) .hg-fill-pct{color:#0b1830}
body:not(.dark-mode) .hg-fill-sub{color:rgba(11,74,160,.45)}

body:not(.dark-mode) .hg-r-btn{
  background:linear-gradient(145deg,rgba(255,255,255,.95) 0%,rgba(240,246,255,.92) 100%);
  /* --lvl-accent driven border/text already applied */
  box-shadow:0 2px 10px rgba(11,30,80,.10),0 0 8px var(--lvl-glow,rgba(11,74,160,.12)),inset 0 1px 0 rgba(255,255,255,.7);
}
body:not(.dark-mode) .hg-r-btn:hover{
  box-shadow:0 3px 14px rgba(11,30,80,.16),0 0 14px var(--lvl-glow,rgba(11,74,160,.22)),inset 0 1px 0 rgba(255,255,255,.8);
}

body:not(.dark-mode) .hg-r-title.perfect{color:#1a7a40;text-shadow:0 0 16px rgba(26,122,64,.35)}
body:not(.dark-mode) .hg-r-title.fail{color:#b81200;text-shadow:0 0 14px rgba(184,18,0,.3)}
body:not(.dark-mode) .hg-r-title.partial{color:#0b4aa0}

body:not(.dark-mode) .hg-inst::before{background:linear-gradient(90deg,transparent,rgba(11,74,160,.1),transparent)}

body:not(.dark-mode) .hg-lvl-slot.active{
  background:linear-gradient(180deg,rgba(255,255,255,.85) 0%,rgba(245,250,255,.6) 100%);
  box-shadow:0 2px 10px rgba(11,30,80,.10),0 0 12px var(--lvl-glow,rgba(11,74,160,.14)),inset 0 1px 0 rgba(255,255,255,.6);
}

/* ── Reduced motion ── */
@media(prefers-reduced-motion:reduce){.hg-bubble-heat,.hg-bubble-ring,.hg-perfect-ov.pulse,.hg-result-ov{animation:none}}

/* ── RESPONSIVE: mobile fullscreen ── */
@media(max-width:768px){
  .hem-game-root{
    bottom:0;right:0;left:0;top:0;
    display:none;
    align-items:center;justify-content:center;
  }
  .hem-game-root.hg-unlocked{display:flex}
  /* Bubble stays bottom-right, shifted left of the site's fixed theme toggle
     (.sticky-dark-btn: bottom:24px;right:24px;width:44px) so they don't overlap */
  .hem-game-bubble{
    position:fixed;bottom:20px;right:80px;
  }
  .hem-game-panel{
    position:fixed;
    top:0;left:0;right:0;bottom:0;
    width:100vw !important;
    min-width:unset !important;
    max-width:unset !important;
    height:100vh !important;
    max-height:100vh !important;
    border-radius:0 !important;
    border:none !important;
  }
  .hg-p-col{width:54px;padding:8px 0 8px 8px}
  .hg-tw-big{font-size:19px}
  .hg-stage{min-height:340px}
  #HGSVG{max-width:340px}
  .hg-inst-val{font-size:14px}
  .hg-sc-val{font-size:16px}
}

@media(max-width:480px){
  .hg-p-col{width:46px;padding:6px 0 6px 6px}
  .hg-tw-big{font-size:17px}
  .hg-tw-lbl{font-size:7.5px}
  #HGSVG{max-width:300px}
}

/* ── When wwd-stack is visible (≤720px), reposition sequence counter near cards ── */
@media(max-width:720px){
  .hg-seq-counter{
    top:16px !important;
    right:16px !important;
    bottom:auto !important;
    left:auto !important;
  }
}
