:root{--gold:#f4b31a;--gold2:#ffd05a;--ok:#5fd17e;--text:#f5f7fb;--muted:#9fb0c5}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:#050b12;color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app{min-height:100vh;background:linear-gradient(180deg,#07111c,#03070d)}
.topbar{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:1.4fr repeat(4,minmax(120px,.7fr)) 132px 96px;gap:8px;padding:8px;background:#111820;border-bottom:1px solid #3b4653}.brandbox,.statbox{border:1px solid #3a4654;border-radius:11px;background:linear-gradient(180deg,#1a222c,#161d25);padding:10px 12px}.brandbox small,.statbox small{display:block;color:#a9b5c4;font-size:11px}.brandbox b{display:block;color:var(--gold2);font-size:19px;margin-top:2px}.statbox b{display:block;font-size:17px;margin-top:2px}.reset{border:1px solid #485462;border-radius:11px;background:#171e26;color:white;font-weight:800}
.editor-layout{max-width:1500px;margin:0 auto;padding:12px;display:grid;grid-template-columns:360px minmax(0,1fr);gap:12px;align-items:start}.sidebar{position:sticky;top:96px;max-height:calc(100vh - 110px);overflow:auto;background:#0a1420;border:1px solid #2f3f50;border-radius:15px;padding:13px}.sidebar h1{font-size:22px;margin:0 0 4px;color:var(--gold2)}.sidebar p{font-size:13px;color:var(--muted);line-height:1.45}.section{border-top:1px solid #2c3948;padding-top:12px;margin-top:12px}.section h3{margin:0 0 8px;font-size:15px}label{display:block;font-size:12px;font-weight:800;color:#dbe5ef;margin:9px 0 4px}input,textarea,select{width:100%;background:#0b1520;color:white;border:1px solid #334557;border-radius:9px;padding:9px 10px;outline:none}textarea{min-height:72px;resize:vertical}.btnrow{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.btn{border:1px solid #394b5e;border-radius:9px;background:#172434;color:white;padding:9px 11px;font-weight:800}.btn.primary{background:var(--gold);color:#0a0a0a;border-color:#d99a00}.btn.good{background:#164f2c;border-color:#2f8a4e}.btn.danger{background:#4c1e25;border-color:#7a2c37}.notice{margin-top:8px;padding:9px;border-radius:9px;background:#13283a;color:#cde8ff;font-size:12px}.ai-box{background:linear-gradient(180deg,#0f2030,#0a1723);border:1px solid #355778;border-radius:10px;padding:10px}.jsonbox{min-height:140px}.share{display:flex;gap:7px;margin-top:7px}.share input{margin:0}
.workspace{min-width:0}.quest-title{text-align:center;border:1px solid #775d12;background:#0a1520;border-radius:12px;padding:8px 12px;margin-bottom:8px}.quest-title h2{margin:0;color:var(--gold2);font-size:28px}.quest-title small{color:#b9c6d6}.game-shell{display:grid;grid-template-columns:150px minmax(0,1fr) 170px;gap:8px;min-height:650px}.sidepanel{background:#091522;border:1px solid #835f00;border-radius:10px;padding:10px}.sidepanel h3{text-align:center;color:var(--gold2);font-size:13px;margin:0 0 9px}.inventory-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.invslot{aspect-ratio:1;border:1px dashed #715d28;border-radius:7px;display:grid;place-items:center;font-size:10px;color:#b8c4d1;background:#0c1723;text-align:center;padding:4px}.helper-card{margin-top:10px;border:1px solid #765914;border-radius:8px;overflow:hidden;background:#101923}.helper-card img{width:100%;height:145px;object-fit:cover;display:block}.helper-card b{display:block;color:var(--gold2);padding:6px 7px 0}.helper-card p{font-size:11px;color:#d0d7df;padding:0 7px 7px;margin:4px 0}.location-card{background:#08131f;border:1px solid #8d6900;border-radius:10px;padding:7px}.loc-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}.loc-head h3{margin:0;font-family:Georgia,serif;color:#ffd36e;font-size:20px}.loc-head small{color:#d4dbe4}.counter{border:1px solid #a17800;border-radius:999px;padding:3px 7px;font-size:11px}.scene-wrap{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:8px;background:#0a1017;border:1px solid #45515f;cursor:crosshair}.scene-wrap img{width:100%;height:100%;object-fit:cover;display:block}.scene-empty{position:absolute;inset:0;display:grid;place-items:center;color:#8798aa;background:linear-gradient(135deg,#111d2a,#08111a)}.hotspot{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(224,151,11,.94);border:2px solid #fff;box-shadow:0 0 0 3px rgba(244,179,26,.4),0 7px 20px rgba(0,0,0,.35);font-weight:900;color:#fff}.hotspot.done{background:rgba(64,161,87,.95);box-shadow:0 0 0 3px rgba(95,209,126,.35)}.scene-caption{display:flex;justify-content:space-between;gap:12px;margin-top:6px;color:#aebccd;font-size:12px}.task-list{display:grid;gap:6px}.task-item{border-bottom:1px solid #3a4652;padding:6px 0;font-size:11px}.task-item b{display:block}.task-item.done b{color:var(--ok)}.secret{margin-top:10px;border-top:1px solid #725700;padding-top:9px;text-align:center}.codeboxes{display:flex;justify-content:center;gap:4px}.codeboxes span{width:23px;height:23px;border:1px solid #a27a08;border-radius:50%;display:grid;place-items:center;color:#d9c06c;font-size:11px}.route{margin-top:8px;border:1px solid #7a5d05;border-radius:11px;background:#09131d;padding:8px}.route-head{display:flex;justify-content:space-between;align-items:center;color:var(--gold2);font-size:12px;font-weight:900;margin-bottom:7px}.route-progress{height:8px;border-radius:999px;background:#2c3948;overflow:hidden;margin:0 auto 9px;width:42%}.route-progress span{display:block;height:100%;background:var(--gold);width:0}.location-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.loc-tab{position:relative;aspect-ratio:16/8.5;border-radius:8px;overflow:hidden;border:1px solid #584c2a;background:#111;opacity:.42;color:#fff}.loc-tab.active{opacity:1;border-color:#f3b219;box-shadow:0 0 0 1px #f3b219}.loc-tab.unlocked{opacity:.82}.loc-tab img{width:100%;height:100%;object-fit:cover}.loc-tab .shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.82))}.loc-tab b{position:absolute;left:6px;right:6px;bottom:5px;font-size:10px}.lock{position:absolute;inset:0;display:grid;place-items:center;font-size:20px}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.7);display:grid;place-items:center;z-index:100;padding:18px}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:#0d1824;border:1px solid #5c6a78;border-radius:16px;padding:18px}.modal h2{margin:0 0 4px;color:var(--gold2)}.modal p{color:#c4ced9;line-height:1.5}.option{display:block;width:100%;text-align:left;margin:7px 0;padding:10px;border-radius:9px;border:1px solid #3e5063;background:#122130;color:white}.option.correct{border-color:#2d8c4e;background:#153d24}.option.wrong{border-color:#8b3742;background:#3c1820}.feedback{margin-top:10px;padding:10px;border-radius:9px;background:#13283a}.feedback.good{background:#153b24;color:#bff2cc}.feedback.bad{background:#3d181d;color:#ffd0d4}.student .editor-layout{display:block;max-width:1450px}.student .workspace{padding:8px}.student .scene-wrap{cursor:default}
@media(max-width:1150px){.topbar{grid-template-columns:1.2fr repeat(2,1fr)}.topbar .statbox:nth-of-type(n+4){display:none}.game-shell{grid-template-columns:120px minmax(0,1fr)}.game-shell>.sidepanel:last-child{grid-column:1/-1}.location-tabs{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){.editor-layout{grid-template-columns:1fr}.sidebar{position:static;max-height:none}.game-shell{grid-template-columns:1fr}.location-tabs{grid-template-columns:repeat(2,1fr)}}


/* --- My quests --- */
.library-page{min-height:100vh;background:linear-gradient(180deg,#07111c,#03070d)}
.library-wrap{max-width:1180px;margin:0 auto;padding:24px 16px 50px}
.library-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}
.library-head h1{margin:0;color:var(--gold2);font-size:30px}
.library-head p{margin:4px 0 0;color:var(--muted)}
.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.quest-card{background:linear-gradient(180deg,#101c29,#0b1520);border:1px solid #36495c;border-radius:15px;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.2)}
.quest-thumb{aspect-ratio:16/8.5;background:#111a24;position:relative;overflow:hidden}
.quest-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.quest-thumb .fallback{position:absolute;inset:0;display:grid;place-items:center;color:#8395a8;font-size:34px}
.quest-card-body{padding:13px}
.quest-card h2{font-size:18px;margin:0 0 5px;color:#fff}
.quest-meta{color:var(--muted);font-size:12px;margin-bottom:10px;line-height:1.45}
.quest-actions{display:flex;gap:7px;flex-wrap:wrap}
.quest-actions .btn{font-size:12px;padding:8px 10px}
.empty-library{border:1px dashed #405469;border-radius:15px;padding:40px;text-align:center;color:var(--muted)}
.library-status{margin:10px 0 16px;padding:10px 12px;border-radius:10px;background:#13283a;color:#cde8ff}
@media(max-width:950px){.library-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.library-grid{grid-template-columns:1fr}.library-head{align-items:flex-start;flex-direction:column}}
