@font-face{font-family:"KFGQPC Uthmanic";src:url("../fonts/UthmanicHafs.woff2") format("woff2"),url("../fonts/UthmanicHafs.ttf") format("truetype");font-display:swap}
/* โลกแห่งดวงดาว — สไตล์หลัก (มือถือเป็นหลัก) */
:root{
  --bg1:#050b1f; --bg2:#0b1530; --bg3:#17306b;
  --card:rgba(14,26,60,.82); --card-solid:#101d44; --line:rgba(255,255,255,.14);
  --text:#eef3ff; --muted:#aab8dd; --gold:#f4d778; --gold2:#ffe9a8;
  --accent:#6fc3ff; --good:#7fe3a1; --bad:#ff9b9b;
  --radius:18px; --shadow:0 10px 30px rgba(0,0,0,.4);
  --font:"Noto Sans Thai","Sarabun",system-ui,sans-serif;
  --font-head:"Noto Serif Thai","Noto Sans Thai",serif;
  --font-ar:"KFGQPC Uthmanic","KFGQPC Uthman Taha Naskh","Amiri Quran","Traditional Arabic",serif;
  --fs:1rem;
}
/* โหมดถนอมสายตา: โทนอำพันอุ่น ลดแสงสีฟ้า ลดแสงจ้า ลดการเคลื่อนไหว */
body[data-theme="eye"]{
  --bg1:#1b140b; --bg2:#241a0e; --bg3:#34250f;
  --card:rgba(52,38,20,.88); --card-solid:#33261a; --line:rgba(255,220,160,.2);
  --text:#f3e3c3; --muted:#c9b68f; --gold:#e8c27a; --gold2:#f3d9a0;
  --accent:#d9b27a; --good:#b9d79a; --bad:#e3a58f;
  --shadow:0 6px 18px rgba(0,0,0,.35);
}
body[data-theme="eye"] #bgsky{opacity:.35}
body[data-theme="eye"] #scenery{filter:sepia(.7) saturate(.7) brightness(.8)}
body[data-theme="eye"] *{animation-duration:0s!important;transition-duration:.01s!important}
body[data-theme="eye"]::after{content:"";position:fixed;inset:0;pointer-events:none;background:rgba(255,160,40,.07);mix-blend-mode:multiply;z-index:99}
body.big{--fs:1.14rem}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{
  font-family:var(--font);font-size:var(--fs);line-height:1.75;color:var(--text);
  background:linear-gradient(180deg,var(--bg1),var(--bg2) 55%,var(--bg3));
  background-attachment:fixed;overflow-x:hidden;
  padding-bottom:env(safe-area-inset-bottom);
}
#bgsky{position:fixed;inset:0;width:100%;height:100%;z-index:0}
#scenery{position:fixed;inset:0;z-index:0;pointer-events:none;transition:background 1s;opacity:.95}
#topbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.4rem;
  padding:calc(.55rem + env(safe-area-inset-top)) .8rem .55rem;
  background:linear-gradient(180deg,rgba(5,11,31,.92),rgba(5,11,31,.55));backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
body[data-theme="eye"] #topbar{background:linear-gradient(180deg,rgba(27,20,11,.95),rgba(27,20,11,.6))}
#brand{flex:1;font-family:var(--font-head);font-weight:700;color:var(--gold);letter-spacing:.02em;font-size:1.05rem}
#starCount{font-weight:700;color:var(--gold2);background:rgba(255,255,255,.08);padding:.2rem .65rem;border-radius:99px}
.icon-btn{
  border:1px solid var(--line);background:rgba(255,255,255,.07);color:var(--text);
  width:42px;height:42px;border-radius:12px;font-size:1.15rem;cursor:pointer;
}
.icon-btn[aria-pressed="true"],.icon-btn.on{background:var(--gold);color:#1a1200}

#app{position:relative;z-index:5;max-width:760px;margin:0 auto;padding:1rem .9rem 5rem;outline:none}
h1,h2,h3{font-family:var(--font-head);line-height:1.35;margin:.2rem 0 .6rem}
h1{font-size:1.9rem;color:var(--gold)} h2{font-size:1.35rem;color:var(--gold2)} h3{font-size:1.1rem}
p{margin:.5rem 0}
.muted{color:var(--muted);font-size:.92rem}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.05rem 1.1rem;margin:.9rem 0;box-shadow:var(--shadow);backdrop-filter:blur(6px);
  animation:rise .5s ease both;
}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:46px;
  padding:.55rem 1.15rem;border-radius:14px;border:1px solid var(--line);cursor:pointer;
  background:rgba(255,255,255,.09);color:var(--text);font:inherit;font-weight:600;
}
.btn.primary{background:linear-gradient(180deg,#ffe28a,#e9b94a);color:#2a1d00;border-color:transparent}
.btn.ghost{background:transparent}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.45;pointer-events:none}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.row.end{justify-content:flex-end}
.grid{display:grid;gap:.8rem}
.chip{display:inline-block;font-size:.78rem;padding:.1rem .6rem;border-radius:99px;background:rgba(255,255,255,.1);color:var(--gold2);margin-inline-end:.3rem}

/* หน้าแรก */
.hero{text-align:center;padding:1.6rem .6rem 1rem}
.hero .logo{font-size:4rem;filter:drop-shadow(0 0 18px rgba(244,215,120,.6))}
.hero h1{font-size:2.2rem;margin:.2rem 0}
.hero p{max-width:34rem;margin-inline:auto;color:var(--muted)}
.chapters{display:grid;gap:.75rem}
.chapter-card{
  position:relative;display:flex;gap:.9rem;align-items:center;text-align:start;width:100%;
  padding:.9rem 1rem;border-radius:var(--radius);border:1px solid var(--line);color:var(--text);
  background:var(--card);cursor:pointer;font:inherit;overflow:hidden;
}
.chapter-card .ico{font-size:2.1rem;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.08);flex:none}
.chapter-card .t{font-weight:700;color:var(--gold2)}
.chapter-card .s{font-size:.86rem;color:var(--muted)}
.chapter-card.locked{opacity:.55}
.chapter-card .stars{margin-inline-start:auto;font-size:.95rem;white-space:nowrap}
.progressbar{height:8px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;margin:.5rem 0}
.progressbar>i{display:block;height:100%;background:linear-gradient(90deg,#ffe28a,#6fc3ff);width:0;transition:width .6s}

/* ฉากผจญภัย */
.scene-head{display:flex;gap:.6rem;align-items:center;margin-bottom:.3rem}
.era{font-size:.82rem;color:var(--gold2);background:rgba(255,255,255,.1);padding:.15rem .7rem;border-radius:99px}
.story{font-family:var(--font-head);font-size:1.08em;line-height:1.95}
.story em{color:var(--gold2);font-style:normal}
.speaker{font-weight:700;color:var(--accent)}
.choices{display:grid;gap:.6rem;margin-top:.8rem}
.choice{
  text-align:start;padding:.8rem 1rem;border-radius:14px;border:1px solid var(--line);
  background:rgba(255,255,255,.07);color:var(--text);font:inherit;cursor:pointer;min-height:50px;
}
.choice.right{background:rgba(127,227,161,.22);border-color:var(--good)}
.choice.wrong{background:rgba(255,155,155,.2);border-color:var(--bad)}
.feedback{margin-top:.7rem;padding:.7rem .9rem;border-radius:12px;background:rgba(255,255,255,.07);border-inline-start:4px solid var(--gold)}

/* อายะฮ์ / หะดีษ */
.ayah{border:1px solid rgba(244,215,120,.45);background:linear-gradient(180deg,rgba(244,215,120,.1),rgba(244,215,120,.03))}
.ayah .ar{
  font-family:var(--font-ar);font-size:1.75rem;line-height:2.5;direction:rtl;text-align:center;color:#fff7dc;
  padding:.4rem .2rem;word-spacing:.08em;
}
body.big .ayah .ar{font-size:2rem}
.ayah .th{margin-top:.3rem}
.ref{font-size:.84rem;color:var(--gold2);display:flex;flex-wrap:wrap;gap:.4rem .8rem;align-items:center;margin-top:.4rem}
.ref .src{opacity:.85}
.warn{font-size:.82rem;color:var(--muted);border-top:1px dashed var(--line);margin-top:.6rem;padding-top:.5rem}
.hadith{border-inline-start:5px solid var(--accent)}
.hadith .ar{font-family:var(--font-ar);direction:rtl;font-size:1.35rem;line-height:2.2;text-align:right;color:#e8f2ff}
.science{border-inline-start:5px solid var(--good)}
.science h3::before{content:"🔭 "}
.hadith h3::before{content:"📜 "}
.facts{list-style:none;padding:0;margin:.4rem 0 0}
.facts li{padding:.35rem 0 .35rem 1.4rem;position:relative}
.facts li::before{content:"✦";position:absolute;inset-inline-start:0;color:var(--gold)}

/* มินิเกม */
.mini{padding:.8rem}
.mini canvas{width:100%;display:block;border-radius:14px;background:#030814;touch-action:none}
.mini .ctrl{display:flex;gap:.6rem;align-items:center;margin-top:.6rem;flex-wrap:wrap}
.mini input[type=range]{flex:1;min-width:140px;accent-color:var(--gold);height:34px}
.mini .readout{font-weight:700;color:var(--gold2);min-width:5rem;text-align:center}
.goal{font-weight:700;color:var(--gold2)}
.done-badge{display:inline-block;margin-top:.5rem;padding:.3rem .9rem;border-radius:99px;background:var(--good);color:#06240f;font-weight:700}

/* แบบทดสอบ */
.quiz-q{font-weight:700;margin-bottom:.5rem}
.progress-dots{display:flex;gap:.35rem;margin-bottom:.6rem}
.progress-dots i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.2)}
.progress-dots i.on{background:var(--gold)} .progress-dots i.ok{background:var(--good)}

/* ผลลัพธ์ / ตารางคะแนน */
.result{text-align:center}
.result .big{font-size:3rem}
table.lb{width:100%;border-collapse:collapse}
table.lb td,table.lb th{padding:.45rem .5rem;border-bottom:1px solid var(--line);text-align:start}
input[type=text]{
  width:100%;padding:.7rem .9rem;border-radius:12px;border:1px solid var(--line);
  background:rgba(255,255,255,.08);color:var(--text);font:inherit;
}
.sources li{margin:.35rem 0;font-size:.9rem}
.sources a{color:var(--accent)}
audio{width:100%;margin-top:.4rem}
.player{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.5rem}
.player .btn{min-height:40px;padding:.3rem .9rem;font-size:.92rem}
#toast{
  position:fixed;left:50%;bottom:calc(1.2rem + env(safe-area-inset-bottom));transform:translate(-50%,30px);
  background:var(--gold);color:#241800;padding:.55rem 1.1rem;border-radius:99px;font-weight:700;
  opacity:0;pointer-events:none;transition:.35s;z-index:50;max-width:90vw;text-align:center
}
#toast.show{opacity:1;transform:translate(-50%,0)}
.install-banner{display:flex;gap:.6rem;align-items:center;justify-content:space-between}
.bar-bottom{position:sticky;bottom:0;padding:.7rem 0 .4rem;background:linear-gradient(180deg,transparent,var(--bg2) 40%);z-index:10}
.bar-bottom .row{justify-content:space-between}

@media (min-width:700px){
  h1{font-size:2.4rem}
  .chapters{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
