:root{
  --bg:#07111f;--panel:rgba(10,23,40,.78);--panel2:rgba(15,31,52,.9);--line:rgba(255,255,255,.12);--text:#f7fbff;--muted:#9db1c7;--accent:#64f3c4;--accent2:#77a8ff;--danger:#ff7b8f;--shadow:0 24px 70px rgba(0,0,0,.28);--radius:24px
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 20% 10%,#15325b 0,#07111f 42%,#040a12 100%);color:var(--text)}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{height:76px;padding:12px 18px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:20;background:rgba(4,10,18,.65);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.icon-btn{width:48px;height:48px;border-radius:15px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;font-size:21px}.brand{min-width:0;flex:1}.brand-title{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-subtitle{font-size:12px;color:var(--muted);margin-top:2px}.top-status{padding:8px 11px;border:1px solid rgba(100,243,196,.26);background:rgba(100,243,196,.08);color:var(--accent);border-radius:999px;font-size:12px;white-space:nowrap}.screen{display:none;max-width:1220px;margin:0 auto;padding:30px 18px 56px}.screen.active{display:block}.hero-card{padding:34px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(27,54,84,.78),rgba(8,19,33,.78));box-shadow:var(--shadow);border-radius:32px;overflow:hidden;position:relative}.hero-card:after{content:"";position:absolute;inset:auto -10% -55% 40%;height:320px;background:radial-gradient(circle,rgba(119,168,255,.22),transparent 60%)}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--accent);font-weight:800}.hero-card h1,.result-card h1{margin:8px 0;font-size:clamp(30px,5vw,54px);line-height:1.02}.hero-card p{max-width:720px;color:#c2d0de;line-height:1.6;margin:0}.info-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}.info-row>div{min-width:128px;padding:15px 18px;border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:18px}.info-row strong{display:block;font-size:20px}.info-row span{color:var(--muted);font-size:12px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin:30px 2px 14px}.section-head h2{margin:4px 0 0;font-size:28px}.muted{color:var(--muted);font-size:13px}.stage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.stage-card{min-height:156px;padding:18px;border-radius:22px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(13,29,48,.95),rgba(9,18,31,.94));color:#fff;text-align:left;transition:.2s transform,.2s border-color,.2s box-shadow}.stage-card:hover{transform:translateY(-3px);border-color:rgba(100,243,196,.45);box-shadow:0 18px 38px rgba(0,0,0,.2)}.stage-number{font-size:12px;color:var(--accent);font-weight:800}.stage-title{font-size:18px;font-weight:800;margin-top:8px}.stage-description{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.5}.stage-meta{margin-top:14px;font-size:11px;color:#d9e4ef}.game-screen{max-width:none;padding:0;min-height:calc(100vh - 76px)}.ar-stage{position:relative;width:100%;height:calc(100vh - 76px);min-height:620px;overflow:hidden;background:transparent}.ar-stage video,.ar-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ar-stage video{transform:scaleX(-1);background:#000}.ar-stage canvas{z-index:2;pointer-events:none}.game-hud{position:absolute;z-index:7;top:16px;left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;gap:10px}.hud-chip,.hud-question{padding:9px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(4,12,20,.88);font-size:12px}.hud-question{font-weight:800;flex:1;text-align:center;max-width:210px}.score{color:var(--accent)}.question-panel{position:absolute;z-index:6;left:50%;top:74px;transform:translateX(-50%);width:min(760px,calc(100% - 28px));padding:15px 20px;border:1px solid rgba(255,255,255,.14);background:rgba(4,12,20,.9);border-radius:20px;text-align:center;box-shadow:0 15px 45px rgba(0,0,0,.18)}.question-meta{font-size:11px;color:var(--accent);font-weight:800;margin-bottom:5px}.question-text{font-size:clamp(15px,2vw,20px);font-weight:800;line-height:1.35}.hand-guide{position:absolute;z-index:6;bottom:18px;left:50%;transform:translateX(-50%);padding:9px 13px;border:1px solid rgba(255,255,255,.12);background:rgba(4,12,20,.8);border-radius:999px;font-size:11px;color:#d8e3ed;white-space:nowrap}.guide-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 18px var(--accent);margin-right:6px}.ar-toast{position:absolute;z-index:8;left:50%;top:50%;transform:translate(-50%,-50%);padding:14px 20px;border-radius:16px;background:rgba(6,15,25,.86);border:1px solid rgba(255,255,255,.14);font-weight:800;opacity:0;pointer-events:none;transition:.2s}.ar-toast.show{opacity:1}.floating-exit{position:absolute;z-index:8;right:16px;bottom:18px;padding:9px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(4,12,20,.62);color:#fff;font-size:11px}.result-screen.active{display:flex;align-items:flex-start;justify-content:center}.result-card{width:min(820px,100%);padding:30px;border:1px solid var(--line);background:linear-gradient(150deg,rgba(22,43,68,.92),rgba(8,17,29,.95));box-shadow:var(--shadow);border-radius:32px;text-align:center}.result-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 14px;border-radius:20px;background:rgba(100,243,196,.09);color:var(--accent);font-size:28px}.result-card p{color:var(--muted)}.result-score{margin:20px 0;font-size:65px;font-weight:900;line-height:1}.result-score small{font-size:14px;color:var(--muted);font-weight:700}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.result-stats>div{padding:15px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.04)}.result-stats strong{display:block;font-size:24px}.result-stats span{font-size:11px;color:var(--muted)}.answer-review{margin-top:18px;text-align:left;display:grid;gap:8px;max-height:340px;overflow:auto;padding-right:3px}.review-item{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line);font-size:12px}.review-badge{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none}.review-correct .review-badge{background:rgba(100,243,196,.14);color:var(--accent)}.review-wrong .review-badge{background:rgba(255,123,143,.12);color:var(--danger)}.review-copy strong{display:block;margin-bottom:3px}.review-copy span{color:var(--muted);line-height:1.45}.result-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}.primary-btn,.secondary-btn{border-radius:15px;padding:13px 18px;border:1px solid transparent;font-weight:800}.primary-btn{background:linear-gradient(135deg,var(--accent),#89d7ff);color:#04111a}.secondary-btn{background:rgba(255,255,255,.06);border-color:var(--line);color:#fff}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:rgba(2,7,13,.78);backdrop-filter:blur(12px)}.modal.hidden{display:none}.modal-card{width:min(1040px,100%);max-height:90vh;overflow:auto;padding:26px;border-radius:26px;border:1px solid var(--line);background:#0b1625;box-shadow:var(--shadow);position:relative}.modal-card.compact{width:min(440px,100%)}.modal-card h2{margin:8px 0}.modal-card p{color:var(--muted);line-height:1.6}.modal-close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:#fff;font-size:28px}.text-input,.admin-input{width:100%;padding:13px 14px;background:#07111f;border:1px solid var(--line);border-radius:14px;color:#fff;outline:none}.text-input:focus,.admin-input:focus{border-color:rgba(100,243,196,.6)}.small-note{min-height:20px;color:var(--danger);font-size:12px;margin-top:8px}@media(max-width:1050px){.stage-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:780px){.screen{padding:20px 12px 34px}.topbar{height:68px}.ar-stage{height:calc(100vh - 68px)}.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-card{padding:24px}.question-panel{top:68px}.question-text{font-size:15px}.game-hud{top:10px}.hud-chip,.hud-question{padding:8px 9px}.hand-guide{bottom:12px;max-width:calc(100% - 30px);overflow:hidden;text-overflow:ellipsis}.floating-exit{bottom:12px}.result-card{padding:22px}.result-score{font-size:56px}}@media(max-width:430px){.brand-subtitle{display:none}.stage-grid{gap:9px}.stage-card{min-height:145px;padding:14px}.stage-title{font-size:15px}.stage-description{font-size:11px}.result-stats{gap:7px}.result-stats strong{font-size:20px}}


/* Responsive hardening v5 UI
   - รองรับ safe-area / dynamic viewport บนมือถือ
   - ป้องกันการล้นแนวนอน
   - รักษาขนาดพื้นที่สัมผัสที่เหมาะกับหน้าจอสัมผัส
   - ลดการซ้อนทับของ HUD / คำถาม / ปุ่มออกในจอแคบหรือแนวนอน
*/
html{min-height:100%;background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-width:0;overflow-x:hidden;overscroll-behavior-x:none}
button,.icon-btn,.primary-btn,.secondary-btn,.floating-exit{min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.topbar{padding-top:max(12px,env(safe-area-inset-top));padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));}
.screen{width:100%;}
.game-screen{min-height:calc(100dvh - 76px);}
.ar-stage{height:calc(100dvh - 76px);min-height:0;height:calc(100vh - 76px);height:calc(100svh - 76px);height:calc(100dvh - 76px);}
.game-hud{top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));}
.floating-exit{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));}
.hand-guide{bottom:max(12px,env(safe-area-inset-bottom));max-width:min(72vw,520px);}
.modal{padding-top:max(18px,env(safe-area-inset-top));padding-right:max(18px,env(safe-area-inset-right));padding-bottom:max(18px,env(safe-area-inset-bottom));padding-left:max(18px,env(safe-area-inset-left));}
.modal-card{max-height:calc(100dvh - 36px);}
.result-screen.active{min-height:calc(100dvh - 68px);}

@media (max-width:780px){
  .topbar{height:68px;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));gap:9px}
  .icon-btn{width:46px;height:46px;flex:0 0 46px}
  .brand-title{font-size:clamp(13px,3.8vw,17px)}
  .brand-subtitle{font-size:11px}
  .top-status{font-size:11px;padding:7px 9px}
  .screen{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));}
  .hero-card{border-radius:24px}
  .stage-card{min-width:0;min-height:132px}
  .stage-description{overflow-wrap:anywhere}
  .game-screen{min-height:calc(100dvh - 68px)}
  .ar-stage{height:calc(100vh - 68px);height:calc(100svh - 68px);height:calc(100dvh - 68px)}
  .game-hud{gap:6px}
  .hud-chip,.hud-question{font-size:11px;padding:8px 9px;min-height:40px}
  .hud-question{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .question-panel{top:62px;width:min(760px,calc(100% - 20px));padding:12px 14px;border-radius:16px;}
  .question-text{font-size:clamp(14px,3.8vw,17px);overflow-wrap:anywhere}
  .hand-guide{font-size:10px;max-width:64vw;white-space:normal;text-align:center;line-height:1.35;padding:8px 10px}
  .floating-exit{font-size:10px;padding:8px 10px;min-height:40px}
  .result-card{width:100%;border-radius:24px}
  .answer-review{max-height:min(38dvh,340px)}
  .result-actions .primary-btn,.result-actions .secondary-btn{flex:1 1 180px}
}

@media (max-width:430px){
  .topbar{gap:7px}
  .icon-btn{width:44px;height:44px;flex-basis:44px;font-size:19px;border-radius:13px}
  .brand-title{font-size:14px}
  .top-status{font-size:10px;padding:6px 8px}
  .hero-card{padding:20px;border-radius:22px}
  .hero-card h1,.result-card h1{font-size:clamp(28px,9vw,38px)}
  .info-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .info-row>div{min-width:0;padding:11px 8px;text-align:center}
  .info-row strong{font-size:17px}
  .info-row span{font-size:10px}
  .section-head{align-items:flex-start;gap:8px}
  .section-head h2{font-size:23px}
  .muted{font-size:11px}
  .stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .stage-card{min-height:140px;padding:12px;border-radius:18px}
  .stage-title{font-size:14px;line-height:1.25}
  .stage-meta{font-size:10px;margin-top:10px}
  .game-hud{top:6px;left:6px;right:6px}
  .hud-chip{padding-left:8px;padding-right:8px}
  .question-panel{top:57px;width:calc(100% - 12px);padding:10px 11px}
  .question-meta{font-size:9px;margin-bottom:4px}
  .question-text{font-size:14px;line-height:1.3}
  .hand-guide{left:8px;right:auto;transform:none;bottom:max(8px,env(safe-area-inset-bottom));max-width:58vw}
  .floating-exit{right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));}
  .result-card{padding:18px 14px}
  .result-score{font-size:50px}
  .result-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .result-stats>div{padding:11px 6px}
  .result-stats strong{font-size:19px}
  .result-stats span{font-size:9px}
  .review-item{font-size:11px;padding:10px}
}

@media (max-width:360px){
  .brand-subtitle{display:none}
  .top-status{max-width:72px;overflow:hidden;text-overflow:ellipsis}
  .stage-title{font-size:13px}
  .stage-description{font-size:10px}
  .stage-meta{font-size:9px}
  .question-text{font-size:13px}
  .hand-guide{max-width:55vw;font-size:9px}
  .floating-exit{font-size:9px;padding:7px 9px}
}

@media (orientation:landscape) and (max-height:560px){
  .topbar{height:56px}
  .game-screen{min-height:calc(100dvh - 56px)}
  .ar-stage{height:calc(100dvh - 56px);height:calc(100svh - 56px);height:calc(100vh - 56px)}
  .game-hud{top:5px}
  .question-panel{top:45px;max-width:min(780px,76vw);padding:8px 12px}
  .question-meta{font-size:9px;margin-bottom:2px}
  .question-text{font-size:13px}
  .hand-guide{bottom:max(7px,env(safe-area-inset-bottom));font-size:9px;padding:6px 9px;max-width:48vw}
  .floating-exit{bottom:max(7px,env(safe-area-inset-bottom));min-height:38px}
}

@media (pointer:coarse){
  .stage-card:hover{transform:none;box-shadow:none}
  .stage-card:active,.primary-btn:active,.secondary-btn:active,.floating-exit:active,.icon-btn:active{transform:scale(.985)}
}
