.spg-wrap{
  width:100%;
  --bg0:#05050a;
  --bg1:#0b0714;
  --purple:#a855f7;
  --red:#ff2a6d;
  --text:#f2f2ff;
  --muted:#a7a7c7;
  --border:rgba(255,255,255,.08);
}

.spg-stage{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:16px;
  align-items:stretch;
}

@media (max-width:980px){
  .spg-stage{
    grid-template-columns:1fr;
  }
}

.spg-canvasWrap{
  position:relative;
  height:680px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  background:
    radial-gradient(1200px 700px at 30% 30%, rgba(168,85,247,.35), transparent 55%),
    radial-gradient(1000px 600px at 70% 70%, rgba(255,42,109,.22), transparent 60%),
    linear-gradient(180deg,var(--bg1),var(--bg0));
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 0 25px rgba(168,85,247,.22),0 0 70px rgba(255,42,109,.16);
}

.spg-photoStage{
  position:relative;
  width:100%;
  height:100%;
  --spg-pine-scale:86%;
}

.spg-pineapple{
  position:absolute;
  left:50%;
  top:50%;
  width:var(--spg-pine-scale);
  height:var(--spg-pine-scale);
  object-fit:contain;
  display:block;
  transform:translate(-50%,-50%);
  z-index:10;
  filter:
    drop-shadow(0 0 16px rgba(168,85,247,.26))
    drop-shadow(0 0 20px rgba(255,42,109,.10));
}

.spg-panel{
  border:1px solid var(--border);
  border-radius:18px;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(15,10,30,.95), rgba(8,7,18,.98));
  box-shadow:0 0 18px rgba(168,85,247,.12);
  min-height:680px;
}

.spg-panelHead{
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px 18px 14px;
  border-bottom:1px solid var(--border);
}

.spg-letter{
  width:42px;
  height:42px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:24px;
  color:#fff;
  background:rgba(168,85,247,.14);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 0 16px rgba(168,85,247,.20);
}

.spg-title{
  color:#fff;
  font-weight:800;
  letter-spacing:.02em;
}

.spg-list{
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.spg-item{
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.02);
  border-radius:16px;
  padding:14px;
}

.spg-term{
  margin:0 0 8px;
  color:#fff;
  font-size:22px;
  font-weight:800;
}

.spg-desc{
  margin:0;
  color:#d8d8ef;
  line-height:1.6;
  font-size:15px;
  white-space:normal;
}

.spg-footer{
  padding:16px;
  color:var(--muted);
  border-top:1px solid var(--border);
  font-size:13px;
}

.spg-engineBadge{
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:60;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.38);
  border:1px solid rgba(255,255,255,.08);
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  pointer-events:none;
}

.spg-toolbar{
  position:absolute;
  top:12px;
  left:12px;
  z-index:61;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.spg-btn{
  background:rgba(15,10,30,.92);
  color:#fff;
  border:1px solid rgba(255,255,255,.1);
  border-radius:999px;
  padding:8px 12px;
  font-weight:700;
  font-size:12px;
  cursor:pointer;
  box-shadow:0 0 14px rgba(168,85,247,.18);
}

.spg-btn-save{
  background:rgba(255,42,109,.18);
}

.spg-saveForm{
  display:none;
}

/* WAŻNE: warstwy dla hotspotów i płomienia */
.spg-divLayer{
  position:absolute;
  inset:0;
  z-index:30;
}

.spg-flameVideo{
  position:absolute;
  width:140px;
  height:140px;
  display:none;
  pointer-events:none;
  z-index:50;
  mix-blend-mode:screen;
  transform:translate(-50%,-70%);
  filter:
    drop-shadow(0 0 12px rgba(255,120,0,.35))
    drop-shadow(0 0 20px rgba(255,42,109,.22));
}

.spg-flameVideo.active{
  display:block;
}

/* mobile */
@media (max-width:768px){
  .spg-canvasWrap{
    height:520px;
  }

  .spg-panel{
    min-height:auto;
  }

  .spg-toolbar{
    top:10px;
    left:10px;
    right:10px;
    gap:6px;
  }

  .spg-btn{
    padding:7px 10px;
    font-size:11px;
  }

  .spg-letter{
    width:38px;
    height:38px;
    font-size:22px;
  }

  .spg-term{
    font-size:20px;
  }
}