*{box-sizing:border-box}
:root{
  --bg:#020617;--panel:#07152f;--panel2:#0b2148;--line:#1f4f8d;
  --text:#eef6ff;--muted:#9eb6d2;--accent:#42d3ff;--accent2:#8b5cf6;
  --good:#32d583;--bad:#ff6b6b;--gold:#f7c948
}
html,body{margin:0;min-height:100%;font-family:Tahoma,"Noto Sans Thai",Arial,sans-serif;background:radial-gradient(circle at 20% 0%,#17376f 0,#0a1a40 36%,#020617 78%);color:var(--text)}
body{overflow-x:hidden}
button,input{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.topbar{display:flex;align-items:center;min-height:58px;background:linear-gradient(90deg,#173d70,#112b53);border-bottom:1px solid #3b70aa}
.course-code{padding:16px 24px;background:#0d2a4d;font-weight:800;font-size:1.25rem}
.course-name{flex:1;text-align:center;font-weight:700;padding:10px}
.icon-btn{margin-right:12px;border:1px solid #4e78a7;background:#0d2a4d;color:white;border-radius:10px;padding:9px 12px}
.screen{width:min(1180px,94%);margin:24px auto}
.title-wrap{text-align:center;margin:24px 0}
.eyebrow{color:var(--accent);letter-spacing:.08em;font-size:.88rem;font-weight:700}
h1{margin:.35rem 0;font-size:clamp(2rem,5vw,3.65rem);text-shadow:0 0 24px rgba(66,211,255,.25)}
.title-wrap p{margin:0;color:#c7d6ea;font-size:1.08rem}
.start-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}
.panel{background:linear-gradient(180deg,rgba(11,33,72,.94),rgba(5,20,47,.96));border:1px solid #315c91;border-radius:18px;padding:24px;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.panel h2{margin-top:0;color:#cfeeff}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:#d7e5f5}
.form-grid input{width:100%;padding:12px 13px;border:1px solid #386292;border-radius:10px;background:#06162f;color:white;outline:none}
.form-grid input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(66,211,255,.18)}
.primary-btn,.secondary-btn{border:0;border-radius:11px;padding:12px 20px;font-weight:800}
.primary-btn{background:linear-gradient(90deg,var(--accent),#5ea7ff);color:#051326}
.secondary-btn{background:#173a67;color:#fff;border:1px solid #4a75a6}
#startBtn{width:100%;margin-top:18px}
.mission-panel li{margin:11px 0;line-height:1.5}
.control-demo{display:flex;gap:10px;justify-content:center;margin-top:22px}
.control-demo span{display:grid;place-items:center;min-width:52px;height:45px;border-radius:9px;background:#0a1d3b;border:1px solid #4672a5;font-weight:800}
.control-demo .wide{min-width:110px}
.game-screen{margin-top:14px}
.hud{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:10px}
.hud-item{background:rgba(5,20,47,.88);border:1px solid #315c91;border-radius:12px;padding:9px 12px;text-align:center}
.hud-item span{display:block;color:var(--muted);font-size:.82rem}
.hud-item strong{font-size:1.2rem;color:white}
.progress-shell{height:10px;background:#0b1f43;border-radius:999px;overflow:hidden;margin-bottom:12px;border:1px solid #274c7e}
.progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .25s ease}
.question-box{min-height:86px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px 20px 18px;margin-bottom:10px;background:rgba(7,21,47,.94);border:1px solid #315c91;border-radius:14px;font-size:clamp(1rem,2vw,1.25rem);font-weight:700;line-height:1.55;gap:14px}.question-main{width:100%}
.canvas-wrap{position:relative;width:100%;aspect-ratio:16/9;max-height:66vh;min-height:390px;border:1px solid #2d5b92;border-radius:16px;overflow:hidden;background:#020617;box-shadow:0 18px 45px rgba(0,0,0,.35)}
canvas{display:block;width:100%;height:100%;touch-action:none}

.answer-legend{width:min(760px,100%);display:grid;grid-template-columns:1fr 1fr;gap:10px;z-index:3}.question-legend{position:static;transform:none;pointer-events:none}
.answer-legend .legend-item{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border-radius:14px;background:rgba(6,24,55,.88);border:1.6px solid #44dbff;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.answer-legend .legend-badge{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f7c948;color:#10284d;font-weight:900;font-size:1rem;line-height:1;border:1.5px solid #fff1a8;margin-top:1px}
.answer-legend .legend-text{font-size:.92rem;line-height:1.3;color:#eef6ff;font-weight:700;text-align:left}
.canvas-tip{position:absolute;bottom:10px;right:14px;font-size:.9rem;color:#bedcff;background:rgba(7,21,47,.62);border:1px solid #315c91;padding:6px 10px;border-radius:999px}
.feedback{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;background:rgba(2,6,23,.56);font-size:clamp(1.4rem,4vw,2.4rem);font-weight:900;text-shadow:0 2px 10px #000}
.feedback small{font-size:.55em;display:block;margin-top:12px;font-weight:700}
.feedback.good{color:#c6ffe1}.feedback.bad{color:#ffd0d0}
.mobile-controls{display:none;grid-template-columns:1fr 1.2fr 1fr;gap:12px;margin-top:12px}
.mobile-controls button{min-height:58px;border-radius:14px;border:1px solid #4a75a6;background:#0b2248;color:white;font-size:1.1rem;font-weight:900}
.mobile-controls .fire{background:linear-gradient(90deg,#d97706,#f7c948);color:#201400}
footer{text-align:center;padding:18px;background:#030a17;color:#a9bfd7;margin-top:30px}
.modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.78)}
.result-card{position:relative;width:min(760px,96vw);max-height:94vh;overflow:auto;background:linear-gradient(180deg,#0d2752,#06152f);border:1px solid #4b78ab;border-radius:20px;padding:28px;text-align:center;box-shadow:0 28px 80px rgba(0,0,0,.55)}
.close-btn{position:absolute;top:10px;right:14px;background:transparent;border:0;color:white;font-size:2rem}
.trophy{font-size:3rem}
.result-card h2{margin:.2rem 0 1rem}
.student-summary{text-align:left;background:#06162f;border:1px solid #315c91;border-radius:12px;padding:14px;line-height:1.8}
.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}
.result-grid>div{background:#0a1f42;border:1px solid #315c91;border-radius:12px;padding:14px}
.result-grid span{display:block;color:var(--muted);font-size:.86rem}
.result-grid strong{font-size:1.5rem}
.final-date{color:#c7d6ea}
.capture-note{margin:18px 0;padding:15px;border:2px dashed var(--gold);border-radius:12px;background:#3a2c07;color:#fff1b8;font-weight:900}
.result-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
@media(max-width:800px){
  .start-grid,.form-grid{grid-template-columns:1fr}
  .hud{grid-template-columns:repeat(6,1fr);gap:5px}
  .hud-item{padding:7px 4px}.hud-item strong{font-size:1rem}
  .mobile-controls{display:grid}
  .canvas-wrap{min-height:460px;aspect-ratio:3/4}
  .answer-legend{width:100%;grid-template-columns:1fr;transform:none}
  .answer-legend .legend-item{padding:8px 10px}
  .answer-legend .legend-text{font-size:.82rem;line-height:1.25}
}
@media(max-width:520px){
  .course-name{font-size:.82rem}.course-code{padding:15px 13px;font-size:1rem}
  .screen{width:96%;margin-top:12px}
  .panel{padding:17px}
  .question-box{min-height:108px;padding:12px}
  .result-grid{grid-template-columns:repeat(2,1fr)}
}
@media print{
  body *{visibility:hidden}
  #resultModal,#resultModal *{visibility:visible}
  #resultModal{position:static;display:block!important;padding:0;background:white}
  .result-card{width:100%;max-height:none;box-shadow:none}
  .close-btn,.result-actions{display:none!important}
}

#lives{color:#ff7b8a;letter-spacing:2px}.player-hit{animation:playerFlash .14s linear 5}@keyframes playerFlash{50%{opacity:.15}}
@media(max-width:620px){.hud{grid-template-columns:repeat(3,1fr)}}
