:root{--reading-scale:1;--ink:#233a42;--teal:#116b64;--paper:#fffdf5}
body{background:radial-gradient(ellipse at 15% 10%,#e9f5d7,transparent 48%),radial-gradient(ellipse at 90% 70%,#d4e9ed,transparent 50%),#f5f1e4;color:var(--ink)}
#wrap{height:100dvh;padding:170px 12px 135px;min-height:0}
canvas{border:3px solid #fff8e8;border-radius:24px;max-width:96vw;max-height:calc(100dvh - 300px);width:auto;height:auto;box-shadow:0 20px 70px #244e4830}
.panel{background:#eaf1e6e8;backdrop-filter:blur(12px);padding:26px}
.card{background:var(--paper);border:1px solid #d5ded0;box-shadow:0 16px 50px #244e4820;width:min(1000px,96vw);border-radius:26px;color:var(--ink)}
h1{font-size:clamp(30px,4vw,48px);letter-spacing:-2px;color:#234c42}.edition{font-size:.52em;background:#e3eed2;padding:4px 12px;border-radius:30px;vertical-align:middle;color:#547e37;letter-spacing:0}
.subtitle{color:#63756c;font-size:16px;max-width:780px;line-height:1.6}.eyebrow{letter-spacing:2px;color:#6b8467;font-size:11px;font-weight:800}
.setupHeading h2{font-size:24px;margin:8px 0}.setupHeading p{color:#758070;font-size:14px;margin:0 0 20px}
.characterGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.characterCard{display:flex;flex-direction:column;align-items:center;gap:8px;border:2px solid #e4e8d9;border-radius:18px;padding:16px;cursor:pointer;background:#f9faf0;position:relative;text-align:center}.characterCard:has(input:checked){border-color:#398572;background:#ecf4df;box-shadow:0 5px 0 #d7e6cb}.characterCard input{position:absolute;top:12px;left:12px;accent-color:#227665}.heroIcon{font-size:42px}.characterCard small{font-size:12px;color:#718471;line-height:1.6}.characterCard strong{font-size:17px}
.setupGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.setupGrid label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:750}.setupGrid .check{flex-direction:row;align-items:center}.check input{width:18px;height:18px;accent-color:#187566}
select,input[type=number]{background:white;color:var(--ink);border:1px solid #ccd9cc;border-radius:12px;padding:11px;font-size:14px;min-width:0;width:100%}select:focus,input:focus,button:focus-visible,summary:focus-visible{outline:3px solid #edb04d;outline-offset:3px}
button{background:#f0b94d;box-shadow:0 4px 0 #d89930;color:#273d37;font-size:14px;border-radius:12px;padding:11px 16px;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.65;cursor:default}button:active{transform:translateY(2px)}#startBtn{background:#176f62;color:white;box-shadow:0 4px 0 #0b4c42;min-width:170px;font-size:17px}#muteBtn,#musicBtn,.exports button{background:#e7eee2;color:#315f4a;box-shadow:0 4px 0 #cbd8c5}
.row{gap:12px}.row select{width:auto;flex:1}.row #startBtn{flex:1}.originalHelp,.preferences{border:1px solid #dde4d5;background:#f2f6eb;border-radius:12px;padding:12px 16px;margin:16px 0;font-size:14px}summary{cursor:pointer;font-weight:700;color:#526c53}.originalHelp .tabs{margin-top:14px}.info{background:#edf1e6;border:1px solid #e0e6d6;color:#4c6351;font-size:14px}.info b{color:#284c36}kbd{background:#deebd2;color:#284c36;border-color:#c4d5b4}.small{color:#788270}
#teacherSettings{display:flex;align-items:center;flex-wrap:wrap;gap:14px;border:1px dashed #94b69b;border-radius:14px;background:#f1f7ec;padding:16px}#teacherSettings[hidden]{display:none}#teacherSettings label{width:150px;font-size:13px}#teacherSettings small{color:#637961;flex:1;min-width:180px}.history{color:#658266;background:#f0f5e9;padding:12px;border-radius:10px;font-size:13px;margin:14px 0}
#hud{top:10px;width:min(1080px,96vw);gap:6px}.hudBox{color:#21443c;text-shadow:none;background:#fffdf1ef;border-color:#d4e0c9;min-width:0;flex:1;padding:9px 6px;font-size:13px}
#playControls{position:absolute;top:59px;left:max(14px,calc((100vw - 1080px)/2));display:none;gap:6px;z-index:6}body.game-running #playControls{display:flex}#playControls button{background:#e3eddb;box-shadow:none;font-size:12px;min-height:36px}
#mainMenuBtn,#quitGameBtn{top:59px;padding:8px 12px;box-shadow:none;font-size:12px;min-height:36px}#mainMenuBtn{right:max(125px,calc((100vw - 1080px)/2 + 110px));background:#e3eddb}#quitGameBtn{right:max(14px,calc((100vw - 1080px)/2));background:#f9ddd0}
#questionBox{top:103px;border:1px solid #d9ab43;background:#fff7ddf5;color:#24483c;box-shadow:0 8px 20px #7a5e1e15;padding:10px 16px;width:min(800px,94vw);border-radius:16px}#questionText{font-size:calc(clamp(20px,2.6vw,29px) * var(--reading-scale));color:#3c573c;font-weight:850}#questionSub{color:#7d7956;font-size:12px}
#skillBtn{position:absolute;right:22px;bottom:24px;display:none;z-index:7;background:#c1e0cf;box-shadow:0 4px 0 #8cbba2}body.game-running #skillBtn{display:block}#answerAccess{position:absolute;bottom:75px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:5;max-width:94vw}#answerAccess button{background:#fffbe6;border:1px solid #d6c978;min-width:70px;box-shadow:none;font-size:calc(15px * var(--reading-scale));white-space:nowrap}#answerAccess:empty{display:none}#explanation{position:absolute;bottom:122px;left:50%;transform:translateX(-50%);max-width:760px;width:92vw;text-align:center;font-size:calc(13px * var(--reading-scale));color:#365b40;background:#fff9e9eb;border-radius:12px;padding:8px;z-index:5}#explanation:empty{display:none}
#weaponInfo{top:auto;bottom:16px;left:16px;max-width:65vw;font-size:11px;color:#315842;background:#fffce8e8;border-color:#d6e0c4}#missionInfo{top:auto;bottom:42px;left:16px;font-size:12px;color:#315842;background:#edf6e2e8;border-color:#d6e0c4}#activeItems{top:auto;bottom:48px;right:16px;max-width:240px}.buff{background:#fffce8e8;color:#315842;font-size:11px;border-color:#d6e0c4}
#bossHUD{position:absolute;top:185px;left:50%;transform:translateX(-50%);width:min(500px,85vw);font-size:12px;text-align:center;padding:6px;background:linear-gradient(90deg,#ea9c91 var(--boss-health),#f8e8de var(--boss-health));border:1px solid #ce7369;border-radius:8px;z-index:5;color:#6d332e}
#toast{bottom:180px;top:auto;background:#164f44;color:white;max-width:86vw;font-size:13px}#achievementPop{background:#fff8df;color:#6e632d;top:220px}#levelUpPanel{z-index:110}.levelCard{background:var(--paper);color:var(--ink);border-color:#cadac3}.levelCard p{color:#657560}.upgradeBtn{background:#f4f6dd;box-shadow:0 4px 0 #cbd9b6;border-color:#b9cbaa}.upgradeBtn .title{color:#35583d}.upgradeBtn .desc{color:#67745a}
.resultStats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.resultStats div{background:#edf4e4;border-radius:14px;padding:14px;color:#71826a;font-size:13px}.resultStats strong{display:block;font-size:25px;margin-top:8px;color:#284f39}.domainResult{display:flex;gap:14px;align-items:center;padding:10px;background:#f2f5ea;margin:5px 0;border-radius:10px;font-size:13px}.domainResult progress{flex:1;accent-color:#267d62}.reviewRow{border-left:3px solid #e2b255;padding:12px 16px;background:#faf4e2;margin:8px 0;border-radius:8px}.reviewRow p{font-size:13px}.reviewRow small{color:#6f795f}.exports{display:flex;gap:10px;margin-bottom:18px}
body:not(.game-running) #weaponInfo,body:not(.game-running) #missionInfo,body:not(.game-running) #activeItems,body:not(.game-running) #explanation,body:not(.game-running) #answerAccess{display:none}
.reduce-motion *{animation:none!important;transition:none!important}.low-power .panel{backdrop-filter:none}.low-power canvas{box-shadow:none}
@media(max-width:760px),(pointer:coarse){
 .panel{padding:10px}.card{padding:20px}.setupGrid{grid-template-columns:repeat(2,1fr);gap:12px}.characterGrid{gap:6px}.characterCard{padding:12px 6px}.characterCard strong{font-size:12px}.characterCard small{font-size:10px}.heroIcon{font-size:32px}.characterCard input{top:6px;left:6px;width:12px;height:12px}h1{font-size:29px;letter-spacing:-1px}.subtitle{font-size:13px}.setupHeading h2{font-size:21px}
 #wrap{padding:215px 4px 190px}canvas{width:auto;max-width:calc(100vw - 8px);max-height:calc(100dvh - 370px);border-radius:16px}
 #hud{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;top:8px}.hudBox{font-size:11px;line-height:1.3;padding:7px 3px;white-space:normal}
 #playControls{top:76px;left:8px}#playControls button{padding:7px;font-size:11px}#mainMenuBtn,#quitGameBtn{top:76px;font-size:10px;padding:7px}#mainMenuBtn{right:83px}#quitGameBtn{right:8px}
 #questionBox{top:118px;padding:9px;width:95vw}#questionText{font-size:calc(18px * var(--reading-scale))}#questionSub{font-size:10px}#bossHUD{top:205px;font-size:10px;padding:3px}
 #answerAccess{bottom:152px;gap:5px;width:96vw;justify-content:center}#answerAccess button{min-width:0;flex:1;padding:9px 4px;font-size:calc(13px * var(--reading-scale))}
 #explanation{bottom:195px;font-size:calc(11px * var(--reading-scale));padding:6px}#joystickZone{width:105px;height:105px;left:14px;bottom:18px;background:#3b746d33;border-color:#73a190}#joystickStick{width:48px;height:48px;margin-left:-24px;margin-top:-24px;background:#75a597}#dashBtn{width:66px;height:66px;right:14px;bottom:18px;background:#eabd55;font-size:15px;z-index:7}#skillBtn{right:14px;bottom:97px;font-size:11px;padding:10px;width:92px}
 #missionInfo{bottom:130px;left:12px;max-width:70vw;font-size:10px;padding:4px}#weaponInfo{bottom:6px;left:130px;right:88px;max-width:none;font-size:9px;padding:4px;z-index:4}#activeItems{display:none}#toast{bottom:245px;font-size:11px}#achievementPop{top:236px;font-size:11px}.resultStats{grid-template-columns:repeat(2,1fr)}.domainResult{gap:6px;font-size:10px}.domainResult progress{width:70px}.row select{width:100%;flex-basis:100%}.row #startBtn,.row #muteBtn{flex-basis:100%}
}
@media(max-height:550px) and (orientation:landscape){#wrap{padding:110px 8px 65px}canvas{max-height:calc(100dvh - 180px)}#questionBox{top:90px;width:50vw;padding:5px}#questionText{font-size:17px}#questionSub{display:none}#hud{display:flex}.hudBox{font-size:10px}#playControls,#mainMenuBtn,#quitGameBtn{top:43px}#answerAccess{bottom:35px;width:50vw}#explanation{bottom:77px;width:55vw}#missionInfo{bottom:10px}#weaponInfo{display:none}#bossHUD{top:142px;width:40vw}#skillBtn{bottom:90px}#joystickZone{width:80px;height:80px}#toast{bottom:110px}}
/* 📲 앱 설치 버튼과 하단 문구 */
.titleRow{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin-bottom:10px}
.titleRow h1{margin:0}
.installChip{flex:none;width:auto;margin:0;padding:9px 16px;border-radius:999px;border:1px solid #2f6b55;background:#2f6b55;color:#fff;font:inherit;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 6px 16px #244e4826}
.installChip:hover{background:#245645}
.topChips{display:flex;gap:8px;flex:none}
.qrChip{background:#fff;color:#2f6b55;border-color:#bcd3c6}
.qrChip:hover{background:#eef5ef}
.copyright{margin-top:6px}
.copyright a{color:inherit;text-decoration:underline;text-underline-offset:3px}
@media (max-width:520px){.installChip{padding:7px 12px;font-size:13px}}
