:root{

  --bg0:#07081a;

  --bg1:#0c1030;

  --panel:rgba(14,18,46,.65);

  --stroke:rgba(255,255,255,.08);

  --text:#eaf0ff;

  --muted:rgba(234,240,255,.7);



  --cyan:#27e3ff;

  --purple:#b34cff;

  --pink:#ff48c4;

  --lime:#b7ff3c;



  --shadow: 0 20px 60px rgba(0,0,0,.45);

}



*{box-sizing:border-box}

html,body{height:100%}

body{

  margin:0;

  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

  color:var(--text);

  background:

    radial-gradient(900px 500px at 15% 25%, rgba(39,227,255,.12), transparent 60%),

    radial-gradient(800px 500px at 85% 35%, rgba(179,76,255,.14), transparent 60%),

    radial-gradient(700px 500px at 55% 85%, rgba(255,72,196,.10), transparent 60%),

    linear-gradient(180deg, var(--bg1), var(--bg0));

}



.wrap{max-width:1100px;margin:0 auto;padding:18px 14px 28px}



.topbar{

  display:flex;align-items:center;justify-content:space-between;

  padding:14px;

  border:1px solid var(--stroke);

  border-radius:18px;

  background:rgba(10,12,30,.55);

  box-shadow: var(--shadow);

  backdrop-filter: blur(10px);

}



.brand{display:flex;align-items:center;gap:10px;font-weight:900}

.brandDot{

  width:12px;height:12px;border-radius:50%;

  background: linear-gradient(90deg, var(--cyan), var(--purple));

  box-shadow: 0 0 18px rgba(39,227,255,.45);

}



.topActions{display:flex;align-items:center;gap:10px}



.langSelect{

  border-radius:999px;

  padding:10px 12px;

  border:1px solid rgba(255,255,255,.10);

  background: rgba(255,255,255,.06);

  color: rgba(234,240,255,.92);

  font-weight:900;

  outline:none;

}

.langSelect option{background:#0c1030;color:#eaf0ff}



.grid{margin-top:16px;display:grid;grid-template-columns: 1.1fr .9fr;gap:16px}



.card{

  border:1px solid var(--stroke);

  border-radius:22px;

  background: var(--panel);

  box-shadow: var(--shadow);

  backdrop-filter: blur(10px);

  overflow:hidden;

  position:relative;

}



.neonFrame{padding:18px;position:relative}

.neonFrame:before{

  content:"";position:absolute;inset:10px;border-radius:20px;

  border:2px solid rgba(255,255,255,.07);pointer-events:none;

}

.neonFrame:after{

  content:"";position:absolute;inset:10px;border-radius:20px;

  background: linear-gradient(90deg, rgba(39,227,255,.0), rgba(39,227,255,.18), rgba(179,76,255,.18), rgba(255,72,196,.15), rgba(39,227,255,.0));

  filter: blur(18px);opacity:.85;pointer-events:none;

}



.rowTop{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}

.badgeCircle{

  width:44px;height:44px;border-radius:50%;

  display:flex;align-items:center;justify-content:center;

  font-weight:950;

  background: rgba(39,227,255,.18);

  border:1px solid rgba(39,227,255,.35);

  box-shadow: 0 0 22px rgba(39,227,255,.25);

}



.metaRight{text-align:right}

.metaLine{font-weight:900}

.muted{color:var(--muted);font-weight:750}



.promptTitle{margin-top:14px;font-size:28px;font-weight:1000}

.promptSub{margin-top:6px;color:var(--muted);font-weight:700}



.imgWrap{

  margin-top:14px;

  border-radius:18px;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.10);

  background: rgba(0,0,0,.25);

  box-shadow: 0 16px 40px rgba(0,0,0,.35);

}



.imgStage{position:relative}

.imgStage img{width:100%;height:360px;object-fit:cover;display:block}



/* Hotspot outline + tap */

.hotspotBtn{

  position:absolute;

  border-radius:14px;

  border:2px solid rgba(9, 10, 10, 0.55);

  background: rgba(39,227,255,.08);

  box-shadow: 0 0 16px rgba(39,227,255,.18);

  cursor:pointer;

  transition: transform .08s ease, filter .12s ease, background .12s ease, border-color .12s ease;

}

.hotspotBtn:hover{filter:brightness(1.10)}

.hotspotBtn:active{transform: translateY(1px)}



/* selected hotspot */

.hotspotBtn.sel{

  border-color: rgba(5, 5, 5, 0.8);

  background: rgba(255,72,196,.10);

  box-shadow: 0 0 20px rgba(255,72,196,.18);

}



/* completed hotspot glows lime */

.hotspotBtn.done{

  border-color: rgba(183,255,60,.90);

  background: rgba(183,255,60,.14);

  box-shadow: 0 0 20px rgba(183,255,60,.30), 0 0 45px rgba(39,227,255,.18);

}



/* RIGHT */

.cardRight{padding:16px}

.rightHeader{

  display:flex;align-items:flex-end;justify-content:space-between;

  padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08);

}

.rightTitle{font-size:18px;font-weight:1000}



.questionBox{

  margin-top:12px;

  padding:12px;

  border-radius:16px;

  border:1px solid rgba(255,255,255,.08);

  background: rgba(0,0,0,.18);

}

.questionPrompt{font-weight:950;letter-spacing:.2px}



.choices{margin-top:12px;display:flex;flex-direction:column;gap:10px}



.choiceBtn{

  width:100%;

  text-align:left;

  padding:12px 14px;

  border-radius:18px;

  cursor:pointer;

  background: rgba(255,255,255,.06);

  border:1px solid rgba(255,255,255,.10);

  color:rgba(234,240,255,.92);

  font-weight:900;

  letter-spacing:.2px;

  transition: transform .08s ease, filter .12s ease, border-color .12s ease, background .12s ease;

}

.choiceBtn:hover{filter:brightness(1.08)}

.choiceBtn:active{transform: translateY(1px)}

.choiceBtn:disabled{cursor:not-allowed;opacity:.85}



.choiceBtn.good{

  border-color: rgba(183,255,60,.35);

  background: rgba(183,255,60,.10);

}

.choiceBtn.bad{

  border-color: rgba(255,80,80,.30);

  background: rgba(255,80,80,.08);

}



.choiceTag{

  display:inline-flex;

  width:32px;height:32px;

  border-radius:999px;

  align-items:center;justify-content:center;

  margin-right:10px;

  border:1px solid rgba(255,255,255,.12);

  background: rgba(0,0,0,.18);

  font-weight:1000;

}



.pillBtn{

  border:none;cursor:pointer;

  padding:10px 14px;border-radius:999px;

  font-weight:1000;color:rgba(234,240,255,.92);

  background: rgba(255,255,255,.08);

  border:1px solid rgba(255,255,255,.10);

  transition: transform .08s ease, filter .12s ease;

}

.pillBtn:hover{filter:brightness(1.08)}

.pillBtn:active{transform: translateY(1px)}



.resultBox{

  margin-top:12px;padding:12px;border-radius:16px;

  border:1px solid rgba(255,255,255,.08);

  background: rgba(0,0,0,.18);

}

.resultTitle{font-weight:1000;margin-bottom:6px}

.feedbackText{color:rgba(234,240,255,.78);font-size:13.5px}



.hintRow{margin-top:12px;display:flex;gap:8px;font-size:13px}

.hintLabel{font-weight:1000;color:rgba(183,255,60,.95)}

.hintText{color:rgba(234,240,255,.75)}



/* BIG X / CHECK */

.overlay{

  position:fixed;inset:0;

  display:flex;align-items:center;justify-content:center;

  background: rgba(0,0,0,.35);

  backdrop-filter: blur(6px);

  z-index:9999;

}

.overlay.hidden{display:none}

.overlayMark{

  font-size:160px;font-weight:1000;line-height:1;

  transform: rotate(-10deg);

}

.overlayMark.wrong{

  color:#ff2d2d;

  text-shadow: 0 0 22px rgba(255,45,45,.35), 0 30px 80px rgba(0,0,0,.55);

}

.overlayMark.correct{

  color:#41ff6a;

  text-shadow: 0 0 22px rgba(65,255,106,.25), 0 30px 80px rgba(0,0,0,.55);

}



@media (max-width: 920px){

  .grid{grid-template-columns:1fr}

  .imgStage img{height:290px}

}

/* =========================
   HOTSPOT GLOW STYLES
   ========================= */

:root{
  --glowA: #00f5ff;
  --glowB: #a855f7;
  --glowC: #22c55e;
  --glowD: #facc15;
  --glowE: #fb7185;
}

/* base hotspot outline = bright neon glow */
.hotspotBtn{
  position: absolute;
  background: rgba(0,0,0,0.05);
  border: 2px solid rgba(0,245,255,0.9);
  border-radius: 12px;

  /* neon glow */
  box-shadow:
    0 0 10px rgba(0,245,255,0.65),
    0 0 22px rgba(168,85,247,0.40),
    inset 0 0 10px rgba(0,245,255,0.25);

  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease;
}

/* hover = stronger glow */
.hotspotBtn:hover{
  background: rgba(0,245,255,0.08);
  transform: scale(1.01);
  box-shadow:
    0 0 14px rgba(0,245,255,0.85),
    0 0 28px rgba(168,85,247,0.55),
    inset 0 0 14px rgba(0,245,255,0.28);
}

/* selected hotspot = purple/blue glow */
.hotspotBtn.sel{
  border-color: rgba(168,85,247,1);
  box-shadow:
    0 0 14px rgba(168,85,247,0.9),
    0 0 32px rgba(0,245,255,0.55),
    inset 0 0 14px rgba(168,85,247,0.25);
}

/* completed (correct) = green glow */
.hotspotBtn.done{
  border-color: rgba(34,197,94,1);
  background: rgba(34,197,94,0.08);
  box-shadow:
    0 0 14px rgba(34,197,94,0.9),
    0 0 30px rgba(0,245,255,0.30),
    inset 0 0 12px rgba(34,197,94,0.25);
}

/* optional: different colors per hotspot (cycles) */
.hotspotBtn:nth-of-type(5n+1){ border-color: rgba(0,245,255,.95); box-shadow: 0 0 12px rgba(0,245,255,.75), inset 0 0 10px rgba(0,245,255,.2); }
.hotspotBtn:nth-of-type(5n+2){ border-color: rgba(168,85,247,.95); box-shadow: 0 0 12px rgba(168,85,247,.75), inset 0 0 10px rgba(168,85,247,.2); }
.hotspotBtn:nth-of-type(5n+3){ border-color: rgba(34,197,94,.95); box-shadow: 0 0 12px rgba(34,197,94,.75), inset 0 0 10px rgba(34,197,94,.2); }
.hotspotBtn:nth-of-type(5n+4){ border-color: rgba(250,204,21,.95); box-shadow: 0 0 12px rgba(250,204,21,.70), inset 0 0 10px rgba(250,204,21,.18); }
.hotspotBtn:nth-of-type(5n+5){ border-color: rgba(251,113,133,.95); box-shadow: 0 0 12px rgba(251,113,133,.70), inset 0 0 10px rgba(251,113,133,.18); }


/*============================================
==================================================== */









/* ===== HOTSPOTS INVISIBLE (still clickable) ===== */
.hotspotBtn{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;

   /*keep it clickable */
  opacity: 0 !important;
  pointer-events: auto !important;
}
 
 /* optional: keep selected/done invisible too */
.hotspotBtn.sel,
.hotspotBtn.done{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  opacity: 0 !important;
}

/* ===== SVG polygon hotspots (poly) ===== */
.imgStage svg.hsSvg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.imgStage svg.hsSvg .hotzone{
  pointer-events:auto;
  fill: rgba(0,0,0,0);
  stroke: transparent;     /* hide outline */
  stroke-width: 0;         /* extra safety */
  filter: none;            /* remove glow */
  cursor: pointer;
}

.imgStage svg.hsSvg .hotzone:hover{
  fill: rgba(0,245,255,0.10);
}
.imgStage svg.hsSvg .hotzone.sel{
  stroke: transparent; 
  fill: rgba(168,85,247,0.10);
}
.imgStage svg.hsSvg .hotzone.done{
  stroke: transparent; 
  fill: rgba(34,197,94,0.12);
}












/* =========================
   MOBILE (default) - phones
   ========================= */
/* No media query needed — this is your base styles */


/* =========================
   TABLET (≥ 768px)
   ========================= */
@media (min-width: 768px) {
  /* Example tweaks */
  .wrap { padding: 18px; }
  .panel { max-width: 720px; margin: 0 auto; }
  .choiceBtn { font-size: 16px; }
}


/* =========================
   DESKTOP (≥ 1024px)
   ========================= */
@media (min-width: 1024px) {
  /* Example: two-column layout */
  .mainGrid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr; /* image side + question side */
    gap: 16px;
    align-items: start;
  }

  .imgStage { max-width: 520px; margin: 0 auto; }
  .choiceBtn { font-size: 17px; }
}


/* =========================
   LARGE DESKTOP (≥ 1280px)
   ========================= */
@media (min-width: 1280px) {
  .mainGrid { gap: 22px; }
  .imgStage { max-width: 600px; }
}
.imgStage{
  position: relative;
  width: min(92vw, 560px);  /* phone-friendly */
  margin: 0 auto;
}

#promptImage{
  width: 100%;
  height: auto;
  display: block;
}

/* SVG overlay stays aligned */
.imgStage svg.hsSvg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.mainGrid{ display:block; } /* phone stack */

@media (min-width: 1024px){
  .mainGrid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
}






.btn.isOff { opacity: .6; border: 2px dashed #999; }

