:root{
  --cream:#F7EFE1;
  --paper:#FFFDF7;
  --crust:#C98A4B;
  --crumb:#F3E0BE;
  --mold:#6B8E4E;
  --mold-dark:#3F5D2E;
  --wood:#A9713F;
  --jam:#C4452F;
  --fridge:#7BA7C7;
  --ink:#4A3527;
  --ink-soft:#82694E;
  --line:#D9C6A8;
  --shadow:0 4px 0 rgba(0,0,0,.08);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{
  margin:0;padding:0;height:100%;
  background:var(--cream);color:var(--ink);
  font-family:'Noto Kufi Arabic',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:16px;line-height:1.6;
  overflow:hidden;overscroll-behavior:none;
}
button{font-family:inherit;user-select:none;-webkit-user-select:none;cursor:pointer;}
img{-webkit-user-drag:none;user-select:none;}
.hidden{display:none !important;}

#game-root{
  position:relative;
  height:100vh;height:100dvh;
  display:flex;flex-direction:column;
  background:var(--cream);
}

/* طبقة النوافذ: تغطي كامل إطار اللعبة فوق الشريط العلوي وشريط الأزرار */
#overlayLayer{
  position:absolute;inset:0;z-index:30;
  pointer-events:none;
}

/* ================= HUD ================= */
#hud{
  flex:0 0 auto;
  display:flex;align-items:center;gap:6px;
  padding:6px 8px;
  background:linear-gradient(#FFF9EC,#FBF1DF);
  border-bottom:2px solid #E6D6B8;
  z-index:5;
}
.hud-pill{
  display:flex;align-items:center;gap:3px;
  background:#fff;border:2px solid var(--line);border-radius:999px;
  padding:3px 9px;line-height:1;white-space:nowrap;
  color:var(--ink);flex:0 0 auto;
}
.hud-pill strong{
  font-family:'Tajawal',sans-serif;font-weight:900;font-size:14px;
  color:#7A4A20;
}
.hud-cap{font-size:10px;color:var(--ink-soft);font-weight:500;}
.meter-wrap{flex:1 1 90px;min-width:72px;}
.meter-top{display:flex;justify-content:space-between;align-items:baseline;font-size:10px;color:var(--ink-soft);margin-bottom:2px;}
#moldVal{font-weight:700;font-size:10px;color:var(--ink-soft);}
.meter-track{
  height:11px;border-radius:999px;background:#EADFC9;
  border:1.5px solid var(--line);overflow:hidden;
}
.meter-fill{
  height:100%;width:0%;border-radius:999px;
  background:linear-gradient(90deg,#9DBE78,#6B8E4E);
  transition:width .25s ease, background .3s ease;
}
.meter-fill.danger{
  background:linear-gradient(90deg,#D4644B,#A32F1C);
  animation:meterPulse .85s ease-in-out infinite alternate;
}
@keyframes meterPulse{
  from{box-shadow:0 0 0 0 rgba(196,69,47,.55);}
  to{box-shadow:0 0 0 5px rgba(196,69,47,0);}
}
@media (max-width:430px){
  .hud-cap{font-size:9px;}
  .hud-pill{padding:3px 6px;}
  .hud-pill strong{font-size:13px;}
  .meter-top{font-size:9px;}
}

/* ================= stage ================= */
#stage{
  flex:1 1 auto;position:relative;min-height:0;
  overflow:hidden;background:#F4EAD8;
}
#game{
  position:absolute;inset:0;width:100%;height:100%;
  display:block;touch-action:none;
}

/* ================= controls dock ================= */
#controls{
  flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:10px;
  padding:6px;background:#FBF1DF;border-top:2px solid #E6D6B8;
}
.ctrl-btn{
  display:flex;align-items:center;justify-content:center;gap:6px;
  min-height:44px;padding:6px 18px;border-radius:999px;
  border:2.5px solid #C9A87C;background:#fff;color:var(--ink);
  font-family:'Tajawal',sans-serif;font-weight:800;font-size:13px;
  box-shadow:var(--shadow);transition:transform .12s ease,background .15s ease;
}
.ctrl-btn svg{width:18px;height:18px;}
.ctrl-btn:active{transform:scale(.95);}
.ctrl-btn[disabled]{opacity:.45;pointer-events:none;}

/* ================= overlays ================= */
.overlay{
  position:absolute;inset:0;z-index:20;
  pointer-events:auto;
  display:flex;overflow-y:auto;padding:10px;
  background:rgba(247,239,225,.86);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.panel{
  margin:auto;width:min(560px,100%);
  background:var(--paper);
  border:3px solid #C9A87C;border-radius:22px;
  padding:16px;
  box-shadow:0 6px 0 rgba(0,0,0,.07),0 18px 40px rgba(90,60,30,.14);
  color:var(--ink);
}
.panel-title{
  font-family:'Tajawal',sans-serif;font-weight:900;font-size:22px;
  margin:0 0 6px;color:#7A4A20;
}
.muted{color:var(--ink-soft);font-size:14px;margin:0 0 12px;}
.tiny{font-size:11px;color:var(--ink-soft);margin:10px 0 0;text-align:center;line-height:1.5;}

/* ================= start screen ================= */
.credit-card{
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  background:#FBF1DF;border:2px dashed var(--line);border-radius:16px;
  padding:8px 12px;margin-bottom:14px;
}
.credit-item{display:flex;flex-direction:column;line-height:1.35;text-align:center;}
.credit-label{font-size:10px;color:var(--ink-soft);}
.credit-name{font-family:'Tajawal',sans-serif;font-weight:900;font-size:15px;color:#8B5A2B;}
.credit-dot{width:6px;height:6px;border-radius:50%;background:var(--line);}

.start-hero{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.hero-img{
  width:82px;height:auto;flex:0 0 auto;
  filter:drop-shadow(0 6px 8px rgba(120,80,40,.18));
  animation:floaty 3.4s ease-in-out infinite;
}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-2deg);}50%{transform:translateY(-7px) rotate(2deg);}}
.hero-text{min-width:0;}
.game-title{
  font-family:'Tajawal',sans-serif;font-weight:900;
  font-size:clamp(23px,6.2vw,34px);line-height:1.2;margin:0;
  color:#7A4A20;
}
.game-sub{margin:4px 0 0;font-size:13px;color:var(--ink-soft);line-height:1.5;}
.start-desc{
  font-size:14px;line-height:1.75;margin:8px 0 14px;color:#5C462F;
  background:#FBF5E9;border:2px solid #EFE2CA;border-radius:14px;padding:10px 12px;
}
.start-desc b{color:#8B5A2B;}
.start-actions{display:flex;flex-direction:column;gap:10px;}
.start-foot{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:12px;font-size:13px;color:var(--ink-soft);flex-wrap:wrap;
}
.best-line strong{font-family:'Tajawal',sans-serif;font-weight:900;color:#8B5A2B;font-size:15px;}
.dotsep{color:var(--line);}

/* ================= buttons ================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:50px;padding:10px 18px;border-radius:999px;
  border:3px solid #C9A87C;background:#FFFDF7;color:var(--ink);
  font-family:'Tajawal',sans-serif;font-weight:900;font-size:16px;
  box-shadow:var(--shadow);text-decoration:none;
  transition:transform .12s ease,background .15s ease,border-color .15s ease;
}
.btn svg{width:20px;height:20px;flex:0 0 auto;}
.btn:active{transform:scale(.96);}
.btn:focus-visible{outline:3px solid var(--fridge);outline-offset:2px;}
.btn-primary{background:var(--crust);border-color:#9C6733;color:#fff;}
.btn-primary:hover{background:#D09556;}
.btn-video{background:#fff;border-color:var(--jam);color:#A5341F;}
.btn-video:hover{background:#FDF1EE;}
.btn[disabled]{opacity:.55;pointer-events:none;}
.link-btn{
  background:none;border:0;padding:4px 2px;
  font-family:'Tajawal',sans-serif;font-weight:800;font-size:13px;
  color:#8B5A2B;text-decoration:underline;text-underline-offset:3px;
  cursor:pointer;
}
.link-btn:focus-visible{outline:2px solid var(--fridge);outline-offset:2px;border-radius:6px;}

/* ================= card ================= */
.card-panel{max-width:520px;}
.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.card-tag{
  background:#EDF5E4;border:2px solid #B7CFA0;color:#3F5D2E;
  border-radius:999px;padding:2px 12px;
  font-family:'Tajawal',sans-serif;font-weight:800;font-size:12px;
}
.card-timer-txt{
  font-family:'Tajawal',sans-serif;font-weight:900;font-size:16px;color:#8B5A2B;
}
.card-q{
  font-family:'Tajawal',sans-serif;font-weight:800;
  font-size:clamp(16px,4.4vw,19px);line-height:1.6;margin:0 0 12px;color:#4A3527;
}
.opts{display:flex;flex-direction:column;gap:8px;}
.opt-btn{
  display:block;width:100%;text-align:start;
  padding:12px 14px;min-height:52px;
  border-radius:16px;border:2.5px solid var(--line);background:#fff;
  color:var(--ink);font-family:'Noto Kufi Arabic',sans-serif;font-weight:500;
  font-size:14.5px;line-height:1.55;
  box-shadow:0 3px 0 rgba(0,0,0,.05);
  transition:transform .12s ease,border-color .15s ease,background .15s ease;
}
.opt-btn:active{transform:scale(.98);}
.opt-btn:focus-visible{outline:3px solid var(--fridge);outline-offset:2px;}
.opt-btn.ok{background:#EDF5E4;border-color:var(--mold);color:#33501F;}
.opt-btn.bad{background:#FBEAE6;border-color:var(--jam);color:#8E2D1F;}
.opt-btn[disabled]{opacity:.9;pointer-events:none;}
.feedback{
  margin-top:12px;padding:10px 12px;border-radius:14px;
  font-size:14px;line-height:1.65;
  background:#FBF5E9;border:2px solid #EFE2CA;color:#5C462F;
  animation:popIn .25s ease;
}
@keyframes popIn{from{transform:scale(.96);opacity:0;}to{transform:scale(1);opacity:1;}}
#cardContinue{margin-top:12px;width:100%;}
.card-bar{
  height:6px;border-radius:999px;background:#EFE2CA;overflow:hidden;margin-top:12px;
}
.card-bar-fill{height:100%;width:100%;background:var(--crust);border-radius:999px;transition:width .1s linear;}

/* ================= end screens ================= */
.end-panel{max-width:560px;}
.end-title{
  font-family:'Tajawal',sans-serif;font-weight:900;
  font-size:clamp(20px,5.6vw,27px);line-height:1.3;margin:0 0 6px;color:#7A4A20;
}
.end-panel.won .end-title{color:#4F6B36;}
.end-sub{font-size:13.5px;color:var(--ink-soft);margin:0 0 12px;line-height:1.65;}
.diagram{width:100%;max-width:260px;display:block;margin:0 auto 12px;height:auto;}
.steps{
  list-style:none;padding:0;margin:0 0 14px;
  counter-reset:st;display:flex;flex-direction:column;gap:8px;
}
.steps li{
  counter-increment:st;position:relative;
  padding:10px 48px 10px 12px;
  background:#FBF5E9;border:2px solid #E9DCC3;border-radius:14px;
  font-size:13.5px;line-height:1.65;
}
.steps li::before{
  content:counter(st);
  position:absolute;inset-inline-start:10px;top:50%;transform:translateY(-50%);
  width:27px;height:27px;border-radius:50%;
  background:var(--mold);color:#fff;
  display:grid;place-items:center;
  font-family:'Tajawal',sans-serif;font-weight:900;font-size:13px;
}
.steps.warm li::before{background:var(--crust);}
.won-grid{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;}
.won-grid .steps{flex:1 1 240px;margin-bottom:6px;}
.guide-img{width:92px;height:auto;flex:0 0 auto;filter:drop-shadow(0 6px 8px rgba(120,80,40,.16));}
.result-row{
  display:flex;gap:16px;justify-content:center;flex-wrap:wrap;
  font-size:13.5px;color:var(--ink-soft);
  background:#FBF5E9;border-radius:14px;padding:8px 12px;margin-bottom:12px;
  border:2px solid #EFE2CA;
}
.result-row strong{font-family:'Tajawal',sans-serif;font-weight:900;color:#8B5A2B;font-size:16px;}
.end-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.end-actions .btn{flex:1 1 140px;}
.end-links{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:4px;}
.end-links a.link-btn{text-decoration:underline;}

/* ================= pause ================= */
.pause-panel{max-width:400px;text-align:center;}
.pause-panel .muted{margin-bottom:14px;}

/* ================= leaderboard ================= */
.board-panel{max-width:460px;}
.board-sub{font-size:13px;color:var(--ink-soft);margin:0 0 10px;}
.board-list{
  max-height:46vh;overflow-y:auto;
  border:2px solid #EFE2CA;border-radius:14px;background:#FBF5E9;
  padding:6px;margin-bottom:12px;
}
.board-row{
  display:flex;align-items:center;gap:10px;
  padding:7px 10px;border-radius:10px;font-size:13.5px;
}
.board-row + .board-row{margin-top:3px;}
.board-row.you{background:#EDF5E4;border:1.5px solid #B7CFA0;}
.board-rank{
  font-family:'Tajawal',sans-serif;font-weight:900;color:#8B5A2B;
  min-width:24px;text-align:center;
}
.board-handle{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.board-score{font-family:'Tajawal',sans-serif;font-weight:900;color:#4A3527;}
.board-empty{font-size:13px;color:var(--ink-soft);padding:10px;text-align:center;line-height:1.6;}

/* ================= banner & toast ================= */
.day-banner{
  position:absolute;top:11%;left:50%;transform:translateX(-50%);
  z-index:15;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;
  background:rgba(255,253,247,.96);
  border:3px solid var(--crust);border-radius:999px;
  padding:8px 24px;
  box-shadow:0 8px 22px rgba(120,80,40,.18);
  animation:popIn .35s ease;
}
.day-banner strong{font-family:'Tajawal',sans-serif;font-weight:900;font-size:19px;color:#7A4A20;line-height:1.2;}
.day-banner span{font-size:11px;color:var(--ink-soft);}
.toast{
  position:absolute;bottom:10px;left:50%;transform:translateX(-50%);
  z-index:30;pointer-events:none;
  background:rgba(74,53,39,.94);color:#FFF8EC;
  padding:8px 16px;border-radius:999px;font-size:12.5px;
  max-width:88%;text-align:center;line-height:1.5;
  opacity:0;transition:opacity .25s ease;
}
.toast.show{opacity:1;}

@media (max-width:430px){
  .panel{padding:13px;border-radius:18px;}
  .start-desc{font-size:13px;}
  .hero-img{width:66px;}
  .guide-img{width:72px;}
  .steps li{font-size:13px;padding-inline-start:44px;}
  .btn{font-size:15px;min-height:48px;}
}

@media (prefers-reduced-motion: reduce){
  .hero-img{animation:none;}
  .meter-fill.danger{animation:none;}
  .feedback{animation:none;}
  .day-banner{animation:none;}
}